diff --git a/Configuration/Skimming/python/PDWG_EXOHSCP_cff.py b/Configuration/Skimming/python/PDWG_EXOHSCP_cff.py deleted file mode 100644 index fdfa2d8c482f5..0000000000000 --- a/Configuration/Skimming/python/PDWG_EXOHSCP_cff.py +++ /dev/null @@ -1,206 +0,0 @@ -TRACK_PT = 20.0 -import FWCore.ParameterSet.Config as cms -import Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi - -from RecoTracker.MeasurementDet.MeasurementTrackerEventProducer_cfi import * - -generalTracksSkim = Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi.AlignmentTrackSelector.clone( - src = 'generalTracks', -# src = 'TrackRefitter', - filter = False, - applyBasicCuts = True, - ptMin = TRACK_PT, - ptMax = cms.double(999999.0), - nHitMin = 5, - chi2nMax = 10., -) -trackerSeq = cms.Sequence( generalTracksSkim) - - -from RecoVertex.BeamSpotProducer.BeamSpot_cff import * -from RecoTracker.TrackProducer.TrackRefitters_cff import * -TrackRefitterSkim = TrackRefitter.clone() -TrackRefitterSkim.src = "generalTracksSkim" - - -from RecoTracker.DeDx.dedxEstimators_cff import dedxHarmonic2 -dedxSkimNPHarm2 = dedxHarmonic2.clone() -dedxSkimNPHarm2.tracks = cms.InputTag("TrackRefitterSkim") -dedxSkimNPHarm2.UsePixel = cms.bool(False) - -DedxFilter = cms.EDFilter("HSCPFilter", - inputMuonCollection = cms.InputTag("muons"), - inputTrackCollection = cms.InputTag("TrackRefitterSkim"), - inputDedxCollection = cms.InputTag("dedxSkimNPHarm2"), - SAMuPtMin = cms.double(60), - trkPtMin = cms.double(TRACK_PT), - dedxMin =cms.double(3.0), - dedxMaxLeft =cms.double(2.8), - ndedxHits = cms.int32(3), - etaMin= cms.double(-2.4), - etaMax= cms.double(2.4), - chi2nMax = cms.double(10), - dxyMax = cms.double(2.0), - dzMax = cms.double(5), - filter = cms.bool(True) - -) - -dedxSeq = cms.Sequence(offlineBeamSpot + MeasurementTrackerEvent + TrackRefitterSkim + dedxSkimNPHarm2+DedxFilter) - - -from TrackingTools.TrackAssociator.DetIdAssociatorESProducer_cff import * -from TrackingTools.TrackAssociator.default_cfi import * - -muonEcalDetIdsEXOHSCP = cms.EDProducer("InterestingEcalDetIdProducer", - inputCollection = cms.InputTag("muons") - ) -highPtTrackEcalDetIds = cms.EDProducer("HighPtTrackEcalDetIdProducer", - #TrackAssociatorParameterBlock - TrackAssociatorParameters=TrackAssociatorParameterBlock.TrackAssociatorParameters, - inputCollection = cms.InputTag("generalTracksSkim"), - TrackPt=cms.double(TRACK_PT) - ) - - - -detIdProduceSeq = cms.Sequence(muonEcalDetIdsEXOHSCP+highPtTrackEcalDetIds) - -reducedHSCPEcalRecHitsEB = cms.EDProducer("ReducedRecHitCollectionProducer", - recHitsLabel = cms.InputTag("ecalRecHit","EcalRecHitsEB"), - interestingDetIdCollections = cms.VInputTag( - #high p_t tracker track ids - cms.InputTag("highPtTrackEcalDetIds"), - #muons - cms.InputTag("muonEcalDetIdsEXOHSCP") - ), - reducedHitsCollection = cms.string('') -) -reducedHSCPEcalRecHitsEE = cms.EDProducer("ReducedRecHitCollectionProducer", - recHitsLabel = cms.InputTag("ecalRecHit","EcalRecHitsEE"), - interestingDetIdCollections = cms.VInputTag( - #high p_t tracker track ids - cms.InputTag("highPtTrackEcalDetIds"), - #muons - cms.InputTag("muonEcalDetIdsEXOHSCP") - ), - reducedHitsCollection = cms.string('') -) - - -ecalSeq = cms.Sequence(detIdProduceSeq+reducedHSCPEcalRecHitsEB+reducedHSCPEcalRecHitsEE) - - -reducedHSCPhbhereco = cms.EDProducer("ReduceHcalRecHitCollectionProducer", - recHitsLabel = cms.InputTag("hbhereco",""), - TrackAssociatorParameters=TrackAssociatorParameterBlock.TrackAssociatorParameters, - inputCollection = cms.InputTag("generalTracksSkim"), - TrackPt=cms.double(TRACK_PT), - reducedHitsCollection = cms.string('') -) - -hcalSeq = cms.Sequence(reducedHSCPhbhereco) - -muonsSkim = cms.EDProducer("UpdatedMuonInnerTrackRef", - MuonTag = cms.untracked.InputTag("muons"), - OldTrackTag = cms.untracked.InputTag("generalTracks"), - NewTrackTag = cms.untracked.InputTag("generalTracksSkim"), - maxInvPtDiff = cms.untracked.double(0.005), - minDR = cms.untracked.double(0.01), -) -muonSeq = cms.Sequence(muonsSkim) - - - -TrackAssociatorParametersForHSCPIsol = TrackAssociatorParameterBlock.TrackAssociatorParameters.clone() -TrackAssociatorParametersForHSCPIsol.useHO = cms.bool(False) -TrackAssociatorParametersForHSCPIsol.CSCSegmentCollectionLabel = cms.InputTag("cscSegments") -TrackAssociatorParametersForHSCPIsol.DTRecSegment4DCollectionLabel = cms.InputTag("dt4DSegments") -TrackAssociatorParametersForHSCPIsol.EERecHitCollectionLabel = cms.InputTag("ecalRecHit","EcalRecHitsEE") -TrackAssociatorParametersForHSCPIsol.EBRecHitCollectionLabel = cms.InputTag("ecalRecHit","EcalRecHitsEB") -TrackAssociatorParametersForHSCPIsol.HBHERecHitCollectionLabel = cms.InputTag("hbhereco") - - -HSCPIsolation01 = cms.EDProducer("ProduceIsolationMap", - inputCollection = cms.InputTag("generalTracksSkim"), - IsolationConeDR = cms.double(0.1), - TkIsolationPtCut = cms.double(10), - TKLabel = cms.InputTag("generalTracks"), - TrackAssociatorParameters=TrackAssociatorParametersForHSCPIsol, -) - -HSCPIsolation03 = HSCPIsolation01.clone() -HSCPIsolation03.IsolationConeDR = cms.double(0.3) - -HSCPIsolation05 = HSCPIsolation01.clone() -HSCPIsolation05.IsolationConeDR = cms.double(0.5) - -exoticaRecoIsoPhotonSeq = cms.EDFilter("MonoPhotonSkimmer", - phoTag = cms.InputTag("photons::RECO"), - selectEE = cms.bool(True), - ecalisoOffsetEB = cms.double(4.2), - ecalisoSlopeEB = cms.double(0.006), - hcalisoOffsetEB = cms.double(2.2), - hcalisoSlopeEB = cms.double(0.0025), - hadoveremEB = cms.double(0.05), - minPhoEtEB = cms.double(20.), - trackIsoOffsetEB = cms.double(2.), - trackIsoSlopeEB = cms.double(0.001), - etaWidthEB = cms.double(0.013), - - ecalisoOffsetEE = cms.double(4.2), - ecalisoSlopeEE = cms.double(0.006), - hcalisoOffsetEE = cms.double(2.2), - hcalisoSlopeEE = cms.double(0.0025), - hadoveremEE = cms.double(0.05), - minPhoEtEE = cms.double(20.), - trackIsoOffsetEE = cms.double(2.), - trackIsoSlopeEE = cms.double(0.001), - etaWidthEE = cms.double(0.03), - - - -) - - -exoticaHSCPSeq = cms.Sequence(trackerSeq+dedxSeq+ecalSeq+hcalSeq+muonSeq+HSCPIsolation01+HSCPIsolation03+HSCPIsolation05) -exoticaHSCPIsoPhotonSeq = cms.Sequence(exoticaRecoIsoPhotonSeq + trackerSeq+ecalSeq+hcalSeq+muonSeq+HSCPIsolation01+HSCPIsolation03+HSCPIsolation05) - -EXOHSCPSkim_EventContent=cms.PSet( - outputCommands = cms.untracked.vstring( - "drop *", - "keep GenEventInfoProduct_generator_*_*", - "keep L1GlobalTriggerReadoutRecord_*_*_*", - "keep recoVertexs_offlinePrimaryVertices_*_*", - "keep recoMuons_muonsSkim_*_*", - "keep SiStripClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep SiPixelClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep recoTracks_generalTracksSkim_*_*", - "keep recoTrackExtras_generalTracksSkim_*_*", - "keep TrackingRecHitsOwned_generalTracksSkim_*_*", - 'keep *_dt1DRecHits_*_*', - 'keep *_dt4DSegments_*_*', - 'keep *_csc2DRecHits_*_*', - 'keep *_cscSegments_*_*', - 'keep *_rpcRecHits_*_*', - 'keep recoTracks_standAloneMuons_*_*', - 'keep recoTrackExtras_standAloneMuons_*_*', - 'keep TrackingRecHitsOwned_standAloneMuons_*_*', - 'keep recoTracks_globalMuons_*_*', - 'keep recoTrackExtras_globalMuons_*_*', - 'keep TrackingRecHitsOwned_globalMuons_*_*', - 'keep EcalRecHitsSorted_reducedHSCPEcalRecHitsEB_*_*', - 'keep EcalRecHitsSorted_reducedHSCPEcalRecHitsEE_*_*', - 'keep HBHERecHitsSorted_reducedHSCPhbhereco__*', - 'keep edmTriggerResults_TriggerResults__*', - 'keep *_hltTriggerSummaryAOD_*_*', - 'keep *_HSCPIsolation01__*', - 'keep *_HSCPIsolation03__*', - 'keep *_HSCPIsolation05__*', - 'keep recoPFJets_ak4PFJets__*', - 'keep recoPFMETs_pfMet__*', - 'keep recoBeamSpot_offlineBeamSpot__*', - ) - ) - - diff --git a/Configuration/Skimming/python/Skims_PDWG_cff.py b/Configuration/Skimming/python/Skims_PDWG_cff.py index 77af8c63d57dc..71d2b19336a2b 100644 --- a/Configuration/Skimming/python/Skims_PDWG_cff.py +++ b/Configuration/Skimming/python/Skims_PDWG_cff.py @@ -199,17 +199,6 @@ # dataTier = cms.untracked.string('AOD') # ) -from Configuration.Skimming.PDWG_EXOHSCP_cff import * -EXOHSCPPath = cms.Path(exoticaHSCPSeq) -SKIMStreamEXOHSCP = cms.FilteredStream( - responsible = 'PDWG', - name = 'EXOHSCP', - paths = (EXOHSCPPath), - content = EXOHSCPSkim_EventContent.outputCommands, - selectEvents = cms.untracked.PSet(), - dataTier = cms.untracked.string('USER') - ) - from Configuration.Skimming.PDWG_HWWSkim_cff import * HWWmmPath = cms.Path(diMuonSequence) HWWeePath = cms.Path(diElectronSequence) diff --git a/DiffractiveForwardAnalysis/Configuration/python/DiffractiveForwardAnalysis_EventContent_cff.py b/DiffractiveForwardAnalysis/Configuration/python/DiffractiveForwardAnalysis_EventContent_cff.py deleted file mode 100644 index 25703dd45a2ac..0000000000000 --- a/DiffractiveForwardAnalysis/Configuration/python/DiffractiveForwardAnalysis_EventContent_cff.py +++ /dev/null @@ -1,6 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -DiffractiveForwardAnalysisEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) - diff --git a/DiffractiveForwardAnalysis/Configuration/python/DiffractiveForwardAnalysis_OutputModules_cff.py b/DiffractiveForwardAnalysis/Configuration/python/DiffractiveForwardAnalysis_OutputModules_cff.py deleted file mode 100644 index 6abae9abed912..0000000000000 --- a/DiffractiveForwardAnalysis/Configuration/python/DiffractiveForwardAnalysis_OutputModules_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from DiffractiveForwardAnalysis.Skimming.gammagammaEEOutputModule_cfi import * -from DiffractiveForwardAnalysis.Skimming.gammagammaMuMuOutputModule_cfi import * - diff --git a/DiffractiveForwardAnalysis/Configuration/python/DiffractiveForwardAnalysis_SkimPaths_cff.py b/DiffractiveForwardAnalysis/Configuration/python/DiffractiveForwardAnalysis_SkimPaths_cff.py deleted file mode 100644 index 1d63641a97a0d..0000000000000 --- a/DiffractiveForwardAnalysis/Configuration/python/DiffractiveForwardAnalysis_SkimPaths_cff.py +++ /dev/null @@ -1,6 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Diffraction and Forward Physics group Skim sequences -from DiffractiveForwardAnalysis.Skimming.gammagammaEE_SkimPaths_cff import * -from DiffractiveForwardAnalysis.Skimming.gammagammaMuMu_SkimPaths_cff import * - diff --git a/DiffractiveForwardAnalysis/Skimming/python/diffWToENuHLTPaths_cfi.py b/DiffractiveForwardAnalysis/Skimming/python/diffWToENuHLTPaths_cfi.py deleted file mode 100644 index 97db81a2ad0d0..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/diffWToENuHLTPaths_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -diffWToENuHLTFilter = copy.deepcopy(hltHighLevel) -diffWToENuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -diffWToENuHLTFilter.HLTPaths = ['HLT1Electron'] - diff --git a/DiffractiveForwardAnalysis/Skimming/python/diffWToENuOutputModule_cfi.py b/DiffractiveForwardAnalysis/Skimming/python/diffWToENuOutputModule_cfi.py deleted file mode 100644 index 4bcbc1f712c34..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/diffWToENuOutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -diffWToENuOutputModule = cms.OutputModule("PoolOutputModule", - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('diffWToENu'), - dataTier = cms.untracked.string('USER') - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('diffWToENuHLTPath') - ), - fileName = cms.untracked.string('diffWToENuFiltered.root') -) - - diff --git a/DiffractiveForwardAnalysis/Skimming/python/diffWToENu_SkimPaths_cff.py b/DiffractiveForwardAnalysis/Skimming/python/diffWToENu_SkimPaths_cff.py deleted file mode 100644 index ae145a6755b2f..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/diffWToENu_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from DiffractiveForwardAnalysis.Skimming.diffWToENuHLTPaths_cfi import * -diffWToENuHLTPath = cms.Path(diffWToENuHLTFilter) - diff --git a/DiffractiveForwardAnalysis/Skimming/python/diffWToMuNuHLTPaths_cfi.py b/DiffractiveForwardAnalysis/Skimming/python/diffWToMuNuHLTPaths_cfi.py deleted file mode 100644 index 0ee0c06d66291..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/diffWToMuNuHLTPaths_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -diffWToMuNuHLTFilter = copy.deepcopy(hltHighLevel) -diffWToMuNuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -diffWToMuNuHLTFilter.HLTPaths = ['HLT1MuonIso', 'HLT1MuonNonIso'] - diff --git a/DiffractiveForwardAnalysis/Skimming/python/diffWToMuNuOutputModule_cfi.py b/DiffractiveForwardAnalysis/Skimming/python/diffWToMuNuOutputModule_cfi.py deleted file mode 100644 index 5950e79e31ec9..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/diffWToMuNuOutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -diffWToMuNuOutputModule = cms.OutputModule("PoolOutputModule", - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('diffWToMuNu'), - dataTier = cms.untracked.string('USER') - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('diffWToMuNuHLTPath') - ), - fileName = cms.untracked.string('diffWToMuNuFiltered.root') -) - - diff --git a/DiffractiveForwardAnalysis/Skimming/python/diffWToMuNu_SkimPaths_cff.py b/DiffractiveForwardAnalysis/Skimming/python/diffWToMuNu_SkimPaths_cff.py deleted file mode 100644 index 0c3b9e359a768..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/diffWToMuNu_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from DiffractiveForwardAnalysis.Skimming.diffWToMuNuHLTPaths_cfi import * -diffWToMuNuHLTPath = cms.Path(diffWToMuNuHLTFilter) - diff --git a/DiffractiveForwardAnalysis/Skimming/python/gammagammaEEHLTPaths_cfi.py b/DiffractiveForwardAnalysis/Skimming/python/gammagammaEEHLTPaths_cfi.py deleted file mode 100644 index 29eddf76b74c1..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/gammagammaEEHLTPaths_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -gammagammaEEHLTFilter = copy.deepcopy(hltHighLevel) -gammagammaEEHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -gammagammaEEHLTFilter.HLTPaths = ['CandHLT2ElectronExclusive'] - diff --git a/DiffractiveForwardAnalysis/Skimming/python/gammagammaEEOutputModule_cfi.py b/DiffractiveForwardAnalysis/Skimming/python/gammagammaEEOutputModule_cfi.py deleted file mode 100644 index b6fb3915935f6..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/gammagammaEEOutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -gammagammaEEOutputModule = cms.OutputModule("PoolOutputModule", - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('gammagammaEE'), - dataTier = cms.untracked.string('USER') - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('gammagammaEEHLTPath') - ), - fileName = cms.untracked.string('gammagammaEEFiltered.root') -) - - diff --git a/DiffractiveForwardAnalysis/Skimming/python/gammagammaEE_SkimPaths_cff.py b/DiffractiveForwardAnalysis/Skimming/python/gammagammaEE_SkimPaths_cff.py deleted file mode 100644 index 39e925ca29db7..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/gammagammaEE_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from DiffractiveForwardAnalysis.Skimming.gammagammaEEHLTPaths_cfi import * -gammagammaEEHLTPath = cms.Path(gammagammaEEHLTFilter) - diff --git a/DiffractiveForwardAnalysis/Skimming/python/gammagammaMuMuHLTPaths_cfi.py b/DiffractiveForwardAnalysis/Skimming/python/gammagammaMuMuHLTPaths_cfi.py deleted file mode 100644 index 2f852c3533090..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/gammagammaMuMuHLTPaths_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -gammagammaMuMuHLTFilter = copy.deepcopy(hltHighLevel) -gammagammaMuMuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -gammagammaMuMuHLTFilter.HLTPaths = ['HLT2MuonNonIso'] - diff --git a/DiffractiveForwardAnalysis/Skimming/python/gammagammaMuMuOutputModule_cfi.py b/DiffractiveForwardAnalysis/Skimming/python/gammagammaMuMuOutputModule_cfi.py deleted file mode 100644 index 5a765c9bfbcf0..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/gammagammaMuMuOutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -gammagammaMuMuOutputModule = cms.OutputModule("PoolOutputModule", - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('gammagammaMuMu'), - dataTier = cms.untracked.string('USER') - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('gammagammaMuMuHLTPath') - ), - fileName = cms.untracked.string('gammagammaMuMuFiltered.root') -) - - diff --git a/DiffractiveForwardAnalysis/Skimming/python/gammagammaMuMu_SkimPaths_cff.py b/DiffractiveForwardAnalysis/Skimming/python/gammagammaMuMu_SkimPaths_cff.py deleted file mode 100644 index 74992651ece17..0000000000000 --- a/DiffractiveForwardAnalysis/Skimming/python/gammagammaMuMu_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from DiffractiveForwardAnalysis.Skimming.gammagammaMuMuHLTPaths_cfi import * -gammagammaMuMuHLTPath = cms.Path(gammagammaMuMuHLTFilter) - diff --git a/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_EventContent_cff.py b/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_EventContent_cff.py deleted file mode 100644 index 806b7dc72dfb1..0000000000000 --- a/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_EventContent_cff.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# ElectroWeakAnalysis event content -# -ElectroWeakAnalysisEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() - ) - diff --git a/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_OutputModules_cff.py b/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_OutputModules_cff.py deleted file mode 100644 index 77543b97c22ce..0000000000000 --- a/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_OutputModules_cff.py +++ /dev/null @@ -1 +0,0 @@ -import FWCore.ParameterSet.Config as cms diff --git a/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_SkimPaths_cff.py b/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_SkimPaths_cff.py deleted file mode 100644 index d4207170c073e..0000000000000 --- a/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# ElectroWeakAnalysis standard sequences -# diff --git a/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_cff.py b/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_cff.py deleted file mode 100644 index f1e3209eb3f7a..0000000000000 --- a/ElectroWeakAnalysis/Configuration/python/ElectroWeakAnalysis_cff.py +++ /dev/null @@ -1,6 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# ElectroWeakAnalysis standard sequences -# - diff --git a/ElectroWeakAnalysis/Skimming/plugins/BuildFile.xml b/ElectroWeakAnalysis/Skimming/plugins/BuildFile.xml deleted file mode 100644 index 3b994e4f4ee0d..0000000000000 --- a/ElectroWeakAnalysis/Skimming/plugins/BuildFile.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/ElectroWeakAnalysis/Skimming/plugins/ZMuMuMuonUserData.cc b/ElectroWeakAnalysis/Skimming/plugins/ZMuMuMuonUserData.cc deleted file mode 100644 index 9c09c1427f8e1..0000000000000 --- a/ElectroWeakAnalysis/Skimming/plugins/ZMuMuMuonUserData.cc +++ /dev/null @@ -1,241 +0,0 @@ -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "FWCore/Utilities/interface/EDMException.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" -#include "DataFormats/VertexReco/interface/Vertex.h" - -#include - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; -//using namespace pat; - -class ZMuMuMuonUserData : public edm::EDProducer { -public: - ZMuMuMuonUserData(const edm::ParameterSet &); - -private: - void produce(edm::Event &, const edm::EventSetup &) override; - - EDGetTokenT > srcToken_; - EDGetTokenT beamSpotToken_; - EDGetTokenT primaryVerticesToken_; - double alpha_, beta_; - double ptThreshold_, etEcalThreshold_, etHcalThreshold_, dRVetoTrk_, dRTrk_, dREcal_, dRHcal_; - string hltPath_; - template - vector isolation(const T &t, - double ptThreshold, - double etEcalThreshold, - double etHcalThreshold, - double dRVetoTrk, - double dRTrk, - double dREcal, - double dRHcal, - double alpha, - double beta); -}; - -template -vector ZMuMuMuonUserData::isolation(const T &t, - double ptThreshold, - double etEcalThreshold, - double etHcalThreshold, - double dRVetoTrk, - double dRTrk, - double dREcal, - double dRHcal, - double alpha, - double beta) { - vector iso; - const pat::IsoDeposit *trkIso = t.isoDeposit(pat::TrackIso); - const pat::IsoDeposit *ecalIso = t.isoDeposit(pat::EcalIso); - const pat::IsoDeposit *hcalIso = t.isoDeposit(pat::HcalIso); - - Direction dir = Direction(t.eta(), t.phi()); - - pat::IsoDeposit::AbsVetos vetosTrk; - vetosTrk.push_back(new ConeVeto(dir, dRVetoTrk)); - vetosTrk.push_back(new ThresholdVeto(ptThreshold)); - - pat::IsoDeposit::AbsVetos vetosEcal; - vetosEcal.push_back(new ConeVeto(dir, 0.)); - vetosEcal.push_back(new ThresholdVeto(etEcalThreshold)); - - pat::IsoDeposit::AbsVetos vetosHcal; - vetosHcal.push_back(new ConeVeto(dir, 0.)); - vetosHcal.push_back(new ThresholdVeto(etHcalThreshold)); - - double isovalueTrk = (trkIso->sumWithin(dRTrk, vetosTrk)); - double isovalueEcal = (ecalIso->sumWithin(dREcal, vetosEcal)); - double isovalueHcal = (hcalIso->sumWithin(dRHcal, vetosHcal)); - - iso.push_back(isovalueTrk); - //cout<<"isoTrk"< >(cfg.getParameter("src"))), - beamSpotToken_(consumes(cfg.getParameter("beamSpot"))), - primaryVerticesToken_(consumes(cfg.getParameter("primaryVertices"))), - alpha_(cfg.getParameter("alpha")), - beta_(cfg.getParameter("beta")), - ptThreshold_(cfg.getParameter("ptThreshold")), - etEcalThreshold_(cfg.getParameter("etEcalThreshold")), - etHcalThreshold_(cfg.getParameter("etHcalThreshold")), - dRVetoTrk_(cfg.getParameter("dRVetoTrk")), - dRTrk_(cfg.getParameter("dRTrk")), - dREcal_(cfg.getParameter("dREcal")), - dRHcal_(cfg.getParameter("dRHcal")), - hltPath_(cfg.getParameter("hltPath")) { - produces >(); -} - -void ZMuMuMuonUserData::produce(Event &evt, const EventSetup &) { - Handle > muons; - evt.getByToken(srcToken_, muons); - - Handle beamSpotHandle; - evt.getByToken(beamSpotToken_, beamSpotHandle); - - Handle primaryVertices; // Collection of primary Vertices - evt.getByToken(primaryVerticesToken_, primaryVertices); - - unique_ptr > muonColl(new vector(*muons)); - for (unsigned int i = 0; i < muonColl->size(); ++i) { - pat::Muon &m = (*muonColl)[i]; - //pat::Muon *mu = new pat::Muon(m); - vector iso = isolation( - m, ptThreshold_, etEcalThreshold_, etHcalThreshold_, dRVetoTrk_, dRTrk_, dREcal_, dRHcal_, alpha_, beta_); - m.setIsolation(pat::User1Iso, iso[0]); - //cout<<"muon User1Iso "<dxy(beamSpotHandle->position()); - zDaudzFromBS = muGlbRef->dz(beamSpotHandle->position()); - zDaudxyFromPV = muGlbRef->dxy(primaryVertices->begin()->position()); - zDaudzFromPV = muGlbRef->dz(primaryVertices->begin()->position()); - zDauChi2 = muGlbRef->normalizedChi2(); - zDauTrkChi2 = muTrkRef->normalizedChi2(); - zDauSaChi2 = muSaRef->normalizedChi2(); - zDauNofMuonHits = muGlbRef->hitPattern().numberOfValidMuonHits(); - zDauSaNofMuonHits = muSaRef->hitPattern().numberOfValidMuonHits(); - zDauNofStripHits = muGlbRef->hitPattern().numberOfValidStripHits(); - zDauTrkNofStripHits = muTrkRef->hitPattern().numberOfValidStripHits(); - zDauNofPixelHits = muGlbRef->hitPattern().numberOfValidPixelHits(); - zDauTrkNofPixelHits = muTrkRef->hitPattern().numberOfValidPixelHits(); - } else if (muSaRef.isNonnull() && m.isStandAloneMuon() == true) { - zDaudxyFromBS = muSaRef->dxy(beamSpotHandle->position()); - zDaudzFromBS = muSaRef->dz(beamSpotHandle->position()); - zDaudxyFromPV = muSaRef->dxy(primaryVertices->begin()->position()); - zDaudzFromPV = muSaRef->dz(primaryVertices->begin()->position()); - zDauSaChi2 = muSaRef->normalizedChi2(); - zDauSaNofMuonHits = muSaRef->hitPattern().numberOfValidMuonHits(); - - } else if (muTrkRef.isNonnull() && m.isTrackerMuon() == true) { - zDaudxyFromBS = muTrkRef->dxy(beamSpotHandle->position()); - zDaudzFromBS = muTrkRef->dz(beamSpotHandle->position()); - zDaudxyFromPV = muTrkRef->dxy(primaryVertices->begin()->position()); - zDaudzFromPV = muTrkRef->dz(primaryVertices->begin()->position()); - zDauTrkChi2 = muTrkRef->normalizedChi2(); - zDauTrkNofStripHits = muTrkRef->hitPattern().numberOfValidStripHits(); - zDauTrkNofPixelHits = muTrkRef->hitPattern().numberOfValidPixelHits(); - } - - const pat::TriggerObjectStandAloneCollection muHLTMatches = m.triggerObjectMatchesByPath(hltPath_); - float muHLTBit; - int dimTrig = muHLTMatches.size(); - if (dimTrig != 0) { - muHLTBit = 1; - } else { - muHLTBit = 0; - } - m.addUserFloat("zDau_dxyFromBS", zDaudxyFromBS); - m.addUserFloat("zDau_dzFromBS", zDaudzFromBS); - m.addUserFloat("zDau_dxyFromPV", zDaudxyFromPV); - m.addUserFloat("zDau_dzFromPV", zDaudzFromPV); - m.addUserFloat("zDau_HLTBit", muHLTBit); - m.addUserFloat("zDau_dzFromPV", zDaudzFromPV); - m.addUserFloat("zDau_Chi2", zDauChi2); - m.addUserFloat("zDau_TrkChi2", zDauTrkChi2); - m.addUserFloat("zDau_SaChi2", zDauSaChi2); - m.addUserFloat("zDau_NofMuonHits", zDauNofMuonHits); - m.addUserFloat("zDau_SaNofMuonHits", zDauSaNofMuonHits); - m.addUserFloat("zDau_NofStripHits", zDauNofStripHits); - m.addUserFloat("zDau_TrkNofStripHits", zDauTrkNofStripHits); - m.addUserFloat("zDau_NofPixelHits", zDauNofPixelHits); - m.addUserFloat("zDau_TrkNofPixelHits", zDauTrkNofPixelHits); - m.addUserFloat("zDau_NofMuChambers", zDauNofMuChambers); - m.addUserFloat("zDau_NofMuMatches", zDauNofMuMatches); - m.addUserFloat("zDau_MuEnergyEm", zDauMuEnergyEm); - m.addUserFloat("zDau_MuEnergyHad", zDauMuEnergyHad); - } - - evt.put(std::move(muonColl)); -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuMuonUserData); diff --git a/ElectroWeakAnalysis/Skimming/plugins/ZMuMuOneTrackUserData.cc b/ElectroWeakAnalysis/Skimming/plugins/ZMuMuOneTrackUserData.cc deleted file mode 100644 index b91e2261345b5..0000000000000 --- a/ElectroWeakAnalysis/Skimming/plugins/ZMuMuOneTrackUserData.cc +++ /dev/null @@ -1,121 +0,0 @@ -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/CompositeCandidate.h" -#include "FWCore/Utilities/interface/EDMException.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" -#include "DataFormats/VertexReco/interface/Vertex.h" - -#include - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; -//using namespace pat; - -class ZMuMuUserDataOneTrack : public edm::EDProducer { -public: - ZMuMuUserDataOneTrack(const edm::ParameterSet &); - typedef math::XYZVector Vector; - -private: - void produce(edm::Event &, const edm::EventSetup &) override; - - EDGetTokenT > srcToken_; - EDGetTokenT beamSpotToken_; - EDGetTokenT primaryVerticesToken_; - EDGetTokenT zGenParticlesMatchToken_; - double alpha_, beta_; - string hltPath_; - int counter; -}; - -ZMuMuUserDataOneTrack::ZMuMuUserDataOneTrack(const ParameterSet &cfg) - : srcToken_(consumes >(cfg.getParameter("src"))), - beamSpotToken_(consumes(cfg.getParameter("beamSpot"))), - primaryVerticesToken_(consumes(cfg.getParameter("primaryVertices"))), - zGenParticlesMatchToken_(consumes(cfg.getParameter("zGenParticlesMatch"))), - alpha_(cfg.getParameter("alpha")), - beta_(cfg.getParameter("beta")), - hltPath_(cfg.getParameter("hltPath")) { - produces >(); -} - -void ZMuMuUserDataOneTrack::produce(Event &evt, const EventSetup &) { - Handle > dimuons; - evt.getByToken(srcToken_, dimuons); - - Handle beamSpotHandle; - if (!evt.getByToken(beamSpotToken_, beamSpotHandle)) { - std::cout << ">>> No beam spot found !!!" << std::endl; - } - - Handle primaryVertices; // Collection of primary Vertices - if (!evt.getByToken(primaryVerticesToken_, primaryVertices)) { - std::cout << ">>> No primary vertices found !!!" << std::endl; - } - - bool isMCMatchTrue = false; - - Handle zGenParticlesMatch; - if (evt.getByToken(zGenParticlesMatchToken_, zGenParticlesMatch)) { - isMCMatchTrue = true; - } - - //cout<<"isMCMatchTrue"< > dimuonColl(new vector()); - - for (unsigned int i = 0; i < dimuons->size(); ++i) { - const CompositeCandidate &z = (*dimuons)[i]; - //CandidateBaseRef zRef = dimuons ->refAt(i); - edm::Ref > zRef(dimuons, i); - pat::CompositeCandidate dimuon(z); - - float trueMass, truePt, trueEta, truePhi, trueY; - if (isMCMatchTrue) { - GenParticleRef trueZRef = (*zGenParticlesMatch)[zRef]; - //CandidateRef trueZRef = trueZIter->val; - if (trueZRef.isNonnull()) { - const Candidate &z = *trueZRef; - trueMass = z.mass(); - truePt = z.pt(); - trueEta = z.eta(); - truePhi = z.phi(); - trueY = z.rapidity(); - } else { - trueMass = -100; - truePt = -100; - trueEta = -100; - truePhi = -100; - trueY = -100; - } - - dimuon.addUserFloat("TrueMass", trueMass); - dimuon.addUserFloat("TruePt", truePt); - dimuon.addUserFloat("TrueEta", trueEta); - dimuon.addUserFloat("TruePhi", truePhi); - dimuon.addUserFloat("TrueY", trueY); - } - - dimuonColl->push_back(dimuon); - } - - evt.put(std::move(dimuonColl)); -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuUserDataOneTrack); diff --git a/ElectroWeakAnalysis/Skimming/plugins/ZMuMuTrackUserData.cc b/ElectroWeakAnalysis/Skimming/plugins/ZMuMuTrackUserData.cc deleted file mode 100644 index 92ea4d597d6dd..0000000000000 --- a/ElectroWeakAnalysis/Skimming/plugins/ZMuMuTrackUserData.cc +++ /dev/null @@ -1,189 +0,0 @@ -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "FWCore/Utilities/interface/EDMException.h" - -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" -#include "DataFormats/VertexReco/interface/Vertex.h" - -#include - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; -//using namespace pat; - -class ZMuMuTrackUserData : public edm::EDProducer { -public: - ZMuMuTrackUserData(const edm::ParameterSet &); - -private: - void produce(edm::Event &, const edm::EventSetup &) override; - - EDGetTokenT > srcToken_; - EDGetTokenT beamSpotToken_; - EDGetTokenT primaryVerticesToken_; - double ptThreshold_, etEcalThreshold_, etHcalThreshold_, dRVetoTrk_, dRTrk_, dREcal_, dRHcal_; - double alpha_, beta_; - template - vector isolation(const T &t, - double ptThreshold, - double etEcalThreshold, - double etHcalThreshold, - double dRVetoTrk, - double dRTrk, - double dREcal, - double dRHcal, - double alpha, - double beta); -}; - -template -vector ZMuMuTrackUserData::isolation(const T &t, - double ptThreshold, - double etEcalThreshold, - double etHcalThreshold, - double dRVetoTrk, - double dRTrk, - double dREcal, - double dRHcal, - double alpha, - double beta) { - vector iso; - const pat::IsoDeposit *trkIso = t.isoDeposit(pat::TrackIso); - const pat::IsoDeposit *ecalIso = t.isoDeposit(pat::EcalIso); - const pat::IsoDeposit *hcalIso = t.isoDeposit(pat::HcalIso); - - Direction dir = Direction(t.eta(), t.phi()); - - pat::IsoDeposit::AbsVetos vetosTrk; - vetosTrk.push_back(new ConeVeto(dir, dRVetoTrk)); - vetosTrk.push_back(new ThresholdVeto(ptThreshold)); - - pat::IsoDeposit::AbsVetos vetosEcal; - vetosEcal.push_back(new ConeVeto(dir, 0.)); - vetosEcal.push_back(new ThresholdVeto(etEcalThreshold)); - - pat::IsoDeposit::AbsVetos vetosHcal; - vetosHcal.push_back(new ConeVeto(dir, 0.)); - vetosHcal.push_back(new ThresholdVeto(etHcalThreshold)); - - double isovalueTrk = (trkIso->sumWithin(dRTrk, vetosTrk)); - double isovalueEcal = (ecalIso->sumWithin(dREcal, vetosEcal)); - double isovalueHcal = (hcalIso->sumWithin(dRHcal, vetosHcal)); - - iso.push_back(isovalueTrk); - iso.push_back(isovalueEcal); - iso.push_back(isovalueHcal); - - //double iso = isovalueTrk + isovalueEcal + isovalueHcal; - double combIso = - alpha * (((1 + beta) / 2 * isovalueEcal) + ((1 - beta) / 2 * isovalueHcal)) + ((1 - alpha) * isovalueTrk); - - iso.push_back(combIso); - double relIso = combIso /= t.pt(); - iso.push_back(relIso); - return iso; -} - -ZMuMuTrackUserData::ZMuMuTrackUserData(const ParameterSet &cfg) - : srcToken_(consumes >(cfg.getParameter("src"))), - beamSpotToken_(consumes(cfg.getParameter("beamSpot"))), - primaryVerticesToken_(consumes(cfg.getParameter("primaryVertices"))), - ptThreshold_(cfg.getParameter("ptThreshold")), - etEcalThreshold_(cfg.getParameter("etEcalThreshold")), - etHcalThreshold_(cfg.getParameter("etHcalThreshold")), - dRVetoTrk_(cfg.getParameter("dRVetoTrk")), - dRTrk_(cfg.getParameter("dRTrk")), - dREcal_(cfg.getParameter("dREcal")), - dRHcal_(cfg.getParameter("dRHcal")), - alpha_(cfg.getParameter("alpha")), - beta_(cfg.getParameter("beta")) { - produces >(); -} - -void ZMuMuTrackUserData::produce(Event &evt, const EventSetup &) { - Handle > tracks; - evt.getByToken(srcToken_, tracks); - - Handle beamSpotHandle; - evt.getByToken(beamSpotToken_, beamSpotHandle); - - Handle primaryVertices; // Collection of primary Vertices - evt.getByToken(primaryVerticesToken_, primaryVertices); - - unique_ptr > tkColl(new vector(*tracks)); - for (unsigned int i = 0; i < tkColl->size(); ++i) { - pat::GenericParticle &tk = (*tkColl)[i]; - vector iso = isolation( - tk, ptThreshold_, etEcalThreshold_, etHcalThreshold_, dRVetoTrk_, dRTrk_, dREcal_, dRHcal_, alpha_, beta_); - tk.setIsolation(pat::User1Iso, iso[0]); - // cout << "track User1Iso " << iso[0] << endl; - tk.setIsolation(pat::User2Iso, iso[1]); - //cout << "track User2Iso " << iso[1] << endl; - tk.setIsolation(pat::User3Iso, iso[2]); - //cout << "track User3Iso " << iso[2] << endl; - tk.setIsolation(pat::User4Iso, iso[3]); - //cout << "track User4Iso " << iso[3] << endl; - tk.setIsolation(pat::User5Iso, iso[4]); - //cout << "track User5Iso " << iso[4] << endl; - - float zDaudxyFromBS = -1; - float zDaudzFromBS = -1; - float zDaudxyFromPV = -1; - float zDaudzFromPV = -1; - float zDauNofMuChambers = -1; - float zDauNofMuMatches = -1; - float zDauChi2 = -1; - float zDauTrkChi2 = -1; - float zDauSaChi2 = -1; - float zDauNofMuonHits = -1; - float zDauNofStripHits = -1; - float zDauNofPixelHits = -1; - float zDauMuEnergyEm = -1; - float zDauMuEnergyHad = -1; - - TrackRef muTrkRef = tk.track(); - if (muTrkRef.isNonnull()) { - zDaudxyFromBS = muTrkRef->dxy(beamSpotHandle->position()); - zDaudzFromBS = muTrkRef->dz(beamSpotHandle->position()); - zDaudxyFromPV = muTrkRef->dxy(primaryVertices->begin()->position()); - zDaudzFromPV = muTrkRef->dz(primaryVertices->begin()->position()); - zDauChi2 = muTrkRef->normalizedChi2(); - zDauTrkChi2 = muTrkRef->normalizedChi2(); - zDauNofStripHits = muTrkRef->hitPattern().numberOfValidStripHits(); - zDauNofPixelHits = muTrkRef->hitPattern().numberOfValidPixelHits(); - } - tk.addUserFloat("zDau_dxyFromBS", zDaudxyFromBS); - tk.addUserFloat("zDau_dzFromBS", zDaudzFromBS); - tk.addUserFloat("zDau_dxyFromPV", zDaudxyFromPV); - tk.addUserFloat("zDau_dzFromPV", zDaudzFromPV); - tk.addUserFloat("zDau_NofMuonHits", zDauNofMuonHits); - tk.addUserFloat("zDau_TrkNofStripHits", zDauNofStripHits); - tk.addUserFloat("zDau_TrkNofPixelHits", zDauNofPixelHits); - tk.addUserFloat("zDau_NofMuChambers", zDauNofMuChambers); - tk.addUserFloat("zDau_NofMuMatches", zDauNofMuMatches); - tk.addUserFloat("zDau_Chi2", zDauChi2); - tk.addUserFloat("zDau_TrkChi2", zDauTrkChi2); - tk.addUserFloat("zDau_SaChi2", zDauSaChi2); - tk.addUserFloat("zDau_MuEnergyEm", zDauMuEnergyEm); - tk.addUserFloat("zDau_MuEnergyHad", zDauMuEnergyHad); - } - - evt.put(std::move(tkColl)); -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuTrackUserData); diff --git a/ElectroWeakAnalysis/Skimming/plugins/ZMuMuUserData.cc b/ElectroWeakAnalysis/Skimming/plugins/ZMuMuUserData.cc deleted file mode 100644 index b48cd92719a76..0000000000000 --- a/ElectroWeakAnalysis/Skimming/plugins/ZMuMuUserData.cc +++ /dev/null @@ -1,169 +0,0 @@ -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/CompositeCandidate.h" -#include "FWCore/Utilities/interface/EDMException.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" -#include "DataFormats/VertexReco/interface/Vertex.h" - -#include - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; -//using namespace pat; - -class ZMuMuUserData : public edm::EDProducer { -public: - ZMuMuUserData(const edm::ParameterSet &); - typedef math::XYZVector Vector; - -private: - void produce(edm::Event &, const edm::EventSetup &) override; - - EDGetTokenT > srcToken_; - EDGetTokenT beamSpotToken_; - EDGetTokenT primaryVerticesToken_; - EDGetTokenT zGenParticlesMatchToken_; - double alpha_, beta_; - string hltPath_; - int counter; -}; - -ZMuMuUserData::ZMuMuUserData(const ParameterSet &cfg) - : srcToken_(consumes >(cfg.getParameter("src"))), - beamSpotToken_(consumes(cfg.getParameter("beamSpot"))), - primaryVerticesToken_(consumes(cfg.getParameter("primaryVertices"))), - zGenParticlesMatchToken_(consumes(cfg.getParameter("zGenParticlesMatch"))), - alpha_(cfg.getParameter("alpha")), - beta_(cfg.getParameter("beta")), - hltPath_(cfg.getParameter("hltPath")) { - produces >(); -} - -void ZMuMuUserData::produce(Event &evt, const EventSetup &) { - Handle > dimuons; - evt.getByToken(srcToken_, dimuons); - - Handle beamSpotHandle; - evt.getByToken(beamSpotToken_, beamSpotHandle); - - Handle primaryVertices; // Collection of primary Vertices - evt.getByToken(primaryVerticesToken_, primaryVertices); - - bool isMCMatchTrue = false; - - Handle zGenParticlesMatch; - if (evt.getByToken(zGenParticlesMatchToken_, zGenParticlesMatch)) { - isMCMatchTrue = true; - } - - //cout<<"isMCMatchTrue"< > dimuonColl(new vector()); - - for (unsigned int i = 0; i < dimuons->size(); ++i) { - const CompositeCandidate &z = (*dimuons)[i]; - //CandidateBaseRef zRef = dimuons ->refAt(i); - edm::Ref > zRef(dimuons, i); - pat::CompositeCandidate dimuon(z); - - float trueMass, truePt, trueEta, truePhi, trueY; - if (isMCMatchTrue) { - GenParticleRef trueZRef = (*zGenParticlesMatch)[zRef]; - //CandidateRef trueZRef = trueZIter->val; - if (trueZRef.isNonnull()) { - const Candidate &z = *trueZRef; - trueMass = z.mass(); - truePt = z.pt(); - trueEta = z.eta(); - truePhi = z.phi(); - trueY = z.rapidity(); - } else { - trueMass = -100; - truePt = -100; - trueEta = -100; - truePhi = -100; - trueY = -100; - } - - dimuon.addUserFloat("TrueMass", trueMass); - dimuon.addUserFloat("TruePt", truePt); - dimuon.addUserFloat("TrueEta", trueEta); - dimuon.addUserFloat("TruePhi", truePhi); - dimuon.addUserFloat("TrueY", trueY); - } - const Candidate *dau1 = z.daughter(0); - const Candidate *dau2 = z.daughter(1); - const pat::Muon &mu1 = dynamic_cast(*dau1->masterClone()); - const pat::Muon &mu2 = dynamic_cast(*dau2->masterClone()); - - /*cout<<"mu1 is null? "<get(); - stAloneTrack2 = dau2->get(); - float zDau1SaEta = stAloneTrack1->eta(); - float zDau2SaEta = stAloneTrack2->eta(); - float zDau1SaPhi = stAloneTrack1->phi(); - float zDau2SaPhi = stAloneTrack2->phi(); - float zDau1SaPt, zDau2SaPt; - if (counter % 2 == 0) { - momentum = stAloneTrack1->momentum(); - p4_1 = dau2->polarP4(); - mu_mass = dau1->mass(); - /// I fill the dau1 with positive and dau2 with negatove values for the pt, in order to flag the muons used for building zMassSa - zDau1SaPt = stAloneTrack1->pt(); - zDau2SaPt = -stAloneTrack2->pt(); - } else { - momentum = stAloneTrack2->momentum(); - p4_1 = dau1->polarP4(); - mu_mass = dau2->mass(); - /// I fill the dau1 with negatove and dau2 with positive values for the pt - zDau1SaPt = -stAloneTrack1->pt(); - zDau2SaPt = stAloneTrack2->pt(); - } - - Candidate::PolarLorentzVector p4_2(momentum.rho(), momentum.eta(), momentum.phi(), mu_mass); - double mass = (p4_1 + p4_2).mass(); - float zMassSa = mass; - //cout<<"zMassSa "<push_back(dimuon); - } - - evt.put(std::move(dimuonColl)); -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuUserData); diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsFilter_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsFilter_cfi.py deleted file mode 100644 index 13198858cab16..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsFilter_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dimuonsFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("dimuons"), - minNumber = cms.uint32(1) -) - - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsGlobal_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsGlobal_cfi.py deleted file mode 100644 index 393cd4bbb04f7..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsGlobal_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dimuonsGlobal = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("dimuons"), - cut = cms.string('charge = 0 & mass > 20 & daughter(0).isGlobalMuon = 1 & daughter(1).isGlobalMuon = 1') -) - - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsHLTFilter_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsHLTFilter_cfi.py deleted file mode 100644 index 0ba862e5137f2..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsHLTFilter_cfi.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import HLTrigger.HLTfilters.hltHighLevel_cfi -dimuonsHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -# Add this to access 8E29 menu -#dimuonsHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -# for 8E29 menu -#dimuonsHLTFilter.HLTPaths = ["HLT_Mu3", "HLT_DoubleMu3"] -# for 1E31 menu -#dimuonsHLTFilter.HLTPaths = ["HLT_Mu9", "HLT_DoubleMu3"] -dimuonsHLTFilter.HLTPaths = ["HLT_Mu9"] diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsMCMatch_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsMCMatch_cfi.py deleted file mode 100644 index a2cb5e8ca19c9..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsMCMatch_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dimuonsMCMatch = cms.EDFilter("MCTruthCompositeMatcherNew", - src = cms.InputTag("dimuons"), - # - # comment PAT match because works only for layer-0 muons - # - # VInputTag matchMaps = { muonMatch } - matchPDGId = cms.vint32(), - matchMaps = cms.VInputTag(cms.InputTag("goodMuonMCMatch")) -) - - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsOneStandAloneMuon_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsOneStandAloneMuon_cfi.py deleted file mode 100644 index c0700dad22583..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsOneStandAloneMuon_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dimuonsOneStandAloneMuon = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("dimuons"), - cut = cms.string('charge = 0 & mass > 20 & ( (daughter(0).isStandAloneMuon = 1 & daughter(0).isGlobalMuon = 0 & daughter(1).isGlobalMuon = 1) | (daughter(1).isStandAloneMuon = 1 & daughter(1).isGlobalMuon = 0 & daughter(0).isGlobalMuon = 1) )') -) - - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrackFilter_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrackFilter_cfi.py deleted file mode 100644 index 4323f4f1d90c4..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrackFilter_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dimuonsOneTrackFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("dimuonsOneTrack"), - minNumber = cms.uint32(1) -) - - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrackMCMatch_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrackMCMatch_cfi.py deleted file mode 100644 index 819ec5c94f4e9..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrackMCMatch_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dimuonsOneTrackMCMatch = cms.EDFilter("MCTruthCompositeMatcherNew", - src = cms.InputTag("dimuonsOneTrack"), - # - # comment PAT match because works only for layer-0 muons - # - # VInputTag matchMaps = { muonMatch, goodTrackMCMatch } - matchPDGId = cms.vint32(), - matchMaps = cms.VInputTag(cms.InputTag("goodMuonMCMatch"), cms.InputTag("goodTrackMCMatch")) -) - - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrack_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrack_cfi.py deleted file mode 100644 index 66365864c6344..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrack_cfi.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dimuonsOneTrack = cms.EDProducer("CandViewShallowCloneCombiner", - checkCharge = cms.bool(True), - cut = cms.string('mass > 20'), -# decay = cms.string('selectedLayer1Muons@+ goodTracks@-') -# decay = cms.string('selectedLayer1Muons@+ selectedLayer1TrackCands@-') - decay = cms.string('selectedPatMuonsTriggerMatch@+ selectedPatTracks@-') -) - - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrackerMuon_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrackerMuon_cfi.py deleted file mode 100644 index d1a4c6a52f328..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsOneTrackerMuon_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dimuonsOneTrackerMuon = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("dimuons"), - cut = cms.string('charge = 0 & mass > 20 & ( (daughter(0).isTrackerMuon = 1 & daughter(0).isGlobalMuon = 0 & daughter(1).isGlobalMuon = 1) | (daughter(1).isTrackerMuon = 1 & daughter(1).isGlobalMuon = 0 & daughter(0).isGlobalMuon = 1) )') -) - - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuonsOutputModule_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuonsOutputModule_cfi.py deleted file mode 100644 index cb54310ea4c99..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuonsOutputModule_cfi.py +++ /dev/null @@ -1,41 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * - -dimuonsEventContent = cms.PSet( - outputCommands = cms.untracked.vstring( - 'keep *_selectedPatMuonsTriggerMatch_*_*', - 'keep *_selectedPatTracks_*_*', - 'keep *_dimuons_*_*', - 'keep *_dimuonsOneTrack_*_*', - 'keep *_dimuonsGlobal_*_*', - 'keep *_dimuonsOneStandAloneMuon_*_*', - 'keep *_muonMatch_*_*', - 'keep *_trackMuMatch_*_*', - 'keep *_allDimuonsMCMatch_*_*', - ) -) -dimuonsEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'dimuonsPath', - 'dimuonsOneTrackPath') - ) -) - -AODSIMDimuonEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -AODSIMDimuonEventContent.outputCommands.extend(AODSIMEventContent.outputCommands) -AODSIMDimuonEventContent.outputCommands.extend(dimuonsEventContent.outputCommands) - -dimuonsOutputModule = cms.OutputModule("PoolOutputModule", - AODSIMDimuonEventContent, - dimuonsEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('dimuon'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('dimuons.root') -) - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuons_SkimPaths_cff.py b/ElectroWeakAnalysis/Skimming/python/dimuons_SkimPaths_cff.py deleted file mode 100644 index 2604f50ab5b91..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuons_SkimPaths_cff.py +++ /dev/null @@ -1,33 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# migration to PAT v2 and reorganization of dimuon sequences - -from ElectroWeakAnalysis.Skimming.dimuonsHLTFilter_cfi import * -from ElectroWeakAnalysis.Skimming.patCandidatesForDimuonsSequences_cff import * -from ElectroWeakAnalysis.Skimming.dimuons_cfi import * -from ElectroWeakAnalysis.Skimming.dimuonsOneTrack_cfi import * -from ElectroWeakAnalysis.Skimming.dimuonsGlobal_cfi import * -from ElectroWeakAnalysis.Skimming.dimuonsOneStandAloneMuon_cfi import * -from ElectroWeakAnalysis.Skimming.mcTruthForDimuons_cff import * -from ElectroWeakAnalysis.Skimming.dimuonsFilter_cfi import * -from ElectroWeakAnalysis.Skimming.dimuonsOneTrackFilter_cfi import * - -dimuonsPath = cms.Path( - dimuonsHLTFilter * - goodMuonRecoForDimuon * - dimuons * - dimuonsGlobal * - dimuonsOneStandAloneMuon * - dimuonsFilter -) - -dimuonsOneTrackPath = cms.Path(dimuonsHLTFilter+ - goodMuonRecoForDimuon+ - dimuonsOneTrack+ - dimuonsOneTrackFilter -) - -dimuonsMCTruth = cms.Path(dimuonsHLTFilter+ - mcTruthForDimuons -) - diff --git a/ElectroWeakAnalysis/Skimming/python/dimuons_cfi.py b/ElectroWeakAnalysis/Skimming/python/dimuons_cfi.py deleted file mode 100644 index be8160591331f..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/dimuons_cfi.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dimuons = cms.EDProducer("CandViewShallowCloneCombiner", - checkCharge = cms.bool(False), - cut = cms.string('mass > 0'), - # string decay = "goodMuons@+ goodMuons@-" -# decay = cms.string('selectedLayer1Muons@+ selectedLayer1Muons@-') - decay = cms.string('selectedPatMuonsTriggerMatch@+ selectedPatMuonsTriggerMatch@-') -) - - diff --git a/ElectroWeakAnalysis/Skimming/python/mcTruthForDimuons_cff.py b/ElectroWeakAnalysis/Skimming/python/mcTruthForDimuons_cff.py deleted file mode 100644 index 48c8758c6f101..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/mcTruthForDimuons_cff.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from PhysicsTools.HepMCCandAlgos.goodMuonMCMatch_cfi import * -goodMuonMCMatch.src = 'selectedPatMuonsTriggerMatch' -from PhysicsTools.HepMCCandAlgos.goodTrackMCMatch_cfi import * -goodTrackMCMatch.src = 'selectedPatTracks' - -from ElectroWeakAnalysis.Skimming.dimuonsMCMatch_cfi import * -from ElectroWeakAnalysis.Skimming.dimuonsOneTrackMCMatch_cfi import * -allDimuonsMCMatch = cms.EDFilter("GenParticleMatchMerger", - src = cms.VInputTag(cms.InputTag("goodMuonMCMatch"), cms.InputTag("goodTrackMCMatch"), cms.InputTag("dimuonsMCMatch"), cms.InputTag("dimuonsOneTrackMCMatch")) -) - -mcTruthForDimuons = cms.Sequence(goodMuonMCMatch+goodTrackMCMatch+dimuonsMCMatch+dimuonsOneTrackMCMatch+allDimuonsMCMatch) - diff --git a/ElectroWeakAnalysis/Skimming/python/patAODTrackCandSequence_cff.py b/ElectroWeakAnalysis/Skimming/python/patAODTrackCandSequence_cff.py deleted file mode 100644 index 482a1a99224f6..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/patAODTrackCandSequence_cff.py +++ /dev/null @@ -1,43 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -#from SimGeneral.HepPDTESSource.pythiapdt_cfi import * -from Configuration.StandardSequences.MagneticField_cff import * - -patAODTrackCandsUnfiltered = cms.EDProducer("ConcreteChargedCandidateProducer", - src = cms.InputTag("generalTracks"), - particleType = cms.string('mu+') # to fix mass hypothesis -) - -patAODTrackCands = cms.EDFilter("CandViewSelector", - src = cms.InputTag("patAODTrackCandsUnfiltered"), - cut = cms.string('pt > 10') -) - - -from RecoMuon.MuonIsolationProducers.muIsolation_cff import * -## Configure tracker isolation -from RecoMuon.MuonIsolationProducers.trackExtractorBlocks_cff import MIsoTrackExtractorCtfBlock -patAODTrackIsoDepositCtfTk = cms.EDProducer("CandIsoDepositProducer", - src = cms.InputTag("patAODTrackCands"), - trackType = cms.string('best'), - MultipleDepositsFlag = cms.bool(False), - ExtractorPSet = cms.PSet( MIsoTrackExtractorCtfBlock ) -) - -## Configure calorimetric isolation -from RecoMuon.MuonIsolationProducers.caloExtractorByAssociatorBlocks_cff import MIsoCaloExtractorByAssociatorTowersBlock -patAODTrackIsoDepositCalByAssociatorTowers = cms.EDProducer("CandIsoDepositProducer", - src = cms.InputTag("patAODTrackCands"), - trackType = cms.string('best'), - MultipleDepositsFlag = cms.bool(True), - ExtractorPSet = cms.PSet( MIsoCaloExtractorByAssociatorTowersBlock ) -) - -# sequence to run on AOD before PAT cleaners -patAODTrackCandSequence = cms.Sequence( - patAODTrackCandsUnfiltered * - patAODTrackCands * - patAODTrackIsoDepositCtfTk * - patAODTrackIsoDepositCalByAssociatorTowers -) - diff --git a/ElectroWeakAnalysis/Skimming/python/patCandidatesForDimuonsSequences_cff.py b/ElectroWeakAnalysis/Skimming/python/patCandidatesForDimuonsSequences_cff.py deleted file mode 100644 index a660c967bea31..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/patCandidatesForDimuonsSequences_cff.py +++ /dev/null @@ -1,167 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from SimGeneral.HepPDTESSource.pythiapdt_cfi import * - -# PAT TRACKS - -# before pat: conversion to track candidates for pat; isolation -#from PhysicsTools.PatAlgos.recoLayer0.genericTrackCandidates_cff import * -from ElectroWeakAnalysis.Skimming.patAODTrackCandSequence_cff import * -patAODTrackCands.cut = 'pt > 10.' - -# before pat: MC match -#from PhysicsTools.PatAlgos.mcMatchLayer0.trackMuMatch_cfi import * -from ElectroWeakAnalysis.Skimming.trackMuMatch_cfi import * -trackMuMatch.maxDeltaR = 0.15 -trackMuMatch.maxDPtRel = 1.0 -trackMuMatch.resolveAmbiguities = True -trackMuMatch.resolveByMatchQuality = True - -# pat tracks -from PhysicsTools.PatAlgos.producersLayer1.genericParticleProducer_cfi import patGenericParticles - -allPatTracks = patGenericParticles.clone( - src = cms.InputTag("patAODTrackCands"), - # isolation configurables - userIsolation = cms.PSet( - tracker = cms.PSet( - veto = cms.double(0.015), - src = cms.InputTag("patAODTrackIsoDepositCtfTk"), - deltaR = cms.double(0.3), - threshold = cms.double(1.5) - ), - ecal = cms.PSet( - src = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","ecal"), - deltaR = cms.double(0.3) - ), - hcal = cms.PSet( - src = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","hcal"), - deltaR = cms.double(0.3) - ), - ), - isoDeposits = cms.PSet( - tracker = cms.InputTag("patAODTrackIsoDepositCtfTk"), - ecal = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","ecal"), - hcal = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","hcal") - ), - addGenMatch = cms.bool(True), - genParticleMatch = cms.InputTag("trackMuMatch") -) - -from PhysicsTools.PatAlgos.selectionLayer1.trackSelector_cfi import * -selectedPatTracks.cut = 'pt > 10.' - -# PAT MUONS - -# before pat: MC match -from PhysicsTools.PatAlgos.mcMatchLayer0.muonMatch_cfi import * -muonMatch.maxDeltaR = 0.15 -muonMatch.maxDPtRel = 1.0 -muonMatch.resolveAmbiguities = True -muonMatch.resolveByMatchQuality = True - -# pat muons -# needed starting from 3_6_1 -from TrackingTools.TransientTrack.TransientTrackBuilder_cfi import * -# -from PhysicsTools.PatAlgos.producersLayer1.muonProducer_cfi import * -patMuons.isoDeposits = cms.PSet( - tracker = cms.InputTag("muIsoDepositTk"), - ecal = cms.InputTag("muIsoDepositCalByAssociatorTowers","ecal"), - hcal = cms.InputTag("muIsoDepositCalByAssociatorTowers","hcal"), -) -patMuons.userIsolation = cms.PSet( - hcal = cms.PSet( - src = cms.InputTag("muIsoDepositCalByAssociatorTowers","hcal"), - deltaR = cms.double(0.3) - ), - tracker = cms.PSet( - veto = cms.double(0.015), - src = cms.InputTag("muIsoDepositTk"), - deltaR = cms.double(0.3), - threshold = cms.double(1.5) - ), - ecal = cms.PSet( - src = cms.InputTag("muIsoDepositCalByAssociatorTowers","ecal"), - deltaR = cms.double(0.3) - ) - ) - -from PhysicsTools.PatAlgos.selectionLayer1.muonSelector_cfi import * -selectedPatMuons.cut = 'pt > 0. & abs(eta) < 100.0' - -# trigger info -from PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cfi import * -# to access 8E29 menus -#patTrigger.triggerResults = cms.InputTag( "TriggerResults::HLT8E29" ) -#patTrigger.triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::HLT8E29" ) -# to access 1E31 menus -patTrigger.triggerResults = cms.InputTag( "TriggerResults::HLT" ) -patTrigger.triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::HLT" ) - -muonTriggerMatchHLTMuons = cms.EDFilter( "PATTriggerMatcherDRDPtLessByR", - src = cms.InputTag( "selectedPatMuons" ), - matched = cms.InputTag( "patTrigger" ), - andOr = cms.bool( False ), - filterIdsEnum = cms.vstring( 'TriggerMuon' ), # 'TriggerMuon' is the enum from trigger::TriggerObjectType for HLT muons - filterIds = cms.vint32( 0 ), - filterLabels = cms.vstring( '*' ), - pathNames = cms.vstring( 'HLT_Mu9' ), - collectionTags = cms.vstring( '*' ), - maxDPtRel = cms.double( 1.0 ), - maxDeltaR = cms.double( 0.2 ), - resolveAmbiguities = cms.bool( True ), - resolveByMatchQuality = cms.bool( True ) -) - -from PhysicsTools.PatAlgos.triggerLayer1.triggerEventProducer_cfi import * -#patTriggerEvent.patTriggerMatches = [ "muonTriggerMatchHLTMu9" ] -patTriggerEvent.patTriggerMatches = cms.VInputTag( "muonTriggerMatchHLTMuons" ) -#patTriggerEvent.patTriggerMatches = cms.VInputTag( "muonTriggerMatchHLTMu9" ) - -patTriggerSequence = cms.Sequence( - patTrigger * - muonTriggerMatchHLTMuons * -# muonTriggerMatchHLTMu9 * - patTriggerEvent -) - -selectedPatMuonsTriggerMatch = cms.EDProducer( "PATTriggerMatchMuonEmbedder", - src = cms.InputTag( "selectedPatMuons" ), - matches = cms.VInputTag( "muonTriggerMatchHLTMuons" ) -) - -muonTriggerMatchEmbedder = cms.Sequence( - selectedPatMuonsTriggerMatch -) - -# pat sequences - -beforePatTracks = cms.Sequence( - patAODTrackCandSequence * - trackMuMatch -) - -beforePatMuons = cms.Sequence( - muonMatch -) - -beforePat = cms.Sequence( - beforePatTracks + - beforePatMuons -) - -patCandsSequence = cms.Sequence( - patMuons * - selectedPatMuons * - allPatTracks * - selectedPatTracks -) - -goodMuonRecoForDimuon = cms.Sequence( - beforePat * - patCandsSequence * - patTriggerSequence * - muonTriggerMatchEmbedder -) - diff --git a/ElectroWeakAnalysis/Skimming/python/patCandidatesForZMuMuSubskim_cff.py b/ElectroWeakAnalysis/Skimming/python/patCandidatesForZMuMuSubskim_cff.py deleted file mode 100644 index 9f07d8523fb57..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/patCandidatesForZMuMuSubskim_cff.py +++ /dev/null @@ -1,173 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from SimGeneral.HepPDTESSource.pythiapdt_cfi import * -##################################################### -# PAT muons and tracks for ZMuMu subskim: no MC match -##################################################### - -# PAT TRACKS - -# before pat: conversion to track candidates for pat; isolation -from ElectroWeakAnalysis.Skimming.patAODTrackCandSequence_cff import * -patAODTrackCands.cut = 'pt > 15.' - -# pat tracks -from PhysicsTools.PatAlgos.producersLayer1.genericParticleProducer_cfi import patGenericParticles - -allPatTracks = patGenericParticles.clone( - src = cms.InputTag("patAODTrackCands"), - embedTrack = cms.bool(True), - # isolation configurables - userIsolation = cms.PSet( - tracker = cms.PSet( - veto = cms.double(0.015), - src = cms.InputTag("patAODTrackIsoDepositCtfTk"), - deltaR = cms.double(0.3), - threshold = cms.double(1.5) - ), - ecal = cms.PSet( - src = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","ecal"), - deltaR = cms.double(0.3) - ), - hcal = cms.PSet( - src = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","hcal"), - deltaR = cms.double(0.3) - ), - ), - isoDeposits = cms.PSet( - tracker = cms.InputTag("patAODTrackIsoDepositCtfTk"), - ecal = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","ecal"), - hcal = cms.InputTag("patAODTrackIsoDepositCalByAssociatorTowers","hcal") - ), - addGenMatch = cms.bool(False) -) - -from PhysicsTools.PatAlgos.selectionLayer1.trackSelector_cfi import * -selectedPatTracks.cut = 'pt > 15. & track.dxy()<1.0' - -# PAT MUONS - -# before pat: Merge CaloMuons into the collection of reco::Muons -# Starting from 3_4_X a special recipe is needed for CaloMuons merging -# Uncomment the following lines and follow the recipe in: -# https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideMuonIsolation#To_remake_IsoDeposits_in_CMSSW_3 - -#from RecoMuon.MuonIdentification.calomuons_cfi import calomuons; -#muons = cms.EDProducer("CaloMuonMerger", -# muons = cms.InputTag("muons"), # half-dirty thing. it works aslong as we're the first module using muons in the path -# caloMuons = cms.InputTag("calomuons"), -# minCaloCompatibility = calomuons.minCaloCompatibility) - -## And re-make isolation, as we can't use the one in AOD because our collection is different -#import RecoMuon.MuonIsolationProducers.muIsolation_cff - -# pat muons -# needed starting from 3_6_1 -from TrackingTools.TransientTrack.TransientTrackBuilder_cfi import * -# -from PhysicsTools.PatAlgos.producersLayer1.muonProducer_cfi import * -patMuons.isoDeposits = cms.PSet( - tracker = cms.InputTag("muIsoDepositTk"), - ecal = cms.InputTag("muIsoDepositCalByAssociatorTowers","ecal"), - hcal = cms.InputTag("muIsoDepositCalByAssociatorTowers","hcal"), -) -patMuons.userIsolation = cms.PSet( - hcal = cms.PSet( - src = cms.InputTag("muIsoDepositCalByAssociatorTowers","hcal"), - deltaR = cms.double(0.3) - ), - tracker = cms.PSet( - veto = cms.double(0.015), - src = cms.InputTag("muIsoDepositTk"), - deltaR = cms.double(0.3), - threshold = cms.double(1.5) - ), - ecal = cms.PSet( - src = cms.InputTag("muIsoDepositCalByAssociatorTowers","ecal"), - deltaR = cms.double(0.3) - ) - ) - -patMuons.addGenMatch = cms.bool(False) -patMuons.embedTrack = cms.bool(True) -patMuons.embedCombinedMuon = cms.bool(True) -patMuons.embedStandAloneMuon = cms.bool(True) -patMuons.embedPickyMuon = cms.bool(False) -patMuons.embedTpfmsMuon = cms.bool(False) -patMuons.embedPFCandidate = cms.bool(False) - -from PhysicsTools.PatAlgos.selectionLayer1.muonSelector_cfi import * -selectedPatMuons.cut = 'pt > 15. & abs(eta) < 100.0 & ( (isGlobalMuon==1 & innerTrack.dxy()<1.0) | ((isTrackerMuon==1 & innerTrack.dxy()<1.0) | (isStandAloneMuon==1 & outerTrack.dxy()<1.0) ))' - -# trigger info -from PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cfi import * -# to access 8E29 menus -#patTrigger.triggerResults = cms.InputTag( "TriggerResults::HLT8E29" ) -#patTrigger.triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::HLT8E29" ) -# to access 1E31 menus -patTrigger.triggerResults = cms.InputTag( "TriggerResults::HLT" ) -patTrigger.triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::HLT" ) - -muonTriggerMatchHLTMuons = cms.EDProducer( "PATTriggerMatcherDRDPtLessByR", - src = cms.InputTag( "selectedPatMuons" ), - matched = cms.InputTag( "patTrigger" ), - andOr = cms.bool( False ), - filterIdsEnum = cms.vstring( 'TriggerMuon' ), # 'TriggerMuon' is the enum from trigger::TriggerObjectType for HLT muons - filterIds = cms.vint32( 0 ), - filterLabels = cms.vstring( '*' ), - pathNames = cms.vstring( 'HLT_Mu9' ), - collectionTags = cms.vstring( '*' ), - maxDPtRel = cms.double( 1.0 ), - maxDeltaR = cms.double( 0.2 ), - resolveAmbiguities = cms.bool( True ), - resolveByMatchQuality = cms.bool( False ) -) - -from PhysicsTools.PatAlgos.triggerLayer1.triggerEventProducer_cfi import * -patTriggerEvent.patTriggerMatches = cms.VInputTag( "muonTriggerMatchHLTMuons" ) - -patTriggerSequence = cms.Sequence( - patTrigger * - muonTriggerMatchHLTMuons * - patTriggerEvent -) - -selectedPatMuonsTriggerMatch = cms.EDProducer( "PATTriggerMatchMuonEmbedder", - src = cms.InputTag( "selectedPatMuons" ), - matches = cms.VInputTag( "muonTriggerMatchHLTMuons" ) -) - -muonTriggerMatchEmbedder = cms.Sequence( - selectedPatMuonsTriggerMatch -) - -# uncomment in case of CaloMuons merging -#beforePatMuons = cms.Sequence( -# muons * -# muIsolation -#) - -beforePatTracks = cms.Sequence( - patAODTrackCandSequence -) - -beforePat = cms.Sequence( -# uncomment in case of CaloMuons merging -# beforePatMuons * - beforePatTracks -) - -patCandsSequence = cms.Sequence( - patMuons * - selectedPatMuons * - allPatTracks * - selectedPatTracks -) - -goodMuonRecoForDimuon = cms.Sequence( - beforePat * - patCandsSequence * - patTriggerSequence * - muonTriggerMatchEmbedder -) - diff --git a/ElectroWeakAnalysis/Skimming/python/trackMuMatch_cfi.py b/ElectroWeakAnalysis/Skimming/python/trackMuMatch_cfi.py deleted file mode 100644 index 02ddabbb5dcca..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/trackMuMatch_cfi.py +++ /dev/null @@ -1,18 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# Configuration of the MC match for generic tracks candidates -# (following the configuration for muons) - -trackMuMatch = cms.EDProducer("MCMatcher", # cut on deltaR, deltaPt/Pt; pick best by deltaR - src = cms.InputTag("patAODTrackCands"), # RECO objects to match - matched = cms.InputTag("genParticles"), # mc-truth particle collection - mcPdgId = cms.vint32(13), # one or more PDG ID (13 = muon); absolute values (see below) - checkCharge = cms.bool(True), # True = require RECO and MC objects to have the same charge - mcStatus = cms.vint32(1), # PYTHIA status code (1 = stable, 2 = shower, 3 = hard scattering) - maxDeltaR = cms.double(0.5), # 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(False), # False = just match input in order; True = pick lowest deltaR pair first -) - diff --git a/ElectroWeakAnalysis/Skimming/python/zMuMuMuonUserData.py b/ElectroWeakAnalysis/Skimming/python/zMuMuMuonUserData.py deleted file mode 100644 index dd4eedbd5b9de..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/zMuMuMuonUserData.py +++ /dev/null @@ -1,67 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy - -userDataMuons = cms.EDProducer( - "ZMuMuMuonUserData", - src = cms.InputTag("selectedPatMuonsTriggerMatch"), - zGenParticlesMatch = cms.InputTag(""), -## zGenParticlesMatch = cms.InputTag(""), - alpha = cms.double(0.75), - beta = cms.double(-0.75), - beamSpot = cms.InputTag("offlineBeamSpot"), - primaryVertices = cms.InputTag("offlinePrimaryVerticesWithBS"), - ptThreshold = cms.double(1.5), - etEcalThreshold = cms.double(0.2), - etHcalThreshold = cms.double(0.5), - dRVetoTrk = cms.double(0.015), - dRTrk = cms.double(0.3), - dREcal = cms.double(0.25), - dRHcal = cms.double(0.25), - hltPath = cms.string("HLT_Mu9") - ) - -userDataTracks = cms.EDProducer( - "ZMuMuTrackUserData", - src = cms.InputTag("selectedPatTracks"), - zGenParticlesMatch = cms.InputTag(""), - alpha = cms.double(0.75), - beta = cms.double(-0.75), - beamSpot = cms.InputTag("offlineBeamSpot"), - ptThreshold = cms.double(1.5), - etEcalThreshold = cms.double(0.2), - etHcalThreshold = cms.double(0.5), - dRVetoTrk = cms.double(0.015), - dRTrk = cms.double(0.3), - dREcal = cms.double(0.25), - dRHcal = cms.double(0.25), - primaryVertices = cms.InputTag("offlinePrimaryVerticesWithBS"), - ) - -userDataDimuons= cms.EDProducer( - "ZMuMuUserData", - src = cms.InputTag("dimuons"), - zGenParticlesMatch = cms.InputTag(""), -## zGenParticlesMatch = cms.InputTag("allDimuonsMCMatch"), - alpha = cms.double(0.75), - beta = cms.double(-0.75), - beamSpot = cms.InputTag("offlineBeamSpot"), - primaryVertices = cms.InputTag("offlinePrimaryVerticesWithBS"), - hltPath = cms.string("HLT_Mu9") - ) - -userDataDimuonsOneTrack= cms.EDProducer( - "ZMuMuUserDataOneTrack", - src = cms.InputTag("dimuonsOneTrack"), - zGenParticlesMatch = cms.InputTag(""), -# zGenParticlesMatch = cms.InputTag("allDimuonsMCMatch"), - alpha = cms.double(0.75), - beta = cms.double(-0.75), - beamSpot = cms.InputTag("offlineBeamSpot"), - primaryVertices = cms.InputTag("offlinePrimaryVerticesWithBS"), - hltPath = cms.string("HLT_Mu9") - ) - - - - - diff --git a/ElectroWeakAnalysis/Skimming/python/zMuMuSubskimOutputModule_cfi.py b/ElectroWeakAnalysis/Skimming/python/zMuMuSubskimOutputModule_cfi.py deleted file mode 100644 index 165402ca26723..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/zMuMuSubskimOutputModule_cfi.py +++ /dev/null @@ -1,39 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -zMuMuSubskimOutputModule = cms.OutputModule("PoolOutputModule", - outputCommands = cms.untracked.vstring( - 'drop *', -#### to access the position at the momentum system for global and standalone muons - 'keep recoTrackExtras_standAloneMuons_*_*', - 'keep recoTracks_standAloneMuons_UpdatedAtVtx_*', - #'keep recoCaloMuons_calomuons_*_*', - #'keep *_selectedPatMuonsTriggerMatch_*_*', - #'keep *_selectedPatTracks_*_*', - 'keep *_userDataMuons_*_*', - 'keep *_userDataTracks_*_*', - 'keep *_userDataDimuons_*_*', - 'keep *_userDataDimuonsOneTrack_*_*', - #'keep *_dimuons_*_*', - #'keep *_dimuonsOneTrack_*_*', - 'keep *_dimuonsGlobal_*_*', - 'keep *_dimuonsOneStandAloneMuon_*_*', - 'keep *_dimuonsOneTrackerMuon_*_*', - ### to access vertex information - 'keep *_offlineBeamSpot_*_*', - 'keep *_offlinePrimaryVerticesWithBS_*_*', - ### to save jet information - #'keep *_sisCone5CaloJets_*_*', - #'keep *_ak4CaloJets_*_*', - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'dimuonsPath', - 'dimuonsOneTrackPath') - ), - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('zmumu'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('zMuMuSubskim.root') -) - diff --git a/ElectroWeakAnalysis/Skimming/python/zMuMu_MCTruth_cfi.py b/ElectroWeakAnalysis/Skimming/python/zMuMu_MCTruth_cfi.py deleted file mode 100644 index a34ee22e723ee..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/zMuMu_MCTruth_cfi.py +++ /dev/null @@ -1,52 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.Skimming.dimuonsHLTFilter_cfi import * - -from PhysicsTools.HepMCCandAlgos.goodMuonMCMatch_cfi import * -goodMuonMCMatch.src = 'userDataMuons' - -from PhysicsTools.HepMCCandAlgos.goodTrackMCMatch_cfi import * -goodTrackMCMatch.src = 'userDataTracks' - -from ElectroWeakAnalysis.Skimming.dimuonsMCMatch_cfi import * -#dimuonsMCMatch.src=cms.InputTag("userDataDimuons") - -from ElectroWeakAnalysis.Skimming.dimuonsOneTrackMCMatch_cfi import * -#dimuonsOneTrackMCMatch.src=cms.InputTag("userDataDimuonsOneTrack") - -#allDimuonsMCMatch = cms.EDFilter("GenParticleMatchMerger", -# src = cms.VInputTag(cms.InputTag("goodMuonMCMatch"), cms.InputTag("goodTrackMCMatch"), cms.InputTag("dimuonsMCMatch")), -# filter = cms.bool(False) -#) - -allDimuonsMCMatch = cms.EDFilter("GenParticleMatchMerger", - src = cms.VInputTag(cms.InputTag("goodMuonMCMatch"), cms.InputTag("dimuonsMCMatch")), - filter = cms.bool(False) -) - -allDimuonsOneTrackMCMatch = cms.EDFilter("GenParticleMatchMerger", - src = cms.VInputTag(cms.InputTag("goodMuonMCMatch"), cms.InputTag("goodTrackMCMatch"), cms.InputTag("dimuonsOneTrackMCMatch")), - filter = cms.bool(False) -) - -# Different MCtruth sequences for different ZMuMu paths -mcTruthForDimuons = cms.Sequence(goodMuonMCMatch+dimuonsMCMatch+allDimuonsMCMatch) -mcTruthForDimuonsOneTrack = cms.Sequence(goodMuonMCMatch+goodTrackMCMatch+dimuonsOneTrackMCMatch+allDimuonsOneTrackMCMatch) - -#mcTruthForDimuons = cms.Sequence(goodMuonMCMatch+goodTrackMCMatch+dimuonsMCMatch+allDimuonsMCMatch) - -#mcTruthForDimuonsOneTrack = cms.Sequence(goodMuonMCMatch+goodTrackMCMatch+dimuonsOneTrackMCMatch) - - -#dimuonsMCTruth = cms.Path(dimuonsHLTFilter+ -# mcTruthForDimuons -#) - -mcEventContent = cms.PSet( - outputCommands = cms.untracked.vstring( - ### MC matching infos - 'keep *_genParticles_*_*', - 'keep *_allDimuonsMCMatch_*_*', - 'keep *_allDimuonsOneTrackMCMatch_*_*' - ) -) diff --git a/ElectroWeakAnalysis/Skimming/python/zMuMu_SubskimPathsWithMCTruth_cff.py b/ElectroWeakAnalysis/Skimming/python/zMuMu_SubskimPathsWithMCTruth_cff.py deleted file mode 100644 index 3b4347f9f8d62..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/zMuMu_SubskimPathsWithMCTruth_cff.py +++ /dev/null @@ -1,50 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.Skimming.dimuonsHLTFilter_cfi import * -from ElectroWeakAnalysis.Skimming.patCandidatesForZMuMuSubskim_cff import * -from ElectroWeakAnalysis.Skimming.zMuMuMuonUserData import * -from ElectroWeakAnalysis.Skimming.dimuons_cfi import * -dimuons.decay = cms.string('userDataMuons@+ userDataMuons@-') -from ElectroWeakAnalysis.Skimming.dimuonsOneTrack_cfi import * -dimuonsOneTrack.decay = cms.string('userDataMuons@+ userDataTracks@-') -from ElectroWeakAnalysis.Skimming.dimuonsGlobal_cfi import * -dimuonsGlobal.src = cms.InputTag("userDataDimuons") -from ElectroWeakAnalysis.Skimming.dimuonsOneStandAloneMuon_cfi import * -dimuonsOneStandAloneMuon.src = cms.InputTag("userDataDimuons") -from ElectroWeakAnalysis.Skimming.dimuonsOneTrackerMuon_cfi import * -dimuonsOneTrackerMuon.src = cms.InputTag("userDataDimuons") -from ElectroWeakAnalysis.Skimming.dimuonsFilter_cfi import * -dimuonsFilter.src = cms.InputTag("userDataDimuons") -from ElectroWeakAnalysis.Skimming.dimuonsOneTrackFilter_cfi import * -dimuonsOneTrackFilter.src = cms.InputTag("userDataDimuonsOneTrack") - -# MC matching sequence -from ElectroWeakAnalysis.Skimming.zMuMu_MCTruth_cfi import * -userDataDimuons.zGenParticlesMatch = cms.InputTag("allDimuonsMCMatch") -userDataDimuonsOneTrack.zGenParticlesMatch = cms.InputTag("allDimuonsOneTrackMCMatch") - - - -dimuonsPath = cms.Path(dimuonsHLTFilter * - goodMuonRecoForDimuon * - userDataMuons* - dimuons * - mcTruthForDimuons * - userDataDimuons* - dimuonsGlobal * - dimuonsOneStandAloneMuon * - dimuonsOneTrackerMuon * - dimuonsFilter - ) - -dimuonsOneTrackPath = cms.Path(dimuonsHLTFilter * - goodMuonRecoForDimuon* - userDataMuons* - userDataTracks* - dimuonsOneTrack* - mcTruthForDimuonsOneTrack * - userDataDimuonsOneTrack* - dimuonsOneTrackFilter - ) - - diff --git a/ElectroWeakAnalysis/Skimming/python/zMuMu_SubskimPaths_cff.py b/ElectroWeakAnalysis/Skimming/python/zMuMu_SubskimPaths_cff.py deleted file mode 100644 index 94bb52eff4f82..0000000000000 --- a/ElectroWeakAnalysis/Skimming/python/zMuMu_SubskimPaths_cff.py +++ /dev/null @@ -1,41 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.Skimming.dimuonsHLTFilter_cfi import * -from ElectroWeakAnalysis.Skimming.patCandidatesForZMuMuSubskim_cff import * -from ElectroWeakAnalysis.Skimming.zMuMuMuonUserData import * -from ElectroWeakAnalysis.Skimming.dimuons_cfi import * -dimuons.decay = cms.string('userDataMuons@+ userDataMuons@-') -from ElectroWeakAnalysis.Skimming.dimuonsOneTrack_cfi import * -dimuonsOneTrack.decay = cms.string('userDataMuons@+ userDataTracks@-') -from ElectroWeakAnalysis.Skimming.dimuonsGlobal_cfi import * -dimuonsGlobal.src = cms.InputTag("userDataDimuons") -from ElectroWeakAnalysis.Skimming.dimuonsOneStandAloneMuon_cfi import * -dimuonsOneStandAloneMuon.src = cms.InputTag("userDataDimuons") -from ElectroWeakAnalysis.Skimming.dimuonsOneTrackerMuon_cfi import * -dimuonsOneTrackerMuon.src = cms.InputTag("userDataDimuons") -from ElectroWeakAnalysis.Skimming.dimuonsFilter_cfi import * -dimuonsFilter.src = cms.InputTag("userDataDimuons") -from ElectroWeakAnalysis.Skimming.dimuonsOneTrackFilter_cfi import * -dimuonsOneTrackFilter.src = cms.InputTag("userDataDimuonsOneTrack") - -dimuonsPath = cms.Path(dimuonsHLTFilter * - goodMuonRecoForDimuon * - userDataMuons* - dimuons * - userDataDimuons* - dimuonsGlobal * - dimuonsOneStandAloneMuon * - dimuonsOneTrackerMuon * - dimuonsFilter - ) - -dimuonsOneTrackPath = cms.Path(dimuonsHLTFilter * - goodMuonRecoForDimuon* - userDataMuons* - userDataTracks* - dimuonsOneTrack* - userDataDimuonsOneTrack* - dimuonsOneTrackFilter - ) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_DiElectronSkim_Drop.py b/ElectroWeakAnalysis/Skimming/test/EWK_DiElectronSkim_Drop.py deleted file mode 100644 index 4a11b961e1009..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_DiElectronSkim_Drop.py +++ /dev/null @@ -1,136 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKDiElectronSkim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'rfio:/tmp/ikesisog/10A96AFC-E17C-DE11-A90E-001D0967D9CC.root' - ) -) - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') - - -# HLT filter -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_DiElectronHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() - -# Uncomment this to access 8E29 menu and filter on it -process.EWK_DiElectronHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -process.EWK_DiElectronHLTFilter.HLTPaths = ["HLT_Ele15_LW_L1R"] - - -# Make a collection of good SuperClusters. -# -# Before selection is made, merge the Barrel and EndCap SC's. -process.superClusterMerger = cms.EDProducer("EgammaSuperClusterMerger", - src = cms.VInputTag(cms.InputTag('correctedHybridSuperClusters'), cms.InputTag('correctedMulti5x5SuperClustersWithPreshower')) - ) - -# Get the above merged SC's and select the particle (gamma) to greate SC's Candidates. -process.superClusterCands = cms.EDProducer("ConcreteEcalCandidateProducer", - src = cms.InputTag("superClusterMerger"), particleType = cms.string('gamma') - ) - -# Get the above SC's Candidates and place a cut on their Et. -process.goodSuperClusters = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("superClusterCands"), - cut = cms.string('et > 20.0'), - filter = cms.bool(True) - ) - -process.superClusterFilter = cms.Sequence(process.superClusterMerger + process.superClusterCands + process.goodSuperClusters) - - -# Make a collections on good Electrons. -# -process.goodElectrons = cms.EDFilter("CandViewSelector", - src = cms.InputTag("gsfElectrons"), - cut = cms.string('pt > 20.0'), - filter = cms.bool(True) -) - -# Filter the above two collections (good SuperClusters and good Electrons) -# -process.electronSuperClusterCombiner = cms.EDFilter("CandViewShallowCloneCombiner", - filter = cms.bool(True), - checkCharge = cms.bool(False), - cut = cms.string('mass > 3.0'), - decay = cms.string('goodElectrons goodSuperClusters') - ) - -process.electronSuperClusterCounter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("electronSuperClusterCombiner"), - minNumber = cms.uint32(1) - ) - -process.electronSuperClusterFilter = cms.Sequence(process.electronSuperClusterCombiner + process.electronSuperClusterCounter) - - -# Skim path -process.EWK_DiElectronSkimPath = cms.Path(process.EWK_DiElectronHLTFilter + - process.goodElectrons + - process.superClusterFilter + - process.electronSuperClusterFilter - ) - - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * - -EWK_DiElectronSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -EWK_DiElectronSkimEventContent.outputCommands.extend(AODEventContent.outputCommands) - -EWK_DiElectronSkimEventContent.outputCommands.extend( - cms.untracked.vstring('drop *', - "keep recoSuperClusters_*_*_*", - "keep *_gsfElectrons_*_*", - "keep recoGsfTracks_electronGsfTracks_*_*", - "keep *_gsfElectronCores_*_*", - "keep *_correctedHybridSuperClusters_*_*", - "keep *_correctedMulti5x5SuperClustersWithPreshower_*_*", - "keep edmTriggerResults_*_*_*", - "keep recoCaloMETs_*_*_*", - "keep recoMETs_*_*_*", - "keep *_particleFlow_electrons_*", - "keep *_pfMet_*_*", - "keep *_multi5x5SuperClusterWithPreshower_*_*", - "keep recoVertexs_*_*_*", - "keep *_hltTriggerSummaryAOD_*_*", - "keep floatedmValueMap_*_*_*", - "keep recoBeamSpot_*_*_*" ) -) - -EWK_DiElectronSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_DiElectronSkimPath') - ) -) - -process.EWK_DiElectronSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_DiElectronSkimEventContent, - EWK_DiElectronSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKSKIMEMET'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('EWKDiElectronSkim.root') -) - -process.outpath = cms.EndPath(process.EWK_DiElectronSkimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_DiElectronSkim_NoDrop.py b/ElectroWeakAnalysis/Skimming/test/EWK_DiElectronSkim_NoDrop.py deleted file mode 100644 index 3ee4beb98e8e4..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_DiElectronSkim_NoDrop.py +++ /dev/null @@ -1,116 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKDiElectronSkim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'rfio:/tmp/ikesisog/10A96AFC-E17C-DE11-A90E-001D0967D9CC.root' - ) -) - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') - - -# HLT filter -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_DiElectronHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() - -# Uncomment this to access 8E29 menu and filter on it -process.EWK_DiElectronHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -process.EWK_DiElectronHLTFilter.HLTPaths = ["HLT_Ele15_LW_L1R"] - - -# Make a collection of good SuperClusters. -# -# Before selection is made, merge the Barrel and EndCap SC's. -process.superClusterMerger = cms.EDProducer("EgammaSuperClusterMerger", - src = cms.VInputTag(cms.InputTag('correctedHybridSuperClusters'), cms.InputTag('correctedMulti5x5SuperClustersWithPreshower')) - ) - -# Get the above merged SC's and select the particle (gamma) to greate SC's Candidates. -process.superClusterCands = cms.EDProducer("ConcreteEcalCandidateProducer", - src = cms.InputTag("superClusterMerger"), particleType = cms.string('gamma') - ) - -# Get the above SC's Candidates and place a cut on their Et. -process.goodSuperClusters = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("superClusterCands"), - cut = cms.string('et > 20.0'), - filter = cms.bool(True) - ) - -process.superClusterFilter = cms.Sequence(process.superClusterMerger + process.superClusterCands + process.goodSuperClusters) - - -# Make a collections on good Electrons. -# -process.goodElectrons = cms.EDFilter("CandViewSelector", - src = cms.InputTag("gsfElectrons"), - cut = cms.string('pt > 20.0'), - filter = cms.bool(True) -) - -# Filter the above two collections (good SuperClusters and good Electrons) -# -process.electronSuperClusterCombiner = cms.EDFilter("CandViewShallowCloneCombiner", - filter = cms.bool(True), - checkCharge = cms.bool(False), - cut = cms.string('mass > 3.0'), - decay = cms.string('goodElectrons goodSuperClusters') - ) - -process.electronSuperClusterCounter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("electronSuperClusterCombiner"), - minNumber = cms.uint32(1) - ) - -process.electronSuperClusterFilter = cms.Sequence(process.electronSuperClusterCombiner + process.electronSuperClusterCounter) - - -# Skim path -process.EWK_DiElectronSkimPath = cms.Path(process.EWK_DiElectronHLTFilter + - process.goodElectrons + - process.superClusterFilter + - process.electronSuperClusterFilter - ) - - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * - -EWK_DiElectronSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -EWK_DiElectronSkimEventContent.outputCommands.extend(AODEventContent.outputCommands) - -EWK_DiElectronSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_DiElectronSkimPath') - ) -) - -process.EWK_DiElectronSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_DiElectronSkimEventContent, - EWK_DiElectronSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKSKIMEMET'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('EWKDiElectronSkim.root') -) - -process.outpath = cms.EndPath(process.EWK_DiElectronSkimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_DimuonSkim.py b/ElectroWeakAnalysis/Skimming/test/EWK_DimuonSkim.py deleted file mode 100755 index 36aab91433b15..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_DimuonSkim.py +++ /dev/null @@ -1,163 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKDimuonSkim") - -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:/scratch1/cms/data/summer09/aodsim/zmumu/0016/A68B6BD1-FF83-DE11-B579-001E68A99420.root' -# 'file:/scratch1/cms/data/summer09/aodsim/ppMuX/0010/9C519151-5883-DE11-8BC8-001AA0095119.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(500) ) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -# HLT filter -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_MuHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -# Uncomment this to access 8E29 menu and filter on it -#process.EWK_MuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -#process.EWK_MuHLTFilter.HLTPaths = ["HLT_Mu3", "HLT_DoubleMu3"] -# Uncomment this to filter on 1E31 HLT menu -process.EWK_MuHLTFilter.HLTPaths = ["HLT_Mu9"] - -# Muon candidates filters -process.goodAODMuons = cms.EDFilter("CandViewSelector", - src = cms.InputTag("muons"), - cut = cms.string('pt > 0'), - filter = cms.bool(True) -) - -process.goodAODGlobalMuons = cms.EDFilter("CandViewSelector", - src = cms.InputTag("goodAODMuons"), - cut = cms.string('isGlobalMuon=1'), - filter = cms.bool(True) -) - -# Track candidates -process.trackCandsUnfiltered = cms.EDProducer("ConcreteChargedCandidateProducer", - src = cms.InputTag("generalTracks"), - particleType = cms.string('mu+') # to fix mass hypothesis -) - -# Track candidates filter -process.goodAODTrackCands = cms.EDFilter("CandViewSelector", - src = cms.InputTag("trackCandsUnfiltered"), - cut = cms.string('pt > 10') -) - -# Dimuon candidates - -process.dimuonsAOD = cms.EDFilter("CandViewShallowCloneCombiner", - checkCharge = cms.bool(False), - cut = cms.string('mass > 0'), - decay = cms.string("goodAODMuons@+ goodAODMuons@-") -) - -process.dimuonsGlobalAOD = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("dimuonsAOD"), - cut = cms.string('charge = 0 & daughter(0).isGlobalMuon = 1 & daughter(1).isGlobalMuon = 1') -) - -process.dimuonsOneStandAloneMuonAOD = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("dimuonsAOD"), - cut = cms.string('charge = 0 & mass > 20 & ( (daughter(0).isStandAloneMuon = 1 & daughter(0).isGlobalMuon = 0 & daughter(1).isGlobalMuon = 1) | (daughter(1).isStandAloneMuon = 1 & daughter(1).isGlobalMuon = 0 & daughter(0).isGlobalMuon = 1) )') -) - -process.dimuonsOneTrackAOD = cms.EDFilter("CandViewShallowCloneCombiner", - checkCharge = cms.bool(False), - cut = cms.string('mass > 20'), - decay = cms.string('goodAODMuons@+ goodAODTrackCands@-') -) - -process.dimuonsOneGlobalMuonOneTrackAOD = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("dimuonsOneTrackAOD"), - cut = cms.string('charge = 0 & daughter(0).isGlobalMuon = 1') -) - -# dimuon filters -process.dimuonsFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("dimuonsAOD"), - minNumber = cms.uint32(1) -) - -process.dimuonsOneTrackFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("dimuonsOneTrackAOD"), - minNumber = cms.uint32(1) -) - -# Skim paths -process.EWK_dimuonsPath = cms.Path( - process.EWK_MuHLTFilter * - process.goodAODMuons * - process.goodAODGlobalMuons * - process.dimuonsAOD * - process.dimuonsGlobalAOD * - process.dimuonsOneStandAloneMuonAOD * - process.dimuonsFilter - ) - -process.EWK_dimuonsOneTrackPath = cms.Path( - process.EWK_MuHLTFilter * - process.goodAODMuons * - process.goodAODGlobalMuons * - process.trackCandsUnfiltered * - process.goodAODTrackCands * - process.dimuonsOneTrackAOD * - process.dimuonsOneGlobalMuonOneTrackAOD * - process.dimuonsOneTrackFilter -) - - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * - -EWK_dimuonsEventContent = cms.PSet( - outputCommands = cms.untracked.vstring( - 'keep *_trackCandsUnfiltered_*_*', - 'keep *_goodAODTrackCands_*_*', - 'keep *_goodAODMuons_*_*', - 'keep *_dimuonsAOD_*_*', - 'keep *_dimuonsGlobalAOD_*_*', - 'keep *_dimuonsOneStandAloneMuonAOD_*_*', - 'keep *_dimuonsOneTrackAOD_*_*', - 'keep *_dimuonsOneGlobalMuonOneTrackAOD_*_*', - ) -) - -EWK_DimuonSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -EWK_DimuonSkimEventContent.outputCommands.extend(AODEventContent.outputCommands) -EWK_DimuonSkimEventContent.outputCommands.extend(EWK_dimuonsEventContent.outputCommands) - -EWK_DimuonSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_dimuonsPath', - 'EWK_dimuonsOneTrackPath') - ) -) - -process.EWK_DimuonSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_DimuonSkimEventContent, - EWK_DimuonSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKDimuonSkim'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('file:testEWKDimuonSkim.root') -) - -process.outpath = cms.EndPath(process.EWK_DimuonSkimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_ElectronSkim.py b/ElectroWeakAnalysis/Skimming/test/EWK_ElectronSkim.py deleted file mode 100755 index 093538cdbcdec..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_ElectronSkim.py +++ /dev/null @@ -1,71 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKElectronSkim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:/scratch1/cms/data/summer09/aodsim/zee/0022/E0869C04-088D-DE11-BFCA-001CC4A6CCE6.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(100) ) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -# HLT filter -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_ElectronHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -# Uncomment this to access 8E29 menu and filter on it -#process.EWK_ElectronHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -#process.EWK_ElectronHLTFilter.HLTPaths = ["HLT_Ele10_LW_L1R", "HLT_DoubleEle5_SW_L1R"] -# Uncomment this to filter on 1E31 HLT menu -process.EWK_ElectronHLTFilter.HLTPaths = ["HLT_Ele20_SW_L1R", "HLT_DoubleEle10_SW_L1R"] - -# Electron filter -process.goodElectrons = cms.EDFilter("CandViewSelector", - src = cms.InputTag("gsfElectrons"), - cut = cms.string('pt > 20'), - filter = cms.bool(True) -) - -# Skim path -process.EWK_ElectronSkimPath = cms.Path( - process.EWK_ElectronHLTFilter + - process.goodElectrons -) - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * -EWK_ElectronSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -EWK_ElectronSkimEventContent.outputCommands.extend(AODEventContent.outputCommands) - -EWK_ElectronSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_ElectronSkimPath') - ) -) - -process.EWK_ElectronSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_ElectronSkimEventContent, - EWK_ElectronSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKElectronSkim'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('file:testEWKElectronSkim.root') -) - -process.outpath = cms.EndPath(process.EWK_ElectronSkimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_ElectronSkim_Drop.py b/ElectroWeakAnalysis/Skimming/test/EWK_ElectronSkim_Drop.py deleted file mode 100644 index eff59150da300..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_ElectronSkim_Drop.py +++ /dev/null @@ -1,94 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKElectronSkim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'rfio:/tmp/ikesisog/3E541A7B-EE86-DE11-BA46-001E682F273A.root' - ) -) - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') - - -# HLT filter -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_ElectronHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() - -# Uncomment this to access 8E29 menu and filter on it -process.EWK_ElectronHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -process.EWK_ElectronHLTFilter.HLTPaths = ["HLT_Ele15_LW_L1R"] - - -# Electron filter -process.goodElectrons = cms.EDFilter("CandViewSelector", - src = cms.InputTag("gsfElectrons"), - cut = cms.string('pt > 30.0'), - filter = cms.bool(True) -) - -# Skim path -process.EWK_ElectronSkimPath = cms.Path( - process.EWK_ElectronHLTFilter + - process.goodElectrons -) - - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * -EWK_ElectronSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -EWK_ElectronSkimEventContent.outputCommands.extend(AODEventContent.outputCommands) - -EWK_ElectronSkimEventContent.outputCommands.extend( - cms.untracked.vstring('drop *', - "keep recoSuperClusters_*_*_*", - "keep *_gsfElectrons_*_*", - "keep recoGsfTracks_electronGsfTracks_*_*", - "keep *_gsfElectronCores_*_*", - "keep *_correctedHybridSuperClusters_*_*", - "keep *_correctedMulti5x5SuperClustersWithPreshower_*_*", - "keep edmTriggerResults_*_*_*", - "keep recoCaloMETs_*_*_*", - "keep recoMETs_*_*_*", - "keep *_particleFlow_electrons_*", - "keep *_pfMet_*_*", - "keep *_multi5x5SuperClusterWithPreshower_*_*", - "keep recoVertexs_*_*_*", - "keep *_hltTriggerSummaryAOD_*_*", - "keep floatedmValueMap_*_*_*", - "keep recoBeamSpot_*_*_*" ) -) - -EWK_ElectronSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_ElectronSkimPath') - ) -) - -process.EWK_ElectronSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_ElectronSkimEventContent, - EWK_ElectronSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKSKIMESEL'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('EWKElectronSkim.root') -) - -process.outpath = cms.EndPath(process.EWK_ElectronSkimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_ElectronSkim_NoDrop.py b/ElectroWeakAnalysis/Skimming/test/EWK_ElectronSkim_NoDrop.py deleted file mode 100644 index 58f7ba4be3c8d..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_ElectronSkim_NoDrop.py +++ /dev/null @@ -1,75 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKElectronSkim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'rfio:/tmp/ikesisog/3E541A7B-EE86-DE11-BA46-001E682F273A.root' - ) -) - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') - - -# HLT filter -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_ElectronHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() - -# Uncomment this to access 8E29 menu and filter on it -process.EWK_ElectronHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -process.EWK_ElectronHLTFilter.HLTPaths = ["HLT_Ele15_LW_L1R"] - - -# Electron filter -process.goodElectrons = cms.EDFilter("CandViewSelector", - src = cms.InputTag("gsfElectrons"), - cut = cms.string('pt > 30.0'), - filter = cms.bool(True) -) - -# Skim path -process.EWK_ElectronSkimPath = cms.Path( - process.EWK_ElectronHLTFilter + - process.goodElectrons -) - - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * - -EWK_ElectronSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -EWK_ElectronSkimEventContent.outputCommands.extend(AODEventContent.outputCommands) - -EWK_ElectronSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_ElectronSkimPath') - ) -) - -process.EWK_ElectronSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_ElectronSkimEventContent, - EWK_ElectronSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKSKIMESEL'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('EWKElectronSkim.root') -) - -process.outpath = cms.EndPath(process.EWK_ElectronSkimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_HighPtMuSkim.py b/ElectroWeakAnalysis/Skimming/test/EWK_HighPtMuSkim.py deleted file mode 100755 index f1041c72d6027..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_HighPtMuSkim.py +++ /dev/null @@ -1,69 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKHighPtMuSkim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:/scratch2/users/fabozzi/spring10/zmm/38262142-DF46-DF11-8238-0030487C6A90.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('GR_R_35X_V6::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -# Muon filter -process.goodMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag("muons"), - cut = cms.string('pt > 15.0 && ( isGlobalMuon=1 || isTrackerMuon=1)'), - filter = cms.bool(True) -) - -# dxy filter on good muons -process.dxyFilteredMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag("goodMuons"), - cut = cms.string('abs(innerTrack().dxy)<1.0'), - filter = cms.bool(True) -) - -# Skim path -process.EWK_HighPtMuSkimPath = cms.Path( - process.goodMuons * - process.dxyFilteredMuons -) - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * -EWK_MuSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -EWK_MuSkimEventContent.outputCommands.extend(RECOEventContent.outputCommands) - -EWK_MuSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_HighPtMuSkimPath') - ) -) - -process.EWK_MuSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_MuSkimEventContent, - EWK_MuSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKHighPtMuSkim'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('EWK_HighPtMuSkim_SD_Mu.root') -) - -process.outpath = cms.EndPath(process.EWK_MuSkimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_MuSkim.py b/ElectroWeakAnalysis/Skimming/test/EWK_MuSkim.py deleted file mode 100755 index 7690cec51b2cf..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_MuSkim.py +++ /dev/null @@ -1,63 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKMuSkim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:/scratch2/users/fabozzi/8039A1DC-9A5B-DF11-A15E-001A6478706C.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('GR_R_35X_V6::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -# HLT filter -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_MuHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -# Uncomment this to access 8E29 menu and filter on it -#process.EWK_MuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -#process.EWK_MuHLTFilter.HLTPaths = ["HLT_Mu3", "HLT_DoubleMu3"] -# Uncomment this to filter on 1E31 HLT menu -process.EWK_MuHLTFilter.HLTPaths = ["HLT_L1Mu20", "HLT_L2Mu9", "HLT_Mu9", "HLT_DoubleMu3"] - -# Skim path -process.EWK_MuSkimPath = cms.Path( - process.EWK_MuHLTFilter -) - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * -EWK_MuSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -EWK_MuSkimEventContent.outputCommands.extend(AODEventContent.outputCommands) - -EWK_MuSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_MuSkimPath') - ) -) - -process.EWK_MuSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_MuSkimEventContent, - EWK_MuSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKMuSkim'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('EWK_MuSkim_SD_Mu.root') -) - -process.outpath = cms.EndPath(process.EWK_MuSkimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_MuSkimFirstCollisions.py b/ElectroWeakAnalysis/Skimming/test/EWK_MuSkimFirstCollisions.py deleted file mode 100755 index 72def53162cf5..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_MuSkimFirstCollisions.py +++ /dev/null @@ -1,189 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKMuSkimFirstCollisions") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# source - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - -### files at - -## - -"rfio:/castor/cern.ch/cms/store/data/Commissioning10/MinimumBias/RECO/v8/000/133/446/FE7241BD-EC49-DF11-8E75-001D09F29146.root", - - - ) -) -# to handle some format problem with some of the first CMS collsion runs - -process.source.inputCommands = cms.untracked.vstring("keep *", "drop *_MEtoEDMConverter_*_*", "drop L1GlobalTriggerObjectMapRecord_hltL1GtObjectMap__HLT") - - - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 10000 - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('GR_R_35X_V6::All') -#process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -# HLT filter -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_MuHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -# Uncomment this to access 8E29 menu and filter on it -process.EWK_MuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -process.EWK_MuHLTFilter.HLTPaths = [ - "HLT_MinBiasBSC", - "HLT_L1Mu", "HLT_L1MuOpen", "HLT_L1Mu20", - "HLT_L2Mu9", "HLT_L2Mu11", - "HLT_Mu5", "HLT_Mu9" - ] - -# Uncomment this to filter on 1E31 HLT menu -#process.EWK_MuHLTFilter.HLTPaths = ["HLT_Mu9", "HLT_DoubleMu3"] - -process.load ('L1TriggerConfig.L1GtConfigProducers.L1GtTriggerMaskTechTrigConfig_cff') -process.load('HLTrigger/HLTfilters/hltLevel1GTSeed_cfi') -process.hltLevel1GTSeed.L1TechTriggerSeeding = cms.bool(True) -process.hltLevel1GTSeed.L1SeedsLogicalExpression = cms.string('0 AND (40 OR 41) AND NOT (36 OR 37 OR 38 OR 39)') - -process.options = cms.untracked.PSet( - SkipEvent = cms.untracked.vstring('ProductNotFound'), - wantSummary = cms.untracked.bool(True) - ) - -# Merge CaloMuons into the collection of reco::Muons -#from RecoMuon.MuonIdentification.calomuons_cfi import calomuons; -#process.muons = cms.EDProducer("CaloMuonMerger", -# muons = cms.InputTag("muons"), # half-dirty thing. it works aslong as we're the first module using muons in the path -# caloMuons = cms.InputTag("calomuons"), -# minCaloCompatibility = calomuons.minCaloCompatibility) - -## And re-make isolation, as we can't use the one in AOD because our collection is different -#process.load('RecoMuon.MuonIsolationProducers.muIsolation_cff') - - - -# Muon filter -process.goodMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag("muons"), - cut = cms.string('pt > 10.0 && ( isGlobalMuon=1 || (isTrackerMuon =1 && numberOfMatches>=1 ))'), # also || (isCaloMuon=1) ?? - filter = cms.bool(True) -) - -process.rmCosmicFromGoodMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag("goodMuons"), - cut = cms.string('abs(innerTrack().dxy)<1.0'), - filter = cms.bool(True) -) - - -process.goodMuonsPt15 = cms.EDFilter("MuonSelector", - src = cms.InputTag("goodMuons"), - cut = cms.string('(isGlobalMuon=1 || isTrackerMuon =1) && pt > 15.0'), - filter = cms.bool(False) -) - -# Dump of interesting events, with mu pt>15 -process.eventDump = cms.EDAnalyzer( - "EventDumper", - # srcMuons = cms.InputTag("goodMuonsPt15") - ) - - -# require at least two tracks with pt>.5, to hopefully remove further cosmic contaminations -process.tracks = cms.EDFilter("TrackSelector", - src=cms.InputTag("generalTracks"), - cut = cms.string('abs(dxy)<0.5 && pt > 0.5 && hitPattern().numberOfValidPixelHits>0'), - filter = cms.bool(True) -) - -process.tracksFilter = cms.EDFilter("TrackCountFilter", - src = cms.InputTag("tracks"), - minNumber = cms.uint32(1) - ) - - -process.dimuonsAOD = cms.EDFilter("CandViewShallowCloneCombiner", - checkCharge = cms.bool(False), - cut = cms.string('mass > 0'), - decay = cms.string('goodMuons@+ goodMuons@-') -) - - -# For creation of WMuNu Candidates -process.load("ElectroWeakAnalysis.WMuNu.wmunusProducer_cfi") - - - - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * -EWK_MuSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) - -EWK_MuSkimEventContent.outputCommands.extend(FEVTEventContent.outputCommands) - - -EWK_MuSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_MuSkimPath') - ) -) - - -dimuonsEventContent = cms.PSet( - outputCommands = cms.untracked.vstring( - 'keep *_dimuonsAOD_*_*', - 'keep *_CosmicFromGoodMuons_*_*', - 'keep recoWMuNuCandidates_*_*_*' - ) - ) - - -EWK_MuSkimEventContent.outputCommands.extend(dimuonsEventContent.outputCommands) - - - -process.EWK_MuSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_MuSkimEventContent, - EWK_MuSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKMuSkim'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133446_1.root') - -) - - - -# Skim path -process.EWK_MuSkimPath = cms.Path( - process.EWK_MuHLTFilter + - process.hltLevel1GTSeed+ - process.goodMuons + - process.rmCosmicFromGoodMuons + -# process.tracks + -# process.tracksFilter + - process.dimuonsAOD + - process.allWMuNus + -# process.goodMuonsPt15 + - process.eventDump - - -) - - -process.outpath = cms.EndPath(process.EWK_MuSkimOutputModule) - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_WMuNu_SubSkim.py b/ElectroWeakAnalysis/Skimming/test/EWK_WMuNu_SubSkim.py deleted file mode 100644 index 2193fbfa506e5..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_WMuNu_SubSkim.py +++ /dev/null @@ -1,100 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process name -process = cms.Process("WMuNuAODSkim") - -# Source, events to process -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring ( -# "file:/data4/InclusiveMu15_Summer09-MC_31X_V3_AODSIM-v1/0024/C2F408ED-E181-DE11-8949-0030483344E2.root" - "file:/data4/Wmunu_Summer09-MC_31X_V3_AODSIM-v1/0009/F82D4260-507F-DE11-B5D6-00093D128828.root" - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -#process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) - -# Log information -process.MessageLogger = cms.Service("MessageLogger", - cerr = cms.untracked.PSet( - enable = cms.untracked.bool(False) - ), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( - limit = cms.untracked.int32(-1) - ), - enable = cms.untracked.bool(True), - threshold = cms.untracked.string('ERROR') - ), - debugModules = cms.untracked.vstring('corMetWMuNus') -) - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# Trigger filter (apply if for safety even if it may be redundant on a SD input) -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_WMuNuHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -process.EWK_WMuNuHLTFilter.HLTPaths = ["HLT_Mu9", "HLT_DoubleMu3"] -#-> Use the following line for the 8E29 menu: -process.EWK_WMuNuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -#-> Use the following line for the 1E31 menu: -#process.EWK_WMuNuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") - -# Make sure that we have any muon there and optionally apply quality, eta, pt cuts -process.goodMuons = cms.EDFilter("CandViewSelector", - src = cms.InputTag("muons") - , filter = cms.bool(True) - , cut = cms.string('pt>0') - #, cut = cms.string('isGlobalMuon = 1 & abs(eta) < 2.5 & pt > 15') -) - -# For creaton of WMuNu Candidates -process.load("ElectroWeakAnalysis.WMuNu.wmunusProducer_cfi") - -# Main path -process.EWK_WMuNuSkimPath = cms.Path( - process.EWK_WMuNuHLTFilter - * process.goodMuons - * process.allWMuNus -) - -# Choose collections for output -process.load("Configuration.EventContent.EventContent_cff") - -# Write either a full AOD ... -#process.EWK_WMuNuEventContent = cms.PSet(outputCommands=process.AODEventContent.outputCommands) -# ... OR a reduced one with ~ 1/3 of original AOD size -process.EWK_WMuNuEventContent = cms.PSet(outputCommands=cms.untracked.vstring('drop *')) -process.EWK_WMuNuEventContent.outputCommands.extend( - cms.untracked.vstring( - 'keep *_offlineBeamSpot_*_*' - , 'keep *_TriggerResults_*_HLT8E29' - , 'keep *_hltTriggerSummaryAOD_*_HLT8E29' - , 'keep *_muons_*_*' - , 'keep recoTracks_globalMuons_*_*' - , 'keep recoTracks_standAloneMuons_*_*' - , 'keep *_met_*_*' - , 'keep *_corMetGlobalMuons_*_*' - , 'keep *_tcMet_*_*' - , 'keep *_pfMet_*_*' - , 'keep *_antikt5CaloJets_*_*' - , 'keep *_antikt5PFJets_*_*' - , 'keep recoWMuNuCandidates_*_*_*' - ) -) - -# Output -process.EWK_WMuNuSkimOutputModule = cms.OutputModule("PoolOutputModule" - , process.EWK_WMuNuEventContent - , dropMetaDataForDroppedData = cms.untracked.bool(True) - , SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('EWK_WMuNuSkimPath') - ) - , dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKWMunuSkim') - , dataTier = cms.untracked.string('USER') - ) - , fileName = cms.untracked.string('EWK_WMuNu_SubSkim.root') -) - -# End path -process.outpath = cms.EndPath(process.EWK_WMuNuSkimOutputModule) diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_WMuNu_SubSkim_PrunedTracks.py b/ElectroWeakAnalysis/Skimming/test/EWK_WMuNu_SubSkim_PrunedTracks.py deleted file mode 100644 index b4679dc00315a..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_WMuNu_SubSkim_PrunedTracks.py +++ /dev/null @@ -1,126 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process name -process = cms.Process("WMuNuAODSkim") - -# Source, events to process -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring ( - #"file:/data4/InclusiveMu15_Summer09-MC_31X_V3_AODSIM-v1/0024/C2F408ED-E181-DE11-8949-0030483344E2.root" - "file:/data4/Wmunu_Summer09-MC_31X_V3_AODSIM-v1/0009/F82D4260-507F-DE11-B5D6-00093D128828.root" - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -#process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) - -# Log information -process.MessageLogger = cms.Service("MessageLogger", - cerr = cms.untracked.PSet( - enable = cms.untracked.bool(False) - ), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( - limit = cms.untracked.int32(-1) - ), - enable = cms.untracked.bool(True), - threshold = cms.untracked.string('ERROR') - ), - debugModules = cms.untracked.vstring('corMetWMuNus') -) - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# Trigger filter (apply if for safety even if it may be redundant on a SD input) -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_WMuNuHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -process.EWK_WMuNuHLTFilter.HLTPaths = ["HLT_Mu9", "HLT_DoubleMu3"] -#-> Use the following line for the 8E29 menu: -process.EWK_WMuNuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT8E29") -#-> Use the following line for the 1E31 menu: -#process.EWK_WMuNuHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") - -# Make sure that we have any muon there and optionally apply quality, eta, pt cuts -process.goodMuons = cms.EDFilter("CandViewSelector", - src = cms.InputTag("muons") - , filter = cms.bool(True) - , cut = cms.string('pt>0') - #, cut = cms.string('isGlobalMuon = 1 & abs(eta) < 2.5 & pt > 15') -) - -# Tracks filtered -process.goodAODTracks = cms.EDFilter("TrackSelector", - src = cms.InputTag("generalTracks"), - #cut = cms.string('pt > 5.0 & numberOfValidHits>7') - cut = cms.string('pt > 5.0') -) - -# Electrons filtered -process.goodAODElectrons = cms.EDFilter("GsfElectronSelector", - src = cms.InputTag("gsfElectrons"), - cut = cms.string('pt > 5.0') -) - -# Photons filtered -process.goodAODPhotons = cms.EDFilter("PhotonSelector", - src = cms.InputTag("photons"), - cut = cms.string('et > 5.0') -) - -# For creaton of WMuNu Candidates -#process.load("ElectroWeakAnalysis.WMuNu.wmunusProducer_cfi") - -# Main path -process.EWK_WMuNuSkimPath = cms.Path( - process.EWK_WMuNuHLTFilter - + process.goodMuons - + process.goodAODTracks - + process.goodAODElectrons - + process.goodAODPhotons - #+ process.allWMuNus -) - -# Choose collections for output -process.load("Configuration.EventContent.EventContent_cff") - -# Write either a full AOD ... -#process.EWK_WMuNuEventContent = cms.PSet(outputCommands=process.AODEventContent.outputCommands) -# ... OR a reduced one with ~ 1/10 of original AOD size -process.EWK_WMuNuEventContent = cms.PSet(outputCommands=cms.untracked.vstring('drop *')) -process.EWK_WMuNuEventContent.outputCommands.extend( - cms.untracked.vstring( - 'keep *_offlineBeamSpot_*_*' - , 'keep *_TriggerResults_*_HLT8E29' - , 'keep *_hltTriggerSummaryAOD_*_HLT8E29' - , 'keep *_muons_*_*' - , 'keep recoTracks_globalMuons_*_*' - , 'keep recoTracks_standAloneMuons_*_*' - , 'keep *_met_*_*' - , 'keep *_corMetGlobalMuons_*_*' - , 'keep *_tcMet_*_*' - , 'keep *_pfMet_*_*' - , 'keep *_antikt5CaloJets_*_*' - , 'keep *_antikt5PFJets_*_*' - #### - , 'keep *_goodAODTracks_*_*' - , 'keep *_goodAODElectrons_*_*' - , 'keep *_goodAODPhotons_*_*' - #, 'keep recoWMuNuCandidates_*_*_*' - ) -) - -# Output -process.EWK_WMuNuSkimOutputModule = cms.OutputModule("PoolOutputModule" - , process.EWK_WMuNuEventContent - , dropMetaDataForDroppedData = cms.untracked.bool(True) - , SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('EWK_WMuNuSkimPath') - ) - , dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKWMunuSkim') - , dataTier = cms.untracked.string('USER') - ) - , fileName = cms.untracked.string('EWK_WMuNu_SubSkim.root') -) - -# End path -process.outpath = cms.EndPath(process.EWK_WMuNuSkimOutputModule) diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_WZSkim.py b/ElectroWeakAnalysis/Skimming/test/EWK_WZSkim.py deleted file mode 100755 index 92c16afb57a21..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_WZSkim.py +++ /dev/null @@ -1,120 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EWKWZSkim") - -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) -process.options.FailPath = cms.untracked.vstring('ProductNotFound') - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:/scratch2/users/fabozzi/spring10/wmn/24BF0D12-DF46-DF11-BA71-001D0968F2F6.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('START36_V8::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -# HLT filter -import HLTrigger.HLTfilters.hltHighLevel_cfi -process.EWK_MuHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -process.EWK_MuHLTFilter.HLTPaths = ["HLT_Mu9"] - -# Muon candidates filters -process.goodMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag("muons"), - cut = cms.string('pt > 20 && abs(eta)<2.4 && isGlobalMuon = 1 && isTrackerMuon = 1 && isolationR03().sumPt<3.0'), - filter = cms.bool(True) -) - -# dxy filter on good muons -process.dxyFilteredMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag("goodMuons"), - cut = cms.string('abs(innerTrack().dxy)<1.0'), - filter = cms.bool(True) -) - -# Z->mumu candidates -process.dimuons = cms.EDProducer("CandViewShallowCloneCombiner", - checkCharge = cms.bool(True), - cut = cms.string('mass > 60'), - decay = cms.string("dxyFilteredMuons@+ dxyFilteredMuons@-") -) - -# Z filters -process.dimuonsFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("dimuons"), - minNumber = cms.uint32(1) -) - -# WMuNu candidates -process.load("ElectroWeakAnalysis.WMuNu.wmunusProducer_cfi") -# WMuNu candidates selectors -process.load("ElectroWeakAnalysis.WMuNu.WMuNuSelection_cff") - -process.seltcMet.JetTag = cms.untracked.InputTag("ak5CaloJets") -process.seltcMet.TrigTag = cms.untracked.InputTag("TriggerResults::HLT") -process.seltcMet.IsCombinedIso = cms.untracked.bool(True) -process.seltcMet.IsoCut03 = cms.untracked.double(0.15) - -process.selpfMet.JetTag = cms.untracked.InputTag("ak5CaloJets") -process.selpfMet.TrigTag = cms.untracked.InputTag("TriggerResults::HLT") -process.selpfMet.IsCombinedIso = cms.untracked.bool(True) -process.selpfMet.IsoCut03 = cms.untracked.double(0.15) - -# Skim paths -process.EWK_dimuonsPath = cms.Path( - process.EWK_MuHLTFilter * - process.goodMuons * - process.dxyFilteredMuons * - process.dimuons * - process.dimuonsFilter - ) - -process.EWK_tcMetWMuNusPath = cms.Path( - process.EWK_MuHLTFilter * - process.tcMetWMuNus * - process.seltcMet -) - -process.EWK_pfMetWMuNusPath = cms.Path( - process.EWK_MuHLTFilter * - process.pfMetWMuNus * - process.selpfMet -) - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * -EWK_WZSkimEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -EWK_WZSkimEventContent.outputCommands.extend(FEVTEventContent.outputCommands) - -EWK_WZSkimEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'EWK_dimuonsPath', - 'EWK_tcMetWMuNusPath', - 'EWK_pfMetWMuNusPath') - ) -) - -process.EWK_WZSkimOutputModule = cms.OutputModule("PoolOutputModule", - EWK_WZSkimEventContent, - EWK_WZSkimEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('EWKWZSkim'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('EWK_WZSkim_SD_Mu.root') -) - -process.outpath = cms.EndPath(process.EWK_WZSkimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/EWK_ZMuMuSubskim.py b/ElectroWeakAnalysis/Skimming/test/EWK_ZMuMuSubskim.py deleted file mode 100755 index 609b1de566de8..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/EWK_ZMuMuSubskim.py +++ /dev/null @@ -1,38 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TestZMuMuSubskim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:/scratch2/users/fabozzi/spring10/zmm/38262142-DF46-DF11-8238-0030487C6A90.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -#process.GlobalTag.globaltag = cms.string('START37_V1A::All') -process.GlobalTag.globaltag = cms.string('MC_3XY_V26::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -############ -## no MC truth and on data -process.load("ElectroWeakAnalysis.Skimming.zMuMu_SubskimPaths_cff") - -# Output module configuration -process.load("ElectroWeakAnalysis.Skimming.zMuMuSubskimOutputModule_cfi") -process.zMuMuSubskimOutputModule.fileName = 'testZMuMuSubskim.root' - -############ -# MC truth matching sequence -#process.load("ElectroWeakAnalysis.Skimming.zMuMu_SubskimPathsWithMCTruth_cff") -#process.zMuMuSubskimOutputModule.outputCommands.extend(process.mcEventContent.outputCommands) -############ - -process.outpath = cms.EndPath(process.zMuMuSubskimOutputModule) - - diff --git a/ElectroWeakAnalysis/Skimming/test/dimuonsSkim.py b/ElectroWeakAnalysis/Skimming/test/dimuonsSkim.py deleted file mode 100755 index 4b0d8a46ec0ed..0000000000000 --- a/ElectroWeakAnalysis/Skimming/test/dimuonsSkim.py +++ /dev/null @@ -1,29 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TestDimuonReco") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:/scratch2/users/fabozzi/spring10/zmm/38262142-DF46-DF11-8238-0030487C6A90.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(100) ) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('START3X_V26::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.load("ElectroWeakAnalysis.Skimming.dimuons_SkimPaths_cff") - -# Output module configuration -process.load("ElectroWeakAnalysis.Skimming.dimuonsOutputModule_cfi") -process.dimuonsOutputModule.fileName = 'file:testDimuonSkim.root' - -process.outpath = cms.EndPath(process.dimuonsOutputModule) - - diff --git a/ElectroWeakAnalysis/Utilities/BuildFile.xml b/ElectroWeakAnalysis/Utilities/BuildFile.xml deleted file mode 100644 index bb6b2517605c7..0000000000000 --- a/ElectroWeakAnalysis/Utilities/BuildFile.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/ElectroWeakAnalysis/Utilities/README b/ElectroWeakAnalysis/Utilities/README deleted file mode 100644 index 83b3231b463bc..0000000000000 --- a/ElectroWeakAnalysis/Utilities/README +++ /dev/null @@ -1,229 +0,0 @@ ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -UTILITIES in ElectroWeakAnalysis/Utilities: ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - -IMPORTANT BEFORE COMPILATION/LINK: From the 330 series on, full LHAPDF libraries are -shipped with CMSSW. However, the default libraries used in the release are always -the "light" ones, which are very slow for PDF reweighting. In order to run fast, -you should execute: - 1) scram setup lhapdffull - 2) touch $CMSSW_BASE/src/ElectroWeakAnalysis/Utilities/BuildFile.xml - 3) cmsenv - 4) scram b - -If you prefer to use your own LHAPDF library and files, assumed to be installed -under /usr/local, then do: - 1) Edit the file $CMSSW_BASE/config/toolbox/$SCRAM_ARCH/tools/selected/lhapdf.xml - 2.a) In that file, change the default for LHAPDF_BASE to "/usr/local" - 2.b) Change also the field "version" in order to match your insalled version - 3) scram setup lhapdf (and check that environment variables point to /usr/local/...) - 4) touch $CMSSW_BASE/src/ElectroWeakAnalysis/Utilities/BuildFile.xml - 5) cmsenv - 6) scram b - -src/PdfWeightProducer.cc -=========================== -- Writes into the data structure a std::vector containing the LHAPDF weights - PDF_user(i)/PDF__in_generated_sample for each event, where - PDF_user(i) corresponds to the PDF set chosen by the user in the configuration file - and i runs over the total number of members in the set. These weights can be - easily used later to assign systematics. Example of usage: - - # Produce PDF weights (maximum is 3) - process.pdfWeights = cms.EDProducer("PdfWeightProducer", - # Fix POWHEG if buggy (this PDF set will also appear on output, - # so only two more PDF sets can be added in PdfSetNames if not "") - #FixPOWHEG = cms.untracked.string("cteq66.LHgrid"), - GenTag = cms.untracked.InputTag("genParticles"), - PdfInfoTag = cms.untracked.InputTag("generator"), - PdfSetNames = cms.untracked.vstring( - "cteq66.LHgrid" - , "MRST2006nnlo.LHgrid" - , "NNPDF10_100.LHgrid" - ) - ) - -- A typical application is the determination of the PDF systematics. This is - implemented in "src/PdfSystematicsAnalyzer.cc". This analyzer counts the - processed events using PDF re-weighting, and assigns systematic - uncertainties on the rate and on the acceptance according to the recipe - described in hep-ph/0605240. Usage: - - # Collect uncertainties for rate and acceptance - process.pdfSystematics = cms.EDFilter("PdfSystematicsAnalyzer", - SelectorPath = cms.untracked.string('pdfana'), # put here the selection path - PdfWeightTags = cms.untracked.VInputTag( - "pdfWeights:cteq66" - , "pdfWeights:MRST2006nnlo" - , "pdfWeights:NNPDF10" - ) - ) - NOTE: no underscores can be written in a CMSSW product, so NNPDF products will - not keep the last suffix from the original name ("_100" missing in this case). - -- A test example for these utilities is "test/PdfSystematicsAnalyzer.py". There, - one counts re-weighted events before and after selection, which gives immediate - access to the determination of PDF uncertainties on rate and acceptance for the - given process under study. - - -src/ISRWeightProducer.cc (IN PROGRESS) -============================ -- Writes into the data structure a product containing the event weight ("double") - to be applied to obtain an estimate of variations due to a modification of the - Z (or W) pt spectrum at the generator level. The input weights as a function - of the boson Pt are proovided via vectors in the configuration file. - Example of usage: - - # Produce event weights according to generated boson Pt - # Example corresponds to approximate weights to study - # systematic effects due to ISR uncertainties (Z boson) - process.isrWeight = cms.EDProducer("ISRWeightProducer", - GenTag = cms.untracked.InputTag("genParticles"), - ISRBinEdges = cms.untracked.vdouble( - 0., 1., 2., 3., 4., 5., 6., 7., 8., 9. - , 10., 11., 12., 13., 14., 15., 16., 17., 18., 19. - , 20., 21., 22., 23., 24., 25., 26., 27., 28., 29. - , 30., 31., 32., 33., 34., 35., 36., 37., 38., 39. - , 40., 41., 42., 43., 44., 45., 46., 47., 48., 49. - , 999999. - ), - PtWeights = cms.untracked.vdouble( - 0.800665, 0.822121, 0.851249, 0.868285, 0.878733 - , 0.953853, 0.928108, 0.982021, 1.00659 , 1.00648 - , 1.03218 , 1.04924 , 1.03621 , 1.08743 , 1.01951 - , 1.10519 , 0.984263, 1.04853 , 1.06724 , 1.10183 - , 1.0503 , 1.13162 , 1.03837 , 1.12936 , 0.999173 - , 1.01453 , 1.11435 , 1.10545 , 1.07199 , 1.04542 - , 1.00828 , 1.0822 , 1.09667 , 1.16144 , 1.13906 - , 1.27974 , 1.14936 , 1.23235 , 1.06667 , 1.06363 - , 1.14225 , 1.22955 , 1.12674 , 1.03944 , 1.04639 - , 1.13667 , 1.20493 , 1.09349 , 1.2107 , 1.21073 - ) - ) - -- This weight information can be processed via the Analyzer - "src/SimpleSystematicsAnalyzer.cc". A test example is - "test/SimpleSystematicsAnalyzer.py". - -src/WeakEffectsWeightProducer.cc -==================================== -- Writes into the data structure a product containing the event weight ("double") -to take into account Weak effects in Drell-Yan production when using PYTHIA. It -corrects two weak effects: a) effects included in rhof_effective, b) Sudakov-terms -relevant at very high invariant mass. - Example of usage: - process.weakWeight = cms.EDProducer("WeakEffectsWeightProducer", - GenParticlesTag = cms.untracked.InputTag("genParticles"), - RhoParameter = cms.untracked.double(1.004) - ) - -src/FSRWeightProducer.cc (IN PROGRESS) -====================================== -- Writes into the data structure a product containing the event weight ("double") - for estimating uncertainties due to missing final state QED radiation terms in - PYTHIA for W->l nu and Z->ll. It produces the procuct of two factor: - a) Factor to go from soft-collinear approach to exact O(alpha) - (from hep-ph/0303260, only sizable for W, and small in general) - b) Factor to recover missing NLO QED terms - (using alpha(pt**2) instead of alpha(0)) - Example of usage: - - process.fsrWeight = cms.EDProducer("FSRWeightProducer", - GenTag = cms.untracked.InputTag("genParticles"), - ) - -- This weight information can be processed via the Analyzer - "src/SimpleSystematicsAnalyzer.cc". A test example is - "test/SimpleSystematicsAnalyzer.py". - - -src/ISRGammaWeightProducer.cc (IN PROGRESS) -=========================================== -- Writes into the data structure a product containing the event weight ("double") - for estimating uncertainties due to missing initial state QED radiation terms in - PYTHIA for W->l nu and Z->ll. It assumes PYTHIA6 as input. The logic is taken - from hep-ph/9812455, which is the one used for QCD matrix-element reweighting - in W/Z inclusive production. PYTHIA8 should already include this QED ISR - reweighting. - Example of usage: - - process.isrGammaWeight = cms.EDProducer("ISRGammaWeightProducer", - GenTag = cms.untracked.InputTag("genParticles"), - ) - -- This weight information can be processed via the Analyzer - "src/SimpleSystematicsAnalyzer.cc". A test example is - "test/SimpleSystematicsAnalyzer.py". - -src/DistortedMuonProducer.cc -============================ - -- Writes into the data structure a new reco::Muon collection distorted by - smearing and efficiency effects. This new collection can be easily used as - a realistic Monte Carlo prediction for the latest steps of the analysis. - The input distortions are provided as a function of pseudorapidity via - vectors in the configuration file. To include momentum distortions properly, - we perform a previous matching between reconstructed and generated muons - using standard CMSSW matching utilities. - -- An example showing how to use this code is given in "test/distortedMuons.py". The - relevant lines in the configuration file are: - - process.genMatchMap = cms.EDFilter("MCTruthDeltaRMatcherNew", - src = cms.InputTag("muons"), - matched = cms.InputTag("genParticles"), - distMin = cms.double(0.15), - matchPDGId = cms.vint32(13) - ) - - process.distortedMuons = cms.EDFilter("DistortedMuonProducer", - MuonTag = cms.untracked.InputTag("muons"), - GenMatchTag = cms.untracked.InputTag("genMatchMap"), - EtaBinEdges = cms.untracked.vdouble(-2.1,2.1), # one more entry than next vectors - ShiftOnOneOverPt = cms.untracked.vdouble(1.e-4), #in [1/GeV] - RelativeShiftOnPt = cms.untracked.vdouble(0.), - UncertaintyOnOneOverPt = cms.untracked.vdouble(2.e-4), #in [1/GeV] - RelativeUncertaintyOnPt = cms.untracked.vdouble(1.e-3), - EfficiencyRatioOverMC = cms.untracked.vdouble(0.99) - ) - -src/DistortedMuonProducerFromDB.cc (under development) -================================== - -- Writes into the data structure a new reco::Muon collection distorted by - scale and smearing effects. This new collection can be easily used as a - realistic Monte Carlo prediction for the latest steps of the analysis. - We perform a previous matching between reconstructed and generated muons - using standard CMSSW matching utilities. The input distortions are taken - from the database. Efficiency effects may be added in the future. - -- An example showing how to use this code is given in "test/distortedMuonsFromDB.py". - The relevant lines in the configuration file, in addition to the specific - PoolDBESSources, are: - - process.distortedMuons = cms.EDFilter("DistortedMuonProducerFromDB", - MuonTag = cms.untracked.InputTag("muons"), - GenMatchTag = cms.untracked.InputTag("genMatchMap"), - DBScaleLabel = cms.untracked.string(''), - DBDataResolutionLabel = cms.untracked.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel'), - DBMCResolutionLabel = cms.untracked.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel'), - ) - -src/DistortedMETProducer.cc -=========================== - -- Writes into the data structure a new reco::MET collection after distortion. - This new collection can be easily used as a realistic Monte Carlo - prediction for (muon-uncorrected) MET at the latest steps of the analysis. - At present, only the simplest possibility of scaling MET and sum(ET) by - a global scale factor is implemented, and no matching with GenMET has been - tried yet. Example of usage: - - process.distortedMET = cms.EDFilter("DistortedMETProducer", - MetTag = cms.untracked.InputTag("met"), - MetScaleShift = cms.untracked.double(0.1) - ) - -- A simple example showing how to use this code is given in "test/distortedMET.py". - diff --git a/ElectroWeakAnalysis/Utilities/python/Averages_36Invpb.py b/ElectroWeakAnalysis/Utilities/python/Averages_36Invpb.py deleted file mode 100644 index 2b5cfccfc4f56..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/Averages_36Invpb.py +++ /dev/null @@ -1,347 +0,0 @@ -#!/usr/bin/env python -###################################################################################### -## Program to average CMS W and Z cross sections for muons and electrons. -## Run it as: "python Averages_3Invpb.py" -## -## Notes: -## -## a) For 3 inverse pb statistics, all likelihood profiles are already -## Gaussian to a good approximation. Therefore naive combination procedures -## work. -## b) OPTION allows to average electron and muon measurements in two ways: -## -## OPTION = "StatisticalAverage" does the average according to statistical -## uncertainties. Pros: This average is more rigurous from a statistical point -## of view, since some likelihood ansatz is necessary to interpret systematics. -## Cons: This procedure leads to larger "overall" uncertainties at the level of the -## final combination since, for similar statistical uncertainties, measurements -## with larger systematics weight the same as measurements with lower systematics. -## -## OPTION = ""StatisticalPlusSystematicAverage" does the average according -## to the overall uncertainties. It assumes that systematic ucnertainties -## can be treated in a naive Gaussian way and so added quadratically to -## statistical uncertainties in the usual way. Correlations are taken into -## account. A covariancia matrix "V" is built, and the solution X corresponds -## to the minimization of the expression " sum_{ij}(X-x_i V_{ij}^{-1} (X-x_j)", -## where x_i are the electron and muon measurements. Pros: this leads to minimal -## uncertainties for the overall uncertainty (if stat. and syst. are added in -## quadrature, as people usually do). Cons: most of the systematic soruces are -## not statistical in origin, so giving them a 68% CL Gaussian meaning is -## an ad-hoc assumption. -## -###################################################################################### - -from __future__ import division -from __future__ import print_function -from math import * - -OPTION = "StatisticalPlusSystematicAverage" -#OPTION= "StatisticalAverage" - -print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>") -print(">>>>> METHOD TO AVERAGE MUONS AND ELECTRONS is: '%s'" % (OPTION)) -print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n") - -###################################################################################### -### INPUTS FOLLOW (they are not the final version) -###################################################################################### - -# Relative luminosity error -relSysLumi = 11e-2 - -# Electron inputs -Wenu = 10.221 -absStatWenu = 0.034 -absCorrWenu = 0.144 # theory uncertainty -absUncWenu = 0.309 -print("\nWenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wenu, absStatWenu, absUncWenu, absCorrWenu, Wenu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Wenu*absUncWenu)) -print("\tTheory: %.2f %%" % (100./Wenu*absCorrWenu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wenu*sqrt(absUncWenu**2+absCorrWenu**2))) - -Wplusenu = 6.045 -absStatWplusenu = 0.026 -absCorrWplusenu = 0.097 -absUncWplusenu = 0.187 -print("\nWplusenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wplusenu, absStatWplusenu, absUncWplusenu, absCorrWplusenu, Wplusenu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Wplusenu*absUncWplusenu)) -print("\tTheory: %.2f %%" % (100./Wplusenu*absCorrWplusenu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wplusenu*sqrt(absUncWplusenu**2+absCorrWplusenu**2))) - -Wminusenu = 4.196 -absStatWminusenu = 0.022 -absCorrWminusenu = 0.073 # theory uncertainty -absUncWminusenu = 0.130 -print("\nWminusenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wminusenu, absStatWminusenu, absUncWminusenu, absCorrWminusenu, Wminusenu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Wminusenu*absUncWminusenu)) -print("\tTheory: %.2f %%" % (100./Wminusenu*absCorrWminusenu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wminusenu*sqrt(absUncWminusenu**2+absCorrWminusenu**2))) - -Zee = 0.9892 -absStatZee = 0.0109 -absCorrZee = 0.01715 # theory uncertainty -absUncZee = 0.0446 -print("\nZee cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Zee, absStatZee, absUncZee, absCorrZee, Zee*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Zee*absUncZee)) -print("\tTheory: %.2f %%" % (100./Zee*absCorrZee)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Zee*sqrt(absUncZee**2+absCorrZee**2))) - -Ratioenu = Wplusenu/Wminusenu -absStatRatioenu = 0.0097 -absCorrRatioenu = 0.0306 # theory uncertainty -absUncRatioenu = 0.0453 -print("\nRatioenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (Ratioenu, absStatRatioenu, absUncRatioenu, absCorrRatioenu)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Ratioenu*absUncRatioenu)) -print("\tTheory: %.2f %%" % (100./Ratioenu*absCorrRatioenu)) -print("\tTOTAL: %.2f %%\n" % (100./Ratioenu*sqrt(absUncRatioenu**2+absCorrRatioenu**2))) - -WZe = Wenu/Zee -absStatWZe = 0.1190 -absCorrWZe = 0.1413 # theory uncertainty -absUncWZe = 0.2329 -print("\nWZe cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (WZe, absStatWZe, absUncWZe, absCorrWZe)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./WZe*absUncWZe)) -print("\tTheory: %.2f %%" % (100./WZe*absCorrWZe)) -print("\tTOTAL: %.2f %%\n" % (100./WZe*sqrt(absUncWZe**2+absCorrWZe**2))) - -# Muon inputs -Wmunu = 10.03115 -absStatWmunu = 0.02690 -absCorrWmunu = Wmunu*sqrt(0.018**2+0.015**2) # theory uncertainty -relUncFit = 0.4e-2 -relUncPreTrig = 0.5e-2 -relUncSysEff = 0.4e-2 -relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2) -relUncMomRes = 0.1e-2 -relUncRecoil = 0.4e-2 -relUncMCStat = 1.4e-3/sqrt(2) # ?? -relUncBkg = 1.5e-2 #sqrt(2.0e-2**2+0.2e-2**2) -absUncWmunu=Wmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2) -absUncWmunu=Wmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncBkg**2) -print("\nWmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wmunu, absStatWmunu, absUncWmunu, absCorrWmunu, Wmunu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tEfficiency(Zfit,Pretrig,Z->W): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction: %.2f %%" % (100*relUncBkg)) -print("\tSignal Recoil modeling: %.2f %%" % (100*relUncRecoil)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Wmunu*absCorrWmunu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wmunu*sqrt(absUncWmunu**2+absCorrWmunu**2))) - -Wplusmunu = 5.93821 -absStatWplusmunu = 0.02033 -absCorrWplusmunu = Wplusmunu*sqrt(0.013**2+0.014**2) # theory uncertainty -relUncFit = 1.3e-2 -relUncPreTrig = 0.5e-2 -relUncSysEff = 0.4e-2 -relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2) -relUncMomRes = 0.1e-2 -relUncRecoil = 0.4e-2 -relUncMCStat = 1.4e-3 -relUncBkg = 1.7e-2 #sqrt(1.7e-2**2+0.2e-2**2) -absUncWplusmunu=Wplusmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2) -print("\nWplusmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wplusmunu, absStatWplusmunu, absUncWplusmunu, absCorrWplusmunu, Wplusmunu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tEfficiency(Zfit,Pretrig,Z->W): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction: %.2f %%" % (100*relUncBkg)) -print("\tSignal Recoil modeling: %.2f %%" % (100*relUncRecoil)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Wplusmunu*absCorrWplusmunu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wplusmunu*sqrt(absUncWplusmunu**2+absCorrWplusmunu**2))) - -Wminusmunu = 4.09297 -absStatWminusmunu = 0.01662 -absCorrWminusmunu = Wminusmunu*sqrt(0.019**2+0.013**2) # theory uncertainty -relUncFit = 1.3e-2 -relUncPreTrig = 0.5e-2 -relUncSysEff = 0.4e-2 -relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2) -relUncMomRes = 0.1e-2 -relUncRecoil = 0.4e-2 -relUncMCStat = 1.4e-3 -relUncBkg = 2.3e-2 #sqrt(2.3e-2**2+0.2e-2**2) -absUncWminusmunu=Wminusmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2) -print("\nWminusmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wminusmunu, absStatWminusmunu, absUncWminusmunu, absCorrWminusmunu, Wminusmunu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tEfficiency(Zfit,Pretrig,Z->W): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction: %.2f %%" % (100*relUncBkg)) -print("\tSignal Recoil modeling: %.2f %%" % (100*relUncRecoil)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Wminusmunu*absCorrWminusmunu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wminusmunu*sqrt(absUncWminusmunu**2+absCorrWminusmunu**2))) - -Zmumu = 0.961 # 0.893*1.025*1.01 -absStatZmumu = 0.008 # 0.030*1.025*1.01 -absCorrZmumu = Zmumu*sqrt(0.012**2+0.016**2) # theory uncertainty -relUncEff = 0.5e-2 # pre-triggering -#relUncFit= 0.28e-2 -relUncMomRes = 0.35e-2 -relUncTrigChanges = 0.1e-2 -relUncBkg = 0.28e-2 #sqrt(relUncFit**2+0.2e-2**2) -absUncZmumu=Zmumu*sqrt(relUncEff**2+relUncMomRes**2+relUncBkg**2+relUncTrigChanges**2) -print("\nZmumu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Zmumu, absStatZmumu, absUncZmumu, absCorrZmumu, Zmumu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tEfficiency(Pretriggering): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction/fit: %.2f %%" % (100*relUncBkg)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Zmumu*absCorrZmumu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Zmumu*sqrt(absUncZmumu**2+absCorrZmumu**2))) - -Ratiomunu = Wplusmunu/Wminusmunu -absStatRatiomunu = 0.0078 -absCorrRatiomunu = Ratiomunu*sqrt(0.021**2+0.0129**2) # theory uncertainty -relUncEff = 2.8e-2 -relUncMomRes = 0.3e-2 -relUncMCStat = sqrt(2)*1.4e-3 -relUncBkg = 0.7e-2 -absUncRatiomunu = Ratiomunu*sqrt(relUncEff**2+relUncMomRes**2+relUncMCStat**2+relUncBkg**2) -print("\nRatiomunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (Ratiomunu, absStatRatiomunu, absUncRatiomunu, absCorrRatiomunu)) -print(" Systematics >>>>>>>") -print("\tEfficiency(W+ versus W- tests): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction: %.2f %%" % (100*relUncBkg)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Ratiomunu*absCorrRatiomunu)) -print("\tTOTAL: %.2f %%\n" % (100./Ratiomunu*sqrt(absUncRatiomunu**2+absCorrRatiomunu**2))) - -WZmu = Wmunu/Zmumu -absStatWZmu = WZmu*sqrt((absStatWmunu/Wmunu)**2+(absStatZmumu/Zmumu)**2) -absCorrWZmu = WZmu*sqrt(0.011**2+0.0135**2) # theory uncertainty -relUncEffW = 1.3e-2 -relUncMomResW = 0.3e-2 -relUncMomResZ = 0.2e-2 -relSysSubtract = sqrt(relUncEffW**2+relUncMomResW**2+relUncMomResZ**2) -relSysAdd = abs(relUncMomResW-relUncMomResZ) -absUncWZmu = WZmu*sqrt((absUncWmunu/Wmunu)**2 + (absUncZmumu/Zmumu)**2 - relSysSubtract**2 + relSysAdd**2) -print("\nWZmu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (WZmu, absStatWZmu, absUncWZmu, absCorrWZmu)) -print(" STATISTICAL UNCERTAINTY INCLUDES EFFICIENCY (via Zmumu fit)") -print(" Systematics >>>>>>>") -print("\tUncorrelated with electrons: %.2f %%" % (100./WZmu*absUncWZmu)) -print("\tTheory: %.2f %%" % (100./WZmu*absCorrWZmu)) -print("\tTOTAL: %.2f %%\n" % (100./WZmu*sqrt(absUncWZmu**2+absCorrWZmu**2))) - -###################################################################################### -### Utility functions -###################################################################################### - -### -def vbtfXSectionCheck(title, xsection, exsection, sysUnc, sysCor, relSysLumi): - absSysLumi = xsection*relSysLumi - print("VBTF inputs: %s = %.4f +- %.4f (stat.) +- %.4f (exp.) +- %.4f (the.) +- %.4f (lumi) [nb]" % (title, xsection, exsection, sysUnc, sysCor, absSysLumi)) - -### -def vbtfXSectionAverage(title, xsection1, xsection2, exsection1, exsection2, sysUnc1, sysUnc2, sysCor1, sysCor2, relSysLumi): - if OPTION== "StatisticalAverage": - V11 = exsection1**2 - V22 = exsection2**2 - V12 = 0 - else: - V11 = exsection1**2+sysUnc1**2+sysCor1**2 - V22 = exsection2**2+sysUnc2**2+sysCor2**2 - V12 = sysCor1*sysCor2 - - a1 = (V22-V12)/(V11+V22-2*V12) - a2 = (V11-V12)/(V11+V22-2*V12) - average = a1*xsection1 + a2*xsection2 - errstat = sqrt(a1**2*exsection1**2+a2**2*exsection2**2) - errunco = sqrt(a1**2*sysUnc1**2 + a2**2*sysUnc2**2) - errtheo = sqrt(a1**2*sysCor1**2 + a2**2*sysCor2**2 + 2*a1*a2*sysCor1*sysCor2) - errsyst = sqrt(errunco**2+errtheo**2) - - print("VBTF average: %s = %.4f +- %.4f (stat.) [nb]" % (title, average, errstat)) - - absSysLumi = average*relSysLumi - print("\tVBTF systematics (1): +- %.4f (exp) +- %.4f (the) +- %.4f (lumi) [nb]" % (errunco, errtheo, absSysLumi)) - print("\tVBTF systematics (2): +- %.4f (exp+the) +- %.4f (lumi) [nb]" % (errsyst, absSysLumi)) - -### -def vbtfRatioCheck(title, ratio, absStat, sysUnc, sysCor): - print("VBTF inputs: %s = %.4f +- %.4f (stat.) +- %.4f (exp.) +- %.4f (the.)" % (title, ratio, absStat, sysUnc, sysCor)) - -### -def vbtfRatioAverage(title, ratio1, ratio2, eratio1, eratio2, sysUnc1, sysUnc2, sysCor1, sysCor2): - if OPTION== "StatisticalAverage": - V11 = eratio1**2 - V22 = eratio2**2 - V12 = 0 - else: - V11 = eratio1**2+(sysUnc1**2+sysCor1**2) - V22 = eratio2**2+(sysUnc2**2+sysCor2**2) - V12 = sysCor1*sysCor2 - - a1 = (V22-V12)/(V11+V22-2*V12) - a2 = (V11-V12)/(V11+V22-2*V12) - average = a1*ratio1 + a2*ratio2 - errstat = sqrt(a1**2*eratio1**2+a2**2*eratio2**2) - errunco = sqrt(a1**2*sysUnc1**2 + a2**2*sysUnc2**2) - errtheo = sqrt(a1**2*sysCor1**2 + a2**2*sysCor2**2 + 2*a1*a2*sysCor1*sysCor2) - errsyst = sqrt(errunco**2+errtheo**2) - - print("VBTF average: %s = %.4f +- %.4f (stat.)" % (title, average, errstat)) - - print("\tVBTF systematics (1): +- %.4f (exp) +- %.4f (the)" % (errunco, errtheo)) - print("\tVBTF systematics (2): +- %.4f (exp+the)" % (errsyst)) - -###################################################################################### -### MAIN CALLS ... -###################################################################################### - -############################################################# -########## Wlnu total cross section -############################################################# -print("\n>>>>>>>>>>>>>>>") -vbtfXSectionCheck("W -> munu cross section",Wmunu,absStatWmunu,absUncWmunu,absCorrWmunu,relSysLumi) -vbtfXSectionCheck("W -> enu cross section",Wenu,absStatWenu,absUncWenu,absCorrWenu,relSysLumi) -vbtfXSectionAverage("W -> lnu cross section",Wmunu,Wenu,absStatWmunu,absStatWenu,absUncWmunu,absUncWenu,absCorrWmunu,absCorrWenu,relSysLumi) - -############################################################# -########## Wplus -> lnu cross section -############################################################# -print("\n>>>>>>>>>>>>>>>") -vbtfXSectionCheck("W+ -> munu cross section",Wplusmunu,absStatWplusmunu,absUncWplusmunu,absCorrWplusmunu,relSysLumi) -vbtfXSectionCheck("W+ -> enu cross section",Wplusenu,absStatWplusenu,absUncWplusenu,absCorrWplusenu,relSysLumi) -vbtfXSectionAverage("W+ -> lnu cross section",Wplusmunu,Wplusenu,absStatWplusmunu,absStatWplusenu,absUncWplusmunu,absUncWplusenu,absCorrWplusmunu,absCorrWplusenu,relSysLumi) - -############################################################# -########## Wminus -> lnu cross section -############################################################# -print("\n>>>>>>>>>>>>>>>") -vbtfXSectionCheck("W- -> munu cross section",Wminusmunu,absStatWminusmunu,absUncWminusmunu,absCorrWminusmunu,relSysLumi) -vbtfXSectionCheck("W- -> enu cross section",Wminusenu,absStatWminusenu,absUncWminusenu,absCorrWminusenu,relSysLumi) -vbtfXSectionAverage("W- -> lnu cross section",Wminusmunu,Wminusenu,absStatWminusmunu,absStatWminusenu,absUncWminusmunu,absUncWminusenu,absCorrWminusmunu,absCorrWminusenu,relSysLumi) - -############################################################# -########## W+/W- ratio -############################################################# -# -print("\n>>>>>>>>>>>>>>>") -vbtfRatioCheck("W+ / W- cross section ratio, muon channel",Ratiomunu,absStatRatiomunu,absUncRatiomunu,absCorrRatiomunu) -vbtfRatioCheck("W+ / W- cross section ratio, electron channel",Ratioenu,absStatRatioenu,absUncRatioenu,absCorrRatioenu) -vbtfRatioAverage("W+ / W- cross section ratio",Ratiomunu,Ratioenu,absStatRatiomunu,absStatRatioenu,absUncRatiomunu,absUncRatioenu,absCorrRatiomunu,absCorrRatioenu) - -############################################################# -########## Z > ll cross section (in 60 < Mll < 120 GeV) -############################################################# -# -print("\n>>>>>>>>>>>>>>>") -vbtfXSectionCheck("Z -> mumu cross section",Zmumu,absStatZmumu,absUncZmumu,absCorrZmumu,relSysLumi) -vbtfXSectionCheck("Z -> ee cross section",Zee,absStatZee,absUncZee,absCorrZee,relSysLumi) -vbtfXSectionAverage("Z -> ll cross section",Zmumu,Zee,absStatZmumu,absStatZee,absUncZmumu,absUncZee,absCorrZmumu,absCorrZee,relSysLumi) - -############################################################# -########## W/Z ratio -############################################################# -# -print("\n>>>>>>>>>>>>>>>") -vbtfRatioCheck("W/Z ratio muons",WZmu,absStatWZmu,absUncWZmu,absCorrWZmu) -vbtfRatioCheck("W/Z ratio electrons",WZe,absStatWZe,absUncWZe,absCorrWZe) -vbtfRatioAverage("W/Z ratio",WZmu,WZe,absStatWZmu,absStatWZe,absUncWZmu,absUncWZe,absCorrWZmu,absCorrWZe) diff --git a/ElectroWeakAnalysis/Utilities/python/Averages_3Invpb.py b/ElectroWeakAnalysis/Utilities/python/Averages_3Invpb.py deleted file mode 100644 index d2e1b4973fe52..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/Averages_3Invpb.py +++ /dev/null @@ -1,346 +0,0 @@ -#!/usr/bin/env python -###################################################################################### -## Program to average CMS W and Z cross sections for muons and electrons. -## Run it as: "python Averages_3Invpb.py" -## -## Notes: -## -## a) For 3 inverse pb statistics, all likelihood profiles are already -## Gaussian to a good approximation. Therefore naive combination procedures -## work. -## b) OPTION allows to average electron and muon measurements in two ways: -## -## OPTION = "StatisticalAverage" does the average according to statistical -## uncertainties. Pros: This average is more rigurous from a statistical point -## of view, since some likelihood ansatz is necessary to interpret systematics. -## Cons: This procedure leads to larger "overall" uncertainties at the level of the -## final combination since, for similar statistical uncertainties, measurements -## with larger systematics weight the same as measurements with lower systematics. -## -## OPTION = ""StatisticalPlusSystematicAverage" does the average according -## to the overall uncertainties. It assumes that systematic ucnertainties -## can be treated in a naive Gaussian way and so added quadratically to -## statistical uncertainties in the usual way. Correlations are taken into -## account. A covariancia matrix "V" is built, and the solution X corresponds -## to the minimization of the expression " sum_{ij}(X-x_i V_{ij}^{-1} (X-x_j)", -## where x_i are the electron and muon measurements. Pros: this leads to minimal -## uncertainties for the overall uncertainty (if stat. and syst. are added in -## quadrature, as people usually do). Cons: most of the systematic soruces are -## not statistical in origin, so giving them a 68% CL Gaussian meaning is -## an ad-hoc assumption. -## -###################################################################################### - -from __future__ import division -from __future__ import print_function -from math import * - -OPTION = "StatisticalPlusSystematicAverage" -#OPTION= "StatisticalAverage" - -print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>") -print(">>>>> METHOD TO AVERAGE MUONS AND ELECTRONS is: '%s'" % (OPTION)) -print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n") - -###################################################################################### -### INPUTS FOLLOW (they are not the final version) -###################################################################################### - -# Relative luminosity error -relSysLumi = 11e-2 - -# Electron inputs -Wenu = 10.1447 -absStatWenu = 0.1123 -absCorrWenu = Wenu*sqrt(0.008**2+0.0116**2) # theory uncertainty -absUncWenu = 0.5031 -print("\nWenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wenu, absStatWenu, absUncWenu, absCorrWenu, Wenu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Wenu*absUncWenu)) -print("\tTheory: %.2f %%" % (100./Wenu*absCorrWenu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wenu*sqrt(absUncWenu**2+absCorrWenu**2))) - -Wplusenu = 5.9349 -absStatWplusenu = 0.0793 -absCorrWplusenu = Wplusenu*sqrt(0.009**2+0.0133**2) # theory uncertainty -absUncWplusenu = 0.3446 -print("\nWplusenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wplusenu, absStatWplusenu, absUncWplusenu, absCorrWplusenu, Wplusenu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Wplusenu*absUncWplusenu)) -print("\tTheory: %.2f %%" % (100./Wplusenu*absCorrWplusenu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wplusenu*sqrt(absUncWplusenu**2+absCorrWplusenu**2))) - -Wminusenu = 4.1401 -absStatWminusenu = 0.0690 -absCorrWminusenu = Wminusenu*sqrt(0.015**2+0.0090**2) # theory uncertainty -absUncWminusenu = 0.2432 -print("\nWminusenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wminusenu, absStatWminusenu, absUncWminusenu, absCorrWminusenu, Wminusenu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Wminusenu*absUncWminusenu)) -print("\tTheory: %.2f %%" % (100./Wminusenu*absCorrWminusenu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wminusenu*sqrt(absUncWminusenu**2+absCorrWminusenu**2))) - -Zee = 0.9595 -absStatZee = 0.0370 -absCorrZee = Zee*sqrt(0.011**2+0.0134**2) # theory uncertainty -absUncZee = 0.0565 -print("\nZee cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Zee, absStatZee, absUncZee, absCorrZee, Zee*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Zee*absUncZee)) -print("\tTheory: %.2f %%" % (100./Zee*absCorrZee)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Zee*sqrt(absUncZee**2+absCorrZee**2))) - -Ratioenu = Wplusenu/Wminusenu -absStatRatioenu = 0.02883 -absCorrRatioenu = Ratioenu*sqrt(0.017**2+0.0127**2) # theory uncertainty -absUncRatioenu = 0.076 -print("\nRatioenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (Ratioenu, absStatRatioenu, absUncRatioenu, absCorrRatioenu)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./Ratioenu*absUncRatioenu)) -print("\tTheory: %.2f %%" % (100./Ratioenu*absCorrRatioenu)) -print("\tTOTAL: %.2f %%\n" % (100./Ratioenu*sqrt(absUncRatioenu**2+absCorrRatioenu**2))) - -WZe = Wenu/Zee -absStatWZe = 0.425 -absCorrWZe = WZe*sqrt(0.009**2+0.0103**2) # theory uncertainty -absUncWZe = 0.524 -print("\nWZe cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (WZe, absStatWZe, absUncWZe, absCorrWZe)) -print(" Systematics >>>>>>>") -print("\tUncorrelated with muons: %.2f %%" % (100./WZe*absUncWZe)) -print("\tTheory: %.2f %%" % (100./WZe*absCorrWZe)) -print("\tTOTAL: %.2f %%\n" % (100./WZe*sqrt(absUncWZe**2+absCorrWZe**2))) - -# Muon inputs -Wmunu = 9.922 -absStatWmunu = 0.090 -absCorrWmunu = Wmunu*sqrt(0.011**2+0.0136**2) # theory uncertainty -relUncFit = 1.3e-2 -relUncPreTrig = 0.5e-2 -relUncSysEff = 0.5e-2 -relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2) -relUncMomRes = 0.3e-2 -relUncRecoil = 0.4e-2 -relUncMCStat = 1.4e-3/sqrt(2) -relUncBkg = sqrt(2.0e-2**2+0.2e-2**2) -absUncWmunu=Wmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2) -print("\nWmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wmunu, absStatWmunu, absUncWmunu, absCorrWmunu, Wmunu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tEfficiency(Zfit,Pretrig,Z->W): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction: %.2f %%" % (100*relUncBkg)) -print("\tSignal Recoil modeling: %.2f %%" % (100*relUncRecoil)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Wmunu*absCorrWmunu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wmunu*sqrt(absUncWmunu**2+absCorrWmunu**2))) - -Wplusmunu = 5.844 -absStatWplusmunu = 0.069 -absCorrWplusmunu = Wplusmunu*sqrt(0.013**2+0.0142**2) # theory uncertainty -relUncFit = 1.3e-2 -relUncPreTrig = 0.5e-2 -relUncSysEff = 0.5e-2 -relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2) -relUncMomRes = 0.3e-2 -relUncRecoil = 0.4e-2 -relUncMCStat = 1.4e-3 -relUncBkg = sqrt(1.7e-2**2+0.2e-2**2) -absUncWplusmunu=Wplusmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2) -print("\nWplusmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wplusmunu, absStatWplusmunu, absUncWplusmunu, absCorrWplusmunu, Wplusmunu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tEfficiency(Zfit,Pretrig,Z->W): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction: %.2f %%" % (100*relUncBkg)) -print("\tSignal Recoil modeling: %.2f %%" % (100*relUncRecoil)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Wplusmunu*absCorrWplusmunu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wplusmunu*sqrt(absUncWplusmunu**2+absCorrWplusmunu**2))) - -Wminusmunu = 4.078 -absStatWminusmunu = 0.057 -absCorrWminusmunu = Wminusmunu*sqrt(0.019**2+0.0126**2) # theory uncertainty -relUncFit = 1.3e-2 -relUncPreTrig = 0.5e-2 -relUncSysEff = 0.5e-2 -relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2) -relUncMomRes = 0.3e-2 -relUncRecoil = 0.4e-2 -relUncMCStat = 1.4e-3 -relUncBkg = sqrt(2.3e-2**2+0.2e-2**2) -absUncWminusmunu=Wminusmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2) -print("\nWminusmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wminusmunu, absStatWminusmunu, absUncWminusmunu, absCorrWminusmunu, Wminusmunu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tEfficiency(Zfit,Pretrig,Z->W): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction: %.2f %%" % (100*relUncBkg)) -print("\tSignal Recoil modeling: %.2f %%" % (100*relUncRecoil)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Wminusmunu*absCorrWminusmunu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wminusmunu*sqrt(absUncWminusmunu**2+absCorrWminusmunu**2))) - -Zmumu = 0.924 # 0.893*1.025*1.01 -absStatZmumu = 0.031 # 0.030*1.025*1.01 -absCorrZmumu = Zmumu*sqrt(0.012**2+0.0158**2) # theory uncertainty -relUncEff = 0.5e-2 # pre-triggering -relUncFit= 1.0e-2 -relUncMomRes = 0.2e-2 -relUncMCStat = 0.4e-2 -relUncBkg = sqrt(relUncFit**2+0.2e-2**2) -absUncZmumu=Zmumu*sqrt(relUncEff**2+relUncMomRes**2+relUncBkg**2+relUncMCStat**2) -print("\nZmumu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Zmumu, absStatZmumu, absUncZmumu, absCorrZmumu, Zmumu*relSysLumi)) -print(" Systematics >>>>>>>") -print("\tEfficiency(Pretriggering): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction/fit: %.2f %%" % (100*relUncBkg)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Zmumu*absCorrZmumu)) -print("\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Zmumu*sqrt(absUncZmumu**2+absCorrZmumu**2))) - -Ratiomunu = Wplusmunu/Wminusmunu -absStatRatiomunu = 0.026 -absCorrRatiomunu = Ratiomunu*sqrt(0.021**2+0.0119**2) # theory uncertainty -relUncEff = 2.8e-2 -relUncMomRes = 0.3e-2 -relUncMCStat = sqrt(2)*1.4e-3 -relUncBkg = 0.7e-2 -absUncRatiomunu = Ratiomunu*sqrt(relUncEff**2+relUncMomRes**2+relUncMCStat**2+relUncBkg**2) -print("\nRatiomunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (Ratiomunu, absStatRatiomunu, absUncRatiomunu, absCorrRatiomunu)) -print(" Systematics >>>>>>>") -print("\tEfficiency(W+ versus W- tests): %.2f %%" % (100*relUncEff)) -print("\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)) -print("\tBackground subtraction: %.2f %%" % (100*relUncBkg)) -print("\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)) -print("\tTheory: %.2f %%" % (100./Ratiomunu*absCorrRatiomunu)) -print("\tTOTAL: %.2f %%\n" % (100./Ratiomunu*sqrt(absUncRatiomunu**2+absCorrRatiomunu**2))) - -WZmu = Wmunu/Zmumu -absStatWZmu = 0.3675 -absCorrWZmu = WZmu*sqrt(0.011**2+0.0135**2) # theory uncertainty -relUncEffW = 1.3e-2 -relUncMomResW = 0.3e-2 -relUncMomResZ = 0.2e-2 -relSysSubtract = sqrt(relUncEffW**2+relUncMomResW**2+relUncMomResZ**2) -relSysAdd = abs(relUncMomResW-relUncMomResZ) -absUncWZmu = WZmu*sqrt((absUncWmunu/Wmunu)**2 + (absUncZmumu/Zmumu)**2 - relSysSubtract**2 + relSysAdd**2) -print("\nWZmu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (WZmu, absStatWZmu, absUncWZmu, absCorrWZmu)) -print(" STATISTICAL UNCERTAINTY INCLUDES EFFICIENCY (via Zmumu fit)") -print(" Systematics >>>>>>>") -print("\tUncorrelated with electrons: %.2f %%" % (100./WZmu*absUncWZmu)) -print("\tTheory: %.2f %%" % (100./WZmu*absCorrWZmu)) -print("\tTOTAL: %.2f %%\n" % (100./WZmu*sqrt(absUncWZmu**2+absCorrWZmu**2))) - -###################################################################################### -### Utility functions -###################################################################################### - -### -def vbtfXSectionCheck(title, xsection, exsection, sysUnc, sysCor, relSysLumi): - absSysLumi = xsection*relSysLumi - print("VBTF inputs: %s = %.4f +- %.4f (stat.) +- %.4f (exp.) +- %.4f (the.) +- %.4f (lumi) [nb]" % (title, xsection, exsection, sysUnc, sysCor, absSysLumi)) - -### -def vbtfXSectionAverage(title, xsection1, xsection2, exsection1, exsection2, sysUnc1, sysUnc2, sysCor1, sysCor2, relSysLumi): - if OPTION== "StatisticalAverage": - V11 = exsection1**2 - V22 = exsection2**2 - V12 = 0 - else: - V11 = exsection1**2+sysUnc1**2+sysCor1**2 - V22 = exsection2**2+sysUnc2**2+sysCor2**2 - V12 = sysCor1*sysCor2 - - a1 = (V22-V12)/(V11+V22-2*V12) - a2 = (V11-V12)/(V11+V22-2*V12) - average = a1*xsection1 + a2*xsection2 - errstat = sqrt(a1**2*exsection1**2+a2**2*exsection2**2) - errunco = sqrt(a1**2*sysUnc1**2 + a2**2*sysUnc2**2) - errtheo = sqrt(a1**2*sysCor1**2 + a2**2*sysCor2**2 + 2*a1*a2*sysCor1*sysCor2) - errsyst = sqrt(errunco**2+errtheo**2) - - print("VBTF average: %s = %.4f +- %.4f (stat.) [nb]" % (title, average, errstat)) - - absSysLumi = average*relSysLumi - print("\tVBTF systematics (1): +- %.4f (exp) +- %.4f (the) +- %.4f (lumi) [nb]" % (errunco, errtheo, absSysLumi)) - print("\tVBTF systematics (2): +- %.4f (exp+the) +- %.4f (lumi) [nb]" % (errsyst, absSysLumi)) - -### -def vbtfRatioCheck(title, ratio, absStat, sysUnc, sysCor): - print("VBTF inputs: %s = %.4f +- %.4f (stat.) +- %.4f (exp.) +- %.4f (the.)" % (title, ratio, absStat, sysUnc, sysCor)) - -### -def vbtfRatioAverage(title, ratio1, ratio2, eratio1, eratio2, sysUnc1, sysUnc2, sysCor1, sysCor2): - if OPTION== "StatisticalAverage": - V11 = eratio1**2 - V22 = eratio2**2 - V12 = 0 - else: - V11 = eratio1**2+(sysUnc1**2+sysCor1**2) - V22 = eratio2**2+(sysUnc2**2+sysCor2**2) - V12 = sysCor1*sysCor2 - - a1 = (V22-V12)/(V11+V22-2*V12) - a2 = (V11-V12)/(V11+V22-2*V12) - average = a1*ratio1 + a2*ratio2 - errstat = sqrt(a1**2*eratio1**2+a2**2*eratio2**2) - errunco = sqrt(a1**2*sysUnc1**2 + a2**2*sysUnc2**2) - errtheo = sqrt(a1**2*sysCor1**2 + a2**2*sysCor2**2 + 2*a1*a2*sysCor1*sysCor2) - errsyst = sqrt(errunco**2+errtheo**2) - - print("VBTF average: %s = %.4f +- %.4f (stat.)" % (title, average, errstat)) - - print("\tVBTF systematics (1): +- %.4f (exp) +- %.4f (the)" % (errunco, errtheo)) - print("\tVBTF systematics (2): +- %.4f (exp+the)" % (errsyst)) - -###################################################################################### -### MAIN CALLS ... -###################################################################################### - -############################################################# -########## Wlnu total cross section -############################################################# -print("\n>>>>>>>>>>>>>>>") -vbtfXSectionCheck("W -> munu cross section",Wmunu,absStatWmunu,absUncWmunu,absCorrWmunu,relSysLumi) -vbtfXSectionCheck("W -> enu cross section",Wenu,absStatWenu,absUncWenu,absCorrWenu,relSysLumi) -vbtfXSectionAverage("W -> lnu cross section",Wmunu,Wenu,absStatWmunu,absStatWenu,absUncWmunu,absUncWenu,absCorrWmunu,absCorrWenu,relSysLumi) - -############################################################# -########## Wplus -> lnu cross section -############################################################# -print("\n>>>>>>>>>>>>>>>") -vbtfXSectionCheck("W+ -> munu cross section",Wplusmunu,absStatWplusmunu,absUncWplusmunu,absCorrWplusmunu,relSysLumi) -vbtfXSectionCheck("W+ -> enu cross section",Wplusenu,absStatWplusenu,absUncWplusenu,absCorrWplusenu,relSysLumi) -vbtfXSectionAverage("W+ -> lnu cross section",Wplusmunu,Wplusenu,absStatWplusmunu,absStatWplusenu,absUncWplusmunu,absUncWplusenu,absCorrWplusmunu,absCorrWplusenu,relSysLumi) - -############################################################# -########## Wminus -> lnu cross section -############################################################# -print("\n>>>>>>>>>>>>>>>") -vbtfXSectionCheck("W- -> munu cross section",Wminusmunu,absStatWminusmunu,absUncWminusmunu,absCorrWminusmunu,relSysLumi) -vbtfXSectionCheck("W- -> enu cross section",Wminusenu,absStatWminusenu,absUncWminusenu,absCorrWminusenu,relSysLumi) -vbtfXSectionAverage("W- -> lnu cross section",Wminusmunu,Wminusenu,absStatWminusmunu,absStatWminusenu,absUncWminusmunu,absUncWminusenu,absCorrWminusmunu,absCorrWminusenu,relSysLumi) - -############################################################# -########## W+/W- ratio -############################################################# -# -print("\n>>>>>>>>>>>>>>>") -vbtfRatioCheck("W+ / W- cross section ratio, muon channel",Ratiomunu,absStatRatiomunu,absUncRatiomunu,absCorrRatiomunu) -vbtfRatioCheck("W+ / W- cross section ratio, electron channel",Ratioenu,absStatRatioenu,absUncRatioenu,absCorrRatioenu) -vbtfRatioAverage("W+ / W- cross section ratio",Ratiomunu,Ratioenu,absStatRatiomunu,absStatRatioenu,absUncRatiomunu,absUncRatioenu,absCorrRatiomunu,absCorrRatioenu) - -############################################################# -########## Z > ll cross section (in 60 < Mll < 120 GeV) -############################################################# -# -print("\n>>>>>>>>>>>>>>>") -vbtfXSectionCheck("Z -> mumu cross section",Zmumu,absStatZmumu,absUncZmumu,absCorrZmumu,relSysLumi) -vbtfXSectionCheck("Z -> ee cross section",Zee,absStatZee,absUncZee,absCorrZee,relSysLumi) -vbtfXSectionAverage("Z -> ll cross section",Zmumu,Zee,absStatZmumu,absStatZee,absUncZmumu,absUncZee,absCorrZmumu,absCorrZee,relSysLumi) - -############################################################# -########## W/Z ratio -############################################################# -# -print("\n>>>>>>>>>>>>>>>") -vbtfRatioCheck("W/Z ratio muons",WZmu,absStatWZmu,absUncWZmu,absCorrWZmu) -vbtfRatioCheck("W/Z ratio electrons",WZe,absStatWZe,absUncWZe,absCorrWZe) -vbtfRatioAverage("W/Z ratio",WZmu,WZe,absStatWZmu,absStatWZe,absUncWZmu,absUncWZe,absCorrWZmu,absCorrWZe) diff --git a/ElectroWeakAnalysis/Utilities/python/MetdistMuonCorrections_cff.py b/ElectroWeakAnalysis/Utilities/python/MetdistMuonCorrections_cff.py deleted file mode 100644 index 5725c70f868a5..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/MetdistMuonCorrections_cff.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from TrackingTools.TrackAssociator.default_cfi import * -from TrackingTools.TrackAssociator.DetIdAssociatorESProducer_cff import * - -distMetGlobalMuons = cms.EDProducer("MuonMET", - metTypeInputTag = cms.InputTag("CaloMET"), - uncorMETInputTag = cms.InputTag("met"), - muonsInputTag = cms.InputTag("distortedMuons"), - muonMETDepositValueMapInputTag = cms.InputTag("distmuonMETValueMapProducer","muCorrData","") -) diff --git a/ElectroWeakAnalysis/Utilities/python/distMuonMETValueMapProducer_cff.py b/ElectroWeakAnalysis/Utilities/python/distMuonMETValueMapProducer_cff.py deleted file mode 100644 index 8d1c4efc1358f..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/distMuonMETValueMapProducer_cff.py +++ /dev/null @@ -1,27 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from TrackingTools.TrackAssociator.default_cfi import * -from TrackingTools.TrackAssociator.DetIdAssociatorESProducer_cff import * - -distmuonMETValueMapProducer = cms.EDProducer("MuonMETValueMapProducer", - TrackAssociatorParameterBlock, - muonInputTag = cms.InputTag("distortedMuons"), - beamSpotInputTag = cms.InputTag("offlineBeamSpot"), - useTrackAssociatorPositions = cms.bool(True), - useRecHits = cms.bool(False), #if True, will use deposits in 3x3 recHits - useHO = cms.bool(False), #if True, will correct for deposits in HO - isAlsoTkMu = cms.bool(True), #does the mu have to be a tracker mu? - towerEtThreshold = cms.double(0.3), #default MET calculated using towers with Et > 0.5 GeV only - minPt = cms.double(10.0),#min global Mu Pt is 10 GeV - maxEta = cms.double(2.4), #max global |Eta| is 2.4 - maxNormChi2 = cms.double(10.0),#max global chi2/ndof - maxd0 = cms.double(0.2), #max global d0 - minnHits = cms.int32(11), #minimum # of si hits - minnValidStaHits = cms.int32(1) #minimum # of valid hits in the muon system used in the global muon fit -) -distmuonMETValueMapProducer.TrackAssociatorParameters.useEcal = False -distmuonMETValueMapProducer.TrackAssociatorParameters.useHcal = False -distmuonMETValueMapProducer.TrackAssociatorParameters.useHO = False -distmuonMETValueMapProducer.TrackAssociatorParameters.useCalo = True -distmuonMETValueMapProducer.TrackAssociatorParameters.useMuon = False -distmuonMETValueMapProducer.TrackAssociatorParameters.truthMatch = False diff --git a/ElectroWeakAnalysis/Utilities/python/distMuonTCMETValueMapProducer_cff.py b/ElectroWeakAnalysis/Utilities/python/distMuonTCMETValueMapProducer_cff.py deleted file mode 100644 index a3ecb0461e22e..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/distMuonTCMETValueMapProducer_cff.py +++ /dev/null @@ -1,26 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -distmuonTCMETValueMapProducer = cms.EDProducer("MuonTCMETValueMapProducer", - muonInputTag = cms.InputTag("distortedMuons"), - beamSpotInputTag = cms.InputTag("offlineBeamSpot"), - rf_type = cms.int32(1), - pt_min = cms.double(1.), - pt_max = cms.double(100.), - eta_max = cms.double(2.65), - chi2_max = cms.double(5), - nhits_min = cms.double(6), - d0_max = cms.double(0.1), - ptErr_max = cms.double(0.2), - track_quality = cms.vint32(2), - track_algos = cms.vstring(), - d0_muon = cms.double(0.2), - pt_muon = cms.double(10), - eta_muon = cms.double(2.4), - chi2_muon = cms.double(10), - nhits_muon = cms.double(11), - global_muon = cms.bool(True), - tracker_muon = cms.bool(True), - deltaR_muon = cms.double(0.05), - useCaloMuons = cms.bool(False), - muonMinValidStaHits = cms.int32(1) -) diff --git a/ElectroWeakAnalysis/Utilities/python/distPFMET_cfi.py b/ElectroWeakAnalysis/Utilities/python/distPFMET_cfi.py deleted file mode 100644 index 314c19a193a6d..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/distPFMET_cfi.py +++ /dev/null @@ -1,18 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# File: PFMET.cff -# Author: R. Cavanaugh -# Date: 28.10.2008 -# -# Form uncorrected Missing ET from Particle Flow and store into event as a MET -# product - -from RecoMET.METProducers.METSigParams_cfi import * - -distpfMet = cms.EDProducer("PFMETProducer", - parameters = METSignificance_params, - src = cms.InputTag("distortedPFCand"), - alias = cms.string('PFMET'), - globalThreshold = cms.double(0.0), - calculateSignificance = cms.bool(True) - ) diff --git a/ElectroWeakAnalysis/Utilities/python/distTCMET_cfi.py b/ElectroWeakAnalysis/Utilities/python/distTCMET_cfi.py deleted file mode 100644 index d940e1494ded0..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/distTCMET_cfi.py +++ /dev/null @@ -1,49 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# File: TCMET.cff -# Author: R. Remington & F. Golf -# Date: 11.14.2008 -# -# Form Track Corrected MET - -disttcMet = cms.EDProducer("TCMETProducer", - alias = cms.string('TCMET'), - electronInputTag = cms.InputTag("gsfElectrons"), - muonInputTag = cms.InputTag("distortedMuons"), - trackInputTag = cms.InputTag("generalTracks"), - metInputTag = cms.InputTag("met"), - beamSpotInputTag = cms.InputTag("offlineBeamSpot"), - vertexInputTag = cms.InputTag("offlinePrimaryVertices"), - muonDepValueMap = cms.InputTag("distmuonMETValueMapProducer" , "muCorrData"), - tcmetDepValueMap = cms.InputTag("distmuonTCMETValueMapProducer", "muCorrData"), - pt_min = cms.double(1.0), - pt_max = cms.double(100.), - eta_max = cms.double(2.65), - chi2_max = cms.double(5), - nhits_min = cms.double(6), - d0_max = cms.double(0.1), - ptErr_max = cms.double(0.2), - track_quality = cms.vint32(2), - track_algos = cms.vstring(), - isCosmics = cms.bool(False), - rf_type = cms.int32(1), - correctShowerTracks = cms.bool(False), - usePvtxd0 = cms.bool(False), - nMinOuterHits = cms.int32(2), - usedeltaRRejection = cms.bool(False), - deltaRShower = cms.double(0.01), - checkTrackPropagation = cms.bool(False), - radius = cms.double(130.), - zdist = cms.double(314.), - corner = cms.double(1.479), - d0cuta = cms.double(0.015), - d0cutb = cms.double(0.5), - maxd0cut = cms.double(0.3), - chi2_tight_max = cms.double(3.0), - nhits_tight_min = cms.double(11), - ptErr_tight_max = cms.double(0.1), - trackAlgos = cms.vstring("undefAlgorithm", "ctf", "rs", "cosmics", "initialStep", "lowPtTripletStep", "pixelPairStep", "detachedTripletStep"), -) - - - diff --git a/ElectroWeakAnalysis/Utilities/python/fitWZ.py b/ElectroWeakAnalysis/Utilities/python/fitWZ.py deleted file mode 100755 index 66a17468c5fb4..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/fitWZ.py +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env python - -from __future__ import division -from __future__ import print_function -from math import * -from ROOT import * -from array import array - -gROOT.SetBatch(True) - -# Wmunu inputs -wxsection = 9.922 -ewxsection = 0.090 -zxsection = 0.924 -ezxsection = 0.031 -sysEff = 0.013 -corrZEff = -0.236 - -# FCN definition -def MyChi2 (npar, g, chi2, x, iflag): - # Inverse of (Zyield,sysEff) covariance matrix - s11 = 1./ezxsection**2/(1.-corrZEff**2) - s22 = 1./sysEff**2/(1.-corrZEff**2) - s12 = -corrZEff/(1.-corrZEff**2)/ezxsection/sysEff - - # Build chi2 - wxsFit = x[0]*x[1] - zxsFit = x[1] - effFit = x[2] - chi2[0] = (wxsFit*(1.+effFit)-wxsection)*(wxsFit*(1.+effFit)-wxsection)/ewxsection/ewxsection - chi2[0] += (zxsFit-zxsection)*(zxsFit-zxsection) *s11 - chi2[0] += effFit*effFit * s22 - chi2[0] += 2*(zxsFit-zxsection)*effFit * s12 - -# Minimation, main program -gMinuit = TMinuit() -gMinuit.SetPrintLevel(-1) -gMinuit.SetFCN(MyChi2) -arglist = array('d', 10*[0.]) -ier = Long(0) - -gMinuit.mnparm(0, "W/Z ratio Mu", 10.0, 1.e-3, 0, 0, ier) -gMinuit.mnparm(1, "Zsigma [nb] Mu", 1.0, 1.e-3, 0, 0, ier) -gMinuit.mnparm(2, "DeltaEffRel Mu", 0.0, 1.e-4, 0, 0, ier) - -arglist[0] = 1000.; arglist[1] = 0.1 -gMinuit.mnexcm("MINIMIZE", arglist, 2, ier) - -finalChi2 = 0.0 -gMinuit.mnprin(3,finalChi2) - -par0 = Double(0.0) -errpar0 = Double(0.0) -gMinuit.GetParameter(0,par0,errpar0) - -# Extract statistical uncertainty on W/Z including efficiency uncertainties -print("\n*** Statistical uncertainty on W/Z (including eff. unc.): %.4f" % (errpar0)) diff --git a/ElectroWeakAnalysis/Utilities/python/goldenWmnSelectionVBTF_cfi.py b/ElectroWeakAnalysis/Utilities/python/goldenWmnSelectionVBTF_cfi.py deleted file mode 100644 index 3e6fd92e82ec2..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/goldenWmnSelectionVBTF_cfi.py +++ /dev/null @@ -1,45 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Trigger requirements -import HLTrigger.HLTfilters.hltHighLevel_cfi -wmnHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -wmnHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -wmnHLTFilter.HLTPaths = ["HLT_Mu9", "HLT_Mu11", "HLT_Mu15"] -wmnHLTFilter.throw = cms.bool(False) - -# Cuts for each muon -goodMuonsForW = cms.EDFilter("MuonViewRefSelector", - src = cms.InputTag("muons"), - cut = cms.string('isGlobalMuon=1 && isTrackerMuon=1 && abs(eta)<2.1 && abs(globalTrack().dxy)<0.2 && pt>20. && globalTrack().normalizedChi2<10 && globalTrack().hitPattern().numberOfValidTrackerHits>10 && globalTrack().hitPattern().numberOfValidMuonHits>0 && globalTrack().hitPattern().numberOfValidPixelHits>0 && numberOfMatches>1 && (isolationR03().sumPt+isolationR03().emEt+isolationR03().hadEt)<0.15*pt'), - filter = cms.bool(True) -) - -# Cuts on wmn system -wmnCands = cms.EDProducer("CandViewShallowCloneCombiner", - checkCharge = cms.bool(False), - cut = cms.string('sqrt((daughter(0).pt+daughter(1).pt)*(daughter(0).pt+daughter(1).pt)-pt*pt)>50'), - decay = cms.string("goodMuonsForW pfMet") -) -wmnFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("wmnCands"), - minNumber = cms.uint32(1) -) - -# Dimuons to be vetoed -goodMuonsForZ = cms.EDFilter("MuonViewRefSelector", - src = cms.InputTag("muons"), - cut = cms.string('isGlobalMuon=1 && pt>10.'), - filter = cms.bool(True) -) -dyFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("goodMuonsForZ"), - minNumber = cms.uint32(2) -) - -# Path -goldenWmnSequence = cms.Sequence( - wmnHLTFilter * - goodMuonsForW * - wmnCands*wmnFilter * - goodMuonsForZ*~dyFilter -) diff --git a/ElectroWeakAnalysis/Utilities/python/goldenZmmSelectionLOOSE_cfi.py b/ElectroWeakAnalysis/Utilities/python/goldenZmmSelectionLOOSE_cfi.py deleted file mode 100644 index 64eb29f07f190..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/goldenZmmSelectionLOOSE_cfi.py +++ /dev/null @@ -1,42 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy - -# Uncomment to use trigger requirements -#import HLTrigger.HLTfilters.hltHighLevel_cfi -#zmmHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -#zmmHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -#zmmHLTFilter.HLTPaths = ["HLT_Mu9", "HLT_Mu11", "HLT_Mu15", "HLT_DoubleMu3"] -#zmmHLTFilter.throw = cms.bool(False) - -# Cuts for each muon -goodMuons1 = cms.EDFilter("MuonViewRefSelector", - src = cms.InputTag("muons"), - cut = cms.string('isGlobalMuon=1 && isTrackerMuon=1 && abs(eta)<2.1 && abs(globalTrack().dxy)<0.2 && pt>20. && globalTrack().normalizedChi2<10 && globalTrack().hitPattern().numberOfValidTrackerHits>10 && globalTrack().hitPattern().numberOfValidMuonHits>0 && globalTrack().hitPattern().numberOfValidPixelHits>0 && numberOfMatches>1 && (isolationR03().sumPt+isolationR03().emEt+isolationR03().hadEt)<0.15*pt'), - filter = cms.bool(True) -) - -# Cuts for each muon -goodMuons2 = cms.EDFilter("MuonViewRefSelector", - src = cms.InputTag("muons"), - cut = cms.string('isGlobalMuon=1 && pt>20. && abs(eta)<2.4 && abs(globalTrack().dxy)<1.0 && globalTrack().hitPattern().numberOfValidTrackerHits>6'), - filter = cms.bool(True) -) - -# Cuts on dimuon system -zmmCands = cms.EDProducer("CandViewShallowCloneCombiner", - checkCharge = cms.bool(False), - cut = cms.string('mass>60'), - decay = cms.string("goodMuons1 goodMuons2") -) -zmmFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("zmmCands"), - minNumber = cms.uint32(1) -) - -# Selection sequence -goldenZmmSelectionSequence = cms.Sequence( - #zmmHLTFilter * - goodMuons1*goodMuons2 * - zmmCands*zmmFilter -) diff --git a/ElectroWeakAnalysis/Utilities/python/goldenZmmSelectionVBTF_cfi.py b/ElectroWeakAnalysis/Utilities/python/goldenZmmSelectionVBTF_cfi.py deleted file mode 100644 index cb5342062d9f1..0000000000000 --- a/ElectroWeakAnalysis/Utilities/python/goldenZmmSelectionVBTF_cfi.py +++ /dev/null @@ -1,35 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy - -# Trigger requirements -import HLTrigger.HLTfilters.hltHighLevel_cfi -zmmHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -zmmHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -zmmHLTFilter.HLTPaths = ["HLT_Mu9", "HLT_Mu11", "HLT_Mu15"] -zmmHLTFilter.throw = cms.bool(False) - -# Cuts for both muons -goodMuons = cms.EDFilter("MuonViewRefSelector", - src = cms.InputTag("muons"), - cut = cms.string('pt>20. && abs(eta)<2.1 && isGlobalMuon=1 && isTrackerMuon=1 && abs(globalTrack().dxy)<0.2 && globalTrack().normalizedChi2<10 && globalTrack().hitPattern().numberOfValidTrackerHits>10 && globalTrack().hitPattern().numberOfValidMuonHits>0 && globalTrack().hitPattern().numberOfValidPixelHits>0 && numberOfMatches>1 && (isolationR03().sumPt+isolationR03().emEt+isolationR03().hadEt)<0.15*pt'), - filter = cms.bool(True) -) - -# Cuts on dimuon system -zmmCands = cms.EDProducer("CandViewShallowCloneCombiner", - checkCharge = cms.bool(True), - cut = cms.string('mass>60 && mass<120 && charge=0'), - decay = cms.string("goodMuons@+ goodMuons@-") -) -zmmFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("zmmCands"), - minNumber = cms.uint32(1) -) - -# Selection sequence -goldenZmmSelectionSequence = cms.Sequence( - zmmHLTFilter * - goodMuons * - zmmCands*zmmFilter -) diff --git a/ElectroWeakAnalysis/Utilities/src/DistortedMETProducer.cc b/ElectroWeakAnalysis/Utilities/src/DistortedMETProducer.cc deleted file mode 100644 index f0a30a9349487..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/DistortedMETProducer.cc +++ /dev/null @@ -1,81 +0,0 @@ -#include -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" - -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/METReco/interface/MET.h" - -// -// class declaration -// -class DistortedMETProducer : public edm::EDProducer { -public: - explicit DistortedMETProducer(const edm::ParameterSet&); - ~DistortedMETProducer() override; - -private: - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - edm::EDGetTokenT > metToken_; - double metScaleShift_; // relative shift (0. => no shift) -}; - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/METReco/interface/METFwd.h" - -///////////////////////////////////////////////////////////////////////////////////// -DistortedMETProducer::DistortedMETProducer(const edm::ParameterSet& pset) { - // What is being produced - produces >(); - - // Input products - metToken_ = - consumes >(pset.getUntrackedParameter("MetTag", edm::InputTag("met"))); - // Distortions in MET in Gev**{-1/2} - metScaleShift_ = pset.getUntrackedParameter("MetScaleShift", 1.e-3); -} - -///////////////////////////////////////////////////////////////////////////////////// -DistortedMETProducer::~DistortedMETProducer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedMETProducer::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedMETProducer::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedMETProducer::produce(edm::Event& ev, const edm::EventSetup&) { - if (ev.isRealData()) - return; - - // MET collection - edm::Handle > metCollection; - if (!ev.getByToken(metToken_, metCollection)) { - edm::LogError("") << ">>> MET collection does not exist !!!"; - return; - } - edm::RefToBase met = metCollection->refAt(0); - - std::unique_ptr newmetCollection(new reco::METCollection); - - double met_et = met->et() * (1. + metScaleShift_); - double sum_et = met->sumEt() * (1. + metScaleShift_); - double met_phi = met->phi(); - double met_ex = met_et * cos(met_phi); - double met_ey = met_et * sin(met_phi); - reco::Particle::LorentzVector met_p4(met_ex, met_ey, 0., met_et); - reco::Particle::Point met_vtx(0., 0., 0.); - reco::MET* newmet = new reco::MET(sum_et, met_p4, met_vtx); - - newmetCollection->push_back(*newmet); - - ev.put(std::move(newmetCollection)); -} - -DEFINE_FWK_MODULE(DistortedMETProducer); diff --git a/ElectroWeakAnalysis/Utilities/src/DistortedMuonProducer.cc b/ElectroWeakAnalysis/Utilities/src/DistortedMuonProducer.cc deleted file mode 100644 index 17d550474ef0c..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/DistortedMuonProducer.cc +++ /dev/null @@ -1,228 +0,0 @@ -#include -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" - -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" - -#include "MuonAnalysis/MomentumScaleCalibration/interface/MomentumScaleCorrector.h" -#include "MuonAnalysis/MomentumScaleCalibration/interface/ResolutionFunction.h" - -// -// class declaration -// -class DistortedMuonProducer : public edm::EDProducer { -public: - explicit DistortedMuonProducer(const edm::ParameterSet&); - ~DistortedMuonProducer() override; - -private: - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - edm::EDGetTokenT > muonToken_; - edm::EDGetTokenT genMatchMapToken_; - std::vector etaBinEdges_; - - std::vector shiftOnOneOverPt_; // in [1/GeV] - std::vector relativeShiftOnPt_; - std::vector uncertaintyOnOneOverPt_; // in [1/GeV] - std::vector relativeUncertaintyOnPt_; - - std::vector efficiencyRatioOverMC_; -}; - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/TrackReco/interface/Track.h" - -#include -#include - -///////////////////////////////////////////////////////////////////////////////////// -DistortedMuonProducer::DistortedMuonProducer(const edm::ParameterSet& pset) { - // What is being produced - produces >(); - - // Input products - muonToken_ = - consumes >(pset.getUntrackedParameter("MuonTag", edm::InputTag("muons"))); - genMatchMapToken_ = consumes( - pset.getUntrackedParameter("GenMatchMapTag", edm::InputTag("genMatchMap"))); - - // Eta edges - std::vector defEtaEdges; - defEtaEdges.push_back(-999999.); - defEtaEdges.push_back(999999.); - etaBinEdges_ = pset.getUntrackedParameter >("EtaBinEdges", defEtaEdges); - unsigned int ninputs_expected = etaBinEdges_.size() - 1; - - // Distortions in muon momentum - std::vector defDistortion; - defDistortion.push_back(0.); - - shiftOnOneOverPt_ = - pset.getUntrackedParameter >("ShiftOnOneOverPt", defDistortion); // in [1/GeV] - if (shiftOnOneOverPt_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - shiftOnOneOverPt_.push_back(shiftOnOneOverPt_[0]); - } - } - - relativeShiftOnPt_ = pset.getUntrackedParameter >("RelativeShiftOnPt", defDistortion); - if (relativeShiftOnPt_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - relativeShiftOnPt_.push_back(relativeShiftOnPt_[0]); - } - } - - uncertaintyOnOneOverPt_ = - pset.getUntrackedParameter >("UncertaintyOnOneOverPt", defDistortion); // in [1/GeV] - if (uncertaintyOnOneOverPt_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - uncertaintyOnOneOverPt_.push_back(uncertaintyOnOneOverPt_[0]); - } - } - - relativeUncertaintyOnPt_ = pset.getUntrackedParameter >("RelativeUncertaintyOnPt", defDistortion); - if (relativeUncertaintyOnPt_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - relativeUncertaintyOnPt_.push_back(relativeUncertaintyOnPt_[0]); - } - } - - // Data/MC efficiency ratios - std::vector defEfficiencyRatio; - defEfficiencyRatio.push_back(1.); - efficiencyRatioOverMC_ = - pset.getUntrackedParameter >("EfficiencyRatioOverMC", defEfficiencyRatio); - if (efficiencyRatioOverMC_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - efficiencyRatioOverMC_.push_back(efficiencyRatioOverMC_[0]); - } - } - - // Send a warning if there are inconsistencies in vector sizes !! - bool effWrong = efficiencyRatioOverMC_.size() != ninputs_expected; - bool momWrong = shiftOnOneOverPt_.size() != ninputs_expected || relativeShiftOnPt_.size() != ninputs_expected || - uncertaintyOnOneOverPt_.size() != ninputs_expected || - relativeUncertaintyOnPt_.size() != ninputs_expected; - if (effWrong and momWrong) { - edm::LogError("") - << "WARNING: DistortedMuonProducer : Size of some parameters do not match the EtaBinEdges vector!!"; - } -} - -///////////////////////////////////////////////////////////////////////////////////// -DistortedMuonProducer::~DistortedMuonProducer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedMuonProducer::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedMuonProducer::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedMuonProducer::produce(edm::Event& ev, const edm::EventSetup& iSetup) { - if (ev.isRealData()) - return; - - // Muon collection - edm::Handle > muonCollection; - if (!ev.getByToken(muonToken_, muonCollection)) { - edm::LogError("") << ">>> Muon collection does not exist !!!"; - return; - } - - edm::Handle genMatchMap; - if (!ev.getByToken(genMatchMapToken_, genMatchMap)) { - edm::LogError("") << ">>> Muon-GenParticle match map does not exist !!!"; - return; - } - - unsigned int muonCollectionSize = muonCollection->size(); - - std::unique_ptr newmuons(new reco::MuonCollection); - - for (unsigned int i = 0; i < muonCollectionSize; i++) { - edm::RefToBase mu = muonCollection->refAt(i); - - double ptgen = mu->pt(); - double etagen = mu->eta(); - reco::GenParticleRef gen = (*genMatchMap)[mu]; - if (!gen.isNull()) { - ptgen = gen->pt(); - etagen = gen->eta(); - LogTrace("") << ">>> Muon-GenParticle match found; ptmu= " << mu->pt() << ", ptgen= " << ptgen; - } else { - LogTrace("") << ">>> MUON-GENPARTICLE MATCH NOT FOUND!!!"; - } - - // Initialize parameters - double effRatio = 0.; - double shift1 = 0.; - double shift2 = 0.; - double sigma1 = 0.; - double sigma2 = 0.; - - // Find out which eta bin should be used - unsigned int nbins = etaBinEdges_.size() - 1; - unsigned int etaBin = nbins; - if (etagen > etaBinEdges_[0] && etagen < etaBinEdges_[nbins]) { - for (unsigned int j = 1; j <= nbins; ++j) { - if (etagen > etaBinEdges_[j]) - continue; - etaBin = j - 1; - break; - } - } - if (etaBin < nbins) { - LogTrace("") << ">>> etaBin: " << etaBin << ", for etagen =" << etagen; - } else { - // Muon is rejected if outside the considered eta range - LogTrace("") << ">>> Muon outside eta range: reject it; etagen = " << etagen; - continue; - } - - // Set shifts - shift1 = shiftOnOneOverPt_[etaBin]; - shift2 = relativeShiftOnPt_[etaBin]; - LogTrace("") << "\tshiftOnOneOverPt= " << shift1 * 100 << " [%]"; - LogTrace("") << "\trelativeShiftOnPt= " << shift2 * 100 << " [%]"; - - // Set resolutions - sigma1 = uncertaintyOnOneOverPt_[etaBin]; - sigma2 = relativeUncertaintyOnPt_[etaBin]; - LogTrace("") << "\tuncertaintyOnOneOverPt= " << sigma1 << " [1/GeV]"; - LogTrace("") << "\trelativeUncertaintyOnPt= " << sigma2 * 100 << " [%]"; - - // Set efficiency ratio - effRatio = efficiencyRatioOverMC_[etaBin]; - LogTrace("") << "\tefficiencyRatioOverMC= " << effRatio; - - // Reject muons according to efficiency ratio - double rndf = CLHEP::RandFlat::shoot(); - if (rndf > effRatio) - continue; - - // Gaussian Random numbers for smearing - double rndg1 = CLHEP::RandGauss::shoot(); - double rndg2 = CLHEP::RandGauss::shoot(); - - // New muon - double ptmu = mu->pt(); - ptmu += ptgen * (shift1 * ptgen + shift2 + sigma1 * rndg1 * ptgen + sigma2 * rndg2); - reco::Muon* newmu = mu->clone(); - newmu->setP4(reco::Particle::PolarLorentzVector(ptmu, mu->eta(), mu->phi(), mu->mass())); - newmuons->push_back(*newmu); - } - - ev.put(std::move(newmuons)); -} - -DEFINE_FWK_MODULE(DistortedMuonProducer); diff --git a/ElectroWeakAnalysis/Utilities/src/DistortedMuonProducerFromDB.cc b/ElectroWeakAnalysis/Utilities/src/DistortedMuonProducerFromDB.cc deleted file mode 100644 index 6709f7928d129..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/DistortedMuonProducerFromDB.cc +++ /dev/null @@ -1,132 +0,0 @@ -#include -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" - -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/MuonReco/interface/Muon.h" - -#include "MuonAnalysis/MomentumScaleCalibration/interface/MomentumScaleCorrector.h" -#include "MuonAnalysis/MomentumScaleCalibration/interface/ResolutionFunction.h" - -// -// class declaration -// -class DistortedMuonProducerFromDB : public edm::EDProducer { -public: - explicit DistortedMuonProducerFromDB(const edm::ParameterSet&); - ~DistortedMuonProducerFromDB() override; - -private: - void beginRun(const edm::Run&, const edm::EventSetup&) override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - edm::EDGetTokenT > muonToken_; - - std::string dbScaleLabel_; - std::string dbDataResolutionLabel_; - std::string dbMCResolutionLabel_; - - std::unique_ptr momCorrector_; - std::unique_ptr momResolutionData_; - std::unique_ptr momResolutionMC_; -}; - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" - -#include - -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "CondFormats/RecoMuonObjects/interface/MuScleFitDBobject.h" -#include "CondFormats/DataRecord/interface/MuScleFitDBobjectRcd.h" -#include "MuonAnalysis/MomentumScaleCalibration/interface/BaseFunction.h" -#include "MuonAnalysis/MomentumScaleCalibration/interface/Functions.h" - -///////////////////////////////////////////////////////////////////////////////////// -DistortedMuonProducerFromDB::DistortedMuonProducerFromDB(const edm::ParameterSet& pset) { - // What is being produced - produces >(); - - // Input products - muonToken_ = - consumes >(pset.getUntrackedParameter("MuonTag", edm::InputTag("muons"))); - dbScaleLabel_ = pset.getUntrackedParameter("DBScaleLabel", "scale"); - dbDataResolutionLabel_ = pset.getUntrackedParameter("DBDataResolutionLabel", "datareso"); - dbMCResolutionLabel_ = pset.getUntrackedParameter("DBMCResolutionLabel", "mcreso"); -} - -///////////////////////////////////////////////////////////////////////////////////// -DistortedMuonProducerFromDB::~DistortedMuonProducerFromDB() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedMuonProducerFromDB::beginRun(const edm::Run&, const edm::EventSetup& iSetup) { - edm::ESHandle dbObject1; - iSetup.get().get(dbScaleLabel_, dbObject1); - momCorrector_ = std::make_unique(dbObject1.product()); - - LogTrace("") << ">>> Using database for momentum scale corrections !!"; - - edm::ESHandle dbObject2; - iSetup.get().get(dbDataResolutionLabel_, dbObject2); - momResolutionData_ = std::make_unique(dbObject2.product()); - - edm::ESHandle dbObject3; - iSetup.get().get(dbMCResolutionLabel_, dbObject3); - momResolutionMC_ = std::make_unique(dbObject3.product()); - - LogTrace("") << ">>> Using database for momentum resolution corrections !!"; -} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedMuonProducerFromDB::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedMuonProducerFromDB::produce(edm::Event& ev, const edm::EventSetup& iSetup) { - if (ev.isRealData()) - return; - - // Muon collection - edm::Handle > muonCollection; - if (!ev.getByToken(muonToken_, muonCollection)) { - edm::LogError("") << ">>> Muon collection does not exist !!!"; - return; - } - unsigned int muonCollectionSize = muonCollection->size(); - - std::unique_ptr newmuons(new reco::MuonCollection); - - for (unsigned int i = 0; i < muonCollectionSize; i++) { - edm::RefToBase mu = muonCollection->refAt(i); - - // Set shift - double shift = (*momCorrector_)(*mu) - mu->pt(); - LogTrace("") << "\tmomentumScaleShift= " << shift << " [GeV]"; - - // Set resolutions - double sigma = pow(momResolutionData_->sigmaPt(*mu), 2) - pow(momResolutionMC_->sigmaPt(*mu), 2); - if (sigma > 0.) - sigma = sqrt(sigma); - else - sigma = 0.; - LogTrace("") << "\tPt additional smearing= " << sigma << " [GeV]"; - - // Gaussian Random number for smearing - double rndg = CLHEP::RandGauss::shoot(); - - // New muon - double ptmu = mu->pt(); - ptmu += shift + sigma * rndg; - reco::Muon* newmu = mu->clone(); - newmu->setP4(reco::Particle::PolarLorentzVector(ptmu, mu->eta(), mu->phi(), mu->mass())); - newmuons->push_back(*newmu); - } - - ev.put(std::move(newmuons)); -} - -DEFINE_FWK_MODULE(DistortedMuonProducerFromDB); diff --git a/ElectroWeakAnalysis/Utilities/src/DistortedPFCandProducer.cc b/ElectroWeakAnalysis/Utilities/src/DistortedPFCandProducer.cc deleted file mode 100644 index 242d10a31ab63..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/DistortedPFCandProducer.cc +++ /dev/null @@ -1,289 +0,0 @@ -#include -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h" - -#include "MuonAnalysis/MomentumScaleCalibration/interface/MomentumScaleCorrector.h" -#include "MuonAnalysis/MomentumScaleCalibration/interface/ResolutionFunction.h" - -// -// class declaration -// -class DistortedPFCandProducer : public edm::EDProducer { -public: - explicit DistortedPFCandProducer(const edm::ParameterSet&); - ~DistortedPFCandProducer() override; - -private: - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - edm::EDGetTokenT > muonToken_; - edm::EDGetTokenT genMatchMapToken_; - edm::EDGetTokenT > pfToken_; - std::vector etaBinEdges_; - - std::vector shiftOnOneOverPt_; // in [1/GeV] - std::vector relativeShiftOnPt_; - std::vector uncertaintyOnOneOverPt_; // in [1/GeV] - std::vector relativeUncertaintyOnPt_; - - std::vector efficiencyRatioOverMC_; -}; - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h" - -#include -#include - -///////////////////////////////////////////////////////////////////////////////////// -DistortedPFCandProducer::DistortedPFCandProducer(const edm::ParameterSet& pset) { - // What is being produced - produces >(); - - // Input products - muonToken_ = - consumes >(pset.getUntrackedParameter("MuonTag", edm::InputTag("muons"))); - genMatchMapToken_ = consumes( - pset.getUntrackedParameter("GenMatchMapTag", edm::InputTag("genMatchMap"))); - pfToken_ = consumes >( - pset.getUntrackedParameter("PFTag", edm::InputTag("particleFlow"))); - - // Eta edges - std::vector defEtaEdges; - defEtaEdges.push_back(-999999.); - defEtaEdges.push_back(999999.); - etaBinEdges_ = pset.getUntrackedParameter >("EtaBinEdges", defEtaEdges); - unsigned int ninputs_expected = etaBinEdges_.size() - 1; - - // Distortions in muon momentum - std::vector defDistortion; - defDistortion.push_back(0.); - - shiftOnOneOverPt_ = - pset.getUntrackedParameter >("ShiftOnOneOverPt", defDistortion); // in [1/GeV] - if (shiftOnOneOverPt_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - shiftOnOneOverPt_.push_back(shiftOnOneOverPt_[0]); - } - } - - relativeShiftOnPt_ = pset.getUntrackedParameter >("RelativeShiftOnPt", defDistortion); - if (relativeShiftOnPt_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - relativeShiftOnPt_.push_back(relativeShiftOnPt_[0]); - } - } - - uncertaintyOnOneOverPt_ = - pset.getUntrackedParameter >("UncertaintyOnOneOverPt", defDistortion); // in [1/GeV] - if (uncertaintyOnOneOverPt_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - uncertaintyOnOneOverPt_.push_back(uncertaintyOnOneOverPt_[0]); - } - } - - relativeUncertaintyOnPt_ = pset.getUntrackedParameter >("RelativeUncertaintyOnPt", defDistortion); - if (relativeUncertaintyOnPt_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - relativeUncertaintyOnPt_.push_back(relativeUncertaintyOnPt_[0]); - } - } - - // Data/MC efficiency ratios - std::vector defEfficiencyRatio; - defEfficiencyRatio.push_back(1.); - efficiencyRatioOverMC_ = - pset.getUntrackedParameter >("EfficiencyRatioOverMC", defEfficiencyRatio); - if (efficiencyRatioOverMC_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - efficiencyRatioOverMC_.push_back(efficiencyRatioOverMC_[0]); - } - } - - // Send a warning if there are inconsistencies in vector sizes !! - bool effWrong = efficiencyRatioOverMC_.size() != ninputs_expected; - bool momWrong = shiftOnOneOverPt_.size() != ninputs_expected || relativeShiftOnPt_.size() != ninputs_expected || - uncertaintyOnOneOverPt_.size() != ninputs_expected || - relativeUncertaintyOnPt_.size() != ninputs_expected; - if (effWrong and momWrong) { - edm::LogError("") - << "WARNING: DistortedPFCandProducer : Size of some parameters do not match the EtaBinEdges vector!!"; - } -} - -///////////////////////////////////////////////////////////////////////////////////// -DistortedPFCandProducer::~DistortedPFCandProducer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedPFCandProducer::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedPFCandProducer::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void DistortedPFCandProducer::produce(edm::Event& ev, const edm::EventSetup& iSetup) { - if (ev.isRealData()) - return; - - // Muon collection - edm::Handle > muonCollection; - if (!ev.getByToken(muonToken_, muonCollection)) { - edm::LogError("") << ">>> Muon collection does not exist !!!"; - return; - } - - edm::Handle genMatchMap; - if (!ev.getByToken(genMatchMapToken_, genMatchMap)) { - edm::LogError("") << ">>> Muon-GenParticle match map does not exist !!!"; - return; - } - - // Get PFCandidate collection - edm::Handle > pfCollection; - if (!ev.getByToken(pfToken_, pfCollection)) { - edm::LogError("") << ">>> PFCandidate collection does not exist !!!"; - return; - } - - unsigned int muonCollectionSize = muonCollection->size(); - unsigned int pfCollectionSize = pfCollection->size(); - - if (pfCollectionSize < 1) - return; - - // Ask for PfMuon consistency - bool pfMuonFound = false; - - std::unique_ptr newmuons(new reco::PFCandidateCollection); - - // Loop on all PF candidates - for (unsigned int j = 0; j < pfCollectionSize; j++) { - edm::RefToBase pf = pfCollection->refAt(j); - - // New PF muon - double ptmu = pf->pt(); - - for (unsigned int i = 0; i < muonCollectionSize; i++) { - edm::RefToBase mu = muonCollection->refAt(i); - - // Check the muon is in the PF collection - if (pf->particleId() == reco::PFCandidate::mu) { - reco::MuonRef muref = pf->muonRef(); - if (muref.isNonnull()) { - if (muref.key() == mu.key()) { - if (mu->isStandAloneMuon() && ptmu == muref->standAloneMuon()->pt() && - ((!mu->isGlobalMuon() || (mu->isGlobalMuon() && ptmu != muref->combinedMuon()->pt())) && - (!mu->isTrackerMuon() || (mu->isTrackerMuon() && ptmu != mu->track()->pt())))) { - pfMuonFound = false; - } else if (!mu->isTrackerMuon()) { - pfMuonFound = false; - } else { - pfMuonFound = true; - } - } else { - pfMuonFound = false; - } - } - } - - // do nothing if StandAlone muon - //const reco::Track& track = *trackRef; - - if (!pfMuonFound) - continue; - - double ptgen = pf->pt(); - double etagen = pf->eta(); - - reco::GenParticleRef gen = (*genMatchMap)[mu]; - if (!gen.isNull()) { - ptgen = gen->pt(); - etagen = gen->eta(); - LogTrace("") << ">>> Muon-GenParticle match found; ptmu= " << pf->pt() << ", ptgen= " << ptgen; - } else { - LogTrace("") << ">>> MUON-GENPARTICLE MATCH NOT FOUND!!!"; - } - - // Initialize parameters - double effRatio = 0.; - double shift1 = 0.; - double shift2 = 0.; - double sigma1 = 0.; - double sigma2 = 0.; - - // Find out which eta bin should be used - unsigned int nbins = etaBinEdges_.size() - 1; - unsigned int etaBin = nbins; - if (etagen > etaBinEdges_[0] && etagen < etaBinEdges_[nbins]) { - for (unsigned int j = 1; j <= nbins; ++j) { - if (etagen > etaBinEdges_[j]) - continue; - etaBin = j - 1; - break; - } - } - if (etaBin < nbins) { - LogTrace("") << ">>> etaBin: " << etaBin << ", for etagen =" << etagen; - } else { - // Muon is rejected if outside the considered eta range - LogTrace("") << ">>> Muon outside eta range: reject it; etagen = " << etagen; - pfMuonFound = false; - continue; - } - - if (!pfMuonFound) - continue; - - // Set shifts - shift1 = shiftOnOneOverPt_[etaBin]; - shift2 = relativeShiftOnPt_[etaBin]; - LogTrace("") << "\tshiftOnOneOverPt= " << shift1 * 100 << " [%]"; - LogTrace("") << "\trelativeShiftOnPt= " << shift2 * 100 << " [%]"; - - // Set resolutions - sigma1 = uncertaintyOnOneOverPt_[etaBin]; - sigma2 = relativeUncertaintyOnPt_[etaBin]; - LogTrace("") << "\tuncertaintyOnOneOverPt= " << sigma1 << " [1/GeV]"; - LogTrace("") << "\trelativeUncertaintyOnPt= " << sigma2 * 100 << " [%]"; - - // Set efficiency ratio - effRatio = efficiencyRatioOverMC_[etaBin]; - LogTrace("") << "\tefficiencyRatioOverMC= " << effRatio; - - // Reject muons according to efficiency ratio - double rndf = CLHEP::RandFlat::shoot(); - if (rndf > effRatio) - continue; - - // Gaussian Random numbers for smearing - double rndg1 = CLHEP::RandGauss::shoot(); - double rndg2 = CLHEP::RandGauss::shoot(); - - // change here the pt of the candidate, if it is a muon - - ptmu += ptgen * (shift1 * ptgen + shift2 + sigma1 * rndg1 * ptgen + sigma2 * rndg2); - pfMuonFound = false; - } - - reco::PFCandidate* newmu = pf->clone(); - newmu->setP4(reco::Particle::PolarLorentzVector(ptmu, pf->eta(), pf->phi(), pf->mass())); - - newmuons->push_back(*newmu); - } - - ev.put(std::move(newmuons)); -} - -DEFINE_FWK_MODULE(DistortedPFCandProducer); diff --git a/ElectroWeakAnalysis/Utilities/src/FSRWeightProducer.cc b/ElectroWeakAnalysis/Utilities/src/FSRWeightProducer.cc deleted file mode 100644 index 0ae0edf42abea..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/FSRWeightProducer.cc +++ /dev/null @@ -1,185 +0,0 @@ -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CompositeCandidate.h" -#include "CommonTools/CandUtils/interface/AddFourMomenta.h" -#include "CommonTools/CandUtils/interface/Booster.h" -#include - -// -// class declaration -// -class FSRWeightProducer : public edm::EDProducer { -public: - explicit FSRWeightProducer(const edm::ParameterSet&); - ~FSRWeightProducer() override; - -private: - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - double alphaRatio(double); - - edm::EDGetTokenT genToken_; -}; - -///////////////////////////////////////////////////////////////////////////////////// -FSRWeightProducer::FSRWeightProducer(const edm::ParameterSet& pset) { - genToken_ = consumes( - pset.getUntrackedParameter("GenTag", edm::InputTag("genParticles"))); - - produces(); -} - -///////////////////////////////////////////////////////////////////////////////////// -FSRWeightProducer::~FSRWeightProducer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void FSRWeightProducer::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void FSRWeightProducer::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void FSRWeightProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { - if (iEvent.isRealData()) - return; - - edm::Handle genParticles; - iEvent.getByToken(genToken_, genParticles); - - std::unique_ptr weight(new double); - - // Set a default weight to start with - (*weight) = 1.; - - unsigned int gensize = genParticles->size(); - for (unsigned int i = 0; i < gensize; ++i) { - const reco::GenParticle& lepton = (*genParticles)[i]; - if (lepton.status() != 3) - continue; - int leptonId = lepton.pdgId(); - if (abs(leptonId) != 11 && abs(leptonId) != 13 && abs(leptonId) != 15) - continue; - if (lepton.numberOfMothers() != 1) - continue; - const reco::Candidate* boson = lepton.mother(); - int bosonId = abs(boson->pdgId()); - if (bosonId != 23 && bosonId != 24) - continue; - double bosonMass = boson->mass(); - double leptonMass = lepton.mass(); - double leptonEnergy = lepton.energy(); - double cosLeptonTheta = cos(lepton.theta()); - double sinLeptonTheta = sin(lepton.theta()); - double leptonPhi = lepton.phi(); - - int trueKey = i; - if (lepton.numberOfDaughters() == 0) { - continue; - } else if (lepton.numberOfDaughters() == 1) { - int otherleptonKey = lepton.daughterRef(0).key(); - const reco::GenParticle& otherlepton = (*genParticles)[otherleptonKey]; - if (otherlepton.pdgId() != leptonId) - continue; - if (otherlepton.numberOfDaughters() <= 1) - continue; - trueKey = otherleptonKey; - } - - const reco::GenParticle& trueLepton = (*genParticles)[trueKey]; - unsigned int nDaughters = trueLepton.numberOfDaughters(); - - for (unsigned int j = 0; j < nDaughters; ++j) { - const reco::Candidate* photon = trueLepton.daughter(j); - if (photon->pdgId() != 22) - continue; - double photonEnergy = photon->energy(); - double cosPhotonTheta = cos(photon->theta()); - double sinPhotonTheta = sin(photon->theta()); - double photonPhi = photon->phi(); - double costheta = sinLeptonTheta * sinPhotonTheta * cos(leptonPhi - photonPhi) + cosLeptonTheta * cosPhotonTheta; - // Missing O(alpha) terms in soft-collinear approach - // Only for W, from hep-ph/0303260 - if (bosonId == 24) { - double betaLepton = sqrt(1 - pow(leptonMass / leptonEnergy, 2)); - double delta = -8 * photonEnergy * (1 - betaLepton * costheta) / pow(bosonMass, 3) / - (1 - pow(leptonMass / bosonMass, 2)) / (4 - pow(leptonMass / bosonMass, 2)) * leptonEnergy * - (pow(leptonMass, 2) / bosonMass + 2 * photonEnergy); - (*weight) *= (1 + delta); - } - // Missing NLO QED orders in QED parton shower approach - // Change coupling scale from 0 to kT to estimate this effect - (*weight) *= alphaRatio(photonEnergy * sqrt(1 - pow(costheta, 2))); - } - } - - iEvent.put(std::move(weight)); -} - -double FSRWeightProducer::alphaRatio(double pt) { - double pigaga = 0.; - - // Leptonic contribution (just one loop, precise at < 0.3% level) - const double alphapi = 1 / 137.036 / M_PI; - const double mass_e = 0.0005; - const double mass_mu = 0.106; - const double mass_tau = 1.777; - const double mass_Z = 91.2; - if (pt > mass_e) - pigaga += alphapi * (2 * log(pt / mass_e) / 3. - 5. / 9.); - if (pt > mass_mu) - pigaga += alphapi * (2 * log(pt / mass_mu) / 3. - 5. / 9.); - if (pt > mass_tau) - pigaga += alphapi * (2 * log(pt / mass_tau) / 3. - 5. / 9.); - - // Hadronic vaccum contribution - // Using simple effective parametrization from Physics Letters B 513 (2001) 46. - // Top contribution neglected - double A = 0.; - double B = 0.; - double C = 0.; - if (pt < 0.7) { - A = 0.0; - B = 0.0023092; - C = 3.9925370; - } else if (pt < 2.0) { - A = 0.0; - B = 0.0022333; - C = 4.2191779; - } else if (pt < 4.0) { - A = 0.0; - B = 0.0024402; - C = 3.2496684; - } else if (pt < 10.0) { - A = 0.0; - B = 0.0027340; - C = 2.0995092; - } else if (pt < mass_Z) { - A = 0.0010485; - B = 0.0029431; - C = 1.0; - } else if (pt < 10000.) { - A = 0.0012234; - B = 0.0029237; - C = 1.0; - } else { - A = 0.0016894; - B = 0.0028984; - C = 1.0; - } - pigaga += A + B * log(1. + C * pt * pt); - - // Done - return 1. / (1. - pigaga); -} - -DEFINE_FWK_MODULE(FSRWeightProducer); diff --git a/ElectroWeakAnalysis/Utilities/src/ISRGammaWeightProducer.cc b/ElectroWeakAnalysis/Utilities/src/ISRGammaWeightProducer.cc deleted file mode 100644 index 7af06f9b02536..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/ISRGammaWeightProducer.cc +++ /dev/null @@ -1,140 +0,0 @@ -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CompositeCandidate.h" -#include "CommonTools/CandUtils/interface/AddFourMomenta.h" -#include "CommonTools/CandUtils/interface/Booster.h" -#include - -// -// class declaration -// -class ISRGammaWeightProducer : public edm::EDProducer { -public: - explicit ISRGammaWeightProducer(const edm::ParameterSet&); - ~ISRGammaWeightProducer() override; - - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - -private: - edm::EDGetTokenT genToken_; - std::vector isrBinEdges_; - std::vector ptWeights_; -}; - -///////////////////////////////////////////////////////////////////////////////////// -ISRGammaWeightProducer::ISRGammaWeightProducer(const edm::ParameterSet& pset) { - genToken_ = consumes( - pset.getUntrackedParameter("GenTag", edm::InputTag("genParticles"))); - - produces(); -} - -///////////////////////////////////////////////////////////////////////////////////// -ISRGammaWeightProducer::~ISRGammaWeightProducer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void ISRGammaWeightProducer::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void ISRGammaWeightProducer::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void ISRGammaWeightProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { - if (iEvent.isRealData()) - return; - - edm::Handle genParticles; - iEvent.getByToken(genToken_, genParticles); - unsigned int gensize = genParticles->size(); - - std::unique_ptr weight(new double); - - // Set a default weight to start with - (*weight) = 1.; - - // Find the boson at the hard scattering level - const reco::GenParticle* boson = nullptr; - int parton1Key = -1; - int parton2Key = -1; - for (unsigned int i = 0; i < gensize; ++i) { - const reco::GenParticle& part = (*genParticles)[i]; - int status = abs(part.status()); - if (status != 3) - continue; - if (part.numberOfMothers() != 2) - continue; - int partId = abs(part.pdgId()); - if (status == 3 && (partId == 23 || abs(partId) == 24)) { - boson = &(*genParticles)[i]; - parton1Key = part.motherRef(0).key(); - parton2Key = part.motherRef(1).key(); - break; - } - } - - // Consider only photons near the hard-scattering process - const reco::GenParticle* photon = nullptr; - if (boson) { - for (unsigned int i = 0; i < gensize; ++i) { - photon = nullptr; - const reco::GenParticle& part = (*genParticles)[i]; - int status = abs(part.status()); - if (status != 1) - continue; - int partId = abs(part.pdgId()); - if (partId != 22) - continue; - if (part.numberOfMothers() != 1) - continue; - int keyM = part.motherRef(0).key(); - const reco::GenParticle* mother = &(*genParticles)[keyM]; - if (mother->status() != 3) - continue; - int mId = mother->pdgId(); - if (abs(mId) > 6 && mId != 2212) - continue; - for (unsigned int j = 0; j < mother->numberOfDaughters(); ++j) { - int keyD = mother->daughterRef(j).key(); - if (keyD == parton1Key || keyD == parton2Key) { - photon = ∂ - break; - } - } - if (photon) - break; - } - } - - if (boson && photon) { - math::XYZTLorentzVector smom = boson->p4() + photon->p4(); - double s = smom.M2(); - double sqrts = smom.M(); - - // Go to CM using the boost direction of the boson+photon system - ROOT::Math::Boost cmboost(smom.BoostToCM()); - math::XYZTLorentzVector photonCM(cmboost(photon->p4())); - double pcostheta = (smom.x() * photonCM.x() + smom.y() * photonCM.y() + smom.z() * photonCM.z()) / smom.P(); - - // Determine kinematic invariants - double t = -sqrts * (photonCM.t() - pcostheta); - double MV = boson->mass(); - double u = MV * MV - s - t; - (*weight) = 1. - 2 * t * u / (s * s + MV * MV * MV * MV); - //printf(">>>>>>>>> s %f t %f u %f, MV %f, weight = %f\n", s, t, u, MV, (*weight)); - } - - iEvent.put(std::move(weight)); -} - -DEFINE_FWK_MODULE(ISRGammaWeightProducer); diff --git a/ElectroWeakAnalysis/Utilities/src/ISRWeightProducer.cc b/ElectroWeakAnalysis/Utilities/src/ISRWeightProducer.cc deleted file mode 100644 index c02896da46847..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/ISRWeightProducer.cc +++ /dev/null @@ -1,107 +0,0 @@ -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CompositeCandidate.h" -#include "CommonTools/CandUtils/interface/AddFourMomenta.h" -#include "CommonTools/CandUtils/interface/Booster.h" -#include - -// -// class declaration -// -class ISRWeightProducer : public edm::EDProducer { -public: - explicit ISRWeightProducer(const edm::ParameterSet&); - ~ISRWeightProducer() override; - -private: - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - edm::EDGetTokenT genToken_; - std::vector isrBinEdges_; - std::vector ptWeights_; -}; - -///////////////////////////////////////////////////////////////////////////////////// -ISRWeightProducer::ISRWeightProducer(const edm::ParameterSet& pset) { - genToken_ = consumes( - pset.getUntrackedParameter("GenTag", edm::InputTag("genParticles"))); - - // Pt bin edges - std::vector defPtEdges; - defPtEdges.push_back(0.); - defPtEdges.push_back(999999.); - isrBinEdges_ = pset.getUntrackedParameter >("ISRBinEdges", defPtEdges); - unsigned int ninputs_expected = isrBinEdges_.size() - 1; - - // Distortions in muon momentum - std::vector defWeights; - defWeights.push_back(1.); - ptWeights_ = pset.getUntrackedParameter >("PtWeights", defWeights); - if (ptWeights_.size() == 1 && ninputs_expected > 1) { - for (unsigned int i = 1; i < ninputs_expected; i++) { - ptWeights_.push_back(ptWeights_[0]); - } - } - - produces(); -} - -///////////////////////////////////////////////////////////////////////////////////// -ISRWeightProducer::~ISRWeightProducer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void ISRWeightProducer::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void ISRWeightProducer::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void ISRWeightProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { - if (iEvent.isRealData()) - return; - - edm::Handle genParticles; - iEvent.getByToken(genToken_, genParticles); - unsigned int gensize = genParticles->size(); - - std::unique_ptr weight(new double); - - // Set as default weight the asymptotic value at high pt (i.e. value of last bin) - (*weight) = ptWeights_[ptWeights_.size() - 1]; - - unsigned int nbins = isrBinEdges_.size() - 1; - for (unsigned int i = 0; i < gensize; ++i) { - const reco::GenParticle& part = (*genParticles)[i]; - int id = part.pdgId(); - if (id != 23 && abs(id) != 24) - continue; - int status = part.status(); - if (status != 3) - continue; - double pt = part.pt(); - if (pt > isrBinEdges_[0] && pt < isrBinEdges_[nbins]) { - for (unsigned int j = 1; j <= nbins; ++j) { - if (pt > isrBinEdges_[j]) - continue; - (*weight) = ptWeights_[j - 1]; - break; - } - } - break; - } - - iEvent.put(std::move(weight)); -} - -DEFINE_FWK_MODULE(ISRWeightProducer); diff --git a/ElectroWeakAnalysis/Utilities/src/MuonWithPFIsoProducer.cc b/ElectroWeakAnalysis/Utilities/src/MuonWithPFIsoProducer.cc deleted file mode 100644 index 2e5c04bd88233..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/MuonWithPFIsoProducer.cc +++ /dev/null @@ -1,185 +0,0 @@ -#include -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h" - -#include "MuonAnalysis/MomentumScaleCalibration/interface/MomentumScaleCorrector.h" -#include "MuonAnalysis/MomentumScaleCalibration/interface/ResolutionFunction.h" - -// -// class declaration -// -class MuonWithPFIsoProducer : public edm::EDProducer { -public: - explicit MuonWithPFIsoProducer(const edm::ParameterSet&); - ~MuonWithPFIsoProducer() override; - -private: - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - edm::EDGetTokenT > muonToken_; - edm::EDGetTokenT > pfToken_; - - bool usePfMuonsOnly_; - - double trackIsoVeto_; - double gammaIsoVeto_; - double neutralHadronIsoVeto_; -}; - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/TrackReco/interface/Track.h" - -#include "DataFormats/GeometryVector/interface/VectorUtil.h" - -///////////////////////////////////////////////////////////////////////////////////// -MuonWithPFIsoProducer::MuonWithPFIsoProducer(const edm::ParameterSet& pset) { - // What is being produced - produces >(); - - // Muon collection - muonToken_ = - consumes >(pset.getUntrackedParameter("MuonTag", edm::InputTag("muons"))); - - // PF candidate collection - pfToken_ = consumes >( - pset.getUntrackedParameter("PFTag", edm::InputTag("particleFlow"))); - - // Use only PF muons to get exact consistency with PfMET - usePfMuonsOnly_ = pset.getUntrackedParameter("UsePfMuonsOnly", false); - - // Veto cone - trackIsoVeto_ = pset.getUntrackedParameter("TrackIsoVeto", 0.01); - gammaIsoVeto_ = pset.getUntrackedParameter("GammaIsoVeto", 0.07); - neutralHadronIsoVeto_ = pset.getUntrackedParameter("NeutralHadronIsoVeto", 0.1); -} - -///////////////////////////////////////////////////////////////////////////////////// -MuonWithPFIsoProducer::~MuonWithPFIsoProducer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void MuonWithPFIsoProducer::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void MuonWithPFIsoProducer::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void MuonWithPFIsoProducer::produce(edm::Event& ev, const edm::EventSetup& iSetup) { - // Initialize pointer to new output muon collection - std::unique_ptr newmuons(new reco::MuonCollection); - - // Get Muon collection - edm::Handle > muonCollection; - if (!ev.getByToken(muonToken_, muonCollection)) { - edm::LogError("") << ">>> Muon collection does not exist !!!"; - ev.put(std::move(newmuons)); - return; - } - - // Get PFCandidate collection - edm::Handle > pfCollection; - if (!ev.getByToken(pfToken_, pfCollection)) { - edm::LogError("") << ">>> PFCandidate collection does not exist !!!"; - ev.put(std::move(newmuons)); - return; - } - - // Loop over Pf candidates to find muons and collect deposits in veto, - // dR<0.3 and dR<0.5 cones. Interpret "track" as charged particles (e,mu, - // chraged hadrons). Interpret "em" as photons and also as electromagnetic - // energy in HF. Interpret "had" as neutral hadrons and also as hadronic - // energy in HF. Apply weights if requested at input level. - // HO energies are not filled. Ditto for jet energies around the muon. - unsigned int muonCollectionSize = muonCollection->size(); - unsigned int pfCollectionSize = pfCollection->size(); - for (unsigned int i = 0; i < muonCollectionSize; i++) { - edm::RefToBase mu = muonCollection->refAt(i); - - // Ask for PfMuon consistency if requested - bool muonFound = false; - - // Starting bycloning this muon - reco::Muon* newmu = mu->clone(); - reco::TrackRef tk = mu->innerTrack(); - - // Set isolations - reco::MuonIsolation iso03; - reco::MuonIsolation iso05; - // Loop on all candidates - for (unsigned int j = 0; j < pfCollectionSize; j++) { - edm::RefToBase pf = pfCollection->refAt(j); - - // Check the muon is in the PF collection when required - bool thisIsTheMuon = false; - if (tk.isNonnull() && pf->trackRef() == tk) { - thisIsTheMuon = true; - muonFound = true; - } - - // Get dR. Nothing to add if dR>0.5 - double deltaR = Geom::deltaR(mu->momentum(), pf->momentum()); - if (deltaR > 0.5) - continue; - - // Fill "tracker" components - if (pf->particleId() == reco::PFCandidate::h || pf->particleId() == reco::PFCandidate::e || - pf->particleId() == reco::PFCandidate::mu) { - if (deltaR < trackIsoVeto_ || thisIsTheMuon) { - iso05.trackerVetoPt += pf->pt(); - iso03.trackerVetoPt += pf->pt(); - } else { - iso05.sumPt += pf->pt(); - iso05.nTracks++; - if (deltaR < 0.3) { - iso03.sumPt += pf->pt(); - iso03.nTracks++; - } - } - // Fill "em" components - } else if (pf->particleId() == reco::PFCandidate::gamma || pf->particleId() == reco::PFCandidate::egamma_HF) { - if (deltaR < gammaIsoVeto_) { - iso05.emVetoEt += pf->pt(); - iso03.emVetoEt += pf->pt(); - } else { - iso05.emEt += pf->pt(); - if (deltaR < 0.3) - iso03.emEt += pf->pt(); - } - // Fill "had" components - } else if (pf->particleId() == reco::PFCandidate::h0 || pf->particleId() == reco::PFCandidate::h_HF) { - if (deltaR < neutralHadronIsoVeto_) { - iso05.hadVetoEt += pf->pt(); - iso03.hadVetoEt += pf->pt(); - } else { - iso05.hadEt += pf->pt(); - if (deltaR < 0.3) - iso03.hadEt += pf->pt(); - } - } - } - - // Do not take this muon (under explicit request) if it is not a PfMuon - if (usePfMuonsOnly_ && (!muonFound)) - continue; - - // Set this isolation information in the new muon - newmu->setIsolation(iso03, iso05); - - // Add new muon to output collection - newmuons->push_back(*newmu); - } - - // Add output collection to event - ev.put(std::move(newmuons)); -} - -DEFINE_FWK_MODULE(MuonWithPFIsoProducer); diff --git a/ElectroWeakAnalysis/Utilities/src/PdfSystematicsAnalyzer.cc b/ElectroWeakAnalysis/Utilities/src/PdfSystematicsAnalyzer.cc deleted file mode 100644 index 88da2f8f352c0..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/PdfSystematicsAnalyzer.cc +++ /dev/null @@ -1,327 +0,0 @@ -////////// Header section ///////////////////////////////////////////// -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/TriggerResults.h" - -class PdfSystematicsAnalyzer : public edm::EDFilter { -public: - PdfSystematicsAnalyzer(const edm::ParameterSet& pset); - ~PdfSystematicsAnalyzer() override; - bool filter(edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - -private: - std::string selectorPath_; - std::vector pdfWeightTags_; - std::vector > > pdfWeightTokens_; - edm::EDGetTokenT triggerResultsToken_; - unsigned int originalEvents_; - unsigned int selectedEvents_; - std::vector pdfStart_; - std::vector weightedSelectedEvents_; - std::vector weighted2SelectedEvents_; - std::vector weightedEvents_; -}; - -////////// Source code //////////////////////////////////////////////// -#include "FWCore/Framework/interface/MakerMacros.h" -#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 "FWCore/Common/interface/TriggerNames.h" - -#include "FWCore/Utilities/interface/transform.h" - -///////////////////////////////////////////////////////////////////////////////////// -PdfSystematicsAnalyzer::PdfSystematicsAnalyzer(const edm::ParameterSet& pset) - : selectorPath_(pset.getUntrackedParameter("SelectorPath", "")), - pdfWeightTags_(pset.getUntrackedParameter >("PdfWeightTags")), - pdfWeightTokens_(edm::vector_transform( - pdfWeightTags_, [this](edm::InputTag const& tag) { return consumes >(tag); })), - triggerResultsToken_(consumes(edm::InputTag("TriggerResults"))) {} - -///////////////////////////////////////////////////////////////////////////////////// -PdfSystematicsAnalyzer::~PdfSystematicsAnalyzer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void PdfSystematicsAnalyzer::beginJob() { - originalEvents_ = 0; - selectedEvents_ = 0; - edm::LogVerbatim("PDFAnalysis") << "PDF uncertainties will be determined for the following sets: "; - for (unsigned int i = 0; i < pdfWeightTags_.size(); ++i) { - edm::LogVerbatim("PDFAnalysis") << "\t" << pdfWeightTags_[i].instance(); - pdfStart_.push_back(-1); - } -} - -///////////////////////////////////////////////////////////////////////////////////// -void PdfSystematicsAnalyzer::endJob() { - if (originalEvents_ == 0) { - edm::LogVerbatim("PDFAnalysis") << "NO EVENTS => NO RESULTS"; - return; - } - if (selectedEvents_ == 0) { - edm::LogVerbatim("PDFAnalysis") << "NO SELECTED EVENTS => NO RESULTS"; - return; - } - - edm::LogVerbatim("PDFAnalysis") << "\n>>>> Begin of PDF weight systematics summary >>>>"; - edm::LogVerbatim("PDFAnalysis") << "Total number of analyzed data: " << originalEvents_ << " [events]"; - double originalAcceptance = double(selectedEvents_) / originalEvents_; - edm::LogVerbatim("PDFAnalysis") << "Total number of selected data: " << selectedEvents_ - << " [events], corresponding to acceptance: [" << originalAcceptance * 100 << " +- " - << 100 * sqrt(originalAcceptance * (1. - originalAcceptance) / originalEvents_) - << "] %"; - - edm::LogVerbatim("PDFAnalysis") << "\n>>>>> PDF UNCERTAINTIES ON RATE >>>>>>"; - for (unsigned int i = 0; i < pdfWeightTags_.size(); ++i) { - bool nnpdfFlag = (pdfWeightTags_[i].instance().substr(0, 5) == "NNPDF"); - unsigned int nmembers = weightedSelectedEvents_.size() - pdfStart_[i]; - if (i < pdfWeightTags_.size() - 1) - nmembers = pdfStart_[i + 1] - pdfStart_[i]; - unsigned int npairs = (nmembers - 1) / 2; - edm::LogVerbatim("PDFAnalysis") << "RATE Results for PDF set " << pdfWeightTags_[i].instance() << " ---->"; - - double events_central = weightedSelectedEvents_[pdfStart_[i]]; - edm::LogVerbatim("PDFAnalysis") << "\tEstimate for central PDF member: " << int(events_central) << " [events]"; - double events2_central = weighted2SelectedEvents_[pdfStart_[i]]; - edm::LogVerbatim("PDFAnalysis") - << "\ti.e. [" << std::setprecision(4) << 100 * (events_central - selectedEvents_) / selectedEvents_ << " +- " - << 100 * sqrt(events2_central - events_central + selectedEvents_ * (1 - originalAcceptance)) / selectedEvents_ - << "] % relative variation with respect to original PDF"; - - if (npairs > 0) { - edm::LogVerbatim("PDFAnalysis") << "\tNumber of eigenvectors for uncertainty estimation: " << npairs; - double wplus = 0.; - double wminus = 0.; - unsigned int nplus = 0; - unsigned int nminus = 0; - for (unsigned int j = 0; j < npairs; ++j) { - double wa = weightedSelectedEvents_[pdfStart_[i] + 2 * j + 1] / events_central - 1.; - double wb = weightedSelectedEvents_[pdfStart_[i] + 2 * j + 2] / events_central - 1.; - if (nnpdfFlag) { - if (wa > 0.) { - wplus += wa * wa; - nplus++; - } else { - wminus += wa * wa; - nminus++; - } - if (wb > 0.) { - wplus += wb * wb; - nplus++; - } else { - wminus += wb * wb; - nminus++; - } - } else { - if (wa > wb) { - if (wa < 0.) - wa = 0.; - if (wb > 0.) - wb = 0.; - wplus += wa * wa; - wminus += wb * wb; - } else { - if (wb < 0.) - wb = 0.; - if (wa > 0.) - wa = 0.; - wplus += wb * wb; - wminus += wa * wa; - } - } - } - if (wplus > 0) - wplus = sqrt(wplus); - if (wminus > 0) - wminus = sqrt(wminus); - if (nnpdfFlag) { - if (nplus > 0) - wplus /= sqrt(nplus); - if (nminus > 0) - wminus /= sqrt(nminus); - } - edm::LogVerbatim("PDFAnalysis") << "\tRelative uncertainty with respect to central member: +" - << std::setprecision(4) << 100. * wplus << " / -" << std::setprecision(4) - << 100. * wminus << " [%]"; - } else { - edm::LogVerbatim("PDFAnalysis") << "\tNO eigenvectors for uncertainty estimation"; - } - } - - edm::LogVerbatim("PDFAnalysis") << "\n>>>>> PDF UNCERTAINTIES ON ACCEPTANCE >>>>>>"; - for (unsigned int i = 0; i < pdfWeightTags_.size(); ++i) { - bool nnpdfFlag = (pdfWeightTags_[i].instance().substr(0, 5) == "NNPDF"); - unsigned int nmembers = weightedEvents_.size() - pdfStart_[i]; - if (i < pdfWeightTags_.size() - 1) - nmembers = pdfStart_[i + 1] - pdfStart_[i]; - unsigned int npairs = (nmembers - 1) / 2; - edm::LogVerbatim("PDFAnalysis") << "ACCEPTANCE Results for PDF set " << pdfWeightTags_[i].instance() << " ---->"; - - double acc_central = 0.; - double acc2_central = 0.; - if (weightedEvents_[pdfStart_[i]] > 0) { - acc_central = weightedSelectedEvents_[pdfStart_[i]] / weightedEvents_[pdfStart_[i]]; - acc2_central = weighted2SelectedEvents_[pdfStart_[i]] / weightedEvents_[pdfStart_[i]]; - } - double waverage = weightedEvents_[pdfStart_[i]] / originalEvents_; - edm::LogVerbatim("PDFAnalysis") << "\tEstimate for central PDF member acceptance: [" << acc_central * 100 << " +- " - << 100 * - sqrt((acc2_central / waverage - acc_central * acc_central) / originalEvents_) - << "] %"; - double xi = acc_central - originalAcceptance; - double deltaxi = (acc2_central - (originalAcceptance + 2 * xi + xi * xi)) / originalEvents_; - if (deltaxi > 0) - deltaxi = sqrt(deltaxi); //else deltaxi = 0.; - edm::LogVerbatim("PDFAnalysis") << "\ti.e. [" << std::setprecision(4) << 100 * xi / originalAcceptance << " +- " - << std::setprecision(4) << 100 * deltaxi / originalAcceptance - << "] % relative variation with respect to the original PDF"; - - if (npairs > 0) { - edm::LogVerbatim("PDFAnalysis") << "\tNumber of eigenvectors for uncertainty estimation: " << npairs; - double wplus = 0.; - double wminus = 0.; - unsigned int nplus = 0; - unsigned int nminus = 0; - for (unsigned int j = 0; j < npairs; ++j) { - double wa = 0.; - if (weightedEvents_[pdfStart_[i] + 2 * j + 1] > 0) - wa = (weightedSelectedEvents_[pdfStart_[i] + 2 * j + 1] / weightedEvents_[pdfStart_[i] + 2 * j + 1]) / - acc_central - - 1.; - double wb = 0.; - if (weightedEvents_[pdfStart_[i] + 2 * j + 2] > 0) - wb = (weightedSelectedEvents_[pdfStart_[i] + 2 * j + 2] / weightedEvents_[pdfStart_[i] + 2 * j + 2]) / - acc_central - - 1.; - if (nnpdfFlag) { - if (wa > 0.) { - wplus += wa * wa; - nplus++; - } else { - wminus += wa * wa; - nminus++; - } - if (wb > 0.) { - wplus += wb * wb; - nplus++; - } else { - wminus += wb * wb; - nminus++; - } - } else { - if (wa > wb) { - if (wa < 0.) - wa = 0.; - if (wb > 0.) - wb = 0.; - wplus += wa * wa; - wminus += wb * wb; - } else { - if (wb < 0.) - wb = 0.; - if (wa > 0.) - wa = 0.; - wplus += wb * wb; - wminus += wa * wa; - } - } - } - if (wplus > 0) - wplus = sqrt(wplus); - if (wminus > 0) - wminus = sqrt(wminus); - if (nnpdfFlag) { - if (nplus > 0) - wplus /= sqrt(nplus); - if (nminus > 0) - wminus /= sqrt(nminus); - } - edm::LogVerbatim("PDFAnalysis") << "\tRelative uncertainty with respect to central member: +" - << std::setprecision(4) << 100. * wplus << " / -" << std::setprecision(4) - << 100. * wminus << " [%]"; - } else { - edm::LogVerbatim("PDFAnalysis") << "\tNO eigenvectors for uncertainty estimation"; - } - } - edm::LogVerbatim("PDFAnalysis") << ">>>> End of PDF weight systematics summary >>>>"; -} - -///////////////////////////////////////////////////////////////////////////////////// -bool PdfSystematicsAnalyzer::filter(edm::Event& ev, const edm::EventSetup&) { - edm::Handle > weightHandle; - for (unsigned int i = 0; i < pdfWeightTags_.size(); ++i) { - if (!ev.getByToken(pdfWeightTokens_[i], weightHandle)) { - if (originalEvents_ == 0) { - edm::LogError("PDFAnalysis") << ">>> WARNING: some weights not found!"; - edm::LogError("PDFAnalysis") << ">>> But maybe OK, if you are prefiltering!"; - edm::LogError("PDFAnalysis") << ">>> If things are OK, this warning should disappear after a while!"; - } - return false; - } - } - - originalEvents_++; - - bool selectedEvent = false; - edm::Handle triggerResults; - if (!ev.getByToken(triggerResultsToken_, triggerResults)) { - edm::LogError("PDFAnalysis") << ">>> TRIGGER collection does not exist !!!"; - return false; - } - - const edm::TriggerNames& trigNames = ev.triggerNames(*triggerResults); - unsigned int pathIndex = trigNames.triggerIndex(selectorPath_); - bool pathFound = (pathIndex < trigNames.size()); // pathIndex >= 0, since pathIndex is unsigned - if (pathFound) { - if (triggerResults->accept(pathIndex)) - selectedEvent = true; - } - //edm::LogVerbatim("PDFAnalysis") << ">>>> Path Name: " << selectorPath_ << ", selected? " << selectedEvent; - - if (selectedEvent) - selectedEvents_++; - - for (unsigned int i = 0; i < pdfWeightTags_.size(); ++i) { - if (!ev.getByToken(pdfWeightTokens_[i], weightHandle)) - return false; - std::vector weights = (*weightHandle); - unsigned int nmembers = weights.size(); - // Set up arrays the first time wieghts are read - if (pdfStart_[i] < 0) { - pdfStart_[i] = weightedEvents_.size(); - for (unsigned int j = 0; j < nmembers; ++j) { - weightedEvents_.push_back(0.); - weightedSelectedEvents_.push_back(0.); - weighted2SelectedEvents_.push_back(0.); - } - } - - for (unsigned int j = 0; j < nmembers; ++j) { - weightedEvents_[pdfStart_[i] + j] += weights[j]; - if (selectedEvent) { - weightedSelectedEvents_[pdfStart_[i] + j] += weights[j]; - weighted2SelectedEvents_[pdfStart_[i] + j] += weights[j] * weights[j]; - } - } - - /* - printf("\n>>>>>>>>> Run %8d Event %d, members %3d PDF set %s : Weights >>>> \n", ev.id().run(), ev.id().event(), nmembers, pdfWeightTags_[i].instance().data()); - for (unsigned int i=0; i - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CompositeCandidate.h" -#include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h" -#include "CommonTools/CandUtils/interface/AddFourMomenta.h" -#include "CommonTools/CandUtils/interface/Booster.h" -#include - -// -// class declaration -// -class PdfWeightProducer : public edm::EDProducer { -public: - explicit PdfWeightProducer(const edm::ParameterSet&); - ~PdfWeightProducer() override; - -private: - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - std::string fixPOWHEG_; - bool useFirstAsDefault_; - edm::InputTag genTag_; - edm::EDGetTokenT genToken_; - edm::InputTag pdfInfoTag_; - edm::EDGetTokenT pdfInfoToken_; - std::vector pdfSetNames_; - std::vector pdfShortNames_; -}; - -namespace LHAPDF { - void initPDFSet(int nset, const std::string& filename, int member = 0); - int numberPDF(int nset); - void usePDFMember(int nset, int member); - double xfx(int nset, double x, double Q, int fl); - double getXmin(int nset, int member); - double getXmax(int nset, int member); - double getQ2min(int nset, int member); - double getQ2max(int nset, int member); - void extrapolate(bool extrapolate = true); -} // namespace LHAPDF - -///////////////////////////////////////////////////////////////////////////////////// -PdfWeightProducer::PdfWeightProducer(const edm::ParameterSet& pset) - : fixPOWHEG_(pset.getUntrackedParameter("FixPOWHEG", "")), - useFirstAsDefault_(pset.getUntrackedParameter("useFirstAsDefault", false)), - genTag_(pset.getUntrackedParameter("GenTag", edm::InputTag("genParticles"))), - genToken_(mayConsume(genTag_)), - pdfInfoTag_(pset.getUntrackedParameter("PdfInfoTag", edm::InputTag("generator"))), - pdfInfoToken_(consumes(pdfInfoTag_)), - pdfSetNames_(pset.getUntrackedParameter >("PdfSetNames")) { - if (!fixPOWHEG_.empty()) - pdfSetNames_.insert(pdfSetNames_.begin(), fixPOWHEG_); - - if (pdfSetNames_.size() > 3) { - edm::LogWarning("") << pdfSetNames_.size() - << " PDF sets requested on input. Using only the first 3 sets and ignoring the rest!!"; - pdfSetNames_.erase(pdfSetNames_.begin() + 3, pdfSetNames_.end()); - } - - for (unsigned int k = 0; k < pdfSetNames_.size(); k++) { - size_t dot = pdfSetNames_[k].find_first_of('.'); - size_t underscore = pdfSetNames_[k].find_first_of('_'); - if (underscore < dot) { - pdfShortNames_.push_back(pdfSetNames_[k].substr(0, underscore)); - } else { - pdfShortNames_.push_back(pdfSetNames_[k].substr(0, dot)); - } - produces >(pdfShortNames_[k]); - } -} - -///////////////////////////////////////////////////////////////////////////////////// -PdfWeightProducer::~PdfWeightProducer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void PdfWeightProducer::beginJob() { - for (unsigned int k = 1; k <= pdfSetNames_.size(); k++) { - LHAPDF::initPDFSet(k, pdfSetNames_[k - 1]); - } -} - -///////////////////////////////////////////////////////////////////////////////////// -void PdfWeightProducer::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void PdfWeightProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { - if (iEvent.isRealData()) - return; - - edm::Handle pdfstuff; - if (!iEvent.getByToken(pdfInfoToken_, pdfstuff)) { - edm::LogError("PDFWeightProducer") << ">>> PdfInfo not found: " << pdfInfoTag_.encode() << " !!!"; - return; - } - - float Q = pdfstuff->pdf()->scalePDF; - - int id1 = pdfstuff->pdf()->id.first; - double x1 = pdfstuff->pdf()->x.first; - double pdf1 = pdfstuff->pdf()->xPDF.first; - - int id2 = pdfstuff->pdf()->id.second; - double x2 = pdfstuff->pdf()->x.second; - double pdf2 = pdfstuff->pdf()->xPDF.second; - if (useFirstAsDefault_ && pdf1 == -1. && pdf2 == -1.) { - LHAPDF::usePDFMember(1, 0); - pdf1 = LHAPDF::xfx(1, x1, Q, id1) / x1; - pdf2 = LHAPDF::xfx(1, x2, Q, id2) / x2; - } - - // Ad-hoc fix for POWHEG - if (!fixPOWHEG_.empty()) { - edm::Handle genParticles; - if (!iEvent.getByToken(genToken_, genParticles)) { - edm::LogError("PDFWeightProducer") << ">>> genParticles not found: " << genTag_.encode() << " !!!"; - return; - } - unsigned int gensize = genParticles->size(); - double mboson = 0.; - for (unsigned int i = 0; i < gensize; ++i) { - const reco::GenParticle& part = (*genParticles)[i]; - int status = part.status(); - if (status != 3) - continue; - int id = part.pdgId(); - if (id != 23 && abs(id) != 24) - continue; - mboson = part.mass(); - break; - } - Q = sqrt(mboson * mboson + Q * Q); - LHAPDF::usePDFMember(1, 0); - pdf1 = LHAPDF::xfx(1, x1, Q, id1) / x1; - pdf2 = LHAPDF::xfx(1, x2, Q, id2) / x2; - } - - // Put PDF weights in the event - for (unsigned int k = 1; k <= pdfSetNames_.size(); ++k) { - std::unique_ptr > weights(new std::vector); - unsigned int nweights = 1; - if (LHAPDF::numberPDF(k) > 1) - nweights += LHAPDF::numberPDF(k); - weights->reserve(nweights); - - for (unsigned int i = 0; i < nweights; ++i) { - LHAPDF::usePDFMember(k, i); - double newpdf1 = LHAPDF::xfx(k, x1, Q, id1) / x1; - double newpdf2 = LHAPDF::xfx(k, x2, Q, id2) / x2; - weights->push_back(newpdf1 / pdf1 * newpdf2 / pdf2); - } - iEvent.put(std::move(weights), pdfShortNames_[k - 1]); - } -} - -DEFINE_FWK_MODULE(PdfWeightProducer); diff --git a/ElectroWeakAnalysis/Utilities/src/SimpleSystematicsAnalyzer.cc b/ElectroWeakAnalysis/Utilities/src/SimpleSystematicsAnalyzer.cc deleted file mode 100644 index 78f8813c86cfe..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/SimpleSystematicsAnalyzer.cc +++ /dev/null @@ -1,147 +0,0 @@ -////////// Header section ///////////////////////////////////////////// -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/TriggerResults.h" - -class SimpleSystematicsAnalyzer : public edm::EDFilter { -public: - SimpleSystematicsAnalyzer(const edm::ParameterSet& pset); - ~SimpleSystematicsAnalyzer() override; - bool filter(edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - -private: - std::string selectorPath_; - std::vector weightTags_; - std::vector > weightTokens_; - edm::EDGetTokenT triggerResultsToken_; - unsigned int originalEvents_; - std::vector weightedEvents_; - unsigned int selectedEvents_; - std::vector weightedSelectedEvents_; - std::vector weighted2SelectedEvents_; -}; - -////////// Source code //////////////////////////////////////////////// -#include "FWCore/Framework/interface/MakerMacros.h" -#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 "FWCore/Common/interface/TriggerNames.h" - -#include "FWCore/Utilities/interface/transform.h" - -///////////////////////////////////////////////////////////////////////////////////// -SimpleSystematicsAnalyzer::SimpleSystematicsAnalyzer(const edm::ParameterSet& pset) - : selectorPath_(pset.getUntrackedParameter("SelectorPath", "")), - weightTags_(pset.getUntrackedParameter >("WeightTags")), - weightTokens_( - edm::vector_transform(weightTags_, [this](edm::InputTag const& tag) { return consumes(tag); })), - triggerResultsToken_(consumes(edm::InputTag("TriggerResults"))) {} - -///////////////////////////////////////////////////////////////////////////////////// -SimpleSystematicsAnalyzer::~SimpleSystematicsAnalyzer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void SimpleSystematicsAnalyzer::beginJob() { - originalEvents_ = 0; - selectedEvents_ = 0; - edm::LogVerbatim("SimpleSystematicsAnalysis") << "Uncertainties will be determined for the following tags: "; - for (unsigned int i = 0; i < weightTags_.size(); ++i) { - edm::LogVerbatim("SimpleSystematicsAnalysis") << "\t" << weightTags_[i].encode(); - weightedEvents_.push_back(0.); - weightedSelectedEvents_.push_back(0.); - weighted2SelectedEvents_.push_back(0.); - } -} - -///////////////////////////////////////////////////////////////////////////////////// -void SimpleSystematicsAnalyzer::endJob() { - if (originalEvents_ == 0) { - edm::LogVerbatim("SimpleSystematicsAnalysis") << "NO EVENTS => NO RESULTS"; - return; - } - if (selectedEvents_ == 0) { - edm::LogVerbatim("SimpleSystematicsAnalysis") << "NO SELECTED EVENTS => NO RESULTS"; - return; - } - - edm::LogVerbatim("SimpleSystematicsAnalysis") << "\n>>>> Begin of Weight systematics summary >>>>"; - edm::LogVerbatim("SimpleSystematicsAnalysis") << "Total number of analyzed data: " << originalEvents_ << " [events]"; - double originalAcceptance = double(selectedEvents_) / originalEvents_; - edm::LogVerbatim("SimpleSystematicsAnalysis") - << "Total number of selected data: " << selectedEvents_ << " [events], corresponding to acceptance: [" - << originalAcceptance * 100 << " +- " - << 100 * sqrt(originalAcceptance * (1. - originalAcceptance) / originalEvents_) << "] %"; - - for (unsigned int i = 0; i < weightTags_.size(); ++i) { - edm::LogVerbatim("SimpleSystematicsAnalysis") << "Results for Weight Tag: " << weightTags_[i].encode() << " ---->"; - - double acc_central = 0.; - double acc2_central = 0.; - if (weightedEvents_[i] > 0) { - acc_central = weightedSelectedEvents_[i] / weightedEvents_[i]; - acc2_central = weighted2SelectedEvents_[i] / weightedEvents_[i]; - } - double waverage = weightedEvents_[i] / originalEvents_; - edm::LogVerbatim("SimpleSystematicsAnalysis") - << "\tTotal Events after reweighting: " << weightedEvents_[i] << " [events]"; - edm::LogVerbatim("SimpleSystematicsAnalysis") - << "\tEvents selected after reweighting: " << weightedSelectedEvents_[i] << " [events]"; - edm::LogVerbatim("SimpleSystematicsAnalysis") - << "\tAcceptance after reweighting: [" << acc_central * 100 << " +- " - << 100 * sqrt((acc2_central / waverage - acc_central * acc_central) / originalEvents_) << "] %"; - double xi = acc_central - originalAcceptance; - double deltaxi = (acc2_central - (originalAcceptance + 2 * xi + xi * xi)) / originalEvents_; - if (deltaxi > 0) - deltaxi = sqrt(deltaxi); - else - deltaxi = 0.; - edm::LogVerbatim("SimpleSystematicsAnalysis") - << "\ti.e. [" << std::setprecision(4) << 100 * xi / originalAcceptance << " +- " << std::setprecision(4) - << 100 * deltaxi / originalAcceptance << "] % relative variation with respect to the original acceptance"; - } - edm::LogVerbatim("SimpleSystematicsAnalysis") << ">>>> End of Weight systematics summary >>>>"; -} - -///////////////////////////////////////////////////////////////////////////////////// -bool SimpleSystematicsAnalyzer::filter(edm::Event& ev, const edm::EventSetup&) { - originalEvents_++; - - bool selectedEvent = false; - edm::Handle triggerResults; - if (!ev.getByToken(triggerResultsToken_, triggerResults)) { - edm::LogError("SimpleSystematicsAnalysis") << ">>> TRIGGER collection does not exist !!!"; - return false; - } - - const edm::TriggerNames& trigNames = ev.triggerNames(*triggerResults); - unsigned int pathIndex = trigNames.triggerIndex(selectorPath_); - bool pathFound = (pathIndex < trigNames.size()); // pathIndex >= 0, since pathIndex is unsigned - if (pathFound) { - if (triggerResults->accept(pathIndex)) - selectedEvent = true; - } - //edm::LogVerbatim("SimpleSystematicsAnalysis") << ">>>> Path Name: " << selectorPath_ << ", selected? " << selectedEvent; - - if (selectedEvent) - selectedEvents_++; - - for (unsigned int i = 0; i < weightTags_.size(); ++i) { - edm::Handle weightHandle; - ev.getByToken(weightTokens_[i], weightHandle); - weightedEvents_[i] += (*weightHandle); - if (selectedEvent) { - weightedSelectedEvents_[i] += (*weightHandle); - weighted2SelectedEvents_[i] += pow((*weightHandle), 2); - } - } - - return true; -} - -DEFINE_FWK_MODULE(SimpleSystematicsAnalyzer); diff --git a/ElectroWeakAnalysis/Utilities/src/WeakEffectsWeightProducer.cc b/ElectroWeakAnalysis/Utilities/src/WeakEffectsWeightProducer.cc deleted file mode 100644 index e2be2eecd29a4..0000000000000 --- a/ElectroWeakAnalysis/Utilities/src/WeakEffectsWeightProducer.cc +++ /dev/null @@ -1,130 +0,0 @@ -////////// Header section ///////////////////////////////////////////// -#include "FWCore/Framework/interface/EDProducer.h" - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" - -class WeakEffectsWeightProducer : public edm::EDProducer { -public: - WeakEffectsWeightProducer(const edm::ParameterSet& pset); - ~WeakEffectsWeightProducer() override; - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - -private: - edm::EDGetTokenT genParticlesToken_; - double rhoParameter_; - - double alphaQED(double q2); - double sigma0_qqbarll(unsigned int quark_type, double Q, double rho); -}; - -////////// Source code //////////////////////////////////////////////// -#include "FWCore/Framework/interface/MakerMacros.h" -#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" - -///////////////////////////////////////////////////////////////////////////////////// -WeakEffectsWeightProducer::WeakEffectsWeightProducer(const edm::ParameterSet& pset) - : // genParticlesToken_(consumes(pset.getUntrackedParameter ("GenParticlesTag", edm::InputTag("genParticles")))), - genParticlesToken_(consumes(edm::InputTag("genParticles"))), - rhoParameter_(pset.getUntrackedParameter("RhoParameter", 1.004)) { - produces(); -} - -///////////////////////////////////////////////////////////////////////////////////// -WeakEffectsWeightProducer::~WeakEffectsWeightProducer() {} - -///////////////////////////////////////////////////////////////////////////////////// -void WeakEffectsWeightProducer::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void WeakEffectsWeightProducer::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void WeakEffectsWeightProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { - if (iEvent.isRealData()) - return; - - edm::Handle genParticles; - iEvent.getByToken(genParticlesToken_, genParticles); - unsigned int gensize = genParticles->size(); - - std::unique_ptr weight(new double); - - // Set default weight - (*weight) = 1.; - - // Only DY implemented for the time being - for (unsigned int i = 0; i < gensize; ++i) { - const reco::GenParticle& part = (*genParticles)[i]; - int status = part.status(); - if (status != 3) - break; - int id = part.pdgId(); - if (id != 23) - continue; - double Q = part.mass(); - unsigned int nmothers = part.numberOfMothers(); - if (nmothers <= 0) - continue; - size_t key = part.motherRef(0).key(); - unsigned int quark_id = abs((*genParticles)[key].pdgId()); - if (quark_id > 0 && quark_id < 6) { - (*weight) *= sigma0_qqbarll(quark_id, Q, rhoParameter_) / sigma0_qqbarll(quark_id, Q, 1.0); - } - break; - } - - //printf(" \t >>>>> WeakEffectsWeightProducer: Final weight = %f\n", (*weight)); - iEvent.put(std::move(weight)); -} - -double WeakEffectsWeightProducer::alphaQED(double q2) { - double pigaga = -0.010449239475366825 - 0.0023228196282246765 * log(q2) - 0.0288 - - 0.002980 * (log(q2 / 8464.) + 0.006307 * (q2 / 8464. - 1.)); - return (1. / 137.0359895) / (1. + pigaga); -} - -double WeakEffectsWeightProducer::sigma0_qqbarll(unsigned int quark_id, double Q, double rho) { - double MZ = 91.188; - double GZ = 2.495; - double sin2eff = 0.232; - - double vl = -0.5 + 2. * sin2eff; - double al = -0.5; - - double qq = 0.; - double vq = 0.; - double aq = 0.; - double alphaW = 2.7e-3 * pow(log(Q * Q / 80.4 / 80.4), 2); - double alphaZ = 2.7e-3 * pow(log(Q * Q / MZ / MZ), 2); - double sudakov_factor = 1.; - if (quark_id % 2 == 1) { - qq = -1. / 3.; - vq = -0.5 - 2. * qq * sin2eff; - aq = -0.5; - sudakov_factor = 1 + (-2.139 + 0.864) * alphaW - 0.385 * alphaZ; - } else { - qq = 2. / 3.; - vq = 0.5 - 2. * qq * sin2eff; - aq = 0.5; - sudakov_factor = 1 + (-3.423 + 1.807) * alphaW - 0.557 * alphaZ; - } - - double alfarn = alphaQED(Q * Q); - double zcoupl = sqrt(2.) * 1.166389e-5 * MZ * MZ / 4. / M_PI; - double gll = zcoupl * MZ / 3. * (vl * vl + al * al); - double gdd = zcoupl * MZ / 3. * (vq * vq + aq * aq); - double denom = (Q * Q - MZ * MZ) * (Q * Q - MZ * MZ) + pow(Q, 4) * GZ * GZ / MZ / MZ; - double qed = M_PI * qq * qq * alfarn * alfarn / Q / Q; - double zint = rho * 2 * M_PI * zcoupl * alfarn * qq * vq * vl * (Q * Q - MZ * MZ) / denom; - double zonly = rho * rho * 9. * M_PI * gll * gdd / MZ / MZ * Q * Q / denom; - - return (qed + zint + zonly) * sudakov_factor; -} - -DEFINE_FWK_MODULE(WeakEffectsWeightProducer); diff --git a/ElectroWeakAnalysis/Utilities/test/PdfSystematicsAnalyzer.py b/ElectroWeakAnalysis/Utilities/test/PdfSystematicsAnalyzer.py deleted file mode 100644 index 06c51419e8bbf..0000000000000 --- a/ElectroWeakAnalysis/Utilities/test/PdfSystematicsAnalyzer.py +++ /dev/null @@ -1,71 +0,0 @@ -### NOTE: This is prepared to run on the newest PDFs with LHAPDF >=3.8.4 -### so it requires local installation of LHAPDF libraries in order to run -### out of the box. Otherwise, substitute the PDF sets by older sets - -import FWCore.ParameterSet.Config as cms - -# Process name -process = cms.Process("PDFANA") - -# Max events -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - #input = cms.untracked.int32(10) -) - -# Printouts -process.MessageLogger = cms.Service("MessageLogger", - cerr = cms.untracked.PSet( - enable = cms.untracked.bool(False) - ), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( - limit = cms.untracked.int32(100) - ), - enable = cms.untracked.bool(True), - threshold = cms.untracked.string('INFO') - ) -) - -# Input files (on disk) -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring("file:/ciet3b/data3/Fall10_All_MinimalAOD/WmunuPLUS/WmunuPLUS_1.root") -) - -# Produce PDF weights (maximum is 3) -process.pdfWeights = cms.EDProducer("PdfWeightProducer", - # Fix POWHEG if buggy (this PDF set will also appear on output, - # so only two more PDF sets can be added in PdfSetNames if not "") - FixPOWHEG = cms.untracked.string("CT10.LHgrid"), - GenTag = cms.untracked.InputTag("prunedGenParticles"), - PdfInfoTag = cms.untracked.InputTag("generator"), - PdfSetNames = cms.untracked.vstring( - "MSTW2008nlo68cl.LHgrid" - , "NNPDF20_100.LHgrid" - ) -) - -# Selector and parameters -process.goodMuonsForW = cms.EDFilter("MuonViewRefSelector", - src = cms.InputTag("muons"), - cut = cms.string('isGlobalMuon=1 && isTrackerMuon=1 && abs(eta)<2.1 && abs(globalTrack().dxy)<0.2 && pt>20. && globalTrack().normalizedChi2<10 && globalTrack().hitPattern().numberOfValidTrackerHits>10 && globalTrack().hitPattern().numberOfValidMuonHits>0 && globalTrack().hitPattern().numberOfValidPixelHits>0 && numberOfMatches>1 && (isolationR03().sumPt+isolationR03().emEt+isolationR03().hadEt)<0.15*pt'), - filter = cms.bool(True) -) - -# Collect uncertainties for rate and acceptance -process.pdfSystematics = cms.EDFilter("PdfSystematicsAnalyzer", - SelectorPath = cms.untracked.string('pdfana'), - PdfWeightTags = cms.untracked.VInputTag( - "pdfWeights:CT10" - , "pdfWeights:MSTW2008nlo68cl" - , "pdfWeights:NNPDF20" - ) -) - -# Main path -process.pdfana = cms.Path( - process.pdfWeights - *process.goodMuonsForW -) - -process.end = cms.EndPath(process.pdfSystematics) diff --git a/ElectroWeakAnalysis/Utilities/test/SimpleSystematicsAnalyzer.py b/ElectroWeakAnalysis/Utilities/test/SimpleSystematicsAnalyzer.py deleted file mode 100644 index 4a99374343a41..0000000000000 --- a/ElectroWeakAnalysis/Utilities/test/SimpleSystematicsAnalyzer.py +++ /dev/null @@ -1,101 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process name -process = cms.Process("systAna") - -# Max events -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - #input = cms.untracked.int32(100) -) - -# Printouts -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.enable = False -process.MessageLogger.cout = cms.untracked.PSet( - enable = cms.untracked.bool(True), - threshold = cms.untracked.string('INFO'), - FwkReport = cms.untracked.PSet(reportEvery=cms.untracked.int32(100)) -) - -# Input files (on disk) -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring("file:/ciet3a/data4/Wmunu_Summer09-MC_31X_V3_AODSIM-v1/0009/F82D4260-507F-DE11-B5D6-00093D128828.root") - #fileNames = cms.untracked.vstring("file:/data4/ZMuMu_Summer09-MC_31X_V3_preproduction_312-v1_RECO/20A5B350-6979-DE11-A6EF-001560AD3140.root") -) - -# Printout of generator information for the first event -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") -process.printGenParticles = cms.EDAnalyzer("ParticleListDrawer", - #maxEventsToPrint = cms.untracked.int32(-1), - maxEventsToPrint = cms.untracked.int32(10), - printVertex = cms.untracked.bool(False), - src = cms.InputTag("genParticles") -) - -### NOTE: the following WMN selectors require the presence of -### the libraries and plugins fron the ElectroWeakAnalysis/WMuNu package -### So you need to process the ElectroWeakAnalysis/WMuNu package with -### some old CMSSW versions (at least <=3_1_2, <=3_3_0_pre4) -# - -# Selector and parameters -# WMN fast selector (use W candidates in this example) -process.load("ElectroWeakAnalysis.WMuNu.WMuNuSelection_cff") -# ZMM fast selector -#process.load("ElectroWeakAnalysis.Utilities.goldenZmmSelectionVBTF_cfi") - -# Produce event weights according to generated boson Pt -# Example corresponds to approximate weights to study -# systematic effects due to ISR uncertainties (Z boson as fake example) -process.isrWeight = cms.EDProducer("ISRWeightProducer", - GenTag = cms.untracked.InputTag("genParticles"), - ISRBinEdges = cms.untracked.vdouble( - 0., 1., 2., 3., 4., 5., 6., 7., 8., 9. - , 10., 11., 12., 13., 14., 15., 16., 17., 18., 19. - , 20., 21., 22., 23., 24., 25., 26., 27., 28., 29. - , 30., 31., 32., 33., 34., 35., 36., 37., 38., 39. - , 40., 41., 42., 43., 44., 45., 46., 47., 48., 49. - , 999999. - ), - PtWeights = cms.untracked.vdouble( - 0.800665, 0.822121, 0.851249, 0.868285, 0.878733 - , 0.953853, 0.928108, 0.982021, 1.00659 , 1.00648 - , 1.03218 , 1.04924 , 1.03621 , 1.08743 , 1.01951 - , 1.10519 , 0.984263, 1.04853 , 1.06724 , 1.10183 - , 1.0503 , 1.13162 , 1.03837 , 1.12936 , 0.999173 - , 1.01453 , 1.11435 , 1.10545 , 1.07199 , 1.04542 - , 1.00828 , 1.0822 , 1.09667 , 1.16144 , 1.13906 - , 1.27974 , 1.14936 , 1.23235 , 1.06667 , 1.06363 - , 1.14225 , 1.22955 , 1.12674 , 1.03944 , 1.04639 - , 1.13667 , 1.20493 , 1.09349 , 1.2107 , 1.21073 - ) -) - -# Produce event weights to estimate missing QED FSR terms -process.fsrWeight = cms.EDProducer("FSRWeightProducer", - GenTag = cms.untracked.InputTag("genParticles"), -) - -# Produce event weights to estimate missing QED ISR terms -process.isrGammaWeight = cms.EDProducer("ISRGammaWeightProducer", - GenTag = cms.untracked.InputTag("genParticles"), -) - -# Produce weights for systematics -process.systematicsAnalyzer = cms.EDFilter("SimpleSystematicsAnalyzer", - SelectorPath = cms.untracked.string('systAna'), - WeightTags = cms.untracked.VInputTag("isrWeight","fsrWeight","isrGammaWeight") -) - -# Main path -process.systAna = cms.Path( - process.printGenParticles - *process.isrWeight - *process.fsrWeight - *process.isrGammaWeight - *process.selectCaloMetWMuNus - #*process.goldenZMMSelectionSequence -) - -process.end = cms.EndPath(process.systematicsAnalyzer) diff --git a/ElectroWeakAnalysis/Utilities/test/distCaloTCMuMET.py b/ElectroWeakAnalysis/Utilities/test/distCaloTCMuMET.py deleted file mode 100644 index 058a5712cfb6b..0000000000000 --- a/ElectroWeakAnalysis/Utilities/test/distCaloTCMuMET.py +++ /dev/null @@ -1,115 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("distortedMuMET") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -# 'file:/ciet3b/data4/Spring10_10invpb_AODRED/Wmunu/Wmunu_1.root' - '/store/mc/Spring10/MinBias/GEN-SIM-RECO/START3X_V26A_356ReReco-v1/0009/FEFC70B6-F53D-DF11-B57E-003048679150.root' - ) -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - debugModules = cms.untracked.vstring('distortedMuons'), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( limit = cms.untracked.int32(-1) ), - #threshold = cms.untracked.string('INFO') - threshold = cms.untracked.string('DEBUG') - ), - destinations = cms.untracked.vstring('cout') -) - - -# GEN-REC muon matching -process.genMatchMap = cms.EDFilter("MCTruthDeltaRMatcherNew", - src = cms.InputTag("muons"), - matched = cms.InputTag("genParticles"), -# matched = cms.InputTag("prunedGenParticles"), - distMin = cms.double(0.15), - matchPDGId = cms.vint32(13) -) - -# Create a new "distorted" Muon collection -process.distortedMuons = cms.EDFilter("DistortedMuonProducer", - MuonTag = cms.untracked.InputTag("muons"), - GenMatchTag = cms.untracked.InputTag("genMatchMap"), - - EtaBinEdges = cms.untracked.vdouble(-3.,3.), # one more entry than next vectors - - ShiftOnOneOverPt = cms.untracked.vdouble(1.e-3), #in [1/GeV] units - RelativeShiftOnPt = cms.untracked.vdouble(0.), # relative - UncertaintyOnOneOverPt = cms.untracked.vdouble(3.e-3), #in [1/GeV] units - RelativeUncertaintyOnPt = cms.untracked.vdouble(3.e-3), # relative - - EfficiencyRatioOverMC = cms.untracked.vdouble(1.) -) - - -# mm -# mm -# mm now add distorted MET stuff -# mm - - -# mm -# mm first distort Calo -# mm - -process.load("FWCore.MessageService.MessageLogger_cfi") -## configure geometry -process.load("Configuration.StandardSequences.Geometry_cff") -## configure B field -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load("TrackingTools.TrackAssociator.DetIdAssociatorESProducer_cff") -process.GlobalTag.globaltag = 'START3X_V26::All' - -process.load("ElectroWeakAnalysis.Utilities.distMuonMETValueMapProducer_cff") -process.load("ElectroWeakAnalysis.Utilities.MetdistMuonCorrections_cff") - -# mm -# mm then distort TC -# mm - -process.load("ElectroWeakAnalysis.Utilities.distMuonTCMETValueMapProducer_cff") -process.load("ElectroWeakAnalysis.Utilities.distTCMET_cfi") - - -process.out = cms.OutputModule("PoolOutputModule", - fileName = cms.untracked.string('distMuonMETevents.root') -) -process.out.outputCommands = cms.untracked.vstring( 'drop *' ) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_genParticles_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_offlineBeamSpot_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_TriggerResults_*_HLT')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_hltTriggerSummaryAOD_*_HLT')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_muons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_distortedMuons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep recoTracks_globalMuons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep recoTracks_standAloneMuons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_met_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_corMetGlobalMuons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_distMetGlobalMuons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_tcMet_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_disttcMet_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_pfMet_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_ak5CaloJets_*_*')) - - - -# Steering the process -process.distortedMuMET = cms.Path( - process.genMatchMap+process.distortedMuons - +process.distmuonMETValueMapProducer+process.distMetGlobalMuons - +process.distmuonTCMETValueMapProducer+process.disttcMet -# *process.selectCaloMetWMuNus -) - -process.end = cms.EndPath(process.out) -#process.end = cms.EndPath(process.wmnOutput) - diff --git a/ElectroWeakAnalysis/Utilities/test/distPFMuMET.py b/ElectroWeakAnalysis/Utilities/test/distPFMuMET.py deleted file mode 100644 index 73ed0e40bc5ea..0000000000000 --- a/ElectroWeakAnalysis/Utilities/test/distPFMuMET.py +++ /dev/null @@ -1,166 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("REPROD") - - - - - -# mm -# mm -# mm - -# GEN-REC muon matching -process.genMatchMap = cms.EDFilter("MCTruthDeltaRMatcherNew", - src = cms.InputTag("muons"), - matched = cms.InputTag("genParticles"), - distMin = cms.double(0.15), - matchPDGId = cms.vint32(13) -) - - - - - -# Create a new "distorted" PFCandidate collection -process.distortedPFCand = cms.EDFilter("DistortedPFCandProducer", - MuonTag = cms.untracked.InputTag("muons"), - PFTag = cms.untracked.InputTag("particleFlow"), - GenMatchTag = cms.untracked.InputTag("genMatchMap"), - - EtaBinEdges = cms.untracked.vdouble(-3.,3.), # one more entry than next vectors - - ShiftOnOneOverPt = cms.untracked.vdouble(1.e-3), #in [1/GeV] units - RelativeShiftOnPt = cms.untracked.vdouble(0.), # relative - UncertaintyOnOneOverPt = cms.untracked.vdouble(3.e-3), #in [1/GeV] units - RelativeUncertaintyOnPt = cms.untracked.vdouble(3.e-3), # relative - - EfficiencyRatioOverMC = cms.untracked.vdouble(1.) -) - - - -# Create the old distortedMuon collection -process.distortedMuons = cms.EDFilter("DistortedMuonProducer", - MuonTag = cms.untracked.InputTag("muons"), - GenMatchTag = cms.untracked.InputTag("genMatchMap"), - - EtaBinEdges = cms.untracked.vdouble(-3.,3.), # one more entry than next vectors - - ShiftOnOneOverPt = cms.untracked.vdouble(1.e-3), #in [1/GeV] units - RelativeShiftOnPt = cms.untracked.vdouble(0.), # relative - UncertaintyOnOneOverPt = cms.untracked.vdouble(3.e-3), #in [1/GeV] units - RelativeUncertaintyOnPt = cms.untracked.vdouble(3.e-3), # relative - - EfficiencyRatioOverMC = cms.untracked.vdouble(1.) -) - - - - - - -# mm -# mm -# mm - - - -process.load("Configuration.StandardSequences.Reconstruction_cff") -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load('Configuration/StandardSequences/FrontierConditions_GlobalTag_cff') -process.GlobalTag.globaltag = 'START3X_V26A::All' -#process.load("Configuration.StandardSequences.FakeConditions_cff") - -# process.Timing =cms.Service("Timing") -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( -# 'file:/data4/Wmunu_Summer09-MC_31X_V3-v1_GEN-SIM-RECO/0009/76E35258-507F-DE11-9A21-0022192311C5.root' - '/store/mc/Spring10/MinBias/GEN-SIM-RECO/START3X_V26A_356ReReco-v1/0009/FEFC70B6-F53D-DF11-B57E-003048679150.root' - ), - secondaryFileNames = cms.untracked.vstring(), - noEventSort = cms.untracked.bool(True), - duplicateCheckMode = cms.untracked.string('noDuplicateCheck') -) - -#process.MessageLogger = cms.Service("MessageLogger", -# rectoblk = cms.untracked.PSet( -# threshold = cms.untracked.string('INFO') -# ), -# destinations = cms.untracked.vstring('rectoblk') -#) - -process.dump = cms.EDAnalyzer("EventContentAnalyzer") - -process.load("ElectroWeakAnalysis.Utilities.distPFMET_cfi") - - -process.p1 = cms.Path(process.genMatchMap+process.distortedMuons - +process.distortedPFCand+process.distpfMet) - - -# And the output. - -process.out = cms.OutputModule("PoolOutputModule", - fileName = cms.untracked.string('PFMuMETevents.root') -) - - -process.out.outputCommands = cms.untracked.vstring( 'drop *' ) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_genParticles_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_offlineBeamSpot_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_TriggerResults_*_HLT')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_hltTriggerSummaryAOD_*_HLT')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_muons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_particleFlow_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_distortedMuons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_distortedPFCand_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep recoTracks_globalMuons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep recoTracks_standAloneMuons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_met_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_corMetGlobalMuons_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_tcMet_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_pfMet_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_distpfMet_*_*')) -process.out.outputCommands.extend(cms.untracked.vstring('keep *_ak5CaloJets_*_*')) - - -process.outpath = cms.EndPath(process.out) - - - - -# And the logger -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( - makeTriggerResults = cms.untracked.bool(True), - wantSummary = cms.untracked.bool(True), - Rethrow = cms.untracked.vstring('Unknown', - 'ProductNotFound', - 'DictionaryNotFound', - 'InsertFailure', - 'Configuration', - 'LogicError', - 'UnimplementedFeature', - 'InvalidReference', - 'NullPointerError', - 'NoProductSpecified', - 'EventTimeout', - 'EventCorruption', - 'ModuleFailure', - 'ScheduleExecutionFailure', - 'EventProcessorFailure', - 'FileInPathError', - 'FatalRootError', - 'NotFound') -) - -process.MessageLogger.cerr.FwkReport.reportEvery = 1 - - diff --git a/ElectroWeakAnalysis/Utilities/test/distortedMET.py b/ElectroWeakAnalysis/Utilities/test/distortedMET.py deleted file mode 100644 index 6a737e5e73eb8..0000000000000 --- a/ElectroWeakAnalysis/Utilities/test/distortedMET.py +++ /dev/null @@ -1,56 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("distortMET") - -process.maxEvents = cms.untracked.PSet( - #input = cms.untracked.int32(-1) - input = cms.untracked.int32(100) -) -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring("file:/data4/Wmunu_Summer09-MC_31X_V3_AODSIM-v1/0009/F82D4260-507F-DE11-B5D6-00093D128828.root") -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - cout = cms.untracked.PSet( - default = cms.untracked.PSet( limit = cms.untracked.int32(100) ), - threshold = cms.untracked.string('INFO') - #threshold = cms.untracked.string('DEBUG') - ), - destinations = cms.untracked.vstring('cout') -) - -# Selector and parameters -process.distortedMET = cms.EDFilter("DistortedMETProducer", - MetTag = cms.untracked.InputTag("met"), - MetScaleShift = cms.untracked.double(0.2) -) - -### NOTE: the following WMN selectors require the presence of -### the libraries and plugins fron the ElectroWeakAnalysis/WMuNu package -### So you need to process the ElectroWeakAnalysis/WMuNu package with -### some old CMSSW versions (at least <=3_1_2, <=3_3_0_pre4) -# - -# WMN fast selector (use W candidates in this example) -process.load("ElectroWeakAnalysis.WMuNu.WMuNuSelection_cff") - -# Output -process.load("Configuration.EventContent.EventContent_cff") -process.AODSIMEventContent.outputCommands.append('keep *_distortedMET_*_*') -process.myEventContent = process.AODSIMEventContent -process.wmnOutput = cms.OutputModule("PoolOutputModule", - process.myEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('distortMET') - ), - fileName = cms.untracked.string('selectedEvents.root') -) - -# Steering the process -process.distortMET = cms.Path( - process.distortedMET - *process.selectCaloMetWMuNus -) -process.end = cms.EndPath(process.wmnOutput) diff --git a/ElectroWeakAnalysis/Utilities/test/distortedMuons.py b/ElectroWeakAnalysis/Utilities/test/distortedMuons.py deleted file mode 100644 index 5cde01634004b..0000000000000 --- a/ElectroWeakAnalysis/Utilities/test/distortedMuons.py +++ /dev/null @@ -1,79 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("distortMuons") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - #input = cms.untracked.int32(100) -) -process.source = cms.Source("PoolSource", - #fileNames = cms.untracked.vstring("file:/data4/Wmunu_Summer09-MC_31X_V3-v1_GEN-SIM-RECO/0009/76E35258-507F-DE11-9A21-0022192311C5.root") - fileNames = cms.untracked.vstring("file:/data4/Wmunu_Summer09-MC_31X_V3_AODSIM-v1/0009/F82D4260-507F-DE11-B5D6-00093D128828.root") -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - debugModules = cms.untracked.vstring('distortedMuons'), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( limit = cms.untracked.int32(1000) ), - #threshold = cms.untracked.string('INFO') - threshold = cms.untracked.string('DEBUG') - ), - destinations = cms.untracked.vstring('cout') -) - -# GEN-REC muon matching -process.genMatchMap = cms.EDFilter("MCTruthDeltaRMatcherNew", - src = cms.InputTag("muons"), - matched = cms.InputTag("genParticles"), - distMin = cms.double(0.15), - matchPDGId = cms.vint32(13) -) - -# Create a new "distorted" Muon collection -process.distortedMuons = cms.EDFilter("DistortedMuonProducer", - MuonTag = cms.untracked.InputTag("muons"), - GenMatchTag = cms.untracked.InputTag("genMatchMap"), - - EtaBinEdges = cms.untracked.vdouble(-2.1,2.1), # one more entry than next vectors - - ShiftOnOneOverPt = cms.untracked.vdouble(1.e-3), #in [1/GeV] units - RelativeShiftOnPt = cms.untracked.vdouble(0.), # relative - UncertaintyOnOneOverPt = cms.untracked.vdouble(2.e-3), #in [1/GeV] units - RelativeUncertaintyOnPt = cms.untracked.vdouble(5.e-3), # relative - - EfficiencyRatioOverMC = cms.untracked.vdouble(0.90) -) - -### NOTE: the following WMN selectors require the presence of -### the libraries and plugins fron the ElectroWeakAnalysis/WMuNu package -### So you need to process the ElectroWeakAnalysis/WMuNu package with -### some old CMSSW versions (at least <=3_1_2, <=3_3_0_pre4) -# - -# WMN fast selector (use W candidates in this example) -process.load("ElectroWeakAnalysis.WMuNu.WMuNuSelection_cff") -process.corMetWMuNus.MuonTag = cms.untracked.InputTag("distortedMuons") -process.selcorMet.MuonTag = cms.untracked.InputTag("distortedMuons") - -# Output -process.load("Configuration.EventContent.EventContent_cff") -process.AODSIMEventContent.outputCommands.append('keep *_distortedMuons_*_*') -process.myEventContent = process.AODSIMEventContent -process.wmnOutput = cms.OutputModule("PoolOutputModule", - process.myEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('distortMuons') - ), - fileName = cms.untracked.string('selectedEvents.root') -) - -# Steering the process -process.distortMuons = cms.Path( - process.genMatchMap - *process.distortedMuons - *process.selectCaloMetWMuNus -) - -process.end = cms.EndPath(process.wmnOutput) diff --git a/ElectroWeakAnalysis/Utilities/test/distortedMuonsFromDB.py b/ElectroWeakAnalysis/Utilities/test/distortedMuonsFromDB.py deleted file mode 100644 index a2a2fb3f31902..0000000000000 --- a/ElectroWeakAnalysis/Utilities/test/distortedMuonsFromDB.py +++ /dev/null @@ -1,112 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("distortMuonsFromDB") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - #input = cms.untracked.int32(100) -) -process.source = cms.Source("PoolSource", - #fileNames = cms.untracked.vstring("file:/data4/Wmunu_Summer09-MC_31X_V3-v1_GEN-SIM-RECO/0009/76E35258-507F-DE11-9A21-0022192311C5.root") - fileNames = cms.untracked.vstring("file:/data4/Wmunu_Summer09-MC_31X_V3_AODSIM-v1/0009/F82D4260-507F-DE11-B5D6-00093D128828.root") -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - debugModules = cms.untracked.vstring('distortedMuons'), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( limit = cms.untracked.int32(1000) ), - #threshold = cms.untracked.string('INFO') - threshold = cms.untracked.string('DEBUG') - ), - destinations = cms.untracked.vstring('cout') -) - -# Database for scale shift if process.distortedMuons.UseDBForMomentumScale = True -process.load("CondCore.DBCommon.CondDBCommon_cfi") -process.poolDBESSource1 = cms.ESSource("PoolDBESSource", - BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), - DBParameters = cms.PSet( - messageLevel = cms.untracked.int32(2) - ), - timetype = cms.untracked.string('runnumber'), - connect = cms.string('frontier://FrontierPrep/CMS_COND_PHYSICSTOOLS'), - toGet = cms.VPSet( - cms.PSet( - record = cms.string('MuScleFitDBobjectRcd'), - tag = cms.string('MuScleFit_Scale_OctoberExercise_EWK_InnerTrack'), - label = cms.untracked.string('') - ) - ) -) -process.poolDBESSource2 = cms.ESSource("PoolDBESSource", - BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), - DBParameters = cms.PSet( - messageLevel = cms.untracked.int32(2) - ), - timetype = cms.untracked.string('runnumber'), - connect = cms.string('frontier://FrontierPrep/CMS_COND_PHYSICSTOOLS'), - toGet = cms.VPSet( - cms.PSet( - record = cms.string('MuScleFitDBobjectRcd'), - tag = cms.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel'), - label = cms.untracked.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel') - ) - ) -) -process.poolDBESSource3 = cms.ESSource("PoolDBESSource", - BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), - DBParameters = cms.PSet( - messageLevel = cms.untracked.int32(2) - ), - timetype = cms.untracked.string('runnumber'), - connect = cms.string('frontier://FrontierPrep/CMS_COND_PHYSICSTOOLS'), - toGet = cms.VPSet( - cms.PSet( - record = cms.string('MuScleFitDBobjectRcd'), - tag = cms.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel'), - label = cms.untracked.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel') - ) - ) -) - -# Create a new "distorted" Muon collection -process.distortedMuons = cms.EDFilter("DistortedMuonProducerFromDB", - MuonTag = cms.untracked.InputTag("muons"), - - DBScaleLabel = cms.untracked.string(''), - DBDataResolutionLabel = cms.untracked.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel'), - DBMCResolutionLabel = cms.untracked.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel'), -) - -### NOTE: the following WMN selectors require the presence of -### the libraries and plugins fron the ElectroWeakAnalysis/WMuNu package -### So you need to process the ElectroWeakAnalysis/WMuNu package with -### some old CMSSW versions (at least <=3_1_2, <=3_3_0_pre4) -# - -# WMN fast selector (use W candidates in this example) -process.load("ElectroWeakAnalysis.WMuNu.WMuNuSelection_cff") -process.corMetWMuNus.MuonTag = cms.untracked.InputTag("distortedMuons") -process.selcorMet.MuonTag = cms.untracked.InputTag("distortedMuons") - -# Output -process.load("Configuration.EventContent.EventContent_cff") -process.AODSIMEventContent.outputCommands.append('keep *_distortedMuons_*_*') -process.myEventContent = process.AODSIMEventContent -process.wmnOutput = cms.OutputModule("PoolOutputModule", - process.myEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('distortMuons') - ), - fileName = cms.untracked.string('selectedEvents.root') -) - -# Steering the process -process.distortMuons = cms.Path( - process.distortedMuons - *process.selectCaloMetWMuNus -) - -process.end = cms.EndPath(process.wmnOutput) diff --git a/ElectroWeakAnalysis/Utilities/test/muonsWithPFIso.py b/ElectroWeakAnalysis/Utilities/test/muonsWithPFIso.py deleted file mode 100644 index 8460bc4aa915c..0000000000000 --- a/ElectroWeakAnalysis/Utilities/test/muonsWithPFIso.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("muonsWithPFIso") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - #input = cms.untracked.int32(100) -) -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring("file:/ciet3b/data4/Spring10_10invpb_AODRED/Wmunu_1.root") -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - debugModules = cms.untracked.vstring('muonsWithPFIso'), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( limit = cms.untracked.int32(100) ), - #threshold = cms.untracked.string('INFO') - threshold = cms.untracked.string('DEBUG') - ), - destinations = cms.untracked.vstring('cout') -) - -# Create a new reco::Muon collection with PFLow Iso information -process.muonsWithPFIso = cms.EDFilter("MuonWithPFIsoProducer", - MuonTag = cms.untracked.InputTag("muons") - , PfTag = cms.untracked.InputTag("particleFlow") - , UsePfMuonsOnly = cms.untracked.bool(False) - , TrackIsoVeto = cms.untracked.double(0.01) - , GammaIsoVeto = cms.untracked.double(0.07) - , NeutralHadronIsoVeto = cms.untracked.double(0.1) -) - -# WMN fast selector (use W candidates in this example) -process.load("ElectroWeakAnalysis.WMuNu.WMuNuSelection_cff") -process.pfMetWMuNus.MuonTag = cms.untracked.InputTag("muonsWithPFIso") -process.selpfMet.MuonTag = cms.untracked.InputTag("muonsWithPFIso") -# Use the following line only for old Summer09 samples (new: "ak5", old "antikt5") -#process.selpfMet.JetTag = cms.untracked.InputTag("antikt5PFJets") - -# Output -process.load("Configuration.EventContent.EventContent_cff") -process.AODSIMEventContent.outputCommands.append('keep *_muonsWithPFIso_*_*') -process.myEventContent = process.AODSIMEventContent -process.wmnOutput = cms.OutputModule("PoolOutputModule", - process.myEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('muonsWithPFIsoSelection') - ), - fileName = cms.untracked.string('selectedEvents.root') -) - -# Steering the process -process.muonsWithPFIsoSelection = cms.Path( - process.muonsWithPFIso* - process.selectPfMetWMuNus -) - -process.end = cms.EndPath(process.wmnOutput) diff --git a/ElectroWeakAnalysis/WENu/BuildFile.xml b/ElectroWeakAnalysis/WENu/BuildFile.xml deleted file mode 100644 index bd87e12c40810..0000000000000 --- a/ElectroWeakAnalysis/WENu/BuildFile.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/ElectroWeakAnalysis/WENu/README b/ElectroWeakAnalysis/WENu/README deleted file mode 100644 index a14e313c661b3..0000000000000 --- a/ElectroWeakAnalysis/WENu/README +++ /dev/null @@ -1,189 +0,0 @@ -NOTES AND INSTRUCTIONS FOR THE CODE -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - -This code creates Wenu or Zee candidates from some configurable trigger stream -and applies some selections. It contains the following files: -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -source and header files: ------------------------- -WenuCandidateFilter.cc -ZeeCandidateFilter.cc -WenuPlots.h and WenuPlots.cc -ZeePlots.h and ZeePlots.cc - -cfg files: ----------- -pat_WenuPlots.py aod_WenuPlots.py -pat_ZeePlots.py aod_ZeePlots.py - -macros: -------- -PlotCombiner.cc -inputFiles - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -For details with respect to the definitions of candidates check the -implementation notes in all source files. - -There are 2 ways to run this code: either running the whole PAT sequence -(recommended) or bypassing pat and run with whatever exists precalculated -in the AOD collections. - -Run the code without running the PAT sequence -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Quick instruction: cmsRun aod_WenuPlots.py or cmsRun aod_ZeePlots.py - - -An interface that is provided aod2patFilter.cc creates pat::ElectronCollection -and pat::METCollection from AOD. This uses the default pat constructors. -Isolations are added manually to the the PAT objects in the following way: - myElectron.setTrackIso(elec->dr03TkSumPt()); - myElectron.setECalIso(elec->dr04EcalRecHitSumEt()); - myElectron.setHCalIso(elec->dr04HcalTowerSumEt()); -Please edit this part accordingly, if you prefere different isolation -definitions. No facility to calculate your own isolations is provided. If you -want to do so you have to run the PAT sequence yourself. (see next session) - - -Running the whole PAT sequence yourself -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Quick instruction: cmsRun pat_WenuPlots.py or cmsRun pat_ZeePlots.py - ->>>>>CMSSW versions 3_1_X - -The software has been tested and run successfully with the following tags: -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -Test Release based on: CMSSW_3_1_2 ---- Tag --- -------- Package -------- -V01-08-08 CondFormats/JetMETObjects -V05-06-05 DataFormats/PatCandidates -V01-08-04-01 JetMETCorrections/Algorithms -V01-08-21 JetMETCorrections/Configuration -V02-09-05 JetMETCorrections/Modules -V07-08-22-01 PhysicsTools/PatAlgos -V03-07-06 PhysicsTools/PatUtils -V04-02-02 PhysicsTools/PFCandProducer -V02-10-01 RecoJets/JetAlgorithms -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -However, it can be run just with CMSSW_3_1_2 without any further tags and -should produce the same results. -For 3_1_4 and above no extra tags are required. - ->>>>>CMSSW versions 3_X where X > 1 -The code should compile and run properly without any extra tags. -Notice that any change that has been done in the header is backwards compatible -i.e. it compiles, runs and produces the same results, if you use the recommended -configuration files pat_WenuPlots.py and pat_ZeePlots.py. - - -Instructions: -^^^^^^^^^^^^^ - (the following hold for both Wenu and Zee plots) - In the cfg file that is provided you have to edit the following lines:.... - * line 17: the source - these are the input files ->>> * line 30: select your Global Tag: - STARTUP31X_V4::All this is good for the low lumi trigger menu - MC_31X_V5::All this is good for the highlumi trigger menu ->>> * line 71: the MET collection of your preference - LINE 72: modify the "metSource" to take whatever met you like - the default that is given is "met","","RECO" that is - uncorrected Calo MET. ->>> * line 96: select your Trigger path. There are 3 parameters that you set: - LINE 96: HLT_process_name : high (HLT) or low (HLT8E29) lumi - menu.............................. - LINE 98 and 100: the path and the filter names. For your...... - convenience all the correct pairs are given.. - at the end of the cfg file................... ->>> * line102: the Filter: select the parameters that you want. ONLY these... - parameters have to be changed:................................ - ETCut double the ET cut in the SC ET of the candidate - METCut double the MET cut in the MET of the event - vetoSecondElectronEvents bool (only Wenu) on/off rejection of - events with a 2nd electron with ET>see nextpara - ETCut2ndEle double the ET cut for the 2nd electron rejection - electronMatched2HLT bool demand the electron to be matched to - an HLT object (in Zee means at least one electron) - electronMatched2HLT_DR double the DR for the HLT matching ->>> * line124: set the selection cuts that you prefere........................ ->>> * line159: set the cuts that you want to invert........................... ->>> * line168: set the name of your selection PSet............................ - - -How to add the histograms and make the final plots -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -(applies to all versions) - -After you have done these changes you can run over the grid over the different -datasets. The histograms are stored in root trees that you can hadd together. -For example if you have run over QCD Em enriched samples with say 10 jobs you -will finally get out 10 files -histos_1.root, histos_2, ...., histos_10.root -that you can combine -hadd histos_qcd.root histos_1.root histos_2.root .... - -Having added the different bkgs together you set up file "inputFiles" -with the following format: -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -# zee or wenu -wenu -# file name, type (sig, qcd, bce, gje, ewk), weight -histos_wenu.root sig 1.46 -histos_q20_30.root qcd 0 -histos_q30_80.root qcd 100. -histos_q80_170.root qcd 0 -histos_b20_30.root bce 0 -histos_b30_80.root bce 0 -histos_b80_170.root bce 0 -histos_zee.root ewk 0 -histos_wtaunu.root ewk 0 -histos_ztautau.root ewk 0 -histos_gj15.root gje 0 -histos_gj20.root gje 0 -histos_gj25.root gje 10.12 -histos_gj30.root gje 0 -histos_gj35.root gje 0 -histos_wmunu.root ewk 0 -histos_ttbar.root ewk 0 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -lines that start with # are considered to be comments -line 2 has wenu or zee. From line 4 the list of the histo files are listed -(first word) then a type that could be sig,qcd,bce, gj or ewk in order to -discriminate among different sources of bkgs and finally the weight that we -want to weight the histogram entries. This particular example is for Wenu. For -Zee one has to put type sig in the zee file and ewk in the Wenu file. The order -of the files is arbitrary. Files with weight 0 will be ignored. -After you have set up this code you run a root macro to combine the plots. -You can do (not recommended - it actually crushes - to be debugged) -root -b PlotCombiner.cc -or to compile it within root (recommended) -root -b -root [1] .L PlotCombiner.cc++ -root [2] PlotCombiner() - -and you finally get the plots. - -Notes on Data Handling: -^^^^^^^^^^^^^^^^^^^^^^^ - -The code can also run with data. What you have to change is the Global Tag -(refer to the twiki page: -https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideFrontierConditions ) -and remove references in the cfg with respect to generator level -quantities that pat default may need. - -Contact - -Nikolaos.Rompotis@Cern.ch - -18Sept09 - -Nikolaos Rompotis -Imperial College London - - - diff --git a/ElectroWeakAnalysis/WENu/doc/logForChangesInTheWenuCode.txt b/ElectroWeakAnalysis/WENu/doc/logForChangesInTheWenuCode.txt deleted file mode 100644 index 2ce298f305aa8..0000000000000 --- a/ElectroWeakAnalysis/WENu/doc/logForChangesInTheWenuCode.txt +++ /dev/null @@ -1,120 +0,0 @@ -# file to keep track of the changes in the Wenu and Zee Code -# Nikolaos Rompotis - - -v_29Oct09_2 ElectroWeakAnalysis/WENu ElectroWeakAnalysis/ZEE - version for 3_1_4, used with the OctX - -v_10Dec09_v1 ElectroWeakAnalysis/WENu ElectroWeakAnalysis/ZEE - these work in 3_1 and later versions. There was a change in the PAT - so that we cannot use ecalIso() etc methods, but we have to use instead - userIsolation(pat::ecalIso) when we want to access the pat produced isolations -Note: from 3_3_1 onwards the pat::Electron object contains the ecalIso() etc functions - that overload the pat::Lepton classes, giving the egamma stored values of the - isolations. That was not the case in the previous versions - - -v_05Jan10_v1 ElectroWeakAnalysis/WENu ElectroWeakAnalysis/ZEE - the same as before, but now the file - DataFormats/METReco/interface/METCollection.h - is obsolete. We can just replace this file with METFwd.h - however it was decided to remove from the tag the file aod2patFilterWenu.cc - and aod2patFilterZee.cc, because their use is deprecated -v_05Jan10_v3 ElectroWeakAnalysis/WENu ElectroWeakAnalysis/ZEE -or V00-01-02 - a line in WENu/src/WenuPlots.cc was commented out so that there is no - warning in compilation. The name V00-01-02 was done for compatibility - CMS tag collector format and is is identical to v_05Jan10_v3 - - - -/ZEE V00-01-02-01 branch B3_4_X this is for a clean up in the TFileService - all the following should be based on that - -/ZEE V00-01-02 -/WENu V00-01-02 tags for 3_4_X release - - -/ZEE V00-01-07 -/WENu V00-01-06 tags for 3_6_X release - -/ZEE V00-01-08 -/WENu V00-01-07 tags for 3_6_X release (again) - - -v_19Feb10_Hbk: this is a back up for the WENu head, compiled and tested in 3_5_1 -v_19Feb10_idmaps: this is the first implementation of the idmaps in WENu - there is a caveat there, only pat_WenuPlots.py is updated from the - cfgs - -v_23Feb10_convrej_idmaps: adding on top of v_19Feb10_idmaps e/p and tip as variables - with default values 1000. in WenuCandidateFilter added the option - to use egamma conversion rejection, valid first PXB hit and - expected missing hits criteria. only pat_WenuPlots.py is updated. - -v_25Feb10_convrej_idmaps : adding the option to calculate and store in the electron - conversion rejection and hit pattern info. only pat_WenuPlots.py is updated. - This tag also applies to ZEE - same in the zee candidate producer. But now the option to have separate cuts in each of the 2 electrons separately is added. - Caveat: the electrons are distinguished from the highest ET electron. Hence the selection 1 - is applied to the highest et electron and selection 2 to the other one. We may need something different - in data, but we can change it if we like. the basic framework is there. - only pat_ZeePlots.py is updated. - -v_1March10_convrej_idmaps : adding the option the 2nd ele id veto to be applied to - an electron that passes electron id. again only pat_WenuPlots.py - is updated. applicable to WENu only - -/WENu v_26May10_Spring10MC : test version adding python directory with the spring10 tuned selections - bug fixes and everything should work for Spring10 MC samples - this tag works with RecoEgamma/ElectronIdentification V00-03-07-02 - the tag is for the correct implementation of the electron ID cfgs in the python dir - has to be updated for the latest tag of electron ID - -/WENu V00-01-07-01 : version that works with CMSSW_3_6_1_patch2 and - V00-03-07-03 RecoEgamma/ElectronIdentification - Contains configuration valid for both data and MC, Spring10 selections implemented. - -ZEE V00-01-08-02 : version that works with CMSSW_3_6_1_patch2 and - V00-03-07-03 RecoEgamma/ElectronIdentification - Contains configuration valid for both data and MC, Spring10 selections implemented. - Similar to the WENu tag V00-01-07-01 - -V00-01-07-02 update of python configuration with the new cuts (Paolo's limits) - -/WENu V00-01-07-03 same as V00-01-07-02 (i.e. Paolo's new limits) but all cfg.py are - updated so that you have 80% selection plus no 2nd ele with 95% selection, 25GeV - and photon 10 trigger - -/ZEE V00-01-08-03 made to be similar to the WENu V00-01-07-03 - V00-01-08-04 to correct a bug in pushing back the 2nd leg variables, thanks to Jie Chen - -/WENu V00-01-08-01 major upgrade: VBTF ntuple production for CMSSW_3_6_1_patch4 (bug fix to V00-01-08) - Needs the following tags: - RecoEgamma/ElectronIdentification V00-03-12 - RecoEgamma/EgammaTools V00-05-05 - CondFormats/JetMETObjects V01-09-01-09 - -V00-01-08-02 update, bug corrected -V00-01-08-03 update, 2nd ele included, same other tags as before -V00-01-08-04 update, bugs corrected -V00-01-08-05 same as before, but removing Delta eta cut for the Endcaps - EGAMMA ICHEP recommendation -V00-01-08-06 bug corrected in the HLT geometrical matching - option added to store all the parameters of the second electron -V00-01-08-07 the primary vtx information is moved from the filter to the analyzer - more variables stored: Rho of the SC, number of tracks per primary vtx (as a vector of ints) - norm chi2 per primary vtx, both for offlineVertexCollection and offlineVertexCollectionBS -V00-01-08-08 slightly updated version of the previous tag, with a small "bug" corrected (set up to use - the ideal magnetic field even in data if the current is not stored in the event). Intended - to be the last tag for the 3_6_X configuration. This tag can compile on 3_8_2 without further - tags - however, wait for the 38 recipee, regarding JEC and egamma misalignment corrections. -V00-01-08-09 tag for 361: this is for the 3/pb VBTF ntuple production. 2 changes: - a. HoE cut in the cfgs becomes 0.15 - only WP95 is affected - b. trigger collection in WenuCandidateFilter is updated -V00-01-08-10 bug fix on the previous tag on the extra triggers in OR. The extra triggers were not looked for - correctly and if they there first in the list of event triggers would not appear at all - -V00-02-01 first dedicated tag to 38: the configuration has changed such that now the Deta cut in the EE is - applied. Still needs extra tags: V00-03-13 RecoEgamma/ElectronIdentification --- -latest update: 4 Nov 2010 \ No newline at end of file diff --git a/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmer.h b/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmer.h deleted file mode 100644 index 51465aed473b4..0000000000000 --- a/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmer.h +++ /dev/null @@ -1,199 +0,0 @@ -#ifndef GenPurposeSkimmer_H -#define GenPurposeSkimmer_H - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -// other files -// root + maths -#include "TFile.h" -#include "TBranch.h" -#include "TTree.h" -#include "TVector.h" -#include "TString.h" -#include "TMath.h" -// -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/EgammaCandidates/interface/Electron.h" -#include "DataFormats/EgammaCandidates/interface/ElectronFwd.h" -// -#include "DataFormats/Common/interface/TriggerResults.h" -#include "FWCore/Common/interface/TriggerNames.h" -#include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h" -#include "DataFormats/HLTReco/interface/TriggerTypeDefs.h" -#include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" -#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" - -// -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/METReco/interface/CaloMET.h" -#include "DataFormats/METReco/interface/CaloMETFwd.h" -#include "DataFormats/METReco/interface/PFMET.h" -#include "DataFormats/METReco/interface/PFMETFwd.h" -#include "DataFormats/METReco/interface/GenMET.h" -#include "DataFormats/METReco/interface/GenMETFwd.h" - -#include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h" -// -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/Common/interface/ValueMap.h" - -#include "DataFormats/PatCandidates/interface/Electron.h" -#include "DataFormats/PatCandidates/interface/MET.h" -#include "DataFormats/Math/interface/deltaR.h" -// -// class decleration -// - -class GenPurposeSkimmer : public edm::EDAnalyzer { -public: - explicit GenPurposeSkimmer(const edm::ParameterSet&); - ~GenPurposeSkimmer(); - -private: - virtual void beginJob(const edm::EventSetup&); - virtual void analyze(const edm::Event&, const edm::EventSetup&); - virtual void endJob(); - - // ----------member data --------------------------- - - std::string outputFile_; - int tree_fills_; - - edm::InputTag ElectronCollection_; - edm::InputTag MCCollection_; - edm::InputTag MetCollectionTag_; - edm::InputTag tcMetCollectionTag_; - edm::InputTag pfMetCollectionTag_; - edm::InputTag t1MetCollectionTag_; - edm::InputTag t1MetCollectionTagTwiki_; - edm::InputTag genMetCollectionTag_; - // - edm::InputTag HLTCollectionE29_; - edm::InputTag HLTCollectionE31_; - edm::InputTag HLTTriggerResultsE29_; - edm::InputTag HLTTriggerResultsE31_; - edm::InputTag HLTFilterType_[25]; - std::string HLTPath_[25]; - - TTree* probe_tree; - TFile* histofile; - // - - //probe SC variables - double probe_sc_eta_for_tree[4]; - double probe_sc_phi_for_tree[4]; - double probe_sc_et_for_tree[4]; - int probe_sc_pass_fiducial_cut[4]; - int probe_sc_pass_et_cut[4]; - - //probe electron variables - double probe_ele_eta_for_tree[4]; - double probe_ele_phi_for_tree[4]; - double probe_ele_et_for_tree[4]; - double probe_ele_Xvertex_for_tree[4]; - double probe_ele_Yvertex_for_tree[4]; - double probe_ele_Zvertex_for_tree[4]; - double probe_ele_tip[4]; - int probe_charge_for_tree[4]; - int probe_index_for_tree[4]; - - //efficiency cuts - int probe_ele_pass_fiducial_cut[4]; - int probe_ele_pass_et_cut[4]; - int probe_pass_recoEle_cut[4]; - int probe_pass_iso_cut[4]; - // - double probe_isolation_value[4]; - double probe_iso_user[4]; - // - double probe_ecal_isolation_value[4]; - double probe_ecal_iso_user[4]; - - double probe_hcal_isolation_value[4]; - double probe_hcal_iso_user[4]; - // - int probe_classification_index_for_tree[4]; - int probe_pass_tip_cut[4]; - // - int probe_pass_id_robust_loose[4]; - int probe_pass_id_robust_tight[4]; - int probe_pass_id_loose[4]; - int probe_pass_id_tight[4]; - double probe_ele_hoe[4]; - double probe_ele_shh[4]; - double probe_ele_sihih[4]; - double probe_ele_dhi[4]; - double probe_ele_dfi[4]; - double probe_ele_eop[4]; - double probe_ele_pin[4]; - double probe_ele_pout[4]; - double probe_ele_e5x5[4]; - double probe_ele_e2x5[4]; - double probe_ele_e1x5[4]; - - // - int probe_pass_trigger_cut[4][25]; - double probe_hlt_matched_dr[4]; - // - double MCMatch_Deta_; - double MCMatch_Dphi_; - int probe_mc_matched[4]; - double probe_mc_matched_deta[4]; - double probe_mc_matched_dphi[4]; - double probe_mc_matched_denergy[4]; - int probe_mc_matched_mother[4]; - - //event variables - int numberOfHLTFilterObjects[25]; - - int event_HLTPath[25]; - - double BarrelMaxEta; - double EndcapMinEta; - double EndcapMaxEta; - - double ProbeSCMinEt; - double ProbeRecoEleSCMaxDE; - - double ProbeHLTObjMaxDR; - double RecoEleSeedBCMaxDE; - double GsfTrackMinInnerPt; - - int elec_number_in_event; - int elec_1_duplicate_removal; - - double event_MET, event_MET_sig; - // double event_MET_eta; - double event_MET_phi; - double event_tcMET, event_tcMET_sig, event_tcMET_phi; - double event_pfMET, event_pfMET_sig; - // double event_pfMET_eta; - double event_pfMET_phi; - double event_genMET, event_genMET_sig; - // double event_genMET_eta; - double event_genMET_phi; - // - double event_t1MET, event_t1MET_phi, event_t1MET_sig; - double event_twikiT1MET, event_twikiT1MET_phi, event_twikiT1MET_sig; -}; - -#endif diff --git a/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmerAcceptance.h b/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmerAcceptance.h deleted file mode 100644 index 273707984db38..0000000000000 --- a/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmerAcceptance.h +++ /dev/null @@ -1,221 +0,0 @@ -#ifndef GenPurposeSkimmerAcceptance_H -#define GenPurposeSkimmerAcceptance_H - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -// other files -// root + maths -#include "TFile.h" -#include "TBranch.h" -#include "TTree.h" -#include "TVector.h" -#include "TString.h" -#include "TMath.h" -// -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/EgammaCandidates/interface/Electron.h" -#include "DataFormats/EgammaCandidates/interface/ElectronFwd.h" -// -#include "DataFormats/Common/interface/TriggerResults.h" -#include "FWCore/Common/interface/TriggerNames.h" -#include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h" -#include "DataFormats/HLTReco/interface/TriggerTypeDefs.h" -#include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" -#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" - -// -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/METReco/interface/CaloMET.h" -#include "DataFormats/METReco/interface/CaloMETFwd.h" -#include "DataFormats/METReco/interface/PFMET.h" -#include "DataFormats/METReco/interface/PFMETFwd.h" -#include "DataFormats/METReco/interface/GenMET.h" -#include "DataFormats/METReco/interface/GenMETFwd.h" - -#include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h" -// -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/Common/interface/ValueMap.h" - -#include "DataFormats/PatCandidates/interface/Electron.h" -#include "DataFormats/PatCandidates/interface/MET.h" -#include "DataFormats/Math/interface/deltaR.h" -// -// class decleration -// - -class GenPurposeSkimmerAcceptance : public edm::EDAnalyzer { -public: - explicit GenPurposeSkimmerAcceptance(const edm::ParameterSet&); - ~GenPurposeSkimmerAcceptance(); - -private: - virtual void beginJob(const edm::EventSetup&); - virtual void analyze(const edm::Event&, const edm::EventSetup&); - virtual void endJob(); - - // ----------member data --------------------------- - - std::string outputFile_; - int tree_fills_; - - edm::InputTag ElectronCollection_; - edm::InputTag MCCollection_; - edm::InputTag MetCollectionTag_; - edm::InputTag tcMetCollectionTag_; - edm::InputTag pfMetCollectionTag_; - edm::InputTag t1MetCollectionTag_; - edm::InputTag t1MetCollectionTagTwiki_; - edm::InputTag genMetCollectionTag_; - // - edm::InputTag HLTCollectionE29_; - edm::InputTag HLTCollectionE31_; - edm::InputTag HLTTriggerResultsE29_; - edm::InputTag HLTTriggerResultsE31_; - edm::InputTag HLTFilterType_[25]; - std::string HLTPath_[25]; - - TTree* probe_tree; - TFile* histofile; - // - - //probe SC variables - double probe_sc_eta_for_tree[4]; - double probe_sc_phi_for_tree[4]; - double probe_sc_et_for_tree[4]; - int probe_sc_pass_fiducial_cut[4]; - int probe_sc_pass_et_cut[4]; - - //probe electron variables - double probe_ele_eta_for_tree[4]; - double probe_ele_phi_for_tree[4]; - double probe_ele_et_for_tree[4]; - double probe_ele_Xvertex_for_tree[4]; - double probe_ele_Yvertex_for_tree[4]; - double probe_ele_Zvertex_for_tree[4]; - double probe_ele_tip[4]; - int probe_charge_for_tree[4]; - int probe_index_for_tree[4]; - - //efficiency cuts - int probe_ele_pass_fiducial_cut[4]; - int probe_ele_pass_et_cut[4]; - int probe_pass_recoEle_cut[4]; - int probe_pass_iso_cut[4]; - // - double probe_isolation_value[4]; - double probe_iso_user[4]; - // - double probe_ecal_isolation_value[4]; - double probe_ecal_iso_user[4]; - - double probe_hcal_isolation_value[4]; - double probe_hcal_iso_user[4]; - // - int probe_classification_index_for_tree[4]; - int probe_pass_tip_cut[4]; - // - int probe_pass_id_robust_loose[4]; - int probe_pass_id_robust_tight[4]; - int probe_pass_id_loose[4]; - int probe_pass_id_tight[4]; - double probe_ele_hoe[4]; - double probe_ele_shh[4]; - double probe_ele_sihih[4]; - double probe_ele_dhi[4]; - double probe_ele_dfi[4]; - double probe_ele_eop[4]; - double probe_ele_pin[4]; - double probe_ele_pout[4]; - double probe_ele_e5x5[4]; - double probe_ele_e2x5[4]; - double probe_ele_e1x5[4]; - - // - int probe_pass_trigger_cut[4][25]; - double probe_hlt_matched_dr[4]; - // - double MCMatch_Deta_; - double MCMatch_Dphi_; - int probe_mc_matched[4]; - double probe_mc_matched_deta[4]; - double probe_mc_matched_dphi[4]; - double probe_mc_matched_denergy[4]; - int probe_mc_matched_mother[4]; - - //event variables - int numberOfHLTFilterObjects[25]; - - int event_HLTPath[25]; - - double BarrelMaxEta; - double EndcapMinEta; - double EndcapMaxEta; - - double ProbeSCMinEt; - double ProbeRecoEleSCMaxDE; - - double ProbeHLTObjMaxDR; - double RecoEleSeedBCMaxDE; - double GsfTrackMinInnerPt; - - int elec_number_in_event; - int elec_1_duplicate_removal; - - double event_MET, event_MET_sig; - // double event_MET_eta; - double event_MET_phi; - double event_tcMET, event_tcMET_sig, event_tcMET_phi; - double event_pfMET, event_pfMET_sig; - // double event_pfMET_eta; - double event_pfMET_phi; - double event_genMET, event_genMET_sig; - // double event_genMET_eta; - double event_genMET_phi; - // - double event_t1MET, event_t1MET_phi, event_t1MET_sig; - double event_twikiT1MET, event_twikiT1MET_phi, event_twikiT1MET_sig; - // - // - // acceptance and t&p specific - double mc_ele_eta[10]; - double mc_ele_phi[10]; - double mc_ele_et[10]; - double mc_ele_vertex_x[10]; - double mc_ele_vertex_y[10]; - double mc_ele_vertex_z[10]; - int mc_ele_mother[10]; - int mc_ele_charge[10]; - int mc_ele_status[10]; - // - // for the sc collections - // double sc0_eta[8], sc0_phi[8], sc0_et[8]; - double sc1_eta[8], sc1_phi[8], sc1_et[8]; - double sc2_eta[8], sc2_phi[8], sc2_et[8]; - double sc3_eta[8], sc3_phi[8], sc3_et[8]; - double sc4_eta[8], sc4_phi[8], sc4_et[8]; - double sc5_eta[8], sc5_phi[8], sc5_et[8]; - // double sc6_eta[8], sc6_phi[8], sc6_et[8]; - // double sc7_eta[8], sc7_phi[8], sc7_et[8]; -}; - -#endif diff --git a/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmerData.h b/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmerData.h deleted file mode 100644 index 308fcd0b89c6d..0000000000000 --- a/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmerData.h +++ /dev/null @@ -1,225 +0,0 @@ -#ifndef GenPurposeSkimmerData_H -#define GenPurposeSkimmerData_H - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -// other files -// root + maths -#include "TFile.h" -#include "TBranch.h" -#include "TTree.h" -#include "TVector.h" -#include "TString.h" -#include "TMath.h" -// -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/EgammaCandidates/interface/Electron.h" -#include "DataFormats/EgammaCandidates/interface/ElectronFwd.h" -// -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h" -#include "DataFormats/HLTReco/interface/TriggerTypeDefs.h" -#include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" -#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" - -// -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/METReco/interface/CaloMET.h" -#include "DataFormats/METReco/interface/CaloMETFwd.h" -#include "DataFormats/METReco/interface/PFMET.h" -#include "DataFormats/METReco/interface/PFMETFwd.h" -#include "DataFormats/METReco/interface/GenMET.h" -#include "DataFormats/METReco/interface/GenMETFwd.h" -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/PatCandidates/interface/Muon.h" - -#include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h" -// -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/Common/interface/ValueMap.h" - -#include "DataFormats/PatCandidates/interface/Electron.h" -#include "DataFormats/PatCandidates/interface/MET.h" -#include "DataFormats/Math/interface/deltaR.h" -// -// class decleration -// - -class GenPurposeSkimmerData : public edm::EDAnalyzer { -public: - explicit GenPurposeSkimmerData(const edm::ParameterSet&); - ~GenPurposeSkimmerData() override; - -private: - void beginJob() override; - void analyze(const edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - // ----------member data --------------------------- - - std::string outputFile_; - int tree_fills_; - - edm::EDGetTokenT ElectronCollectionToken_; - edm::InputTag MCCollection_; - edm::EDGetTokenT MCCollectionToken_; - edm::InputTag MetCollectionTag_; - edm::EDGetTokenT MetCollectionToken_; - edm::EDGetTokenT mcMetCollectionToken_; - edm::EDGetTokenT tcMetCollectionToken_; - edm::EDGetTokenT pfMetCollectionToken_; - edm::EDGetTokenT t1MetCollectionToken_; - edm::EDGetTokenT genMetCollectionToken_; - // - edm::InputTag HLTCollectionE29_; - edm::EDGetTokenT HLTCollectionE29Token_; - edm::InputTag HLTCollectionE31_; - edm::EDGetTokenT HLTCollectionE31Token_; - edm::InputTag HLTTriggerResultsE29_; - edm::EDGetTokenT HLTTriggerResultsE29Token_; - edm::InputTag HLTTriggerResultsE31_; - edm::EDGetTokenT HLTTriggerResultsE31Token_; - edm::InputTag HLTFilterType_[25]; - // std::string HLTPath_[25]; - edm::EDGetTokenT ctfTracksToken_; - edm::EDGetTokenT corHybridscToken_; - edm::EDGetTokenT multi5x5scToken_; - edm::EDGetTokenT offlineBeamSpotToken_; - edm::EDGetTokenT pMuonsToken_; - - TTree* probe_tree; - TFile* histofile; - // - - //probe SC variables - double probe_sc_eta_for_tree[4]; - double probe_sc_phi_for_tree[4]; - double probe_sc_et_for_tree[4]; - int probe_sc_pass_fiducial_cut[4]; - int probe_sc_pass_et_cut[4]; - - //probe electron variables - double probe_ele_eta_for_tree[4]; - double probe_ele_phi_for_tree[4]; - double probe_ele_et_for_tree[4]; - double probe_ele_Xvertex_for_tree[4]; - double probe_ele_Yvertex_for_tree[4]; - double probe_ele_Zvertex_for_tree[4]; - double probe_ele_tip[4]; - int probe_charge_for_tree[4]; - int probe_index_for_tree[4]; - - //efficiency cuts - int probe_ele_pass_fiducial_cut[4]; - int probe_ele_pass_et_cut[4]; - int probe_pass_recoEle_cut[4]; - int probe_pass_iso_cut[4]; - // - double probe_isolation_value[4]; - double probe_iso_user[4]; - // - double probe_ecal_isolation_value[4]; - double probe_ecal_iso_user[4]; - - double probe_hcal_isolation_value[4]; - double probe_hcal_iso_user[4]; - // - int probe_classification_index_for_tree[4]; - int probe_pass_tip_cut[4]; - // - int probe_pass_id_robust_loose[4]; - int probe_pass_id_robust_tight[4]; - int probe_pass_id_loose[4]; - int probe_pass_id_tight[4]; - double probe_ele_hoe[4]; - double probe_ele_shh[4]; - double probe_ele_sihih[4]; - double probe_ele_dhi[4]; - double probe_ele_dfi[4]; - double probe_ele_eop[4]; - double probe_ele_pin[4]; - double probe_ele_pout[4]; - double probe_ele_e5x5[4]; - double probe_ele_e2x5[4]; - double probe_ele_e1x5[4]; - - // - int probe_pass_trigger_cut[4][25]; - double probe_hlt_matched_dr[4]; - // - double MCMatch_Deta_; - double MCMatch_Dphi_; - int probe_mc_matched[4]; - double probe_mc_matched_deta[4]; - double probe_mc_matched_dphi[4]; - double probe_mc_matched_denergy[4]; - int probe_mc_matched_mother[4]; - - //event variables - int numberOfHLTFilterObjects[25]; - - int event_HLTPath[25]; - - double BarrelMaxEta; - double EndcapMinEta; - double EndcapMaxEta; - - double ProbeSCMinEt; - double ProbeRecoEleSCMaxDE; - - double ProbeHLTObjMaxDR; - double RecoEleSeedBCMaxDE; - double GsfTrackMinInnerPt; - - int elec_number_in_event; - int elec_1_duplicate_removal; - - double event_MET, event_MET_sig; - // double event_MET_eta; - double event_MET_phi; - double event_tcMET, event_tcMET_sig, event_tcMET_phi; - double event_pfMET, event_pfMET_sig; - // double event_pfMET_eta; - double event_pfMET_phi; - //double event_genMET, event_genMET_sig; - // double event_genMET_eta; - //double event_genMET_phi; - // - double event_t1MET, event_t1MET_phi, event_t1MET_sig; - double event_mcMET, event_mcMET_phi, event_mcMET_sig; - // - // - // - double sc_hybrid_et[5], sc_hybrid_eta[5], sc_hybrid_phi[5]; - double sc_multi5x5_et[5], sc_multi5x5_eta[5], sc_multi5x5_phi[5]; - // - double ctf_track_pt[20], ctf_track_eta[20], ctf_track_phi[20]; - double ctf_track_vx[20], ctf_track_vy[20], ctf_track_vz[20]; - double ctf_track_tip[20], ctf_track_tip_bs[20]; - // - double muon_pt[4], muon_eta[4], muon_phi[4]; - double muon_vx[4], muon_vy[4], muon_vz[4]; - double muon_tip[4], muon_tip_bs[4]; -}; - -#endif diff --git a/ElectroWeakAnalysis/WENu/interface/WenuPlots.h b/ElectroWeakAnalysis/WENu/interface/WenuPlots.h deleted file mode 100644 index c2e1d78dbadb1..0000000000000 --- a/ElectroWeakAnalysis/WENu/interface/WenuPlots.h +++ /dev/null @@ -1,258 +0,0 @@ -#ifndef WenuPlots_H -#define WenuPlots_H - -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/PatCandidates/interface/Electron.h" -#include "DataFormats/PatCandidates/interface/MET.h" -#include "DataFormats/PatCandidates/interface/CompositeCandidate.h" -#include "DataFormats/EgammaCandidates/interface/Electron.h" -#include "DataFormats/JetReco/interface/PFJet.h" -#include "DataFormats/JetReco/interface/CaloJet.h" -#include "DataFormats/JetReco/interface/PFJetCollection.h" -#include "DataFormats/JetReco/interface/CaloJetCollection.h" -#include "DataFormats/VertexReco/interface/Vertex.h" - -//#include "DataFormats/BeamSpot/interface/BeamSpot.h" - -#include -#include -#include "TFile.h" -#include "TTree.h" -#include "TString.h" -#include "TH1F.h" -#include "TMath.h" - -// -// class decleration -// - -class WenuPlots : public edm::EDAnalyzer { -public: - explicit WenuPlots(const edm::ParameterSet &); - ~WenuPlots() override; - -private: - void beginJob() override; - void analyze(const edm::Event &, const edm::EventSetup &) override; - void endJob() override; - - // ----------member data --------------------------- - Bool_t CheckCuts(const pat::Electron *ele); - Bool_t CheckCut(const pat::Electron *wenu, Int_t i); - Bool_t CheckCutsInverse(const pat::Electron *ele); - Bool_t CheckCutInv(const pat::Electron *wenu, Int_t i); - Bool_t CheckCutsNminusOne(const pat::Electron *ele, Int_t jj); - Double_t ReturnCandVar(const pat::Electron *ele, Int_t i); - Bool_t PassPreselectionCriteria(const pat::Electron *ele); - // for the extra identifications and selections - Bool_t usePrecalcID_; - std::string usePrecalcIDSign_; - std::string usePrecalcIDType_; - Double_t usePrecalcIDValue_; - // for extra preselection criteria: - Bool_t useValidFirstPXBHit_; - Bool_t useConversionRejection_; - Bool_t useExpectedMissingHits_; - Int_t maxNumberOfExpectedMissingHits_; - Bool_t usePreselection_; - std::string outputFile_; - edm::EDGetTokenT wenuCollectionToken_; - edm::InputTag caloJetCollectionTag_; - edm::EDGetTokenT caloJetCollectionToken_; - edm::InputTag pfJetCollectionTag_; - edm::EDGetTokenT pfJetCollectionToken_; - edm::EDGetTokenT > PrimaryVerticesCollectionToken_; - edm::EDGetTokenT > PrimaryVerticesCollectionBSToken_; - TFile *histofile; - // - // math::XYZPoint bspotPosition_; // comment out only if you don't use pat - // - // the histograms ******************** - - TH1F *h_met; - TH1F *h_met_inverse; - TH1F *h_mt; - TH1F *h_mt_inverse; - - TH1F *h_met_EB; - TH1F *h_met_inverse_EB; - TH1F *h_mt_EB; - TH1F *h_mt_inverse_EB; - - TH1F *h_met_EE; - TH1F *h_met_inverse_EE; - TH1F *h_mt_EE; - TH1F *h_mt_inverse_EE; - - TH1F *h_scEt; - TH1F *h_scEta; - TH1F *h_scPhi; - - TH1F *h_EB_trkiso; - TH1F *h_EB_ecaliso; - TH1F *h_EB_hcaliso; - TH1F *h_EB_sIetaIeta; - TH1F *h_EB_dphi; - TH1F *h_EB_deta; - TH1F *h_EB_HoE; - - TH1F *h_EE_trkiso; - TH1F *h_EE_ecaliso; - TH1F *h_EE_hcaliso; - TH1F *h_EE_sIetaIeta; - TH1F *h_EE_dphi; - TH1F *h_EE_deta; - TH1F *h_EE_HoE; - - // - TH1F *h_trackIso_eb_NmOne; - TH1F *h_trackIso_ee_NmOne; - // *********************************** - // - // the selection cuts - Double_t trackIso_EB_; - Double_t ecalIso_EB_; - Double_t hcalIso_EB_; - // - Double_t trackIso_EE_; - Double_t ecalIso_EE_; - Double_t hcalIso_EE_; - // - Double_t sihih_EB_; - Double_t deta_EB_; - Double_t dphi_EB_; - Double_t hoe_EB_; - Double_t cIso_EB_; - Double_t tip_bspot_EB_; - Double_t eop_EB_; - // - Double_t sihih_EE_; - Double_t deta_EE_; - Double_t dphi_EE_; - Double_t hoe_EE_; - Double_t cIso_EE_; - Double_t tip_bspot_EE_; - Double_t eop_EE_; - // - Double_t trackIsoUser_EB_; - Double_t ecalIsoUser_EB_; - Double_t hcalIsoUser_EB_; - Double_t trackIsoUser_EE_; - Double_t ecalIsoUser_EE_; - Double_t hcalIsoUser_EE_; - // - Bool_t trackIso_EB_inv; - Bool_t ecalIso_EB_inv; - Bool_t hcalIso_EB_inv; - // - Bool_t trackIso_EE_inv; - Bool_t ecalIso_EE_inv; - Bool_t hcalIso_EE_inv; - // - Bool_t sihih_EB_inv; - Bool_t deta_EB_inv; - Bool_t dphi_EB_inv; - Bool_t hoe_EB_inv; - Bool_t cIso_EB_inv; - Bool_t tip_bspot_EB_inv; - Bool_t eop_EB_inv; - // - Bool_t sihih_EE_inv; - Bool_t deta_EE_inv; - Bool_t dphi_EE_inv; - Bool_t hoe_EE_inv; - Bool_t cIso_EE_inv; - Bool_t tip_bspot_EE_inv; - Bool_t eop_EE_inv; - // - Bool_t trackIsoUser_EB_inv; - Bool_t ecalIsoUser_EB_inv; - Bool_t hcalIsoUser_EB_inv; - Bool_t trackIsoUser_EE_inv; - Bool_t ecalIsoUser_EE_inv; - Bool_t hcalIsoUser_EE_inv; - // - // - Int_t nBarrelVars_; - // - std::vector CutVars_; - std::vector InvVars_; - // - // variables related to the VBTF root tuples: - // - Int_t runNumber, lumiSection; - Long64_t eventNumber; - Float_t ele_sc_energy, ele_sc_eta, ele_sc_phi, ele_sc_rho; - Float_t ele_sc_gsf_et; - Float_t ele_cand_et, ele_cand_eta, ele_cand_phi; - Float_t ele_iso_track, ele_iso_ecal, ele_iso_hcal; - Float_t ele_id_sihih, ele_id_dphi, ele_id_deta, ele_id_hoe; - Float_t ele_cr_dcot, ele_cr_dist; - Int_t ele_cr_mhitsinner; - Float_t ele_vx, ele_vy, ele_vz; - Float_t ele_pin, ele_pout; - Float_t pv_x, pv_y, pv_z; - Int_t ele_gsfCharge, ele_ctfCharge, ele_scPixCharge; - Float_t ele_eop, ele_tip_bs, ele_tip_pv; - Float_t event_caloMET, event_pfMET, event_tcMET; - Float_t event_caloSumEt, event_pfSumEt, event_tcSumEt; - Float_t event_caloMET_phi, event_pfMET_phi, event_tcMET_phi; - Float_t event_caloMT, event_pfMT, event_tcMT; - Float_t calojet_et[5]; - Float_t calojet_eta[5]; - Float_t calojet_phi[5]; - Float_t pfjet_et[5]; - Float_t pfjet_eta[5]; - Float_t pfjet_phi[5]; - Float_t ele2nd_sc_gsf_et; - Float_t ele2nd_sc_eta; - Float_t ele2nd_sc_phi; - Float_t ele2nd_sc_rho; - Float_t ele2nd_cand_eta; - Float_t ele2nd_cand_phi; - Float_t ele2nd_pin; - Float_t ele2nd_pout; - Int_t ele2nd_passes_selection; - Int_t ele2nd_ecalDriven; - Float_t ele_hltmatched_dr; - Int_t event_triggerDecision; - Int_t event_datasetTag; - - TFile *WENU_VBTFpreseleFile_; - TFile *WENU_VBTFselectionFile_; - TTree *vbtfSele_tree; - TTree *vbtfPresele_tree; - std::string WENU_VBTFselectionFileName_; - std::string WENU_VBTFpreseleFileName_; - Bool_t includeJetInformationInNtuples_; - Bool_t storeExtraInformation_; - Double_t DRJetFromElectron_; - Int_t DatasetTag_; - // for the 2nd electron storage - Bool_t storeAllSecondElectronVariables_; - Float_t ele2nd_cand_et; - Float_t ele2nd_iso_track, ele2nd_iso_ecal, ele2nd_iso_hcal; - Float_t ele2nd_id_sihih, ele2nd_id_deta, ele2nd_id_dphi, ele2nd_id_hoe; - Float_t ele2nd_cr_dcot, ele2nd_cr_dist; - Float_t ele2nd_vx, ele2nd_vy, ele2nd_vz; - Int_t ele2nd_cr_mhitsinner, ele2nd_gsfCharge, ele2nd_ctfCharge, ele2nd_scPixCharge; - Float_t ele2nd_eop, ele2nd_tip_bs, ele2nd_tip_pv; - Float_t ele2nd_hltmatched_dr; - std::vector VtxTracksSize; - std::vector VtxNormalizedChi2; - std::vector VtxTracksSizeBS; - std::vector VtxNormalizedChi2BS; - Float_t pvbs_x, pvbs_y, pvbs_z; - Float_t ele_tip_pvbs, ele2nd_tip_pvbs; -}; - -#endif diff --git a/ElectroWeakAnalysis/WENu/macros/PlotCombiner.cc b/ElectroWeakAnalysis/WENu/macros/PlotCombiner.cc deleted file mode 100644 index c28d1e998b892..0000000000000 --- a/ElectroWeakAnalysis/WENu/macros/PlotCombiner.cc +++ /dev/null @@ -1,1161 +0,0 @@ -/* - Macro to make the plots ....................................... - - Instructions: - a. set up an input file that looks like the following: - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - # zee or wenu - wenu - # file name, type (sig, qcd, bce, gje, ewk), weight - histos_wenu.root sig 1.46 - histos_q20_30.root qcd 0 - histos_q30_80.root qcd 100. - histos_q80_170.root qcd 0 - histos_b20_30.root bce 0 - histos_b30_80.root bce 0 - histos_b80_170.root bce 0 - histos_zee.root ewk 0 - histos_wtaunu.root ewk 0 - histos_ztautau.root ewk 0 - histos_gj15.root gje 0 - histos_gj20.root gje 0 - histos_gj25.root gje 10.12 - histos_gj30.root gje 0 - histos_gj35.root gje 0 - histos_wmunu.root ewk 0 - histos_ttbar.root ewk 0 - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - lines that start with # are considered to be comments - line 2 has wenu or zee. From line 4 the list of the histo files are listed - (first word) then a type that could be sig,qcd,bce, gj or ewk in order to - discriminate among different sources of bkgs and finally the weight that we - want to weight the histogram entries. This particular example is for Wenu. For - Zee one has to put type sig in the zee file and ewk in the Wenu file. The order - of the files is arbitrary. Files with weight 0 will be ignored. - After you have set up this code you run a root macro to combine the plots. - You can do (not recommended - it actually crushes - to be debugged) - root -b PlotCombiner.cc - or to compile it within root (recommended) - root -b - root [1] .L PlotCombiner.cc++ - root [2] PlotCombiner() - - and you finally get the plots. - - For the ABCD method: - ^^^^^^^^^^^^^^^^^^^^ - you have to insert in the 2nd line instead of wenu or zee the keyword abcd(...) - The files should contain ewk samples, sig samples and qcd samples (but also read - later). The only absolutely necessary files are the sig ones. - Example: - abcd(I=0.95,dI=0.01,Fz=0.6,dFz=0.01,FzP=0.56, dFzP=0.2,ewkerror=0.1,METCut=30.,mc) - These parameters keep the same notation as in the note. The last parameter (data) - can take 3 values: - data: calculate in ABCD as in data. This means that the histograms denoted with - sig,qcd,bce,gje are used as of the same kind and ewk as the MC ewk. - The background is substructed as in data - mcOnly: here we ignore all the input parameters I, dI etc. All parameters are taken - from MC by forcing Fqcd=1 - mc: input mc samples, calculation of statistical - and systematics as in CMS AN 2009/004, systematic and statistic error - calculation. This option also creates the plots of the variation of the - signal prediction vs the parameter variation. In order to set the limits of - the desired variation you have to edit the values in line 113 of this code - (they are hardwired in the code) - TO DO: - functionalities to plot more kind of plots, e.g. efficiencies - - - Further Questions/Contact: - - nikolaos.rompotis @ cern.ch - - - - Nikolaos Rompotis - 29 June 09 - 18 Sept 09: 1st updgrade: input files in a text file - 28 May 10: bug in IMET corrected, thanks to Sadia Khalil - Imperial College London - - -*/ - - -#include -#include -#include -#include -#include "TString.h" -#include "TROOT.h" -#include "TStyle.h" -#include "TH1F.h" -#include "TFile.h" -#include "TCanvas.h" -#include "TGraph.h" -#include "TLegend.h" - -void plotMaker(TString histoName, TString typeOfplot, - vector file, vector type, - vector weight, TString xtitle); - -void abcd(vector file, vector type, vector weight, - double METCut, double I, double dI, double Fz, double dFz, - double FzP, double dFzP, double ewkerror, - double data, double mc, double mcOnly); -double searchABCDstring(TString abcdString, TString keyword); -double Trionym(double a, double b, double c, double sum); -double CalcABCD -(double I, double Fz, double FzP, double K, double ewk, - double Na_, double Nb_, double Nc_, double Nd_, - double Ea_, double Eb_, double Ec_, double Ed_); - -// values for systematics plots: it is fraction of the MC value -const double EWK_SYST_MIN = 0.3; -const double EWK_SYST_MAX = 0.3; -// -const double I_SYST_MIN = 0.05; -const double I_SYST_MAX = 0.05; -// -const double FZ_SYST_MIN = 0.1; -const double FZ_SYST_MAX = 0.1; -// -const double FZP_SYST_MIN = 0.1; -const double FZP_SYST_MAX = 0.1; -// -const double K_SYST_MIN = 0.8; -const double K_SYST_MAX = 0.8; - - -using namespace std; - -void PlotCombiner() -{ - // read the file - ifstream input("inputFiles"); - int i = 0; - TString typeOfplot = ""; - vector types; - vector files; - vector weights; - - if (input.is_open()) { - std::string myline; - while (! input.eof()) { - getline(input, myline); - TString line(myline); - TString c('#'); - TString empty(' '); - if (line[0] != c) { - ++i; - if (i==1) typeOfplot=line; - else { - // read until you find 3 words - TString fname(""); - TString ftype(""); - TString fw(""); - int lineSize = (int) line.Length(); - int j=0; - while (j0) break;} - ++j; - } - if (fname.Length() == 0) break; - files.push_back(fname); - types.push_back(ftype); - double w = fw.Atof(); - weights.push_back(w); - if (w>0) - std::cout << fname << ", " << ftype << ", "<< w << std::endl; - } - } - } - input.close(); - } - else { - std::cout << "File with name inputFile was not found" << std::endl; - return; - } - - // now you can launch the jobs - if (typeOfplot == "wenu") { - cout << "wenu plot maker" << endl; - // ==================== - // =====> WHICH HISTOS TO PLOT - // ==================== - plotMaker("h_met", typeOfplot, files, types, weights, "MET (GeV)"); - } - else if (typeOfplot == "zee"){ - cout << "zee plot maker" << endl; - // ==================== - // =====> WHICH HISTOS TO PLOT - // ==================== - plotMaker("h_mee", typeOfplot, files, types, weights, "M_{ee} (GeV)"); - } - else if (typeOfplot(0,4) == "abcd") { - // now read the parameters of the ABCD method - // look for parameter I and dI - double I = searchABCDstring(typeOfplot, "I"); - double dI= searchABCDstring(typeOfplot, "dI"); - // look for parameter Fz - double Fz = searchABCDstring(typeOfplot, "Fz"); - double dFz= searchABCDstring(typeOfplot, "dFz"); - // look for parameter FzP - double FzP = searchABCDstring(typeOfplot, "FzP"); - double dFzP= searchABCDstring(typeOfplot, "dFzP"); - // look for the MET cut - double METCut =searchABCDstring(typeOfplot, "METCut"); - // do you want data driven only? - double data = searchABCDstring(typeOfplot, "data"); - double mc = searchABCDstring(typeOfplot, "mc"); - double mcOnly = searchABCDstring(typeOfplot, "mcOnly"); - // what is the ewk error? - double ewkerror = searchABCDstring(typeOfplot, "ewkerror"); - // sanity check: - if (METCut<0 || (data<-0.7 && mc<-0.7 && mcOnly<-0.7)) { - cout << "Error in your configurtion!" << endl; - if (METCut <0) cout << "Error in MET Cut" << endl; - else cout << "You need to specify one mc or data or mcOnly" - << endl; - abort(); - } - if (mc>-0.7 && mc <0 && ewkerror<0) { - cout << "You have specified mc option, but you have forgotten" - << " to set the ewkerror!" << endl; - abort(); - } - // =============================== - // =====> ABCD METHOD FOR BKG SUBTRACTION - // =============================== - cout << "doing ABCD with input: " << typeOfplot << endl; - abcd(files, types, weights, METCut, I, dI, Fz, dFz, FzP, dFzP, - ewkerror, data, mc, mcOnly); - - } - // force the program to abort in order to clear the memory - // and avoid further use of the interpreter after - abort(); - -} - -void abcd( vector file, vector type, vector weight, - double METCut, double I, double dI, double Fz, double dFz, - double FzP, double dFzP, double ewkerror, - double data, double mc, double mcOnly) -{ - gROOT->Reset(); - gROOT->ProcessLine(".L tdrstyle.C"); - gROOT->ProcessLine("setTDRStyle()"); - // - std::cout << "Trying ABCD method for Background subtration" << std::endl; - // - // histogram names to use: - TString histoName_Ba("h_met_EB"); - TString histoName_Bb("h_met_inverse_EB"); - TString histoName_Ea("h_met_EE"); - TString histoName_Eb("h_met_inverse_EE"); - // - // find one file and get the dimensions of your histogram - int fmax = (int) file.size(); - int NBins = 0; double min = 0; double max = -1; - for (int i=0; i0) { - // cout << "Loading file " << file[i] << endl; - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName_Ba); - NBins = h->GetNbinsX(); - min = h->GetBinLowEdge(1); - max = h->GetBinLowEdge(NBins+1); - break; - } - } - if (NBins ==0 || (max0 ) { - TFile f(file[i]); - // - TH1F *h_ba = (TH1F*) f.Get(histoName_Ba); - h_wenu.Add(h_ba, weight[i]); - TH1F *h_ea = (TH1F*) f.Get(histoName_Ea); - h_wenu.Add(h_ea, weight[i]); - // - TH1F *h_bb = (TH1F*) f.Get(histoName_Bb); - h_wenu_inv.Add(h_bb, weight[i]); - TH1F *h_eb = (TH1F*) f.Get(histoName_Eb); - h_wenu_inv.Add(h_eb, weight[i]); - } - } - // QCD Bkgs - TH1F h_qcd("h_qcd", "h_qcd", NBins, min, max); - TH1F h_qcd_inv("h_qcd_inv", "h_qcd_inv", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - // - TH1F *h_ba = (TH1F*) f.Get(histoName_Ba); - h_qcd.Add(h_ba, weight[i]); - TH1F *h_ea = (TH1F*) f.Get(histoName_Ea); - h_qcd.Add(h_ea, weight[i]); - // - TH1F *h_bb = (TH1F*) f.Get(histoName_Bb); - h_qcd_inv.Add(h_bb, weight[i]); - TH1F *h_eb = (TH1F*) f.Get(histoName_Eb); - h_qcd_inv.Add(h_eb, weight[i]); - } - } - // - TH1F h_ewk("h_ewk", "h_ewk", NBins, min, max); - TH1F h_ewk_inv("h_ewk_inv", "h_ewk_inv", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - // - TH1F *h_ba = (TH1F*) f.Get(histoName_Ba); - h_ewk.Add(h_ba, weight[i]); - TH1F *h_ea = (TH1F*) f.Get(histoName_Ea); - h_ewk.Add(h_ea, weight[i]); - // - TH1F *h_bb = (TH1F*) f.Get(histoName_Bb); - h_ewk_inv.Add(h_bb, weight[i]); - TH1F *h_eb = (TH1F*) f.Get(histoName_Eb); - h_ewk_inv.Add(h_eb, weight[i]); - } - } - // - // calculate the METCut position - // - // this is calculated as a low edge bin of your input histogram - // METCut = min + (max-min)*IMET/NBins - int IMET = int ((METCut - min)/(max-min) * double(NBins)); - // check whether it is indeed a low egde position - double metCalc = min + (max-min)*double(IMET)/double(NBins); - if (metCalc < METCut || metCalc > METCut) { - std::cout << "PlotCombiner:abcd: your MET Cut is not in low egde bin position" - << std::endl; - } - cout << "MET Cut in " << METCut << "GeV corresponds to bin #" << IMET << endl; - // Calculate the population in the ABCD Regions now - // signal - double a_sig = h_wenu.Integral(IMET,NBins+1); - double b_sig = h_wenu.Integral(0,IMET-1); - double c_sig = h_wenu_inv.Integral(0,IMET-1); - double d_sig = h_wenu_inv.Integral(IMET,NBins+1); - // qcd - double a_qcd = h_qcd.Integral(IMET,NBins+1); - double b_qcd = h_qcd.Integral(0,IMET-1); - double c_qcd = h_qcd_inv.Integral(0,IMET-1); - double d_qcd = h_qcd_inv.Integral(IMET,NBins+1); - // ewk - double a_ewk = h_ewk.Integral(IMET,NBins+1); - double b_ewk = h_ewk.Integral(0,IMET-1); - double c_ewk = h_ewk_inv.Integral(0,IMET-1); - double d_ewk = h_ewk_inv.Integral(IMET,NBins+1); - //////////////////////////////////////////////// - - // - // now the parameters of the method - if (data < 0 && data >-0.75) { // select value -0.5 that gives the - // string parser - // now everything is done from data + input - std::cout << "Calculating ABCD Result and Stat Error Assuming DATA" - << std::endl << "Summary: in this implementation we have assumed" - << " that what real 'data' appear with type sig in the input" - << std::endl << "No systematics available with this type of" - << " calculation. If you need systematics try one of the other" - << " options" << std::endl; - double A = (1.0-I)*(FzP-Fz); - double B = I*(FzP+1.0)*(FzP*(c_sig-c_ewk)-(d_sig-d_ewk)) + - (1+Fz)*(1-I)*((a_sig-a_ewk)-dFzP*(b_sig-b_ewk)); - double C = I*(1.+Fz)*(1.+FzP)*((d_sig-d_ewk)*(b_sig-b_ewk) - (a_sig-a_ewk)*(c_sig-c_ewk)); - // - // signal calculation: - double S = Trionym(A,B,C, a_sig+b_sig); - - // the errors now: - // calculate the statistical error now: - double ApI=0, ApFz=0, ApFzP=0, ApNa=0, ApNb=0, ApNc=0, ApNd=0; - double BpI=0, BpFz=0, BpFzP=0, BpNa=0, BpNb=0, BpNc=0, BpNd=0; - double CpI=0, CpFz=0, CpFzP=0, CpNa=0, CpNb=0, CpNc=0, CpNd=0; - double SpI=0, SpFz=0, SpFzP=0, SpNa=0, SpNb=0, SpNc=0, SpNd=0; - // - double Na = a_sig, Nb = b_sig, Nc=c_sig, Nd = d_sig; - double Ea = a_ewk, Eb = b_ewk, Ec=c_ewk, Ed = d_ewk; - if (A != 0) { - - ApI = -(FzP-Fz); - ApFz = -(1.0-I); - ApFzP = (1.0-I); - ApNa = 0.0; - ApNb = 0.0; - ApNc = 0.0; - ApNd = 0.0; - - BpI = (FzP+1.0)*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0+Fz)*((Na-Ea)-FzP*(Nb-Eb)); - BpFz = I*(FzP+1.0)*(Nc-Ec)+(1.0-I)*((Na-Ea)-FzP*(Nb-Eb)); - BpFzP = I*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0-I)*(1.0+Fz)*(Nb-Eb); - BpNa = (1.0-I)*(1.0+Fz); - BpNb = -(1.0-I)*(1.0+Fz)*FzP; - BpNc = I*(FzP+1.0)*Fz; - BpNd = -I*(FzP+1.0); - - CpI = (1.0+Fz)*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFz = I*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFzP = I*(1.0+Fz)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpNa = -I*(1.0+Fz)*(1.0+FzP)*(Nc-Ec); - CpNb = I*(1.0+Fz)*(1.0+FzP)*(Nd-Ed); - CpNc = -I*(1.0+Fz)*(1.0+FzP)*(Na-Ea); - CpNd = I*(1.0+Fz)*(1.0+FzP)*(Nb-Eb); - - SpI = (-BpI + (B*BpI -2.0*ApI*C -2.0*A*CpI) /fabs(2.0*A*S+B)- 2.0*ApI*S) /(2.0*A); - SpFz = (-BpFz + (B*BpFz -2.0*ApFz*C -2.0*A*CpFz) /fabs(2.0*A*S+B)- 2.0*ApFz*S) /(2.0*A); - SpFzP = (-BpFzP + (B*BpFzP -2.0*ApFzP*C -2.0*A*CpFzP)/fabs(2.0*A*S+B)- 2.0*ApFzP*S)/(2.0*A); - SpNa = (-BpNa + (B*BpNa -2.0*ApNa*C -2.0*A*CpNa) /fabs(2.0*A*S+B)- 2.0*ApNa*S) /(2.0*A); - SpNb = (-BpNb + (B*BpNb -2.0*ApNb*C -2.0*A*CpNb) /fabs(2.0*A*S+B)- 2.0*ApNb*S) /(2.0*A); - SpNc = (-BpNc + (B*BpNc -2.0*ApNc*C -2.0*A*CpNc) /fabs(2.0*A*S+B)- 2.0*ApNc*S) /(2.0*A); - SpNd = (-BpNd + (B*BpNd -2.0*ApNd*C -2.0*A*CpNd) /fabs(2.0*A*S+B)- 2.0*ApNd*S) /(2.0*A); - } - else { - BpI = (FzP+1.0)*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0+Fz)*((Na-Ea)-FzP*(Nb-Eb)); - BpFz = I*(FzP+1.0)*(Nc-Ec)+(1.0-I)*((Na-Ea)-FzP*(Nb-Eb)); - BpFzP = I*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0-I)*(1.0+Fz)*(Nb-Eb); - BpNa = (1.0-I)*(1.0+Fz); - BpNb = -(1.0-I)*(1.0+Fz)*FzP; - BpNc = I*(FzP+1.0)*Fz; - BpNd = -I*(FzP+1.0); - - CpI = (1.0+Fz)*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFz = I*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFzP = I*(1.0+Fz)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpNa = -I*(1.0+Fz)*(1.0+FzP)*(Nc-Ec); - CpNb = I*(1.0+Fz)*(1.0+FzP)*(Nd-Ed); - CpNc = -I*(1.0+Fz)*(1.0+FzP)*(Na-Ea); - CpNd = I*(1.0+Fz)*(1.0+FzP)*(Nb-Eb); - - SpI = -CpI/B+C*BpI/(B*B); - SpFz = -CpFz/B+C*BpFz/(B*B); - SpFzP = -CpFzP/B+C*BpFzP/(B*B); - SpNa = -CpNa/B+C*BpNa/(B*B); - SpNb = -CpNb/B+C*BpNb/(B*B); - SpNc = -CpNc/B+C*BpNc/(B*B); - SpNd = -CpNd/B+C*BpNd/(B*B); - } - double DS; - DS = sqrt( SpI*dI*SpI*dI + SpFz*dFz*SpFz*dFz + SpFzP*dFzP*SpFzP*dFzP + - SpNa*SpNa*Na + SpNb*SpNb*Nb + SpNc*SpNc*Nc + SpNd*SpNd*Nd ); - // warning: S here denotes the method prediction .......... - cout << "********************************************************" << endl; - cout << "Signal Prediction: " << S << "+-" << DS << "(stat)" << endl; - cout << "********************************************************" << endl; - cout << "Parameters used in calculation: " << endl; - cout << "I= " << I << "+-" << dI << endl; - cout << "Fz= " << Fz << "+-" << dFz << endl; - cout << "FzP=" << FzP << "+-" << dFzP << endl; - cout << endl; - cout << "ABCD Regions population:" << endl; - cout << "A: N=" << Na << ", sig=" << a_sig << ", qcd=" << a_qcd - << ", ewk=" << a_ewk << endl; - cout << "B: N=" << Nb << ", sig=" << b_sig << ", qcd=" << b_qcd - << ", ewk=" << b_ewk << endl; - cout << "C: N=" << Nc << ", sig=" << c_sig << ", qcd=" << c_qcd - << ", ewk=" << c_ewk << endl; - cout << "D: N=" << Nd << ", sig=" << d_sig << ", qcd=" << d_qcd - << ", ewk=" << d_ewk << endl; - cout << endl; - // - cout << "Statistical Error Summary: " << endl; - cout << "due to Fz = "<< SpFz*dFz<< ", ("<-0.75) { // select value -0.5 that gives the - // string parser - - //////// STATISTICAL ERROR CALCULATION ///////////////////////////// - double A = (1.0-I)*(FzP-Fz); - double B = I*(FzP+1.0)*(FzP*(c_sig+c_qcd)-(d_sig+d_qcd)) + - (1+Fz)*(1-I)*((a_sig+a_qcd)-dFzP*(b_sig+b_qcd)); - double C = I*(1.+Fz)*(1.+FzP)*((d_sig+d_qcd)*(b_sig+b_qcd) - - (a_sig+a_qcd)*(c_sig+c_qcd)); - // - // signal calculation: - double S = Trionym(A,B,C, a_sig+b_sig); - // - double ApI=0, ApFz=0, ApFzP=0, ApNa=0, ApNb=0, ApNc=0, ApNd=0; - double BpI=0, BpFz=0, BpFzP=0, BpNa=0, BpNb=0, BpNc=0, BpNd=0; - double CpI=0, CpFz=0, CpFzP=0, CpNa=0, CpNb=0, CpNc=0, CpNd=0; - double SpI=0, SpFz=0, SpFzP=0, SpNa=0, SpNb=0, SpNc=0, SpNd=0; - // - double Na = a_sig+a_qcd+a_ewk, Nb = b_sig+b_qcd+b_ewk; - double Nc=c_sig+c_qcd+c_ewk, Nd = d_sig+d_qcd+d_ewk; - double Ea = a_ewk, Eb = b_ewk, Ec=c_ewk, Ed = d_ewk; - if (A != 0) { - - ApI = -(FzP-Fz); - ApFz = -(1.0-I); - ApFzP = (1.0-I); - ApNa = 0.0; - ApNb = 0.0; - ApNc = 0.0; - ApNd = 0.0; - - BpI = (FzP+1.0)*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0+Fz)*((Na-Ea)-FzP*(Nb-Eb)); - BpFz = I*(FzP+1.0)*(Nc-Ec)+(1.0-I)*((Na-Ea)-FzP*(Nb-Eb)); - BpFzP = I*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0-I)*(1.0+Fz)*(Nb-Eb); - BpNa = (1.0-I)*(1.0+Fz); - BpNb = -(1.0-I)*(1.0+Fz)*FzP; - BpNc = I*(FzP+1.0)*Fz; - BpNd = -I*(FzP+1.0); - - CpI = (1.0+Fz)*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFz = I*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFzP = I*(1.0+Fz)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpNa = -I*(1.0+Fz)*(1.0+FzP)*(Nc-Ec); - CpNb = I*(1.0+Fz)*(1.0+FzP)*(Nd-Ed); - CpNc = -I*(1.0+Fz)*(1.0+FzP)*(Na-Ea); - CpNd = I*(1.0+Fz)*(1.0+FzP)*(Nb-Eb); - - SpI = (-BpI + (B*BpI -2.0*ApI*C -2.0*A*CpI) /fabs(2.0*A*S+B)- 2.0*ApI*S) /(2.0*A); - SpFz = (-BpFz + (B*BpFz -2.0*ApFz*C -2.0*A*CpFz) /fabs(2.0*A*S+B)- 2.0*ApFz*S) /(2.0*A); - SpFzP = (-BpFzP + (B*BpFzP -2.0*ApFzP*C -2.0*A*CpFzP)/fabs(2.0*A*S+B)- 2.0*ApFzP*S)/(2.0*A); - SpNa = (-BpNa + (B*BpNa -2.0*ApNa*C -2.0*A*CpNa) /fabs(2.0*A*S+B)- 2.0*ApNa*S) /(2.0*A); - SpNb = (-BpNb + (B*BpNb -2.0*ApNb*C -2.0*A*CpNb) /fabs(2.0*A*S+B)- 2.0*ApNb*S) /(2.0*A); - SpNc = (-BpNc + (B*BpNc -2.0*ApNc*C -2.0*A*CpNc) /fabs(2.0*A*S+B)- 2.0*ApNc*S) /(2.0*A); - SpNd = (-BpNd + (B*BpNd -2.0*ApNd*C -2.0*A*CpNd) /fabs(2.0*A*S+B)- 2.0*ApNd*S) /(2.0*A); - } - else { - BpI = (FzP+1.0)*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0+Fz)*((Na-Ea)-FzP*(Nb-Eb)); - BpFz = I*(FzP+1.0)*(Nc-Ec)+(1.0-I)*((Na-Ea)-FzP*(Nb-Eb)); - BpFzP = I*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0-I)*(1.0+Fz)*(Nb-Eb); - BpNa = (1.0-I)*(1.0+Fz); - BpNb = -(1.0-I)*(1.0+Fz)*FzP; - BpNc = I*(FzP+1.0)*Fz; - BpNd = -I*(FzP+1.0); - - CpI = (1.0+Fz)*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFz = I*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFzP = I*(1.0+Fz)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpNa = -I*(1.0+Fz)*(1.0+FzP)*(Nc-Ec); - CpNb = I*(1.0+Fz)*(1.0+FzP)*(Nd-Ed); - CpNc = -I*(1.0+Fz)*(1.0+FzP)*(Na-Ea); - CpNd = I*(1.0+Fz)*(1.0+FzP)*(Nb-Eb); - - SpI = -CpI/B+C*BpI/(B*B); - SpFz = -CpFz/B+C*BpFz/(B*B); - SpFzP = -CpFzP/B+C*BpFzP/(B*B); - SpNa = -CpNa/B+C*BpNa/(B*B); - SpNb = -CpNb/B+C*BpNb/(B*B); - SpNc = -CpNc/B+C*BpNc/(B*B); - SpNd = -CpNd/B+C*BpNd/(B*B); - } - double DS; - DS = sqrt( SpI*dI*SpI*dI + SpFz*dFz*SpFz*dFz + SpFzP*dFzP*SpFzP*dFzP + - SpNa*SpNa*Na + SpNb*SpNb*Nb + SpNc*SpNc*Nc + SpNd*SpNd*Nd ); - - //////////////////////////////////////////////////////////////////////// - // SYSTEMATICS CALCULATION ///////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////// - // recalculate the basic quantities - double Imc = (a_sig + b_sig) / (a_sig + b_sig + c_sig + d_sig); - double dImc = sqrt(Imc*(1-Imc)/(a_sig + b_sig + c_sig + d_sig)); - double Fzmc = a_sig/b_sig; - double e =a_sig/(a_sig + b_sig); - double de = sqrt(e*(1-e)/(a_sig + b_sig)); - double alpha = de/(2.*Fzmc-e); - double dFzmc = alpha/(1-alpha); - double FzPmc = d_sig/c_sig; - double ep =d_sig/(c_sig + d_sig); - double dep = sqrt(ep*(1-ep)/(c_sig + d_sig)); - double alphap = dep/(2.*FzPmc-ep); - double dFzPmc = alphap/(1-alphap); - // - // calculate the K parameter as it is in MC: - double KMC = (d_qcd/c_qcd)/(a_qcd/b_qcd); - double SMC = a_sig + b_sig; - // - double dfz = Fz -Fzmc; - double di = I - Imc; - double dfzp = FzP - FzPmc; - double fk = fabs(1-KMC); - //////////////////////////////////////////////////////////////////////// - // ewk error: this error has to be inserted by hand - double fm = 1.-ewkerror; - double fp = 1.+ewkerror; - double S_EWK_PLUS = CalcABCD(Imc, Fzmc, FzPmc, KMC, fp, Na, Nb, Nc, Nd, Ea,Eb,Ec,Ed); - double S_EWK_MINUS = CalcABCD(Imc, Fzmc, FzPmc, KMC, fm, Na, Nb, Nc, Nd, Ea,Eb,Ec,Ed); - // error in K - double S_K= CalcABCD(Imc, Fzmc, FzPmc, 1., 1., Na, Nb, Nc, Nd, Ea,Eb,Ec,Ed); - // error in Fz - double S_FZ= CalcABCD(Imc, Fz, FzPmc, KMC, 1., Na, Nb, Nc, Nd, Ea,Eb,Ec,Ed); - // error in FzP - double S_FZP= CalcABCD(Imc, Fzmc, FzP, KMC, 1., Na, Nb, Nc, Nd, Ea,Eb,Ec,Ed); - // error in I - double S_I = CalcABCD(I, Fzmc, FzPmc, KMC, 1., Na, Nb, Nc, Nd, Ea,Eb,Ec,Ed); - // - // sanity tets - //cout << "Smc=" << SMC<< ", " << CalcABCD(Imc, Fzmc, FzPmc, KMC, 1., Na, Nb, Nc, Nd, Ea,Eb,Ec,Ed) - // << endl; - //abort(); - // - // ************ plots for the systematics calculation **************** - // ewk plot - int const POINTS = 10; - int const allPOINTS = 2*POINTS; - TGraph g_ewk(allPOINTS); - TGraph g_fz(allPOINTS); - TGraph g_fzp(allPOINTS); - TGraph g_k(allPOINTS); - TGraph g_i(allPOINTS); - // - double ewk_syst_min = EWK_SYST_MIN; // because this is just fraction - double i_syst_min = Imc*(1.-I_SYST_MIN); - double fz_syst_min = Fzmc*(1.-FZ_SYST_MIN); - double fzp_syst_min = FzPmc*(1.-FZP_SYST_MIN); - double k_syst_min = KMC*(1.-K_SYST_MIN); - // - double ewk_syst_max = EWK_SYST_MAX; // because this is just fraction - double i_syst_max = Imc*I_SYST_MAX; - double fz_syst_max = Fzmc*FZ_SYST_MAX; - double fzp_syst_max = FzPmc*FZP_SYST_MAX; - double k_syst_max = KMC*K_SYST_MAX; - // - // negative points - for (int i=0; iSetTitle("EWK Variation (%)"); - g_ewk.GetYaxis()->SetTitle(yaxis); - g_ewk.Draw("AL"); - c.Print("ewk_syst_variation.C"); - // - g_fz.SetLineWidth(2); - g_fz.GetXaxis()->SetTitle("F_{z} Variation (%)"); - g_fz.GetYaxis()->SetTitle(yaxis); - g_fz.Draw("AL"); - c.Print("fz_syst_variation.C"); - // - g_fzp.SetLineWidth(2); - g_fzp.GetXaxis()->SetTitle("F_{z}' Variation (%)"); - g_fzp.GetYaxis()->SetTitle(yaxis); - g_fzp.Draw("AL"); - c.Print("fzp_syst_variation.C"); - // - g_i.SetLineWidth(2); - g_i.GetXaxis()->SetTitle("I Variation (%)"); - g_i.GetYaxis()->SetTitle(yaxis); - g_i.Draw("AL"); - c.Print("i_syst_variation.C"); - // - g_k.SetLineWidth(2); - g_k.GetXaxis()->SetTitle("K Variation (%)"); - g_k.GetYaxis()->SetTitle(yaxis); - g_k.Draw("AL"); - c.Print("k_syst_variation.C"); - // - // ****************************************************************** - // - // - // - double err_ewk = std::max(fabs(SMC-S_EWK_PLUS),fabs(SMC-S_EWK_MINUS)); - double err_fz = fabs(SMC-S_FZ); - double err_fzp = fabs(SMC-S_FZP); - double err_i = fabs(SMC-S_I); - double err_k = fabs(SMC-S_K); - // - double DS_syst = sqrt(err_ewk*err_ewk + err_fz*err_fz + err_fzp*err_fzp+ - err_i*err_i + err_k*err_k); - // - cout << "********************************************************" << endl; - cout << "Signal Prediction: " << S << "+-" << DS << "(stat) +-" - << DS_syst << "(syst)" << endl; - cout << "stat error: " << 100.*DS/S <<"%" << endl; - cout << "syt error: " << 100.*DS_syst/S<< "%" << endl; - cout << "********************************************************" << endl; - cout << "Parameters used in calculation: " << endl; - cout << "I= " << I << "+-" << dI << endl; - cout << "Fz= " << Fz << "+-" << dFz << endl; - cout << "FzP=" << FzP << "+-" << dFzP << endl; - cout << "EWK error assumed to be: " << ewkerror << endl; - cout << endl; - cout << "ABCD Regions population:" << endl; - cout << "A: N=" << Na << ", sig=" << a_sig << ", qcd=" << a_qcd - << ", ewk=" << a_ewk << endl; - cout << "B: N=" << Nb << ", sig=" << b_sig << ", qcd=" << b_qcd - << ", ewk=" << b_ewk << endl; - cout << "C: N=" << Nc << ", sig=" << c_sig << ", qcd=" << c_qcd - << ", ewk=" << c_ewk << endl; - cout << "D: N=" << Nd << ", sig=" << d_sig << ", qcd=" << d_qcd - << ", ewk=" << d_ewk << endl; - cout << endl; - cout << "Parameters from MC: " << endl; - cout << "I= " << Imc << "+-" << dImc << endl; - cout << "Fz= " << Fzmc << "+-" << dFzmc << endl; - cout << "FzP=" << FzPmc << "+-" << dFzPmc << endl; - cout << endl; - cout << "Real value of K=" << KMC << endl; - cout << "Real value of Signal=" << SMC << endl; - cout << endl; - cout << "Difference Measured - MC value (% wrt MC value except K=1): " - << endl; - cout << "Fz : " << dfz << ", (" << dfz*100./Fzmc << "%)" << endl; - cout << "FzP: " << dfzp << ", (" << dfzp*100./FzPmc << "%)" << endl; - cout << "I : " << di << ", (" << di*100./Imc << "%)" << endl; - cout << "K : " << fk << ", (" << fk*100./1. << "%)" << endl; - cout << endl; - // - cout << "DETAILS OF THE CALCULATION" << endl; - cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl; - cout << "Statistical Error Summary: " << endl; - cout << "due to Fz = "<< SpFz*dFz<< ", ("<-0.75) { // select value -0.5 that gives the - // string parser - cout << "=======================================================" << endl; - cout << "Calculating ABCD Result and Stat Error Assuming MC ONLY" << endl; - cout << "=======================================================" << endl; - cout << "All input parameters that the user have inserted will be " - << "ignored and recalculated from MC" << endl; - cout << "This option will not give you systematics estimation" << endl; - // recalculate the basic quantities - I = (a_sig + b_sig) / (a_sig + b_sig + c_sig + d_sig); - dI = sqrt(I*(1-I)/(a_sig + b_sig + c_sig + d_sig)); - Fz = a_sig/b_sig; - double e =a_sig/(a_sig + b_sig); - double de = sqrt(e*(1-e)/(a_sig + b_sig)); - double alpha = de/(2.*Fz-e); - dFz = alpha/(1-alpha); - FzP = d_sig/c_sig; - double ep =d_sig/(c_sig + d_sig); - double dep = sqrt(ep*(1-ep)/(c_sig + d_sig)); - double alphap = dep/(2.*FzP-ep); - dFzP = alphap/(1-alphap); - // - double KMC = (d_qcd/c_qcd)/(a_qcd/b_qcd); - // - // now everything is done from data + input - double A = (1.0-I)*(FzP-Fz); - double B = I*(FzP+1.0)*(FzP*(c_sig+c_qcd)-(d_sig+d_qcd)) + - (1+Fz)*(1-I)*((a_sig+a_qcd)-dFzP*(b_sig+b_qcd)); - double C = I*(1.+Fz)*(1.+FzP)*((d_sig+d_qcd)*(b_sig+b_qcd) - - (a_sig+a_qcd)*(c_sig+c_qcd)); - // - // signal calculation: - double S = Trionym(A,B,C, a_sig+b_sig); - - // the errors now: - // calculate the statistical error now: - double ApI=0, ApFz=0, ApFzP=0, ApNa=0, ApNb=0, ApNc=0, ApNd=0; - double BpI=0, BpFz=0, BpFzP=0, BpNa=0, BpNb=0, BpNc=0, BpNd=0; - double CpI=0, CpFz=0, CpFzP=0, CpNa=0, CpNb=0, CpNc=0, CpNd=0; - double SpI=0, SpFz=0, SpFzP=0, SpNa=0, SpNb=0, SpNc=0, SpNd=0; - // - double Na = a_sig+a_qcd+a_ewk, Nb = b_sig+b_qcd+b_ewk; - double Nc=c_sig+c_qcd+c_ewk, Nd = d_sig+d_qcd+d_ewk; - double Ea = a_ewk, Eb = b_ewk, Ec=c_ewk, Ed = d_ewk; - if (A != 0) { - - ApI = -(FzP-Fz); - ApFz = -(1.0-I); - ApFzP = (1.0-I); - ApNa = 0.0; - ApNb = 0.0; - ApNc = 0.0; - ApNd = 0.0; - - BpI = (FzP+1.0)*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0+Fz)*((Na-Ea)-FzP*(Nb-Eb)); - BpFz = I*(FzP+1.0)*(Nc-Ec)+(1.0-I)*((Na-Ea)-FzP*(Nb-Eb)); - BpFzP = I*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0-I)*(1.0+Fz)*(Nb-Eb); - BpNa = (1.0-I)*(1.0+Fz); - BpNb = -(1.0-I)*(1.0+Fz)*FzP; - BpNc = I*(FzP+1.0)*Fz; - BpNd = -I*(FzP+1.0); - - CpI = (1.0+Fz)*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFz = I*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFzP = I*(1.0+Fz)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpNa = -I*(1.0+Fz)*(1.0+FzP)*(Nc-Ec); - CpNb = I*(1.0+Fz)*(1.0+FzP)*(Nd-Ed); - CpNc = -I*(1.0+Fz)*(1.0+FzP)*(Na-Ea); - CpNd = I*(1.0+Fz)*(1.0+FzP)*(Nb-Eb); - - SpI = (-BpI + (B*BpI -2.0*ApI*C -2.0*A*CpI) /fabs(2.0*A*S+B)- 2.0*ApI*S) /(2.0*A); - SpFz = (-BpFz + (B*BpFz -2.0*ApFz*C -2.0*A*CpFz) /fabs(2.0*A*S+B)- 2.0*ApFz*S) /(2.0*A); - SpFzP = (-BpFzP + (B*BpFzP -2.0*ApFzP*C -2.0*A*CpFzP)/fabs(2.0*A*S+B)- 2.0*ApFzP*S)/(2.0*A); - SpNa = (-BpNa + (B*BpNa -2.0*ApNa*C -2.0*A*CpNa) /fabs(2.0*A*S+B)- 2.0*ApNa*S) /(2.0*A); - SpNb = (-BpNb + (B*BpNb -2.0*ApNb*C -2.0*A*CpNb) /fabs(2.0*A*S+B)- 2.0*ApNb*S) /(2.0*A); - SpNc = (-BpNc + (B*BpNc -2.0*ApNc*C -2.0*A*CpNc) /fabs(2.0*A*S+B)- 2.0*ApNc*S) /(2.0*A); - SpNd = (-BpNd + (B*BpNd -2.0*ApNd*C -2.0*A*CpNd) /fabs(2.0*A*S+B)- 2.0*ApNd*S) /(2.0*A); - } - else { - BpI = (FzP+1.0)*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0+Fz)*((Na-Ea)-FzP*(Nb-Eb)); - BpFz = I*(FzP+1.0)*(Nc-Ec)+(1.0-I)*((Na-Ea)-FzP*(Nb-Eb)); - BpFzP = I*(Fz*(Nc-Ec)-(Nd-Ed))-(1.0-I)*(1.0+Fz)*(Nb-Eb); - BpNa = (1.0-I)*(1.0+Fz); - BpNb = -(1.0-I)*(1.0+Fz)*FzP; - BpNc = I*(FzP+1.0)*Fz; - BpNd = -I*(FzP+1.0); - - CpI = (1.0+Fz)*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFz = I*(1.0+FzP)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpFzP = I*(1.0+Fz)*((Nd-Ed)*(Nb-Eb)-(Na-Ea)*(Nc-Ec)); - CpNa = -I*(1.0+Fz)*(1.0+FzP)*(Nc-Ec); - CpNb = I*(1.0+Fz)*(1.0+FzP)*(Nd-Ed); - CpNc = -I*(1.0+Fz)*(1.0+FzP)*(Na-Ea); - CpNd = I*(1.0+Fz)*(1.0+FzP)*(Nb-Eb); - - SpI = -CpI/B+C*BpI/(B*B); - SpFz = -CpFz/B+C*BpFz/(B*B); - SpFzP = -CpFzP/B+C*BpFzP/(B*B); - SpNa = -CpNa/B+C*BpNa/(B*B); - SpNb = -CpNb/B+C*BpNb/(B*B); - SpNc = -CpNc/B+C*BpNc/(B*B); - SpNd = -CpNd/B+C*BpNd/(B*B); - } - double DS; - DS = sqrt( SpI*dI*SpI*dI + SpFz*dFz*SpFz*dFz + SpFzP*dFzP*SpFzP*dFzP + - SpNa*SpNa*Na + SpNb*SpNb*Nb + SpNc*SpNc*Nc + SpNd*SpNd*Nd ); - // warning: S here denotes the method prediction .......... - cout << "********************************************************" << endl; - cout << "Signal Prediction: " << S << "+-" << DS << "(stat)" << endl; - cout << "********************************************************" << endl; - cout << "Parameters used in calculation: " << endl; - cout << "I= " << I << "+-" << dI << endl; - cout << "Fz= " << Fz << "+-" << dFz << endl; - cout << "FzP=" << FzP << "+-" << dFzP << endl; - cout << endl; - cout << "ABCD Regions population:" << endl; - cout << "A: N=" << Na << ", sig=" << a_sig << ", qcd=" << a_qcd - << ", ewk=" << a_ewk << endl; - cout << "B: N=" << Nb << ", sig=" << b_sig << ", qcd=" << b_qcd - << ", ewk=" << b_ewk << endl; - cout << "C: N=" << Nc << ", sig=" << c_sig << ", qcd=" << c_qcd - << ", ewk=" << c_ewk << endl; - cout << "D: N=" << Nd << ", sig=" << d_sig << ", qcd=" << d_qcd - << ", ewk=" << d_ewk << endl; - cout << "K value from MC: " << KMC << endl; - cout << endl; - cout << "Statistical Error Summary: " << endl; - cout << "due to Fz = "<< SpFz*dFz<< ", ("< file, vector type, - vector weight, TString xtitle) -{ - gROOT->Reset(); - gROOT->ProcessLine(".L tdrstyle.C"); - gROOT->ProcessLine("setTDRStyle()"); - // automatic recognition of histogram dimension - int NBins = 0; double min = 0; double max = -1; - for (int i=0; i< (int) file.size(); ++i) { - if (weight[i]>0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - NBins = h->GetNbinsX(); - min = h->GetBinLowEdge(1); - max = h->GetBinLowEdge(NBins+1); - break; - } - } - if (NBins ==0 || (max0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_wenu.Add(h, weight[i]); - } - } - // Bkgs .............................................................. - // - // QCD light flavor - TH1F h_qcd("h_qcd", "h_qcd", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_qcd.Add(h, weight[i]); - } - } - // QCD heavy flavor - TH1F h_bce("h_bce", "h_bce", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_bce.Add(h, weight[i]); - } - } - // QCD Gjets - TH1F h_gj("h_gj", "h_gj", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_gj.Add(h, weight[i]); - } - } - // Other EWK bkgs - TH1F h_ewk("h_ewk", "h_ewk", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_ewk.Add(h, weight[i]); - } - } - // - // ok now decide how to plot them: - // first the EWK bkgs - h_ewk.SetFillColor(3); - // - // then the gjets - h_gj.Add(&h_ewk); - h_gj.SetFillColor(1); - // thent the QCD dijets - h_bce.Add(&h_qcd); - h_bce.Add(&h_gj); - h_bce.SetFillColor(2); - // and the signal at last - TH1F h_tot("h_tot", "h_tot", NBins, min, max); - h_tot.Add(&h_bce); - h_tot.Add(&h_wenu); - h_wenu.SetLineColor(4); h_wenu.SetLineWidth(2); - // - TCanvas c; - h_tot.GetXaxis()->SetTitle(xtitle); - h_tot.Draw("PE"); - h_bce.Draw("same"); - h_gj.Draw("same"); - h_ewk.Draw("same"); - h_wenu.Draw("same"); - - // the Legend - TLegend leg(0.6,0.65,0.95,0.92); - if (wzsignal == "wenu") - leg.AddEntry(&h_wenu, "W#rightarrow e#nu","l"); - else - leg.AddEntry(&h_wenu, "Z#rightarrow ee","l"); - leg.AddEntry(&h_tot, "Signal + Bkg","p"); - leg.AddEntry(&h_bce, "dijets","f"); - leg.AddEntry(&h_gj, "#gamma + jets","f"); - leg.AddEntry(&h_ewk, "EWK+t#bar t", "f"); - leg.Draw("same"); - - c.Print("test.png"); - - - -} - - -// -// reads the ABCD string and returns its value -// value is whatever it exists after the = sign and -// before the comma or the parenthesis -// -// if the string is not contained returns -1 -// if there is no value, but the string is contained -0.5 -// if there is an error in the algorithm return -99 and print error -// else returns its value -double searchABCDstring(TString abcdString, TString keyword) -{ - int size = keyword.Sizeof(); - int existsEntry = abcdString.Index(keyword); - // - if (existsEntry==-1) return -1.; - // - TString previousVal = abcdString(existsEntry-1); - if (!(previousVal == "," || previousVal == " " || - previousVal == "(" )) return -1.; - // - TString afterVal = abcdString(existsEntry+size-1); - //std::cout << "afterVal=" << afterVal << std::endl; - if (afterVal =="," || afterVal==")") return -0.5; - else if (afterVal != "=") return -1.; - // - // now find the comma or the parenthesis after the = sign - int comma = abcdString.Index(",",existsEntry); - //std::cout << "first comma=" << comma << std::endl; - if (comma<0) comma = abcdString.Index(")",existsEntry); - if (comma<0) { - std::cout << "Error in parcing abcd line, chech syntax " - << std::endl; - return -99.; - } - TString svalue=abcdString(existsEntry+size,comma-existsEntry-size); - std::cout << "Found ABCD parameter "<< keyword - << " with value " << svalue << endl; - // convert this to a float - double value = svalue.Atof(); - return value; - -} - - -double Trionym(double a, double b, double c, double sum) -{ - if (a==0) { - return -c/b; - } - double D2 = b*b - 4.*a*c; - //return (-b + sqrt(D2)) / (2.*a); - if (D2 > 0) { - double s1 = (-b + sqrt(D2)) / (2.*a); - double s2 = (-b - sqrt(D2)) / (2.*a); - double solution = fabs(s1-sum)SetPadGridX(gridOn); - tdrStyle->SetPadGridY(gridOn); -} - -// fixOverlay: Redraws the axis - -void fixOverlay() { - gPad->RedrawAxis(); -} - -void setTDRStyle() { - TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); - -// For the canvas: - tdrStyle->SetCanvasBorderMode(0); - tdrStyle->SetCanvasColor(kWhite); - tdrStyle->SetCanvasDefH(600); //Height of canvas - tdrStyle->SetCanvasDefW(600); //Width of canvas - tdrStyle->SetCanvasDefX(0); //POsition on screen - tdrStyle->SetCanvasDefY(0); - -// For the Pad: - tdrStyle->SetPadBorderMode(0); - // tdrStyle->SetPadBorderSize(Width_t size = 1); - tdrStyle->SetPadColor(kWhite); - tdrStyle->SetPadGridX(false); - tdrStyle->SetPadGridY(false); - tdrStyle->SetGridColor(0); - tdrStyle->SetGridStyle(3); - tdrStyle->SetGridWidth(1); - -// For the frame: - tdrStyle->SetFrameBorderMode(0); - tdrStyle->SetFrameBorderSize(1); - tdrStyle->SetFrameFillColor(0); - tdrStyle->SetFrameFillStyle(0); - tdrStyle->SetFrameLineColor(1); - tdrStyle->SetFrameLineStyle(1); - tdrStyle->SetFrameLineWidth(1); - -// For the histo: - // tdrStyle->SetHistFillColor(1); - // tdrStyle->SetHistFillStyle(0); - tdrStyle->SetHistLineColor(1); - tdrStyle->SetHistLineStyle(0); - tdrStyle->SetHistLineWidth(1); - // tdrStyle->SetLegoInnerR(Float_t rad = 0.5); - // tdrStyle->SetNumberContours(Int_t number = 20); - - tdrStyle->SetEndErrorSize(2); -// tdrStyle->SetErrorMarker(20); - tdrStyle->SetErrorX(0.); - - tdrStyle->SetMarkerStyle(20); - -//For the fit/function: - tdrStyle->SetOptFit(1); - tdrStyle->SetFitFormat("5.4g"); - tdrStyle->SetFuncColor(2); - tdrStyle->SetFuncStyle(1); - tdrStyle->SetFuncWidth(1); - -//For the date: - tdrStyle->SetOptDate(0); - // tdrStyle->SetDateX(Float_t x = 0.01); - // tdrStyle->SetDateY(Float_t y = 0.01); - -// For the statistics box: - tdrStyle->SetOptFile(0); - tdrStyle->SetOptStat(0); // To display the mean and RMS: SetOptStat("mr"); - tdrStyle->SetStatColor(kWhite); - tdrStyle->SetStatFont(42); - tdrStyle->SetStatFontSize(0.025); - tdrStyle->SetStatTextColor(1); - tdrStyle->SetStatFormat("6.4g"); - tdrStyle->SetStatBorderSize(1); - tdrStyle->SetStatH(0.1); - tdrStyle->SetStatW(0.15); - // tdrStyle->SetStatStyle(Style_t style = 1001); - // tdrStyle->SetStatX(Float_t x = 0); - // tdrStyle->SetStatY(Float_t y = 0); - -// Margins: - tdrStyle->SetPadTopMargin(0.05); - tdrStyle->SetPadBottomMargin(0.12); - tdrStyle->SetPadLeftMargin(0.15); - tdrStyle->SetPadRightMargin(0.04); - -// For the Global title: - - tdrStyle->SetOptTitle(0); - tdrStyle->SetTitleFont(42); - tdrStyle->SetTitleColor(1); - tdrStyle->SetTitleTextColor(1); - tdrStyle->SetTitleFillColor(10); - tdrStyle->SetTitleFontSize(0.05); - // tdrStyle->SetTitleH(0); // Set the height of the title box - // tdrStyle->SetTitleW(0); // Set the width of the title box - // tdrStyle->SetTitleX(0); // Set the position of the title box - // tdrStyle->SetTitleY(0.985); // Set the position of the title box - // tdrStyle->SetTitleStyle(Style_t style = 1001); - // tdrStyle->SetTitleBorderSize(2); - -// For the axis titles: - - tdrStyle->SetTitleColor(1, "XYZ"); - tdrStyle->SetTitleFont(42, "XYZ"); - tdrStyle->SetTitleSize(0.06, "XYZ"); - // tdrStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size? - // tdrStyle->SetTitleYSize(Float_t size = 0.02); - tdrStyle->SetTitleXOffset(0.9); - tdrStyle->SetTitleYOffset(1.25); - // tdrStyle->SetTitleOffset(1.1, "Y"); // Another way to set the Offset - -// For the axis labels: - - tdrStyle->SetLabelColor(1, "XYZ"); - tdrStyle->SetLabelFont(42, "XYZ"); - tdrStyle->SetLabelOffset(0.007, "XYZ"); - tdrStyle->SetLabelSize(0.05, "XYZ"); - -// For the axis: - - tdrStyle->SetAxisColor(1, "XYZ"); - tdrStyle->SetStripDecimals(kTRUE); - tdrStyle->SetTickLength(0.03, "XYZ"); - tdrStyle->SetNdivisions(510, "XYZ"); - tdrStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame - tdrStyle->SetPadTickY(1); - -// Change for log plots: - tdrStyle->SetOptLogx(0); - tdrStyle->SetOptLogy(0); - tdrStyle->SetOptLogz(0); - -// Postscript options: - tdrStyle->SetPaperSize(20.,20.); - // tdrStyle->SetLineScalePS(Float_t scale = 3); - // tdrStyle->SetLineStyleString(Int_t i, const char* text); - // tdrStyle->SetHeaderPS(const char* header); - // tdrStyle->SetTitlePS(const char* pstitle); - - // tdrStyle->SetBarOffset(Float_t baroff = 0.5); - // tdrStyle->SetBarWidth(Float_t barwidth = 0.5); - // tdrStyle->SetPaintTextFormat(const char* format = "g"); - // tdrStyle->SetPalette(Int_t ncolors = 0, Int_t* colors = 0); - // tdrStyle->SetTimeOffset(Double_t toffset); - // tdrStyle->SetHistMinimumZero(kTRUE); - - tdrStyle->cd(); - -} diff --git a/ElectroWeakAnalysis/WENu/python/simpleCutBasedElectronIDSpring10_cfi.py b/ElectroWeakAnalysis/WENu/python/simpleCutBasedElectronIDSpring10_cfi.py deleted file mode 100644 index 88f7ce351171b..0000000000000 --- a/ElectroWeakAnalysis/WENu/python/simpleCutBasedElectronIDSpring10_cfi.py +++ /dev/null @@ -1,164 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -## Electron ID Based on Simple Cuts: Spring10 MC tuned selections -# -# Instructions on how to use this file -# ==================================== -# -# The selections that are implemented in this python cfg are -# explained in this twiki page: -# https://twiki.cern.ch/twiki/bin/view/CMS/SimpleCutBasedEleID -# In summary, they come in 6 different tightness levels. For -# each tightness, the user can select whether they want -# combined isolation or relative isolations. -# -# In order to use this cfg file you have to include it from the -# python directory that you have placed it, clone some selection -# of your preference and run it in your sequence -# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -# from ElectroWeakAnalysis.WENu.simpleCutBasedElectronID_cfi import * -# -# simpleEleId_95relIso = simpleCutBasedElectronID.clone() -# simpleEleId_95relIso.electronQuality = '_95relIso_' -# mySequence = cms.Sequence(...+...+..+simpleEleId95relIso+...) -# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -# Warning: make sure that you use the correct tags for the -# RecoEgamma/ElectronIdentification package -# consult this twiki to obtain the latest information: -# -# https://twiki.cern.ch/twiki/bin/view/CMS/SimpleCutBasedEleID -# -# this version of the file needs -# V00-03-07-03 RecoEgamma/ElectronIdentification - -simpleCutBasedElectronID = cms.EDProducer("EleIdCutBasedExtProducer", - -# import here your collections - src = cms.InputTag("gsfElectrons"), - #reducedBarrelRecHitCollection = cms.InputTag("ecalRecHit","EcalRecHitsEB"), - #reducedEndcapRecHitCollection = cms.InputTag("ecalRecHit","EcalRecHitsEE"), - # Spring10 uses these names: - reducedBarrelRecHitCollection = cms.InputTag("reducedEcalRecHitsEB"), - reducedEndcapRecHitCollection = cms.InputTag("reducedEcalRecHitsEE"), - # if you want the vertices or the offline beam spot - verticesCollection = cms.InputTag("offlineBeamSpot"), - #dataMagneticFieldSetUp = cms.bool(False), - #dcsTag = cms.InputTag("scalersRawToDigi"), - algorithm = cms.string('eIDCB'), - - #electronIDType: robust for the simple Cut-Based - #electronQuality: see later - #electronVersion: use V03 with the offline beam spot - electronIDType = cms.string('robust'), - electronQuality = cms.string('test'), - electronVersion = cms.string('V04'), - -#### -#### Selections with Relative Isolation - robust95relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(1.5e-01, 1.0e-02, 8.0e-01, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 1.5e-01, - 2.0e+00, 1.2e-01, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), -# endcap = cms.vdouble(7.0e-02, 3.0e-02, 7.0e-01, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 8.0e-02, -# 6.0e-02, 5.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), - endcap = cms.vdouble(7.0e-02, 3.0e-02, 7.0e-01, 1.0e-02, -1, -1, 9999., 9999., 9999., 9999., 9999., 8.0e-02, - 6.0e-02, 5.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), - ), - robust90relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(1.2e-01, 1.0e-02, 8.0e-01, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 1.2e-01, - 9.0e-02, 1.0e-01, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(5.0e-02, 3.0e-02, 7.0e-01, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, -# 6.0e-02, 3.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - endcap = cms.vdouble(5.0e-02, 3.0e-02, 7.0e-01, 9.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, - 6.0e-02, 3.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - ), - robust85relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(4.0e-02, 1.0e-02, 6.0e-02, 6.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9.0e-02, - 8.0e-02, 1.0e-01, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 4.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, -# 5.0e-02, 2.5e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 4.0e-02, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, - 5.0e-02, 2.5e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - ), - robust80relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(4.0e-02, 1.0e-02, 6.0e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9.0e-02, - 7.0e-02, 1.0e-01, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 3.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 4.0e-02, -# 5.0e-02, 2.5e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 3.0e-02, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 4.0e-02, - 5.0e-02, 2.5e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - # 70% point modified with restricting cuts to physical values - robust70relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(2.5e-02, 1.0e-02, 3.0e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, - 6.0e-02, 3.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 2.5e-02, -# 2.5e-02, 2.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 5.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 2.5e-02, - 2.5e-02, 2.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - # 60% point modified with restricting cuts to physical values - robust60relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(2.5e-02, 1.0e-02, 2.5e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 4.0e-02, - 4.0e-02, 3.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 2.5e-02, -# 2.0e-02, 2.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 5.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 2.5e-02, - 2.0e-02, 2.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - -#### -#### Selections with Combined Isolation - - robust95cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(1.5e-01, 1.0e-02, 8.0e-01, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 1.5e-01, 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), -# endcap = cms.vdouble(7.0e-02, 3.0e-02, 7.0e-01, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 1.0e-01, 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), - endcap = cms.vdouble(7.0e-02, 3.0e-02, 7.0e-01, 1.0e-02, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 1.0e-01, 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), - ), - robust90cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(1.2e-01, 1.0e-02, 8.0e-01, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 1.0e-01, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(5.0e-02, 3.0e-02, 7.0e-01, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 7.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - endcap = cms.vdouble(5.0e-02, 3.0e-02, 7.0e-01, 9.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 7.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - ), - robust85cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(4.0e-02, 1.0e-02, 6.0e-02, 6.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 9.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 4.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 6.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 4.0e-02, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 6.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - ), - robust80cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(4.0e-02, 1.0e-02, 6.0e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 7.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 3.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 6.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 3.0e-02, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 6.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - # 70% point modified with restricting cuts to physical values - robust70cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(2.5e-02, 1.0e-02, 3.0e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 4.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 3.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 5.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 3.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - # 60% point modified with restricting cuts to physical values - robust60cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(2.5e-02, 1.0e-02, 2.5e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 3.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 2.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 5.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 2.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - -) - diff --git a/ElectroWeakAnalysis/WENu/python/simpleCutBasedSpring10SelectionBlocks_cfi.py b/ElectroWeakAnalysis/WENu/python/simpleCutBasedSpring10SelectionBlocks_cfi.py deleted file mode 100644 index e9cf485ad85d2..0000000000000 --- a/ElectroWeakAnalysis/WENu/python/simpleCutBasedSpring10SelectionBlocks_cfi.py +++ /dev/null @@ -1,294 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -######################################################### -## 95% -selection_95relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(1.5e-01), - ecalIso_EB = cms.untracked.double(2.0e+00), - hcalIso_EB = cms.untracked.double(1.2e-01), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(8.0e-01), - deta_EB = cms.untracked.double(7.0e-03), - hoe_EB = cms.untracked.double(1.5e-01), - cIso_EB = cms.untracked.double(10000.), - - trackIso_EE = cms.untracked.double(8.0e-02), - ecalIso_EE = cms.untracked.double(6.0e-02), - hcalIso_EE = cms.untracked.double(5.0e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(7.0e-01), - deta_EE = cms.untracked.double(1.0e-02), - hoe_EE = cms.untracked.double(7.0e-02), - cIso_EE = cms.untracked.double(10000. ), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -selection_95cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(8.0e-01), - deta_EB = cms.untracked.double(7.0e-03), - hoe_EB = cms.untracked.double(1.5e-01), - cIso_EB = cms.untracked.double(1.5e-01), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(7.0e-01), - deta_EE = cms.untracked.double(1.0e-02), - hoe_EE = cms.untracked.double(7.0e-02), - cIso_EE = cms.untracked.double(1.0e-01), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -######################################################### -## 90% -selection_90relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(1.2e-01), - ecalIso_EB = cms.untracked.double(9.0e-02), - hcalIso_EB = cms.untracked.double(1.0e-01), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(8.0e-01), - deta_EB = cms.untracked.double(7.0e-03), - hoe_EB = cms.untracked.double(1.2e-01), - cIso_EB = cms.untracked.double(10000. ), - - trackIso_EE = cms.untracked.double(5.0e-02), - ecalIso_EE = cms.untracked.double(6.0e-02), - hcalIso_EE = cms.untracked.double(3.0e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(7.0e-01), - deta_EE = cms.untracked.double(9.0e-03), - hoe_EE = cms.untracked.double(5.0e-02), - cIso_EE = cms.untracked.double(10000. ), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -selection_90cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(8.0e-01), - deta_EB = cms.untracked.double(7.0e-03), - hoe_EB = cms.untracked.double(1.2e-01), - cIso_EB = cms.untracked.double(1.0e-01), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(7.0e-01), - deta_EE = cms.untracked.double(9.0e-03), - hoe_EE = cms.untracked.double(5.0e-02), - cIso_EE = cms.untracked.double(7.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -######################################################### -## 85% -selection_85relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(9.0e-02), - ecalIso_EB = cms.untracked.double(8.0e-02), - hcalIso_EB = cms.untracked.double(1.0e-01), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(6.0e-02), - deta_EB = cms.untracked.double(6.0e-03), - hoe_EB = cms.untracked.double(4.0e-02), - cIso_EB = cms.untracked.double(10000. ), - - trackIso_EE = cms.untracked.double(5.0e-02), - ecalIso_EE = cms.untracked.double(5.0e-02), - hcalIso_EE = cms.untracked.double(2.5e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(4.0e-02), - deta_EE = cms.untracked.double(7.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(10000. ), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -selection_85cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(6.0e-02), - deta_EB = cms.untracked.double(6.0e-03), - hoe_EB = cms.untracked.double(4.0e-02), - cIso_EB = cms.untracked.double(9.0e-02), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(4.0e-02), - deta_EE = cms.untracked.double(7.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(6.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -######################################################### -## 80% -selection_80relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(9.0e-02), - ecalIso_EB = cms.untracked.double(7.0e-02), - hcalIso_EB = cms.untracked.double(1.0e-01), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(6.0e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(4.0e-02), - cIso_EB = cms.untracked.double(100000.), - - trackIso_EE = cms.untracked.double(4.0e-02), - ecalIso_EE = cms.untracked.double(5.0e-02), - hcalIso_EE = cms.untracked.double(2.5e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(3.0e-02), - deta_EE = cms.untracked.double(7.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(100000.), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -selection_80cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(6.0e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(4.0e-02), - cIso_EB = cms.untracked.double(7.0e-02), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(3.0e-02), - deta_EE = cms.untracked.double(7.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(6.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -######################################################### -## 70% corrected with lower limits to cut values -selection_70relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(5.0e-02), - ecalIso_EB = cms.untracked.double(6.0e-02), - hcalIso_EB = cms.untracked.double(3.0e-02), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(3.0e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(2.5e-02), - cIso_EB = cms.untracked.double(100000.), - - trackIso_EE = cms.untracked.double(2.5e-02), - ecalIso_EE = cms.untracked.double(2.5e-02), - hcalIso_EE = cms.untracked.double(2.0e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(2.0e-02), - deta_EE = cms.untracked.double(5.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(100000.), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -selection_70cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(3.0e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(2.5e-02), - cIso_EB = cms.untracked.double(4.0e-02), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(2.0e-02), - deta_EE = cms.untracked.double(5.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(3.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -######################################################### -## 60% corrected with lower limits to cut values -selection_60relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(4.0e-02), - ecalIso_EB = cms.untracked.double(4.0e-02), - hcalIso_EB = cms.untracked.double(3.0e-02), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(2.5e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(2.5e-02), - cIso_EB = cms.untracked.double(100000.), - - trackIso_EE = cms.untracked.double(2.5e-02), - ecalIso_EE = cms.untracked.double(2.0e-02), - hcalIso_EE = cms.untracked.double(2.0e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(2.0e-02), - deta_EE = cms.untracked.double(5.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(100000.), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -selection_60cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(2.5e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(2.5e-02), - cIso_EB = cms.untracked.double(3.0e-02), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(2.0e-02), - deta_EE = cms.untracked.double(5.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(2.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -######################################################### - - - diff --git a/ElectroWeakAnalysis/WENu/python/simpleEleIdSequence_cff.py b/ElectroWeakAnalysis/WENu/python/simpleEleIdSequence_cff.py deleted file mode 100644 index ebe9ea6e177a6..0000000000000 --- a/ElectroWeakAnalysis/WENu/python/simpleEleIdSequence_cff.py +++ /dev/null @@ -1,58 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.WENu.simpleCutBasedElectronIDSpring10_cfi import * - - -simpleEleId95relIso = simpleCutBasedElectronID.clone() -simpleEleId95relIso.electronQuality = '95relIso' - -simpleEleId90relIso = simpleCutBasedElectronID.clone() -simpleEleId90relIso.electronQuality = '90relIso' - -simpleEleId85relIso = simpleCutBasedElectronID.clone() -simpleEleId85relIso.electronQuality = '85relIso' - -simpleEleId80relIso = simpleCutBasedElectronID.clone() -simpleEleId80relIso.electronQuality = '80relIso' - -simpleEleId70relIso = simpleCutBasedElectronID.clone() -simpleEleId70relIso.electronQuality = '70relIso' - -simpleEleId60relIso = simpleCutBasedElectronID.clone() -simpleEleId60relIso.electronQuality = '60relIso' - - -simpleEleId95cIso = simpleCutBasedElectronID.clone() -simpleEleId95cIso.electronQuality = '95cIso' - -simpleEleId90cIso = simpleCutBasedElectronID.clone() -simpleEleId90cIso.electronQuality = '90cIso' - -simpleEleId85cIso = simpleCutBasedElectronID.clone() -simpleEleId85cIso.electronQuality = '85cIso' - -simpleEleId80cIso = simpleCutBasedElectronID.clone() -simpleEleId80cIso.electronQuality = '80cIso' - -simpleEleId70cIso = simpleCutBasedElectronID.clone() -simpleEleId70cIso.electronQuality = '70cIso' - -simpleEleId60cIso = simpleCutBasedElectronID.clone() -simpleEleId60cIso.electronQuality = '60cIso' - - - -simpleEleIdSequence = cms.Sequence(simpleEleId95relIso+ - simpleEleId90relIso+ - simpleEleId85relIso+ - simpleEleId80relIso+ - simpleEleId70relIso+ - simpleEleId60relIso+ - simpleEleId95cIso+ - simpleEleId90cIso+ - simpleEleId85cIso+ - simpleEleId80cIso+ - simpleEleId70cIso+ - simpleEleId60cIso - ) - diff --git a/ElectroWeakAnalysis/WENu/src/GenPurposeSkimmerData.cc b/ElectroWeakAnalysis/WENu/src/GenPurposeSkimmerData.cc deleted file mode 100644 index bc56d0f60b6c6..0000000000000 --- a/ElectroWeakAnalysis/WENu/src/GenPurposeSkimmerData.cc +++ /dev/null @@ -1,1032 +0,0 @@ -// -*- C++ -*- -// -// Package: GenPurposeSkimmerData -// Class: GenPurposeSkimmerData -// -/**\class GenPurposeSkimmerData GenPurposeSkimmerData.cc - - - Description: - =============== - Implementation: - =============== - This is a general purpose Skimmer - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - It reads datasets and keeps only the analysis-relevant information - and stores it in a simple TTree. - Code Inspired by the T&P code by Claire Timlin - Note: a similar code to read PAT tuples is already available - - History: -16.10.08: first version -24.10.08: added ECAL/HCAL isolation + sigma ieta ieta (S. Harper) -30.10.08: all isolations use isodeposits - all parameters are untracked -18.03.09: modified to store just the 4 highest ET gsf electrons in the event -02.04.09: version for redigi including particle flow MET + gen level MET -04.04.09: version for redigi including tcMET, MET eta dropped -22.04.09: version for redigi including MET Type1 corrections -23.04.09: version completely changes to read from PAT....................... -07.09.09: version for 3_1_2 version -08.09.09: version for 3_1_2 that keeps all the trigger info and reduced - number of the other collections - - - Further Information/Inquiries: - Nikos Rompotis - Imperial College London - Nikolaos.Rompotis@Cern.ch - -*/ -// -// Original Author: Nikolaos Rompotis -// Created: Thu Oct 16 17:11:55 CEST 2008 -// -// - -#include "ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmerData.h" - -// -// -// -#include "FWCore/Common/interface/TriggerNames.h" -// -// -GenPurposeSkimmerData::GenPurposeSkimmerData(const edm::ParameterSet &ps) - -{ - // - // I N P U T P A R A M E T E R S - // - // output file name - outputFile_ = ps.getUntrackedParameter("outputfile"); - // - // Electron Collection - ElectronCollectionToken_ = - consumes(ps.getUntrackedParameter("ElectronCollection")); - // - // MC: - //MCCollection_ = ps.getUntrackedParameter("MCCollection"); - //MCCollectionToken_ = consumes(MCCollection_); - //MCMatch_Deta_ = ps.getUntrackedParameter("MCMatch_Deta",0.1); - //MCMatch_Dphi_ = ps.getUntrackedParameter("MCMatch_Dphi",0.35); - // - // MET Collections: - MetCollectionTag_ = ps.getUntrackedParameter("MetCollectionTag"); - MetCollectionToken_ = consumes(MetCollectionTag_); - mcMetCollectionToken_ = consumes(ps.getUntrackedParameter("mcMetCollectionTag")); - t1MetCollectionToken_ = consumes(ps.getUntrackedParameter("t1MetCollectionTag")); - pfMetCollectionToken_ = - consumes(ps.getUntrackedParameter("pfMetCollectionTag")); - tcMetCollectionToken_ = consumes(ps.getUntrackedParameter("tcMetCollectionTag")); - // genMetCollectionToken_ = consumes(ps.getUntrackedParameter("genMetCollectionTag")); - // - // HLT parameters: - // allow info for 2 paths and 2 filters - // --------------------------------------------------------------------------- - HLTCollectionE29_ = ps.getUntrackedParameter("HLTCollectionE29"); - HLTCollectionE29Token_ = consumes(HLTCollectionE29_); - HLTCollectionE31_ = ps.getUntrackedParameter("HLTCollectionE31"); - HLTCollectionE31Token_ = consumes(HLTCollectionE31_); - HLTTriggerResultsE29_ = ps.getUntrackedParameter("HLTTriggerResultsE29"); - HLTTriggerResultsE29Token_ = consumes(HLTTriggerResultsE29_); - HLTTriggerResultsE31_ = ps.getUntrackedParameter("HLTTriggerResultsE31"); - HLTTriggerResultsE31Token_ = consumes(HLTTriggerResultsE31_); - //HLTPath_ = ps.getUntrackedParameter("HLTPath","HLT_Ele15_LW_L1R"); - //HLTFilterType_ =ps.getUntrackedParameter("HLTFilterType"); - // - // matching HLT objects to electrons - ProbeHLTObjMaxDR = ps.getUntrackedParameter("ProbeHLTObjMaxDR", 0.2); - // - // ---------------------------------------------------------------------------- - // - // detector geometry - // - BarrelMaxEta = ps.getUntrackedParameter("BarrelMaxEta"); - EndcapMinEta = ps.getUntrackedParameter("EndcapMinEta"); - EndcapMaxEta = ps.getUntrackedParameter("EndcapMaxEta"); - // - ctfTracksToken_ = consumes(ps.getUntrackedParameter("ctfTracksTag")); - corHybridscToken_ = consumes(ps.getUntrackedParameter("corHybridsc")); - multi5x5scToken_ = consumes(ps.getUntrackedParameter("multi5x5sc")); - offlineBeamSpotToken_ = consumes(edm::InputTag("offlineBeamSpot")); - pMuonsToken_ = consumes(edm::InputTag("selectedLayer1Muons")); -} - -GenPurposeSkimmerData::~GenPurposeSkimmerData() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) -} - -// -// member functions -// - -// ------------ method called to for each event ------------ -void GenPurposeSkimmerData::analyze(const edm::Event &evt, const edm::EventSetup &es) { - // MC Collection ------------------------------------------------ - - // edm::Handle pGenPart; - // evt.getByToken(MCCollectionToken_, pGenPart); - // if ( not pGenPart.isValid() ) { - // std::cout <<"Error! Can't get "< pElectrons; - - try { - evt.getByToken(ElectronCollectionToken_, pElectrons); - } catch (cms::Exception const &) { - edm::LogError("") << "Error! Can't get ElectronCollection by label. "; - } - // *********************************************************************** - // check which trigger has accepted the event **************************** - // *********************************************************************** - // - // path allocation: first 10 paths belong to the low lum menu, the rest - // in the high lum one - // - // Low Luminosity Menu (8e29) - // - /* - edm::Handle HLTResultsE29; - evt.getByToken(HLTTriggerResultsE29Token_, HLTResultsE29); - if (not HLTResultsE29.isValid()) { - std::cout << "HLT Results with label: " << HLTTriggerResultsE29_ - << " not found" << std::endl; - return; - } - // - edm::Handle pHLTe29; - evt.getByToken(HLTCollectionE29Token_, pHLTe29); - if (not pHLTe29.isValid()) { - std::cout << "HLT Results with label: " << HLTCollectionE29_ - << " not found" << std::endl; - return; - } - // - int sum = 0; - // - for (int iT=0; iT<10; ++iT) { - event_HLTPath[iT] = 0; - numberOfHLTFilterObjects[iT] =0; - // - const edm::TriggerNames & triggerNames = evt.triggerNames(*HLTResultsE29); - unsigned int trigger_size = HLTResultsE29->size(); - unsigned int trigger_position = triggerNames.triggerIndex(HLTPath_[iT]); - if (trigger_position < trigger_size ) - event_HLTPath[iT] = (int) HLTResultsE29->accept(trigger_position); - // - numberOfHLTFilterObjects[iT] = 0; - // check explicitly that the filter is there - const int nF(pHLTe29->sizeFilters()); - const int filterInd = pHLTe29->filterIndex(HLTFilterType_[iT]); - if (nF != filterInd) { - const trigger::Vids& VIDS (pHLTe29->filterIds(filterInd)); - const trigger::Keys& KEYS(pHLTe29->filterKeys(filterInd)); - const int nI(VIDS.size()); - const int nK(KEYS.size()); - numberOfHLTFilterObjects[iT] = (nI>nK)? nI:nK; - } - //if (iT==2) // HLT_Ele15_LW_L1R only this trigger is required - sum += numberOfHLTFilterObjects[iT]; - } - // - // High Luminosity Menu (1e31) DISABLED - only low lumi level - // - edm::Handle HLTResultsE31; - evt.getByToken(HLTTriggerResultsE31Token_, HLTResultsE31); - if (not HLTResultsE31.isValid()) { - std::cout << "HLT Results with label: " << HLTTriggerResultsE31_ - << " not found" << std::endl; - return; - } - //// - edm::Handle pHLTe31; - evt.getByToken(HLTCollectionE31Token_, pHLTe31); - if (not pHLTe31.isValid()) { - std::cout << "HLT Results with label: " << HLTCollectionE31_ - << " not found" << std::endl; - return; - } - //// - for (int iT=10; iT<25; ++iT) { - event_HLTPath[iT] = 0; - numberOfHLTFilterObjects[iT] =0; - // - const edm::TriggerNames & triggerNames = evt.triggerNames(*HLTResultsE31); - unsigned int trigger_size = HLTResultsE31->size(); - unsigned int trigger_position = triggerNames.triggerIndex(HLTPath_[iT]); - if (trigger_position < trigger_size ) - event_HLTPath[iT] = (int) HLTResultsE31->accept(trigger_position); - // - numberOfHLTFilterObjects[iT] = 0; - // check explicitly that the filter is there - const int nF(pHLTe31->sizeFilters()); - const int filterInd = pHLTe31->filterIndex(HLTFilterType_[iT]); - if (nF != filterInd) { - const trigger::Vids& VIDS (pHLTe31->filterIds(filterInd)); - const trigger::Keys& KEYS(pHLTe31->filterKeys(filterInd)); - const int nI(VIDS.size()); - const int nK(KEYS.size()); - numberOfHLTFilterObjects[iT] = (nI>nK)? nI:nK; - } - // not needed - sum += numberOfHLTFilterObjects[iT]; - } - if (sum == 0) { - //std::cout << "No trigger found in this event..." << std::endl; - return; - } - */ - //std::cout << "HLT objects: #" << sum << std::endl; - // print out the triggers that exist in this event - // comment this out if you want to see the names of the existing triggers - edm::Handle pHLTe29; - evt.getByToken(HLTCollectionE29Token_, pHLTe29); - if (not pHLTe29.isValid()) { - std::cout << "Error!!! HLT is missing!" << std::endl; - return; - } /* - else { - // check explicitly that the filter is there - const int nF(pHLTe29->sizeFilters()); - for (int filterInd=0; filterInd< nF; ++filterInd) { - const trigger::Vids& VIDS (pHLTe29->filterIds(filterInd)); - const trigger::Keys& KEYS(pHLTe29->filterKeys(filterInd)); - const int nI(VIDS.size()); - const int nK(KEYS.size()); - int nObjects = (nI>nK)? nI:nK; - const edm::InputTag filterTag = pHLTe29->filterTag(filterInd); - std::cout << "Found filter with name " << filterTag - << " and #objects: #" << nObjects << std::endl; - } - } - */ - // ********************************************************************* - // MET Collections: - // - edm::Handle caloMET; - evt.getByToken(MetCollectionToken_, caloMET); - // - edm::Handle t1MET; - evt.getByToken(t1MetCollectionToken_, t1MET); - // - edm::Handle mcMET; - evt.getByToken(mcMetCollectionToken_, mcMET); - // - edm::Handle tcMET; - evt.getByToken(tcMetCollectionToken_, tcMET); - // - edm::Handle pfMET; - evt.getByToken(pfMetCollectionToken_, pfMET); - // - // edm::Handle genMET; - // evt.getByToken(genMetCollectionToken_, genMET); - // - // initialize the MET variables ........................................ - event_MET = -99.; - event_MET_phi = -99.; - event_MET_sig = -99.; - event_mcMET = -99.; - event_mcMET_phi = -99.; - event_mcMET_sig = -99.; - event_tcMET = -99.; - event_tcMET_phi = -99.; - event_tcMET_sig = -99.; - event_pfMET = -99.; - event_pfMET_phi = -99.; - event_pfMET_sig = -99.; - event_t1MET = -99.; - event_t1MET_phi = -99.; - event_t1MET_sig = -99.; - // - //event_genMET = -99.; event_genMET_phi= -99.; event_genMET_sig = -99.; - // - // get the values, if they are available - if (caloMET.isValid()) { - const reco::CaloMETRef MET(caloMET, 0); - event_MET = MET->et(); - event_MET_phi = MET->phi(); - event_MET_sig = MET->mEtSig(); - } else { - std::cout << "caloMET not valid: input Tag: " << MetCollectionTag_ << std::endl; - } - if (tcMET.isValid()) { - const reco::METRef MET(tcMET, 0); - event_tcMET = MET->et(); - event_tcMET_phi = MET->phi(); - event_tcMET_sig = MET->mEtSig(); - } - if (pfMET.isValid()) { - const reco::PFMETRef MET(pfMET, 0); - event_pfMET = MET->et(); - event_pfMET_phi = MET->phi(); - event_pfMET_sig = MET->mEtSig(); - } - if (t1MET.isValid()) { - const pat::METRef MET(t1MET, 0); - event_t1MET = MET->et(); - event_t1MET_phi = MET->phi(); - event_t1MET_sig = MET->mEtSig(); - } - if (mcMET.isValid()) { - const pat::METRef MET(mcMET, 0); - event_mcMET = MET->et(); - event_mcMET_phi = MET->phi(); - event_mcMET_sig = MET->mEtSig(); - } - - // if ( genMET.isValid() ) { - // const reco::GenMETRef MET(genMET, 0); - // event_genMET = MET->et(); event_genMET_phi = MET->phi(); - // event_genMET_sig = MET->mEtSig(); - // } - - // std::cout << "t1MET: " << event_t1MET << " twikiT1MET: " - // << event_twikiT1MET << ", calo="< SC1; - evt.getByToken(corHybridscToken_, SC1); - const reco::SuperClusterCollection *sc1 = SC1.product(); - // multi5x5SuperClustersWithPreshower - edm::Handle SC2; - evt.getByToken(multi5x5scToken_, SC2); - const reco::SuperClusterCollection *sc2 = SC2.product(); - // - const int n1 = sc1->size(); - const int n2 = sc2->size(); - //std::cout << "SC found: hybrid: " << n1 << ", multi5x5: " - // << n2 << std::endl; - // keep details of the 5 highest ET superclusters - for (int i = 0; i < 5; ++i) { - sc_hybrid_et[i] = -9999.; - sc_hybrid_eta[i] = -9999.; - sc_hybrid_phi[i] = -9999.; - // - sc_multi5x5_et[i] = -9999.; - sc_multi5x5_eta[i] = -9999.; - sc_multi5x5_phi[i] = -9999.; - // - } - // sort the energies of the first sc - std::vector ETsc1; - std::vector::const_iterator sc; - for (sc = sc1->begin(); sc != sc1->end(); ++sc) { - reco::SuperCluster mySc = *sc; - double scEt = mySc.energy() / (cosh(mySc.eta())); - ETsc1.push_back(scEt); - } - int *sorted1 = new int[n1]; - double *et1 = new double[n1]; - for (int i = 0; i < n1; ++i) { - et1[i] = ETsc1[i]; - } - // array sorted now has the indices of the highest ET electrons - TMath::Sort(n1, et1, sorted1, true); - // ......................................................................... - std::vector ETsc2; - for (sc = sc2->begin(); sc != sc2->end(); ++sc) { - reco::SuperCluster mySc = *sc; - double scEt = mySc.energy() / (cosh(mySc.eta())); - ETsc2.push_back(scEt); - } - int *sorted2 = new int[n2]; - double *et2 = new double[n2]; - for (int i = 0; i < n2; ++i) { - et2[i] = ETsc2[i]; - } - // array sorted now has the indices of the highest ET electrons - TMath::Sort(n2, et2, sorted2, true); - // - // - for (int probeSc = 0; probeSc < n1; ++probeSc) { - //std::cout<<"sorted["<< probeIt<< "]=" << sorted[probeIt] << std::endl; - // break if you have more than the appropriate number of electrons - if (probeSc >= 5) - break; - // - int sc_index = sorted1[probeSc]; - std::vector::const_iterator Rprobe = sc1->begin() + sc_index; - // - reco::SuperCluster sc0 = *Rprobe; - // now keep the relevant stuff: - sc_hybrid_et[probeSc] = sc0.energy() / (cosh(sc0.eta())); - sc_hybrid_eta[probeSc] = sc0.eta(); - sc_hybrid_phi[probeSc] = sc0.phi(); - } - // ......................................................................... - for (int probeSc = 0; probeSc < n2; ++probeSc) { - //std::cout<<"sorted["<< probeIt<< "]=" << sorted[probeIt] << std::endl; - // break if you have more than the appropriate number of electrons - if (probeSc >= 5) - break; - // - int sc_index = sorted2[probeSc]; - std::vector::const_iterator Rprobe = sc2->begin() + sc_index; - // - reco::SuperCluster sc0 = *Rprobe; - // now keep the relevant stuff: - sc_multi5x5_et[probeSc] = sc0.energy() / (cosh(sc0.eta())); - sc_multi5x5_eta[probeSc] = sc0.eta(); - sc_multi5x5_phi[probeSc] = sc0.phi(); - } - delete[] sorted1; - delete[] sorted2; - delete[] et1; - delete[] et2; - /////// collect the tracks in the event - // edm::InputTag ctfTracksTag("generalTracks", "", InputTagEnding_); - edm::Handle ctfTracks; - evt.getByToken(ctfTracksToken_, ctfTracks); - const reco::TrackCollection *ctf = ctfTracks.product(); - reco::TrackCollection::const_iterator tr; - const int ntracks = ctf->size(); - // - // get the beam spot for the parameter of the track - edm::Handle pBeamSpot; - evt.getByToken(offlineBeamSpotToken_, pBeamSpot); - const reco::BeamSpot *bspot = pBeamSpot.product(); - const math::XYZPoint &bspotPosition = bspot->position(); - // - for (int i = 0; i < 20; ++i) { - ctf_track_pt[i] = -9999.; - ctf_track_eta[i] = -9999.; - ctf_track_phi[i] = -9999.; - ctf_track_vx[i] = -9999.; - ctf_track_vy[i] = -9999.; - ctf_track_vz[i] = -9999.; - ctf_track_tip[i] = -9999.; - ctf_track_tip_bs[i] = -9999.; - } - // - std::vector ETtrack; - for (tr = ctf->begin(); tr != ctf->end(); ++tr) { - reco::Track mySc = *tr; - double scEt = mySc.pt(); - ETtrack.push_back(scEt); - } - int *sortedTr = new int[ntracks]; - double *etTr = new double[ntracks]; - for (int i = 0; i < ntracks; ++i) { - etTr[i] = ETtrack[i]; - } - // array sorted now has the indices of the highest ET electrons - TMath::Sort(ntracks, etTr, sortedTr, true); - // - for (int probeSc = 0; probeSc < ntracks; ++probeSc) { - //std::cout<<"sorted["<< probeIt<< "]=" << sorted[probeIt] << std::endl; - // break if you have more than the appropriate number of electrons - if (probeSc >= 20) - break; - // - int sc_index = sortedTr[probeSc]; - std::vector::const_iterator Rprobe = ctf->begin() + sc_index; - // - reco::Track sc0 = *Rprobe; - // now keep the relevant stuff: - ctf_track_pt[probeSc] = sc0.pt(); - ctf_track_eta[probeSc] = sc0.eta(); - ctf_track_phi[probeSc] = sc0.phi(); - ctf_track_vx[probeSc] = sc0.vx(); - ctf_track_vy[probeSc] = sc0.vy(); - ctf_track_vz[probeSc] = sc0.vz(); - ctf_track_tip[probeSc] = -sc0.dxy(); - ctf_track_tip_bs[probeSc] = -sc0.dxy(bspotPosition); - } - delete[] sortedTr; - delete[] etTr; - // - // keep 4 of the selectedLayer1Muons for reference - edm::Handle pMuons; - evt.getByToken(pMuonsToken_, pMuons); - const pat::MuonCollection *pmuon = pMuons.product(); - pat::MuonCollection::const_iterator muon; - const int nmuons = pMuons->size(); - // - for (int i = 0; i < 4; ++i) { - muon_pt[i] = -9999.; - muon_eta[i] = -9999.; - muon_phi[i] = -9999.; - muon_vx[i] = -9999.; - muon_vy[i] = -9999.; - muon_vz[i] = -9999.; - muon_tip[i] = -9999.; - muon_tip_bs[i] = -9999.; - } - // - std::vector ETmuons; - for (muon = pmuon->begin(); muon != pmuon->end(); ++muon) { - pat::Muon mySc = *muon; - double scEt = mySc.track()->pt(); - ETmuons.push_back(scEt); - } - int *sortedMu = new int[nmuons]; - double *etMu = new double[nmuons]; - for (int i = 0; i < nmuons; ++i) { - etMu[i] = ETmuons[i]; - } - // array sorted now has the indices of the highest ET electrons - TMath::Sort(nmuons, etMu, sortedMu, true); - // - for (int probeSc = 0; probeSc < nmuons; ++probeSc) { - //std::cout<<"sorted["<< probeIt<< "]=" << sorted[probeIt] << std::endl; - // break if you have more than the appropriate number of electrons - if (probeSc >= 4) - break; - // - int sc_index = sortedMu[probeSc]; - std::vector::const_iterator Rprobe = pmuon->begin() + sc_index; - // - pat::Muon sc0 = *Rprobe; - // now keep the relevant stuff: - muon_pt[probeSc] = sc0.track()->pt(); - muon_eta[probeSc] = sc0.track()->eta(); - muon_phi[probeSc] = sc0.track()->phi(); - muon_vx[probeSc] = sc0.track()->vx(); - muon_vy[probeSc] = sc0.track()->vy(); - muon_vz[probeSc] = sc0.track()->vz(); - muon_tip[probeSc] = -sc0.track()->dxy(); - muon_tip_bs[probeSc] = -sc0.track()->dxy(bspotPosition); - } - delete[] sortedMu; - delete[] etMu; - // - if (n1 + n2 + ntracks == 0) { - std::cout << "Return: no sc in this event" << std::endl; - return; - } - // ///////////////////////////////////////////////////////////////////////// - // electron details - /// -*-*-*-*-*--*-*-*-*-*-*-*-*-*-*-*-*--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*--*-*-* - const int MAX_PROBES = 4; - for (int i = 0; i < MAX_PROBES; i++) { - probe_ele_eta_for_tree[i] = -99.0; - probe_ele_et_for_tree[i] = -99.0; - probe_ele_phi_for_tree[i] = -99.0; - probe_ele_Xvertex_for_tree[i] = -99.0; - probe_ele_Yvertex_for_tree[i] = -99.0; - probe_ele_Zvertex_for_tree[i] = -99.0; - probe_ele_tip[i] = -999.; - - probe_sc_eta_for_tree[i] = -99.0; - probe_sc_et_for_tree[i] = -99.0; - probe_sc_phi_for_tree[i] = -99.0; - - probe_charge_for_tree[i] = -99; - probe_sc_pass_fiducial_cut[i] = 0; - probe_classification_index_for_tree[i] = -99; - // - // probe isolation values ............ - probe_isolation_value[i] = 999.0; - probe_iso_user[i] = 999.0; - probe_ecal_isolation_value[i] = 999; - probe_ecal_iso_user[i] = 999; - probe_hcal_isolation_value[i] = 999; - probe_hcal_iso_user[i] = 999; - - probe_ele_hoe[i] = 999.; - probe_ele_shh[i] = 999.; - probe_ele_sihih[i] = 999.; - probe_ele_dhi[i] = 999.; - probe_ele_dfi[i] = 999.; - probe_ele_eop[i] = 999.; - probe_ele_pin[i] = 999.; - probe_ele_pout[i] = 999.; - probe_ele_e5x5[i] = 999.; - probe_ele_e2x5[i] = 999.; - probe_ele_e1x5[i] = 999.; - - // - // - //for (int j=0; j<25; ++j) { - // probe_pass_trigger_cut[i][j]=0; - //} - //probe_hlt_matched_dr[i]=0; - //probe_mc_matched[i] = 0; - //probe_mc_matched_deta[i] = 999.; - //probe_mc_matched_dphi[i] = 999.; - //probe_mc_matched_denergy[i] = 999.; - //probe_mc_matched_mother[i] = 999; - // - // - } - const pat::ElectronCollection *electrons = pElectrons.product(); - - elec_number_in_event = electrons->size(); - //std::cout << "In this event " << elec_number_in_event << - // " electrons were found" << std::endl; - // if (elec_number_in_event == 0) return; - - std::vector UniqueElectrons; - // edm::LogInfo("") << "Starting loop over electrons."; - int index = 0; - //*********************************************************************** - // NEW METHOD by D WARDROPE implemented 26.05.08 ************************ - //************* DUPLICATE ****** REMOVAL ******************************* - // 02.06.08: due to a bug in the hybrid algorithm that affects detid **** - // we change detid matching to superCluster ref matching ****** - for (pat::ElectronCollection::const_iterator elec = electrons->begin(); elec != electrons->end(); ++elec) { - const pat::ElectronRef electronRef(pElectrons, index); - //Remove duplicate electrons which share a supercluster - pat::ElectronCollection::const_iterator BestDuplicate = elec; - int index2 = 0; - for (pat::ElectronCollection::const_iterator elec2 = electrons->begin(); elec2 != electrons->end(); ++elec2) { - if (elec != elec2) { - if (elec->superCluster() == elec2->superCluster()) { - if (fabs(BestDuplicate->eSuperClusterOverP() - 1.) >= fabs(elec2->eSuperClusterOverP() - 1.)) { - BestDuplicate = elec2; - } - } - } - ++index2; - } - if (BestDuplicate == elec) - UniqueElectrons.push_back(electronRef); - ++index; - } - // - // debugging: store electrons after duplicate removal - elec_1_duplicate_removal = UniqueElectrons.size(); - //std::cout << "In this event there are " << elec_1_duplicate_removal - // << " electrons" << std::endl; - // - // - // duplicate removal is done now: - // the electron collection is in UniqueElectrons - // - // run over probes - now probe electrons and store - // - // the electron collection is now - // vector UniqueElectrons - std::vector ETs; - std::vector::const_iterator elec; - for (elec = UniqueElectrons.begin(); elec != UniqueElectrons.end(); ++elec) { - pat::ElectronRef probeEle; - probeEle = *elec; - double probeEt = probeEle->caloEnergy() / (cosh(probeEle->caloPosition().eta())); - ETs.push_back(probeEt); - } - int *sorted = new int[elec_1_duplicate_removal]; - double *et = new double[elec_1_duplicate_removal]; - //std::cout << "Elecs: " << elec_1_duplicate_removal << std::endl; - for (int i = 0; i < elec_1_duplicate_removal; ++i) { - et[i] = ETs[i]; - //std::cout << "et["<< i << "]=" << et[i] << std::endl; - } - // array sorted now has the indices of the highest ET electrons - TMath::Sort(elec_1_duplicate_removal, et, sorted, true); - // - // - for (int probeIt = 0; probeIt < elec_1_duplicate_removal; ++probeIt) { - //std::cout<<"sorted["<< probeIt<< "]=" << sorted[probeIt] << std::endl; - // break if you have more than the appropriate number of electrons - if (probeIt >= MAX_PROBES) - break; - // - int elec_index = sorted[probeIt]; - std::vector::const_iterator Rprobe = UniqueElectrons.begin() + elec_index; - // - pat::ElectronRef probeEle; - probeEle = *Rprobe; - double probeEt = probeEle->caloEnergy() / (cosh(probeEle->caloPosition().eta())); - probe_sc_eta_for_tree[probeIt] = probeEle->caloPosition().eta(); - probe_sc_phi_for_tree[probeIt] = probeEle->caloPosition().phi(); - probe_sc_et_for_tree[probeIt] = probeEt; - // fiducial cut ............................... - if (fabs(probeEle->caloPosition().eta()) < BarrelMaxEta || - (fabs(probeEle->caloPosition().eta()) > EndcapMinEta && fabs(probeEle->caloPosition().eta()) < EndcapMaxEta)) { - probe_sc_pass_fiducial_cut[probeIt] = 1; - } - // - probe_charge_for_tree[probeIt] = probeEle->charge(); - probe_ele_eta_for_tree[probeIt] = probeEle->eta(); - probe_ele_et_for_tree[probeIt] = probeEle->et(); - probe_ele_phi_for_tree[probeIt] = probeEle->phi(); - probe_ele_Xvertex_for_tree[probeIt] = probeEle->vx(); - probe_ele_Yvertex_for_tree[probeIt] = probeEle->vy(); - probe_ele_Zvertex_for_tree[probeIt] = probeEle->vz(); - probe_classification_index_for_tree[probeIt] = probeEle->classification(); - double ProbeTIP = probeEle->gsfTrack()->d0(); - probe_ele_tip[probeIt] = ProbeTIP; - // isolation .................................. - // these are the default values: trk 03, ecal, hcal 04 - // I know that there is a more direct way, but in this way it - // is clearer what you get each time :P - probe_isolation_value[probeIt] = probeEle->dr03IsolationVariables().tkSumPt; - probe_ecal_isolation_value[probeIt] = probeEle->dr04IsolationVariables().ecalRecHitSumEt; - probe_hcal_isolation_value[probeIt] = probeEle->dr04IsolationVariables().hcalDepth1TowerSumEt + - probeEle->dr04IsolationVariables().hcalDepth2TowerSumEt; - // one extra isos: - probe_iso_user[probeIt] = probeEle->dr04IsolationVariables().tkSumPt; - probe_ecal_iso_user[probeIt] = probeEle->dr03IsolationVariables().ecalRecHitSumEt; - probe_hcal_iso_user[probeIt] = probeEle->dr03IsolationVariables().hcalDepth1TowerSumEt + - probeEle->dr03IsolationVariables().hcalDepth2TowerSumEt; - // ele id variables - double hOverE = probeEle->hadronicOverEm(); - double deltaPhiIn = probeEle->deltaPhiSuperClusterTrackAtVtx(); - double deltaEtaIn = probeEle->deltaEtaSuperClusterTrackAtVtx(); - double eOverP = probeEle->eSuperClusterOverP(); - double pin = probeEle->trackMomentumAtVtx().R(); - double pout = probeEle->trackMomentumOut().R(); - double sigmaee = probeEle->scSigmaEtaEta(); - double sigma_IetaIeta = probeEle->scSigmaIEtaIEta(); - // correct if in endcaps - if (fabs(probeEle->caloPosition().eta()) > 1.479) { - sigmaee = sigmaee - 0.02 * (fabs(probeEle->caloPosition().eta()) - 2.3); - } - // - //double e5x5, e2x5Right, e2x5Left, e2x5Top, e2x5Bottom, e1x5; - double e5x5, e2x5, e1x5; - e5x5 = probeEle->scE5x5(); - e1x5 = probeEle->scE1x5(); - e2x5 = probeEle->scE2x5Max(); - // - // electron ID variables - probe_ele_hoe[probeIt] = hOverE; - probe_ele_shh[probeIt] = sigmaee; - probe_ele_sihih[probeIt] = sigma_IetaIeta; - probe_ele_dfi[probeIt] = deltaPhiIn; - probe_ele_dhi[probeIt] = deltaEtaIn; - probe_ele_eop[probeIt] = eOverP; - probe_ele_pin[probeIt] = pin; - probe_ele_pout[probeIt] = pout; - probe_ele_e5x5[probeIt] = e5x5; - probe_ele_e2x5[probeIt] = e2x5; - probe_ele_e1x5[probeIt] = e1x5; - - // - // HLT filter ------------------------------------------------------ - // - // - // low luminosity filters - /************************************************************* - for (int filterNum=0; filterNum<10; ++filterNum) { - int trigger_int_probe = 0; - - //double hlt_matched_dr = -1.; - const int nF(pHLTe29->sizeFilters()); - // - // default (tag) trigger filter - // - // find how many relevant - const int iF = pHLTe29->filterIndex(HLTFilterType_[filterNum]); - // loop over these objects to see whether they match - const trigger::TriggerObjectCollection& TOC(pHLTe29->getObjects()); - if (nF != iF) { - // find how many objects there are - const trigger::Keys& KEYS(pHLTe29->filterKeys(iF)); - const int nK(KEYS.size()); - for (int iTrig = 0;iTrig filter: "<< HLTFilterType_[filterNum] <<" TO id: " << TO.id() << std::endl; - // this is better to be left out: HLT matching is with an HLT object - // and we don't care what this object is - //if (abs(TO.id())==11 ) { // demand it to be an electron - double dr_ele_HLT = - reco::deltaR(probeEle->eta(), probeEle->phi(), TO.eta(), TO.phi()); - if (fabs(dr_ele_HLT) < ProbeHLTObjMaxDR) {++trigger_int_probe; - //hlt_matched_dr = dr_ele_HLT; - } - //} - } - } - // - if(trigger_int_probe>0) probe_pass_trigger_cut[probeIt][filterNum] = 1; - //probe_hlt_matched_dr[probeIt] = hlt_matched_dr; - } - // high lumi filters - for (int filterNum=10; filterNum<25; ++filterNum) { - int trigger_int_probe = 0; - - //double hlt_matched_dr = -1.; - const int nF(pHLTe31->sizeFilters()); - // - // default (tag) trigger filter - // - // find how many relevant - const int iF = pHLTe31->filterIndex(HLTFilterType_[filterNum]); - // loop over these objects to see whether they match - const trigger::TriggerObjectCollection& TOC(pHLTe31->getObjects()); - if (nF != iF) { - // find how many objects there are - const trigger::Keys& KEYS(pHLTe31->filterKeys(iF)); - const int nK(KEYS.size()); - for (int iTrig = 0;iTrig eta(), probeEle->phi(), TO.eta(), TO.phi()); - if (fabs(dr_ele_HLT) < ProbeHLTObjMaxDR) {++trigger_int_probe; - //hlt_matched_dr = dr_ele_HLT; - } - } - } - - // - if(trigger_int_probe>0) probe_pass_trigger_cut[probeIt][filterNum] = 1; - //probe_hlt_matched_dr[probeIt] = hlt_matched_dr; - } - ******************************************/ - // ------------------------------------------------------------------ - // - // MC Matching ...................................................... - // check whether these electrons are matched to a MC electron - /* - int mc_index = 0; - int matched = 0; int mother_id = 999; - double deta_matched = 999.; double dphi_matched = 999.; - double denergy_matched = 999.; - for(reco::GenParticleCollection::const_iterator McParticle = - McCand->begin(); McParticle != McCand->end(); ++McParticle) - { - // check only for electrons - if(abs(McParticle->pdgId())==11 && McParticle->status()==1) { - mc_index++; - // check whether it matches a gsf electron - double deta = McParticle->eta() - probeEle->eta(); - double dphi = McParticle->phi() - probeEle->phi(); - if ( fabs(deta) < MCMatch_Deta_ && fabs(dphi) < MCMatch_Dphi_){ - ++matched; - deta_matched = deta; dphi_matched = dphi; - denergy_matched = McParticle->energy() - probeEle->caloEnergy(); - // find the mother of the MC electron - const reco::Candidate *mum; - bool mother_finder = true; - if (abs(McParticle->mother()->pdgId()) != 11) - mum = McParticle->mother(); - else if (abs(McParticle->mother()->mother()->pdgId())!= 11) - mum = McParticle->mother()->mother(); - else { - edm::LogInfo("info") << "Going too far to find the mum"; - mother_finder = false; - } - if (mother_finder) { - mother_id = mum->pdgId(); - } - } - } - } - probe_mc_matched[probeIt] = matched; - probe_mc_matched_deta[probeIt] = deta_matched; - probe_mc_matched_dphi[probeIt] = dphi_matched; - probe_mc_matched_denergy[probeIt] = denergy_matched; - probe_mc_matched_mother[probeIt] = mother_id; - */ - } - - probe_tree->Fill(); - ++tree_fills_; - delete[] sorted; - delete[] et; -} - -// ------------ method called once each job just before starting event loop -- -void GenPurposeSkimmerData::beginJob() { - //std::cout << "In beginJob()" << std::endl; - TString filename_histo = outputFile_; - histofile = new TFile(filename_histo, "RECREATE"); - tree_fills_ = 0; - - probe_tree = new TTree("probe_tree", "Tree to store probe variables"); - - //probe_tree->Branch("probe_ele_eta",probe_ele_eta_for_tree,"probe_ele_eta[4]/D"); - //probe_tree->Branch("probe_ele_phi",probe_ele_phi_for_tree,"probe_ele_phi[4]/D"); - //probe_tree->Branch("probe_ele_et",probe_ele_et_for_tree,"probe_ele_et[4]/D"); - probe_tree->Branch("probe_ele_tip", probe_ele_tip, "probe_ele_tip[4]/D"); - probe_tree->Branch("probe_ele_vertex_x", probe_ele_Xvertex_for_tree, "probe_ele_vertex_x[4]/D"); - probe_tree->Branch("probe_ele_vertex_y", probe_ele_Yvertex_for_tree, "probe_ele_vertex_y[4]/D"); - probe_tree->Branch("probe_ele_vertex_z", probe_ele_Zvertex_for_tree, "probe_ele_vertex_z[4]/D"); - probe_tree->Branch("probe_sc_eta", probe_sc_eta_for_tree, "probe_sc_eta[4]/D"); - probe_tree->Branch("probe_sc_phi", probe_sc_phi_for_tree, "probe_sc_phi[4]/D"); - probe_tree->Branch("probe_sc_et", probe_sc_et_for_tree, "probe_sc_et[4]/D"); - - // trigger related variables - //probe_tree->Branch("probe_trigger_cut",probe_pass_trigger_cut,"probe_trigger_cut[4][25]/I"); - //probe_tree->Branch("probe_hlt_matched_dr", probe_hlt_matched_dr,"probe_hlt_matched_dr[4]/D"); - // mc matching to electrons - // probe_tree->Branch("probe_mc_matched",probe_mc_matched,"probe_mc_matched[4]/I"); - //probe_tree->Branch("probe_mc_matched_deta",probe_mc_matched_deta, - // "probe_mc_matched_deta[4]/D"); - //probe_tree->Branch("probe_mc_matched_dphi",probe_mc_matched_dphi, - // "probe_mc_matched_dphi[4]/D"); - //probe_tree->Branch("probe_mc_matched_denergy",probe_mc_matched_denergy, - // "probe_mc_matched_denergy[4]/D"); - //probe_tree->Branch("probe_mc_matched_mother",probe_mc_matched_mother, - // "probe_mc_matched_mother[4]/I"); - // - probe_tree->Branch("probe_charge", probe_charge_for_tree, "probe_charge[4]/I"); - //probe_tree->Branch("probe_sc_fiducial_cut",probe_sc_pass_fiducial_cut, - // "probe_sc_fiducial_cut[4]/I"); - - //probe_tree->Branch("probe_classification", - // probe_classification_index_for_tree,"probe_classification[4]/I"); - // - // Isolation related variables ........................................ - // - probe_tree->Branch("probe_isolation_value", probe_isolation_value, "probe_isolation_value[4]/D"); - probe_tree->Branch("probe_ecal_isolation_value", probe_ecal_isolation_value, "probe_ecal_isolation_value[4]/D"); - probe_tree->Branch("probe_hcal_isolation_value", probe_hcal_isolation_value, "probe_hcal_isolation_value[4]/D"); - // - probe_tree->Branch("probe_iso_user", probe_iso_user, "probe_iso_user[4]/D"); - probe_tree->Branch("probe_ecal_iso_user", probe_ecal_iso_user, "probe_ecal_iso_user[4]/D"); - probe_tree->Branch("probe_hcal_iso_user", probe_hcal_iso_user, "probe_hcal_iso_user[4]/D"); - - //...................................................................... - // Electron ID Related variables ....................................... - probe_tree->Branch("probe_ele_hoe", probe_ele_hoe, "probe_ele_hoe[4]/D"); - //probe_tree->Branch("probe_ele_shh",probe_ele_shh, "probe_ele_shh[4]/D"); - probe_tree->Branch("probe_ele_sihih", probe_ele_sihih, "probe_ele_sihih[4]/D"); - probe_tree->Branch("probe_ele_dfi", probe_ele_dfi, "probe_ele_dfi[4]/D"); - probe_tree->Branch("probe_ele_dhi", probe_ele_dhi, "probe_ele_dhi[4]/D"); - probe_tree->Branch("probe_ele_eop", probe_ele_eop, "probe_ele_eop[4]/D"); - probe_tree->Branch("probe_ele_pin", probe_ele_pin, "probe_ele_pin[4]/D"); - probe_tree->Branch("probe_ele_pout", probe_ele_pout, "probe_ele_pout[4]/D"); - // probe_tree->Branch("probe_ele_e5x5",probe_ele_e5x5, "probe_ele_e5x5[4]/D"); - //probe_tree->Branch("probe_ele_e2x5",probe_ele_e2x5, "probe_ele_e2x5[4]/D"); - //probe_tree->Branch("probe_ele_e1x5",probe_ele_e1x5, "probe_ele_e1x5[4]/D"); - - //....................................................................... - // - // each entry for each trigger path - //probe_tree->Branch("event_HLTPath",event_HLTPath,"event_HLTPath[25]/I"); - //probe_tree->Branch("numberOfHLTFilterObjects", numberOfHLTFilterObjects, - // "numberOfHLTFilterObjects[25]/I"); - // - // debugging info: - //probe_tree->Branch("elec_number_in_event",&elec_number_in_event,"elec_number_in_event/I"); - probe_tree->Branch("elec_1_duplicate_removal", &elec_1_duplicate_removal, "elec_1_duplicate_removal/I"); - // - - // Missing ET in the event - probe_tree->Branch("event_MET", &event_MET, "event_MET/D"); - probe_tree->Branch("event_MET_phi", &event_MET_phi, "event_MET_phi/D"); - // probe_tree->Branch("event_MET_sig",&event_MET_sig,"event_MET_sig/D"); - probe_tree->Branch("event_mcMET", &event_mcMET, "event_mcMET/D"); - probe_tree->Branch("event_mcMET_phi", &event_mcMET_phi, "event_mcMET_phi/D"); - // - probe_tree->Branch("event_tcMET", &event_tcMET, "event_tcMET/D"); - probe_tree->Branch("event_tcMET_phi", &event_tcMET_phi, "event_tcMET_phi/D"); - // probe_tree->Branch("event_tcMET_sig",&event_tcMET_sig,"event_tcMET_sig/D"); - - probe_tree->Branch("event_pfMET", &event_pfMET, "event_pfMET/D"); - probe_tree->Branch("event_pfMET_phi", &event_pfMET_phi, "event_pfMET_phi/D"); - // probe_tree->Branch("event_pfMET_sig",&event_pfMET_sig,"event_pfMET_sig/D"); - - // probe_tree->Branch("event_genMET",&event_genMET,"event_genMET/D"); - // probe_tree->Branch("event_genMET_phi",&event_genMET_phi, "event_genMET_phi/D"); - // probe_tree->Branch("event_genMET_sig",&event_genMET_sig, "event_genMET_sig/D"); - //..... type 1 corrected MET - probe_tree->Branch("event_t1MET", &event_t1MET, "event_t1MET/D"); - probe_tree->Branch("event_t1MET_phi", &event_t1MET_phi, "event_t1MET_phi/D"); - //probe_tree->Branch("event_t1MET_sig",&event_t1MET_sig,"event_t1MET_sig/D"); - - // - // some sc related variables - probe_tree->Branch("sc_hybrid_et", sc_hybrid_et, "sc_hybrid_et[5]/D"); - probe_tree->Branch("sc_hybrid_eta", sc_hybrid_eta, "sc_hybrid_eta[5]/D"); - probe_tree->Branch("sc_hybrid_phi", sc_hybrid_phi, "sc_hybrid_phi[5]/D"); - // - probe_tree->Branch("sc_multi5x5_et", sc_multi5x5_et, "sc_multi5x5_et[5]/D"); - probe_tree->Branch("sc_multi5x5_eta", sc_multi5x5_eta, "sc_multi5x5_eta[5]/D"); - probe_tree->Branch("sc_multi5x5_phi", sc_multi5x5_phi, "sc_multi5x5_phi[5]/D"); - // ///////////////////////////////////////////////////////////////////////// - // general tracks in the event: keep 20 tracks - probe_tree->Branch("ctf_track_pt", ctf_track_pt, "ctf_track_pt[20]/D"); - probe_tree->Branch("ctf_track_eta", ctf_track_eta, "ctf_track_eta[20]/D"); - probe_tree->Branch("ctf_track_phi", ctf_track_phi, "ctf_track_phi[20]/D"); - probe_tree->Branch("ctf_track_vx", ctf_track_vx, "ctf_track_vx[20]/D"); - probe_tree->Branch("ctf_track_vy", ctf_track_vy, "ctf_track_vy[20]/D"); - probe_tree->Branch("ctf_track_vz", ctf_track_vz, "ctf_track_vz[20]/D"); - probe_tree->Branch("ctf_track_tip", ctf_track_tip, "ctf_track_tip[20]/D"); - probe_tree->Branch("ctf_track_tip_bs", ctf_track_tip_bs, "ctf_track_tip_bs[20]/D"); - // - probe_tree->Branch("muon_pt", muon_pt, "muon_pt[4]/D"); - probe_tree->Branch("muon_eta", muon_eta, "muon_eta[4]/D"); - probe_tree->Branch("muon_phi", muon_phi, "muon_phi[4]/D"); - probe_tree->Branch("muon_vx", muon_vx, "muon_vx[4]/D"); - probe_tree->Branch("muon_vy", muon_vy, "muon_vy[4]/D"); - probe_tree->Branch("muon_vz", muon_vz, "muon_vz[4]/D"); - probe_tree->Branch("muon_tip", muon_tip, "muon_tip[4]/D"); - probe_tree->Branch("muon_tip_bs", muon_tip_bs, "muon_tip_bs[4]/D"); -} - -// ------------ method called once each job just after ending the event loop - -void GenPurposeSkimmerData::endJob() { - //std::cout << "In endJob()" << std::endl; - if (tree_fills_ == 0) { - std::cout << "Empty tree: no output..." << std::endl; - return; - } - //probe_tree->Print(); - histofile->Write(); - histofile->Close(); -} - -//define this as a plug-in -DEFINE_FWK_MODULE(GenPurposeSkimmerData); diff --git a/ElectroWeakAnalysis/WENu/src/WenuPlots.cc b/ElectroWeakAnalysis/WENu/src/WenuPlots.cc deleted file mode 100644 index 5756311882676..0000000000000 --- a/ElectroWeakAnalysis/WENu/src/WenuPlots.cc +++ /dev/null @@ -1,1223 +0,0 @@ -// -*- C++ -*- -// -// Package: WenuPlots -// Class: WenuPlots -// -/* - - Description: - this is an analyzer that reads pat::CompositeCandidate WenuCandidates - and creates some plots - Implementation: - The code takes the output of the WenuCandidateFilter and - * implements on them a user defined selection - * implements the selection with one cut (configurable which cut) inverted - * creates a set of basic plots with the Wenu Candidate distribution - vs MET, MT etc. These plots are stored in a root file - If you have several root files from different runs you have to run a macro - to combine the output and have the final plots - - This analyser is PAT based in the sense that it reads CompositeCandidates, - which are composed of a pat::MET plus a pat::Electron. You normally - don't have to change this file when the CMSSW version changes because it - contains only methods from the stable core of pat Objects. Most - version dependent changes should be in WenuCandidateFilter.cc - TO DO LIST: - * more plots to be added - * there should be an base Plots class from which WenuPlots and ZeePlots - inherit. this makes sense since they have so many common methods - - Changes Log: - 12Feb09 First Release of the code for CMSSW_2_2_X - 16Sep09 tested that it works with 3_1_2 as well - 09Sep09 added one extra iso with the name userIso_XX_ - 23Feb09 added option to include extra IDs that are in CMSSW, such as - categorized, likehood etc - added extra variables TIP and E/P - 27May10 changes to apply the Spring10 selections, relative isolations - the 3 default ones, pat user isolations added in the end - change to framework independent variable definitions - double->Double_t etc and math.h functions from TMath - 01Jul10 second electron information added - Contact: - Nikolaos Rompotis - Nikolaos.Rompotis@Cern.ch - Imperial College London - - -*/ -// -// Original Author: Nikolaos Rompotis - -#include "ElectroWeakAnalysis/WENu/interface/WenuPlots.h" -#include "DataFormats/Math/interface/deltaR.h" -//#include "RecoEcal/EgammaCoreTools/plugins/EcalClusterCrackCorrectionFunctor.h" - -WenuPlots::WenuPlots(const edm::ParameterSet &iConfig) - -{ - //////////////////////////////////////////////////////////////////////////// - // I N P U T P A R A M E T E R S - //////////////////////////////////////////////////////////////////////////// - // - /////// - // WENU COLLECTION ////////////////////////////////////////////////////// - // - - wenuCollectionToken_ = - consumes(iConfig.getUntrackedParameter("wenuCollectionTag")); - // - // code parameters - // - std::string outputFile_D = "histos.root"; - outputFile_ = iConfig.getUntrackedParameter("outputFile", outputFile_D); - WENU_VBTFselectionFileName_ = iConfig.getUntrackedParameter("WENU_VBTFselectionFileName"); - WENU_VBTFpreseleFileName_ = iConfig.getUntrackedParameter("WENU_VBTFpreseleFileName"); - DatasetTag_ = iConfig.getUntrackedParameter("DatasetTag"); - // - // use of precalculatedID - // if you use it, then no other cuts are applied - usePrecalcID_ = iConfig.getUntrackedParameter("usePrecalcID", false); - if (usePrecalcID_) { - usePrecalcIDType_ = iConfig.getUntrackedParameter("usePrecalcIDType"); - usePrecalcIDSign_ = iConfig.getUntrackedParameter("usePrecalcIDSign", "="); - usePrecalcIDValue_ = iConfig.getUntrackedParameter("usePrecalcIDValue"); - } - useValidFirstPXBHit_ = iConfig.getUntrackedParameter("useValidFirstPXBHit", false); - useConversionRejection_ = iConfig.getUntrackedParameter("useConversionRejection", false); - useExpectedMissingHits_ = iConfig.getUntrackedParameter("useExpectedMissingHits", false); - - maxNumberOfExpectedMissingHits_ = iConfig.getUntrackedParameter("maxNumberOfExpectedMissingHits", 1); - if (not usePrecalcID_) { - if (useValidFirstPXBHit_) - std::cout << "WenuPlots: Warning: you have demanded a valid 1st layer PXB hit" << std::endl; - if (useConversionRejection_) - std::cout << "WenuPlots: Warning: you have demanded egamma conversion rejection criteria to be applied" - << std::endl; - if (useExpectedMissingHits_) - std::cout << "WenuPlots: Warning: you have demanded at most " << maxNumberOfExpectedMissingHits_ - << " missing inner hits " << std::endl; - } else { - std::cout << "WenuPlots: Using Precalculated ID with type " << usePrecalcIDType_ << usePrecalcIDSign_ - << usePrecalcIDValue_ << std::endl; - } - if ((useValidFirstPXBHit_ || useExpectedMissingHits_ || useConversionRejection_) && (not usePrecalcID_)) { - usePreselection_ = true; - } else { - usePreselection_ = false; - } - includeJetInformationInNtuples_ = iConfig.getUntrackedParameter("includeJetInformationInNtuples", false); - if (includeJetInformationInNtuples_) { - caloJetCollectionTag_ = iConfig.getUntrackedParameter("caloJetCollectionTag"); - caloJetCollectionToken_ = consumes(caloJetCollectionTag_); - pfJetCollectionTag_ = iConfig.getUntrackedParameter("pfJetCollectionTag"); - pfJetCollectionToken_ = consumes(pfJetCollectionTag_); - DRJetFromElectron_ = iConfig.getUntrackedParameter("DRJetFromElectron"); - } - storeExtraInformation_ = iConfig.getUntrackedParameter("storeExtraInformation"); - storeAllSecondElectronVariables_ = iConfig.getUntrackedParameter("storeAllSecondElectronVariables", false); - // primary vtx collections - PrimaryVerticesCollectionToken_ = consumes >(iConfig.getUntrackedParameter( - "PrimaryVerticesCollection", edm::InputTag("offlinePrimaryVertices"))); - PrimaryVerticesCollectionBSToken_ = consumes >(iConfig.getUntrackedParameter( - "PrimaryVerticesCollectionBS", edm::InputTag("offlinePrimaryVerticesWithBS"))); - // - // the selection cuts: - trackIso_EB_ = iConfig.getUntrackedParameter("trackIso_EB", 1000.); - ecalIso_EB_ = iConfig.getUntrackedParameter("ecalIso_EB", 1000.); - hcalIso_EB_ = iConfig.getUntrackedParameter("hcalIso_EB", 1000.); - // - trackIso_EE_ = iConfig.getUntrackedParameter("trackIso_EE", 1000.); - ecalIso_EE_ = iConfig.getUntrackedParameter("ecalIso_EE", 1000.); - hcalIso_EE_ = iConfig.getUntrackedParameter("hcalIso_EE", 1000.); - // - sihih_EB_ = iConfig.getUntrackedParameter("sihih_EB"); - dphi_EB_ = iConfig.getUntrackedParameter("dphi_EB"); - deta_EB_ = iConfig.getUntrackedParameter("deta_EB"); - hoe_EB_ = iConfig.getUntrackedParameter("hoe_EB"); - cIso_EB_ = iConfig.getUntrackedParameter("cIso_EB", 1000.); - tip_bspot_EB_ = iConfig.getUntrackedParameter("tip_bspot_EB", 1000.); - eop_EB_ = iConfig.getUntrackedParameter("eop_EB", 1000.); - // - sihih_EE_ = iConfig.getUntrackedParameter("sihih_EE"); - dphi_EE_ = iConfig.getUntrackedParameter("dphi_EE"); - deta_EE_ = iConfig.getUntrackedParameter("deta_EE"); - hoe_EE_ = iConfig.getUntrackedParameter("hoe_EE"); - cIso_EE_ = iConfig.getUntrackedParameter("cIso_EE", 1000.); - tip_bspot_EE_ = iConfig.getUntrackedParameter("tip_bspot_EE", 1000.); - eop_EE_ = iConfig.getUntrackedParameter("eop_EE", 1000.); - // - trackIsoUser_EB_ = iConfig.getUntrackedParameter("trackIsoUser_EB", 1000.); - ecalIsoUser_EB_ = iConfig.getUntrackedParameter("ecalIsoUser_EB", 1000.); - hcalIsoUser_EB_ = iConfig.getUntrackedParameter("hcalIsoUser_EB", 1000.); - trackIsoUser_EE_ = iConfig.getUntrackedParameter("trackIsoUser_EE", 1000.); - ecalIsoUser_EE_ = iConfig.getUntrackedParameter("ecalIsoUser_EE", 1000.); - hcalIsoUser_EE_ = iConfig.getUntrackedParameter("hcalIsoUser_EE", 1000.); - // - trackIso_EB_inv = iConfig.getUntrackedParameter("trackIso_EB_inv", false); - ecalIso_EB_inv = iConfig.getUntrackedParameter("ecalIso_EB_inv", false); - hcalIso_EB_inv = iConfig.getUntrackedParameter("hcalIso_EB_inv", false); - // - trackIso_EE_inv = iConfig.getUntrackedParameter("trackIso_EE_inv", false); - ecalIso_EE_inv = iConfig.getUntrackedParameter("ecalIso_EE_inv", false); - hcalIso_EE_inv = iConfig.getUntrackedParameter("hcalIso_EE_inv", false); - // - sihih_EB_inv = iConfig.getUntrackedParameter("sihih_EB_inv", false); - dphi_EB_inv = iConfig.getUntrackedParameter("dphi_EB_inv", false); - deta_EB_inv = iConfig.getUntrackedParameter("deta_EB_inv", false); - hoe_EB_inv = iConfig.getUntrackedParameter("hoe_EB_inv", false); - cIso_EB_inv = iConfig.getUntrackedParameter("cIso_EB_inv", false); - tip_bspot_EB_inv = iConfig.getUntrackedParameter("tip_bspot_EB_inv", false); - eop_EB_inv = iConfig.getUntrackedParameter("eop_EB_inv", false); - // - sihih_EE_inv = iConfig.getUntrackedParameter("sihih_EE_inv", false); - dphi_EE_inv = iConfig.getUntrackedParameter("dphi_EE_inv", false); - deta_EE_inv = iConfig.getUntrackedParameter("deta_EE_inv", false); - hoe_EE_inv = iConfig.getUntrackedParameter("hoe_EE_inv", false); - cIso_EE_inv = iConfig.getUntrackedParameter("cIso_EE_inv", false); - tip_bspot_EE_inv = iConfig.getUntrackedParameter("tip_bspot_EE_inv", false); - eop_EE_inv = iConfig.getUntrackedParameter("eop_EE_inv", false); - // - trackIsoUser_EB_inv = iConfig.getUntrackedParameter("trackIsoUser_EB_inv", false); - ecalIsoUser_EB_inv = iConfig.getUntrackedParameter("ecalIsoUser_EB_inv", false); - hcalIsoUser_EB_inv = iConfig.getUntrackedParameter("hcalIsoUser_EB_inv", false); - trackIsoUser_EE_inv = iConfig.getUntrackedParameter("trackIsoUser_EE_inv", false); - ecalIsoUser_EE_inv = iConfig.getUntrackedParameter("ecalIsoUser_EE_inv", false); - hcalIsoUser_EE_inv = iConfig.getUntrackedParameter("hcalIsoUser_EE_inv", false); -} - -WenuPlots::~WenuPlots() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) -} - -// -// member functions -// - -// ------------ method called to for each event ------------ -void WenuPlots::analyze(const edm::Event &iEvent, const edm::EventSetup &es) { - using namespace std; - // - // Get the collections here - // - edm::Handle WenuCands; - iEvent.getByToken(wenuCollectionToken_, WenuCands); - - if (not WenuCands.isValid()) { - cout << "Warning: no wenu candidates in this event..." << endl; - return; - } - const pat::CompositeCandidateCollection *wcands = WenuCands.product(); - const pat::CompositeCandidateCollection::const_iterator wenuIter = wcands->begin(); - const pat::CompositeCandidate wenu = *wenuIter; - // - // get the parts of the composite candidate: - const pat::Electron *myElec = dynamic_cast(wenu.daughter("electron")); - const pat::MET *myMet = dynamic_cast(wenu.daughter("met")); - const pat::MET *myPfMet = dynamic_cast(wenu.daughter("pfmet")); - const pat::MET *myTcMet = dynamic_cast(wenu.daughter("tcmet")); - // _______________________________________________________________________ - // - // VBTF Root tuple production -------------------------------------------- - // _______________________________________________________________________ - // - // ....................................................................... - // vbtf produces 2 root tuples: one that contains the highest pT electron - // that passes a user defined selection and one other with only the - // preselection criteria applied - // ....................................................................... - // - // fill the tree variables - runNumber = iEvent.run(); - eventNumber = Long64_t(iEvent.eventAuxiliary().event()); - lumiSection = (Int_t)iEvent.luminosityBlock(); - // - ele_sc_eta = (Float_t)myElec->superCluster()->eta(); - ele_sc_phi = (Float_t)myElec->superCluster()->phi(); - double scx = myElec->superCluster()->x(); - double scy = myElec->superCluster()->y(); - double scz = myElec->superCluster()->z(); - ele_sc_rho = (Float_t)sqrt(scx * scx + scy * scy + scz * scz); - ele_sc_energy = (Float_t)myElec->superCluster()->energy(); - ele_sc_gsf_et = (Float_t)myElec->superCluster()->energy() / TMath::CosH(myElec->gsfTrack()->eta()); - ele_cand_eta = (Float_t)myElec->eta(); - ele_cand_phi = (Float_t)myElec->phi(); - ele_cand_et = (Float_t)myElec->et(); - // - ele_iso_track = (Float_t)myElec->dr03IsolationVariables().tkSumPt / ele_cand_et; - ele_iso_ecal = (Float_t)myElec->dr03IsolationVariables().ecalRecHitSumEt / ele_cand_et; - ele_iso_hcal = (Float_t)(myElec->dr03IsolationVariables().hcalDepth1TowerSumEt + - myElec->dr03IsolationVariables().hcalDepth2TowerSumEt) / - ele_cand_et; - // - ele_id_sihih = (Float_t)myElec->sigmaIetaIeta(); - ele_id_deta = (Float_t)myElec->deltaEtaSuperClusterTrackAtVtx(); - ele_id_dphi = (Float_t)myElec->deltaPhiSuperClusterTrackAtVtx(); - ele_id_hoe = (Float_t)myElec->hadronicOverEm(); - // - ele_cr_mhitsinner = myElec->gsfTrack()->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS); - ele_cr_dcot = myElec->convDcot(); - ele_cr_dist = myElec->convDist(); - // - ele_vx = (Float_t)myElec->vx(); - ele_vy = (Float_t)myElec->vy(); - ele_vz = (Float_t)myElec->vz(); - // get the primary vtx information - // no BS - edm::Handle > pVtx; - iEvent.getByToken(PrimaryVerticesCollectionToken_, pVtx); - const std::vector Vtx = *(pVtx.product()); - // with BS - edm::Handle > pVtxBS; - iEvent.getByToken(PrimaryVerticesCollectionBSToken_, pVtxBS); - const std::vector VtxBS = *(pVtxBS.product()); - if (!Vtx.empty()) { - pv_x = Float_t(Vtx[0].position().x()); - pv_y = Float_t(Vtx[0].position().y()); - pv_z = Float_t(Vtx[0].position().z()); - ele_tip_pv = myElec->gsfTrack()->dxy(Vtx[0].position()); - } else { - pv_x = -999999.; - pv_y = -999999.; - pv_z = -999999.; - ele_tip_pv = -999999.; - } - if (!VtxBS.empty()) { - pvbs_x = Float_t(VtxBS[0].position().x()); - pvbs_y = Float_t(VtxBS[0].position().y()); - pvbs_z = Float_t(VtxBS[0].position().z()); - ele_tip_pvbs = myElec->gsfTrack()->dxy(VtxBS[0].position()); - } else { - pvbs_x = -999999.; - pvbs_y = -999999.; - pvbs_z = -999999.; - ele_tip_pvbs = -999999.; - } - - // - ele_gsfCharge = (Int_t)myElec->gsfTrack()->charge(); - // must keep the ctf track collection, i.e. general track collection - ele_ctfCharge = (Int_t)myElec->closestCtfTrackRef().isNonnull() ? myElec->closestCtfTrackRef()->charge() : -9999; - ele_scPixCharge = (Int_t)myElec->chargeInfo().scPixCharge; - ele_eop = (Float_t)myElec->eSuperClusterOverP(); - ele_tip_bs = (Float_t)-myElec->dB(); - //ele_tip_pv = myElec->userFloat("ele_tip_pv"); - ele_pin = (Float_t)myElec->trackMomentumAtVtx().R(); - ele_pout = (Float_t)myElec->trackMomentumOut().R(); - // - event_caloMET = (Float_t)myMet->et(); - event_pfMET = (Float_t)myPfMet->et(); - event_tcMET = (Float_t)myTcMet->et(); - event_caloMET_phi = (Float_t)myMet->phi(); - event_pfMET_phi = (Float_t)myPfMet->phi(); - event_tcMET_phi = (Float_t)myTcMet->phi(); - event_caloSumEt = (Float_t)myMet->sumEt(); - event_pfSumEt = (Float_t)myPfMet->sumEt(); - event_tcSumEt = (Float_t)myTcMet->sumEt(); - // transverse mass for the user's convenience - event_caloMT = (Float_t)TMath::Sqrt( - 2. * (ele_sc_gsf_et * event_caloMET - - (ele_sc_gsf_et * TMath::Cos(ele_sc_phi) * event_caloMET * TMath::Cos(event_caloMET_phi) + - ele_sc_gsf_et * TMath::Sin(ele_sc_phi) * event_caloMET * TMath::Sin(event_caloMET_phi)))); - event_pfMT = - (Float_t)TMath::Sqrt(2. * (ele_sc_gsf_et * event_pfMET - - (ele_sc_gsf_et * TMath::Cos(ele_sc_phi) * event_pfMET * TMath::Cos(event_pfMET_phi) + - ele_sc_gsf_et * TMath::Sin(ele_sc_phi) * event_pfMET * TMath::Sin(event_pfMET_phi)))); - event_tcMT = - (Float_t)TMath::Sqrt(2. * (ele_sc_gsf_et * event_tcMET - - (ele_sc_gsf_et * TMath::Cos(ele_sc_phi) * event_tcMET * TMath::Cos(event_tcMET_phi) + - ele_sc_gsf_et * TMath::Sin(ele_sc_phi) * event_tcMET * TMath::Sin(event_tcMET_phi)))); - event_datasetTag = DatasetTag_; - // jet information - only if the user asks for it - // keep the 5 highest et jets of the event that are further than DR> DRJetFromElectron_ - if (includeJetInformationInNtuples_) { - // initialize the array of the jet information - for (int i = 0; i < 5; ++i) { - calojet_et[i] = -999999; - calojet_eta[i] = -999999; - calojet_phi[i] = -999999; - pfjet_et[i] = -999999; - pfjet_eta[i] = -999999; - pfjet_phi[i] = -999999; - } - // get hold of the jet collections - edm::Handle pCaloJets; - edm::Handle pPfJets; - iEvent.getByToken(caloJetCollectionToken_, pCaloJets); - iEvent.getByToken(pfJetCollectionToken_, pPfJets); - // - // calo jets now: - if (pCaloJets.isValid()) { - const reco::CaloJetCollection *caloJets = pCaloJets.product(); - int nCaloJets = (int)caloJets->size(); - if (nCaloJets > 0) { - float *nCaloET = new float[nCaloJets]; - float *nCaloEta = new float[nCaloJets]; - float *nCaloPhi = new float[nCaloJets]; - reco::CaloJetCollection::const_iterator cjet = caloJets->begin(); - int counter = 0; - for (; cjet != caloJets->end(); ++cjet) { - // store them only if they are far enough from the electron - Double_t DR = reco::deltaR(cjet->eta(), cjet->phi(), myElec->gsfTrack()->eta(), ele_sc_phi); - if (DR > DRJetFromElectron_) { - nCaloET[counter] = cjet->et(); - nCaloEta[counter] = cjet->eta(); - nCaloPhi[counter] = cjet->phi(); - ++counter; - } - } - int *caloJetSorted = new int[nCaloJets]; - TMath::Sort(nCaloJets, nCaloET, caloJetSorted, true); - for (int i = 0; i < nCaloJets; ++i) { - if (i >= 5) - break; - calojet_et[i] = nCaloET[caloJetSorted[i]]; - calojet_eta[i] = nCaloEta[caloJetSorted[i]]; - calojet_phi[i] = nCaloPhi[caloJetSorted[i]]; - } - delete[] caloJetSorted; - delete[] nCaloET; - delete[] nCaloEta; - delete[] nCaloPhi; - } - } else { - std::cout << "WenuPlots: Could not get caloJet collection with name " << caloJetCollectionTag_ << std::endl; - } - // - // pf jets now: - if (pPfJets.isValid()) { - const reco::PFJetCollection *pfJets = pPfJets.product(); - int nPfJets = (int)pfJets->size(); - if (nPfJets > 0) { - float *nPfET = new float[nPfJets]; - float *nPfEta = new float[nPfJets]; - float *nPfPhi = new float[nPfJets]; - reco::PFJetCollection::const_iterator pjet = pfJets->begin(); - int counter = 0; - for (; pjet != pfJets->end(); ++pjet) { - // store them only if they are far enough from the electron - Double_t DR = reco::deltaR(pjet->eta(), pjet->phi(), myElec->gsfTrack()->eta(), ele_sc_phi); - if (DR > DRJetFromElectron_) { - nPfET[counter] = pjet->et(); - nPfEta[counter] = pjet->eta(); - nPfPhi[counter] = pjet->phi(); - ++counter; - } - } - int *pfJetSorted = new int[nPfJets]; - TMath::Sort(nPfJets, nPfET, pfJetSorted, true); - for (int i = 0; i < nPfJets; ++i) { - if (i >= 5) - break; - pfjet_et[i] = nPfET[pfJetSorted[i]]; - pfjet_eta[i] = nPfEta[pfJetSorted[i]]; - pfjet_phi[i] = nPfPhi[pfJetSorted[i]]; - } - delete[] pfJetSorted; - delete[] nPfET; - delete[] nPfEta; - delete[] nPfPhi; - } - } else { - std::cout << "WenuPlots: Could not get pfJet collection with name " << pfJetCollectionTag_ << std::endl; - } - } - // second electron information - in preselected ntuple only - ele2nd_sc_gsf_et = -1; // also in sele tree - ele2nd_sc_eta = -1; - ele2nd_sc_phi = -1; - ele2nd_sc_rho = 0; - ele2nd_cand_eta = 0; - ele2nd_cand_phi = 0; - ele2nd_cand_et = 0; - ele2nd_pin = 0; - ele2nd_pout = 0; - ele2nd_passes_selection = -1; // also in sele tree - ele2nd_ecalDriven = 0; - // - // second electron selection variables: only if requested by the user - // - ele2nd_iso_track = 0; - ele2nd_iso_ecal = 0; - ele2nd_iso_hcal = 0; - // - ele2nd_id_sihih = 0; - ele2nd_id_deta = 0; - ele2nd_id_dphi = 0; - ele2nd_id_hoe = 0; - // - ele2nd_cr_mhitsinner = 0; - ele2nd_cr_dcot = 0; - ele2nd_cr_dist = 0; - // - ele2nd_vx = 0; - ele2nd_vy = 0; - ele2nd_vz = 0; - // - ele2nd_gsfCharge = 0; - // must keep the ctf track collection, i.e. general track collection - ele2nd_ctfCharge = 0; - ele2nd_scPixCharge = 0; - ele2nd_eop = 0; - ele2nd_tip_bs = 0; - ele2nd_tip_pv = 0; - ele2nd_hltmatched_dr = 0; - // - // convention for ele2nd_passes_selection - // 0 passes no selection - // 1 passes WP95 - // 2 passes WP90 - // 3 passes WP85 - // 4 passes WP80 - // 5 passes WP70 - // 6 passes WP60 - if (myElec->userInt("hasSecondElectron") == 1 && storeExtraInformation_) { - const pat::Electron *mySecondElec = dynamic_cast(wenu.daughter("secondElec")); - ele2nd_sc_gsf_et = (Float_t)mySecondElec->superCluster()->energy() / TMath::CosH(mySecondElec->gsfTrack()->eta()); - - ele2nd_sc_eta = (Float_t)mySecondElec->superCluster()->eta(); - ele2nd_sc_phi = (Float_t)mySecondElec->superCluster()->phi(); - double sc2x = mySecondElec->superCluster()->x(); - double sc2y = mySecondElec->superCluster()->y(); - double sc2z = mySecondElec->superCluster()->z(); - ele2nd_sc_rho = (Float_t)sqrt(sc2x * sc2x + sc2y * sc2y + sc2z * sc2z); - ele2nd_cand_eta = (Float_t)mySecondElec->eta(); - ele2nd_cand_phi = (Float_t)mySecondElec->phi(); - ele2nd_cand_et = (Float_t)mySecondElec->et(); - ele2nd_pin = (Float_t)mySecondElec->trackMomentumAtVtx().R(); - ; - ele2nd_pout = (Float_t)mySecondElec->trackMomentumOut().R(); - ele2nd_ecalDriven = (Int_t)mySecondElec->ecalDrivenSeed(); - // check the selections - bool isIDCalc = mySecondElec->isElectronIDAvailable("simpleEleId95relIso") && - mySecondElec->isElectronIDAvailable("simpleEleId90relIso") && - mySecondElec->isElectronIDAvailable("simpleEleId85relIso") && - mySecondElec->isElectronIDAvailable("simpleEleId80relIso") && - mySecondElec->isElectronIDAvailable("simpleEleId70relIso") && - mySecondElec->isElectronIDAvailable("simpleEleId60relIso"); - if (isIDCalc) { - ele2nd_passes_selection = 0; - if (fabs(mySecondElec->electronID("simpleEleId60relIso") - 7) < 0.1) - ele2nd_passes_selection = 6; - else if (fabs(mySecondElec->electronID("simpleEleId70relIso") - 7) < 0.1) - ele2nd_passes_selection = 5; - else if (fabs(mySecondElec->electronID("simpleEleId80relIso") - 7) < 0.1) - ele2nd_passes_selection = 4; - else if (fabs(mySecondElec->electronID("simpleEleId85relIso") - 7) < 0.1) - ele2nd_passes_selection = 3; - else if (fabs(mySecondElec->electronID("simpleEleId90relIso") - 7) < 0.1) - ele2nd_passes_selection = 2; - else if (fabs(mySecondElec->electronID("simpleEleId95relIso") - 7) < 0.1) - ele2nd_passes_selection = 1; - } - if (storeAllSecondElectronVariables_) { - ele2nd_iso_track = (Float_t)mySecondElec->dr03IsolationVariables().tkSumPt / ele2nd_cand_et; - ele2nd_iso_ecal = (Float_t)mySecondElec->dr03IsolationVariables().ecalRecHitSumEt / ele2nd_cand_et; - ele2nd_iso_hcal = (Float_t)(mySecondElec->dr03IsolationVariables().hcalDepth1TowerSumEt + - mySecondElec->dr03IsolationVariables().hcalDepth2TowerSumEt) / - ele2nd_cand_et; - ele2nd_id_sihih = (Float_t)mySecondElec->sigmaIetaIeta(); - ele2nd_id_deta = (Float_t)mySecondElec->deltaEtaSuperClusterTrackAtVtx(); - ele2nd_id_dphi = (Float_t)mySecondElec->deltaPhiSuperClusterTrackAtVtx(); - ele2nd_id_hoe = (Float_t)mySecondElec->hadronicOverEm(); - - ele2nd_cr_mhitsinner = - mySecondElec->gsfTrack()->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS); - ele2nd_cr_dcot = mySecondElec->convDcot(); - ele2nd_cr_dist = mySecondElec->convDist(); - - ele2nd_vx = (Float_t)mySecondElec->vx(); - ele2nd_vy = (Float_t)mySecondElec->vy(); - ele2nd_vz = (Float_t)mySecondElec->vz(); - ele2nd_gsfCharge = (Int_t)mySecondElec->gsfTrack()->charge(); - // must keep the ctf track collection, i.e. general track collection - ele2nd_ctfCharge = - (Int_t)mySecondElec->closestCtfTrackRef().isNonnull() ? mySecondElec->closestCtfTrackRef()->charge() : -9999; - ele2nd_scPixCharge = (Int_t)mySecondElec->chargeInfo().scPixCharge; - ele2nd_eop = (Float_t)mySecondElec->eSuperClusterOverP(); - ele2nd_tip_bs = (Float_t)-mySecondElec->dB(); - if (!Vtx.empty()) { - ele2nd_tip_pv = mySecondElec->gsfTrack()->dxy(Vtx[0].position()); - } - if (!VtxBS.empty()) { - ele2nd_tip_pvbs = mySecondElec->gsfTrack()->dxy(VtxBS[0].position()); - } - ele2nd_hltmatched_dr = mySecondElec->userFloat("HLTMatchingDR"); - } - } - // some extra information - event_triggerDecision = -1; - ele_hltmatched_dr = -999.; - VtxTracksSize.clear(); - VtxNormalizedChi2.clear(); - VtxTracksSizeBS.clear(); - VtxNormalizedChi2BS.clear(); - if (storeExtraInformation_) { - if (myElec->hasUserFloat("HLTMatchingDR")) { - ele_hltmatched_dr = myElec->userFloat("HLTMatchingDR"); - } - if (myElec->hasUserInt("triggerDecision")) { - event_triggerDecision = myElec->userInt("triggerDecision"); - } - // extra information related to the primary vtx collection - for (Int_t i = 0; i < (Int_t)Vtx.size(); ++i) { - VtxTracksSize.push_back(Vtx[i].tracksSize()); - VtxNormalizedChi2.push_back(Vtx[i].normalizedChi2()); - } - for (Int_t i = 0; i < (Int_t)VtxBS.size(); ++i) { - VtxTracksSizeBS.push_back(VtxBS[i].tracksSize()); - VtxNormalizedChi2BS.push_back(VtxBS[i].normalizedChi2()); - } - } - // if the electron passes the selection - // it is meant to be a precalculated selection here, in order to include - // conversion rejection too - if (CheckCuts(myElec) && myElec->userInt("failsSecondElectronCut") == 0) { - vbtfSele_tree->Fill(); - } - vbtfPresele_tree->Fill(); - - // - // _______________________________________________________________________ - // - // histogram production -------------------------------------------------- - // _______________________________________________________________________ - // - // if you want some preselection: Conv rejection, hit pattern - if (usePreselection_) { - if (not PassPreselectionCriteria(myElec)) - return; - } - // - // some variables here - Double_t scEta = myElec->superCluster()->eta(); - Double_t scPhi = myElec->superCluster()->phi(); - Double_t scEt = myElec->superCluster()->energy() / TMath::CosH(scEta); - Double_t met = myMet->et(); - Double_t metPhi = myMet->phi(); - Double_t mt = TMath::Sqrt(2.0 * scEt * met * - (1.0 - (TMath::Cos(scPhi) * TMath::Cos(metPhi) + TMath::Sin(scPhi) * TMath::Sin(metPhi)))); - - Double_t trackIso = myElec->userIsolation(pat::TrackIso); - Double_t ecalIso = myElec->userIsolation(pat::EcalIso); - Double_t hcalIso = myElec->userIsolation(pat::HcalIso); - Double_t sihih = myElec->scSigmaIEtaIEta(); - Double_t dphi = myElec->deltaPhiSuperClusterTrackAtVtx(); - Double_t deta = myElec->deltaEtaSuperClusterTrackAtVtx(); - Double_t HoE = myElec->hadronicOverEm(); - // - // - // - // the inverted selection plots: - // only if not using precalcID - if (not usePrecalcID_) { - if (CheckCutsInverse(myElec)) { - //std::cout << "-----------------INVERSION-----------passed" << std::endl; - h_met_inverse->Fill(met); - h_mt_inverse->Fill(mt); - if (TMath::Abs(scEta) < 1.479) { - h_met_inverse_EB->Fill(met); - h_mt_inverse_EB->Fill(mt); - } - if (TMath::Abs(scEta) > 1.479) { - h_met_inverse_EE->Fill(met); - h_mt_inverse_EE->Fill(mt); - } - } - } - // - /////////////////////////////////////////////////////////////////////// - // - // N-1 plots: plot some variable so that all the other cuts are satisfied - // - // make these plots only if you have the normal selection, not pre-calced - if (not usePrecalcID_) { - if (TMath::Abs(scEta) < 1.479) { // reminder: the precise fiducial cuts are in - // in the filter - if (CheckCutsNminusOne(myElec, 0)) - h_trackIso_eb_NmOne->Fill(trackIso); - } else { - if (CheckCutsNminusOne(myElec, 0)) - h_trackIso_ee_NmOne->Fill(trackIso); - } - } - // - // SELECTION APPLICATION - // - // from here on you have only events that pass the full selection - if (not CheckCuts(myElec)) - return; - ////////////////////////////////////////////////////////////////////// - - h_met->Fill(met); - h_mt->Fill(mt); - if (TMath::Abs(scEta) < 1.479) { - h_met_EB->Fill(met); - h_mt_EB->Fill(mt); - - h_EB_trkiso->Fill(trackIso); - h_EB_ecaliso->Fill(ecalIso); - h_EB_hcaliso->Fill(hcalIso); - h_EB_sIetaIeta->Fill(sihih); - h_EB_dphi->Fill(dphi); - h_EB_deta->Fill(deta); - h_EB_HoE->Fill(HoE); - } - if (TMath::Abs(scEta) > 1.479) { - h_met_EE->Fill(met); - h_mt_EE->Fill(mt); - - h_EE_trkiso->Fill(trackIso); - h_EE_ecaliso->Fill(ecalIso); - h_EE_hcaliso->Fill(hcalIso); - h_EE_sIetaIeta->Fill(sihih); - h_EE_dphi->Fill(dphi); - h_EE_deta->Fill(deta); - h_EE_HoE->Fill(HoE); - } - // uncomment for debugging purposes - /* - std::cout << "tracIso: " << trackIso << ", " << myElec->trackIso() << ", ecaliso: " << ecalIso - << ", " << myElec->ecalIso() << ", hcaliso: " << hcalIso << ", " << myElec->hcalIso() - << ", mishits: " - << myElec->gsfTrack()->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS) - << std::endl; - std::cout << "Electron ID: 95relIso=" << myElec->electronID("simpleEleId95relIso") - << " 90relIso=" << myElec->electronID("simpleEleId90relIso") - << " 85relIso=" << myElec->electronID("simpleEleId85relIso") - << " 80relIso=" << myElec->electronID("simpleEleId80relIso") - << " 70relIso=" << myElec->electronID("simpleEleId70relIso") - << " 60relIso=" << myElec->electronID("simpleEleId60relIso") - << " 95cIso=" << myElec->electronID("simpleEleId95cIso") - << " 90cIso=" << myElec->electronID("simpleEleId90cIso") - << " 85cIso=" << myElec->electronID("simpleEleId85cIso") - << " 80cIso=" << myElec->electronID("simpleEleId80cIso") - << " 70cIso=" << myElec->electronID("simpleEleId70cIso") - << " 60cIso=" << myElec->electronID("simpleEleId60cIso") - << std::endl; - std::cout << "mySelection: " << (CheckCuts(myElec) && PassPreselectionCriteria(myElec)) << endl; - */ - h_scEt->Fill(scEt); - h_scEta->Fill(scEta); - h_scPhi->Fill(scPhi); -} - -/*********************************************************************** - * - * Checking Cuts and making selections: - * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - * all the available methods take input a pointer to a pat::Electron - * - * Bool_t CheckCuts(const pat::Electron *): - * true if the input selection is satisfied - * Bool_t CheckCutsInverse(const pat::Electron *ele): - * true if the cuts with inverted the ones specified in the - * cfg are satisfied - * Bool_t CheckCutsNminusOne(const pat::Electron *ele, int jj): - * true if all the cuts with cut #jj ignored are satisfied - * - ***********************************************************************/ -Bool_t WenuPlots::CheckCuts(const pat::Electron *ele) { - if (usePrecalcID_) { - if (not ele->isElectronIDAvailable(usePrecalcIDType_)) { - std::cout << "Error! not existing ID with name: " << usePrecalcIDType_ << " function will return true!" - << std::endl; - return true; - } - Double_t val = ele->electronID(usePrecalcIDType_); - if (usePrecalcIDSign_ == "<") { - return val < usePrecalcIDValue_; - } else if (usePrecalcIDSign_ == ">") { - return val > usePrecalcIDValue_; - } else { // equality: it returns 0,1,2,3 but as float - return TMath::Abs(val - usePrecalcIDValue_) < 0.1; - } - } else { - for (int i = 0; i < nBarrelVars_; ++i) { - if (not CheckCut(ele, i)) - return false; - } - return true; - } -} -///////////////////////////////////////////////////////////////////////// - -Bool_t WenuPlots::CheckCutsInverse(const pat::Electron *ele) { - for (int i = 0; i < nBarrelVars_; ++i) { - if (CheckCutInv(ele, i) == false) - return false; - } - return true; -} -///////////////////////////////////////////////////////////////////////// -Bool_t WenuPlots::CheckCutsNminusOne(const pat::Electron *ele, int jj) { - for (int i = 0; i < nBarrelVars_; ++i) { - if (i == jj) - continue; - if (CheckCut(ele, i) == false) - return false; - } - return true; -} -///////////////////////////////////////////////////////////////////////// -Bool_t WenuPlots::CheckCut(const pat::Electron *ele, int i) { - Double_t fabseta = TMath::Abs(ele->superCluster()->eta()); - if (fabseta < 1.479) { - return TMath::Abs(ReturnCandVar(ele, i)) < CutVars_[i]; - } - return TMath::Abs(ReturnCandVar(ele, i)) < CutVars_[i + nBarrelVars_]; -} -///////////////////////////////////////////////////////////////////////// -Bool_t WenuPlots::CheckCutInv(const pat::Electron *ele, int i) { - Double_t fabseta = TMath::Abs(ele->superCluster()->eta()); - if (fabseta < 1.479) { - if (InvVars_[i]) - return TMath::Abs(ReturnCandVar(ele, i)) > CutVars_[i]; - return TMath::Abs(ReturnCandVar(ele, i)) < CutVars_[i]; - } - if (InvVars_[i + nBarrelVars_]) { - if (InvVars_[i]) - return TMath::Abs(ReturnCandVar(ele, i)) > CutVars_[i + nBarrelVars_]; - } - return TMath::Abs(ReturnCandVar(ele, i)) < CutVars_[i + nBarrelVars_]; -} -//////////////////////////////////////////////////////////////////////// -Double_t WenuPlots::ReturnCandVar(const pat::Electron *ele, int i) { - if (i == 0) - return ele->dr03TkSumPt() / ele->p4().Pt(); - else if (i == 1) - return ele->dr03EcalRecHitSumEt() / ele->p4().Pt(); - else if (i == 2) - return ele->dr03HcalTowerSumEt() / ele->p4().Pt(); - else if (i == 3) - return ele->scSigmaIEtaIEta(); - else if (i == 4) - return ele->deltaPhiSuperClusterTrackAtVtx(); - else if (i == 5) - return ele->deltaEtaSuperClusterTrackAtVtx(); - else if (i == 6) - return ele->hadronicOverEm(); - else if (i == 7) { - if (ele->isEB()) { - return (ele->dr03TkSumPt() + std::max(float(0.), ele->dr03EcalRecHitSumEt() - 1) + ele->dr03HcalTowerSumEt()) / - ele->p4().Pt(); - } else { // pedestal subtraction is only in barrel - return (ele->dr03TkSumPt() + ele->dr03EcalRecHitSumEt() + ele->dr03HcalTowerSumEt()) / ele->p4().Pt(); - } - } - // else if (i==8) return ele->gsfTrack()->dxy(bspotPosition_); - else if (i == 8) - return fabs(ele->dB()); - else if (i == 9) - return ele->eSuperClusterOverP(); - else if (i == 10) - return ele->userIsolation(pat::TrackIso); - else if (i == 11) - return ele->userIsolation(pat::EcalIso); - else if (i == 12) - return ele->userIsolation(pat::HcalIso); - std::cout << "Error in WenuPlots::ReturnCandVar" << std::endl; - return -1.; -} -///////////////////////////////////////////////////////////////////////// -Bool_t WenuPlots::PassPreselectionCriteria(const pat::Electron *ele) { - Bool_t passConvRej = true; - Bool_t passPXB = true; - Bool_t passEMH = true; - if (useConversionRejection_) { - if (ele->hasUserInt("PassConversionRejection")) { - //std::cout << "con rej: " << ele->userInt("PassConversionRejection") << std::endl; - if (not(ele->userInt("PassConversionRejection") == 1)) - passConvRej = false; - } else { - std::cout << "WenuPlots: WARNING: Conversion Rejection Request Disregarded: " - << "you must calculate it before " << std::endl; - // return true; - } - } - if (useValidFirstPXBHit_) { - if (ele->hasUserInt("PassValidFirstPXBHit")) { - //std::cout << "valid1stPXB: " << ele->userInt("PassValidFirstPXBHit") << std::endl; - if (not(ele->userInt("PassValidFirstPXBHit") == 1)) - passPXB = false; - } else { - std::cout << "WenuPlots: WARNING: Valid First PXB Hit Request Disregarded: " - << "you must calculate it before " << std::endl; - // return true; - } - } - if (useExpectedMissingHits_) { - if (ele->hasUserInt("NumberOfExpectedMissingHits")) { - //std::cout << "missing hits: " << ele->userInt("NumberOfExpectedMissingHits") << std::endl; - if (ele->userInt("NumberOfExpectedMissingHits") > maxNumberOfExpectedMissingHits_) - passEMH = false; - } else { - std::cout << "WenuPlots: WARNING: Number of Expected Missing Hits Request Disregarded: " - << "you must calculate it before " << std::endl; - // return true; - } - } - return passConvRej && passPXB && passEMH; -} -// ------------ method called once each job just before starting event loop -- -void WenuPlots::beginJob() { - //std::cout << "In beginJob()" << std::endl; - // Double_t Pi = TMath::Pi(); - // TString histo_file = outputFile_; - // histofile = new TFile( histo_file,"RECREATE"); - - h_met = new TH1F("h_met", "h_met", 200, 0, 200); - h_met_inverse = new TH1F("h_met_inverse", "h_met_inverse", 200, 0, 200); - - h_mt = new TH1F("h_mt", "h_mt", 200, 0, 200); - h_mt_inverse = new TH1F("h_mt_inverse", "h_mt_inverse", 200, 0, 200); - - h_met_EB = new TH1F("h_met_EB", "h_met_EB", 200, 0, 200); - h_met_inverse_EB = new TH1F("h_met_inverse_EB", "h_met_inverse_EB", 200, 0, 200); - - h_mt_EB = new TH1F("h_mt_EB", "h_mt_EB", 200, 0, 200); - h_mt_inverse_EB = new TH1F("h_mt_inverse_EB", "h_mt_inverse_EB", 200, 0, 200); - - h_met_EE = new TH1F("h_met_EE", "h_met_EE", 200, 0, 200); - h_met_inverse_EE = new TH1F("h_met_inverse_EE", "h_met_inverse_EE", 200, 0, 200); - - h_mt_EE = new TH1F("h_mt_EE", "h_mt_EE", 200, 0, 200); - h_mt_inverse_EE = new TH1F("h_mt_inverse_EE", "h_mt_inverse_EE", 200, 0, 200); - - h_scEt = new TH1F("h_scEt", "h_scEt", 200, 0, 100); - h_scEta = new TH1F("h_scEta", "h_scEta", 200, -3, 3); - h_scPhi = new TH1F("h_scPhi", "h_scPhi", 200, -4, 4); - - //VALIDATION PLOTS - //EB - h_EB_trkiso = new TH1F("h_EB_trkiso", "h_EB_trkiso", 200, 0.0, 9.0); - h_EB_ecaliso = new TH1F("h_EB_ecaliso", "h_EB_ecaliso", 200, 0.0, 9.0); - h_EB_hcaliso = new TH1F("h_EB_hcaliso", "h_EB_hcaliso", 200, 0.0, 9.0); - h_EB_sIetaIeta = new TH1F("h_EB_sIetaIeta", "h_EB_sIetaIeta", 200, 0.0, 0.02); - h_EB_dphi = new TH1F("h_EB_dphi", "h_EB_dphi", 200, -0.03, 0.03); - h_EB_deta = new TH1F("h_EB_deta", "h_EB_deta", 200, -0.01, 0.01); - h_EB_HoE = new TH1F("h_EB_HoE", "h_EB_HoE", 200, 0.0, 0.2); - //EE - h_EE_trkiso = new TH1F("h_EE_trkiso", "h_EE_trkiso", 200, 0.0, 9.0); - h_EE_ecaliso = new TH1F("h_EE_ecaliso", "h_EE_ecaliso", 200, 0.0, 9.0); - h_EE_hcaliso = new TH1F("h_EE_hcaliso", "h_EE_hcaliso", 200, 0.0, 9.0); - h_EE_sIetaIeta = new TH1F("h_EE_sIetaIeta", "h_EE_sIetaIeta", 200, 0.0, 0.1); - h_EE_dphi = new TH1F("h_EE_dphi", "h_EE_dphi", 200, -0.03, 0.03); - h_EE_deta = new TH1F("h_EE_deta", "h_EE_deta", 200, -0.01, 0.01); - h_EE_HoE = new TH1F("h_EE_HoE", "h_EE_HoE", 200, 0.0, 0.2); - - // - // - h_trackIso_eb_NmOne = new TH1F("h_trackIso_eb_NmOne", "trackIso EB N-1 plot", 80, 0, 8); - h_trackIso_ee_NmOne = new TH1F("h_trackIso_ee_NmOne", "trackIso EE N-1 plot", 80, 0, 8); - - // if you add some new variable change the nBarrelVars_ accordingly - // reminder: in the current implementation you must have the same number - // of vars in both barrel and endcaps - nBarrelVars_ = 13; - // - // Put EB variables together and EE variables together - // number of barrel variables = number of endcap variable - // if you don't want to use some variable put a very high cut - CutVars_.push_back(trackIso_EB_); //0 - CutVars_.push_back(ecalIso_EB_); //1 - CutVars_.push_back(hcalIso_EB_); //2 - CutVars_.push_back(sihih_EB_); //3 - CutVars_.push_back(dphi_EB_); //4 - CutVars_.push_back(deta_EB_); //5 - CutVars_.push_back(hoe_EB_); //6 - CutVars_.push_back(cIso_EB_); //7 - CutVars_.push_back(tip_bspot_EB_); //8 - CutVars_.push_back(eop_EB_); //9 - CutVars_.push_back(trackIsoUser_EB_); //10 - CutVars_.push_back(ecalIsoUser_EB_); //11 - CutVars_.push_back(hcalIsoUser_EB_); //12 - // - CutVars_.push_back(trackIso_EE_); //0 - CutVars_.push_back(ecalIso_EE_); //1 - CutVars_.push_back(hcalIso_EE_); //2 - CutVars_.push_back(sihih_EE_); //3 - CutVars_.push_back(dphi_EE_); //4 - CutVars_.push_back(deta_EE_); //5 - CutVars_.push_back(hoe_EE_); //6 - CutVars_.push_back(cIso_EE_); //7 - CutVars_.push_back(tip_bspot_EE_); //8 - CutVars_.push_back(eop_EE_); //9 - CutVars_.push_back(trackIsoUser_EE_); //10 - CutVars_.push_back(ecalIsoUser_EE_); //11 - CutVars_.push_back(hcalIsoUser_EE_); //12 - // - InvVars_.push_back(trackIso_EB_inv); //0 - InvVars_.push_back(ecalIso_EB_inv); //1 - InvVars_.push_back(hcalIso_EB_inv); //2 - InvVars_.push_back(sihih_EB_inv); //3 - InvVars_.push_back(dphi_EB_inv); //4 - InvVars_.push_back(deta_EB_inv); //5 - InvVars_.push_back(hoe_EB_inv); //6 - InvVars_.push_back(cIso_EB_inv); //7 - InvVars_.push_back(tip_bspot_EB_inv); //8 - InvVars_.push_back(eop_EB_inv); //9 - InvVars_.push_back(trackIsoUser_EB_inv); //10 - InvVars_.push_back(ecalIsoUser_EB_inv); //11 - InvVars_.push_back(hcalIsoUser_EB_inv); //12 - // - InvVars_.push_back(trackIso_EE_inv); //0 - InvVars_.push_back(ecalIso_EE_inv); //1 - InvVars_.push_back(hcalIso_EE_inv); //2 - InvVars_.push_back(sihih_EE_inv); //3 - InvVars_.push_back(dphi_EE_inv); //4 - InvVars_.push_back(deta_EE_inv); //5 - InvVars_.push_back(hoe_EE_inv); //6 - InvVars_.push_back(cIso_EE_inv); //7 - InvVars_.push_back(tip_bspot_EE_inv); //8 - InvVars_.push_back(eop_EE_inv); //9 - InvVars_.push_back(trackIsoUser_EE_inv); //10 - InvVars_.push_back(ecalIsoUser_EE_inv); //11 - InvVars_.push_back(hcalIsoUser_EE_inv); //12 - // - // - // ________________________________________________________________________ - // - // The VBTF Root Tuples --------------------------------------------------- - // ________________________________________________________________________ - // - WENU_VBTFselectionFile_ = new TFile(TString(WENU_VBTFselectionFileName_), "RECREATE"); - - vbtfSele_tree = new TTree("vbtfSele_tree", "Tree to store the W Candidates that pass the VBTF selection"); - vbtfSele_tree->Branch("runNumber", &runNumber, "runNumber/I"); - vbtfSele_tree->Branch("eventNumber", &eventNumber, "eventNumber/L"); - vbtfSele_tree->Branch("lumiSection", &lumiSection, "lumiSection/I"); - // - vbtfSele_tree->Branch("ele_sc_gsf_et", &ele_sc_gsf_et, "ele_sc_gsf_et/F"); - vbtfSele_tree->Branch("ele_sc_energy", &ele_sc_energy, "ele_sc_energy/F"); - vbtfSele_tree->Branch("ele_sc_eta", &ele_sc_eta, "ele_sc_eta/F"); - vbtfSele_tree->Branch("ele_sc_phi", &ele_sc_phi, "ele_sc_phi/F"); - vbtfSele_tree->Branch("ele_sc_rho", &ele_sc_rho, "ele_sc_rho/F"); - vbtfSele_tree->Branch("ele_cand_et", &ele_cand_et, "ele_cand_et/F"); - vbtfSele_tree->Branch("ele_cand_eta", &ele_cand_eta, "ele_cand_eta/F"); - vbtfSele_tree->Branch("ele_cand_phi", &ele_cand_phi, "ele_cand_phi/F"); - vbtfSele_tree->Branch("ele_iso_track", &ele_iso_track, "ele_iso_track/F"); - vbtfSele_tree->Branch("ele_iso_ecal", &ele_iso_ecal, "ele_iso_ecal/F"); - vbtfSele_tree->Branch("ele_iso_hcal", &ele_iso_hcal, "ele_iso_hcal/F"); - vbtfSele_tree->Branch("ele_id_sihih", &ele_id_sihih, "ele_id_sihih/F"); - vbtfSele_tree->Branch("ele_id_deta", &ele_id_deta, "ele_id_deta/F"); - vbtfSele_tree->Branch("ele_id_dphi", &ele_id_dphi, "ele_id_dphi/F"); - vbtfSele_tree->Branch("ele_id_hoe", &ele_id_hoe, "ele_id_hoe/F"); - vbtfSele_tree->Branch("ele_cr_mhitsinner", &ele_cr_mhitsinner, "ele_cr_mhitsinner/I"); - vbtfSele_tree->Branch("ele_cr_dcot", &ele_cr_dcot, "ele_cr_dcot/F"); - vbtfSele_tree->Branch("ele_cr_dist", &ele_cr_dist, "ele_cr_dist/F"); - vbtfSele_tree->Branch("ele_vx", &ele_vx, "ele_vx/F"); - vbtfSele_tree->Branch("ele_vy", &ele_vy, "ele_vy/F"); - vbtfSele_tree->Branch("ele_vz", &ele_vz, "ele_vz/F"); - vbtfSele_tree->Branch("pv_x", &pv_x, "pv_x/F"); - vbtfSele_tree->Branch("pv_y", &pv_y, "pv_y/F"); - vbtfSele_tree->Branch("pv_z", &pv_z, "pv_z/F"); - vbtfSele_tree->Branch("ele_gsfCharge", &ele_gsfCharge, "ele_gsfCharge/I"); - vbtfSele_tree->Branch("ele_ctfCharge", &ele_ctfCharge, "ele_ctfCharge/I"); - vbtfSele_tree->Branch("ele_scPixCharge", &ele_scPixCharge, "ele_scPixCharge/I"); - vbtfSele_tree->Branch("ele_eop", &ele_eop, "ele_eop/F"); - vbtfSele_tree->Branch("ele_tip_bs", &ele_tip_bs, "ele_tip_bs/F"); - vbtfSele_tree->Branch("ele_tip_pv", &ele_tip_pv, "ele_tip_pv/F"); - vbtfSele_tree->Branch("ele_pin", &ele_pin, "ele_pin/F"); - vbtfSele_tree->Branch("ele_pout", &ele_pout, "ele_pout/F"); - vbtfSele_tree->Branch("event_caloMET", &event_caloMET, "event_caloMET/F"); - vbtfSele_tree->Branch("event_pfMET", &event_pfMET, "event_pfMET/F"); - vbtfSele_tree->Branch("event_tcMET", &event_tcMET, "event_tcMET/F"); - vbtfSele_tree->Branch("event_caloMT", &event_caloMT, "event_caloMT/F"); - vbtfSele_tree->Branch("event_pfMT", &event_pfMT, "event_pfMT/F"); - vbtfSele_tree->Branch("event_tcMT", &event_tcMT, "event_tcMT/F"); - vbtfSele_tree->Branch("event_caloMET_phi", &event_caloMET_phi, "event_caloMET_phi/F"); - vbtfSele_tree->Branch("event_pfMET_phi", &event_pfMET_phi, "event_pfMET_phi/F"); - vbtfSele_tree->Branch("event_tcMET_phi", &event_tcMET_phi, "event_tcMET_phi/F"); - // - // the extra jet variables: - if (includeJetInformationInNtuples_) { - vbtfSele_tree->Branch("calojet_et", calojet_et, "calojet_et[5]/F"); - vbtfSele_tree->Branch("calojet_eta", calojet_eta, "calojet_eta[5]/F"); - vbtfSele_tree->Branch("calojet_phi", calojet_phi, "calojet_phi[5]/F"); - vbtfSele_tree->Branch("pfjet_et", pfjet_et, "pfjet_et[5]/F"); - vbtfSele_tree->Branch("pfjet_eta", pfjet_eta, "pfjet_eta[5]/F"); - vbtfSele_tree->Branch("pfjet_phi", pfjet_phi, "pfjet_phi[5]/F"); - } - if (storeExtraInformation_) { - vbtfSele_tree->Branch("ele2nd_sc_gsf_et", &ele2nd_sc_gsf_et, "ele2nd_sc_gsf_et/F"); - vbtfSele_tree->Branch("ele2nd_passes_selection", &ele2nd_passes_selection, "ele2nd_passes_selection/I"); - vbtfSele_tree->Branch("ele2nd_ecalDriven", &ele2nd_ecalDriven, "ele2nd_ecalDriven/I"); - vbtfSele_tree->Branch("event_caloSumEt", &event_caloSumEt, "event_caloSumEt/F"); - vbtfSele_tree->Branch("event_pfSumEt", &event_pfSumEt, "event_pfSumEt/F"); - vbtfSele_tree->Branch("event_tcSumEt", &event_tcSumEt, "event_tcSumEt/F"); - } - vbtfSele_tree->Branch("event_datasetTag", &event_datasetTag, "event_dataSetTag/I"); - // - // - // everything after preselection - // - WENU_VBTFpreseleFile_ = new TFile(TString(WENU_VBTFpreseleFileName_), "RECREATE"); - - vbtfPresele_tree = new TTree("vbtfPresele_tree", "Tree to store the W Candidates that pass the VBTF preselection"); - vbtfPresele_tree->Branch("runNumber", &runNumber, "runNumber/I"); - vbtfPresele_tree->Branch("eventNumber", &eventNumber, "eventNumber/L"); - vbtfPresele_tree->Branch("lumiSection", &lumiSection, "lumiSection/I"); - // - vbtfPresele_tree->Branch("ele_sc_gsf_et", &ele_sc_gsf_et, "ele_sc_gsf_et/F"); - vbtfPresele_tree->Branch("ele_sc_energy", &ele_sc_energy, "ele_sc_energy/F"); - vbtfPresele_tree->Branch("ele_sc_eta", &ele_sc_eta, "ele_sc_eta/F"); - vbtfPresele_tree->Branch("ele_sc_phi", &ele_sc_phi, "ele_sc_phi/F"); - vbtfPresele_tree->Branch("ele_sc_rho", &ele_sc_rho, "ele_sc_rho/F"); - vbtfPresele_tree->Branch("ele_cand_et", &ele_cand_et, "ele_cand_et/F"); - vbtfPresele_tree->Branch("ele_cand_eta", &ele_cand_eta, "ele_cand_eta/F"); - vbtfPresele_tree->Branch("ele_cand_phi", &ele_cand_phi, "ele_cand_phi/F"); - vbtfPresele_tree->Branch("ele_iso_track", &ele_iso_track, "ele_iso_track/F"); - vbtfPresele_tree->Branch("ele_iso_ecal", &ele_iso_ecal, "ele_iso_ecal/F"); - vbtfPresele_tree->Branch("ele_iso_hcal", &ele_iso_hcal, "ele_iso_hcal/F"); - vbtfPresele_tree->Branch("ele_id_sihih", &ele_id_sihih, "ele_id_sihih/F"); - vbtfPresele_tree->Branch("ele_id_deta", &ele_id_deta, "ele_id_deta/F"); - vbtfPresele_tree->Branch("ele_id_dphi", &ele_id_dphi, "ele_id_dphi/F"); - vbtfPresele_tree->Branch("ele_id_hoe", &ele_id_hoe, "ele_id_hoe/F"); - vbtfPresele_tree->Branch("ele_cr_mhitsinner", &ele_cr_mhitsinner, "ele_cr_mhitsinner/I"); - vbtfPresele_tree->Branch("ele_cr_dcot", &ele_cr_dcot, "ele_cr_dcot/F"); - vbtfPresele_tree->Branch("ele_cr_dist", &ele_cr_dist, "ele_cr_dist/F"); - vbtfPresele_tree->Branch("ele_vx", &ele_vx, "ele_vx/F"); - vbtfPresele_tree->Branch("ele_vy", &ele_vy, "ele_vy/F"); - vbtfPresele_tree->Branch("ele_vz", &ele_vz, "ele_vz/F"); - vbtfPresele_tree->Branch("pv_x", &pv_x, "pv_x/F"); - vbtfPresele_tree->Branch("pv_y", &pv_y, "pv_y/F"); - vbtfPresele_tree->Branch("pv_z", &pv_z, "pv_z/F"); - vbtfPresele_tree->Branch("ele_gsfCharge", &ele_gsfCharge, "ele_gsfCharge/I"); - vbtfPresele_tree->Branch("ele_ctfCharge", &ele_ctfCharge, "ele_ctfCharge/I"); - vbtfPresele_tree->Branch("ele_scPixCharge", &ele_scPixCharge, "ele_scPixCharge/I"); - vbtfPresele_tree->Branch("ele_eop", &ele_eop, "ele_eop/F"); - vbtfPresele_tree->Branch("ele_tip_bs", &ele_tip_bs, "ele_tip_bs/F"); - vbtfPresele_tree->Branch("ele_tip_pv", &ele_tip_pv, "ele_tip_pv/F"); - vbtfPresele_tree->Branch("ele_pin", &ele_pin, "ele_pin/F"); - vbtfPresele_tree->Branch("ele_pout", &ele_pout, "ele_pout/F"); - vbtfPresele_tree->Branch("event_caloMET", &event_caloMET, "event_caloMET/F"); - vbtfPresele_tree->Branch("event_pfMET", &event_pfMET, "event_pfMET/F"); - vbtfPresele_tree->Branch("event_tcMET", &event_tcMET, "event_tcMET/F"); - vbtfPresele_tree->Branch("event_caloMT", &event_caloMT, "event_caloMT/F"); - vbtfPresele_tree->Branch("event_pfMT", &event_pfMT, "event_pfMT/F"); - vbtfPresele_tree->Branch("event_tcMT", &event_tcMT, "event_tcMT/F"); - vbtfPresele_tree->Branch("event_caloMET_phi", &event_caloMET_phi, "event_caloMET_phi/F"); - vbtfPresele_tree->Branch("event_pfMET_phi", &event_pfMET_phi, "event_pfMET_phi/F"); - vbtfPresele_tree->Branch("event_tcMET_phi", &event_tcMET_phi, "event_tcMET_phi/F"); - vbtfPresele_tree->Branch("event_caloSumEt", &event_caloSumEt, "event_caloSumEt/F"); - vbtfPresele_tree->Branch("event_pfSumEt", &event_pfSumEt, "event_pfSumEt/F"); - vbtfPresele_tree->Branch("event_tcSumEt", &event_tcSumEt, "event_tcSumEt/F"); - // the extra jet variables: - if (includeJetInformationInNtuples_) { - vbtfPresele_tree->Branch("calojet_et", calojet_et, "calojet_et[5]/F"); - vbtfPresele_tree->Branch("calojet_eta", calojet_eta, "calojet_eta[5]/F"); - vbtfPresele_tree->Branch("calojet_phi", calojet_phi, "calojet_phi[5]/F"); - vbtfPresele_tree->Branch("pfjet_et", pfjet_et, "pfjet_et[5]/F"); - vbtfPresele_tree->Branch("pfjet_eta", pfjet_eta, "pfjet_eta[5]/F"); - vbtfPresele_tree->Branch("pfjet_phi", pfjet_phi, "pfjet_phi[5]/F"); - } - if (storeExtraInformation_) { - vbtfPresele_tree->Branch("ele2nd_sc_gsf_et", &ele2nd_sc_gsf_et, "ele2nd_sc_gsf_et/F"); - vbtfPresele_tree->Branch("ele2nd_sc_eta", &ele2nd_sc_eta, "ele2nd_sc_eta/F"); - vbtfPresele_tree->Branch("ele2nd_sc_phi", &ele2nd_sc_phi, "ele2nd_sc_phi/F"); - vbtfPresele_tree->Branch("ele2nd_sc_rho", &ele2nd_sc_rho, "ele2nd_sc_rho/F"); - vbtfPresele_tree->Branch("ele2nd_cand_eta", &ele2nd_cand_eta, "ele2nd_cand_eta/F"); - vbtfPresele_tree->Branch("ele2nd_cand_phi", &ele2nd_cand_phi, "ele2nd_cand_phi/F"); - vbtfPresele_tree->Branch("ele2nd_pin", &ele2nd_pin, "ele2nd_pin/F"); - vbtfPresele_tree->Branch("ele2nd_pout", &ele2nd_pout, "ele2nd_pout/F"); - vbtfPresele_tree->Branch("ele2nd_ecalDriven", &ele2nd_ecalDriven, "ele2nd_ecalDriven/I"); - vbtfPresele_tree->Branch("ele2nd_passes_selection", &ele2nd_passes_selection, "ele2nd_passes_selection/I"); - vbtfPresele_tree->Branch("ele_hltmatched_dr", &ele_hltmatched_dr, "ele_hltmatched_dr/F"); - vbtfPresele_tree->Branch("event_triggerDecision", &event_triggerDecision, "event_triggerDecision/I"); - vbtfPresele_tree->Branch("VtxTracksSize", &VtxTracksSize); - vbtfPresele_tree->Branch("VtxNormalizedChi2", &VtxNormalizedChi2); - vbtfPresele_tree->Branch("VtxTracksSizeBS", &VtxTracksSizeBS); - vbtfPresele_tree->Branch("VtxNormalizedChi2BS", &VtxNormalizedChi2BS); - } - if (storeAllSecondElectronVariables_) { - vbtfPresele_tree->Branch("ele2nd_cand_et", &ele2nd_cand_et, "ele2nd_cand_et/F"); - vbtfPresele_tree->Branch("ele2nd_iso_track", &ele2nd_iso_track, "ele2nd_iso_track /F"); - vbtfPresele_tree->Branch("ele2nd_iso_ecal", &ele2nd_iso_ecal, "ele2nd_iso_ecal/F"); - vbtfPresele_tree->Branch("ele2nd_iso_hcal", &ele2nd_iso_hcal, "ele2nd_iso_hcal/F"); - vbtfPresele_tree->Branch("ele2nd_id_sihih", &ele2nd_id_sihih, "ele2nd_id_sihih/F"); - vbtfPresele_tree->Branch("ele2nd_id_deta", &ele2nd_id_deta, "ele2nd_id_deta/F"); - vbtfPresele_tree->Branch("ele2nd_id_dphi", &ele2nd_id_dphi, "ele2nd_id_dphi/F"); - vbtfPresele_tree->Branch("ele2nd_id_hoe", &ele2nd_id_hoe, "ele2nd_id_hoe/F"); - vbtfPresele_tree->Branch("ele2nd_cr_mhitsinner", &ele2nd_cr_mhitsinner, "ele2nd_cr_mhitsinner/I"); - vbtfPresele_tree->Branch("ele2nd_cr_dcot", &ele2nd_cr_dcot, "ele2nd_cr_dcot/F"); - vbtfPresele_tree->Branch("ele2nd_cr_dist", &ele2nd_cr_dist, "ele2nd_cr_dist/F"); - vbtfPresele_tree->Branch("ele2nd_vx", &ele2nd_vx, "ele2nd_vx/F"); - vbtfPresele_tree->Branch("ele2nd_vy", &ele2nd_vy, "ele2nd_vy/F"); - vbtfPresele_tree->Branch("ele2nd_vz", &ele2nd_vz, "ele2nd_vz/F"); - - vbtfPresele_tree->Branch("ele2nd_gsfCharge", &ele2nd_gsfCharge, "ele2nd_gsfCharge/I"); - vbtfPresele_tree->Branch("ele2nd_ctfCharge", &ele2nd_ctfCharge, "ele2nd_ctfCharge/I"); - vbtfPresele_tree->Branch("ele2nd_scPixCharge", &ele2nd_scPixCharge, "ele2nd_scPixCharge/I"); - vbtfPresele_tree->Branch("ele2nd_eop", &ele2nd_eop, "ele2nd_eop/F"); - vbtfPresele_tree->Branch("ele2nd_tip_bs", &ele2nd_tip_bs, "ele2nd_tip_bs/F"); - vbtfPresele_tree->Branch("ele2nd_tip_pv", &ele2nd_tip_pv, "ele2nd_tip_pv/F"); - vbtfPresele_tree->Branch("ele2nd_hltmatched_dr", &ele2nd_hltmatched_dr, "ele2nd_hltmatched_dr/F"); - } - vbtfPresele_tree->Branch("event_datasetTag", &event_datasetTag, "event_dataSetTag/I"); - - // - // _________________________________________________________________________ - // - // - // -} - -// ------------ method called once each job just after ending the event loop - -void WenuPlots::endJob() { - TFile *newfile = new TFile(TString(outputFile_), "RECREATE"); - // - // for consistency all the plots are in the root file - // even though they may be empty (in the case when - // usePrecalcID_== true inverted and N-1 are empty) - h_met->Write(); - h_met_inverse->Write(); - h_mt->Write(); - h_mt_inverse->Write(); - - h_met_EB->Write(); - h_met_inverse_EB->Write(); - h_mt_EB->Write(); - h_mt_inverse_EB->Write(); - - h_met_EE->Write(); - h_met_inverse_EE->Write(); - h_mt_EE->Write(); - h_mt_inverse_EE->Write(); - - h_scEt->Write(); - h_scEta->Write(); - h_scPhi->Write(); - - h_EB_trkiso->Write(); - h_EB_ecaliso->Write(); - h_EB_hcaliso->Write(); - h_EB_sIetaIeta->Write(); - h_EB_dphi->Write(); - h_EB_deta->Write(); - h_EB_HoE->Write(); - - h_EE_trkiso->Write(); - h_EE_ecaliso->Write(); - h_EE_hcaliso->Write(); - h_EE_sIetaIeta->Write(); - h_EE_dphi->Write(); - h_EE_deta->Write(); - h_EE_HoE->Write(); - - // - h_trackIso_eb_NmOne->Write(); - h_trackIso_ee_NmOne->Write(); - // - newfile->Close(); - // - // write the VBTF trees - // - WENU_VBTFpreseleFile_->Write(); - WENU_VBTFpreseleFile_->Close(); - WENU_VBTFselectionFile_->Write(); - WENU_VBTFselectionFile_->Close(); -} - -//define this as a plug-in -DEFINE_FWK_MODULE(WenuPlots); diff --git a/ElectroWeakAnalysis/WENu/test/aod_WenuPlots.py b/ElectroWeakAnalysis/WENu/test/aod_WenuPlots.py deleted file mode 100644 index bd118a8d6bdb3..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/aod_WenuPlots.py +++ /dev/null @@ -1,180 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - #fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/RedigiSummer08RootTrees/WenuRedigi_RECO_SAMPLE.root') - fileNames = cms.untracked.vstring( - 'file:zee_Summer09-MC_31X_V3_AODSIM_v1_AODSIM.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('MC_31X_V5::All') -#process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') - -process.load("Configuration.StandardSequences.MagneticField_cff") - -# this filter produces patElectrons and patCaloMets to be used in the following -process.aod2patFilter = cms.EDFilter('aod2patFilterWenu', - electronCollectionTag = cms.untracked.InputTag("gsfElectrons","","RECO"), - metCollectionTag = cms.untracked.InputTag("met","","RECO"), - ) - -############################################################################## -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT8E29" # options: HLT or HLT8E29 -# trigger path selection -HLT_path_name = "HLT_Ele15_LW_L1R" -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter" -# -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - # cuts - ETCut = cms.untracked.double(30.), - METCut = cms.untracked.double(0.), - vetoSecondElectronEvents = cms.untracked.bool(False), - ETCut2ndEle = cms.untracked.double(20.), - # trigger here - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(False), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("aod2patFilter","patElectrons","PAT"), - metCollectionTag = cms.untracked.InputTag("aod2patFilter","patCaloMets","PAT") - - ) -#################################################################################### -## -## the W selection that you prefer -selection_a2 = cms.PSet ( - trackIso_EB = cms.untracked.double(2.2), - ecalIso_EB = cms.untracked.double(4.2), - hcalIso_EB = cms.untracked.double(2.0), - sihih_EB = cms.untracked.double(0.0099), - dphi_EB = cms.untracked.double(0.025), - deta_EB = cms.untracked.double(0.0040), - hoe_EB = cms.untracked.double(1000.0), - - trackIso_EE = cms.untracked.double(1.1), - ecalIso_EE = cms.untracked.double(3.4), - hcalIso_EE = cms.untracked.double(1.3), - sihih_EE = cms.untracked.double(0.028), - dphi_EE = cms.untracked.double(0.020), - deta_EE = cms.untracked.double(0.0066), - hoe_EE = cms.untracked.double(1000.0) - ) - -selection_test = cms.PSet ( - trackIso_EB = cms.untracked.double(10), - ecalIso_EB = cms.untracked.double(10), - hcalIso_EB = cms.untracked.double(10), - sihih_EB = cms.untracked.double(0.1), - dphi_EB = cms.untracked.double(1), - deta_EB = cms.untracked.double(1), - hoe_EB = cms.untracked.double(1), - - trackIso_EE = cms.untracked.double(10), - ecalIso_EE = cms.untracked.double(10), - hcalIso_EE = cms.untracked.double(10), - sihih_EE = cms.untracked.double(1), - dphi_EE = cms.untracked.double(1), - deta_EE = cms.untracked.double(1), - hoe_EE = cms.untracked.double(1) - ) - -selection_inverse = cms.PSet ( - trackIso_EB_inv = cms.untracked.bool(True), - trackIso_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - selection_a2, - selection_inverse, - wenuCollectionTag = cms.untracked.InputTag( - "wenuFilter","selectedWenuCandidates","PAT") - ) - - - -process.eca = cms.EDAnalyzer("EventContentAnalyzer") -process.p = cms.Path(process.aod2patFilter +process.wenuFilter + process.plotter) -#process.p = cms.Path(process.aod2patFilter + process.eca) -# process.p = cms.Path(process.patSequences + process.wenuFilter + process.eca) - - -#### SET OF Trigger names for AOD - 321 -# -# HLTPath_[0] = "HLT_Ele10_LW_L1R"; -# HLTFilterType_[0] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10PixelMatchFilter","","HLT8E29"); -# HLTPath_[1] = "HLT_Ele10_LW_EleId_L1R"; -# HLTFilterType_[1] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10EleIdDphiFilter","","HLT8E29"); -# HLTPath_[2] = "HLT_Ele15_LW_L1R"; -# HLTFilterType_[2] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter","","HLT8E29"); -# HLTPath_[3] = "HLT_Ele15_SC10_LW_L1R"; -# HLTFilterType_[3] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15ESDoubleSC10","","HLT8E29"); -# HLTPath_[4] = "HLT_Ele15_SiStrip_L1R"; -# HLTFilterType_[4] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt15PixelMatchFilter","","HLT8E29"); -# HLTPath_[5] = "HLT_Ele20_LW_L1R"; -# HLTFilterType_[5] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15EtFilterESet20","","HLT8E29"); -# HLTPath_[6] = "HLT_DoubleEle5_SW_L1R"; -# HLTFilterType_[6] = edm::InputTag("hltL1NonIsoHLTNonIsoDoubleElectronEt5PixelMatchFilter","","HLT8E29"); -# HLTPath_[7] = "HLT_Ele15_SC10_LW_L1R"; -# HLTFilterType_[7] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15ESDoubleSC10","","HLT8E29"); -# HLTPath_[8] = "tba"; -# HLTFilterType_[8] = edm::InputTag("tba"); -# HLTPath_[9] = "tba"; -# HLTFilterType_[9] = edm::InputTag("tba"); -# // e31 menu -# HLTPath_[10] = "HLT_Ele10_SW_L1R"; -# HLTFilterType_[10] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt10PixelMatchFilter","","HLT"); -# HLTPath_[11] = "HLT_Ele15_SW_L1R"; -# HLTFilterType_[11] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15PixelMatchFilter","","HLT"); -# HLTPath_[12] = "HLT_Ele15_SiStrip_L1R"; // <--- same as [4] -# HLTFilterType_[12] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt15PixelMatchFilter","","HLT"); -# HLTPath_[13] = "HLT_Ele15_SW_LooseTrackIso_L1R"; -# HLTFilterType_[13] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15LTITrackIsolFilter","","HLT"); -# HLTPath_[14] = "HLT_Ele15_SW_EleId_L1R"; -# HLTFilterType_[14] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdDphiFilter","","HLT"); -# HLTPath_[15] = "HLT_Ele20_SW_L1R"; -# HLTFilterType_[15] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt20PixelMatchFilter","","HLT"); -# HLTPath_[16] = "HLT_Ele20_SiStrip_L1R"; -# HLTFilterType_[16] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt20PixelMatchFilter","","HLT"); -# HLTPath_[17] = "HLT_Ele25_SW_L1R"; -# HLTFilterType_[17] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EtFilterESet25","","HLT"); -# HLTPath_[18] = "HLT_Ele25_SW_EleId_LooseTrackIso_L1R"; -# HLTFilterType_[18] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdTrackIsolFilterESet25LTI","","HLT"); -# HLTPath_[19] = "HLT_DoubleEle10_SW_L1R"; -# HLTFilterType_[19] = edm::InputTag("hltL1NonIsoHLTNonIsoDoubleElectronEt10PixelMatchFilter","","HLT"); -# HLTPath_[20] = "HLT_Ele15_SC15_SW_EleId_L1R"; -# HLTFilterType_[20] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdESDoubleSC15","","HLT"); -# HLTPath_[21] = "HLT_Ele15_SC15_SW_LooseTrackIso_L1R"; -# HLTFilterType_[21] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15LTIESDoubleSC15","","HLT"); -# HLTPath_[22] = "HLT_Ele20_SC15_SW_L1R"; -# HLTFilterType_[22] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt20ESDoubleSC15","","HLT"); diff --git a/ElectroWeakAnalysis/WENu/test/crab/crab_dataMay27thSkimSD.cfg b/ElectroWeakAnalysis/WENu/test/crab/crab_dataMay27thSkimSD.cfg deleted file mode 100644 index 56d4ff725bc4c..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/crab/crab_dataMay27thSkimSD.cfg +++ /dev/null @@ -1,32 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = glite -use_server = 1 - -[CMSSW] -datasetpath = /MinimumBias/Commissioning10-May27thSkim_SD_EG-v2/RECO -pset = pat_WenuVBTF_ntuple_forDataMay27.py -lumi_mask = Cert_132440-136297_7TeV_StreamExpress_Collisions10_JSON.json -total_number_of_lumis = -1 -lumis_per_job = 20 -output_file = WENU_VBTFselection.root, WENU_VBTFpreselection.root, histos.root - -[USER] -copy_data = 0 -return_data = 1 -logdir = /tmp/rompotis/dataMay27 -outputdir = /tmp/rompotis/dataMay27 -ui_working_dir = dataMay27 -use_central_bossDB = 0 -use_boss_rt = 0 -eMail = nikolaos.rompotis@cern.ch - -[GRID] -rb = CERN -proxy_server = myproxy.cern.ch -virtual_organization = cms -retry_count = 0 -lcg_catalog_type = lfc -lfc_host = lfc-cms-test.cern.ch -lfc_home = /grid/cms -# ce_black_list = diff --git a/ElectroWeakAnalysis/WENu/test/genPurposeSkimmer.py b/ElectroWeakAnalysis/WENu/test/genPurposeSkimmer.py deleted file mode 100644 index 4ae47b2679d60..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/genPurposeSkimmer.py +++ /dev/null @@ -1,161 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - - - - -# source -process.source = cms.Source("PoolSource", - # fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/RedigiSummer08RootTrees/WenuRedigi_RECO_SAMPLE.root') -# fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/Summer09Studies/zee_Summer09-MC_31X_V3_AODSIM_v1_AODSIM.root') - fileNames = cms.untracked.vstring('file:zee_Summer09-MC_31X_V3_AODSIM_v1_AODSIM.root'), - #fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/Summer09Studies/QCD_EMEnriched_Pt30to80_AODSIM_7E27C8EA-7984-DE11-BA59-00151796C158.root') - skipBadFiles = cms.untracked.bool(True), -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - - -## Load additional RECO config -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -#process.GlobalTag.globaltag = cms.string('MC_31X_V5::All') #ideal conditions - 1e31 menu -process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') #ideal conditions - 8e29 menu - -process.load("Configuration.StandardSequences.MagneticField_cff") - -## Load necessary stuff for tcMET -# tracking geometry -process.load("Geometry.CommonTopologies.globalTrackingGeometry_cfi") - -# load the necessary pat sequences -process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") - - - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - -## this is for the correct calculation of type1 MET -#from JetMETCorrections.Configuration.L2L3Corrections_Summer08Redigi_cff import * -#from JetMETCorrections.Type1MET.MetType1Corrections_cff import * -process.load("JetMETCorrections.Type1MET.MetType1Corrections_cff") -process.load("JetMETCorrections.Configuration.L2L3Corrections_Summer08Redigi_cff") - -process.metMuonJESCorSC5 = process.metJESCorSC5CaloJet.clone() -process.metMuonJESCorSC5.inputUncorJetsLabel = "sisCone5CaloJets" -process.metMuonJESCorSC5.corrector = "L2L3JetCorrectorSC5Calo" -process.metMuonJESCorSC5.inputUncorMetLabel = "caloMetM" - -process.metCorSequence = cms.Sequence(process.metMuonJESCorSC5) - -# make this collection of type 1 corrected MET a pat collection for the code to handle -process.layer1TwikiT1METs = process.layer1METs.clone( - metSource = cms.InputTag("metMuonJESCorSC5","","PAT"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) - - -# -# the explicit declaration of rechit collections is just for compatibility with the header -# version of 312 - proper Tags have no need of that -# -# for ecal isolation: replace the ECAL rechit collection -process.eleIsoDepositEcalFromHits.ExtractorPSet.barrelEcalHits = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eleIsoDepositEcalFromHits.ExtractorPSet.endcapEcalHits = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -# -# -process.eidRobustHighEnergy.reducedBarrelRecHitCollection = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eidRobustHighEnergy.reducedEndcapRecHitCollection = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -# -### create the good old ecal isolation for EE ########## - -## -## this is how to compute isolation yourself for testing purposes -## -#process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.electronEcalRecHitIsolationLcone.ecalBarrelRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationLcone.ecalEndcapRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationLcone.ecalBarrelRecHitCollection = cms.InputTag("") -#process.electronEcalRecHitIsolationLcone.ecalEndcapRecHitCollection = cms.InputTag("") -#process.electronEcalRecHitIsolationScone.ecalBarrelRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationScone.ecalEndcapRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationScone.ecalBarrelRecHitCollection = cms.InputTag("") -#process.electronEcalRecHitIsolationScone.ecalEndcapRecHitCollection = cms.InputTag("") -#process.patElectronIsolation = process.egammaIsolationSequence - - -######################################################## -#from PhysicsTools.PatAlgos.producersLayer1.electronProducer_cfi import allLayer1Electrons -# add the user iso -# -# NOTE!!! Egamma Recommendations Track Iso: Scone (0.3), ecal+hcal Lcone (0.4) -## for further studies the rest will be set as user isolations -# -process.allLayer1Electrons.isolation = cms.PSet() - -## -process.allLayer1Objects = cms.Sequence(process.makeAllLayer1Electrons+process.makeAllLayer1Muons+process.makeLayer1METs+process.layer1TwikiT1METs) -process.selectedLayer1Objects = cms.Sequence(process.selectedLayer1Electrons+process.selectedLayer1Muons) -process.cleanLayer1Objects = cms.Sequence(process.cleanLayer1Muons*process.cleanLayer1Electrons) -process.countLayer1Objects = cms.Sequence(process.countLayer1Electrons+process.countLayer1Muons) - -process.patDefaultSequence = cms.Sequence(process.allLayer1Objects * process.selectedLayer1Objects * - process.cleanLayer1Objects*process.countLayer1Objects - ) - -process.eca = cms.EDAnalyzer("EventContentAnalyzer") - - - -process.rootskimmer = cms.EDAnalyzer( - 'GenPurposeSkimmer', -# output file ####################################### - outputfile = cms.untracked.string('./bkg.root'), -# collections - ElectronCollection = cms.untracked.InputTag("selectedLayer1Electrons"), - MetCollectionTag = cms.untracked.InputTag( "met","","RECO"), - tcMetCollectionTag = cms.untracked.InputTag( "tcMet"), - pfMetCollectionTag = cms.untracked.InputTag( "pfMet"), - genMetCollectionTag= cms.untracked.InputTag("genMetCalo", "", "HLT8E29"), - t1MetCollectionTag = cms.untracked.InputTag("layer1METs"), - t1MetCollectionTagTwiki = cms.untracked.InputTag("layer1TwikiT1METs"), - -# HLT ............................................................... - HLTCollectionE29 = cms.untracked.InputTag('hltTriggerSummaryAOD','','HLT8E29'), - HLTCollectionE31=cms.untracked.InputTag('hltTriggerSummaryAOD','','HLT'), - HLTTriggerResultsE29 = cms.untracked.InputTag('TriggerResults','','HLT8E29'), - HLTTriggerResultsE31 = cms.untracked.InputTag('TriggerResults','','HLT'), - ProbeHLTObjMaxDR = cms.untracked.double(0.1), - -# ECAL geometry ################################################### - BarrelMaxEta = cms.untracked.double(1.4442), - EndcapMinEta = cms.untracked.double(1.56), - EndcapMaxEta = cms.untracked.double(2.5), - -# some MC information - MCCollection = cms.untracked.InputTag("genParticles", "", "HLT8E29"), - # deta and dphi have default values and there is no reason to change them - - ) - -#process.patDefaultSequence.remove(process.allLayer1Taus) - - - -process.p = cms.Path(process.metCorSequence + process.PF2PAT + process.patDefaultSequence + process.rootskimmer ) -#process.p = cms.Path(process.PF2PAT + process.patDefaultSequence + process.eca ) - - - diff --git a/ElectroWeakAnalysis/WENu/test/genPurposeSkimmerData.py b/ElectroWeakAnalysis/WENu/test/genPurposeSkimmerData.py deleted file mode 100644 index c176e55e089c4..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/genPurposeSkimmerData.py +++ /dev/null @@ -1,184 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - - - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -#'rfio:/castor/cern.ch/cms/store/caf/user/meridian/MinimumBias/BeamCommissioning09_EGMSkim/bb33bb16085462eaeb12c180f3bcafc3/EGMFirstCollisionSkim_123592_4.root', - 'file:/tmp/rompotis/bscFilter_123615_6.root', -# 'file:/tmp/rompotis/minbias_Summer09_STARTUP3X_V8D_900GeV_v1_1.root' - ), - - skipBadFiles = cms.untracked.bool(True), -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(200) ) - -# inputTagEnding = "EXPRESS" -# inputTagEnding = "EGMSKIM" -inputTagEnding = "RECO" - - - -## Load additional RECO config -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('GR09_P_V7::All') -#process.GlobalTag.globaltag = cms.string('MC_31X_V5::All') #ideal conditions - 1e31 menu -#process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') #ideal conditions - 8e29 menu - -process.load("Configuration.StandardSequences.MagneticField_cff") - -## Load necessary stuff for tcMET -# tracking geometry -process.load("Geometry.CommonTopologies.globalTrackingGeometry_cfi") - -# load the necessary pat sequences -process.load("CommonTools.ParticleFlow.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") - - - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - -## this is for the correct calculation of type1 MET -#from JetMETCorrections.Configuration.L2L3Corrections_Summer08Redigi_cff import * -#from JetMETCorrections.Type1MET.MetType1Corrections_cff import * -#process.load("JetMETCorrections.Type1MET.MetType1Corrections_cff") -#process.load("JetMETCorrections.Configuration.L2L3Corrections_Summer08Redigi_cff") - -#process.metMuonJESCorSC5 = process.metJESCorSC5CaloJet.clone() -#process.metMuonJESCorSC5.inputUncorJetsLabel = "sisCone5CaloJets" -#process.metMuonJESCorSC5.corrector = "L2L3JetCorrectorSC5Calo" -#process.metMuonJESCorSC5.inputUncorMetLabel = "corMetGlobalMuons" -#process.metCorSequence = cms.Sequence(process.metMuonJESCorSC5) - -# make this collection of type 1 corrected MET a pat collection for the code to handle -process.layer1mcMETs = process.layer1METs.clone( - metSource = cms.InputTag("corMetGlobalMuons"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -process.layer1METs.addTrigMatch = cms.bool(False) -process.layer1METs.addGenMET = cms.bool(False) - -# -# the explicit declaration of rechit collections is just for compatibility with the header -# version of 312 - proper Tags have no need of that -# -# for ecal isolation: replace the ECAL rechit collection -process.eleIsoDepositEcalFromHits.ExtractorPSet.barrelEcalHits = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eleIsoDepositEcalFromHits.ExtractorPSet.endcapEcalHits = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -# -# -process.eidRobustHighEnergy.reducedBarrelRecHitCollection = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eidRobustHighEnergy.reducedEndcapRecHitCollection = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -# -### create the good old ecal isolation for EE ########## - -## -## this is how to compute isolation yourself for testing purposes -## -#process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.electronEcalRecHitIsolationLcone.ecalBarrelRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationLcone.ecalEndcapRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationLcone.ecalBarrelRecHitCollection = cms.InputTag("") -#process.electronEcalRecHitIsolationLcone.ecalEndcapRecHitCollection = cms.InputTag("") -#process.electronEcalRecHitIsolationScone.ecalBarrelRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationScone.ecalEndcapRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationScone.ecalBarrelRecHitCollection = cms.InputTag("") -#process.electronEcalRecHitIsolationScone.ecalEndcapRecHitCollection = cms.InputTag("") -#process.patElectronIsolation = process.egammaIsolationSequence - - -######################################################## -#from PhysicsTools.PatAlgos.producersLayer1.electronProducer_cfi import allLayer1Electrons -# add the user iso -# -# NOTE!!! Egamma Recommendations Track Iso: Scone (0.3), ecal+hcal Lcone (0.4) -## for further studies the rest will be set as user isolations -# -process.allLayer1Electrons.isoDeposits = cms.PSet() -process.allLayer1Electrons.userIsolation = cms.PSet() -process.allLayer1Electrons.addElectronID = cms.bool(False) -process.allLayer1Electrons.electronIDSources = cms.PSet() -process.allLayer1Electrons.addGenMatch = cms.bool(False) -process.allLayer1Electrons.embedGenMatch = cms.bool(False) -process.allLayer1Electrons.embedHighLevelSelection = cms.bool(False) -## -process.allLayer1Muons.addGenMatch = cms.bool(False) -process.allLayer1Muons.embedGenMatch = cms.bool(False) -## -#process.makeAllLayer1Electrons = cms.Sequence(process.patElectronIsolation*process.allLayer1Electrons) -process.makeAllLayer1Electrons = cms.Sequence(process.allLayer1Electrons) -process.makeAllLayer1Muons = cms.Sequence(process.allLayer1Muons) -## -process.allLayer1Objects = cms.Sequence(process.makeAllLayer1Electrons+process.makeAllLayer1Muons+process.makeLayer1METs - +process.layer1mcMETs) -process.selectedLayer1Objects = cms.Sequence(process.selectedLayer1Electrons+process.selectedLayer1Muons) -process.cleanLayer1Objects = cms.Sequence(process.cleanLayer1Muons*process.cleanLayer1Electrons) -process.countLayer1Objects = cms.Sequence(process.countLayer1Electrons+process.countLayer1Muons) - -process.patDefaultSequence = cms.Sequence(process.allLayer1Objects * process.selectedLayer1Objects * - process.cleanLayer1Objects*process.countLayer1Objects - ) - -process.eca = cms.EDAnalyzer("EventContentAnalyzer") - - - -process.rootskimmer = cms.EDAnalyzer( - 'GenPurposeSkimmerData', -# output file ####################################### - outputfile = cms.untracked.string('./bkg.root'), - InputTagEnding = cms.untracked.string(inputTagEnding), -# collections - ElectronCollection = cms.untracked.InputTag("selectedLayer1Electrons"), - MetCollectionTag = cms.untracked.InputTag( "met"), - tcMetCollectionTag = cms.untracked.InputTag( "tcMet"), - pfMetCollectionTag = cms.untracked.InputTag( "pfMet"), -# genMetCollectionTag= cms.untracked.InputTag("genMetCalo", "", "HLT8E29"), - t1MetCollectionTag = cms.untracked.InputTag("layer1METs"), - mcMetCollectionTag = cms.untracked.InputTag("layer1mcMETs"), - -# HLT ............................................................... - HLTCollectionE29 = cms.untracked.InputTag('hltTriggerSummaryAOD','','HLT'), - HLTTriggerResultsE29 = cms.untracked.InputTag('TriggerResults','',inputTagEnding), - # these are just for consistency with the old version - HLTCollectionE31=cms.untracked.InputTag('hltTriggerSummaryAOD','','HLT'), - HLTTriggerResultsE31 = cms.untracked.InputTag('TriggerResults','','HLT'), - ProbeHLTObjMaxDR = cms.untracked.double(0.1), - -# ECAL geometry ################################################### - BarrelMaxEta = cms.untracked.double(1.4442), - EndcapMinEta = cms.untracked.double(1.56), - EndcapMaxEta = cms.untracked.double(2.5), -# -# some extra collections - ctfTracksTag = cms.untracked.InputTag("generalTracks", "", "RECO"), - corHybridsc = cms.untracked.InputTag("correctedHybridSuperClusters","", "RECO"), - multi5x5sc = cms.untracked.InputTag("multi5x5SuperClustersWithPreshower","", "RECO"), - ) - -#process.patDefaultSequence.remove(process.allLayer1Taus) - - - -process.p = cms.Path(process.PF2PAT + process.patDefaultSequence + process.rootskimmer ) -#process.p = cms.Path(process.PF2PAT + process.patDefaultSequence + process.eca ) - - - diff --git a/ElectroWeakAnalysis/WENu/test/genPurposeSkimmer_acceptance.py b/ElectroWeakAnalysis/WENu/test/genPurposeSkimmer_acceptance.py deleted file mode 100644 index 7ebec3a1db53f..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/genPurposeSkimmer_acceptance.py +++ /dev/null @@ -1,160 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - - - - -# source -process.source = cms.Source("PoolSource", - # fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/RedigiSummer08RootTrees/WenuRedigi_RECO_SAMPLE.root') -# fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/Summer09Studies/zee_Summer09-MC_31X_V3_AODSIM_v1_AODSIM.root') - fileNames = cms.untracked.vstring('file:zee_Summer09-MC_31X_V3_AODSIM_v1_AODSIM.root') - #fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/Summer09Studies/QCD_EMEnriched_Pt30to80_AODSIM_7E27C8EA-7984-DE11-BA59-00151796C158.root') -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - - -## Load additional RECO config -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -#process.GlobalTag.globaltag = cms.string('MC_31X_V5::All') #ideal conditions - 1e31 menu -process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') #ideal conditions - 8e29 menu - -process.load("Configuration.StandardSequences.MagneticField_cff") - -## Load necessary stuff for tcMET -# tracking geometry -process.load("Geometry.CommonTopologies.globalTrackingGeometry_cfi") - -# load the necessary pat sequences -process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") - - - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - -## this is for the correct calculation of type1 MET -#from JetMETCorrections.Configuration.L2L3Corrections_Summer08Redigi_cff import * -#from JetMETCorrections.Type1MET.MetType1Corrections_cff import * -process.load("JetMETCorrections.Type1MET.MetType1Corrections_cff") -process.load("JetMETCorrections.Configuration.L2L3Corrections_Summer08Redigi_cff") - -process.metMuonJESCorSC5 = process.metJESCorSC5CaloJet.clone() -process.metMuonJESCorSC5.inputUncorJetsLabel = "sisCone5CaloJets" -process.metMuonJESCorSC5.corrector = "L2L3JetCorrectorSC5Calo" -process.metMuonJESCorSC5.inputUncorMetLabel = "caloMetM" - -process.metCorSequence = cms.Sequence(process.metMuonJESCorSC5) - -# make this collection of type 1 corrected MET a pat collection for the code to handle -process.layer1TwikiT1METs = process.layer1METs.clone( - metSource = cms.InputTag("metMuonJESCorSC5","","PAT"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) - - -# -# the explicit declaration of rechit collections is just for compatibility with the header -# version of 312 - proper Tags have no need of that -# -# for ecal isolation: replace the ECAL rechit collection -process.eleIsoDepositEcalFromHits.ExtractorPSet.barrelEcalHits = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eleIsoDepositEcalFromHits.ExtractorPSet.endcapEcalHits = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -# -# -process.eidRobustHighEnergy.reducedBarrelRecHitCollection = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eidRobustHighEnergy.reducedEndcapRecHitCollection = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -# -### create the good old ecal isolation for EE ########## - -## -## this is how to compute isolation yourself for testing purposes -## -#process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.electronEcalRecHitIsolationLcone.ecalBarrelRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationLcone.ecalEndcapRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationLcone.ecalBarrelRecHitCollection = cms.InputTag("") -#process.electronEcalRecHitIsolationLcone.ecalEndcapRecHitCollection = cms.InputTag("") -#process.electronEcalRecHitIsolationScone.ecalBarrelRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationScone.ecalEndcapRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -#process.electronEcalRecHitIsolationScone.ecalBarrelRecHitCollection = cms.InputTag("") -#process.electronEcalRecHitIsolationScone.ecalEndcapRecHitCollection = cms.InputTag("") -#process.patElectronIsolation = process.egammaIsolationSequence - - -######################################################## -#from PhysicsTools.PatAlgos.producersLayer1.electronProducer_cfi import allLayer1Electrons -# add the user iso -# -# NOTE!!! Egamma Recommendations Track Iso: Scone (0.3), ecal+hcal Lcone (0.4) -## for further studies the rest will be set as user isolations -# -process.allLayer1Electrons.isolation = cms.PSet() - -## -process.allLayer1Objects = cms.Sequence(process.makeAllLayer1Electrons+process.makeAllLayer1Muons+process.makeLayer1METs+process.layer1TwikiT1METs) -process.selectedLayer1Objects = cms.Sequence(process.selectedLayer1Electrons+process.selectedLayer1Muons) -process.cleanLayer1Objects = cms.Sequence(process.cleanLayer1Muons*process.cleanLayer1Electrons) -process.countLayer1Objects = cms.Sequence(process.countLayer1Electrons+process.countLayer1Muons) - -process.patDefaultSequence = cms.Sequence(process.allLayer1Objects * process.selectedLayer1Objects * - process.cleanLayer1Objects*process.countLayer1Objects - ) - -process.eca = cms.EDAnalyzer("EventContentAnalyzer") - - - -process.rootskimmer = cms.EDAnalyzer( - 'GenPurposeSkimmerAcceptance', -# output file ####################################### - outputfile = cms.untracked.string('./bkg.root'), -# collections - ElectronCollection = cms.untracked.InputTag("selectedLayer1Electrons"), - MetCollectionTag = cms.untracked.InputTag( "met","","RECO"), - tcMetCollectionTag = cms.untracked.InputTag( "tcMet"), - pfMetCollectionTag = cms.untracked.InputTag( "pfMet"), - genMetCollectionTag= cms.untracked.InputTag("genMetCalo", "", "HLT8E29"), - t1MetCollectionTag = cms.untracked.InputTag("layer1METs"), - t1MetCollectionTagTwiki = cms.untracked.InputTag("layer1TwikiT1METs"), - -# HLT ............................................................... - HLTCollectionE29 = cms.untracked.InputTag('hltTriggerSummaryAOD','','HLT8E29'), - HLTCollectionE31=cms.untracked.InputTag('hltTriggerSummaryAOD','','HLT'), - HLTTriggerResultsE29 = cms.untracked.InputTag('TriggerResults','','HLT8E29'), - HLTTriggerResultsE31 = cms.untracked.InputTag('TriggerResults','','HLT'), - ProbeHLTObjMaxDR = cms.untracked.double(0.1), - -# ECAL geometry ################################################### - BarrelMaxEta = cms.untracked.double(1.4442), - EndcapMinEta = cms.untracked.double(1.56), - EndcapMaxEta = cms.untracked.double(2.5), - -# some MC information - MCCollection = cms.untracked.InputTag("genParticles", "", "HLT8E29"), - # deta and dphi have default values and there is no reason to change them - - ) - -#process.patDefaultSequence.remove(process.allLayer1Taus) - - - -process.p = cms.Path(process.metCorSequence + process.PF2PAT + process.patDefaultSequence + process.rootskimmer ) -#process.p = cms.Path(process.PF2PAT + process.patDefaultSequence + process.eca ) - - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuFilterSkimming.py b/ElectroWeakAnalysis/WENu/test/pat_WenuFilterSkimming.py deleted file mode 100644 index 30617e071fd8f..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuFilterSkimming.py +++ /dev/null @@ -1,154 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('START3X_V26A::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1METs = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1METs' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.layer1METs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet() -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.load("ElectroWeakAnalysis.WENu.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "REDIGI" # -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# #= "hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter" # -# -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - # cuts - ETCut = cms.untracked.double(25.), - METCut = cms.untracked.double(0.), - # 2nd electron in W events - vetoSecondElectronEvents = cms.untracked.bool(True), - ETCut2ndEle = cms.untracked.double(20.), - vetoSecondElectronIDType = cms.untracked.string("simpleEleId95cIso"), - vetoSecondElectronIDSign = cms.untracked.string("="), - vetoSecondElectronIDValue = cms.untracked.double(7.), - # trigger - useTriggerInfo = cms.untracked.bool(True), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # additional preselection cuts - useValidFirstPXBHit = cms.untracked.bool(False), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateConversionRejection = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT"), - - ) -#################################################################################### -process.wenuPath = cms.Path(process.patDefaultSequence*process.wenuFilter) - - -process.wenuOutputModule = cms.OutputModule( "PoolOutputModule", - fileName = cms.untracked.string("wenuCandidates.root"), - outputCommands = cms.untracked.vstring( - 'drop *', - 'keep *_*_selectedWenuCandidates_*', - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('wenuPath',), - ) - ) - -process.outpath = cms.EndPath(process.wenuOutputModule) - - - - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuFilterSkimming_data.py b/ElectroWeakAnalysis/WENu/test/pat_WenuFilterSkimming_data.py deleted file mode 100644 index 095cddbcc5770..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuFilterSkimming_data.py +++ /dev/null @@ -1,156 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - #'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - "dcap://gfe02:22128/pnfs/hep.ph.ic.ac.uk/data/cms/store/data/Commissioning10/MinimumBias/RECO/May6thPDSkim2_SD_EG-v1/0135/FCC2FA5A-BB5D-DF11-8246-002618943978.root" - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('GR_R_35X_V8B::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1METs = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1METs' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.layer1METs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet() -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.load("ElectroWeakAnalysis.WENu.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT" # -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #"HLT_Ele15_LW_L1R" -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" # "hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter" -# -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - # cfg for data - dataMagneticFieldSetUp = cms.untracked.bool(True), - dcsTag = cms.untracked.InputTag("scalersRawToDigi"), - # cuts - ETCut = cms.untracked.double(25.), - METCut = cms.untracked.double(0.), - # 2nd electron in W events - vetoSecondElectronEvents = cms.untracked.bool(True), - ETCut2ndEle = cms.untracked.double(20.), - vetoSecondElectronIDType = cms.untracked.string("simpleEleId95cIso"), - vetoSecondElectronIDSign = cms.untracked.string("="), - vetoSecondElectronIDValue = cms.untracked.double(7.), - # trigger - useTriggerInfo = cms.untracked.bool(True), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # additional preselection cuts - useValidFirstPXBHit = cms.untracked.bool(False), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateConversionRejection = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT"), - - ) -#################################################################################### -process.wenuPath = cms.Path(process.patDefaultSequence*process.wenuFilter) - - -process.wenuOutputModule = cms.OutputModule( "PoolOutputModule", - fileName = cms.untracked.string("wenuCandidates.root"), - outputCommands = cms.untracked.vstring( - 'drop *', - 'keep *_*_selectedWenuCandidates_*', - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('wenuPath',), - ) - ) - -process.outpath = cms.EndPath(process.wenuOutputModule) - - - - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuPlots.py b/ElectroWeakAnalysis/WENu/test/pat_WenuPlots.py deleted file mode 100644 index 21cba3d7f63e6..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuPlots.py +++ /dev/null @@ -1,180 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WminusToENu-CTEQ66-powheg_Spring10-START3X_V26_AODSIM-v2.root', - # 'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('START3X_V26A::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1METs = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1METs' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.layer1METs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet( -# tracker = cms.PSet( -# src = cms.InputTag("electronTrackIsolationScone"), -# ), -# ecal = cms.PSet( -# src = cms.InputTag("electronEcalRecHitIsolationScone"), -# ), -# hcal = cms.PSet( -# src = cms.InputTag("electronHcalTowerIsolationScone"), -# ), -# user = cms.VPSet(), - ) -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.load("ElectroWeakAnalysis.WENu.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT" # -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# #= "hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter" # -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - # cuts - ETCut = cms.untracked.double(25.), - METCut = cms.untracked.double(0.), - # 2nd electron in W events - vetoSecondElectronEvents = cms.untracked.bool(True), - ETCut2ndEle = cms.untracked.double(20.), - vetoSecondElectronIDType = cms.untracked.string("simpleEleId95cIso"), - vetoSecondElectronIDSign = cms.untracked.string("="), - vetoSecondElectronIDValue = cms.untracked.double(7.), - # trigger - useTriggerInfo = cms.untracked.bool(True), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # additional preselection cuts - useValidFirstPXBHit = cms.untracked.bool(False), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateConversionRejection = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT"), - - ) -#################################################################################### -## -## the W selection that you prefer included in another cfg -from ElectroWeakAnalysis.WENu.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - # selection in use - selection_80relIso, - selection_inverse, - # if usePrecalcID true the precalculated ID will be used only - usePrecalcID = cms.untracked.bool(False), - usePrecalcIDType = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - # - wenuCollectionTag = cms.untracked.InputTag( - "wenuFilter","selectedWenuCandidates","PAT") - ) - - - - -process.p = cms.Path(process.patDefaultSequence +process.wenuFilter + process.plotter) - - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuPlotsFromSkimmed.py b/ElectroWeakAnalysis/WENu/test/pat_WenuPlotsFromSkimmed.py deleted file mode 100644 index 44aae5be1ad78..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuPlotsFromSkimmed.py +++ /dev/null @@ -1,64 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("WENUPLOTS") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:wenuCandidates.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('START3X_V26A::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -#################################################################################### -## -## the W selection that you prefer -from ElectroWeakAnalysis.WENu.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - # selection in use - selection_80relIso, - selection_inverse, - # if usePrecalcID the precalculated ID will be used only - usePrecalcID = cms.untracked.bool(False), - usePrecalcIDType = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - # - wenuCollectionTag = cms.untracked.InputTag( - "wenuFilter","selectedWenuCandidates","PAT") - ) - - - -process.p = cms.Path(process.plotter) - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuPlotsFromSkimmed_data.py b/ElectroWeakAnalysis/WENu/test/pat_WenuPlotsFromSkimmed_data.py deleted file mode 100644 index b385b65e4f92a..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuPlotsFromSkimmed_data.py +++ /dev/null @@ -1,88 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("WENUPLOTS") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:wenuCandidates.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('GR_R_35X_V8B::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -#################################################################################### -## -## the W selection that you prefer -from ElectroWeakAnalysis.WENu.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) -# dummy selection for debugging -selection_dummy = cms.PSet ( - trackIso_EB = cms.untracked.double(100.), - ecalIso_EB = cms.untracked.double(100.), - hcalIso_EB = cms.untracked.double(100.), - sihih_EB = cms.untracked.double(0.1 ), - dphi_EB = cms.untracked.double(0.1 ), - deta_EB = cms.untracked.double(0.1 ), - hoe_EB = cms.untracked.double(0.1 ), - cIso_EB = cms.untracked.double(100.), - - trackIso_EE = cms.untracked.double(100.), - ecalIso_EE = cms.untracked.double(100.), - hcalIso_EE = cms.untracked.double(100.), - sihih_EE = cms.untracked.double(0.1 ), - dphi_EE = cms.untracked.double(0.1 ), - deta_EE = cms.untracked.double(0.1 ), - hoe_EE = cms.untracked.double(0.1 ), - cIso_EE = cms.untracked.double(100.), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(99), - ) - - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - # selection in use - selection_80relIso, - selection_inverse, - # if usePrecalcID the precalculated ID will be used only - usePrecalcID = cms.untracked.bool(False), - usePrecalcIDType = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - # - wenuCollectionTag = cms.untracked.InputTag( - "wenuFilter","selectedWenuCandidates","PAT") - ) - - - -process.p = cms.Path(process.plotter) - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuPlots_data.py b/ElectroWeakAnalysis/WENu/test/pat_WenuPlots_data.py deleted file mode 100644 index fe91ca96cd2b0..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuPlots_data.py +++ /dev/null @@ -1,207 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - #'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - "dcap://gfe02:22128/pnfs/hep.ph.ic.ac.uk/data/cms/store/data/Commissioning10/MinimumBias/RECO/May6thPDSkim2_SD_EG-v1/0135/FCC2FA5A-BB5D-DF11-8246-002618943978.root" - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('GR_R_35X_V8B::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -process.load("CommonTools.ParticleFlow.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1METs = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1METs' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.layer1METs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet( -# tracker = cms.PSet( -# src = cms.InputTag("electronTrackIsolationScone"), -# ), -# ecal = cms.PSet( -# src = cms.InputTag("electronEcalRecHitIsolationScone"), -# ), -# hcal = cms.PSet( -# src = cms.InputTag("electronHcalTowerIsolationScone"), -# ), -# user = cms.VPSet(), - ) -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.load("ElectroWeakAnalysis.WENu.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT" # -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" # "HLT_Ele15_LW_L1R" -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" #"hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter" -# -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - # cfg for data - dataMagneticFieldSetUp = cms.untracked.bool(True), - dcsTag = cms.untracked.InputTag("scalersRawToDigi"), - # cuts - ETCut = cms.untracked.double(25.), - METCut = cms.untracked.double(0.), - # 2nd electron in W events - vetoSecondElectronEvents = cms.untracked.bool(True), - ETCut2ndEle = cms.untracked.double(20.), - vetoSecondElectronIDType = cms.untracked.string("simpleEleId95cIso"), - vetoSecondElectronIDSign = cms.untracked.string("="), - vetoSecondElectronIDValue = cms.untracked.double(7.), - # trigger - useTriggerInfo = cms.untracked.bool(True), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # additional preselection cuts - useValidFirstPXBHit = cms.untracked.bool(False), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateConversionRejection = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT"), - - ) -#################################################################################### -## -## the W selection that you prefer included in another cfg -from ElectroWeakAnalysis.WENu.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) -# dummy selection for debugging -selection_dummy = cms.PSet ( - trackIso_EB = cms.untracked.double(100.), - ecalIso_EB = cms.untracked.double(100.), - hcalIso_EB = cms.untracked.double(100.), - sihih_EB = cms.untracked.double(0.1 ), - dphi_EB = cms.untracked.double(0.1 ), - deta_EB = cms.untracked.double(0.1 ), - hoe_EB = cms.untracked.double(0.1 ), - cIso_EB = cms.untracked.double(100.), - - trackIso_EE = cms.untracked.double(100.), - ecalIso_EE = cms.untracked.double(100.), - hcalIso_EE = cms.untracked.double(100.), - sihih_EE = cms.untracked.double(0.1 ), - dphi_EE = cms.untracked.double(0.1 ), - deta_EE = cms.untracked.double(0.1 ), - hoe_EE = cms.untracked.double(0.1 ), - cIso_EE = cms.untracked.double(100.), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(99), - ) - - - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - # selection in use - selection_80relIso, - selection_inverse, - # if usePrecalcID the precalculated ID will be used only - usePrecalcID = cms.untracked.bool(False), - usePrecalcIDType = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - # - wenuCollectionTag = cms.untracked.InputTag( - "wenuFilter","selectedWenuCandidates","PAT") - ) - - - - -process.p = cms.Path(process.patDefaultSequence +process.wenuFilter + process.plotter) - - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuPlots_hcalDepths.py b/ElectroWeakAnalysis/WENu/test/pat_WenuPlots_hcalDepths.py deleted file mode 100644 index ff14072d5a1b2..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuPlots_hcalDepths.py +++ /dev/null @@ -1,280 +0,0 @@ -import FWCore.ParameterSet.Config as cms - - -## -## In this configuration file I show an example of how to put separate cuts -## in hcal isolation using the 2 hcal depths -## -## Nikolaos Rompotis - Imperial College London -## 09Dec09 - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - #fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/RedigiSummer08RootTrees/WenuRedigi_RECO_SAMPLE.root') - fileNames = cms.untracked.vstring( -# 'file:/tmp/rompotis/Run123505_LS70-80_BscMinBiasInnerThreshold.root', - 'file:zee_Summer09-MC_31X_V3_AODSIM_v1_AODSIM.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -#process.GlobalTag.globaltag = cms.string('GR09_P_V7::All') # >>> this is for data -process.GlobalTag.globaltag = cms.string('MC_31X_V5::All') # >>> this is for summer09 -#process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -process.load("CommonTools.ParticleFlow.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -# for ecal isolation: set the correct name of the ECAL rechit collection -# -process.eleIsoDepositEcalFromHits.ExtractorPSet.barrelEcalHits = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eleIsoDepositEcalFromHits.ExtractorPSet.endcapEcalHits = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -# -# -process.eidRobustHighEnergy.reducedBarrelRecHitCollection = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eidRobustHighEnergy.reducedEndcapRecHitCollection = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") - -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1RawCaloMETs = process.layer1METs.clone( #%% - metSource = cms.InputTag("met"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -process.layer1METs.addGenMET = cms.bool(False) -process.layer1METs.addTrigMatch = cms.bool(False) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1RawCaloMETs' -## modify the sequence of the MET creation: #%% -process.makeLayer1METs = cms.Sequence( # process.patMETCorrections * process.layer1METs * - process.layer1RawCaloMETs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -process.electronEcalRecHitIsolationLcone.ecalBarrelRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -process.electronEcalRecHitIsolationScone.ecalBarrelRecHitProducer = cms.InputTag("reducedEcalRecHitsEB") -process.electronEcalRecHitIsolationLcone.ecalEndcapRecHitProducer = cms.InputTag("reducedEcalRecHitsEE") -process.electronEcalRecHitIsolationScone.ecalEndcapRecHitProducer = cms.InputTag("reducedEcalRecHitsEE") -# -process.electronEcalRecHitIsolationLcone.ecalBarrelRecHitCollection = cms.InputTag("") -process.electronEcalRecHitIsolationScone.ecalBarrelRecHitCollection = cms.InputTag("") -process.electronEcalRecHitIsolationLcone.ecalEndcapRecHitCollection = cms.InputTag("") -process.electronEcalRecHitIsolationScone.ecalEndcapRecHitCollection = cms.InputTag("") -# -# -process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) -## -## the following modification calculates the hcal isolation in depth 1 and depth 2 -## for the following cfg lines the following holds: -## depth 1 isolation is used in default hcal iso, i.e. accessed with userIsolation(pat::HcalIso) -## depth 2 is accessed with userIsolation(pat::User1Iso) -## -process.allLayer1Electrons.isoDeposits = cms.PSet() -process.allLayer1Electrons.userIsolation = cms.PSet( - tracker = cms.PSet( src = cms.InputTag("electronTrackIsolationScone"), ), - ecal = cms.PSet( src = cms.InputTag("electronEcalRecHitIsolationLcone"), ), - hcal = cms.PSet( src = cms.InputTag("electronHcalDepth1TowerIsolationLcone"), ), - user = cms.VPSet( - cms.PSet( src = cms.InputTag("electronHcalDepth2TowerIsolationLcone"), ), - ), - - ) -process.allLayer1Electrons.addElectronID = cms.bool(False) -process.allLayer1Electrons.electronIDSources = cms.PSet() -process.allLayer1Electrons.addGenMatch = cms.bool(False) -process.allLayer1Electrons.embedGenMatch = cms.bool(False) -process.allLayer1Electrons.embedHighLevelSelection = cms.bool(False) -## -process.allLayer1Muons.addGenMatch = cms.bool(False) -process.allLayer1Muons.embedGenMatch = cms.bool(False) -## -process.makeAllLayer1Electrons = cms.Sequence(process.patElectronIsolation*process.allLayer1Electrons) -process.makeAllLayer1Muons = cms.Sequence(process.allLayer1Muons) -## -process.allLayer1Objects = cms.Sequence(process.makeAllLayer1Electrons+process.makeAllLayer1Muons+process.makeLayer1METs) -process.selectedLayer1Objects = cms.Sequence(process.selectedLayer1Electrons+process.selectedLayer1Muons) -process.cleanLayer1Objects = cms.Sequence(process.cleanLayer1Muons*process.cleanLayer1Electrons) -process.countLayer1Objects = cms.Sequence(process.countLayer1Electrons+process.countLayer1Muons) - -process.patDefaultSequence = cms.Sequence(process.allLayer1Objects * process.selectedLayer1Objects * - process.cleanLayer1Objects*process.countLayer1Objects - ) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT8E29" # options: HLT or HLT8E29 >> this is for summer09 -#HLT_process_name = "HLT" # options: HLT or HLT8E29 >> this is for data -# trigger path selection -HLT_path_name = "HLT_Ele15_LW_L1R" -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter" -# -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - # cuts - ETCut = cms.untracked.double(0.), - METCut = cms.untracked.double(0.), - vetoSecondElectronEvents = cms.untracked.bool(False), - ETCut2ndEle = cms.untracked.double(20.), - # trigger here - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - useTriggerInfo = cms.untracked.bool(False), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(False), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("selectedLayer1Electrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT") - - ) -#################################################################################### -## -## the W selection that you prefer -selection_a2 = cms.PSet ( - trackIso_EB = cms.untracked.double(2.2), - ecalIso_EB = cms.untracked.double(4.2), - hcalIso_EB = cms.untracked.double(2.0), - sihih_EB = cms.untracked.double(0.0099), - dphi_EB = cms.untracked.double(0.025), - deta_EB = cms.untracked.double(0.0040), - hoe_EB = cms.untracked.double(1000.0), - ## you can add this variable as an extra isolation, - ## if you don't add it then automatically will not be used - userIso_EB = cms.untracked.double(5.0), - - trackIso_EE = cms.untracked.double(1.1), - ecalIso_EE = cms.untracked.double(3.4), - hcalIso_EE = cms.untracked.double(1.3), - sihih_EE = cms.untracked.double(0.028), - dphi_EE = cms.untracked.double(0.020), - deta_EE = cms.untracked.double(0.0066), - hoe_EE = cms.untracked.double(1000.0), - ## you can add this variable as an extra isolation, - ## if you don't add it then automatically will not be used - userIso_EE = cms.untracked.double(5.0), - ) - -selection_test = cms.PSet ( - trackIso_EB = cms.untracked.double(10), - ecalIso_EB = cms.untracked.double(10), - hcalIso_EB = cms.untracked.double(10), - sihih_EB = cms.untracked.double(0.1), - dphi_EB = cms.untracked.double(1), - deta_EB = cms.untracked.double(1), - hoe_EB = cms.untracked.double(1), - - trackIso_EE = cms.untracked.double(10), - ecalIso_EE = cms.untracked.double(10), - hcalIso_EE = cms.untracked.double(10), - sihih_EE = cms.untracked.double(1), - dphi_EE = cms.untracked.double(1), - deta_EE = cms.untracked.double(1), - hoe_EE = cms.untracked.double(1) - ) - -selection_inverse = cms.PSet ( - trackIso_EB_inv = cms.untracked.bool(True), - trackIso_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - selection_a2, - selection_inverse, - wenuCollectionTag = cms.untracked.InputTag( - "wenuFilter","selectedWenuCandidates","PAT") - ) - - - - -process.p = cms.Path(process.patDefaultSequence +process.wenuFilter + process.plotter) -# process.p = cms.Path(process.patSequences + process.wenuFilter + process.eca) - - -#### SET OF Trigger names for AOD - 321 -# -# HLTPath_[0] = "HLT_Ele10_LW_L1R"; -# HLTFilterType_[0] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10PixelMatchFilter","","HLT8E29"); -# HLTPath_[1] = "HLT_Ele10_LW_EleId_L1R"; -# HLTFilterType_[1] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10EleIdDphiFilter","","HLT8E29"); -# HLTPath_[2] = "HLT_Ele15_LW_L1R"; -# HLTFilterType_[2] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter","","HLT8E29"); -# HLTPath_[3] = "HLT_Ele15_SC10_LW_L1R"; -# HLTFilterType_[3] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15ESDoubleSC10","","HLT8E29"); -# HLTPath_[4] = "HLT_Ele15_SiStrip_L1R"; -# HLTFilterType_[4] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt15PixelMatchFilter","","HLT8E29"); -# HLTPath_[5] = "HLT_Ele20_LW_L1R"; -# HLTFilterType_[5] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15EtFilterESet20","","HLT8E29"); -# HLTPath_[6] = "HLT_DoubleEle5_SW_L1R"; -# HLTFilterType_[6] = edm::InputTag("hltL1NonIsoHLTNonIsoDoubleElectronEt5PixelMatchFilter","","HLT8E29"); -# HLTPath_[7] = "HLT_Ele15_SC10_LW_L1R"; -# HLTFilterType_[7] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15ESDoubleSC10","","HLT8E29"); -# HLTPath_[8] = "tba"; -# HLTFilterType_[8] = edm::InputTag("tba"); -# HLTPath_[9] = "tba"; -# HLTFilterType_[9] = edm::InputTag("tba"); -# // e31 menu -# HLTPath_[10] = "HLT_Ele10_SW_L1R"; -# HLTFilterType_[10] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt10PixelMatchFilter","","HLT"); -# HLTPath_[11] = "HLT_Ele15_SW_L1R"; -# HLTFilterType_[11] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15PixelMatchFilter","","HLT"); -# HLTPath_[12] = "HLT_Ele15_SiStrip_L1R"; // <--- same as [4] -# HLTFilterType_[12] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt15PixelMatchFilter","","HLT"); -# HLTPath_[13] = "HLT_Ele15_SW_LooseTrackIso_L1R"; -# HLTFilterType_[13] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15LTITrackIsolFilter","","HLT"); -# HLTPath_[14] = "HLT_Ele15_SW_EleId_L1R"; -# HLTFilterType_[14] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdDphiFilter","","HLT"); -# HLTPath_[15] = "HLT_Ele20_SW_L1R"; -# HLTFilterType_[15] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt20PixelMatchFilter","","HLT"); -# HLTPath_[16] = "HLT_Ele20_SiStrip_L1R"; -# HLTFilterType_[16] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt20PixelMatchFilter","","HLT"); -# HLTPath_[17] = "HLT_Ele25_SW_L1R"; -# HLTFilterType_[17] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EtFilterESet25","","HLT"); -# HLTPath_[18] = "HLT_Ele25_SW_EleId_LooseTrackIso_L1R"; -# HLTFilterType_[18] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdTrackIsolFilterESet25LTI","","HLT"); -# HLTPath_[19] = "HLT_DoubleEle10_SW_L1R"; -# HLTFilterType_[19] = edm::InputTag("hltL1NonIsoHLTNonIsoDoubleElectronEt10PixelMatchFilter","","HLT"); -# HLTPath_[20] = "HLT_Ele15_SC15_SW_EleId_L1R"; -# HLTFilterType_[20] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdESDoubleSC15","","HLT"); -# HLTPath_[21] = "HLT_Ele15_SC15_SW_LooseTrackIso_L1R"; -# HLTFilterType_[21] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15LTIESDoubleSC15","","HLT"); -# HLTPath_[22] = "HLT_Ele20_SC15_SW_L1R"; -# HLTFilterType_[22] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt20ESDoubleSC15","","HLT"); diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuPlots_isodeposits.py b/ElectroWeakAnalysis/WENu/test/pat_WenuPlots_isodeposits.py deleted file mode 100644 index 77cdcc1b5de9c..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuPlots_isodeposits.py +++ /dev/null @@ -1,231 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - #fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/RedigiSummer08RootTrees/WenuRedigi_RECO_SAMPLE.root') - fileNames = cms.untracked.vstring( - 'file:zee_Summer09-MC_31X_V3_AODSIM_v1_AODSIM.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -#process.GlobalTag.globaltag = cms.string('MC_31X_V5::All') -process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -# for ecal isolation: set the correct name of the ECAL rechit collection -# -process.eleIsoDepositEcalFromHits.ExtractorPSet.barrelEcalHits = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eleIsoDepositEcalFromHits.ExtractorPSet.endcapEcalHits = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -# -# -process.eidRobustHighEnergy.reducedBarrelRecHitCollection = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eidRobustHighEnergy.reducedEndcapRecHitCollection = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## CHOICE OF THE HLT PATH this section is not used from PAT -## -## Define here as string the names of the triggers only once -## please consult the table of the available triggers at the end of this file -# trigger menu selection -## -#process.patTrigger.processName = cms.string(HLT_process_name) -#process.patTriggerMatcher = cms.Sequence(process.patTriggerElectronMatcher) -#process.electronTriggerMatchHltElectrons.pathNames = cms.vstring(HLT_path_name) -#process.patTriggerMatchEmbedder = cms.Sequence(process.cleanLayer1ElectronsTriggerMatch) -#process.patTriggerSequence = cms.Sequence(process.patTrigger*process.patTriggerMatcher* -# process.patTriggerMatchEmbedder) -## -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1RawCaloMETs = process.layer1METs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1RawCaloMETs' -## modify the sequence of the MET creation: #%% -process.makeLayer1METs = cms.Sequence(process.patMETCorrections * process.layer1METs * - process.layer1RawCaloMETs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.allLayer1Objects = cms.Sequence(process.makeAllLayer1Electrons+process.makeAllLayer1Muons+process.makeLayer1METs) -process.selectedLayer1Objects = cms.Sequence(process.selectedLayer1Electrons+process.selectedLayer1Muons) -process.cleanLayer1Objects = cms.Sequence(process.cleanLayer1Muons*process.cleanLayer1Electrons) -process.countLayer1Objects = cms.Sequence(process.countLayer1Electrons+process.countLayer1Muons) - -process.patDefaultSequence = cms.Sequence(process.allLayer1Objects * process.selectedLayer1Objects * - process.cleanLayer1Objects*process.countLayer1Objects - ) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT8E29" # options: HLT or HLT8E29 -# trigger path selection -HLT_path_name = "HLT_Ele10_LW_L1R" -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSingleElectronLWEt10PixelMatchFilter" -# -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - # cuts - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - vetoSecondElectronEvents = cms.untracked.bool(False), - ETCut2ndEle = cms.untracked.double(20.), - # trigger here - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(False), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("selectedLayer1Electrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT") - - ) -#################################################################################### -## -## the W selection that you prefer -selection_a2 = cms.PSet ( - trackIso_EB = cms.untracked.double(2.2), - ecalIso_EB = cms.untracked.double(4.2), - hcalIso_EB = cms.untracked.double(2.0), - sihih_EB = cms.untracked.double(0.0099), - dphi_EB = cms.untracked.double(0.025), - deta_EB = cms.untracked.double(0.0040), - hoe_EB = cms.untracked.double(0.1), - - trackIso_EE = cms.untracked.double(1.1), - ecalIso_EE = cms.untracked.double(3.4), - hcalIso_EE = cms.untracked.double(1.3), - sihih_EE = cms.untracked.double(0.028), - dphi_EE = cms.untracked.double(0.020), - deta_EE = cms.untracked.double(0.0066), - hoe_EE = cms.untracked.double(0.1) - ) -selection_test = cms.PSet ( - trackIso_EB = cms.untracked.double(10), - ecalIso_EB = cms.untracked.double(10), - hcalIso_EB = cms.untracked.double(10), - sihih_EB = cms.untracked.double(0.1), - dphi_EB = cms.untracked.double(1), - deta_EB = cms.untracked.double(1), - hoe_EB = cms.untracked.double(1), - - trackIso_EE = cms.untracked.double(10), - ecalIso_EE = cms.untracked.double(10), - hcalIso_EE = cms.untracked.double(10), - sihih_EE = cms.untracked.double(1), - dphi_EE = cms.untracked.double(1), - deta_EE = cms.untracked.double(1), - hoe_EE = cms.untracked.double(1) - ) - -selection_inverse = cms.PSet ( - trackIso_EB_inv = cms.untracked.bool(True), - trackIso_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - selection_test, - selection_inverse, - wenuCollectionTag = cms.untracked.InputTag( - "wenuFilter","selectedWenuCandidates","PAT") - ) - - - - -process.p = cms.Path(process.patDefaultSequence +process.wenuFilter + process.plotter) -# process.p = cms.Path(process.patSequences + process.wenuFilter + process.eca) - - -#### SET OF Trigger names for AOD - 321 -# -# HLTPath_[0] = "HLT_Ele10_LW_L1R"; -# HLTFilterType_[0] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10PixelMatchFilter","","HLT8E29"); -# HLTPath_[1] = "HLT_Ele10_LW_EleId_L1R"; -# HLTFilterType_[1] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10EleIdDphiFilter","","HLT8E29"); -# HLTPath_[2] = "HLT_Ele15_LW_L1R"; -# HLTFilterType_[2] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter","","HLT8E29"); -# HLTPath_[3] = "HLT_Ele15_SC10_LW_L1R"; -# HLTFilterType_[3] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15ESDoubleSC10","","HLT8E29"); -# HLTPath_[4] = "HLT_Ele15_SiStrip_L1R"; -# HLTFilterType_[4] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt15PixelMatchFilter","","HLT8E29"); -# HLTPath_[5] = "HLT_Ele20_LW_L1R"; -# HLTFilterType_[5] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15EtFilterESet20","","HLT8E29"); -# HLTPath_[6] = "HLT_DoubleEle5_SW_L1R"; -# HLTFilterType_[6] = edm::InputTag("hltL1NonIsoHLTNonIsoDoubleElectronEt5PixelMatchFilter","","HLT8E29"); -# HLTPath_[7] = "HLT_Ele15_SC10_LW_L1R"; -# HLTFilterType_[7] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15ESDoubleSC10","","HLT8E29"); -# HLTPath_[8] = "tba"; -# HLTFilterType_[8] = edm::InputTag("tba"); -# HLTPath_[9] = "tba"; -# HLTFilterType_[9] = edm::InputTag("tba"); -# // e31 menu -# HLTPath_[10] = "HLT_Ele10_SW_L1R"; -# HLTFilterType_[10] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt10PixelMatchFilter","","HLT"); -# HLTPath_[11] = "HLT_Ele15_SW_L1R"; -# HLTFilterType_[11] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15PixelMatchFilter","","HLT"); -# HLTPath_[12] = "HLT_Ele15_SiStrip_L1R"; // <--- same as [4] -# HLTFilterType_[12] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt15PixelMatchFilter","","HLT"); -# HLTPath_[13] = "HLT_Ele15_SW_LooseTrackIso_L1R"; -# HLTFilterType_[13] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15LTITrackIsolFilter","","HLT"); -# HLTPath_[14] = "HLT_Ele15_SW_EleId_L1R"; -# HLTFilterType_[14] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdDphiFilter","","HLT"); -# HLTPath_[15] = "HLT_Ele20_SW_L1R"; -# HLTFilterType_[15] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt20PixelMatchFilter","","HLT"); -# HLTPath_[16] = "HLT_Ele20_SiStrip_L1R"; -# HLTFilterType_[16] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt20PixelMatchFilter","","HLT"); -# HLTPath_[17] = "HLT_Ele25_SW_L1R"; -# HLTFilterType_[17] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EtFilterESet25","","HLT"); -# HLTPath_[18] = "HLT_Ele25_SW_EleId_LooseTrackIso_L1R"; -# HLTFilterType_[18] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdTrackIsolFilterESet25LTI","","HLT"); -# HLTPath_[19] = "HLT_DoubleEle10_SW_L1R"; -# HLTFilterType_[19] = edm::InputTag("hltL1NonIsoHLTNonIsoDoubleElectronEt10PixelMatchFilter","","HLT"); -# HLTPath_[20] = "HLT_Ele15_SC15_SW_EleId_L1R"; -# HLTFilterType_[20] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdESDoubleSC15","","HLT"); -# HLTPath_[21] = "HLT_Ele15_SC15_SW_LooseTrackIso_L1R"; -# HLTFilterType_[21] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15LTIESDoubleSC15","","HLT"); -# HLTPath_[22] = "HLT_Ele20_SC15_SW_L1R"; -# HLTFilterType_[22] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt20ESDoubleSC15","","HLT"); diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple.py b/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple.py deleted file mode 100644 index 932f20d8e60b2..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple.py +++ /dev/null @@ -1,274 +0,0 @@ -## ######################################################### -## -## Configuration for the production of the ICHEP VBTF ntuple -## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -## MC, spring10 -## -## Nikolaos Rompotis - Imperial College London -## 22 June 2010 -## -## ######################################################### -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - -#process.MessageLogger = cms.Service( -# "MessageLogger", -# categories = cms.untracked.vstring('info', 'debug','cout') -# ) - - -process.load("FWCore.MessageService.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1000000), - limit = cms.untracked.int32(10000000) - ) -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - reportEvery = cms.untracked.int32(100000), - limit = cms.untracked.int32(10000000) - ) -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) - ) - - - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - # SOME DATA FILE TO BE PUT HERE - #'rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WminusToENu-CTEQ66-powheg_Spring10-START3X_V26_AODSIM-v2.root', - #'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('GR_R_36X_V11A::All') # GLOBAL TAG FOR DATA -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.caloMET = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.tcMET = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.pfMET = process.patMETs.clone( #%% - metSource = cms.InputTag("pfMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myMetCollection = 'caloMET' -myPfMetCollection = 'pfMET' -myTcMetCollection = 'tcMET' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet() -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -process.patElectrons.usePV = cms.bool(False) -## -process.load("ElectroWeakAnalysis.WENu.simpleEleIdSequence_cff") -# you have to tell the ID that it is data -process.simpleEleId95relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId90relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId85relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId80relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId70relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId60relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId95cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId90cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId85cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId80cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId70cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId60cIso.dataMagneticFieldSetUp = cms.bool(True) -# -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT" # REDIGI for the Spring10 production traditional MC / HLT for the powheg samples or data -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# -HLT_path_name_extra = "HLT_Photon15_L1R" #= "HLT_Ele15_LW_L1R" # -HLT_filter_name_extra = "hltL1NonIsoHLTNonIsoSinglePhotonEt15HcalIsolFilter" - - -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - ### the input collections needed: - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"), - pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"), - tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"), - eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"), - PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"), - ### here the preselection is applied - # fiducial cuts: - BarrelMaxEta = cms.untracked.double(1.4442), - EndCapMinEta = cms.untracked.double(1.566), - EndCapMaxEta = cms.untracked.double(2.5), - # demand ecal driven electron: - useEcalDrivenElectrons = cms.untracked.bool(True), - # demand offline spike cleaning with the Swiss Cross criterion: - useSpikeRejection = cms.untracked.bool(True), - spikeCleaningSwissCrossCut = cms.untracked.double(0.95), - # demand geometrically matched to an HLT object with ET>15GeV - useTriggerInfo = cms.untracked.bool(True), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.1), - useHLTObjectETCut = cms.untracked.bool(True), - hltObjectETCut = cms.untracked.double(15.), - useExtraTrigger = cms.untracked.bool(True), - hltpathExtra = cms.untracked.string(HLT_path_name_extra), - hltpathFilterExtra = cms.untracked.InputTag(HLT_filter_name_extra,"",HLT_process_name), - # ET Cut in the SC - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - # reject events with a 2nd electron with ET > 20 that passes the WP95% - vetoSecondElectronEvents = cms.untracked.bool(False), - storeSecondElectron = cms.untracked.bool(True), - ETCut2ndEle = cms.untracked.double(20.), - vetoSecondElectronIDType = cms.untracked.string("simpleEleId95relIso"), - vetoSecondElectronIDSign = cms.untracked.string("="), - vetoSecondElectronIDValue = cms.untracked.double(7.), - # Other parameters of the code - leave them as they are - useValidFirstPXBHit = cms.untracked.bool(False), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateConversionRejection = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # we are dealing with DATA - dataMagneticFieldSetUp = cms.untracked.bool(True), - dcsTag = cms.untracked.InputTag("scalersRawToDigi"), - ) -#################################################################################### -## -## the W selection that you prefer included in another cfg -from ElectroWeakAnalysis.WENu.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -# -# we need to store jet information, hence we have to produce the jets: -process.load("JetMETCorrections.Configuration.DefaultJEC_cff") - -process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 ) -process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 ) - -process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence ) - - - -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - # selection in use: wont be used - we have usePrecalcID true later - selection_80relIso, - selection_inverse, - # The selection to be used here: - usePrecalcID = cms.untracked.bool(True), - usePrecalcIDType = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - # some extra information on the ntuple production: - includeJetInformationInNtuples = cms.untracked.bool(True), - caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'), - pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'), - DRJetFromElectron = cms.untracked.double(0.3), - # - wenuCollectionTag = cms.untracked.InputTag("wenuFilter","selectedWenuCandidates","PAT"), - WENU_VBTFselectionFileName = cms.untracked.string("WENU_VBTFselection.root"), - WENU_VBTFpreseleFileName = cms.untracked.string("WENU_VBTFpreselection.root"), - DatasetTag = cms.untracked.int32(100), - storeSecondElectronInformation = cms.untracked.bool(True), - ) -# -# if you run on data then you have to do misalignment corrections first!!! -# not to be used with MC!! -process.load("RecoEgamma.EgammaTools.correctedElectronsProducer_cfi") -process.p = cms.Path( process.gsfElectrons*process.ourJetSequence* - process.patDefaultSequence*process.wenuFilter*process.plotter) -#process.p = cms.Path( process.ourJetSequence * process.patDefaultSequence +process.wenuFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple_forCTEQ66Powheg.py b/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple_forCTEQ66Powheg.py deleted file mode 100644 index 2bf672123ff95..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple_forCTEQ66Powheg.py +++ /dev/null @@ -1,254 +0,0 @@ -## ######################################################### -## -## Configuration for the production of the ICHEP VBTF ntuple -## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -## MC, spring10 -## -## Nikolaos Rompotis - Imperial College London -## 22 June 2010 -## -## ######################################################### -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -#process.MessageLogger = cms.Service( -# "MessageLogger", -# categories = cms.untracked.vstring('info', 'debug','cout') -# ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -process.load("FWCore.MessageService.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1000000), - limit = cms.untracked.int32(10000000) - ) -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - reportEvery = cms.untracked.int32(100000), - limit = cms.untracked.int32(10000000) - ) -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) - ) - - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WminusToENu-CTEQ66-powheg_Spring10-START3X_V26_AODSIM-v2.root', - #'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('START3X_V26A::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.caloMET = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.tcMET = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.pfMET = process.patMETs.clone( #%% - metSource = cms.InputTag("pfMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myMetCollection = 'caloMET' -myPfMetCollection = 'pfMET' -myTcMetCollection = 'tcMET' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet( ) -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -process.patElectrons.usePV = cms.bool(False) -## -process.load("ElectroWeakAnalysis.WENu.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT" # REDIGI for the Spring10 production traditional MC / HLT for the powheg samples or data -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# -HLT_path_name_extra = "HLT_Photon15_L1R" #= "HLT_Ele15_LW_L1R" # -HLT_filter_name_extra = "hltL1NonIsoHLTNonIsoSinglePhotonEt15HcalIsolFilter" -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - ### the input collections needed: - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"), - pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"), - tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"), - eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"), - PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"), - ### here the preselection is applied - # fiducial cuts: - BarrelMaxEta = cms.untracked.double(1.4442), - EndCapMinEta = cms.untracked.double(1.566), - EndCapMaxEta = cms.untracked.double(2.5), - # demand ecal driven electron: - useEcalDrivenElectrons = cms.untracked.bool(True), - # demand offline spike cleaning with the Swiss Cross criterion: - useSpikeRejection = cms.untracked.bool(True), - spikeCleaningSwissCrossCut = cms.untracked.double(0.95), - # demand geometrically matched to an HLT object with ET>15GeV - useTriggerInfo = cms.untracked.bool(True), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.1), - useHLTObjectETCut = cms.untracked.bool(True), - hltObjectETCut = cms.untracked.double(15.), - useExtraTrigger = cms.untracked.bool(True), - hltpathExtra = cms.untracked.string(HLT_path_name_extra), - hltpathFilterExtra = cms.untracked.InputTag(HLT_filter_name_extra,"",HLT_process_name), - # ET Cut in the SC - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - # reject events with a 2nd electron with ET > 20 that passes the WP95% - vetoSecondElectronEvents = cms.untracked.bool(False), - storeSecondElectron = cms.untracked.bool(True), - ETCut2ndEle = cms.untracked.double(20.), - vetoSecondElectronIDType = cms.untracked.string("simpleEleId95relIso"), - vetoSecondElectronIDSign = cms.untracked.string("="), - vetoSecondElectronIDValue = cms.untracked.double(7.), - # Other parameters of the code - leave them as they are - useValidFirstPXBHit = cms.untracked.bool(False), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateConversionRejection = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # it is MC, not data - dataMagneticFieldSetUp = cms.untracked.bool(False), - dcsTag = cms.untracked.InputTag("scalersRawToDigi"), - ) -#################################################################################### -## -## the W selection that you prefer included in another cfg -from ElectroWeakAnalysis.WENu.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -# -# we need to store jet information, hence we have to produce the jets: -process.load("JetMETCorrections.Configuration.DefaultJEC_cff") - -process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 ) -process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 ) - -process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence ) - - - -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - # selection in use: wont be used - we have usePrecalcID true later - selection_80relIso, - selection_inverse, - # The selection to be used here: - usePrecalcID = cms.untracked.bool(True), - usePrecalcIDType = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - # some extra information on the ntuple production: - includeJetInformationInNtuples = cms.untracked.bool(True), - caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'), - pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'), - DRJetFromElectron = cms.untracked.double(0.3), - # - wenuCollectionTag = cms.untracked.InputTag("wenuFilter","selectedWenuCandidates","PAT"), - WENU_VBTFselectionFileName = cms.untracked.string("WENU_VBTFselection.root"), - WENU_VBTFpreseleFileName = cms.untracked.string("WENU_VBTFpreselection.root"), - DatasetTag = cms.untracked.int32(0), - storeSecondElectronInformation = cms.untracked.bool(True), - ) -# -# if you run on data then you have to do misalignment corrections first!!! -# not to be used with MC!! -#process.load("RecoEgamma.EgammaTools.correctedElectronsProducer_cfi") -#process.p = cms.Path( process.gsfElectrons + process.patDefaultSequence +process.wenuFilter + process.plotter) -process.p = cms.Path( process.ourJetSequence * process.patDefaultSequence +process.wenuFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple_forData.py b/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple_forData.py deleted file mode 100644 index 9cd50c292f0ef..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple_forData.py +++ /dev/null @@ -1,250 +0,0 @@ -## ######################################################### -## -## Configuration for the production of the ICHEP VBTF ntuple -## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -## MC, spring10 -## -## Nikolaos Rompotis - Imperial College London -## 22 June 2010 -## -## ######################################################### -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - -#process.MessageLogger = cms.Service( -# "MessageLogger", -# categories = cms.untracked.vstring('info', 'debug','cout') -# ) - - -process.load("FWCore.MessageService.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1000000), - limit = cms.untracked.int32(10000000) - ) -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - reportEvery = cms.untracked.int32(100000), - limit = cms.untracked.int32(10000000) - ) -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) - ) - - - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - # SOME DATA FILE TO BE PUT HERE - #'rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WminusToENu-CTEQ66-powheg_Spring10-START3X_V26_AODSIM-v2.root', - #'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - 'rfio:/castor/cern.ch/cms/store/relval/CMSSW_3_9_1/RelValZEE/GEN-SIM-RECO/START39_V3-v1/0062/187296DA-39E4-DF11-A172-003048679296.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('START39_V3::All') - -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.caloMET = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.tcMET = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.pfMET = process.patMETs.clone( #%% - metSource = cms.InputTag("pfMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myMetCollection = 'caloMET' -myPfMetCollection = 'pfMET' -myTcMetCollection = 'tcMET' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet() -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -process.patElectrons.usePV = cms.bool(False) -## -process.load("ElectroWeakAnalysis.WENu.simpleEleIdSequence_cff") -# -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT" # REDIGI for the Spring10 production traditional MC / HLT for the powheg samples or data -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# - - -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - ### the input collections needed: - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"), - pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"), - tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"), - eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"), - PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"), - ### here the preselection is applied - # fiducial cuts: - BarrelMaxEta = cms.untracked.double(1.4442), - EndCapMinEta = cms.untracked.double(1.566), - EndCapMaxEta = cms.untracked.double(2.5), - # demand ecal driven electron: - useEcalDrivenElectrons = cms.untracked.bool(True), - # demand offline spike cleaning with the Swiss Cross criterion: - useSpikeRejection = cms.untracked.bool(False), - spikeCleaningSwissCrossCut = cms.untracked.double(0.95), - # demand geometrically matched to an HLT object with ET>15GeV - useTriggerInfo = cms.untracked.bool(False), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.1), - useHLTObjectETCut = cms.untracked.bool(True), - hltObjectETCut = cms.untracked.double(15.), - useExtraTrigger = cms.untracked.bool(False), - # ET Cut in the SC - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - # reject events with a 2nd electron with ET > 20 that passes the WP95% - vetoSecondElectronEvents = cms.untracked.bool(False), - storeSecondElectron = cms.untracked.bool(True), - ETCut2ndEle = cms.untracked.double(20.), - vetoSecondElectronIDType = cms.untracked.string("simpleEleId95relIso"), - vetoSecondElectronIDSign = cms.untracked.string("="), - vetoSecondElectronIDValue = cms.untracked.double(7.), - # Other parameters of the code - leave them as they are - useValidFirstPXBHit = cms.untracked.bool(False), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - ) -#################################################################################### -## -## the W selection that you prefer included in another cfg -from ElectroWeakAnalysis.WENu.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -# -# we need to store jet information, hence we have to produce the jets: -process.load("JetMETCorrections.Configuration.CorrectedJetProducersDefault_cff") -#process.load("JetMETCorrections.Configuration.CorrectedJetProducers_cff") -process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 ) -process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 ) - -process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence ) - - - -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - # selection in use: wont be used - we have usePrecalcID true later - selection_80relIso, - selection_inverse, - # The selection to be used here: - usePrecalcID = cms.untracked.bool(True), - usePrecalcIDType = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - # some extra information on the ntuple production: - includeJetInformationInNtuples = cms.untracked.bool(True), - caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'), - pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'), - DRJetFromElectron = cms.untracked.double(0.3), - # - wenuCollectionTag = cms.untracked.InputTag("wenuFilter","selectedWenuCandidates","PAT"), - WENU_VBTFselectionFileName = cms.untracked.string("WENU_VBTFselection.root"), - WENU_VBTFpreseleFileName = cms.untracked.string("WENU_VBTFpreselection.root"), - DatasetTag = cms.untracked.int32(100), - storeExtraInformation = cms.untracked.bool(True), - storeAllSecondElectronVariables = cms.untracked.bool(True), - ) -# -process.p = cms.Path( process.ourJetSequence*process.patDefaultSequence*process.wenuFilter*process.plotter) - - diff --git a/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple_forSpring10MC.py b/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple_forSpring10MC.py deleted file mode 100644 index eed223ef5e75d..0000000000000 --- a/ElectroWeakAnalysis/WENu/test/pat_WenuVBTF_ntuple_forSpring10MC.py +++ /dev/null @@ -1,248 +0,0 @@ -## ######################################################### -## -## Configuration for the production of the ICHEP VBTF ntuple -## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -## MC, spring10 -## -## Nikolaos Rompotis - Imperial College London -## 22 June 2010 -## -## ######################################################### -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - #'rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WminusToENu-CTEQ66-powheg_Spring10-START3X_V26_AODSIM-v2.root', - 'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('START3X_V26A::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.caloMET = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.tcMET = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.pfMET = process.patMETs.clone( #%% - metSource = cms.InputTag("pfMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myMetCollection = 'caloMET' -myPfMetCollection = 'pfMET' -myTcMetCollection = 'tcMET' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet( -# tracker = cms.PSet( -# src = cms.InputTag("electronTrackIsolationScone"), -# ), -# ecal = cms.PSet( -# src = cms.InputTag("electronEcalRecHitIsolationScone"), -# ), -# hcal = cms.PSet( -# src = cms.InputTag("electronHcalTowerIsolationScone"), -# ), -# user = cms.VPSet(), - ) -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -process.patElectrons.usePV = cms.bool(False) -## -process.load("ElectroWeakAnalysis.WENu.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "REDIGI" # REDIGI for the Spring10 production traditional MC -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# -HLT_path_name_extra = "HLT_Photon15_L1R" #= "HLT_Ele15_LW_L1R" # -HLT_filter_name_extra = "hltL1NonIsoHLTNonIsoSinglePhotonEt15HcalIsolFilter" -# #= "hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter" # -process.wenuFilter = cms.EDFilter('WenuCandidateFilter', - ### the input collections needed: - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"), - pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"), - tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"), - eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"), - PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"), - ### here the preselection is applied - # fiducial cuts: - BarrelMaxEta = cms.untracked.double(1.4442), - EndCapMinEta = cms.untracked.double(1.566), - EndCapMaxEta = cms.untracked.double(2.5), - # demand ecal driven electron: - useEcalDrivenElectrons = cms.untracked.bool(True), - # demand offline spike cleaning with the Swiss Cross criterion: - useSpikeRejection = cms.untracked.bool(True), - spikeCleaningSwissCrossCut = cms.untracked.double(0.95), - # demand geometrically matched to an HLT object with ET>15GeV - useTriggerInfo = cms.untracked.bool(True), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.1), - useHLTObjectETCut = cms.untracked.bool(True), - hltObjectETCut = cms.untracked.double(15.), - useExtraTrigger = cms.untracked.bool(True), - hltpathExtra = cms.untracked.string(HLT_path_name_extra), - hltpathFilterExtra = cms.untracked.InputTag(HLT_filter_name_extra,"",HLT_process_name), - # ET Cut in the SC - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - # Do not reject events with 2nd electrons in the filter level, do it later if you need - # but store the second electron in the event - vetoSecondElectronEvents = cms.untracked.bool(False), - storeSecondElectron = cms.untracked.bool(True), - ETCut2ndEle = cms.untracked.double(20.), - vetoSecondElectronIDType = cms.untracked.string("simpleEleId95relIso"), - vetoSecondElectronIDSign = cms.untracked.string("="), - vetoSecondElectronIDValue = cms.untracked.double(7.), - # Other parameters of the code - leave them as they are - useValidFirstPXBHit = cms.untracked.bool(False), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateConversionRejection = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - ) -#################################################################################### -## -## the W selection that you prefer included in another cfg -from ElectroWeakAnalysis.WENu.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -# -# we need to store jet information, hence we have to produce the jets: -process.load("JetMETCorrections.Configuration.DefaultJEC_cff") - -process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 ) -process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 ) - -process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence ) - - - -## -## and the plot creator -process.plotter = cms.EDAnalyzer('WenuPlots', - # selection in use: wont be used - we have usePrecalcID true later - selection_80relIso, - selection_inverse, - # The selection to be used here: - usePrecalcID = cms.untracked.bool(True), - usePrecalcIDType = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - # some extra information on the ntuple production: - includeJetInformationInNtuples = cms.untracked.bool(True), - caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'), - pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'), - DRJetFromElectron = cms.untracked.double(0.3), - # - wenuCollectionTag = cms.untracked.InputTag("wenuFilter","selectedWenuCandidates","PAT"), - WENU_VBTFselectionFileName = cms.untracked.string("WENU_VBTFselection.root"), - WENU_VBTFpreseleFileName = cms.untracked.string("WENU_VBTFpreselection.root"), - DatasetTag = cms.untracked.int32(0), - storeSecondElectronInformation = cms.untracked.bool(True), - ) -# -# if you run on data then you have to do misalignment corrections first!!! -# not to be used with MC!! -#process.load("RecoEgamma.EgammaTools.correctedElectronsProducer_cfi") -#process.p = cms.Path( process.gsfElectrons + process.patDefaultSequence +process.wenuFilter + process.plotter) -process.p = cms.Path( process.ourJetSequence * process.patDefaultSequence +process.wenuFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/WMuNu/BuildFile.xml b/ElectroWeakAnalysis/WMuNu/BuildFile.xml deleted file mode 100644 index 20863737a5f3a..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/BuildFile.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/ElectroWeakAnalysis/WMuNu/bin/BuildFile.xml b/ElectroWeakAnalysis/WMuNu/bin/BuildFile.xml deleted file mode 100644 index 62eea4f956d52..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/bin/BuildFile.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/ElectroWeakAnalysis/WMuNu/bin/WMuNuValidatorMacro.cpp b/ElectroWeakAnalysis/WMuNu/bin/WMuNuValidatorMacro.cpp deleted file mode 100644 index e509ad30f740c..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/bin/WMuNuValidatorMacro.cpp +++ /dev/null @@ -1,229 +0,0 @@ -#include "TROOT.h" -#include "TSystem.h" -#include "TStyle.h" -#include "TRint.h" -#include "TFile.h" -#include "TCanvas.h" -#include "TPaveLabel.h" -#include "TPad.h" -#include "TH1D.h" -#include "TLegend.h" - -int printUsage() { - printf("Usage: WMuNuValidatorMacro [-lbh] 'root_file_to_validate' 'reference_root_file' 'directory_name'\n\n"); - - printf("\tOptions:\t -l ==> linear scale for Y axes (default is log-scale)\n"); - printf("\t \t -b ==> run in batch (no graphics)\n"); - printf("\t \t -n ==> normalize reference to data (default = false)\n"); - printf("\t \t -h ==> print this message\n\n"); - - printf("\tInput files:\t Created via '*Validator.py' configuration files in:\n"); - printf("\t \t $CMSSW_BASE/src/ElectroWeakAnalysis/WMuNu/test/\n\n"); - - printf("\tOutput: \t Canvases: './WMuNuValidation_$CMSSW_VERSION_*.root'\n"); - printf("\t \t Gifs: './WMuNuValidation_$CMSSW_VERSION_*.gif'\n\n"); - - return 1; -} - -int main(int argc, char** argv) { - TString chfile; - TString chfileref; - TString DirectoryLast; - - int ntrueargs = 0; - bool logyFlag = true; - bool normalize = false; - - for (int i = 1; i < argc; ++i) { - if (argv[i][0] == '-') { - if (argv[i][1] == 'l') - logyFlag = false; - else if (argv[i][1] == 'b') - gROOT->SetBatch(); - else if (argv[i][1] == 'h') - return printUsage(); - else if (argv[i][1] == 'n') - normalize = true; - - } else { - ntrueargs += 1; - if (ntrueargs == 1) - chfile = argv[i]; - else if (ntrueargs == 2) - chfileref = argv[i]; - else if (ntrueargs == 3) - DirectoryLast = argv[i]; - } - } - - if (ntrueargs != 3) - return printUsage(); - - TRint* app = new TRint("CMS Root Application", nullptr, nullptr); - - TString cmssw_version = gSystem->Getenv("CMSSW_VERSION"); - TString chsample = "WMuNu"; - TString chtitle = chsample + " validation for " + cmssw_version; - - //TCanvas* c1 = new TCanvas("c1",chtitle.Data()); - TCanvas* c1 = new TCanvas("c1", chtitle.Data(), 0, 0, 1024, 768); - - TPaveLabel* paveTitle = new TPaveLabel(0.1, 0.93, 0.9, 0.99, chtitle.Data()); - paveTitle->Draw(); - - gStyle->SetOptLogy(logyFlag); - gStyle->SetPadGridX(true); - gStyle->SetPadGridY(true); - gStyle->SetOptStat(1111111); - gStyle->SetFillColor(0); - - TPad* pad[4]; - pad[0] = new TPad("pad_tl", "The top-left pad", 0.01, 0.48, 0.49, 0.92); - pad[1] = new TPad("pad_tr", "The top-right pad", 0.51, 0.48, 0.99, 0.92); - pad[2] = new TPad("pad_bl", "The bottom-left pad", 0.01, 0.01, 0.49, 0.46); - pad[3] = new TPad("pad_br", "The bottom-right pad", 0.51, 0.01, 0.99, 0.46); - for (unsigned int i = 0; i < 4; ++i) - pad[i]->Draw(); - - TLegend* leg = new TLegend(0.5, 0.9, 0.7, 1.0); - - TFile* input_file = new TFile(chfile.Data(), "READONLY"); - TFile* input_fileref = new TFile(chfileref.Data(), "READONLY"); - bool first_plots_done = false; - - TString directory = DirectoryLast + "/BeforeCuts"; - - TDirectory* dir_before = input_file->GetDirectory(directory); - TDirectory* dirref_before = input_fileref->GetDirectory(directory); - TList* list_before = dir_before->GetListOfKeys(); - list_before->Print(); - - unsigned int list_before_size = list_before->GetSize(); - TString auxTitle = chtitle + ": BEFORE CUTS"; - for (unsigned int i = 0; i < list_before_size; i += 4) { - if (first_plots_done == true) - c1->DrawClone(); - paveTitle->SetLabel(auxTitle.Data()); - for (unsigned int j = 0; j < 4; ++j) { - pad[j]->cd(); - pad[j]->Clear(); - if ((i + j) >= list_before_size) - continue; - - TH1D* h1 = (TH1D*)dir_before->Get(list_before->At(i + j)->GetName()); - // h1->SetLineColor(kBlue); - // h1->SetMarkerColor(kBlue); - h1->SetMarkerStyle(21); - h1->SetLineStyle(1); - h1->SetLineWidth(3); - h1->SetTitleSize(0.05, "X"); - h1->SetTitleSize(0.05, "Y"); - h1->SetXTitle(h1->GetTitle()); - h1->SetYTitle(""); - h1->SetTitle(""); - h1->SetTitleOffset(0.85, "X"); - - TH1D* hr = (TH1D*)dirref_before->Get(list_before->At(i + j)->GetName()); - hr->SetLineColor(kRed); - // hr->SetLineStyle(2); - hr->SetLineWidth(3); - hr->SetTitleSize(0.05, "X"); - hr->SetTitleSize(0.05, "Y"); - hr->SetXTitle(h1->GetTitle()); - hr->SetYTitle(""); - hr->SetTitle(""); - hr->SetTitleOffset(0.85, "X"); - - if (normalize) { - hr->DrawNormalized("hist", h1->Integral()); - } else { - hr->Draw("hist"); - } - h1->Draw("same,p"); - - leg->Clear(); - leg->AddEntry(h1, "Skim", "L"); - leg->AddEntry(hr, "Reference", "L"); - leg->Draw(); - } - first_plots_done = true; - c1->Modified(); - c1->Update(); - char chplot[80]; - sprintf(chplot, "%sValidation_%s_BEFORECUTS_%d.root", chsample.Data(), cmssw_version.Data(), i / 4); - c1->SaveAs(chplot); - sprintf(chplot, "%sValidation_%s_BEFORECUTS_%d.gif", chsample.Data(), cmssw_version.Data(), i / 4); - c1->SaveAs(chplot); - } - - TString directory2 = DirectoryLast + "/LastCut"; - - TDirectory* dir_lastcut = input_file->GetDirectory(directory2); - TDirectory* dirref_lastcut = input_fileref->GetDirectory(directory2); - TList* list_lastcut = dir_lastcut->GetListOfKeys(); - list_lastcut->Print(); - - unsigned int list_lastcut_size = list_lastcut->GetSize(); - auxTitle = chtitle + ": AFTER N-1 CUTS"; - for (unsigned int i = 0; i < list_lastcut_size; i += 4) { - if (first_plots_done == true) - c1->DrawClone(); - paveTitle->SetLabel(auxTitle.Data()); - for (unsigned int j = 0; j < 4; ++j) { - pad[j]->cd(); - pad[j]->Clear(); - if ((i + j) >= list_lastcut_size) - continue; - - TH1D* h1 = (TH1D*)dir_lastcut->Get(list_lastcut->At(i + j)->GetName()); - // h1->SetLineColor(kBlue); - // h1->SetMarkerColor(kBlue); - h1->SetMarkerStyle(21); - h1->SetLineWidth(3); - h1->SetTitleSize(0.05, "X"); - h1->SetTitleSize(0.05, "Y"); - h1->SetXTitle(h1->GetTitle()); - h1->SetYTitle(""); - h1->SetTitle(""); - h1->SetTitleOffset(0.85, "X"); - - TH1D* hr = (TH1D*)dirref_lastcut->Get(list_lastcut->At(i + j)->GetName()); - hr->SetLineColor(kRed); - // hr->SetLineStyle(2); - hr->SetLineWidth(3); - hr->SetTitleSize(0.05, "X"); - hr->SetTitleSize(0.05, "Y"); - hr->SetXTitle(h1->GetTitle()); - hr->SetYTitle(""); - hr->SetTitle(""); - hr->SetTitleOffset(0.85, "X"); - - // h1->Draw(); - if (normalize) { - hr->DrawNormalized("hist", h1->Integral()); - } else { - hr->Draw("hist"); - } - h1->Draw("same,p"); - - leg->Clear(); - leg->AddEntry(h1, "Skim", "L"); - leg->AddEntry(hr, "Reference", "L"); - leg->Draw(); - } - first_plots_done = true; - c1->Modified(); - c1->Update(); - char chplot[80]; - sprintf(chplot, "%sValidation_%s_LASTCUT_%d.root", chsample.Data(), cmssw_version.Data(), i / 4); - c1->SaveAs(chplot); - sprintf(chplot, "%sValidation_%s_LASTCUT_%d.gif", chsample.Data(), cmssw_version.Data(), i / 4); - c1->SaveAs(chplot); - } - - if (!gROOT->IsBatch()) - app->Run(); - - return 0; -} diff --git a/ElectroWeakAnalysis/WMuNu/python/WMuNuSelection_cff.py b/ElectroWeakAnalysis/WMuNu/python/WMuNuSelection_cff.py deleted file mode 100644 index fa31879af5d25..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/python/WMuNuSelection_cff.py +++ /dev/null @@ -1,141 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.WMuNu.wmunusProducer_cfi import * - -# Paths for WMuNuSelector filtering of events -# Be careful: events may contain more than one WMunuCandidate if they -# contain more than one muon. -# The "real" WMuNuCandidate selected is the first one of the collection - -selcorMet = cms.EDFilter("WMuNuSelector", - # Fill Basc Histograms? -> - plotHistograms = cms.untracked.bool(False), - - # Input collections -> - MuonTag = cms.untracked.InputTag("muons"), - TrigTag = cms.untracked.InputTag("TriggerResults::HLT8E29"), - #TrigTag = cms.untracked.InputTag("TriggerResults::HLT"), - JetTag = cms.untracked.InputTag("antikt5CaloJets"), - WMuNuCollectionTag = cms.untracked.InputTag("corMetWMuNus"), - - # Preselection! - MuonTrig = cms.untracked.string("HLT_Mu9"), - PtThrForZ1 = cms.untracked.double(20.0), - PtThrForZ2 = cms.untracked.double(10.0), - EJetMin = cms.untracked.double(40.), - NJetMax = cms.untracked.int32(999999), - - # Main cuts -> - PtCut = cms.untracked.double(25.0), - EtaCut = cms.untracked.double(2.1), - IsRelativeIso = cms.untracked.bool(True), - IsCombinedIso = cms.untracked.bool(False), - IsoCut03 = cms.untracked.double(0.1), - MtMin = cms.untracked.double(50.0), - MtMax = cms.untracked.double(200.0), - MetMin = cms.untracked.double(-999999.), - MetMax = cms.untracked.double(999999.), - AcopCut = cms.untracked.double(2.), - - # Muon quality cuts -> - DxyCut = cms.untracked.double(0.2), - NormalizedChi2Cut = cms.untracked.double(10.), - TrackerHitsCut = cms.untracked.int32(11), - IsAlsoTrackerMuon = cms.untracked.bool(True), - - # Select only W-, W+ ( default is all Ws) - SelectByCharge=cms.untracked.int32(0) - -) - -selpfMet = cms.EDFilter("WMuNuSelector", - # Fill Basc Histograms? -> - plotHistograms = cms.untracked.bool(False), - - # Input collections -> - MuonTag = cms.untracked.InputTag("muons"), - TrigTag = cms.untracked.InputTag("TriggerResults::HLT8E29"), - #TrigTag = cms.untracked.InputTag("TriggerResults::HLT"), - JetTag = cms.untracked.InputTag("antikt5CaloJets"), - WMuNuCollectionTag = cms.untracked.InputTag("pfMetWMuNus"), - - # Preselection! - MuonTrig = cms.untracked.string("HLT_Mu9"), - PtThrForZ1 = cms.untracked.double(20.0), - PtThrForZ2 = cms.untracked.double(10.0), - EJetMin = cms.untracked.double(40.), - NJetMax = cms.untracked.int32(999999), - - # Main cuts -> - UseTrackerPt = cms.untracked.bool(True), - PtCut = cms.untracked.double(25.0), - EtaCut = cms.untracked.double(2.1), - IsRelativeIso = cms.untracked.bool(True), - IsCombinedIso = cms.untracked.bool(False), - IsoCut03 = cms.untracked.double(0.1), - MtMin = cms.untracked.double(50.0), - MtMax = cms.untracked.double(200.0), - MetMin = cms.untracked.double(-999999.), - MetMax = cms.untracked.double(999999.), - AcopCut = cms.untracked.double(2.), - - # Muon quality cuts -> - DxyCut = cms.untracked.double(0.2), - NormalizedChi2Cut = cms.untracked.double(10.), - TrackerHitsCut = cms.untracked.int32(11), - IsAlsoTrackerMuon = cms.untracked.bool(True), - - # Select only W-, W+ ( default is all Ws) - SelectByCharge=cms.untracked.int32(0) - -) - -seltcMet = cms.EDFilter("WMuNuSelector", - # Fill Basc Histograms? -> - plotHistograms = cms.untracked.bool(False), - - # Input collections -> - MuonTag = cms.untracked.InputTag("muons"), - TrigTag = cms.untracked.InputTag("TriggerResults::HLT8E29"), - #TrigTag = cms.untracked.InputTag("TriggerResults::HLT"), - JetTag = cms.untracked.InputTag("antikt5CaloJets"), - WMuNuCollectionTag = cms.untracked.InputTag("tcMetWMuNus"), - - # Preselection! - MuonTrig = cms.untracked.string("HLT_Mu9"), - PtThrForZ1 = cms.untracked.double(20.0), - PtThrForZ2 = cms.untracked.double(10.0), - EJetMin = cms.untracked.double(40.), - NJetMax = cms.untracked.int32(999999), - - # Main cuts -> - UseTrackerPt = cms.untracked.bool(True), - PtCut = cms.untracked.double(25.0), - EtaCut = cms.untracked.double(2.1), - IsRelativeIso = cms.untracked.bool(True), - IsCombinedIso = cms.untracked.bool(False), - IsoCut03 = cms.untracked.double(0.1), - MtMin = cms.untracked.double(50.0), - MtMax = cms.untracked.double(200.0), - MetMin = cms.untracked.double(-999999.), - MetMax = cms.untracked.double(999999.), - AcopCut = cms.untracked.double(2.), - - # Muon quality cuts -> - DxyCut = cms.untracked.double(0.2), - NormalizedChi2Cut = cms.untracked.double(10.), - TrackerHitsCut = cms.untracked.int32(11), - IsAlsoTrackerMuon = cms.untracked.bool(True), - - # Select only W-, W+ ( default is all Ws) - SelectByCharge=cms.untracked.int32(0) - -) - -selectCaloMetWMuNus = cms.Sequence(corMetWMuNus+selcorMet) - -selectPfMetWMuNus = cms.Sequence(pfMetWMuNus+selpfMet) - -selectTcMetWMuNus = cms.Sequence(tcMetWMuNus+seltcMet) - - diff --git a/ElectroWeakAnalysis/WMuNu/python/wmunusProducer_cfi.py b/ElectroWeakAnalysis/WMuNu/python/wmunusProducer_cfi.py deleted file mode 100644 index 906b842d116cf..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/python/wmunusProducer_cfi.py +++ /dev/null @@ -1,27 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Producers --> Create one collection of WMuNus per met type - -pfMetWMuNus = cms.EDProducer("WMuNuProducer", - # Input collections -> - MuonTag = cms.untracked.InputTag("muons"), - METTag = cms.untracked.InputTag("pfMet") -) - -tcMetWMuNus = cms.EDProducer("WMuNuProducer", - # Input collections -> - MuonTag = cms.untracked.InputTag("muons"), - METTag = cms.untracked.InputTag("tcMet") -) - -corMetWMuNus = cms.EDProducer("WMuNuProducer", - # Input collections -> - MuonTag = cms.untracked.InputTag("muons"), - METTag = cms.untracked.InputTag("caloMetM") -) - -allWMuNus = cms.Sequence(corMetWMuNus - *tcMetWMuNus - *pfMetWMuNus - ) - diff --git a/ElectroWeakAnalysis/WMuNu/src/WMuNuProducer.cc b/ElectroWeakAnalysis/WMuNu/src/WMuNuProducer.cc deleted file mode 100644 index 1141ab486e563..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/src/WMuNuProducer.cc +++ /dev/null @@ -1,146 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// // -// WMuNuCandidate Producer // -// // -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// // -// Productor of WMuNuCandidates for Analysis // -// --> Creates a WMuNuCandidateCollection // -// --> One Candidate is created per muon in the event, combinig the information with a selected kind of Met // -// (met kind configurable via cfg) // -// --> All WMuNuCandidates are stored in the event, ordered by muon pt. // -// --> The WMuNuCandidate to be used for the Inclusive analysis is then the first one! (Highest Pt) // -// // -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "TH1D.h" -#include -// system include files -#include -#include - -#include "AnalysisDataFormats/EWK/interface/WMuNuCandidate.h" -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/METReco/interface/MET.h" - -class WMuNuProducer : public edm::EDProducer { -public: - WMuNuProducer(const edm::ParameterSet&); - ~WMuNuProducer() override; - -private: - void produce(edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - - edm::EDGetTokenT > muonToken_; - edm::EDGetTokenT > metToken_; - - struct ComparePt { - bool operator()(reco::WMuNuCandidate w1, reco::WMuNuCandidate w2) const { - double pt1 = w1.getMuon().pt(); - double pt2 = w2.getMuon().pt(); - return (pt1 > pt2); - } - }; - ComparePt ptComparator; - - unsigned int nall; -}; - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Common/interface/Handle.h" - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/BeamSpot/interface/BeamSpot.h" - -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/JetReco/interface/Jet.h" - -#include "DataFormats/GeometryVector/interface/Phi.h" - -#include "DataFormats/Common/interface/TriggerResults.h" - -#include "DataFormats/Common/interface/View.h" - -using namespace edm; -using namespace std; -using namespace reco; - -WMuNuProducer::WMuNuProducer(const ParameterSet& cfg) - : // Input collections - muonToken_(consumes >(cfg.getUntrackedParameter("MuonTag", edm::InputTag("muons")))), - metToken_(consumes >(cfg.getUntrackedParameter("METTag", edm::InputTag("met")))) { - produces(); -} - -void WMuNuProducer::beginJob() {} - -void WMuNuProducer::endJob() { LogTrace("") << "WMuNuCandidateCollection Stored in the Event"; } - -WMuNuProducer::~WMuNuProducer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) -} - -void WMuNuProducer::produce(Event& ev, const EventSetup&) { - // Muon collection - Handle > muonCollection; - if (!ev.getByToken(muonToken_, muonCollection)) { - LogError("") << ">>> Muon collection does not exist !!!"; - return; - } - int muonCollectionSize = muonCollection->size(); - - // MET - Handle > metCollection; - if (!ev.getByToken(metToken_, metCollection)) { - LogError("") << ">>> MET collection does not exist !!!"; - return; - } - //const MET& Met = metCollection->at(0); - edm::Ptr met(metCollection, 0); - - if (muonCollectionSize < 1) - return; - - unique_ptr WMuNuCandidates(new WMuNuCandidateCollection); - - // Fill Collection with n muons --> n W Candidates ordered by pt - - for (int indx = 0; indx < muonCollectionSize; indx++) { - edm::Ptr muon(muonCollection, indx); - if (!muon->isGlobalMuon()) - continue; - if (muon->globalTrack().isNull()) - continue; - if (muon->innerTrack().isNull()) - continue; - - // Build WMuNuCandidate - LogTrace("") << "Building WMuNu Candidate!"; - WMuNuCandidate* WCand = new WMuNuCandidate(muon, met); - LogTrace("") << "\t... W mass, W_et: " << WCand->massT() << ", " << WCand->eT() << "[GeV]"; - LogTrace("") << "\t... W_px, W_py: " << WCand->px() << ", " << WCand->py() << "[GeV]"; - LogTrace("") << "\t... acop: " << WCand->acop(); - LogTrace("") << "\t... Muon pt, px, py, pz: " << WCand->getMuon().pt() << ", " << WCand->getMuon().px() << ", " - << WCand->getMuon().py() << ", " << WCand->getMuon().pz() << " [GeV]"; - LogTrace("") << "\t... Met met_et, met_px, met_py : " << WCand->getNeutrino().pt() << ", " - << WCand->getNeutrino().px() << ", " << WCand->getNeutrino().py() << " [GeV]"; - WMuNuCandidates->push_back(*WCand); - } - - std::sort(WMuNuCandidates->begin(), WMuNuCandidates->end(), ptComparator); - - ev.put(std::move(WMuNuCandidates)); -} - -DEFINE_FWK_MODULE(WMuNuProducer); diff --git a/ElectroWeakAnalysis/WMuNu/src/WMuNuSelector.cc b/ElectroWeakAnalysis/WMuNu/src/WMuNuSelector.cc deleted file mode 100644 index f0b911d0e6695..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/src/WMuNuSelector.cc +++ /dev/null @@ -1,491 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// // -// WMuNuSelector based on WMuNuCandidates // -// // -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// // -// Filter of WMuNuCandidates for Analysis // -// --> From a WMuNuCandidate collection // -// --> Pre-Selection of events based in event cuts (trigger, Z rejection, ttbar rejection) // -// --> The Ws are selected from the highest pt muon in the event (applying the standard WMuNu Selection cuts) // -// // -// --> Be careful: if this Selector is used as a filter for further analysis you still have to make sure that // -// the W Candidate you use for your modules is the first one in the collection!! // -// // -// Optionally, plots selection variables sequentially after cuts, // -// and 2D histograms for background determination. // -// // -// For basic plots before & after cuts (without Candidate formalism), use WMuNuValidator.cc // -// // -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/JetReco/interface/Jet.h" -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "AnalysisDataFormats/EWK/interface/WMuNuCandidate.h" -#include "TH1D.h" -#include "TH2D.h" - -class WMuNuSelector : public edm::EDFilter { -public: - WMuNuSelector(const edm::ParameterSet&); - bool filter(edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - void init_histograms(); - -private: - bool plotHistograms_; - edm::EDGetTokenT trigToken_; - edm::EDGetTokenT > muonToken_; - edm::EDGetTokenT > jetToken_; - edm::EDGetTokenT beamSpotToken_; - edm::EDGetTokenT WMuNuCollectionToken_; - const std::string muonTrig_; - double ptThrForZ1_; - double ptThrForZ2_; - double eJetMin_; - int nJetMax_; - double ptCut_; - double etaCut_; - bool isRelativeIso_; - bool isCombinedIso_; - double isoCut03_; - double mtMin_; - double mtMax_; - double metMin_; - double metMax_; - double acopCut_; - - double dxyCut_; - double normalizedChi2Cut_; - int trackerHitsCut_; - bool isAlsoTrackerMuon_; - - int selectByCharge_; - - double nall; - double ntrig, npresel; - double nsel; - double ncharge; - double nkin, nid, nacop, niso, nmass; - - std::map h1_; - std::map h2_; -}; -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/TrackReco/interface/Track.h" - -#include "DataFormats/MuonReco/interface/MuonSelectors.h" - -#include "DataFormats/METReco/interface/MET.h" - -#include "DataFormats/GeometryVector/interface/Phi.h" - -#include "FWCore/Common/interface/TriggerNames.h" - -using namespace edm; -using namespace std; -using namespace reco; - -WMuNuSelector::WMuNuSelector(const ParameterSet& cfg) - : // Fast selection (no histograms) - plotHistograms_(cfg.getUntrackedParameter("plotHistograms", true)), - - // Input collections - trigToken_(consumes( - cfg.getUntrackedParameter("TrigTag", edm::InputTag("TriggerResults::HLT")))), - muonToken_(consumes >(cfg.getUntrackedParameter("MuonTag", edm::InputTag("muons")))), - jetToken_( - consumes >(cfg.getUntrackedParameter("JetTag", edm::InputTag("sisCone5CaloJets")))), - beamSpotToken_(consumes(edm::InputTag("offlineBeamSpot"))), - WMuNuCollectionToken_(consumes( - cfg.getUntrackedParameter("WMuNuCollectionTag", edm::InputTag("WMuNus")))), - - // Preselection cuts - muonTrig_(cfg.getUntrackedParameter("MuonTrig", "HLT_Mu9")), - ptThrForZ1_(cfg.getUntrackedParameter("PtThrForZ1", 20.)), - ptThrForZ2_(cfg.getUntrackedParameter("PtThrForZ2", 10.)), - eJetMin_(cfg.getUntrackedParameter("EJetMin", 999999.)), - nJetMax_(cfg.getUntrackedParameter("NJetMax", 999999)), - - // Main cuts - ptCut_(cfg.getUntrackedParameter("PtCut", 25.)), - etaCut_(cfg.getUntrackedParameter("EtaCut", 2.1)), - isRelativeIso_(cfg.getUntrackedParameter("IsRelativeIso", true)), - isCombinedIso_(cfg.getUntrackedParameter("IsCombinedIso", false)), - isoCut03_(cfg.getUntrackedParameter("IsoCut03", 0.1)), - mtMin_(cfg.getUntrackedParameter("MtMin", 50.)), - mtMax_(cfg.getUntrackedParameter("MtMax", 200.)), - metMin_(cfg.getUntrackedParameter("MetMin", -999999.)), - metMax_(cfg.getUntrackedParameter("MetMax", 999999.)), - acopCut_(cfg.getUntrackedParameter("AcopCut", 2.)), - - // Muon quality cuts - dxyCut_(cfg.getUntrackedParameter("DxyCut", 0.2)), - normalizedChi2Cut_(cfg.getUntrackedParameter("NormalizedChi2Cut", 10.)), - trackerHitsCut_(cfg.getUntrackedParameter("TrackerHitsCut", 11)), - isAlsoTrackerMuon_(cfg.getUntrackedParameter("IsAlsoTrackerMuon", true)), - - // W+/W- Selection - selectByCharge_(cfg.getUntrackedParameter("SelectByCharge", 0)) {} - -void WMuNuSelector::beginJob() { - nall = 0; - ntrig = 0; - npresel = 0; - ncharge = 0; - nkin = 0; - nid = 0; - nacop = 0; - niso = 0; - nsel = 0; - - if (plotHistograms_) { - edm::Service fs; - h1_["hNWCand_sel"] = - fs->make("NWCand_sel", "Nb. of WCandidates passing pre-selection (ordered by pt)", 10, 0., 10.); - h1_["hPtMu_sel"] = fs->make("ptMu_sel", "Pt mu", 100, 0., 100.); - h1_["hEtaMu_sel"] = fs->make("etaMu_sel", "Eta mu", 50, -2.5, 2.5); - h1_["hd0_sel"] = fs->make("d0_sel", "Impact parameter", 1000, -1., 1.); - h1_["hNHits_sel"] = fs->make("NumberOfValidHits_sel", "Number of Hits in Silicon", 100, 0., 100.); - h1_["hNormChi2_sel"] = fs->make("NormChi2_sel", "Chi2/ndof of global track", 1000, 0., 50.); - h1_["hTracker_sel"] = fs->make("isTrackerMuon_sel", "is Tracker Muon?", 2, 0., 2.); - h1_["hMET_sel"] = fs->make("MET_sel", "Missing Transverse Energy (GeV)", 300, 0., 300.); - h1_["hTMass_sel"] = fs->make("TMass_sel", "Rec. Transverse Mass (GeV)", 300, 0., 300.); - h1_["hAcop_sel"] = fs->make("Acop_sel", "Mu-MET acoplanarity", 50, 0., M_PI); - h1_["hPtSum_sel"] = fs->make("ptSum_sel", "Track Isolation, Sum pT (GeV)", 200, 0., 100.); - h1_["hPtSumN_sel"] = fs->make("ptSumN_sel", "Track Isolation, Sum pT/pT", 1000, 0., 10.); - h1_["hCal_sel"] = fs->make("Cal_sel", "Calorimetric isolation, HCAL+ECAL (GeV)", 200, 0., 100.); - h1_["hIsoTotN_sel"] = fs->make("isoTotN_sel", "(Sum pT + Cal)/pT", 1000, 0., 10.); - h1_["hIsoTot_sel"] = fs->make("isoTot_sel", "(Sum pT + Cal)", 200, 0., 100.); - h2_["hTMass_PtSum_inclusive"] = fs->make( - "TMass_PtSum_inclusive", "Rec. Transverse Mass (GeV) vs Sum pT (GeV)", 200, 0., 100., 300, 0., 300.); - h2_["hTMass_PtSumNorm_inclusive"] = fs->make( - "TMass_PtSumNorm_inclusive", "Rec. Transverse Mass (GeV) vs Sum Pt / Pt", 1000, 0, 10, 300, 0, 300); - h2_["hTMass_TotIsoNorm_inclusive"] = fs->make( - "TMass_TotIsoNorm_inclusive", "Rec. Transverse Mass (GeV) vs (Sum Pt + Cal)/Pt", 10000, 0, 10, 200, 0, 200); - h2_["hMET_PtSum_inclusive"] = fs->make( - "MET_PtSum_inclusive", "Missing Transverse Energy (GeV) vs Sum Pt (GeV)", 200, 0., 100., 300, 0., 300.); - h2_["hMET_PtSumNorm_inclusive"] = fs->make( - "MET_PtSumNorm_inclusive", "Missing Transverse Energy (GeV) vs Sum Pt/Pt", 1000, 0, 10, 300, 0, 300); - h2_["hMET_TotIsoNorm_inclusive"] = fs->make( - "MET_TotIsoNorm_inclusive", "Missing Transverse Energy (GeV) vs (SumPt + Cal)/Pt", 10000, 0, 10, 200, 0, 200); - } -} - -void WMuNuSelector::endJob() { - double all = nall; - double epresel = npresel / all; - double etrig = ntrig / all; - double ekin = nkin / all; - double eid = nid / all; - double eacop = nacop / all; - double eiso = niso / all; - double esel = nsel / all; - - LogVerbatim("") << "\n>>>>>> W SELECTION SUMMARY BEGIN >>>>>>>>>>>>>>>"; - LogVerbatim("") << "Total number of events analyzed: " << nall << " [events]"; - LogVerbatim("") << "Total number of events triggered: " << ntrig << " [events]"; - LogVerbatim("") << "Total number of events pre-selected: " << npresel << " [events]"; - LogVerbatim("") << "Total number of events after kinematic cuts: " << nkin << " [events]"; - LogVerbatim("") << "Total number of events after Muon ID cuts: " << nid << " [events]"; - LogVerbatim("") << "Total number of events after Acop cut: " << nacop << " [events]"; - LogVerbatim("") << "Total number of events after iso cut: " << niso << " [events]"; - LogVerbatim("") << "Total number of events selected: " << nsel << " [events]"; - LogVerbatim("") << "Efficiencies:"; - LogVerbatim("") << "Trigger Efficiency: " - << "(" << setprecision(4) << etrig * 100. << " +/- " << setprecision(2) - << sqrt(etrig * (1 - etrig) / all) * 100. << ")%"; - LogVerbatim("") << "Pre-Selection Efficiency: " - << "(" << setprecision(4) << epresel * 100. << " +/- " << setprecision(2) - << sqrt(epresel * (1 - epresel) / all) * 100. << ")%"; - LogVerbatim("") << "Pt, Eta Selection Efficiency: " - << "(" << setprecision(4) << ekin * 100. << " +/- " << setprecision(2) - << sqrt(ekin * (1 - ekin) / all) * 100. << ")%"; - LogVerbatim("") << "MuonID Efficiency: " - << "(" << setprecision(4) << eid * 100. << " +/- " << setprecision(2) - << sqrt(eid * (1 - eid) / all) * 100. << ")%"; - LogVerbatim("") << "Acop Efficiency: " - << "(" << setprecision(4) << eacop * 100. << " +/- " << setprecision(2) - << sqrt(eacop * (1 - eacop) / all) * 100. << ")%"; - LogVerbatim("") << "Iso Efficiency: " - << "(" << setprecision(4) << eiso * 100. << " +/- " << setprecision(2) - << sqrt(eiso * (1 - eiso) / all) * 100. << ")%"; - LogVerbatim("") << "Selection Efficiency: " - << "(" << setprecision(4) << esel * 100. << " +/- " << setprecision(2) - << sqrt(esel * (1 - esel) / nall) * 100. << ")%"; - - if (fabs(selectByCharge_) == 1) { - esel = nsel / ncharge; - LogVerbatim("") << "\n>>>>>> W+(-) SELECTION >>>>>>>>>>>>>>>"; - LogVerbatim("") << "Total number of W+(-) events pre-selected: " << ncharge << " [events]"; - LogVerbatim("") << "Total number of events selected: " << nsel << " [events]"; - LogVerbatim("") << "Selection Efficiency only W+(-): " - << "(" << setprecision(4) << esel * 100. << " +/- " << setprecision(2) - << sqrt(esel * (1 - esel) / ncharge) * 100. << ")%"; - } - LogVerbatim("") << ">>>>>> W SELECTION SUMMARY END >>>>>>>>>>>>>>>\n"; -} - -bool WMuNuSelector::filter(Event& ev, const EventSetup&) { - nall++; - - // Repeat Pre-Selection Cuts just in case... - // Muon collection - Handle > muonCollection; - if (!ev.getByToken(muonToken_, muonCollection)) { - LogError("") << ">>> Muon collection does not exist !!!"; - return false; - } - unsigned int muonCollectionSize = muonCollection->size(); - - // Trigger - Handle triggerResults; - if (!ev.getByToken(trigToken_, triggerResults)) { - LogError("") << ">>> TRIGGER collection does not exist !!!"; - return false; - } - const edm::TriggerNames& triggerNames = ev.triggerNames(*triggerResults); - bool trigger_fired = false; - int itrig1 = triggerNames.triggerIndex(muonTrig_); - if (triggerResults->accept(itrig1)) - trigger_fired = true; - LogTrace("") << ">>> Trigger bit: " << trigger_fired << " (" << muonTrig_ << ")"; - - // Loop to reject/control Z->mumu is done separately - unsigned int nmuonsForZ1 = 0; - unsigned int nmuonsForZ2 = 0; - for (unsigned int i = 0; i < muonCollectionSize; i++) { - const Muon& mu = muonCollection->at(i); - if (!mu.isGlobalMuon()) - continue; - double pt = mu.pt(); - if (pt > ptThrForZ1_) - nmuonsForZ1++; - if (pt > ptThrForZ2_) - nmuonsForZ2++; - } - LogTrace("") << "> Z rejection: muons above " << ptThrForZ1_ << " [GeV]: " << nmuonsForZ1; - LogTrace("") << "> Z rejection: muons above " << ptThrForZ2_ << " [GeV]: " << nmuonsForZ2; - - // Jet collection - Handle > jetCollection; - if (!ev.getByToken(jetToken_, jetCollection)) { - LogError("") << ">>> JET collection does not exist !!!"; - return false; - } - unsigned int jetCollectionSize = jetCollection->size(); - int njets = 0; - for (unsigned int i = 0; i < jetCollectionSize; i++) { - const Jet& jet = jetCollection->at(i); - if (jet.et() > eJetMin_) - njets++; - } - LogTrace("") << ">>> Total number of jets: " << jetCollectionSize; - LogTrace("") << ">>> Number of jets above " << eJetMin_ << " [GeV]: " << njets; - - // Beam spot - Handle beamSpotHandle; - if (!ev.getByToken(beamSpotToken_, beamSpotHandle)) { - LogTrace("") << ">>> No beam spot found !!!"; - return false; - } - - // Get WMuNu candidates from file: - - Handle WMuNuCollection; - if (!ev.getByToken(WMuNuCollectionToken_, WMuNuCollection)) { - LogTrace("") << ">>> WMuNu not found !!!"; - return false; - } - - if (WMuNuCollection->empty()) { - LogTrace("") << "No WMuNu Candidates in the Event!"; - return false; - } - if (WMuNuCollection->size() > 1) { - LogTrace("") << "This event contains more than one W Candidate"; - } - - // W->mu nu selection criteria - - LogTrace("") << "> WMuNu Candidate with: "; - const WMuNuCandidate& WMuNu = WMuNuCollection->at(0); - // WMuNuCandidates are ordered by Pt! - // The Inclusive Selection WMuNu Candidate is the first one - - const reco::Muon& mu = WMuNu.getMuon(); - const reco::MET& met = WMuNu.getNeutrino(); - if (plotHistograms_) { - h1_["hNWCand_sel"]->Fill(WMuNuCollection->size()); - } - - // Preselection cuts: - - if (!trigger_fired) { - LogTrace("") << "Event did not fire the Trigger"; - return false; - } - ntrig++; - - if (nmuonsForZ1 >= 1 && nmuonsForZ2 >= 2) { - LogTrace("") << "Z Candidate!!"; - return false; - } - if (njets > nJetMax_) { - LogTrace("") << "NJets > threshold"; - return false; - } - - npresel++; - - // Select Ws by charge: - - if (selectByCharge_ * WMuNu.charge() == -1) { - ncharge++; - } - - // W->mu nu selection criteria - - if (!mu.isGlobalMuon()) - return false; - - reco::TrackRef gm = mu.globalTrack(); - //reco::TrackRef tk = mu.innerTrack(); - - // Pt,eta cuts - double pt = mu.pt(); - double eta = mu.eta(); - LogTrace("") << "\t... Muon pt, eta: " << pt << " [GeV], " << eta; - if (plotHistograms_) { - h1_["hPtMu_sel"]->Fill(pt); - } - if (pt < ptCut_) - return false; - if (plotHistograms_) { - h1_["hEtaMu_sel"]->Fill(eta); - } - if (fabs(eta) > etaCut_) - return false; - - nkin++; - - // d0, chi2, nhits quality cuts - double dxy = gm->dxy(beamSpotHandle->position()); - double normalizedChi2 = gm->normalizedChi2(); - LogTrace("") << "Im here" << endl; - double trackerHits = gm->hitPattern().numberOfValidTrackerHits(); - LogTrace("") << "\t... Muon dxy, normalizedChi2, trackerHits, isTrackerMuon?: " << dxy << " [cm], " << normalizedChi2 - << ", " << trackerHits << ", " << mu.isTrackerMuon(); - - if (plotHistograms_) { - h1_["hd0_sel"]->Fill(dxy); - } - if (!muon::isGoodMuon(mu, muon::GlobalMuonPromptTight)) - return false; - if (plotHistograms_) { - h1_["hNormChi2_sel"]->Fill(normalizedChi2); - } - if (normalizedChi2 > normalizedChi2Cut_) - return false; - if (plotHistograms_) { - h1_["hNHits_sel"]->Fill(trackerHits); - } - if (trackerHits < trackerHitsCut_) - return false; - if (plotHistograms_) { - h1_["hTracker_sel"]->Fill(mu.isTrackerMuon()); - } - if (!mu.isTrackerMuon()) - return false; - - nid++; - - // Acoplanarity cuts - double acop = WMuNu.acop(); - LogTrace("") << "\t... acoplanarity: " << acop; - - // Isolation cuts - double SumPt = mu.isolationR03().sumPt; - double isovar = SumPt; - double Cal = mu.isolationR03().emEt + mu.isolationR03().hadEt; - if (isCombinedIso_) - isovar += Cal; - if (plotHistograms_) { - h1_["hPtSum_sel"]->Fill(SumPt); - h1_["hPtSumN_sel"]->Fill(SumPt / pt); - h1_["hCal_sel"]->Fill(Cal); - h1_["hIsoTot_sel"]->Fill((SumPt + Cal)); - h1_["hIsoTotN_sel"]->Fill((SumPt + Cal) / pt); - } - - if (isRelativeIso_) - isovar /= pt; - bool iso = (isovar <= isoCut03_); - LogTrace("") << "\t... isolation value" << isovar << ", isolated? " << iso; - - double met_et = met.pt(); - LogTrace("") << "\t... Met pt: " << WMuNu.getNeutrino().pt() << "[GeV]"; - - double massT = WMuNu.massT(); - double w_et = WMuNu.eT(); - - LogTrace("") << "\t... W mass, W_et, W_px, W_py: " << massT << ", " << w_et << ", " << WMuNu.px() << ", " - << WMuNu.py() << " [GeV]"; - - // Plot 2D Histograms before final cuts - if (plotHistograms_ && acop < acopCut_) { - h2_["hTMass_PtSum_inclusive"]->Fill(SumPt, massT); - h2_["hTMass_PtSumNorm_inclusive"]->Fill(SumPt / pt, massT); - h2_["hTMass_TotIsoNorm_inclusive"]->Fill((SumPt + Cal) / pt, massT); - h2_["hMET_PtSum_inclusive"]->Fill(SumPt, met_et); - h2_["hMET_PtSumNorm_inclusive"]->Fill(SumPt / pt, met_et); - h2_["hMET_TotIsoNorm_inclusive"]->Fill((SumPt + Cal) / pt, met_et); - } - - if (!iso) - return false; - - niso++; - - if (plotHistograms_) { - h1_["hAcop_sel"]->Fill(acop); - } - if (acop >= acopCut_) - return false; - - nacop++; - - if (plotHistograms_) { - h1_["hMET_sel"]->Fill(met_et); - h1_["hTMass_sel"]->Fill(massT); - } - - if (massT <= mtMin_ || massT >= mtMax_) - return false; - if (met_et <= metMin_ || met_et >= metMax_) - return false; - - LogTrace("") << ">>>> Event ACCEPTED"; - nsel++; - - // (To be continued ;-) ) - - return true; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(WMuNuSelector); diff --git a/ElectroWeakAnalysis/WMuNu/src/WMuNuValidator.cc b/ElectroWeakAnalysis/WMuNu/src/WMuNuValidator.cc deleted file mode 100644 index b523e13bdabb1..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/src/WMuNuValidator.cc +++ /dev/null @@ -1,695 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// // -// WMuNuValidator // -// // -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// // -// Basic plots before & after cuts (without Candidate formalism) // -// Intended for a prompt validation of samples. // -// // -// Use in combination with WMuNuValidatorMacro (in bin/WMuNuValidatorMacro.cpp) // -// // -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/METReco/interface/MET.h" -#include "DataFormats/JetReco/interface/Jet.h" -#include "TH1D.h" -#include - -class WMuNuValidator : public edm::EDFilter { -public: - WMuNuValidator(const edm::ParameterSet&); - bool filter(edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - void init_histograms(); - void fill_histogram(const char*, const double&); - -private: - bool fastOption_; - edm::EDGetTokenT trigToken_; - edm::EDGetTokenT > muonToken_; - edm::InputTag metTag_; - edm::EDGetTokenT > metToken_; - bool metIncludesMuons_; - edm::InputTag jetTag_; - edm::EDGetTokenT > jetToken_; - edm::EDGetTokenT beamSpotToken_; - const std::string muonTrig_; - double ptCut_; - double etaCut_; - bool isRelativeIso_; - bool isCombinedIso_; - double isoCut03_; - double mtMin_; - double mtMax_; - double metMin_; - double metMax_; - double acopCut_; - - double dxyCut_; - double normalizedChi2Cut_; - int trackerHitsCut_; - bool isAlsoTrackerMuon_; - - double ptThrForZ1_; - double ptThrForZ2_; - - double eJetMin_; - int nJetMax_; - - unsigned int nall; - unsigned int nrec; - unsigned int niso; - unsigned int nhlt; - unsigned int nmet; - unsigned int nsel; - - std::map h1_; -}; - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Common/interface/Handle.h" - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/BeamSpot/interface/BeamSpot.h" - -#include "DataFormats/MuonReco/interface/MuonSelectors.h" - -#include "DataFormats/GeometryVector/interface/Phi.h" - -#include "FWCore/Common/interface/TriggerNames.h" - -using namespace edm; -using namespace std; -using namespace reco; - -WMuNuValidator::WMuNuValidator(const ParameterSet& cfg) - : // Fast selection (no histograms or book-keeping) - fastOption_(cfg.getUntrackedParameter("FastOption", false)), - - // Input collections - trigToken_(consumes( - cfg.getUntrackedParameter("TrigTag", edm::InputTag("TriggerResults::HLT")))), - muonToken_(consumes >(cfg.getUntrackedParameter("MuonTag", edm::InputTag("muons")))), - metTag_(cfg.getUntrackedParameter("METTag", edm::InputTag("met"))), - metToken_(consumes >(metTag_)), - metIncludesMuons_(cfg.getUntrackedParameter("METIncludesMuons", false)), - jetTag_(cfg.getUntrackedParameter("JetTag", edm::InputTag("sisCone5CaloJets"))), - jetToken_(consumes >(jetTag_)), - beamSpotToken_(consumes(edm::InputTag("offlineBeamSpot"))), - - // Main cuts - muonTrig_(cfg.getUntrackedParameter("MuonTrig", "HLT_Mu9")), - ptCut_(cfg.getUntrackedParameter("PtCut", 25.)), - etaCut_(cfg.getUntrackedParameter("EtaCut", 2.1)), - isRelativeIso_(cfg.getUntrackedParameter("IsRelativeIso", true)), - isCombinedIso_(cfg.getUntrackedParameter("IsCombinedIso", false)), - isoCut03_(cfg.getUntrackedParameter("IsoCut03", 0.1)), - mtMin_(cfg.getUntrackedParameter("MtMin", 50.)), - mtMax_(cfg.getUntrackedParameter("MtMax", 200.)), - metMin_(cfg.getUntrackedParameter("MetMin", -999999.)), - metMax_(cfg.getUntrackedParameter("MetMax", 999999.)), - acopCut_(cfg.getUntrackedParameter("AcopCut", 2.)), - - // Muon quality cuts - dxyCut_(cfg.getUntrackedParameter("DxyCut", 0.2)), - normalizedChi2Cut_(cfg.getUntrackedParameter("NormalizedChi2Cut", 10.)), - trackerHitsCut_(cfg.getUntrackedParameter("TrackerHitsCut", 11)), - isAlsoTrackerMuon_(cfg.getUntrackedParameter("IsAlsoTrackerMuon", true)), - - // Z rejection - ptThrForZ1_(cfg.getUntrackedParameter("PtThrForZ1", 20.)), - ptThrForZ2_(cfg.getUntrackedParameter("PtThrForZ2", 10.)), - - // Top rejection - eJetMin_(cfg.getUntrackedParameter("EJetMin", 999999.)), - nJetMax_(cfg.getUntrackedParameter("NJetMax", 999999)) {} - -void WMuNuValidator::beginJob() { - nall = 0; - nsel = 0; - - if (!fastOption_) { - nrec = 0; - niso = 0; - nhlt = 0; - nmet = 0; - init_histograms(); - } -} - -void WMuNuValidator::init_histograms() { - edm::Service fs; - TFileDirectory subDir0 = fs->mkdir("BeforeCuts"); - TFileDirectory subDir1 = fs->mkdir("LastCut"); - TFileDirectory* subDir[2]; - subDir[0] = &subDir0; - subDir[1] = &subDir1; - - char chname[256] = ""; - char chtitle[256] = ""; - std::string chsuffix[2] = {"_BEFORECUTS", "_LASTCUT"}; - - for (int i = 0; i < 2; ++i) { - snprintf(chname, 255, "PT%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Muon transverse momentum [GeV]"); - h1_[chname] = subDir[i]->make(chname, chtitle, 100, 0., 100.); - - snprintf(chname, 255, "ETA%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Muon pseudo-rapidity"); - h1_[chname] = subDir[i]->make(chname, chtitle, 50, -2.5, 2.5); - - snprintf(chname, 255, "DXY%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Muon transverse distance to beam spot [cm]"); - h1_[chname] = subDir[i]->make(chname, chtitle, 100, -0.5, 0.5); - - snprintf(chname, 255, "CHI2%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Normalized Chi2, inner track fit"); - h1_[chname] = subDir[i]->make(chname, chtitle, 100, 0., 100.); - - snprintf(chname, 255, "NHITS%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Number of hits, inner track"); - h1_[chname] = subDir[i]->make(chname, chtitle, 40, -0.5, 39.5); - - snprintf(chname, 255, "ValidMuonHits%s", chsuffix[i].data()); - snprintf(chtitle, 255, "number Of Valid Muon Hits"); - h1_[chname] = subDir[i]->make(chname, chtitle, 40, -0.5, 39.5); - - snprintf(chname, 255, "TKMU%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Tracker-muon flag (for global muons)"); - h1_[chname] = subDir[i]->make(chname, chtitle, 2, -0.5, 1.5); - - snprintf(chname, 255, "ISO%s", chsuffix[i].data()); - if (isRelativeIso_) { - if (isCombinedIso_) { - snprintf(chtitle, 255, "Relative (combined) isolation variable"); - } else { - snprintf(chtitle, 255, "Relative (tracker) isolation variable"); - } - h1_[chname] = subDir[i]->make(chname, chtitle, 100, 0., 1.); - } else { - if (isCombinedIso_) { - snprintf(chtitle, 255, "Absolute (combined) isolation variable [GeV]"); - } else { - snprintf(chtitle, 255, "Absolute (tracker) isolation variable [GeV]"); - } - h1_[chname] = subDir[i]->make(chname, chtitle, 100, 0., 20.); - } - - snprintf(chname, 255, "TRIG%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Trigger response (bit %s)", muonTrig_.data()); - h1_[chname] = subDir[i]->make(chname, chtitle, 2, -0.5, 1.5); - - snprintf(chname, 255, "MT%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Transverse mass (%s) [GeV]", metTag_.label().data()); - h1_[chname] = subDir[i]->make(chname, chtitle, 150, 0., 300.); - - snprintf(chname, 255, "MET%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Missing transverse energy (%s) [GeV]", metTag_.label().data()); - h1_[chname] = subDir[i]->make(chname, chtitle, 100, 0., 200.); - - snprintf(chname, 255, "ACOP%s", chsuffix[i].data()); - snprintf(chtitle, 255, "MU-MET (%s) acoplanarity", metTag_.label().data()); - h1_[chname] = subDir[i]->make(chname, chtitle, 50, 0., M_PI); - - snprintf(chname, 255, "NZ1%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Z rejection: number of muons above %.2f GeV", ptThrForZ1_); - h1_[chname] = subDir[i]->make(chname, chtitle, 10, -0.5, 9.5); - - snprintf(chname, 255, "NZ2%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Z rejection: number of muons above %.2f GeV", ptThrForZ2_); - h1_[chname] = subDir[i]->make(chname, chtitle, 10, -0.5, 9.5); - - snprintf(chname, 255, "NJETS%s", chsuffix[i].data()); - snprintf(chtitle, 255, "Number of jets (%s) above %.2f GeV", jetTag_.label().data(), eJetMin_); - h1_[chname] = subDir[i]->make(chname, chtitle, 10, -0.5, 9.5); - } -} - -void WMuNuValidator::fill_histogram(const char* name, const double& var) { - if (fastOption_) - return; - h1_[name]->Fill(var); -} - -void WMuNuValidator::endJob() { - double all = nall; - double esel = nsel / all; - LogVerbatim("") << "\n>>>>>> W SELECTION SUMMARY BEGIN >>>>>>>>>>>>>>>"; - LogVerbatim("") << "Total numer of events analyzed: " << nall << " [events]"; - LogVerbatim("") << "Total numer of events selected: " << nsel << " [events]"; - LogVerbatim("") << "Overall efficiency: " - << "(" << setprecision(4) << esel * 100. << " +/- " << setprecision(2) - << sqrt(esel * (1 - esel) / all) * 100. << ")%"; - - if (!fastOption_) { - double erec = nrec / all; - double eiso = niso / all; - double ehlt = nhlt / all; - double emet = nmet / all; - - double num = nrec; - double eff = erec; - double err = sqrt(eff * (1 - eff) / all); - LogVerbatim("") << "Passing Pt/Eta/Quality cuts: " << num << " [events], (" << setprecision(4) << eff * 100. - << " +/- " << setprecision(2) << err * 100. << ")%"; - - num = niso; - eff = eiso; - err = sqrt(eff * (1 - eff) / all); - double effstep = 0.; - double errstep = 0.; - if (nrec > 0) - effstep = eiso / erec; - if (nrec > 0) - errstep = sqrt(effstep * (1 - effstep) / nrec); - LogVerbatim("") << "Passing isolation cuts: " << num << " [events], (" << setprecision(4) << eff * 100. - << " +/- " << setprecision(2) << err * 100. << ")%, to previous step: (" << setprecision(4) - << effstep * 100. << " +/- " << setprecision(2) << errstep * 100. << ")%"; - - num = nhlt; - eff = ehlt; - err = sqrt(eff * (1 - eff) / all); - effstep = 0.; - errstep = 0.; - if (niso > 0) - effstep = ehlt / eiso; - if (niso > 0) - errstep = sqrt(effstep * (1 - effstep) / niso); - LogVerbatim("") << "Passing HLT criteria: " << num << " [events], (" << setprecision(4) << eff * 100. - << " +/- " << setprecision(2) << err * 100. << ")%, to previous step: (" << setprecision(4) - << effstep * 100. << " +/- " << setprecision(2) << errstep * 100. << ")%"; - - num = nmet; - eff = emet; - err = sqrt(eff * (1 - eff) / all); - effstep = 0.; - errstep = 0.; - if (nhlt > 0) - effstep = emet / ehlt; - if (nhlt > 0) - errstep = sqrt(effstep * (1 - effstep) / nhlt); - LogVerbatim("") << "Passing MET/acoplanarity cuts: " << num << " [events], (" << setprecision(4) << eff * 100. - << " +/- " << setprecision(2) << err * 100. << ")%, to previous step: (" << setprecision(4) - << effstep * 100. << " +/- " << setprecision(2) << errstep * 100. << ")%"; - - num = nsel; - eff = esel; - err = sqrt(eff * (1 - eff) / all); - effstep = 0.; - errstep = 0.; - if (nmet > 0) - effstep = esel / emet; - if (nmet > 0) - errstep = sqrt(effstep * (1 - effstep) / nmet); - LogVerbatim("") << "Passing Z/top rejection cuts: " << num << " [events], (" << setprecision(4) << eff * 100. - << " +/- " << setprecision(2) << err * 100. << ")%, to previous step: (" << setprecision(4) - << effstep * 100. << " +/- " << setprecision(2) << errstep * 100. << ")%"; - } - - LogVerbatim("") << ">>>>>> W SELECTION SUMMARY END >>>>>>>>>>>>>>>\n"; -} - -bool WMuNuValidator::filter(Event& ev, const EventSetup&) { - // Reset global event selection flags - bool rec_sel = false; - bool iso_sel = false; - bool hlt_sel = false; - bool met_sel = false; - bool all_sel = false; - - // Muon collection - Handle > muonCollection; - if (!ev.getByToken(muonToken_, muonCollection)) { - LogError("") << ">>> Muon collection does not exist !!!"; - return false; - } - unsigned int muonCollectionSize = muonCollection->size(); - - // Beam spot - Handle beamSpotHandle; - if (!ev.getByToken(beamSpotToken_, beamSpotHandle)) { - LogTrace("") << ">>> No beam spot found !!!"; - return false; - } - - // MET - double met_px = 0.; - double met_py = 0.; - Handle > metCollection; - if (!ev.getByToken(metToken_, metCollection)) { - LogError("") << ">>> MET collection does not exist !!!"; - return false; - } - const MET& met = metCollection->at(0); - met_px = met.px(); - met_py = met.py(); - if (!metIncludesMuons_) { - for (unsigned int i = 0; i < muonCollectionSize; i++) { - const Muon& mu = muonCollection->at(i); - if (!mu.isGlobalMuon()) - continue; - met_px -= mu.px(); - met_py -= mu.py(); - } - } - double met_et = sqrt(met_px * met_px + met_py * met_py); - LogTrace("") << ">>> MET, MET_px, MET_py: " << met_et << ", " << met_px << ", " << met_py << " [GeV]"; - fill_histogram("MET_BEFORECUTS", met_et); - - // Trigger - Handle triggerResults; - if (!ev.getByToken(trigToken_, triggerResults)) { - LogError("") << ">>> TRIGGER collection does not exist !!!"; - return false; - } - const edm::TriggerNames& triggerNames = ev.triggerNames(*triggerResults); - /* - for (unsigned int i=0; isize(); i++) { - if (triggerResults->accept(i)) { - LogTrace("") << "Accept by: " << i << ", Trigger: " << triggerNames.triggerName(i); - } - } - */ - bool trigger_fired = false; - int itrig1 = triggerNames.triggerIndex(muonTrig_); - if (triggerResults->accept(itrig1)) - trigger_fired = true; - LogTrace("") << ">>> Trigger bit: " << trigger_fired << " (" << muonTrig_ << ")"; - fill_histogram("TRIG_BEFORECUTS", trigger_fired); - - // Loop to reject/control Z->mumu is done separately - unsigned int nmuonsForZ1 = 0; - unsigned int nmuonsForZ2 = 0; - for (unsigned int i = 0; i < muonCollectionSize; i++) { - const Muon& mu = muonCollection->at(i); - if (!mu.isGlobalMuon()) - continue; - double pt = mu.pt(); - if (pt > ptThrForZ1_) - nmuonsForZ1++; - if (pt > ptThrForZ2_) - nmuonsForZ2++; - } - LogTrace("") << "> Z rejection: muons above " << ptThrForZ1_ << " [GeV]: " << nmuonsForZ1; - LogTrace("") << "> Z rejection: muons above " << ptThrForZ2_ << " [GeV]: " << nmuonsForZ2; - fill_histogram("NZ1_BEFORECUTS", nmuonsForZ1); - fill_histogram("NZ2_BEFORECUTS", nmuonsForZ2); - - // Jet collection - Handle > jetCollection; - if (!ev.getByToken(jetToken_, jetCollection)) { - LogError("") << ">>> JET collection does not exist !!!"; - return false; - } - unsigned int jetCollectionSize = jetCollection->size(); - int njets = 0; - for (unsigned int i = 0; i < jetCollectionSize; i++) { - const Jet& jet = jetCollection->at(i); - if (jet.et() > eJetMin_) - njets++; - } - LogTrace("") << ">>> Total number of jets: " << jetCollectionSize; - LogTrace("") << ">>> Number of jets above " << eJetMin_ << " [GeV]: " << njets; - fill_histogram("NJETS_BEFORECUTS", njets); - - // Start counting, reject already events if possible (under FastOption flag) - nall++; - if (fastOption_ && !trigger_fired) - return false; - if (fastOption_ && nmuonsForZ1 >= 1 && nmuonsForZ2 >= 2) - return false; - if (fastOption_ && njets > nJetMax_) - return false; - - // Histograms per event shouldbe done only once, so keep track of them - bool hlt_hist_done = false; - bool met_hist_done = false; - bool nz1_hist_done = false; - bool nz2_hist_done = false; - bool njets_hist_done = false; - - // Central W->mu nu selection criteria - const int NFLAGS = 13; - bool muon_sel[NFLAGS]; - for (unsigned int i = 0; i < muonCollectionSize; i++) { - for (int j = 0; j < NFLAGS; ++j) { - muon_sel[j] = false; - } - - const Muon& mu = muonCollection->at(i); - if (!mu.isGlobalMuon()) - continue; - if (mu.globalTrack().isNull()) - continue; - if (mu.innerTrack().isNull()) - continue; - - LogTrace("") << "> Wsel: processing muon number " << i << "..."; - reco::TrackRef gm = mu.globalTrack(); - //reco::TrackRef tk = mu.innerTrack(); - - // Pt,eta cuts - double pt = mu.pt(); - double eta = mu.eta(); - LogTrace("") << "\t... pt, eta: " << pt << " [GeV], " << eta; - ; - if (pt > ptCut_) - muon_sel[0] = true; - else if (fastOption_) - continue; - if (fabs(eta) < etaCut_) - muon_sel[1] = true; - else if (fastOption_) - continue; - - // d0, chi2, nhits quality cuts - double dxy = gm->dxy(beamSpotHandle->position()); - double normalizedChi2 = gm->normalizedChi2(); - double validmuonhits = gm->hitPattern().numberOfValidMuonHits(); - //double standalonehits=mu.outerTrack()->numberOfValidHits(); - double trackerHits = gm->hitPattern().numberOfValidTrackerHits(); - LogTrace("") << "\t... dxy, normalizedChi2, trackerHits, isTrackerMuon?: " << dxy << " [cm], " << normalizedChi2 - << ", " << trackerHits << ", " << mu.isTrackerMuon(); - if (fabs(dxy) < dxyCut_) - muon_sel[2] = true; - else if (fastOption_) - continue; - if (muon::isGoodMuon(mu, muon::GlobalMuonPromptTight)) - muon_sel[3] = true; - else if (fastOption_) - continue; - if (trackerHits >= trackerHitsCut_) - muon_sel[4] = true; - else if (fastOption_) - continue; - if (mu.isTrackerMuon()) - muon_sel[5] = true; - else if (fastOption_) - continue; - - fill_histogram("PT_BEFORECUTS", pt); - fill_histogram("ETA_BEFORECUTS", eta); - fill_histogram("DXY_BEFORECUTS", dxy); - fill_histogram("CHI2_BEFORECUTS", normalizedChi2); - fill_histogram("NHITS_BEFORECUTS", trackerHits); - fill_histogram("ValidMuonHits_BEFORECUTS", validmuonhits); - fill_histogram("TKMU_BEFORECUTS", mu.isTrackerMuon()); - - // Isolation cuts - double isovar = mu.isolationR03().sumPt; - if (isCombinedIso_) { - isovar += mu.isolationR03().emEt; - isovar += mu.isolationR03().hadEt; - } - if (isRelativeIso_) - isovar /= pt; - if (isovar < isoCut03_) - muon_sel[6] = true; - else if (fastOption_) - continue; - LogTrace("") << "\t... isolation value" << isovar << ", isolated? " << muon_sel[6]; - fill_histogram("ISO_BEFORECUTS", isovar); - - // HLT (not mtched to muon for the time being) - if (trigger_fired) - muon_sel[7] = true; - else if (fastOption_) - continue; - - // MET/MT cuts - double w_et = met_et + mu.pt(); - double w_px = met_px + mu.px(); - double w_py = met_py + mu.py(); - double massT = w_et * w_et - w_px * w_px - w_py * w_py; - massT = (massT > 0) ? sqrt(massT) : 0; - - LogTrace("") << "\t... W mass, W_et, W_px, W_py: " << massT << ", " << w_et << ", " << w_px << ", " << w_py - << " [GeV]"; - if (massT > mtMin_ && massT < mtMax_) - muon_sel[8] = true; - else if (fastOption_) - continue; - fill_histogram("MT_BEFORECUTS", massT); - if (met_et > metMin_ && met_et < metMax_) - muon_sel[9] = true; - else if (fastOption_) - continue; - - // Acoplanarity cuts - Geom::Phi deltaphi(mu.phi() - atan2(met_py, met_px)); - double acop = deltaphi.value(); - if (acop < 0) - acop = -acop; - acop = M_PI - acop; - LogTrace("") << "\t... acoplanarity: " << acop; - if (acop < acopCut_) - muon_sel[10] = true; - else if (fastOption_) - continue; - fill_histogram("ACOP_BEFORECUTS", acop); - - // Remaining flags (from global event information) - if (nmuonsForZ1 < 1 || nmuonsForZ2 < 2) - muon_sel[11] = true; - else if (fastOption_) - continue; - if (njets <= nJetMax_) - muon_sel[12] = true; - else if (fastOption_) - continue; - - if (fastOption_) { - all_sel = true; - break; - } else { - // Collect necessary flags "per muon" - int flags_passed = 0; - bool rec_sel_this = true; - bool iso_sel_this = true; - bool hlt_sel_this = true; - bool met_sel_this = true; - bool all_sel_this = true; - for (int j = 0; j < NFLAGS; ++j) { - if (muon_sel[j]) - flags_passed += 1; - if (j < 6 && !muon_sel[j]) - rec_sel_this = false; - if (j < 7 && !muon_sel[j]) - iso_sel_this = false; - if (j < 8 && !muon_sel[j]) - hlt_sel_this = false; - if (j < 11 && !muon_sel[j]) - met_sel_this = false; - if (!muon_sel[j]) - all_sel_this = false; - } - - // "rec" => pt,eta and quality cuts are satisfied - if (rec_sel_this) - rec_sel = true; - // "iso" => "rec" AND "muon is isolated" - if (iso_sel_this) - iso_sel = true; - // "hlt" => "iso" AND "event is triggered" - if (hlt_sel_this) - hlt_sel = true; - // "met" => "hlt" AND "MET/MT and acoplanarity cuts" - if (met_sel_this) - met_sel = true; - // "all" => "met" AND "Z/top rejection cuts" - if (all_sel_this) - all_sel = true; - - // Do N-1 histograms now (and only once for global event quantities) - if (flags_passed >= (NFLAGS - 1)) { - if (!muon_sel[0] || flags_passed == NFLAGS) - fill_histogram("PT_LASTCUT", pt); - if (!muon_sel[1] || flags_passed == NFLAGS) - fill_histogram("ETA_LASTCUT", eta); - if (!muon_sel[2] || flags_passed == NFLAGS) - fill_histogram("DXY_LASTCUT", dxy); - if (!muon_sel[3] || flags_passed == NFLAGS) { - fill_histogram("CHI2_LASTCUT", normalizedChi2); - fill_histogram("ValidMuonHits_LASTCUT", validmuonhits); - } - if (!muon_sel[4] || flags_passed == NFLAGS) - fill_histogram("NHITS_LASTCUT", trackerHits); - if (!muon_sel[5] || flags_passed == NFLAGS) - fill_histogram("TKMU_LASTCUT", mu.isTrackerMuon()); - if (!muon_sel[6] || flags_passed == NFLAGS) - fill_histogram("ISO_LASTCUT", isovar); - if (!muon_sel[7] || flags_passed == NFLAGS) { - if (!hlt_hist_done) { - fill_histogram("TRIG_LASTCUT", trigger_fired); - hlt_hist_done = true; - } - } - if (!muon_sel[8] || flags_passed == NFLAGS) - fill_histogram("MT_LASTCUT", massT); - if (!muon_sel[9] || flags_passed == NFLAGS) { - if (!met_hist_done) { - fill_histogram("MET_LASTCUT", met_et); - met_hist_done = true; - } - } - if (!muon_sel[10] || flags_passed == NFLAGS) - fill_histogram("ACOP_LASTCUT", acop); - if (!muon_sel[11] || flags_passed == NFLAGS) { - if (!nz1_hist_done) { - fill_histogram("NZ1_LASTCUT", nmuonsForZ1); - nz1_hist_done = true; - } - } - if (!muon_sel[11] || flags_passed == NFLAGS) { - if (!nz2_hist_done) { - fill_histogram("NZ2_LASTCUT", nmuonsForZ2); - nz2_hist_done = true; - } - } - if (!muon_sel[12] || flags_passed == NFLAGS) { - if (!njets_hist_done) { - fill_histogram("NJETS_LASTCUT", njets); - njets_hist_done = true; - } - } - } - } - } - - // Collect final flags - if (!fastOption_) { - if (rec_sel) - nrec++; - if (iso_sel) - niso++; - if (hlt_sel) - nhlt++; - if (met_sel) - nmet++; - } - - if (all_sel) { - nsel++; - LogTrace("") << ">>>> Event ACCEPTED"; - } else { - LogTrace("") << ">>>> Event REJECTED"; - } - - return all_sel; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(WMuNuValidator); diff --git a/ElectroWeakAnalysis/WMuNu/test/PAT_create.py b/ElectroWeakAnalysis/WMuNu/test/PAT_create.py deleted file mode 100755 index b4999da5a93dd..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/test/PAT_create.py +++ /dev/null @@ -1,50 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("ewkPAT") -process.maxEvents = cms.untracked.PSet( - #input = cms.untracked.int32(-1) - input = cms.untracked.int32(100) -) -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - #fileNames = cms.untracked.vstring("file:/data4/RelValWM_CMSSW_3_1_0-STARTUP31X_V1-v1_GEN-SIM-RECO/40BFAA1A-5466-DE11-B792-001D09F29533.root") - fileNames = cms.untracked.vstring("file:/data4/Wmunu-Summer09-MC_31X_V2_preproduction_311-v1/0011/F4C91F77-766D-DE11-981F-00163E1124E7.root") -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - cout = cms.untracked.PSet( - default = cms.untracked.PSet( limit = cms.untracked.int32(10) ), - threshold = cms.untracked.string('INFO') - ), - destinations = cms.untracked.vstring('cout') -) -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - - -# Geometry, conditions, magnetic field -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('MC_31X_V2::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -# PAT sequences -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.content = cms.EDAnalyzer("EventContentAnalyzer") -process.pat = cms.Path( process.patDefaultSequence ) - -# Output: no cleaning, extra AOD collections (generator info, trigger) -process.out = cms.OutputModule("PoolOutputModule", - fileName = cms.untracked.string('PAT_test.root'), - SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring('pat') ), - outputCommands = cms.untracked.vstring('drop *') -) -from PhysicsTools.PatAlgos.patEventContent_cff import patEventContentNoLayer1Cleaning -from PhysicsTools.PatAlgos.patEventContent_cff import patExtraAodEventContent -process.out.outputCommands.extend(patEventContentNoLayer1Cleaning) -process.out.outputCommands.extend(patExtraAodEventContent) - -# End -process.outpath = cms.EndPath(process.out) diff --git a/ElectroWeakAnalysis/WMuNu/test/WMuNuAODSelector.py b/ElectroWeakAnalysis/WMuNu/test/WMuNuAODSelector.py deleted file mode 100644 index 82145acb893f9..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/test/WMuNuAODSelector.py +++ /dev/null @@ -1,88 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("wmnsel") -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - #input = cms.untracked.int32(100) -) -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - #fileNames = cms.untracked.vstring("file:/data4/RelValWM_CMSSW_3_1_0-STARTUP31X_V1-v1_GEN-SIM-RECO/40BFAA1A-5466-DE11-B792-001D09F29533.root") - #fileNames = cms.untracked.vstring("file:/data4/Wmunu-Summer09-MC_31X_V2_preproduction_311-v1/0011/F4C91F77-766D-DE11-981F-00163E1124E7.root") - fileNames = cms.untracked.vstring("file:AOD_with_WCandidates.root") - -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - cerr = cms.untracked.PSet( - enable = cms.untracked.bool(False) - ), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( - limit = cms.untracked.int32(10) - ), - enable = cms.untracked.bool(True), - threshold = cms.untracked.string('INFO') - ), - debugModules = cms.untracked.vstring('wmnSelFilter') -) - -# Selector and parameters -process.wmnSelFilter = cms.EDFilter("WMuNuValidator", - # Fast selection flag (no histograms or book-keeping) -> - FastOption = cms.untracked.bool(True), - - # Input collections -> - TrigTag = cms.untracked.InputTag("TriggerResults::HLT"), - MuonTag = cms.untracked.InputTag("muons"), - METTag = cms.untracked.InputTag("met"), - METIncludesMuons = cms.untracked.bool(False), - JetTag = cms.untracked.InputTag("sisCone5CaloJets"), - - # Main cuts -> - MuonTrig = cms.untracked.string("HLT_Mu9"), - PtCut = cms.untracked.double(25.0), - EtaCut = cms.untracked.double(2.1), - IsRelativeIso = cms.untracked.bool(True), - IsCombinedIso = cms.untracked.bool(False), - IsoCut03 = cms.untracked.double(0.1), - MtMin = cms.untracked.double(50.0), - MtMax = cms.untracked.double(200.0), - MetMin = cms.untracked.double(-999999.), - MetMax = cms.untracked.double(999999.), - AcopCut = cms.untracked.double(2.), - - # Muon quality cuts -> - DxyCut = cms.untracked.double(0.2), - NormalizedChi2Cut = cms.untracked.double(10.), - TrackerHitsCut = cms.untracked.int32(11), - IsAlsoTrackerMuon = cms.untracked.bool(True), - - # To suppress Zmm -> - PtThrForZ1 = cms.untracked.double(20.0), - PtThrForZ2 = cms.untracked.double(10.0), - - # To further suppress ttbar -> - EJetMin = cms.untracked.double(40.), - NJetMax = cms.untracked.int32(999999) -) - -# Output -process.load("Configuration.EventContent.EventContent_cff") -process.wmnOutput = cms.OutputModule("PoolOutputModule", - process.AODSIMEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('wmnsel') - ), - fileName = cms.untracked.string('wmnsel.root') -) - -# Output histograms -#process.TFileService = cms.Service("TFileService", fileName = cms.string('WMuNu_histograms.root') ) - -# Steering the process -process.wmnsel = cms.Path(process.wmnSelFilter) -#process.end = cms.EndPath(process.wmnOutput) diff --git a/ElectroWeakAnalysis/WMuNu/test/WMuNuAODValidator.py b/ElectroWeakAnalysis/WMuNu/test/WMuNuAODValidator.py deleted file mode 100644 index b57ec3b137786..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/test/WMuNuAODValidator.py +++ /dev/null @@ -1,88 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("wmnsel") -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(200) - #input = cms.untracked.int32(100) -) -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - #fileNames = cms.untracked.vstring("file:/data4/RelValWM_CMSSW_3_1_0-STARTUP31X_V1-v1_GEN-SIM-RECO/40BFAA1A-5466-DE11-B792-001D09F29533.root") - #fileNames = cms.untracked.vstring("file:/data4/Wmunu-Summer09-MC_31X_V2_preproduction_311-v1/0011/F4C91F77-766D-DE11-981F-00163E1124E7.root") - fileNames = cms.untracked.vstring("file:/data4/Wmunu_Summer09-MC_31X_V3_AODSIM-v1/0009/F82D4260-507F-DE11-B5D6-00093D128828.root") - -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - cerr = cms.untracked.PSet( - enable = cms.untracked.bool(False) - ), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( - limit = cms.untracked.int32(10) - ), - enable = cms.untracked.bool(True), - threshold = cms.untracked.string('INFO') - ), - debugModules = cms.untracked.vstring('wmnSelFilter') -) - -# Selector and parameters -process.wmnSelFilter = cms.EDFilter("WMuNuValidator", - # Fast selection flag (no histograms or book-keeping) -> - FastOption = cms.untracked.bool(False), - - # Input collections -> - TrigTag = cms.untracked.InputTag("TriggerResults::HLT"), - MuonTag = cms.untracked.InputTag("muons"), - METTag = cms.untracked.InputTag("met"), - METIncludesMuons = cms.untracked.bool(False), - JetTag = cms.untracked.InputTag("sisCone5CaloJets"), - - # Main cuts -> - MuonTrig = cms.untracked.string("HLT_Mu9"), - PtCut = cms.untracked.double(25.0), - EtaCut = cms.untracked.double(2.1), - IsRelativeIso = cms.untracked.bool(True), - IsCombinedIso = cms.untracked.bool(False), - IsoCut03 = cms.untracked.double(0.1), - MtMin = cms.untracked.double(50.0), - MtMax = cms.untracked.double(200.0), - MetMin = cms.untracked.double(-999999.), - MetMax = cms.untracked.double(999999.), - AcopCut = cms.untracked.double(2.), - - # Muon quality cuts -> - DxyCut = cms.untracked.double(0.2), - NormalizedChi2Cut = cms.untracked.double(10.), - TrackerHitsCut = cms.untracked.int32(11), - IsAlsoTrackerMuon = cms.untracked.bool(True), - - # To suppress Zmm -> - PtThrForZ1 = cms.untracked.double(20.0), - PtThrForZ2 = cms.untracked.double(10.0), - - # To further suppress ttbar -> - EJetMin = cms.untracked.double(40.), - NJetMax = cms.untracked.int32(999999) -) - -# Output -#process.load("Configuration.EventContent.EventContent_cff") -#process.wmnOutput = cms.OutputModule("PoolOutputModule", -# process.AODSIMEventContent, -# SelectEvents = cms.untracked.PSet( -# SelectEvents = cms.vstring('wmnsel') -# ), -# fileName = cms.untracked.string('root_files/wmnsel.root') -#) - -# Output histograms -process.TFileService = cms.Service("TFileService", fileName = cms.string('WMuNu_histograms.root') ) - -# Steering the process -process.wmnsel = cms.Path(process.wmnSelFilter) -#process.end = cms.EndPath(process.wmnOutput) diff --git a/ElectroWeakAnalysis/WMuNu/test/WMuNuCandidateHistogrammer.py b/ElectroWeakAnalysis/WMuNu/test/WMuNuCandidateHistogrammer.py deleted file mode 100644 index d16568ace50af..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/test/WMuNuCandidateHistogrammer.py +++ /dev/null @@ -1,178 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("wmunuplots") -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - - # fileNames = cms.untracked.vstring( - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_1.root', - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_2.root', - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_3.root', - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_4.root', - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_5.root', - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_6.root', - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_7.root', - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_8.root', - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_9.root', - # '/store/user/cepeda/mytestSkim_PTR_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_10.root' - #) - - fileNames = cms.untracked.vstring( - "file:EWK_WMuNu_SubSkim_31Xv3.root" - # "file:AOD_with_WCandidates.root" - ) -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - cerr = cms.untracked.PSet( - enable = cms.untracked.bool(False) - ), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( - limit = cms.untracked.int32(-1) - ), - enable = cms.untracked.bool(True), - threshold = cms.untracked.string('DEBUG') - ), - debugModules = cms.untracked.vstring( - 'corMetWMuNus', - 'selcorMet' - ) -) - -process.selcorMet = cms.EDFilter("WMuNuSelector", - # Fill Basc Histograms? -> - plotHistograms = cms.untracked.bool(True), - - # Input collections -> - MuonTag = cms.untracked.InputTag("muons"), - TrigTag = cms.untracked.InputTag("TriggerResults::HLT8E29"), - JetTag = cms.untracked.InputTag("antikt5CaloJets"), - WMuNuCollectionTag = cms.untracked.InputTag("corMetWMuNus"), - - # Preselection! - MuonTrig = cms.untracked.string("HLT_Mu9"), - PtThrForZ1 = cms.untracked.double(20.0), - PtThrForZ2 = cms.untracked.double(10.0), - EJetMin = cms.untracked.double(40.), - NJetMax = cms.untracked.int32(999999), - - # Main cuts -> - PtCut = cms.untracked.double(25.0), - EtaCut = cms.untracked.double(2.1), - IsRelativeIso = cms.untracked.bool(True), - IsCombinedIso = cms.untracked.bool(False), - IsoCut03 = cms.untracked.double(0.1), - MtMin = cms.untracked.double(50.0), - MtMax = cms.untracked.double(200.0), - MetMin = cms.untracked.double(-999999.), - MetMax = cms.untracked.double(999999.), - AcopCut = cms.untracked.double(2.), - - # Muon quality cuts -> - DxyCut = cms.untracked.double(0.2), - NormalizedChi2Cut = cms.untracked.double(10.), - TrackerHitsCut = cms.untracked.int32(11), - IsAlsoTrackerMuon = cms.untracked.bool(True), - - # Select only W-, W+ ( default is all Ws) - SelectByCharge=cms.untracked.int32(0) - -) -process.selpfMet = cms.EDFilter("WMuNuSelector", - # Fill Basc Histograms? -> - plotHistograms = cms.untracked.bool(True), - - # Preselection! - MuonTrig = cms.untracked.string("HLT_Mu9"), - PtThrForZ1 = cms.untracked.double(20.0), - PtThrForZ2 = cms.untracked.double(10.0), - EJetMin = cms.untracked.double(40.), - NJetMax = cms.untracked.int32(999999), - - # Input collections -> - MuonTag = cms.untracked.InputTag("muons"), - TrigTag = cms.untracked.InputTag("TriggerResults::HLT8E29"), - JetTag = cms.untracked.InputTag("antikt5CaloJets"), - WMuNuCollectionTag = cms.untracked.InputTag("pfMetWMuNus"), - - # Main cuts -> - UseTrackerPt = cms.untracked.bool(True), - PtCut = cms.untracked.double(25.0), - EtaCut = cms.untracked.double(2.1), - IsRelativeIso = cms.untracked.bool(True), - IsCombinedIso = cms.untracked.bool(False), - IsoCut03 = cms.untracked.double(0.1), - MtMin = cms.untracked.double(50.0), - MtMax = cms.untracked.double(200.0), - MetMin = cms.untracked.double(-999999.), - MetMax = cms.untracked.double(999999.), - AcopCut = cms.untracked.double(2.), - - # Muon quality cuts -> - DxyCut = cms.untracked.double(0.2), - NormalizedChi2Cut = cms.untracked.double(10.), - TrackerHitsCut = cms.untracked.int32(11), - IsAlsoTrackerMuon = cms.untracked.bool(True), - - # Select only W-, W+ ( default is all Ws) - SelectByCharge=cms.untracked.int32(0) - -) -process.seltcMet = cms.EDFilter("WMuNuSelector", - # Fill Basc Histograms? -> - plotHistograms = cms.untracked.bool(True), - - # Input collections -> - MuonTag = cms.untracked.InputTag("muons"), - TrigTag = cms.untracked.InputTag("TriggerResults::HLT8E29"), - JetTag = cms.untracked.InputTag("antikt5CaloJets"), - WMuNuCollectionTag = cms.untracked.InputTag("tcMetWMuNus"), - - # Preselection! - MuonTrig = cms.untracked.string("HLT_Mu9"), - PtThrForZ1 = cms.untracked.double(20.0), - PtThrForZ2 = cms.untracked.double(10.0), - EJetMin = cms.untracked.double(40.), - NJetMax = cms.untracked.int32(999999), - - # Main cuts -> - UseTrackerPt = cms.untracked.bool(True), - PtCut = cms.untracked.double(25.0), - EtaCut = cms.untracked.double(2.1), - IsRelativeIso = cms.untracked.bool(True), - IsCombinedIso = cms.untracked.bool(False), - IsoCut03 = cms.untracked.double(0.1), - MtMin = cms.untracked.double(50.0), - MtMax = cms.untracked.double(200.0), - MetMin = cms.untracked.double(-999999.), - MetMax = cms.untracked.double(999999.), - AcopCut = cms.untracked.double(2.), - - # Muon quality cuts -> - DxyCut = cms.untracked.double(0.2), - NormalizedChi2Cut = cms.untracked.double(10.), - TrackerHitsCut = cms.untracked.int32(11), - IsAlsoTrackerMuon = cms.untracked.bool(True), - - # Select only W-, W+ ( default is all Ws) - SelectByCharge=cms.untracked.int32(0) - -) - -process.TFileService = cms.Service("TFileService", fileName = cms.string('WMuNuBasicPlots.root') ) - - -# Steering the process -process.path1 = cms.Path(process.selcorMet) -process.path2 = cms.Path(process.selpfMet) -process.path3 = cms.Path(process.seltcMet) - - - diff --git a/ElectroWeakAnalysis/WMuNu/test/WMuNuCandidateProducer.py b/ElectroWeakAnalysis/WMuNu/test/WMuNuCandidateProducer.py deleted file mode 100644 index d4a35f2310a97..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/test/WMuNuCandidateProducer.py +++ /dev/null @@ -1,63 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("USER") -process.maxEvents = cms.untracked.PSet( - #input = cms.untracked.int32(-1) - input = cms.untracked.int32(20) -) - -process.load("ElectroWeakAnalysis.WMuNu.wmunusProducer_cfi") - - -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - fileNames = cms.untracked.vstring("file:/data4/Wmunu_Summer09-MC_31X_V3_AODSIM-v1/0009/F82D4260-507F-DE11-B5D6-00093D128828.root") - -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - cerr = cms.untracked.PSet( - enable = cms.untracked.bool(False) - ), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( - limit = cms.untracked.int32(10) - ), - enable = cms.untracked.bool(True), - threshold = cms.untracked.string('INFO') - ), - debugModules = cms.untracked.vstring('corMetWMuNus') -) - -# Output -process.load("Configuration.EventContent.EventContent_cff") - -process.myEventContent = cms.PSet( - outputCommands = cms.untracked.vstring( - 'keep *' - ) -) - -process.wmnOutput = cms.OutputModule("PoolOutputModule", - process.AODSIMEventContent, - #process.myEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('path') - ), - fileName = cms.untracked.string('AOD_with_WCandidates.root') -) - - -# Steering the process -process.path = cms.Path(process.corMetWMuNus) -#process.path = cms.Path(process.pfMetWMuNus) -#process.path = cms.Path(process.tcMetWMuNus) -#process.path = cms.Path(process.allWMuNus) - -process.end = cms.EndPath(process.wmnOutput) - - - diff --git a/ElectroWeakAnalysis/WMuNu/test/WMuNuCandidateSelector.py b/ElectroWeakAnalysis/WMuNu/test/WMuNuCandidateSelector.py deleted file mode 100644 index 334ccb587254f..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/test/WMuNuCandidateSelector.py +++ /dev/null @@ -1,55 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("USER") -process.maxEvents = cms.untracked.PSet( - #input = cms.untracked.int32(-1) - input = cms.untracked.int32(10) -) -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - fileNames = cms.untracked.vstring( - # "file:/data4/InclusiveMu15_Summer09-MC_31X_V3_AODSIM-v1/0024/C2F408ED-E181-DE11-8949-0030483344E2.root") - # "file:/data4/Wmunu_Summer09-MC_31X_V3_AODSIM-v1/0009/F82D4260-507F-DE11-B5D6-00093D128828.root") - '/store/user/cepeda/mytestSkim_Wmunu_10pb/EWK_WMuNu_SubSkim_31Xv3_1.root' - -) - -process.load("ElectroWeakAnalysis.WMuNu.WMuNuSelection_cff") - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - debugModules = cms.untracked.vstring('corMetWMuNus','selcorMet'), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( limit = cms.untracked.int32(10) ), - threshold = cms.untracked.string('INFO') - #threshold = cms.untracked.string('DEBUG') - ), - destinations = cms.untracked.vstring('cout') -) - -#process.TFileService = cms.Service("TFileService", fileName = cms.string('WMuNu.root') ) - -process.myEventContent = cms.PSet( - outputCommands = cms.untracked.vstring( - 'keep *' - ) -) - -process.wmnOutput = cms.OutputModule("PoolOutputModule", - #process.AODSIMEventContent, - process.myEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('path') - ), - fileName = cms.untracked.string('AOD_with_WCandidates.root') -) - -# This Example uses only "corMetGlobalMuons". Modify to run over pf & tc Met -process.path = cms.Path(process.selectCaloMetWMuNus) - -process.end = cms.EndPath(process.wmnOutput) - - - diff --git a/ElectroWeakAnalysis/WMuNu/test/crabWMuNuValidation.cfg b/ElectroWeakAnalysis/WMuNu/test/crabWMuNuValidation.cfg deleted file mode 100644 index 954124878cb76..0000000000000 --- a/ElectroWeakAnalysis/WMuNu/test/crabWMuNuValidation.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[CMSSW] -pset = WMuNuAODValidator.py -datasetpath = /Wmunu/Summer09-MC_31X_V2_preproduction_311-v1/GEN-SIM-RECO -#datasetpath = /InclusiveMu15/Summer09-MC_31X_V2_preproduction_311-v1/GEN-SIM-RECO -#datasetpath = /Zmumu/Summer09-MC_31X_V2_preproduction_311-v1/GEN-SIM-RECO -#datasetpath = /ppMuX/Summer09-MC_31X_V2_preproduction_311-v1/GEN-SIM-RECO - -events_per_job = 10000 -total_number_of_events = -1 -#total_number_of_events = 200000 - -# Maybe for real data: -#split_by_run = 1 - -[CRAB] -jobtype = cmssw -scheduler = glitecoll - -[USER] -return_data = 1 -copy_data = 0 diff --git a/ElectroWeakAnalysis/ZEE/BuildFile.xml b/ElectroWeakAnalysis/ZEE/BuildFile.xml deleted file mode 100644 index 41daee4783660..0000000000000 --- a/ElectroWeakAnalysis/ZEE/BuildFile.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/ElectroWeakAnalysis/ZEE/README b/ElectroWeakAnalysis/ZEE/README deleted file mode 100644 index 1e264e872b900..0000000000000 --- a/ElectroWeakAnalysis/ZEE/README +++ /dev/null @@ -1,174 +0,0 @@ -NOTES AND INSTRUCTIONS FOR THE CODE -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - -This code creates Wenu or Zee candidates from some configurable trigger stream -and applies some selections. It contains the following files: -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -source and header files: ------------------------- -WenuCandidateFilter.cc -ZeeCandidateFilter.cc -WenuPlots.h and WenuPlots.cc -ZeePlots.h and ZeePlots.cc - -cfg files: ----------- -pat_WenuPlots.py aod_WenuPlots.py -pat_ZeePlots.py aod_ZeePlots.py - -macros: -------- -PlotCombiner.cc -inputFiles - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -For details with respect to the definitions of candidates check the -implementation notes in all source files. - -There are 2 ways to run this code: either running the whole PAT sequence -(recommended) or bypassing pat and run with whatever exists precalculated -in the AOD collections. - -Run the code without running the PAT sequence -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Quick instruction: cmsRun aod_WenuPlots.py or cmsRun aod_ZeePlots.py - - -An interface that is provided aod2patFilter.cc creates pat::ElectronCollection -and pat::METCollection from AOD. This uses the default pat constructors. -Isolations are added manually to the the PAT objects in the following way: - myElectron.setTrackIso(elec->dr03TkSumPt()); - myElectron.setECalIso(elec->dr04EcalRecHitSumEt()); - myElectron.setHCalIso(elec->dr04HcalTowerSumEt()); -Please edit this part accordingly, if you prefere different isolation -definitions. No facility to calculate your own isolations is provided. If you -want to do so you have to run the PAT sequence yourself. (see next session) - - -Running the whole PAT sequence yourself -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Quick instruction: cmsRun pat_WenuPlots.py or cmsRun pat_ZeePlots.py - - -The software has been tested and run successfully with the following tags: -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -Test Release based on: CMSSW_3_1_2 ---- Tag --- -------- Package -------- -V01-08-08 CondFormats/JetMETObjects -V05-06-05 DataFormats/PatCandidates -V01-08-04-01 JetMETCorrections/Algorithms -V01-08-21 JetMETCorrections/Configuration -V02-09-05 JetMETCorrections/Modules -V07-08-22-01 PhysicsTools/PatAlgos -V03-07-06 PhysicsTools/PatUtils -V04-02-02 PhysicsTools/PFCandProducer -V02-10-01 RecoJets/JetAlgorithms -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -However, it can be run just with CMSSW_3_1_2 without any further tags and -should produce the same results. - -Instructions: -^^^^^^^^^^^^^ - (the following hold for both Wenu and Zee plots) - In the cfg file that is provided you have to edit the following lines:.... - * line 17: the source - these are the input files ->>> * line 30: select your Global Tag: - STARTUP31X_V4::All this is good for the low lumi trigger menu - MC_31X_V5::All this is good for the highlumi trigger menu ->>> * line 71: the MET collection of your preference - LINE 72: modify the "metSource" to take whatever met you like - the default that is given is "met","","RECO" that is - uncorrected Calo MET. ->>> * line 96: select your Trigger path. There are 3 parameters that you set: - LINE 96: HLT_process_name : high (HLT) or low (HLT8E29) lumi - menu.............................. - LINE 98 and 100: the path and the filter names. For your...... - convenience all the correct pairs are given.. - at the end of the cfg file................... ->>> * line102: the Filter: select the parameters that you want. ONLY these... - parameters have to be changed:................................ - ETCut double the ET cut in the SC ET of the candidate - METCut double the MET cut in the MET of the event - vetoSecondElectronEvents bool (only Wenu) on/off rejection of - events with a 2nd electron with ET>see nextpara - ETCut2ndEle double the ET cut for the 2nd electron rejection - electronMatched2HLT bool demand the electron to be matched to - an HLT object (in Zee means at least one electron) - electronMatched2HLT_DR double the DR for the HLT matching ->>> * line124: set the selection cuts that you prefere........................ ->>> * line159: set the cuts that you want to invert........................... ->>> * line168: set the name of your selection PSet............................ - - -How to add the histograms and make the final plots -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -(applies to all versions) - -After you have done these changes you can run over the grid over the different -datasets. The histograms are stored in root trees that you can hadd together. -For example if you have run over QCD Em enriched samples with say 10 jobs you -will finally get out 10 files -histos_1.root, histos_2, ...., histos_10.root -that you can combine -hadd histos_qcd.root histos_1.root histos_2.root .... - -Having added the different bkgs together you set up file "inputFiles" -with the following format: -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -# zee or wenu -wenu -# file name, type (sig, qcd, bce, gje, ewk), weight -histos_wenu.root sig 1.46 -histos_q20_30.root qcd 0 -histos_q30_80.root qcd 100. -histos_q80_170.root qcd 0 -histos_b20_30.root bce 0 -histos_b30_80.root bce 0 -histos_b80_170.root bce 0 -histos_zee.root ewk 0 -histos_wtaunu.root ewk 0 -histos_ztautau.root ewk 0 -histos_gj15.root gje 0 -histos_gj20.root gje 0 -histos_gj25.root gje 10.12 -histos_gj30.root gje 0 -histos_gj35.root gje 0 -histos_wmunu.root ewk 0 -histos_ttbar.root ewk 0 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -lines that start with # are considered to be comments -line 2 has wenu or zee. From line 4 the list of the histo files are listed -(first word) then a type that could be sig,qcd,bce, gj or ewk in order to -discriminate among different sources of bkgs and finally the weight that we -want to weight the histogram entries. This particular example is for Wenu. For -Zee one has to put type sig in the zee file and ewk in the Wenu file. The order -of the files is arbitrary. Files with weight 0 will be ignored. -After you have set up this code you run a root macro to combine the plots. -You can do (not recommended - it actually crushes - to be debugged) -root -b PlotCombiner.cc -or to compile it within root (recommended) -root -b -root [1] .L PlotCombiner.cc++ -root [2] PlotCombiner() - -and you finally get the plots. - - - - -Contact - -Nikolaos.Rompotis@Cern.ch - -18Sept09 - -Nikolaos Rompotis -Imperial College London - - - diff --git a/ElectroWeakAnalysis/ZEE/READMEersatz b/ElectroWeakAnalysis/ZEE/READMEersatz deleted file mode 100644 index 878da24af0595..0000000000000 --- a/ElectroWeakAnalysis/ZEE/READMEersatz +++ /dev/null @@ -1,203 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% README for Ersatz MET code % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -------------------------------------------------------------------------------------------------- -Contents -------------------------------------------------------------------------------------------------- - -Introduction -What the Ersatz MET code does -Structure of the Ersatz MET code -How to run the Ersatz MET code -Contact - -------------------------------------------------------------------------------------------------- -Introduction -------------------------------------------------------------------------------------------------- - -Ersatz MET is a data-driven method for background subtraction in the W cross-section measurement. -The code is designed to estimate the missing transverse energy (MET) distribution for Wenu events -in data. - - -------------------------------------------------------------------------------------------------- -What the Ersatz MET code does -------------------------------------------------------------------------------------------------- - -The idea is to use Zee events from data to estimate the missing transverse energy (MET) -distribution in data from Wenu events. The MET distribution of Wenu events is modelled using the -ET distribution of the second electron in Zee after requiring that the first passes the W -electron selection. The code does the following. - -1. Find electrons (tags) which pass the W electron selection in Zee event. -2. Find another electron (probe) which, when combined with the first, gives an invariant mass - around the Z mass (71 < mee < 111 GeV). -3. Add the ersatz neutrino MET to the MET in the event to get the MET expected in a Wenu event. - -Particularly in early data, the measurement of missing energy is marred by poorly understood -detector effects. By using Zee events from data, unknown detector effects are taken into account. - -Various corrections are applied to get the Ersatz MET distribution. - -Mass Correction: due to the difference in mass between the W and Z bosons. This is applied by -boosting into the Z rest frame, multiplying by mW/mZ and boosting back into the Lab frame. - -Supercluster Energy Corrections: due to energy loss and radiation in the tracker. This includes -standard supercluster corrections such as f(eta), f(brem) and f(Et,eta). - -Acceptance Correction: In Zee events both electrons are required to be within |eta| < 2.5, while -the neutrino in a Wenu event is unconstrained. This correction is applied using a Wenu Monte -Carlo. The correction is done separately for each MET bin. The correction is: -Ersatz MET corrected = Ersatz MET x (1 + MC W MET out / MC W MET in). - -Once these corrections have been applied we have the Ersatz MET distribution. f and fprime are -the quantities needed for the W cross section measurement; they are the ratio of the number of -events passing the cuts to the number failing in the cases where the electron passes/fails the -track isolation cut. These are extracted from the Ersatz MET distribution. - - -------------------------------------------------------------------------------------------------- -Structure of the Ersatz MET code -------------------------------------------------------------------------------------------------- - -The Ersatz MET code is in three parts: - -1. Ersatz MET code: Takes Zee data and gives Ersatz MET distribution and lots of other variables -relating to electron, ersatz neutrino, Monte Carlo particles etc. in a ROOT ntuple. The W -electron selection is loosened off at this stage with the intention to apply it later so that the -analysis does not have to be rerun to change the selection. The mass correction and the -supercluster energy corrections are all applied. - -2. AnalysisErsatz code: Takes W Monte Carlo, applies W selection (which is again loose) and -outputs various variables including calo MET to a ROOT ntuple. This is only needed for the -acceptance correction. - -3. f extraction code: This is a ROOT macro. It takes the ROOT ntuples of the previous two stages, -applies the W electron selection and some probe selection correcting for probe selection -efficiency, applies acceptance correction and calculates f, fprime and errors. - -Source Files: -src/ -AnalysisErsatz.cc ErsatzMEt.cc - -Interface Files: -interface/ -AnalysisErsatz.h CaloVectors.h ElectronSelector.h ErsatzMEt.h SCEnergyCorrections.h -UniqueElectrons.h - -Python Configuration Files: -test/ -analysisersatz_cfg.py ersatzmet_cfg.py ersatzmet_cfi.py Zersatzmet_cfg.py - -ROOT macros: -macros/ -EtaWeights.txt PerformAnalysis.cpp StabilityPlots.cpp - - -------------------------------------------------------------------------------------------------- -How to run the Ersatz MET code -------------------------------------------------------------------------------------------------- - -I'll assume you are using lxplus. - -Create a CMSSW_3_1_4 project area: - -> cmsrel CMSSW_3_1_4 - -Set CMS environment: - -> cd CMSSW_3_1_4/src -> cmsenv - -Checkout the Ersatz MET code from CVS: - -> cvs co ElectroWeakAnalysis/ZEE - -Enter the analysis module: - -> cd ElectroWeakAnalysis/ZEE - -Create a python directory and put the parameter file ersatzmet_cfi.py in it so that it is seen in -the python path. - -> mkdir python -> cp test/ersatzmet_cfi.py python/ - -Build: - -> scramv1 b -j3 - -Run locally: - -Set the data location in the config file Zersatzmet_cfg.py. - -> cd ElectroWeakAnalysis/ZEE/test -> cmsRun Zersatzmet_cfg.py - -or Run on the GRID using CRAB: - -Set up GRID: -> source /afs/cern.ch/project/gd/LCG-share/current/etc/profile.d/grid_env.sh -Set up CMS environment: -> cmsenv -Set up CRAB: -> source /afs/cern.ch/cms/ccs/wm/scripts/Crab/crab.sh - -You can write a script to do the 3 setup tasks above so you don't have to type them in every time. - -> cd ElectroWeakAnalysis/ZEE - -Create a CRAB config file (crab.cfg). Zersatzmet_cfg.py in test/ folder is the config file to run -if you are using Monte Carlo Zee events, otherwise run ersatzmet_cfg.py. - -Create and submit CRAB jobs to the GRID: - -> crab -create -submit - -Also run the ErsatzAnalysis code in a similar way on W Monte Carlo data using the -analysisersatz_cfg.py config file. You will need to uncomment AnalysisErsatz.cc and comment out -ErsatzMEt.cc (or move it elsewhere) and rebuild. - -Once you have successfully run the code copy the output ROOT files to a /tmp/[username] directory. -You will need to hadd the root files first if there is more than one. - -Setup ROOT environment: -> export ROOTSYS=/afs/cern.ch/sw/lcg/external/root/5.21.02/slc4_ia32_gcc34/root -> export PATH=$PATH:$ROOTSYS/bin -> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib - -Once again you can write a script to do this so you don't have to type it in every time. - -PerformAnalysis.cpp is the Macro to run. You must also have the EtaWeights.txt file available. - -Start ROOT, compile and run macro: -> root -l -[0] .L PerformAnalysis.cpp+ -[1] PerformAnalysis([process], [weight], [datapath]) - -[process]Plots.root is the name of the output file. -[weight] is the event weight. -[datapath] is the data path e.g. if data is in /tmp/rnandi/ [datapath] = "/tmp/rnandi/" - -This creates a root file [process].root with plots and outputs interesting ones to png files. -It also outputs f, fprime, efficiency, efficiencyprime, A, B, C, D and errors to screen. - -You can also run StabilityPlots.cpp: -> root -l -[0] .L StabilityPlots.cpp+ -[1] StabilityPlots() - -This takes [process]Plots.root and outputs plots of f and fprime as a function of MET cut in png -files. - - -------------------------------------------------------------------------------------------------- -Contact -------------------------------------------------------------------------------------------------- - -Robin Nandi - -Robin.James.Nandi@Cern.ch - -8 December 2009 diff --git a/ElectroWeakAnalysis/ZEE/interface/AnalysisErsatz.h b/ElectroWeakAnalysis/ZEE/interface/AnalysisErsatz.h deleted file mode 100644 index f837e61689dce..0000000000000 --- a/ElectroWeakAnalysis/ZEE/interface/AnalysisErsatz.h +++ /dev/null @@ -1,139 +0,0 @@ -// -*- C++ -*- -// -// Package: AnalysisErsatz -// Class: AnalysisErsatz -// -/**\class AnalysisErsatz AnalysisErsatz.cc ElectroWeakAnalysis/AnalysisErsatz/src/AnalysisErsatz.cc - - Description: - - Implementation: - -*/ -// -// Original Author: David Wardrope -// Created: Fri Nov 14 15:00:43 GMT 2008 -// -// - - -// system include files -#include -//Framework -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -//Random Number Generator -#include "FWCore/Utilities/interface/RandomNumberGenerator.h" -#include "CLHEP/Random/RandFlat.h" -//Egamma -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -//OtherObjects -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/METReco/interface/CaloMET.h" -#include "DataFormats/METReco/interface/CaloMETFwd.h" -#include "DataFormats/METReco/interface/GenMET.h" -#include "DataFormats/METReco/interface/GenMETFwd.h" -#include "DataFormats/METReco/interface/PFMET.h" -#include "DataFormats/METReco/interface/PFMETFwd.h" -#include "DataFormats/METReco/interface/MET.h" -#include "DataFormats/METReco/interface/METFwd.h" -//PhysicsTools -//#include "PhysicsTools/Utilities/interface/deltaR.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "CommonTools/CandUtils/interface/CenterOfMassBooster.h" -#include "Math/GenVector/Boost.h" - -//Helper Functions -#include "ElectroWeakAnalysis/ZEE/interface/UniqueElectrons.h" -#include "ElectroWeakAnalysis/ZEE/interface/ElectronSelector.h" -#include "ElectroWeakAnalysis/ZEE/interface/CaloVectors.h" -//ROOT -#include "TTree.h" - -#define nEntries_arr_ 4 -// -// class declaration -// - -//namespace CLHEP{ -// class RandFlat; -//} - -class AnalysisErsatz : public edm::EDAnalyzer { - public: - explicit AnalysisErsatz(const edm::ParameterSet&); - ~AnalysisErsatz(); - - - private: - virtual void beginJob() ; - virtual void analyze(const edm::Event&, const edm::EventSetup&); - virtual void endJob() ; - - // ----------member data --------------------------- - edm::EDGetTokenT MCTruthCollection_; - edm::EDGetTokenT ElectronCollection_; - edm::EDGetTokenT CaloMEtCollection_; - edm::EDGetTokenT T1MEtCollection_; - edm::EDGetTokenT PfMEtCollection_; - edm::EDGetTokenT TcMEtCollection_; - edm::EDGetTokenT GenMEtCollection_; - bool ErsatzEvent_, C_Fiducial_; - enum cut_index_t { EtCut_, EB_sIhIh_, EB_dEtaIn_, EB_dPhiIn_, EB_TrckIso_, EB_EcalIso_, EB_HcalIso_, - EE_sIhIh_, EE_dEtaIn_, EE_dPhiIn_, EE_TrckIso_, EE_EcalIso_, EE_HcalIso_}; - std::vector CutVector_; - double mW_, mZ_; - edm::EDGetTokenT TriggerEvent_; - edm::EDGetTokenT TriggerResults_; - TriggerPath_; - std::string TriggerName_; - - TTree* t_; - double Boson_pt_, Boson_y_, Boson_m_, Boson_mt_; - double Boson_phi_; - double McElec3_pt_[nEntries_arr_], McElec3_eta_[nEntries_arr_]; - double McElec1_pt_[nEntries_arr_], McElec1_eta_[nEntries_arr_]; - int RndmInt_; - double RndmMcElec_pt_, RndmMcElec_eta_, RndmMcElec_phi_; - double RndmMcElec_Rescaled_pt_, RndmMcElec_Rescaled_eta_, RndmMcElec_Rescaled_phi_; - double RndmMcElecTRIG_pt_, RndmMcElecTRIG_eta_, RndmMcElecRECO_pt_, RndmMcElecRECO_eta_; - double OthrMcElec_pt_, OthrMcElec_eta_, OthrMcElec_phi_; - double OthrMcElecTRIG_pt_, OthrMcElecTRIG_eta_, OthrMcElecRECO_pt_, OthrMcElecRECO_eta_; - double OthrMcElec_Rescaled_pt_, OthrMcElec_Rescaled_eta_, OthrMcElec_Rescaled_phi_; - int RndmTrig_, RndmReco_, OthrTrig_, OthrReco_; - double McNu_pt_, McNu_eta_, McNu_phi_, McNu_ECALeta_; - double McNu_vx_, McNu_vy_, McNu_vz_; - double McLeptons_dPhi_, McLeptons_dEta_, McLeptons_dR_; - - double elec_q_[nEntries_arr_]; - double elec_pt_[nEntries_arr_], elec_eta_[nEntries_arr_], elec_phi_[nEntries_arr_]; - double elec_pt25_, elec_eta25_, elec_phi25_; - double elec_sIhIh_[nEntries_arr_], elec_dPhiIn_[nEntries_arr_], elec_dEtaIn_[nEntries_arr_]; - double elec_trckIso_[nEntries_arr_], elec_ecalIso_[nEntries_arr_], elec_hcalIso_[nEntries_arr_]; - double elec_e5x5_[nEntries_arr_], elec_e2x5Max_[nEntries_arr_], elec_e1x5Max_[nEntries_arr_]; - double elec_hoe_[nEntries_arr_], elec_eop_[nEntries_arr_], elec_pin_[nEntries_arr_], elec_pout_[nEntries_arr_]; - - double Selected_nuPt_[nEntries_arr_], Selected_nuEta_[nEntries_arr_], Selected_nuPhi_[nEntries_arr_]; - double caloMEt_, caloSumEt_, caloUESumEt_; - double t1MEt_, t1MEtPhi_, t1SumEt_; - double pfMEt_, pfMEtPhi_, pfSumEt_; - double tcMEt_, tcMEtPhi_, tcSumEt_; - double caloMEt25_, caloMEt30_; - double caloMEtECAL25_, caloMEtECAL30_;//using ECAL eta to restrict neutrino - double caloMEtPhi_, caloMEtPhi25_, caloMEtPhi30_; - double caloMEtPhiECAL25_, caloMEtPhiECAL30_;//using ECAL eta to restrict neutrino - double caloMt_[nEntries_arr_], caloMt25_[nEntries_arr_], caloMt30_[nEntries_arr_]; - double genMEt_, genMt_[nEntries_arr_], genUESumEt_, genMEt25_; - int nHltObj_, nSelElecs_; - double HltObj_pt_[nEntries_arr_], HltObj_eta_[nEntries_arr_]; -}; - diff --git a/ElectroWeakAnalysis/ZEE/interface/CaloVectors.h b/ElectroWeakAnalysis/ZEE/interface/CaloVectors.h deleted file mode 100644 index 4b131687697ad..0000000000000 --- a/ElectroWeakAnalysis/ZEE/interface/CaloVectors.h +++ /dev/null @@ -1,40 +0,0 @@ -#include "RecoEcal/EgammaClusterAlgos/interface/EgammaSCEnergyCorrectionAlgo.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include "DataFormats/Math/interface/Vector3D.h" -#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" - -math::XYZTLorentzVector DetectorVector(const reco::SuperClusterRef& sc) { - double pt = sc->energy() / cosh(sc->eta()); - math::XYZTLorentzVector detVec(pt * cos(sc->phi()), pt * sin(sc->phi()), pt * sinh(sc->eta()), sc->energy()); - return detVec; -} -math::XYZTLorentzVector DetectorVector(const reco::SuperCluster sc) { - double pt = sc.energy() / cosh(sc.eta()); - math::XYZTLorentzVector detVec(pt * cos(sc.phi()), pt * sin(sc.phi()), pt * sinh(sc.eta()), sc.energy()); - return detVec; -} -math::XYZTLorentzVector DetectorVector(const GlobalPoint& pos, const math::XYZPoint& vertex, double energy) { - math::XYZPoint hitPos(pos.x(), pos.y(), pos.z()); - math::XYZVector Vec = hitPos - vertex; - double eta = Vec.Eta(); - double phi = Vec.Phi(); - double pt = energy / cosh(eta); - math::XYZTLorentzVector detVec(pt * cos(phi), pt * sin(phi), pt * sinh(eta), energy); - return detVec; -} -math::XYZTLorentzVector PhysicsVector(const math::XYZPoint& vertex, const reco::SuperCluster& sc) { - math::XYZVector Vec = sc.position() - vertex; - double eta = Vec.Eta(); - double phi = Vec.Phi(); - double pt = sc.energy() / cosh(eta); - math::XYZTLorentzVector probe(pt * cos(phi), pt * sin(phi), pt * sinh(eta), sc.energy()); - return probe; -} -math::XYZTLorentzVector PhysicsVectorRaw(const math::XYZPoint& vertex, const reco::SuperCluster& sc) { - math::XYZVector Vec = sc.position() - vertex; - double eta = Vec.Eta(); - double phi = Vec.Phi(); - double pt = sc.rawEnergy() / cosh(eta); - math::XYZTLorentzVector probe(pt * cos(phi), pt * sin(phi), pt * sinh(eta), sc.rawEnergy()); - return probe; -} diff --git a/ElectroWeakAnalysis/ZEE/interface/ElectronSelector.h b/ElectroWeakAnalysis/ZEE/interface/ElectronSelector.h deleted file mode 100644 index 071742f2cbe09..0000000000000 --- a/ElectroWeakAnalysis/ZEE/interface/ElectronSelector.h +++ /dev/null @@ -1,92 +0,0 @@ -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include - -std::vector electronSelector(const std::vector& electrons, - const edm::Handle& pHLT, - const int filterId, - const std::vector& Cuts) { - std::vector ChosenOnes; - const trigger::Keys& ring = pHLT->filterKeys(filterId); - const trigger::TriggerObjectCollection& HltObjColl = pHLT->getObjects(); - //const edm::ValueMap& eIsoMapTrk = *eIsoMap[0]; - //const edm::ValueMap& eIsoMapEcal = *eIsoMap[1]; - //const edm::ValueMap& eIsoMapHcal = *eIsoMap[2]; - edm::LogDebug_("electronSelector", "", 16) << "Number of electrons to select from = " << electrons.size(); - for (std::vector::const_iterator Relec = electrons.begin(); Relec != electrons.end(); ++Relec) { - reco::GsfElectronRef elec = *Relec; - edm::LogDebug_("electronSelector", "", 17) << "Analysing elec, id = " << elec.id() << "\tkey = " << elec.key(); - double scEta = elec->superCluster()->eta(); - if (fabs(scEta) < 1.4442 || fabs(scEta) > 1.56) { - bool HLTMatch = false; - for (unsigned int k = 0; k < ring.size(); ++k) { - const trigger::TriggerObject& HltObj = HltObjColl[ring[k]]; - if (reco::deltaR(*elec, HltObj) < 0.1) - HLTMatch = true; - } - edm::LogDebug_("electronSelector", "", 16) << "HLT Match = " << HLTMatch; - std::cout << "HLT Match = " << HLTMatch << std::endl; - // if(HLTMatch) ChosenOnes.push_back(elec); - if (HLTMatch) { - if (fabs(scEta) < 1.479) { - float sIhIh = elec->scSigmaIEtaIEta(); - edm::LogDebug_("electronSelector", "", 32) << "SigIetaIeta = " << sIhIh << "\tCut Value = " << Cuts[1]; - if (sIhIh < Cuts[1]) { - edm::LogDebug_("elecSel", "", 39) - << "dEta = " << elec->deltaEtaSuperClusterTrackAtVtx() << "\tCut Value = " << Cuts[2]; - if (fabs(elec->deltaEtaSuperClusterTrackAtVtx()) < Cuts[2]) { - edm::LogDebug_("elecSel", "", 39) - << "dPhi = " << elec->deltaPhiSuperClusterTrackAtVtx() << "\tCut Value = " << Cuts[3]; - if (fabs(elec->deltaPhiSuperClusterTrackAtVtx()) < Cuts[3]) { - float trckiso = elec->isolationVariables03().tkSumPt; - edm::LogDebug_("", "", 29) << "Track isolation = " << trckiso << "\tCut Value = " << Cuts[4]; - if (trckiso < Cuts[4]) { - float ecaliso = elec->isolationVariables04().ecalRecHitSumEt; - edm::LogDebug_("", "", 29) << "ECAL isolation = " << ecaliso << "\tCut Value = " << Cuts[5]; - if (ecaliso < Cuts[5]) { - float hcaliso = elec->isolationVariables04().hcalDepth1TowerSumEt + - elec->isolationVariables04().hcalDepth2TowerSumEt; - edm::LogDebug_("", "", 29) << "HCAL isolation = " << hcaliso << "\tCut Value = " << Cuts[6]; - if (hcaliso < Cuts[6]) - ChosenOnes.push_back(elec); - } - } - } - } - } - } else { - float sIhIh = elec->scSigmaIEtaIEta(); - edm::LogDebug_("electronSelector", "", 32) << "SigIetaIeta = " << sIhIh << "\tCut Value = " << Cuts[7]; - if (sIhIh < Cuts[7]) { - edm::LogDebug_("elecSel", "", 39) - << "dEta = " << elec->deltaEtaSuperClusterTrackAtVtx() << "\tCut Value = " << Cuts[8]; - if (fabs(elec->deltaEtaSuperClusterTrackAtVtx()) < Cuts[8]) { - edm::LogDebug_("elecSel", "", 39) - << "dPhi = " << elec->deltaPhiSuperClusterTrackAtVtx() << "\tCut Value = " << Cuts[9]; - if (fabs(elec->deltaPhiSuperClusterTrackAtVtx()) < Cuts[9]) { - float trckiso = elec->isolationVariables03().tkSumPt; - edm::LogDebug_("", "", 29) << "Track isolation = " << trckiso << "\tCut Value = " << Cuts[10]; - if (trckiso < Cuts[10]) { - float ecaliso = elec->isolationVariables04().ecalRecHitSumEt; - edm::LogDebug_("", "", 29) << "ECAL isolation = " << ecaliso << "\tCut Value = " << Cuts[11]; - if (ecaliso < Cuts[11]) { - float hcaliso = elec->isolationVariables04().hcalDepth1TowerSumEt + - elec->isolationVariables04().hcalDepth2TowerSumEt; - edm::LogDebug_("", "", 29) << "HCAL isolation = " << hcaliso << "\tCut Value = " << Cuts[12]; - if (hcaliso < Cuts[12]) - ChosenOnes.push_back(elec); - } - } - } - } - } - } - // ChosenOnes.push_back(elec); - } - } - } - return ChosenOnes; -} diff --git a/ElectroWeakAnalysis/ZEE/interface/ErsatzMEt.h b/ElectroWeakAnalysis/ZEE/interface/ErsatzMEt.h deleted file mode 100644 index c6aa5c08f43fd..0000000000000 --- a/ElectroWeakAnalysis/ZEE/interface/ErsatzMEt.h +++ /dev/null @@ -1,213 +0,0 @@ -#ifndef ElectroWeakAnalysis_ErsatzMEt_h -#define ElectroWeakAnalysis_ErsatzMEt_h -// -*- C++ -*- -// -// Package: ErsatzMEt -// Class: ErsatzMEt -// -/**\class ErsatzMEt ErsatzMEt.cc ElectroWeakAnalysis/ErsatzMEt/src/ErsatzMEt.cc - - Description: - - Implementation: - -*/ -// -// Original Author: David Wardrope -// Created: Tue Nov 11 16:47:29 GMT 2008 -// -// - -// system include files -#include - -//Framework -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -//Random Number Generator -#include "FWCore/Utilities/interface/RandomNumberGenerator.h" -#include "CLHEP/Random/RandFlat.h" -//CMSSW Containers -#include "DataFormats/Common/interface/ValueMap.h" -//Egamma Objects -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/EgammaReco/interface/SuperCluster.h" -//ECAL -#include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h" -#include "RecoEcal/EgammaClusterAlgos/interface/EgammaSCEnergyCorrectionAlgo.h" -//Geometry -#include "RecoCaloTools/Navigation/interface/CaloNavigator.h" -#include "Geometry/CaloTopology/interface/CaloTopology.h" -#include "Geometry/EcalAlgo/interface/EcalBarrelGeometry.h" -#include "Geometry/EcalAlgo/interface/EcalEndcapGeometry.h" -#include "Geometry/CaloGeometry/interface/CaloGeometry.h" -#include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" -#include "Geometry/Records/interface/CaloTopologyRecord.h" -//DetIds -#include "DataFormats/CaloTowers/interface/CaloTowerDetId.h" -//Other Objects -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "HLTrigger/HLTcore/interface/HLTConfigProvider.h" -#include "DataFormats/METReco/interface/CaloMET.h" -#include "DataFormats/METReco/interface/CaloMETFwd.h" -#include "DataFormats/METReco/interface/GenMET.h" -#include "DataFormats/METReco/interface/GenMETFwd.h" -#include "DataFormats/METReco/interface/PFMET.h" -#include "DataFormats/METReco/interface/PFMETFwd.h" -#include "DataFormats/METReco/interface/MET.h" -#include "DataFormats/METReco/interface/METFwd.h" -//Physics Tools -#include "DataFormats/Math/interface/deltaR.h" - -//Maths -#include "Math/GenVector/VectorUtil.h" -//ROOT -#include "TTree.h" -#include "TH1.h" -#include "TH2.h" -//Helper Functions -#include "ElectroWeakAnalysis/ZEE/interface/UniqueElectrons.h" -#include "ElectroWeakAnalysis/ZEE/interface/ElectronSelector.h" -#include "ElectroWeakAnalysis/ZEE/interface/CaloVectors.h" -#include "ElectroWeakAnalysis/ZEE/interface/SCEnergyCorrections.h" - -#define nEntries_arr_ 4 -//#include "DataFormats/EgammaReco/interface/SuperCluster.h" -// -// class declaration -// - -class ErsatzMEt : public edm::EDAnalyzer { -public: - explicit ErsatzMEt(const edm::ParameterSet&); - ~ErsatzMEt() override; - -private: - void beginJob() override; - void analyze(const edm::Event&, const edm::EventSetup&) override; - // std::map probeFinder(const std::vector&, - // const edm::Handle&, - // const edm::Handle&); - std::map probeFinder(const std::vector&, - const edm::Handle); - reco::MET ersatzFabrik(const reco::GsfElectronRef&, const reco::SuperCluster&, const reco::MET&, const int); - reco::MET ersatzFabrik(const reco::GsfElectronRef&, const reco::GsfElectronRef&, const reco::MET&); - bool isInBarrel(double); - bool isInEndCap(double); - bool isInFiducial(double); - - void endJob() override; - - // ----------member data --------------------------- - edm::EDGetTokenT MCTruthCollection_; - edm::EDGetTokenT ElectronCollection_; - edm::EDGetTokenT HybridScCollection_; - edm::EDGetTokenT M5x5ScCollection_; - edm::EDGetTokenT GenMEtCollection_; - edm::EDGetTokenT CaloMEtCollection_; - edm::EDGetTokenT T1MEtCollection_; - edm::EDGetTokenT PfMEtCollection_; - edm::EDGetTokenT TcMEtCollection_; - edm::EDGetTokenT TriggerEvent_; - edm::EDGetTokenT TriggerResults_; - edm::InputTag TriggerPath_; - std::string TriggerName_, ProcessName_; - edm::ParameterSet hyb_fCorrPSet_, m5x5_fCorrPSet_; - double mW_, mZ_, mTPmin_, mTPmax_; - double BarrelEtaMax_, EndCapEtaMin_, EndCapEtaMax_; - - enum cut_index_t { - EtCut_, - EB_sIhIh_, - EB_dEtaIn_, - EB_dPhiIn_, - EB_TrckIso_, - EB_EcalIso_, - EB_HcalIso_, - EE_sIhIh_, - EE_dEtaIn_, - EE_dPhiIn_, - EE_TrckIso_, - EE_EcalIso_, - EE_HcalIso_ - }; - - std::vector CutVector_; - - int etaWidth_, phiWidth_; - bool Zevent_, HLTPathCheck_; - // std::vector EtaWeights_; - HLTConfigProvider hltConfig_; - - edm::ESHandle geoHandle_; - edm::ESHandle pTopology_; - //Output variables - TTree* t_; - int nTags_, nProbes_; - double CaloMEt_, T1MEt_, PfMEt_, TcMEt_; - double CaloMEtphi_, T1MEtphi_, PfMEtphi_, TcMEtphi_; - int McElec_nZmum_, McElec_nFinal_; - double McZ_m_, McZ_pt_, McZ_phi_, McZ_eta_, McZ_y_; - double McZ_rescM_, McZ_rescPt_, McZ_rescEta_, McZ_rescPhi_, McZ_rescY_; - - int probe_nClus_[nEntries_arr_]; - int tag_q_[nEntries_arr_]; - double tag_pt_[nEntries_arr_], tag_eta_[nEntries_arr_], tag_phi_[nEntries_arr_]; - //double tag_caloV1_rescPt_[nEntries_arr_], tag_caloV1_rescEta_[nEntries_arr_], tag_caloV1_rescPhi_[nEntries_arr_]; - //double tag_caloV2_rescPt_[nEntries_arr_], tag_caloV2_rescEta_[nEntries_arr_], tag_caloV2_rescPhi_[nEntries_arr_]; - //double tag_caloV3_rescPt_[nEntries_arr_], tag_caloV3_rescEta_[nEntries_arr_], tag_caloV3_rescPhi_[nEntries_arr_]; - //double tag_caloV4_rescPt_[nEntries_arr_], tag_caloV4_rescEta_[nEntries_arr_], tag_caloV4_rescPhi_[nEntries_arr_]; - double tag_rescPt_[nEntries_arr_], tag_rescEta_[nEntries_arr_], tag_rescPhi_[nEntries_arr_]; - double tag_sIhIh_[nEntries_arr_], tag_dPhiIn_[nEntries_arr_], tag_dEtaIn_[nEntries_arr_]; - double tag_trckIso_[nEntries_arr_], tag_ecalIso_[nEntries_arr_], tag_hcalIso_[nEntries_arr_]; - double tag_e2x5Max_[nEntries_arr_], tag_e1x5Max_[nEntries_arr_], tag_e5x5_[nEntries_arr_]; - double tag_hoe_[nEntries_arr_], tag_eop_[nEntries_arr_], tag_pin_[nEntries_arr_], tag_pout_[nEntries_arr_]; - int probe_q_[nEntries_arr_]; - double probe_pt_[nEntries_arr_], probe_eta_[nEntries_arr_], probe_phi_[nEntries_arr_]; - double probe_rescPt_[nEntries_arr_], probe_rescEta_[nEntries_arr_], probe_rescPhi_[nEntries_arr_]; - double probe_sIhIh_[nEntries_arr_], probe_dPhiIn_[nEntries_arr_], probe_dEtaIn_[nEntries_arr_]; - double probe_trckIso_[nEntries_arr_], probe_ecalIso_[nEntries_arr_], probe_hcalIso_[nEntries_arr_]; - double probe_e2x5Max_[nEntries_arr_], probe_e1x5Max_[nEntries_arr_], probe_e5x5_[nEntries_arr_]; - double probe_hoe_[nEntries_arr_], probe_eop_[nEntries_arr_], probe_pin_[nEntries_arr_], probe_pout_[nEntries_arr_]; - double Z_pt_[nEntries_arr_], Z_eta_[nEntries_arr_], Z_phi_[nEntries_arr_], Z_m_[nEntries_arr_], Z_y_[nEntries_arr_]; - double Z_rescPt_[nEntries_arr_], Z_rescEta_[nEntries_arr_], Z_rescPhi_[nEntries_arr_], Z_rescM_[nEntries_arr_], - Z_rescY_[nEntries_arr_]; - double Z_probe_dPhi_[nEntries_arr_]; - double ErsatzV1CaloMEt_[nEntries_arr_], ErsatzV1CaloMt_[nEntries_arr_], ErsatzV1CaloMEtPhi_[nEntries_arr_]; - double ErsatzV2CaloMEt_[nEntries_arr_], ErsatzV2CaloMEtPhi_[nEntries_arr_], ErsatzV2CaloMt_[nEntries_arr_]; - double ErsatzV3CaloMEt_[nEntries_arr_], ErsatzV3CaloMEtPhi_[nEntries_arr_], ErsatzV3CaloMt_[nEntries_arr_]; - double ErsatzV4CaloMEt_[nEntries_arr_], ErsatzV4CaloMEtPhi_[nEntries_arr_], ErsatzV4CaloMt_[nEntries_arr_]; - double ErsatzV1T1MEt_[nEntries_arr_], ErsatzV1T1Mt_[nEntries_arr_], ErsatzV1T1MEtPhi_[nEntries_arr_]; - double ErsatzV1PfMEt_[nEntries_arr_], ErsatzV1PfMt_[nEntries_arr_], ErsatzV1PfMEtPhi_[nEntries_arr_]; - double ErsatzV1TcMEt_[nEntries_arr_], ErsatzV1TcMt_[nEntries_arr_], ErsatzV1TcMEtPhi_[nEntries_arr_]; - double ErsatzV1_Mesc_[nEntries_arr_], ErsatzV1_rescMesc_[nEntries_arr_]; - double ErsatzV2_Mesc_[nEntries_arr_], ErsatzV2_rescMesc_[nEntries_arr_]; - double ErsatzV3_Mesc_[nEntries_arr_], ErsatzV3_rescMesc_[nEntries_arr_]; - double ErsatzV4_Mesc_[nEntries_arr_], ErsatzV4_rescMesc_[nEntries_arr_]; - - double McElec_pt_[nEntries_arr_], McElec_eta_[nEntries_arr_], McElec_phi_[nEntries_arr_]; - double McElec_rescPt_[nEntries_arr_], McElec_rescEta_[nEntries_arr_], McElec_rescPhi_[nEntries_arr_]; - double McProbe_pt_[nEntries_arr_], McProbe_eta_[nEntries_arr_], McProbe_phi_[nEntries_arr_]; - double McProbe_rescPt_[nEntries_arr_], McProbe_rescEta_[nEntries_arr_], McProbe_rescPhi_[nEntries_arr_]; - double McElecProbe_dPhi_[nEntries_arr_], McElecProbe_dEta_[nEntries_arr_], McElecProbe_dR_[nEntries_arr_]; - - double probe_d_MCE_SCE_[nEntries_arr_]; - double probe_sc_pt_[nEntries_arr_], probe_sc_eta_[nEntries_arr_], probe_sc_phi_[nEntries_arr_]; - double probe_sc_E_[nEntries_arr_], probe_sc_rawE_[nEntries_arr_], probe_sc_nClus_[nEntries_arr_]; - double probe_scV2_E_[nEntries_arr_]; - double probe_scV3_E_[nEntries_arr_]; - double probe_scV4_E_[nEntries_arr_]; - - int iComb_; -}; -#endif diff --git a/ElectroWeakAnalysis/ZEE/interface/SCEnergyCorrections.h b/ElectroWeakAnalysis/ZEE/interface/SCEnergyCorrections.h deleted file mode 100644 index c0806a50dcab3..0000000000000 --- a/ElectroWeakAnalysis/ZEE/interface/SCEnergyCorrections.h +++ /dev/null @@ -1,111 +0,0 @@ -#include "DataFormats/EgammaReco/interface/BasicClusterFwd.h" -#include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h" -#include "DataFormats/EgammaReco/interface/SuperCluster.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -reco::CaloClusterPtrVector CaloClusterVectorCopier(const reco::SuperCluster& sc); - -reco::SuperCluster fEtaScCorr(const reco::SuperCluster& sc) { - reco::CaloClusterPtrVector bcs = CaloClusterVectorCopier(sc); - double ieta = fabs(sc.eta()) * (5 / 0.087); - double p0 = 40.2198; - double p1 = -3.03103e-6; - double newE; - // std::cout << "Corrected E = Raw E * (1+ p1*(ieta - p0)*(ieta - p0))"<< std::endl; - if (ieta < p0) - newE = sc.rawEnergy(); - else - newE = sc.rawEnergy() / (1 + p1 * (ieta - p0) * (ieta - p0)); - - reco::SuperCluster corrSc(newE, sc.position(), sc.seed(), bcs, sc.preshowerEnergy(), 0., 0.); - return corrSc; -} - -reco::SuperCluster fBremScCorr(const reco::SuperCluster& sc, const edm::ParameterSet& ps) { - std::vector fBrem = ps.getParameter >("fBremVec"); - double bremFrLowThr = ps.getParameter("brLinearLowThr"); - double bremFrHighThr = ps.getParameter("brLinearHighThr"); - - reco::CaloClusterPtrVector bcs = CaloClusterVectorCopier(sc); - double bremFrac = sc.phiWidth() / sc.etaWidth(); - double newE = sc.energy(); - if (fabs(sc.eta()) < 1.479) { - reco::SuperCluster fEtaSC = fEtaScCorr(sc); - reco::CaloClusterPtrVector bcs = CaloClusterVectorCopier(sc); - newE = fEtaSC.energy(); - } - - if (bremFrac < bremFrLowThr) - bremFrac = bremFrLowThr; - if (bremFrac < bremFrHighThr) - bremFrac = bremFrHighThr; - - double p0 = fBrem[0]; - double p1 = fBrem[1]; - double p2 = fBrem[2]; - double p3 = fBrem[3]; - double p4 = fBrem[4]; - // - double threshold = p4; - - double y = p0 * threshold * threshold + p1 * threshold + p2; - double yprime = 2 * p0 * threshold + p1; - double a = p3; - double b = yprime - 2 * a * threshold; - double c = y - a * threshold * threshold - b * threshold; - - double fCorr = 1; - if (bremFrac < threshold) - fCorr = p0 * bremFrac * bremFrac + p1 * bremFrac + p2; - else - fCorr = a * bremFrac * bremFrac + b * bremFrac + c; - - newE /= fCorr; - reco::SuperCluster corrSc(newE, sc.position(), sc.seed(), bcs, sc.preshowerEnergy(), 0., 0.); - return corrSc; -} - -reco::SuperCluster fEtEtaCorr(const reco::SuperCluster& sc, const edm::ParameterSet& ps) { - // et -- Et of the SuperCluster (with respect to (0,0,0)) - // eta -- eta of the SuperCluster - std::vector fEtEtaParams = ps.getParameter >("fEtEtaParamsVec"); - - reco::SuperCluster fBremSC = fBremScCorr(sc, ps); - reco::CaloClusterPtrVector bcs = CaloClusterVectorCopier(sc); - - double eta = sc.eta(); - double et = fBremSC.energy() / cosh(eta); - double fCorr = 0.; - - double p0 = fEtEtaParams[0] + fEtEtaParams[1] / (et + fEtEtaParams[2]) + fEtEtaParams[3] / (et * et); - double p1 = fEtEtaParams[4] + fEtEtaParams[5] / (et + fEtEtaParams[6]) + fEtEtaParams[7] / (et * et); - double p2 = fEtEtaParams[8] + fEtEtaParams[9] / (et + fEtEtaParams[10]) + fEtEtaParams[11] / (et * et); - - fCorr = p0 + p1 * atan(fEtEtaParams[12] * (fEtEtaParams[13] - fabs(eta))) + fEtEtaParams[14] * fabs(eta) + - p1 * fEtEtaParams[15] * fabs(eta) + p2 * fEtEtaParams[16] * eta * eta; - - if (fCorr < 0.5) - fCorr = 0.5; - - double newE = et / (fCorr * cosh(eta)); - reco::SuperCluster corrSc(newE, sc.position(), sc.seed(), bcs, sc.preshowerEnergy(), 0., 0.); - return corrSc; -} - -reco::SuperCluster fEAddScCorr(const reco::SuperCluster& sc, double Ecorr) { - reco::CaloClusterPtrVector bcs = CaloClusterVectorCopier(sc); - - double newE = sc.rawEnergy() + Ecorr; - reco::SuperCluster corrSc(newE, sc.position(), sc.seed(), bcs, sc.preshowerEnergy(), 0., 0.); - return corrSc; -} - -reco::CaloClusterPtrVector CaloClusterVectorCopier(const reco::SuperCluster& sc) { - reco::CaloClusterPtrVector clusters_v; - - for (reco::CaloCluster_iterator cluster = sc.clustersBegin(); cluster != sc.clustersEnd(); cluster++) { - clusters_v.push_back(*cluster); - } - - return clusters_v; -} diff --git a/ElectroWeakAnalysis/ZEE/interface/UniqueElectrons.h b/ElectroWeakAnalysis/ZEE/interface/UniqueElectrons.h deleted file mode 100644 index 226c0a760517b..0000000000000 --- a/ElectroWeakAnalysis/ZEE/interface/UniqueElectrons.h +++ /dev/null @@ -1,31 +0,0 @@ -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" - -#include - -std::vector uniqueElectronFinder(edm::Handle& pElectrons) { - const reco::GsfElectronCollection* electrons = pElectrons.product(); - //Remove duplicate electrons which share a supercluster - std::vector UniqueElectrons; - int index = 0; - for (reco::GsfElectronCollection::const_iterator elec = electrons->begin(); elec != electrons->end(); ++elec) { - const reco::GsfElectronRef electronRef(pElectrons, index); - reco::GsfElectronCollection::const_iterator BestDuplicate = elec; - for (reco::GsfElectronCollection::const_iterator elec2 = electrons->begin(); elec2 != electrons->end(); ++elec2) { - if (elec != elec2) { - if (elec->superCluster() == elec2->superCluster()) { - edm::LogDebug_("", "MySelection.cc", 122) << "e/p Best duplicate = " << BestDuplicate->eSuperClusterOverP() - << "\telec2 = " << elec2->eSuperClusterOverP(); - if (fabs(BestDuplicate->eSuperClusterOverP() - 1.) >= fabs(elec2->eSuperClusterOverP() - 1.)) { - BestDuplicate = elec2; - edm::LogDebug_("", "MySelection.cc", 122) << "elec2 is now best duplicate"; - } else - edm::LogDebug_("", "MySelection.cc", 122) << "BestDuplicate remains best duplicate"; - } - } - } - if (BestDuplicate == elec) - UniqueElectrons.push_back(electronRef); - ++index; - } - return UniqueElectrons; -} diff --git a/ElectroWeakAnalysis/ZEE/interface/ZeePlots.h b/ElectroWeakAnalysis/ZEE/interface/ZeePlots.h deleted file mode 100644 index 4f51c2fe5d7d0..0000000000000 --- a/ElectroWeakAnalysis/ZEE/interface/ZeePlots.h +++ /dev/null @@ -1,358 +0,0 @@ -#ifndef ZeePlots_H -#define ZeePlots_H - -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/PatCandidates/interface/Electron.h" -#include "DataFormats/PatCandidates/interface/MET.h" -#include "DataFormats/PatCandidates/interface/CompositeCandidate.h" -#include "DataFormats/EgammaCandidates/interface/Electron.h" -#include "DataFormats/Math/interface/Vector3D.h" -#include "DataFormats/JetReco/interface/PFJet.h" -#include "DataFormats/JetReco/interface/CaloJet.h" -#include "DataFormats/JetReco/interface/PFJetCollection.h" -#include "DataFormats/JetReco/interface/CaloJetCollection.h" - -#include -#include -#include "TFile.h" -#include "TTree.h" -#include "TString.h" -#include "TLorentzVector.h" -#include "TH1F.h" -#include "TMath.h" - -// -// class decleration -// - -class ZeePlots : public edm::EDAnalyzer { -public: - explicit ZeePlots(const edm::ParameterSet &); - ~ZeePlots() override; - -private: - void beginJob() override; - void analyze(const edm::Event &, const edm::EventSetup &) override; - void endJob() override; - - // ----------member data --------------------------- - - // for the 1st leg - Bool_t CheckCuts1(const pat::Electron *); - Bool_t CheckCut1(const pat::Electron *, Int_t); - Bool_t CheckCuts1Inverse(const pat::Electron *); - Bool_t CheckCut1Inv(const pat::Electron *, Int_t); - Bool_t CheckCuts1NminusOne(const pat::Electron *, Int_t); - - // for the 2nd leg - Bool_t CheckCuts2(const pat::Electron *); - Bool_t CheckCut2(const pat::Electron *, Int_t); - Bool_t CheckCuts2Inverse(const pat::Electron *); - Bool_t CheckCut2Inv(const pat::Electron *, Int_t); - Bool_t CheckCuts2NminusOne(const pat::Electron *, Int_t); - - Double_t ReturnCandVar(const pat::Electron *, Int_t); - - Bool_t PassPreselectionCriteria1(const pat::Electron *); - Bool_t PassPreselectionCriteria2(const pat::Electron *); - - Bool_t useSameSelectionOnBothElectrons_; - - // for the extra identifications and selections - Bool_t usePrecalcID1_; - std::string usePrecalcIDSign1_; - std::string usePrecalcIDType1_; - Double_t usePrecalcIDValue1_; - - Bool_t usePrecalcID2_; - std::string usePrecalcIDSign2_; - std::string usePrecalcIDType2_; - Double_t usePrecalcIDValue2_; - - // for extra preselection criteria: - Bool_t usePreselection1_; - Bool_t useValidFirstPXBHit1_; - Bool_t useConversionRejection1_; - Bool_t useExpectedMissingHits1_; - Bool_t maxNumberOfExpectedMissingHits1_; - // - Bool_t usePreselection2_; - Bool_t useValidFirstPXBHit2_; - Bool_t useConversionRejection2_; - Bool_t useExpectedMissingHits2_; - Bool_t maxNumberOfExpectedMissingHits2_; - - // other - std::string outputFile_; - edm::EDGetTokenT zeeCollectionToken_; - edm::EDGetTokenT caloJetCollectionToken_; - edm::EDGetTokenT pfJetCollectionToken_; - - TFile *histofile; - - // the histograms - TH1F *h_mee; - TH1F *h_mee_EBEB; - TH1F *h_mee_EBEE; - TH1F *h_mee_EEEE; - TH1F *h_Zcand_PT; - TH1F *h_Zcand_Y; - - TH1F *h_e_PT; - TH1F *h_e_ETA; - TH1F *h_e_PHI; - - TH1F *h_EB_trkiso; - TH1F *h_EB_ecaliso; - TH1F *h_EB_hcaliso; - TH1F *h_EB_sIetaIeta; - TH1F *h_EB_dphi; - TH1F *h_EB_deta; - TH1F *h_EB_HoE; - - TH1F *h_EE_trkiso; - TH1F *h_EE_ecaliso; - TH1F *h_EE_hcaliso; - TH1F *h_EE_sIetaIeta; - TH1F *h_EE_dphi; - TH1F *h_EE_deta; - TH1F *h_EE_HoE; - - // - TH1F *h_trackIso_eb_NmOne; - TH1F *h_trackIso_ee_NmOne; - - // *********************************** - // - // the selection cuts - - // /* Electron 0 */ - // Double_t trackIso0_EB_ ; Double_t trackIso0_EE_ ; - // Double_t ecalIso0_EB_ ; Double_t ecalIso0_EE_ ; - // Double_t hcalIso0_EB_ ; Double_t hcalIso0_EE_ ; - // - // Double_t sihih0_EB_ ; Double_t sihih0_EE_ ; - // Double_t dphi0_EB_ ; Double_t dphi0_EE_ ; - // Double_t deta0_EB_ ; Double_t deta0_EE_ ; - // Double_t hoe0_EB_ ; Double_t hoe0_EE_ ; - // Double_t cIso0_EB_ ; Double_t cIso0_EE_ ; - // Double_t tip_bspot0_EB_ ; Double_t tip_bspot0_EE_ ; - // Double_t eop0_EB_ ; Double_t eop0_EE_ ; - // - // Double_t trackIsoUser0_EB_ ; Double_t trackIsoUser0_EE_ ; - // Double_t ecalIsoUser0_EB_ ; Double_t ecalIsoUser0_EE_ ; - // Double_t hcalIsoUser0_EB_ ; Double_t hcalIsoUser0_EE_ ; - // //................................................................. - // Bool_t trackIso0_EB_inv ; Bool_t trackIso0_EE_inv ; - // Bool_t ecalIso0_EB_inv ; Bool_t ecalIso0_EE_inv ; - // Bool_t hcalIso0_EB_inv ; Bool_t hcalIso0_EE_inv ; - // - // Bool_t sihih0_EB_inv ; Bool_t sihih0_EE_inv ; - // Bool_t dphi0_EB_inv ; Bool_t dphi0_EE_inv ; - // Bool_t deta0_EB_inv ; Bool_t deta0_EE_inv ; - // Bool_t hoe0_EB_inv ; Bool_t hoe0_EE_inv ; - // Bool_t cIso0_EB_inv ; Bool_t cIso0_EE_inv ; - // Bool_t tip_bspot0_EB_inv ; Bool_t tip_bspot0_EE_inv ; - // Bool_t eop0_EB_inv ; Bool_t eop0_EE_inv ; - // - // Bool_t trackIsoUser0_EB_inv ; Bool_t trackIsoUser0_EE_inv ; - // Bool_t ecalIsoUser0_EB_inv ; Bool_t ecalIsoUser0_EE_inv ; - // Bool_t hcalIsoUser0_EB_inv ; Bool_t hcalIsoUser0_EE_inv ; - - /* Electron 1 */ - Double_t trackIso1_EB_; - Double_t trackIso1_EE_; - Double_t ecalIso1_EB_; - Double_t ecalIso1_EE_; - Double_t hcalIso1_EB_; - Double_t hcalIso1_EE_; - - Double_t sihih1_EB_; - Double_t sihih1_EE_; - Double_t dphi1_EB_; - Double_t dphi1_EE_; - Double_t deta1_EB_; - Double_t deta1_EE_; - Double_t hoe1_EB_; - Double_t hoe1_EE_; - Double_t cIso1_EB_; - Double_t cIso1_EE_; - Double_t tip_bspot1_EB_; - Double_t tip_bspot1_EE_; - Double_t eop1_EB_; - Double_t eop1_EE_; - - Double_t trackIsoUser1_EB_; - Double_t trackIsoUser1_EE_; - Double_t ecalIsoUser1_EB_; - Double_t ecalIsoUser1_EE_; - Double_t hcalIsoUser1_EB_; - Double_t hcalIsoUser1_EE_; - //................................................................. - Bool_t trackIso1_EB_inv; - Bool_t trackIso1_EE_inv; - Bool_t ecalIso1_EB_inv; - Bool_t ecalIso1_EE_inv; - Bool_t hcalIso1_EB_inv; - Bool_t hcalIso1_EE_inv; - - Bool_t sihih1_EB_inv; - Bool_t sihih1_EE_inv; - Bool_t dphi1_EB_inv; - Bool_t dphi1_EE_inv; - Bool_t deta1_EB_inv; - Bool_t deta1_EE_inv; - Bool_t hoe1_EB_inv; - Bool_t hoe1_EE_inv; - Bool_t cIso1_EB_inv; - Bool_t cIso1_EE_inv; - Bool_t tip_bspot1_EB_inv; - Bool_t tip_bspot1_EE_inv; - Bool_t eop1_EB_inv; - Bool_t eop1_EE_inv; - - Bool_t trackIsoUser1_EB_inv; - Bool_t trackIsoUser1_EE_inv; - Bool_t ecalIsoUser1_EB_inv; - Bool_t ecalIsoUser1_EE_inv; - Bool_t hcalIsoUser1_EB_inv; - Bool_t hcalIsoUser1_EE_inv; - - /* Electron 2 */ - Double_t trackIso2_EB_; - Double_t trackIso2_EE_; - Double_t ecalIso2_EB_; - Double_t ecalIso2_EE_; - Double_t hcalIso2_EB_; - Double_t hcalIso2_EE_; - - Double_t sihih2_EB_; - Double_t sihih2_EE_; - Double_t dphi2_EB_; - Double_t dphi2_EE_; - Double_t deta2_EB_; - Double_t deta2_EE_; - Double_t hoe2_EB_; - Double_t hoe2_EE_; - Double_t cIso2_EB_; - Double_t cIso2_EE_; - Double_t tip_bspot2_EB_; - Double_t tip_bspot2_EE_; - Double_t eop2_EB_; - Double_t eop2_EE_; - - Double_t trackIsoUser2_EB_; - Double_t trackIsoUser2_EE_; - Double_t ecalIsoUser2_EB_; - Double_t ecalIsoUser2_EE_; - Double_t hcalIsoUser2_EB_; - Double_t hcalIsoUser2_EE_; - //................................................................. - Bool_t trackIso2_EB_inv; - Bool_t trackIso2_EE_inv; - Bool_t ecalIso2_EB_inv; - Bool_t ecalIso2_EE_inv; - Bool_t hcalIso2_EB_inv; - Bool_t hcalIso2_EE_inv; - - Bool_t sihih2_EB_inv; - Bool_t sihih2_EE_inv; - Bool_t dphi2_EB_inv; - Bool_t dphi2_EE_inv; - Bool_t deta2_EB_inv; - Bool_t deta2_EE_inv; - Bool_t hoe2_EB_inv; - Bool_t hoe2_EE_inv; - Bool_t cIso2_EB_inv; - Bool_t cIso2_EE_inv; - Bool_t tip_bspot2_EB_inv; - Bool_t tip_bspot2_EE_inv; - Bool_t eop2_EB_inv; - Bool_t eop2_EE_inv; - - Bool_t trackIsoUser2_EB_inv; - Bool_t trackIsoUser2_EE_inv; - Bool_t ecalIsoUser2_EB_inv; - Bool_t ecalIsoUser2_EE_inv; - Bool_t hcalIsoUser2_EB_inv; - Bool_t hcalIsoUser2_EE_inv; - - Int_t nBarrelVars_; - - std::vector CutVars1_; - std::vector CutVars2_; - - std::vector InvVars1_; - std::vector InvVars2_; - - // - // variables related to the VBTF root tuples: - // - Int_t runNumber, lumiSection; - - Long64_t eventNumber; - - Float_t ele1_sc_energy, ele1_sc_eta, ele1_sc_phi; - Float_t ele1_sc_gsf_et; - Float_t ele1_cand_et, ele1_cand_eta, ele1_cand_phi; - Float_t ele1_iso_track, ele1_iso_ecal, ele1_iso_hcal; - Float_t ele1_id_sihih, ele1_id_dphi, ele1_id_deta, ele1_id_hoe; - Float_t ele1_cr_mhitsinner, ele1_cr_dcot, ele1_cr_dist; - Float_t ele1_vx, ele1_vy, ele1_vz; - - Float_t pv_x1, pv_y1, pv_z1; - - Int_t ele1_gsfCharge, ele1_ctfCharge, ele1_scPixCharge; - Float_t ele1_eop, ele1_tip_bs, ele1_tip_pv; - - Float_t ele2_sc_energy, ele2_sc_eta, ele2_sc_phi; - Float_t ele2_sc_gsf_et; - Float_t ele2_cand_et, ele2_cand_eta, ele2_cand_phi; - Float_t ele2_iso_track, ele2_iso_ecal, ele2_iso_hcal; - Float_t ele2_id_sihih, ele2_id_dphi, ele2_id_deta, ele2_id_hoe; - Float_t ele2_cr_mhitsinner, ele2_cr_dcot, ele2_cr_dist; - Float_t ele2_vx, ele2_vy, ele2_vz; - - Float_t pv_x2, pv_y2, pv_z2; - - Int_t ele2_gsfCharge, ele2_ctfCharge, ele2_scPixCharge; - Float_t ele2_eop, ele2_tip_bs, ele2_tip_pv; - - Float_t event_caloMET, event_pfMET, event_tcMET; - Float_t event_caloMET_phi, event_pfMET_phi, event_tcMET_phi; - - Float_t event_Mee; - - Float_t calojet_et[5]; - Float_t calojet_eta[5]; - Float_t calojet_phi[5]; - Float_t pfjet_et[5]; - Float_t pfjet_eta[5]; - Float_t pfjet_phi[5]; - - Int_t event_datasetTag; - - TFile *ZEE_VBTFpreseleFile_; - TFile *ZEE_VBTFselectionFile_; - - TTree *vbtfSele_tree; - TTree *vbtfPresele_tree; - - std::string ZEE_VBTFselectionFileName_; - std::string ZEE_VBTFpreseleFileName_; - - Bool_t includeJetInformationInNtuples_; - Double_t DRJetFromElectron_; - Int_t DatasetTag_; -}; - -#endif diff --git a/ElectroWeakAnalysis/ZEE/macros/ApplySelectionCuts.cpp b/ElectroWeakAnalysis/ZEE/macros/ApplySelectionCuts.cpp deleted file mode 100644 index 35b929f924196..0000000000000 --- a/ElectroWeakAnalysis/ZEE/macros/ApplySelectionCuts.cpp +++ /dev/null @@ -1,1353 +0,0 @@ -#include "TFile.h" -#include "TTree.h" -#include "TH1.h" -#include "TH2.h" -#include "TString.h" -#include -#include -#include -//#include - -using namespace std; - -//double deltaR(double eta1, double phi1, double eta2, double phi2); -//double deltaPhi(double phi1, double phi2); -void ApplySelectionCuts(TString InFileName) -{ - // Declare electron cut value variables - double cMEt, cPt; - double cECALiso_EB, cECALiso_EE; - double cHCALiso_EB, cHCALiso_EE; - double cTrackiso_EB, cTrackiso_EE; - double cDeltaEta_EB, cDeltaEta_EE; - double cDeltaPhi_EB, cDeltaPhi_EE; - double csIhIh_EB, csIhIh_EE; - // Declare neutrino cut value variables - double cHCAL; - double cHCALEt; - double cf1x5, cf2x5; - int celecmatch; - double cnusIhIh; - - // Import cut values from config file - ifstream cuts; - cuts.open("CutValues.txt", ifstream::in); - cuts >> cMEt; - cout << "MEt cut " << cMEt << "\n" << endl; - - cout << "Electron selection cuts:" << endl; - cuts >> cPt; - cout << "Pt cut " << cPt << endl; - cuts >> cECALiso_EB; - cout << "ECAL Isolation cut (EB) " << cECALiso_EB << endl; - cuts >> cECALiso_EE; - cout << "ECAL Isolation cut (EE) " << cECALiso_EE << endl; - cuts >> cHCALiso_EB; - cout << "HCAL Isolation cut (EB) " << cHCALiso_EB << endl; - cuts >> cHCALiso_EE; - cout << "HCAL Isolation cut (EE) " << cHCALiso_EE << endl; - cuts >> cTrackiso_EB; - cout << "Track Isolation cut (EB) " << cTrackiso_EB << endl; - cuts >> cTrackiso_EE; - cout << "Track Isolation cut (EE) " << cTrackiso_EE << endl; - cuts >> cDeltaEta_EB; - cout << "Delta Eta cut (EB) " << cDeltaEta_EB << endl; - cuts >> cDeltaEta_EE; - cout << "Delta Eta cut (EE) " << cDeltaEta_EE << endl; - cuts >> cDeltaPhi_EB; - cout << "Delta Phi cut (EB) " << cDeltaPhi_EB << endl; - cuts >> cDeltaPhi_EE; - cout << "Delta Phi cut (EE) " << cDeltaPhi_EE << endl; - cuts >> csIhIh_EB; - cout << "Sigma iEta iEta cut (EB) " << csIhIh_EB << endl; - cuts >> csIhIh_EE; - cout << "Sigma iEta iEta cut (EE) " << csIhIh_EE << "\n" << endl; - - cout << "Probe selection cuts:" << endl; - cuts >> cHCAL; - cout << "HCAL Energy cut " << cHCAL << endl; - cuts >> cf1x5; - cout << "Fraction of energy in 1x5 cut " << cf1x5 << endl; - cuts >> cf2x5; - cout << "Fraction of energy in 2x5 cut " << cf2x5 << endl; - cuts >> celecmatch; - cout << "Require electron match " << celecmatch << endl; - cuts >> cnusIhIh; - cout << "Sigma iEta iEta cut " << cnusIhIh << endl; - cuts >> cHCALEt; - cout << "HCAL Transverse Energy cut " << cHCALEt << "\n" << endl; -/* - cuts >> cPt; - cuts >> cECALiso_EB; - cuts >> cECALiso_EE; - cuts >> cHCALiso_EB; - cuts >> cHCALiso_EE; - cuts >> cTrackiso_EB; - cuts >> cTrackiso_EE; - cuts >> cDeltaEta_EB; - cuts >> cDeltaEta_EE; - cuts >> cDeltaPhi_EB; - cuts >> cDeltaPhi_EE; - cuts >> csIhIh_EB; - cuts >> csIhIh_EE; - cuts >> cHCAL; - cuts >> cf1x5; - cuts >> cf2x5; - cuts >> celecmatch; - cuts >> cnusIhIh; - cuts >> cHCALEt; -*/ - cuts.close(); - - cout << "Got Cut Values" << endl; - // Import probe selection efficiency weights -/* - double nueff[345]; - ifstream weightsin("EtaWeights.txt"); - - for(int eta=0; eta < 345; ++eta) - { - double weight; - weightsin >> weight; - nueff[eta] = weight; - } -*/ - int nTags, nErNu; - int nMcElecs_Zmum, nMcElecs_Final; - int nRecHitsInStrip[4], nRecHitsInCone[4]; - - double Z_pt[4]; - - double elec_q[4], elec_pt[4], elec_eta[4], elec_phi[4]; - double elec_rescPt[4], elec_rescEta[4];//, elec_rescPhi[4]; - - double /*probe_q[4], */probe_pt[4], probe_eta[4], probe_phi[4]; - double probe_rescPt[4], probe_rescEta[4];//, probe_rescPhi[4]; - - double ErsatzV1MEt[4], ErsatzV1Mt[4], ErsatzV1MEtphi[4]; - double ErsatzV1aMEt[4], ErsatzV1aMt[4], ErsatzV1aMEtphi[4]; - double ErsatzV1bMEt[4], ErsatzV1bMt[4], ErsatzV1bMEtphi[4]; - double ErsatzV1cMEt[4]/*, ErsatzV1cMt[4]*/, ErsatzV1cMEtphi[4]; - double ErsatzV2MEt[4], ErsatzV2Mt[4], ErsatzV2MEtphi[4]; - double caloMEt; - double mesc[4], rescMesc[4]; - - double elec_trkIso[4], elec_EcalIso[4], elec_HcalIso[4]; - double elec_sIhIh[4], elec_dPhi[4], elec_dEta[4]; - - double ernu_e1x5[4], ernu_e2x5[4], ernu_e5x5[4], ernu_sIhIh[4]; - double ernu_HcalEt015[4], ernu_HcalE015[4], ernu_trkIso[4]; - - double ernu_E[4], ernu_rawE[4], ernu_unclusE[4], ernu_d_McE_ScE[4]; - double ernu_fEtaCorrE[4], ernu_fBremCorrE[4], ernu_AddCorrE[4]; - int ernu_nClusters[4]; - - double McZ_m[4], McZ_pt[4]/*, McZ_eta[4]*/, McZ_phi[4]; - double McZ_rescM[4];//, McZ_rescPt[4], McZ_rescEta[4], McZ_rescPhi[4]; - double McElec_pt[4], McElec_eta[4];//, McElec_phi[4]; - double McElec_rescPt[4], McElec_rescEta[4];//, McElec_rescPhi[4]; - double McErNu_pt[4], McErNu_eta[4], McErNu_phi[4]; - double McErNu_rescPt[4], McErNu_rescEta[4], McErNu_rescPhi[4]; - double McElecErNu_dPhi[4], McElecErNu_dR[4]; - int ernu_McMatch[4]; - - cout << "Declared Variables" << endl; - //TString OutFileName = "/tmp/rnandi/"+InFileName+"_Selected"; - //TFile *outfile = TFile::Open(OutFileName+".root", "recreate"); - - TString OutFileName_Pass_EB = "/tmp/rnandi/"+InFileName+"_Selected_Pass_EB"; - TFile *outfile_pass_EB = TFile::Open(OutFileName_Pass_EB+".root", "recreate"); - - cout << "Opened outfile_Pass_EB" << endl; - - TH1I* h_nTags_Pass_EB = new TH1I("nTags", "Number of Tags;Number of Tags;Arbitrary Units", 4, 0, 4); - TH1I* h_nErNu_Pass_EB = new TH1I("nErNu", "Number of Ersatz Neutrinos;Number of Ersatz Neutrinos;Arbitrary Units", 2, 0, 2); - TH1I* h_nMcElecs_Zmum_Pass_EB = new TH1I("nMcElecs_Zmum", "Number of Monte Carlo Electrons with Z as Mother;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nMcElecs_Final_Pass_EB = new TH1I("nMcElecs_Final", "Number of Final State Monte Carlo Electrons;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nRecHitsInStrip_Pass_EB = new TH1I("nRecHitsInStrip", ";;Arbitrary Units", 20, 0, 20); - TH1I* h_nRecHitsInCone_Pass_EB = new TH1I("nRecHitsInCone", ";;Arbitrary Units", 20, 0, 20); - - TH1F* h_Z_pt_Pass_EB = new TH1F("Z_pt", "Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - - TH1F* h_elec_q_Pass_EB = new TH1F("elec_q", "Electron Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_elec_pt_Pass_EB = new TH1F("elec_pt", "Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_eta_Pass_EB = new TH1F("elec_eta", "Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_elec_phi_Pass_EB = new TH1F("elec_phi", "Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_elec_sIhIh_Pass_EB = new TH1F("elec_sIhIh", "Electron #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitary Units", 100, 0., 0.05); - TH1F* h_elec_dEta_Pass_EB = new TH1F("elec_dEta", "Electron #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); - TH1F* h_elec_dPhi_Pass_EB = new TH1F("elec_dPhi", "Electron #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_elec_TrkIso_Pass_EB = new TH1F("elec_TrkIso", "Electon Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_EcalIso_Pass_EB = new TH1F("elec_EcalIso", "Electron ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_HcalIso_Pass_EB = new TH1F("elec_HcalIso", "Electron HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_rescPt_Pass_EB = new TH1F("elec_rescPt", "Electron Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_rescEta_Pass_EB = new TH1F("elec_rescEta", "Electron Rescaled #eta;Rescaled #eta;Arbitrary Units", 100, -3., 3.); - -// TH1F* h_ErNu_q_Pass_EB = new TH1F("h_ErNu_q", "Ersatz Neutrino Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_ErNu_pt_Pass_EB = new TH1F("ErNu_pt", "Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_eta_Pass_EB = new TH1F("ErNu_eta", "Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_ErNu_phi_Pass_EB = new TH1F("ErNu_phi", "Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_ErNu_rescPt_Pass_EB = new TH1F("ErNu_rescPt", "Ersatz Neutrino Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rescEta_Pass_EB = new TH1F("ErNu_rescEta", "Ersatz Neutrino Rescaled #eta;Rescaled #eta", 100, -3., 3.); - - TH1F* h_ErNu_sIhIh_Pass_EB = new TH1F("ErNu_sIhIh", "Ersatz Neutrino #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitrary Units", 100, 0., 0.05); -// TH1F* h_ErNu_dEta_Pass_EB = new TH1F("ErNu_dEta", "Ersatz Neutrino #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); -// TH1F* h_ErNu_dPhi_Pass_EB = new TH1F("ErNu_dPhi", "Ersatz Neutrino #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_ErNu_TrkIso_Pass_EB = new TH1F("ErNu_TrkIso", "Ersatz Neutrino Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_EcalIso_Pass_EB = new TH1F("ErNu_EcalIso", "Ersatz Neutrino ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_HcalIso_Pass_EB = new TH1F("ErNu_HcalIso", "Ersatz Neutrino HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_e1x5Max_Pass_EB = new TH1F("ErNu_e1x5Max", "Ersatz Neutrino Maximum Energy in 1x5 Array of Crystals;e1x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e2x5Max_Pass_EB = new TH1F("ErNu_e2x5Max", "Ersatz Neutrino Maximum Energy in 2x5 Array of Crystals;e2x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e5x5_Pass_EB = new TH1F("ErNu_e5x5", "Ersatz Neutrino Energy in 5x5 Array of Crystals;e5x5 / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_HcalE015_Pass_EB = new TH1F("ErNu_HcalE015", "Ersatz Neutrino HCAL Energy in a 0.15 Cone;HCAL Energy / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_HcalEt015_Pass_EB = new TH1F("ErNu_HcalEt015", "Ersatz Neutrino HCAL E_{T} in a 0.15 Cone;HCAL E_{T};Arbitrary Units", 100, 0., 10.); - -// TH1F* h_rechitE_Pass_EB = new TH1F("h_rechitE", "", 100, , ); // What is this - TH1F* h_ErNu_E_Pass_EB = new TH1F("ErNu_E", "Ersatz Neutrino Energy;Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rawE_Pass_EB = new TH1F("ErNu_rawE", "Ersatz Neutrino Raw Energy;Raw Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_unclusE_Pass_EB = new TH1F("ErNu_unclusE", "Ersatz Neutrino Unclustered ECAL Energy;Unclustered Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fEtaCorrE_Pass_EB = new TH1F("ErNu_fEtaCorrE", "Ersatz Neutrino fEta Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fBremCorrE_Pass_EB = new TH1F("ErNu_fBremCorrE", "Ersatz Neutrino fBrem Corrected Energy;Correcteed Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_AddCorrE_Pass_EB = new TH1F("ErNu_AddCorrE", "Ersatz Neutrino Add Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1I* h_ErNu_nClusters_Pass_EB = new TH1I("ErNu_nClusters", "Ersatz Neutrino Number of Clusters;Number of Clusters;Arbitrary Units", 10, 0, 10); - -// TH1F* h_ErsatzV1MEt_Pass_EB = new TH1F("ErsatzV1MEt", "ErsatzV1MEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1Mt_Pass_EB = new TH1F("ErsatzV1Mt", "ErsatzV1Mt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1MEtphi_Pass_EB = new TH1F("ErsatzV1MEtPhi", "ErsatzV1MEtPhi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEt_Pass_EB = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMt_Pass_EB = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEtphi_Pass_EB = new TH1F("ErsatzV1aMEtphi", "ErsatzV1aMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEt_Pass_EB = new TH1F("ErsatzV1bMEt", "ErsatzV1bMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMt_Pass_EB = new TH1F("ErsatzV1bMt", "ErsatzV1bMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEtphi_Pass_EB = new TH1F("ErsatzV1bMEtphi", "ErsatzV1bMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEt_Pass_EB = new TH1F("ErsatzV1cMEt", "ErsatzV1cMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMt_Pass_EB = new TH1F("ErsatzV1cMt", "ErsatzV1cMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEtphi_Pass_EB = new TH1F("ErsatzV1cMEtphi", "ErsatzV1cMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEt_Pass_EB = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2Mt_Pass_EB = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEtphi_Pass_EB = new TH1F("ErsatzV2MEtphi", "ErsatzV2MEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_RecoCaloMEt_Pass_EB = new TH1F("RecoCaloMEt", "Calometric #slashE_{T};#slashE_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1Mesc_Pass_EB = new TH1F("ErsatzV1Mesc", "Invariant Mass;Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_ErsatzV1rescMesc_Pass_EB = new TH1F("ErsatzV1rescMesc", "Rescaled Invariant Mass;Rescaled Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - - TH1F* h_McZ_M_Pass_EB = new TH1F("McZ_M", "Monte Carlo Z Mass;Mass / GeV; Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_rescM_Pass_EB = new TH1F("McZ_rescM", "Monte Carlo Rescaled Z Mass;Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_Pt_Pass_EB = new TH1F("McZ_Pt", "Monte Carlo Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_rescPt_Pass_EB = new TH1F("McZ_rescPt", "Monte Carlo Rescaled Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_Eta_Pass_EB = new TH1F("McZ_eta", "Monte Carlo Z #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McZ_rescEta_Pass_EB = new TH1F("McZ_rescEta", "Monte Carlo Rescaled Z #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McZ_Phi_Pass_EB = new TH1F("McZ_phi", "Monte Carlo Z #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McZ_rescPhi_Pass_EB = new TH1F("McZ_rescPhi", "Monte Carlo Z Rescaled #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElec_Pt_Pass_EB = new TH1F("McElec_Pt", "Monte Carlo Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_rescPt_Pass_EB = new TH1F("McElec_rescPt", "Monte Carlo Rescaled Electron p_{T};Rescaled p_{T};Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_Eta_Pass_EB = new TH1F("McElec_Eta", "Monte Carlo Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McElec_rescEta_Pass_EB = new TH1F("McElec_rescEta", "Monte Carlo Rescaled Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McElec_Phi_Pass_EB = new TH1F("McElec_Phi", "Monte Carlo Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McElec_rescPhi_Pass_EB = new TH1F("McElec_rescPhi", "Monte Carlo Rescaled Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McErNu_Pt_Pass_EB = new TH1F("McErNu_Pt", "Monte Carlo Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_rescPt_Pass_EB = new TH1F("McErNu_rescPt", "Monte Carlo Rescaled Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_Eta_Pass_EB = new TH1F("McErNu_Eta", "Monte Carlo Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_rescEta_Pass_EB = new TH1F("McErNu_rescEta", "Monte Carlo Rescaled Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_Phi_Pass_EB = new TH1F("McErNu_Phi", "Monte Carlo Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McErNu_rescPhi_Pass_EB = new TH1F("McErNu_rescPhi", "Monte Carlo Rescaled Ersatz Neutrino #phi;Rescaled #phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElecErNu_dPhi_Pass_EB = new TH1F("McElecErNu_dPhi", "Monte Carlo #Delta#phi between Electrons;#Delta#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McElecErNu_dR_Pass_EB = new TH1F("McElecErNu_dR", "Monte Carlo #DeltaR between Electrons;MC Match;Arbitrary Units", 100, 0., 3.1416); - TH1I* h_McMatch_Pass_EB = new TH1I("McMatch", "Monte Carlo Match of Ersatz Neutrino to an Electron;MC Match;Arbitrary Units", 2, 0, 2); - - cout << "Declared histograms h_xxx_Pass_EB" << endl; -// TH1F* h_EtaInt_Pass_EB = new TH1F("EtaInt", "", 345, 0, 345); -// TH1F* h_EtaWeights_Pass_EB = new TH1F("EtaWeights", "", 40, 0., 2.); - - TString OutFileName_Pass_EE = "/tmp/rnandi/"+InFileName+"_Selected_Pass_EE"; - TFile *outfile_pass_EE = TFile::Open(OutFileName_Pass_EE+".root", "recreate"); - cout << "Opened outfile_Pass_EE" << endl; - - TH1I* h_nTags_Pass_EE = new TH1I("nTags", "Number of Tags;Number of Tags;Arbitrary Units", 4, 0, 4); - TH1I* h_nErNu_Pass_EE = new TH1I("nErNu", "Number of Ersatz Neutrinos;Number of Ersatz Neutrinos;Arbitrary Units", 2, 0, 2); - TH1I* h_nMcElecs_Zmum_Pass_EE = new TH1I("nMcElecs_Zmum", "Number of Monte Carlo Electrons with Z as Mother;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nMcElecs_Final_Pass_EE = new TH1I("nMcElecs_Final", "Number of Final State Monte Carlo Electrons;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nRecHitsInStrip_Pass_EE = new TH1I("nRecHitsInStrip", ";;Arbitrary Units", 20, 0, 20); - TH1I* h_nRecHitsInCone_Pass_EE = new TH1I("nRecHitsInCone", ";;Arbitrary Units", 20, 0, 20); - - TH1F* h_Z_pt_Pass_EE = new TH1F("Z_pt", "Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - - TH1F* h_elec_q_Pass_EE = new TH1F("elec_q", "Electron Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_elec_pt_Pass_EE = new TH1F("elec_pt", "Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_eta_Pass_EE = new TH1F("elec_eta", "Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_elec_phi_Pass_EE = new TH1F("elec_phi", "Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_elec_sIhIh_Pass_EE = new TH1F("elec_sIhIh", "Electron #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitary Units", 100, 0., 0.05); - TH1F* h_elec_dEta_Pass_EE = new TH1F("elec_dEta", "Electron #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); - TH1F* h_elec_dPhi_Pass_EE = new TH1F("elec_dPhi", "Electron #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_elec_TrkIso_Pass_EE = new TH1F("elec_TrkIso", "Electon Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_EcalIso_Pass_EE = new TH1F("elec_EcalIso", "Electron ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_HcalIso_Pass_EE = new TH1F("elec_HcalIso", "Electron HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_rescPt_Pass_EE = new TH1F("elec_rescPt", "Electron Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_rescEta_Pass_EE = new TH1F("elec_rescEta", "Electron Rescaled #eta;Rescaled #eta;Arbitrary Units", 100, -3., 3.); - -// TH1F* h_ErNu_q_Pass_EE = new TH1F("h_ErNu_q", "Ersatz Neutrino Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_ErNu_pt_Pass_EE = new TH1F("ErNu_pt", "Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_eta_Pass_EE = new TH1F("ErNu_eta", "Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_ErNu_phi_Pass_EE = new TH1F("ErNu_phi", "Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_ErNu_rescPt_Pass_EE = new TH1F("ErNu_rescPt", "Ersatz Neutrino Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rescEta_Pass_EE = new TH1F("ErNu_rescEta", "Ersatz Neutrino Rescaled #eta;Rescaled #eta", 100, -3., 3.); - - TH1F* h_ErNu_sIhIh_Pass_EE = new TH1F("ErNu_sIhIh", "Ersatz Neutrino #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitrary Units", 100, 0., 0.05); -// TH1F* h_ErNu_dEta_Pass_EE = new TH1F("ErNu_dEta", "Ersatz Neutrino #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); -// TH1F* h_ErNu_dPhi_Pass_EE = new TH1F("ErNu_dPhi", "Ersatz Neutrino #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_ErNu_TrkIso_Pass_EE = new TH1F("ErNu_TrkIso", "Ersatz Neutrino Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_EcalIso_Pass_EE = new TH1F("ErNu_EcalIso", "Ersatz Neutrino ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_HcalIso_Pass_EE = new TH1F("ErNu_HcalIso", "Ersatz Neutrino HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_e1x5Max_Pass_EE = new TH1F("ErNu_e1x5Max", "Ersatz Neutrino Maximum Energy in 1x5 Array of Crystals;e1x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e2x5Max_Pass_EE = new TH1F("ErNu_e2x5Max", "Ersatz Neutrino Maximum Energy in 2x5 Array of Crystals;e2x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e5x5_Pass_EE = new TH1F("ErNu_e5x5", "Ersatz Neutrino Energy in 5x5 Array of Crystals;e5x5 / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_HcalE015_Pass_EE = new TH1F("ErNu_HcalE015", "Ersatz Neutrino HCAL Energy in a 0.15 Cone;HCAL Energy / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_HcalEt015_Pass_EE = new TH1F("ErNu_HcalEt015", "Ersatz Neutrino HCAL E_{T} in a 0.15 Cone;HCAL E_{T};Arbitrary Units", 100, 0., 10.); - -// TH1F* h_rechitE_Pass_EE = new TH1F("h_rechitE", "", 100, , ); // What is this - TH1F* h_ErNu_E_Pass_EE = new TH1F("ErNu_E", "Ersatz Neutrino Energy;Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rawE_Pass_EE = new TH1F("ErNu_rawE", "Ersatz Neutrino Raw Energy;Raw Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_unclusE_Pass_EE = new TH1F("ErNu_unclusE", "Ersatz Neutrino Unclustered ECAL Energy;Unclustered Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fEtaCorrE_Pass_EE = new TH1F("ErNu_fEtaCorrE", "Ersatz Neutrino fEta Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fBremCorrE_Pass_EE = new TH1F("ErNu_fBremCorrE", "Ersatz Neutrino fBrem Corrected Energy;Correcteed Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_AddCorrE_Pass_EE = new TH1F("ErNu_AddCorrE", "Ersatz Neutrino Add Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1I* h_ErNu_nClusters_Pass_EE = new TH1I("ErNu_nClusters", "Ersatz Neutrino Number of Clusters;Number of Clusters;Arbitrary Units", 10, 0, 10); - -// TH1F* h_ErsatzV1MEt_Pass_EE = new TH1F("ErsatzV1MEt", "ErsatzV1MEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1Mt_Pass_EE = new TH1F("ErsatzV1Mt", "ErsatzV1Mt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1MEtphi_Pass_EE = new TH1F("ErsatzV1MEtPhi", "ErsatzV1MEtPhi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEt_Pass_EE = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMt_Pass_EE = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEtphi_Pass_EE = new TH1F("ErsatzV1aMEtphi", "ErsatzV1aMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEt_Pass_EE = new TH1F("ErsatzV1bMEt", "ErsatzV1bMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMt_Pass_EE = new TH1F("ErsatzV1bMt", "ErsatzV1bMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEtphi_Pass_EE = new TH1F("ErsatzV1bMEtphi", "ErsatzV1bMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEt_Pass_EE = new TH1F("ErsatzV1cMEt", "ErsatzV1cMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMt_Pass_EE = new TH1F("ErsatzV1cMt", "ErsatzV1cMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEtphi_Pass_EE = new TH1F("ErsatzV1cMEtphi", "ErsatzV1cMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEt_Pass_EE = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2Mt_Pass_EE = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEtphi_Pass_EE = new TH1F("ErsatzV2MEtphi", "ErsatzV2MEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_RecoCaloMEt_Pass_EE = new TH1F("RecoCaloMEt", "Calometric #slashE_{T};#slashE_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1Mesc_Pass_EE = new TH1F("ErsatzV1Mesc", "Invariant Mass;Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_ErsatzV1rescMesc_Pass_EE = new TH1F("ErsatzV1rescMesc", "Rescaled Invariant Mass;Rescaled Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - - TH1F* h_McZ_M_Pass_EE = new TH1F("McZ_M", "Monte Carlo Z Mass;Mass / GeV; Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_rescM_Pass_EE = new TH1F("McZ_rescM", "Monte Carlo Rescaled Z Mass;Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_Pt_Pass_EE = new TH1F("McZ_Pt", "Monte Carlo Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_rescPt_Pass_EE = new TH1F("McZ_rescPt", "Monte Carlo Rescaled Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_Eta_Pass_EE = new TH1F("McZ_eta", "Monte Carlo Z #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McZ_rescEta_Pass_EE = new TH1F("McZ_rescEta", "Monte Carlo Rescaled Z #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McZ_Phi_Pass_EE = new TH1F("McZ_phi", "Monte Carlo Z #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McZ_rescPhi_Pass_EE = new TH1F("McZ_rescPhi", "Monte Carlo Z Rescaled #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElec_Pt_Pass_EE = new TH1F("McElec_Pt", "Monte Carlo Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_rescPt_Pass_EE = new TH1F("McElec_rescPt", "Monte Carlo Rescaled Electron p_{T};Rescaled p_{T};Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_Eta_Pass_EE = new TH1F("McElec_Eta", "Monte Carlo Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McElec_rescEta_Pass_EE = new TH1F("McElec_rescEta", "Monte Carlo Rescaled Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McElec_Phi_Pass_EE = new TH1F("McElec_Phi", "Monte Carlo Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McElec_rescPhi_Pass_EE = new TH1F("McElec_rescPhi", "Monte Carlo Rescaled Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McErNu_Pt_Pass_EE = new TH1F("McErNu_Pt", "Monte Carlo Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_rescPt_Pass_EE = new TH1F("McErNu_rescPt", "Monte Carlo Rescaled Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_Eta_Pass_EE = new TH1F("McErNu_Eta", "Monte Carlo Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_rescEta_Pass_EE = new TH1F("McErNu_rescEta", "Monte Carlo Rescaled Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_Phi_Pass_EE = new TH1F("McErNu_Phi", "Monte Carlo Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McErNu_rescPhi_Pass_EE = new TH1F("McErNu_rescPhi", "Monte Carlo Rescaled Ersatz Neutrino #phi;Rescaled #phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElecErNu_dPhi_Pass_EE = new TH1F("McElecErNu_dPhi", "Monte Carlo #Delta#phi between Electrons;#Delta#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McElecErNu_dR_Pass_EE = new TH1F("McElecErNu_dR", "Monte Carlo #DeltaR between Electrons;MC Match;Arbitrary Units", 100, 0., 3.1416); - TH1I* h_McMatch_Pass_EE = new TH1I("McMatch", "Monte Carlo Match of Ersatz Neutrino to an Electron;MC Match;Arbitrary Units", 2, 0, 2); - - cout << "Declared histograms h_xxx_Pass_EE" << endl; -// TH1F* h_EtaInt_Pass_EE = new TH1F("EtaInt", "", 345, 0, 345); -// TH1F* h_EtaWeights_Pass_EE = new TH1F("EtaWeights", "", 40, 0., 2.); - - TString OutFileName_Fail_EB = "/tmp/rnandi/"+InFileName+"_Selected_Fail_EB"; - TFile *outfile_fail_EB = TFile::Open(OutFileName_Fail_EB+".root", "recreate"); - cout << "Opened outfile_Fail_EB" << endl; - - TH1I* h_nTags_Fail_EB = new TH1I("nTags", "Number of Tags;Number of Tags;Arbitrary Units", 4, 0, 4); - TH1I* h_nErNu_Fail_EB = new TH1I("nErNu", "Number of Ersatz Neutrinos;Number of Ersatz Neutrinos;Arbitrary Units", 2, 0, 2); - TH1I* h_nMcElecs_Zmum_Fail_EB = new TH1I("nMcElecs_Zmum", "Number of Monte Carlo Electrons with Z as Mother;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nMcElecs_Final_Fail_EB = new TH1I("nMcElecs_Final", "Number of Final State Monte Carlo Electrons;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nRecHitsInStrip_Fail_EB = new TH1I("nRecHitsInStrip", ";;Arbitrary Units", 20, 0, 20); - TH1I* h_nRecHitsInCone_Fail_EB = new TH1I("nRecHitsInCone", ";;Arbitrary Units", 20, 0, 20); - - TH1F* h_Z_pt_Fail_EB = new TH1F("Z_pt", "Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - - TH1F* h_elec_q_Fail_EB = new TH1F("elec_q", "Electron Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_elec_pt_Fail_EB = new TH1F("elec_pt", "Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_eta_Fail_EB = new TH1F("elec_eta", "Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_elec_phi_Fail_EB = new TH1F("elec_phi", "Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_elec_sIhIh_Fail_EB = new TH1F("elec_sIhIh", "Electron #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitary Units", 100, 0., 0.05); - TH1F* h_elec_dEta_Fail_EB = new TH1F("elec_dEta", "Electron #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); - TH1F* h_elec_dPhi_Fail_EB = new TH1F("elec_dPhi", "Electron #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_elec_TrkIso_Fail_EB = new TH1F("elec_TrkIso", "Electon Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_EcalIso_Fail_EB = new TH1F("elec_EcalIso", "Electron ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_HcalIso_Fail_EB = new TH1F("elec_HcalIso", "Electron HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_rescPt_Fail_EB = new TH1F("elec_rescPt", "Electron Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_rescEta_Fail_EB = new TH1F("elec_rescEta", "Electron Rescaled #eta;Rescaled #eta;Arbitrary Units", 100, -3., 3.); - -// TH1F* h_ErNu_q_Fail_EB = new TH1F("h_ErNu_q", "Ersatz Neutrino Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_ErNu_pt_Fail_EB = new TH1F("ErNu_pt", "Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_eta_Fail_EB = new TH1F("ErNu_eta", "Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_ErNu_phi_Fail_EB = new TH1F("ErNu_phi", "Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_ErNu_rescPt_Fail_EB = new TH1F("ErNu_rescPt", "Ersatz Neutrino Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rescEta_Fail_EB = new TH1F("ErNu_rescEta", "Ersatz Neutrino Rescaled #eta;Rescaled #eta", 100, -3., 3.); - - TH1F* h_ErNu_sIhIh_Fail_EB = new TH1F("ErNu_sIhIh", "Ersatz Neutrino #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitrary Units", 100, 0., 0.05); -// TH1F* h_ErNu_dEta_Fail_EB = new TH1F("ErNu_dEta", "Ersatz Neutrino #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); -// TH1F* h_ErNu_dPhi_Fail_EB = new TH1F("ErNu_dPhi", "Ersatz Neutrino #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_ErNu_TrkIso_Fail_EB = new TH1F("ErNu_TrkIso", "Ersatz Neutrino Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_EcalIso_Fail_EB = new TH1F("ErNu_EcalIso", "Ersatz Neutrino ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_HcalIso_Fail_EB = new TH1F("ErNu_HcalIso", "Ersatz Neutrino HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_e1x5Max_Fail_EB = new TH1F("ErNu_e1x5Max", "Ersatz Neutrino Maximum Energy in 1x5 Array of Crystals;e1x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e2x5Max_Fail_EB = new TH1F("ErNu_e2x5Max", "Ersatz Neutrino Maximum Energy in 2x5 Array of Crystals;e2x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e5x5_Fail_EB = new TH1F("ErNu_e5x5", "Ersatz Neutrino Energy in 5x5 Array of Crystals;e5x5 / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_HcalE015_Fail_EB = new TH1F("ErNu_HcalE015", "Ersatz Neutrino HCAL Energy in a 0.15 Cone;HCAL Energy / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_HcalEt015_Fail_EB = new TH1F("ErNu_HcalEt015", "Ersatz Neutrino HCAL E_{T} in a 0.15 Cone;HCAL E_{T};Arbitrary Units", 100, 0., 10.); - -// TH1F* h_rechitE_Fail_EB = new TH1F("h_rechitE", "", 100, , ); // What is this - TH1F* h_ErNu_E_Fail_EB = new TH1F("ErNu_E", "Ersatz Neutrino Energy;Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rawE_Fail_EB = new TH1F("ErNu_rawE", "Ersatz Neutrino Raw Energy;Raw Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_unclusE_Fail_EB = new TH1F("ErNu_unclusE", "Ersatz Neutrino Unclustered ECAL Energy;Unclustered Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fEtaCorrE_Fail_EB = new TH1F("ErNu_fEtaCorrE", "Ersatz Neutrino fEta Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fBremCorrE_Fail_EB = new TH1F("ErNu_fBremCorrE", "Ersatz Neutrino fBrem Corrected Energy;Correcteed Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_AddCorrE_Fail_EB = new TH1F("ErNu_AddCorrE", "Ersatz Neutrino Add Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1I* h_ErNu_nClusters_Fail_EB = new TH1I("ErNu_nClusters", "Ersatz Neutrino Number of Clusters;Number of Clusters;Arbitrary Units", 10, 0, 10); - -// TH1F* h_ErsatzV1MEt_Fail_EB = new TH1F("ErsatzV1MEt", "ErsatzV1MEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1Mt_Fail_EB = new TH1F("ErsatzV1Mt", "ErsatzV1Mt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1MEtphi_Fail_EB = new TH1F("ErsatzV1MEtPhi", "ErsatzV1MEtPhi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEt_Fail_EB = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMt_Fail_EB = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEtphi_Fail_EB = new TH1F("ErsatzV1aMEtphi", "ErsatzV1aMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEt_Fail_EB = new TH1F("ErsatzV1bMEt", "ErsatzV1bMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMt_Fail_EB = new TH1F("ErsatzV1bMt", "ErsatzV1bMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEtphi_Fail_EB = new TH1F("ErsatzV1bMEtphi", "ErsatzV1bMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEt_Fail_EB = new TH1F("ErsatzV1cMEt", "ErsatzV1cMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMt_Fail_EB = new TH1F("ErsatzV1cMt", "ErsatzV1cMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEtphi_Fail_EB = new TH1F("ErsatzV1cMEtphi", "ErsatzV1cMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEt_Fail_EB = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2Mt_Fail_EB = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEtphi_Fail_EB = new TH1F("ErsatzV2MEtphi", "ErsatzV2MEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_RecoCaloMEt_Fail_EB = new TH1F("RecoCaloMEt", "Calometric #slashE_{T};#slashE_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1Mesc_Fail_EB = new TH1F("ErsatzV1Mesc", "Invariant Mass;Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_ErsatzV1rescMesc_Fail_EB = new TH1F("ErsatzV1rescMesc", "Rescaled Invariant Mass;Rescaled Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - - TH1F* h_McZ_M_Fail_EB = new TH1F("McZ_M", "Monte Carlo Z Mass;Mass / GeV; Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_rescM_Fail_EB = new TH1F("McZ_rescM", "Monte Carlo Rescaled Z Mass;Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_Pt_Fail_EB = new TH1F("McZ_Pt", "Monte Carlo Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_rescPt_Fail_EB = new TH1F("McZ_rescPt", "Monte Carlo Rescaled Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_Eta_Fail_EB = new TH1F("McZ_eta", "Monte Carlo Z #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McZ_rescEta_Fail_EB = new TH1F("McZ_rescEta", "Monte Carlo Rescaled Z #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McZ_Phi_Fail_EB = new TH1F("McZ_phi", "Monte Carlo Z #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McZ_rescPhi_Fail_EB = new TH1F("McZ_rescPhi", "Monte Carlo Z Rescaled #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElec_Pt_Fail_EB = new TH1F("McElec_Pt", "Monte Carlo Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_rescPt_Fail_EB = new TH1F("McElec_rescPt", "Monte Carlo Rescaled Electron p_{T};Rescaled p_{T};Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_Eta_Fail_EB = new TH1F("McElec_Eta", "Monte Carlo Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McElec_rescEta_Fail_EB = new TH1F("McElec_rescEta", "Monte Carlo Rescaled Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McElec_Phi_Fail_EB = new TH1F("McElec_Phi", "Monte Carlo Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McElec_rescPhi_Fail_EB = new TH1F("McElec_rescPhi", "Monte Carlo Rescaled Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McErNu_Pt_Fail_EB = new TH1F("McErNu_Pt", "Monte Carlo Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_rescPt_Fail_EB = new TH1F("McErNu_rescPt", "Monte Carlo Rescaled Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_Eta_Fail_EB = new TH1F("McErNu_Eta", "Monte Carlo Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_rescEta_Fail_EB = new TH1F("McErNu_rescEta", "Monte Carlo Rescaled Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_Phi_Fail_EB = new TH1F("McErNu_Phi", "Monte Carlo Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McErNu_rescPhi_Fail_EB = new TH1F("McErNu_rescPhi", "Monte Carlo Rescaled Ersatz Neutrino #phi;Rescaled #phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElecErNu_dPhi_Fail_EB = new TH1F("McElecErNu_dPhi", "Monte Carlo #Delta#phi between Electrons;#Delta#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McElecErNu_dR_Fail_EB = new TH1F("McElecErNu_dR", "Monte Carlo #DeltaR between Electrons;MC Match;Arbitrary Units", 100, 0., 3.1416); - TH1I* h_McMatch_Fail_EB = new TH1I("McMatch", "Monte Carlo Match of Ersatz Neutrino to an Electron;MC Match;Arbitrary Units", 2, 0, 2); - -// TH1F* h_EtaInt_Fail_EB = new TH1F("EtaInt", "", 345, 0, 345); -// TH1F* h_EtaWeights_Fail_EB = new TH1F("EtaWeights", "", 40, 0., 2.); - cout << "Declared histograms h_xxx_Fail_EB" << endl; - - TString OutFileName_Fail_EE = "/tmp/rnandi/"+InFileName+"_Selected_Fail_EE"; - TFile *outfile_fail_EE = TFile::Open(OutFileName_Fail_EE+".root", "recreate"); - cout << "Opened outfile_Fail_EE" << endl; - - TH1I* h_nTags_Fail_EE = new TH1I("nTags", "Number of Tags;Number of Tags;Arbitrary Units", 4, 0, 4); - TH1I* h_nErNu_Fail_EE = new TH1I("nErNu", "Number of Ersatz Neutrinos;Number of Ersatz Neutrinos;Arbitrary Units", 2, 0, 2); - TH1I* h_nMcElecs_Zmum_Fail_EE = new TH1I("nMcElecs_Zmum", "Number of Monte Carlo Electrons with Z as Mother;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nMcElecs_Final_Fail_EE = new TH1I("nMcElecs_Final", "Number of Final State Monte Carlo Electrons;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nRecHitsInStrip_Fail_EE = new TH1I("nRecHitsInStrip", ";;Arbitrary Units", 20, 0, 20); - TH1I* h_nRecHitsInCone_Fail_EE = new TH1I("nRecHitsInCone", ";;Arbitrary Units", 20, 0, 20); - - TH1F* h_Z_pt_Fail_EE = new TH1F("Z_pt", "Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - - TH1F* h_elec_q_Fail_EE = new TH1F("elec_q", "Electron Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_elec_pt_Fail_EE = new TH1F("elec_pt", "Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_eta_Fail_EE = new TH1F("elec_eta", "Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_elec_phi_Fail_EE = new TH1F("elec_phi", "Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_elec_sIhIh_Fail_EE = new TH1F("elec_sIhIh", "Electron #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitary Units", 100, 0., 0.05); - TH1F* h_elec_dEta_Fail_EE = new TH1F("elec_dEta", "Electron #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); - TH1F* h_elec_dPhi_Fail_EE = new TH1F("elec_dPhi", "Electron #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_elec_TrkIso_Fail_EE = new TH1F("elec_TrkIso", "Electon Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_EcalIso_Fail_EE = new TH1F("elec_EcalIso", "Electron ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_HcalIso_Fail_EE = new TH1F("elec_HcalIso", "Electron HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_rescPt_Fail_EE = new TH1F("elec_rescPt", "Electron Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_rescEta_Fail_EE = new TH1F("elec_rescEta", "Electron Rescaled #eta;Rescaled #eta;Arbitrary Units", 100, -3., 3.); - -// TH1F* h_ErNu_q_Fail_EE = new TH1F("h_ErNu_q", "Ersatz Neutrino Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_ErNu_pt_Fail_EE = new TH1F("ErNu_pt", "Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_eta_Fail_EE = new TH1F("ErNu_eta", "Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_ErNu_phi_Fail_EE = new TH1F("ErNu_phi", "Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_ErNu_rescPt_Fail_EE = new TH1F("ErNu_rescPt", "Ersatz Neutrino Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rescEta_Fail_EE = new TH1F("ErNu_rescEta", "Ersatz Neutrino Rescaled #eta;Rescaled #eta", 100, -3., 3.); - - TH1F* h_ErNu_sIhIh_Fail_EE = new TH1F("ErNu_sIhIh", "Ersatz Neutrino #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitrary Units", 100, 0., 0.05); -// TH1F* h_ErNu_dEta_Fail_EE = new TH1F("ErNu_dEta", "Ersatz Neutrino #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); -// TH1F* h_ErNu_dPhi_Fail_EE = new TH1F("ErNu_dPhi", "Ersatz Neutrino #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_ErNu_TrkIso_Fail_EE = new TH1F("ErNu_TrkIso", "Ersatz Neutrino Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_EcalIso_Fail_EE = new TH1F("ErNu_EcalIso", "Ersatz Neutrino ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_HcalIso_Fail_EE = new TH1F("ErNu_HcalIso", "Ersatz Neutrino HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_e1x5Max_Fail_EE = new TH1F("ErNu_e1x5Max", "Ersatz Neutrino Maximum Energy in 1x5 Array of Crystals;e1x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e2x5Max_Fail_EE = new TH1F("ErNu_e2x5Max", "Ersatz Neutrino Maximum Energy in 2x5 Array of Crystals;e2x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e5x5_Fail_EE = new TH1F("ErNu_e5x5", "Ersatz Neutrino Energy in 5x5 Array of Crystals;e5x5 / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_HcalE015_Fail_EE = new TH1F("ErNu_HcalE015", "Ersatz Neutrino HCAL Energy in a 0.15 Cone;HCAL Energy / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_HcalEt015_Fail_EE = new TH1F("ErNu_HcalEt015", "Ersatz Neutrino HCAL E_{T} in a 0.15 Cone;HCAL E_{T};Arbitrary Units", 100, 0., 10.); - -// TH1F* h_rechitE_Fail_EE = new TH1F("h_rechitE", "", 100, , ); // What is this - TH1F* h_ErNu_E_Fail_EE = new TH1F("ErNu_E", "Ersatz Neutrino Energy;Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rawE_Fail_EE = new TH1F("ErNu_rawE", "Ersatz Neutrino Raw Energy;Raw Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_unclusE_Fail_EE = new TH1F("ErNu_unclusE", "Ersatz Neutrino Unclustered ECAL Energy;Unclustered Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fEtaCorrE_Fail_EE = new TH1F("ErNu_fEtaCorrE", "Ersatz Neutrino fEta Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fBremCorrE_Fail_EE = new TH1F("ErNu_fBremCorrE", "Ersatz Neutrino fBrem Corrected Energy;Correcteed Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_AddCorrE_Fail_EE = new TH1F("ErNu_AddCorrE", "Ersatz Neutrino Add Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1I* h_ErNu_nClusters_Fail_EE = new TH1I("ErNu_nClusters", "Ersatz Neutrino Number of Clusters;Number of Clusters;Arbitrary Units", 10, 0, 10); - -// TH1F* h_ErsatzV1MEt_Fail_EE = new TH1F("ErsatzV1MEt", "ErsatzV1MEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1Mt_Fail_EE = new TH1F("ErsatzV1Mt", "ErsatzV1Mt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1MEtphi_Fail_EE = new TH1F("ErsatzV1MEtPhi", "ErsatzV1MEtPhi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEt_Fail_EE = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMt_Fail_EE = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEtphi_Fail_EE = new TH1F("ErsatzV1aMEtphi", "ErsatzV1aMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEt_Fail_EE = new TH1F("ErsatzV1bMEt", "ErsatzV1bMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMt_Fail_EE = new TH1F("ErsatzV1bMt", "ErsatzV1bMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEtphi_Fail_EE = new TH1F("ErsatzV1bMEtphi", "ErsatzV1bMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEt_Fail_EE = new TH1F("ErsatzV1cMEt", "ErsatzV1cMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMt_Fail_EE = new TH1F("ErsatzV1cMt", "ErsatzV1cMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEtphi_Fail_EE = new TH1F("ErsatzV1cMEtphi", "ErsatzV1cMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEt_Fail_EE = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2Mt_Fail_EE = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEtphi_Fail_EE = new TH1F("ErsatzV2MEtphi", "ErsatzV2MEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_RecoCaloMEt_Fail_EE = new TH1F("RecoCaloMEt", "Calometric #slashE_{T};#slashE_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1Mesc_Fail_EE = new TH1F("ErsatzV1Mesc", "Invariant Mass;Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_ErsatzV1rescMesc_Fail_EE = new TH1F("ErsatzV1rescMesc", "Rescaled Invariant Mass;Rescaled Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - - TH1F* h_McZ_M_Fail_EE = new TH1F("McZ_M", "Monte Carlo Z Mass;Mass / GeV; Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_rescM_Fail_EE = new TH1F("McZ_rescM", "Monte Carlo Rescaled Z Mass;Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_Pt_Fail_EE = new TH1F("McZ_Pt", "Monte Carlo Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_rescPt_Fail_EE = new TH1F("McZ_rescPt", "Monte Carlo Rescaled Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_Eta_Fail_EE = new TH1F("McZ_eta", "Monte Carlo Z #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McZ_rescEta_Fail_EE = new TH1F("McZ_rescEta", "Monte Carlo Rescaled Z #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McZ_Phi_Fail_EE = new TH1F("McZ_phi", "Monte Carlo Z #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McZ_rescPhi_Fail_EE = new TH1F("McZ_rescPhi", "Monte Carlo Z Rescaled #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElec_Pt_Fail_EE = new TH1F("McElec_Pt", "Monte Carlo Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_rescPt_Fail_EE = new TH1F("McElec_rescPt", "Monte Carlo Rescaled Electron p_{T};Rescaled p_{T};Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_Eta_Fail_EE = new TH1F("McElec_Eta", "Monte Carlo Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McElec_rescEta_Fail_EE = new TH1F("McElec_rescEta", "Monte Carlo Rescaled Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McElec_Phi_Fail_EE = new TH1F("McElec_Phi", "Monte Carlo Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McElec_rescPhi_Fail_EE = new TH1F("McElec_rescPhi", "Monte Carlo Rescaled Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McErNu_Pt_Fail_EE = new TH1F("McErNu_Pt", "Monte Carlo Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_rescPt_Fail_EE = new TH1F("McErNu_rescPt", "Monte Carlo Rescaled Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_Eta_Fail_EE = new TH1F("McErNu_Eta", "Monte Carlo Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_rescEta_Fail_EE = new TH1F("McErNu_rescEta", "Monte Carlo Rescaled Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_Phi_Fail_EE = new TH1F("McErNu_Phi", "Monte Carlo Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McErNu_rescPhi_Fail_EE = new TH1F("McErNu_rescPhi", "Monte Carlo Rescaled Ersatz Neutrino #phi;Rescaled #phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElecErNu_dPhi_Fail_EE = new TH1F("McElecErNu_dPhi", "Monte Carlo #Delta#phi between Electrons;#Delta#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McElecErNu_dR_Fail_EE = new TH1F("McElecErNu_dR", "Monte Carlo #DeltaR between Electrons;MC Match;Arbitrary Units", 100, 0., 3.1416); - TH1I* h_McMatch_Fail_EE = new TH1I("McMatch", "Monte Carlo Match of Ersatz Neutrino to an Electron;MC Match;Arbitrary Units", 2, 0, 2); - -// TH1F* h_EtaInt_Fail_EE = new TH1F("EtaInt", "", 345, 0, 345); -// TH1F* h_EtaWeights_Fail_EE = new TH1F("EtaWeights", "", 40, 0., 2.); - cout << "Declared histograms h_xxx_Fail_EE" << endl; - - //TTree *t_pass_EB = new TTree(Pass_EB, "Pass_tIso_EB"); - //TTree *t_pass_EE = new TTree(Pass_EE, "Pass_tIso_EE"); - //TTree *t_fail_EB = new TTree(Fail_EB, "Fail_tIso_EB"); - //TTree *t_fail_EE = new TTree(Fail_EB, "Fail_tIso_EE"); - //TTree *t_pass_trackiso_EB = t->CloneTree(0); - //TTree *t_pass_trackiso_EE = t->CloneTree(0); - //TTree *t_fail_trackiso_EE = t->CloneTree(0); - //TTree *t_fail_trackiso_EE = t->CloneTree(0); - - //TString OutFileNameFail = "/tmp/rnandi/"+InFileName+"_Selected_Fail"; - //TFile *outfile_fail = TFile::Open(OutFileNameFail+".root", "recreate"); - - //TTree *t_fail_trackiso = t->CloneTree(0); - //t_fail_trackiso->SetTitle("Fail_tIso"); - - TFile *file = TFile::Open("/tmp/rnandi/"+InFileName+".root"); - - TTree *t = (TTree*) file->Get("ErsatzMEt/ErsatzMEt"); - std::cout<< "Got Tree " << t->GetTitle() << std::endl; -/* - int nErNu; - double tag_pt[4], tag_eta[4], tag_phi[4], probe_pt[4], probe_eta[4], probe_phi[4]; - double ErsatzV1bMEt[4]; - double elec_trckIso[4], elec_ECALIso[4], elec_HCALIso[4]; - double elec_sigIhIh[4], elec_dPhi[4], elec_dEta[4]; - double tag_rescPt[4], mesc[4]; - double nu_e1x5[4], nu_e2x5[4], nu_e5x5[4], nu_sigIhIh[4]; - double nu_HCALEt[4], nu_HCAL[4], nu_trckIso[4]; - double caloMEt; - int nu_elec; -*/ - cout << "Setting up branches." << endl; - - TBranch* bNum_Tags = t->GetBranch("nTags"); - bNum_Tags->SetAddress(&nTags); - TBranch* bNum_ErNu = t->GetBranch("nProbes"); - bNum_ErNu->SetAddress(&nErNu); - TBranch* bNum_McElecs_Zmum = t->GetBranch("McElec_nZmum"); - bNum_McElecs_Zmum->SetAddress(&nMcElecs_Zmum); - TBranch* bNum_McElecs_Final = t->GetBranch("McElec_nFinal"); - bNum_McElecs_Final->SetAddress(&nMcElecs_Final); - TBranch* bNum_RecHitsInStrip = t->GetBranch("nRecHitsInStrip"); - bNum_RecHitsInStrip->SetAddress(&nRecHitsInStrip); - TBranch* bNum_RecHitsInCone = t->GetBranch("nRecHitsInCone"); - bNum_RecHitsInCone->SetAddress(&nRecHitsInCone); - - //Z properties - TBranch* bZ_pt = t->GetBranch("Z_pt"); - bZ_pt->SetAddress(&Z_pt); - - //Selected electron properties - TBranch* bTag_q = t->GetBranch("tag_q"); - bTag_q->SetAddress(&elec_q); - TBranch* bTag_pt = t->GetBranch("tag_pt"); - bTag_pt->SetAddress(&elec_pt); - TBranch* bTag_eta = t->GetBranch("tag_eta"); - bTag_eta->SetAddress(&elec_eta); - TBranch* bTag_phi = t->GetBranch("tag_phi"); - bTag_phi->SetAddress(&elec_phi); - TBranch* bTag_rescPt = t->GetBranch("tag_rescPt"); - bTag_rescPt->SetAddress(&elec_rescPt); - TBranch* bTag_rescEta = t->GetBranch("tag_rescEta"); - bTag_rescEta->SetAddress(&elec_rescEta); -// TBranch* bTag_rescPhi = t->GetBranch("tag_rescPhi"); -// bTag_rescPhi->SetAddress(&elec_rescPhi); - - TBranch* bTag_sIhIh = t->GetBranch("tag_sIhIh"); - bTag_sIhIh->SetAddress(&elec_sIhIh); - TBranch* bTag_dPhi = t->GetBranch("tag_dPhiIn"); - bTag_dPhi->SetAddress(&elec_dPhi); - TBranch* bTag_dEta = t->GetBranch("tag_dEtaIn"); - bTag_dEta->SetAddress(&elec_dEta); - TBranch* bTag_tIso = t->GetBranch("tag_isoTrack"); - bTag_tIso->SetAddress(&elec_trkIso); - TBranch* bTag_eIso = t->GetBranch("tag_isoEcal"); - bTag_eIso->SetAddress(&elec_EcalIso); - TBranch* bTag_hIso = t->GetBranch("tag_isoHcal"); - bTag_hIso->SetAddress(&elec_HcalIso); - - //ersatz neutrino properties -// TBranch* bProbe_q = t->GetBranch("probe_q"); -// bProbe_q->SetAddress(&probe_q); - TBranch* bProbe_pt = t->GetBranch("probe_pt"); - bProbe_pt->SetAddress(&probe_pt); - TBranch* bProbe_eta = t->GetBranch("probe_eta"); - bProbe_eta->SetAddress(&probe_eta); - TBranch* bProbe_phi = t->GetBranch("probe_phi"); - bProbe_phi->SetAddress(&probe_phi); - TBranch* bProbe_rescPt = t->GetBranch("probe_rescPt"); - bProbe_rescPt->SetAddress(&probe_rescPt); - TBranch* bProbe_rescEta = t->GetBranch("probe_rescEta"); - bProbe_rescEta->SetAddress(&probe_rescEta); -// TBranch* bProbe_rescPhi = t->GetBranch("probe_rescPhi"); -// bProbe_rescPhi->SetAddress(&probe_rescPhi); - TBranch* bProbe_trckIso = t->GetBranch("probe_isoTrack"); - bProbe_trckIso->SetAddress(&ernu_trkIso); -// TBranch* bProbe_ECALIso = t->GetBranch("probe_isoECAL"); -// bProbe_ECALIso->SetAddress(&ernu_ECALIso); -// TBranch* bProbe_HCALIso = t->GetBranch("probe_isoHCAL"); -// bProbe_HCALIso->SetAddress(&ernu_HCALIso); - TBranch* bProbe_sIhIh = t->GetBranch("probe_sIhIh"); - bProbe_sIhIh->SetAddress(&ernu_sIhIh); -// TBranch* bProbe_DeltaEta = t->GetBranch("probe_DeltaEta"); -// bProbe_DeltaEta->SetAddress(&ernu_DeltaEta); -// TBranch* bProbe_DeltaPhiIso = t->GetBranch("probe_DeltaPhi"); -// bProbe_DeltaPhi->SetAddress(&ernu_DeltaPhi); - TBranch* bProbe_e1x5 = t->GetBranch("probe_e1x5Max"); - bProbe_e1x5->SetAddress(&ernu_e1x5); - TBranch* bProbe_e2x5 = t->GetBranch("probe_e2x5Max"); - bProbe_e2x5->SetAddress(&ernu_e2x5); - TBranch* bProbe_e5x5 = t->GetBranch("probe_e5x5"); - bProbe_e5x5->SetAddress(&ernu_e5x5); - TBranch* bProbe_HcalE015 = t->GetBranch("probe_HcalE015"); - bProbe_HcalE015->SetAddress(&ernu_HcalE015); - TBranch* bProbe_HcalEt015 = t->GetBranch("probe_HcalEt015"); - bProbe_HcalEt015->SetAddress(&ernu_HcalEt015); - - //Energy Correction results - TBranch* bProbe_E = t->GetBranch("probe_E"); - bProbe_E->SetAddress(&ernu_E); - TBranch* bProbe_rawE = t->GetBranch("probe_rawE"); - bProbe_rawE->SetAddress(&ernu_rawE); - TBranch* bProbe_unclusE = t->GetBranch("probe_UnclusEcalE"); - bProbe_unclusE->SetAddress(&ernu_unclusE); - TBranch* bProbe_fEtaCorrE = t->GetBranch("probe_fEtaCorrE"); - bProbe_fEtaCorrE->SetAddress(&ernu_fEtaCorrE); - TBranch* bProbe_fBremCorrE = t->GetBranch("probe_fBremCorrE"); - bProbe_fBremCorrE->SetAddress(&ernu_fBremCorrE); - TBranch* bProbe_AddCorrE = t->GetBranch("probe_EAdd"); - bProbe_AddCorrE->SetAddress(&ernu_AddCorrE); - TBranch* bProbe_d_MCE_SCE = t->GetBranch("probe_d_MCE_SCE"); - bProbe_d_MCE_SCE->SetAddress(&ernu_d_McE_ScE); - TBranch* bProbe_nClus = t->GetBranch("probe_nClus"); - bProbe_nClus->SetAddress(&ernu_nClusters); - - //Ersatz MEt results - TBranch* bErsatzV1_MEt = t->GetBranch("ErsatzV1CaloMEt"); - bErsatzV1_MEt->SetAddress(&ErsatzV1MEt); - TBranch* bErsatzV1_Mt = t->GetBranch("ErsatzV1CaloMt"); - bErsatzV1_Mt->SetAddress(&ErsatzV1Mt); - TBranch* bErsatzV1_MEtphi = t->GetBranch("ErsatzV1CaloMEtPhi"); - bErsatzV1_MEtphi->SetAddress(&ErsatzV1MEtphi); - - TBranch* bErsatzV1a_MEt = t->GetBranch("ErsatzV1aCaloMEt"); - bErsatzV1a_MEt->SetAddress(&ErsatzV1aMEt); - TBranch* bErsatzV1a_Mt = t->GetBranch("ErsatzV1aCaloMt"); - bErsatzV1a_Mt->SetAddress(&ErsatzV1aMt); - TBranch* bErsatzV1a_MEtphi = t->GetBranch("ErsatzV1aCaloMEtPhi"); - bErsatzV1a_MEtphi->SetAddress(&ErsatzV1aMEtphi); - - TBranch* bErsatzV1b_MEt = t->GetBranch("ErsatzV1bCaloMEt"); - bErsatzV1b_MEt->SetAddress(&ErsatzV1bMEt); - TBranch* bErsatzV1b_Mt = t->GetBranch("ErsatzV1bCaloMt"); - bErsatzV1b_Mt->SetAddress(&ErsatzV1bMt); - TBranch* bErsatzV1b_MEtphi = t->GetBranch("ErsatzV1bCaloMEtPhi"); - bErsatzV1b_MEtphi->SetAddress(&ErsatzV1bMEtphi); - - TBranch* bErsatzV1c_MEt = t->GetBranch("ErsatzV1cCaloMEt"); - bErsatzV1c_MEt->SetAddress(&ErsatzV1cMEt); - //TBranch* bErsatzV1c_Mt = t->GetBranch("ErsatzV1cCaloMt"); - //bErsatzV1c_Mt->SetAddress(&ErsatzV1cMt); - TBranch* bErsatzV1c_MEtphi = t->GetBranch("ErsatzV1cCaloMEtPhi"); - bErsatzV1c_MEtphi->SetAddress(&ErsatzV1cMEtphi); - - TBranch* bErsatzV2_MEt = t->GetBranch("ErsatzV2CaloMEt"); - bErsatzV2_MEt->SetAddress(&ErsatzV2MEt); - TBranch* bErsatzV2_Mt = t->GetBranch("ErsatzV2CaloMt"); - bErsatzV2_Mt->SetAddress(&ErsatzV2Mt); - TBranch* bErsatzV2_MEtphi = t->GetBranch("ErsatzV2CaloMEtPhi"); - bErsatzV2_MEtphi->SetAddress(&ErsatzV2MEtphi); - - TBranch* bMesc = t->GetBranch("ErsatzV1_Mesc"); - bMesc->SetAddress(&mesc); - TBranch* brescMesc = t->GetBranch("ErsatzV1_rescMesc"); - brescMesc->SetAddress(&rescMesc); - TBranch* bCaloMEt = t->GetBranch("recoCaloMEt"); - bCaloMEt->SetAddress(&caloMEt); - - TBranch* bMcZ_m = t->GetBranch("McZ_m"); - bMcZ_m->SetAddress(&McZ_m); - TBranch* bMcZ_pt = t->GetBranch("McZ_Pt"); - bMcZ_pt->SetAddress(&McZ_pt); -// TBranch* bMcZ_eta = t->GetBranch("McZ_eta"); -// bMcZ_eta->SetAddress(&McZ_eta); - TBranch* bMcZ_phi = t->GetBranch("McZ_Phi"); - bMcZ_phi->SetAddress(&McZ_phi); - TBranch* bMcZ_rescM = t->GetBranch("McZ_rescM"); - bMcZ_rescM->SetAddress(&McZ_rescM); -// TBranch* bMcZ_rescPt = t->GetBranch("McZ_rescPt"); -// bMcZ_rescPt->SetAddress(&McZ_rescPt); -// TBranch* bMcZ_rescEta = t->GetBranch("McZ_rescEta"); -// bMcZ_rescEta->SetAddress(&McZ_rescEta); -// TBranch* bMcZ_rescPhi = t->GetBranch("McZ_rescPhi"); -// bMcZ_rescPhi->SetAddress(&McZ_rescPhi); - - TBranch* bMcElec_pt = t->GetBranch("McElec_pt"); - bMcElec_pt->SetAddress(&McElec_pt); - TBranch* bMcElec_eta = t->GetBranch("McElec_eta"); - bMcElec_eta->SetAddress(&McElec_eta); -// TBranch* bMcElec_phi = t->GetBranch("McElec_phi"); -// bMcElec_phi->SetAddress(&McElec_phi); - TBranch* bMcElec_rescPt = t->GetBranch("McElec_rescPt"); - bMcElec_rescPt->SetAddress(&McElec_rescPt); - TBranch* bMcElec_rescEta = t->GetBranch("McElec_rescEta"); - bMcElec_rescEta->SetAddress(&McElec_rescEta); -// TBranch* bMcElec_rescPhi = t->GetBranch("McElec_rescPhi"); -// bMcElec_rescPhi->SetAddress(&McElec_rescPhi); - - TBranch* bMcErNu_pt = t->GetBranch("McProbe_pt"); - bMcErNu_pt->SetAddress(&McErNu_pt); - TBranch* bMcErNu_eta = t->GetBranch("McProbe_eta"); - bMcErNu_eta->SetAddress(&McErNu_eta); - TBranch* bMcErNu_phi = t->GetBranch("McProbe_phi"); - bMcErNu_phi->SetAddress(&McErNu_phi); - TBranch* bMcErNu_rescPt = t->GetBranch("McProbe_rescPt"); - bMcErNu_rescPt->SetAddress(&McErNu_rescPt); - TBranch* bMcErNu_rescEta = t->GetBranch("McProbe_rescEta"); - bMcErNu_rescEta->SetAddress(&McErNu_rescEta); - TBranch* bMcErNu_rescPhi = t->GetBranch("McProbe_rescPhi"); - bMcErNu_rescPhi->SetAddress(&McErNu_rescPhi); - - TBranch* bMcElecErNu_dPhi = t->GetBranch("McElecProbe_dPhi"); - bMcElecErNu_dPhi->SetAddress(&McElecErNu_dPhi); - TBranch* bMcElecErNu_dR = t->GetBranch("McElecProbe_dR"); - bMcElecErNu_dR->SetAddress(&McElecErNu_dR); -// TBranch* bProbe_elec = t->GetBranch("probe_elecMatch"); -// bProbe_elec->SetAddress(&ernu_McMatch); - - //TString OutFileName = "/tmp/rnandi/"+InFileName+"_Selected"; - //TFile *outfile = TFile::Open(OutFileName+".root", "recreate"); - - //TString OutFileName = "Zee_Histograms.root"; - //TFile *outfile = TFile::Open("/tmp/rnandi/Zee_Histograms.root", "recreate"); - -/* - TBranch* bNum_ErNu = t->GetBranch("nProbes"); - bNum_ErNu->SetAddress(&nErNu); - //W selected electron properties - TBranch* bTag_eta = t->GetBranch("tag_eta"); - bTag_eta->SetAddress(&tag_eta); - TBranch* bTag_pt = t->GetBranch("tag_pt"); - bTag_pt->SetAddress(&tag_pt); - TBranch* bTag_phi = t->GetBranch("tag_phi"); - bTag_phi->SetAddress(&tag_phi); - TBranch* bTag_rescPt = t->GetBranch("tag_rescPt"); - bTag_rescPt->SetAddress(&tag_rescPt); -// TBranch* = t->GetBranch(""); -// ->SetAddress(&); - TBranch* bTag_sIhIh = t->GetBranch("tag_sIhIh"); - bTag_sIhIh->SetAddress(&elec_sigIhIh); - TBranch* bTag_dPhi = t->GetBranch("tag_dPhiIn"); - bTag_dPhi->SetAddress(&elec_dPhi); - TBranch* bTag_dEta = t->GetBranch("tag_dEtaIn"); - bTag_dEta->SetAddress(&elec_dEta); - TBranch* bTag_tIso = t->GetBranch("tag_isoTrack"); - bTag_tIso->SetAddress(&elec_trckIso); - TBranch* bTag_eIso = t->GetBranch("tag_isoEcal"); - bTag_eIso->SetAddress(&elec_ECALIso); - TBranch* bTag_hIso = t->GetBranch("tag_isoHcal"); - bTag_hIso->SetAddress(&elec_HCALIso); - - //ersatz neutrino properties - TBranch* bProbe_pt = t->GetBranch("probe_pt"); - bProbe_pt->SetAddress(&probe_pt); - TBranch* bProbe_eta = t->GetBranch("probe_eta"); - bProbe_eta->SetAddress(&probe_eta); - TBranch* bProbe_phi = t->GetBranch("probe_phi"); - bProbe_phi->SetAddress(&probe_phi); - TBranch* bProbe_elec = t->GetBranch("probe_elecMatch"); - bProbe_elec->SetAddress(&nu_elec); - TBranch* bProbe_trckIso = t->GetBranch("probe_isoTrack"); - bProbe_trckIso->SetAddress(&nu_trckIso); - //TBranch* bProbe_ECALIso = t->GetBranch("probe_isoECAL"); - //bProbe_ECALIso->SetAddress(&nu_ECALIso); - //TBranch* bProbe_HCALIso = t->GetBranch("probe_isoHCAL"); - //bProbe_HCALIso->SetAddress(&nu_HCALIso); - TBranch* bProbe_sIhIh = t->GetBranch("probe_sIhIh"); - bProbe_sIhIh->SetAddress(&nu_sigIhIh); - //TBranch* bProbe_DeltaEta = t->GetBranch("probe_DeltaEta"); - //bProbe_DeltaEta->SetAddress(&nu_DeltaEta); - //TBranch* bProbe_DeltaPhiIso = t->GetBranch("probe_DeltaPhi"); - //bProbe_DeltaPhi->SetAddress(&nu_DeltaPhi); - TBranch* bProbe_e1x5 = t->GetBranch("probe_e1x5Max"); - bProbe_e1x5->SetAddress(&nu_e1x5); - TBranch* bProbe_e2x5 = t->GetBranch("probe_e2x5Max"); - bProbe_e2x5->SetAddress(&nu_e2x5); - TBranch* bProbe_e5x5 = t->GetBranch("probe_e5x5"); - bProbe_e5x5->SetAddress(&nu_e5x5); - TBranch* bProbe_HCAL = t->GetBranch("probe_HcalE015"); - bProbe_HCAL->SetAddress(&nu_HCAL); - TBranch* bProbe_HCALEt = t->GetBranch("probe_HcalEt015"); - bProbe_HCALEt->SetAddress(&nu_HCALEt); - //Ersatz MEt results - TBranch* bErsatzV1b_MEt = t->GetBranch("ErsatzV1bCaloMEt"); - bErsatzV1b_MEt->SetAddress(&ErsatzV1bMEt); - TBranch* bMesc = t->GetBranch("ErsatzV1_Mesc"); - bMesc->SetAddress(&mesc); - TBranch* bCaloMEt = t->GetBranch("recoCaloMEt"); - bCaloMEt->SetAddress(&caloMEt); -*/ - long nentries = t->GetEntries(); - std::cout <<"Processing "<< nentries << std::endl; - for(long i = 0; iGetEntry(i); - for(int j = 0; j < nErNu; ++j) - { - bool passEtCut = false; - /* - if(process == "Zee" || process == "BCtoE_30to80" || process == "BCtoE_80to170"){ - if(tag_rescPt[j] > cPt) passEtCut = true; - }else{ - if(tag_pt[j] > (91.188/80.398)*cPt) passEtCut = true; - } - */ - if(elec_rescPt[j] > cPt) passEtCut = true; - if(passEtCut) - { - if(fabs(mesc[j]-91.1876) < 21.1876) - { - bool pass_e_cuts = false; - bool inBarrel = false; - double cTrackiso; - if(fabs(elec_eta[j])<1.4442) - { - pass_e_cuts = (elec_EcalIso[j] < cECALiso_EB && elec_HcalIso[j] < cHCALiso_EB - && elec_sIhIh[j] < csIhIh_EB && elec_dPhi[j] < cDeltaPhi_EB - && elec_dEta[j] < cDeltaEta_EB); - cTrackiso = cTrackiso_EB; - inBarrel = true; - }else if(fabs(elec_eta[j] < 2.5)) - { - pass_e_cuts = (elec_EcalIso[j] < cECALiso_EE && elec_HcalIso[j] < cHCALiso_EE - && elec_sIhIh[j] < csIhIh_EE && elec_dPhi[j] < cDeltaPhi_EE - && elec_dEta[j] < cDeltaEta_EE); - cTrackiso = cTrackiso_EE; - } - if(pass_e_cuts) - { - bool pass_nu_cuts = false; - double f1x5 = ernu_e1x5[j]/ernu_e5x5[j]; - double f2x5 = ernu_e2x5[j]/ernu_e5x5[j]; - if(fabs(probe_eta[j]) < 1.4442) - { - pass_nu_cuts = (ernu_HcalE015[j] < cHCAL && (f1x5 > cf1x5 || f2x5 > cf2x5) - /*&& ernu_McMatch[j] == celecmatch*/); - }else if(fabs(probe_eta[j] < 2.5)){ - pass_nu_cuts = (ernu_HcalEt015[j] < cHCALEt && ernu_sIhIh[j] < cnusIhIh - /*&& ernu_McMatch[j] == celecmatch*/); - } - if(pass_nu_cuts) - { - if(elec_trkIso[j] < cTrackiso) - { - if(inBarrel) - { - h_nTags_Pass_EB->Fill(nTags); - h_nErNu_Pass_EB->Fill(nErNu); - h_nMcElecs_Zmum_Pass_EB->Fill(nMcElecs_Zmum); - h_nMcElecs_Final_Pass_EB->Fill(nMcElecs_Final); - h_RecoCaloMEt_Pass_EB->Fill(caloMEt); - - h_nRecHitsInStrip_Pass_EB->Fill(nRecHitsInStrip[j]); - h_nRecHitsInCone_Pass_EB->Fill(nRecHitsInCone[j]); - - h_Z_pt_Pass_EB->Fill(Z_pt[j]); - - h_elec_q_Pass_EB->Fill(elec_q[j]); - h_elec_pt_Pass_EB->Fill(elec_pt[j]); - h_elec_eta_Pass_EB->Fill(elec_eta[j]); - h_elec_phi_Pass_EB->Fill(elec_phi[j]); - h_elec_sIhIh_Pass_EB->Fill(elec_sIhIh[j]); - h_elec_dPhi_Pass_EB->Fill(elec_dPhi[j]); - h_elec_dEta_Pass_EB->Fill(elec_dEta[j]); - h_elec_TrkIso_Pass_EB->Fill(elec_trkIso[j]); - h_elec_EcalIso_Pass_EB->Fill(elec_EcalIso[j]); - h_elec_HcalIso_Pass_EB->Fill(elec_HcalIso[j]); - h_elec_rescPt_Pass_EB->Fill(elec_rescPt[j]); - h_elec_rescEta_Pass_EB->Fill(elec_rescEta[j]); - -// h_ErNu_q_Pass_EB->Fill(probe_q[j]); - h_ErNu_pt_Pass_EB->Fill(probe_pt[j]); - h_ErNu_eta_Pass_EB->Fill(probe_eta[j]); - h_ErNu_phi_Pass_EB->Fill(probe_phi[j]); - h_ErNu_rescPt_Pass_EB->Fill(probe_rescPt[j]); - h_ErNu_rescEta_Pass_EB->Fill(probe_rescEta[j]); - - h_ErNu_sIhIh_Pass_EB->Fill(ernu_sIhIh[j]); -// h_ErNu_dPhi_Pass_EB->Fill(ernu_dPhi[j]); -// h_ErNu_dEta_Pass_EB->Fill(ernu_dEta[j]); - h_ErNu_TrkIso_Pass_EB->Fill(ernu_trkIso[j]); -// h_ErNu_EcalIso_Pass_EB->Fill(ernu_EcalIso[j]); -// h_ErNu_HcalIso_Pass_EB->Fill(ernu_HcalIso[j]); - h_ErNu_e1x5Max_Pass_EB->Fill(ernu_e1x5[j]); - h_ErNu_e2x5Max_Pass_EB->Fill(ernu_e2x5[j]); - h_ErNu_e5x5_Pass_EB->Fill(ernu_e5x5[j]); - h_ErNu_HcalE015_Pass_EB->Fill(ernu_HcalE015[j]); - h_ErNu_HcalEt015_Pass_EB->Fill(ernu_HcalEt015[j]); - - h_ErNu_E_Pass_EB->Fill(ernu_E[j]); - h_ErNu_rawE_Pass_EB->Fill(ernu_rawE[j]); - h_ErNu_unclusE_Pass_EB->Fill(ernu_unclusE[j]); - h_ErNu_fEtaCorrE_Pass_EB->Fill(ernu_fEtaCorrE[j]); - h_ErNu_fBremCorrE_Pass_EB->Fill(ernu_fBremCorrE[j]); - h_ErNu_AddCorrE_Pass_EB->Fill(ernu_AddCorrE[j]); - h_ErNu_nClusters_Pass_EB->Fill(ernu_nClusters[j]); - -// h_ErsatzV1MEt_Pass_EB->Fill(ErsatzV1MEt[j]); -// h_ErsatzV1Mt_Pass_EB->Fill(ErsatzV1Mt[j]); -// h_ErsatzV1MEtphi_Pass_EB->Fill(ErsatzV1MEtphi[j]); -// h_ErsatzV1aMEt_Pass_EB->Fill(ErsatzV1aMEt[j]); -// h_ErsatzV1aMt_Pass_EB->Fill(ErsatzV1aMt[j]); -// h_ErsatzV1aMEtphi_Pass_EB->Fill(ErsatzV1aMEtphi[j]); - h_ErsatzV1bMEt_Pass_EB->Fill(ErsatzV1bMEt[j]); - h_ErsatzV1bMt_Pass_EB->Fill(ErsatzV1bMt[j]); - h_ErsatzV1bMEtphi_Pass_EB->Fill(ErsatzV1bMEtphi[j]); -// h_ErsatzV1cMEt_Pass_EB->Fill(ErsatzV1cMEt[j]); -// h_ErsatzV1cMt_Pass_EB->Fill(ErsatzV1cMt[j]); -// h_ErsatzV1cMEtphi_Pass_EB->Fill(ErsatzV1cMEtphi[j]); -// h_ErsatzV2MEt_Pass_EB->Fill(ErsatzV2MEt[j]); -// h_ErsatzV2Mt_Pass_EB->Fill(ErsatzV2Mt[j]); -// h_ErsatzV2MEtphi_Pass_EB->Fill(ErsatzV2MEtphi[j]); - h_ErsatzV1Mesc_Pass_EB->Fill(mesc[j]); - h_ErsatzV1rescMesc_Pass_EB->Fill(rescMesc[j]); - - h_McZ_M_Pass_EB->Fill(McZ_m[j]); - h_McZ_rescM_Pass_EB->Fill(McZ_rescM[j]); - h_McZ_Pt_Pass_EB->Fill(McZ_pt[j]); -// h_McZ_rescPt_Pass_EB->Fill(McZ_rescPt[j]); -// h_McZ_Eta_Pass_EB->Fill(McZ_eta[j]); -// h_McZ_rescEta_Pass_EB->Fill(McZ_rescEta[j]); - h_McZ_Phi_Pass_EB->Fill(McZ_phi[j]); -// h_McZ_rescPhi_Pass_EB->Fill(McZ_rescPhi[j]); - - h_McElec_Pt_Pass_EB->Fill(McElec_pt[j]); - h_McElec_rescPt_Pass_EB->Fill(McElec_rescPt[j]); - h_McElec_Eta_Pass_EB->Fill(McElec_eta[j]); - h_McElec_rescEta_Pass_EB->Fill(McElec_rescEta[j]); -// h_McElec_Phi_Pass_EB->Fill(McElec_phi[j]); -// h_McElec_rescPhi_Pass_EB->Fill(McElec_rescPhi[j]); - - h_McErNu_Pt_Pass_EB->Fill(McErNu_pt[j]); - h_McErNu_rescPt_Pass_EB->Fill(McErNu_rescPt[j]); - h_McErNu_Eta_Pass_EB->Fill(McErNu_eta[j]); - h_McErNu_rescEta_Pass_EB->Fill(McErNu_rescEta[j]); - h_McErNu_Phi_Pass_EB->Fill(McErNu_phi[j]); - h_McErNu_rescPhi_Pass_EB->Fill(McErNu_rescPhi[j]); - - h_McElecErNu_dPhi_Pass_EB->Fill(McElecErNu_dPhi[j]); - h_McElecErNu_dR_Pass_EB->Fill(McElecErNu_dR[j]); - h_McMatch_Pass_EB->Fill(ernu_McMatch[j]); - }else{ - h_nTags_Pass_EE->Fill(nTags); - h_nErNu_Pass_EE->Fill(nErNu); - h_nMcElecs_Zmum_Pass_EE->Fill(nMcElecs_Zmum); - h_nMcElecs_Final_Pass_EE->Fill(nMcElecs_Final); - h_RecoCaloMEt_Pass_EE->Fill(caloMEt); - - h_nRecHitsInStrip_Pass_EE->Fill(nRecHitsInStrip[j]); - h_nRecHitsInCone_Pass_EE->Fill(nRecHitsInCone[j]); - - h_Z_pt_Pass_EE->Fill(Z_pt[j]); - - h_elec_q_Pass_EE->Fill(elec_q[j]); - h_elec_pt_Pass_EE->Fill(elec_pt[j]); - h_elec_eta_Pass_EE->Fill(elec_eta[j]); - h_elec_phi_Pass_EE->Fill(elec_phi[j]); - h_elec_sIhIh_Pass_EE->Fill(elec_sIhIh[j]); - h_elec_dPhi_Pass_EE->Fill(elec_dPhi[j]); - h_elec_dEta_Pass_EE->Fill(elec_dEta[j]); - h_elec_TrkIso_Pass_EE->Fill(elec_trkIso[j]); - h_elec_EcalIso_Pass_EE->Fill(elec_EcalIso[j]); - h_elec_HcalIso_Pass_EE->Fill(elec_HcalIso[j]); - h_elec_rescPt_Pass_EE->Fill(elec_rescPt[j]); - h_elec_rescEta_Pass_EE->Fill(elec_rescEta[j]); - -// h_ErNu_q_Pass_EE->Fill(probe_q[j]); - h_ErNu_pt_Pass_EE->Fill(probe_pt[j]); - h_ErNu_eta_Pass_EE->Fill(probe_eta[j]); - h_ErNu_phi_Pass_EE->Fill(probe_phi[j]); - h_ErNu_rescPt_Pass_EE->Fill(probe_rescPt[j]); - h_ErNu_rescEta_Pass_EE->Fill(probe_rescEta[j]); - - h_ErNu_sIhIh_Pass_EE->Fill(ernu_sIhIh[j]); -// h_ErNu_dPhi_Pass_EE->Fill(ernu_dPhi[j]); -// h_ErNu_dEta_Pass_EE->Fill(ernu_dEta[j]); - h_ErNu_TrkIso_Pass_EE->Fill(ernu_trkIso[j]); -// h_ErNu_EcalIso_Pass_EE->Fill(ernu_EcalIso[j]); -// h_ErNu_HcalIso_Pass_EE->Fill(ernu_HcalIso[j]); - h_ErNu_e1x5Max_Pass_EE->Fill(ernu_e1x5[j]); - h_ErNu_e2x5Max_Pass_EE->Fill(ernu_e2x5[j]); - h_ErNu_e5x5_Pass_EE->Fill(ernu_e5x5[j]); - h_ErNu_HcalE015_Pass_EE->Fill(ernu_HcalE015[j]); - h_ErNu_HcalEt015_Pass_EE->Fill(ernu_HcalEt015[j]); - - h_ErNu_E_Pass_EE->Fill(ernu_E[j]); - h_ErNu_rawE_Pass_EE->Fill(ernu_rawE[j]); - h_ErNu_unclusE_Pass_EE->Fill(ernu_unclusE[j]); - h_ErNu_fEtaCorrE_Pass_EE->Fill(ernu_fEtaCorrE[j]); - h_ErNu_fBremCorrE_Pass_EE->Fill(ernu_fBremCorrE[j]); - h_ErNu_AddCorrE_Pass_EE->Fill(ernu_AddCorrE[j]); - h_ErNu_nClusters_Pass_EE->Fill(ernu_nClusters[j]); - -// h_ErsatzV1MEt_Pass_EE->Fill(ErsatzV1MEt[j]); -// h_ErsatzV1Mt_Pass_EE->Fill(ErsatzV1Mt[j]); -// h_ErsatzV1MEtphi_Pass_EE->Fill(ErsatzV1MEtphi[j]); -// h_ErsatzV1aMEt_Pass_EE->Fill(ErsatzV1aMEt[j]); -// h_ErsatzV1aMt_Pass_EE->Fill(ErsatzV1aMt[j]); -// h_ErsatzV1aMEtphi_Pass_EE->Fill(ErsatzV1aMEtphi[j]); - h_ErsatzV1bMEt_Pass_EE->Fill(ErsatzV1bMEt[j]); - h_ErsatzV1bMt_Pass_EE->Fill(ErsatzV1bMt[j]); - h_ErsatzV1bMEtphi_Pass_EE->Fill(ErsatzV1bMEtphi[j]); -// h_ErsatzV1cMEt_Pass_EE->Fill(ErsatzV1cMEt[j]); -// h_ErsatzV1cMt_Pass_EE->Fill(ErsatzV1cMt[j]); -// h_ErsatzV1cMEtphi_Pass_EE->Fill(ErsatzV1cMEtphi[j]); -// h_ErsatzV2MEt_Pass_EE->Fill(ErsatzV2MEt[j]); -// h_ErsatzV2Mt_Pass_EE->Fill(ErsatzV2Mt[j]); -// h_ErsatzV2MEtphi_Pass_EE->Fill(ErsatzV2MEtphi[j]); - h_ErsatzV1Mesc_Pass_EE->Fill(mesc[j]); - h_ErsatzV1rescMesc_Pass_EE->Fill(rescMesc[j]); - - h_McZ_M_Pass_EE->Fill(McZ_m[j]); - h_McZ_rescM_Pass_EE->Fill(McZ_rescM[j]); - h_McZ_Pt_Pass_EE->Fill(McZ_pt[j]); -// h_McZ_rescPt_Pass_EE->Fill(McZ_rescPt[j]); -// h_McZ_Eta_Pass_EE->Fill(McZ_eta[j]); -// h_McZ_rescEta_Pass_EE->Fill(McZ_rescEta[j]); - h_McZ_Phi_Pass_EE->Fill(McZ_phi[j]); -// h_McZ_rescPhi_Pass_EE->Fill(McZ_rescPhi[j]); - - h_McElec_Pt_Pass_EE->Fill(McElec_pt[j]); - h_McElec_rescPt_Pass_EE->Fill(McElec_rescPt[j]); - h_McElec_Eta_Pass_EE->Fill(McElec_eta[j]); - h_McElec_rescEta_Pass_EE->Fill(McElec_rescEta[j]); -// h_McElec_Phi_Pass_EE->Fill(McElec_phi[j]); -// h_McElec_rescPhi_Pass_EE->Fill(McElec_rescPhi[j]); - - h_McErNu_Pt_Pass_EE->Fill(McErNu_pt[j]); - h_McErNu_rescPt_Pass_EE->Fill(McErNu_rescPt[j]); - h_McErNu_Eta_Pass_EE->Fill(McErNu_eta[j]); - h_McErNu_rescEta_Pass_EE->Fill(McErNu_rescEta[j]); - h_McErNu_Phi_Pass_EE->Fill(McErNu_phi[j]); - h_McErNu_rescPhi_Pass_EE->Fill(McErNu_rescPhi[j]); - - h_McElecErNu_dPhi_Pass_EE->Fill(McElecErNu_dPhi[j]); - h_McElecErNu_dR_Pass_EE->Fill(McElecErNu_dR[j]); - h_McMatch_Pass_EE->Fill(ernu_McMatch[j]); - } - }else{ - if(inBarrel) - { - h_nTags_Fail_EB->Fill(nTags); - h_nErNu_Fail_EB->Fill(nErNu); - h_nMcElecs_Zmum_Fail_EB->Fill(nMcElecs_Zmum); - h_nMcElecs_Final_Fail_EB->Fill(nMcElecs_Final); - h_RecoCaloMEt_Fail_EB->Fill(caloMEt); - - h_nRecHitsInStrip_Fail_EB->Fill(nRecHitsInStrip[j]); - h_nRecHitsInCone_Fail_EB->Fill(nRecHitsInCone[j]); - - h_Z_pt_Fail_EB->Fill(Z_pt[j]); - - h_elec_q_Fail_EB->Fill(elec_q[j]); - h_elec_pt_Fail_EB->Fill(elec_pt[j]); - h_elec_eta_Fail_EB->Fill(elec_eta[j]); - h_elec_phi_Fail_EB->Fill(elec_phi[j]); - h_elec_sIhIh_Fail_EB->Fill(elec_sIhIh[j]); - h_elec_dPhi_Fail_EB->Fill(elec_dPhi[j]); - h_elec_dEta_Fail_EB->Fill(elec_dEta[j]); - h_elec_TrkIso_Fail_EB->Fill(elec_trkIso[j]); - h_elec_EcalIso_Fail_EB->Fill(elec_EcalIso[j]); - h_elec_HcalIso_Fail_EB->Fill(elec_HcalIso[j]); - h_elec_rescPt_Fail_EB->Fill(elec_rescPt[j]); - h_elec_rescEta_Fail_EB->Fill(elec_rescEta[j]); - -// h_ErNu_q_Fail_EB->Fill(probe_q[j]); - h_ErNu_pt_Fail_EB->Fill(probe_pt[j]); - h_ErNu_eta_Fail_EB->Fill(probe_eta[j]); - h_ErNu_phi_Fail_EB->Fill(probe_phi[j]); - h_ErNu_rescPt_Fail_EB->Fill(probe_rescPt[j]); - h_ErNu_rescEta_Fail_EB->Fill(probe_rescEta[j]); - - h_ErNu_sIhIh_Fail_EB->Fill(ernu_sIhIh[j]); -// h_ErNu_dPhi_Fail_EB->Fill(ernu_dPhi[j]); -// h_ErNu_dEta_Fail_EB->Fill(ernu_dEta[j]); - h_ErNu_TrkIso_Fail_EB->Fill(ernu_trkIso[j]); -// h_ErNu_EcalIso_Fail_EB->Fill(ernu_EcalIso[j]); -// h_ErNu_HcalIso_Fail_EB->Fill(ernu_HcalIso[j]); - h_ErNu_e1x5Max_Fail_EB->Fill(ernu_e1x5[j]); - h_ErNu_e2x5Max_Fail_EB->Fill(ernu_e2x5[j]); - h_ErNu_e5x5_Fail_EB->Fill(ernu_e5x5[j]); - h_ErNu_HcalE015_Fail_EB->Fill(ernu_HcalE015[j]); - h_ErNu_HcalEt015_Fail_EB->Fill(ernu_HcalEt015[j]); - - h_ErNu_E_Fail_EB->Fill(ernu_E[j]); - h_ErNu_rawE_Fail_EB->Fill(ernu_rawE[j]); - h_ErNu_unclusE_Fail_EB->Fill(ernu_unclusE[j]); - h_ErNu_fEtaCorrE_Fail_EB->Fill(ernu_fEtaCorrE[j]); - h_ErNu_fBremCorrE_Fail_EB->Fill(ernu_fBremCorrE[j]); - h_ErNu_AddCorrE_Fail_EB->Fill(ernu_AddCorrE[j]); - h_ErNu_nClusters_Fail_EB->Fill(ernu_nClusters[j]); - -// h_ErsatzV1MEt_Fail_EB->Fill(ErsatzV1MEt[j]); -// h_ErsatzV1Mt_Fail_EB->Fill(ErsatzV1Mt[j]); -// h_ErsatzV1MEtphi_Fail_EB->Fill(ErsatzV1MEtphi[j]); -// h_ErsatzV1aMEt_Fail_EB->Fill(ErsatzV1aMEt[j]); -// h_ErsatzV1aMt_Fail_EB->Fill(ErsatzV1aMt[j]); -// h_ErsatzV1aMEtphi_Fail_EB->Fill(ErsatzV1aMEtphi[j]); - h_ErsatzV1bMEt_Fail_EB->Fill(ErsatzV1bMEt[j]); - h_ErsatzV1bMt_Fail_EB->Fill(ErsatzV1bMt[j]); - h_ErsatzV1bMEtphi_Fail_EB->Fill(ErsatzV1bMEtphi[j]); -// h_ErsatzV1cMEt_Fail_EB->Fill(ErsatzV1cMEt[j]); -// h_ErsatzV1cMt_Fail_EB->Fill(ErsatzV1cMt[j]); -// h_ErsatzV1cMEtphi_Fail_EB->Fill(ErsatzV1cMEtphi[j]); -// h_ErsatzV2MEt_Fail_EB->Fill(ErsatzV2MEt[j]); -// h_ErsatzV2Mt_Fail_EB->Fill(ErsatzV2Mt[j]); -// h_ErsatzV2MEtphi_Fail_EB->Fill(ErsatzV2MEtphi[j]); - h_ErsatzV1Mesc_Fail_EB->Fill(mesc[j]); - h_ErsatzV1rescMesc_Fail_EB->Fill(rescMesc[j]); - - h_McZ_M_Fail_EB->Fill(McZ_m[j]); - h_McZ_rescM_Fail_EB->Fill(McZ_rescM[j]); - h_McZ_Pt_Fail_EB->Fill(McZ_pt[j]); -// h_McZ_rescPt_Fail_EB->Fill(McZ_rescPt[j]); -// h_McZ_Eta_Fail_EB->Fill(McZ_eta[j]); -// h_McZ_rescEta_Fail_EB->Fill(McZ_rescEta[j]); - h_McZ_Phi_Fail_EB->Fill(McZ_phi[j]); -// h_McZ_rescPhi_Fail_EB->Fill(McZ_rescPhi[j]); - - h_McElec_Pt_Fail_EB->Fill(McElec_pt[j]); - h_McElec_rescPt_Fail_EB->Fill(McElec_rescPt[j]); - h_McElec_Eta_Fail_EB->Fill(McElec_eta[j]); - h_McElec_rescEta_Fail_EB->Fill(McElec_rescEta[j]); -// h_McElec_Phi_Fail_EB->Fill(McElec_phi[j]); -// h_McElec_rescPhi_Fail_EB->Fill(McElec_rescPhi[j]); - - h_McErNu_Pt_Fail_EB->Fill(McErNu_pt[j]); - h_McErNu_rescPt_Fail_EB->Fill(McErNu_rescPt[j]); - h_McErNu_Eta_Fail_EB->Fill(McErNu_eta[j]); - h_McErNu_rescEta_Fail_EB->Fill(McErNu_rescEta[j]); - h_McErNu_Phi_Fail_EB->Fill(McErNu_phi[j]); - h_McErNu_rescPhi_Fail_EB->Fill(McErNu_rescPhi[j]); - - h_McElecErNu_dPhi_Fail_EB->Fill(McElecErNu_dPhi[j]); - h_McElecErNu_dR_Fail_EB->Fill(McElecErNu_dR[j]); - h_McMatch_Fail_EB->Fill(ernu_McMatch[j]); - }else{ - h_nTags_Fail_EE->Fill(nTags); - h_nErNu_Fail_EE->Fill(nErNu); - h_nMcElecs_Zmum_Fail_EE->Fill(nMcElecs_Zmum); - h_nMcElecs_Final_Fail_EE->Fill(nMcElecs_Final); - h_RecoCaloMEt_Fail_EE->Fill(caloMEt); - - h_nRecHitsInStrip_Fail_EE->Fill(nRecHitsInStrip[j]); - h_nRecHitsInCone_Fail_EE->Fill(nRecHitsInCone[j]); - - h_Z_pt_Fail_EE->Fill(Z_pt[j]); - - h_elec_q_Fail_EE->Fill(elec_q[j]); - h_elec_pt_Fail_EE->Fill(elec_pt[j]); - h_elec_eta_Fail_EE->Fill(elec_eta[j]); - h_elec_phi_Fail_EE->Fill(elec_phi[j]); - h_elec_sIhIh_Fail_EE->Fill(elec_sIhIh[j]); - h_elec_dPhi_Fail_EE->Fill(elec_dPhi[j]); - h_elec_dEta_Fail_EE->Fill(elec_dEta[j]); - h_elec_TrkIso_Fail_EE->Fill(elec_trkIso[j]); - h_elec_EcalIso_Fail_EE->Fill(elec_EcalIso[j]); - h_elec_HcalIso_Fail_EE->Fill(elec_HcalIso[j]); - h_elec_rescPt_Fail_EE->Fill(elec_rescPt[j]); - h_elec_rescEta_Fail_EE->Fill(elec_rescEta[j]); - -// h_ErNu_q_Fail_EE->Fill(probe_q[j]); - h_ErNu_pt_Fail_EE->Fill(probe_pt[j]); - h_ErNu_eta_Fail_EE->Fill(probe_eta[j]); - h_ErNu_phi_Fail_EE->Fill(probe_phi[j]); - h_ErNu_rescPt_Fail_EE->Fill(probe_rescPt[j]); - h_ErNu_rescEta_Fail_EE->Fill(probe_rescEta[j]); - - h_ErNu_sIhIh_Fail_EE->Fill(ernu_sIhIh[j]); -// h_ErNu_dPhi_Fail_EE->Fill(ernu_dPhi[j]); -// h_ErNu_dEta_Fail_EE->Fill(ernu_dEta[j]); - h_ErNu_TrkIso_Fail_EE->Fill(ernu_trkIso[j]); -// h_ErNu_EcalIso_Fail_EE->Fill(ernu_EcalIso[j]); -// h_ErNu_HcalIso_Fail_EE->Fill(ernu_HcalIso[j]); - h_ErNu_e1x5Max_Fail_EE->Fill(ernu_e1x5[j]); - h_ErNu_e2x5Max_Fail_EE->Fill(ernu_e2x5[j]); - h_ErNu_e5x5_Fail_EE->Fill(ernu_e5x5[j]); - h_ErNu_HcalE015_Fail_EE->Fill(ernu_HcalE015[j]); - h_ErNu_HcalEt015_Fail_EE->Fill(ernu_HcalEt015[j]); - - h_ErNu_E_Fail_EE->Fill(ernu_E[j]); - h_ErNu_rawE_Fail_EE->Fill(ernu_rawE[j]); - h_ErNu_unclusE_Fail_EE->Fill(ernu_unclusE[j]); - h_ErNu_fEtaCorrE_Fail_EE->Fill(ernu_fEtaCorrE[j]); - h_ErNu_fBremCorrE_Fail_EE->Fill(ernu_fBremCorrE[j]); - h_ErNu_AddCorrE_Fail_EE->Fill(ernu_AddCorrE[j]); - h_ErNu_nClusters_Fail_EE->Fill(ernu_nClusters[j]); - -// h_ErsatzV1MEt_Fail_EE->Fill(ErsatzV1MEt[j]); -// h_ErsatzV1Mt_Fail_EE->Fill(ErsatzV1Mt[j]); -// h_ErsatzV1MEtphi_Fail_EE->Fill(ErsatzV1MEtphi[j]); -// h_ErsatzV1aMEt_Fail_EE->Fill(ErsatzV1aMEt[j]); -// h_ErsatzV1aMt_Fail_EE->Fill(ErsatzV1aMt[j]); -// h_ErsatzV1aMEtphi_Fail_EE->Fill(ErsatzV1aMEtphi[j]); - h_ErsatzV1bMEt_Fail_EE->Fill(ErsatzV1bMEt[j]); - h_ErsatzV1bMt_Fail_EE->Fill(ErsatzV1bMt[j]); - h_ErsatzV1bMEtphi_Fail_EE->Fill(ErsatzV1bMEtphi[j]); -// h_ErsatzV1cMEt_Fail_EE->Fill(ErsatzV1cMEt[j]); -// h_ErsatzV1cMt_Fail_EE->Fill(ErsatzV1cMt[j]); -// h_ErsatzV1cMEtphi_Fail_EE->Fill(ErsatzV1cMEtphi[j]); -// h_ErsatzV2MEt_Fail_EE->Fill(ErsatzV2MEt[j]); -// h_ErsatzV2Mt_Fail_EE->Fill(ErsatzV2Mt[j]); -// h_ErsatzV2MEtphi_Fail_EE->Fill(ErsatzV2MEtphi[j]); - h_ErsatzV1Mesc_Fail_EE->Fill(mesc[j]); - h_ErsatzV1rescMesc_Fail_EE->Fill(rescMesc[j]); - - h_McZ_M_Fail_EE->Fill(McZ_m[j]); - h_McZ_rescM_Fail_EE->Fill(McZ_rescM[j]); - h_McZ_Pt_Fail_EE->Fill(McZ_pt[j]); -// h_McZ_rescPt_Fail_EE->Fill(McZ_rescPt[j]); -// h_McZ_Eta_Fail_EE->Fill(McZ_eta[j]); -// h_McZ_rescEta_Fail_EE->Fill(McZ_rescEta[j]); - h_McZ_Phi_Fail_EE->Fill(McZ_phi[j]); -// h_McZ_rescPhi_Fail_EE->Fill(McZ_rescPhi[j]); - - h_McElec_Pt_Fail_EE->Fill(McElec_pt[j]); - h_McElec_rescPt_Fail_EE->Fill(McElec_rescPt[j]); - h_McElec_Eta_Fail_EE->Fill(McElec_eta[j]); - h_McElec_rescEta_Fail_EE->Fill(McElec_rescEta[j]); -// h_McElec_Phi_Fail_EE->Fill(McElec_phi[j]); -// h_McElec_rescPhi_Fail_EE->Fill(McElec_rescPhi[j]); - - h_McErNu_Pt_Fail_EE->Fill(McErNu_pt[j]); - h_McErNu_rescPt_Fail_EE->Fill(McErNu_rescPt[j]); - h_McErNu_Eta_Fail_EE->Fill(McErNu_eta[j]); - h_McErNu_rescEta_Fail_EE->Fill(McErNu_rescEta[j]); - h_McErNu_Phi_Fail_EE->Fill(McErNu_phi[j]); - h_McErNu_rescPhi_Fail_EE->Fill(McErNu_rescPhi[j]); - - h_McElecErNu_dPhi_Fail_EE->Fill(McElecErNu_dPhi[j]); - h_McElecErNu_dR_Fail_EE->Fill(McElecErNu_dR[j]); - h_McMatch_Fail_EE->Fill(ernu_McMatch[j]); - } - } - } - } - } - } - } - } - //outfile->Write(); - //outfile->Close(); - outfile_pass_EB->Write(); - outfile_pass_EB->Close(); - outfile_pass_EE->Write(); - outfile_pass_EE->Close(); - outfile_fail_EB->Write(); - outfile_fail_EB->Close(); - outfile_fail_EE->Write(); - outfile_fail_EE->Close(); -} -/* -double deltaPhi(double phi1, double phi2) -{ - double result = phi1 - phi2; - while (result > acos(-1.)) result -= 2*acos(-1.); - while (result <= -acos(-1.)) result += 2*acos(-1.); - return result; -} - -double deltaR(double eta1, double phi1, double eta2, double phi2) -{ - double dEta = eta1-eta2; - double dPhi = deltaPhi(phi1, phi2); - double dR = sqrt(dEta*dEta+dPhi*dPhi); - return dR; -} -*/ diff --git a/ElectroWeakAnalysis/ZEE/macros/CutValues.txt b/ElectroWeakAnalysis/ZEE/macros/CutValues.txt deleted file mode 100644 index 19b2b381c9372..0000000000000 --- a/ElectroWeakAnalysis/ZEE/macros/CutValues.txt +++ /dev/null @@ -1,20 +0,0 @@ -30 -30 -4.2 -3.4 -2.0 -1.3 -2.2 -1.1 -0.0040 -0.0066 -0.025 -0.020 -0.0099 -0.028 -6.2 -0.83 -0.93 -1 -0.027 -12 diff --git a/ElectroWeakAnalysis/ZEE/macros/EtaWeights.txt b/ElectroWeakAnalysis/ZEE/macros/EtaWeights.txt deleted file mode 100644 index aed74790e2db5..0000000000000 --- a/ElectroWeakAnalysis/ZEE/macros/EtaWeights.txt +++ /dev/null @@ -1,345 +0,0 @@ -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -0.627218934911 -0.65224625624 -0.737151248164 -0.838565022422 -0.852090032154 -0.874125874126 -0.870827285922 -0.878698224852 -0.92125984252 -0.905479452055 -0.909090909091 -0.891737891738 -0.907172995781 -0.919137466307 -0.916883116883 -0.911196911197 -0.914004914005 -0.918709677419 -0.930487804878 -0.938021454112 -0.934324659232 -0.93023255814 -0.924731182796 -0.937432578209 -0.935286935287 -0.939936775553 -0.947608200456 -0.923901393355 -0.927789934354 -0.940267765191 -0.930996714129 -0.920750782065 -0.945205479452 -0.931034482759 -0.924698795181 -0.942073170732 -0.930646672915 -0.937076476283 -0.939835916135 -0.931569343066 -0.92574734812 -0.92221180881 -0.932743362832 -0.927710843373 -0.921327014218 -0.918273645546 -0.937068965517 -0.919827586207 -0.922619047619 -0.911184210526 -0.916234887737 -0.909807355517 -0.91202582728 -0.91492776886 -0.916015625 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -0.944892473118 -0.951181102362 -0.952822892498 -0.958990536278 -0.953846153846 -0.95 -0.948249619482 -0.952879581152 -0.95881006865 -0.950395398994 -0.955350815025 -0.959802538787 -0.949858757062 -0.964714184898 -0.965758211041 -0.964748201439 -0.967930029155 -0.971428571429 -0.975444538527 -0.961434370771 -0.959785522788 -0.969979986658 -0.963797814208 -0.965940054496 -0.969830295412 -0.958174904943 -0.967680608365 -0.954663212435 -0.970278637771 -0.963744232037 -0.974890144382 -0.965087281796 -0.975265017668 -0.966467065868 -0.976963969285 -0.96794081381 -0.966986794718 -0.971538040504 -0.967617579029 -0.974374255066 -0.973004020678 -0.959443800695 -0.973230220107 -0.967332123412 -0.975386376646 -0.966285714286 -0.973112128146 -0.968328445748 -0.976491862568 -0.970184853906 -0.975322490185 -0.966532025389 -0.974888392857 -0.972530683811 -0.968732234224 -0.975652173913 -0.976295479603 -0.976274608783 -0.9678546471 -0.976311336717 -0.979213483146 -0.979242979243 -0.969308035714 -0.976638176638 -0.97138047138 -0.966348850252 -0.974744760881 -0.978145304194 -0.969239071775 -0.969001148106 -0.973995271868 -0.966860465116 -0.975792507205 -0.970027247956 -0.971511627907 -0.967723984418 -0.972492836676 -0.974444444444 -0.972549019608 -0.962394067797 -0.958355579285 -0.951639799889 -0.954263128176 -0.954060705496 -0.948414830736 -0.944348823867 -0.948390677026 -0.96710153148 -0.96614872364 -0.965884861407 -0.968957871397 -0.972527472527 -0.977866061294 -0.973623853211 -0.969920544835 -0.970553592462 -0.967501331913 -0.971967654987 -0.975315414152 -0.972482113374 -0.978735005453 -0.965459610028 -0.972252448313 -0.977051061388 -0.969519343494 -0.977727013135 -0.967397414278 -0.969054441261 -0.975696926376 -0.98070907195 -0.976504297994 -0.970331588133 -0.962694877506 -0.975215517241 -0.973234624146 -0.977945443993 -0.974631268437 -0.971031286211 -0.970420932878 -0.971297359357 -0.969540229885 -0.974343310935 -0.975652173913 -0.971198156682 -0.965414430531 -0.970520231214 -0.976435045317 -0.979116945107 -0.960180315552 -0.968212610735 -0.969987995198 -0.969546302051 -0.965859714463 -0.970663265306 -0.970440251572 -0.963314358001 -0.958227848101 -0.9667752443 -0.966195451752 -0.967160334836 -0.952510176391 -0.967495219885 -0.971116816431 -0.96499339498 -0.964005235602 -0.958803986711 -0.966124661247 -0.964583333333 -0.957142857143 -0.969362745098 -0.960195530726 -0.959758551308 -0.959812458138 -0.955965909091 -0.96408045977 -0.951965065502 -0.957679180887 -0.949502133713 -0.96256299496 -0.952059925094 -0.956619296933 -0.941403238242 -0.951510333863 -0.951729106628 -0.955190440627 -0.937147461724 -0.944055944056 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -0.928 -0.909710391823 -0.922813036021 -0.920245398773 -0.922881355932 -0.925675675676 -0.934288121314 -0.946428571429 -0.926605504587 -0.919469026549 -0.933837429112 -0.940550133097 -0.936813186813 -0.948405253283 -0.929807692308 -0.933267909715 -0.934911242604 -0.936732766761 -0.922254616132 -0.923151750973 -0.939809926082 -0.925751879699 -0.950106157113 -0.949367088608 -0.930470347648 -0.930955120829 -0.937300743889 -0.914962325081 -0.941834451902 -0.923900118906 -0.922626025791 -0.925085130533 -0.928170594837 -0.908893709328 -0.924337957125 -0.927230046948 -0.92714453584 -0.916137229987 -0.921085080148 -0.938881664499 -0.921348314607 -0.912378303199 -0.905367231638 -0.924686192469 -0.934903047091 -0.899569583931 -0.883954154728 -0.868778280543 -0.893553223388 -0.868852459016 -0.845786963434 -0.825443786982 -0.757142857143 -0.657320872274 -0.592814371257 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 diff --git a/ElectroWeakAnalysis/ZEE/macros/PerformAnalysis.cpp b/ElectroWeakAnalysis/ZEE/macros/PerformAnalysis.cpp deleted file mode 100644 index 8182683a12e76..0000000000000 --- a/ElectroWeakAnalysis/ZEE/macros/PerformAnalysis.cpp +++ /dev/null @@ -1,628 +0,0 @@ -#include "TROOT.h" -#include "TFile.h" -#include "TTree.h" -#include "TH1.h" -#include "TF1.h" -#include "TRandom3.h" -#include "TString.h" -#include -#include -#include - -using namespace std; - -void PerformAnalysis(TString process, double eventweight, TString datapath)//, ofstream& results) //int main() -{ - cout << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%\%" << endl; - cout << "\% " << "Perform Analysis" << endl; - cout << "\% " << process << endl; - cout << "\% " << "Event Weight = " << eventweight << endl; - cout << "\% " << "Data Path = " << datapath << endl; - cout << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%\%" << endl; - - // Declare electron cut value variables - double cMEt = 30.; - double cPt = 30.; - double cECALiso_EB = 4.2, cECALiso_EE = 3.4; - double cHCALiso_EB = 2.0, cHCALiso_EE = 1.3; - double cTrackiso_EB = 2.2, cTrackiso_EE = 1.1; - double cDeltaEta_EB = 0.0040, cDeltaEta_EE = 0.0066; - double cDeltaPhi_EB = 0.025, cDeltaPhi_EE = 0.020; - double csIhIh_EB = 0.0099, csIhIh_EE = 0.0280; - // Declare neutrino cut value variables - double cHCAL = 6.2; - double cHCALEt = 12; - double cf1x5 = 0.83, cf2x5 = 0.93; - int celecmatch = 0; - double cnusIhIh = 0.027; - - cout << "Cut Values:" << endl; - - cout << "MEt cut " << cMEt << endl; - - cout << "Electron selection cuts:" << endl; - cout << "Pt cut " << cPt << endl; - cout << "ECAL Isolation cut (EB) " << cECALiso_EB << endl; - cout << "ECAL Isolation cut (EE) " << cECALiso_EE << endl; - cout << "HCAL Isolation cut (EB) " << cHCALiso_EB << endl; - cout << "HCAL Isolation cut (EE) " << cHCALiso_EE << endl; - cout << "Track Isolation cut (EB) " << cTrackiso_EB << endl; - cout << "Track Isolation cut (EE) " << cTrackiso_EE << endl; - cout << "Delta Eta cut (EB) " << cDeltaEta_EB << endl; - cout << "Delta Eta cut (EE) " << cDeltaEta_EE << endl; - cout << "Delta Phi cut (EB) " << cDeltaPhi_EB << endl; - cout << "Delta Phi cut (EE) " << cDeltaPhi_EE << endl; - cout << "Sigma iEta iEta cut (EB) " << csIhIh_EB << endl; - cout << "Sigma iEta iEta cut (EE) " << csIhIh_EE << endl; - - cout << "Probe selection cuts:" << endl; - cout << "HCAL Energy cut " << cHCAL << endl; - cout << "HCAL Transverse Energy cut " << cHCALEt << endl; - cout << "Fraction of energy in 1x5 cut " << cf1x5 << endl; - cout << "Fraction of energy in 2x5 cut " << cf2x5 << endl; - cout << "Require electron match " << celecmatch << endl; - cout << "Sigma iEta iEta cut " << cnusIhIh << endl; - - cout << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%\%" << endl; - // Import probe selection efficiency weights - double nueff[345]; - ifstream weightsin; - weightsin.open("EtaWeights.txt", ifstream::in); - - for(int eta=0; eta < 345; ++eta) - { - double weight; - weightsin >> weight; - //cout << eta << "\t" << weight << endl; - nueff[eta] = weight; - } - weightsin.close(); - cout << "Imported probe selection efficiencies" << endl; - - TString OutFileName = process+".root"; - TFile* outfile = TFile::Open(OutFileName, "recreate"); - - cout << "Created output file \"" << OutFileName << "\"" << endl; - - TH1F* h_dataWMEt_pass_EB = new TH1F("dataWMEt_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_dataWMEt_pass_EE = new TH1F("dataWMEt_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_dataWMEt_fail_EB = new TH1F("dataWMEt_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_dataWMEt_fail_EE = new TH1F("dataWMEt_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_mcWMEtin_pass_EB = new TH1F("mcWMEtin_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWMEtin_pass_EE = new TH1F("mcWMEtin_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWMEtin_fail_EB = new TH1F("mcWMEtin_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWMEtin_fail_EE = new TH1F("mcWMEtin_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWMEtout_pass_EB = new TH1F("mcWMEtout_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWMEtout_pass_EE = new TH1F("mcWMEtout_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWMEtout_fail_EB = new TH1F("mcWMEtout_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWMEtout_fail_EE = new TH1F("mcWMEtout_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_ErsatzMEt_pass_EB = new TH1F("ErsatzMEt_pass_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_pass_EE = new TH1F("ErsatzMEt_pass_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fail_EB = new TH1F("ErsatzMEt_fail_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fail_EE = new TH1F("ErsatzMEt_fail_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_ErsatzMEt_probept = new TH1F("ErsatzMEt_probept","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_uncorr = new TH1F("ErsatzMEt_uncorr","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fetacorr = new TH1F("ErsatzMEt_fetacorr","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fbremcorr = new TH1F("ErsatzMEt_fbremcorr","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_ErsatzMEt_pass_EB_peakfit = new TH1F("ErsatzMEt_pass_EB_peakfit","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_pass_EE_peakfit = new TH1F("ErsatzMEt_pass_EE_peakfit","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WMEt_pass_EB_peakfit = new TH1F("WMEt_pass_EB_peakfit","W MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WMEt_pass_EE_peakfit = new TH1F("WMEt_pass_EE_peakfit","W MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_ErsatzMEt_pass_EB_shifted = new TH1F("ErsatzMEt_pass_EB_shifted","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_pass_EE_shifted = new TH1F("ErsatzMEt_pass_EE_shifted","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fail_EB_shifted = new TH1F("ErsatzMEt_fail_EB_shifted","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fail_EE_shifted = new TH1F("ErsatzMEt_fail_EE_shifted","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_acceptance_correction_pass_EB = new TH1F("acceptacne_correction_pass_EB", "Acceptance Correction pass EB;#slash{E_{T}};Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_pass_EE = new TH1F("acceptacne_correction_pass_EE", "Acceptance Correction pass EE;#slash{E_{T}};Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_fail_EB = new TH1F("acceptacne_correction_fail_EB", "Acceptance Correction fail EB;#slash{E_{T}};Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_fail_EE = new TH1F("acceptacne_correction_fail_EE", "Acceptance Correction fail EE;#slash{E_{T}};Acceptance Correction", 100, 0., 100.); - - TH1F* h_ErsatzMEt_pass_EB_corr = new TH1F("ErsatzMEt_pass_EB_corr","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_pass_EE_corr = new TH1F("ErsatzMEt_pass_EE_corr","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fail_EB_corr = new TH1F("ErsatzMEt_fail_EB_corr","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fail_EE_corr = new TH1F("ErsatzMEt_fail_EE_corr","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - cout << "Declared Histograms" << endl; - - vector ErsatzMEt_pass_EB; - vector ErsatzMEt_pass_EE; - vector ErsatzMEt_fail_EB; - vector ErsatzMEt_fail_EE; - - vector Weight_pass_EB; - vector Weight_pass_EE; - vector Weight_fail_EB; - vector Weight_fail_EE; - - TRandom3 r; - - TString WFileName = datapath+"WenuTrue.root"; - TFile *fileW = TFile::Open(WFileName); - cout << "Opened W Monte Carlo file" << endl; - TTree *t = (TTree*) fileW->Get("analyse/AnalysisData"); - cout << "Got W TTree" << endl; - - long nEntries = t->GetEntriesFast(); - cout << "Total number of W events = " << nEntries << endl; - - double elec_pt_W[4], elec_eta_W[4]; - double elec_trckIso_W[4]/*, elec_EcalIso_W[4], elec_HcalIso_W[4]*/; - double elec_sigIhIh_W[4]/*, elec_dPhi_W[4], elec_dEta_W[4]*/; - - double nu_pt_W, nu_eta_W, nu_ECALeta_W, nu_phi_W; - - //double McW_pt, McW_phi; - double CaloMEt_W;//, CaloMEt25, CaloMEt30; - //double CaloMt[4];// CaloMt25[4], CaloMt30[4]; - -// TBranch* bMcW_pt = t->GetBranch("Boson_pt"); -// bMcW_pt->SetAddress(&McW_pt); -// TBranch* bMcW_phi = t->GetBranch("Boson_phi"); -// bMcW_phi->SetAddress(&McW_phi); -// TBranch* bNSelElecs = t->GetBranch("nSelElecs"); -// bNSelElecs->SetAddress(&nSelElecs); - TBranch* bElec_eta = t->GetBranch("elec_eta"); - bElec_eta->SetAddress(&elec_eta_W); - TBranch* bElec_pt = t->GetBranch("elec_pt"); - bElec_pt->SetAddress(&elec_pt_W); - - TBranch* bTag_sIhIh_W = t->GetBranch("elec_sIhIh"); - bTag_sIhIh_W->SetAddress(&elec_sigIhIh_W); - //TBranch* bTag_dPhi = t->GetBranch("elec_dPhiIn"); - //bTag_dPhi->SetAddress(&elec_dPhi_W); - //TBranch* bTag_dEta = t->GetBranch("elec_dEtaIn"); - //bTag_dEta->SetAddress(&elec_dEta_W); - TBranch* bTag_tIso_W = t->GetBranch("elec_isoTrack"); - bTag_tIso_W->SetAddress(&elec_trckIso_W); - //TBranch* bTag_eIso = t->GetBranch("elec_isoEcal"); - //bTag_eIso->SetAddress(&elec_EcalIso_W); - //TBranch* bTag_hIso = t->GetBranch("elec_isoHcal"); - //bTag_hIso->SetAddress(&elec_HcalIso_W); - - // TBranch* = t->GetBranch(""); -// ->SetAddress(&); - TBranch* bMcNu_pt = t->GetBranch("McNu_pt"); - bMcNu_pt->SetAddress(&nu_pt_W); - TBranch* bMcNu_phi = t->GetBranch("McNu_phi"); - bMcNu_phi->SetAddress(&nu_phi_W); - TBranch* bMcNu_eta = t->GetBranch("McNu_eta"); - bMcNu_eta->SetAddress(&nu_eta_W); - TBranch* bMcNu_ECALeta = t->GetBranch("McNu_ECALeta"); - bMcNu_ECALeta->SetAddress(&nu_ECALeta_W); - TBranch* bCalo_MEt = t->GetBranch("caloMEt"); - bCalo_MEt->SetAddress(&CaloMEt_W); -// TBranch* bCalo_MEt25 = t->GetBranch("caloMEt25"); -// bCalo_MEt25->SetAddress(&CaloMEt25); -// TBranch* bCalo_MEt30 = t->GetBranch("caloMEt30"); -// bCalo_MEt30->SetAddress(&CaloMEt30); -// TBranch* bCalo_Mt = t->GetBranch("caloMt"); -// bCalo_Mt->SetAddress(&CaloMt); - cout << "Set up branches" << endl; - - //long nentries = t->GetEntries(); - //int index = 0; - int aaa = 0, bbb = 0, ccc = 0, ddd = 0; - for(long i = 0; i < nEntries; ++i) - { - if(i%100000 == 0) cout <<"Analysing event "<< i << endl; - //if (i == ChosenEvents[index]) - //{ - //index++; - //bool iIsChosen = (i == ChosenEvents[index]); - t->GetEntry(i); - if(elec_pt_W[0] > cPt) - { - bool pass_e_cuts = false; - bool pass_trkiso_cut = false; - bool inBarrel = false; - bool inEndcap = false; - if(fabs(elec_eta_W[0]) < 1.4442) - { - pass_e_cuts = (elec_sigIhIh_W[0] < csIhIh_EB); - pass_trkiso_cut = (elec_trckIso_W[0] < cTrackiso_EB); - inBarrel = true; - }else if(fabs(elec_eta_W[0]) < 2.5) - { - pass_e_cuts = (elec_sigIhIh_W[0] < csIhIh_EE); - pass_trkiso_cut = (elec_trckIso_W[0] < cTrackiso_EE); - inEndcap = true; - } - if(pass_e_cuts) - { - if(pass_trkiso_cut) - { - if(inBarrel) - { - h_dataWMEt_pass_EB->Fill(CaloMEt_W); - h_WMEt_pass_EB_peakfit->Fill(CaloMEt_W); - aaa++; - if(fabs(nu_eta_W) < 2.5) - { - h_mcWMEtin_pass_EB->Fill(CaloMEt_W); - }else{ - h_mcWMEtout_pass_EB->Fill(CaloMEt_W); - } - } - if(inEndcap) - { - h_dataWMEt_pass_EE->Fill(CaloMEt_W); - h_WMEt_pass_EE_peakfit->Fill(CaloMEt_W); - bbb++; - if(fabs(nu_eta_W) < 2.5) - { - h_mcWMEtin_pass_EE->Fill(CaloMEt_W); - }else{ - h_mcWMEtout_pass_EE->Fill(CaloMEt_W); - } - } - }else - { - if(inBarrel) - { - h_dataWMEt_fail_EB->Fill(CaloMEt_W); - ccc++; - if(fabs(nu_eta_W) < 2.5) - { - h_mcWMEtin_fail_EB->Fill(CaloMEt_W); - }else{ - h_mcWMEtout_fail_EB->Fill(CaloMEt_W); - } - } - if(inEndcap) - { - h_dataWMEt_fail_EE->Fill(CaloMEt_W); - ddd++; - if(fabs(nu_eta_W) < 2.5) - { - h_mcWMEtin_fail_EE->Fill(CaloMEt_W); - }else{ - h_mcWMEtout_fail_EE->Fill(CaloMEt_W); - } - } - } - } - } - } - fileW->Close(); - cout << "Closed W Monte Carlo file" << endl; - - cout << "Number of W events passing selection cuts = " << aaa+bbb+ccc+ddd << endl; - cout << "Number Pass EB = " << aaa << endl; - cout << "Number Pass EE = " << bbb << endl; - cout << "Number Fail EB = " << ccc << endl; - cout << "Number Fail EE = " << ddd << endl; - - TString ErsatzFileName = datapath+process+".root"; - TFile *fileZ = TFile::Open(ErsatzFileName); - cout << "Opened Ersatz data file" << endl; - t = (TTree*) fileZ->Get("ErsatzMEt/ErsatzMEt"); - cout << "Got ersatz TTree" << endl; - nEntries = t->GetEntries(); - cout << "Total number of ersatz events = " << nEntries << endl; - - int nErNu; - double tag_pt[4], tag_eta[4], tag_phi[4], probe_pt[4], probe_eta[4], probe_phi[4]; - double ErsatzV1MEt[4], ErsatzV1aMEt[4], ErsatzV1bMEt[4]; - double elec_trkIso[4], elec_ECALIso[4], elec_HCALIso[4]; - double elec_sigIhIh[4], elec_dPhi[4], elec_dEta[4]; - double tag_rescPt[4], mesc[4]; - double nu_e1x5[4], nu_e2x5[4], nu_e5x5[4], nu_sigIhIh[4]; - double nu_HCALEt[4], nu_HCAL[4], nu_trckIso[4]; - double caloMEt; - //int nu_elec[4]; - - TBranch* bNum_ErNu = t->GetBranch("nProbes"); - bNum_ErNu->SetAddress(&nErNu); - //W selected electron properties - TBranch* bTag_eta = t->GetBranch("tag_eta"); - bTag_eta->SetAddress(&tag_eta); - TBranch* bTag_pt = t->GetBranch("tag_pt"); - bTag_pt->SetAddress(&tag_pt); - TBranch* bTag_phi = t->GetBranch("tag_phi"); - bTag_phi->SetAddress(&tag_phi); - TBranch* bTag_rescPt = t->GetBranch("tag_rescPt"); - bTag_rescPt->SetAddress(&tag_rescPt); -// TBranch* = t->GetBranch(""); -// ->SetAddress(&); - TBranch* bTag_sIhIh = t->GetBranch("tag_sIhIh"); - bTag_sIhIh->SetAddress(&elec_sigIhIh); - TBranch* bTag_dPhi = t->GetBranch("tag_dPhiIn"); - bTag_dPhi->SetAddress(&elec_dPhi); - TBranch* bTag_dEta = t->GetBranch("tag_dEtaIn"); - bTag_dEta->SetAddress(&elec_dEta); - TBranch* bTag_tIso = t->GetBranch("tag_isoTrack"); - bTag_tIso->SetAddress(&elec_trkIso); - TBranch* bTag_eIso = t->GetBranch("tag_isoEcal"); - bTag_eIso->SetAddress(&elec_ECALIso); - TBranch* bTag_hIso = t->GetBranch("tag_isoHcal"); - bTag_hIso->SetAddress(&elec_HCALIso); - //ersatz neutrino properties - TBranch* bProbe_pt = t->GetBranch("probe_pt"); - bProbe_pt->SetAddress(&probe_pt); - TBranch* bProbe_eta = t->GetBranch("probe_eta"); - bProbe_eta->SetAddress(&probe_eta); - TBranch* bProbe_phi = t->GetBranch("probe_phi"); - bProbe_phi->SetAddress(&probe_phi); - //TBranch* bProbe_elec = t->GetBranch("probe_elecMatch"); - //bProbe_elec->SetAddress(&nu_elec); - TBranch* bProbe_trckIso = t->GetBranch("probe_isoTrack"); - bProbe_trckIso->SetAddress(&nu_trckIso); - //TBranch* bProbe_ECALIso = t->GetBranch("probe_isoECAL"); - //bProbe_ECALIso->SetAddress(&nu_ECALIso); - //TBranch* bProbe_HCALIso = t->GetBranch("probe_isoHCAL"); - //bProbe_HCALIso->SetAddress(&nu_HCALIso); - TBranch* bProbe_sIhIh = t->GetBranch("probe_sIhIh"); - bProbe_sIhIh->SetAddress(&nu_sigIhIh); - //TBranch* bProbe_DeltaEta = t->GetBranch("probe_DeltaEta"); - //bProbe_DeltaEta->SetAddress(&nu_DeltaEta); - //TBranch* bProbe_DeltaPhiIso = t->GetBranch("probe_DeltaPhi"); - //bProbe_DeltaPhi->SetAddress(&nu_DeltaPhi); - TBranch* bProbe_e1x5 = t->GetBranch("probe_e1x5Max"); - bProbe_e1x5->SetAddress(&nu_e1x5); - TBranch* bProbe_e2x5 = t->GetBranch("probe_e2x5Max"); - bProbe_e2x5->SetAddress(&nu_e2x5); - TBranch* bProbe_e5x5 = t->GetBranch("probe_e5x5"); - bProbe_e5x5->SetAddress(&nu_e5x5); - TBranch* bProbe_HCAL = t->GetBranch("probe_HcalE015"); - bProbe_HCAL->SetAddress(&nu_HCAL); - TBranch* bProbe_HCALEt = t->GetBranch("probe_HcalEt015"); - bProbe_HCALEt->SetAddress(&nu_HCALEt); - //Ersatz MEt results - TBranch* bErsatzV1_MEt = t->GetBranch("ErsatzV1CaloMEt"); - bErsatzV1_MEt->SetAddress(&ErsatzV1MEt); - TBranch* bErsatzV1a_MEt = t->GetBranch("ErsatzV1aCaloMEt"); - bErsatzV1a_MEt->SetAddress(&ErsatzV1aMEt); - TBranch* bErsatzV1b_MEt = t->GetBranch("ErsatzV1bCaloMEt"); - bErsatzV1b_MEt->SetAddress(&ErsatzV1bMEt); - TBranch* bMesc = t->GetBranch("ErsatzV1_Mesc"); - bMesc->SetAddress(&mesc); - TBranch* bCaloMEt = t->GetBranch("recoCaloMEt"); - bCaloMEt->SetAddress(&caloMEt); - cout << "Set up Branches" << endl; - - aaa=0, bbb=0, ccc=0, ddd=0; - for(int i=0; i < nEntries; ++i) - { - if(i%100000 == 0) cout <<"Processing event "<< i << endl; - t->GetEntry(i); - for(int j = 0; j < nErNu; ++j) - { - bool passEtCut = false; - if(tag_rescPt[j] > cPt) passEtCut = true; - /* - if(process == "Zee" || process == "BCtoE_30to80" || process == "BCtoE_80to170"){ - if(tag_rescPt[j] > cPt) passEtCut = true; - }else{ - if(tag_pt[j] > (91.188/80.398)*cPt) passEtCut = true; - } - */ - if(passEtCut) - { - if(fabs(mesc[j]-91.1876) < 21.1876) - { - bool pass_e_cuts = false; - bool pass_trkiso_cut = false; - bool inBarrel = false; - bool inEndcap = false; - if(fabs(tag_eta[j])<1.4442) - { - pass_e_cuts = (elec_ECALIso[j] < cECALiso_EB && elec_HCALIso[j] < cHCALiso_EB - && elec_sigIhIh[j] < csIhIh_EB && elec_dPhi[j] < cDeltaPhi_EB - && elec_dEta[j] < cDeltaEta_EB); - pass_trkiso_cut = (elec_trkIso[j] < cTrackiso_EB); - inBarrel = true; - }else if(fabs(tag_eta[j] < 2.5)) - { - pass_e_cuts = (elec_ECALIso[j] < cECALiso_EE && elec_HCALIso[j] < cHCALiso_EE - && elec_sigIhIh[j] < csIhIh_EE && elec_dPhi[j] < cDeltaPhi_EE - && elec_dEta[j] < cDeltaEta_EE); - pass_trkiso_cut = (elec_trkIso[j] < cTrackiso_EE); - inEndcap = true; - } - if(pass_e_cuts) - { - bool pass_nu_cuts = false; - double f1x5 = nu_e1x5[j]/nu_e5x5[j]; - double f2x5 = nu_e2x5[j]/nu_e5x5[j]; - if(fabs(probe_eta[j]) < 1.4442) - { - pass_nu_cuts = (nu_HCAL[j] < cHCAL && (f1x5 > cf1x5 || f2x5 > cf2x5) - /*&& nu_elec[j] == celecmatch*/); - }else if(fabs(probe_eta[j] < 2.5)){ - pass_nu_cuts = (nu_HCALEt[j] < cHCALEt && nu_sigIhIh[j] < cnusIhIh - /*&& nu_elec[j] == celecmatch*/); - } - if(pass_nu_cuts) - { - int EtaInt = int((probe_eta[j] + 3.)/0.01739); - double weight = eventweight/nueff[EtaInt]; - if(pass_trkiso_cut) - { - if(inBarrel) - { - aaa++; - ErsatzMEt_pass_EB.push_back(ErsatzV1bMEt[j]); - Weight_pass_EB.push_back(weight); - h_ErsatzMEt_pass_EB->Fill(ErsatzV1bMEt[j], weight); - h_ErsatzMEt_pass_EB_peakfit->Fill(ErsatzV1bMEt[j], weight); - h_ErsatzMEt_probept->Fill(probe_pt[j], weight); - h_ErsatzMEt_uncorr->Fill(ErsatzV1MEt[j], weight); - h_ErsatzMEt_fetacorr->Fill(ErsatzV1aMEt[j], weight); - h_ErsatzMEt_fbremcorr->Fill(ErsatzV1bMEt[j], weight); - } - if(inEndcap) - { - bbb++; - ErsatzMEt_pass_EE.push_back(ErsatzV1bMEt[j]); - Weight_pass_EE.push_back(weight); - h_ErsatzMEt_pass_EE->Fill(ErsatzV1bMEt[j], weight); - h_ErsatzMEt_pass_EE_peakfit->Fill(ErsatzV1bMEt[j], weight); - h_ErsatzMEt_probept->Fill(probe_pt[j], weight); - h_ErsatzMEt_uncorr->Fill(ErsatzV1MEt[j], weight); - h_ErsatzMEt_fetacorr->Fill(ErsatzV1aMEt[j], weight); - h_ErsatzMEt_fbremcorr->Fill(ErsatzV1bMEt[j], weight); - } - }else{ - if(inBarrel) - { - ccc++; - ErsatzMEt_fail_EB.push_back(ErsatzV1bMEt[j]); - Weight_fail_EB.push_back(weight); - h_ErsatzMEt_fail_EB->Fill(ErsatzV1bMEt[j], weight); - } - if(inEndcap) - { - ddd++; - ErsatzMEt_fail_EE.push_back(ErsatzV1bMEt[j]); - Weight_fail_EE.push_back(weight); - h_ErsatzMEt_fail_EE->Fill(ErsatzV1bMEt[j], weight); - } - } - } - } - } - } - } - } - fileZ->Close(); - cout << "Closed Ersatz data file" << endl; - - cout << "Number of events passing selection cuts = " << aaa+bbb+ccc+ddd << endl; - cout << "Number Pass EB = " << aaa << endl; - cout << "Number Pass EE = " << bbb << endl; - cout << "Number Fail EB = " << ccc << endl; - cout << "Number Fail EE = " << ddd << endl; - - cout << "Apply shift correction ..." << endl; - - int maxbin; - - h_WMEt_pass_EB_peakfit->Scale(1./h_WMEt_pass_EB_peakfit->Integral(0,100)); - maxbin = h_WMEt_pass_EB_peakfit->GetMaximumBin(); - TF1 peakW_EB = TF1("peakW_EB", "gaus", maxbin-4, maxbin+4); - h_WMEt_pass_EB_peakfit->Fit("peakW_EB", "MR"); - cout << "W MEt maximum bin = " << maxbin << "\tPeak of Gaussian = " << peakW_EB.GetParameter(1) << endl; - h_WMEt_pass_EB_peakfit->Draw(); - - h_ErsatzMEt_pass_EB_peakfit->Scale(1./h_ErsatzMEt_pass_EB_peakfit->Integral(0,100)); - maxbin = h_ErsatzMEt_pass_EB_peakfit->GetMaximumBin(); - TF1 peakZ_EB = TF1("peakZ_EB", "gaus", maxbin-4, maxbin+4); - h_ErsatzMEt_pass_EB_peakfit->Fit("peakZ_EB", "MR"); - cout << "Ersatz maximum bin = " << maxbin << "\tPeak of Gaussian = " << peakZ_EB.GetParameter(1) << endl; - h_ErsatzMEt_pass_EB_peakfit->Draw(); - - double shift_EB = peakW_EB.GetParameter(1) - peakZ_EB.GetParameter(1); - cout << "EB Shift = " << shift_EB << endl; - - h_WMEt_pass_EE_peakfit->Scale(1./h_WMEt_pass_EE_peakfit->Integral(0,100)); - maxbin = h_WMEt_pass_EE_peakfit->GetMaximumBin(); - TF1 peakW_EE = TF1("peakW_EE", "gaus", maxbin-4, maxbin+4); - h_WMEt_pass_EE_peakfit->Fit("peakW_EE", "MR"); - cout << "W MEt maximum bin = " << maxbin << "\tPeak of Gaussian = " << peakW_EE.GetParameter(1) << endl; - h_WMEt_pass_EE_peakfit->Draw(); - - h_ErsatzMEt_pass_EE_peakfit->Scale(1./h_ErsatzMEt_pass_EE_peakfit->Integral(0,100)); - maxbin = h_ErsatzMEt_pass_EE_peakfit->GetMaximumBin(); - TF1 peakZ_EE = TF1("peakZ_EE", "gaus", maxbin-4, maxbin+4); - h_ErsatzMEt_pass_EE_peakfit->Fit("peakZ_EE", "MR"); - cout << "Ersatz maximum bin = " << maxbin << "\tPeak of Gaussian = " << peakZ_EE.GetParameter(1) << endl; - h_ErsatzMEt_pass_EE_peakfit->Draw(); - - double shift_EE = peakW_EE.GetParameter(1) - peakZ_EE.GetParameter(1); - cout << "EE Shift = " << shift_EE << endl; - - for(unsigned int i=0; i < ErsatzMEt_pass_EB.size(); i++) - { - ErsatzMEt_pass_EB[i] += shift_EB; - h_ErsatzMEt_pass_EB_shifted->Fill(ErsatzMEt_pass_EB[i], Weight_pass_EB[i]); - } - for(unsigned int i=0; i < ErsatzMEt_pass_EE.size(); i++) - { - ErsatzMEt_pass_EE[i] += shift_EE; - h_ErsatzMEt_pass_EE_shifted->Fill(ErsatzMEt_pass_EE[i], Weight_pass_EE[i]); - } - for(unsigned int i=0; i < ErsatzMEt_fail_EB.size(); i++) - { - ErsatzMEt_fail_EB[i] += shift_EB; - h_ErsatzMEt_fail_EB_shifted->Fill(ErsatzMEt_fail_EB[i], Weight_fail_EB[i]); - } - for(unsigned int i=0; i < ErsatzMEt_fail_EE.size(); i++) - { - ErsatzMEt_fail_EE[i] += shift_EE; - h_ErsatzMEt_fail_EE_shifted->Fill(ErsatzMEt_fail_EE[i], Weight_fail_EE[i]); - } - - cout << "Apply acceptance correction ..." << endl; - - TH1F* h_ones = new TH1F("ones", "Histogram of Ones;;", 100, 0., 100.); - for (int i=0; i<100; i++) - { - h_ones->Fill(i+0.5); - } - - h_acceptance_correction_pass_EB->Divide(h_mcWMEtout_pass_EB, h_mcWMEtin_pass_EB); - h_acceptance_correction_pass_EB->Add(h_ones); - h_ErsatzMEt_pass_EB_corr->Multiply(h_ErsatzMEt_pass_EB_shifted, h_acceptance_correction_pass_EB); - - h_acceptance_correction_pass_EE->Divide(h_mcWMEtout_pass_EE, h_mcWMEtin_pass_EE); - h_acceptance_correction_pass_EE->Add(h_ones); - h_ErsatzMEt_pass_EE_corr->Multiply(h_ErsatzMEt_pass_EE_shifted, h_acceptance_correction_pass_EE); - - h_acceptance_correction_fail_EB->Divide(h_mcWMEtout_fail_EB, h_mcWMEtin_fail_EB); - h_acceptance_correction_fail_EB->Add(h_ones); - h_ErsatzMEt_fail_EB_corr->Multiply(h_ErsatzMEt_fail_EB_shifted, h_acceptance_correction_fail_EB); - - h_acceptance_correction_fail_EE->Divide(h_mcWMEtout_fail_EE, h_mcWMEtin_fail_EE); - h_acceptance_correction_fail_EE->Add(h_ones); - h_ErsatzMEt_fail_EE_corr->Multiply(h_ErsatzMEt_fail_EE_shifted, h_acceptance_correction_fail_EE); - - cout << "Calculating f ..." << endl; - - double N_pass_EB = h_ErsatzMEt_pass_EB_corr->Integral(0,100); - double A_EB = h_ErsatzMEt_pass_EB_corr->Integral(int(cMEt)+1,100); - double B_EB = h_ErsatzMEt_pass_EB_corr->Integral(0,int(cMEt)); - double N_pass_EE = h_ErsatzMEt_pass_EE_corr->Integral(0,100); - double A_EE = h_ErsatzMEt_pass_EE_corr->Integral(int(cMEt)+1,100); - double B_EE = h_ErsatzMEt_pass_EE_corr->Integral(0,int(cMEt)); - double N_fail_EB = h_ErsatzMEt_fail_EB_corr->Integral(0,100); - double D_EB = h_ErsatzMEt_fail_EB_corr->Integral(int(cMEt)+1,100); - double C_EB = h_ErsatzMEt_fail_EB_corr->Integral(0,int(cMEt)); - double N_fail_EE = h_ErsatzMEt_fail_EE_corr->Integral(0,100); - double D_EE = h_ErsatzMEt_fail_EE_corr->Integral(int(cMEt)+1,100); - double C_EE = h_ErsatzMEt_fail_EE_corr->Integral(0,int(cMEt)); - - double A = A_EB + A_EE; - double B = B_EB + B_EE; - double C = C_EB + C_EE; - double D = D_EB + D_EE; - double N_pass = N_pass_EB + N_pass_EE; - double N_fail = N_fail_EB + N_fail_EE; - //int N = N_pass + N_fail; - - double eff = 1.0*A/(A+B); - double efferror = sqrt(eff*(1.-eff)/N_pass); - double f = 1.0*A/B; - double ferror = efferror/((1.-eff)*(1.-eff)); - - double effprime = 1.0*D/(D+C); - double effprimeerror = sqrt(effprime*(1.-effprime)/N_fail); - double fprime = 1.0*D/C; - double fprimeerror = effprimeerror/((1.-effprime)*(1.-effprime)); - - cout << "f\tferror\teff\tefferror\tA\tB\tN_pass" << endl; - cout << f << "\t" << ferror << "\t" << eff << "\t" << efferror << "\t" << A << "\t" << B << "\t" << N_pass << "\n" << endl; - - cout << "fprime\tfprimeerror\teffprime\teffprimeerror\tD\tC\tN_fail" << endl; - cout << fprime << "\t" << fprimeerror << "\t" << effprime << "\t" << effprimeerror << "\t" << D << "\t" << C << "\t" << N_fail << "\n" << endl; - -// results << process << "\t" << f << "\t" << ferror << "\t" << A << "\t" << B << "\t" << fprime << "\t" << fprimeerror << "\t" << D << "\t" << C << endl; - - outfile->Write(); - outfile->Close(); -} diff --git a/ElectroWeakAnalysis/ZEE/macros/PlotCombiner.cc b/ElectroWeakAnalysis/ZEE/macros/PlotCombiner.cc deleted file mode 100644 index ea0a165f74166..0000000000000 --- a/ElectroWeakAnalysis/ZEE/macros/PlotCombiner.cc +++ /dev/null @@ -1,262 +0,0 @@ -/* - Macro to make the plots ....................................... - - Instructions: - a. set up an input file that looks like the following: - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - # zee or wenu - wenu - # file name, type (sig, qcd, bce, gje, ewk), weight - histos_wenu.root sig 1.46 - histos_q20_30.root qcd 0 - histos_q30_80.root qcd 100. - histos_q80_170.root qcd 0 - histos_b20_30.root bce 0 - histos_b30_80.root bce 0 - histos_b80_170.root bce 0 - histos_zee.root ewk 0 - histos_wtaunu.root ewk 0 - histos_ztautau.root ewk 0 - histos_gj15.root gje 0 - histos_gj20.root gje 0 - histos_gj25.root gje 10.12 - histos_gj30.root gje 0 - histos_gj35.root gje 0 - histos_wmunu.root ewk 0 - histos_ttbar.root ewk 0 - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - lines that start with # are considered to be comments - line 2 has wenu or zee. From line 4 the list of the histo files are listed - (first word) then a type that could be sig,qcd,bce, gj or ewk in order to - discriminate among different sources of bkgs and finally the weight that we - want to weight the histogram entries. This particular example is for Wenu. For - Zee one has to put type sig in the zee file and ewk in the Wenu file. The order - of the files is arbitrary. Files with weight 0 will be ignored. - After you have set up this code you run a root macro to combine the plots. - You can do (not recommended - it actually crushes - to be debugged) - root -b PlotCombiner.cc - or to compile it within root (recommended) - root -b - root [1] .L PlotCombiner.cc++ - root [2] PlotCombiner() - - and you finally get the plots. - - TO DO: - functionalities to plot more kind of plots, e.g. efficiencies - - - Further Questions/Contact: - - nikolaos.rompotis @ cern.ch - - - - Nikolaos Rompotis - 29 June 09 - 18 Sept 09: 1st updgrade: input files in a text file - Imperial College London - - -*/ - - -#include -#include -#include -#include -#include "TString.h" -#include "TROOT.h" -#include "TStyle.h" -#include "TH1F.h" -#include "TFile.h" -#include "TCanvas.h" -#include "TLegend.h" - -void plotMaker(TString histoName, TString typeOfplot, - vector file, vector type, - vector weight, - TString xtitle, Int_t NBins, Double_t min, Double_t max); - - -void PlotCombiner() -{ - // read the file - ifstream input("inputFiles"); - int i = 0; - TString typeOfplot = ""; - vector types; - vector files; - vector weights; - - if (input.is_open()) { - std::string myline; - while (! input.eof()) { - getline(input, myline); - TString line(myline); - TString c('#'); - TString empty(' '); - if (line[0] != c) { - ++i; - if (i==1) typeOfplot=line; - else { - // read until you find 3 words - TString fname(""); - TString ftype(""); - TString fw(""); - int lineSize = (int) line.Length(); - int j=0; - while (j0) break;} - ++j; - } - if (fname.Length() == 0) break; - files.push_back(fname); - types.push_back(ftype); - double w = fw.Atof(); - weights.push_back(w); - std::cout << fname << ", " << ftype << ", "<< w << std::endl; - } - } - } - input.close(); - } - else { - std::cout << "File with name inputFile was not found" << std::endl; - return; - } - - // now you can launch the jobs - if (typeOfplot == "wenu") { - cout << "wenu plot maker" << endl; - // ==================== - // =====> WHICH HISTOS TO PLOT - // ==================== - plotMaker("h_met", typeOfplot, files, types, weights, "MET (GeV)", 100,0,100); - } - else { - cout << "zee plot maker" << endl; - // ==================== - // =====> WHICH HISTOS TO PLOT - // ==================== - plotMaker("h_mee", typeOfplot, files, types, weights, "M_{ee} (GeV)", 150,0,150); - } - - -} - - - -void plotMaker(TString histoName, TString wzsignal, - vector file, vector type, - vector weight, - TString xtitle, Int_t NBins, Double_t min, Double_t max) -{ - gROOT->Reset(); - gROOT->ProcessLine(".L tdrstyle.C"); - gROOT->ProcessLine("setTDRStyle()"); - - // Wenu Signal ....................................................... - TH1F h_wenu("h_wenu", "h_wenu", NBins, min, max); - int fmax = (int) file.size(); - for (int i=0; i0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_wenu.Add(h, weight[i]); - } - } - // Bkgs .............................................................. - // - // QCD light flavor - TH1F h_qcd("h_qcd", "h_qcd", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_qcd.Add(h, weight[i]); - } - } - // QCD heavy flavor - TH1F h_bce("h_bce", "h_bce", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_bce.Add(h, weight[i]); - } - } - // QCD Gjets - TH1F h_gj("h_gj", "h_gj", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_gj.Add(h, weight[i]); - } - } - // Other EWK bkgs - TH1F h_ewk("h_ewk", "h_ewk", NBins, min, max); - for (int i=0; i0) { - TFile f(file[i]); - TH1F *h = (TH1F*) f.Get(histoName); - h_ewk.Add(h, weight[i]); - } - } - // - // ok now decide how to plot them: - // first the EWK bkgs - h_ewk.SetFillColor(3); - // - // then the gjets - h_gj.Add(&h_ewk); - h_gj.SetFillColor(1); - // thent the QCD dijets - h_bce.Add(&h_qcd); - h_bce.Add(&h_gj); - h_bce.SetFillColor(2); - // and the signal at last - TH1F h_tot("h_tot", "h_tot", NBins, min, max); - h_tot.Add(&h_bce); - h_tot.Add(&h_wenu); - h_wenu.SetLineColor(4); h_wenu.SetLineWidth(2); - // - TCanvas c; - h_tot.GetXaxis()->SetTitle(xtitle); - h_tot.Draw("PE"); - h_bce.Draw("same"); - h_gj.Draw("same"); - h_ewk.Draw("same"); - h_wenu.Draw("same"); - - // the Legend - TLegend leg(0.6,0.65,0.95,0.92); - if (wzsignal == "wenu") - leg.AddEntry(&h_wenu, "W#rightarrow e#nu","l"); - else - leg.AddEntry(&h_wenu, "Z#rightarrow ee","l"); - leg.AddEntry(&h_tot, "Signal + Bkg","p"); - leg.AddEntry(&h_bce, "dijets","f"); - leg.AddEntry(&h_gj, "#gamma + jets","f"); - leg.AddEntry(&h_ewk, "EWK+t#bar t", "f"); - leg.Draw("same"); - - c.Print("test.png"); - - - -} - - - diff --git a/ElectroWeakAnalysis/ZEE/macros/PlotHistograms.cpp b/ElectroWeakAnalysis/ZEE/macros/PlotHistograms.cpp deleted file mode 100644 index daae9b8929358..0000000000000 --- a/ElectroWeakAnalysis/ZEE/macros/PlotHistograms.cpp +++ /dev/null @@ -1,467 +0,0 @@ -#include "TFile.h" -#include "TTree.h" -#include "TH1.h" -#include - -void PlotHistograms() -{ - int nTags, nErNu; - int nMcElecs_Zmum, nMcElecs_Final; - int nRecHitsInStrip[4], nRecHitsInCone[4]; - - double Z_pt[4]; - - double elec_q[4], elec_pt[4], elec_eta[4], elec_phi[4]; - double elec_rescPt[4], elec_rescEta[4];//, elec_rescPhi[4]; - - double /*probe_q[4], */probe_pt[4], probe_eta[4], probe_phi[4]; - double probe_rescPt[4], probe_rescEta[4];//, probe_rescPhi[4]; - - double ErsatzV1MEt[4], ErsatzV1Mt[4], ErsatzV1MEtphi[4]; - double ErsatzV1aMEt[4], ErsatzV1aMt[4], ErsatzV1aMEtphi[4]; - double ErsatzV1bMEt[4], ErsatzV1bMt[4], ErsatzV1bMEtphi[4]; - double ErsatzV1cMEt[4], ErsatzV1cMt[4], ErsatzV1cMEtphi[4]; - double ErsatzV2MEt[4], ErsatzV2Mt[4], ErsatzV2MEtphi[4]; - double caloMEt; - double mesc[4], rescMesc[4]; - - double elec_trkIso[4], elec_EcalIso[4], elec_HcalIso[4]; - double elec_sIhIh[4], elec_dPhi[4], elec_dEta[4]; - - double ernu_e1x5[4], ernu_e2x5[4], ernu_e5x5[4], ernu_sIhIh[4]; - double ernu_HcalEt015[4], ernu_HcalE015[4], ernu_trkIso[4]; - - double ernu_E[4], ernu_rawE[4], ernu_unclusE[4], ernu_d_McE_ScE[4]; - double ernu_fEtaCorrE[4], ernu_fBremCorrE[4], ernu_AddCorrE[4]; - int ernu_nClusters[4]; - - double McZ_m[4], McZ_pt[4]/*, McZ_eta[4]*/, McZ_phi[4]; - double McZ_rescM[4];//, McZ_rescPt[4], McZ_rescEta[4], McZ_rescPhi[4]; - double McElec_pt[4], McElec_eta[4];//, McElec_phi[4]; - double McElec_rescPt[4], McElec_rescEta[4];//, McElec_rescPhi[4]; - double McErNu_pt[4], McErNu_eta[4], McErNu_phi[4]; - double McErNu_rescPt[4], McErNu_rescEta[4], McErNu_rescPhi[4]; - double McElecErNu_dPhi[4], McElecErNu_dR[4]; - int ernu_McMatch[4]; - - TFile *file = TFile::Open("/tmp/rnandi/test.root"); - TTree *t = (TTree*) file->Get("ErsatzMEt/ErsatzMEt"); - -/* - double nueff[345]; - //ifstream weightsin("EtaWeights.txt"); - for(int eta=0; eta < 345; ++eta) - { - //double weight; - //weightsin >> weight; - nueff[eta] = 1.;//weight; - } -*/ -// TBranch* = t->GetBranch(""); -// ->SetAddress(&); - TBranch* bNum_Tags = t->GetBranch("nTags"); - bNum_Tags->SetAddress(&nTags); - TBranch* bNum_ErNu = t->GetBranch("nProbes"); - bNum_ErNu->SetAddress(&nErNu); - TBranch* bNum_McElecs_Zmum = t->GetBranch("McElec_nZmum"); - bNum_McElecs_Zmum->SetAddress(&nMcElecs_Zmum); - TBranch* bNum_McElecs_Final = t->GetBranch("McElec_nFinal"); - bNum_McElecs_Final->SetAddress(&nMcElecs_Final); - TBranch* bNum_RecHitsInStrip = t->GetBranch("nRecHitsInStrip"); - bNum_RecHitsInStrip->SetAddress(&nRecHitsInStrip); - TBranch* bNum_RecHitsInCone = t->GetBranch("nRecHitsInCone"); - bNum_RecHitsInCone->SetAddress(&nRecHitsInCone); - - //Z properties - TBranch* bZ_pt = t->GetBranch("Z_pt"); - bZ_pt->SetAddress(&Z_pt); - - //Selected electron properties - TBranch* bTag_q = t->GetBranch("tag_q"); - bTag_q->SetAddress(&elec_q); - TBranch* bTag_pt = t->GetBranch("tag_pt"); - bTag_pt->SetAddress(&elec_pt); - TBranch* bTag_eta = t->GetBranch("tag_eta"); - bTag_eta->SetAddress(&elec_eta); - TBranch* bTag_phi = t->GetBranch("tag_phi"); - bTag_phi->SetAddress(&elec_phi); - TBranch* bTag_rescPt = t->GetBranch("tag_rescPt"); - bTag_rescPt->SetAddress(&elec_rescPt); - TBranch* bTag_rescEta = t->GetBranch("tag_rescEta"); - bTag_rescEta->SetAddress(&elec_rescEta); -// TBranch* bTag_rescPhi = t->GetBranch("tag_rescPhi"); -// bTag_rescPhi->SetAddress(&elec_rescPhi); - - TBranch* bTag_sIhIh = t->GetBranch("tag_sIhIh"); - bTag_sIhIh->SetAddress(&elec_sIhIh); - TBranch* bTag_dPhi = t->GetBranch("tag_dPhiIn"); - bTag_dPhi->SetAddress(&elec_dPhi); - TBranch* bTag_dEta = t->GetBranch("tag_dEtaIn"); - bTag_dEta->SetAddress(&elec_dEta); - TBranch* bTag_tIso = t->GetBranch("tag_isoTrack"); - bTag_tIso->SetAddress(&elec_trkIso); - TBranch* bTag_eIso = t->GetBranch("tag_isoEcal"); - bTag_eIso->SetAddress(&elec_EcalIso); - TBranch* bTag_hIso = t->GetBranch("tag_isoHcal"); - bTag_hIso->SetAddress(&elec_HcalIso); - - //ersatz neutrino properties -// TBranch* bProbe_q = t->GetBranch("probe_q"); -// bProbe_q->SetAddress(&probe_q); - TBranch* bProbe_pt = t->GetBranch("probe_pt"); - bProbe_pt->SetAddress(&probe_pt); - TBranch* bProbe_eta = t->GetBranch("probe_eta"); - bProbe_eta->SetAddress(&probe_eta); - TBranch* bProbe_phi = t->GetBranch("probe_phi"); - bProbe_phi->SetAddress(&probe_phi); - TBranch* bProbe_rescPt = t->GetBranch("probe_rescPt"); - bProbe_rescPt->SetAddress(&probe_rescPt); - TBranch* bProbe_rescEta = t->GetBranch("probe_rescEta"); - bProbe_rescEta->SetAddress(&probe_rescEta); -// TBranch* bProbe_rescPhi = t->GetBranch("probe_rescPhi"); -// bProbe_rescPhi->SetAddress(&probe_rescPhi); - TBranch* bProbe_trckIso = t->GetBranch("probe_isoTrack"); - bProbe_trckIso->SetAddress(&ernu_trkIso); -// TBranch* bProbe_ECALIso = t->GetBranch("probe_isoECAL"); -// bProbe_ECALIso->SetAddress(&ernu_ECALIso); -// TBranch* bProbe_HCALIso = t->GetBranch("probe_isoHCAL"); -// bProbe_HCALIso->SetAddress(&ernu_HCALIso); - TBranch* bProbe_sIhIh = t->GetBranch("probe_sIhIh"); - bProbe_sIhIh->SetAddress(&ernu_sIhIh); -// TBranch* bProbe_DeltaEta = t->GetBranch("probe_DeltaEta"); -// bProbe_DeltaEta->SetAddress(&ernu_DeltaEta); -// TBranch* bProbe_DeltaPhiIso = t->GetBranch("probe_DeltaPhi"); -// bProbe_DeltaPhi->SetAddress(&ernu_DeltaPhi); - TBranch* bProbe_e1x5 = t->GetBranch("probe_e1x5Max"); - bProbe_e1x5->SetAddress(&ernu_e1x5); - TBranch* bProbe_e2x5 = t->GetBranch("probe_e2x5Max"); - bProbe_e2x5->SetAddress(&ernu_e2x5); - TBranch* bProbe_e5x5 = t->GetBranch("probe_e5x5"); - bProbe_e5x5->SetAddress(&ernu_e5x5); - TBranch* bProbe_HcalE015 = t->GetBranch("probe_HcalE015"); - bProbe_HcalE015->SetAddress(&ernu_HcalE015); - TBranch* bProbe_HcalEt015 = t->GetBranch("probe_HcalEt015"); - bProbe_HcalEt015->SetAddress(&ernu_HcalEt015); - - //Energy Correction results - TBranch* bProbe_E = t->GetBranch("probe_E"); - bProbe_E->SetAddress(&ernu_E); - TBranch* bProbe_rawE = t->GetBranch("probe_rawE"); - bProbe_rawE->SetAddress(&ernu_rawE); - TBranch* bProbe_unclusE = t->GetBranch("probe_UnclusEcalE"); - bProbe_unclusE->SetAddress(&ernu_unclusE); - TBranch* bProbe_fEtaCorrE = t->GetBranch("probe_fEtaCorrE"); - bProbe_fEtaCorrE->SetAddress(&ernu_fEtaCorrE); - TBranch* bProbe_fBremCorrE = t->GetBranch("probe_fBremCorrE"); - bProbe_fBremCorrE->SetAddress(&ernu_fBremCorrE); - TBranch* bProbe_AddCorrE = t->GetBranch("probe_EAdd"); - bProbe_AddCorrE->SetAddress(&ernu_AddCorrE); - TBranch* bProbe_d_MCE_SCE = t->GetBranch("probe_d_MCE_SCE"); - bProbe_d_MCE_SCE->SetAddress(&ernu_d_McE_ScE); - TBranch* bProbe_nClus = t->GetBranch("probe_nClus"); - bProbe_nClus->SetAddress(&ernu_nClusters); - - //Ersatz MEt results - TBranch* bErsatzV1_MEt = t->GetBranch("ErsatzV1CaloMEt"); - bErsatzV1_MEt->SetAddress(&ErsatzV1MEt); - TBranch* bErsatzV1_Mt = t->GetBranch("ErsatzV1CaloMt"); - bErsatzV1_Mt->SetAddress(&ErsatzV1Mt); - TBranch* bErsatzV1_MEtphi = t->GetBranch("ErsatzV1CaloMEtPhi"); - bErsatzV1_MEtphi->SetAddress(&ErsatzV1MEtphi); - - TBranch* bErsatzV1a_MEt = t->GetBranch("ErsatzV1aCaloMEt"); - bErsatzV1a_MEt->SetAddress(&ErsatzV1aMEt); - TBranch* bErsatzV1a_Mt = t->GetBranch("ErsatzV1aCaloMt"); - bErsatzV1a_Mt->SetAddress(&ErsatzV1aMt); - TBranch* bErsatzV1a_MEtphi = t->GetBranch("ErsatzV1aCaloMEtPhi"); - bErsatzV1a_MEtphi->SetAddress(&ErsatzV1aMEtphi); - - TBranch* bErsatzV1b_MEt = t->GetBranch("ErsatzV1bCaloMEt"); - bErsatzV1b_MEt->SetAddress(&ErsatzV1bMEt); - TBranch* bErsatzV1b_Mt = t->GetBranch("ErsatzV1bCaloMt"); - bErsatzV1b_Mt->SetAddress(&ErsatzV1bMt); - TBranch* bErsatzV1b_MEtphi = t->GetBranch("ErsatzV1bCaloMEtPhi"); - bErsatzV1b_MEtphi->SetAddress(&ErsatzV1bMEtphi); - - TBranch* bErsatzV1c_MEt = t->GetBranch("ErsatzV1cCaloMEt"); - bErsatzV1c_MEt->SetAddress(&ErsatzV1cMEt); - //TBranch* bErsatzV1c_Mt = t->GetBranch("ErsatzV1cCaloMt"); - //bErsatzV1c_Mt->SetAddress(&ErsatzV1cMt); - TBranch* bErsatzV1c_MEtphi = t->GetBranch("ErsatzV1cCaloMEtPhi"); - bErsatzV1c_MEtphi->SetAddress(&ErsatzV1cMEtphi); - - TBranch* bErsatzV2_MEt = t->GetBranch("ErsatzV2CaloMEt"); - bErsatzV2_MEt->SetAddress(&ErsatzV2MEt); - TBranch* bErsatzV2_Mt = t->GetBranch("ErsatzV2CaloMt"); - bErsatzV2_Mt->SetAddress(&ErsatzV2Mt); - TBranch* bErsatzV2_MEtphi = t->GetBranch("ErsatzV2CaloMEtPhi"); - bErsatzV2_MEtphi->SetAddress(&ErsatzV2MEtphi); - - TBranch* bMesc = t->GetBranch("ErsatzV1_Mesc"); - bMesc->SetAddress(&mesc); - TBranch* brescMesc = t->GetBranch("ErsatzV1_rescMesc"); - brescMesc->SetAddress(&rescMesc); - TBranch* bCaloMEt = t->GetBranch("recoCaloMEt"); - bCaloMEt->SetAddress(&caloMEt); - - TBranch* bMcZ_m = t->GetBranch("McZ_m"); - bMcZ_m->SetAddress(&McZ_m); - TBranch* bMcZ_pt = t->GetBranch("McZ_Pt"); - bMcZ_pt->SetAddress(&McZ_pt); -// TBranch* bMcZ_eta = t->GetBranch("McZ_eta"); -// bMcZ_eta->SetAddress(&McZ_eta); - TBranch* bMcZ_phi = t->GetBranch("McZ_Phi"); - bMcZ_phi->SetAddress(&McZ_phi); - TBranch* bMcZ_rescM = t->GetBranch("McZ_rescM"); - bMcZ_rescM->SetAddress(&McZ_rescM); -// TBranch* bMcZ_rescPt = t->GetBranch("McZ_rescPt"); -// bMcZ_rescPt->SetAddress(&McZ_rescPt); -// TBranch* bMcZ_rescEta = t->GetBranch("McZ_rescEta"); -// bMcZ_rescEta->SetAddress(&McZ_rescEta); -// TBranch* bMcZ_rescPhi = t->GetBranch("McZ_rescPhi"); -// bMcZ_rescPhi->SetAddress(&McZ_rescPhi); - - TBranch* bMcElec_pt = t->GetBranch("McElec_pt"); - bMcElec_pt->SetAddress(&McElec_pt); - TBranch* bMcElec_eta = t->GetBranch("McElec_eta"); - bMcElec_eta->SetAddress(&McElec_eta); -// TBranch* bMcElec_phi = t->GetBranch("McElec_phi"); -// bMcElec_phi->SetAddress(&McElec_phi); - TBranch* bMcElec_rescPt = t->GetBranch("McElec_rescPt"); - bMcElec_rescPt->SetAddress(&McElec_rescPt); - TBranch* bMcElec_rescEta = t->GetBranch("McElec_rescEta"); - bMcElec_rescEta->SetAddress(&McElec_rescEta); -// TBranch* bMcElec_rescPhi = t->GetBranch("McElec_rescPhi"); -// bMcElec_rescPhi->SetAddress(&McElec_rescPhi); - - TBranch* bMcErNu_pt = t->GetBranch("McProbe_pt"); - bMcErNu_pt->SetAddress(&McErNu_pt); - TBranch* bMcErNu_eta = t->GetBranch("McProbe_eta"); - bMcErNu_eta->SetAddress(&McErNu_eta); - TBranch* bMcErNu_phi = t->GetBranch("McProbe_phi"); - bMcErNu_phi->SetAddress(&McErNu_phi); - TBranch* bMcErNu_rescPt = t->GetBranch("McProbe_rescPt"); - bMcErNu_rescPt->SetAddress(&McErNu_rescPt); - TBranch* bMcErNu_rescEta = t->GetBranch("McProbe_rescEta"); - bMcErNu_rescEta->SetAddress(&McErNu_rescEta); - TBranch* bMcErNu_rescPhi = t->GetBranch("McProbe_rescPhi"); - bMcErNu_rescPhi->SetAddress(&McErNu_rescPhi); - - TBranch* bMcElecErNu_dPhi = t->GetBranch("McElecProbe_dPhi"); - bMcElecErNu_dPhi->SetAddress(&McElecErNu_dPhi); - TBranch* bMcElecErNu_dR = t->GetBranch("McElecProbe_dR"); - bMcElecErNu_dR->SetAddress(&McElecErNu_dR); - //TBranch* bProbe_elec = t->GetBranch("probe_elecMatch"); - //bProbe_elec->SetAddress(&ernu_McMatch); - - //TString OutFileName = "Zee_Histograms.root"; - TFile *outfile = TFile::Open("/tmp/rnandi/test_Histograms.root", "recreate"); - - TH1I* h_nTags = new TH1I("nTags", "Number of Tags;Number of Tags;Arbitrary Units", 4, 0, 4); - TH1I* h_nErNu = new TH1I("nErNu", "Number of Ersatz Neutrinos;Number of Ersatz Neutrinos;Arbitrary Units", 2, 0, 2); - TH1I* h_nMcElecs_Zmum = new TH1I("nMcElecs_Zmum", "Number of Monte Carlo Electrons with Z as Mother;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nMcElecs_Final = new TH1I("nMcElecs_Final", "Number of Final State Monte Carlo Electrons;Number of MC Electrons;Arbitrary Units", 4, 0, 4); - TH1I* h_nRecHitsInStrip = new TH1I("nRecHitsInStrip", ";;Arbitrary Units", 20, 0, 20); - TH1I* h_nRecHitsInCone = new TH1I("nRecHitsInCone", ";;Arbitrary Units", 20, 0, 20); - - TH1F* h_Z_pt = new TH1F("Z_pt", "Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - - TH1F* h_elec_q = new TH1F("elec_q", "Electron Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_elec_pt = new TH1F("elec_pt", "Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_eta = new TH1F("elec_eta", "Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_elec_phi = new TH1F("elec_phi", "Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_elec_sIhIh = new TH1F("elec_sIhIh", "Electron #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitary Units", 100, 0., 0.05); - TH1F* h_elec_dEta = new TH1F("elec_dEta", "Electron #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); - TH1F* h_elec_dPhi = new TH1F("elec_dPhi", "Electron #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_elec_TrkIso = new TH1F("elec_TrkIso", "Electon Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_EcalIso = new TH1F("elec_EcalIso", "Electron ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_HcalIso = new TH1F("elec_HcalIso", "Electron HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_rescPt = new TH1F("elec_rescPt", "Electron Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_rescEta = new TH1F("elec_rescEta", "Electron Rescaled #eta;Rescaled #eta;Arbitrary Units", 100, -3., 3.); - -// TH1F* h_ErNu_q = new TH1F("h_ErNu_q", "Ersatz Neutrino Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_ErNu_pt = new TH1F("ErNu_pt", "Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_eta = new TH1F("ErNu_eta", "Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_ErNu_phi = new TH1F("ErNu_phi", "Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_ErNu_rescPt = new TH1F("ErNu_rescPt", "Ersatz Neutrino Rescaled p_{T};Rescaled p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rescEta = new TH1F("ErNu_rescEta", "Ersatz Neutrino Rescaled #eta;Rescaled #eta", 100, -3., 3.); - - TH1F* h_ErNu_sIhIh = new TH1F("ErNu_sIhIh", "Ersatz Neutrino #sigma_{i#etai#eta};#sigma_{i#etai#eta};Arbitrary Units", 100, 0., 0.05); -// TH1F* h_ErNu_dEta = new TH1F("ErNu_dEta", "Ersatz Neutrino #Delta#eta;#Delta#eta;Arbitrary Units", 100, 0., 0.02); -// TH1F* h_ErNu_dPhi = new TH1F("ErNu_dPhi", "Ersatz Neutrino #Delta#phi;#Delta#phi;Arbitrary Units", 100, 0., 0.1); - TH1F* h_ErNu_TrkIso = new TH1F("ErNu_TrkIso", "Ersatz Neutrino Track Isolation;Track Isolation #Sigma p_{T}^{tracks} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_EcalIso = new TH1F("ErNu_EcalIso", "Ersatz Neutrino ECAL Isolation;ECAL Isolation #Sigma E_{T}^{ECAL} / GeV;Arbitrary Units", 100, 0., 10.); -// TH1F* h_ErNu_HcalIso = new TH1F("ErNu_HcalIso", "Ersatz Neutrino HCAL Isolation;HCAL Isolation #Sigma E_{T}^{HCAL} / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_e1x5Max = new TH1F("ErNu_e1x5Max", "Ersatz Neutrino Maximum Energy in 1x5 Array of Crystals;e1x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e2x5Max = new TH1F("ErNu_e2x5Max", "Ersatz Neutrino Maximum Energy in 2x5 Array of Crystals;e2x5Max / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_e5x5 = new TH1F("ErNu_e5x5", "Ersatz Neutrino Energy in 5x5 Array of Crystals;e5x5 / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_HcalE015 = new TH1F("ErNu_HcalE015", "Ersatz Neutrino HCAL Energy in a 0.15 Cone;HCAL Energy / GeV;Arbitrary Units", 100, 0., 10.); - TH1F* h_ErNu_HcalEt015 = new TH1F("ErNu_HcalEt015", "Ersatz Neutrino HCAL E_{T} in a 0.15 Cone;HCAL E_{T};Arbitrary Units", 100, 0., 10.); - -// TH1F* h_rechitE = new TH1F("h_rechitE", "", 100, , ); // What is this - TH1F* h_ErNu_E = new TH1F("ErNu_E", "Ersatz Neutrino Energy;Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_rawE = new TH1F("ErNu_rawE", "Ersatz Neutrino Raw Energy;Raw Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_unclusE = new TH1F("ErNu_unclusE", "Ersatz Neutrino Unclustered ECAL Energy;Unclustered Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fEtaCorrE = new TH1F("ErNu_fEtaCorrE", "Ersatz Neutrino fEta Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_fBremCorrE = new TH1F("ErNu_fBremCorrE", "Ersatz Neutrino fBrem Corrected Energy;Correcteed Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErNu_AddCorrE = new TH1F("ErNu_AddCorrE", "Ersatz Neutrino Add Corrected Energy;Corrected Energy / GeV;Arbitrary Units", 100, 0., 100.); - TH1I* h_ErNu_nClusters = new TH1I("ErNu_nClusters", "Ersatz Neutrino Number of Clusters;Number of Clusters;Arbitrary Units", 10, 0, 10); - -// TH1F* h_ErsatzV1MEt = new TH1F("ErsatzV1MEt", "ErsatzV1MEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1Mt = new TH1F("ErsatzV1Mt", "ErsatzV1Mt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1MEtphi = new TH1F("ErsatzV1MEtPhi", "ErsatzV1MEtPhi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEt = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMt = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1aMEtphi = new TH1F("ErsatzV1aMEtphi", "ErsatzV1aMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEt = new TH1F("ErsatzV1bMEt", "ErsatzV1bMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMt = new TH1F("ErsatzV1bMt", "ErsatzV1bMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1bMEtphi = new TH1F("ErsatzV1bMEtphi", "ErsatzV1bMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEt = new TH1F("ErsatzV1cMEt", "ErsatzV1cMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMt = new TH1F("ErsatzV1cMt", "ErsatzV1cMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV1cMEtphi = new TH1F("ErsatzV1cMEtphi", "ErsatzV1cMEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEt = new TH1F("ErsatzV1aMEt", "ErsatzV1aMEt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2Mt = new TH1F("ErsatzV1aMt", "ErsatzV1aMt;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_ErsatzV2MEtphi = new TH1F("ErsatzV2MEtphi", "ErsatzV2MEtphi;#slash{E_{T}} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_RecoCaloMEt = new TH1F("RecoCaloMEt", "Calometric #slashE_{T};#slashE_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzV1Mesc = new TH1F("ErsatzV1Mesc", "Invariant Mass;Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_ErsatzV1rescMesc = new TH1F("ErsatzV1rescMesc", "Rescaled Invariant Mass;Rescaled Invariant Mass / GeV;Arbitrary Units", 100, 41., 141.); - - TH1F* h_McZ_M = new TH1F("McZ_M", "Monte Carlo Z Mass;Mass / GeV; Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_rescM = new TH1F("McZ_rescM", "Monte Carlo Rescaled Z Mass;Mass / GeV;Arbitrary Units", 100, 41., 141.); - TH1F* h_McZ_Pt = new TH1F("McZ_Pt", "Monte Carlo Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_rescPt = new TH1F("McZ_rescPt", "Monte Carlo Rescaled Z p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); -// TH1F* h_McZ_Eta = new TH1F("McZ_eta", "Monte Carlo Z #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McZ_rescEta = new TH1F("McZ_rescEta", "Monte Carlo Rescaled Z #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McZ_Phi = new TH1F("McZ_phi", "Monte Carlo Z #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McZ_rescPhi = new TH1F("McZ_rescPhi", "Monte Carlo Z Rescaled #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElec_Pt = new TH1F("McElec_Pt", "Monte Carlo Electron p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_rescPt = new TH1F("McElec_rescPt", "Monte Carlo Rescaled Electron p_{T};Rescaled p_{T};Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_Eta = new TH1F("McElec_Eta", "Monte Carlo Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McElec_rescEta = new TH1F("McElec_rescEta", "Monte Carlo Rescaled Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); -// TH1F* h_McElec_Phi = new TH1F("McElec_Phi", "Monte Carlo Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); -// TH1F* h_McElec_rescPhi = new TH1F("McElec_rescPhi", "Monte Carlo Rescaled Electron #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McErNu_Pt = new TH1F("McErNu_Pt", "Monte Carlo Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_rescPt = new TH1F("McErNu_rescPt", "Monte Carlo Rescaled Ersatz Neutrino p_{T};p_{T} / GeV;Arbitrary Units", 100, 0., 100.); - TH1F* h_McErNu_Eta = new TH1F("McErNu_Eta", "Monte Carlo Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_rescEta = new TH1F("McErNu_rescEta", "Monte Carlo Rescaled Ersatz Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McErNu_Phi = new TH1F("McErNu_Phi", "Monte Carlo Ersatz Neutrino #phi;#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McErNu_rescPhi = new TH1F("McErNu_rescPhi", "Monte Carlo Rescaled Ersatz Neutrino #phi;Rescaled #phi;Arbitrary Units", 100, 0., 3.1416); - - TH1F* h_McElecErNu_dPhi = new TH1F("McElecErNu_dPhi", "Monte Carlo #Delta#phi between Electrons;#Delta#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McElecErNu_dR = new TH1F("McElecErNu_dR", "Monte Carlo #DeltaR between Electrons;MC Match;Arbitrary Units", 100, 0., 3.1416); - //TH1I* h_McMatch = new TH1I("McMatch", "Monte Carlo Match of Ersatz Neutrino to an Electron;MC Match;Arbitrary Units", 2, 0, 2); - -// TH1F* h_EtaInt = new TH1F("EtaInt", "", 345, 0, 345); -// TH1F* h_EtaWeights = new TH1F("EtaWeights", "", 40, 0., 2.); - - long nEntries = t->GetEntries(); - cout << "Number of Events = " << nEntries << endl; - for (long i=0; i < nEntries; i++) - { - t->GetEntry(i); - - h_nTags->Fill(nTags); - h_nErNu->Fill(nErNu); - h_nMcElecs_Zmum->Fill(nMcElecs_Zmum); - h_nMcElecs_Final->Fill(nMcElecs_Final); - h_RecoCaloMEt->Fill(caloMEt); - - for (int j=0; j < nErNu; j++) - { - - h_nRecHitsInStrip->Fill(nRecHitsInStrip[j]); - h_nRecHitsInCone->Fill(nRecHitsInCone[j]); - - h_Z_pt->Fill(Z_pt[j]); - - h_elec_q->Fill(elec_q[j]); - h_elec_pt->Fill(elec_pt[j]); - h_elec_eta->Fill(elec_eta[j]); - h_elec_phi->Fill(elec_phi[j]); - h_elec_sIhIh->Fill(elec_sIhIh[j]); - h_elec_dPhi->Fill(elec_dPhi[j]); - h_elec_dEta->Fill(elec_dEta[j]); - h_elec_TrkIso->Fill(elec_trkIso[j]); - h_elec_EcalIso->Fill(elec_EcalIso[j]); - h_elec_HcalIso->Fill(elec_HcalIso[j]); - h_elec_rescPt->Fill(elec_rescPt[j]); - h_elec_rescEta->Fill(elec_rescEta[j]); - -// h_ErNu_q->Fill(probe_q[j]); - h_ErNu_pt->Fill(probe_pt[j]); - h_ErNu_eta->Fill(probe_eta[j]); - h_ErNu_phi->Fill(probe_phi[j]); - h_ErNu_rescPt->Fill(probe_rescPt[j]); - h_ErNu_rescEta->Fill(probe_rescEta[j]); - - h_ErNu_sIhIh->Fill(ernu_sIhIh[j]); -// h_ErNu_dPhi->Fill(ernu_dPhi[j]); -// h_ErNu_dEta->Fill(ernu_dEta[j]); - h_ErNu_TrkIso->Fill(ernu_trkIso[j]); -// h_ErNu_EcalIso->Fill(ernu_EcalIso[j]); -// h_ErNu_HcalIso->Fill(ernu_HcalIso[j]); - h_ErNu_e1x5Max->Fill(ernu_e1x5[j]); - h_ErNu_e2x5Max->Fill(ernu_e2x5[j]); - h_ErNu_e5x5->Fill(ernu_e5x5[j]); - h_ErNu_HcalE015->Fill(ernu_HcalE015[j]); - h_ErNu_HcalEt015->Fill(ernu_HcalEt015[j]); - - h_ErNu_E->Fill(ernu_E[j]); - h_ErNu_rawE->Fill(ernu_rawE[j]); - h_ErNu_unclusE->Fill(ernu_unclusE[j]); - h_ErNu_fEtaCorrE->Fill(ernu_fEtaCorrE[j]); - h_ErNu_fBremCorrE->Fill(ernu_fBremCorrE[j]); - h_ErNu_AddCorrE->Fill(ernu_AddCorrE[j]); - h_ErNu_nClusters->Fill(ernu_nClusters[j]); - -// h_ErsatzV1MEt->Fill(ErsatzV1MEt[j]); -// h_ErsatzV1Mt->Fill(ErsatzV1Mt[j]); -// h_ErsatzV1MEtphi->Fill(ErsatzV1MEtphi[j]); -// h_ErsatzV1aMEt->Fill(ErsatzV1aMEt[j]); -// h_ErsatzV1aMt->Fill(ErsatzV1aMt[j]); -// h_ErsatzV1aMEtphi->Fill(ErsatzV1aMEtphi[j]); - h_ErsatzV1bMEt->Fill(ErsatzV1bMEt[j]); - h_ErsatzV1bMt->Fill(ErsatzV1bMt[j]); - h_ErsatzV1bMEtphi->Fill(ErsatzV1bMEtphi[j]); -// h_ErsatzV1cMEt->Fill(ErsatzV1cMEt[j]); -// h_ErsatzV1cMt->Fill(ErsatzV1cMt[j]); -// h_ErsatzV1cMEtphi->Fill(ErsatzV1cMEtphi[j]); -// h_ErsatzV2MEt->Fill(ErsatzV2MEt[j]); -// h_ErsatzV2Mt->Fill(ErsatzV2Mt[j]); -// h_ErsatzV2MEtphi->Fill(ErsatzV2MEtphi[j]); - h_ErsatzV1Mesc->Fill(mesc[j]); - h_ErsatzV1rescMesc->Fill(rescMesc[j]); - - h_McZ_M->Fill(McZ_m[j]); - h_McZ_rescM->Fill(McZ_rescM[j]); - h_McZ_Pt->Fill(McZ_pt[j]); -// h_McZ_rescPt->Fill(McZ_rescPt[j]); -// h_McZ_Eta->Fill(McZ_eta[j]); -// h_McZ_rescEta->Fill(McZ_rescEta[j]); - h_McZ_Phi->Fill(McZ_phi[j]); -// h_McZ_rescPhi->Fill(McZ_rescPhi[j]); - - h_McElec_Pt->Fill(McElec_pt[j]); - h_McElec_rescPt->Fill(McElec_rescPt[j]); - h_McElec_Eta->Fill(McElec_eta[j]); - h_McElec_rescEta->Fill(McElec_rescEta[j]); -// h_McElec_Phi->Fill(McElec_phi[j]); -// h_McElec_rescPhi->Fill(McElec_rescPhi[j]); - - h_McErNu_Pt->Fill(McErNu_pt[j]); - h_McErNu_rescPt->Fill(McErNu_rescPt[j]); - h_McErNu_Eta->Fill(McErNu_eta[j]); - h_McErNu_rescEta->Fill(McErNu_rescEta[j]); - h_McErNu_Phi->Fill(McErNu_phi[j]); - h_McErNu_rescPhi->Fill(McErNu_rescPhi[j]); - - h_McElecErNu_dPhi->Fill(McElecErNu_dPhi[j]); - h_McElecErNu_dR->Fill(McElecErNu_dR[j]); - //h_McMatch->Fill(ernu_McMatch[j]); - } - } - outfile->Write(); - outfile->Close(); -} diff --git a/ElectroWeakAnalysis/ZEE/macros/inputFiles b/ElectroWeakAnalysis/ZEE/macros/inputFiles deleted file mode 100644 index d8419cca90d4d..0000000000000 --- a/ElectroWeakAnalysis/ZEE/macros/inputFiles +++ /dev/null @@ -1,21 +0,0 @@ -# zee or wenu -zee -# file name, type (sig, qcd, bce, gje, ewk), weight -histos_zee.root sig 1.46 -histos_q20_30.root qcd 0 -histos_q30_80.root qcd 100. -histos_q80_170.root qcd 0 -histos_b20_30.root bce 0 -histos_b30_80.root bce 0 -histos_b80_170.root bce 0 -histos_wenu.root ewk 0 -histos_wtaunu.root ewk 0 -histos_ztautau.root ewk 0 -histos_gj15.root gje 0 -histos_gj20.root gje 0 -histos_gj25.root gje 10.12 -histos_gj30.root gje 0 -histos_gj35.root gje 0 -histos_wmunu.root ewk 0 -histos_ttbar.root ewk 0 - diff --git a/ElectroWeakAnalysis/ZEE/macros/tdrstyle.C b/ElectroWeakAnalysis/ZEE/macros/tdrstyle.C deleted file mode 100644 index 59906aa4ba3e3..0000000000000 --- a/ElectroWeakAnalysis/ZEE/macros/tdrstyle.C +++ /dev/null @@ -1,157 +0,0 @@ -#include "TStyle.h" - -// tdrGrid: Turns the grid lines on (true) or off (false) - -void tdrGrid(bool gridOn) { - tdrStyle->SetPadGridX(gridOn); - tdrStyle->SetPadGridY(gridOn); -} - -// fixOverlay: Redraws the axis - -void fixOverlay() { - gPad->RedrawAxis(); -} - -void setTDRStyle() { - TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); - -// For the canvas: - tdrStyle->SetCanvasBorderMode(0); - tdrStyle->SetCanvasColor(kWhite); - tdrStyle->SetCanvasDefH(600); //Height of canvas - tdrStyle->SetCanvasDefW(600); //Width of canvas - tdrStyle->SetCanvasDefX(0); //POsition on screen - tdrStyle->SetCanvasDefY(0); - -// For the Pad: - tdrStyle->SetPadBorderMode(0); - // tdrStyle->SetPadBorderSize(Width_t size = 1); - tdrStyle->SetPadColor(kWhite); - tdrStyle->SetPadGridX(false); - tdrStyle->SetPadGridY(false); - tdrStyle->SetGridColor(0); - tdrStyle->SetGridStyle(3); - tdrStyle->SetGridWidth(1); - -// For the frame: - tdrStyle->SetFrameBorderMode(0); - tdrStyle->SetFrameBorderSize(1); - tdrStyle->SetFrameFillColor(0); - tdrStyle->SetFrameFillStyle(0); - tdrStyle->SetFrameLineColor(1); - tdrStyle->SetFrameLineStyle(1); - tdrStyle->SetFrameLineWidth(1); - -// For the histo: - // tdrStyle->SetHistFillColor(1); - // tdrStyle->SetHistFillStyle(0); - tdrStyle->SetHistLineColor(1); - tdrStyle->SetHistLineStyle(0); - tdrStyle->SetHistLineWidth(1); - // tdrStyle->SetLegoInnerR(Float_t rad = 0.5); - // tdrStyle->SetNumberContours(Int_t number = 20); - - tdrStyle->SetEndErrorSize(2); -// tdrStyle->SetErrorMarker(20); - tdrStyle->SetErrorX(0.); - - tdrStyle->SetMarkerStyle(20); - -//For the fit/function: - tdrStyle->SetOptFit(1); - tdrStyle->SetFitFormat("5.4g"); - tdrStyle->SetFuncColor(2); - tdrStyle->SetFuncStyle(1); - tdrStyle->SetFuncWidth(1); - -//For the date: - tdrStyle->SetOptDate(0); - // tdrStyle->SetDateX(Float_t x = 0.01); - // tdrStyle->SetDateY(Float_t y = 0.01); - -// For the statistics box: - tdrStyle->SetOptFile(0); - tdrStyle->SetOptStat(0); // To display the mean and RMS: SetOptStat("mr"); - tdrStyle->SetStatColor(kWhite); - tdrStyle->SetStatFont(42); - tdrStyle->SetStatFontSize(0.025); - tdrStyle->SetStatTextColor(1); - tdrStyle->SetStatFormat("6.4g"); - tdrStyle->SetStatBorderSize(1); - tdrStyle->SetStatH(0.1); - tdrStyle->SetStatW(0.15); - // tdrStyle->SetStatStyle(Style_t style = 1001); - // tdrStyle->SetStatX(Float_t x = 0); - // tdrStyle->SetStatY(Float_t y = 0); - -// Margins: - tdrStyle->SetPadTopMargin(0.05); - tdrStyle->SetPadBottomMargin(0.12); - tdrStyle->SetPadLeftMargin(0.15); - tdrStyle->SetPadRightMargin(0.04); - -// For the Global title: - - tdrStyle->SetOptTitle(0); - tdrStyle->SetTitleFont(42); - tdrStyle->SetTitleColor(1); - tdrStyle->SetTitleTextColor(1); - tdrStyle->SetTitleFillColor(10); - tdrStyle->SetTitleFontSize(0.05); - // tdrStyle->SetTitleH(0); // Set the height of the title box - // tdrStyle->SetTitleW(0); // Set the width of the title box - // tdrStyle->SetTitleX(0); // Set the position of the title box - // tdrStyle->SetTitleY(0.985); // Set the position of the title box - // tdrStyle->SetTitleStyle(Style_t style = 1001); - // tdrStyle->SetTitleBorderSize(2); - -// For the axis titles: - - tdrStyle->SetTitleColor(1, "XYZ"); - tdrStyle->SetTitleFont(42, "XYZ"); - tdrStyle->SetTitleSize(0.06, "XYZ"); - // tdrStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size? - // tdrStyle->SetTitleYSize(Float_t size = 0.02); - tdrStyle->SetTitleXOffset(0.9); - tdrStyle->SetTitleYOffset(1.25); - // tdrStyle->SetTitleOffset(1.1, "Y"); // Another way to set the Offset - -// For the axis labels: - - tdrStyle->SetLabelColor(1, "XYZ"); - tdrStyle->SetLabelFont(42, "XYZ"); - tdrStyle->SetLabelOffset(0.007, "XYZ"); - tdrStyle->SetLabelSize(0.05, "XYZ"); - -// For the axis: - - tdrStyle->SetAxisColor(1, "XYZ"); - tdrStyle->SetStripDecimals(kTRUE); - tdrStyle->SetTickLength(0.03, "XYZ"); - tdrStyle->SetNdivisions(510, "XYZ"); - tdrStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame - tdrStyle->SetPadTickY(1); - -// Change for log plots: - tdrStyle->SetOptLogx(0); - tdrStyle->SetOptLogy(0); - tdrStyle->SetOptLogz(0); - -// Postscript options: - tdrStyle->SetPaperSize(20.,20.); - // tdrStyle->SetLineScalePS(Float_t scale = 3); - // tdrStyle->SetLineStyleString(Int_t i, const char* text); - // tdrStyle->SetHeaderPS(const char* header); - // tdrStyle->SetTitlePS(const char* pstitle); - - // tdrStyle->SetBarOffset(Float_t baroff = 0.5); - // tdrStyle->SetBarWidth(Float_t barwidth = 0.5); - // tdrStyle->SetPaintTextFormat(const char* format = "g"); - // tdrStyle->SetPalette(Int_t ncolors = 0, Int_t* colors = 0); - // tdrStyle->SetTimeOffset(Double_t toffset); - // tdrStyle->SetHistMinimumZero(kTRUE); - - tdrStyle->cd(); - -} diff --git a/ElectroWeakAnalysis/ZEE/python/simpleCutBasedElectronIDSpring10_cfi.py b/ElectroWeakAnalysis/ZEE/python/simpleCutBasedElectronIDSpring10_cfi.py deleted file mode 100644 index 88f7ce351171b..0000000000000 --- a/ElectroWeakAnalysis/ZEE/python/simpleCutBasedElectronIDSpring10_cfi.py +++ /dev/null @@ -1,164 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -## Electron ID Based on Simple Cuts: Spring10 MC tuned selections -# -# Instructions on how to use this file -# ==================================== -# -# The selections that are implemented in this python cfg are -# explained in this twiki page: -# https://twiki.cern.ch/twiki/bin/view/CMS/SimpleCutBasedEleID -# In summary, they come in 6 different tightness levels. For -# each tightness, the user can select whether they want -# combined isolation or relative isolations. -# -# In order to use this cfg file you have to include it from the -# python directory that you have placed it, clone some selection -# of your preference and run it in your sequence -# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -# from ElectroWeakAnalysis.WENu.simpleCutBasedElectronID_cfi import * -# -# simpleEleId_95relIso = simpleCutBasedElectronID.clone() -# simpleEleId_95relIso.electronQuality = '_95relIso_' -# mySequence = cms.Sequence(...+...+..+simpleEleId95relIso+...) -# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -# Warning: make sure that you use the correct tags for the -# RecoEgamma/ElectronIdentification package -# consult this twiki to obtain the latest information: -# -# https://twiki.cern.ch/twiki/bin/view/CMS/SimpleCutBasedEleID -# -# this version of the file needs -# V00-03-07-03 RecoEgamma/ElectronIdentification - -simpleCutBasedElectronID = cms.EDProducer("EleIdCutBasedExtProducer", - -# import here your collections - src = cms.InputTag("gsfElectrons"), - #reducedBarrelRecHitCollection = cms.InputTag("ecalRecHit","EcalRecHitsEB"), - #reducedEndcapRecHitCollection = cms.InputTag("ecalRecHit","EcalRecHitsEE"), - # Spring10 uses these names: - reducedBarrelRecHitCollection = cms.InputTag("reducedEcalRecHitsEB"), - reducedEndcapRecHitCollection = cms.InputTag("reducedEcalRecHitsEE"), - # if you want the vertices or the offline beam spot - verticesCollection = cms.InputTag("offlineBeamSpot"), - #dataMagneticFieldSetUp = cms.bool(False), - #dcsTag = cms.InputTag("scalersRawToDigi"), - algorithm = cms.string('eIDCB'), - - #electronIDType: robust for the simple Cut-Based - #electronQuality: see later - #electronVersion: use V03 with the offline beam spot - electronIDType = cms.string('robust'), - electronQuality = cms.string('test'), - electronVersion = cms.string('V04'), - -#### -#### Selections with Relative Isolation - robust95relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(1.5e-01, 1.0e-02, 8.0e-01, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 1.5e-01, - 2.0e+00, 1.2e-01, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), -# endcap = cms.vdouble(7.0e-02, 3.0e-02, 7.0e-01, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 8.0e-02, -# 6.0e-02, 5.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), - endcap = cms.vdouble(7.0e-02, 3.0e-02, 7.0e-01, 1.0e-02, -1, -1, 9999., 9999., 9999., 9999., 9999., 8.0e-02, - 6.0e-02, 5.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), - ), - robust90relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(1.2e-01, 1.0e-02, 8.0e-01, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 1.2e-01, - 9.0e-02, 1.0e-01, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(5.0e-02, 3.0e-02, 7.0e-01, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, -# 6.0e-02, 3.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - endcap = cms.vdouble(5.0e-02, 3.0e-02, 7.0e-01, 9.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, - 6.0e-02, 3.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - ), - robust85relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(4.0e-02, 1.0e-02, 6.0e-02, 6.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9.0e-02, - 8.0e-02, 1.0e-01, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 4.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, -# 5.0e-02, 2.5e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 4.0e-02, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, - 5.0e-02, 2.5e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - ), - robust80relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(4.0e-02, 1.0e-02, 6.0e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9.0e-02, - 7.0e-02, 1.0e-01, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 3.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 4.0e-02, -# 5.0e-02, 2.5e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 3.0e-02, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 4.0e-02, - 5.0e-02, 2.5e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - # 70% point modified with restricting cuts to physical values - robust70relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(2.5e-02, 1.0e-02, 3.0e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 5.0e-02, - 6.0e-02, 3.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 2.5e-02, -# 2.5e-02, 2.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 5.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 2.5e-02, - 2.5e-02, 2.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - # 60% point modified with restricting cuts to physical values - robust60relIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(2.5e-02, 1.0e-02, 2.5e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 4.0e-02, - 4.0e-02, 3.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 2.5e-02, -# 2.0e-02, 2.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 5.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 2.5e-02, - 2.0e-02, 2.0e-02, 9999., 9999., 9999., 9999., 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - -#### -#### Selections with Combined Isolation - - robust95cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(1.5e-01, 1.0e-02, 8.0e-01, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 1.5e-01, 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), -# endcap = cms.vdouble(7.0e-02, 3.0e-02, 7.0e-01, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 1.0e-01, 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), - endcap = cms.vdouble(7.0e-02, 3.0e-02, 7.0e-01, 1.0e-02, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 1.0e-01, 0.0, -9999., 9999., 9999., 1, -1, 0.0, 0.0, ), - ), - robust90cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(1.2e-01, 1.0e-02, 8.0e-01, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 1.0e-01, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(5.0e-02, 3.0e-02, 7.0e-01, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 7.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - endcap = cms.vdouble(5.0e-02, 3.0e-02, 7.0e-01, 9.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 7.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - ), - robust85cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(4.0e-02, 1.0e-02, 6.0e-02, 6.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 9.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 4.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 6.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 4.0e-02, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 6.0e-02, 0.0, -9999., 9999., 9999., 1, -1, 0.02, 0.02, ), - ), - robust80cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(4.0e-02, 1.0e-02, 6.0e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 7.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 3.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 6.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 3.0e-02, 7.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 6.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - # 70% point modified with restricting cuts to physical values - robust70cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(2.5e-02, 1.0e-02, 3.0e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 4.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 3.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 5.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 3.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - # 60% point modified with restricting cuts to physical values - robust60cIsoEleIDCutsV04 = cms.PSet( - barrel = cms.vdouble(2.5e-02, 1.0e-02, 2.5e-02, 4.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 3.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), -# endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 9999., -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., -# 9999., 9999., 9999., 9999., 9999., 2.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - endcap = cms.vdouble(2.5e-02, 3.0e-02, 2.0e-02, 5.0e-03, -1, -1, 9999., 9999., 9999., 9999., 9999., 9999., - 9999., 9999., 9999., 9999., 9999., 2.0e-02, 0.0, -9999., 9999., 9999., 0, -1, 0.02, 0.02, ), - ), - -) - diff --git a/ElectroWeakAnalysis/ZEE/python/simpleCutBasedSpring10SelectionBlocks_cfi.py b/ElectroWeakAnalysis/ZEE/python/simpleCutBasedSpring10SelectionBlocks_cfi.py deleted file mode 100644 index e9cf485ad85d2..0000000000000 --- a/ElectroWeakAnalysis/ZEE/python/simpleCutBasedSpring10SelectionBlocks_cfi.py +++ /dev/null @@ -1,294 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -######################################################### -## 95% -selection_95relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(1.5e-01), - ecalIso_EB = cms.untracked.double(2.0e+00), - hcalIso_EB = cms.untracked.double(1.2e-01), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(8.0e-01), - deta_EB = cms.untracked.double(7.0e-03), - hoe_EB = cms.untracked.double(1.5e-01), - cIso_EB = cms.untracked.double(10000.), - - trackIso_EE = cms.untracked.double(8.0e-02), - ecalIso_EE = cms.untracked.double(6.0e-02), - hcalIso_EE = cms.untracked.double(5.0e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(7.0e-01), - deta_EE = cms.untracked.double(1.0e-02), - hoe_EE = cms.untracked.double(7.0e-02), - cIso_EE = cms.untracked.double(10000. ), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -selection_95cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(8.0e-01), - deta_EB = cms.untracked.double(7.0e-03), - hoe_EB = cms.untracked.double(1.5e-01), - cIso_EB = cms.untracked.double(1.5e-01), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(7.0e-01), - deta_EE = cms.untracked.double(1.0e-02), - hoe_EE = cms.untracked.double(7.0e-02), - cIso_EE = cms.untracked.double(1.0e-01), - useConversionRejection = cms.untracked.bool(False), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -######################################################### -## 90% -selection_90relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(1.2e-01), - ecalIso_EB = cms.untracked.double(9.0e-02), - hcalIso_EB = cms.untracked.double(1.0e-01), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(8.0e-01), - deta_EB = cms.untracked.double(7.0e-03), - hoe_EB = cms.untracked.double(1.2e-01), - cIso_EB = cms.untracked.double(10000. ), - - trackIso_EE = cms.untracked.double(5.0e-02), - ecalIso_EE = cms.untracked.double(6.0e-02), - hcalIso_EE = cms.untracked.double(3.0e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(7.0e-01), - deta_EE = cms.untracked.double(9.0e-03), - hoe_EE = cms.untracked.double(5.0e-02), - cIso_EE = cms.untracked.double(10000. ), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -selection_90cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(8.0e-01), - deta_EB = cms.untracked.double(7.0e-03), - hoe_EB = cms.untracked.double(1.2e-01), - cIso_EB = cms.untracked.double(1.0e-01), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(7.0e-01), - deta_EE = cms.untracked.double(9.0e-03), - hoe_EE = cms.untracked.double(5.0e-02), - cIso_EE = cms.untracked.double(7.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -######################################################### -## 85% -selection_85relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(9.0e-02), - ecalIso_EB = cms.untracked.double(8.0e-02), - hcalIso_EB = cms.untracked.double(1.0e-01), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(6.0e-02), - deta_EB = cms.untracked.double(6.0e-03), - hoe_EB = cms.untracked.double(4.0e-02), - cIso_EB = cms.untracked.double(10000. ), - - trackIso_EE = cms.untracked.double(5.0e-02), - ecalIso_EE = cms.untracked.double(5.0e-02), - hcalIso_EE = cms.untracked.double(2.5e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(4.0e-02), - deta_EE = cms.untracked.double(7.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(10000. ), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -selection_85cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(6.0e-02), - deta_EB = cms.untracked.double(6.0e-03), - hoe_EB = cms.untracked.double(4.0e-02), - cIso_EB = cms.untracked.double(9.0e-02), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(4.0e-02), - deta_EE = cms.untracked.double(7.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(6.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(1), - ) - -######################################################### -## 80% -selection_80relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(9.0e-02), - ecalIso_EB = cms.untracked.double(7.0e-02), - hcalIso_EB = cms.untracked.double(1.0e-01), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(6.0e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(4.0e-02), - cIso_EB = cms.untracked.double(100000.), - - trackIso_EE = cms.untracked.double(4.0e-02), - ecalIso_EE = cms.untracked.double(5.0e-02), - hcalIso_EE = cms.untracked.double(2.5e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(3.0e-02), - deta_EE = cms.untracked.double(7.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(100000.), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -selection_80cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(6.0e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(4.0e-02), - cIso_EB = cms.untracked.double(7.0e-02), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(3.0e-02), - deta_EE = cms.untracked.double(7.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(6.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -######################################################### -## 70% corrected with lower limits to cut values -selection_70relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(5.0e-02), - ecalIso_EB = cms.untracked.double(6.0e-02), - hcalIso_EB = cms.untracked.double(3.0e-02), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(3.0e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(2.5e-02), - cIso_EB = cms.untracked.double(100000.), - - trackIso_EE = cms.untracked.double(2.5e-02), - ecalIso_EE = cms.untracked.double(2.5e-02), - hcalIso_EE = cms.untracked.double(2.0e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(2.0e-02), - deta_EE = cms.untracked.double(5.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(100000.), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -selection_70cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(3.0e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(2.5e-02), - cIso_EB = cms.untracked.double(4.0e-02), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(2.0e-02), - deta_EE = cms.untracked.double(5.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(3.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -######################################################### -## 60% corrected with lower limits to cut values -selection_60relIso = cms.PSet ( - trackIso_EB = cms.untracked.double(4.0e-02), - ecalIso_EB = cms.untracked.double(4.0e-02), - hcalIso_EB = cms.untracked.double(3.0e-02), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(2.5e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(2.5e-02), - cIso_EB = cms.untracked.double(100000.), - - trackIso_EE = cms.untracked.double(2.5e-02), - ecalIso_EE = cms.untracked.double(2.0e-02), - hcalIso_EE = cms.untracked.double(2.0e-02), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(2.0e-02), - deta_EE = cms.untracked.double(5.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(100000.), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -selection_60cIso = cms.PSet ( - trackIso_EB = cms.untracked.double(100000.), - ecalIso_EB = cms.untracked.double(100000.), - hcalIso_EB = cms.untracked.double(100000.), - sihih_EB = cms.untracked.double(1.0e-02), - dphi_EB = cms.untracked.double(2.5e-02), - deta_EB = cms.untracked.double(4.0e-03), - hoe_EB = cms.untracked.double(2.5e-02), - cIso_EB = cms.untracked.double(3.0e-02), - - trackIso_EE = cms.untracked.double(100000.), - ecalIso_EE = cms.untracked.double(100000.), - hcalIso_EE = cms.untracked.double(100000.), - sihih_EE = cms.untracked.double(3.0e-02), - dphi_EE = cms.untracked.double(2.0e-02), - deta_EE = cms.untracked.double(5.0e-03), - hoe_EE = cms.untracked.double(2.5e-02), - cIso_EE = cms.untracked.double(2.0e-02), - useConversionRejection = cms.untracked.bool(True), - useExpectedMissingHits = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits = cms.untracked.int32(0), - ) - -######################################################### - - - diff --git a/ElectroWeakAnalysis/ZEE/python/simpleEleIdSequence_cff.py b/ElectroWeakAnalysis/ZEE/python/simpleEleIdSequence_cff.py deleted file mode 100644 index 053683cb15966..0000000000000 --- a/ElectroWeakAnalysis/ZEE/python/simpleEleIdSequence_cff.py +++ /dev/null @@ -1,58 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.ZEE.simpleCutBasedElectronIDSpring10_cfi import * - - -simpleEleId95relIso = simpleCutBasedElectronID.clone() -simpleEleId95relIso.electronQuality = '95relIso' - -simpleEleId90relIso = simpleCutBasedElectronID.clone() -simpleEleId90relIso.electronQuality = '90relIso' - -simpleEleId85relIso = simpleCutBasedElectronID.clone() -simpleEleId85relIso.electronQuality = '85relIso' - -simpleEleId80relIso = simpleCutBasedElectronID.clone() -simpleEleId80relIso.electronQuality = '80relIso' - -simpleEleId70relIso = simpleCutBasedElectronID.clone() -simpleEleId70relIso.electronQuality = '70relIso' - -simpleEleId60relIso = simpleCutBasedElectronID.clone() -simpleEleId60relIso.electronQuality = '60relIso' - - -simpleEleId95cIso = simpleCutBasedElectronID.clone() -simpleEleId95cIso.electronQuality = '95cIso' - -simpleEleId90cIso = simpleCutBasedElectronID.clone() -simpleEleId90cIso.electronQuality = '90cIso' - -simpleEleId85cIso = simpleCutBasedElectronID.clone() -simpleEleId85cIso.electronQuality = '85cIso' - -simpleEleId80cIso = simpleCutBasedElectronID.clone() -simpleEleId80cIso.electronQuality = '80cIso' - -simpleEleId70cIso = simpleCutBasedElectronID.clone() -simpleEleId70cIso.electronQuality = '70cIso' - -simpleEleId60cIso = simpleCutBasedElectronID.clone() -simpleEleId60cIso.electronQuality = '60cIso' - - - -simpleEleIdSequence = cms.Sequence(simpleEleId95relIso+ - simpleEleId90relIso+ - simpleEleId85relIso+ - simpleEleId80relIso+ - simpleEleId70relIso+ - simpleEleId60relIso+ - simpleEleId95cIso+ - simpleEleId90cIso+ - simpleEleId85cIso+ - simpleEleId80cIso+ - simpleEleId70cIso+ - simpleEleId60cIso - ) - diff --git a/ElectroWeakAnalysis/ZEE/src/AnalysisErsatz.cc b/ElectroWeakAnalysis/ZEE/src/AnalysisErsatz.cc deleted file mode 100644 index 027907fd8c6af..0000000000000 --- a/ElectroWeakAnalysis/ZEE/src/AnalysisErsatz.cc +++ /dev/null @@ -1,534 +0,0 @@ -/*#include "ElectroWeakAnalysis/ZEE/interface/AnalysisErsatz.h" -AnalysisErsatz::AnalysisErsatz(const edm::ParameterSet& ps) -{ - MCTruthCollection_ = consumes(ps.getParameter("MCTruthCollection")); - ElectronCollection_ = consumes(ps.getParameter("ElectronCollection")); - GenMEtCollection_ = consumes(ps.getParameter("GenMEtCollection")); - //T1MEtCollection_ = consumes(ps.getParameter("T1MEtCollection")); - PfMEtCollection_ = consumes(ps.getParameter("PfMEtCollection")); - TcMEtCollection_ = consumes(ps.getParameter("TcMEtCollection")); - CaloMEtCollection_ = consumes(ps.getParameter("CaloMEtCollection")); - TriggerEvent_ = consumes(ps.getParameter("TriggerEvent")); - TriggerPath_ = ps.getParameter("TriggerPath"); - TriggerResults_ = consumes(ps.getParameter("TriggerResults")); - TriggerName_ = ps.getParameter("TriggerName"); - ErsatzEvent_ = ps.getParameter("ErsatzEvent"); - double CElecPtMin = ps.getParameter("CElecPtMin"); - double CEB_siEiE = ps.getParameter("CEB_sigmaIEtaIEta"); - double CEB_dPhiIn = ps.getParameter("CEB_deltaPhiIn"); - double CEB_dEtaIn = ps.getParameter("CEB_deltaEtaIn"); - double CEB_EcalIso = ps.getParameter("CEB_EcalIso"); - double CEB_HcalIso = ps.getParameter("CEB_HcalIso"); - double CEB_TrckIso = ps.getParameter("CEB_TrckIso"); - double CEE_siEiE = ps.getParameter("CEE_sigmaIEtaIEta"); - double CEE_dPhiIn = ps.getParameter("CEE_deltaPhiIn"); - double CEE_dEtaIn = ps.getParameter("CEE_deltaEtaIn"); - double CEE_EcalIso = ps.getParameter("CEE_EcalIso"); - double CEE_HcalIso = ps.getParameter("CEE_HcalIso"); - double CEE_TrckIso = ps.getParameter("CEE_TrckIso"); - mW_ = ps.getParameter("mW"); - mZ_ = ps.getParameter("mZ"); - - CutVector_.resize(13); - CutVector_[EtCut_] = CElecPtMin; - CutVector_[EB_sIhIh_] = CEB_siEiE; - CutVector_[EB_dPhiIn_] = CEB_dPhiIn; - CutVector_[EB_dEtaIn_] = CEB_dEtaIn; - CutVector_[EB_TrckIso_] = CEB_TrckIso; - CutVector_[EB_EcalIso_] = CEB_EcalIso; - CutVector_[EB_HcalIso_] = CEB_HcalIso; - CutVector_[EE_sIhIh_] = CEE_siEiE; - CutVector_[EE_dPhiIn_] = CEE_dPhiIn; - CutVector_[EE_dEtaIn_] = CEE_dEtaIn; - CutVector_[EE_TrckIso_] = CEE_TrckIso; - CutVector_[EE_EcalIso_] = CEE_EcalIso; - CutVector_[EE_HcalIso_] = CEE_HcalIso; - -} - - -AnalysisErsatz::~AnalysisErsatz() -{ -} - - -// ------------ method called once each job just before starting event loop ------------ -void AnalysisErsatz::beginJob() -{ - edm::Service fs; - t_ = fs->make("AnalysisData", "Analysis of Ersatz MEt Properties"); - - t_->Branch("Boson_pt", &Boson_pt_,"Boson_pt/D"); - t_->Branch("Boson_y", &Boson_y_,"Boson_y/D"); - t_->Branch("Boson_phi", &Boson_phi_,"Boson_phi/D"); - t_->Branch("Boson_m", &Boson_m_,"Boson_m/D"); - t_->Branch("McElec1_pt", McElec1_pt_,"McElec1_pt[4]/D"); - t_->Branch("McElec1_eta", McElec1_eta_,"McElec1_eta[4]/D"); - t_->Branch("McElec3_pt", McElec3_pt_,"McElec3_pt[4]/D"); - t_->Branch("McElec3_eta", McElec3_eta_,"McElec3_eta[4]/D"); - t_->Branch("RndmInt", &RndmInt_, "RndmInt/I"); - t_->Branch("RndmTrig", &RndmTrig_, "RndmTrig/I"); - t_->Branch("RndmReco", &RndmReco_, "RndmReco/I"); - t_->Branch("OthrTrig", &OthrTrig_, "OthrTrig/I"); - t_->Branch("OthrReco", &OthrReco_, "OthrReco/I"); - t_->Branch("RndmMcElec_pt", &RndmMcElec_pt_,"RndmMcElec_pt/D"); - t_->Branch("RndmMcElec_eta", &RndmMcElec_eta_,"RndmMcElec_eta/D"); - t_->Branch("RndmMcElec_phi", &RndmMcElec_phi_,"RndmMcElec_phi/D"); - t_->Branch("RndmMcElec_Rescaled_pt", &RndmMcElec_Rescaled_pt_,"RndmMcElec_Rescaled_pt/D"); - t_->Branch("RndmMcElec_Rescaled_eta", &RndmMcElec_Rescaled_eta_,"RndmMcElec_Rescaled_eta/D"); - t_->Branch("RndmMcElec_Rescaled_phi", &RndmMcElec_Rescaled_phi_,"RndmMcElec_Rescaled_phi/D"); - t_->Branch("RndmMcElecTRIG_pt", &RndmMcElecTRIG_pt_,"RndmMcElecTRIG_pt/D"); - t_->Branch("RndmMcElecTRIG_eta", &RndmMcElecTRIG_eta_,"RndmMcElecTRIG_eta/D"); - t_->Branch("RndmMcElecRECO_pt", &RndmMcElecRECO_pt_,"RndmMcElecRECO_pt/D"); - t_->Branch("RndmMcElecRECO_eta", &RndmMcElecRECO_eta_,"RndmMcElecRECO_eta/D"); - t_->Branch("OthrMcElec_pt", &OthrMcElec_pt_,"OthrMcElec_pt/D"); - t_->Branch("OthrMcElec_eta", &OthrMcElec_eta_,"OthrMcElec_eta/D"); - t_->Branch("OthrMcElec_phi", &OthrMcElec_phi_,"OthrMcElec_phi/D"); - t_->Branch("OthrMcElec_Rescaled_pt", &OthrMcElec_Rescaled_pt_,"OthrMcElec_Rescaled_pt/D"); - t_->Branch("OthrMcElec_Rescaled_eta", &OthrMcElec_Rescaled_eta_,"OthrMcElec_Rescaled_eta/D"); - t_->Branch("OthrMcElec_Rescaled_phi", &OthrMcElec_Rescaled_phi_,"OthrMcElec_Rescaled_phi/D"); - t_->Branch("OthrMcElecTRIG_pt", &OthrMcElecTRIG_pt_,"OthrMcElecTRIG_pt/D"); - t_->Branch("OthrMcElecTRIG_eta", &OthrMcElecTRIG_eta_,"OthrMcElecTRIG_eta/D"); - t_->Branch("OthrMcElecRECO_pt", &OthrMcElecRECO_pt_,"OthrMcElecRECO_pt/D"); - t_->Branch("OthrMcElecRECO_eta", &OthrMcElecRECO_eta_,"OthrMcElecRECO_eta/D"); - t_->Branch("McNu_pt", &McNu_pt_,"McNu_pt/D"); - t_->Branch("McNu_eta", &McNu_eta_,"McNu_eta/D"); - t_->Branch("McNu_phi", &McNu_phi_,"McNu_phi/D"); - t_->Branch("McNu_vx", &McNu_vx_,"McNu_vx/D"); - t_->Branch("McNu_vy", &McNu_vy_,"McNu_vy/D"); - t_->Branch("McNu_vz", &McNu_vz_,"McNu_vz/D"); - t_->Branch("McLeptons_dPhi", &McLeptons_dPhi_,"McLeptons_dPhi/D"); - t_->Branch("McLeptons_dEta", &McLeptons_dEta_,"McLeptons_dEta/D"); - t_->Branch("McLeptons_dR", &McLeptons_dR_,"McLeptons_dR/D"); - t_->Branch("nSelElecs", &nSelElecs_,"nSelElecs/I"); - t_->Branch("elec_q", elec_q_,"elec_q[4]/D"); - t_->Branch("elec_pt", elec_pt_,"elec_pt[4]/D"); - t_->Branch("elec_eta", elec_eta_,"elec_eta[4]/D"); - t_->Branch("elec_phi", elec_phi_,"elec_phi[4]/D"); - t_->Branch("elec_pt25", &elec_pt25_,"elec_pt25/D"); - t_->Branch("elec_eta25", &elec_eta25_,"elec_eta25/D"); - t_->Branch("elec_phi25", &elec_phi25_,"elec_phi25/D"); - t_->Branch("elec_sIhIh", elec_sIhIh_, "elec_sIhIh[4]/D"); - t_->Branch("elec_dPhiIn", elec_dPhiIn_, "elec_dPhiIn[4]/D"); - t_->Branch("elec_dEtaIn", elec_dEtaIn_, "elec_dEtaIn[4]/D"); - t_->Branch("elec_trckIso", elec_trckIso_,"elec_trckIso[4]/D"); - t_->Branch("elec_ecalIso", elec_ecalIso_,"elec_ecalIso[4]/D"); - t_->Branch("elec_hcalIso", elec_hcalIso_,"elec_hcalIso[4]/D"); - t_->Branch("elec_e2x5Max", elec_e2x5Max_,"elec_e2x5Max[4]/D"); - t_->Branch("elec_e1x5Max", elec_e1x5Max_,"elec_e1x5Max[4]/D"); - t_->Branch("elec_e5x5", elec_e5x5_,"elec_e5x5[4]/D"); - t_->Branch("elec_hoe", elec_hoe_,"elec_hoe[4]/D"); - t_->Branch("elec_eop", elec_eop_,"elec_eop[4]/D"); - t_->Branch("elec_pin", elec_pin_,"elec_pin[4]/D"); - t_->Branch("elec_pout", elec_pout_,"elec_pout[4]/D"); - - t_->Branch("Selected_nuPt", Selected_nuPt_, "Selected_nuPt[4]/D"); - t_->Branch("Selected_nuEta", Selected_nuEta_, "Selected_nuEta[4]/D"); - t_->Branch("Selected_nuPhi", Selected_nuPhi_, "Selected_nuPhi[4]/D"); - t_->Branch("caloMEt", &caloMEt_,"caloMEt/D"); - t_->Branch("t1MEt", &t1MEt_,"t1MEt/D"); - t_->Branch("t1MEtPhi", &t1MEtPhi_,"t1MEtPhi/D"); - t_->Branch("t1SumEt", &t1SumEt_,"t1SumEt/D"); - t_->Branch("pfMEt", &pfMEt_,"pfMEt/D"); - t_->Branch("pfMEtPhi", &pfMEtPhi_,"pfMEtPhi/D"); - t_->Branch("pfSumEt", &pfSumEt_,"pfSumEt/D"); - t_->Branch("tcMEt", &tcMEt_,"tcMEt/D"); - t_->Branch("tcMEtPhi", &tcMEtPhi_,"tcMEtPhi/D"); - t_->Branch("tcSumEt", &tcSumEt_,"tcSumEt/D"); - t_->Branch("caloSumEt", &caloSumEt_,"caloSumEt/D"); - t_->Branch("caloMEt25", &caloMEt25_,"caloMEt25/D"); - t_->Branch("caloMEt30", &caloMEt30_,"caloMEt30/D"); - t_->Branch("caloMEtECAL25", &caloMEtECAL25_,"caloMEtECAL25/D"); - t_->Branch("caloMEtECAL30", &caloMEtECAL30_,"caloMEtECAL30/D"); - t_->Branch("caloMEtPhi", &caloMEtPhi_,"caloMEtPhi/D"); - t_->Branch("caloMEtPhi25", &caloMEtPhi25_,"caloMEtPhi25/D"); - t_->Branch("caloMEtPhi30", &caloMEtPhi30_,"caloMEtPhi30/D"); - t_->Branch("caloMEtPhiECAL25", &caloMEtPhiECAL25_,"caloMEtPhiECAL25/D"); - t_->Branch("caloMEtPhiECAL30", &caloMEtPhiECAL30_,"caloMEtPhiECAL30/D"); - t_->Branch("caloMt", caloMt_,"caloMt[4]/D"); - t_->Branch("caloMt25", caloMt25_,"caloMt25[4]/D"); - t_->Branch("caloMt30", caloMt30_,"caloMt30[4]/D"); - t_->Branch("caloUESumEt", &caloUESumEt_, "caloUESumEt_/D"); - t_->Branch("nHltObj", &nHltObj_, "nHltObj/I"); - t_->Branch("HltObj_pt_", HltObj_pt_,"HltObj_pt_[4]/D"); - t_->Branch("HltObj_eta_", HltObj_eta_,"HltObj_eta_[4]/D"); - t_->Branch("genMEt", &genMEt_,"genMEt/D"); - t_->Branch("genUESumEt", &genUESumEt_, "genUESumEt_/D"); - -} -// ------------ method called to for each event ------------ -void AnalysisErsatz::analyze(const edm::Event& evt, const edm::EventSetup& es) -{ - caloMEt_ = -99.; caloSumEt_ = -99.; caloUESumEt_ = -99.; - caloMEt25_ = -99.; caloMEt30_ = -99.; - caloMEtECAL25_ = -99.; caloMEtECAL30_ =- 99.; - caloMEtPhi_ = -99.; caloMEtPhi25_ = -99.; caloMEtPhi30_ = -99.; - caloMEtPhiECAL25_ = -99.; caloMEtPhiECAL30_ =- 99.; - genMEt_ = -99.; genUESumEt_ = -99.; genMEt25_ = -99.; - t1MEt_ = -99.; t1MEtPhi_ = -99.; t1SumEt_ = -99.; - pfMEt_ = -99.; pfMEtPhi_ = -99.; pfSumEt_ = -99.; - tcMEt_ = -99.; tcMEtPhi_ = -99.; tcSumEt_ = -99.; - nHltObj_ = -99; nSelElecs_ = -99; - Boson_pt_ = -99.; Boson_y_ = -99.; Boson_m_ = -99.; Boson_mt_ = -99.; Boson_phi_ = -99.; - McNu_pt_ = -99.; McNu_eta_ = -99.; McNu_phi_ = -99.; - McNu_vx_= -99.; McNu_vy_= -99.; McNu_vz_ = -99.; - McLeptons_dPhi_ = -99.; McLeptons_dEta_ = -99.; McLeptons_dR_ = -99.; - RndmMcElec_pt_ = -99.; RndmMcElec_eta_ = -99.; RndmMcElec_phi_ = -99.; - RndmMcElec_Rescaled_pt_ = -99.; RndmMcElec_Rescaled_eta_ = -99.; RndmMcElec_Rescaled_phi_ = -99.; - RndmMcElecTRIG_pt_ = -99.; RndmMcElecTRIG_eta_ = -99.; RndmMcElecRECO_pt_ = -99.; RndmMcElecRECO_eta_ = -99.; - OthrMcElec_pt_ = -99.; OthrMcElec_eta_ = -99.; OthrMcElec_phi_ = -99.; - OthrMcElec_Rescaled_pt_ = -99.; OthrMcElec_Rescaled_eta_ = -99.; OthrMcElec_Rescaled_phi_ = -99.; - OthrMcElecTRIG_pt_ = -99.; OthrMcElecTRIG_eta_ = -99.; OthrMcElecRECO_pt_ = -99.; OthrMcElecRECO_eta_ = -99.; - RndmTrig_ = 0; RndmReco_ = 0; OthrTrig_ = 0; OthrReco_ = 0; - elec_pt25_ = -99.; elec_eta25_= -99.; elec_eta25_= -99.; - for(int i = 0; i < nEntries_arr_; ++i) - { - McElec1_pt_[i] = -99.; McElec1_eta_[i] = -99.; - McElec3_pt_[i] = -99.; McElec3_eta_[i] = -99.; - elec_q_[i] = -99.; elec_pt_[i] = -99.; elec_eta_[i]= -99.; elec_phi_[i]= -99.; - elec_trckIso_[i] = -99.; elec_ecalIso_[i] = -99.; elec_hcalIso_[i] = -99.; - elec_sIhIh_[i] = -99.; elec_dPhiIn_[i] = -99.; elec_dEtaIn_[i] = -99.; - elec_e5x5_[i] = -99.; elec_e2x5Max_[i] = -99.; elec_e1x5Max_[i] = -99.; - elec_hoe_[i] = -99.; elec_eop_[i] = -99.; elec_pin_[i] = -99.; elec_pout_[i] = -99.; - Selected_nuPt_[i] = -99.; Selected_nuEta_[i] = -99.; Selected_nuPhi_[i] = -99.; - caloMt_[i] = -99.; caloMt25_[i] = -99.; caloMt30_[i] = -99.; - genMt_[i] = -99.; - } - edm::Handle pGenPart; - evt.getByToken(MCTruthCollection_, pGenPart); - edm::Handle pElectrons; - evt.getByToken(ElectronCollection_, pElectrons); - edm::Handle pCaloMEt; - evt.getByToken(CaloMEtCollection_, pCaloMEt); - //edm::Handle pT1MEt; - // evt.getByToken(T1MEtCollection_, pT1MEt); - edm::Handle pPfMEt; - evt.getByToken(PfMEtCollection_, pPfMEt); - edm::Handle pTcMEt; - evt.getByToken(TcMEtCollection_, pTcMEt); - edm::Handle pGenMEt; - evt.getByToken(GenMEtCollection_, pGenMEt); - edm::Handle pTriggerResults; - evt.getByToken(TriggerResults_, pTriggerResults); - const edm::TriggerResults* HltRes = pTriggerResults.product(); - edm::Handle pHLT; - if(HltRes->accept(34) !=0) - { - evt.getByToken(TriggerEvent_, pHLT); - } - edm::LogDebug_("analyse","", 143)<<"Have obtained collections."< Leptons; - const reco::GenParticleCollection *McCand = pGenPart.product(); - math::XYZTLorentzVector RndmMcElec, OthrMcElec; - edm::Service rng; - math::XYZTLorentzVector RndmMcElec_alt, OthrMcElec_alt, Zboson; - CLHEP::RandFlat flatDistribution(rng->getEngine(), 0, 2); - double RandomNum = flatDistribution.fire(); - RndmInt_ = int(RandomNum); -// std::cout<<"Random Number = "<< RandomNum <<"\t int = "<< int(RandomNum)<begin(); McP != McCand->end(); ++McP) - { - const reco::Candidate* mum = McP->mother(); - if(McP->pdgId()==11) - { - edm::LogDebug_("", "", 216)<<"Found electron, mother = "<< mum->pdgId() <<"\t status = "<< McP->status() - <<"\tpt = "<< McP->pt() <<"\teta = "<< McP->eta(); - } - if(McP->pdgId()==-11) - { - edm::LogDebug_("", "", 221)<<"Found positron, mother = "<< mum->pdgId() <<"\t status = "<< McP->status() - <<"\tpt = "<< McP->pt() <<"\teta = "<< McP->eta(); - } - if(abs(McP->pdgId())==12) - { - edm::LogDebug_("", "", 216)<<"Found neutrino, mother = "<< mum->pdgId() <<"\t status = "<< McP->status() - <<"\tpt = "<< McP->pt() <<"\teta = "<< McP->eta(); - } - if(abs(McP->pdgId())==11 && (abs(mum->pdgId()) == 24|| abs(mum->pdgId()) == 23)) - { -// Leptons.push_back(McP); - if(!BosonAnalysed) - { - Boson_pt_ = mum->pt(); - Boson_y_ = mum->y(); - Boson_phi_ = mum->phi(); - Boson_m_ = mum->mass(); - Boson_mt_ = mum->mt(); - if(abs(mum->pdgId() == 23)) Zboson = mum->p4(); - BosonAnalysed = true; - } - McElec3_pt_[k] = McP->pt(); - McElec3_eta_[k] = McP->eta(); - if(k == int(RandomNum)) - { - RndmMcElec_alt = McP->p4(); - }else OthrMcElec_alt = McP->p4(); - ++k; - } - if(abs(McP->pdgId())==12 && abs(mum->pdgId()) == 24) - { - Leptons.push_back(McP); - edm::LogDebug_("","",328)<<"Pushed neutrino back into Leptons. Leptons.size() = "<< Leptons.size(); - McNu_pt_ = McP->pt(); - McNu_eta_ = McP->eta(); - edm::LogDebug_("","",332)<<"ECAL eta = "<< McNu_ECALeta_; - McNu_phi_ = McP->phi(); - McNu_vx_ = McP->vx(); - McNu_vy_ = McP->vy(); - McNu_vz_ = McP->vz(); - if(fabs(McNu_eta_) < 2.5) nuInEta25 = true; - if(fabs(McNu_eta_) < 3.0) nuInEta30 = true; - ++n; - } - if(abs(McP->pdgId())==11 && McP->status() == 1 && (abs(mum->pdgId()) == 11)) - { - Leptons.push_back(McP); - edm::LogDebug_("","",344)<<"Pushed electron back into Leptons. Leptons.size() = "<< Leptons.size(); - McElec1_pt_[m] = McP->pt(); - McElec1_eta_[m] = McP->eta(); - if(m == int(RandomNum)) - { - RndmMcElec = McP->p4(); - RndmMcElec_pt_ = McElec1_pt_[m]; - RndmMcElec_eta_ = McElec1_eta_[m]; - RndmMcElec_phi_ = McP->phi(); - } - else{ - OthrMcElec = McP->p4(); - OthrMcElec_pt_ = McElec1_pt_[m]; - OthrMcElec_eta_ = McElec1_eta_[m]; - OthrMcElec_phi_ = McP->phi(); - } - - elecEt += McP->pt(); - ++m; - } - } - edm::LogDebug_("", "", 362)<<"Size of Leptons = "<< Leptons.size(); - McLeptons_dPhi_ = reco::deltaPhi(Leptons[0]->phi(), Leptons[1]->phi()); - McLeptons_dEta_ = Leptons[0]->eta() - Leptons[1]->eta(); - McLeptons_dR_ = reco::deltaR(*Leptons[0], *Leptons[1]); - edm::LogDebug_("","",369)<<"McLeptons_dR_ = "<< McLeptons_dR_; - - math::XYZTLorentzVector Wboson; - if(McNu_pt_ < -98.) - { - edm::LogDebug_("", "", 303)<<"Z pt = "<< Zboson.Pt() << "Z boson mass = " << Zboson.M(); - edm::LogDebug_("","", 307)<<"Z boson in lab frame = ("<accept() = "<< HltRes->accept(34); - if(HltRes->accept(34) ==0) edm::LogError("")<<"Event did not pass HLT path 34, assumed to be "<< TriggerName_ <<"!"; - unsigned int fId = 999; - if(HltRes->accept(34) !=0) - { - fId = pHLT->filterIndex(TriggerPath_); // something wrong with this step - edm::LogDebug_("","",426)<<"fId = pHLT->filterIndex("<< TriggerPath_<<") = "<< fId; - const trigger::Keys& ring = pHLT->filterKeys(fId); - const trigger::TriggerObjectCollection& HltObjColl = pHLT->getObjects(); - nHltObj_ = ring.size(); - for(int k = 0; k < nHltObj_; ++k) - { - const trigger::TriggerObject& HltObj = HltObjColl[ring[k]]; - if(reco::deltaR(RndmMcElec, HltObj) < 0.1) RndmTrig_ = 1; - if(reco::deltaR(OthrMcElec, HltObj) < 0.1) OthrTrig_ = 1; - if(k < 4) - { - HltObj_pt_[k] = HltObj.pt(); - HltObj_eta_[k] = HltObj.eta(); - } - } - } - if(RndmTrig_ != 0) - { - RndmMcElecTRIG_pt_ = RndmMcElec_pt_; - RndmMcElecTRIG_eta_ = RndmMcElec_eta_; - } - if(OthrTrig_ != 0) - { - OthrMcElecTRIG_pt_ = OthrMcElec_pt_; - OthrMcElecTRIG_eta_ = OthrMcElec_eta_; - } - const reco::GenMETCollection* genMEtCollection = pGenMEt.product(); - reco::GenMETCollection::const_iterator genMEt = genMEtCollection->begin(); - genMEt_ = genMEt->pt(); - genUESumEt_ = genMEt->sumEt() - elecEt; -// std::cout<<"genMEt->sumEt() - elecEt = "<< genMEt->sumEt()<<" - "<< elecEt <<" = "<< genUESumEt_; - - const reco::CaloMETCollection* caloMEtCollection = pCaloMEt.product(); - reco::CaloMETCollection::const_iterator met = caloMEtCollection->begin(); - caloMEt_ = met->pt(); - edm::LogDebug_("","",462)<<"caloMEt_ = "<< caloMEt_; - caloMEtPhi_ = met->phi(); - caloSumEt_ = met->sumEt(); - - //const reco::METCollection* t1MEtCollection = pT1MEt.product(); - //reco::METCollection::const_iterator t1met = t1MEtCollection->begin(); - //t1MEt_ = t1met->pt(); - //edm::LogDebug_("","",462)<<"t1MEt_ = "<< t1MEt_; - //t1MEtPhi_ = t1met->phi(); - //t1SumEt_ = t1met->sumEt(); - - const reco::PFMETCollection* pfMEtCollection = pPfMEt.product(); - reco::PFMETCollection::const_iterator pfmet = pfMEtCollection->begin(); - pfMEt_ = pfmet->pt(); - edm::LogDebug_("","",462)<<"pfMEt_ = "<< pfMEt_; - pfMEtPhi_ = pfmet->phi(); - pfSumEt_ = pfmet->sumEt(); - - const reco::METCollection* tcMEtCollection = pTcMEt.product(); - reco::METCollection::const_iterator tcmet = tcMEtCollection->begin(); - tcMEt_ = tcmet->pt(); - edm::LogDebug_("","",462)<<"tcMEt_ = "<< tcMEt_; - tcMEtPhi_ = tcmet->phi(); - tcSumEt_ = tcmet->sumEt(); - - if(fabs(McNu_ECALeta_) < 2.5) - { - caloMEtECAL25_ = met->pt(); - caloMEtPhiECAL25_ = met->phi(); - } - if(fabs(McNu_ECALeta_) < 3.0) - { - caloMEtECAL30_ = met->pt(); - caloMEtPhiECAL30_ = met->phi(); - } - if(nuInEta25) - { - genMEt25_ = genMEt->pt(); - caloMEt25_ = met->pt(); - caloMEtPhi25_ = met->phi(); - } - if(nuInEta30){ - caloMEt30_ = met->pt(); - caloMEtPhi30_ = met->phi(); - } - - std::vector UniqueElectrons = uniqueElectronFinder(pElectrons); - caloUESumEt_ = met->sumEt(); - for(std::vector::const_iterator Relec = UniqueElectrons.begin(); Relec != UniqueElectrons.end(); ++Relec) - { - reco::GsfElectronRef elec = *Relec; - math::XYZTLorentzVector sc = PhysicsVector(met->vertex(), *(elec->superCluster())); - if(reco::deltaR(RndmMcElec, *elec) < 0.1) RndmReco_ = 1; - if(reco::deltaR(OthrMcElec, *elec) < 0.1) OthrReco_ = 1; - caloUESumEt_ -= sc.Pt(); - } - if(RndmReco_ != 0) - { - RndmMcElecRECO_pt_ = RndmMcElec_pt_; - RndmMcElecRECO_eta_ = RndmMcElec_eta_; - } - if(OthrReco_ != 0) - { - OthrMcElecRECO_pt_ = OthrMcElec_pt_; - OthrMcElecRECO_eta_ = OthrMcElec_eta_; - } - edm::LogDebug_("analyse","", 230)<<"Analysed UE information"<accept(34) != 0) - { - std::vector SelectedElectrons = electronSelector(UniqueElectrons, pHLT, fId, CutVector_); - nSelElecs_ = SelectedElectrons.size(); - m = 0; - for(std::vector::const_iterator Relec = SelectedElectrons.begin(); Relec != SelectedElectrons.end(); ++Relec) - { - reco::GsfElectronRef elec = *Relec; - if(elec->pt() > CutVector_[0]) - { - elec_q_[m] = elec->charge(); - elec_pt_[m] = elec->pt(); - elec_eta_[m] = elec->eta(); - elec_phi_[m] = elec->phi(); - elec_trckIso_[m] = elec->isolationVariables03().tkSumPt; - elec_ecalIso_[m] = elec->isolationVariables04().ecalRecHitSumEt; - elec_hcalIso_[m] = elec->isolationVariables04().hcalDepth1TowerSumEt - + elec->isolationVariables04().hcalDepth2TowerSumEt; - elec_sIhIh_[m] = elec->scSigmaIEtaIEta(); - elec_dPhiIn_[m] = elec->deltaPhiSuperClusterTrackAtVtx(); - elec_dEtaIn_[m] = elec->deltaEtaSuperClusterTrackAtVtx(); - elec_e5x5_[m] = elec->scE5x5(); - elec_e2x5Max_[m] = elec->scE2x5Max(); - elec_e2x5Max_[m] = elec->scE1x5(); - elec_hoe_[m] = elec->hadronicOverEm(); - elec_eop_[m] = elec->eSuperClusterOverP(); - elec_pin_[m] = elec->trackMomentumAtVtx().R(); - elec_pout_[m] = elec->trackMomentumOut().R(); - - Selected_nuPt_[m] = McNu_pt_; - Selected_nuEta_[m] = McNu_eta_; - Selected_nuPhi_[m] = McNu_phi_; - caloMt_[m] = sqrt(2.*elec->pt()*met->pt()*(1-cos(reco::deltaPhi(elec->phi(), met->phi())))); - if(nuInEta25) - { - caloMt25_[m] = caloMt_[m]; - elec_pt25_ = elec->pt(); - elec_eta25_ = elec->eta(); - elec_phi25_ = elec->phi(); - } - if(nuInEta30) caloMt30_[m] = caloMt_[m]; - ++m; - } - } - } - - edm::LogDebug_("analyse","", 248)<<"Analysed final selection information"<Fill(); -} - - - -// ------------ method called once each job just after ending the event loop ------------ -void AnalysisErsatz::endJob() { -} - -//define this as a plug-in -DEFINE_FWK_MODULE(AnalysisErsatz); -*/ diff --git a/ElectroWeakAnalysis/ZEE/src/ErsatzMEt.cc b/ElectroWeakAnalysis/ZEE/src/ErsatzMEt.cc deleted file mode 100644 index 916e44a43ad7c..0000000000000 --- a/ElectroWeakAnalysis/ZEE/src/ErsatzMEt.cc +++ /dev/null @@ -1,943 +0,0 @@ -#include "ElectroWeakAnalysis/ZEE/interface/ErsatzMEt.h" -#include "FWCore/Common/interface/TriggerNames.h" - -ErsatzMEt::ErsatzMEt(const edm::ParameterSet& ps) { - MCTruthCollection_ = consumes(ps.getParameter("MCTruthCollection")); - ElectronCollection_ = consumes(ps.getParameter("ElectronCollection")); - HybridScCollection_ = consumes(ps.getParameter("HybridScCollection")); - M5x5ScCollection_ = consumes(ps.getParameter("M5x5ScCollection")); - GenMEtCollection_ = consumes(ps.getParameter("GenMEtCollection")); - CaloMEtCollection_ = consumes(ps.getParameter("CaloMEtCollection")); - //T1MEtCollection_ = consumes(ps.getParameter("T1MEtCollection")); - PfMEtCollection_ = consumes(ps.getParameter("PfMEtCollection")); - TcMEtCollection_ = consumes(ps.getParameter("TcMEtCollection")); - TriggerEvent_ = consumes(ps.getParameter("TriggerEvent")); - TriggerPath_ = ps.getParameter("TriggerPath"); - TriggerResults_ = consumes(ps.getParameter("TriggerResults")); - TriggerName_ = ps.getParameter("TriggerName"); - HLTPathCheck_ = ps.getParameter("HLTPathCheck"); - - Zevent_ = ps.getParameter("Zevent"); - mW_ = ps.getParameter("mW"); - mZ_ = ps.getParameter("mZ"); - mTPmin_ = ps.getParameter("mTPmin"); - mTPmax_ = ps.getParameter("mTPmax"); - BarrelEtaMax_ = ps.getParameter("BarrelEtaMax"); - EndCapEtaMin_ = ps.getParameter("EndCapEtaMin"); - EndCapEtaMax_ = ps.getParameter("EndCapEtaMax"); - - hyb_fCorrPSet_ = ps.getParameter("hyb_fCorrPSet"); - m5x5_fCorrPSet_ = ps.getParameter("m5x5_fCorrPSet"); - - double CElecPtMin = ps.getParameter("CElecPtMin"); - double CEB_siEiE = ps.getParameter("CEB_sigmaIEtaIEta"); - double CEB_dPhiIn = ps.getParameter("CEB_deltaPhiIn"); - double CEB_dEtaIn = ps.getParameter("CEB_deltaEtaIn"); - double CEB_EcalIso = ps.getParameter("CEB_EcalIso"); - double CEB_HcalIso = ps.getParameter("CEB_HcalIso"); - double CEB_TrckIso = ps.getParameter("CEB_TrckIso"); - double CEE_siEiE = ps.getParameter("CEE_sigmaIEtaIEta"); - double CEE_dPhiIn = ps.getParameter("CEE_deltaPhiIn"); - double CEE_dEtaIn = ps.getParameter("CEE_deltaEtaIn"); - double CEE_EcalIso = ps.getParameter("CEE_EcalIso"); - double CEE_HcalIso = ps.getParameter("CEE_HcalIso"); - double CEE_TrckIso = ps.getParameter("CEE_TrckIso"); - - CutVector_.resize(13); - CutVector_[EtCut_] = CElecPtMin; - CutVector_[EB_sIhIh_] = CEB_siEiE; - CutVector_[EB_dPhiIn_] = CEB_dPhiIn; - CutVector_[EB_dEtaIn_] = CEB_dEtaIn; - CutVector_[EB_TrckIso_] = CEB_TrckIso; - CutVector_[EB_EcalIso_] = CEB_EcalIso; - CutVector_[EB_HcalIso_] = CEB_HcalIso; - CutVector_[EE_sIhIh_] = CEE_siEiE; - CutVector_[EE_dPhiIn_] = CEE_dPhiIn; - CutVector_[EE_dEtaIn_] = CEE_dEtaIn; - CutVector_[EE_TrckIso_] = CEE_TrckIso; - CutVector_[EE_EcalIso_] = CEE_EcalIso; - CutVector_[EE_HcalIso_] = CEE_HcalIso; - - for (std::vector::const_iterator it = CutVector_.begin(); it != CutVector_.end(); ++it) { - edm::LogDebug_("", "", 101) << "CutVector_ = " << *it; - } -} - -ErsatzMEt::~ErsatzMEt() {} - -// ------------ method called once each job just before starting event loop ------------ -void ErsatzMEt::beginJob() { - edm::Service fs; - - t_ = fs->make("ErsatzMEt", "Data on ErsatzMEt"); - - edm::LogDebug_("", "", 75) << "Creating Ersatz MEt branches."; - - t_->Branch("nTags", &nTags_, "nTags/I"); - t_->Branch("nProbes", &nProbes_, "nProbes/I"); - - t_->Branch("ErsatzV1CaloMEt", ErsatzV1CaloMEt_, "ErsatzV1CaloMEt[4]/D"); - t_->Branch("ErsatzV1CaloMt", ErsatzV1CaloMt_, "ErsatzV1CaloMt[4]/D"); - t_->Branch("ErsatzV1CaloMEtPhi", ErsatzV1CaloMEtPhi_, "ErsatzV1CaloMEtPhi[4]/D"); - t_->Branch("ErsatzV2CaloMEt", ErsatzV2CaloMEt_, "ErsatzV2CaloMEt[4]/D"); - t_->Branch("ErsatzV2CaloMEtPhi", ErsatzV2CaloMEtPhi_, "ErsatzV2CaloMEtPhi[4]/D"); - t_->Branch("ErsatzV2CaloMt", ErsatzV2CaloMt_, "ErsatzV2CaloMt[4]/D"); - t_->Branch("ErsatzV3CaloMEt", ErsatzV3CaloMEt_, "ErsatzV3CaloMEt[4]/D"); - t_->Branch("ErsatzV3CaloMEtPhi", ErsatzV3CaloMEtPhi_, "ErsatzV3CaloMEtPhi[4]/D"); - t_->Branch("ErsatzV3CaloMt", ErsatzV3CaloMt_, "ErsatzV3CaloMt[4]/D"); - t_->Branch("ErsatzV4CaloMEt", ErsatzV4CaloMEt_, "ErsatzV4CaloMEt[4]/D"); - t_->Branch("ErsatzV4CaloMEtPhi", ErsatzV4CaloMEtPhi_, "ErsatzV4CaloMEtPhi[4]/D"); - t_->Branch("ErsatzV4CaloMt", ErsatzV4CaloMt_, "ErsatzV4CaloMt[4]/D"); - t_->Branch("ErsatzV1T1MEt", ErsatzV1T1MEt_, "ErsatzV1T1MEt[4]/D"); - t_->Branch("ErsatzV1T1Mt", ErsatzV1T1Mt_, "ErsatzV1T1Mt[4]/D"); - t_->Branch("ErsatzV1T1MEtPhi", ErsatzV1T1MEtPhi_, "ErsatzV1T1MEtPhi[4]/D"); - t_->Branch("ErsatzV1PfMEt", ErsatzV1PfMEt_, "ErsatzV1PfMEt[4]/D"); - t_->Branch("ErsatzV1PfMt", ErsatzV1PfMt_, "ErsatzV1PfMt[4]/D"); - t_->Branch("ErsatzV1PfMEtPhi", ErsatzV1TcMEtPhi_, "ErsatzV1PfMEtPhi[4]/D"); - t_->Branch("ErsatzV1TcMEt", ErsatzV1TcMEt_, "ErsatzV1TcMEt[4]/D"); - t_->Branch("ErsatzV1TcMt", ErsatzV1TcMt_, "ErsatzV1TcMt[4]/D"); - t_->Branch("ErsatzV1TcMEtPhi", ErsatzV1TcMEtPhi_, "ErsatzV1TcMEtPhi[4]/D"); - - t_->Branch("CaloMEt", &CaloMEt_, "CaloMEt/D"); - t_->Branch("CaloMEtphi", &CaloMEtphi_, "CaloMEtphi/D"); - t_->Branch("T1MEt", &T1MEt_, "T1MEt/D"); - t_->Branch("T1MEtphi", &T1MEtphi_, "T1MEtphi/D"); - t_->Branch("PfMEt", &PfMEt_, "PfMEt/D"); - t_->Branch("PfMEtphi", &PfMEtphi_, "PfMEtphi/D"); - t_->Branch("TcMEt", &TcMEt_, "TcMEt/D"); - t_->Branch("TcMEtphi", &TcMEtphi_, "TcMEtphi/D"); - - edm::LogDebug_("", "", 91) << "Creating electron branches."; - t_->Branch("tag_q", tag_q_, "tag_q[4]/I"); - t_->Branch("tag_pt", tag_pt_, "tag_pt[4]/D"); - t_->Branch("tag_eta", tag_eta_, "tag_eta[4]/D"); - t_->Branch("tag_phi", tag_phi_, "tag_phi[4]/D"); - t_->Branch("tag_sIhIh", tag_sIhIh_, "tag_sIhIh[4]/D"); - t_->Branch("tag_dPhiIn", tag_dPhiIn_, "tag_dPhiIn[4]/D"); - t_->Branch("tag_dEtaIn", tag_dEtaIn_, "tag_dEtaIn[4]/D"); - t_->Branch("tag_trckIso", tag_trckIso_, "tag_trckIso[4]/D"); - t_->Branch("tag_ecalIso", tag_ecalIso_, "tag_ecalIso[4]/D"); - t_->Branch("tag_hcalIso", tag_hcalIso_, "tag_hcalIso[4]/D"); - t_->Branch("tag_e2x5Max", tag_e2x5Max_, "tag_e2x5Max[4]/D"); - t_->Branch("tag_e1x5Max", tag_e1x5Max_, "tag_e1x5Max[4]/D"); - t_->Branch("tag_e5x5", tag_e5x5_, "tag_e5x5[4]/D"); - t_->Branch("tag_hoe", tag_hoe_, "tag_hoe[4]/D"); - t_->Branch("tag_eop", tag_eop_, "tag_eop[4]/D"); - t_->Branch("tag_pin", tag_pin_, "tag_pin[4]/D"); - t_->Branch("tag_pout", tag_pout_, "tag_pout[4]/D"); - t_->Branch("tag_rescPt", tag_rescPt_, "tag_rescPt[4]/D"); - t_->Branch("tag_rescEta", tag_rescEta_, "tag_rescEta[4]/D"); - t_->Branch("tag_rescPhi", tag_rescPhi_, "tag_rescPhi[4]/D"); - - edm::LogDebug_("", "", 103) << "Creating ersatz neutrino branches."; - t_->Branch("probe_q", probe_q_, "probe_q[4]/I"); - t_->Branch("probe_pt", probe_pt_, "probe_pt[4]/D"); - t_->Branch("probe_eta", probe_eta_, "probe_eta[4]/D"); - t_->Branch("probe_phi", probe_phi_, "probe_phi[4]/D"); - t_->Branch("probe_sIhIh", probe_sIhIh_, "probe_sIhIh[4]/D"); - t_->Branch("probe_dPhiIn", probe_dPhiIn_, "probe_dPhiIn[4]/D"); - t_->Branch("probe_dEtaIn", probe_dEtaIn_, "probe_dEtaIn[4]/D"); - t_->Branch("probe_trckIso", probe_trckIso_, "probe_trckIso[4]/D"); - t_->Branch("probe_ecalIso", probe_ecalIso_, "probe_ecalIso[4]/D"); - t_->Branch("probe_hcalIso", probe_hcalIso_, "probe_hcalIso[4]/D"); - t_->Branch("probe_e2x5Max", probe_e2x5Max_, "probe_e2x5Max[4]/D"); - t_->Branch("probe_e1x5Max", probe_e1x5Max_, "probe_e1x5Max[4]/D"); - t_->Branch("probe_e5x5", probe_e5x5_, "probe_e5x5[4]/D"); - t_->Branch("probe_hoe", probe_hoe_, "probe_hoe[4]/D"); - t_->Branch("probe_eop", probe_eop_, "probe_eop[4]/D"); - t_->Branch("probe_pin", probe_pin_, "probe_pin[4]/D"); - t_->Branch("probe_pout", probe_pout_, "probe_pout[4]/D"); - t_->Branch("probe_rescPt", probe_rescPt_, "probe_rescPt[4]/D"); - t_->Branch("probe_rescEta", probe_rescEta_, "probe_rescEta[4]/D"); - t_->Branch("probe_rescPhi", probe_rescPhi_, "probe_rescPhi[4]/D"); - - t_->Branch("Z_m", Z_m_, "Z_m[4]/D"); - t_->Branch("Z_pt", Z_pt_, "Z_pt[4]/D"); - t_->Branch("Z_eta", Z_eta_, "Z_eta[4]/D"); - t_->Branch("Z_y", Z_y_, "Z_y[4]/D"); - t_->Branch("Z_phi", Z_phi_, "Z_phi[4]/D"); - t_->Branch("Z_rescM", Z_rescM_, "Z_rescM[4]/D"); - t_->Branch("Z_rescPt", Z_rescPt_, "Z_rescPt[4]/D"); - t_->Branch("Z_rescEta", Z_rescEta_, "Z_rescEta[4]/D"); - t_->Branch("Z_rescY", Z_rescY_, "Z_rescY[4]/D"); - t_->Branch("Z_rescPhi", Z_rescPhi_, "Z_rescPhi[4]/D"); - t_->Branch("Z_probe_dPhi", Z_probe_dPhi_, "Z_probe_dPhi[4]/D"); - - t_->Branch("probe_sc_pt", probe_sc_pt_, "probe_sc_pt[4]/D"); - t_->Branch("probe_sc_eta", probe_sc_eta_, "probe_sc_eta[4]/D"); - t_->Branch("probe_sc_phi", probe_sc_phi_, "probe_sc_phi[4]/D"); - t_->Branch("probe_sc_E", probe_sc_E_, "probe_sc_E[4]/D"); - t_->Branch("probe_sc_rawE", probe_sc_rawE_, "probe_sc_rawE[4]/D"); - t_->Branch("probe_sc_nClus", probe_sc_nClus_, "probe_sc_nClus[4]/D"); - t_->Branch("probe_scV2_E", probe_scV2_E_, "probe_scV2_E[4]/D"); - t_->Branch("probe_scV3_E", probe_scV3_E_, "probe_scV3_E[4]/D"); - t_->Branch("probe_scV4_E", probe_scV4_E_, "probe_scV4_E[4]/D"); - t_->Branch("probe_d_MCE_SCE", probe_d_MCE_SCE_, "probe_d_MCE_SCE[4]/D"); - - t_->Branch("ErsatzV1_Mesc", ErsatzV1_Mesc_, "ErsatzV1_Mesc[4]/D"); - t_->Branch("ErsatzV1_rescMesc", ErsatzV1_rescMesc_, "ErsatzV1_rescMesc[4]/D"); - - t_->Branch("McElec_nFinal", &McElec_nFinal_, "McElec_nFinal/I"); - - if (Zevent_) { - t_->Branch("McZ_m", &McZ_m_, "McZ_m/D"); - t_->Branch("McZ_rescM", &McZ_rescM_, "McZ_rescM/D"); - t_->Branch("McZ_Pt", &McZ_pt_, "McZ_Pt/D"); - t_->Branch("McZ_y", &McZ_y_, "McZ_y/D"); - t_->Branch("McZ_Eta", &McZ_eta_, "McZ_Eta/D"); - t_->Branch("McZ_Phi", &McZ_phi_, "McZ_Phi/D"); - t_->Branch("McZ_rescPt", &McZ_rescPt_, "McZ_Pt/D"); - t_->Branch("McZ_rescY", &McZ_rescY_, "McZ_rescY/D"); - t_->Branch("McZ_rescEta", &McZ_rescEta_, "McZ_Eta/D"); - t_->Branch("McZ_rescPhi", &McZ_rescPhi_, "McZ_Phi/D"); - t_->Branch("McElec_nZmum", &McElec_nZmum_, "McElec_nZmum/I"); - t_->Branch("McElec_eta", &McElec_eta_, "McElec_eta[4]/D"); - t_->Branch("McElec_pt", &McElec_pt_, "McElec_pt[4]/D"); - t_->Branch("McElec_phi", &McElec_phi_, "McElec_phi[4]/D"); - t_->Branch("McElec_rescEta", &McElec_rescEta_, "McElec_rescEta[4]/D"); - t_->Branch("McElec_rescPhi", &McElec_rescPhi_, "McElec_rescPhi[4]/D"); - t_->Branch("McElec_rescPt", &McElec_rescPt_, "McElec_rescPt[4]/D"); - t_->Branch("McProbe_eta", &McProbe_eta_, "McProbe_eta[4]/D"); - t_->Branch("McProbe_pt", &McProbe_pt_, "McProbe_pt[4]/D"); - t_->Branch("McProbe_phi", &McProbe_phi_, "McProbe_phi[4]/D"); - t_->Branch("McProbe_rescEta", &McProbe_rescEta_, "McProbe_rescEta[4]/D"); - t_->Branch("McProbe_rescPt", &McProbe_rescPt_, "McProbe_rescPt[4]/D"); - t_->Branch("McProbe_rescPhi", &McProbe_rescPhi_, "McProbe_rescPhi[4]/D"); - t_->Branch("McElecProbe_dPhi", &McElecProbe_dPhi_, "McElecProbe_dPhi/D"); - t_->Branch("McElecProbe_dEta", &McElecProbe_dEta_, "McElecProbe_dEta/D"); - t_->Branch("McElecProbe_dR", &McElecProbe_dR_, "McElecProbe_dR/D"); - } -} - -void ErsatzMEt::analyze(const edm::Event& evt, const edm::EventSetup& es) { - es.get().get(geoHandle_); - es.get().get(pTopology_); - - edm::LogDebug_("", "", 151) << "Initialising variables."; - nTags_ = -99; - nProbes_ = -99; - CaloMEt_ = -99.; - CaloMEtphi_ = -99.; - T1MEt_ = -99.; - T1MEtphi_ = -99.; - PfMEt_ = -99.; - PfMEtphi_ = -99.; - TcMEt_ = -99.; - TcMEtphi_ = -99.; - if (Zevent_) { - McZ_m_ = -99.; - McZ_pt_ = -99.; - McZ_y_ = -99.; - McZ_eta_ = -99.; - McZ_phi_ = -99.; - McZ_rescM_ = -99.; - McZ_rescPt_ = -99.; - McZ_rescY_ = -99.; - McZ_rescEta_ = -99.; - McZ_rescPhi_ = -99.; - McElec_nZmum_ = -99; - McElec_nFinal_ = -99; - } - - for (int i = 0; i < nEntries_arr_; ++i) { - tag_q_[i] = -99; - tag_pt_[i] = -99.; - tag_eta_[i] = -99.; - tag_phi_[i] = -99.; - tag_rescPt_[i] = -99.; - tag_rescEta_[i] = -99.; - tag_rescPhi_[i] = -99.; - tag_trckIso_[i] = -99.; - tag_ecalIso_[i] = -99.; - tag_hcalIso_[i] = -99.; - tag_sIhIh_[i] = -99.; - tag_dPhiIn_[i] = -99.; - tag_dEtaIn_[i] = -99.; - tag_e5x5_[i] = -99.; - tag_e2x5Max_[i] = -99.; - tag_e1x5Max_[i] = -99.; - tag_hoe_[i] = -99.; - tag_eop_[i] = -99.; - tag_pin_[i] = -99.; - tag_pout_[i] = -99.; - - probe_q_[i] = -99; - probe_pt_[i] = -99.; - probe_eta_[i] = -99.; - probe_phi_[i] = -99.; - probe_rescPt_[i] = -99.; - probe_rescEta_[i] = -99.; - probe_rescPhi_[i] = -99.; - probe_trckIso_[i] = -99.; - probe_ecalIso_[i] = -99.; - probe_hcalIso_[i] = -99.; - probe_sIhIh_[i] = -99.; - probe_dPhiIn_[i] = -99.; - probe_dEtaIn_[i] = -99.; - probe_e5x5_[i] = -99.; - probe_e2x5Max_[i] = -99.; - probe_e1x5Max_[i] = -99.; - probe_hoe_[i] = -99.; - probe_eop_[i] = -99.; - probe_pin_[i] = -99.; - probe_pout_[i] = -99.; - - Z_pt_[i] = -99.; - Z_y_[i] = -99.; - Z_eta_[i] = -99.; - Z_phi_[i] = -99.; - Z_m_[i] = -99.; - Z_rescPt_[i] = -99.; - Z_rescY_[i] = -99.; - Z_rescEta_[i] = -99.; - Z_rescPhi_[i] = -99.; - Z_rescM_[i] = -99.; - Z_probe_dPhi_[i] = -99.; - - ErsatzV1_Mesc_[i] = -99.; - ErsatzV1_rescMesc_[i] = -99.; - ErsatzV2_Mesc_[i] = -99.; - ErsatzV2_rescMesc_[i] = -99.; - ErsatzV3_Mesc_[i] = -99.; - ErsatzV3_rescMesc_[i] = -99.; - ErsatzV4_Mesc_[i] = -99.; - ErsatzV4_rescMesc_[i] = -99.; - ErsatzV1CaloMEt_[i] = -99.; - ErsatzV1CaloMt_[i] = -99.; - ErsatzV1CaloMEtPhi_[i] = -99.; - ErsatzV2CaloMEt_[i] = -99.; - ErsatzV2CaloMt_[i] = -99.; - ErsatzV2CaloMEtPhi_[i] = -99.; - ErsatzV3CaloMEt_[i] = -99.; - ErsatzV3CaloMt_[i] = -99.; - ErsatzV3CaloMEtPhi_[i] = -99.; - ErsatzV4CaloMEt_[i] = -99.; - ErsatzV4CaloMt_[i] = -99.; - ErsatzV4CaloMEtPhi_[i] = -99.; - ErsatzV1T1MEt_[i] = -99.; - ErsatzV1T1Mt_[i] = -99.; - ErsatzV1T1MEtPhi_[i] = -99.; - ErsatzV1PfMEt_[i] = -99.; - ErsatzV1PfMt_[i] = -99.; - ErsatzV1PfMEtPhi_[i] = -99.; - ErsatzV1TcMEt_[i] = -99.; - ErsatzV1TcMt_[i] = -99.; - ErsatzV1TcMEtPhi_[i] = -99.; - - probe_sc_pt_[i] = -99.; - probe_sc_eta_[i] = -99.; - probe_sc_phi_[i] = -99.; - probe_sc_E_[i] = -99.; - probe_sc_rawE_[i] = -99.; - probe_scV2_E_[i] = -99.; - probe_scV3_E_[i] = -99.; - probe_scV4_E_[i] = -99.; - - if (Zevent_) { - McElec_pt_[i] = -99.; - McElec_eta_[i] = -99.; - McElec_phi_[i] = -99.; - McElec_rescPt_[i] = -99.; - McElec_rescEta_[i] = -99.; - McElec_rescPhi_[i] = -99.; - McProbe_pt_[i] = -99.; - McProbe_eta_[i] = -99.; - McProbe_phi_[i] = -99.; - McProbe_rescPt_[i] = -99.; - McProbe_rescEta_[i] = -99.; - McProbe_rescPhi_[i] = -99.; - McElecProbe_dPhi_[i] = -99.; - McElecProbe_dEta_[i] = -99.; - McElecProbe_dR_[i] = -99.; - } - - edm::LogDebug_("", "", 180) << "Initialisation of array index " << i << " completed."; - } - //Get Collections - edm::Handle pGenPart; - evt.getByToken(MCTruthCollection_, pGenPart); - edm::Handle pElectrons; - evt.getByToken(ElectronCollection_, pElectrons); - edm::Handle pHybrid; - evt.getByToken(HybridScCollection_, pHybrid); - edm::Handle pM5x5; - evt.getByToken(M5x5ScCollection_, pM5x5); - edm::Handle pCaloMEt; - evt.getByToken(CaloMEtCollection_, pCaloMEt); - edm::Handle pT1MEt; - // evt.getByToken(T1MEtCollection_, pT1MEt); - edm::Handle pPfMEt; - evt.getByToken(PfMEtCollection_, pPfMEt); - edm::Handle pTcMEt; - evt.getByToken(TcMEtCollection_, pTcMEt); - edm::Handle pGenMEt; - evt.getByToken(GenMEtCollection_, pGenMEt); - edm::Handle pTriggerResults; - evt.getByToken(TriggerResults_, pTriggerResults); - edm::Handle pHLT; - evt.getByToken(TriggerEvent_, pHLT); - - std::vector McElecs, McElecsFinalState; - std::vector McElecsResc; - if (Zevent_) { - edm::LogDebug_("", "", 289) << "Analysing MC properties."; - const reco::GenParticleCollection* McCand = pGenPart.product(); - math::XYZTLorentzVector Zboson, RescZboson, McElec1, McElec2; - for (reco::GenParticleCollection::const_iterator McP = McCand->begin(); McP != McCand->end(); ++McP) { - const reco::Candidate* mum = McP->mother(); - if (std::abs(McP->pdgId()) == 11 && abs(mum->pdgId()) == 23) { - McElecs.push_back(McP->p4()); - if (std::abs(mum->pdgId()) == 23) - Zboson = mum->p4(); - - std::cout << "Found electron, ID = " << McP->pdgId() << "\t status = " << McP->status() << std::endl; - if (McP->status() != 1) { - const reco::Candidate* McPD = McP->daughter(0); - McPD = McPD->mother(); - while (McPD->status() != 1) { - int n = McPD->numberOfDaughters(); - std::cout << McPD->pdgId() << " : status = " << McPD->status() << "\tNumber of Daughters = " << n - << std::endl; - for (int j = 0; j < n; ++j) { - const reco::Candidate* d = McPD->daughter(j); - std::cout << "Daughter " << j << "\t id = " << d->pdgId() << std::endl; - if (std::abs(d->pdgId()) == 11) { - McPD = d; - break; - } - } - } - std::cout << McPD->pdgId() << " : status = " << McPD->status() << "\tAdding to vector!" << std::endl; - McElecsFinalState.push_back(McPD->p4()); - } else - McElecsFinalState.push_back(McP->p4()); - } - } - McZ_m_ = Zboson.M(); - McZ_pt_ = Zboson.Pt(); - McZ_phi_ = Zboson.Phi(); - McZ_eta_ = Zboson.Eta(); - McZ_y_ = Zboson.Rapidity(); - McElec_nZmum_ = McElecs.size(); - McElec_nFinal_ = McElecsFinalState.size(); - edm::LogDebug_("", "", 309) << "MC electrons with Z mother = " << McElec_nZmum_ - << "\tFinal state MC electrons = " << McElec_nFinal_; - - McElecsResc.resize(2); - // RescZboson.SetCoordinates(Zboson.Px(), Zboson.Py(), Zboson.Pz(), sqrt(Zboson.P2()+(mW_*mW_*Zboson.M2())/(mZ_*mZ_))); - RescZboson.SetCoordinates( - Zboson.Px() * mW_ / mZ_, Zboson.Py() * mW_ / mZ_, Zboson.Pz() * mW_ / mZ_, Zboson.E() * mW_ / mZ_); - McZ_rescM_ = RescZboson.M(); - McZ_rescPt_ = RescZboson.Pt(); - McZ_rescEta_ = RescZboson.Eta(); - McZ_rescPhi_ = RescZboson.Phi(); - McZ_rescY_ = RescZboson.Rapidity(); - ROOT::Math::Boost CoMBoost(Zboson.BoostToCM()); - - math::XYZTLorentzVector RescMcElec0 = CoMBoost(McElecsFinalState[0]); - math::XYZTLorentzVector RescMcElec1 = CoMBoost(McElecsFinalState[1]); - RescMcElec0 *= mW_ / mZ_; - RescMcElec1 *= mW_ / mZ_; - - double E_W = RescZboson.E(); - ROOT::Math::Boost BackToLab(RescZboson.Px() / E_W, RescZboson.Py() / E_W, RescZboson.Pz() / E_W); - - RescMcElec0 = BackToLab(RescMcElec0); - // RndmMcElec_Rescaled_pt_ = RescMcElec0.Pt(); - // RndmMcElec_Rescaled_eta_ = RescMcElec0.Eta(); - // RndmMcElec_Rescaled_phi_ = RescMcElec0.Phi(); - - RescMcElec1 = BackToLab(RescMcElec1); - // OthrMcElec_Rescaled_pt_ = RescMcElec1.Pt(); - // OthrMcElec_Rescaled_eta_ = RescMcElec1.Eta(); - // OthrMcElec_Rescaled_phi_ = RescMcElec1.Phi(); - McElecsResc[0] = RescMcElec0; - McElecsResc[1] = RescMcElec1; - math::XYZTLorentzVector sum = RescMcElec1 + RescMcElec0; - edm::LogDebug_("", "", 307) << "McElecsResc[0] + McElecsResc[1] = (" << sum.Px() << ", " << sum.Py() << ", " - << sum.Pz() << ", " << sum.E() << ")"; - } - - const edm::TriggerResults* HltRes = pTriggerResults.product(); - const edm::TriggerNames& triggerNames = evt.triggerNames(*HltRes); - if (HLTPathCheck_) { - for (unsigned int itrig = 0; itrig < HltRes->size(); ++itrig) { - const std::string& nom = triggerNames.triggerName(itrig); - edm::LogInfo("") << itrig << " : Name = " << nom << "\t Accepted = " << HltRes->accept(itrig); - } - } - if (HltRes->accept(34) == 0) - edm::LogError("") << "Event did not pass " << triggerNames.triggerName(34) << "!"; - if (HltRes->accept(34) != 0) { - std::vector UniqueElectrons; - UniqueElectrons = uniqueElectronFinder(pElectrons); - edm::LogDebug_("", "ErsatzMEt", 192) << "Unique electron size = " << UniqueElectrons.size(); - std::vector SelectedElectrons; - const unsigned int fId = pHLT->filterIndex(TriggerPath_); - std::cout << "Filter Id = " << fId << std::endl; - SelectedElectrons = electronSelector(UniqueElectrons, pHLT, fId, CutVector_); - nTags_ = SelectedElectrons.size(); - edm::LogDebug_("", "ErsatzMEt", 197) << "Selected electron size = " << nTags_; - - iComb_ = 0; - if (Zevent_) { - //Match MC electrons to the selected electrons and store some of their properties in the tree. - //The properties of the other MC electron (i.e. that not selected) are also stored. - for (std::vector::const_iterator elec = SelectedElectrons.begin(); - elec != SelectedElectrons.end(); - ++elec) { - for (int m = 0; m < 2; ++m) { - double dRLimit = 99.; - double dR = reco::deltaR(McElecs[m], *(*elec)); - if (dR < dRLimit) { - dRLimit = dR; - McElec_pt_[iComb_] = McElecs[m].pt(); - McElec_eta_[iComb_] = McElecs[m].eta(); - McElec_rescPt_[iComb_] = McElecsResc[m].pt(); - McElec_rescEta_[iComb_] = McElecsResc[m].eta(); - } - } - } - } - - std::map TagProbePairs; - TagProbePairs = probeFinder(SelectedElectrons, pElectrons); - nProbes_ = TagProbePairs.size(); - edm::LogDebug_("", "ErsatzMEt", 209) << "Number of tag-probe pairs = " << TagProbePairs.size(); - - if (!TagProbePairs.empty()) { - const reco::CaloMETCollection* caloMEtCollection = pCaloMEt.product(); - const reco::MET calomet = *(caloMEtCollection->begin()); - CaloMEt_ = calomet.pt(); - CaloMEtphi_ = calomet.phi(); - - //const reco::METCollection* t1MEtCollection = pT1MEt.product(); - //const reco::MET t1met = *(t1MEtCollection->begin()); - //T1MEt_ = t1met.pt(); - //T1MEtphi_ = t1met.phi(); - - const reco::PFMETCollection* pfMEtCollection = pPfMEt.product(); - const reco::MET pfmet = *(pfMEtCollection->begin()); - PfMEt_ = pfmet.pt(); - PfMEtphi_ = pfmet.phi(); - - const reco::METCollection* tcMEtCollection = pTcMEt.product(); - const reco::MET tcmet = *(tcMEtCollection->begin()); - TcMEt_ = tcmet.pt(); - TcMEtphi_ = tcmet.phi(); - - reco::MET ersatzMEt; - - for (std::map::const_iterator it = TagProbePairs.begin(); - it != TagProbePairs.end(); - ++it) { - edm::LogDebug_("", "DelendumLoop", 293) << "iComb_ = " << iComb_; - tag_q_[iComb_] = it->first->charge(); - edm::LogDebug_("", "", 360) << "tag charge = " << tag_q_[iComb_]; - tag_pt_[iComb_] = it->first->pt(); - tag_eta_[iComb_] = it->first->eta(); - tag_phi_[iComb_] = it->first->phi(); - edm::LogDebug_("", "ErsatzMEt", 364) - << "tag pt = " << tag_pt_[iComb_] << "\teta = " << tag_eta_[iComb_] << "\tphi = " << tag_phi_[iComb_]; - tag_trckIso_[iComb_] = it->first->isolationVariables03().tkSumPt; - tag_ecalIso_[iComb_] = it->first->isolationVariables04().ecalRecHitSumEt; - tag_hcalIso_[iComb_] = it->first->isolationVariables04().hcalDepth1TowerSumEt + - it->first->isolationVariables04().hcalDepth2TowerSumEt; - edm::LogDebug_("", "ErsatzMEt", 370) - << "tag trackiso = " << tag_trckIso_[iComb_] << "\tecaliso = " << tag_ecalIso_[iComb_] - << "\thcaliso = " << tag_hcalIso_[iComb_]; - tag_sIhIh_[iComb_] = it->first->scSigmaIEtaIEta(); - tag_dPhiIn_[iComb_] = it->first->deltaPhiSuperClusterTrackAtVtx(); - tag_dEtaIn_[iComb_] = it->first->deltaEtaSuperClusterTrackAtVtx(); - edm::LogDebug_("", "ErsatzMEt", 245) - << "tag sIhIh = " << tag_sIhIh_[iComb_] << "\tdPhiIn = " << tag_dPhiIn_[iComb_] - << "\tdEtaIn = " << tag_dEtaIn_[iComb_]; - tag_e5x5_[iComb_] = it->first->scE5x5(); - tag_e2x5Max_[iComb_] = it->first->scE2x5Max(); - tag_e2x5Max_[iComb_] = it->first->scE1x5(); - edm::LogDebug_("", "ErsatzMEt", 245) - << "tag e5x5 = " << tag_e5x5_[iComb_] << "\te2x5Max = " << tag_e2x5Max_[iComb_] - << "\te1x5Max = " << tag_e1x5Max_[iComb_]; - tag_hoe_[iComb_] = it->first->hadronicOverEm(); - tag_eop_[iComb_] = it->first->eSuperClusterOverP(); - tag_pin_[iComb_] = it->first->trackMomentumAtVtx().R(); - tag_pout_[iComb_] = it->first->trackMomentumOut().R(); - edm::LogDebug_("", "ErsatzMEt", 245) << "tag hoe = " << tag_hoe_[iComb_] << "\tpoe = " << tag_eop_[iComb_] - << "\tpin = " << tag_pin_[iComb_] << "\tpout = " << tag_pout_[iComb_]; - probe_q_[iComb_] = it->first->charge(); - edm::LogDebug_("", "", 360) << "probe charge = " << probe_q_[iComb_]; - probe_pt_[iComb_] = it->second->pt(); - probe_eta_[iComb_] = it->second->eta(); - probe_phi_[iComb_] = it->second->phi(); - edm::LogDebug_("", "ErsatzMEt", 245) << "probe pt = " << probe_pt_[iComb_] << "\teta = " << probe_eta_[iComb_] - << "\tphi = " << probe_phi_[iComb_]; - probe_trckIso_[iComb_] = it->second->isolationVariables03().tkSumPt; - probe_ecalIso_[iComb_] = it->second->isolationVariables04().ecalRecHitSumEt; - probe_hcalIso_[iComb_] = it->second->isolationVariables04().hcalDepth1TowerSumEt + - it->second->isolationVariables04().hcalDepth2TowerSumEt; - edm::LogDebug_("", "ErsatzMEt", 245) - << "probe trackiso = " << probe_trckIso_[iComb_] << "\tecaliso = " << probe_ecalIso_[iComb_] - << "\thcaliso = " << probe_phi_[iComb_]; - probe_sIhIh_[iComb_] = it->second->scSigmaIEtaIEta(); - probe_dPhiIn_[iComb_] = it->second->deltaPhiSuperClusterTrackAtVtx(); - probe_dEtaIn_[iComb_] = it->second->deltaEtaSuperClusterTrackAtVtx(); - edm::LogDebug_("", "ErsatzMEt", 245) - << "probe sIhIh = " << probe_sIhIh_[iComb_] << "\tdPhiIn = " << probe_dPhiIn_[iComb_] - << "\tdEtaIn = " << probe_dEtaIn_[iComb_]; - probe_e5x5_[iComb_] = it->second->scE5x5(); - probe_e2x5Max_[iComb_] = it->second->scE2x5Max(); - probe_e2x5Max_[iComb_] = it->second->scE1x5(); - edm::LogDebug_("", "ErsatzMEt", 245) - << "probe e5x5 = " << probe_e5x5_[iComb_] << "\te2x5Max = " << probe_e2x5Max_[iComb_] - << "\te1x5Max = " << probe_e1x5Max_[iComb_]; - probe_hoe_[iComb_] = it->second->hadronicOverEm(); - probe_eop_[iComb_] = it->second->eSuperClusterOverP(); - probe_pin_[iComb_] = it->second->trackMomentumAtVtx().R(); - probe_pout_[iComb_] = it->second->trackMomentumOut().R(); - edm::LogDebug_("", "ErsatzMEt", 245) << "probe hoe = " << probe_hoe_[iComb_] << "\tpoe = " << probe_eop_[iComb_] - << "\tpin = " << probe_pin_[iComb_] << "\tpout = " << probe_pout_[iComb_]; - - double dRLimit = 0.2; - for (unsigned int mcEId = 0; mcEId < McElecs.size(); ++mcEId) { - // double dR = reco::deltaR((*(*mcEl)), probeVec); - double dR = reco::deltaR(McElecs[mcEId], it->second->p4()); - if (dR < dRLimit) { - dRLimit = dR; - McProbe_pt_[iComb_] = McElecs[mcEId].pt(); - McProbe_eta_[iComb_] = McElecs[mcEId].eta(); - McProbe_phi_[iComb_] = McElecs[mcEId].phi(); - McProbe_rescPt_[iComb_] = McElecsResc[mcEId].pt(); - McProbe_rescEta_[iComb_] = McElecsResc[mcEId].eta(); - McProbe_rescPhi_[iComb_] = McElecsResc[mcEId].phi(); - probe_d_MCE_SCE_[iComb_] = McElecs[mcEId].energy() - it->second->superCluster()->rawEnergy(); - McElecProbe_dPhi_[iComb_] = reco::deltaPhi(McElecs[mcEId].phi(), McElecs[(mcEId + 1) % 2].phi()); - McElecProbe_dEta_[iComb_] = fabs(McElecs[mcEId].eta() - McElecs[(mcEId + 1) % 2].eta()); - McElecProbe_dR_[iComb_] = reco::deltaR(McElecs[mcEId], McElecs[(mcEId + 1) % 2]); - } - } - - // Uncorrected supercluster V1 - reco::SuperCluster scV1 = *(it->second->superCluster()); - math::XYZTLorentzVector probe_scV1_detVec = DetectorVector(scV1); - probe_sc_pt_[iComb_] = probe_scV1_detVec.pt(); - probe_sc_eta_[iComb_] = scV1.eta(); - probe_sc_phi_[iComb_] = scV1.phi(); - probe_sc_nClus_[iComb_] = scV1.clustersSize(); - probe_sc_E_[iComb_] = scV1.energy(); - probe_sc_rawE_[iComb_] = scV1.rawEnergy(); - - ersatzMEt = ersatzFabrik(it->first, scV1, calomet, 1); - ErsatzV1CaloMEt_[iComb_] = ersatzMEt.pt(); - ErsatzV1CaloMEtPhi_[iComb_] = ersatzMEt.phi(); - //ersatzMEt = ersatzFabrik(it->first, it->second, t1met); - //ErsatzV1T1MEt_[iComb_] = ersatzMEt.pt(); - //ErsatzV1T1MEtPhi_[iComb_] = ersatzMEt.phi(); - ersatzMEt = ersatzFabrik(it->first, it->second, pfmet); - ErsatzV1PfMEt_[iComb_] = ersatzMEt.pt(); - ErsatzV1PfMEtPhi_[iComb_] = ersatzMEt.phi(); - ersatzMEt = ersatzFabrik(it->first, it->second, tcmet); - ErsatzV1TcMEt_[iComb_] = ersatzMEt.pt(); - ErsatzV1TcMEtPhi_[iComb_] = ersatzMEt.phi(); - - // fEta corrected supercluster V2 - reco::SuperCluster scV2; - if (fabs(probe_sc_eta_[iComb_]) < 1.479) { - scV2 = fEtaScCorr(scV1); - } else { - scV2 = scV1; - } - probe_scV2_E_[iComb_] = scV2.energy(); - ersatzMEt = ersatzFabrik(it->first, scV2, calomet, 2); - ErsatzV2CaloMEt_[iComb_] = ersatzMEt.pt(); - ErsatzV2CaloMEtPhi_[iComb_] = ersatzMEt.phi(); - - // fBrem corrected supercluster V3 - reco::SuperCluster scV3; - if (fabs(probe_sc_eta_[iComb_]) < 1.479) { - scV3 = fBremScCorr(scV1, hyb_fCorrPSet_); - } else { - scV3 = fBremScCorr(scV1, m5x5_fCorrPSet_); - } - probe_scV3_E_[iComb_] = scV3.energy(); - ersatzMEt = ersatzFabrik(it->first, scV3, calomet, 3); - ErsatzV3CaloMEt_[iComb_] = ersatzMEt.pt(); - ErsatzV3CaloMEtPhi_[iComb_] = ersatzMEt.phi(); - - // Fully corrected supercluster V4 - reco::SuperCluster scV4; - if (fabs(probe_sc_eta_[iComb_]) < 1.479) { - scV4 = fBremScCorr(scV1, hyb_fCorrPSet_); - } else { - scV4 = fBremScCorr(scV1, m5x5_fCorrPSet_); - } - probe_scV4_E_[iComb_] = scV4.energy(); - ersatzMEt = ersatzFabrik(it->first, scV4, calomet, 4); - ErsatzV4CaloMEt_[iComb_] = ersatzMEt.pt(); - ErsatzV4CaloMEtPhi_[iComb_] = ersatzMEt.phi(); - - ++iComb_; - } - t_->Fill(); - } - } -} - -std::map ErsatzMEt::probeFinder( - const std::vector& tags, const edm::Handle pElectrons) { - const reco::GsfElectronCollection* probeCands = pElectrons.product(); - std::map TagProbes; - for (std::vector::const_iterator tagelec = tags.begin(); tagelec != tags.end(); ++tagelec) { - reco::GsfElectronRef tag = *tagelec; - std::pair TagProbePair; - int nProbesPerTag = 0; - int index = 0; - for (reco::GsfElectronCollection::const_iterator probeelec = probeCands->begin(); probeelec != probeCands->end(); - ++probeelec) { - reco::GsfElectronRef probe(pElectrons, index); - double probeScEta = probe->superCluster()->eta(); - if (probe->superCluster() != tag->superCluster() && fabs(probeScEta) < 2.5) { - if (fabs(probeScEta) < 1.4442 || fabs(probeScEta) > 1.560) { - double invmass = ROOT::Math::VectorUtil::InvariantMass(tag->p4(), probe->p4()); - if (mTPmin_ <= invmass && invmass <= mTPmax_) { - TagProbePair = std::make_pair(tag, probe); - ++nProbesPerTag; - } - } - } - ++index; - } - //nGsfElectrons_ = index; - if (nProbesPerTag == 1) - TagProbes.insert(TagProbePair); - } - return TagProbes; -} - -reco::MET ErsatzMEt::ersatzFabrik(const reco::GsfElectronRef& elec, - const reco::SuperCluster& sc, - const reco::MET& met, - const int corr) { - const math::XYZPoint ZVertex( - elec->TrackPositionAtVtx().X(), elec->TrackPositionAtVtx().Y(), elec->TrackPositionAtVtx().Z()); - - math::XYZTLorentzVector nu, boost_nu, ele, boost_ele; - reco::SuperCluster elecSc = *(elec->superCluster()); - nu = PhysicsVectorRaw(met.vertex(), sc); - boost_nu = PhysicsVectorRaw(ZVertex, sc); - ele = PhysicsVectorRaw(met.vertex(), elecSc); - boost_ele = ele; - - //Should use reco vertex for best Z->ee measurement. - edm::LogDebug_("ersatzFabrikV1", "", 569) << "elec = (" << elec->p4().Px() << ", " << elec->p4().Py() << ", " - << elec->p4().Pz() << ", " << elec->p4().E() << ")"; - math::XYZTLorentzVector Zboson = boost_nu + elec->p4(); - edm::LogDebug_("ersatzFabrikV1", "", 569) << "Z pt = " << Zboson.Pt() << "Z boson mass = " << Zboson.M(); - edm::LogDebug_("ersatzFabrikV1", "", 570) << "Z boson in lab frame = (" << Zboson.Px() << ", " << Zboson.Py() << ", " - << Zboson.Pz() << ", " << Zboson.E() << ")"; - math::XYZTLorentzVector RescZboson( - Zboson.Px(), Zboson.Py(), Zboson.Pz(), sqrt(Zboson.P2() + (mW_ * mW_ * Zboson.M2()) / (mZ_ * mZ_))); - edm::LogDebug_("ersatzFabrikV1", "", 573) << "W boson in lab frame = (" << RescZboson.Px() << ", " << RescZboson.Py() - << ", " << RescZboson.Pz() << ", " << RescZboson.E() << ")"; - ROOT::Math::Boost BoostToZRestFrame(Zboson.BoostToCM()); - edm::LogDebug_("ersatzFabrikV1", "", 576) << "Electron in lab frame = (" << boost_ele.Px() << ", " << boost_ele.Py() - << ", " << boost_ele.Pz() << ", " << boost_ele.E() << ")"; - edm::LogDebug_("ersatzFabrikV1", "", 578) << "Ersatz Neutrino in lab frame = (" << boost_nu.Px() << ", " - << boost_nu.Py() << ", " << boost_nu.Pz() << ", " << boost_nu.E() << ")"; - boost_ele = BoostToZRestFrame(boost_ele); - boost_nu = BoostToZRestFrame(boost_nu); - edm::LogDebug_("ersatzFabrikV1", "", 582) << "Electron in Z rest frame = (" << boost_ele.Px() << ", " - << boost_ele.Py() << ", " << boost_ele.Pz() << ", " << boost_ele.E() << ")"; - edm::LogDebug_("ersatzFabrikV1", "", 584) << "Ersatz Neutrino in Z rest frame = (" << boost_nu.Px() << ", " - << boost_nu.Py() << ", " << boost_nu.Pz() << ", " << boost_nu.E() << ")"; - boost_ele *= mW_ / mZ_; - boost_nu *= mW_ / mZ_; - - double E_W = RescZboson.E(); - ROOT::Math::Boost BackToLab(RescZboson.Px() / E_W, RescZboson.Py() / E_W, RescZboson.Pz() / E_W); - math::XYZTLorentzVector metVec(-99999., -99999., -99., -99999.); - boost_ele = BackToLab(boost_ele); - - boost_nu = BackToLab(boost_nu); - math::XYZTLorentzVector sum = boost_nu + boost_ele; - edm::LogDebug_("ersatzFabrikV1", "", 597) << "Electron back in lab frame = (" << boost_ele.Px() << ", " - << boost_ele.Py() << ", " << boost_ele.Pz() << ", " << boost_ele.E() << ")"; - edm::LogDebug_("ersatzFabrikV1", "", 599) << "Ersatz Neutrino back in lab frame = (" << boost_nu.Px() << ", " - << boost_nu.Py() << ", " << boost_nu.Pz() << ", " << boost_nu.E() << ")"; - edm::LogDebug_("ersatzFabrikV1", "", 601) - << "boost_ele + boost_nu = (" << sum.Px() << ", " << sum.Py() << ", " << sum.Pz() << ", " << sum.E() << ")"; - - nu.SetXYZT(nu.X(), nu.Y(), 0., nu.T()); - ele.SetXYZT(ele.X(), ele.Y(), 0., ele.T()); - boost_ele.SetXYZT(boost_ele.X(), boost_ele.Y(), 0., boost_ele.T()); - metVec = met.p4() + nu + ele - boost_ele; - - reco::MET ersatzMEt(metVec, met.vertex()); - if (corr == 1) { - //Z_caloV1_m_[iComb_] = Zboson.M(); - //Z_caloV1_pt_[iComb_] = Zboson.Pt(); - //Z_caloV1_y_[iComb_] = Zboson.Y(); - //Z_caloV1_eta_[iComb_] = Zboson.Eta(); - //Z_caloV1_phi_[iComb_] = Zboson.Phi(); - //Z_caloV1_rescM_[iComb_] = RescZboson.M(); - //Z_caloV1_rescPt_[iComb_] = RescZboson.Pt(); - //Z_caloV1_rescY_[iComb_] = RescZboson.Y(); - //Z_caloV1_rescEta_[iComb_] = RescZboson.Eta(); - //Z_caloV1_rescPhi_[iComb_] = RescZboson.Phi(); - //Z_caloV1_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), elec->phi()); - //tag_caloV1_rescPt_[iComb_] = boost_ele.Pt(); - //tag_caloV1_rescEta_[iComb_] = boost_ele.Eta(); - //tag_caloV1_rescPhi_[iComb_] = boost_ele.Phi(); - //probe_caloV1_rescPt_[iComb_] = boost_nu.Pt(); - //probe_caloV1_rescEta_[iComb_] = boost_nu.Eta(); - //probe_caloV1_rescPhi_[iComb_] = boost_nu.Phi(); - ErsatzV1_Mesc_[iComb_] = ROOT::Math::VectorUtil::InvariantMass(elec->p4(), boost_nu); - ErsatzV1_rescMesc_[iComb_] = ROOT::Math::VectorUtil::InvariantMass(ele, nu); - ErsatzV1CaloMt_[iComb_] = - sqrt(2. * boost_ele.Pt() * ersatzMEt.pt() * (1 - cos(reco::deltaPhi(boost_ele.Phi(), ersatzMEt.phi())))); - } - if (corr == 2) { - //Z_caloV2_m_[iComb_] = Zboson.M(); - //Z_caloV2_pt_[iComb_] = Zboson.Pt(); - //Z_caloV2_y_[iComb_] = Zboson.Y(); - //Z_caloV2_eta_[iComb_] = Zboson.Eta(); - //Z_caloV2_phi_[iComb_] = Zboson.Phi(); - //Z_caloV2_rescM_[iComb_] = RescZboson.M(); - //Z_caloV2_rescPt_[iComb_] = RescZboson.Pt(); - //Z_caloV2_rescY_[iComb_] = RescZboson.Y(); - //Z_caloV2_rescEta_[iComb_] = RescZboson.Eta(); - //Z_caloV2_rescPhi_[iComb_] = RescZboson.Phi(); - //Z_caloV2_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), boost_elec->phi()); - //tag_caloV2_rescPt_[iComb_] = boost_ele.Pt(); - //tag_caloV2_rescEta_[iComb_] = boost_ele.Eta(); - //tag_caloV2_rescPhi_[iComb_] = boost_ele.Phi(); - //probe_caloV2_rescPt_[iComb_] = boost_nu.Pt(); - //probe_caloV2_rescEta_[iComb_] = boost_nu.Eta(); - //probe_caloV2_rescPhi_[iComb_] = boost_nu.Phi(); - ErsatzV2_Mesc_[iComb_] = ROOT::Math::VectorUtil::InvariantMass(elec->p4(), boost_nu); - ErsatzV2_rescMesc_[iComb_] = ROOT::Math::VectorUtil::InvariantMass(ele, nu); - ErsatzV2CaloMt_[iComb_] = - sqrt(2. * boost_ele.Pt() * ersatzMEt.pt() * (1 - cos(reco::deltaPhi(boost_ele.Phi(), ersatzMEt.phi())))); - } - if (corr == 3) { - //Z_caloV3_m_[iComb_] = Zboson.M(); - //Z_caloV3_pt_[iComb_] = Zboson.Pt(); - //Z_caloV3_y_[iComb_] = Zboson.Y(); - //Z_caloV3_eta_[iComb_] = Zboson.Eta(); - //Z_caloV3_phi_[iComb_] = Zboson.Phi(); - //Z_caloV3_rescM_[iComb_] = RescZboson.M(); - //Z_caloV3_rescPt_[iComb_] = RescZboson.Pt(); - //Z_caloV3_rescY_[iComb_] = RescZboson.Y(); - //Z_caloV3_rescEta_[iComb_] = RescZboson.Eta(); - //Z_caloV3_rescPhi_[iComb_] = RescZboson.Phi(); - //Z_caloV3_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), boost_elec->phi()); - //tag_caloV3_rescPt_[iComb_] = boost_ele.Pt(); - //tag_caloV3_rescEta_[iComb_] = boost_ele.Eta(); - //tag_caloV3_rescPhi_[iComb_] = boost_ele.Phi(); - //probe_caloV3_rescPt_[iComb_] = boost_nu.Pt(); - //probe_caloV3_rescEta_[iComb_] = boost_nu.Eta(); - //probe_caloV3_rescPhi_[iComb_] = boost_nu.Phi(); - ErsatzV3_Mesc_[iComb_] = ROOT::Math::VectorUtil::InvariantMass(elec->p4(), boost_nu); - ErsatzV3_rescMesc_[iComb_] = ROOT::Math::VectorUtil::InvariantMass(ele, nu); - ErsatzV3CaloMt_[iComb_] = - sqrt(2. * boost_ele.Pt() * ersatzMEt.pt() * (1 - cos(reco::deltaPhi(boost_ele.Phi(), ersatzMEt.phi())))); - } - if (corr == 4) { - //Z_caloV4_m_[iComb_] = Zboson.M(); - //Z_caloV4_pt_[iComb_] = Zboson.Pt(); - //Z_caloV4_y_[iComb_] = Zboson.Y(); - //Z_caloV4_eta_[iComb_] = Zboson.Eta(); - //Z_caloV4_phi_[iComb_] = Zboson.Phi(); - //Z_caloV4_rescM_[iComb_] = RescZboson.M(); - //Z_caloV4_rescPt_[iComb_] = RescZboson.Pt(); - //Z_caloV4_rescY_[iComb_] = RescZboson.Y(); - //Z_caloV4_rescEta_[iComb_] = RescZboson.Eta(); - //Z_caloV4_rescPhi_[iComb_] = RescZboson.Phi(); - //Z_caloV4_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), boost_elec->phi()); - //tag_caloV4_rescPt_[iComb_] = boost_ele.Pt(); - //tag_caloV4_rescEta_[iComb_] = boost_ele.Eta(); - //tag_caloV4_rescPhi_[iComb_] = boost_ele.Phi(); - //probe_caloV4_rescPt_[iComb_] = boost_nu.Pt(); - //probe_caloV4_rescEta_[iComb_] = boost_nu.Eta(); - //probe_caloV4_rescPhi_[iComb_] = boost_nu.Phi(); - ErsatzV4_Mesc_[iComb_] = ROOT::Math::VectorUtil::InvariantMass(elec->p4(), boost_nu); - ErsatzV4_rescMesc_[iComb_] = ROOT::Math::VectorUtil::InvariantMass(ele, nu); - ErsatzV4CaloMt_[iComb_] = - sqrt(2. * boost_ele.Pt() * ersatzMEt.pt() * (1 - cos(reco::deltaPhi(boost_ele.Phi(), ersatzMEt.phi())))); - } - return ersatzMEt; -} - -reco::MET ErsatzMEt::ersatzFabrik(const reco::GsfElectronRef& tag, - const reco::GsfElectronRef& probe, - const reco::MET& met) { - math::XYZTLorentzVector elec, nu, boost_elec, boost_nu; - boost_elec = tag->p4(); - edm::LogDebug_("ersatzFabrikV1", "", 858) << "boost_elec = (" << boost_elec.Px() << ", " << boost_elec.Py() << ", " - << boost_elec.Pz() << ", " << boost_elec.E() << ")"; - boost_nu = probe->p4(); - edm::LogDebug_("ersatzFabrikV1", "", 860) << "boost_nu = (" << boost_nu.Px() << ", " << boost_nu.Py() << ", " - << boost_nu.Pz() << ", " << boost_nu.E() << ")"; - math::XYZTLorentzVector Zboson = boost_elec + boost_nu; - edm::LogDebug_("ersatzFabrikV1", "", 862) - << "Zboson = (" << Zboson.Px() << ", " << Zboson.Py() << ", " << Zboson.Pz() << ", " << Zboson.E() << ")"; - math::XYZTLorentzVector RescZboson( - Zboson.Px(), Zboson.Py(), Zboson.Pz(), sqrt(Zboson.P2() + (mW_ * mW_ * Zboson.M2()) / (mZ_ * mZ_))); - edm::LogDebug_("ersatzFabrikV1", "", 864) << "RescZboson = (" << RescZboson.Px() << ", " << RescZboson.Py() << ", " - << RescZboson.Pz() << ", " << RescZboson.E() << ")"; - ROOT::Math::Boost BoostToZRestFrame(Zboson.BoostToCM()); - elec = BoostToZRestFrame(boost_elec); - edm::LogDebug_("ersatzFabrikV1", "", 867) << "boost_elec (in Z rest frame) = (" << elec.Px() << ", " << elec.Py() - << ", " << elec.Pz() << ", " << elec.E() << ")"; - nu = BoostToZRestFrame(boost_nu); - edm::LogDebug_("ersatzFabrikV1", "", 869) - << "boost_nu (in Z rest frame) = (" << nu.Px() << ", " << nu.Py() << ", " << nu.Pz() << ", " << nu.E() << ")"; - elec *= mW_ / mZ_; - edm::LogDebug_("ersatzFabrikV1", "", 871) - << "elec (in Z rest frame) = (" << elec.Px() << ", " << elec.Py() << ", " << elec.Pz() << ", " << elec.E() << ")"; - nu *= mW_ / mZ_; - edm::LogDebug_("ersatzFabrikV1", "", 873) - << "nu (in Z rest frame) = (" << nu.Px() << ", " << nu.Py() << ", " << nu.Pz() << ", " << nu.E() << ")"; - ROOT::Math::Boost BoostBackToLab( - RescZboson.Px() / RescZboson.E(), RescZboson.Py() / RescZboson.E(), RescZboson.Pz() / RescZboson.E()); - math::XYZTLorentzVector metVec(-99999., -99999., -99., -99999.); - elec = BoostBackToLab(elec); - edm::LogDebug_("ersatzFabrikV1", "", 877) - << "elec = (" << elec.Px() << ", " << elec.Py() << ", " << elec.Pz() << ", " << elec.E() << ")"; - nu = BoostBackToLab(nu); - edm::LogDebug_("ersatzFabrikV1", "", 879) - << "nu = (" << nu.Px() << ", " << nu.Py() << ", " << nu.Pz() << ", " << nu.E() << ")"; - Z_m_[iComb_] = Zboson.M(); - Z_pt_[iComb_] = Zboson.Pt(); - Z_y_[iComb_] = Zboson.Y(); - Z_eta_[iComb_] = Zboson.Eta(); - Z_phi_[iComb_] = Zboson.Phi(); - Z_rescM_[iComb_] = RescZboson.M(); - Z_rescPt_[iComb_] = RescZboson.Pt(); - Z_rescY_[iComb_] = RescZboson.Y(); - Z_rescEta_[iComb_] = RescZboson.Eta(); - Z_rescPhi_[iComb_] = RescZboson.Phi(); - Z_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), boost_elec.phi()); - tag_rescPt_[iComb_] = elec.Pt(); - tag_rescEta_[iComb_] = elec.Eta(); - tag_rescPhi_[iComb_] = elec.Phi(); - probe_rescPt_[iComb_] = nu.Pt(); - probe_rescEta_[iComb_] = nu.Eta(); - probe_rescPhi_[iComb_] = nu.Phi(); - elec.SetXYZT(elec.X(), elec.Y(), 0., elec.T()); - nu.SetXYZT(nu.X(), nu.Y(), 0., nu.T()); - boost_elec.SetXYZT(boost_elec.X(), boost_elec.Y(), 0., boost_elec.T()); - metVec = met.p4() + nu + elec - boost_elec; - reco::MET ersatzMEt(metVec, met.vertex()); - return ersatzMEt; -} - -bool ErsatzMEt::isInBarrel(double eta) { return (fabs(eta) < BarrelEtaMax_); } - -bool ErsatzMEt::isInEndCap(double eta) { return (fabs(eta) < EndCapEtaMax_ && fabs(eta) > EndCapEtaMin_); } - -bool ErsatzMEt::isInFiducial(double eta) { return isInBarrel(eta) || isInEndCap(eta); } - -// ------------ method called once each job just after ending the event loop ------------ -void ErsatzMEt::endJob() {} -//define this as a plug-in -DEFINE_FWK_MODULE(ErsatzMEt); diff --git a/ElectroWeakAnalysis/ZEE/src/ZeeCandidateFilter.cc b/ElectroWeakAnalysis/ZEE/src/ZeeCandidateFilter.cc deleted file mode 100644 index 7436f64d1677f..0000000000000 --- a/ElectroWeakAnalysis/ZEE/src/ZeeCandidateFilter.cc +++ /dev/null @@ -1,1267 +0,0 @@ -// -*- C++ -*- -// -// Package: ZeeCandidateFilter -// Class: ZeeCandidateFilter -// -/**\class ZeeCandidateFilter ZeeCandidateFilter.cc EWKSoftware/EDMTupleSkimmerFilter/src/ZeeCandidateFilter.cc - - Description: - - Implementation: - - This class contains a filter that searches the event and finds whether it fulfills the Z Candidate Criteria. - If it fullfills them it creates a ZeeCandidate and stores it in the event. - - Definition of the Zee Caldidate: - * event that passes the trigger - * has 2 Gsf electrons in fiducial with ET greater than a (configurable) threshold - * at least one of them matched to an HLT Object (configurable) with DR < (configurable) - - Changes Log: - - 12Feb09 First Release of the code for CMSSW_2_2_X - - 17Sep09 First Release for CMSSW_3_1_X - - 09Dec09 Option to ignore trigger - - 25Feb10 Added options to use Conversion Rejection, Expected missing hits and valid hit at first PXB - - Added option to calculate these criteria and store them in the pat electron object this is done by setting in the configuration the flags - - calculateValidFirstPXBHit = true - calculateConversionRejection = true - calculateExpectedMissinghits = true - - Then the code calculates them and you can access all these from pat::Electron - - myElec.userInt("PassValidFirstPXBHit") 0 fail, 1 passes - myElec.userInt("PassConversionRejection") 0 fail, 1 passes - myElec.userInt("NumberOfExpectedMissingHits") the number of lost hits - - - 28May10 Implementation of Spring10 selections - Contact: - Stilianos Kesisoglou - Institute of Nuclear Physics - NCSR Demokritos -// Original Author: Nikolaos Rompotis - - Nikolaos.Rompotis@Cern.ch - Imperial College London - -*/ - -#ifndef ZeeCandidateFilter_H -#define ZeeCandidateFilter_H - -// System include files -#include - -// User include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include -#include -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/PatCandidates/interface/Electron.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "FWCore/Common/interface/TriggerNames.h" - -#include "TString.h" -#include "TMath.h" -#include "DataFormats/PatCandidates/interface/MET.h" -#include "DataFormats/PatCandidates/interface/CompositeCandidate.h" -#include "DataFormats/PatCandidates/interface/TriggerObject.h" - -// For conversion finder -#include "FWCore/Framework/interface/ESHandle.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "DataFormats/GeometryVector/interface/GlobalPoint.h" - -#include "DataFormats/Scalers/interface/DcsStatus.h" -#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" -#include "RecoEcal/EgammaCoreTools/interface/EcalTools.h" -#include "CondFormats/DataRecord/interface/EcalChannelStatusRcd.h" -#include "DataFormats/VertexReco/interface/Vertex.h" - -// Class Declaration -// ----------------- -// -class ZeeCandidateFilter : public edm::EDFilter { -public: - explicit ZeeCandidateFilter(const edm::ParameterSet &); - - ~ZeeCandidateFilter() override; - -private: - Bool_t filter(edm::Event &, const edm::EventSetup &) override; - - void endJob() override; - - Bool_t isInFiducial(Double_t eta); - - //Bool_t passEleIDCuts(pat::Electron *ele); - - // ----- Data Members ----- - - Double_t ETCut_; - Double_t METCut_; - - Bool_t useEcalDrivenElectrons_; - - /* Electron 1 */ - Bool_t useValidFirstPXBHit1_; - Bool_t calculateValidFirstPXBHit1_; - Bool_t useConversionRejection1_; - Bool_t calculateConversionRejection1_; - Bool_t useExpectedMissingHits1_; - Bool_t calculateExpectedMissingHits1_; - Int_t maxNumberOfExpectedMissingHits1_; - - /* Electron 2 */ - Bool_t useValidFirstPXBHit2_; - Bool_t calculateValidFirstPXBHit2_; - Bool_t useConversionRejection2_; - Bool_t calculateConversionRejection2_; - Bool_t useExpectedMissingHits2_; - Bool_t calculateExpectedMissingHits2_; - Int_t maxNumberOfExpectedMissingHits2_; - - /* Electron 1 */ - Double_t dist1_; - Double_t dcot1_; - - /* Electron 2 */ - Double_t dist2_; - Double_t dcot2_; - - Bool_t dataMagneticFieldSetUp_; - - edm::InputTag dcsTag_; - edm::EDGetTokenT dcsToken_; - edm::EDGetTokenT tracksToken_; - - Double_t BarrelMaxEta_; - Double_t EndCapMaxEta_; - Double_t EndCapMinEta_; - - std::string hltpath_; - edm::InputTag triggerCollectionTag_; - edm::EDGetTokenT triggerCollectionToken_; - edm::EDGetTokenT triggerEventToken_; - edm::InputTag hltpathFilter_; - Bool_t useHLTObjectETCut_; - - Double_t hltObjectETCut_; - - Bool_t useExtraTrigger_; - - std::vector vHltpathExtra_; - std::vector vHltpathFilterExtra_; - - Bool_t useTriggerInfo_; - Bool_t electronMatched2HLT_; - Double_t electronMatched2HLT_DR_; - - edm::InputTag electronCollectionTag_; - edm::EDGetTokenT electronCollectionToken_; - - edm::EDGetTokenT metCollectionToken_; - edm::EDGetTokenT pfMetCollectionToken_; - edm::EDGetTokenT tcMetCollectionToken_; - - edm::EDGetTokenT > PrimaryVerticesCollectionToken_; - - edm::EDGetTokenT ebRecHitsToken_; - edm::EDGetTokenT eeRecHitsToken_; - - Bool_t useSpikeRejection_; - - Double_t spikeCleaningSwissCrossCut_; -}; - -#endif - -// Constants, Enums and Typedefs -// ----------------------------- -// - -// Static Data Member Definitions -// ------------------------------ -// - -// Constructors and Destructor -// --------------------------- -// -ZeeCandidateFilter::ZeeCandidateFilter(const edm::ParameterSet &iConfig) { - // - //-------------------------------------// - // INITIALIZATION // - //-------------------------------------// - // - - // Cuts - // ---- - ETCut_ = iConfig.getUntrackedParameter("ETCut"); - METCut_ = iConfig.getUntrackedParameter("METCut"); - - useEcalDrivenElectrons_ = iConfig.getUntrackedParameter("useEcalDrivenElectrons", false); - //-------------------------------------------------------------------------------------------------------------------- - - // Preselection Criteria: Hit Pattern - // ---------------------------------- - // - /* Electron 1 */ - useValidFirstPXBHit1_ = iConfig.getUntrackedParameter("useValidFirstPXBHit1", false); - calculateValidFirstPXBHit1_ = iConfig.getUntrackedParameter("calculateValidFirstPXBHit1", false); - useConversionRejection1_ = iConfig.getUntrackedParameter("useConversionRejection1", false); - calculateConversionRejection1_ = iConfig.getUntrackedParameter("calculateConversionRejection1", false); - useExpectedMissingHits1_ = iConfig.getUntrackedParameter("useExpectedMissingHits1", false); - calculateExpectedMissingHits1_ = iConfig.getUntrackedParameter("calculateExpectedMissingHits1", false); - maxNumberOfExpectedMissingHits1_ = iConfig.getUntrackedParameter("maxNumberOfExpectedMissingHits1", 1); - // - /* Electron 2 */ - useValidFirstPXBHit2_ = iConfig.getUntrackedParameter("useValidFirstPXBHit2", false); - calculateValidFirstPXBHit2_ = iConfig.getUntrackedParameter("calculateValidFirstPXBHit2", false); - useConversionRejection2_ = iConfig.getUntrackedParameter("useConversionRejection2", false); - calculateConversionRejection2_ = iConfig.getUntrackedParameter("calculateConversionRejection2", false); - useExpectedMissingHits2_ = iConfig.getUntrackedParameter("useExpectedMissingHits2", false); - calculateExpectedMissingHits2_ = iConfig.getUntrackedParameter("calculateExpectedMissingHits2", false); - maxNumberOfExpectedMissingHits2_ = iConfig.getUntrackedParameter("maxNumberOfExpectedMissingHits2", 1); - //-------------------------------------------------------------------------------------------------------------------- - - // Conversion Rejection Variables - // ------------------------------ - // - /* Electron 1 */ - Double_t dist1_D = 0.02; - Double_t dcot1_D = 0.02; - // - dist1_ = iConfig.getUntrackedParameter("conversionRejectionDist1", dist1_D); - dcot1_ = iConfig.getUntrackedParameter("conversionRejectionDcot1", dcot1_D); - // - /* Electron 2 */ - Double_t dist2_D = 0.02; - Double_t dcot2_D = 0.02; - // - dist2_ = iConfig.getUntrackedParameter("conversionRejectionDist2", dist2_D); - dcot2_ = iConfig.getUntrackedParameter("conversionRejectionDcot2", dcot2_D); - //-------------------------------------------------------------------------------------------------------------------- - - // Magnetic Field - // -------------- - // - dataMagneticFieldSetUp_ = iConfig.getUntrackedParameter("dataMagneticFieldSetUp", false); - - if (dataMagneticFieldSetUp_) { - dcsTag_ = iConfig.getUntrackedParameter("dcsTag"); - dcsToken_ = mayConsume(dcsTag_); - } - tracksToken_ = mayConsume(edm::InputTag("generalTracks")); - //-------------------------------------------------------------------------------------------------------------------- - - // Detector Fiducial Cuts - // ---------------------- - // - Double_t BarrelMaxEta_D = 1.4442; - Double_t EndCapMinEta_D = 1.5660; - Double_t EndCapMaxEta_D = 2.5000; - - BarrelMaxEta_ = iConfig.getUntrackedParameter("BarrelMaxEta", BarrelMaxEta_D); - EndCapMaxEta_ = iConfig.getUntrackedParameter("EndCapMaxEta", EndCapMaxEta_D); - EndCapMinEta_ = iConfig.getUntrackedParameter("EndCapMinEta", EndCapMinEta_D); - //-------------------------------------------------------------------------------------------------------------------- - - // Trigger Related - // --------------- - // - hltpath_ = iConfig.getUntrackedParameter("hltpath"); - triggerCollectionTag_ = iConfig.getUntrackedParameter("triggerCollectionTag"); - triggerCollectionToken_ = consumes(triggerCollectionTag_); - triggerEventToken_ = consumes(iConfig.getUntrackedParameter("triggerEventTag")); - hltpathFilter_ = iConfig.getUntrackedParameter("hltpathFilter"); - useHLTObjectETCut_ = iConfig.getUntrackedParameter("useHLTObjectETCut", false); - - if (useHLTObjectETCut_) { - hltObjectETCut_ = iConfig.getUntrackedParameter("hltObjectETCut"); - } - - // Dirty way to add a second trigger with OR, to be done properly in the next tag - useExtraTrigger_ = iConfig.getUntrackedParameter("useExtraTrigger"); - - if (useExtraTrigger_) { - vHltpathExtra_ = iConfig.getUntrackedParameter >("vHltpathExtra"); - vHltpathFilterExtra_ = iConfig.getUntrackedParameter >("vHltpathFilterExtra"); - - if (Int_t(vHltpathExtra_.size()) != Int_t(vHltpathFilterExtra_.size())) { - std::cout << "ZeeCandidateFilter: ERROR IN Configuration: vHltpathExtra and vHltpathFilterExtra" - << " should have the same dimensions " << std::endl; - } - } - //-------------------------------------------------------------------------------------------------------------------- - - // Trigger Matching Related - // ------------------------ - // - useTriggerInfo_ = iConfig.getUntrackedParameter("useTriggerInfo", true); - electronMatched2HLT_ = iConfig.getUntrackedParameter("electronMatched2HLT"); - electronMatched2HLT_DR_ = iConfig.getUntrackedParameter("electronMatched2HLT_DR"); - //-------------------------------------------------------------------------------------------------------------------- - - // Electrons, MET's Vtx's and other - // -------------------------------- - // - electronCollectionTag_ = iConfig.getUntrackedParameter("electronCollectionTag"); - electronCollectionToken_ = consumes(electronCollectionTag_); - - metCollectionToken_ = consumes(iConfig.getUntrackedParameter("metCollectionTag")); - pfMetCollectionToken_ = - consumes(iConfig.getUntrackedParameter("pfMetCollectionTag")); - tcMetCollectionToken_ = - consumes(iConfig.getUntrackedParameter("tcMetCollectionTag")); - - PrimaryVerticesCollectionToken_ = - consumes >(iConfig.getUntrackedParameter("PrimaryVerticesCollection")); - - ebRecHitsToken_ = mayConsume(iConfig.getUntrackedParameter("ebRecHits")); - eeRecHitsToken_ = mayConsume(iConfig.getUntrackedParameter("eeRecHits")); - //-------------------------------------------------------------------------------------------------------------------- - - // Spike Cleaning - // -------------- - // - useSpikeRejection_ = iConfig.getUntrackedParameter("useSpikeRejection"); - - if (useSpikeRejection_) { - spikeCleaningSwissCrossCut_ = iConfig.getUntrackedParameter("spikeCleaningSwissCrossCut"); - } - //-------------------------------------------------------------------------------------------------------------------- - - // - //-------------------------------------// - // SUMMARY PRINTOUT // - //-------------------------------------// - // - - std::cout << "ZeeCandidateFilter: Running Zee Filter..." << std::endl; - - if (useTriggerInfo_) { - std::cout << "ZeeCandidateFilter: HLT Path " << hltpath_ << std::endl; - std::cout << "ZeeCandidateFilter: HLT Filter " << hltpathFilter_ << std::endl; - - if (useExtraTrigger_) { - for (Int_t itrig = 0; itrig < (Int_t)vHltpathExtra_.size(); ++itrig) { - std::cout << "ZeeCandidateFilter: OR " << vHltpathExtra_[itrig] - << " with filter: " << vHltpathFilterExtra_[itrig] << std::endl; - } - } - } else { - std::cout << "ZeeCandidateFilter: Trigger info will not be used here" << std::endl; - } - - std::cout << "ZeeCandidateFilter: ET > " << ETCut_ << std::endl; - std::cout << "ZeeCandidateFilter: MET > " << METCut_ << std::endl; - - if (useEcalDrivenElectrons_) { - std::cout << "ZeeCandidateFilter: Electron Candidate(s) is required to be ecal driven" << std::endl; - } - - if (electronMatched2HLT_ && useTriggerInfo_) { - std::cout << "ZeeCandidateFilter: At least one electron is required to match an HLT object with DR < " - << electronMatched2HLT_DR_ << std::endl; - } else { - std::cout << "ZeeCandidateFilter: Electron Candidates NOT required to match HLT object " << std::endl; - } - - if (useValidFirstPXBHit1_) { - std::cout << "ZeeCandidateFilter: Electron Candidate #1 required to have a valid hit in 1st PXB layer " - << std::endl; - } - - if (useValidFirstPXBHit2_) { - std::cout << "ZeeCandidateFilter: Electron Candidate #2 required to have a valid hit in 1st PXB layer " - << std::endl; - } - - if (calculateValidFirstPXBHit1_) { - std::cout << "ZeeCandidateFilter: Info about whether there is a valid 1st layer PXB hit for electron candidate #1 " - "will be stored: you can access that later by myElec.userInt(\"PassValidFirstPXBHit\")==1" - << std::endl; - } - - if (calculateValidFirstPXBHit2_) { - std::cout << "ZeeCandidateFilter: Info about whether there is a valid 1st layer PXB hit for electron candidate #2 " - "will be stored: you can access that later by myElec.userInt(\"PassValidFirstPXBHit\")==1" - << std::endl; - } - - if (useExpectedMissingHits1_) { - std::cout << "ZeeCandidateFilter: Electron Candidate #1 is required to have less than " - << maxNumberOfExpectedMissingHits1_ << " expected hits missing " << std::endl; - } - - if (useExpectedMissingHits2_) { - std::cout << "ZeeCandidateFilter: Electron Candidate #2 is required to have less than " - << maxNumberOfExpectedMissingHits2_ << " expected hits missing " << std::endl; - } - - if (calculateExpectedMissingHits1_) { - std::cout << "ZeeCandidateFilter: Missing Hits from expected inner layers for electron candidate #1 will be " - "calculated and stored: you can access them later by myElec.userInt(\"NumberOfExpectedMissingHits\")" - << std::endl; - } - - if (calculateExpectedMissingHits2_) { - std::cout << "ZeeCandidateFilter: Missing Hits from expected inner layers for electron candidate #2 will be " - "calculated and stored: you can access them later by myElec.userInt(\"NumberOfExpectedMissingHits\")" - << std::endl; - } - - if (useConversionRejection1_) { - std::cout << "ZeeCandidateFilter: Electron Candidate #1 is required to pass EGAMMA Conversion Rejection criteria" - << std::endl; - } - - if (useConversionRejection2_) { - std::cout << "ZeeCandidateFilter: Electron Candidate #2 is required to pass EGAMMA Conversion Rejection criteria" - << std::endl; - } - - if (calculateConversionRejection1_) { - std::cout << "ZeeCandidateFilter: EGAMMA Conversion Rejection criteria for electron candidate #1 will be " - "calculated and stored: you can access them later by demanding for a successful electron " - "myElec.userInt(\"PassConversionRejection\")==1" - << std::endl; - } - - if (calculateConversionRejection2_) { - std::cout << "ZeeCandidateFilter: EGAMMA Conversion Rejection criteria for electron candidate #2 will be " - "calculated and stored: you can access them later by demanding for a successful electron " - "myElec.userInt(\"PassConversionRejection\")==1" - << std::endl; - } - - if (dataMagneticFieldSetUp_) { - std::cout << "ZeeCandidateFilter: Data Configuration for Magnetic Field DCS tag " << dcsTag_ << std::endl; - } - - if (useSpikeRejection_) { - std::cout << "ZeeCandidateFilter: Spike Cleaning will be done with the Swiss Cross Criterion cutting at " - << spikeCleaningSwissCrossCut_ << std::endl; - } - - std::cout << "ZeeCandidateFilter: Fiducial Cut: " << std::endl; - std::cout << "ZeeCandidateFilter: BarrelMax: " << BarrelMaxEta_ << std::endl; - std::cout << "ZeeCandidateFilter: EndcapMin: " << EndCapMinEta_ << " EndcapMax: " << EndCapMaxEta_ << std::endl; - - // - //------------------------------------------// - // EXTRA INFO IN THE EVENT // - //------------------------------------------// - // - produces("selectedZeeCandidates").setBranchAlias("selectedZeeCandidates"); -} - -ZeeCandidateFilter::~ZeeCandidateFilter() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) -} - -// Member Functions -// ---------------- -// - -// ------------ method called on each new Event ------------ -Bool_t ZeeCandidateFilter::filter(edm::Event &iEvent, const edm::EventSetup &iSetup) { - using namespace edm; - using namespace std; - using namespace pat; - - std::cout << "FILTER-MSG: Begin Processing ... " - << "Run = " << iEvent.run() << " " - << "Lumi = " << (Int_t)iEvent.luminosityBlock() << " " - << "Event = " << iEvent.eventAuxiliary().event() << " " << std::endl; - - /*** TRIGGER REQUIREMENT - Event should pass the trigger, otherwise no zee candidate ***/ - - edm::Handle HLTResults; - iEvent.getByToken(triggerCollectionToken_, HLTResults); - - Int_t passTrigger = 0; - - if (HLTResults.isValid()) { - const edm::TriggerNames &triggerNames = iEvent.triggerNames(*HLTResults); - - UInt_t trigger_size = HLTResults->size(); - UInt_t trigger_position = triggerNames.triggerIndex(hltpath_); - UInt_t trigger_position_extra; - - if (trigger_position < trigger_size) { - passTrigger = (Int_t)HLTResults->accept(trigger_position); - } - - // Tested TriggerPath firing results printout - std::cout << "SK_HLT_INFO" - << " | " - << "trigger_size = " << trigger_size << " | " - << "hltpath_ = " << hltpath_ << " | " - << "trigger_position = " << trigger_position << " | " - << "passTrigger = " << passTrigger << std::endl; - - if (useExtraTrigger_ && passTrigger == 0) { - for (Int_t itrig = 0; itrig < (Int_t)vHltpathExtra_.size(); ++itrig) { - trigger_position_extra = triggerNames.triggerIndex(vHltpathExtra_[itrig]); - - if (trigger_position_extra < trigger_size) { - passTrigger = (Int_t)HLTResults->accept(trigger_position_extra); - } - - // Tested TriggerPath firing results printout - std::cout << "SK_HLT_INFO" - << " | " - << "vHltpathExtra_[" << itrig << "] = " << vHltpathExtra_[itrig] << " | " - << "trigger_position_extra = " << trigger_position_extra << " | " - << "passTrigger = " << passTrigger << " | " - << "vHltpathExtra_.size() = " << vHltpathExtra_.size() << std::endl; - - if (passTrigger > 0) { - break; - } - - } // for Loop - - } // if ( useExtraTrigger_ && passTrigger==0 ) - - } else { - std::cout << "TriggerResults are missing from this event.." << std::endl; - if (useTriggerInfo_) { - return false; // RETURN if trigger is missing - } - } - - if (passTrigger == 0 && useTriggerInfo_) { - std::cout << "No HLT Path is firing in this event" << std::endl; - return false; // RETURN if event fails the trigger - } - - edm::Handle pHLT; - iEvent.getByToken(triggerEventToken_, pHLT); - - const Int_t nF(pHLT->sizeFilters()); - const Int_t filterInd = pHLT->filterIndex(hltpathFilter_); - - std::vector filterIndExtra; - - if (useExtraTrigger_) { - for (Int_t itrig = 0; itrig < (Int_t)vHltpathFilterExtra_.size(); ++itrig) { - std::cout << "working on #" << itrig << std::endl; - std::cout << " ---> " << vHltpathFilterExtra_[itrig] << std::endl; - filterIndExtra.push_back(pHLT->filterIndex(vHltpathFilterExtra_[itrig])); - } - } - - Bool_t finalpathfound = false; - - if (nF != filterInd) { - finalpathfound = true; - } else { - for (Int_t itrig = 0; itrig < (Int_t)filterIndExtra.size(); ++itrig) { - std::cout << "working on #" << itrig << std::endl; - std::cout << " ---> " << filterIndExtra[itrig] << std::endl; - if (nF != filterIndExtra[itrig]) { - finalpathfound = true; - break; - } - } - } - - if (!finalpathfound) { - std::cout << "No HLT Filter was not found in this event..." << std::endl; - if (useTriggerInfo_) { - return false; // RETURN if event fails the trigger - } - } - - const trigger::TriggerObjectCollection &TOC(pHLT->getObjects()); - - /*** ET CUT: At least one electron in the event with ET > ETCut_ ***/ - - // Electron Collection - edm::Handle patElectron; - iEvent.getByToken(electronCollectionToken_, patElectron); - - if (!patElectron.isValid()) { - std::cout << "No electrons found in this event with tag " << electronCollectionTag_ << std::endl; - return false; // RETURN if no elecs in the event - } - - const pat::ElectronCollection *pElecs = patElectron.product(); - - // // MET Collection -> relocated block bellow - // edm::Handle patMET; - // iEvent.getByToken(metCollectionToken_, patMET); - // - // edm::Handle patpfMET; - // iEvent.getByToken(pfMetCollectionToken_, patpfMET); - // - // edm::Handle pattcMET; - // iEvent.getByToken(tcMetCollectionToken_, pattcMET); - - // - // Note: best to do Duplicate removal here, since the current - // implementation does not remove triplicates - // duplicate removal is on at PAT, but does it remove triplicates? - // - - // pat::ElectronCollection::const_iterator elec; // relocated bellow - - // check how many electrons there are in the event - const Int_t Nelecs = pElecs->size(); - - if (Nelecs <= 1) { - std::cout << "No more than 1 electrons found in this event" << std::endl; - return false; // RETURN if less than 2 elecs in the event - } - - // Order your electrons: first the ones with the higher ET - Int_t counter = 0; - std::vector indices; - std::vector ETs; - pat::ElectronCollection myElectrons; - - for (pat::ElectronCollection::const_iterator elec = pElecs->begin(); elec != pElecs->end(); - ++elec) { // the definition of the electron ET is wrt Gsf track eta - Double_t sc_et = elec->caloEnergy() / TMath::CosH(elec->gsfTrack()->eta()); - indices.push_back(counter); - ETs.push_back(sc_et); - myElectrons.push_back(*elec); - ++counter; - } - - const Int_t event_elec_number = (Int_t)indices.size(); - - if (event_elec_number <= 1) { - std::cout << "No more than 1 electrons in fiducial were found" << std::endl; - return false; // RETURN if no more than 1 electron in fiducial - } - - // Memory allocation (must be released every time we return back. - Int_t *sorted = new Int_t[event_elec_number]; - Double_t *et = new Double_t[event_elec_number]; - - for (Int_t i = 0; i < event_elec_number; ++i) { - et[i] = ETs[i]; - } - - // array sorted now has the indices of the highest ET electrons - TMath::Sort(event_elec_number, et, sorted, true); - // - // if the 2 highest electrons in the event has ET < ETCut_ return - Int_t max_et_index1 = sorted[0]; - Int_t max_et_index2 = sorted[1]; - - if ((ETs[max_et_index1] < ETCut_) || (ETs[max_et_index2] < ETCut_)) { - delete[] sorted; - delete[] et; - return false; // RETURN: demand the highest ET electrons to have ET > ETcut - } - - // my electrons now: - pat::Electron maxETelec1 = myElectrons[max_et_index1]; - pat::Electron maxETelec2 = myElectrons[max_et_index2]; - - // demand that they are in fiducial: - if (!isInFiducial(maxETelec1.caloPosition().eta())) { - delete[] sorted; - delete[] et; - return false; // RETURN highest ET electron is not in fiducial - } - - if (!isInFiducial(maxETelec2.caloPosition().eta())) { - delete[] sorted; - delete[] et; - return false; // RETURN 2nd highest ET electron is not in fiducial - } - - // demand that they are ecal driven - if (useEcalDrivenElectrons_) { - if ((!maxETelec1.ecalDrivenSeed()) || (!maxETelec2.ecalDrivenSeed())) { - delete[] sorted; - delete[] et; - return false; // RETURN At least one high ET electron is not ecal driven - } - } - - // spike rejection; - if (useSpikeRejection_ && maxETelec1.isEB()) { - edm::Handle recHits; - - // if ( maxETelec1.isEB() ) { - // iEvent.getByToken(ebRecHitsToken_, recHits); - // } - // else { - // iEvent.getByToken(eeRecHitsToken_, recHits); - // } - - iEvent.getByToken(ebRecHitsToken_, recHits); - - const EcalRecHitCollection *myRecHits = recHits.product(); - const DetId seedId = maxETelec1.superCluster()->seed()->seed(); - - Double_t swissCross = EcalTools::swissCross(seedId, *myRecHits, 0.); - - if (swissCross > spikeCleaningSwissCrossCut_) { - delete[] sorted; - delete[] et; - return false; // RETURN highest ET electron is a spike - } - } - - if (useSpikeRejection_ && maxETelec2.isEB()) { - edm::Handle recHits; - - // if ( maxETelec2.isEB()) { - // iEvent.getByToken(ebRecHitsToken_, recHits); - // } - // else { - // iEvent.getByToken(eeRecHitsToken_, recHits); - // } - - iEvent.getByToken(ebRecHitsToken_, recHits); - - const EcalRecHitCollection *myRecHits = recHits.product(); - const DetId seedId = maxETelec2.superCluster()->seed()->seed(); - - Double_t swissCross = EcalTools::swissCross(seedId, *myRecHits, 0.); - - if (swissCross > spikeCleaningSwissCrossCut_) { - delete[] sorted; - delete[] et; - return false; // RETURN 2nd highest ET electron is a spike - } - } - - // add the primary vtx information in the electron: - edm::Handle > pVtx; - iEvent.getByToken(PrimaryVerticesCollectionToken_, pVtx); - - const std::vector Vtx = *(pVtx.product()); - - Double_t pv_x = -999999.; - Double_t pv_y = -999999.; - Double_t pv_z = -999999.; - - Double_t ele_tip_pv1 = -999999.; - Double_t ele_tip_pv2 = -999999.; - - if (!Vtx.empty()) { - pv_x = Vtx[0].position().x(); - pv_y = Vtx[0].position().y(); - pv_z = Vtx[0].position().z(); - ele_tip_pv1 = (-1.0) * (maxETelec1.gsfTrack()->dxy(Vtx[0].position())); - ele_tip_pv2 = (-1.0) * (maxETelec2.gsfTrack()->dxy(Vtx[0].position())); - } - - maxETelec1.addUserFloat("pv_x", Float_t(pv_x)); - maxETelec1.addUserFloat("pv_x", Float_t(pv_y)); - maxETelec1.addUserFloat("pv_z", Float_t(pv_z)); - maxETelec1.addUserFloat("ele_tip_pv", Float_t(ele_tip_pv1)); - - maxETelec2.addUserFloat("pv_x", Float_t(pv_x)); - maxETelec2.addUserFloat("pv_x", Float_t(pv_y)); - maxETelec2.addUserFloat("pv_z", Float_t(pv_z)); - maxETelec2.addUserFloat("ele_tip_pv", Float_t(ele_tip_pv2)); - - // Double_t pv_x1 = -999999.; - // Double_t pv_y1 = -999999.; - // Double_t pv_z1 = -999999.; - // Double_t ele_tip_pv1 = -999999.; - // - // if ( Vtx.size() >=1 ) { - // pv_x1 = Vtx[0].position().x(); - // pv_y1 = Vtx[0].position().y(); - // pv_z1 = Vtx[0].position().z(); - // ele_tip_pv1 = (-1.0) * ( maxETelec1.gsfTrack()->dxy(Vtx[0].position()) ) ; - // } - // - // maxETelec1.addUserFloat("pv_x", Float_t(pv_x1)); - // maxETelec1.addUserFloat("pv_x", Float_t(pv_y1)); - // maxETelec1.addUserFloat("pv_z", Float_t(pv_z1)); - // maxETelec1.addUserFloat("ele_tip_pv", Float_t(ele_tip_pv1)); - // - // edm::Handle< std::vector > pVtx2; - // iEvent.getByToken(PrimaryVerticesCollectionToken_, pVtx2); - // - // const std::vector Vtx2 = *(pVtx2.product()); - // - // Double_t pv_x2 = -999999.; - // Double_t pv_y2 = -999999.; - // Double_t pv_z2 = -999999.; - // Double_t ele_tip_pv2 = -999999.; - // - // if ( Vtx2.size() >=1 ) { - // pv_x2 = Vtx2[0].position().x(); - // pv_y2 = Vtx2[0].position().y(); - // pv_z2 = Vtx2[0].position().z(); - // ele_tip_pv2 = -maxETelec2.gsfTrack()->dxy(Vtx2[0].position()); - // } - // - // maxETelec2.addUserFloat("pv_x", Float_t(pv_x1)); - // maxETelec2.addUserFloat("pv_x", Float_t(pv_y1)); - // maxETelec2.addUserFloat("pv_z", Float_t(pv_z1)); - // maxETelec2.addUserFloat("ele_tip_pv", Float_t(ele_tip_pv2)); - - // Special pre-selection requirements (hit pattern and conversion rejection) - - if (useValidFirstPXBHit1_ || calculateValidFirstPXBHit1_) { - Bool_t fail = - !maxETelec1.gsfTrack()->hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1); - - if (useValidFirstPXBHit1_ && fail) { - std::cout << "Filter: there is no valid hit for electron #1 in 1st layer PXB" << std::endl; - delete[] sorted; - delete[] et; - return false; - } - - if (calculateValidFirstPXBHit1_) { - std::string vfpx("PassValidFirstPXBHit"); - - if (fail) { - maxETelec1.addUserInt(vfpx, 0); - } else { - maxETelec1.addUserInt(vfpx, 1); - } - } - } - - if (useValidFirstPXBHit2_ || calculateValidFirstPXBHit2_) { - Bool_t fail = - !maxETelec2.gsfTrack()->hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1); - - if (useValidFirstPXBHit2_ && fail) { - std::cout << "Filter: there is no valid hit for electron #1 in 1st layer PXB" << std::endl; - delete[] sorted; - delete[] et; - return false; - } - - if (calculateValidFirstPXBHit2_) { - std::string vfpx("PassValidFirstPXBHit"); - - if (fail) { - maxETelec2.addUserInt(vfpx, 0); - } else { - maxETelec2.addUserInt(vfpx, 1); - } - } - } - - if (useExpectedMissingHits1_ || calculateExpectedMissingHits1_) { - Int_t numberOfInnerHits = - (Int_t)(maxETelec1.gsfTrack()->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS)); - - if ((numberOfInnerHits > maxNumberOfExpectedMissingHits1_) && useExpectedMissingHits1_) { - delete[] sorted; - delete[] et; - return false; - } - - if (calculateExpectedMissingHits1_) { - maxETelec1.addUserInt("NumberOfExpectedMissingHits", numberOfInnerHits); - } - } - - if (useExpectedMissingHits2_ || calculateExpectedMissingHits2_) { - Int_t numberOfInnerHits = - (Int_t)(maxETelec2.gsfTrack()->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS)); - - if ((numberOfInnerHits > maxNumberOfExpectedMissingHits2_) && useExpectedMissingHits2_) { - delete[] sorted; - delete[] et; - return false; - } - - if (calculateExpectedMissingHits2_) { - maxETelec2.addUserInt("NumberOfExpectedMissingHits", numberOfInnerHits); - } - } - - if (useConversionRejection1_ || calculateConversionRejection1_) { - edm::Handle ctfTracks; - - if (iEvent.getByToken(tracksToken_, ctfTracks)) { - Float_t dist = maxETelec1.convDist(); - Float_t dcot = maxETelec1.convDcot(); - - Bool_t isConv = ((TMath::Abs(dist) < dist1_) && (TMath::Abs(dcot) < dcot1_)); - - std::cout << "Filter: for electron #1 the conversion says " << isConv << std::endl; - - if (isConv && useConversionRejection1_) { - delete[] sorted; - delete[] et; - return false; - } - - if (calculateConversionRejection1_) { - maxETelec1.addUserFloat("Dist", Float_t(dist)); - maxETelec1.addUserFloat("Dcot", Float_t(dcot)); - - if (isConv) { - maxETelec1.addUserInt("PassConversionRejection", 0); - } else { - maxETelec1.addUserInt("PassConversionRejection", 1); - } - } - - } else { - std::cout << "WARNING! Track Collection with input name: generalTracks was not found. Conversion Rejection for " - "electron #1 is not going to be applied!!!" - << std::endl; - } - } - - if (useConversionRejection2_ || calculateConversionRejection2_) { - edm::Handle ctfTracks; - - if (iEvent.getByToken(tracksToken_, ctfTracks)) { - Float_t dist = maxETelec2.convDist(); - Float_t dcot = maxETelec2.convDcot(); - - Bool_t isConv = ((TMath::Abs(dist) < dist2_) && (TMath::Abs(dcot) < dcot2_)); - - std::cout << "Filter: for electron #2 the conversion says " << isConv << std::endl; - - if (isConv && useConversionRejection2_) { - delete[] sorted; - delete[] et; - return false; - } - - if (calculateConversionRejection2_) { - maxETelec2.addUserFloat("Dist", Float_t(dist)); - maxETelec2.addUserFloat("Dcot", Float_t(dcot)); - - if (isConv) { - maxETelec2.addUserInt("PassConversionRejection", 0); - } else { - maxETelec2.addUserInt("PassConversionRejection", 1); - } - } - - } else { - std::cout << "WARNING! Track Collection with input name: generalTracks was not found. Conversion Rejection for " - "electron #2 is not going to be applied!!!" - << std::endl; - } - } - - std::cout << "HLT matching starts" << std::endl; - - if (electronMatched2HLT_ && useTriggerInfo_) { - Double_t matched_dr_distance1 = 999999.; - Int_t trigger_int_probe1 = 0; - - Double_t matched_dr_distance2 = 999999.; - Int_t trigger_int_probe2 = 0; - - if (finalpathfound) { - if (nF != filterInd) { - const trigger::Keys &KEYS(pHLT->filterKeys(filterInd)); - const Int_t nK(KEYS.size()); - - std::cout << "Found trig objects #" << nK << std::endl; - - for (Int_t iTrig = 0; iTrig < nK; ++iTrig) { - const trigger::TriggerObject &TO(TOC[KEYS[iTrig]]); - - if (useHLTObjectETCut_) { - if (TO.et() < hltObjectETCut_) { - continue; - } - } - - Double_t dr_ele_HLT1 = - reco::deltaR(maxETelec1.superCluster()->eta(), maxETelec1.superCluster()->phi(), TO.eta(), TO.phi()); - Double_t dr_ele_HLT2 = - reco::deltaR(maxETelec2.superCluster()->eta(), maxETelec2.superCluster()->phi(), TO.eta(), TO.phi()); - - //std::cout << "-->found dr=" << dr_ele_HLT << std::endl; - - if (TMath::Abs(dr_ele_HLT1) < matched_dr_distance1) { - matched_dr_distance1 = dr_ele_HLT1; - } - - if (TMath::Abs(dr_ele_HLT2) < matched_dr_distance2) { - matched_dr_distance2 = dr_ele_HLT2; - } - } - } - - if (useExtraTrigger_) { - for (Int_t itrig = 0; itrig < (Int_t)filterIndExtra.size(); ++itrig) { - if (filterIndExtra[itrig] == nF) { - continue; - } - - std::cout << "working on #" << itrig << std::endl; - std::cout << " ---> " << filterIndExtra[itrig] << std::endl; - - const trigger::Keys &KEYS(pHLT->filterKeys(filterIndExtra[itrig])); - const Int_t nK(KEYS.size()); - - std::cout << "Found trig objects #" << nK << std::endl; - - for (Int_t iTrig = 0; iTrig < nK; ++iTrig) { - const trigger::TriggerObject &TO(TOC[KEYS[iTrig]]); - - Double_t dr_ele_HLT1 = reco::deltaR(maxETelec1.eta(), maxETelec1.phi(), TO.eta(), TO.phi()); - Double_t dr_ele_HLT2 = reco::deltaR(maxETelec2.eta(), maxETelec2.phi(), TO.eta(), TO.phi()); - - //std::cout << "-->found dr=" << dr_ele_HLT << std::endl; - - if (TMath::Abs(dr_ele_HLT1) < matched_dr_distance1) { - matched_dr_distance1 = dr_ele_HLT1; - } - - if (TMath::Abs(dr_ele_HLT2) < matched_dr_distance2) { - matched_dr_distance2 = dr_ele_HLT2; - } - } - } - } - - if (matched_dr_distance1 < electronMatched2HLT_DR_) { - ++trigger_int_probe1; - } - - if (matched_dr_distance2 < electronMatched2HLT_DR_) { - ++trigger_int_probe2; - } - - if ((trigger_int_probe1 == 0) && (trigger_int_probe2 == 0)) { - std::cout << "No electron could be matched to an HLT object with " << std::endl; - - delete[] sorted; - delete[] et; - - return false; // RETURN: electron is not matched to an HLT object - } - - maxETelec1.addUserFloat("HLTMatchingDR", Float_t(matched_dr_distance1)); - maxETelec2.addUserFloat("HLTMatchingDR", Float_t(matched_dr_distance2)); - - } else { //std::cout << "Electron filter not found - should not be like that... " << std::endl; - - delete[] sorted; - delete[] et; - - return false; // RETURN: electron is not matched to an HLT object - } - } - - std::cout << "HLT matching has finished" << std::endl; - - // ___________________________________________________________________ - // - - // add information of whether the event passes the following sets of - // triggers. Currently Hardwired, to be changed in the future - - if (HLTResults.isValid()) { - const std::string process = triggerCollectionTag_.process(); - // - std::string HLTPath[18]; - HLTPath[0] = "HLT_Photon10_L1R"; - HLTPath[1] = "HLT_Photon15_L1R"; - HLTPath[2] = "HLT_Photon20_L1R"; - HLTPath[3] = "HLT_Photon15_TrackIso_L1R"; - HLTPath[4] = "HLT_Photon15_LooseEcalIso_L1R"; - HLTPath[5] = "HLT_Photon30_L1R_8E29"; - HLTPath[6] = "HLT_Photon30_L1R_8E29"; - HLTPath[7] = "HLT_Ele10_LW_L1R"; - HLTPath[8] = "HLT_Ele15_LW_L1R"; - HLTPath[9] = "HLT_Ele20_LW_L1R"; - HLTPath[10] = "HLT_Ele10_LW_EleId_L1R"; - HLTPath[11] = "HLT_Ele15_SiStrip_L1R"; - HLTPath[12] = "HLT_IsoTrackHB_8E29"; - HLTPath[13] = "HLT_IsoTrackHE_8E29"; - HLTPath[14] = "HLT_DiJetAve15U_8E29"; - HLTPath[15] = "HLT_MET45"; - HLTPath[16] = "HLT_L1MET20"; - HLTPath[17] = "HLT_MET100"; - // - edm::InputTag HLTFilterType[15]; - HLTFilterType[0] = - edm::InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter", "", process); //HLT_Photon10_L1R - HLTFilterType[1] = - edm::InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15HcalIsolFilter", "", process); //HLT_Photon15_L1R - HLTFilterType[2] = - edm::InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt20HcalIsolFilter", "", process); //HLT_Photon20_L1R - HLTFilterType[3] = - edm::InputTag("hltL1NonIsoSinglePhotonEt15HTITrackIsolFilter", "", process); //HLT_Photon15_TrackIso_L1R - HLTFilterType[4] = - edm::InputTag("hltL1NonIsoSinglePhotonEt15LEIHcalIsolFilter", "", process); //HLT_Photon15_LooseEcalIso_L1R - HLTFilterType[5] = - edm::InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15EtFilterESet308E29", "", process); //HLT_Photon30_L1R_8E29 - HLTFilterType[6] = - edm::InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15HcalIsolFilter", "", process); //HLT_Photon30_L1R_8E29 - HLTFilterType[7] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10PixelMatchFilter", "", process); - HLTFilterType[8] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter", "", process); - HLTFilterType[9] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15EtFilterESet20", "", process); - HLTFilterType[10] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10EleIdDphiFilter", "", process); - HLTFilterType[11] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt15PixelMatchFilter", "", process); - HLTFilterType[12] = edm::InputTag("hltIsolPixelTrackL3FilterHB8E29", "", process); - HLTFilterType[13] = edm::InputTag("hltIsolPixelTrackL2FilterHE8E29", "", process); - HLTFilterType[14] = edm::InputTag("hltL1sDiJetAve15U8E29", "", process); - // - Int_t triggerDecision = 0; - UInt_t trigger_size = HLTResults->size(); - - for (Int_t i = 0; i < 18; ++i) { - const edm::TriggerNames &triggerNames = iEvent.triggerNames(*HLTResults); - UInt_t trigger_position = triggerNames.triggerIndex(HLTPath[i]); - Int_t passTrigger = 0; - - if (trigger_position < trigger_size) { - passTrigger = (Int_t)HLTResults->accept(trigger_position); - } - - if (passTrigger > 0) { - if (i >= 15) { - triggerDecision += (Int_t)(TMath::Power(2, i)); - } else { - const Int_t myfilterInd = pHLT->filterIndex(HLTFilterType[i]); - if (myfilterInd != nF) { - triggerDecision += (Int_t)(TMath::Power(2, i)); - } - } - } - } - - // add the info in the maxETelec1 and maxETelec2 - maxETelec1.addUserInt("triggerDecision", triggerDecision); - maxETelec2.addUserInt("triggerDecision", triggerDecision); - } - - // ___________________________________________________________________ - // - - // MET Collection - edm::Handle patMET; - iEvent.getByToken(metCollectionToken_, patMET); - - edm::Handle patpfMET; - iEvent.getByToken(pfMetCollectionToken_, patpfMET); - - edm::Handle pattcMET; - iEvent.getByToken(tcMetCollectionToken_, pattcMET); - - const pat::METCollection *pMet = patMET.product(); - const pat::METCollection::const_iterator met = pMet->begin(); - const pat::MET theMET = *met; - // - const pat::METCollection *pPfMet = patpfMET.product(); - const pat::METCollection::const_iterator pfmet = pPfMet->begin(); - const pat::MET thePfMET = *pfmet; - // - const pat::METCollection *pTcMet = pattcMET.product(); - const pat::METCollection::const_iterator tcmet = pTcMet->begin(); - const pat::MET theTcMET = *tcmet; - - Double_t metEt = met->et(); - //Double_t metEta = met->eta(); - //Double_t metMt = met->mt(); - //Double_t metPhi = met->phi(); - //Double_t metSig = met->mEtSig(); - //std::cout<<"met properties: et=" << met->et() << ", eta: " << met->eta() - // << std::endl; - // - if (metEt < METCut_) { - std::cout << "MET is " << metEt << std::endl; - - delete[] sorted; - delete[] et; - - return false; // RETURN if MET is < Metcut - } - - // if you have indeed reached this point then you have a zeeCandidate!!! - - pat::CompositeCandidate zeeCandidate; - - zeeCandidate.addDaughter(maxETelec1, "electron1"); - zeeCandidate.addDaughter(maxETelec2, "electron2"); - - zeeCandidate.addDaughter(theMET, "met"); - zeeCandidate.addDaughter(thePfMET, "pfmet"); - zeeCandidate.addDaughter(theTcMET, "tcmet"); - - unique_ptr selectedZeeCandidates(new pat::CompositeCandidateCollection); - - selectedZeeCandidates->push_back(zeeCandidate); - - iEvent.put(std::move(selectedZeeCandidates), "selectedZeeCandidates"); - - // release your memory - delete[] sorted; - delete[] et; - - std::cout << "Run = " << iEvent.run() << " " - << "Lumi = " << (Int_t)iEvent.luminosityBlock() << " " - << "Event = " << iEvent.eventAuxiliary().event() << " " - << "FILTER-MSG: Event Accepted for Z Candidate" << std::endl; - - return true; -} - -// ------------ method called once each job just after ending the event loop - -void ZeeCandidateFilter::endJob() {} - -Bool_t ZeeCandidateFilter::isInFiducial(Double_t eta) { - if (TMath::Abs(eta) < BarrelMaxEta_) { - return true; - } else if ((TMath::Abs(eta) < EndCapMaxEta_) && (TMath::Abs(eta) > EndCapMinEta_)) { - return true; - } - - return false; -} - -// Bool_t ZeeCandidateFilter::passEleIDCuts(pat::Electron *ele) -// { -// if ( ! useVetoSecondElectronID_) return true; -// if ( ! ele->isElectronIDAvailable(vetoSecondElectronIDType_) ) { -// std::cout << "ZeeCandidateFilter: request ignored: 2nd electron ID type " -// << "not found in electron object" << std::endl; -// return true; -// } -// if ( vetoSecondElectronIDSign_ == ">" ) { -// if ( ele->electronID(vetoSecondElectronIDType_)>vetoSecondElectronIDValue_) -// return true; -// else return false; -// } -// else if ( vetoSecondElectronIDSign_ == "<" ) { -// if ( ele->electronID(vetoSecondElectronIDType_)electronID(vetoSecondElectronIDType_)- -// vetoSecondElectronIDValue_) < 0.1) -// return true; -// else return false; -// } -// } - -//define this as a plug-in -DEFINE_FWK_MODULE(ZeeCandidateFilter); diff --git a/ElectroWeakAnalysis/ZEE/src/ZeePlots.cc b/ElectroWeakAnalysis/ZEE/src/ZeePlots.cc deleted file mode 100644 index 719adcea332b6..0000000000000 --- a/ElectroWeakAnalysis/ZEE/src/ZeePlots.cc +++ /dev/null @@ -1,1555 +0,0 @@ -// -*- C++ -*- -// -// Package: ZeePlots -// Class: ZeePlots -// -/* - - Description: - this is an analyzer that reads pat::CompositeCandidate ZeeCandidates and creates some plots - For more details see also WenuPlots class description - Implementation: - 09Dec09: option to have a different selection for the 2nd leg of the Z added - 24Feb10: more variables added E/P and TIP - option to choose CMSSW defined electron ID, the same or different - for each leg - - Contact: - Stilianos Kesisoglou - Institute of Nuclear Physics - NCSR Demokritos - -*/ -// -// Original Author: Nikolaos Rompotis - -#include "ElectroWeakAnalysis/ZEE/interface/ZeePlots.h" - -#include "DataFormats/Math/interface/deltaR.h" - -ZeePlots::ZeePlots(const edm::ParameterSet &iConfig) { - // I N P U T P A R A M E T E R S - /////// - // ZEE COLLECTION ////////////////////////////////////////////////////// - // - - zeeCollectionToken_ = - consumes(iConfig.getUntrackedParameter("zeeCollectionTag")); - - // code parameters - // - std::string outputFile_D = "histos.root"; - outputFile_ = iConfig.getUntrackedParameter("outputFile", outputFile_D); - - ZEE_VBTFselectionFileName_ = iConfig.getUntrackedParameter("ZEE_VBTFselectionFileName"); - ZEE_VBTFpreseleFileName_ = iConfig.getUntrackedParameter("ZEE_VBTFpreseleFileName"); - - DatasetTag_ = iConfig.getUntrackedParameter("DatasetTag"); - - useSameSelectionOnBothElectrons_ = iConfig.getUntrackedParameter("useSameSelectionOnBothElectrons", false); - - // Here choose if the two legs will be treated individually or not. - // - if (useSameSelectionOnBothElectrons_) { - // use of precalculatedID. if you use it, then no other cuts are applied - - /* Electron 1 */ - usePrecalcID1_ = iConfig.getUntrackedParameter("usePrecalcID0", false); - - if (usePrecalcID1_) { - usePrecalcIDType1_ = iConfig.getUntrackedParameter("usePrecalcIDType0"); - usePrecalcIDSign1_ = iConfig.getUntrackedParameter("usePrecalcIDSign0", "="); - usePrecalcIDValue1_ = iConfig.getUntrackedParameter("usePrecalcIDValue0"); - - std::cout << "ZeePlots: WARNING: you have chosen to use CMSSW precalculated ID for electron #1 with name: >>> " - << usePrecalcIDType1_ << " <<< such that the value map " << usePrecalcIDSign1_ << " " - << usePrecalcIDValue1_ << std::endl; - } - - /* Electron 2 */ - usePrecalcID2_ = iConfig.getUntrackedParameter("usePrecalcID0", false); - - if (usePrecalcID2_) { - usePrecalcIDType2_ = iConfig.getUntrackedParameter("usePrecalcIDType0"); - usePrecalcIDSign2_ = iConfig.getUntrackedParameter("usePrecalcIDSign0", "="); - usePrecalcIDValue2_ = iConfig.getUntrackedParameter("usePrecalcIDValue0"); - - std::cout << "ZeePlots: WARNING: you have chosen to use CMSSW precalculated ID for electron #2 with name: >>> " - << usePrecalcIDType2_ << " <<< such that the value map " << usePrecalcIDSign2_ << " " - << usePrecalcIDValue2_ << std::endl; - } - - // use of preselection - // - useValidFirstPXBHit1_ = iConfig.getUntrackedParameter("useValidFirstPXBHit0", false); - useValidFirstPXBHit2_ = iConfig.getUntrackedParameter("useValidFirstPXBHit0", false); - - useConversionRejection1_ = iConfig.getUntrackedParameter("useConversionRejection0", false); - useConversionRejection2_ = iConfig.getUntrackedParameter("useConversionRejection0", false); - - useExpectedMissingHits1_ = iConfig.getUntrackedParameter("useExpectedMissingHits0", false); - useExpectedMissingHits2_ = iConfig.getUntrackedParameter("useExpectedMissingHits0", false); - - maxNumberOfExpectedMissingHits1_ = iConfig.getUntrackedParameter("maxNumberOfExpectedMissingHits0", 1); - maxNumberOfExpectedMissingHits2_ = iConfig.getUntrackedParameter("maxNumberOfExpectedMissingHits0", 1); - - // Selection Cuts: - // - - /* Electron 1 */ - trackIso1_EB_ = iConfig.getUntrackedParameter("trackIso0_EB", 1000.0); - trackIso1_EE_ = iConfig.getUntrackedParameter("trackIso0_EE", 1000.0); - ecalIso1_EB_ = iConfig.getUntrackedParameter("ecalIso0_EB", 1000.0); - ecalIso1_EE_ = iConfig.getUntrackedParameter("ecalIso0_EE", 1000.0); - hcalIso1_EB_ = iConfig.getUntrackedParameter("hcalIso0_EB", 1000.0); - hcalIso1_EE_ = iConfig.getUntrackedParameter("hcalIso0_EE", 1000.0); - - sihih1_EB_ = iConfig.getUntrackedParameter("sihih0_EB"); - sihih1_EE_ = iConfig.getUntrackedParameter("sihih0_EE"); - dphi1_EB_ = iConfig.getUntrackedParameter("dphi0_EB"); - dphi1_EE_ = iConfig.getUntrackedParameter("dphi0_EE"); - deta1_EB_ = iConfig.getUntrackedParameter("deta0_EB"); - deta1_EE_ = iConfig.getUntrackedParameter("deta0_EE"); - hoe1_EB_ = iConfig.getUntrackedParameter("hoe0_EB"); - hoe1_EE_ = iConfig.getUntrackedParameter("hoe0_EE"); - cIso1_EB_ = iConfig.getUntrackedParameter("cIso0_EB", 1000.0); - cIso1_EE_ = iConfig.getUntrackedParameter("cIso0_EE", 1000.0); - tip_bspot1_EB_ = iConfig.getUntrackedParameter("tip_bspot0_EB", 1000.0); - tip_bspot1_EE_ = iConfig.getUntrackedParameter("tip_bspot0_EE", 1000.0); - eop1_EB_ = iConfig.getUntrackedParameter("eop0_EB", 1000.0); - eop1_EE_ = iConfig.getUntrackedParameter("eop0_EE", 1000.0); - - trackIsoUser1_EB_ = iConfig.getUntrackedParameter("trackIsoUser0_EB", 1000.0); - trackIsoUser1_EE_ = iConfig.getUntrackedParameter("trackIsoUser0_EE", 1000.0); - ecalIsoUser1_EB_ = iConfig.getUntrackedParameter("ecalIsoUser0_EB", 1000.0); - ecalIsoUser1_EE_ = iConfig.getUntrackedParameter("ecalIsoUser0_EE", 1000.0); - hcalIsoUser1_EB_ = iConfig.getUntrackedParameter("hcalIsoUser0_EB", 1000.0); - hcalIsoUser1_EE_ = iConfig.getUntrackedParameter("hcalIsoUser0_EE", 1000.0); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - trackIso1_EB_inv = iConfig.getUntrackedParameter("trackIso0_EB_inv", false); - trackIso1_EE_inv = iConfig.getUntrackedParameter("trackIso0_EE_inv", false); - ecalIso1_EB_inv = iConfig.getUntrackedParameter("ecalIso0_EB_inv", false); - ecalIso1_EE_inv = iConfig.getUntrackedParameter("ecalIso0_EE_inv", false); - hcalIso1_EB_inv = iConfig.getUntrackedParameter("hcalIso0_EB_inv", false); - hcalIso1_EE_inv = iConfig.getUntrackedParameter("hcalIso0_EE_inv", false); - - sihih1_EB_inv = iConfig.getUntrackedParameter("sihih0_EB_inv", false); - sihih1_EE_inv = iConfig.getUntrackedParameter("sihih0_EE_inv", false); - dphi1_EB_inv = iConfig.getUntrackedParameter("dphi0_EB_inv", false); - dphi1_EE_inv = iConfig.getUntrackedParameter("dphi0_EE_inv", false); - deta1_EB_inv = iConfig.getUntrackedParameter("deta0_EB_inv", false); - deta1_EE_inv = iConfig.getUntrackedParameter("deta0_EE_inv", false); - hoe1_EB_inv = iConfig.getUntrackedParameter("hoe0_EB_inv", false); - hoe1_EE_inv = iConfig.getUntrackedParameter("hoe0_EE_inv", false); - cIso1_EB_inv = iConfig.getUntrackedParameter("cIso0_EB_inv", false); - cIso1_EE_inv = iConfig.getUntrackedParameter("cIso0_EE_inv", false); - tip_bspot1_EB_inv = iConfig.getUntrackedParameter("tip_bspot0_EB_inv", false); - tip_bspot1_EE_inv = iConfig.getUntrackedParameter("tip_bspot0_EE_inv", false); - eop1_EB_inv = iConfig.getUntrackedParameter("eop0_EB_inv", false); - eop1_EE_inv = iConfig.getUntrackedParameter("eop0_EE_inv", false); - - trackIsoUser1_EB_inv = iConfig.getUntrackedParameter("trackIsoUser0_EB_inv", false); - trackIsoUser1_EE_inv = iConfig.getUntrackedParameter("trackIsoUser0_EE_inv", false); - ecalIsoUser1_EB_inv = iConfig.getUntrackedParameter("ecalIsoUser0_EB_inv", false); - ecalIsoUser1_EE_inv = iConfig.getUntrackedParameter("ecalIsoUser0_EE_inv", false); - hcalIsoUser1_EB_inv = iConfig.getUntrackedParameter("hcalIsoUser0_EB_inv", false); - hcalIsoUser1_EE_inv = iConfig.getUntrackedParameter("hcalIsoUser0_EE_inv", false); - - /* Electron 2 */ - trackIso2_EB_ = iConfig.getUntrackedParameter("trackIso0_EB", 1000.0); - trackIso2_EE_ = iConfig.getUntrackedParameter("trackIso0_EE", 1000.0); - ecalIso2_EB_ = iConfig.getUntrackedParameter("ecalIso0_EB", 1000.0); - ecalIso2_EE_ = iConfig.getUntrackedParameter("ecalIso0_EE", 1000.0); - hcalIso2_EB_ = iConfig.getUntrackedParameter("hcalIso0_EB", 1000.0); - hcalIso2_EE_ = iConfig.getUntrackedParameter("hcalIso0_EE", 1000.0); - - sihih2_EB_ = iConfig.getUntrackedParameter("sihih0_EB"); - sihih2_EE_ = iConfig.getUntrackedParameter("sihih0_EE"); - dphi2_EB_ = iConfig.getUntrackedParameter("dphi0_EB"); - dphi2_EE_ = iConfig.getUntrackedParameter("dphi0_EE"); - deta2_EB_ = iConfig.getUntrackedParameter("deta0_EB"); - deta2_EE_ = iConfig.getUntrackedParameter("deta0_EE"); - hoe2_EB_ = iConfig.getUntrackedParameter("hoe0_EB"); - hoe2_EE_ = iConfig.getUntrackedParameter("hoe0_EE"); - cIso2_EB_ = iConfig.getUntrackedParameter("cIso0_EB", 1000.0); - cIso2_EE_ = iConfig.getUntrackedParameter("cIso0_EE", 1000.0); - tip_bspot2_EB_ = iConfig.getUntrackedParameter("tip_bspot0_EB", 1000.0); - tip_bspot2_EE_ = iConfig.getUntrackedParameter("tip_bspot0_EE", 1000.0); - eop2_EB_ = iConfig.getUntrackedParameter("eop0_EB", 1000.0); - eop2_EE_ = iConfig.getUntrackedParameter("eop0_EE", 1000.0); - - trackIsoUser2_EB_ = iConfig.getUntrackedParameter("trackIsoUser0_EB", 1000.0); - trackIsoUser2_EE_ = iConfig.getUntrackedParameter("trackIsoUser0_EE", 1000.0); - ecalIsoUser2_EB_ = iConfig.getUntrackedParameter("ecalIsoUser0_EB", 1000.0); - ecalIsoUser2_EE_ = iConfig.getUntrackedParameter("ecalIsoUser0_EE", 1000.0); - hcalIsoUser2_EB_ = iConfig.getUntrackedParameter("hcalIsoUser0_EB", 1000.0); - hcalIsoUser2_EE_ = iConfig.getUntrackedParameter("hcalIsoUser0_EE", 1000.0); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - trackIso2_EB_inv = iConfig.getUntrackedParameter("trackIso0_EB_inv", false); - trackIso2_EE_inv = iConfig.getUntrackedParameter("trackIso0_EE_inv", false); - ecalIso2_EB_inv = iConfig.getUntrackedParameter("ecalIso0_EB_inv", false); - ecalIso2_EE_inv = iConfig.getUntrackedParameter("ecalIso0_EE_inv", false); - hcalIso2_EB_inv = iConfig.getUntrackedParameter("hcalIso0_EB_inv", false); - hcalIso2_EE_inv = iConfig.getUntrackedParameter("hcalIso0_EE_inv", false); - - sihih2_EB_inv = iConfig.getUntrackedParameter("sihih0_EB_inv", false); - sihih2_EE_inv = iConfig.getUntrackedParameter("sihih0_EE_inv", false); - dphi2_EB_inv = iConfig.getUntrackedParameter("dphi0_EB_inv", false); - dphi2_EE_inv = iConfig.getUntrackedParameter("dphi0_EE_inv", false); - deta2_EB_inv = iConfig.getUntrackedParameter("deta0_EB_inv", false); - deta2_EE_inv = iConfig.getUntrackedParameter("deta0_EE_inv", false); - hoe2_EB_inv = iConfig.getUntrackedParameter("hoe0_EB_inv", false); - hoe2_EE_inv = iConfig.getUntrackedParameter("hoe0_EE_inv", false); - cIso2_EB_inv = iConfig.getUntrackedParameter("cIso0_EB_inv", false); - cIso2_EE_inv = iConfig.getUntrackedParameter("cIso0_EE_inv", false); - tip_bspot2_EB_inv = iConfig.getUntrackedParameter("tip_bspot0_EB_inv", false); - tip_bspot2_EE_inv = iConfig.getUntrackedParameter("tip_bspot0_EE_inv", false); - eop2_EB_inv = iConfig.getUntrackedParameter("eop0_EB_inv", false); - eop2_EE_inv = iConfig.getUntrackedParameter("eop0_EE_inv", false); - - trackIsoUser2_EB_inv = iConfig.getUntrackedParameter("trackIsoUser0_EB_inv", false); - trackIsoUser2_EE_inv = iConfig.getUntrackedParameter("trackIsoUser0_EE_inv", false); - ecalIsoUser2_EB_inv = iConfig.getUntrackedParameter("ecalIsoUser0_EB_inv", false); - ecalIsoUser2_EE_inv = iConfig.getUntrackedParameter("ecalIsoUser0_EE_inv", false); - hcalIsoUser2_EB_inv = iConfig.getUntrackedParameter("hcalIsoUser0_EB_inv", false); - hcalIsoUser2_EE_inv = iConfig.getUntrackedParameter("hcalIsoUser0_EE_inv", false); - - } else { - // use of precalculatedID. if you use it, then no other cuts are applied - - /* Electron 1 */ - usePrecalcID1_ = iConfig.getUntrackedParameter("usePrecalcID1", false); - - if (usePrecalcID1_) { - usePrecalcIDType1_ = iConfig.getUntrackedParameter("usePrecalcIDType1"); - usePrecalcIDSign1_ = iConfig.getUntrackedParameter("usePrecalcIDSign1", "="); - usePrecalcIDValue1_ = iConfig.getUntrackedParameter("usePrecalcIDValue1"); - - std::cout << "ZeePlots: WARNING: you have chosen to use CMSSW precalculated ID for electron #1 with name: >>> " - << usePrecalcIDType1_ << " <<< such that the value map " << usePrecalcIDSign1_ << " " - << usePrecalcIDValue1_ << std::endl; - } - - /* Electron 2 */ - usePrecalcID2_ = iConfig.getUntrackedParameter("usePrecalcID2", false); - - if (usePrecalcID2_) { - usePrecalcIDType2_ = iConfig.getUntrackedParameter("usePrecalcIDType2"); - usePrecalcIDSign2_ = iConfig.getUntrackedParameter("usePrecalcIDSign2", "="); - usePrecalcIDValue2_ = iConfig.getUntrackedParameter("usePrecalcIDValue2"); - - std::cout << "ZeePlots: WARNING: you have chosen to use CMSSW precalculated ID for electron #2 with name: >>> " - << usePrecalcIDType2_ << " <<< such that the value map " << usePrecalcIDSign2_ << " " - << usePrecalcIDValue2_ << std::endl; - } - - // use of preselection - // - useValidFirstPXBHit1_ = iConfig.getUntrackedParameter("useValidFirstPXBHit1", false); - useValidFirstPXBHit2_ = iConfig.getUntrackedParameter("useValidFirstPXBHit2", false); - - useConversionRejection1_ = iConfig.getUntrackedParameter("useConversionRejection1", false); - useConversionRejection2_ = iConfig.getUntrackedParameter("useConversionRejection2", false); - - useExpectedMissingHits1_ = iConfig.getUntrackedParameter("useExpectedMissingHits1", false); - useExpectedMissingHits2_ = iConfig.getUntrackedParameter("useExpectedMissingHits2", false); - - maxNumberOfExpectedMissingHits1_ = iConfig.getUntrackedParameter("maxNumberOfExpectedMissingHits1", 1); - maxNumberOfExpectedMissingHits2_ = iConfig.getUntrackedParameter("maxNumberOfExpectedMissingHits2", 1); - - // Selection Cuts: - // - - /* Electron 1 */ - trackIso1_EB_ = iConfig.getUntrackedParameter("trackIso1_EB", 1000.0); - trackIso1_EE_ = iConfig.getUntrackedParameter("trackIso1_EE", 1000.0); - ecalIso1_EB_ = iConfig.getUntrackedParameter("ecalIso1_EB", 1000.0); - ecalIso1_EE_ = iConfig.getUntrackedParameter("ecalIso1_EE", 1000.0); - hcalIso1_EB_ = iConfig.getUntrackedParameter("hcalIso1_EB", 1000.0); - hcalIso1_EE_ = iConfig.getUntrackedParameter("hcalIso1_EE", 1000.0); - - sihih1_EB_ = iConfig.getUntrackedParameter("sihih1_EB"); - sihih1_EE_ = iConfig.getUntrackedParameter("sihih1_EE"); - dphi1_EB_ = iConfig.getUntrackedParameter("dphi1_EB"); - dphi1_EE_ = iConfig.getUntrackedParameter("dphi1_EE"); - deta1_EB_ = iConfig.getUntrackedParameter("deta1_EB"); - deta1_EE_ = iConfig.getUntrackedParameter("deta1_EE"); - hoe1_EB_ = iConfig.getUntrackedParameter("hoe1_EB"); - hoe1_EE_ = iConfig.getUntrackedParameter("hoe1_EE"); - cIso1_EB_ = iConfig.getUntrackedParameter("cIso1_EB", 1000.0); - cIso1_EE_ = iConfig.getUntrackedParameter("cIso1_EE", 1000.0); - tip_bspot1_EB_ = iConfig.getUntrackedParameter("tip_bspot1_EB", 1000.0); - tip_bspot1_EE_ = iConfig.getUntrackedParameter("tip_bspot1_EE", 1000.0); - eop1_EB_ = iConfig.getUntrackedParameter("eop1_EB", 1000.0); - eop1_EE_ = iConfig.getUntrackedParameter("eop1_EE", 1000.0); - - trackIsoUser1_EB_ = iConfig.getUntrackedParameter("trackIsoUser1_EB", 1000.0); - trackIsoUser1_EE_ = iConfig.getUntrackedParameter("trackIsoUser1_EE", 1000.0); - ecalIsoUser1_EB_ = iConfig.getUntrackedParameter("ecalIsoUser1_EB", 1000.0); - ecalIsoUser1_EE_ = iConfig.getUntrackedParameter("ecalIsoUser1_EE", 1000.0); - hcalIsoUser1_EB_ = iConfig.getUntrackedParameter("hcalIsoUser1_EB", 1000.0); - hcalIsoUser1_EE_ = iConfig.getUntrackedParameter("hcalIsoUser1_EE", 1000.0); - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - trackIso1_EB_inv = iConfig.getUntrackedParameter("trackIso1_EB_inv", false); - trackIso1_EE_inv = iConfig.getUntrackedParameter("trackIso1_EE_inv", false); - ecalIso1_EB_inv = iConfig.getUntrackedParameter("ecalIso1_EB_inv", false); - ecalIso1_EE_inv = iConfig.getUntrackedParameter("ecalIso1_EE_inv", false); - hcalIso1_EB_inv = iConfig.getUntrackedParameter("hcalIso1_EB_inv", false); - hcalIso1_EE_inv = iConfig.getUntrackedParameter("hcalIso1_EE_inv", false); - - sihih1_EB_inv = iConfig.getUntrackedParameter("sihih1_EB_inv", false); - sihih1_EE_inv = iConfig.getUntrackedParameter("sihih1_EE_inv", false); - dphi1_EB_inv = iConfig.getUntrackedParameter("dphi1_EB_inv", false); - dphi1_EE_inv = iConfig.getUntrackedParameter("dphi1_EE_inv", false); - deta1_EB_inv = iConfig.getUntrackedParameter("deta1_EB_inv", false); - deta1_EE_inv = iConfig.getUntrackedParameter("deta1_EE_inv", false); - hoe1_EB_inv = iConfig.getUntrackedParameter("hoe1_EB_inv", false); - hoe1_EE_inv = iConfig.getUntrackedParameter("hoe1_EE_inv", false); - cIso1_EB_inv = iConfig.getUntrackedParameter("cIso1_EB_inv", false); - cIso1_EE_inv = iConfig.getUntrackedParameter("cIso1_EE_inv", false); - tip_bspot1_EB_inv = iConfig.getUntrackedParameter("tip_bspot1_EB_inv", false); - tip_bspot1_EE_inv = iConfig.getUntrackedParameter("tip_bspot1_EE_inv", false); - eop1_EB_inv = iConfig.getUntrackedParameter("eop1_EB_inv", false); - eop1_EE_inv = iConfig.getUntrackedParameter("eop1_EE_inv", false); - - trackIsoUser1_EB_inv = iConfig.getUntrackedParameter("trackIsoUser1_EB_inv", false); - trackIsoUser1_EE_inv = iConfig.getUntrackedParameter("trackIsoUser1_EE_inv", false); - ecalIsoUser1_EB_inv = iConfig.getUntrackedParameter("ecalIsoUser1_EB_inv", false); - ecalIsoUser1_EE_inv = iConfig.getUntrackedParameter("ecalIsoUser1_EE_inv", false); - hcalIsoUser1_EB_inv = iConfig.getUntrackedParameter("hcalIsoUser1_EB_inv", false); - hcalIsoUser1_EE_inv = iConfig.getUntrackedParameter("hcalIsoUser1_EE_inv", false); - - /* Electron 2 */ - trackIso2_EB_ = iConfig.getUntrackedParameter("trackIso2_EB", 1000.0); - trackIso2_EE_ = iConfig.getUntrackedParameter("trackIso2_EE", 1000.0); - ecalIso2_EB_ = iConfig.getUntrackedParameter("ecalIso2_EB", 1000.0); - ecalIso2_EE_ = iConfig.getUntrackedParameter("ecalIso2_EE", 1000.0); - hcalIso2_EB_ = iConfig.getUntrackedParameter("hcalIso2_EB", 1000.0); - hcalIso2_EE_ = iConfig.getUntrackedParameter("hcalIso2_EE", 1000.0); - - sihih2_EB_ = iConfig.getUntrackedParameter("sihih2_EB"); - sihih2_EE_ = iConfig.getUntrackedParameter("sihih2_EE"); - dphi2_EB_ = iConfig.getUntrackedParameter("dphi2_EB"); - dphi2_EE_ = iConfig.getUntrackedParameter("dphi2_EE"); - deta2_EB_ = iConfig.getUntrackedParameter("deta2_EB"); - deta2_EE_ = iConfig.getUntrackedParameter("deta2_EE"); - hoe2_EB_ = iConfig.getUntrackedParameter("hoe2_EB"); - hoe2_EE_ = iConfig.getUntrackedParameter("hoe2_EE"); - cIso2_EB_ = iConfig.getUntrackedParameter("cIso2_EB", 1000.0); - cIso2_EE_ = iConfig.getUntrackedParameter("cIso2_EE", 1000.0); - tip_bspot2_EB_ = iConfig.getUntrackedParameter("tip_bspot2_EB", 1000.0); - tip_bspot2_EE_ = iConfig.getUntrackedParameter("tip_bspot2_EE", 1000.0); - eop2_EB_ = iConfig.getUntrackedParameter("eop2_EB", 1000.0); - eop2_EE_ = iConfig.getUntrackedParameter("eop2_EE", 1000.0); - - trackIsoUser2_EB_ = iConfig.getUntrackedParameter("trackIsoUser2_EB", 1000.0); - trackIsoUser2_EE_ = iConfig.getUntrackedParameter("trackIsoUser2_EE", 1000.0); - ecalIsoUser2_EB_ = iConfig.getUntrackedParameter("ecalIsoUser2_EB", 1000.0); - ecalIsoUser2_EE_ = iConfig.getUntrackedParameter("ecalIsoUser2_EE", 1000.0); - hcalIsoUser2_EB_ = iConfig.getUntrackedParameter("hcalIsoUser2_EB", 1000.0); - hcalIsoUser2_EE_ = iConfig.getUntrackedParameter("hcalIsoUser2_EE", 1000.0); - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - trackIso2_EB_inv = iConfig.getUntrackedParameter("trackIso2_EB_inv", false); - trackIso2_EE_inv = iConfig.getUntrackedParameter("trackIso2_EE_inv", false); - ecalIso2_EB_inv = iConfig.getUntrackedParameter("ecalIso2_EB_inv", false); - ecalIso2_EE_inv = iConfig.getUntrackedParameter("ecalIso2_EE_inv", false); - hcalIso2_EB_inv = iConfig.getUntrackedParameter("hcalIso2_EB_inv", false); - hcalIso2_EE_inv = iConfig.getUntrackedParameter("hcalIso2_EE_inv", false); - - sihih2_EB_inv = iConfig.getUntrackedParameter("sihih2_EB_inv", false); - sihih2_EE_inv = iConfig.getUntrackedParameter("sihih2_EE_inv", false); - dphi2_EB_inv = iConfig.getUntrackedParameter("dphi2_EB_inv", false); - dphi2_EE_inv = iConfig.getUntrackedParameter("dphi2_EE_inv", false); - deta2_EB_inv = iConfig.getUntrackedParameter("deta2_EB_inv", false); - deta2_EE_inv = iConfig.getUntrackedParameter("deta2_EE_inv", false); - hoe2_EB_inv = iConfig.getUntrackedParameter("hoe2_EB_inv", false); - hoe2_EE_inv = iConfig.getUntrackedParameter("hoe2_EE_inv", false); - cIso2_EB_inv = iConfig.getUntrackedParameter("cIso2_EB_inv", false); - cIso2_EE_inv = iConfig.getUntrackedParameter("cIso2_EE_inv", false); - tip_bspot2_EB_inv = iConfig.getUntrackedParameter("tip_bspot2_EB_inv", false); - tip_bspot2_EE_inv = iConfig.getUntrackedParameter("tip_bspot2_EE_inv", false); - eop2_EB_inv = iConfig.getUntrackedParameter("eop2_EB_inv", false); - eop2_EE_inv = iConfig.getUntrackedParameter("eop2_EE_inv", false); - - trackIsoUser2_EB_inv = iConfig.getUntrackedParameter("trackIsoUser2_EB_inv", false); - trackIsoUser2_EE_inv = iConfig.getUntrackedParameter("trackIsoUser2_EE_inv", false); - ecalIsoUser2_EB_inv = iConfig.getUntrackedParameter("ecalIsoUser2_EB_inv", false); - ecalIsoUser2_EE_inv = iConfig.getUntrackedParameter("ecalIsoUser2_EE_inv", false); - hcalIsoUser2_EB_inv = iConfig.getUntrackedParameter("hcalIsoUser2_EB_inv", false); - hcalIsoUser2_EE_inv = iConfig.getUntrackedParameter("hcalIsoUser2_EE_inv", false); - } - - usePreselection1_ = (useValidFirstPXBHit1_ || useConversionRejection1_ || useExpectedMissingHits1_) ? true : false; - usePreselection2_ = (useValidFirstPXBHit2_ || useConversionRejection2_ || useExpectedMissingHits2_) ? true : false; - - // Display Massages - // - if (useValidFirstPXBHit1_) { - std::cout << "ZeePlots: Warning: you have demanded ValidFirstPXBHit on 1st electron" << std::endl; - } - if (useValidFirstPXBHit2_) { - std::cout << "ZeePlots: Warning: you have demanded ValidFirstPXBHit on 2nd electron" << std::endl; - } - if (useConversionRejection1_) { - std::cout << "ZeePlots: Warning: you have demanded Conversion Rejection on 1st electron" << std::endl; - } - if (useConversionRejection2_) { - std::cout << "ZeePlots: Warning: you have demanded Conversion Rejection on 2nd electron" << std::endl; - } - if (useExpectedMissingHits1_) { - std::cout << "ZeePlots: Warning: you have demanded Expected Missing Hits on 1st electron no more than " - << maxNumberOfExpectedMissingHits1_ << std::endl; - } - if (useExpectedMissingHits2_) { - std::cout << "ZeePlots: Warning: you have demanded Expected Missing Hits on 2nd electron no more than " - << maxNumberOfExpectedMissingHits2_ << std::endl; - } - - // JETS - // - includeJetInformationInNtuples_ = iConfig.getUntrackedParameter("includeJetInformationInNtuples", false); - - if (includeJetInformationInNtuples_) { - caloJetCollectionToken_ = - mayConsume(iConfig.getUntrackedParameter("caloJetCollectionTag")); - pfJetCollectionToken_ = - mayConsume(iConfig.getUntrackedParameter("pfJetCollectionTag")); - DRJetFromElectron_ = iConfig.getUntrackedParameter("DRJetFromElectron"); - } -} - -ZeePlots::~ZeePlots() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) -} - -// -// member functions -// - -// ------------ method called to for each event ------------ -void ZeePlots::analyze(const edm::Event &iEvent, const edm::EventSetup &es) { - using namespace std; - // - // Get the collections here - // - edm::Handle ZeeCands; - iEvent.getByToken(zeeCollectionToken_, ZeeCands); - - if (!ZeeCands.isValid()) { - std::cout << "Warning: No valid Zee candidates in this event..." << std::endl; - return; - } - - const pat::CompositeCandidateCollection *zcands = ZeeCands.product(); - const pat::CompositeCandidateCollection::const_iterator zeeIter = zcands->begin(); - const pat::CompositeCandidate zee = *zeeIter; - - // get the parts of the composite candidate: - const pat::Electron *myElec1 = dynamic_cast(zee.daughter("electron1")); - const pat::Electron *myElec2 = dynamic_cast(zee.daughter("electron2")); - - const pat::MET *myMet = dynamic_cast(zee.daughter("met")); - const pat::MET *myPfMet = dynamic_cast(zee.daughter("pfmet")); - const pat::MET *myTcMet = dynamic_cast(zee.daughter("tcmet")); - - // _______________________________________________________________________ - // - // VBTF Root tuple production -------------------------------------------- - // _______________________________________________________________________ - // - // ....................................................................... - // vbtf produces 2 root tuples: one that contains the highest pT electrons - // that passes a user defined selection and one other with only the - // preselection criteria applied - // ....................................................................... - // - - // fill the tree variables - runNumber = iEvent.run(); - eventNumber = (Long64_t)(iEvent.eventAuxiliary().event()); - lumiSection = (Int_t)iEvent.luminosityBlock(); - - ele1_sc_eta = (Float_t)(myElec1->superCluster()->eta()); - ele1_sc_phi = (Float_t)(myElec1->superCluster()->phi()); - ele1_sc_energy = (Float_t)(myElec1->superCluster()->energy()); - ele1_sc_gsf_et = (Float_t)(myElec1->superCluster()->energy() / TMath::CosH(myElec1->gsfTrack()->eta())); - ele1_cand_eta = (Float_t)(myElec1->eta()); - ele1_cand_phi = (Float_t)(myElec1->phi()); - ele1_cand_et = (Float_t)(myElec1->et()); - - ele1_iso_track = (Float_t)(myElec1->dr03IsolationVariables().tkSumPt / ele1_cand_et); - ele1_iso_ecal = (Float_t)(myElec1->dr03IsolationVariables().ecalRecHitSumEt / ele1_cand_et); - ele1_iso_hcal = (Float_t)((myElec1->dr03IsolationVariables().hcalDepth1TowerSumEt + - myElec1->dr03IsolationVariables().hcalDepth2TowerSumEt) / - ele1_cand_et); - - ele1_id_sihih = (Float_t)(myElec1->sigmaIetaIeta()); - ele1_id_deta = (Float_t)(myElec1->deltaEtaSuperClusterTrackAtVtx()); - ele1_id_dphi = (Float_t)(myElec1->deltaPhiSuperClusterTrackAtVtx()); - ele1_id_hoe = (Float_t)(myElec1->hadronicOverEm()); - - ele1_cr_mhitsinner = - (Float_t)(myElec1->gsfTrack()->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS)); - ele1_cr_dcot = (Float_t)(myElec1->userFloat("Dcot")); - ele1_cr_dist = (Float_t)(myElec1->userFloat("Dist")); - - ele1_vx = (Float_t)(myElec1->vx()); - ele1_vy = (Float_t)(myElec1->vy()); - ele1_vz = (Float_t)(myElec1->vz()); - - pv_x1 = (Float_t)(myElec1->userFloat("pv_x")); - pv_y1 = (Float_t)(myElec1->userFloat("pv_y")); - pv_z1 = (Float_t)(myElec1->userFloat("pv_z")); - - ele1_gsfCharge = (Int_t)(myElec1->gsfTrack()->charge()); - ele1_ctfCharge = - (Int_t)(myElec1->closestCtfTrackRef().isNonnull() ? (myElec1->closestCtfTrackRef()->charge()) : -9999); - ele1_scPixCharge = (Int_t)(myElec1->chargeInfo().scPixCharge); - ele1_eop = (Float_t)(myElec1->eSuperClusterOverP()); - ele1_tip_bs = (Float_t)((-1.0) * myElec1->dB()); - ele1_tip_pv = (Float_t)(myElec1->userFloat("ele_tip_pv")); - - ele2_sc_eta = (Float_t)(myElec2->superCluster()->eta()); - ele2_sc_phi = (Float_t)(myElec2->superCluster()->phi()); - ele2_sc_energy = (Float_t)(myElec2->superCluster()->energy()); - ele2_sc_gsf_et = (Float_t)(myElec2->superCluster()->energy() / TMath::CosH(myElec2->gsfTrack()->eta())); - ele2_cand_eta = (Float_t)(myElec2->eta()); - ele2_cand_phi = (Float_t)(myElec2->phi()); - ele2_cand_et = (Float_t)(myElec2->et()); - - ele2_iso_track = (Float_t)(myElec2->dr03IsolationVariables().tkSumPt / ele2_cand_et); - ele2_iso_ecal = (Float_t)(myElec2->dr03IsolationVariables().ecalRecHitSumEt / ele2_cand_et); - ele2_iso_hcal = (Float_t)((myElec2->dr03IsolationVariables().hcalDepth1TowerSumEt + - myElec2->dr03IsolationVariables().hcalDepth2TowerSumEt) / - ele2_cand_et); - - ele2_id_sihih = (Float_t)(myElec2->sigmaIetaIeta()); - ele2_id_deta = (Float_t)(myElec2->deltaEtaSuperClusterTrackAtVtx()); - ele2_id_dphi = (Float_t)(myElec2->deltaPhiSuperClusterTrackAtVtx()); - ele2_id_hoe = (Float_t)(myElec2->hadronicOverEm()); - - ele2_cr_mhitsinner = - (Float_t)(myElec2->gsfTrack()->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS)); - ele2_cr_dcot = (Float_t)(myElec2->userFloat("Dcot")); - ele2_cr_dist = (Float_t)(myElec2->userFloat("Dist")); - - ele2_vx = (Float_t)(myElec2->vx()); - ele2_vy = (Float_t)(myElec2->vy()); - ele2_vz = (Float_t)(myElec2->vz()); - - pv_x2 = (Float_t)(myElec2->userFloat("pv_x")); - pv_y2 = (Float_t)(myElec2->userFloat("pv_y")); - pv_z2 = (Float_t)(myElec2->userFloat("pv_z")); - - ele2_gsfCharge = (Int_t)(myElec2->gsfTrack()->charge()); - ele2_ctfCharge = - (Int_t)(myElec2->closestCtfTrackRef().isNonnull() ? (myElec2->closestCtfTrackRef()->charge()) : -9999); - ele2_scPixCharge = (Int_t)(myElec2->chargeInfo().scPixCharge); - ele2_eop = (Float_t)(myElec2->eSuperClusterOverP()); - ele2_tip_bs = (Float_t)((-1.0) * myElec2->dB()); - ele2_tip_pv = (Float_t)(myElec2->userFloat("ele_tip_pv")); - - event_caloMET = (Float_t)(myMet->et()); - event_pfMET = (Float_t)(myPfMet->et()); - event_tcMET = (Float_t)(myTcMet->et()); - - event_caloMET_phi = (Float_t)(myMet->phi()); - event_pfMET_phi = (Float_t)(myPfMet->phi()); - event_tcMET_phi = (Float_t)(myTcMet->phi()); - - TLorentzVector p4e1; - TLorentzVector p4e2; - - p4e1.SetPtEtaPhiM(ele1_sc_gsf_et, ele1_cand_eta, ele1_cand_phi, 0.000511); - p4e2.SetPtEtaPhiM(ele2_sc_gsf_et, ele2_cand_eta, ele2_cand_phi, 0.000511); - - TLorentzVector Zp4 = p4e1 + p4e2; - - event_Mee = (Float_t)(Zp4.M()); - - event_datasetTag = DatasetTag_; - - // jet information - only if the user asks for it - // keep the 5 highest et jets of the event that are further than DR > DRJetFromElectron_ - - if (includeJetInformationInNtuples_) { - // initialize the array of the jet information - - for (Int_t i = 0; i < 5; ++i) { - calojet_et[i] = -999999; - calojet_eta[i] = -999999; - calojet_phi[i] = -999999; - - pfjet_et[i] = -999999; - pfjet_eta[i] = -999999; - pfjet_phi[i] = -999999; - } - - // get hold of the jet collections - edm::Handle pCaloJets; - iEvent.getByToken(caloJetCollectionToken_, pCaloJets); - - edm::Handle pPfJets; - iEvent.getByToken(pfJetCollectionToken_, pPfJets); - - // calo jets now: - if (pCaloJets.isValid()) { - const reco::CaloJetCollection *caloJets = pCaloJets.product(); - Int_t nCaloJets = (Int_t)(caloJets->size()); - - if (nCaloJets > 0) { - Float_t *nCaloET = new Float_t[nCaloJets]; - Float_t *nCaloEta = new Float_t[nCaloJets]; - Float_t *nCaloPhi = new Float_t[nCaloJets]; - - // reco::CaloJetCollection::const_iterator cjet = caloJets->begin(); - - Int_t counter = 0; - - for (reco::CaloJetCollection::const_iterator cjet = caloJets->begin(); cjet != caloJets->end(); ++cjet) { - // store them only if they are far enough from the electron - Double_t DR1 = reco::deltaR(cjet->eta(), cjet->phi(), myElec1->gsfTrack()->eta(), ele1_sc_phi); - Double_t DR2 = reco::deltaR(cjet->eta(), cjet->phi(), myElec2->gsfTrack()->eta(), ele2_sc_phi); - - if ((DR1 > DRJetFromElectron_) && (DR2 > DRJetFromElectron_)) { - nCaloET[counter] = cjet->et(); - nCaloEta[counter] = cjet->eta(); - nCaloPhi[counter] = cjet->phi(); - ++counter; - } - } - - Int_t *caloJetSorted = new Int_t[nCaloJets]; - - TMath::Sort(nCaloJets, nCaloET, caloJetSorted, true); - - for (Int_t i = 0; i < nCaloJets; ++i) { - if (i >= 5) { - break; - } - - calojet_et[i] = nCaloET[caloJetSorted[i]]; - calojet_eta[i] = nCaloEta[caloJetSorted[i]]; - calojet_phi[i] = nCaloPhi[caloJetSorted[i]]; - } - - delete[] caloJetSorted; - delete[] nCaloET; - delete[] nCaloEta; - delete[] nCaloPhi; - } - } - - // pf jets now: - if (pPfJets.isValid()) { - const reco::PFJetCollection *pfJets = pPfJets.product(); - Int_t nPfJets = (Int_t)pfJets->size(); - - if (nPfJets > 0) { - Float_t *nPfET = new Float_t[nPfJets]; - Float_t *nPfEta = new Float_t[nPfJets]; - Float_t *nPfPhi = new Float_t[nPfJets]; - - // reco::PFJetCollection::const_iterator pjet = pfJets->begin(); - - Int_t counter = 0; - - for (reco::PFJetCollection::const_iterator pjet = pfJets->begin(); pjet != pfJets->end(); ++pjet) { - // store them only if they are far enough from the electron - - Double_t DR1 = reco::deltaR(pjet->eta(), pjet->phi(), myElec1->gsfTrack()->eta(), ele1_sc_phi); - Double_t DR2 = reco::deltaR(pjet->eta(), pjet->phi(), myElec2->gsfTrack()->eta(), ele2_sc_phi); - - if ((DR1 > DRJetFromElectron_) && (DR2 > DRJetFromElectron_)) { - nPfET[counter] = pjet->et(); - nPfEta[counter] = pjet->eta(); - nPfPhi[counter] = pjet->phi(); - ++counter; - } - } - - Int_t *pfJetSorted = new Int_t[nPfJets]; - - TMath::Sort(nPfJets, nPfET, pfJetSorted, true); - - for (Int_t i = 0; i < nPfJets; ++i) { - if (i >= 5) { - break; - } - - pfjet_et[i] = nPfET[pfJetSorted[i]]; - pfjet_eta[i] = nPfEta[pfJetSorted[i]]; - pfjet_phi[i] = nPfPhi[pfJetSorted[i]]; - } - - delete[] pfJetSorted; - delete[] nPfET; - delete[] nPfEta; - delete[] nPfPhi; - } - } - } - - // if the electrons pass the selection - // it is meant to be a precalculated selection here, in order to include - // conversion rejection too - if (CheckCuts1(myElec1) && CheckCuts2(myElec2)) { - vbtfSele_tree->Fill(); - } - - vbtfPresele_tree->Fill(); - - // - // _______________________________________________________________________ - // - // histogram production -------------------------------------------------- - // _______________________________________________________________________ - // - // if you want some preselection: Conv rejection, hit pattern - - // if ( usePreselection_ ) { - // - // Bool_t a1 = PassPreselectionCriteria1(myElec1); - // Bool_t a2 = PassPreselectionCriteria2(myElec2); - // - // if ( ! (a1 && a2) ) { - // return ; - // } - // } - - Bool_t passPre1 = (usePreselection1_) ? PassPreselectionCriteria1(myElec1) : true; - Bool_t passPre2 = (usePreselection2_) ? PassPreselectionCriteria2(myElec2) : true; - - if (!(passPre1 && passPre2)) { - std::cout << "At least one electron fails preselection: Electron #1 = " << passPre1 - << " - Electron #2 = " << passPre2 << std::endl; - - return; - } - - TLorentzVector e1; - TLorentzVector e2; - - // math::XYZVector p1 = myElec1->trackMomentumAtVtx(); - // math::XYZVector p2 = myElec2->trackMomentumAtVtx(); - // e1.SetPxPyPzE(p1.X(), p1.Y(), p1.Z(), myElec1->caloEnergy()); - // e2.SetPxPyPzE(p2.X(), p2.Y(), p2.Z(), myElec2->caloEnergy()); - - // Use directly the et,eta,phi from pat::Electron; assume e mass = 0.000511 GeV - e1.SetPtEtaPhiM(myElec1->et(), myElec1->eta(), myElec1->phi(), 0.000511); - e2.SetPtEtaPhiM(myElec2->et(), myElec2->eta(), myElec2->phi(), 0.000511); - - TLorentzVector Z = e1 + e2; - - Double_t mee = Z.M(); - - // the selection plots: - Bool_t pass = (CheckCuts1(myElec1) && CheckCuts2(myElec2)); - - //cout << "This event passes? " << pass << ", mee is: " << mee - // << " and the histo is filled." << endl; - - if (!pass) { - return; - } - - h_mee->Fill(mee); - - if (TMath::Abs(e1.Eta()) < 1.479 && TMath::Abs(e2.Eta()) < 1.479) { - h_mee_EBEB->Fill(mee); - } - if (TMath::Abs(e1.Eta()) < 1.479 && TMath::Abs(e2.Eta()) > 1.479) { - h_mee_EBEE->Fill(mee); - } - if (TMath::Abs(e1.Eta()) > 1.479 && TMath::Abs(e2.Eta()) < 1.479) { - h_mee_EBEE->Fill(mee); - } - if (TMath::Abs(e1.Eta()) > 1.479 && TMath::Abs(e2.Eta()) > 1.479) { - h_mee_EEEE->Fill(mee); - } - - h_Zcand_PT->Fill(Z.Pt()); - h_Zcand_Y->Fill(Z.Rapidity()); - - h_e_PT->Fill(e1.Pt()); - h_e_PT->Fill(e2.Pt()); - h_e_ETA->Fill(e1.Eta()); - h_e_ETA->Fill(e2.Eta()); - h_e_PHI->Fill(e1.Phi()); - h_e_PHI->Fill(e2.Phi()); - - if (TMath::Abs(myElec1->eta()) < 1.479) { - h_EB_trkiso->Fill(ReturnCandVar(myElec1, 0)); - h_EB_ecaliso->Fill(ReturnCandVar(myElec1, 1)); - h_EB_hcaliso->Fill(ReturnCandVar(myElec1, 2)); - h_EB_sIetaIeta->Fill(myElec1->scSigmaIEtaIEta()); - h_EB_dphi->Fill(myElec1->deltaPhiSuperClusterTrackAtVtx()); - h_EB_deta->Fill(myElec1->deltaEtaSuperClusterTrackAtVtx()); - h_EB_HoE->Fill(myElec1->hadronicOverEm()); - } else { - h_EE_trkiso->Fill(ReturnCandVar(myElec1, 0)); - h_EE_ecaliso->Fill(ReturnCandVar(myElec1, 1)); - h_EE_hcaliso->Fill(ReturnCandVar(myElec1, 2)); - h_EE_sIetaIeta->Fill(myElec1->scSigmaIEtaIEta()); - h_EE_dphi->Fill(myElec1->deltaPhiSuperClusterTrackAtVtx()); - h_EE_deta->Fill(myElec1->deltaEtaSuperClusterTrackAtVtx()); - h_EE_HoE->Fill(myElec1->hadronicOverEm()); - } - - if (TMath::Abs(myElec2->eta()) < 1.479) { - h_EB_trkiso->Fill(ReturnCandVar(myElec2, 0)); - h_EB_ecaliso->Fill(ReturnCandVar(myElec2, 1)); - h_EB_hcaliso->Fill(ReturnCandVar(myElec2, 2)); - h_EB_sIetaIeta->Fill(myElec2->scSigmaIEtaIEta()); - h_EB_dphi->Fill(myElec2->deltaPhiSuperClusterTrackAtVtx()); - h_EB_deta->Fill(myElec2->deltaEtaSuperClusterTrackAtVtx()); - h_EB_HoE->Fill(myElec2->hadronicOverEm()); - } else { - h_EE_trkiso->Fill(ReturnCandVar(myElec2, 0)); - h_EE_ecaliso->Fill(ReturnCandVar(myElec2, 1)); - h_EE_hcaliso->Fill(ReturnCandVar(myElec2, 2)); - h_EE_sIetaIeta->Fill(myElec2->scSigmaIEtaIEta()); - h_EE_dphi->Fill(myElec2->deltaPhiSuperClusterTrackAtVtx()); - h_EE_deta->Fill(myElec2->deltaEtaSuperClusterTrackAtVtx()); - h_EE_HoE->Fill(myElec2->hadronicOverEm()); - } - - //Double_tscEta=myElec->superCluster()->eta(); - //Double_tscPhi=myElec->superCluster()->phi(); - //Double_tscEt=myElec->superCluster()->energy()/cosh(scEta); -} - -/*********************************************************************** - * - * Checking Cuts and making selections: - * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - * all the available methods take input a pointer to a pat::Electron - * - * Bool_t CheckCuts(const pat::Electron *): - * true if the input selection is satisfied - * Bool_t CheckCutsInverse(const pat::Electron *ele): - * true if the cuts with inverted the ones specified in the - * cfg are satisfied - * Bool_t CheckCutsNminusOne(const pat::Electron *ele, Int_t jj): - * true if all the cuts with cut #jj ignored are satisfied - * - ***********************************************************************/ -Bool_t ZeePlots::CheckCuts1(const pat::Electron *ele) { - if (usePrecalcID1_) { - if (!ele->isElectronIDAvailable(usePrecalcIDType1_)) { - std::cout << "Error! not existing ID with name: " << usePrecalcIDType1_ << " function will return true!" - << std::endl; - return true; - } - - Double_t val = ele->electronID(usePrecalcIDType1_); - - if (usePrecalcIDSign1_ == "<") { - return (val < usePrecalcIDValue1_); - } else if (usePrecalcIDSign1_ == ">") { - return (val > usePrecalcIDValue1_); - } else { // equality: it returns 0,1,2,3 but as Float_t - return (TMath::Abs(val - usePrecalcIDValue1_) < 0.1); - } - } else { - for (Int_t i = 0; i < nBarrelVars_; ++i) { - if (!CheckCut1(ele, i)) { - return false; - } - } - - return true; - } -} - -Bool_t ZeePlots::CheckCuts2(const pat::Electron *ele) { - if (usePrecalcID2_) { - if (!ele->isElectronIDAvailable(usePrecalcIDType2_)) { - std::cout << "Error! not existing ID with name: " << usePrecalcIDType2_ << " function will return true!" - << std::endl; - return true; - } - - Double_t val = ele->electronID(usePrecalcIDType2_); - - if (usePrecalcIDSign2_ == "<") { - return (val < usePrecalcIDValue2_); - } else if (usePrecalcIDSign2_ == ">") { - return (val > usePrecalcIDValue2_); - } else { // equality: it returns 0,1,2,3 but as Float_t - return (TMath::Abs(val - usePrecalcIDValue2_) < 0.1); - } - } else { - for (Int_t i = 0; i < nBarrelVars_; ++i) { - if (!CheckCut2(ele, i)) { - return false; - } - } - - return true; - } -} - -Bool_t ZeePlots::CheckCuts1Inverse(const pat::Electron *ele) { - for (Int_t i = 0; i < nBarrelVars_; ++i) { - if (CheckCut1Inv(ele, i) == false) { - return false; - } - } - - return true; -} - -Bool_t ZeePlots::CheckCuts2Inverse(const pat::Electron *ele) { - for (Int_t i = 0; i < nBarrelVars_; ++i) { - if (CheckCut2Inv(ele, i) == false) { - return false; - } - } - - return true; -} - -Bool_t ZeePlots::CheckCuts1NminusOne(const pat::Electron *ele, Int_t jj) { - for (Int_t i = 0; i < nBarrelVars_; ++i) { - if (i == jj) { - continue; - } - - if (CheckCut1(ele, i) == false) { - return false; - } - } - - return true; -} - -Bool_t ZeePlots::CheckCuts2NminusOne(const pat::Electron *ele, Int_t jj) { - for (Int_t i = 0; i < nBarrelVars_; ++i) { - if (i == jj) { - continue; - } - - if (CheckCut2(ele, i) == false) { - return false; - } - } - - return true; -} - -Bool_t ZeePlots::CheckCut1(const pat::Electron *ele, Int_t i) { - Double_t fabseta = TMath::Abs(ele->superCluster()->eta()); - - if (fabseta < 1.479) { - return (TMath::Abs(ReturnCandVar(ele, i)) < CutVars1_[i]); - } - - return (TMath::Abs(ReturnCandVar(ele, i)) < CutVars1_[i + nBarrelVars_]); -} - -Bool_t ZeePlots::CheckCut2(const pat::Electron *ele, Int_t i) { - Double_t fabseta = TMath::Abs(ele->superCluster()->eta()); - - if (fabseta < 1.479) { - return (TMath::Abs(ReturnCandVar(ele, i)) < CutVars2_[i]); - } - - return (TMath::Abs(ReturnCandVar(ele, i)) < CutVars2_[i + nBarrelVars_]); -} - -Bool_t ZeePlots::CheckCut1Inv(const pat::Electron *ele, Int_t i) { - Double_t fabseta = TMath::Abs(ele->superCluster()->eta()); - - if (fabseta < 1.479) { - if (InvVars1_[i]) { - return (TMath::Abs(ReturnCandVar(ele, i)) > CutVars1_[i]); - } - - return (TMath::Abs(ReturnCandVar(ele, i)) < CutVars1_[i]); - } - - if (InvVars1_[i + nBarrelVars_]) { - if (InvVars1_[i]) { - return (TMath::Abs(ReturnCandVar(ele, i)) > CutVars1_[i + nBarrelVars_]); - } - } - - return (TMath::Abs(ReturnCandVar(ele, i)) < CutVars1_[i + nBarrelVars_]); -} - -Bool_t ZeePlots::CheckCut2Inv(const pat::Electron *ele, Int_t i) { - Double_t fabseta = TMath::Abs(ele->superCluster()->eta()); - - if (fabseta < 1.479) { - if (InvVars2_[i]) { - return (TMath::Abs(ReturnCandVar(ele, i)) > CutVars2_[i]); - } - - return (TMath::Abs(ReturnCandVar(ele, i)) < CutVars2_[i]); - } - - if (InvVars2_[i + nBarrelVars_]) { - if (InvVars2_[i]) { - return (TMath::Abs(ReturnCandVar(ele, i)) > CutVars2_[i + nBarrelVars_]); - } - } - - return (TMath::Abs(ReturnCandVar(ele, i)) < CutVars2_[i + nBarrelVars_]); -} - -Double_t ZeePlots::ReturnCandVar(const pat::Electron *ele, Int_t i) { - if (i == 0) { - return (ele->dr03TkSumPt() / ele->p4().Pt()); - } else if (i == 1) { - return (ele->dr03EcalRecHitSumEt() / ele->p4().Pt()); - } else if (i == 2) { - return (ele->dr03HcalTowerSumEt() / ele->p4().Pt()); - } else if (i == 3) { - return (ele->scSigmaIEtaIEta()); - } else if (i == 4) { - return (ele->deltaPhiSuperClusterTrackAtVtx()); - } else if (i == 5) { - return (ele->deltaEtaSuperClusterTrackAtVtx()); - } else if (i == 6) { - return (ele->hadronicOverEm()); - } else if (i == 7) { - // pedestal subtraction is only in barrel - if (ele->isEB()) { - return ((ele->dr03TkSumPt() + TMath::Max(0.0, ele->dr03EcalRecHitSumEt() - 1.0) + ele->dr03HcalTowerSumEt()) / - ele->p4().Pt()); - } else { - return ((ele->dr03TkSumPt() + ele->dr03EcalRecHitSumEt() + ele->dr03HcalTowerSumEt()) / ele->p4().Pt()); - } - } - // else if ( i == 8 ) { return ele->gsfTrack()->dxy(bspotPosition_); } - else if (i == 8) { - return (ele->dB()); - } else if (i == 9) { - return (ele->eSuperClusterOverP()); - } else if (i == 10) { - return (ele->userIsolation(pat::TrackIso)); - } else if (i == 11) { - return (ele->userIsolation(pat::EcalIso)); - } else if (i == 12) { - return (ele->userIsolation(pat::HcalIso)); - } - - std::cout << "Error in ZeePlots::ReturnCandVar" << std::endl; - - return (-1.0); -} - -//Bool_t ZeePlots::CheckCuts2( const pat::Electron *ele) -//{ -// for (Int_t i = 0; ihasUserInt( - "PassConversionRejection")) { //std::cout << "con rej: " << ele->userInt("PassConversionRejection") << std::endl; - - if (!(ele->userInt("PassConversionRejection") == 1)) { - passConvRej = false; - } - } else { - std::cout << "ZeePlots: WARNING: Conversion Rejection Request for electron #1 Disregarded: " - << "you must calculate it before " << std::endl; - } - } - - if (useValidFirstPXBHit1_) { - if (ele->hasUserInt( - "PassValidFirstPXBHit")) { //std::cout << "valid1stPXB: " << ele->userInt("PassValidFirstPXBHit") << std::endl; - - if (!(ele->userInt("PassValidFirstPXBHit") == 1)) { - passPXB = false; - } - } else { - std::cout << "ZeePlots: WARNING: Valid First PXB Hit Request for electron #1 Disregarded: " - << "you must calculate it before " << std::endl; - } - } - - if (useExpectedMissingHits1_) { - if (ele->hasUserInt( - "NumberOfExpectedMissingHits")) { //std::cout << "missing hits: " << ele->userInt("NumberOfExpectedMissingHits") << std::endl; - - if (!(ele->userInt("NumberOfExpectedMissingHits") <= maxNumberOfExpectedMissingHits1_)) { - passEMH = false; - } - } else { - std::cout << "ZeePlots: WARNING: Number of Expected Missing Hits Request for electron #1 Disregarded: " - << "you must calculate it before " << std::endl; - } - } - - return (passConvRej && passPXB && passEMH); -} - -Bool_t ZeePlots::PassPreselectionCriteria2(const pat::Electron *ele) { - Bool_t passConvRej = true; - Bool_t passPXB = true; - Bool_t passEMH = true; - - if (useConversionRejection2_) { - if (ele->hasUserInt( - "PassConversionRejection")) { //std::cout << "con rej: " << ele->userInt("PassConversionRejection") << std::endl; - - if (!(ele->userInt("PassConversionRejection") == 1)) { - passConvRej = false; - } - } else { - std::cout << "ZeePlots: WARNING: Conversion Rejection Request for electron #2 Disregarded: " - << "you must calculate it before " << std::endl; - } - } - - if (useValidFirstPXBHit2_) { - if (ele->hasUserInt( - "PassValidFirstPXBHit")) { //std::cout << "valid1stPXB: " << ele->userInt("PassValidFirstPXBHit") << std::endl; - - if (!(ele->userInt("PassValidFirstPXBHit") == 1)) { - passPXB = false; - } - } else { - std::cout << "ZeePlots: WARNING: Valid First PXB Hit Request for electron #2 Disregarded: " - << "you must calculate it before " << std::endl; - } - } - - if (useExpectedMissingHits2_) { - if (ele->hasUserInt( - "NumberOfExpectedMissingHits")) { //std::cout << "missing hits: " << ele->userInt("NumberOfExpectedMissingHits") << std::endl; - - if (!(ele->userInt("NumberOfExpectedMissingHits") <= maxNumberOfExpectedMissingHits2_)) { - passEMH = false; - } - } else { - std::cout << "ZeePlots: WARNING: Number of Expected Missing Hits Request for electron #2 Disregarded: " - << "you must calculate it before " << std::endl; - } - } - - return (passConvRej && passPXB && passEMH); -} - -// -// ------------ method called once each job just before starting event loop -- -void ZeePlots::beginJob() { - //std::cout << "In beginJob()" << std::endl; - - h_mee = new TH1F("h_mee", "h_mee", 200, 0.0, 200.0); - h_mee_EBEB = new TH1F("h_mee_EBEB", "h_mee_EBEB", 200, 0.0, 200.0); - h_mee_EBEE = new TH1F("h_mee_EBEE", "h_mee_EBEE", 200, 0.0, 200.0); - h_mee_EEEE = new TH1F("h_mee_EEEE", "h_mee_EEEE", 200, 0.0, 200.0); - h_Zcand_PT = new TH1F("h_Zcand_PT", "h_Zcand_PT", 200, 0.0, 100.0); - h_Zcand_Y = new TH1F("h_Zcand_Y", "h_Zcand_Y", 200, -5.0, 5.0); - h_e_PT = new TH1F("h_e_PT", "h_e_PT", 200, 0.0, 100.0); - h_e_ETA = new TH1F("h_e_ETA", "h_e_ETA", 200, -3.0, 3.0); - h_e_PHI = new TH1F("h_e_PHI", "h_e_PHI", 200, -4.0, 4.0); - - //VALIDATION PLOTS - // EB - h_EB_trkiso = new TH1F("h_EB_trkiso", "h_EB_trkiso", 200, 0.00, 9.00); - h_EB_ecaliso = new TH1F("h_EB_ecaliso", "h_EB_ecaliso", 200, 0.00, 9.00); - h_EB_hcaliso = new TH1F("h_EB_hcaliso", "h_EB_hcaliso", 200, 0.00, 9.00); - h_EB_sIetaIeta = new TH1F("h_EB_sIetaIeta", "h_EB_sIetaIeta", 200, 0.00, 0.02); - h_EB_dphi = new TH1F("h_EB_dphi", "h_EB_dphi", 200, -0.03, 0.03); - h_EB_deta = new TH1F("h_EB_deta", "h_EB_deta", 200, -0.01, 0.01); - h_EB_HoE = new TH1F("h_EB_HoE", "h_EB_HoE", 200, 0.00, 0.20); - // EE - h_EE_trkiso = new TH1F("h_EE_trkiso", "h_EE_trkiso", 200, 0.00, 9.00); - h_EE_ecaliso = new TH1F("h_EE_ecaliso", "h_EE_ecaliso", 200, 0.00, 9.00); - h_EE_hcaliso = new TH1F("h_EE_hcaliso", "h_EE_hcaliso", 200, 0.00, 9.00); - h_EE_sIetaIeta = new TH1F("h_EE_sIetaIeta", "h_EE_sIetaIeta", 200, 0.00, 0.10); - h_EE_dphi = new TH1F("h_EE_dphi", "h_EE_dphi", 200, -0.03, 0.03); - h_EE_deta = new TH1F("h_EE_deta", "h_EE_deta", 200, -0.01, 0.01); - h_EE_HoE = new TH1F("h_EE_HoE", "h_EE_HoE", 200, 0.00, 0.20); - - // if you add some new variable change the nBarrelVars_ accordingly - // reminder: in the current implementation you must have the same number - // of vars in both barrel and endcaps - - nBarrelVars_ = 13; - - // - // Put EB variables together and EE variables together - // number of barrel variables = number of endcap variable - // if you don't want to use some variable put a very high cut - - // 1st Leg variables - CutVars1_.push_back(trackIso1_EB_); // 0 - CutVars1_.push_back(ecalIso1_EB_); // 1 - CutVars1_.push_back(hcalIso1_EB_); // 2 - CutVars1_.push_back(sihih1_EB_); // 3 - CutVars1_.push_back(dphi1_EB_); // 4 - CutVars1_.push_back(deta1_EB_); // 5 - CutVars1_.push_back(hoe1_EB_); // 6 - CutVars1_.push_back(cIso1_EB_); // 7 - CutVars1_.push_back(tip_bspot1_EB_); // 8 - CutVars1_.push_back(eop1_EB_); // 9 - CutVars1_.push_back(trackIsoUser1_EB_); // 10 - CutVars1_.push_back(ecalIsoUser1_EB_); // 11 - CutVars1_.push_back(hcalIsoUser1_EB_); // 12 - - CutVars1_.push_back(trackIso1_EE_); // 0 - CutVars1_.push_back(ecalIso1_EE_); // 1 - CutVars1_.push_back(hcalIso1_EE_); // 2 - CutVars1_.push_back(sihih1_EE_); // 3 - CutVars1_.push_back(dphi1_EE_); // 4 - CutVars1_.push_back(deta1_EE_); // 5 - CutVars1_.push_back(hoe1_EE_); // 6 - CutVars1_.push_back(cIso1_EE_); // 7 - CutVars1_.push_back(tip_bspot1_EE_); // 8 - CutVars1_.push_back(eop1_EE_); // 9 - CutVars1_.push_back(trackIsoUser1_EE_); // 10 - CutVars1_.push_back(ecalIsoUser1_EE_); // 11 - CutVars1_.push_back(hcalIsoUser1_EE_); // 12 - - InvVars1_.push_back(trackIso1_EB_inv); // 0 - InvVars1_.push_back(ecalIso1_EB_inv); // 1 - InvVars1_.push_back(hcalIso1_EB_inv); // 2 - InvVars1_.push_back(sihih1_EB_inv); // 3 - InvVars1_.push_back(dphi1_EB_inv); // 4 - InvVars1_.push_back(deta1_EB_inv); // 5 - InvVars1_.push_back(hoe1_EB_inv); // 6 - InvVars1_.push_back(cIso1_EB_inv); // 7 - InvVars1_.push_back(tip_bspot1_EB_inv); // 8 - InvVars1_.push_back(eop1_EB_inv); // 9 - InvVars1_.push_back(trackIsoUser1_EB_inv); // 10 - InvVars1_.push_back(ecalIsoUser1_EB_inv); // 11 - InvVars1_.push_back(hcalIsoUser1_EB_inv); // 12 - - InvVars1_.push_back(trackIso1_EE_inv); // 0 - InvVars1_.push_back(ecalIso1_EE_inv); // 1 - InvVars1_.push_back(hcalIso1_EE_inv); // 2 - InvVars1_.push_back(sihih1_EE_inv); // 3 - InvVars1_.push_back(dphi1_EE_inv); // 4 - InvVars1_.push_back(deta1_EE_inv); // 5 - InvVars1_.push_back(hoe1_EE_inv); // 6 - InvVars1_.push_back(cIso1_EE_inv); // 7 - InvVars1_.push_back(tip_bspot1_EE_inv); // 8 - InvVars1_.push_back(eop1_EE_inv); // 9 - InvVars1_.push_back(trackIsoUser1_EE_inv); // 10 - InvVars1_.push_back(ecalIsoUser1_EE_inv); // 11 - InvVars1_.push_back(hcalIsoUser1_EE_inv); // 12 - - // 2nd Leg variables - CutVars2_.push_back(trackIso2_EB_); // 0 - CutVars2_.push_back(ecalIso2_EB_); // 1 - CutVars2_.push_back(hcalIso2_EB_); // 2 - CutVars2_.push_back(sihih2_EB_); // 3 - CutVars2_.push_back(dphi2_EB_); // 4 - CutVars2_.push_back(deta2_EB_); // 5 - CutVars2_.push_back(hoe2_EB_); // 6 - CutVars2_.push_back(cIso2_EB_); // 7 - CutVars2_.push_back(tip_bspot2_EB_); // 8 - CutVars2_.push_back(eop2_EB_); // 9 - CutVars2_.push_back(trackIsoUser2_EB_); // 10 - CutVars2_.push_back(ecalIsoUser2_EB_); // 11 - CutVars2_.push_back(hcalIsoUser2_EB_); // 12 - - CutVars2_.push_back(trackIso2_EE_); // 0 - CutVars2_.push_back(ecalIso2_EE_); // 1 - CutVars2_.push_back(hcalIso2_EE_); // 2 - CutVars2_.push_back(sihih2_EE_); // 3 - CutVars2_.push_back(dphi2_EE_); // 4 - CutVars2_.push_back(deta2_EE_); // 5 - CutVars2_.push_back(hoe2_EE_); // 6 - CutVars2_.push_back(cIso2_EE_); // 7 - CutVars2_.push_back(tip_bspot2_EE_); // 8 - CutVars2_.push_back(eop2_EE_); // 9 - CutVars2_.push_back(trackIsoUser2_EE_); // 10 - CutVars2_.push_back(ecalIsoUser2_EE_); // 11 - CutVars2_.push_back(hcalIsoUser2_EE_); // 12 - - InvVars2_.push_back(trackIso2_EB_inv); // 0 - InvVars2_.push_back(ecalIso2_EB_inv); // 1 - InvVars2_.push_back(hcalIso2_EB_inv); // 2 - InvVars2_.push_back(sihih2_EB_inv); // 3 - InvVars2_.push_back(dphi2_EB_inv); // 4 - InvVars2_.push_back(deta2_EB_inv); // 5 - InvVars2_.push_back(hoe2_EB_inv); // 6 - InvVars2_.push_back(cIso2_EB_inv); // 7 - InvVars2_.push_back(tip_bspot2_EB_inv); // 8 - InvVars2_.push_back(eop2_EB_inv); // 9 - InvVars2_.push_back(trackIsoUser2_EB_inv); // 10 - InvVars2_.push_back(ecalIsoUser2_EB_inv); // 11 - InvVars2_.push_back(hcalIsoUser2_EB_inv); // 12 - - InvVars2_.push_back(trackIso2_EE_inv); // 0 - InvVars2_.push_back(ecalIso2_EE_inv); // 1 - InvVars2_.push_back(hcalIso2_EE_inv); // 2 - InvVars2_.push_back(sihih2_EE_inv); // 3 - InvVars2_.push_back(dphi2_EE_inv); // 4 - InvVars2_.push_back(deta2_EE_inv); // 5 - InvVars2_.push_back(hoe2_EE_inv); // 6 - InvVars2_.push_back(cIso2_EE_inv); // 7 - InvVars2_.push_back(tip_bspot2_EE_inv); // 8 - InvVars2_.push_back(eop2_EE_inv); // 9 - InvVars2_.push_back(trackIsoUser2_EE_inv); // 10 - InvVars2_.push_back(ecalIsoUser2_EE_inv); // 11 - InvVars2_.push_back(hcalIsoUser2_EE_inv); // 12 - - // ________________________________________________________________________ - // - // The VBTF Root Tuples --------------------------------------------------- - // ________________________________________________________________________ - // - ZEE_VBTFselectionFile_ = new TFile(TString(ZEE_VBTFselectionFileName_), "RECREATE"); - - vbtfSele_tree = new TTree("vbtfSele_tree", "Tree to store the Z Candidates that pass the VBTF selection"); - - vbtfSele_tree->Branch("runNumber", &runNumber, "runNumber/I"); - vbtfSele_tree->Branch("eventNumber", &eventNumber, "eventNumber/L"); - vbtfSele_tree->Branch("lumiSection", &lumiSection, "lumiSection/I"); - - // for ele 1 - vbtfSele_tree->Branch("ele1_sc_gsf_et", &ele1_sc_gsf_et, "ele1_sc_gsf_et/F"); - vbtfSele_tree->Branch("ele1_sc_energy", &ele1_sc_energy, "ele1_sc_energy/F"); - vbtfSele_tree->Branch("ele1_sc_eta", &ele1_sc_eta, "ele1_sc_eta/F"); - vbtfSele_tree->Branch("ele1_sc_phi", &ele1_sc_phi, "ele1_sc_phi/F"); - vbtfSele_tree->Branch("ele1_cand_et", &ele1_cand_et, "ele1_cand_et/F"); - vbtfSele_tree->Branch("ele1_cand_eta", &ele1_cand_eta, "ele1_cand_eta/F"); - vbtfSele_tree->Branch("ele1_cand_phi", &ele1_cand_phi, "ele1_cand_phi/F"); - vbtfSele_tree->Branch("ele1_iso_track", &ele1_iso_track, "ele1_iso_track/F"); - vbtfSele_tree->Branch("ele1_iso_ecal", &ele1_iso_ecal, "ele1_iso_ecal/F"); - vbtfSele_tree->Branch("ele1_iso_hcal", &ele1_iso_hcal, "ele1_iso_hcal/F"); - vbtfSele_tree->Branch("ele1_id_sihih", &ele1_id_sihih, "ele1_id_sihih/F"); - vbtfSele_tree->Branch("ele1_id_deta", &ele1_id_deta, "ele1_id_deta/F"); - vbtfSele_tree->Branch("ele1_id_dphi", &ele1_id_dphi, "ele1_id_dphi/F"); - vbtfSele_tree->Branch("ele1_id_hoe", &ele1_id_hoe, "ele1_id_hoe/F"); - vbtfSele_tree->Branch("ele1_cr_mhitsinner", &ele1_cr_mhitsinner, "ele1_cr_mhitsinner/I"); - vbtfSele_tree->Branch("ele1_cr_dcot", &ele1_cr_dcot, "ele1_cr_dcot/F"); - vbtfSele_tree->Branch("ele1_cr_dist", &ele1_cr_dist, "ele1_cr_dist/F"); - vbtfSele_tree->Branch("ele1_vx", &ele1_vx, "ele1_vx/F"); - vbtfSele_tree->Branch("ele1_vy", &ele1_vy, "ele1_vy/F"); - vbtfSele_tree->Branch("ele1_vz", &ele1_vz, "ele1_vz/F"); - vbtfSele_tree->Branch("ele1_gsfCharge", &ele1_gsfCharge, "ele1_gsfCharge/I"); - vbtfSele_tree->Branch("ele1_ctfCharge", &ele1_ctfCharge, "ele1_ctfCharge/I"); - vbtfSele_tree->Branch("ele1_scPixCharge", &ele1_scPixCharge, "ele1_scPixCharge/I"); - vbtfSele_tree->Branch("ele1_eop", &ele1_eop, "ele1_eop/F"); - vbtfSele_tree->Branch("ele1_tip_bs", &ele1_tip_bs, "ele1_tip_bs/F"); - vbtfSele_tree->Branch("ele1_tip_pv", &ele1_tip_pv, "ele1_tip_pv/F"); - - // for ele 2 - vbtfSele_tree->Branch("ele2_sc_gsf_et", &ele2_sc_gsf_et, "ele2_sc_gsf_et/F"); - vbtfSele_tree->Branch("ele2_sc_energy", &ele2_sc_energy, "ele2_sc_energy/F"); - vbtfSele_tree->Branch("ele2_sc_eta", &ele2_sc_eta, "ele2_sc_eta/F"); - vbtfSele_tree->Branch("ele2_sc_phi", &ele2_sc_phi, "ele2_sc_phi/F"); - vbtfSele_tree->Branch("ele2_cand_et", &ele2_cand_et, "ele2_cand_et/F"); - vbtfSele_tree->Branch("ele2_cand_eta", &ele2_cand_eta, "ele2_cand_eta/F"); - vbtfSele_tree->Branch("ele2_cand_phi", &ele2_cand_phi, "ele2_cand_phi/F"); - vbtfSele_tree->Branch("ele2_iso_track", &ele2_iso_track, "ele2_iso_track/F"); - vbtfSele_tree->Branch("ele2_iso_ecal", &ele2_iso_ecal, "ele2_iso_ecal/F"); - vbtfSele_tree->Branch("ele2_iso_hcal", &ele2_iso_hcal, "ele2_iso_hcal/F"); - vbtfSele_tree->Branch("ele2_id_sihih", &ele2_id_sihih, "ele2_id_sihih/F"); - vbtfSele_tree->Branch("ele2_id_deta", &ele2_id_deta, "ele2_id_deta/F"); - vbtfSele_tree->Branch("ele2_id_dphi", &ele2_id_dphi, "ele2_id_dphi/F"); - vbtfSele_tree->Branch("ele2_id_hoe", &ele2_id_hoe, "ele2_id_hoe/F"); - vbtfSele_tree->Branch("ele2_cr_mhitsinner", &ele2_cr_mhitsinner, "ele2_cr_mhitsinner/I"); - vbtfSele_tree->Branch("ele2_cr_dcot", &ele2_cr_dcot, "ele2_cr_dcot/F"); - vbtfSele_tree->Branch("ele2_cr_dist", &ele2_cr_dist, "ele2_cr_dist/F"); - vbtfSele_tree->Branch("ele2_vx", &ele2_vx, "ele2_vx/F"); - vbtfSele_tree->Branch("ele2_vy", &ele2_vy, "ele2_vy/F"); - vbtfSele_tree->Branch("ele2_vz", &ele2_vz, "ele2_vz/F"); - vbtfSele_tree->Branch("ele2_gsfCharge", &ele2_gsfCharge, "ele2_gsfCharge/I"); - vbtfSele_tree->Branch("ele2_ctfCharge", &ele2_ctfCharge, "ele2_ctfCharge/I"); - vbtfSele_tree->Branch("ele2_scPixCharge", &ele2_scPixCharge, "ele2_scPixCharge/I"); - vbtfSele_tree->Branch("ele2_eop", &ele2_eop, "ele2_eop/F"); - vbtfSele_tree->Branch("ele2_tip_bs", &ele2_tip_bs, "ele2_tip_bs/F"); - vbtfSele_tree->Branch("ele2_tip_pv", &ele2_tip_pv, "ele2_tip_pv/F"); - // - vbtfSele_tree->Branch("pv_x1", &pv_x1, "pv_x1/F"); - vbtfSele_tree->Branch("pv_y1", &pv_y1, "pv_y1/F"); - vbtfSele_tree->Branch("pv_z1", &pv_z1, "pv_z1/F"); - // - vbtfSele_tree->Branch("pv_x2", &pv_x2, "pv_x2/F"); - vbtfSele_tree->Branch("pv_y2", &pv_y2, "pv_y2/F"); - vbtfSele_tree->Branch("pv_z2", &pv_z2, "pv_z2/F"); - // - vbtfSele_tree->Branch("event_caloMET", &event_caloMET, "event_caloMET/F"); - vbtfSele_tree->Branch("event_pfMET", &event_pfMET, "event_pfMET/F"); - vbtfSele_tree->Branch("event_tcMET", &event_tcMET, "event_tcMET/F"); - vbtfSele_tree->Branch("event_caloMET_phi", &event_caloMET_phi, "event_caloMET_phi/F"); - vbtfSele_tree->Branch("event_pfMET_phi", &event_pfMET_phi, "event_pfMET_phi/F"); - vbtfSele_tree->Branch("event_tcMET_phi", &event_tcMET_phi, "event_tcMET_phi/F"); - - vbtfSele_tree->Branch("event_Mee", &event_Mee, "event_Mee/F"); - - // - // the extra jet variables: - if (includeJetInformationInNtuples_) { - vbtfSele_tree->Branch("calojet_et", calojet_et, "calojet_et[5]/F"); - vbtfSele_tree->Branch("calojet_eta", calojet_eta, "calojet_eta[5]/F"); - vbtfSele_tree->Branch("calojet_phi", calojet_phi, "calojet_phi[5]/F"); - vbtfSele_tree->Branch("pfjet_et", pfjet_et, "pfjet_et[5]/F"); - vbtfSele_tree->Branch("pfjet_eta", pfjet_eta, "pfjet_eta[5]/F"); - vbtfSele_tree->Branch("pfjet_phi", pfjet_phi, "pfjet_phi[5]/F"); - } - - vbtfSele_tree->Branch("event_datasetTag", &event_datasetTag, "event_dataSetTag/I"); - - // everything after preselection - ZEE_VBTFpreseleFile_ = new TFile(TString(ZEE_VBTFpreseleFileName_), "RECREATE"); - - vbtfPresele_tree = new TTree("vbtfPresele_tree", "Tree to store the Z Candidates that pass the VBTF preselection"); - - vbtfPresele_tree->Branch("runNumber", &runNumber, "runNumber/I"); - vbtfPresele_tree->Branch("eventNumber", &eventNumber, "eventNumber/L"); - vbtfPresele_tree->Branch("lumiSection", &lumiSection, "lumiSection/I"); - - // for ele 1 - vbtfPresele_tree->Branch("ele1_sc_gsf_et", &ele1_sc_gsf_et, "ele1_sc_gsf_et/F"); - vbtfPresele_tree->Branch("ele1_sc_energy", &ele1_sc_energy, "ele1_sc_energy/F"); - vbtfPresele_tree->Branch("ele1_sc_eta", &ele1_sc_eta, "ele1_sc_eta/F"); - vbtfPresele_tree->Branch("ele1_sc_phi", &ele1_sc_phi, "ele1_sc_phi/F"); - vbtfPresele_tree->Branch("ele1_cand_et", &ele1_cand_et, "ele1_cand_et/F"); - vbtfPresele_tree->Branch("ele1_cand_eta", &ele1_cand_eta, "ele1_cand_eta/F"); - vbtfPresele_tree->Branch("ele1_cand_phi", &ele1_cand_phi, "ele1_cand_phi/F"); - vbtfPresele_tree->Branch("ele1_iso_track", &ele1_iso_track, "ele1_iso_track/F"); - vbtfPresele_tree->Branch("ele1_iso_ecal", &ele1_iso_ecal, "ele1_iso_ecal/F"); - vbtfPresele_tree->Branch("ele1_iso_hcal", &ele1_iso_hcal, "ele1_iso_hcal/F"); - vbtfPresele_tree->Branch("ele1_id_sihih", &ele1_id_sihih, "ele1_id_sihih/F"); - vbtfPresele_tree->Branch("ele1_id_deta", &ele1_id_deta, "ele1_id_deta/F"); - vbtfPresele_tree->Branch("ele1_id_dphi", &ele1_id_dphi, "ele1_id_dphi/F"); - vbtfPresele_tree->Branch("ele1_id_hoe", &ele1_id_hoe, "ele1_id_hoe/F"); - vbtfPresele_tree->Branch("ele1_cr_mhitsinner", &ele1_cr_mhitsinner, "ele1_cr_mhitsinner/I"); - vbtfPresele_tree->Branch("ele1_cr_dcot", &ele1_cr_dcot, "ele1_cr_dcot/F"); - vbtfPresele_tree->Branch("ele1_cr_dist", &ele1_cr_dist, "ele1_cr_dist/F"); - vbtfPresele_tree->Branch("ele1_vx", &ele1_vx, "ele1_vx/F"); - vbtfPresele_tree->Branch("ele1_vy", &ele1_vy, "ele1_vy/F"); - vbtfPresele_tree->Branch("ele1_vz", &ele1_vz, "ele1_vz/F"); - vbtfPresele_tree->Branch("ele1_gsfCharge", &ele1_gsfCharge, "ele1_gsfCharge/I"); - vbtfPresele_tree->Branch("ele1_ctfCharge", &ele1_ctfCharge, "ele1_ctfCharge/I"); - vbtfPresele_tree->Branch("ele1_scPixCharge", &ele1_scPixCharge, "ele1_scPixCharge/I"); - vbtfPresele_tree->Branch("ele1_eop", &ele1_eop, "ele1_eop/F"); - vbtfPresele_tree->Branch("ele1_tip_bs", &ele1_tip_bs, "ele1_tip_bs/F"); - vbtfPresele_tree->Branch("ele1_tip_pv", &ele1_tip_pv, "ele1_tip_pv/F"); - - // for ele 2 - vbtfPresele_tree->Branch("ele2_sc_gsf_et", &ele2_sc_gsf_et, "ele2_sc_gsf_et/F"); - vbtfPresele_tree->Branch("ele2_sc_energy", &ele2_sc_energy, "ele2_sc_energy/F"); - vbtfPresele_tree->Branch("ele2_sc_eta", &ele2_sc_eta, "ele2_sc_eta/F"); - vbtfPresele_tree->Branch("ele2_sc_phi", &ele2_sc_phi, "ele2_sc_phi/F"); - vbtfPresele_tree->Branch("ele2_cand_et", &ele2_cand_et, "ele2_cand_et/F"); - vbtfPresele_tree->Branch("ele2_cand_eta", &ele2_cand_eta, "ele2_cand_eta/F"); - vbtfPresele_tree->Branch("ele2_cand_phi", &ele2_cand_phi, "ele2_cand_phi/F"); - vbtfPresele_tree->Branch("ele2_iso_track", &ele2_iso_track, "ele2_iso_track/F"); - vbtfPresele_tree->Branch("ele2_iso_ecal", &ele2_iso_ecal, "ele2_iso_ecal/F"); - vbtfPresele_tree->Branch("ele2_iso_hcal", &ele2_iso_hcal, "ele2_iso_hcal/F"); - vbtfPresele_tree->Branch("ele2_id_sihih", &ele2_id_sihih, "ele2_id_sihih/F"); - vbtfPresele_tree->Branch("ele2_id_deta", &ele2_id_deta, "ele2_id_deta/F"); - vbtfPresele_tree->Branch("ele2_id_dphi", &ele2_id_dphi, "ele2_id_dphi/F"); - vbtfPresele_tree->Branch("ele2_id_hoe", &ele2_id_hoe, "ele2_id_hoe/F"); - vbtfPresele_tree->Branch("ele2_cr_mhitsinner", &ele2_cr_mhitsinner, "ele2_cr_mhitsinner/I"); - vbtfPresele_tree->Branch("ele2_cr_dcot", &ele2_cr_dcot, "ele2_cr_dcot/F"); - vbtfPresele_tree->Branch("ele2_cr_dist", &ele2_cr_dist, "ele2_cr_dist/F"); - vbtfPresele_tree->Branch("ele2_vx", &ele2_vx, "ele2_vx/F"); - vbtfPresele_tree->Branch("ele2_vy", &ele2_vy, "ele2_vy/F"); - vbtfPresele_tree->Branch("ele2_vz", &ele2_vz, "ele2_vz/F"); - vbtfPresele_tree->Branch("ele2_gsfCharge", &ele2_gsfCharge, "ele2_gsfCharge/I"); - vbtfPresele_tree->Branch("ele2_ctfCharge", &ele2_ctfCharge, "ele2_ctfCharge/I"); - vbtfPresele_tree->Branch("ele2_scPixCharge", &ele2_scPixCharge, "ele2_scPixCharge/I"); - vbtfPresele_tree->Branch("ele2_eop", &ele2_eop, "ele2_eop/F"); - vbtfPresele_tree->Branch("ele2_tip_bs", &ele2_tip_bs, "ele2_tip_bs/F"); - vbtfPresele_tree->Branch("ele2_tip_pv", &ele2_tip_pv, "ele2_tip_pv/F"); - - vbtfPresele_tree->Branch("pv_x1", &pv_x1, "pv_x1/F"); - vbtfPresele_tree->Branch("pv_y1", &pv_y1, "pv_y1/F"); - vbtfPresele_tree->Branch("pv_z1", &pv_z1, "pv_z1/F"); - - vbtfPresele_tree->Branch("pv_x2", &pv_x2, "pv_x2/F"); - vbtfPresele_tree->Branch("pv_y2", &pv_y2, "pv_y2/F"); - vbtfPresele_tree->Branch("pv_z2", &pv_z2, "pv_z2/F"); - - vbtfPresele_tree->Branch("event_caloMET", &event_caloMET, "event_caloMET/F"); - vbtfPresele_tree->Branch("event_pfMET", &event_pfMET, "event_pfMET/F"); - vbtfPresele_tree->Branch("event_tcMET", &event_tcMET, "event_tcMET/F"); - vbtfPresele_tree->Branch("event_caloMET_phi", &event_caloMET_phi, "event_caloMET_phi/F"); - vbtfPresele_tree->Branch("event_pfMET_phi", &event_pfMET_phi, "event_pfMET_phi/F"); - vbtfPresele_tree->Branch("event_tcMET_phi", &event_tcMET_phi, "event_tcMET_phi/F"); - - vbtfPresele_tree->Branch("event_Mee", &event_Mee, "event_Mee/F"); - - // - // the extra jet variables: - if (includeJetInformationInNtuples_) { - vbtfPresele_tree->Branch("calojet_et", calojet_et, "calojet_et[5]/F"); - vbtfPresele_tree->Branch("calojet_eta", calojet_eta, "calojet_eta[5]/F"); - vbtfPresele_tree->Branch("calojet_phi", calojet_phi, "calojet_phi[5]/F"); - vbtfPresele_tree->Branch("pfjet_et", pfjet_et, "pfjet_et[5]/F"); - vbtfPresele_tree->Branch("pfjet_eta", pfjet_eta, "pfjet_eta[5]/F"); - vbtfPresele_tree->Branch("pfjet_phi", pfjet_phi, "pfjet_phi[5]/F"); - } - - vbtfPresele_tree->Branch("event_datasetTag", &event_datasetTag, "event_dataSetTag/I"); - - // _________________________________________________________________________ - // -} - -// ------------ method called once each job just after ending the event loop - -void ZeePlots::endJob() { - TFile *newfile = new TFile(TString(outputFile_), "RECREATE"); - // - // for consistency all the plots are in the root file - // even though they may be empty (in the case when - // usePrecalcID_ == true inverted and N-1 are empty) - - h_mee->Write(); - h_mee_EBEB->Write(); - h_mee_EBEE->Write(); - h_mee_EEEE->Write(); - h_Zcand_PT->Write(); - h_Zcand_Y->Write(); - - h_e_PT->Write(); - h_e_ETA->Write(); - h_e_PHI->Write(); - - h_EB_trkiso->Write(); - h_EB_ecaliso->Write(); - h_EB_hcaliso->Write(); - h_EB_sIetaIeta->Write(); - h_EB_dphi->Write(); - h_EB_deta->Write(); - h_EB_HoE->Write(); - - h_EE_trkiso->Write(); - h_EE_ecaliso->Write(); - h_EE_hcaliso->Write(); - h_EE_sIetaIeta->Write(); - h_EE_dphi->Write(); - h_EE_deta->Write(); - h_EE_HoE->Write(); - - // - newfile->Close(); - - // write the VBTF trees - // - ZEE_VBTFpreseleFile_->Write(); - ZEE_VBTFpreseleFile_->Close(); - - ZEE_VBTFselectionFile_->Write(); - ZEE_VBTFselectionFile_->Close(); -} - -//define this as a plug-in -DEFINE_FWK_MODULE(ZeePlots); diff --git a/ElectroWeakAnalysis/ZEE/src/aod2patFilterZee.cc b/ElectroWeakAnalysis/ZEE/src/aod2patFilterZee.cc deleted file mode 100644 index 92d8221222fd5..0000000000000 --- a/ElectroWeakAnalysis/ZEE/src/aod2patFilterZee.cc +++ /dev/null @@ -1,166 +0,0 @@ -#ifndef aod2patFilterZee_H -#define aod2patFilterZee_H - -/****************************************************************************** - * - * Implementation Notes: - * - * this is a filter that creates pat::Electrons without the need of - * running the PAT sequence - * - * it is meant to be an interface of Wenu and Zee CandidateFilters - * for the October 2009 exercise - * it does make sense to implement the trigger requirement here - * but it will not be implemented in order to keep compatibolity with the - * old code - * - * - * contact: - * Nikolaos.Rompotis@Cern.ch - * - * Nikolaos Rompotis - * Imperial College London - * - * 21 Sept 2009 - * - *****************************************************************************/ - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" -// -#include -#include -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/PatCandidates/interface/Electron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/METReco/interface/METCollection.h" -#include "DataFormats/METReco/interface/CaloMETCollection.h" -// -#include "TString.h" -#include "TMath.h" -#include "DataFormats/PatCandidates/interface/MET.h" - -class aod2patFilterZee : public edm::EDFilter { -public: - explicit aod2patFilterZee(const edm::ParameterSet&); - ~aod2patFilterZee() override; - -private: - void beginJob() override; - bool filter(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - //bool isInFiducial(double eta); - - // ----------member data --------------------------- - //double ETCut_; - //double METCut_; - //double ETCut2ndEle_; - //edm::InputTag triggerCollectionTag_; - //edm::InputTag triggerEventTag_; - //std::string hltpath_; - //edm::InputTag hltpathFilter_; - edm::InputTag electronCollectionTag_; - edm::EDGetTokenT electronCollectionToken_; - edm::InputTag metCollectionTag_; - edm::EDGetTokenT metCollectionToken_; - - //double BarrelMaxEta_; - //double EndCapMaxEta_; - //double EndCapMinEta_; - //bool electronMatched2HLT_; - //double electronMatched2HLT_DR_; - //bool vetoSecondElectronEvents_; -}; -#endif - -aod2patFilterZee::aod2patFilterZee(const edm::ParameterSet& iConfig) { - electronCollectionTag_ = iConfig.getUntrackedParameter("electronCollectionTag"); - electronCollectionToken_ = consumes(electronCollectionTag_); - metCollectionTag_ = iConfig.getUntrackedParameter("metCollectionTag"); - metCollectionToken_ = consumes(metCollectionTag_); - - produces("patElectrons").setBranchAlias("patElectrons"); - - produces("patCaloMets").setBranchAlias("patCaloMets"); - //produces< pat::METCollection>("patPfMets").setBranchAlias("patPfMets"); - //produces< pat::METCollection>("patTcMets").setBranchAlias("patTcMets"); - //produces< pat::METCollection>("patT1cMets").setBranchAlias("patT1cMets"); -} - -aod2patFilterZee::~aod2patFilterZee() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) -} - -bool aod2patFilterZee::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - using namespace std; - using namespace pat; - // ************************************************************************* - // ELECTRONS - // ************************************************************************* - edm::Handle gsfElectrons; - iEvent.getByToken(electronCollectionToken_, gsfElectrons); - if (!gsfElectrons.isValid()) { - std::cout << "aod2patFilterZee: Could not get electron collection with label: " << electronCollectionTag_ - << std::endl; - return false; - } - const reco::GsfElectronCollection* pElecs = gsfElectrons.product(); - // calculate your electrons - unique_ptr patElectrons(new pat::ElectronCollection); - for (reco::GsfElectronCollection::const_iterator elec = pElecs->begin(); elec != pElecs->end(); ++elec) { - reco::GsfElectron mygsfelec = *elec; - pat::Electron myElectron(mygsfelec); - // now set the isolations from the Gsf electron - myElectron.setTrackIso(elec->dr03TkSumPt()); - myElectron.setEcalIso(elec->dr04EcalRecHitSumEt()); - myElectron.setHcalIso(elec->dr04HcalTowerSumEt()); - - patElectrons->push_back(myElectron); - } - // ************************************************************************* - // METs - // ************************************************************************* - edm::Handle calomets; - iEvent.getByToken(metCollectionToken_, calomets); - if (!calomets.isValid()) { - std::cout << "aod2patFilterZee: Could not get met collection with label: " << metCollectionTag_ << std::endl; - return false; - } - const reco::CaloMETCollection* mycalomets = calomets.product(); - unique_ptr patCaloMets(new pat::METCollection); - for (reco::CaloMETCollection::const_iterator met = mycalomets->begin(); met != mycalomets->end(); ++met) { - pat::MET mymet(*met); - patCaloMets->push_back(mymet); - } - - // - // put everything in the event - // - iEvent.put(std::move(patElectrons), "patElectrons"); - iEvent.put(std::move(patCaloMets), "patCaloMets"); - // - - return true; -} - -// ------------ method called once each job just before starting event loop - -void aod2patFilterZee::beginJob() {} - -// ------------ method called once each job just after ending the event loop - -void aod2patFilterZee::endJob() {} - -//define this as a plug-in -DEFINE_FWK_MODULE(aod2patFilterZee); diff --git a/ElectroWeakAnalysis/ZEE/test/PerformAnalysis.cpp b/ElectroWeakAnalysis/ZEE/test/PerformAnalysis.cpp deleted file mode 100644 index 920640c1e9b3c..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/PerformAnalysis.cpp +++ /dev/null @@ -1,1769 +0,0 @@ -#include "TROOT.h" -#include "TFile.h" -#include "TTree.h" -#include "TCanvas.h" -#include "TLegend.h" -#include "TH1.h" -#include "TF1.h" -#include "TRandom3.h" -#include "TString.h" -#include -#include -#include - -using namespace std; - -void PerformAnalysis(TString process, double eventweight, TString datapath)//, ofstream& results) //int main() -{ - cout << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%\%" << endl; - cout << "\% " << "Perform Analysis" << endl; - cout << "\% " << process << endl; - cout << "\% " << "Event Weight = " << eventweight << endl; - cout << "\% " << "Data Path = " << datapath << endl; - cout << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%\%" << endl; - - // Declare electron cut value variables - double cMEt = 30.; - double cPt = 30.; - double cECALiso_EB = 4.2, cECALiso_EE = 3.4; - double cHCALiso_EB = 2.0, cHCALiso_EE = 1.3; - double cTrackiso_EB = 2.2, cTrackiso_EE = 1.1; - double cDeltaEta_EB = 0.0040, cDeltaEta_EE = 0.0066; - double cDeltaPhi_EB = 0.025, cDeltaPhi_EE = 0.020; - double csIhIh_EB = 0.0099, csIhIh_EE = 0.0280; - // Declare neutrino cut value variables - double cHCAL = 6.2; - double cHCALEt = 12; - double cf1x5 = 0.83, cf2x5 = 0.93; - int celecmatch = 0; - double cnusIhIh = 0.027; - - cout << "Cut Values:" << endl; - - cout << "MEt cut " << cMEt << endl; - - cout << "Electron selection cuts:" << endl; - cout << "Pt cut " << cPt << endl; - cout << "ECAL Isolation cut (EB) " << cECALiso_EB << endl; - cout << "ECAL Isolation cut (EE) " << cECALiso_EE << endl; - cout << "HCAL Isolation cut (EB) " << cHCALiso_EB << endl; - cout << "HCAL Isolation cut (EE) " << cHCALiso_EE << endl; - cout << "Track Isolation cut (EB) " << cTrackiso_EB << endl; - cout << "Track Isolation cut (EE) " << cTrackiso_EE << endl; - cout << "Delta Eta cut (EB) " << cDeltaEta_EB << endl; - cout << "Delta Eta cut (EE) " << cDeltaEta_EE << endl; - cout << "Delta Phi cut (EB) " << cDeltaPhi_EB << endl; - cout << "Delta Phi cut (EE) " << cDeltaPhi_EE << endl; - cout << "Sigma iEta iEta cut (EB) " << csIhIh_EB << endl; - cout << "Sigma iEta iEta cut (EE) " << csIhIh_EE << endl; - - cout << "Probe selection cuts:" << endl; - cout << "HCAL Energy cut " << cHCAL << endl; - cout << "HCAL Transverse Energy cut " << cHCALEt << endl; - cout << "Fraction of energy in 1x5 cut " << cf1x5 << endl; - cout << "Fraction of energy in 2x5 cut " << cf2x5 << endl; - cout << "Require electron match " << celecmatch << endl; - cout << "Sigma iEta iEta cut " << cnusIhIh << endl; - - cout << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%\%" << endl; - // Import probe selection efficiency weights - double nueff[345]; - ifstream weightsin; - weightsin.open("EtaWeights.txt", ifstream::in); - - for(int eta=0; eta < 345; ++eta) - { - double weight; - weightsin >> weight; - //cout << eta << "\t" << weight << endl; - nueff[eta] = weight; - } - weightsin.close(); - cout << "Imported probe selection efficiencies" << endl; - - TFile* outfile = TFile::Open("ZeePlots.root", "recreate"); - - TH1F* h_McW_m = new TH1F("McW_m","MC Boson Mass;m;Arbitrary Units", 100, 40., 130.); - TH1F* h_McW_pt = new TH1F("McW_pt","MC Boson p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_McW_y = new TH1F("McW_y","MC Boson Rapidity;y;Arbitrary Units", 100, -5., 5.); - - TH1F* h_McZ_m = new TH1F("McZ_m","MC Boson Mass;m (GeV);Arbitrary Units", 100, 40., 130.); - TH1F* h_McZ_pt = new TH1F("McZ_pt","MC Boson p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_McZ_y = new TH1F("McZ_y","MC Boson Rapidity;y;Arbitrary Units", 100, -5., 5.); - TH1F* h_McZ_rescM = new TH1F("McZ_rescM","Rescaled MC Boson Mass;m (GeV);Arbitrary Units", 100, 40., 130.); - TH1F* h_McZ_rescPt = new TH1F("McZ_rescPt","Rescaled MC Boson p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_McZ_rescY = new TH1F("McZ_rescY","Rescaled MC Boson Rapidity;y;Arbitrary Units", 100, -5., 5.); - - TH1F* h_McElec_pt = new TH1F("McElec_pt","MC Electron p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_McElec_eta = new TH1F("McElec_eta","MC Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - - TH1F* h_McTag_pt = new TH1F("McTag_pt","MC Electron p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_McTag_eta = new TH1F("McTag_eta","MC Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McTag_rescPt = new TH1F("McTag_rescPt","Rescaled MC Electron p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_McTag_rescEta = new TH1F("McTag_rescEta","Rescaled MC Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - - TH1F* h_McNu_pt = new TH1F("McNu_pt","MC Neutrino p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_McNu_eta = new TH1F("McNu_eta","MC Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - - TH1F* h_McProbe_pt = new TH1F("McProbe_pt","MC Neutrino p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_McProbe_eta = new TH1F("McProbe_eta","MC Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_McProbe_rescPt = new TH1F("McProbe_rescPt","Rescaled MC Neutrino p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_McProbe_rescEta = new TH1F("McProbe_rescEta","Rescaled MC Neutrino #eta;#eta;Arbitrary Units", 100, -3., 3.); - - TH1F* h_McTagProbe_dPhi = new TH1F("McElecNu_dPhi", ";#Delta#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McTagProbe_dEta = new TH1F("McElecNu_dEta", ";#Delta#eta;Arbitrary Units", 100, 0., 5.); - TH1F* h_McTagProbe_dR = new TH1F("McElecNu_dR", ";#DeltaR;Arbitrary Units", 100, 0., 3.); - TH1F* h_McElecNu_dPhi = new TH1F("McElecNu_dPhi", ";#Delta#phi;Arbitrary Units", 100, 0., 3.1416); - TH1F* h_McElecNu_dEta = new TH1F("McElecNu_dEta", ";#Delta#eta;Arbitrary Units", 100, 0., 5.); - TH1F* h_McElecNu_dR = new TH1F("McElecNu_dR", ";#DeltaR;Arbitrary Units", 100, 0., 3.); - - TH1F* h_W_pt = new TH1F("W_pt","Boson p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_W_y = new TH1F("W_y","Boson Rapidity;y;Arbitrary Units", 100, -5., 5.); - TH1F* h_W_rescPt = new TH1F("W_rescPt","Rescaled Boson p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_W_rescY = new TH1F("W_rescY","Rescaled Boson Rapidity;y;Arbitrary Units", 100, -5., 5.); - - TH1F* h_Z_pt = new TH1F("Z_pt","Boson p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_Z_y = new TH1F("Z_y","Boson Rapidity;y;Arbitrary Units", 100, -5., 5.); - TH1F* h_Z_rescPt = new TH1F("Z_rescPt","Rescaled Boson p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_Z_rescY = new TH1F("Z_rescY","Rescaled Boson Rapidity;y;Arbitrary Units", 100, -5., 5.); - - TH1F* h_tag_q = new TH1F("tag_q","Electron Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_tag_pt = new TH1F("tag_pt","Electron p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_tag_rescPt = new TH1F("tag_rescPt","Rescaled Electron p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_tag_eta = new TH1F("tag_eta","Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_tag_rescEta = new TH1F("tag_rescEta","Rescaled Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_tag_ecaliso = new TH1F("tag_ecaliso","Electron ECAL isolation;ECAL isolation;Arbitrary Units", 100, 0., 10.); - TH1F* h_tag_hcaliso = new TH1F("tag_hcaliso","Electron HCAL isolation;HCAL isolation;Arbitrary Units", 100, 0., 5.); - TH1F* h_tag_trackiso = new TH1F("tag_trackiso","Electron Track isolation;Track isolation;Arbitrary Units", 100, 0., 5.); - TH1F* h_tag_dPhi = new TH1F("tag_dPhi","Electron #Delta #phi_{in};#Delta #phi_{in};Arbitrary Units", 100, 0., 0.05); - TH1F* h_tag_dEta = new TH1F("tag_dEta","Electron #Delta #eta_{in};#Delta #eta_{in};Arbitrary Units", 100, 0., 0.01); - TH1F* h_tag_sIhIh = new TH1F("tag_sIhIh","Electron #sigma_{i#eta i#eta};#sigma_{i#eta i#eta};Arbitrary Units", 100, 0., 0.02); - - TH1F* h_elec_q = new TH1F("elec_q","Electron Charge;q;Arbitrary Units", 3, -1.5, 1.5); - TH1F* h_elec_pt = new TH1F("elec_pt","Electron p_{T};p_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_elec_eta = new TH1F("elec_eta","Electron #eta;#eta;Arbitrary Units", 100, -3., 3.); - TH1F* h_elec_ecaliso = new TH1F("elec_ecaliso","Electron ECAL isolation;ECAL isolation;Arbitrary Units", 100, 0., 10.); - TH1F* h_elec_hcaliso = new TH1F("elec_hcaliso","Electron HCAL isolation;HCAL isolation;Arbitrary Units", 100, 0., 5.); - TH1F* h_elec_trackiso = new TH1F("elec_trackiso","Electron Track isolation;Track isolation;Arbitrary Units", 100, 0., 5.); - TH1F* h_elec_dPhi = new TH1F("elec_dPhi","Electron #Delta #phi_{in};#Delta #phi_{in};Arbitrary Units", 100, 0., 0.05); - TH1F* h_elec_dEta = new TH1F("elec_dEta","Electron #Delta #eta_{in};#Delta #eta_{in};Arbitrary Units", 100, 0., 0.01); - TH1F* h_elec_sIhIh = new TH1F("elec_sIhIh","Electron #sigma_{i#eta i#eta};#sigma_{i#eta i#eta};Arbitrary Units", 100, 0., 0.02); - - TH1F* h_mcWGenMEtin_pass_EB = new TH1F("mcWGenMEtin_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWGenMEtin_pass_EE = new TH1F("mcWGenMEtin_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWGenMEtin_fail_EB = new TH1F("mcWGenMEtin_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWGenMEtin_fail_EE = new TH1F("mcWGenMEtin_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWGenMEtout_pass_EB = new TH1F("mcWGenMEtout_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWGenMEtout_pass_EE = new TH1F("mcWGenMEtout_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWGenMEtout_fail_EB = new TH1F("mcWGenMEtout_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWGenMEtout_fail_EE = new TH1F("mcWGenMEtout_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_mcWCaloMEtin_pass_EB = new TH1F("mcWCaloMEtin_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWCaloMEtin_pass_EE = new TH1F("mcWCaloMEtin_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWCaloMEtin_fail_EB = new TH1F("mcWCaloMEtin_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWCaloMEtin_fail_EE = new TH1F("mcWCaloMEtin_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWCaloMEtout_pass_EB = new TH1F("mcWCaloMEtout_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWCaloMEtout_pass_EE = new TH1F("mcWCaloMEtout_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWCaloMEtout_fail_EB = new TH1F("mcWCaloMEtout_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWCaloMEtout_fail_EE = new TH1F("mcWCaloMEtout_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_mcWTcMEtin_pass_EB = new TH1F("mcWTcMEtin_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWTcMEtin_pass_EE = new TH1F("mcWTcMEtin_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWTcMEtin_fail_EB = new TH1F("mcWTcMEtin_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWTcMEtin_fail_EE = new TH1F("mcWTcMEtin_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWTcMEtout_pass_EB = new TH1F("mcWTcMEtout_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWTcMEtout_pass_EE = new TH1F("mcWTcMEtout_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWTcMEtout_fail_EB = new TH1F("mcWTcMEtout_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWTcMEtout_fail_EE = new TH1F("mcWTcMEtout_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_mcWPfMEtin_pass_EB = new TH1F("mcWPfMEtin_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWPfMEtin_pass_EE = new TH1F("mcWPfMEtin_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWPfMEtin_fail_EB = new TH1F("mcWPfMEtin_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWPfMEtin_fail_EE = new TH1F("mcWPfMEtin_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWPfMEtout_pass_EB = new TH1F("mcWPfMEtout_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWPfMEtout_pass_EE = new TH1F("mcWPfMEtout_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWPfMEtout_fail_EB = new TH1F("mcWPfMEtout_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_mcWPfMEtout_fail_EE = new TH1F("mcWPfMEtout_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_WGenMEt_pass_EB = new TH1F("WGenMEt_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WGenMEt_pass_EE = new TH1F("WGenMEt_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WGenMEt_fail_EB = new TH1F("WGenMEt_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WGenMEt_fail_EE = new TH1F("WGenMEt_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WGenMEt_pass = new TH1F("WGenMEt_pass","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WGenMEt_fail = new TH1F("WGenMEt_fail","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_WCaloMEt_pass_EB = new TH1F("WCaloMEt_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WCaloMEt_pass_EE = new TH1F("WCaloMEt_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WCaloMEt_fail_EB = new TH1F("WCaloMEt_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WCaloMEt_fail_EE = new TH1F("WCaloMEt_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WCaloMEt_pass = new TH1F("WCaloMEt_pass","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WCaloMEt_fail = new TH1F("WCaloMEt_fail","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_WTcMEt_pass_EB = new TH1F("WTcMEt_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WTcMEt_pass_EE = new TH1F("WTcMEt_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WTcMEt_fail_EB = new TH1F("WTcMEt_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WTcMEt_fail_EE = new TH1F("WTcMEt_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WTcMEt_pass = new TH1F("WTcMEt_pass","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WTcMEt_fail = new TH1F("WTcMEt_fail","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_WPfMEt_pass_EB = new TH1F("WPfMEt_pass_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WPfMEt_pass_EE = new TH1F("WPfMEt_pass_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WPfMEt_fail_EB = new TH1F("WPfMEt_fail_EB","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WPfMEt_fail_EE = new TH1F("WPfMEt_fail_EE","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WPfMEt_pass = new TH1F("WPfMEt_pass","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_WPfMEt_fail = new TH1F("WPfMEt_fail","W#rightarrow e#nu MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_ErsatzMEt_pass_EB = new TH1F("ErsatzMEt_pass_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_pass_EE = new TH1F("ErsatzMEt_pass_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fail_EB = new TH1F("ErsatzMEt_fail_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fail_EE = new TH1F("ErsatzMEt_fail_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_pass = new TH1F("ErsatzMEt_pass","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzMEt_fail = new TH1F("ErsatzMEt_fail","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_ErsatzGenMEt_pass_EB = new TH1F("ErsatzGenMEt_pass_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzGenMEt_pass_EE = new TH1F("ErsatzGenMEt_pass_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzGenMEt_fail_EB = new TH1F("ErsatzGenMEt_fail_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzGenMEt_fail_EE = new TH1F("ErsatzGenMEt_fail_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzGenMEt_pass = new TH1F("ErsatzGenMEt_pass","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzGenMEt_fail = new TH1F("ErsatzGenMEt_fail","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_ErsatzCaloMEt_pass_EB = new TH1F("ErsatzCaloMEt_pass_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzCaloMEt_pass_EE = new TH1F("ErsatzCaloMEt_pass_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzCaloMEt_fail_EB = new TH1F("ErsatzCaloMEt_fail_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzCaloMEt_fail_EE = new TH1F("ErsatzCaloMEt_fail_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzCaloMEt_pass = new TH1F("ErsatzCaloMEt_pass","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzCaloMEt_fail = new TH1F("ErsatzCaloMEt_fail","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_ErsatzTcMEt_pass_EB = new TH1F("ErsatzTcMEt_pass_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzTcMEt_pass_EE = new TH1F("ErsatzTcMEt_pass_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzTcMEt_fail_EB = new TH1F("ErsatzTcMEt_fail_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzTcMEt_fail_EE = new TH1F("ErsatzTcMEt_fail_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzTcMEt_pass = new TH1F("ErsatzTcMEt_pass","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzTcMEt_fail = new TH1F("ErsatzTcMEt_fail","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_ErsatzPfMEt_pass_EB = new TH1F("ErsatzPfMEt_pass_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzPfMEt_pass_EE = new TH1F("ErsatzPfMEt_pass_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzPfMEt_fail_EB = new TH1F("ErsatzPfMEt_fail_EB","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzPfMEt_fail_EE = new TH1F("ErsatzPfMEt_fail_EE","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzPfMEt_pass = new TH1F("ErsatzPfMEt_pass","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - TH1F* h_ErsatzPfMEt_fail = new TH1F("ErsatzPfMEt_fail","Ersatz MET;#slash{E}_{T} (GeV);Arbitrary Units", 100, 0., 100.); - - TH1F* h_acceptance_correction_genMEt_pass_EB = new TH1F("acceptance_correction_genMEt_pass_EB", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_genMEt_pass_EE = new TH1F("acceptance_correction_genMEt_pass_EE", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_genMEt_fail_EB = new TH1F("acceptance_correction_genMEt_fail_EB", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_genMEt_fail_EE = new TH1F("acceptance_correction_genMEt_fail_EE", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - - TH1F* h_acceptance_correction_caloMEt_pass_EB = new TH1F("acceptance_correction_caloMEt_pass_EB", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_caloMEt_pass_EE = new TH1F("acceptance_correction_caloMEt_pass_EE", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_caloMEt_fail_EB = new TH1F("acceptance_correction_caloMEt_fail_EB", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_caloMEt_fail_EE = new TH1F("acceptance_correction_caloMEt_fail_EE", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - - TH1F* h_acceptance_correction_tcMEt_pass_EB = new TH1F("acceptance_correction_tcMEt_pass_EB", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_tcMEt_pass_EE = new TH1F("acceptance_correction_tcMEt_pass_EE", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_tcMEt_fail_EB = new TH1F("acceptance_correction_tcMEt_fail_EB", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_tcMEt_fail_EE = new TH1F("acceptance_correction_tcMEt_fail_EE", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - - TH1F* h_acceptance_correction_pfMEt_pass_EB = new TH1F("acceptance_correction_pfMEt_pass_EB", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_pfMEt_pass_EE = new TH1F("acceptance_correction_pfMEt_pass_EE", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_pfMEt_fail_EB = new TH1F("acceptance_correction_pfMEt_fail_EB", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - TH1F* h_acceptance_correction_pfMEt_fail_EE = new TH1F("acceptance_correction_pfMEt_fail_EE", "Acceptance Correction;#slash{E}_{T} (GeV);Acceptance Correction", 100, 0., 100.); - - TH1F* h_dpt_pf_gsf = new TH1F("h_dpt_pf_gsf", "pf p_{T} - gsf p_{T};#Delta p_{T} (GeV);Arbitrary Units", 100, -10., 10.); - TH1F* h_dpt_pf_gsf_EB = new TH1F("h_dpt_pf_gsf_EB", "pf p_{T} - gsf p_{T};#Delta p_{T} (GeV);Arbitrary Units", 100, -10., 10.); - TH1F* h_dpt_pf_gsf_EE = new TH1F("h_dpt_pf_gsf_EE", "pf p_{T} - gsf p_{T};#Delta p_{T} (GeV);Arbitrary Units", 100, -10., 10.); - TH1F* h_nMatched = new TH1F("h_nMatched", "Particle Flow Matching;nMatched;Arbitrary Units", 4, 0., 4.); - TH1F* h_nMatched_EB = new TH1F("h_nMatched_EB", "Particle Flow Matching;nMatched;Arbitrary Units", 4, 0., 4.); - TH1F* h_nMatched_EE = new TH1F("h_nMatched_EE", "Particle Flow Matching;nMatched;Arbitrary Units", 4, 0., 4.); - - cout << "Declared Histograms" << endl; - - TRandom3 r; - - TString WFileName = datapath+"WenuTrue.root"; - TFile *fileW = TFile::Open(WFileName); - cout << "Opened W Monte Carlo file" << endl; - TTree *t = (TTree*) fileW->Get("analyse/AnalysisData"); - cout << "Got W TTree" << endl; - - long nEntries = t->GetEntriesFast(); - cout << "Total number of W events = " << nEntries << endl; - - int nSelElecs; - - int elec_q[4]; - double elec_pt[4], elec_eta[4], elec_phi[4]; - double elec_trackiso[4], elec_ecaliso[4], elec_hcaliso[4]; - double elec_sIhIh[4], elec_dPhi[4], elec_dEta[4]; - double elec_eop[4], elec_hoe[4], elec_pin[4], elec_pout[4]; - double elec_e1x5[4], elec_e2x5[4], elec_e5x5[4]; - - double McElec_pt, McElec_eta, McElec_phi; - double McNu_pt, McNu_eta, McNu_phi; - double McElecNu_dPhi, McElecNu_dEta, McElecNu_dR; - double McW_m, McW_pt, McW_y, McW_phi; - double GenMEt_W, CaloMEt_W, TcMEt_W, PfMEt_W;//, CaloMEt25, CaloMEt30; - //double CaloMt[4];// CaloMt25[4], CaloMt30[4]; - - TBranch* bMcW_m = t->GetBranch("Boson_m"); - bMcW_m->SetAddress(&McW_m); - TBranch* bMcW_pt = t->GetBranch("Boson_pt"); - bMcW_pt->SetAddress(&McW_pt); - TBranch* bMcW_y = t->GetBranch("Boson_y"); - bMcW_y->SetAddress(&McW_y); - TBranch* bnSelElecs = t->GetBranch("nSelElecs"); - bnSelElecs->SetAddress(&nSelElecs); - //TBranch* belec_q = t->GetBranch("elec_q"); - //belec_q->SetAddress(&elec_q); - TBranch* belec_pt = t->GetBranch("elec_pt"); - belec_pt->SetAddress(&elec_pt); - TBranch* belec_eta = t->GetBranch("elec_eta"); - belec_eta->SetAddress(&elec_eta); - TBranch* belec_phi = t->GetBranch("elec_phi"); - belec_phi->SetAddress(&elec_phi); - TBranch* belec_trackiso = t->GetBranch("elec_trckIso"); - belec_trackiso->SetAddress(&elec_trackiso); - TBranch* belec_ecaliso = t->GetBranch("elec_ecalIso"); - belec_ecaliso->SetAddress(&elec_ecaliso); - TBranch* belec_hcaliso = t->GetBranch("elec_hcalIso"); - belec_hcaliso->SetAddress(&elec_hcaliso); - TBranch* bElec_sIhIh = t->GetBranch("elec_sIhIh"); - bElec_sIhIh->SetAddress(&elec_sIhIh); - TBranch* bElec_dPhi = t->GetBranch("elec_dPhiIn"); - bElec_dPhi->SetAddress(&elec_dPhi); - TBranch* bElec_dEta = t->GetBranch("elec_dEtaIn"); - bElec_dEta->SetAddress(&elec_dEta); - cout << "moooooooooooooo" << endl; - TBranch* bMcElec_pt = t->GetBranch("RndmMcElec_pt"); - bMcElec_pt->SetAddress(&McElec_pt); - TBranch* bMcElec_eta = t->GetBranch("RndmMcElec_eta"); - bMcElec_eta->SetAddress(&McElec_eta); - TBranch* bMcElec_phi = t->GetBranch("RndmMcElec_phi"); - bMcElec_phi->SetAddress(&McElec_phi); - cout << "moooooooooooooo" << endl; - TBranch* bMcNu_pt = t->GetBranch("McNu_pt"); - bMcNu_pt->SetAddress(&McNu_pt); - TBranch* bMcNu_eta = t->GetBranch("McNu_eta"); - bMcNu_eta->SetAddress(&McNu_eta); - TBranch* bMcNu_phi = t->GetBranch("McNu_phi"); - bMcNu_phi->SetAddress(&McNu_phi); - cout << "moooooooooooooo" << endl; - TBranch* bMcElecNu_dPhi = t->GetBranch("McLeptons_dPhi"); - bMcElecNu_dPhi->SetAddress(&McElecNu_dPhi); - TBranch* bMcElecNu_dEta = t->GetBranch("McLeptons_dEta"); - bMcElecNu_dEta->SetAddress(&McElecNu_dEta); - TBranch* bMcElecNu_dR = t->GetBranch("McLeptons_dR"); - bMcElecNu_dR->SetAddress(&McElecNu_dR); - TBranch* bGen_MEt = t->GetBranch("genMEt"); - bGen_MEt->SetAddress(&GenMEt_W); - TBranch* bCalo_MEt = t->GetBranch("caloMEt"); - bCalo_MEt->SetAddress(&CaloMEt_W); - TBranch* bTc_MEt = t->GetBranch("tcMEt"); - bTc_MEt->SetAddress(&TcMEt_W); - TBranch* bPf_MEt = t->GetBranch("pfMEt"); - bPf_MEt->SetAddress(&PfMEt_W); -// TBranch* bCalo_MEt25 = t->GetBranch("caloMEt25"); -// bCalo_MEt25->SetAddress(&CaloMEt25); -// TBranch* bCalo_MEt30 = t->GetBranch("caloMEt30"); -// bCalo_MEt30->SetAddress(&CaloMEt30); -// TBranch* bCalo_Mt = t->GetBranch("caloMt"); -// bCalo_Mt->SetAddress(&CaloMt); - cout << "Set up branches" << endl; - - //long nentries = t->GetEntries(); - //int index = 0; - int aaa = 0, bbb = 0, ccc = 0, ddd = 0; - for(long i = 0; i < nEntries; ++i) - { - if(i%100000 == 0) cout <<"Analysing event "<< i << endl; - //if (i == ChosenEvents[index]) - //{ - //index++; - //bool iIsChosen = (i == ChosenEvents[index]); - t->GetEntry(i); - h_McElec_pt->Fill(McElec_pt); - h_McElec_eta->Fill(McElec_eta); - h_McNu_pt->Fill(McNu_pt); - h_McNu_eta->Fill(McNu_eta); - h_McElecNu_dPhi->Fill(McElecNu_dPhi); - h_McElecNu_dEta->Fill(McElecNu_dEta); - h_McElecNu_dR->Fill(McElecNu_dR); - h_McW_m->Fill(McW_m); - h_McW_pt->Fill(McW_pt); - h_McW_y->Fill(McW_y); - //h_elec_q->Fill(elec_q[0]); - h_elec_pt->Fill(elec_pt[0]); - h_elec_eta->Fill(elec_eta[0]); - h_elec_ecaliso->Fill(elec_ecaliso[0]); - h_elec_hcaliso->Fill(elec_hcaliso[0]); - h_elec_trackiso->Fill(elec_trackiso[0]); - h_elec_dEta->Fill(elec_dEta[0]); - h_elec_dPhi->Fill(elec_dPhi[0]); - h_elec_sIhIh->Fill(elec_sIhIh[0]); - //h_elec_eop->Fill(elec_eop[0]); - //h_elec_hoe->Fill(elec_hoe[0]); - //h_elec_pin->Fill(elec_pin[0]); - //h_elec_pout->Fill(elec_pout[0]); - //h_elec_e1x5->Fill(elec_e1x5[0]); - //h_elec_e2x5->Fill(elec_e2x5[0]); - //h_elec_e5x5->Fill(elec_e5x5[0]); - if(elec_pt[0] > cPt) - { - bool pass_e_cuts = false; - bool pass_trkiso_cut = false; - bool inBarrel = false; - bool inEndcap = false; - if(fabs(elec_eta[0]) < 1.4442) - { - pass_e_cuts = (elec_sIhIh[0] < csIhIh_EB); - pass_trkiso_cut = (elec_trackiso[0] < cTrackiso_EB); - inBarrel = true; - }else if(fabs(elec_eta[0]) < 2.5) - { - pass_e_cuts = (elec_sIhIh[0] < csIhIh_EE); - pass_trkiso_cut = (elec_trackiso[0] < cTrackiso_EE); - inEndcap = true; - } - if(pass_e_cuts) - { - if(pass_trkiso_cut) - { - h_WGenMEt_pass->Fill(GenMEt_W); - h_WCaloMEt_pass->Fill(CaloMEt_W); - h_WTcMEt_pass->Fill(TcMEt_W); - h_WPfMEt_pass->Fill(PfMEt_W); - if(inBarrel) - { - h_WGenMEt_pass_EB->Fill(GenMEt_W); - h_WCaloMEt_pass_EB->Fill(CaloMEt_W); - h_WTcMEt_pass_EB->Fill(TcMEt_W); - h_WPfMEt_pass_EB->Fill(PfMEt_W); - aaa++; - if(fabs(McNu_eta) < 2.5) - { - h_mcWGenMEtin_pass_EB->Fill(GenMEt_W); - h_mcWCaloMEtin_pass_EB->Fill(CaloMEt_W); - h_mcWTcMEtin_pass_EB->Fill(TcMEt_W); - h_mcWPfMEtin_pass_EB->Fill(PfMEt_W); - }else{ - h_mcWGenMEtout_pass_EB->Fill(GenMEt_W); - h_mcWCaloMEtout_pass_EB->Fill(CaloMEt_W); - h_mcWTcMEtout_pass_EB->Fill(TcMEt_W); - h_mcWPfMEtout_pass_EB->Fill(PfMEt_W); - } - } - if(inEndcap) - { - h_WGenMEt_pass_EE->Fill(GenMEt_W); - h_WCaloMEt_pass_EE->Fill(CaloMEt_W); - h_WTcMEt_pass_EE->Fill(TcMEt_W); - h_WPfMEt_pass_EE->Fill(PfMEt_W); - bbb++; - if(fabs(McNu_eta) < 2.5) - { - h_mcWGenMEtin_pass_EE->Fill(GenMEt_W); - h_mcWCaloMEtin_pass_EE->Fill(CaloMEt_W); - h_mcWTcMEtin_pass_EE->Fill(TcMEt_W); - h_mcWPfMEtin_pass_EE->Fill(PfMEt_W); - }else{ - h_mcWGenMEtout_pass_EE->Fill(GenMEt_W); - h_mcWCaloMEtout_pass_EE->Fill(CaloMEt_W); - h_mcWTcMEtout_pass_EE->Fill(TcMEt_W); - h_mcWPfMEtout_pass_EE->Fill(PfMEt_W); - } - } - }else - { - h_WGenMEt_fail->Fill(GenMEt_W); - h_WCaloMEt_fail->Fill(CaloMEt_W); - h_WTcMEt_fail->Fill(TcMEt_W); - h_WPfMEt_fail->Fill(PfMEt_W); - if(inBarrel) - { - h_WGenMEt_fail_EB->Fill(GenMEt_W); - h_WCaloMEt_fail_EB->Fill(CaloMEt_W); - h_WTcMEt_fail_EB->Fill(TcMEt_W); - h_WPfMEt_fail_EB->Fill(PfMEt_W); - ccc++; - if(fabs(McNu_eta) < 2.5) - { - h_mcWGenMEtin_fail_EB->Fill(GenMEt_W); - h_mcWCaloMEtin_fail_EB->Fill(CaloMEt_W); - h_mcWTcMEtin_fail_EB->Fill(TcMEt_W); - h_mcWPfMEtin_fail_EB->Fill(PfMEt_W); - }else{ - h_mcWGenMEtout_fail_EB->Fill(GenMEt_W); - h_mcWCaloMEtout_fail_EB->Fill(CaloMEt_W); - h_mcWTcMEtout_fail_EB->Fill(TcMEt_W); - h_mcWPfMEtout_fail_EB->Fill(PfMEt_W); - } - } - if(inEndcap) - { - h_WGenMEt_fail_EE->Fill(GenMEt_W); - h_WCaloMEt_fail_EE->Fill(CaloMEt_W); - h_WTcMEt_fail_EE->Fill(TcMEt_W); - h_WPfMEt_fail_EE->Fill(PfMEt_W); - ddd++; - if(fabs(McNu_eta) < 2.5) - { - h_mcWGenMEtin_fail_EE->Fill(GenMEt_W); - h_mcWCaloMEtin_fail_EE->Fill(CaloMEt_W); - h_mcWTcMEtin_fail_EE->Fill(TcMEt_W); - h_mcWPfMEtin_fail_EE->Fill(PfMEt_W); - }else{ - h_mcWGenMEtout_fail_EE->Fill(GenMEt_W); - h_mcWCaloMEtout_fail_EE->Fill(CaloMEt_W); - h_mcWTcMEtout_fail_EE->Fill(TcMEt_W); - h_mcWPfMEtout_fail_EE->Fill(PfMEt_W); - } - } - } - } - } - } - fileW->Close(); - cout << "Closed W Monte Carlo file" << endl; - - cout << "Number of W events passing selection cuts = " << aaa+bbb+ccc+ddd << endl; - cout << "Number Pass EB = " << aaa << endl; - cout << "Number Pass EE = " << bbb << endl; - cout << "Number Fail EB = " << ccc << endl; - cout << "Number Fail EE = " << ddd << endl; - - TString ErsatzFileName = datapath+process+".root"; - TFile *fileZ = TFile::Open(ErsatzFileName); - cout << "Opened Ersatz data file" << endl; - t = (TTree*) fileZ->Get("ErsatzMEt/ErsatzMEt"); - cout << "Got ersatz TTree" << endl; - nEntries = t->GetEntries(); - cout << "Total number of ersatz events = " << nEntries << endl; - - int nTags, nProbes; - int nTagMatched, nProbeMatched; - double GenMEt, CaloMEt, PfMEt, TcMEt; - double GenMEtphi, CaloMEtphi, PfMEtphi, TcMEtphi; - double McZ_m, McZ_pt, McZ_y; - double McZ_rescM, McZ_rescPt, McZ_rescY; - double McTag_pt[4], McTag_eta[4]; - double McTag_rescPt[4], McTag_rescEta[4]; - double McProbe_pt[4], McProbe_eta[4]; - double McProbe_rescPt[4], McProbe_rescEta[4]; - double McTagProbe_dPhi[4], McTagProbe_dEta[4], McTagProbe_dR[4]; - int tag_q[4]; - double tag_pt[4], tag_eta[4], tag_phi[4]; - double tag_rescPt[4], tag_rescEta[4], tag_rescPhi[4]; - double tag_trackiso[4], tag_ecaliso[4], tag_hcaliso[4]; - double tag_sIhIh[4], tag_dPhi[4], tag_dEta[4]; - double tag_eop[4], tag_hoe[4], tag_pin[4], tag_pout[4]; - double tag_e1x5[4], tag_e2x5[4], tag_e5x5[4]; - int probe_q[4]; - double probe_pt[4], probe_eta[4], probe_phi[4]; - double probe_rescPt[4], probe_rescEta[4], probe_rescPhi[4]; - double probe_trackiso[4], probe_ecaliso[4], probe_hcaliso[4]; - double probe_sIhIh[4], probe_dPhi[4], probe_dEta[4]; - double probe_eop[4], probe_hoe[4], probe_pin[4], probe_pout[4]; - double probe_e1x5[4], probe_e2x5[4], probe_e5x5[4]; - double Z_m[4], Z_pt[4], Z_y[4], Z_phi[4]; - double Z_rescM[4], Z_rescPt[4], Z_rescY[4], Z_rescPhi[4]; - int sc_nClus[4]; - double sc_E[4], sc_rawE[4], sc_fEtaCorr[4], sc_fBremCorr[4]; - double ErsatzGenMEt[4], ErsatzCaloMEt[4], ErsatzPfMEt[4], ErsatzTcMEt[4], ErsatzT1MEt[4]; - //double ErsatzGenMEtPhi[4], ErsatzCaloMEtPhi[4], ErsatzPfMEtPhi[4], ErsatzTcMEtPhi[4]; - //double ErsatzGenMt[4], ErsatzCaloMt[4], ErsatzPfMt[4], ErsatzTcMt[4]; - double dpt_pf_gsf[4]; - double mesc[4]; - - TBranch* bnTags = t->GetBranch("nTags"); - bnTags->SetAddress(&nTags); - TBranch* bnProbes = t->GetBranch("nProbes"); - bnProbes->SetAddress(&nProbes); - TBranch* bnTagMatched = t->GetBranch("nTagMatched"); - bnTagMatched->SetAddress(&nTagMatched); - TBranch* bnProbeMatched = t->GetBranch("nProbeMatched"); - bnProbeMatched->SetAddress(&nProbeMatched); - TBranch* bdpt_pf_gsf = t->GetBranch("dpt_pf_gsf"); - bdpt_pf_gsf->SetAddress(&dpt_pf_gsf); - cout << "moooooooooooooo" << endl; - //MET - TBranch* bGenMEt = t->GetBranch("GenMEt"); - bGenMEt->SetAddress(&GenMEt); - TBranch* bCaloMEt = t->GetBranch("CaloMEt"); - bCaloMEt->SetAddress(&CaloMEt); - TBranch* bPfMEt = t->GetBranch("PfMEt"); - bPfMEt->SetAddress(&PfMEt); - TBranch* bTcMEt = t->GetBranch("TcMEt"); - bTcMEt->SetAddress(&TcMEt); - cout << "moooooooooooooo" << endl; - //MET phi - TBranch* bGenMEtphi = t->GetBranch("GenMEtphi"); - bGenMEtphi->SetAddress(&GenMEtphi); - TBranch* bCaloMEtphi = t->GetBranch("CaloMEtphi"); - bCaloMEtphi->SetAddress(&CaloMEtphi); - TBranch* bPfMEtphi = t->GetBranch("PfMEtphi"); - bPfMEtphi->SetAddress(&PfMEtphi); - TBranch* bTcMEtphi = t->GetBranch("TcMEtphi"); - bTcMEtphi->SetAddress(&TcMEtphi); - cout << "moooooooooooooo" << endl; - //Mc particles - TBranch* bMcZ_m = t->GetBranch("McZ_m"); - bMcZ_m->SetAddress(&McZ_m); - TBranch* bMcZ_pt = t->GetBranch("McZ_Pt"); - bMcZ_pt->SetAddress(&McZ_pt); - TBranch* bMcZ_y = t->GetBranch("McZ_y"); - bMcZ_y->SetAddress(&McZ_y); - TBranch* bMcZ_rescM = t->GetBranch("McZ_rescM"); - bMcZ_rescM->SetAddress(&McZ_rescM); - TBranch* bMcZ_rescPt = t->GetBranch("McZ_rescPt"); - bMcZ_rescPt->SetAddress(&McZ_rescPt); - TBranch* bMcZ_rescY = t->GetBranch("McZ_rescY"); - bMcZ_rescY->SetAddress(&McZ_rescY); - cout << "moooooooooooooo" << endl; - TBranch* bMcTag_pt = t->GetBranch("McElec_pt"); - bMcTag_pt->SetAddress(&McTag_pt); - TBranch* bMcTag_eta = t->GetBranch("McElec_eta"); - bMcTag_eta->SetAddress(&McTag_eta); - TBranch* bMcTag_rescPt = t->GetBranch("McElec_rescPt"); - bMcTag_rescPt->SetAddress(&McTag_rescPt); - TBranch* bMcTag_rescEta = t->GetBranch("McElec_rescEta"); - bMcTag_rescEta->SetAddress(&McTag_rescEta); - cout << "moooooooooooooo" << endl; - TBranch* bMcProbe_pt = t->GetBranch("McProbe_pt"); - bMcProbe_pt->SetAddress(&McProbe_pt); - TBranch* bMcProbe_eta = t->GetBranch("McProbe_eta"); - bMcProbe_eta->SetAddress(&McProbe_eta); - TBranch* bMcProbe_rescPt = t->GetBranch("McProbe_rescPt"); - bMcProbe_rescPt->SetAddress(&McProbe_rescPt); - TBranch* bMcProbe_rescEta = t->GetBranch("McProbe_rescEta"); - bMcProbe_rescEta->SetAddress(&McProbe_rescEta); - cout << "moooooooooooooo" << endl; - TBranch* bMcTagProbe_dPhi = t->GetBranch("McElecProbe_dPhi"); - bMcTagProbe_dPhi->SetAddress(&McTagProbe_dPhi); - TBranch* bMcTagProbe_dEta = t->GetBranch("McElecProbe_dEta"); - bMcTagProbe_dEta->SetAddress(&McTagProbe_dEta); - TBranch* bMcTagProbe_dR = t->GetBranch("McElecProbe_dR"); - bMcTagProbe_dR->SetAddress(&McTagProbe_dR); - - //Z boson properties - TBranch* bZ_m = t->GetBranch("Z_m"); - bZ_m->SetAddress(&Z_m); - TBranch* bZ_pt = t->GetBranch("Z_pt"); - bZ_pt->SetAddress(&Z_pt); - TBranch* bZ_y = t->GetBranch("Z_y"); - bZ_y->SetAddress(&Z_y); - //TBranch* bZ_eta = t->GetBranch("Z_eta"); - //bZ_eta->SetAddress(&Z_eta); - TBranch* bZ_phi = t->GetBranch("Z_phi"); - bZ_phi->SetAddress(&Z_phi); - TBranch* bZ_rescM = t->GetBranch("Z_rescM"); - bZ_rescM->SetAddress(&Z_rescM); - TBranch* bZ_rescPt = t->GetBranch("Z_rescPt"); - bZ_rescPt->SetAddress(&Z_rescPt); - TBranch* bZ_rescY = t->GetBranch("Z_rescY"); - bZ_rescY->SetAddress(&Z_rescY); - //TBranch* bZ_rescEta = t->GetBranch("Z_rescEta"); - //bZ_rescEta->SetAddress(&Z_rescEta); - TBranch* bZ_rescPhi = t->GetBranch("Z_rescPhi"); - bZ_rescPhi->SetAddress(&Z_rescPhi); - cout << "moooooooooooooo" << endl; - //tag properties - TBranch* bTag_q = t->GetBranch("tag_q"); - bTag_q->SetAddress(&tag_q); - TBranch* bTag_pt = t->GetBranch("tag_pt"); - bTag_pt->SetAddress(&tag_pt); - TBranch* bTag_eta = t->GetBranch("tag_eta"); - bTag_eta->SetAddress(&tag_eta); - TBranch* bTag_phi = t->GetBranch("tag_phi"); - bTag_phi->SetAddress(&tag_phi); - TBranch* bTag_rescPt = t->GetBranch("tag_rescPt"); - bTag_rescPt->SetAddress(&tag_rescPt); - TBranch* bTag_rescEta = t->GetBranch("tag_rescEta"); - bTag_rescEta->SetAddress(&tag_rescEta); - TBranch* bTag_rescPhi = t->GetBranch("tag_rescPhi"); - bTag_rescPhi->SetAddress(&tag_rescPhi); - TBranch* bTag_sIhIh = t->GetBranch("tag_sIhIh"); - bTag_sIhIh->SetAddress(&tag_sIhIh); - TBranch* bTag_dPhi = t->GetBranch("tag_dPhiIn"); - bTag_dPhi->SetAddress(&tag_dPhi); - TBranch* bTag_dEta = t->GetBranch("tag_dEtaIn"); - bTag_dEta->SetAddress(&tag_dEta); - TBranch* bTag_tIso = t->GetBranch("tag_trckIso"); - bTag_tIso->SetAddress(&tag_trackiso); - TBranch* bTag_eIso = t->GetBranch("tag_ecalIso"); - bTag_eIso->SetAddress(&tag_ecaliso); - TBranch* bTag_hIso = t->GetBranch("tag_hcalIso"); - bTag_hIso->SetAddress(&tag_hcaliso); - TBranch* bTag_pin = t->GetBranch("tag_pin"); - bTag_pin->SetAddress(&tag_pin); - TBranch* bTag_pout = t->GetBranch("tag_pout"); - bTag_pout->SetAddress(&tag_pout); - TBranch* bTag_eop = t->GetBranch("tag_eop"); - bTag_eop->SetAddress(&tag_eop); - TBranch* bTag_hoe = t->GetBranch("tag_hoe"); - bTag_hoe->SetAddress(&tag_hoe); - TBranch* bTag_e1x5 = t->GetBranch("tag_e1x5Max"); - bTag_e1x5->SetAddress(&tag_e1x5); - TBranch* bTag_e2x5 = t->GetBranch("tag_e2x5Max"); - bTag_e2x5->SetAddress(&tag_e2x5); - TBranch* bTag_e5x5 = t->GetBranch("tag_e5x5"); - bTag_e5x5->SetAddress(&tag_e5x5); - //probe properties - TBranch* bProbe_q = t->GetBranch("probe_q"); - bProbe_q->SetAddress(&probe_q); - TBranch* bProbe_pt = t->GetBranch("probe_pt"); - bProbe_pt->SetAddress(&probe_pt); - TBranch* bProbe_eta = t->GetBranch("probe_eta"); - bProbe_eta->SetAddress(&probe_eta); - TBranch* bProbe_phi = t->GetBranch("probe_phi"); - bProbe_phi->SetAddress(&probe_phi); - TBranch* bProbe_sIhIh = t->GetBranch("probe_sIhIh"); - bProbe_sIhIh->SetAddress(&probe_sIhIh); - TBranch* bProbe_dPhi = t->GetBranch("probe_dPhiIn"); - bProbe_dPhi->SetAddress(&probe_dPhi); - TBranch* bProbe_dEta = t->GetBranch("probe_dEtaIn"); - bProbe_dEta->SetAddress(&probe_dEta); - TBranch* bProbe_tIso = t->GetBranch("probe_trckIso"); - bProbe_tIso->SetAddress(&probe_trackiso); - TBranch* bProbe_eIso = t->GetBranch("probe_ecalIso"); - bProbe_eIso->SetAddress(&probe_ecaliso); - TBranch* bProbe_hIso = t->GetBranch("probe_hcalIso"); - bProbe_hIso->SetAddress(&probe_hcaliso); - TBranch* bProbe_pin = t->GetBranch("probe_pin"); - bProbe_pin->SetAddress(&probe_pin); - TBranch* bProbe_pout = t->GetBranch("probe_pout"); - bProbe_pout->SetAddress(&probe_pout); - TBranch* bProbe_eop = t->GetBranch("probe_eop"); - bProbe_eop->SetAddress(&probe_eop); - TBranch* bProbe_hoe = t->GetBranch("probe_hoe"); - bProbe_hoe->SetAddress(&probe_hoe); - TBranch* bProbe_e1x5 = t->GetBranch("probe_e1x5Max"); - bProbe_e1x5->SetAddress(&probe_e1x5); - TBranch* bProbe_e2x5 = t->GetBranch("probe_e2x5Max"); - bProbe_e2x5->SetAddress(&probe_e2x5); - TBranch* bProbe_e5x5 = t->GetBranch("probe_e5x5"); - bProbe_e5x5->SetAddress(&probe_e5x5); - //TBranch* bProbe_HCAL = t->GetBranch("probe_HcalE015"); - //bProbe_HCAL->SetAddress(&probe_HCAL); - //TBranch* bProbe_HCALEt = t->GetBranch("probe_HcalEt015"); - //bProbe_HCALEt->SetAddress(&probe_HCALEt); - //Sc energy - cout << "moooooooooooooo" << endl; - //Ersatz MEt results - TBranch* bErsatzGenMEt = t->GetBranch("ErsatzGenMEt"); - bErsatzGenMEt->SetAddress(&ErsatzGenMEt); - TBranch* bErsatzCaloMEt = t->GetBranch("ErsatzCaloMEt"); - bErsatzCaloMEt->SetAddress(&ErsatzCaloMEt); - TBranch* bErsatzPfMEt = t->GetBranch("ErsatzPfMEt"); - bErsatzPfMEt->SetAddress(&ErsatzPfMEt); - TBranch* bErsatzTcMEt = t->GetBranch("ErsatzTcMEt"); - bErsatzTcMEt->SetAddress(&ErsatzTcMEt); - cout << "moooooooooooooo" << endl; - TBranch* bMesc = t->GetBranch("Ersatz_Mesc"); - bMesc->SetAddress(&mesc); - cout << "Set up Branches" << endl; - - aaa=0, bbb=0, ccc=0, ddd=0; - for(int i=0; i < nEntries; ++i) - { - if(i%100000 == 0) cout <<"Processing event "<< i << endl; - t->GetEntry(i); - for(int j = 0; j < nProbes; ++j) - { - h_McTag_pt->Fill(McTag_pt[j]); - h_McTag_rescPt->Fill(McTag_rescPt[j]); - h_McTag_eta->Fill(McTag_eta[j]); - h_McTag_rescEta->Fill(McTag_rescEta[j]); - h_McProbe_pt->Fill(McProbe_pt[j]); - h_McProbe_rescPt->Fill(McProbe_rescPt[j]); - h_McProbe_eta->Fill(McProbe_eta[j]); - h_McProbe_rescEta->Fill(McProbe_rescEta[j]); - h_McTagProbe_dPhi->Fill(McTagProbe_dPhi[j]); - h_McTagProbe_dEta->Fill(McTagProbe_dEta[j]); - h_McTagProbe_dR->Fill(McTagProbe_dR[j]); - h_McZ_m->Fill(McZ_m); - h_McZ_rescM->Fill(McZ_rescM); - h_McZ_pt->Fill(McZ_pt); - h_McZ_rescPt->Fill(McZ_rescPt); - h_McZ_y->Fill(McZ_y); - h_McZ_rescY->Fill(McZ_rescY); - h_tag_q->Fill(tag_q[j]); - h_tag_pt->Fill(tag_pt[j]); - h_tag_rescPt->Fill(tag_rescPt[j]); - h_tag_eta->Fill(tag_eta[j]); - h_tag_rescEta->Fill(tag_rescEta[j]); - h_tag_ecaliso->Fill(tag_ecaliso[j]); - h_tag_hcaliso->Fill(tag_hcaliso[j]); - h_tag_trackiso->Fill(tag_trackiso[j]); - h_tag_dEta->Fill(tag_dEta[j]); - h_tag_dPhi->Fill(tag_dPhi[j]); - h_tag_sIhIh->Fill(tag_sIhIh[j]); - //h_tag_eop->Fill(tag_eop[j]); - //h_tag_hoe->Fill(tag_hoe[j]); - //h_tag_pin->Fill(tag_pin[j]); - //h_tag_pout->Fill(tag_pout[j]); - //h_tag_e1x5->Fill(tag_e1x5[j]); - //h_tag_e2x5->Fill(tag_e2x5[j]); - //h_tag_e5x5->Fill(tag_e5x5[j]); - //h_Z_pt->Fill(Z_pt[j]); - //h_Z_rescPt->Fill(Z_rescPt[j]); - //h_Z_y->Fill(Z_y[j]); - //h_Z_rescY->Fill(Z_rescY[j]); - bool passEtCut = false; - if(tag_rescPt[j] > cPt) passEtCut = true; - /* - if(process == "Zee" || process == "BCtoE_30to80" || process == "BCtoE_80to170"){ - if(tag_rescPt[j] > cPt) passEtCut = true; - }else{ - if(tag_pt[j] > (91.188/80.398)*cPt) passEtCut = true; - } - */ - if(passEtCut) - { - //if(fabs(mesc[j]-91.1876) < 21.1876) - //{ - bool pass_e_cuts = false; - bool pass_trkiso_cut = false; - bool inBarrel = false; - bool inEndcap = false; - if(fabs(tag_eta[j])<1.4442) - { - pass_e_cuts = (tag_ecaliso[j] < cECALiso_EB && tag_hcaliso[j] < cHCALiso_EB - && tag_sIhIh[j] < csIhIh_EB && tag_dPhi[j] < cDeltaPhi_EB - && tag_dEta[j] < cDeltaEta_EB); - pass_trkiso_cut = (tag_trackiso[j] < cTrackiso_EB); - inBarrel = true; - }else if(fabs(tag_eta[j] < 2.5)) - { - pass_e_cuts = (tag_ecaliso[j] < cECALiso_EE && tag_hcaliso[j] < cHCALiso_EE - && tag_sIhIh[j] < csIhIh_EE && tag_dPhi[j] < cDeltaPhi_EE - && tag_dEta[j] < cDeltaEta_EE); - pass_trkiso_cut = (tag_trackiso[j] < cTrackiso_EE); - inEndcap = true; - } - if(pass_e_cuts) - { - bool pass_probe_cuts = false; - double f1x5 = probe_e1x5[j]/probe_e5x5[j]; - double f2x5 = probe_e2x5[j]/probe_e5x5[j]; - if(fabs(probe_eta[j]) < 1.4442) - { - pass_probe_cuts = (/*probe_HCAL[j] < cHCAL && (*/f1x5 > cf1x5 || f2x5 > cf2x5//) - /*&& probe_elec[j] == celecmatch*/); - }else if(fabs(probe_eta[j] < 2.5)){ - pass_probe_cuts = (/*probe_HCALEt[j] < cHCALEt &&*/ probe_sIhIh[j] < cnusIhIh - /*&& probe_elec[j] == celecmatch*/); - } - if(pass_probe_cuts) - { - int EtaInt = int((probe_eta[j] + 3.)/0.01739); - double weight = eventweight/nueff[EtaInt]; - if(pass_trkiso_cut) - { - h_ErsatzGenMEt_pass->Fill(ErsatzGenMEt[j], weight); - h_ErsatzCaloMEt_pass->Fill(ErsatzCaloMEt[j], weight); - h_ErsatzTcMEt_pass->Fill(ErsatzTcMEt[j], weight); - h_ErsatzPfMEt_pass->Fill(ErsatzPfMEt[j], weight); - h_nMatched->Fill(nTagMatched, weight); - h_dpt_pf_gsf->Fill(dpt_pf_gsf[j], weight); - if(inBarrel) - { - aaa++; - h_ErsatzGenMEt_pass_EB->Fill(ErsatzGenMEt[j], weight); - h_ErsatzCaloMEt_pass_EB->Fill(ErsatzCaloMEt[j], weight); - h_ErsatzTcMEt_pass_EB->Fill(ErsatzTcMEt[j], weight); - h_ErsatzPfMEt_pass_EB->Fill(ErsatzPfMEt[j], weight); - h_nMatched_EB->Fill(nTagMatched, weight); - h_dpt_pf_gsf_EB->Fill(dpt_pf_gsf[j], weight); - } - if(inEndcap) - { - bbb++; - h_ErsatzGenMEt_pass_EE->Fill(ErsatzGenMEt[j], weight); - h_ErsatzCaloMEt_pass_EE->Fill(ErsatzCaloMEt[j], weight); - h_ErsatzTcMEt_pass_EE->Fill(ErsatzTcMEt[j], weight); - h_ErsatzPfMEt_pass_EE->Fill(ErsatzPfMEt[j], weight); - h_nMatched_EE->Fill(nTagMatched, weight); - h_dpt_pf_gsf_EE->Fill(dpt_pf_gsf[j], weight); - } - }else{ - h_ErsatzGenMEt_fail->Fill(ErsatzGenMEt[j], weight); - h_ErsatzCaloMEt_fail->Fill(ErsatzCaloMEt[j], weight); - h_ErsatzTcMEt_fail->Fill(ErsatzTcMEt[j], weight); - h_ErsatzPfMEt_fail->Fill(ErsatzPfMEt[j], weight); - if(inBarrel) - { - ccc++; - h_ErsatzGenMEt_fail_EB->Fill(ErsatzGenMEt[j], weight); - h_ErsatzCaloMEt_fail_EB->Fill(ErsatzCaloMEt[j], weight); - h_ErsatzTcMEt_fail_EB->Fill(ErsatzTcMEt[j], weight); - h_ErsatzPfMEt_fail_EB->Fill(ErsatzPfMEt[j], weight); - } - if(inEndcap) - { - ddd++; - h_ErsatzGenMEt_fail_EE->Fill(ErsatzGenMEt[j], weight); - h_ErsatzCaloMEt_fail_EE->Fill(ErsatzCaloMEt[j], weight); - h_ErsatzTcMEt_fail_EE->Fill(ErsatzTcMEt[j], weight); - h_ErsatzPfMEt_fail_EE->Fill(ErsatzPfMEt[j], weight); - } - } - } - } - //} - } - } - } - fileZ->Close(); - cout << "Closed Ersatz data file" << endl; - - cout << "Number of events passing selection cuts = " << aaa+bbb+ccc+ddd << endl; - cout << "Number Pass EB = " << aaa << endl; - cout << "Number Pass EE = " << bbb << endl; - cout << "Number Fail EB = " << ccc << endl; - cout << "Number Fail EE = " << ddd << endl; - - TCanvas* c_McBoson_m = new TCanvas("McBoson_m", "", 800, 600); - c_McBoson_m->cd(); - h_McZ_m->Scale(1./h_McZ_m->Integral()); - h_McZ_m->SetLineColor(2); - h_McZ_m->SetStats(kFALSE); - h_McZ_m->SetTitle(kFALSE); - h_McZ_m->GetYaxis()->SetTitleOffset(1.2); - h_McZ_m->Draw(); - h_McW_m->Scale(1./h_McW_m->Integral()); - h_McW_m->SetLineColor(4); - h_McW_m->Draw("same"); - - TLegend* legend_e = new TLegend(0.8, 0.7, 0.99, 0.99); - legend_e->AddEntry(h_McZ_m, "Z #rightarrow ee", "l"); - legend_e->AddEntry(h_McW_m, "W #rightarrow e#nu", "l"); - - legend_e->Draw(); - c_McBoson_m->SaveAs("McBoson_m.png"); - delete c_McBoson_m; - - TCanvas* c_McBoson_pt = new TCanvas("McBoson_pt", "", 800, 600); - c_McBoson_pt->cd(); - h_McZ_pt->Scale(1./h_McZ_pt->Integral()); - h_McZ_pt->SetLineColor(2); - h_McZ_pt->SetStats(kFALSE); - h_McZ_pt->SetTitle(kFALSE); - h_McZ_pt->GetYaxis()->SetTitleOffset(1.2); - h_McZ_pt->Draw(); - h_McW_pt->Scale(1./h_McW_pt->Integral()); - h_McW_pt->SetLineColor(4); - h_McW_pt->Draw("same"); - legend_e->Draw(); - c_McBoson_pt->SaveAs("McBoson_pt.png"); - delete c_McBoson_pt; - - TCanvas* c_McBoson_y = new TCanvas("McBoson_y", "", 800, 600); - c_McBoson_y->cd(); - h_McZ_y->Scale(1./h_McZ_y->Integral()); - h_McZ_y->SetLineColor(2); - h_McZ_y->SetStats(kFALSE); - h_McZ_y->SetTitle(kFALSE); - h_McZ_y->GetYaxis()->SetTitleOffset(1.2); - h_McZ_y->Draw(); - h_McW_y->Scale(1./h_McW_y->Integral()); - h_McW_y->SetLineColor(4); - h_McW_y->Draw("same"); - legend_e->Draw(); - c_McBoson_y->SaveAs("McBoson_y.png"); - delete c_McBoson_y; - - TCanvas* c_McBoson_rescM = new TCanvas("McBoson_rescM", "", 800, 600); - c_McBoson_rescM->cd(); - h_McZ_rescM->Scale(1./h_McZ_rescM->Integral()); - h_McZ_rescM->SetLineColor(2); - h_McZ_rescM->SetStats(kFALSE); - h_McZ_rescM->SetTitle(kFALSE); - h_McZ_rescM->GetYaxis()->SetTitleOffset(1.2); - h_McZ_rescM->Draw(); - h_McW_m->Scale(1./h_McW_m->Integral()); - h_McW_m->SetLineColor(4); - h_McW_m->Draw("same"); - legend_e->Draw(); - c_McBoson_rescM->SaveAs("McBoson_rescM.png"); - delete c_McBoson_rescM; - - TCanvas* c_McBoson_rescPt = new TCanvas("McBoson_rescPt", "", 800, 600); - c_McBoson_rescPt->cd(); - h_McZ_rescPt->Scale(1./h_McZ_rescPt->Integral()); - h_McZ_rescPt->SetLineColor(2); - h_McZ_rescPt->SetStats(kFALSE); - h_McZ_rescPt->SetTitle(kFALSE); - h_McZ_rescPt->GetYaxis()->SetTitleOffset(1.2); - h_McZ_rescPt->Draw(); - h_McW_pt->Scale(1./h_McW_pt->Integral()); - h_McW_pt->SetLineColor(4); - h_McW_pt->Draw("same"); - legend_e->Draw(); - c_McBoson_rescPt->SaveAs("McBoson_rescPt.png"); - delete c_McBoson_rescPt; - - TCanvas* c_McBoson_rescY = new TCanvas("McBoson_rescY", "", 800, 600); - c_McBoson_rescY->cd(); - h_McZ_rescY->Scale(1./h_McZ_rescY->Integral()); - h_McZ_rescY->SetLineColor(2); - h_McZ_rescY->SetStats(kFALSE); - h_McZ_rescY->SetTitle(kFALSE); - h_McZ_rescY->GetYaxis()->SetTitleOffset(1.2); - h_McZ_rescY->Draw(); - h_McW_y->Scale(1./h_McW_y->Integral()); - h_McW_y->SetLineColor(4); - h_McW_y->Draw("same"); - legend_e->Draw(); - c_McBoson_rescY->SaveAs("McBoson_rescY.png"); - delete c_McBoson_rescY; - - TCanvas* c_McElec_pt = new TCanvas("McElec_pt", "", 800, 600); - c_McElec_pt->cd(); - h_McTag_pt->Scale(1./h_McTag_pt->Integral()); - h_McTag_pt->SetLineColor(2); - h_McTag_pt->SetStats(kFALSE); - h_McTag_pt->SetTitle(kFALSE); - h_McTag_pt->GetYaxis()->SetTitleOffset(1.2); - h_McTag_pt->Draw(); - h_McElec_pt->Scale(1./h_McElec_pt->Integral()); - h_McElec_pt->SetLineColor(4); - h_McElec_pt->Draw("same"); - legend_e->Draw(); - c_McElec_pt->SaveAs("McElec_pt.png"); - delete c_McElec_pt; - - TCanvas* c_McElec_eta = new TCanvas("McElec_eta", "", 800, 600); - c_McElec_eta->cd(); - h_McTag_eta->Scale(1./h_McTag_eta->Integral()); - h_McTag_eta->SetLineColor(2); - h_McTag_eta->SetStats(kFALSE); - h_McTag_eta->SetTitle(kFALSE); - h_McTag_eta->GetYaxis()->SetTitleOffset(1.2); - h_McTag_eta->Draw(); - h_McElec_eta->Scale(1./h_McElec_eta->Integral()); - h_McElec_eta->SetLineColor(4); - h_McElec_eta->Draw("same"); - legend_e->Draw(); - c_McElec_eta->SaveAs("McElec_eta.png"); - delete c_McElec_eta; - - TCanvas* c_McElec_rescPt = new TCanvas("McElec_rescPt", "", 800, 600); - c_McElec_rescPt->cd(); - h_McTag_rescPt->Scale(1./h_McTag_rescPt->Integral()); - h_McTag_rescPt->SetLineColor(2); - h_McTag_rescPt->SetStats(kFALSE); - h_McTag_rescPt->SetTitle(kFALSE); - h_McTag_rescPt->GetYaxis()->SetTitleOffset(1.2); - h_McTag_rescPt->Draw(); - h_McElec_pt->Scale(1./h_McElec_pt->Integral()); - h_McElec_pt->SetLineColor(4); - h_McElec_pt->Draw("same"); - legend_e->Draw(); - c_McElec_rescPt->SaveAs("McElec_rescPt.png"); - delete c_McElec_rescPt; - - TCanvas* c_McElec_rescEta = new TCanvas("McElec_rescEta", "", 800, 600); - c_McElec_rescEta->cd(); - h_McTag_rescEta->Scale(1./h_McTag_rescEta->Integral()); - h_McTag_rescEta->SetLineColor(2); - h_McTag_rescEta->SetStats(kFALSE); - h_McTag_rescEta->SetTitle(kFALSE); - h_McTag_rescEta->GetYaxis()->SetTitleOffset(1.2); - h_McTag_rescEta->Draw(); - h_McElec_eta->Scale(1./h_McElec_eta->Integral()); - h_McElec_eta->SetLineColor(4); - h_McElec_eta->Draw("same"); - legend_e->Draw(); - c_McElec_rescEta->SaveAs("McElec_rescEta.png"); - delete c_McElec_rescEta; - - TCanvas* c_McNu_pt = new TCanvas("McNu_pt", "", 800, 600); - c_McNu_pt->cd(); - h_McProbe_pt->Scale(1./h_McProbe_pt->Integral()); - h_McProbe_pt->SetLineColor(2); - h_McProbe_pt->SetStats(kFALSE); - h_McProbe_pt->SetTitle(kFALSE); - h_McProbe_pt->GetYaxis()->SetTitleOffset(1.2); - h_McProbe_pt->Draw(); - h_McNu_pt->Scale(1./h_McNu_pt->Integral()); - h_McNu_pt->SetLineColor(4); - h_McNu_pt->Draw("same"); - legend_e->Draw(); - c_McNu_pt->SaveAs("McNu_pt.png"); - delete c_McNu_pt; - - TCanvas* c_McNu_eta = new TCanvas("McNu_eta", "", 800, 600); - c_McNu_eta->cd(); - h_McProbe_eta->Scale(1./h_McProbe_eta->Integral()); - h_McProbe_eta->SetLineColor(2); - h_McProbe_eta->SetStats(kFALSE); - h_McProbe_eta->SetTitle(kFALSE); - h_McProbe_eta->GetYaxis()->SetTitleOffset(1.2); - h_McProbe_eta->Draw(); - h_McNu_eta->Scale(1./h_McNu_eta->Integral()); - h_McNu_eta->SetLineColor(4); - h_McNu_eta->Draw("same"); - legend_e->Draw(); - c_McNu_eta->SaveAs("McNu_eta.png"); - delete c_McNu_eta; - - TCanvas* c_McNu_rescPt = new TCanvas("McNu_rescPt", "", 800, 600); - c_McNu_rescPt->cd(); - h_McProbe_rescPt->Scale(1./h_McProbe_rescPt->Integral()); - h_McProbe_rescPt->SetLineColor(2); - h_McProbe_rescPt->SetStats(kFALSE); - h_McProbe_rescPt->SetTitle(kFALSE); - h_McProbe_rescPt->GetYaxis()->SetTitleOffset(1.2); - h_McProbe_rescPt->Draw(); - h_McNu_pt->Scale(1./h_McNu_pt->Integral()); - h_McNu_pt->SetLineColor(4); - h_McNu_pt->Draw("same"); - legend_e->Draw(); - c_McNu_rescPt->SaveAs("McNu_rescPt.png"); - delete c_McNu_rescPt; - - TCanvas* c_McNu_rescEta = new TCanvas("McNu_rescEta", "", 800, 600); - c_McNu_rescEta->cd(); - h_McProbe_rescEta->Scale(1./h_McProbe_rescEta->Integral()); - h_McProbe_rescEta->SetLineColor(2); - h_McProbe_rescEta->SetStats(kFALSE); - h_McProbe_rescEta->SetTitle(kFALSE); - h_McProbe_rescEta->GetYaxis()->SetTitleOffset(1.2); - h_McProbe_rescEta->Draw(); - h_McNu_eta->Scale(1./h_McNu_eta->Integral()); - h_McNu_eta->SetLineColor(4); - h_McNu_eta->Draw("same"); - legend_e->Draw(); - c_McNu_rescEta->SaveAs("McNu_rescEta.png"); - delete c_McNu_rescEta; - - TCanvas* c_McLeptons_dPhi = new TCanvas("McLeptons_dPhi", "", 800, 600); - c_McLeptons_dPhi->cd(); - h_McTagProbe_dPhi->Scale(1./h_McTagProbe_dPhi->Integral()); - h_McTagProbe_dPhi->SetLineColor(2); - h_McTagProbe_dPhi->SetStats(kFALSE); - h_McTagProbe_dPhi->SetTitle(kFALSE); - h_McTagProbe_dPhi->GetYaxis()->SetTitleOffset(1.2); - h_McTagProbe_dPhi->Draw(); - h_McElecNu_dPhi->Scale(1./h_McElecNu_dPhi->Integral()); - h_McElecNu_dPhi->SetLineColor(4); - h_McElecNu_dPhi->Draw("same"); - legend_e->Draw(); - c_McLeptons_dPhi->SaveAs("McLeptons_dPhi.png"); - delete c_McLeptons_dPhi; - - TCanvas* c_McLeptons_dEta = new TCanvas("McLeptons_dEta", "", 800, 600); - c_McLeptons_dEta->cd(); - h_McTagProbe_dEta->Scale(1./h_McTagProbe_dEta->Integral()); - h_McTagProbe_dEta->SetLineColor(2); - h_McTagProbe_dEta->SetStats(kFALSE); - h_McTagProbe_dEta->SetTitle(kFALSE); - h_McTagProbe_dEta->GetYaxis()->SetTitleOffset(1.2); - h_McTagProbe_dEta->Draw(); - h_McElecNu_dEta->Scale(1./h_McElecNu_dEta->Integral()); - h_McElecNu_dEta->SetLineColor(4); - h_McElecNu_dEta->Draw("same"); - legend_e->Draw(); - c_McLeptons_dEta->SaveAs("McLeptons_dEta.png"); - delete c_McLeptons_dEta; - - TCanvas* c_McLeptons_dR = new TCanvas("McLeptons_dR", "", 800, 600); - c_McLeptons_dR->cd(); - h_McTagProbe_dR->Scale(1./h_McTagProbe_dR->Integral()); - h_McTagProbe_dR->SetLineColor(2); - h_McTagProbe_dR->SetStats(kFALSE); - h_McTagProbe_dR->SetTitle(kFALSE); - h_McTagProbe_dR->GetYaxis()->SetTitleOffset(1.2); - h_McTagProbe_dR->Draw(); - h_McElecNu_dR->Scale(1./h_McElecNu_dR->Integral()); - h_McElecNu_dR->SetLineColor(4); - h_McElecNu_dR->Draw("same"); - legend_e->Draw(); - c_McLeptons_dR->SaveAs("McLeptons_dR.png"); - delete c_McLeptons_dR; - -/* - TCanvas* c_elec_q = new TCanvas("elec_q", "", 800, 600); - c_elec_q->cd(); - h_tag_q->Scale(1./h_tag_q->Integral()); - h_tag_q->SetLineColor(2); - h_tag_q->SetStats(kFALSE); - h_tag_q->SetTitle(kFALSE); - h_tag_q->GetYaxis()->SetTitleOffset(1.2); - h_tag_q->Draw(); - h_elec_q->Scale(1./h_elec_q->Integral()); - h_elec_q->SetLineColor(4); - h_elec_q->Draw("same"); - - TLegend* legend_e = new TLegend(0.8, 0.7, 0.99, 0.99); - legend_e->AddEntry(h_tag_q, "Z -> ee", "l"); - legend_e->AddEntry(h_elec_q, "W -> e#nu", "l"); - - legend_e->Draw(); - c_elec_q->SaveAs("elec_q.png"); - delete c_elec_q; -*/ - TCanvas* c_elec_pt = new TCanvas("elec_pt", "", 800, 600); - c_elec_pt->cd(); - h_tag_pt->Scale(1./h_tag_pt->Integral()); - h_tag_pt->SetLineColor(2); - h_tag_pt->SetStats(kFALSE); - h_tag_pt->SetTitle(kFALSE); - h_tag_pt->GetYaxis()->SetTitleOffset(1.2); - h_tag_pt->Draw(); - h_elec_pt->Scale(1./h_elec_pt->Integral()); - h_elec_pt->SetLineColor(4); - h_elec_pt->Draw("same"); - legend_e->Draw(); - c_elec_pt->SaveAs("elec_pt.png"); - delete c_elec_pt; - - TCanvas* c_elec_eta = new TCanvas("elec_eta", "", 800, 600); - c_elec_eta->cd(); - h_tag_eta->Scale(1./h_tag_eta->Integral()); - h_tag_eta->SetLineColor(2); - h_tag_eta->SetStats(kFALSE); - h_tag_eta->SetTitle(kFALSE); - h_tag_eta->GetYaxis()->SetTitleOffset(1.2); - h_tag_eta->Draw(); - h_elec_eta->Scale(1./h_elec_eta->Integral()); - h_elec_eta->SetLineColor(4); - h_elec_eta->Draw("same"); - legend_e->Draw(); - c_elec_eta->SaveAs("elec_eta.png"); - delete c_elec_eta; - - TCanvas* c_elec_rescPt = new TCanvas("elec_rescPt", "", 800, 600); - c_elec_rescPt->cd(); - h_tag_rescPt->Scale(1./h_tag_rescPt->Integral()); - h_tag_rescPt->SetLineColor(2); - h_tag_rescPt->SetStats(kFALSE); - h_tag_rescPt->SetTitle(kFALSE); - h_tag_rescPt->GetYaxis()->SetTitleOffset(1.2); - h_tag_rescPt->Draw(); - h_elec_pt->Scale(1./h_elec_pt->Integral()); - h_elec_pt->SetLineColor(4); - h_elec_pt->Draw("same"); - legend_e->Draw(); - c_elec_rescPt->SaveAs("elec_rescPt.png"); - delete c_elec_rescPt; - - TCanvas* c_elec_rescEta = new TCanvas("elec_rescEta", "", 800, 600); - c_elec_rescEta->cd(); - h_tag_rescEta->Scale(1./h_tag_rescEta->Integral()); - h_tag_rescEta->SetLineColor(2); - h_tag_rescEta->SetStats(kFALSE); - h_tag_rescEta->SetTitle(kFALSE); - h_tag_rescEta->GetYaxis()->SetTitleOffset(1.2); - h_tag_rescEta->Draw(); - h_elec_eta->Scale(1./h_elec_eta->Integral()); - h_elec_eta->SetLineColor(4); - h_elec_eta->Draw("same"); - legend_e->Draw(); - c_elec_rescEta->SaveAs("elec_rescEta.png"); - delete c_elec_rescEta; - - TCanvas* c_elec_ecaliso = new TCanvas("elec_ecaliso", "", 800, 600); - c_elec_ecaliso->cd(); - h_tag_ecaliso->Scale(1./h_tag_ecaliso->Integral()); - h_tag_ecaliso->SetLineColor(2); - h_tag_ecaliso->SetStats(kFALSE); - h_tag_ecaliso->SetTitle(kFALSE); - h_tag_ecaliso->GetYaxis()->SetTitleOffset(1.2); - h_tag_ecaliso->Draw(); - h_elec_ecaliso->Scale(1./h_elec_ecaliso->Integral()); - h_elec_ecaliso->SetLineColor(4); - h_elec_ecaliso->Draw("same"); - legend_e->Draw(); - c_elec_ecaliso->SaveAs("elec_ecaliso.png"); - delete c_elec_ecaliso; - - TCanvas* c_elec_hcaliso = new TCanvas("elec_hcaliso", "", 800, 600); - c_elec_hcaliso->cd(); - h_tag_hcaliso->Scale(1./h_tag_hcaliso->Integral()); - h_tag_hcaliso->SetLineColor(2); - h_tag_hcaliso->SetStats(kFALSE); - h_tag_hcaliso->SetTitle(kFALSE); - h_tag_hcaliso->GetYaxis()->SetTitleOffset(1.2); - h_tag_hcaliso->Draw(); - h_elec_hcaliso->Scale(1./h_elec_hcaliso->Integral()); - h_elec_hcaliso->SetLineColor(4); - h_elec_hcaliso->Draw("same"); - legend_e->Draw(); - c_elec_hcaliso->SaveAs("elec_hcaliso.png"); - delete c_elec_hcaliso; - - TCanvas* c_elec_trackiso = new TCanvas("elec_trackiso", "", 800, 600); - c_elec_trackiso->cd(); - h_tag_trackiso->Scale(1./h_tag_trackiso->Integral()); - h_tag_trackiso->SetLineColor(2); - h_tag_trackiso->SetStats(kFALSE); - h_tag_trackiso->SetTitle(kFALSE); - h_tag_trackiso->GetYaxis()->SetTitleOffset(1.2); - h_tag_trackiso->Draw(); - h_elec_trackiso->Scale(1./h_elec_trackiso->Integral()); - h_elec_trackiso->SetLineColor(4); - h_elec_trackiso->Draw("same"); - legend_e->Draw(); - c_elec_trackiso->SaveAs("elec_trackiso.png"); - delete c_elec_trackiso; - - TCanvas* c_elec_dEtaIn = new TCanvas("elec_dEtaIn", "", 800, 600); - c_elec_dEtaIn->cd(); - h_tag_dEta->Scale(1./h_tag_dEta->Integral()); - h_tag_dEta->SetLineColor(2); - h_tag_dEta->SetStats(kFALSE); - h_tag_dEta->SetTitle(kFALSE); - h_tag_dEta->GetYaxis()->SetTitleOffset(1.2); - h_tag_dEta->Draw(); - h_elec_dEta->Scale(1./h_elec_dEta->Integral()); - h_elec_dEta->SetLineColor(4); - h_elec_dEta->Draw("same"); - legend_e->Draw(); - c_elec_dEtaIn->SaveAs("elec_dEtaIn.png"); - delete c_elec_dEtaIn; - - TCanvas* c_elec_dPhiIn = new TCanvas("elec_dPhiIn", "", 800, 600); - c_elec_dPhiIn->cd(); - h_tag_dPhi->Scale(1./h_tag_dPhi->Integral()); - h_tag_dPhi->SetLineColor(2); - h_tag_dPhi->SetStats(kFALSE); - h_tag_dPhi->SetTitle(kFALSE); - h_tag_dPhi->GetYaxis()->SetTitleOffset(1.2); - h_tag_dPhi->Draw(); - h_elec_dPhi->Scale(1./h_elec_dPhi->Integral()); - h_elec_dPhi->SetLineColor(4); - h_elec_dPhi->Draw("same"); - legend_e->Draw(); - c_elec_dPhiIn->SaveAs("elec_dPhiIn.png"); - delete c_elec_dPhiIn; - - TCanvas* c_elec_sIhIh = new TCanvas("elec_sIhIh", "", 800, 600); - c_elec_sIhIh->cd(); - h_tag_sIhIh->Scale(1./h_tag_sIhIh->Integral()); - h_tag_sIhIh->SetLineColor(2); - h_tag_sIhIh->SetStats(kFALSE); - h_tag_sIhIh->SetTitle(kFALSE); - h_tag_sIhIh->GetYaxis()->SetTitleOffset(1.2); - h_tag_sIhIh->Draw(); - h_elec_sIhIh->Scale(1./h_elec_sIhIh->Integral()); - h_elec_sIhIh->SetLineColor(4); - h_elec_sIhIh->Draw("same"); - legend_e->Draw(); - c_elec_sIhIh->SaveAs("elec_sIhIh.png"); - delete c_elec_sIhIh; - - TCanvas* c_nMatched = new TCanvas("nMatched", "", 800, 600); - c_nMatched->cd(); - h_nMatched->Draw(); - c_nMatched->SaveAs("nMatched.png"); - delete c_nMatched; - - TCanvas* c_nMatched_EB = new TCanvas("nMatched_EB", "", 800, 600); - c_nMatched_EB->cd(); - h_nMatched_EB->Draw(); - c_nMatched_EB->SaveAs("nMatched_EB.png"); - delete c_nMatched_EB; - - TCanvas* c_nMatched_EE = new TCanvas("nMatched_EE", "", 800, 600); - c_nMatched_EE->cd(); - h_nMatched_EE->Draw(); - c_nMatched_EE->SaveAs("nMatched_EE.png"); - delete c_nMatched_EE; - - TCanvas* c_dpt_pf_gsf = new TCanvas("dpt_pf_gsf", "", 800, 600); - c_dpt_pf_gsf->cd(); - h_dpt_pf_gsf->Draw(); - c_dpt_pf_gsf->SaveAs("dpt_pf_gsf.png"); - delete c_dpt_pf_gsf; - - TCanvas* c_dpt_pf_gsf_EB = new TCanvas("dpt_pf_gsf_EB", "", 800, 600); - c_dpt_pf_gsf_EB->cd(); - h_dpt_pf_gsf_EB->Draw(); - c_dpt_pf_gsf_EB->SaveAs("dpt_pf_gsf_EB.png"); - delete c_dpt_pf_gsf_EB; - - TCanvas* c_dpt_pf_gsf_EE = new TCanvas("dpt_pf_gsf_EE", "", 800, 600); - c_dpt_pf_gsf_EE->cd(); - h_dpt_pf_gsf_EE->Draw(); - c_dpt_pf_gsf_EE->SaveAs("dpt_pf_gsf_EE.png"); - delete c_dpt_pf_gsf_EE; - - cout << "Apply acceptance correction ..." << endl; - - for (int i=1; i<101; i++) - { - if(h_mcWCaloMEtin_pass_EB->GetBinContent(i) != 0.) - { - h_acceptance_correction_caloMEt_pass_EB->SetBinContent(i, 1. + h_mcWCaloMEtout_pass_EB->GetBinContent(i)/h_mcWCaloMEtin_pass_EB->GetBinContent(i)); - }else{ - h_acceptance_correction_caloMEt_pass_EB->SetBinContent(i, 1.); - } - if(h_mcWCaloMEtin_pass_EE->GetBinContent(i) != 0.) - { - h_acceptance_correction_caloMEt_pass_EE->SetBinContent(i, 1. + h_mcWCaloMEtout_pass_EE->GetBinContent(i)/h_mcWCaloMEtin_pass_EE->GetBinContent(i)); - }else{ - h_acceptance_correction_caloMEt_pass_EE->SetBinContent(i, 1.); - } - if(h_mcWCaloMEtin_fail_EB->GetBinContent(i) != 0.) - { - h_acceptance_correction_caloMEt_fail_EB->SetBinContent(i, 1. + h_mcWCaloMEtout_fail_EB->GetBinContent(i)/h_mcWCaloMEtin_fail_EB->GetBinContent(i)); - }else{ - h_acceptance_correction_caloMEt_fail_EB->SetBinContent(i, 1.); - } - if(h_mcWCaloMEtin_fail_EE->GetBinContent(i) != 0.) - { - h_acceptance_correction_caloMEt_fail_EE->SetBinContent(i, 1. + h_mcWCaloMEtout_fail_EE->GetBinContent(i)/h_mcWCaloMEtin_fail_EE->GetBinContent(i)); - }else{ - h_acceptance_correction_caloMEt_fail_EE->SetBinContent(i, 1.); - } - - if(h_mcWTcMEtin_pass_EB->GetBinContent(i) != 0.) - { - h_acceptance_correction_tcMEt_pass_EB->SetBinContent(i, 1. + h_mcWTcMEtout_pass_EB->GetBinContent(i)/h_mcWTcMEtin_pass_EB->GetBinContent(i)); - }else{ - h_acceptance_correction_tcMEt_pass_EB->SetBinContent(i, 1.); - } - if(h_mcWTcMEtin_pass_EE->GetBinContent(i) != 0.) - { - h_acceptance_correction_tcMEt_pass_EE->SetBinContent(i, 1. + h_mcWTcMEtout_pass_EE->GetBinContent(i)/h_mcWTcMEtin_pass_EE->GetBinContent(i)); - }else{ - h_acceptance_correction_tcMEt_pass_EE->SetBinContent(i, 1.); - } - if(h_mcWTcMEtin_fail_EB->GetBinContent(i) != 0.) - { - h_acceptance_correction_tcMEt_fail_EB->SetBinContent(i, 1. + h_mcWTcMEtout_fail_EB->GetBinContent(i)/h_mcWTcMEtin_fail_EB->GetBinContent(i)); - }else{ - h_acceptance_correction_tcMEt_fail_EB->SetBinContent(i, 1.); - } - if(h_mcWTcMEtin_fail_EE->GetBinContent(i) != 0.) - { - h_acceptance_correction_tcMEt_fail_EE->SetBinContent(i, 1. + h_mcWTcMEtout_fail_EE->GetBinContent(i)/h_mcWTcMEtin_fail_EE->GetBinContent(i)); - }else{ - h_acceptance_correction_tcMEt_fail_EE->SetBinContent(i, 1.); - } - - if(h_mcWGenMEtin_pass_EB->GetBinContent(i) != 0.) - { - h_acceptance_correction_genMEt_pass_EB->SetBinContent(i, 1. + h_mcWGenMEtout_pass_EB->GetBinContent(i)/h_mcWGenMEtin_pass_EB->GetBinContent(i)); - }else{ - h_acceptance_correction_genMEt_pass_EB->SetBinContent(i, 1.); - } - if(h_mcWGenMEtin_pass_EE->GetBinContent(i) != 0.) - { - h_acceptance_correction_genMEt_pass_EE->SetBinContent(i, 1. + h_mcWGenMEtout_pass_EE->GetBinContent(i)/h_mcWGenMEtin_pass_EE->GetBinContent(i)); - }else{ - h_acceptance_correction_genMEt_pass_EE->SetBinContent(i, 1.); - } - if(h_mcWGenMEtin_fail_EB->GetBinContent(i) != 0.) - { - h_acceptance_correction_genMEt_fail_EB->SetBinContent(i, 1. + h_mcWGenMEtout_fail_EB->GetBinContent(i)/h_mcWGenMEtin_fail_EB->GetBinContent(i)); - }else{ - h_acceptance_correction_genMEt_fail_EB->SetBinContent(i, 1.); - } - if(h_mcWGenMEtin_fail_EE->GetBinContent(i) != 0.) - { - h_acceptance_correction_genMEt_fail_EE->SetBinContent(i, 1. + h_mcWGenMEtout_fail_EE->GetBinContent(i)/h_mcWGenMEtin_fail_EE->GetBinContent(i)); - }else{ - h_acceptance_correction_genMEt_fail_EE->SetBinContent(i, 1.); - } - - if(h_mcWPfMEtin_pass_EB->GetBinContent(i) != 0.) - { - h_acceptance_correction_pfMEt_pass_EB->SetBinContent(i, 1. + h_mcWPfMEtout_pass_EB->GetBinContent(i)/h_mcWPfMEtin_pass_EB->GetBinContent(i)); - }else{ - h_acceptance_correction_pfMEt_pass_EB->SetBinContent(i, 1.); - } - if(h_mcWPfMEtin_pass_EE->GetBinContent(i) != 0.) - { - h_acceptance_correction_pfMEt_pass_EE->SetBinContent(i, 1. + h_mcWPfMEtout_pass_EE->GetBinContent(i)/h_mcWPfMEtin_pass_EE->GetBinContent(i)); - }else{ - h_acceptance_correction_pfMEt_pass_EE->SetBinContent(i, 1.); - } - if(h_mcWPfMEtin_fail_EB->GetBinContent(i) != 0.) - { - h_acceptance_correction_pfMEt_fail_EB->SetBinContent(i, 1. + h_mcWPfMEtout_fail_EB->GetBinContent(i)/h_mcWPfMEtin_fail_EB->GetBinContent(i)); - }else{ - h_acceptance_correction_pfMEt_fail_EB->SetBinContent(i, 1.); - } - if(h_mcWPfMEtin_fail_EE->GetBinContent(i) != 0.) - { - h_acceptance_correction_pfMEt_fail_EE->SetBinContent(i, 1. + h_mcWPfMEtout_fail_EE->GetBinContent(i)/h_mcWPfMEtin_fail_EE->GetBinContent(i)); - }else{ - h_acceptance_correction_pfMEt_fail_EE->SetBinContent(i, 1.); - } - - } - - h_ErsatzGenMEt_pass_EB->Multiply(h_ErsatzGenMEt_pass_EB, h_acceptance_correction_genMEt_pass_EB); - h_ErsatzCaloMEt_pass_EB->Multiply(h_ErsatzCaloMEt_pass_EB, h_acceptance_correction_caloMEt_pass_EB); - h_ErsatzTcMEt_pass_EB->Multiply(h_ErsatzTcMEt_pass_EB, h_acceptance_correction_tcMEt_pass_EB); - h_ErsatzPfMEt_pass_EB->Multiply(h_ErsatzPfMEt_pass_EB, h_acceptance_correction_pfMEt_pass_EB); - - h_ErsatzGenMEt_pass_EE->Multiply(h_ErsatzGenMEt_pass_EE, h_acceptance_correction_genMEt_pass_EE); - h_ErsatzCaloMEt_pass_EE->Multiply(h_ErsatzCaloMEt_pass_EE, h_acceptance_correction_caloMEt_pass_EE); - h_ErsatzTcMEt_pass_EE->Multiply(h_ErsatzTcMEt_pass_EE, h_acceptance_correction_tcMEt_pass_EE); - h_ErsatzPfMEt_pass_EE->Multiply(h_ErsatzPfMEt_pass_EE, h_acceptance_correction_pfMEt_pass_EE); - - h_ErsatzGenMEt_fail_EB->Multiply(h_ErsatzGenMEt_fail_EB, h_acceptance_correction_genMEt_fail_EB); - h_ErsatzCaloMEt_fail_EB->Multiply(h_ErsatzCaloMEt_fail_EB, h_acceptance_correction_caloMEt_fail_EB); - h_ErsatzTcMEt_fail_EB->Multiply(h_ErsatzTcMEt_fail_EB, h_acceptance_correction_tcMEt_fail_EB); - h_ErsatzPfMEt_fail_EB->Multiply(h_ErsatzPfMEt_fail_EB, h_acceptance_correction_pfMEt_fail_EB); - - h_ErsatzGenMEt_fail_EE->Multiply(h_ErsatzGenMEt_fail_EE, h_acceptance_correction_genMEt_fail_EE); - h_ErsatzCaloMEt_fail_EE->Multiply(h_ErsatzCaloMEt_fail_EE, h_acceptance_correction_caloMEt_fail_EE); - h_ErsatzTcMEt_fail_EE->Multiply(h_ErsatzTcMEt_fail_EE, h_acceptance_correction_tcMEt_fail_EE); - h_ErsatzPfMEt_fail_EE->Multiply(h_ErsatzPfMEt_fail_EE, h_acceptance_correction_pfMEt_fail_EE); - - h_ErsatzGenMEt_pass->Add(h_ErsatzGenMEt_pass_EB, h_ErsatzGenMEt_pass_EE); - h_ErsatzCaloMEt_pass->Add(h_ErsatzCaloMEt_pass_EB, h_ErsatzCaloMEt_pass_EE); - h_ErsatzTcMEt_pass->Add(h_ErsatzTcMEt_pass_EB, h_ErsatzTcMEt_pass_EE); - h_ErsatzPfMEt_pass->Add(h_ErsatzPfMEt_pass_EB, h_ErsatzPfMEt_pass_EE); - - h_ErsatzGenMEt_fail->Add(h_ErsatzGenMEt_fail_EB, h_ErsatzGenMEt_fail_EE); - h_ErsatzCaloMEt_fail->Add(h_ErsatzCaloMEt_fail_EB, h_ErsatzCaloMEt_fail_EE); - h_ErsatzTcMEt_fail->Add(h_ErsatzTcMEt_fail_EB, h_ErsatzTcMEt_fail_EE); - h_ErsatzPfMEt_fail->Add(h_ErsatzPfMEt_fail_EB, h_ErsatzPfMEt_fail_EE); - - //Fill Ersatz MET histogram with the type of MET you want - for(int i=1; i<101; i++) - { - h_ErsatzMEt_pass_EB->SetBinContent(i, h_ErsatzCaloMEt_pass_EB->GetBinContent(i)); - h_ErsatzMEt_pass_EE->SetBinContent(i, h_ErsatzCaloMEt_pass_EE->GetBinContent(i)); - h_ErsatzMEt_fail_EB->SetBinContent(i, h_ErsatzCaloMEt_fail_EB->GetBinContent(i)); - h_ErsatzMEt_fail_EE->SetBinContent(i, h_ErsatzCaloMEt_fail_EE->GetBinContent(i)); - h_ErsatzMEt_pass->SetBinContent(i, h_ErsatzCaloMEt_pass->GetBinContent(i)); - h_ErsatzMEt_fail->SetBinContent(i, h_ErsatzCaloMEt_fail->GetBinContent(i)); - } - - TCanvas* c_ErsatzCaloMEt_corr_pass_EB = new TCanvas("ErsatzCaloMEt_corr_pass_EB", "", 800, 600); - c_ErsatzCaloMEt_corr_pass_EB->cd(); - //h_ErsatzCaloMEt_pass_EB->Scale(1./h_ErsatzCaloMEt_pass_EB->Integral()); - h_ErsatzCaloMEt_pass_EB->SetLineColor(2); - h_ErsatzCaloMEt_pass_EB->SetStats(kFALSE); - h_ErsatzCaloMEt_pass_EB->SetTitle(kFALSE); - h_ErsatzCaloMEt_pass_EB->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzCaloMEt_pass_EB->Draw(); - h_WCaloMEt_pass_EB->Scale(h_ErsatzCaloMEt_pass_EB->Integral()/h_WCaloMEt_pass_EB->Integral()); - h_WCaloMEt_pass_EB->SetLineColor(4); - h_WCaloMEt_pass_EB->Draw("same"); - - TLegend* legend = new TLegend(0.8, 0.7, 0.99, 0.99); - legend->AddEntry(h_ErsatzCaloMEt_pass_EB, "Ersatz MET", "l"); - legend->AddEntry(h_WCaloMEt_pass_EB, "W MET", "l"); - - legend->Draw(); - c_ErsatzCaloMEt_corr_pass_EB->SaveAs("ErsatzCaloMEt_corr_pass_EB.png"); - delete c_ErsatzCaloMEt_corr_pass_EB; - - TCanvas* c_ErsatzCaloMEt_corr_pass_EE = new TCanvas("ErsatzCaloMEt_corr_pass_EE", "", 800, 600); - c_ErsatzCaloMEt_corr_pass_EE->cd(); - //h_ErsatzCaloMEt_pass_EE->Scale(1./h_ErsatzCaloMEt_pass_EE->Integral()); - h_ErsatzCaloMEt_pass_EE->SetLineColor(2); - h_ErsatzCaloMEt_pass_EE->SetStats(kFALSE); - h_ErsatzCaloMEt_pass_EE->SetTitle(kFALSE); - h_ErsatzCaloMEt_pass_EE->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzCaloMEt_pass_EE->Draw(); - h_WCaloMEt_pass_EE->Scale(h_ErsatzCaloMEt_pass_EE->Integral()/h_WCaloMEt_pass_EE->Integral()); - h_WCaloMEt_pass_EE->SetLineColor(4); - h_WCaloMEt_pass_EE->Draw("same"); - legend->Draw(); - c_ErsatzCaloMEt_corr_pass_EE->SaveAs("ErsatzCaloMEt_corr_pass_EE.png"); - delete c_ErsatzCaloMEt_corr_pass_EE; - - TCanvas* c_ErsatzCaloMEt_corr_pass = new TCanvas("ErsatzCaloMEt_corr_pass", "", 800, 600); - c_ErsatzCaloMEt_corr_pass->cd(); - //h_ErsatzCaloMEt_pass->Scale(1./h_ErsatzCaloMEt_pass->Integral()); - h_ErsatzCaloMEt_pass->SetLineColor(2); - h_ErsatzCaloMEt_pass->SetStats(kFALSE); - h_ErsatzCaloMEt_pass->SetTitle(kFALSE); - h_ErsatzCaloMEt_pass->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzCaloMEt_pass->Draw(); - h_WCaloMEt_pass->Scale(h_ErsatzCaloMEt_pass->Integral()/h_WCaloMEt_pass->Integral()); - h_WCaloMEt_pass->SetLineColor(4); - h_WCaloMEt_pass->Draw("same"); - legend->Draw(); - c_ErsatzCaloMEt_corr_pass->SaveAs("ErsatzCaloMEt_corr_pass.png"); - delete c_ErsatzCaloMEt_corr_pass; - - TCanvas* c_ErsatzTcMEt_corr_pass_EB = new TCanvas("ErsatzTcMEt_corr_pass_EB", "", 800, 600); - c_ErsatzTcMEt_corr_pass_EB->cd(); - //h_ErsatzTcMEt_pass_EB->Scale(1./h_ErsatzTcMEt_pass_EB->Integral()); - h_ErsatzTcMEt_pass_EB->SetLineColor(2); - h_ErsatzTcMEt_pass_EB->SetStats(kFALSE); - h_ErsatzTcMEt_pass_EB->SetTitle(kFALSE); - h_ErsatzTcMEt_pass_EB->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzTcMEt_pass_EB->Draw(); - h_WTcMEt_pass_EB->Scale(h_ErsatzTcMEt_pass_EB->Integral()/h_WTcMEt_pass_EB->Integral()); - h_WTcMEt_pass_EB->SetLineColor(4); - h_WTcMEt_pass_EB->Draw("same"); - legend->Draw(); - c_ErsatzTcMEt_corr_pass_EB->SaveAs("ErsatzTcMEt_corr_pass_EB.png"); - delete c_ErsatzTcMEt_corr_pass_EB; - - TCanvas* c_ErsatzTcMEt_corr_pass_EE = new TCanvas("ErsatzTcMEt_corr_pass_EE", "", 800, 600); - c_ErsatzTcMEt_corr_pass_EE->cd(); - //h_ErsatzTcMEt_pass_EE->Scale(1./h_ErsatzTcMEt_pass_EE->Integral()); - h_ErsatzTcMEt_pass_EE->SetLineColor(2); - h_ErsatzTcMEt_pass_EE->SetStats(kFALSE); - h_ErsatzTcMEt_pass_EE->SetTitle(kFALSE); - h_ErsatzTcMEt_pass_EE->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzTcMEt_pass_EE->Draw(); - h_WTcMEt_pass_EE->Scale(h_ErsatzTcMEt_pass_EE->Integral()/h_WTcMEt_pass_EE->Integral()); - h_WTcMEt_pass_EE->SetLineColor(4); - h_WTcMEt_pass_EE->Draw("same"); - legend->Draw(); - c_ErsatzTcMEt_corr_pass_EE->SaveAs("ErsatzTcMEt_corr_pass_EE.png"); - delete c_ErsatzTcMEt_corr_pass_EE; - - TCanvas* c_ErsatzTcMEt_corr_pass = new TCanvas("ErsatzTcMEt_corr_pass", "", 800, 600); - c_ErsatzTcMEt_corr_pass->cd(); - //h_ErsatzTcMEt_pass->Scale(1./h_ErsatzTcMEt_pass->Integral()); - h_ErsatzTcMEt_pass->SetLineColor(2); - h_ErsatzTcMEt_pass->SetStats(kFALSE); - h_ErsatzTcMEt_pass->SetTitle(kFALSE); - h_ErsatzTcMEt_pass->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzTcMEt_pass->Draw(); - h_WTcMEt_pass->Scale(h_ErsatzTcMEt_pass->Integral()/h_WTcMEt_pass->Integral()); - h_WTcMEt_pass->SetLineColor(4); - h_WTcMEt_pass->Draw("same"); - legend->Draw(); - c_ErsatzTcMEt_corr_pass->SaveAs("ErsatzTcMEt_corr_pass.png"); - delete c_ErsatzTcMEt_corr_pass; - - TCanvas* c_ErsatzGenMEt_corr_pass_EB = new TCanvas("ErsatzGenMEt_corr_pass_EB", "", 800, 600); - c_ErsatzGenMEt_corr_pass_EB->cd(); - //h_ErsatzGenMEt_pass_EB->Scale(1./h_ErsatzGenMEt_pass_EB->Integral()); - h_ErsatzGenMEt_pass_EB->SetLineColor(2); - h_ErsatzGenMEt_pass_EB->SetStats(kFALSE); - h_ErsatzGenMEt_pass_EB->SetTitle(kFALSE); - h_ErsatzGenMEt_pass_EB->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzGenMEt_pass_EB->Draw(); - h_WGenMEt_pass_EB->Scale(h_ErsatzGenMEt_pass_EB->Integral()/h_WGenMEt_pass_EB->Integral()); - h_WGenMEt_pass_EB->SetLineColor(4); - h_WGenMEt_pass_EB->Draw("same"); - legend->Draw(); - c_ErsatzGenMEt_corr_pass_EB->SaveAs("ErsatzGenMEt_corr_pass_EB.png"); - delete c_ErsatzGenMEt_corr_pass_EB; - - TCanvas* c_ErsatzGenMEt_corr_pass_EE = new TCanvas("ErsatzGenMEt_corr_pass_EE", "", 800, 600); - c_ErsatzGenMEt_corr_pass_EE->cd(); - //h_ErsatzGenMEt_pass_EE->Scale(1./h_ErsatzGenMEt_pass_EE->Integral()); - h_ErsatzGenMEt_pass_EE->SetLineColor(2); - h_ErsatzGenMEt_pass_EE->SetStats(kFALSE); - h_ErsatzGenMEt_pass_EE->SetTitle(kFALSE); - h_ErsatzGenMEt_pass_EE->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzGenMEt_pass_EE->Draw(); - h_WGenMEt_pass_EE->Scale(h_ErsatzGenMEt_pass_EE->Integral()/h_WGenMEt_pass_EE->Integral()); - h_WGenMEt_pass_EE->SetLineColor(4); - h_WGenMEt_pass_EE->Draw("same"); - legend->Draw(); - c_ErsatzGenMEt_corr_pass_EE->SaveAs("ErsatzGenMEt_corr_pass_EE.png"); - delete c_ErsatzGenMEt_corr_pass_EE; - - TCanvas* c_ErsatzGenMEt_corr_pass = new TCanvas("ErsatzGenMEt_corr_pass", "", 800, 600); - c_ErsatzGenMEt_corr_pass->cd(); - //h_ErsatzGenMEt_pass->Scale(1./h_ErsatzGenMEt_pass->Integral()); - h_ErsatzGenMEt_pass->SetLineColor(2); - h_ErsatzGenMEt_pass->SetStats(kFALSE); - h_ErsatzGenMEt_pass->SetTitle(kFALSE); - h_ErsatzGenMEt_pass->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzGenMEt_pass->Draw(); - h_WGenMEt_pass->Scale(h_ErsatzGenMEt_pass->Integral()/h_WGenMEt_pass->Integral()); - h_WGenMEt_pass->SetLineColor(4); - h_WGenMEt_pass->Draw("same"); - legend->Draw(); - c_ErsatzGenMEt_corr_pass->SaveAs("ErsatzGenMEt_corr_pass.png"); - delete c_ErsatzGenMEt_corr_pass; - - TCanvas* c_ErsatzPfMEt_corr_pass_EB = new TCanvas("ErsatzPfMEt_corr_pass_EB", "", 800, 600); - c_ErsatzPfMEt_corr_pass_EB->cd(); - //h_ErsatzPfMEt_pass_EB->Scale(1./h_ErsatzPfMEt_pass_EB->Integral()); - h_ErsatzPfMEt_pass_EB->SetLineColor(2); - h_ErsatzPfMEt_pass_EB->SetStats(kFALSE); - h_ErsatzPfMEt_pass_EB->SetTitle(kFALSE); - h_ErsatzPfMEt_pass_EB->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzPfMEt_pass_EB->Draw(); - h_WPfMEt_pass_EB->Scale(h_ErsatzPfMEt_pass_EB->Integral()/h_WPfMEt_pass_EB->Integral()); - h_WPfMEt_pass_EB->SetLineColor(4); - h_WPfMEt_pass_EB->Draw("same"); - legend->Draw(); - c_ErsatzPfMEt_corr_pass_EB->SaveAs("ErsatzPfMEt_corr_pass_EB.png"); - delete c_ErsatzPfMEt_corr_pass_EB; - - TCanvas* c_ErsatzPfMEt_corr_pass_EE = new TCanvas("ErsatzPfMEt_corr_pass_EE", "", 800, 600); - c_ErsatzPfMEt_corr_pass_EE->cd(); - //h_ErsatzPfMEt_pass_EE->Scale(1./h_ErsatzPfMEt_pass_EE->Integral()); - h_ErsatzPfMEt_pass_EE->SetLineColor(2); - h_ErsatzPfMEt_pass_EE->SetStats(kFALSE); - h_ErsatzPfMEt_pass_EE->SetTitle(kFALSE); - h_ErsatzPfMEt_pass_EE->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzPfMEt_pass_EE->Draw(); - h_WPfMEt_pass_EE->Scale(h_ErsatzPfMEt_pass_EE->Integral()/h_WPfMEt_pass_EE->Integral()); - h_WPfMEt_pass_EE->SetLineColor(4); - h_WPfMEt_pass_EE->Draw("same"); - legend->Draw(); - c_ErsatzPfMEt_corr_pass_EE->SaveAs("ErsatzPfMEt_corr_pass_EE.png"); - delete c_ErsatzPfMEt_corr_pass_EE; - - TCanvas* c_ErsatzPfMEt_corr_pass = new TCanvas("ErsatzPfMEt_corr_pass", "", 800, 600); - c_ErsatzPfMEt_corr_pass->cd(); - //h_ErsatzPfMEt_pass->Scale(1./h_ErsatzPfMEt_pass->Integral()); - h_ErsatzPfMEt_pass->SetLineColor(2); - h_ErsatzPfMEt_pass->SetStats(kFALSE); - h_ErsatzPfMEt_pass->SetTitle(kFALSE); - h_ErsatzPfMEt_pass->GetYaxis()->SetTitleOffset(1.2); - h_ErsatzPfMEt_pass->Draw(); - h_WPfMEt_pass->Scale(h_ErsatzPfMEt_pass->Integral()/h_WPfMEt_pass->Integral()); - h_WPfMEt_pass->SetLineColor(4); - h_WPfMEt_pass->Draw("same"); - legend->Draw(); - c_ErsatzPfMEt_corr_pass->SaveAs("ErsatzPfMEt_corr_pass.png"); - delete c_ErsatzPfMEt_corr_pass; - - cout << "Calculating f ..." << endl; - cout << "MET cut = " << int(cMEt) << endl; - cout << "nPass = " << h_ErsatzMEt_pass->Integral(1,100) << endl; - cout << "nFail = " << h_ErsatzMEt_fail->Integral(1,100) << endl; - - double N_pass_EB = h_ErsatzMEt_pass_EB->Integral(1,100); - double A_EB = h_ErsatzMEt_pass_EB->Integral(int(cMEt)+1,100); - double B_EB = h_ErsatzMEt_pass_EB->Integral(1,int(cMEt)); - double N_pass_EE = h_ErsatzMEt_pass_EE->Integral(1,100); - double A_EE = h_ErsatzMEt_pass_EE->Integral(int(cMEt)+1,100); - double B_EE = h_ErsatzMEt_pass_EE->Integral(1,int(cMEt)); - double N_fail_EB = h_ErsatzMEt_fail_EB->Integral(1,100); - double D_EB = h_ErsatzMEt_fail_EB->Integral(int(cMEt)+1,100); - double C_EB = h_ErsatzMEt_fail_EB->Integral(1,int(cMEt)); - double N_fail_EE = h_ErsatzMEt_fail_EE->Integral(1,100); - double D_EE = h_ErsatzMEt_fail_EE->Integral(int(cMEt)+1,100); - double C_EE = h_ErsatzMEt_fail_EE->Integral(1,int(cMEt)); - - double A = A_EB + A_EE; - double B = B_EB + B_EE; - double C = C_EB + C_EE; - double D = D_EB + D_EE; - double N_pass = N_pass_EB + N_pass_EE; - double N_fail = N_fail_EB + N_fail_EE; - //int N = N_pass + N_fail; - - double eff = 1.0*A/(A+B); - double efferror = sqrt(eff*(1.-eff)/N_pass); - double f = 1.0*A/B; - double ferror = efferror/((1.-eff)*(1.-eff)); - - double effprime = 1.0*D/(D+C); - double effprimeerror = sqrt(effprime*(1.-effprime)/N_fail); - double fprime = 1.0*D/C; - double fprimeerror = effprimeerror/((1.-effprime)*(1.-effprime)); - - cout << "f\tferror\teff\tefferror\tA\tB\tN_pass" << endl; - cout << f << "\t" << ferror << "\t" << eff << "\t" << efferror << "\t" << A << "\t" << B << "\t" << N_pass << "\n" << endl; - - cout << "fprime\tfprimeerror\teffprime\teffprimeerror\tD\tC\tN_fail" << endl; - cout << fprime << "\t" << fprimeerror << "\t" << effprime << "\t" << effprimeerror << "\t" << D << "\t" << C << "\t" << N_fail << "\n" << endl; - -// results << process << "\t" << f << "\t" << ferror << "\t" << A << "\t" << B << "\t" << fprime << "\t" << fprimeerror << "\t" << D << "\t" << C << endl; - - outfile->Write(); - outfile->Close(); -} diff --git a/ElectroWeakAnalysis/ZEE/test/StabilityPlots.cpp b/ElectroWeakAnalysis/ZEE/test/StabilityPlots.cpp deleted file mode 100644 index e2377f2b39320..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/StabilityPlots.cpp +++ /dev/null @@ -1,478 +0,0 @@ -#include "TFile.h" -#include "TGraphErrors.h" -#include "TVectorT.h" -#include "TH1.h" -#include "TLegend.h" -#include "TCanvas.h" -#include -#include -#include -#include - -using namespace std; - -void StabilityPlots() -{ - ofstream CaloMET("CaloMET.txt"); - ofstream TcMET("TcMET.txt"); - //ofstream T1MET("T1MET.txt"); - ofstream PfMET("PfMET.txt"); - CaloMET << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl; - TcMET << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl; - //T1MET << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl; - PfMET << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl; - cout << setprecision(3); - CaloMET << setprecision(3); - TcMET << setprecision(3); - //T1MET << setprecision(3); - PfMET << setprecision(3); - - TVectorT metcut(11), metcuterror(11); - TVectorT f_calo_ersatz(11), df_calo_ersatz(11), eff_calo_ersatz(11), deff_calo_ersatz(11), deltaf_calo_ersatz(11); - TVectorT fprime_calo_ersatz(11), dfprime_calo_ersatz(11), effprime_calo_ersatz(11), deffprime_calo_ersatz(11), deltafprime_calo_ersatz(11); - TVectorT f_tc_ersatz(11), df_tc_ersatz(11), eff_tc_ersatz(11), deff_tc_ersatz(11), deltaf_tc_ersatz(11); - TVectorT fprime_tc_ersatz(11), dfprime_tc_ersatz(11), effprime_tc_ersatz(11), deffprime_tc_ersatz(11), deltafprime_tc_ersatz(11); - //TVectorT f_t1_ersatz(11), df_t1_ersatz(11), eff_t1_ersatz(11), deff_t1_ersatz(11), deltaf_t1_ersatz(11); - //TVectorT fprime_t1_ersatz(11), dfprime_t1_ersatz(11), effprime_t1_ersatz(11), deffprime_t1_ersatz(11), deltafprime_t1_ersatz(11); - TVectorT f_pf_ersatz(11), df_pf_ersatz(11), eff_pf_ersatz(11), deff_pf_ersatz(11), deltaf_pf_ersatz(11); - TVectorT fprime_pf_ersatz(11), dfprime_pf_ersatz(11), effprime_pf_ersatz(11), deffprime_pf_ersatz(11), deltafprime_pf_ersatz(11); - - TFile* file = TFile::Open("ZeePlots.root"); - - TH1F* h_ErsatzCaloMEt_pass = (TH1F*) file->Get("ErsatzMEt_pass"); - TH1F* h_ErsatzCaloMEt_fail = (TH1F*) file->Get("ErsatzMEt_fail"); - TH1F* h_WCaloMEt_pass = (TH1F*) file->Get("WCaloMEt_pass"); - TH1F* h_WCaloMEt_fail = (TH1F*) file->Get("WCaloMEt_fail"); - TH1F* h_ErsatzTcMEt_pass = (TH1F*) file->Get("ErsatzTcMEt_pass"); - TH1F* h_ErsatzTcMEt_fail = (TH1F*) file->Get("ErsatzTcMEt_fail"); - TH1F* h_WTcMEt_pass = (TH1F*) file->Get("WTcMEt_pass"); - TH1F* h_WTcMEt_fail = (TH1F*) file->Get("WTcMEt_fail"); - //TH1F* h_ErsatzT1MEt_pass = (TH1F*) file->Get("ErsatzT1MEt_pass"); - //TH1F* h_ErsatzT1MEt_fail = (TH1F*) file->Get("ErsatzT1MEt_fail"); - //TH1F* h_WT1MEt_pass = (TH1F*) file->Get("WT1MEt_pass"); - //TH1F* h_WT1MEt_fail = (TH1F*) file->Get("WT1MEt_fail"); - TH1F* h_ErsatzPfMEt_pass = (TH1F*) file->Get("ErsatzPfMEt_pass"); - TH1F* h_ErsatzPfMEt_fail = (TH1F*) file->Get("ErsatzPfMEt_fail"); - TH1F* h_WPfMEt_pass = (TH1F*) file->Get("WPfMEt_pass"); - TH1F* h_WPfMEt_fail = (TH1F*) file->Get("WPfMEt_fail"); - - for(int i=0; i<102; i++) - { - cout << h_WCaloMEt_pass->GetBinContent(i) << endl; - } - cout << "sum = " << h_WCaloMEt_pass->Integral(21,100) << endl; - for(int i=0; i<102; i++) - { - cout << h_WCaloMEt_fail->GetBinContent(i) << endl; - } - cout << "sum = " << h_WCaloMEt_fail->Integral(21,100) << endl; - - int i = 0; - double a_calo_ersatz, a_calo_true; - double a_tc_ersatz, a_tc_true; - //double a_t1_ersatz, a_t1_true; - double a_pf_ersatz, a_pf_true; - double b_calo_ersatz, b_calo_true; - double b_tc_ersatz, b_tc_true; - //double b_t1_ersatz, b_t1_true; - double b_pf_ersatz, b_pf_true; - double c_calo_ersatz, c_calo_true; - double c_tc_ersatz, c_tc_true; - //double c_t1_ersatz, c_t1_true; - double c_pf_ersatz, c_pf_true; - double d_calo_ersatz, d_calo_true; - double d_tc_ersatz, d_tc_true; - //double d_t1_ersatz, d_t1_true; - double d_pf_ersatz, d_pf_true; - cout << "mooooooooo" << endl; - for(int cMET=20; cMET<41; cMET+=2) - { - a_calo_ersatz = h_ErsatzCaloMEt_pass->Integral(cMET+1, 100); // Problem Here - a_tc_ersatz = h_ErsatzTcMEt_pass->Integral(cMET+1, 100); - //a_t1_ersatz = h_ErsatzT1MEt_pass->Integral(cMET+1, 100); - a_pf_ersatz = h_ErsatzPfMEt_pass->Integral(cMET+1, 100); - cout << "mooooooooo" << endl; - a_calo_true = h_WCaloMEt_pass->Integral(cMET+1, 100); - a_tc_true = h_WTcMEt_pass->Integral(cMET+1, 100); - //a_t1_true = h_WT1MEt_pass->Integral(cMET+1, 100); - a_pf_true = h_WPfMEt_pass->Integral(cMET+1, 100); - cout << "mooooooooo" << endl; - b_calo_ersatz = h_ErsatzCaloMEt_pass->Integral(1, cMET); - b_tc_ersatz = h_ErsatzTcMEt_pass->Integral(1, cMET); - //b_t1_ersatz = h_ErsatzT1MEt_pass->Integral(1, cMET); - b_pf_ersatz = h_ErsatzPfMEt_pass->Integral(1, cMET); - cout << "mooooooooo" << endl; - b_calo_true = h_WCaloMEt_pass->Integral(1, cMET); - b_tc_true = h_WTcMEt_pass->Integral(1, cMET); - //b_t1_true = h_WT1MEt_pass->Integral(1, cMET); - b_pf_true = h_WPfMEt_pass->Integral(1, cMET); - cout << "mooooooooo" << endl; - c_calo_ersatz = h_ErsatzCaloMEt_fail->Integral(1, cMET); - c_tc_ersatz = h_ErsatzTcMEt_fail->Integral(1, cMET); - //c_t1_ersatz = h_ErsatzT1MEt_fail->Integral(1, cMET); - c_pf_ersatz = h_ErsatzPfMEt_fail->Integral(1, cMET); - cout << "mooooooooo" << endl; - c_calo_true = h_WCaloMEt_fail->Integral(1, cMET); - c_tc_true = h_WTcMEt_fail->Integral(1, cMET); - //c_t1_true = h_WT1MEt_fail->Integral(1, cMET); - c_pf_true = h_WPfMEt_fail->Integral(1, cMET); - cout << "mooooooooo" << endl; - d_calo_ersatz = h_ErsatzCaloMEt_fail->Integral(cMET+1, 100); - d_tc_ersatz = h_ErsatzTcMEt_fail->Integral(cMET+1, 100); - //d_t1_ersatz = h_ErsatzT1MEt_fail->Integral(cMET+1, 100); - d_pf_ersatz = h_ErsatzPfMEt_fail->Integral(cMET+1, 100); - cout << "mooooooooo" << endl; - d_calo_true = h_WCaloMEt_fail->Integral(cMET+1, 100); - d_tc_true = h_WTcMEt_fail->Integral(cMET+1, 100); - //d_t1_true = h_WT1MEt_fail->Integral(cMET+1, 100); - d_pf_true = h_WPfMEt_fail->Integral(cMET+1, 100); - cout << "mooooooooo" << endl; - - metcut[i] = 1.0*cMET; - metcuterror[i] = 0.0; - - eff_calo_ersatz[i] = a_calo_ersatz/(a_calo_ersatz + b_calo_ersatz); - deff_calo_ersatz[i] = sqrt(eff_calo_ersatz[i]*(1. - eff_calo_ersatz[i])/(a_calo_ersatz + b_calo_ersatz)); - f_calo_ersatz[i] = a_calo_ersatz/b_calo_ersatz; - df_calo_ersatz[i] = deff_calo_ersatz[i]/((1. - eff_calo_ersatz[i])*(1. - eff_calo_ersatz[i])); - deltaf_calo_ersatz[i] = a_calo_ersatz/b_calo_ersatz - a_calo_true/b_calo_true; - effprime_calo_ersatz[i] = d_calo_ersatz/(d_calo_ersatz + c_calo_ersatz); - deffprime_calo_ersatz[i] = sqrt(effprime_calo_ersatz[i]*(1. - effprime_calo_ersatz[i])/(d_calo_ersatz + c_calo_ersatz)); - fprime_calo_ersatz[i] = d_calo_ersatz/c_calo_ersatz; - dfprime_calo_ersatz[i] = deffprime_calo_ersatz[i]/((1. - effprime_calo_ersatz[i])*(1. - effprime_calo_ersatz[i])); - deltafprime_calo_ersatz[i] = d_calo_ersatz/c_calo_ersatz - d_calo_true/c_calo_true; - - eff_tc_ersatz[i] = a_tc_ersatz/(a_tc_ersatz + b_tc_ersatz); - deff_tc_ersatz[i] = sqrt(eff_tc_ersatz[i]*(1. - eff_tc_ersatz[i])/(a_tc_ersatz + b_tc_ersatz)); - f_tc_ersatz[i] = a_tc_ersatz/b_tc_ersatz; - df_tc_ersatz[i] = deff_tc_ersatz[i]/((1. - eff_tc_ersatz[i])*(1. - eff_tc_ersatz[i])); - deltaf_tc_ersatz[i] = a_tc_ersatz/b_tc_ersatz - a_tc_true/b_tc_true; - effprime_tc_ersatz[i] = d_tc_ersatz/(d_tc_ersatz + c_tc_ersatz); - deffprime_tc_ersatz[i] = sqrt(effprime_tc_ersatz[i]*(1. - effprime_tc_ersatz[i])/(d_tc_ersatz + c_tc_ersatz)); - fprime_tc_ersatz[i] = d_tc_ersatz/c_tc_ersatz; - dfprime_tc_ersatz[i] = deffprime_tc_ersatz[i]/((1. - effprime_tc_ersatz[i])*(1. - effprime_tc_ersatz[i])); - deltafprime_tc_ersatz[i] = d_tc_ersatz/c_tc_ersatz - d_tc_true/c_tc_true; -/* - eff_t1_ersatz[i] = a_t1_ersatz/(a_t1_ersatz + b_t1_ersatz); - deff_t1_ersatz[i] = sqrt(eff_t1_ersatz[i]*(1. - eff_t1_ersatz[i])/(a_t1_ersatz + b_t1_ersatz)); - f_t1_ersatz[i] = a_t1_ersatz/b_t1_ersatz; - df_t1_ersatz[i] = deff_t1_ersatz[i]/((1. - eff_t1_ersatz[i])*(1. - eff_t1_ersatz[i])); - deltaf_t1_ersatz[i] = a_t1_ersatz/b_t1_ersatz - a_t1_true/b_t1_true; - effprime_t1_ersatz[i] = d_t1_ersatz/(d_t1_ersatz + c_t1_ersatz); - deffprime_t1_ersatz[i] = sqrt(effprime_t1_ersatz[i]*(1. - effprime_t1_ersatz[i])/(d_t1_ersatz + c_t1_ersatz)); - fprime_t1_ersatz[i] = d_t1_ersatz/c_t1_ersatz; - dfprime_t1_ersatz[i] = deffprime_t1_ersatz[i]/((1. - effprime_t1_ersatz[i])*(1. - effprime_t1_ersatz[i])); - deltafprime_t1_ersatz[i] = d_t1_ersatz/c_t1_ersatz - d_t1_true/c_t1_true; -*/ - eff_pf_ersatz[i] = a_pf_ersatz/(a_pf_ersatz + b_pf_ersatz); - deff_pf_ersatz[i] = sqrt(eff_pf_ersatz[i]*(1. - eff_pf_ersatz[i])/(a_pf_ersatz + b_pf_ersatz)); - f_pf_ersatz[i] = a_pf_ersatz/b_pf_ersatz; - df_pf_ersatz[i] = deff_pf_ersatz[i]/((1. - eff_pf_ersatz[i])*(1. - eff_pf_ersatz[i])); - deltaf_pf_ersatz[i] = a_pf_ersatz/b_pf_ersatz - a_pf_true/b_pf_true; - effprime_pf_ersatz[i] = d_pf_ersatz/(d_pf_ersatz + c_pf_ersatz); - deffprime_pf_ersatz[i] = sqrt(effprime_pf_ersatz[i]*(1. - effprime_pf_ersatz[i])/(d_pf_ersatz + c_pf_ersatz)); - fprime_pf_ersatz[i] = d_pf_ersatz/c_pf_ersatz; - dfprime_pf_ersatz[i] = deffprime_pf_ersatz[i]/((1. - effprime_pf_ersatz[i])*(1. - effprime_pf_ersatz[i])); - deltafprime_pf_ersatz[i] = d_pf_ersatz/c_pf_ersatz - d_pf_true/c_pf_true; - - cout << "CaloMEt " << cMET << endl; - cout << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl; - cout << cMET << "\t" - << a_calo_true/b_calo_true << "\t" - << f_calo_ersatz[i] << "\t" << df_calo_ersatz[i] << "\t" - << eff_calo_ersatz[i] << "\t" << deff_calo_ersatz[i] << "\t" - << a_calo_ersatz << "\t" << b_calo_ersatz << "\t" << a_calo_ersatz + b_calo_ersatz << "\t" - << d_calo_true/c_calo_true << "\t" - << fprime_calo_ersatz[i] << "\t" << dfprime_calo_ersatz[i] << "\t" - << effprime_calo_ersatz[i] << "\t" << deffprime_calo_ersatz[i] << "\t" - << d_calo_ersatz << "\t" << c_calo_ersatz << "\t" << d_calo_ersatz + c_calo_ersatz << endl; - cout << cMET << "\t" - << a_tc_true/b_tc_true << "\t" - << f_tc_ersatz[i] << "\t" << df_tc_ersatz[i] << "\t" - << eff_tc_ersatz[i] << "\t" << deff_tc_ersatz[i] << "\t" - << a_tc_ersatz << "\t" << b_tc_ersatz << "\t" << a_tc_ersatz + b_tc_ersatz << "\t" - << d_tc_true/c_tc_true << "\t" - << fprime_tc_ersatz[i] << "\t" << dfprime_tc_ersatz[i] << "\t" - << effprime_tc_ersatz[i] << "\t" << deffprime_tc_ersatz[i] << "\t" - << d_tc_ersatz << "\t" << c_tc_ersatz << "\t" << d_tc_ersatz + c_tc_ersatz << endl; -/* cout << cMET << "\t" - << a_t1_true/b_t1_true << "\t" - << f_t1_ersatz[i] << "\t" << df_t1_ersatz[i] << "\t" - << eff_t1_ersatz[i] << "\t" << deff_t1_ersatz[i] << "\t" - << a_t1_ersatz << "\t" << b_t1_ersatz << "\t" << a_t1_ersatz + b_t1_ersatz << "\t" - << d_t1_true/c_t1_true << "\t" - << fprime_t1_ersatz[i] << "\t" << dfprime_t1_ersatz[i] << "\t" - << effprime_t1_ersatz[i] << "\t" << deffprime_t1_ersatz[i] << "\t" - << d_t1_ersatz << "\t" << c_t1_ersatz << "\t" << d_t1_ersatz + c_t1_ersatz << endl; */ - cout << cMET << "\t" - << a_pf_true/b_pf_true << "\t" - << f_pf_ersatz[i] << "\t" << df_pf_ersatz[i] << "\t" - << eff_pf_ersatz[i] << "\t" << deff_pf_ersatz[i] << "\t" - << a_pf_ersatz << "\t" << b_pf_ersatz << "\t" << a_pf_ersatz + b_pf_ersatz << "\t" - << d_pf_true/c_pf_true << "\t" - << fprime_pf_ersatz[i] << "\t" << dfprime_pf_ersatz[i] << "\t" - << effprime_pf_ersatz[i] << "\t" << deffprime_pf_ersatz[i] << "\t" - << d_pf_ersatz << "\t" << c_pf_ersatz << "\t" << d_pf_ersatz + c_pf_ersatz << endl; - - CaloMET << cMET << "\t" - << a_calo_true/b_calo_true << "\t" - << f_calo_ersatz[i] << "\t" << df_calo_ersatz[i] << "\t" - << eff_calo_ersatz[i] << "\t" << deff_calo_ersatz[i] << "\t" - << a_calo_ersatz << "\t" << b_calo_ersatz << "\t" << a_calo_ersatz + b_calo_ersatz << "\t" - << d_calo_true/c_calo_true << "\t" - << fprime_calo_ersatz[i] << "\t" << dfprime_calo_ersatz[i] << "\t" - << effprime_calo_ersatz[i] << "\t" << deffprime_calo_ersatz[i] << "\t" - << d_calo_ersatz << "\t" << c_calo_ersatz << "\t" << d_calo_ersatz + c_calo_ersatz << endl; - TcMET << cMET << "\t" - << a_tc_true/b_tc_true << "\t" - << f_tc_ersatz[i] << "\t" << df_tc_ersatz[i] << "\t" - << eff_tc_ersatz[i] << "\t" << deff_tc_ersatz[i] << "\t" - << a_tc_ersatz << "\t" << b_tc_ersatz << "\t" << a_tc_ersatz + b_tc_ersatz << "\t" - << d_tc_true/c_tc_true << "\t" - << fprime_tc_ersatz[i] << "\t" << dfprime_tc_ersatz[i] << "\t" - << effprime_tc_ersatz[i] << "\t" << deffprime_tc_ersatz[i] << "\t" - << d_tc_ersatz << "\t" << c_tc_ersatz << "\t" << d_tc_ersatz + c_tc_ersatz << endl; -/* T1MET << cMET << "\t" - << a_t1_true/b_t1_true << "\t" - << f_t1_ersatz[i] << "\t" << df_t1_ersatz[i] << "\t" - << eff_t1_ersatz[i] << "\t" << deff_t1_ersatz[i] << "\t" - << a_t1_ersatz << "\t" << b_t1_ersatz << "\t" << a_t1_ersatz + b_t1_ersatz << "\t" - << d_t1_true/c_t1_true << "\t" - << fprime_t1_ersatz[i] << "\t" << dfprime_t1_ersatz[i] << "\t" - << effprime_t1_ersatz[i] << "\t" << deffprime_t1_ersatz[i] << "\t" - << d_t1_ersatz << "\t" << c_t1_ersatz << "\t" << d_t1_ersatz + c_t1_ersatz << endl;*/ - PfMET << cMET << "\t" - << a_pf_true/b_pf_true << "\t" - << f_pf_ersatz[i] << "\t" << df_pf_ersatz[i] << "\t" - << eff_pf_ersatz[i] << "\t" << deff_pf_ersatz[i] << "\t" - << a_pf_ersatz << "\t" << b_pf_ersatz << "\t" << a_pf_ersatz + b_pf_ersatz << "\t" - << d_pf_true/c_pf_true << "\t" - << fprime_pf_ersatz[i] << "\t" << dfprime_pf_ersatz[i] << "\t" - << effprime_pf_ersatz[i] << "\t" << deffprime_pf_ersatz[i] << "\t" - << d_pf_ersatz << "\t" << c_pf_ersatz << "\t" << d_pf_ersatz + c_pf_ersatz << endl; - - i++; - } - - TCanvas* c_calo_f = new TCanvas("calo_f", "", 800, 600); - TGraphErrors* g_calo_f = new TGraphErrors(metcut, f_calo_ersatz, metcuterror, df_calo_ersatz); - g_calo_f->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_calo_f->GetYaxis()->SetTitle("f_{ersatz}"); - g_calo_f->Draw("ap"); - c_calo_f->SaveAs("calo_f.png"); - delete g_calo_f; - delete c_calo_f; - - TCanvas* c_calo_eff = new TCanvas("calo_eff", "", 800, 600); - TGraphErrors* g_calo_eff = new TGraphErrors(metcut, eff_calo_ersatz, metcuterror, deff_calo_ersatz); - g_calo_eff->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_calo_eff->GetYaxis()->SetTitle("#epsilon_{ersatz}"); - g_calo_eff->Draw("ap"); - c_calo_eff->SaveAs("calo_eff.png"); - delete g_calo_eff; - delete c_calo_eff; - - TCanvas* c_calo_deltaf = new TCanvas("calo_deltaf", "", 800, 600); - TGraphErrors* g_calo_deltaf = new TGraphErrors(metcut, deltaf_calo_ersatz, metcuterror, df_calo_ersatz); - g_calo_deltaf->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_calo_deltaf->GetYaxis()->SetTitle("f_{ersatz} - f_{W#rightarrowe#nu}"); - g_calo_deltaf->Draw("ap"); - c_calo_deltaf->SaveAs("calo_deltaf.png"); - delete g_calo_deltaf; - delete c_calo_deltaf; - - TCanvas* c_calo_fprime = new TCanvas("calo_fprime", "", 800, 600); - TGraphErrors* g_calo_fprime = new TGraphErrors(metcut, fprime_calo_ersatz, metcuterror, dfprime_calo_ersatz); - g_calo_fprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_calo_fprime->GetYaxis()->SetTitle("f'_{ersatz}"); - g_calo_fprime->Draw("ap"); - c_calo_fprime->SaveAs("calo_fprime.png"); - delete g_calo_fprime; - delete c_calo_fprime; - - TCanvas* c_calo_effprime = new TCanvas("calo_effprime", "", 800, 600); - TGraphErrors* g_calo_effprime = new TGraphErrors(metcut, effprime_calo_ersatz, metcuterror, deffprime_calo_ersatz); - g_calo_effprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_calo_effprime->GetYaxis()->SetTitle("#epsilon'_{ersatz}"); - g_calo_effprime->Draw("ap"); - c_calo_effprime->SaveAs("calo_effprime.png"); - delete g_calo_effprime; - delete c_calo_effprime; - - TCanvas* c_calo_deltafprime = new TCanvas("calo_deltafprime", "", 800, 600); - TGraphErrors* g_calo_deltafprime = new TGraphErrors(metcut, deltafprime_calo_ersatz, metcuterror, dfprime_calo_ersatz); - g_calo_deltafprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_calo_deltafprime->GetYaxis()->SetTitle("f'_{ersatz} - f'_{W#rightarrowe#nu}"); - g_calo_deltafprime->Draw("ap"); - c_calo_deltafprime->SaveAs("calo_deltafprime.png"); - delete g_calo_deltafprime; - delete c_calo_deltafprime; - - TCanvas* c_tc_f = new TCanvas("tc_f", "", 800, 600); - TGraphErrors* g_tc_f = new TGraphErrors(metcut, f_tc_ersatz, metcuterror, df_tc_ersatz); - g_tc_f->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_tc_f->GetYaxis()->SetTitle("f_{ersatz}"); - g_tc_f->Draw("ap"); - c_tc_f->SaveAs("tc_f.png"); - delete g_tc_f; - delete c_tc_f; - - TCanvas* c_tc_eff = new TCanvas("tc_eff", "", 800, 600); - TGraphErrors* g_tc_eff = new TGraphErrors(metcut, eff_tc_ersatz, metcuterror, deff_tc_ersatz); - g_tc_eff->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_tc_eff->GetYaxis()->SetTitle("#epsilon_{ersatz}"); - g_tc_eff->Draw("ap"); - c_tc_eff->SaveAs("tc_eff.png"); - delete g_tc_eff; - delete c_tc_eff; - - TCanvas* c_tc_deltaf = new TCanvas("tc_deltaf", "", 800, 600); - TGraphErrors* g_tc_deltaf = new TGraphErrors(metcut, deltaf_tc_ersatz, metcuterror, df_tc_ersatz); - g_tc_deltaf->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_tc_deltaf->GetYaxis()->SetTitle("f_{ersatz} - f_{W#rightarrowe#nu}"); - g_tc_deltaf->Draw("ap"); - c_tc_deltaf->SaveAs("tc_deltaf.png"); - delete g_tc_deltaf; - delete c_tc_deltaf; - - TCanvas* c_tc_fprime = new TCanvas("tc_fprime", "", 800, 600); - TGraphErrors* g_tc_fprime = new TGraphErrors(metcut, fprime_tc_ersatz, metcuterror, dfprime_tc_ersatz); - g_tc_fprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_tc_fprime->GetYaxis()->SetTitle("f'_{ersatz}"); - g_tc_fprime->Draw("ap"); - c_tc_fprime->SaveAs("tc_fprime.png"); - delete g_tc_fprime; - delete c_tc_fprime; - - TCanvas* c_tc_effprime = new TCanvas("tc_effprime", "", 800, 600); - TGraphErrors* g_tc_effprime = new TGraphErrors(metcut, effprime_tc_ersatz, metcuterror, deffprime_tc_ersatz); - g_tc_effprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_tc_effprime->GetYaxis()->SetTitle("#epsilon'_{ersatz}"); - g_tc_effprime->Draw("ap"); - c_tc_effprime->SaveAs("tc_effprime.png"); - delete g_tc_effprime; - delete c_tc_effprime; - - TCanvas* c_tc_deltafprime = new TCanvas("tc_deltafprime", "", 800, 600); - TGraphErrors* g_tc_deltafprime = new TGraphErrors(metcut, deltafprime_tc_ersatz, metcuterror, dfprime_tc_ersatz); - g_tc_deltafprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_tc_deltafprime->GetYaxis()->SetTitle("f'_{ersatz} - f'_{W#rightarrowe#nu}"); - g_tc_deltafprime->Draw("ap"); - c_tc_deltafprime->SaveAs("tc_deltafprime.png"); - delete g_tc_deltafprime; - delete c_tc_deltafprime; -/* - TCanvas* c_t1_f = new TCanvas("t1_f", "", 800, 600); - TGraphErrors* g_t1_f = new TGraphErrors(metcut, f_t1_ersatz, metcuterror, df_t1_ersatz); - g_t1_f->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_t1_f->GetYaxis()->SetTitle("f_{ersatz}"); - g_t1_f->Draw("ap"); - c_t1_f->SaveAs("t1_f.png"); - delete g_t1_f; - delete c_t1_f; - - TCanvas* c_t1_eff = new TCanvas("t1_eff", "", 800, 600); - TGraphErrors* g_t1_eff = new TGraphErrors(metcut, eff_t1_ersatz, metcuterror, deff_t1_ersatz); - g_t1_eff->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_t1_eff->GetYaxis()->SetTitle("#epsilon_{ersatz}"); - g_t1_eff->Draw("ap"); - c_t1_eff->SaveAs("t1_eff.png"); - delete g_t1_eff; - delete c_t1_eff; - - TCanvas* c_t1_deltaf = new TCanvas("t1_deltaf", "", 800, 600); - TGraphErrors* g_t1_deltaf = new TGraphErrors(metcut, deltaf_t1_ersatz, metcuterror, df_t1_ersatz); - g_t1_deltaf->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_t1_deltaf->GetYaxis()->SetTitle("f_{ersatz} - f_{W#rightarrowe#nu}"); - g_t1_deltaf->Draw("ap"); - c_t1_deltaf->SaveAs("t1_deltaf.png"); - delete g_t1_deltaf; - delete c_t1_deltaf; - - TCanvas* c_t1_fprime = new TCanvas("t1_fprime", "", 800, 600); - TGraphErrors* g_t1_fprime = new TGraphErrors(metcut, fprime_t1_ersatz, metcuterror, dfprime_t1_ersatz); - g_t1_fprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_t1_fprime->GetYaxis()->SetTitle("f'_{ersatz}"); - g_t1_fprime->Draw("ap"); - c_t1_fprime->SaveAs("t1_fprime.png"); - delete g_t1_fprime; - delete c_t1_fprime; - - TCanvas* c_t1_effprime = new TCanvas("t1_effprime", "", 800, 600); - TGraphErrors* g_t1_effprime = new TGraphErrors(metcut, effprime_t1_ersatz, metcuterror, deffprime_t1_ersatz); - g_t1_effprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_t1_effprime->GetYaxis()->SetTitle("#epsilon'_{ersatz}"); - g_t1_effprime->Draw("ap"); - c_t1_effprime->SaveAs("t1_effprime.png"); - delete g_t1_effprime; - delete c_t1_effprime; - - TCanvas* c_t1_deltafprime = new TCanvas("t1_deltafprime", "", 800, 600); - TGraphErrors* g_t1_deltafprime = new TGraphErrors(metcut, deltafprime_t1_ersatz, metcuterror, dfprime_t1_ersatz); - g_t1_deltafprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_t1_deltafprime->GetYaxis()->SetTitle("f'_{ersatz} - f'_{W#rightarrowe#nu}"); - g_t1_deltafprime->Draw("ap"); - c_t1_deltafprime->SaveAs("t1_deltafprime.png"); - delete g_t1_deltafprime; - delete c_t1_deltafprime; -*/ - TCanvas* c_pf_f = new TCanvas("pf_f", "", 800, 600); - TGraphErrors* g_pf_f = new TGraphErrors(metcut, f_pf_ersatz, metcuterror, df_pf_ersatz); - g_pf_f->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_pf_f->GetYaxis()->SetTitle("f_{ersatz}"); - g_pf_f->Draw("ap"); - c_pf_f->SaveAs("pf_f.png"); - delete g_pf_f; - delete c_pf_f; - - TCanvas* c_pf_eff = new TCanvas("pf_eff", "", 800, 600); - TGraphErrors* g_pf_eff = new TGraphErrors(metcut, eff_pf_ersatz, metcuterror, deff_pf_ersatz); - g_pf_eff->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_pf_eff->GetYaxis()->SetTitle("#epsilon_{ersatz}"); - g_pf_eff->Draw("ap"); - c_pf_eff->SaveAs("pf_eff.png"); - delete g_pf_eff; - delete c_pf_eff; - - TCanvas* c_pf_deltaf = new TCanvas("pf_deltaf", "", 800, 600); - TGraphErrors* g_pf_deltaf = new TGraphErrors(metcut, deltaf_pf_ersatz, metcuterror, df_pf_ersatz); - g_pf_deltaf->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_pf_deltaf->GetYaxis()->SetTitle("f_{ersatz} - f_{W#rightarrowe#nu}"); - g_pf_deltaf->Draw("ap"); - c_pf_deltaf->SaveAs("pf_deltaf.png"); - delete g_pf_deltaf; - delete c_pf_deltaf; - - TCanvas* c_pf_fprime = new TCanvas("pf_fprime", "", 800, 600); - TGraphErrors* g_pf_fprime = new TGraphErrors(metcut, fprime_pf_ersatz, metcuterror, dfprime_pf_ersatz); - g_pf_fprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_pf_fprime->GetYaxis()->SetTitle("f'_{ersatz}"); - g_pf_fprime->Draw("ap"); - c_pf_fprime->SaveAs("pf_fprime.png"); - delete g_pf_fprime; - delete c_pf_fprime; - - TCanvas* c_pf_effprime = new TCanvas("pf_effprime", "", 800, 600); - TGraphErrors* g_pf_effprime = new TGraphErrors(metcut, effprime_pf_ersatz, metcuterror, deffprime_pf_ersatz); - g_pf_effprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_pf_effprime->GetYaxis()->SetTitle("#epsilon'_{ersatz}"); - g_pf_effprime->Draw("ap"); - c_pf_effprime->SaveAs("pf_effprime.png"); - delete g_pf_effprime; - delete c_pf_effprime; - - TCanvas* c_pf_deltafprime = new TCanvas("pf_deltafprime", "", 800, 600); - TGraphErrors* g_pf_deltafprime = new TGraphErrors(metcut, deltafprime_pf_ersatz, metcuterror, dfprime_pf_ersatz); - g_pf_deltafprime->GetXaxis()->SetTitle("#slash{E}_{T} cut"); - g_pf_deltafprime->GetYaxis()->SetTitle("f'_{ersatz} - f'_{W#rightarrowe#nu}"); - g_pf_deltafprime->Draw("ap"); - c_pf_deltafprime->SaveAs("pf_deltafprime.png"); - delete g_pf_deltafprime; - delete c_pf_deltafprime; - - file->Close(); - CaloMET.close(); - TcMET.close(); - //T1MET.close(); - PfMET.close(); -} diff --git a/ElectroWeakAnalysis/ZEE/test/Zersatzmet_cfg.py b/ElectroWeakAnalysis/ZEE/test/Zersatzmet_cfg.py deleted file mode 100644 index 35e7582ceec8b..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/Zersatzmet_cfg.py +++ /dev/null @@ -1,64 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("ErsatzMEtMaker") - -process.load("FWCore.MessageService.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string("DEBUG") -#process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1), - limit = cms.untracked.int32(10000000) -) -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - #reportEvery = cms.untracked.int32(500), - reportEvery = cms.untracked.int32(1), - limit = cms.untracked.int32(10000000) -) -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -process.electronHcalTowerIsolationLcone.intRadius = 0.0 -#process.load("RecoEcal.EgammaClusterProducers.geometryForClustering_cff") -process.load("Geometry.CaloEventSetup.CaloTopology_cfi") -process.load("PhysicsTools.PatAlgos.recoLayer0.jetMETCorrections_cff") -#process.extend(include("RecoEcal/EgammaClusterProducers/data/geometryForClustering.cff")) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(10000) ) - -#from ElectroWeakAnalysis.ErsatzMEt.Zee_data_cff import newFileNames - -process.source = cms.Source("PoolSource", -# fileNames = newFileNames - fileNames = cms.untracked.vstring() - #fileNames = cms.untracked.vstring("file:/tmp/rnandi/Zee_AODSIM.root", "file:/tmp/rnandi/Zee_AODSIM_2.root") -# "/store/mc/Summer08/Zee/GEN-SIM-RECO/IDEAL_V11_redigi_v2/0008/0840D3A9-A000-DE11-ABF8-00161725E4EB.root") -) - -from ElectroWeakAnalysis.ZEE.ersatzmet_cfi import ErsatzMEtParams -#from ElectroWeakAnalysis.ErsatzMEt.EtaWeights_cff import EtaWeightsPS -process.ErsatzMEt = cms.EDAnalyzer('ErsatzMEt', -ErsatzMEtParams, -Zevent = cms.bool(True), -HLTPathCheck = cms.bool(False) -) -# Other statements -process.ZeeMcEleFilter = cms.EDFilter("MCParticlePairFilter", - Status = cms.untracked.vint32(3, 3), - MinPt = cms.untracked.vdouble(0.0, 0.0), - MaxEta = cms.untracked.vdouble(2.7, 2.7), - MinEta = cms.untracked.vdouble(-2.7, -2.7), - ParticleCharge = cms.untracked.int32(0), - ParticleID1 = cms.untracked.vint32(11), - ParticleID2 = cms.untracked.vint32(11) -) -process.ZeeFilSeq = cms.Sequence(process.ZeeMcEleFilter) - -#process.p = cms.Path(process.ZeeFilSeq*process.egammaIsolationSequence*process.corMetType1Icone5*process.ErsatzMEt) -#process.p = cms.Path(process.ZeeFilSeq*process.egammaIsolationSequence*process.ErsatzMEt) -process.p = cms.Path(process.ErsatzMEt) -process.TFileService = cms.Service("TFileService", fileName = cms.string("Zee_AODSIM.root")) diff --git a/ElectroWeakAnalysis/ZEE/test/analysisersatz_cfg.py b/ElectroWeakAnalysis/ZEE/test/analysisersatz_cfg.py deleted file mode 100644 index 97d5d15f72747..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/analysisersatz_cfg.py +++ /dev/null @@ -1,73 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("AnalysisErsatz") - -process.load("FWCore.MessageService.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string("DEBUG") -#process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1), - limit = cms.untracked.int32(10000000) -) -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - # reportEvery = cms.untracked.int32(1000), - reportEvery = cms.untracked.int32(1), - limit = cms.untracked.int32(10000000) -) - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1)) - -#from ElectroWeakAnalysis.ErsatzMEt.Wenu_cff import newFileNames -#from ElectroWeakAnalysis.AnalysisErsatz.Wenu_Lots_cff import newFileNames -#from ElectroWeakAnalysis.ErsatzMEt.Reduced_Zee_cff import newFileNames - -process.source = cms.Source("PoolSource", - #fileNames = newFileNames - # replace 'myfile.root' with the source file you want to use -# fileNames = cms.untracked.vstring() - fileNames = cms.untracked.vstring("file:/tmp/rnandi/WenuTrue_AODSIM.root") -) - -# Other statements -process.WenuMcEleFilter = cms.EDFilter("PythiaFilter", - Status = cms.untracked.int32(1), - MotherID = cms.untracked.int32(11), - MinPt = cms.untracked.double(0.0), - ParticleID = cms.untracked.int32(11), - MaxEta = cms.untracked.double(2.7), - MinEta = cms.untracked.double(-2.7) -) -process.WenuFilSeq = cms.Sequence(process.WenuMcEleFilter) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string("STARTUP31X_V4::All") -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.load("RecoEcal.EgammaClusterProducers.geometryForClustering_cff") -#process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequencePAT_cff") - -from ElectroWeakAnalysis.ZEE.ersatzmet_cfi import ErsatzMEtParams - -process.analyse = cms.EDAnalyzer('AnalysisErsatz', -ErsatzMEtParams, -ErsatzEvent = cms.bool(False) -) - -process.add_( cms.Service( - "RandomNumberGeneratorService", - analyse = cms.PSet( - initialSeed = cms.untracked.uint32(563545), - engineName = cms.untracked.string('TRandom3')) -)) -#process.p = cms.Path(process.WenuFilSeq*process.analyse) -#process.p = cms.Path(process.egammaIsolationSequence*process.analyse) -process.p = cms.Path(process.analyse) -#process.p = cms.Path(process.WenuFilSeq*process.egammaIsolationSequence*process.analyse) -process.TFileService = cms.Service("TFileService", - fileName = cms.string("WenuTrue_AODSIM.root"), -) diff --git a/ElectroWeakAnalysis/ZEE/test/aod_ZeePlots.py b/ElectroWeakAnalysis/ZEE/test/aod_ZeePlots.py deleted file mode 100644 index f24c2c77fe583..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/aod_ZeePlots.py +++ /dev/null @@ -1,179 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - #fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/RedigiSummer08RootTrees/WenuRedigi_RECO_SAMPLE.root') - fileNames = cms.untracked.vstring( - 'file:zee_Summer09-MC_31X_V3_AODSIM_v1_AODSIM.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('MC_31X_V5::All') -#process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') - -process.load("Configuration.StandardSequences.MagneticField_cff") - -# this filter produces patElectrons and patCaloMets to be used in the following -process.aod2patFilter = cms.EDFilter('aod2patFilterZee', - electronCollectionTag = cms.untracked.InputTag("gsfElectrons","","RECO"), - metCollectionTag = cms.untracked.InputTag("met","","RECO"), - ) - -############################################################################## -## -## the filter to select the candidates from the data samples -## -## -## WARNING: you may want to modify this item: -HLT_process_name = "HLT8E29" # options: HLT or HLT8E29 -# trigger path selection -HLT_path_name = "HLT_Ele15_LW_L1R" -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter" -# -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - # cuts - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - # trigger here - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(False), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("aod2patFilter","patElectrons","PAT"), - metCollectionTag = cms.untracked.InputTag("aod2patFilter","patCaloMets","PAT") - - ) -#################################################################################### -## -## the W selection that you prefer - -selection_a2 = cms.PSet ( - trackIso_EB = cms.untracked.double(7.2), - ecalIso_EB = cms.untracked.double(5.7), - hcalIso_EB = cms.untracked.double(8.1), - sihih_EB = cms.untracked.double(0.01), - dphi_EB = cms.untracked.double(1000.), - deta_EB = cms.untracked.double(0.0071), - hoe_EB = cms.untracked.double(1000), - - trackIso_EE = cms.untracked.double(5.1), - ecalIso_EE = cms.untracked.double(5.0), - hcalIso_EE = cms.untracked.double(3.4), - sihih_EE = cms.untracked.double(0.028), - dphi_EE = cms.untracked.double(1000.), - deta_EE = cms.untracked.double(0.0066), - hoe_EE = cms.untracked.double(1000.) - ) - -selection_test = cms.PSet ( - trackIso_EB = cms.untracked.double(10), - ecalIso_EB = cms.untracked.double(10), - hcalIso_EB = cms.untracked.double(10), - sihih_EB = cms.untracked.double(0.1), - dphi_EB = cms.untracked.double(1), - deta_EB = cms.untracked.double(1), - hoe_EB = cms.untracked.double(1), - - trackIso_EE = cms.untracked.double(10), - ecalIso_EE = cms.untracked.double(10), - hcalIso_EE = cms.untracked.double(10), - sihih_EE = cms.untracked.double(1), - dphi_EE = cms.untracked.double(1), - deta_EE = cms.untracked.double(1), - hoe_EE = cms.untracked.double(1) - ) - -selection_inverse = cms.PSet ( - trackIso_EB_inv = cms.untracked.bool(True), - trackIso_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('ZeePlots', - selection_a2, - selection_inverse, - zeeCollectionTag = cms.untracked.InputTag( - "zeeFilter","selectedZeeCandidates","PAT") - ) - - - -process.eca = cms.EDAnalyzer("EventContentAnalyzer") -process.p = cms.Path(process.aod2patFilter +process.zeeFilter + process.plotter) -#process.p = cms.Path(process.aod2patFilter + process.eca) - - - -#### SET OF Trigger names for AOD - 321 -# -# HLTPath_[0] = "HLT_Ele10_LW_L1R"; -# HLTFilterType_[0] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10PixelMatchFilter","","HLT8E29"); -# HLTPath_[1] = "HLT_Ele10_LW_EleId_L1R"; -# HLTFilterType_[1] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt10EleIdDphiFilter","","HLT8E29"); -# HLTPath_[2] = "HLT_Ele15_LW_L1R"; -# HLTFilterType_[2] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter","","HLT8E29"); -# HLTPath_[3] = "HLT_Ele15_SC10_LW_L1R"; -# HLTFilterType_[3] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15ESDoubleSC10","","HLT8E29"); -# HLTPath_[4] = "HLT_Ele15_SiStrip_L1R"; -# HLTFilterType_[4] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt15PixelMatchFilter","","HLT8E29"); -# HLTPath_[5] = "HLT_Ele20_LW_L1R"; -# HLTFilterType_[5] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15EtFilterESet20","","HLT8E29"); -# HLTPath_[6] = "HLT_DoubleEle5_SW_L1R"; -# HLTFilterType_[6] = edm::InputTag("hltL1NonIsoHLTNonIsoDoubleElectronEt5PixelMatchFilter","","HLT8E29"); -# HLTPath_[7] = "HLT_Ele15_SC10_LW_L1R"; -# HLTFilterType_[7] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15ESDoubleSC10","","HLT8E29"); -# HLTPath_[8] = "tba"; -# HLTFilterType_[8] = edm::InputTag("tba"); -# HLTPath_[9] = "tba"; -# HLTFilterType_[9] = edm::InputTag("tba"); -# // e31 menu -# HLTPath_[10] = "HLT_Ele10_SW_L1R"; -# HLTFilterType_[10] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt10PixelMatchFilter","","HLT"); -# HLTPath_[11] = "HLT_Ele15_SW_L1R"; -# HLTFilterType_[11] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15PixelMatchFilter","","HLT"); -# HLTPath_[12] = "HLT_Ele15_SiStrip_L1R"; // <--- same as [4] -# HLTFilterType_[12] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt15PixelMatchFilter","","HLT"); -# HLTPath_[13] = "HLT_Ele15_SW_LooseTrackIso_L1R"; -# HLTFilterType_[13] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15LTITrackIsolFilter","","HLT"); -# HLTPath_[14] = "HLT_Ele15_SW_EleId_L1R"; -# HLTFilterType_[14] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdDphiFilter","","HLT"); -# HLTPath_[15] = "HLT_Ele20_SW_L1R"; -# HLTFilterType_[15] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt20PixelMatchFilter","","HLT"); -# HLTPath_[16] = "HLT_Ele20_SiStrip_L1R"; -# HLTFilterType_[16] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronSiStripEt20PixelMatchFilter","","HLT"); -# HLTPath_[17] = "HLT_Ele25_SW_L1R"; -# HLTFilterType_[17] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EtFilterESet25","","HLT"); -# HLTPath_[18] = "HLT_Ele25_SW_EleId_LooseTrackIso_L1R"; -# HLTFilterType_[18] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdTrackIsolFilterESet25LTI","","HLT"); -# HLTPath_[19] = "HLT_DoubleEle10_SW_L1R"; -# HLTFilterType_[19] = edm::InputTag("hltL1NonIsoHLTNonIsoDoubleElectronEt10PixelMatchFilter","","HLT"); -# HLTPath_[20] = "HLT_Ele15_SC15_SW_EleId_L1R"; -# HLTFilterType_[20] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15EleIdESDoubleSC15","","HLT"); -# HLTPath_[21] = "HLT_Ele15_SC15_SW_LooseTrackIso_L1R"; -# HLTFilterType_[21] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15LTIESDoubleSC15","","HLT"); -# HLTPath_[22] = "HLT_Ele20_SC15_SW_L1R"; -# HLTFilterType_[22] = edm::InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt20ESDoubleSC15","","HLT"); diff --git a/ElectroWeakAnalysis/ZEE/test/ersatzmet_cfg.py b/ElectroWeakAnalysis/ZEE/test/ersatzmet_cfg.py deleted file mode 100644 index e967afa9565cf..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/ersatzmet_cfg.py +++ /dev/null @@ -1,51 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("ErsatzMEtMaker") - -process.load("FWCore.MessageService.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string("DEBUG") -#process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1), - limit = cms.untracked.int32(10000000) -) -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - #reportEvery = cms.untracked.int32(500), - reportEvery = cms.untracked.int32(1), - limit = cms.untracked.int32(10000000) -) -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -process.electronHcalTowerIsolationLcone.intRadius = 0.0 -#process.load("RecoEcal.EgammaClusterProducers.geometryForClustering_cff") -process.load("Geometry.CaloEventSetup.CaloTopology_cfi") -process.load("PhysicsTools.PatAlgos.recoLayer0.jetMETCorrections_cff") -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(10000) ) - -#from ElectroWeakAnalysis.ErsatzMEt.Reduced_ZeeFull_cff import newFileNames - -process.source = cms.Source("PoolSource", -# fileNames = newFileNames - #fileNames = cms.untracked.vstring('/store/user/wardrope/Zee/Zee/652884fbfc42ebe755d455783d693c41//Zee_8.root') - fileNames = cms.untracked.vstring("file:/tmp/rnandi/Zee_AODSIM.root") - #fileNames = cms.untracked.vstring() -) - -from ElectroWeakAnalysis.ZEE.ersatzmet_cfi import ErsatzMEtParams -#from ElectroWeakAnalysis.ErsatzMEt.EtaWeights_cff import EtaWeightsPS -process.ErsatzMEt = cms.EDAnalyzer('ErsatzMEt', -ErsatzMEtParams, -Zevent = cms.bool(False) -) -# Other statements - -#process.p = cms.Path(process.egammaIsolationSequence*process.ErsatzMEt) -process.p = cms.Path(process.ErsatzMEt) -process.TFileService = cms.Service("TFileService", fileName = cms.string("Zee.root")) diff --git a/ElectroWeakAnalysis/ZEE/test/ersatzmet_cfi.py b/ElectroWeakAnalysis/ZEE/test/ersatzmet_cfi.py deleted file mode 100644 index 97f34c88271b5..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/ersatzmet_cfi.py +++ /dev/null @@ -1,70 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -ErsatzMEtParams = cms.PSet( -MCTruthCollection = cms.InputTag("genParticles"), -ElectronCollection = cms.InputTag("gsfElectrons"), -PfElectronCollection = cms.InputTag("pfElectrons"), -HybridScCollection = cms.InputTag("correctedHybridSuperClusters"), -M5x5ScCollection = cms.InputTag("correctedMulti5x5SuperClustersWithPreshower"), -sigmaElectronicNoise_EB = cms.double(0.03), -hyb_fCorrPSet = cms.PSet( - brLinearLowThr = cms.double(1.1), - fBremVec = cms.vdouble(-0.05208, 0.1331, 0.9196, -0.0005735, 1.343), - brLinearHighThr = cms.double(8.0), - fEtEtaVec = cms.vdouble(1.0012, -0.5714, 0, 0, - 0, 0.5549, 12.74, 1.0448, - 0, 0, 0, 0, - 8.0, 1.023, -0.00181, 0, 0) - ), -sigmaElectronicNoise_EE = cms.double(0.15), -m5x5_fCorrPSet = cms.PSet( - brLinearLowThr = cms.double(0.6), - fBremVec = cms.vdouble(-0.04163, 0.08552, 0.95048, -0.002308, 1.077), - brLinearHighThr = cms.double(6.0), - fEtEtaVec = cms.vdouble(0.9746, -6.512, 0, 0, - 0.02771, 4.983, 0, 0, - -0.007288, -0.9446, 0, 0, - 0, 0, 0, 1, 1) -), -CElecPtMin = cms.double(1.), -CEB_sigmaIEtaIEta = cms.double(99999.), -CEB_deltaPhiIn = cms.double(99999.), -CEB_deltaEtaIn = cms.double(99999.), -CEB_EcalIso = cms.double(99999.), -CEB_HcalIso = cms.double(99999.), -CEB_TrckIso = cms.double(99999.), -CEE_sigmaIEtaIEta = cms.double(99999.), -CEE_deltaPhiIn = cms.double(99999.), -CEE_deltaEtaIn = cms.double(99999.), -CEE_EcalIso = cms.double(99999.), -CEE_HcalIso = cms.double(99999.), -CEE_TrckIso = cms.double(99999.), -eIsoTrack = cms.InputTag("electronTrackIsolationLcone"), -eIsoEcal = cms.InputTag("electronEcalRecHitIsolationLcone"), -eIsoHcal = cms.InputTag("electronHcalTowerIsolationLcone"), -CaloMEtCollection = cms.InputTag("met"), -GenMEtCollection = cms.InputTag("genMet"), -PfMEtCollection = cms.InputTag("pfMet"), -TcMEtCollection = cms.InputTag("tcMet"), -#T1MEtCollection = cms.InputTag("layer1METs"), -#CaloMEtT1Collection = cms.InputTag("Type1MET"), -#CaloMEtT1Collection = cms.InputTag("corMetType1Icone5"), -#TriggerResults = cms.InputTag("TriggerResults","","HLT8E29"), -#TriggerEvent = cms.InputTag("hltTriggerSummaryAOD","","HLT8E29"), -#TriggerPath = cms.InputTag("hltL1NonIsoHLTNonIsoSingleElectronLWEt15PixelMatchFilter","","HLT8E29"), -#TriggerName = cms.string("HLT_Ele15_LW_L1R"), -TriggerResults = cms.InputTag("TriggerResults","","HLT"), -TriggerEvent = cms.InputTag("hltTriggerSummaryAOD","","HLT"), -TriggerPath = cms.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15TrackIsolFilter", "", "HLT"), -TriggerName = cms.string("HLT_Ele15_SW_LooseTrackIso_L1R"), -mW = cms.double(80.398), -mZ = cms.double(91.188), -HLTPathCheck = cms.bool(False), -mTPmin = cms.double(61.), -mTPmax = cms.double(121.), -BarrelEtaMax = cms.double(1.4442), -EndCapEtaMin = cms.double(1.56), -EndCapEtaMax = cms.double(2.5), -etaWidth = cms.int32(7), -phiWidth = cms.int32(25) -) diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeeFilterSkimming.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeeFilterSkimming.py deleted file mode 100644 index 22cbfbb11a71c..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeeFilterSkimming.py +++ /dev/null @@ -1,164 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - #'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - 'rfio:/castor/cern.ch/cms/store/relval/CMSSW_3_5_7/RelValZEE/GEN-SIM-RECO/START3X_V26-v1/0012/020A72FB-4749-DF11-A27E-003048679076.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(300) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('START3X_V26A::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -process.load("CommonTools.ParticleFlow.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1RawCaloMETs = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1RawCaloMETs' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.layer1RawCaloMETs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) -# -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet( -# tracker = cms.PSet( -# src = cms.InputTag("electronTrackIsolationScone"), -# ), -# ecal = cms.PSet( -# src = cms.InputTag("electronEcalRecHitIsolationLcone"), -# ), -# hcal = cms.PSet( -# src = cms.InputTag("electronHcalTowerIsolationLcone"), -# ), -# user = cms.VPSet(), - ) - -## -## Pre-calculated electron identification selections -## -## set the variable false if you don't need them, or if you use your own PSet -## -## any input tag you set corresponds to a valuemap that either it is stored in the event -## or you create it yourself -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## WARNING: you may want to modify this item: T R I G G E R S E L E C T I O N -HLT_process_name = "HLT" # -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - # cuts - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - useTriggerInfo = cms.untracked.bool(True), - # trigger - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # exra variable calculation - calculateConversionRejection = cms.untracked.bool(True), - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT") - ) -#################################################################################### -## - - - -process.zeePath = cms.Path(process.patDefaultSequence*process.zeeFilter) - - -process.zeeOutputModule = cms.OutputModule( "PoolOutputModule", - fileName = cms.untracked.string("zeeCandidates.root"), - outputCommands = cms.untracked.vstring( -# 'keep *' - 'drop *', - 'keep *_*_selectedZeeCandidates_*', - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('zeePath',),), - - ) - -process.outpath = cms.EndPath(process.zeeOutputModule) - - diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeeFilterSkimming_data.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeeFilterSkimming_data.py deleted file mode 100644 index ae89bb7f51e62..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeeFilterSkimming_data.py +++ /dev/null @@ -1,166 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - "dcap://gfe02:22128/pnfs/hep.ph.ic.ac.uk/data/cms/store/data/Commissioning10/MinimumBias/RECO/May6thPDSkim2_SD_EG-v1/0135/FCC2FA5A-BB5D-DF11-8246-002618943978.root" - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(300) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('GR_R_35X_V8B::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1RawCaloMETs = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1RawCaloMETs' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.layer1RawCaloMETs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) -# -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet( -# tracker = cms.PSet( -# src = cms.InputTag("electronTrackIsolationScone"), -# ), -# ecal = cms.PSet( -# src = cms.InputTag("electronEcalRecHitIsolationLcone"), -# ), -# hcal = cms.PSet( -# src = cms.InputTag("electronHcalTowerIsolationLcone"), -# ), -# user = cms.VPSet(), - ) - -## -## Pre-calculated electron identification selections -## -## set the variable false if you don't need them, or if you use your own PSet -## -## any input tag you set corresponds to a valuemap that either it is stored in the event -## or you create it yourself -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## WARNING: you may want to modify this item: T R I G G E R S E L E C T I O N -HLT_process_name = "HLT" # -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - # cfg for data - dataMagneticFieldSetUp = cms.untracked.bool(True), - dcsTag = cms.untracked.InputTag("scalersRawToDigi"), - # cuts - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - useTriggerInfo = cms.untracked.bool(True), - # trigger - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # exra variable calculation - calculateConversionRejection = cms.untracked.bool(True), - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT") - ) -#################################################################################### -## - - - -process.zeePath = cms.Path(process.patDefaultSequence*process.zeeFilter) - - -process.zeeOutputModule = cms.OutputModule( "PoolOutputModule", - fileName = cms.untracked.string("zeeCandidates.root"), - outputCommands = cms.untracked.vstring( -# 'keep *' - 'drop *', - 'keep *_*_selectedZeeCandidates_*', - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('zeePath',),), - - ) - -process.outpath = cms.EndPath(process.zeeOutputModule) - - diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeePlots.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeePlots.py deleted file mode 100644 index 0a1411584f539..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeePlots.py +++ /dev/null @@ -1,187 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - #'file:rfio:/castor/cern.ch/user/r/rompotis/DATA_STUDIES/Spring10/sample_WenuSpring10START3X_V26_S09-v1_AODSIM.root', - 'rfio:/castor/cern.ch/cms/store/relval/CMSSW_3_5_7/RelValZEE/GEN-SIM-RECO/START3X_V26-v1/0012/020A72FB-4749-DF11-A27E-003048679076.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(300) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('START3X_V26A::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -process.load("CommonTools.ParticleFlow.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1RawCaloMETs = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1RawCaloMETs' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.layer1RawCaloMETs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) -# -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet( -# tracker = cms.PSet( -# src = cms.InputTag("electronTrackIsolationScone"), -# ), -# ecal = cms.PSet( -# src = cms.InputTag("electronEcalRecHitIsolationLcone"), -# ), -# hcal = cms.PSet( -# src = cms.InputTag("electronHcalTowerIsolationLcone"), -# ), -# user = cms.VPSet(), - ) - -## -## Pre-calculated electron identification selections -## -## set the variable false if you don't need them, or if you use your own PSet -## -## any input tag you set corresponds to a valuemap that either it is stored in the event -## or you create it yourself -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## WARNING: you may want to modify this item: T R I G G E R S E L E C T I O N -HLT_process_name = "HLT" # -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - # cuts - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - useTriggerInfo = cms.untracked.bool(True), - # trigger - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # exra variable calculation - calculateConversionRejection = cms.untracked.bool(True), - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT") - ) -#################################################################################### -## -## the Z selection that you prefer -from ElectroWeakAnalysis.ZEE.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - - -selection_secondLeg = cms.PSet ( - ## set this to true if you want to switch on diff 2nd leg selection - useDifferentSecondLegSelection = cms.untracked.bool(False), - ## preselection criteria are independent of useDifferentSecondLegSelection - # set them to False if you don't want them - useConversionRejection2 = cms.untracked.bool(False), - useValidFirstPXBHit2 = cms.untracked.bool(False), - useExpectedMissingHits2 =cms.untracked.bool(False), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(1), - ## - usePrecalcID2 = cms.untracked.bool(False), - usePrecalcIDType2 = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign2 = cms.untracked.string('='), - usePrecalcIDValue2 = cms.untracked.double(7), - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('ZeePlots', - selection_95relIso, - selection_secondLeg, - usePrecalcID = cms.untracked.bool(False), - usePrecalcIDType = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT") - ) - - - - -process.p = cms.Path(process.patDefaultSequence +process.zeeFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeePlotsFromSkimmed.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeePlotsFromSkimmed.py deleted file mode 100644 index eb98983a7f59b..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeePlotsFromSkimmed.py +++ /dev/null @@ -1,66 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("ZEEPLOTS") - - -process.MessageLogger = cms.Service("MessageLogger") - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:zeeCandidates.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## the Z selection that you prefer -from ElectroWeakAnalysis.ZEE.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - - -selection_secondLeg = cms.PSet ( - ## set this to true if you want to switch on diff 2nd leg selection - useDifferentSecondLegSelection = cms.untracked.bool(False), - ## preselection criteria are independent of useDifferentSecondLegSelection - # set them to False if you don't want them - useConversionRejection2 = cms.untracked.bool(False), - useValidFirstPXBHit2 = cms.untracked.bool(False), - useExpectedMissingHits2 =cms.untracked.bool(False), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(1), - ## - usePrecalcID2 = cms.untracked.bool(False), - usePrecalcIDType2 = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign2 = cms.untracked.string('='), - usePrecalcIDValue2 = cms.untracked.double(7), - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('ZeePlots', - selection_95relIso, - selection_secondLeg, - usePrecalcID = cms.untracked.bool(False), - usePrecalcIDType = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT") - ) - - - - - - -process.p = cms.Path(process.plotter) - - diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeePlots_data.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeePlots_data.py deleted file mode 100644 index cfe984330e0a0..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeePlots_data.py +++ /dev/null @@ -1,189 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - "dcap://gfe02:22128/pnfs/hep.ph.ic.ac.uk/data/cms/store/data/Commissioning10/MinimumBias/RECO/May6thPDSkim2_SD_EG-v1/0135/FCC2FA5A-BB5D-DF11-8246-002618943978.root" - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(300) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -process.GlobalTag.globaltag = cms.string('GR_R_35X_V8B::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1RawCaloMETs = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1RawCaloMETs' -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.layer1RawCaloMETs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) -# -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet( -# tracker = cms.PSet( -# src = cms.InputTag("electronTrackIsolationScone"), -# ), -# ecal = cms.PSet( -# src = cms.InputTag("electronEcalRecHitIsolationLcone"), -# ), -# hcal = cms.PSet( -# src = cms.InputTag("electronHcalTowerIsolationLcone"), -# ), -# user = cms.VPSet(), - ) - -## -## Pre-calculated electron identification selections -## -## set the variable false if you don't need them, or if you use your own PSet -## -## any input tag you set corresponds to a valuemap that either it is stored in the event -## or you create it yourself -process.patElectrons.addElectronID = cms.bool(True) -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso= cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso= cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso= cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso= cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso= cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso= cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso= cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso= cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso= cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso= cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso= cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso= cms.InputTag("simpleEleId60cIso"), - ) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -## -process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff") -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) -# process.makePatMuons may be needed depending on how you calculate the MET -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## WARNING: you may want to modify this item: T R I G G E R S E L E C T I O N -HLT_process_name = "HLT" # -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" -# -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - # cfg for data - dataMagneticFieldSetUp = cms.untracked.bool(True), - dcsTag = cms.untracked.InputTag("scalersRawToDigi"), - # cuts - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - useTriggerInfo = cms.untracked.bool(True), - # trigger - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # exra variable calculation - calculateConversionRejection = cms.untracked.bool(True), - calculateValidFirstPXBHit = cms.untracked.bool(True), - calculateExpectedMissingHits = cms.untracked.bool(True), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT") - ) -#################################################################################### -## -## the Z selection that you prefer -from ElectroWeakAnalysis.ZEE.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - - -selection_secondLeg = cms.PSet ( - ## set this to true if you want to switch on diff 2nd leg selection - useDifferentSecondLegSelection = cms.untracked.bool(False), - ## preselection criteria are independent of useDifferentSecondLegSelection - # set them to False if you don't want them - useConversionRejection2 = cms.untracked.bool(False), - useValidFirstPXBHit2 = cms.untracked.bool(False), - useExpectedMissingHits2 =cms.untracked.bool(False), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(1), - ## - usePrecalcID2 = cms.untracked.bool(False), - usePrecalcIDType2 = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign2 = cms.untracked.string('='), - usePrecalcIDValue2 = cms.untracked.double(7), - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('ZeePlots', - selection_95relIso, - selection_secondLeg, - usePrecalcID = cms.untracked.bool(False), - usePrecalcIDType = cms.untracked.string('simpleEleId95cIso'), - usePrecalcIDSign = cms.untracked.string('='), - usePrecalcIDValue = cms.untracked.double(7), - zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT") - ) - - - - -process.p = cms.Path(process.patDefaultSequence +process.zeeFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeePlots_isodeposits.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeePlots_isodeposits.py deleted file mode 100644 index e031f834333f8..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeePlots_isodeposits.py +++ /dev/null @@ -1,158 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - -process.MessageLogger = cms.Service( - "MessageLogger", - categories = cms.untracked.vstring('info', 'debug','cout') - ) - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - - -# source -process.source = cms.Source("PoolSource", - #fileNames = cms.untracked.vstring('rfio:/castor/cern.ch/user/r/rompotis/RedigiSummer08RootTrees/WenuRedigi_RECO_SAMPLE.root') - fileNames = cms.untracked.vstring( - 'file:zee_Summer09-MC_31X_V3_AODSIM_v1_AODSIM.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -## global tags: -#process.GlobalTag.globaltag = cms.string('MC_31X_V5::All') -process.GlobalTag.globaltag = cms.string('STARTUP31X_V4::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -process.load("CommonTools.ParticleFlow.PF2PAT_cff") -process.load("PhysicsTools.PatAlgos.patSequences_cff") -process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") -## -# -# for ecal isolation: set the correct name of the ECAL rechit collection -# -process.eleIsoDepositEcalFromHits.ExtractorPSet.barrelEcalHits = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eleIsoDepositEcalFromHits.ExtractorPSet.endcapEcalHits = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -# -# -process.eidRobustHighEnergy.reducedBarrelRecHitCollection = cms.InputTag("reducedEcalRecHitsEB", "", "RECO") -process.eidRobustHighEnergy.reducedEndcapRecHitCollection = cms.InputTag("reducedEcalRecHitsEE", "", "RECO") -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## CHOICE OF THE HLT PATH this section is not used from PAT -## -## Define here as string the names of the triggers only once -## please consult the table of the available triggers at the end of this file -# trigger menu selection -## -#process.patTrigger.processName = cms.string(HLT_process_name) -#process.patTriggerMatcher = cms.Sequence(process.patTriggerElectronMatcher) -#process.electronTriggerMatchHltElectrons.pathNames = cms.vstring(HLT_path_name) -#process.patTriggerMatchEmbedder = cms.Sequence(process.cleanLayer1ElectronsTriggerMatch) -#process.patTriggerSequence = cms.Sequence(process.patTrigger*process.patTriggerMatcher* -# process.patTriggerMatchEmbedder) -## -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.layer1RawCaloMETs = process.layer1METs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), - ) -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myDesiredMetCollection = 'layer1RawCaloMETs' -## modify the sequence of the MET creation: #%% -process.makeLayer1METs = cms.Sequence(process.patMETCorrections * process.layer1METs * - process.layer1RawCaloMETs) -## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) -process.allLayer1Objects = cms.Sequence(process.makeAllLayer1Electrons+process.makeAllLayer1Muons+process.makeLayer1METs) -process.selectedLayer1Objects = cms.Sequence(process.selectedLayer1Electrons+process.selectedLayer1Muons) -process.cleanLayer1Objects = cms.Sequence(process.cleanLayer1Muons*process.cleanLayer1Electrons) -process.countLayer1Objects = cms.Sequence(process.countLayer1Electrons+process.countLayer1Muons) - -process.patDefaultSequence = cms.Sequence(process.allLayer1Objects * process.selectedLayer1Objects * - process.cleanLayer1Objects*process.countLayer1Objects - ) - -## ################################################################################ -## -## the filter to select the candidates from the data samples -## -## WARNING: you may want to modify this item: T R I G G E R S E L E C T I O N -HLT_process_name = "HLT8E29" # options: HLT or HLT8E29 -# trigger path selection -HLT_path_name = "HLT_Ele10_LW_L1R" -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSingleElectronLWEt10PixelMatchFilter" -# -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - # cuts - ETCut = cms.untracked.double(20.), - METCut = cms.untracked.double(0.), - # trigger - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.2), - # electrons and MET - electronCollectionTag = cms.untracked.InputTag("selectedLayer1Electrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myDesiredMetCollection,"","PAT") - ) -#################################################################################### -## -## the Z selection that you prefer -selection_a2 = cms.PSet ( - trackIso_EB = cms.untracked.double(7.2), - ecalIso_EB = cms.untracked.double(5.7), - hcalIso_EB = cms.untracked.double(8.1), - sihih_EB = cms.untracked.double(0.01), - dphi_EB = cms.untracked.double(1000.), - deta_EB = cms.untracked.double(0.0071), - hoe_EB = cms.untracked.double(1000), - - trackIso_EE = cms.untracked.double(5.1), - ecalIso_EE = cms.untracked.double(5.0), - hcalIso_EE = cms.untracked.double(3.4), - sihih_EE = cms.untracked.double(0.028), - dphi_EE = cms.untracked.double(1000.), - deta_EE = cms.untracked.double(0.0066), - hoe_EE = cms.untracked.double(1000.) - ) - -selection_inverse = cms.PSet ( - trackIso_EB_inv = cms.untracked.bool(True), - trackIso_EE_inv = cms.untracked.bool(True) - ) - -#################################################################################### -## -## and the plot creator -process.plotter = cms.EDAnalyzer('ZeePlots', - selection_a2, - zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT") - ) - - - - -process.p = cms.Path(process.patDefaultSequence +process.zeeFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_forData.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_forData.py deleted file mode 100644 index c15dd18e58316..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_forData.py +++ /dev/null @@ -1,407 +0,0 @@ -## Configuration for the production of the ICHEP VBTF ntuple -## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -## MC, spring10 -## -## Stilianos Kesisoglou - Institute of Nuclear Physics -## NCSR Demokritos -## 25 June 2010 -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - -#process.MessageLogger = cms.Service( -# "MessageLogger", -# categories = cms.untracked.vstring('info', 'debug','cout') -# ) - - -process.load("FWCore.MessageService.MessageLogger_cfi") - -process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") - -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1000000), - limit = cms.untracked.int32(10000000) - ) - -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - reportEvery = cms.untracked.int32(100000), - limit = cms.untracked.int32(10000000) - ) - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) - ) - - - - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -# SOME DATA FILE TO BE PUT HERE -# -# MC test (local) running on the OneElecPlusSC skim made from the Zee MC samples -# ------------------------------------------------------------------------------ -# 'rfio:/tmp/ikesisog/TestFiles/skimMC/OneElecPlusSC_1Files.root', -# 'rfio:/tmp/ikesisog/TestFiles/skimMC/OneElecPlusSC_2Files.root', -# 'rfio:/tmp/ikesisog/TestFiles/skimMC/OneElecPlusSC_3Files.root', -# -# MC test (local) running directly on the Zee MC samples -# ------------------------------------------------------ -# 'rfio:/tmp/ikesisog/TestFiles/dSetMC/Zee/8EA9211C-7476-DF11-BC31-00304867C136.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetMC/Zee/B0737652-7076-DF11-83F8-002618943831.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetMC/Zee/14B213B3-7576-DF11-8763-003048678FA6.root', - ) -) - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -# -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") - -## global tags: -# -process.GlobalTag.globaltag = cms.string('GR_R_36X_V12A::All') # GLOBAL TAG FOR DATA - -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") - -process.load("PhysicsTools.PatAlgos.patSequences_cff") - -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") - -## -# - -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.caloMET = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.tcMET = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.pfMET = process.patMETs.clone( #%% - metSource = cms.InputTag("pfMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) - -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myMetCollection = 'caloMET' -myPfMetCollection = 'pfMET' -myTcMetCollection = 'tcMET' - -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET) - - -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) - -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet() -process.patElectrons.addElectronID = cms.bool(True) - -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso = cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso = cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso = cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso = cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso = cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso = cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso = cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso = cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso = cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso = cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso = cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso = cms.InputTag("simpleEleId60cIso") -) - -## - -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -process.patElectrons.usePV = cms.bool(False) - -## - -process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff") - -# you have to tell the ID that it is data. These are set to False for MC -process.simpleEleId95relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId90relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId85relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId80relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId70relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId60relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId95cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId90cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId85cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId80cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId70cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId60cIso.dataMagneticFieldSetUp = cms.bool(True) -# -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) - -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) - -# process.makePatMuons may be needed depending on how you calculate the MET - -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) - -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) - - - -## the filter to select the candidates from the data samples - - -## WARNING: you may want to modify this item: -HLT_process_name = "HLT" # REDIGI for the Spring10 production traditional MC / HLT for the powheg samples or data - -# trigger path selection -HLT_path_name = "HLT_Photon10_L1R" #= "HLT_Ele15_LW_L1R" # - -# trigger filter name -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" - -HLT_path_name_extra0 = "HLT_Photon15_L1R" -HLT_filter_name_extra0 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15HcalIsolFilter","",HLT_process_name) - -HLT_path_name_extra1 = "HLT_Photon15_Cleaned_L1R" -HLT_filter_name_extra1 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15CleanedHcalIsolFilter","",HLT_process_name) - -HLT_path_name_extra2 = "HLT_Ele15_SW_L1R" -HLT_filter_name_extra2 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15PixelMatchFilter","",HLT_process_name) - - -rules_Filter = cms.PSet ( - ### the input collections needed: - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"), - pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"), - tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"), - eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"), - PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"), - ### here the preselection is applied - # fiducial cuts: - BarrelMaxEta = cms.untracked.double(1.4442), - EndCapMinEta = cms.untracked.double(1.560), - EndCapMaxEta = cms.untracked.double(2.5), - # demand ecal driven electron: - useEcalDrivenElectrons = cms.untracked.bool(True), - # demand offline spike cleaning with the Swiss Cross criterion: - useSpikeRejection = cms.untracked.bool(True), - spikeCleaningSwissCrossCut = cms.untracked.double(0.95), - # demand geometrically matched to an HLT object with ET>15GeV - useTriggerInfo = cms.untracked.bool(True), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.1), - useHLTObjectETCut = cms.untracked.bool(True), - hltObjectETCut = cms.untracked.double(15.0), - useExtraTrigger = cms.untracked.bool(True), - vHltpathExtra = cms.untracked.vstring(HLT_path_name_extra0,HLT_path_name_extra1,HLT_path_name_extra2), - vHltpathFilterExtra = cms.untracked.VInputTag(HLT_filter_name_extra0, HLT_filter_name_extra1, HLT_filter_name_extra2), - # ET Cut in the SC - ETCut = cms.untracked.double(20.0), - METCut = cms.untracked.double(0.0), - # For DATA set it to True, for MC set it to False - dataMagneticFieldSetUp = cms.untracked.bool(True), - dcsTag = cms.untracked.InputTag("scalersRawToDigi") -) - - -rules_Filter_Elec0 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit0 = cms.untracked.bool(False), - useConversionRejection0 = cms.untracked.bool(False), - useExpectedMissingHits0 = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits0 = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit0 = cms.untracked.bool(True), - calculateConversionRejection0 = cms.untracked.bool(True), - calculateExpectedMissingHits0 = cms.untracked.bool(True) -) - -rules_Filter_Elec1 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit1 = cms.untracked.bool(False), - useConversionRejection1 = cms.untracked.bool(False), - useExpectedMissingHits1 = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits1 = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit1 = cms.untracked.bool(True), - calculateConversionRejection1 = cms.untracked.bool(True), - calculateExpectedMissingHits1 = cms.untracked.bool(True) -) - -rules_Filter_Elec2 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit2 = cms.untracked.bool(False), - useConversionRejection2 = cms.untracked.bool(False), - useExpectedMissingHits2 = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(1), - # calculate some new cuts - calculateValidFirstPXBHit2 = cms.untracked.bool(True), - calculateConversionRejection2 = cms.untracked.bool(True), - calculateExpectedMissingHits2 = cms.untracked.bool(True) -) - - -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - rules_Filter, - rules_Filter_Elec0, - rules_Filter_Elec1, - rules_Filter_Elec2 -) - - - -## the Z selection that you prefer -from ElectroWeakAnalysis.ZEE.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - - -rules_Plotter = cms.PSet ( - # treat or not the elecrons with same criteria. if yes then rules_Plotter_Elec1/2 are neglected - useSameSelectionOnBothElectrons = cms.untracked.bool(True), - # some extra information on the ntuple production: - sihih0_EB = cms.untracked.double(1000.0), - dphi0_EB = cms.untracked.double(1000.0), - deta0_EB = cms.untracked.double(1000.0), - hoe0_EB = cms.untracked.double(1000.0), - sihih0_EE = cms.untracked.double(1000.0), - dphi0_EE = cms.untracked.double(1000.0), - deta0_EE = cms.untracked.double(1000.0), - hoe0_EE = cms.untracked.double(1000.0), - includeJetInformationInNtuples = cms.untracked.bool(True), - caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'), - pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'), - DRJetFromElectron = cms.untracked.double(0.3), - # - zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT"), - ZEE_VBTFselectionFileName = cms.untracked.string("ZEE_VBTFselection.root"), - ZEE_VBTFpreseleFileName = cms.untracked.string("ZEE_VBTFpreselection.root"), - DatasetTag = cms.untracked.int32(100), - storeExtraInformation = cms.untracked.bool(True) -) - -rules_Plotter_Elec0 = cms.PSet ( - # The selection to be used here: - usePrecalcID0 = cms.untracked.bool(True), - usePrecalcIDType0 = cms.untracked.string('simpleEleId95relIso'), - usePrecalcIDSign0 = cms.untracked.string('='), - usePrecalcIDValue0 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit0 = cms.untracked.bool(False), - useConversionRejection0 = cms.untracked.bool(False), - useExpectedMissingHits0 = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits0 = cms.untracked.int32(1), - ## - calculateValidFirstPXBHit0 = cms.untracked.bool(False), - calculateConversionRejection0 = cms.untracked.bool(False), - calculateExpectedMissingHits0 = cms.untracked.bool(False) -) - -rules_Plotter_Elec1 = cms.PSet ( - # The selection to be used here: - usePrecalcID1 = cms.untracked.bool(True), - usePrecalcIDType1 = cms.untracked.string('simpleEleId95relIso'), - usePrecalcIDSign1 = cms.untracked.string('='), - usePrecalcIDValue1 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit1 = cms.untracked.bool(False), - useConversionRejection1 = cms.untracked.bool(False), - useExpectedMissingHits1 = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits1 = cms.untracked.int32(1), - ## - calculateValidFirstPXBHit1 = cms.untracked.bool(False), - calculateConversionRejection1 = cms.untracked.bool(False), - calculateExpectedMissingHits1 = cms.untracked.bool(False) -) - -rules_Plotter_Elec2 = cms.PSet ( - # The selection to be used here: - usePrecalcID2 = cms.untracked.bool(True), - usePrecalcIDType2 = cms.untracked.string('simpleEleId95relIso'), - usePrecalcIDSign2 = cms.untracked.string('='), - usePrecalcIDValue2 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit2 = cms.untracked.bool(False), - useConversionRejection2 = cms.untracked.bool(False), - useExpectedMissingHits2 = cms.untracked.bool(False), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(1), - ## - calculateValidFirstPXBHit2 = cms.untracked.bool(False), - calculateConversionRejection2 = cms.untracked.bool(False), - calculateExpectedMissingHits2 = cms.untracked.bool(False) -) - - -# we need to store jet information, hence we have to produce the jets: -process.load("JetMETCorrections.Configuration.DefaultJEC_cff") - -process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 ) - -process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 ) - -process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence ) - - -process.plotter = cms.EDAnalyzer('ZeePlots', - rules_Plotter, - rules_Plotter_Elec0, - rules_Plotter_Elec1, - rules_Plotter_Elec2 -) - - -# if you run on data then you have to do misalignment corrections first!!! -# not to be used with MC!! - -process.load("RecoEgamma.EgammaTools.correctedElectronsProducer_cfi") - -process.p = cms.Path( process.gsfElectrons*process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter) -#process.p = cms.Path( process.ourJetSequence * process.patDefaultSequence +process.zeeFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_wiCertJSON_forData.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_wiCertJSON_forData.py deleted file mode 100755 index cb36784a341f7..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_wiCertJSON_forData.py +++ /dev/null @@ -1,469 +0,0 @@ -# Initializations -# --------------- -# -# Get the base name of the Python script and use it to define input/output associated files -# -# N.B: Special variable __file__ is not available within cmsRun, and the following line fails: -# -# pyFile=(__file__).replace('.py','') -# -# As a result, the calling arguments must be scanned to locate the Python script. -# -import sys - -for inArg in sys.argv: - if inArg.find('.py') == -1: - continue - else: - pyBaseName=inArg.replace('.py','') - -# Define input/output associated files. -# -pyFile = "%s.py" % (pyBaseName) # Name of the Python script itself -lstFile = "%s.list" % (pyBaseName) # Name of the list file (contains a list of files to process) -resFile = "%s.results" % (pyBaseName) # Name of the results file (stdout and stderr messages) -outFile = "%s.root" % (pyBaseName) # Name of the output file (ROOT) - - -## Configuration for the production of the ICHEP VBTF ntuple -## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -## MC, spring10 -## -## Stilianos Kesisoglou - Institute of Nuclear Physics -## NCSR Demokritos -## 25 June 2010 -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - -#process.MessageLogger = cms.Service( -# "MessageLogger", -# categories = cms.untracked.vstring('info', 'debug','cout') -# ) - - -process.load("FWCore.MessageService.MessageLogger_cfi") - -process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") - -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1000000), - limit = cms.untracked.int32(10000000) - ) - -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - reportEvery = cms.untracked.int32(100000), - limit = cms.untracked.int32(10000000) - ) - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) - ) - -# -# # source -# process.source = cms.Source("PoolSource", -# fileNames = cms.untracked.vstring( -# # SOME DATA FILE TO BE PUT HERE -# # -# # DATA test (local) running on the OneElecPlusSC skim made from the EG DATA samples -# # ---------------------------------------------------------------------------------- -# # 'rfio:/tmp/ikesisog/TestFiles/skimDATA/Zee/00000000-0000-0000-0000-000000000000_woFakeJSON.root', -# # 'rfio:/tmp/ikesisog/TestFiles/skimDATA/Zee/00000000-0000-0000-0000-000000000000_wiFakeJSON.root', -# # -# # DATA test (local) running directly on the EG DATA samples -# # ---------------------------------------------------------- -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/6AD8C6D3-2C92-DF11-AFDE-0030487C90C2.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/34BD6E1C-3892-DF11-BD3F-001D09F27067.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/04D0FF1D-2792-DF11-8B6C-003048F11942.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/74CF44CB-1592-DF11-989E-001617C3B77C.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/66072495-1A92-DF11-9461-0030487BC68E.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/5E06C91D-1E92-DF11-9591-0016177CA778.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/48B8741C-1E92-DF11-ADAD-001617C3B6DC.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/1EC74696-1A92-DF11-B9BB-0030487CD13A.root', -# ) -# ) -# - - -# source - Use an input list to bypass the 255 file limit -import FWCore.Utilities.FileUtils as FileUtils - -filelist = FileUtils.loadListFromFile(lstFile) - -process.source = cms.Source('PoolSource', - fileNames = cms.untracked.vstring(*filelist) - ) - - - -# using locally provided JSON -import PhysicsTools.PythonAnalysis.LumiList as LumiList -import FWCore.ParameterSet.Types as CfgTypes -myLumis = LumiList.LumiList(filename = 'Cert_136033-149442_7TeV_Nov4ReReco_Collisions10_JSON.json').getCMSSWString().split(',') -process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange()) -process.source.lumisToProcess.extend(myLumis) - - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -# -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") - -## global tags: -# -process.GlobalTag.globaltag = cms.string('GR_R_39X_V5::All') # GLOBAL TAG FOR DATA - -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") - -process.load("PhysicsTools.PatAlgos.patSequences_cff") - -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") - -## -# - -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.caloMET = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.tcMET = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.pfMET = process.patMETs.clone( #%% - metSource = cms.InputTag("pfMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) - -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myMetCollection = 'caloMET' -myPfMetCollection = 'pfMET' -myTcMetCollection = 'tcMET' - -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET) - - -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) - -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet() -process.patElectrons.addElectronID = cms.bool(True) - -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso = cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso = cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso = cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso = cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso = cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso = cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso = cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso = cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso = cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso = cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso = cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso = cms.InputTag("simpleEleId60cIso") -) - -## - -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -process.patElectrons.usePV = cms.bool(False) - -## - -process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff") - -# you have to tell the ID that it is data. These are set to False for MC -process.simpleEleId95relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId90relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId85relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId80relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId70relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId60relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId95cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId90cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId85cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId80cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId70cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId60cIso.dataMagneticFieldSetUp = cms.bool(True) -# -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) - -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) - -# process.makePatMuons may be needed depending on how you calculate the MET - -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) - -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) - -## WARNING: you may want to modify this item: -HLT_process_name = "HLT" # REDIGI for the production traditional MC / HLT for the powheg samples or data - -# Trigger Path(s) -HLT_path_name = "HLT_Photon10_L1R" - -# Label of the last Trigger Filter in the Trigger Path -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" - -HLT_path_name_extra0 = "HLT_Photon15_Cleaned_L1R" -HLT_filter_name_extra0 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15CleanedHcalIsolFilter","",HLT_process_name) - -HLT_path_name_extra1 = "HLT_Ele15_SW_CaloEleId_L1R" -HLT_filter_name_extra1 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15CaloEleIdPixelMatchFilter","",HLT_process_name) - -HLT_path_name_extra2 = "HLT_Ele17_SW_CaloEleId_L1R" -HLT_filter_name_extra2 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17CaloEleIdPixelMatchFilter","",HLT_process_name) - -HLT_path_name_extra3 = "HLT_Ele17_SW_TightEleId_L1R" -HLT_filter_name_extra3 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TightEleIdDphiFilter","",HLT_process_name) - -# HLT_path_name_extra4 = "HLT_Ele17_SW_TighterEleIdIsol_L1R_v2" -# HLT_filter_name_extra4 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TighterEleIdIsolTrackIsolFilter","",HLT_process_name) - -HLT_path_name_extra5 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v1" -HLT_filter_name_extra5 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name) - -HLT_path_name_extra6 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v2" -HLT_filter_name_extra6 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name) - - -rules_Filter = cms.PSet ( - ### the input collections needed: - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"), - pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"), - tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"), - eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"), - PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"), - ### here the preselection is applied - # fiducial cuts: - BarrelMaxEta = cms.untracked.double(1.4442), - EndCapMinEta = cms.untracked.double(1.5660), - EndCapMaxEta = cms.untracked.double(2.5000), - # demand ecal driven electron: - useEcalDrivenElectrons = cms.untracked.bool(True), - # demand offline spike cleaning with the Swiss Cross criterion: - useSpikeRejection = cms.untracked.bool(False), - spikeCleaningSwissCrossCut = cms.untracked.double(0.95), - # demand geometrically matched to an HLT object with ET>15GeV - useTriggerInfo = cms.untracked.bool(True), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.1), - useHLTObjectETCut = cms.untracked.bool(True), - hltObjectETCut = cms.untracked.double(15.0), - useExtraTrigger = cms.untracked.bool(True), -# vHltpathExtra = cms.untracked.vstring(HLT_path_name_extra0,HLT_path_name_extra1,HLT_path_name_extra2,HLT_path_name_extra3,HLT_path_name_extra4,HLT_path_name_extra5), -# vHltpathFilterExtra = cms.untracked.VInputTag(HLT_filter_name_extra0,HLT_filter_name_extra1,HLT_filter_name_extra2,HLT_filter_name_extra3,HLT_filter_name_extra4,HLT_filter_name_extra5), - vHltpathExtra = cms.untracked.vstring(HLT_path_name_extra0,HLT_path_name_extra1,HLT_path_name_extra2,HLT_path_name_extra3,HLT_path_name_extra5,HLT_path_name_extra6), - vHltpathFilterExtra = cms.untracked.VInputTag(HLT_filter_name_extra0,HLT_filter_name_extra1,HLT_filter_name_extra2,HLT_filter_name_extra3,HLT_filter_name_extra5,HLT_filter_name_extra6), - - # ET Cut in the SC - ETCut = cms.untracked.double(25.0), - METCut = cms.untracked.double(0.0), - # For DATA set it to True, for MC set it to False - dataMagneticFieldSetUp = cms.untracked.bool(True), - dcsTag = cms.untracked.InputTag("scalersRawToDigi") -) - - -rules_Filter_Elec0 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit0 = cms.untracked.bool(False), - useConversionRejection0 = cms.untracked.bool(False), - useExpectedMissingHits0 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0), - # calculate some new cuts - calculateValidFirstPXBHit0 = cms.untracked.bool(False), - calculateConversionRejection0 = cms.untracked.bool(False), - calculateExpectedMissingHits0 = cms.untracked.bool(False) -) - -rules_Filter_Elec1 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit1 = cms.untracked.bool(False), - useConversionRejection1 = cms.untracked.bool(False), - useExpectedMissingHits1 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0), - # calculate some new cuts - calculateValidFirstPXBHit1 = cms.untracked.bool(False), - calculateConversionRejection1 = cms.untracked.bool(False), - calculateExpectedMissingHits1 = cms.untracked.bool(False) -) - -rules_Filter_Elec2 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit2 = cms.untracked.bool(False), - useConversionRejection2 = cms.untracked.bool(False), - useExpectedMissingHits2 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0), - # calculate some new cuts - calculateValidFirstPXBHit2 = cms.untracked.bool(False), - calculateConversionRejection2 = cms.untracked.bool(False), - calculateExpectedMissingHits2 = cms.untracked.bool(False) -) - - -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - rules_Filter, - rules_Filter_Elec0, - rules_Filter_Elec1, - rules_Filter_Elec2 -) - - - -## the Z selection that you prefer -from ElectroWeakAnalysis.ZEE.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - - -rules_Plotter = cms.PSet ( - # treat or not the elecrons with same criteria. if yes then rules_Plotter_Elec1/2 are neglected - useSameSelectionOnBothElectrons = cms.untracked.bool(True), - # some extra information on the ntuple production: - sihih0_EB = cms.untracked.double(1000.0), - dphi0_EB = cms.untracked.double(1000.0), - deta0_EB = cms.untracked.double(1000.0), - hoe0_EB = cms.untracked.double(1000.0), - sihih0_EE = cms.untracked.double(1000.0), - dphi0_EE = cms.untracked.double(1000.0), - deta0_EE = cms.untracked.double(1000.0), - hoe0_EE = cms.untracked.double(1000.0), - includeJetInformationInNtuples = cms.untracked.bool(True), - caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'), - pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'), - DRJetFromElectron = cms.untracked.double(0.3), - # - zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT"), - ZEE_VBTFselectionFileName = cms.untracked.string("ZEE_VBTFselection.root"), - ZEE_VBTFpreseleFileName = cms.untracked.string("ZEE_VBTFpreselection.root"), - DatasetTag = cms.untracked.int32(100), - storeExtraInformation = cms.untracked.bool(True) -) - -rules_Plotter_Elec0 = cms.PSet ( - # The selection to be used here: - usePrecalcID0 = cms.untracked.bool(True), - usePrecalcIDType0 = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign0 = cms.untracked.string('='), - usePrecalcIDValue0 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit0 = cms.untracked.bool(False), - useConversionRejection0 = cms.untracked.bool(False), - useExpectedMissingHits0 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0), - ## - calculateValidFirstPXBHit0 = cms.untracked.bool(False), - calculateConversionRejection0 = cms.untracked.bool(False), - calculateExpectedMissingHits0 = cms.untracked.bool(False) -) - -rules_Plotter_Elec1 = cms.PSet ( - # The selection to be used here: - usePrecalcID1 = cms.untracked.bool(True), - usePrecalcIDType1 = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign1 = cms.untracked.string('='), - usePrecalcIDValue1 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit1 = cms.untracked.bool(False), - useConversionRejection1 = cms.untracked.bool(False), - useExpectedMissingHits1 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0), - ## - calculateValidFirstPXBHit1 = cms.untracked.bool(False), - calculateConversionRejection1 = cms.untracked.bool(False), - calculateExpectedMissingHits1 = cms.untracked.bool(False) -) - -rules_Plotter_Elec2 = cms.PSet ( - # The selection to be used here: - usePrecalcID2 = cms.untracked.bool(True), - usePrecalcIDType2 = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign2 = cms.untracked.string('='), - usePrecalcIDValue2 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit2 = cms.untracked.bool(False), - useConversionRejection2 = cms.untracked.bool(False), - useExpectedMissingHits2 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0), - ## - calculateValidFirstPXBHit2 = cms.untracked.bool(False), - calculateConversionRejection2 = cms.untracked.bool(False), - calculateExpectedMissingHits2 = cms.untracked.bool(False) -) - - -# we need to store jet information, hence we have to produce the jets: -process.load("JetMETCorrections.Configuration.DefaultJEC_cff") - -process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 ) - -process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 ) - -process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence ) - - -process.plotter = cms.EDAnalyzer('ZeePlots', - rules_Plotter, - rules_Plotter_Elec0, - rules_Plotter_Elec1, - rules_Plotter_Elec2 -) - - -# For DATA, 361p4 electrons need fixing first (misalignment corrections) *NOT* be used with MC -#process.load("RecoEgamma.EgammaTools.correctedElectronsProducer_cfi") -#process.p = cms.Path( process.gsfElectrons*process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter) - -# For DATA, 397 electrons are fixed (misalignment corrections included) -process.p = cms.Path( process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter) - -# For MonteCarlo, -#process.p = cms.Path( process.ourJetSequence * process.patDefaultSequence +process.zeeFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_woCertJSON_forData.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_woCertJSON_forData.py deleted file mode 100755 index 7fa1939e1eb0d..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_woCertJSON_forData.py +++ /dev/null @@ -1,469 +0,0 @@ -# Initializations -# --------------- -# -# Get the base name of the Python script and use it to define input/output associated files -# -# N.B: Special variable __file__ is not available within cmsRun, and the following line fails: -# -# pyFile=(__file__).replace('.py','') -# -# As a result, the calling arguments must be scanned to locate the Python script. -# -import sys - -for inArg in sys.argv: - if inArg.find('.py') == -1: - continue - else: - pyBaseName=inArg.replace('.py','') - -# Define input/output associated files. -# -pyFile = "%s.py" % (pyBaseName) # Name of the Python script itself -lstFile = "%s.list" % (pyBaseName) # Name of the list file (contains a list of files to process) -resFile = "%s.results" % (pyBaseName) # Name of the results file (stdout and stderr messages) -outFile = "%s.root" % (pyBaseName) # Name of the output file (ROOT) - - -## Configuration for the production of the ICHEP VBTF ntuple -## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -## MC, spring10 -## -## Stilianos Kesisoglou - Institute of Nuclear Physics -## NCSR Demokritos -## 25 June 2010 -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - -#process.MessageLogger = cms.Service( -# "MessageLogger", -# categories = cms.untracked.vstring('info', 'debug','cout') -# ) - - -process.load("FWCore.MessageService.MessageLogger_cfi") - -process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") - -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1000000), - limit = cms.untracked.int32(10000000) - ) - -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - reportEvery = cms.untracked.int32(100000), - limit = cms.untracked.int32(10000000) - ) - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) - ) - -# -# # source -# process.source = cms.Source("PoolSource", -# fileNames = cms.untracked.vstring( -# # SOME DATA FILE TO BE PUT HERE -# # -# # DATA test (local) running on the OneElecPlusSC skim made from the EG DATA samples -# # ---------------------------------------------------------------------------------- -# # 'rfio:/tmp/ikesisog/TestFiles/skimDATA/Zee/00000000-0000-0000-0000-000000000000_woFakeJSON.root', -# # 'rfio:/tmp/ikesisog/TestFiles/skimDATA/Zee/00000000-0000-0000-0000-000000000000_wiFakeJSON.root', -# # -# # DATA test (local) running directly on the EG DATA samples -# # ---------------------------------------------------------- -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/6AD8C6D3-2C92-DF11-AFDE-0030487C90C2.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/34BD6E1C-3892-DF11-BD3F-001D09F27067.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/04D0FF1D-2792-DF11-8B6C-003048F11942.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/74CF44CB-1592-DF11-989E-001617C3B77C.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/66072495-1A92-DF11-9461-0030487BC68E.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/5E06C91D-1E92-DF11-9591-0016177CA778.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/48B8741C-1E92-DF11-ADAD-001617C3B6DC.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/1EC74696-1A92-DF11-B9BB-0030487CD13A.root', -# ) -# ) -# - - -# source - Use an input list to bypass the 255 file limit -import FWCore.Utilities.FileUtils as FileUtils - -filelist = FileUtils.loadListFromFile(lstFile) - -process.source = cms.Source('PoolSource', - fileNames = cms.untracked.vstring(*filelist) - ) - - -# -# # using locally provided JSON -# import PhysicsTools.PythonAnalysis.LumiList as LumiList -# import FWCore.ParameterSet.Types as CfgTypes -# myLumis = LumiList.LumiList(filename = 'Cert_132440-149442_7TeV_StreamExpress_Collisions10_JSON_v2.json').getCMSSWString().split(',') -# process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange()) -# process.source.lumisToProcess.extend(myLumis) -# - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -# -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") - -## global tags: -# -process.GlobalTag.globaltag = cms.string('GR_R_39X_V5::All') # GLOBAL TAG FOR DATA - -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") - -process.load("PhysicsTools.PatAlgos.patSequences_cff") - -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") - -## -# - -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.caloMET = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.tcMET = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.pfMET = process.patMETs.clone( #%% - metSource = cms.InputTag("pfMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) - -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myMetCollection = 'caloMET' -myPfMetCollection = 'pfMET' -myTcMetCollection = 'tcMET' - -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET) - - -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) - -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet() -process.patElectrons.addElectronID = cms.bool(True) - -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso = cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso = cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso = cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso = cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso = cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso = cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso = cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso = cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso = cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso = cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso = cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso = cms.InputTag("simpleEleId60cIso") -) - -## - -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -process.patElectrons.usePV = cms.bool(False) - -## - -process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff") - -# you have to tell the ID that it is data. These are set to False for MC -process.simpleEleId95relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId90relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId85relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId80relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId70relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId60relIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId95cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId90cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId85cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId80cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId70cIso.dataMagneticFieldSetUp = cms.bool(True) -process.simpleEleId60cIso.dataMagneticFieldSetUp = cms.bool(True) -# -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) - -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) - -# process.makePatMuons may be needed depending on how you calculate the MET - -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) - -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) - -## WARNING: you may want to modify this item: -HLT_process_name = "HLT" # REDIGI for the production traditional MC / HLT for the powheg samples or data - -# Trigger Path(s) -HLT_path_name = "HLT_Photon10_L1R" - -# Label of the last Trigger Filter in the Trigger Path -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" - -HLT_path_name_extra0 = "HLT_Photon15_Cleaned_L1R" -HLT_filter_name_extra0 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15CleanedHcalIsolFilter","",HLT_process_name) - -HLT_path_name_extra1 = "HLT_Ele15_SW_CaloEleId_L1R" -HLT_filter_name_extra1 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15CaloEleIdPixelMatchFilter","",HLT_process_name) - -HLT_path_name_extra2 = "HLT_Ele17_SW_CaloEleId_L1R" -HLT_filter_name_extra2 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17CaloEleIdPixelMatchFilter","",HLT_process_name) - -HLT_path_name_extra3 = "HLT_Ele17_SW_TightEleId_L1R" -HLT_filter_name_extra3 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TightEleIdDphiFilter","",HLT_process_name) - -# HLT_path_name_extra4 = "HLT_Ele17_SW_TighterEleIdIsol_L1R_v2" -# HLT_filter_name_extra4 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TighterEleIdIsolTrackIsolFilter","",HLT_process_name) - -HLT_path_name_extra5 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v1" -HLT_filter_name_extra5 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name) - -HLT_path_name_extra6 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v2" -HLT_filter_name_extra6 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name) - - -rules_Filter = cms.PSet ( - ### the input collections needed: - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"), - pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"), - tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"), - eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"), - PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"), - ### here the preselection is applied - # fiducial cuts: - BarrelMaxEta = cms.untracked.double(1.4442), - EndCapMinEta = cms.untracked.double(1.5660), - EndCapMaxEta = cms.untracked.double(2.5000), - # demand ecal driven electron: - useEcalDrivenElectrons = cms.untracked.bool(True), - # demand offline spike cleaning with the Swiss Cross criterion: - useSpikeRejection = cms.untracked.bool(False), - spikeCleaningSwissCrossCut = cms.untracked.double(0.95), - # demand geometrically matched to an HLT object with ET>15GeV - useTriggerInfo = cms.untracked.bool(True), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.1), - useHLTObjectETCut = cms.untracked.bool(True), - hltObjectETCut = cms.untracked.double(15.0), - useExtraTrigger = cms.untracked.bool(True), -# vHltpathExtra = cms.untracked.vstring(HLT_path_name_extra0,HLT_path_name_extra1,HLT_path_name_extra2,HLT_path_name_extra3,HLT_path_name_extra4,HLT_path_name_extra5), -# vHltpathFilterExtra = cms.untracked.VInputTag(HLT_filter_name_extra0,HLT_filter_name_extra1,HLT_filter_name_extra2,HLT_filter_name_extra3,HLT_filter_name_extra4,HLT_filter_name_extra5), - vHltpathExtra = cms.untracked.vstring(HLT_path_name_extra0,HLT_path_name_extra1,HLT_path_name_extra2,HLT_path_name_extra3,HLT_path_name_extra5,HLT_path_name_extra6), - vHltpathFilterExtra = cms.untracked.VInputTag(HLT_filter_name_extra0,HLT_filter_name_extra1,HLT_filter_name_extra2,HLT_filter_name_extra3,HLT_filter_name_extra5,HLT_filter_name_extra6), - - # ET Cut in the SC - ETCut = cms.untracked.double(25.0), - METCut = cms.untracked.double(0.0), - # For DATA set it to True, for MC set it to False - dataMagneticFieldSetUp = cms.untracked.bool(True), - dcsTag = cms.untracked.InputTag("scalersRawToDigi") -) - - -rules_Filter_Elec0 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit0 = cms.untracked.bool(False), - useConversionRejection0 = cms.untracked.bool(False), - useExpectedMissingHits0 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0), - # calculate some new cuts - calculateValidFirstPXBHit0 = cms.untracked.bool(False), - calculateConversionRejection0 = cms.untracked.bool(False), - calculateExpectedMissingHits0 = cms.untracked.bool(False) -) - -rules_Filter_Elec1 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit1 = cms.untracked.bool(False), - useConversionRejection1 = cms.untracked.bool(False), - useExpectedMissingHits1 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0), - # calculate some new cuts - calculateValidFirstPXBHit1 = cms.untracked.bool(False), - calculateConversionRejection1 = cms.untracked.bool(False), - calculateExpectedMissingHits1 = cms.untracked.bool(False) -) - -rules_Filter_Elec2 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit2 = cms.untracked.bool(False), - useConversionRejection2 = cms.untracked.bool(False), - useExpectedMissingHits2 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0), - # calculate some new cuts - calculateValidFirstPXBHit2 = cms.untracked.bool(False), - calculateConversionRejection2 = cms.untracked.bool(False), - calculateExpectedMissingHits2 = cms.untracked.bool(False) -) - - -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - rules_Filter, - rules_Filter_Elec0, - rules_Filter_Elec1, - rules_Filter_Elec2 -) - - - -## the Z selection that you prefer -from ElectroWeakAnalysis.ZEE.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - - -rules_Plotter = cms.PSet ( - # treat or not the elecrons with same criteria. if yes then rules_Plotter_Elec1/2 are neglected - useSameSelectionOnBothElectrons = cms.untracked.bool(True), - # some extra information on the ntuple production: - sihih0_EB = cms.untracked.double(1000.0), - dphi0_EB = cms.untracked.double(1000.0), - deta0_EB = cms.untracked.double(1000.0), - hoe0_EB = cms.untracked.double(1000.0), - sihih0_EE = cms.untracked.double(1000.0), - dphi0_EE = cms.untracked.double(1000.0), - deta0_EE = cms.untracked.double(1000.0), - hoe0_EE = cms.untracked.double(1000.0), - includeJetInformationInNtuples = cms.untracked.bool(True), - caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'), - pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'), - DRJetFromElectron = cms.untracked.double(0.3), - # - zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT"), - ZEE_VBTFselectionFileName = cms.untracked.string("ZEE_VBTFselection.root"), - ZEE_VBTFpreseleFileName = cms.untracked.string("ZEE_VBTFpreselection.root"), - DatasetTag = cms.untracked.int32(100), - storeExtraInformation = cms.untracked.bool(True) -) - -rules_Plotter_Elec0 = cms.PSet ( - # The selection to be used here: - usePrecalcID0 = cms.untracked.bool(True), - usePrecalcIDType0 = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign0 = cms.untracked.string('='), - usePrecalcIDValue0 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit0 = cms.untracked.bool(False), - useConversionRejection0 = cms.untracked.bool(False), - useExpectedMissingHits0 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0), - ## - calculateValidFirstPXBHit0 = cms.untracked.bool(False), - calculateConversionRejection0 = cms.untracked.bool(False), - calculateExpectedMissingHits0 = cms.untracked.bool(False) -) - -rules_Plotter_Elec1 = cms.PSet ( - # The selection to be used here: - usePrecalcID1 = cms.untracked.bool(True), - usePrecalcIDType1 = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign1 = cms.untracked.string('='), - usePrecalcIDValue1 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit1 = cms.untracked.bool(False), - useConversionRejection1 = cms.untracked.bool(False), - useExpectedMissingHits1 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0), - ## - calculateValidFirstPXBHit1 = cms.untracked.bool(False), - calculateConversionRejection1 = cms.untracked.bool(False), - calculateExpectedMissingHits1 = cms.untracked.bool(False) -) - -rules_Plotter_Elec2 = cms.PSet ( - # The selection to be used here: - usePrecalcID2 = cms.untracked.bool(True), - usePrecalcIDType2 = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign2 = cms.untracked.string('='), - usePrecalcIDValue2 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit2 = cms.untracked.bool(False), - useConversionRejection2 = cms.untracked.bool(False), - useExpectedMissingHits2 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0), - ## - calculateValidFirstPXBHit2 = cms.untracked.bool(False), - calculateConversionRejection2 = cms.untracked.bool(False), - calculateExpectedMissingHits2 = cms.untracked.bool(False) -) - - -# we need to store jet information, hence we have to produce the jets: -process.load("JetMETCorrections.Configuration.DefaultJEC_cff") - -process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 ) - -process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 ) - -process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence ) - - -process.plotter = cms.EDAnalyzer('ZeePlots', - rules_Plotter, - rules_Plotter_Elec0, - rules_Plotter_Elec1, - rules_Plotter_Elec2 -) - - -# For DATA, 361p4 electrons need fixing first (misalignment corrections) *NOT* be used with MC -#process.load("RecoEgamma.EgammaTools.correctedElectronsProducer_cfi") -#process.p = cms.Path( process.gsfElectrons*process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter) - -# For DATA, 397 electrons are fixed (misalignment corrections included) -process.p = cms.Path( process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter) - -# For MonteCarlo, -#process.p = cms.Path( process.ourJetSequence * process.patDefaultSequence +process.zeeFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_woCertJSON_for__MC.py b/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_woCertJSON_for__MC.py deleted file mode 100755 index b4619679dbbb3..0000000000000 --- a/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_woCertJSON_for__MC.py +++ /dev/null @@ -1,465 +0,0 @@ -# Initializations -# --------------- -# -# Get the base name of the Python script and use it to define input/output associated files -# -# N.B: Special variable __file__ is not available within cmsRun, and the following line fails: -# -# pyFile=(__file__).replace('.py','') -# -# As a result, the calling arguments must be scanned to locate the Python script. -# -import sys - -for inArg in sys.argv: - if inArg.find('.py') == -1: - continue - else: - pyBaseName=inArg.replace('.py','') - -# Define input/output associated files. -# -pyFile = "%s.py" % (pyBaseName) # Name of the Python script itself -lstFile = "%s.list" % (pyBaseName) # Name of the list file (contains a list of files to process) -resFile = "%s.results" % (pyBaseName) # Name of the results file (stdout and stderr messages) -outFile = "%s.root" % (pyBaseName) # Name of the output file (ROOT) - - -## Configuration for the production of the ICHEP VBTF ntuple -## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -## MC, spring10 -## -## Stilianos Kesisoglou - Institute of Nuclear Physics -## NCSR Demokritos -## 25 June 2010 -import FWCore.ParameterSet.Config as cms - -process = cms.Process("PAT") - - - -process.options = cms.untracked.PSet( - Rethrow = cms.untracked.vstring('ProductNotFound') -) - -#process.MessageLogger = cms.Service( -# "MessageLogger", -# categories = cms.untracked.vstring('info', 'debug','cout') -# ) - - -process.load("FWCore.MessageService.MessageLogger_cfi") - -process.MessageLogger.cerr.threshold = cms.untracked.string("INFO") - -process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet( - reportEvery = cms.untracked.int32(1000000), - limit = cms.untracked.int32(10000000) - ) - -process.MessageLogger.cerr.FwkReport = cms.untracked.PSet( - reportEvery = cms.untracked.int32(100000), - limit = cms.untracked.int32(10000000) - ) - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) - ) - -# -# # source -# process.source = cms.Source("PoolSource", -# fileNames = cms.untracked.vstring( -# # SOME DATA FILE TO BE PUT HERE -# # -# # MC test (local) running on the OneElecPlusSC skim made from the Zee MC samples -# # ------------------------------------------------------------------------------ -# # 'rfio:/tmp/ikesisog/TestFiles/skimMC/OneElecPlusSC_1Files.root', -# # 'rfio:/tmp/ikesisog/TestFiles/skimMC/OneElecPlusSC_2Files.root', -# # 'rfio:/tmp/ikesisog/TestFiles/skimMC/OneElecPlusSC_3Files.root', -# # -# # MC test (local) running directly on the Zee MC samples -# # ------------------------------------------------------ -# 'rfio:/tmp/ikesisog/TestFiles/dSetMC/Zee/8EA9211C-7476-DF11-BC31-00304867C136.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetMC/Zee/B0737652-7076-DF11-83F8-002618943831.root', -# 'rfio:/tmp/ikesisog/TestFiles/dSetMC/Zee/14B213B3-7576-DF11-8763-003048678FA6.root', -# ) -# ) -# - - -# source - Use an input list to bypass the 255 file limit -import FWCore.Utilities.FileUtils as FileUtils - -filelist = FileUtils.loadListFromFile(lstFile) - -process.source = cms.Source('PoolSource', - fileNames = cms.untracked.vstring(*filelist) - ) - - -# -# # using locally provided JSON -# import PhysicsTools.PythonAnalysis.LumiList as LumiList -# import FWCore.ParameterSet.Types as CfgTypes -# myLumis = LumiList.LumiList(filename = 'Cert_132440-149442_7TeV_StreamExpress_Collisions10_JSON_v2.json').getCMSSWString().split(',') -# process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange()) -# process.source.lumisToProcess.extend(myLumis) -# - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - -## Load additional processes -# -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") - -## global tags: -# -process.GlobalTag.globaltag = cms.string('START36_V9::All') # GLOBAL TAG FOR MC - -process.load("Configuration.StandardSequences.MagneticField_cff") - - -################################################################################################ -### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ### -################################################################################################ - -## pat sequences to be loaded: -#process.load("PhysicsTools.PFCandProducer.PF2PAT_cff") - -process.load("PhysicsTools.PatAlgos.patSequences_cff") - -#process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff") - -## -# - -## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%% -## specify the names of the MET collections that you need here %%%% -## #%% -## if you don't specify anything the default MET is the raw Calo MET #%% -process.caloMET = process.patMETs.clone( #%% - metSource = cms.InputTag("met","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.tcMET = process.patMETs.clone( #%% - metSource = cms.InputTag("tcMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) -process.pfMET = process.patMETs.clone( #%% - metSource = cms.InputTag("pfMet","","RECO"), - addTrigMatch = cms.bool(False), - addMuonCorrections = cms.bool(False), - addGenMET = cms.bool(False), -) - -## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%% -myMetCollection = 'caloMET' -myPfMetCollection = 'pfMET' -myTcMetCollection = 'tcMET' - -## modify the sequence of the MET creation: #%% -process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET) - - -## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections) - -process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff") -#process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence) - -process.patElectrons.isoDeposits = cms.PSet() -process.patElectrons.userIsolation = cms.PSet() -process.patElectrons.addElectronID = cms.bool(True) - -process.patElectrons.electronIDSources = cms.PSet( - simpleEleId95relIso = cms.InputTag("simpleEleId95relIso"), - simpleEleId90relIso = cms.InputTag("simpleEleId90relIso"), - simpleEleId85relIso = cms.InputTag("simpleEleId85relIso"), - simpleEleId80relIso = cms.InputTag("simpleEleId80relIso"), - simpleEleId70relIso = cms.InputTag("simpleEleId70relIso"), - simpleEleId60relIso = cms.InputTag("simpleEleId60relIso"), - simpleEleId95cIso = cms.InputTag("simpleEleId95cIso"), - simpleEleId90cIso = cms.InputTag("simpleEleId90cIso"), - simpleEleId85cIso = cms.InputTag("simpleEleId85cIso"), - simpleEleId80cIso = cms.InputTag("simpleEleId80cIso"), - simpleEleId70cIso = cms.InputTag("simpleEleId70cIso"), - simpleEleId60cIso = cms.InputTag("simpleEleId60cIso") -) - -## - -process.patElectrons.addGenMatch = cms.bool(False) -process.patElectrons.embedGenMatch = cms.bool(False) -process.patElectrons.usePV = cms.bool(False) - -## - -process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff") - -# you have to tell the ID that it is data. These are set to False for MC -process.simpleEleId95relIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId90relIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId85relIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId80relIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId70relIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId60relIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId95cIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId90cIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId85cIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId80cIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId70cIso.dataMagneticFieldSetUp = cms.bool(False) -process.simpleEleId60cIso.dataMagneticFieldSetUp = cms.bool(False) -# -process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence) - -process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons) - -# process.makePatMuons may be needed depending on how you calculate the MET - -process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs) - -process.patDefaultSequence = cms.Sequence(process.makePatCandidates) - -## WARNING: you may want to modify this item: -HLT_process_name = "REDIGI39X" # REDIGI for the production traditional MC / HLT for the powheg samples or data - -# Trigger Path(s) -HLT_path_name = "HLT_Photon10_L1R" - -# Label of the last Trigger Filter in the Trigger Path -HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter" - -HLT_path_name_extra0 = "HLT_Photon15_Cleaned_L1R" -HLT_filter_name_extra0 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15CleanedHcalIsolFilter","",HLT_process_name) - -HLT_path_name_extra1 = "HLT_Ele15_SW_CaloEleId_L1R" -HLT_filter_name_extra1 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15CaloEleIdPixelMatchFilter","",HLT_process_name) - -HLT_path_name_extra2 = "HLT_Ele17_SW_CaloEleId_L1R" -HLT_filter_name_extra2 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17CaloEleIdPixelMatchFilter","",HLT_process_name) - -HLT_path_name_extra3 = "HLT_Ele17_SW_TightEleId_L1R" -HLT_filter_name_extra3 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TightEleIdDphiFilter","",HLT_process_name) - -# HLT_path_name_extra4 = "HLT_Ele17_SW_TighterEleIdIsol_L1R_v2" -# HLT_filter_name_extra4 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TighterEleIdIsolTrackIsolFilter","",HLT_process_name) - -HLT_path_name_extra5 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v1" -HLT_filter_name_extra5 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name) - -HLT_path_name_extra6 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v2" -HLT_filter_name_extra6 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name) - - -rules_Filter = cms.PSet ( - ### the input collections needed: - electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"), - metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"), - pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"), - tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"), - triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name), - triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name), - hltpath = cms.untracked.string(HLT_path_name), - hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name), - ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"), - eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"), - PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"), - ### here the preselection is applied - # fiducial cuts: - BarrelMaxEta = cms.untracked.double(1.4442), - EndCapMinEta = cms.untracked.double(1.5660), - EndCapMaxEta = cms.untracked.double(2.5000), - # demand ecal driven electron: - useEcalDrivenElectrons = cms.untracked.bool(True), - # demand offline spike cleaning with the Swiss Cross criterion: - useSpikeRejection = cms.untracked.bool(False), - spikeCleaningSwissCrossCut = cms.untracked.double(0.95), - # demand geometrically matched to an HLT object with ET>15GeV - useTriggerInfo = cms.untracked.bool(True), - electronMatched2HLT = cms.untracked.bool(True), - electronMatched2HLT_DR = cms.untracked.double(0.1), - useHLTObjectETCut = cms.untracked.bool(True), - hltObjectETCut = cms.untracked.double(15.0), - useExtraTrigger = cms.untracked.bool(True), -# vHltpathExtra = cms.untracked.vstring(HLT_path_name_extra0,HLT_path_name_extra1,HLT_path_name_extra2,HLT_path_name_extra3,HLT_path_name_extra4,HLT_path_name_extra5), -# vHltpathFilterExtra = cms.untracked.VInputTag(HLT_filter_name_extra0,HLT_filter_name_extra1,HLT_filter_name_extra2,HLT_filter_name_extra3,HLT_filter_name_extra4,HLT_filter_name_extra5), - vHltpathExtra = cms.untracked.vstring(HLT_path_name_extra0,HLT_path_name_extra1,HLT_path_name_extra2,HLT_path_name_extra3,HLT_path_name_extra5,HLT_path_name_extra6), - vHltpathFilterExtra = cms.untracked.VInputTag(HLT_filter_name_extra0,HLT_filter_name_extra1,HLT_filter_name_extra2,HLT_filter_name_extra3,HLT_filter_name_extra5,HLT_filter_name_extra6), - - # ET Cut in the SC - ETCut = cms.untracked.double(25.0), - METCut = cms.untracked.double(0.0), - # For DATA set it to True, for MC set it to False - dataMagneticFieldSetUp = cms.untracked.bool(True), - dcsTag = cms.untracked.InputTag("scalersRawToDigi") -) - - -rules_Filter_Elec0 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit0 = cms.untracked.bool(False), - useConversionRejection0 = cms.untracked.bool(False), - useExpectedMissingHits0 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0), - # calculate some new cuts - calculateValidFirstPXBHit0 = cms.untracked.bool(False), - calculateConversionRejection0 = cms.untracked.bool(False), - calculateExpectedMissingHits0 = cms.untracked.bool(False) -) - -rules_Filter_Elec1 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit1 = cms.untracked.bool(False), - useConversionRejection1 = cms.untracked.bool(False), - useExpectedMissingHits1 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0), - # calculate some new cuts - calculateValidFirstPXBHit1 = cms.untracked.bool(False), - calculateConversionRejection1 = cms.untracked.bool(False), - calculateExpectedMissingHits1 = cms.untracked.bool(False) -) - -rules_Filter_Elec2 = cms.PSet ( - # Other parameters of the code - leave them as they are - useValidFirstPXBHit2 = cms.untracked.bool(False), - useConversionRejection2 = cms.untracked.bool(False), - useExpectedMissingHits2 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0), - # calculate some new cuts - calculateValidFirstPXBHit2 = cms.untracked.bool(False), - calculateConversionRejection2 = cms.untracked.bool(False), - calculateExpectedMissingHits2 = cms.untracked.bool(False) -) - - -process.zeeFilter = cms.EDFilter('ZeeCandidateFilter', - rules_Filter, - rules_Filter_Elec0, - rules_Filter_Elec1, - rules_Filter_Elec2 -) - - - -## the Z selection that you prefer -from ElectroWeakAnalysis.ZEE.simpleCutBasedSpring10SelectionBlocks_cfi import * - -selection_inverse = cms.PSet ( - deta_EB_inv = cms.untracked.bool(True), - deta_EE_inv = cms.untracked.bool(True) - ) - - -rules_Plotter = cms.PSet ( - # treat or not the elecrons with same criteria. if yes then rules_Plotter_Elec1/2 are neglected - useSameSelectionOnBothElectrons = cms.untracked.bool(True), - # some extra information on the ntuple production: - sihih0_EB = cms.untracked.double(1000.0), - dphi0_EB = cms.untracked.double(1000.0), - deta0_EB = cms.untracked.double(1000.0), - hoe0_EB = cms.untracked.double(1000.0), - sihih0_EE = cms.untracked.double(1000.0), - dphi0_EE = cms.untracked.double(1000.0), - deta0_EE = cms.untracked.double(1000.0), - hoe0_EE = cms.untracked.double(1000.0), - includeJetInformationInNtuples = cms.untracked.bool(True), - caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'), - pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'), - DRJetFromElectron = cms.untracked.double(0.3), - # - zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT"), - ZEE_VBTFselectionFileName = cms.untracked.string("ZEE_VBTFselection.root"), - ZEE_VBTFpreseleFileName = cms.untracked.string("ZEE_VBTFpreselection.root"), - DatasetTag = cms.untracked.int32(100), - storeExtraInformation = cms.untracked.bool(True) -) - -rules_Plotter_Elec0 = cms.PSet ( - # The selection to be used here: - usePrecalcID0 = cms.untracked.bool(True), - usePrecalcIDType0 = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign0 = cms.untracked.string('='), - usePrecalcIDValue0 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit0 = cms.untracked.bool(False), - useConversionRejection0 = cms.untracked.bool(False), - useExpectedMissingHits0 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0), - ## - calculateValidFirstPXBHit0 = cms.untracked.bool(False), - calculateConversionRejection0 = cms.untracked.bool(False), - calculateExpectedMissingHits0 = cms.untracked.bool(False) -) - -rules_Plotter_Elec1 = cms.PSet ( - # The selection to be used here: - usePrecalcID1 = cms.untracked.bool(True), - usePrecalcIDType1 = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign1 = cms.untracked.string('='), - usePrecalcIDValue1 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit1 = cms.untracked.bool(False), - useConversionRejection1 = cms.untracked.bool(False), - useExpectedMissingHits1 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0), - ## - calculateValidFirstPXBHit1 = cms.untracked.bool(False), - calculateConversionRejection1 = cms.untracked.bool(False), - calculateExpectedMissingHits1 = cms.untracked.bool(False) -) - -rules_Plotter_Elec2 = cms.PSet ( - # The selection to be used here: - usePrecalcID2 = cms.untracked.bool(True), - usePrecalcIDType2 = cms.untracked.string('simpleEleId80relIso'), - usePrecalcIDSign2 = cms.untracked.string('='), - usePrecalcIDValue2 = cms.untracked.double(7), - ## preselection criteria are independent of useSameSelectionOnBothElectrons - # set them to False if you don't want them - useValidFirstPXBHit2 = cms.untracked.bool(False), - useConversionRejection2 = cms.untracked.bool(False), - useExpectedMissingHits2 = cms.untracked.bool(True), - maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0), - ## - calculateValidFirstPXBHit2 = cms.untracked.bool(False), - calculateConversionRejection2 = cms.untracked.bool(False), - calculateExpectedMissingHits2 = cms.untracked.bool(False) -) - - -# we need to store jet information, hence we have to produce the jets: -process.load("JetMETCorrections.Configuration.DefaultJEC_cff") - -process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 ) - -process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 ) - -process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence ) - - -process.plotter = cms.EDAnalyzer('ZeePlots', - rules_Plotter, - rules_Plotter_Elec0, - rules_Plotter_Elec1, - rules_Plotter_Elec2 -) - - -# For DATA, 361p4 electrons need fixing first (misalignment corrections) *NOT* be used with MC -#process.load("RecoEgamma.EgammaTools.correctedElectronsProducer_cfi") -#process.p = cms.Path( process.gsfElectrons*process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter) - -# For DATA, 397 electrons are fixed (misalignment corrections included) -#process.p = cms.Path( process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter) - -# For MonteCarlo, -process.p = cms.Path( process.ourJetSequence * process.patDefaultSequence +process.zeeFilter + process.plotter) - - diff --git a/ElectroWeakAnalysis/ZMuMu/bin/BuildFile.xml b/ElectroWeakAnalysis/ZMuMu/bin/BuildFile.xml deleted file mode 100644 index b9c8a80ff6ad0..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/BuildFile.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ElectroWeakAnalysis/ZMuMu/bin/csa08HLTFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/csa08HLTFit.cpp deleted file mode 100644 index 6593b8aff546a..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/csa08HLTFit.cpp +++ /dev/null @@ -1,443 +0,0 @@ -#include "FWCore/Utilities/interface/EDMException.h" -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/Numerical.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Polynomial.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Operations.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/HistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootMinuitCommands.h" -#include "PhysicsTools/Utilities/interface/FunctClone.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "PhysicsTools/Utilities/interface/Expression.h" -#include "PhysicsTools/Utilities/interface/HistoPdf.h" -#include "TROOT.h" -#include "TH1.h" -#include "TFile.h" -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -//A function that sets istogram contents to 0 -//if they are too small -void fix(TH1* histo) { - for (int i = 1; i <= histo->GetNbinsX(); ++i) { - if (histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } -} - -struct sig_tag; -struct bkg_tag; - -int main(int ac, char* av[]) { - gROOT->SetStyle("Plain"); - try { - typedef funct::FunctExpression Expr; - typedef fit::HistoChiSquare ExprChi2; - typedef fit::MultiHistoChiSquare ChiSquared; - - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options()("help,h", "produce help message")("input-file,i", po::value >(), "input file")( - "min,m", po::value(&fMin)->default_value(60), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(120), "maximum value for fit range")( - "plot-format,p", po::value(&ext)->default_value("ps"), "output plot format"); - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - fit::RootMinuitCommands commands("csa08HLTFit.txt"); - - const unsigned int rebinMuMuNoIso = 2, rebinMuMu = 1, rebinMuMu1HLT = 1, rebinMuMu2HLT = 1, rebinMuTk = 2, - rebinMuSa = 8; - // assume that the bin size is 1 GeV!!! - funct::Constant rebinMuMuNoIsoConst(rebinMuMuNoIso), rebinMuMuConst(rebinMuMu), rebinMuMu1HLTConst(rebinMuMu1HLT), - rebinMuMu2HLTConst(rebinMuMu2HLT), rebinMuTkConst(rebinMuTk), rebinMuSaConst(rebinMuSa); - - if (vm.count("input-file")) { - cout << "Input files are: " << vm["input-file"].as >() << "\n"; - vector v_file = vm["input-file"].as >(); - for (vector::const_iterator it = v_file.begin(); it != v_file.end(); ++it) { - TFile* root_file = new TFile(it->c_str(), "read"); - - TH1D* histoZMuMuNoIso = (TH1D*)root_file->Get("nonIsolatedZToMuMuPlots/zMass"); - histoZMuMuNoIso->Rebin(rebinMuMuNoIso); - fix(histoZMuMuNoIso); - - TH1D* histoZMuMu = (TH1D*)root_file->Get("goodZToMuMuPlots/zMass"); - histoZMuMu->Rebin(rebinMuMu); - fix(histoZMuMu); - - TH1D* histoZMuMu1HLT = (TH1D*)root_file->Get("goodZToMuMu1HLTPlots/zMass"); - histoZMuMu1HLT->Rebin(rebinMuMu1HLT); - fix(histoZMuMu1HLT); - - TH1D* histoZMuMu2HLT = (TH1D*)root_file->Get("goodZToMuMu2HLTPlots/zMass"); - histoZMuMu2HLT->Rebin(rebinMuMu2HLT); - fix(histoZMuMu2HLT); - - TH1D* histoZMuTk = (TH1D*)root_file->Get("goodZToMuMuOneTrackPlots/zMass"); - histoZMuTk->Rebin(rebinMuTk); - fix(histoZMuTk); - - TH1D* histoZMuSa = (TH1D*)root_file->Get("goodZToMuMuOneStandAloneMuonPlots/zMass"); - histoZMuSa->Rebin(rebinMuSa); - fix(histoZMuSa); - - cout << ">>> histogram loaded\n"; - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - replace(f_string.begin(), f_string.end(), '/', '_'); - string plot_string = f_string + "." + ext; - cout << ">>> Input files loaded\n"; - - const char* kYieldZMuMu = "YieldZMuMu"; - const char* kEfficiencyTk = "EfficiencyTk"; - const char* kEfficiencySa = "EfficiencySa"; - const char* kEfficiencyIso = "EfficiencyIso"; - const char* kEfficiencyHLT = "EfficiencyHLT"; - const char* kYieldBkgZMuTk = "YieldBkgZMuTk"; - const char* kYieldBkgZMuSa = "YieldBkgZMuSa"; - const char* kYieldBkgZMuMuNotIso = "YieldBkgZMuMuNotIso"; - const char* kAlpha = "Alpha"; - const char* kBeta = "Beta"; - const char* kLambda = "Lambda"; - const char* kA0 = "A0"; - const char* kA1 = "A1"; - const char* kA2 = "A2"; - const char* kB0 = "B0"; - const char* kB1 = "B1"; - const char* kB2 = "B2"; - const char* kMeanZMuSa = "MeanZMuSa"; - const char* kSigmaZMuSa = "SigmaZMuSa"; - - funct::Parameter yieldZMuMu(kYieldZMuMu, commands.par(kYieldZMuMu)); - funct::Parameter effTk(kEfficiencyTk, commands.par(kEfficiencyTk)); - funct::Parameter effSa(kEfficiencySa, commands.par(kEfficiencySa)); - funct::Parameter effIso(kEfficiencyIso, commands.par(kEfficiencyIso)); - funct::Parameter effHLT(kEfficiencyHLT, commands.par(kEfficiencyHLT)); - funct::Parameter yieldBkgZMuTk(kYieldBkgZMuTk, commands.par(kYieldBkgZMuTk)); - funct::Parameter yieldBkgZMuSa(kYieldBkgZMuSa, commands.par(kYieldBkgZMuSa)); - funct::Parameter yieldBkgZMuMuNotIso(kYieldBkgZMuMuNotIso, commands.par(kYieldBkgZMuMuNotIso)); - funct::Parameter meanZMuSa(kMeanZMuSa, commands.par(kMeanZMuSa)); - funct::Parameter sigmaZMuSa(kSigmaZMuSa, commands.par(kSigmaZMuSa)); - funct::Parameter alpha(kAlpha, commands.par(kAlpha)); - funct::Parameter beta(kBeta, commands.par(kBeta)); - funct::Parameter lambda(kLambda, commands.par(kLambda)); - funct::Parameter a0(kA0, commands.par(kA0)); - funct::Parameter a1(kA1, commands.par(kA1)); - funct::Parameter a2(kA2, commands.par(kA2)); - funct::Parameter b0(kB0, commands.par(kB0)); - funct::Parameter b1(kB1, commands.par(kB1)); - funct::Parameter b2(kB2, commands.par(kB2)); - funct::Constant cFMin(fMin), cFMax(fMax); - - // count ZMuMu Yield - double nZMuMu = 0, nZMuMu1HLT = 0, nZMuMu2HLT = 0; - { - unsigned int nBins = histoZMuMu->GetNbinsX(); - double xMin = histoZMuMu->GetXaxis()->GetXmin(); - double xMax = histoZMuMu->GetXaxis()->GetXmax(); - double deltaX = (xMax - xMin) / nBins; - for (unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i + .5) * deltaX; - if (x > fMin && x < fMax) { - nZMuMu += histoZMuMu->GetBinContent(i + 1); - nZMuMu1HLT += histoZMuMu1HLT->GetBinContent(i + 1); - nZMuMu2HLT += histoZMuMu2HLT->GetBinContent(i + 1); - } - } - } - // aggiungi 1HLT 2HLT - cout << ">>> count of ZMuMu yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu << endl; - cout << ">>> count of ZMuMu (1HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu1HLT << endl; - cout << ">>> count of ZMuMu (2HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu2HLT << endl; - funct::RootHistoPdf zPdfMuMuNonIso(*histoZMuMu, fMin, fMax); //imposto le pdf a quella si ZMuMu - funct::RootHistoPdf zPdfMuTk = zPdfMuMuNonIso; - funct::RootHistoPdf zPdfMuMu1HLT = zPdfMuMuNonIso; - funct::RootHistoPdf zPdfMuMu2HLT = zPdfMuMuNonIso; - zPdfMuMuNonIso.rebin(rebinMuMuNoIso); - zPdfMuTk.rebin(rebinMuTk); - zPdfMuMu1HLT.rebin(rebinMuMu1HLT); - zPdfMuMu2HLT.rebin(rebinMuMu2HLT); - - funct::Numerical<2> _2; - funct::Numerical<1> _1; - - //Efficiency term - Expr zMuMuEff1HLTTerm = _2 * (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * effHLT * (_1 - effHLT); - Expr zMuMuEff2HLTTerm = (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * (effHLT ^ _2); - Expr zMuMuNoIsoEffTerm = (effTk ^ _2) * (effSa ^ _2) * (_1 - (effIso ^ _2)) * (_1 - ((_1 - effHLT) ^ _2)); - Expr zMuTkEffTerm = _2 * (effTk ^ _2) * effSa * (_1 - effSa) * (effIso ^ _2) * effHLT; - Expr zMuSaEffTerm = _2 * (effSa ^ _2) * effTk * (_1 - effTk) * (effIso ^ _2) * effHLT; - - Expr zMuMu1HLT = rebinMuMu1HLTConst * zMuMuEff1HLTTerm * yieldZMuMu; - Expr zMuMu2HLT = rebinMuMu2HLTConst * zMuMuEff2HLTTerm * yieldZMuMu; - - Expr zMuTkBkg = yieldBkgZMuTk * funct::Exponential(lambda) * funct::Polynomial<2>(a0, a1, a2); - Expr zMuTkBkgScaled = rebinMuTkConst * zMuTkBkg; - Expr zMuTk = rebinMuTkConst * (zMuTkEffTerm * yieldZMuMu * zPdfMuTk + zMuTkBkg); - - Expr zMuMuNoIsoBkg = yieldBkgZMuMuNotIso * funct::Exponential(alpha) * funct::Polynomial<2>(b0, b1, b2); - Expr zMuMuNoIsoBkgScaled = rebinMuMuNoIsoConst * zMuMuNoIsoBkg; - Expr zMuMuNoIso = rebinMuMuNoIsoConst * (zMuMuNoIsoEffTerm * yieldZMuMu * zPdfMuMuNonIso + zMuMuNoIsoBkg); - - Expr zMuSa = rebinMuSaConst * (zMuSaEffTerm * yieldZMuMu * funct::Gaussian(meanZMuSa, sigmaZMuSa) + - (yieldBkgZMuSa * funct::Exponential(beta))); - - TH1D histoZCount1HLT("histoZCount1HLT", "", 1, fMin, fMax); - histoZCount1HLT.Fill(100, nZMuMu1HLT); - TH1D histoZCount2HLT("histoZCount2HLT", "", 1, fMin, fMax); - histoZCount2HLT.Fill(100, nZMuMu2HLT); - - ChiSquared chi2(zMuMu1HLT, - &histoZCount1HLT, - zMuMu2HLT, - &histoZCount2HLT, - zMuTk, - histoZMuTk, - zMuSa, - histoZMuSa, - zMuMuNoIso, - histoZMuMuNoIso, - fMin, - fMax); - cout << "N. bins: " << chi2.numberOfBins() << endl; - fit::RootMinuit minuit(chi2, true); - commands.add(minuit, yieldZMuMu); - commands.add(minuit, effTk); - commands.add(minuit, effSa); - commands.add(minuit, effIso); - commands.add(minuit, effHLT); - commands.add(minuit, yieldBkgZMuTk); - commands.add(minuit, yieldBkgZMuSa); - commands.add(minuit, yieldBkgZMuMuNotIso); - commands.add(minuit, meanZMuSa); - commands.add(minuit, sigmaZMuSa); - commands.add(minuit, lambda); - commands.add(minuit, alpha); - commands.add(minuit, beta); - commands.add(minuit, a0); - commands.add(minuit, a1); - commands.add(minuit, a2); - commands.add(minuit, b0); - commands.add(minuit, b1); - commands.add(minuit, b2); - commands.run(minuit); - const unsigned int nPar = 19; //WARNIG: this must be updated manually for now - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - std::cout << "error matrix:" << std::endl; - for (unsigned int i = 0; i < nPar; ++i) { - for (unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - //Plot - double s; - s = 0; - for (int i = 1; i <= histoZMuMuNoIso->GetNbinsX(); ++i) - s += histoZMuMuNoIso->GetBinContent(i); - histoZMuMuNoIso->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu->GetNbinsX(); ++i) - s += histoZMuMu->GetBinContent(i); - histoZMuMu->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu1HLT->GetNbinsX(); ++i) - s += histoZMuMu1HLT->GetBinContent(i); - histoZMuMu1HLT->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu2HLT->GetNbinsX(); ++i) - s += histoZMuMu2HLT->GetBinContent(i); - histoZMuMu2HLT->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuTk->GetNbinsX(); ++i) - s += histoZMuTk->GetBinContent(i); - histoZMuTk->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuSa->GetNbinsX(); ++i) - s += histoZMuSa->GetBinContent(i); - histoZMuSa->SetEntries(s); - - string ZMuMu1HLTPlot = "ZMuMu1HLTFit_" + plot_string; - root::plot(ZMuMu1HLTPlot.c_str(), - *histoZMuMu1HLT, - zMuMu1HLT, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kRed, - 2, - kDashed, - 100, - "Z -> #mu #mu mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMu2HLTPlot = "ZMuMu2HLTFit_" + plot_string; - root::plot(ZMuMu2HLTPlot.c_str(), - *histoZMuMu2HLT, - zMuMu2HLT, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kRed, - 2, - kDashed, - 100, - "Z -> #mu #mu mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMuNoIsoPlot = "ZMuMuNoIsoFit_" + plot_string; - root::plot(ZMuMuNoIsoPlot.c_str(), - *histoZMuMuNoIso, - zMuMuNoIso, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kRed, - 2, - kDashed, - 100, - "Z -> #mu #mu Not Iso mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuTkPlot = "ZMuTkFit_X_" + plot_string; - root::plot(ZMuTkPlot.c_str(), - *histoZMuTk, - zMuTk, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - yieldBkgZMuTk, - lambda, - a0, - a1, - a2, - kRed, - 2, - kDashed, - 100, - "Z -> #mu + (unmatched) track mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - ZMuTkPlot = "ZMuTkFit_" + plot_string; - TF1 funZMuTk = root::tf1_t("ZMuTkFunction", - zMuTk, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - yieldBkgZMuTk, - lambda, - a0, - a1, - a2); - funZMuTk.SetLineColor(kRed); - funZMuTk.SetLineWidth(2); - funZMuTk.SetLineStyle(kDashed); - funZMuTk.SetNpx(10000); - TF1 funZMuTkBkg = - root::tf1_t("ZMuTkBack", zMuTkBkgScaled, fMin, fMax, yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTkBkg.SetLineColor(kGreen); - funZMuTkBkg.SetLineWidth(2); - funZMuTkBkg.SetLineStyle(kDashed); - funZMuTkBkg.SetNpx(10000); - histoZMuTk->SetTitle("Z -> #mu + (unmatched) track mass"); - histoZMuTk->SetXTitle("#mu + (unmatched) track invariant mass (GeV/c^{2})"); - histoZMuTk->SetYTitle("Events"); - TCanvas* canvas = new TCanvas("canvas"); - histoZMuTk->Draw("e"); - funZMuTkBkg.Draw("same"); - funZMuTk.Draw("same"); - canvas->SaveAs(ZMuTkPlot.c_str()); - canvas->SetLogy(); - string logZMuTkPlot = "log_" + ZMuTkPlot; - canvas->SaveAs(logZMuTkPlot.c_str()); - string ZMuSaPlot = "ZMuSaFit_" + plot_string; - root::plot(ZMuSaPlot.c_str(), - *histoZMuSa, - zMuSa, - fMin, - fMax, - effSa, - effTk, - effIso, - yieldZMuMu, - meanZMuSa, - sigmaZMuSa, - yieldBkgZMuSa, - kRed, - 2, - kDashed, - 10000, - "Z -> #mu + (unmatched) standalone mass", - "#mu + (unmatched) standalone invariant mass (GeV/c^{2})", - "Events"); - } - } - } catch (std::exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } catch (...) { - cerr << "Exception of unknown type!\n"; - } - - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/csa08IsoBkg.cpp b/ElectroWeakAnalysis/ZMuMu/bin/csa08IsoBkg.cpp deleted file mode 100644 index 5f8ab8d826306..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/csa08IsoBkg.cpp +++ /dev/null @@ -1,288 +0,0 @@ -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/ZLineShape.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/Numerical.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Polynomial.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Convolution.h" -#include "PhysicsTools/Utilities/interface/Operations.h" -#include "PhysicsTools/Utilities/interface/Integral.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootMinuitCommands.h" -#include "PhysicsTools/Utilities/interface/FunctClone.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "TROOT.h" -#include "TH1.h" -#include "TFile.h" -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -//A function that sets istogram contents to 0 -//if they are too small -void fix(TH1* histo) { - for(int i = 1; i <= histo->GetNbinsX(); ++i) { - if(histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } -} - -typedef funct::GaussIntegrator IntegratorConv; -typedef funct::GaussIntegrator IntegratorNorm; - -typedef funct::Product::type>::type ZPeak; - -typedef funct::Master SigPeak; -typedef funct::Slave SigPeakClone; -typedef funct::Product::type Sig1; -typedef funct::Product::type Sig2; - -typedef funct::Product< - funct::Exponential, - funct::Polynomial<2> >::type ExpPoly; - -NUMERICAL_FUNCT_INTEGRAL(ExpPoly, GaussIntegrator); - -typedef funct::DefIntegral ExpPolyNormFactor; -typedef funct::Ratio::type ExpPolyNorm; - -typedef funct::Product< - funct::Parameter, - funct::Difference< - funct::Ratio< - funct::Numerical<2>, - funct::Parameter>::type, - funct::Numerical<2> >::type>::type Coeff1; - -typedef funct::Product::type Bkg1; - -typedef funct::Product< - funct::Parameter, - funct::Square< - funct::Difference< - funct::Ratio< - funct::Numerical<1>, - funct::Parameter>::type, - funct::Numerical<1> >::type>::type>::type Coeff2; - -typedef funct::Product::type Bkg2; - -NUMERICAL_FUNCT_INTEGRAL(Bkg1, GaussIntegrator); -NUMERICAL_FUNCT_INTEGRAL(Bkg2, GaussIntegrator); - -typedef funct::Sum::type Fun1; -typedef funct::Sum::type Fun2; -typedef fit::MultiHistoChiSquare ChiSquared; - -int main(int ac, char *av[]) { - gROOT->SetStyle("Plain"); - try { - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options() - ("help,h", "produce help message") - ("input-file,i", po::value< vector >(), "input file") - ("min,m", po::value(&fMin)->default_value(60), "minimum value for fit range") - ("max,M", po::value(&fMax)->default_value(120), "maximum value for fit range") - ("plot-format,p", po::value(&ext)->default_value("ps"), - "output plot format") - ; - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av). - options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - fit::RootMinuitCommands commands("csa08IsoBkg.txt"); - - if (vm.count("input-file")) { - cout << "Input files are: " - << vm["input-file"].as< vector >() << "\n"; - vector v_file = vm["input-file"].as< vector >(); - for(vector::const_iterator it = v_file.begin(); - it != v_file.end(); ++it) { - TFile * root_file = new TFile(it->c_str(),"read"); - - TH1D * histo1 = (TH1D*) root_file->Get("oneNonIsolatedZToMuMuPlots/zMass"); - fix(histo1); - TH1D * histo2 = (TH1D*) root_file->Get("twoNonIsolatedZToMuMuPlots/zMass"); - fix(histo2); - - cout << ">>> histogram loaded\n"; - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - replace(f_string.begin(), f_string.end(), '/', '_'); - string plot_string = f_string + "." + ext; - cout << ">>> Input files loaded\n"; - - const char * kYieldZMuMu1 = "YieldZMuMu1"; - const char * kYieldZMuMu2 = "YieldZMuMu2"; - const char * kYieldBkg = "YieldBkg"; - const char * kEffBkg = "EffBkg"; - const char * kLambdaZMuMu = "LambdaZMuMu"; - const char * kMass = "Mass"; - const char * kGamma = "Gamma"; - const char * kPhotonFactorZMuMu = "PhotonFactorZMuMu"; - const char * kInterferenceFactorZMuMu = "InterferenceFactorZMuMu"; - const char * kMeanZMuMu = "MeanZMuMu"; - const char * kSigmaZMuMu = "SigmaZMuMu"; - const char * kAlpha = "Alpha"; - const char * kA0 = "A0"; - const char * kA1 = "A1"; - const char * kA2 = "A2"; - - funct::Parameter lambdaZMuMu(kLambdaZMuMu, commands.par(kLambdaZMuMu)); - funct::Parameter mass(kMass, commands.par(kMass)); - funct::Parameter gamma(kGamma, commands.par(kGamma)); - funct::Parameter photonFactorZMuMu(kPhotonFactorZMuMu, commands.par(kPhotonFactorZMuMu)); - funct::Parameter interferenceFactorZMuMu(kInterferenceFactorZMuMu, commands.par(kInterferenceFactorZMuMu)); - funct::Parameter yieldZMuMu1(kYieldZMuMu1, commands.par(kYieldZMuMu1)); - funct::Parameter yieldZMuMu2(kYieldZMuMu2, commands.par(kYieldZMuMu2)); - funct::Parameter yieldBkg(kYieldBkg, commands.par(kYieldBkg)); - funct::Parameter effBkg(kEffBkg, commands.par(kEffBkg)); - funct::Parameter meanZMuMu(kMeanZMuMu, commands.par(kMeanZMuMu)); - funct::Parameter sigmaZMuMu(kSigmaZMuMu, commands.par(kSigmaZMuMu)); - funct::Parameter alpha(kAlpha, commands.par(kAlpha)); - funct::Parameter a0(kA0, commands.par(kA0)); - funct::Parameter a1(kA1, commands.par(kA1)); - funct::Parameter a2(kA2, commands.par(kA2)); - funct::Constant cFMin(fMin), cFMax(fMax); - - IntegratorConv integratorConv(1.e-4); - IntegratorNorm integratorNorm(1.e-4); - - ZPeak zPeak = funct::Exponential(lambdaZMuMu) * - funct::conv(funct::ZLineShape(mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu), - funct::Gaussian(meanZMuMu, sigmaZMuMu), - -3*sigmaZMuMu.value(), 3*sigmaZMuMu.value(), integratorConv); - SigPeak sp = funct::master(zPeak); - SigPeakClone spc = funct::slave(sp); - Sig1 sig1 = yieldZMuMu1 * sp; - Sig2 sig2 = yieldZMuMu2 * spc; - funct::Numerical<1> _1; - funct::Numerical<2> _2; - ExpPoly ep = funct::Exponential(alpha) * funct::Polynomial<2>(a0, a1, a2); - ExpPolyNorm epn = ep / ExpPolyNormFactor(ep, cFMin, cFMax, integratorNorm); - Coeff1 c1 = yieldBkg * (_2 / effBkg - _2); - Bkg1 bkg1 = c1 * epn; - Coeff2 c2 = yieldBkg * ((_1 /effBkg - _1) ^ _2); - Bkg2 bkg2 = c2 * epn; - Fun1 f1 = sig1 + bkg1; - Fun2 f2 = sig2 + bkg2; - - ChiSquared chi2(f1, histo1, f2, histo2, fMin, fMax); - cout << "N. deg. of freedom: " << chi2.degreesOfFreedom() << endl; - fit::RootMinuit minuit(chi2, true); - commands.add(minuit, yieldZMuMu1); - commands.add(minuit, yieldZMuMu2); - commands.add(minuit, yieldBkg); - commands.add(minuit, effBkg); - commands.add(minuit, lambdaZMuMu); - commands.add(minuit, mass); - commands.add(minuit, gamma); - commands.add(minuit, photonFactorZMuMu); - commands.add(minuit, interferenceFactorZMuMu); - commands.add(minuit, meanZMuMu); - commands.add(minuit, sigmaZMuMu); - commands.add(minuit, alpha); - commands.add(minuit, a0); - commands.add(minuit, a1); - commands.add(minuit, a2); - commands.run(minuit); - const unsigned int nPar = 15;//WARNIG: this must be updated manually for now - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - std::cout << "error matrix:" << std::endl; - for(unsigned int i = 0; i < nPar; ++i) { - for(unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - - funct::GaussIntegrator integrator(1.e-6); - double nbkg1 = funct::integral_f(bkg1, fMin, fMax, integrator); - double nbkg2 = funct::integral_f(bkg2, fMin, fMax, integrator); - std::cout << "Background yields in [" << fMin <<", " << fMax << "]: " - << nbkg1 <<", " <Integral(int(fMin), int(fMax)); - double i2 = histo2->Integral(int(fMin), int(fMax)); - std::cout << "Histogram integrals in [" << fMin <<", " << fMax << "]: " - << i1 <<", " << i2 << std::endl; - double s; - s = 0; - for(int i = 1; i <= histo1->GetNbinsX(); ++i) - s += histo1->GetBinContent(i); - histo1->SetEntries(s); - s = 0; - for(int i = 1; i <= histo2->GetNbinsX(); ++i) - s += histo2->GetBinContent(i); - histo2->SetEntries(s); - - double extrap = nbkg1*nbkg1 / nbkg2 /4; - cout << "extrapolated background with no isolated muons:" << extrap << endl; - - string Plot1 = "OneIsolated_" + plot_string; - root::plot(Plot1.c_str(), *histo1, f1, fMin, fMax, - yieldZMuMu1, lambdaZMuMu, mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu, - meanZMuMu, sigmaZMuMu, yieldBkg, effBkg, alpha, a0, a1, a2, - kRed, 2, kDashed, 100, - "Z -> #mu #mu mass", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - string Plot2 = "TwoIsolated_" + plot_string; - root::plot(Plot2.c_str(), *histo2, f2, fMin, fMax, - yieldZMuMu2, lambdaZMuMu, mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu, - meanZMuMu, sigmaZMuMu, yieldBkg, effBkg, alpha, a0, a1, a2, - kRed, 2, kDashed, 100, - "Z -> #mu #mu mass", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - } - } - - } - catch(exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } - catch(...) { - cerr << "Exception of unknown type!\n"; - } - return 0; -} - - - diff --git a/ElectroWeakAnalysis/ZMuMu/bin/csa08NewZFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/csa08NewZFit.cpp deleted file mode 100644 index 86fbb5c9d9ade..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/csa08NewZFit.cpp +++ /dev/null @@ -1,326 +0,0 @@ -#include "FWCore/Utilities/interface/EDMException.h" -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/Numerical.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Polynomial.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Operations.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootMinuitCommands.h" -#include "PhysicsTools/Utilities/interface/FunctClone.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "PhysicsTools/Utilities/interface/Expression.h" -#include "PhysicsTools/Utilities/interface/HistoPdf.h" -#include "TROOT.h" -#include "TH1.h" -#include "TFile.h" -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -//A function that sets istogram contents to 0 -//if they are too small -void fix(TH1* histo) { - for(int i = 1; i <= histo->GetNbinsX(); ++i) { - if(histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } -} - -struct sig_tag; -struct bkg_tag; - -int main(int ac, char *av[]) { - gROOT->SetStyle("Plain"); - try { - typedef funct::FunctExpression Expr; - typedef fit::MultiHistoChiSquare ChiSquared; - - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options() - ("help,h", "produce help message") - ("input-file,i", po::value< vector >(), "input file") - ("min,m", po::value(&fMin)->default_value(60), "minimum value for fit range") - ("max,M", po::value(&fMax)->default_value(120), "maximum value for fit range") - ("plot-format,p", po::value(&ext)->default_value("ps"), - "output plot format") - ; - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av). - options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - fit::RootMinuitCommands commands("csa08NewZFit.txt"); - - const unsigned int rebinMuMuNoIso = 2,rebinMuMu = 1, rebinMuTk = 2, rebinMuSa = 8; - // assume that the bin size is 1 GeV!!! - funct::Constant rebinMuMuNoIsoConst(rebinMuMuNoIso),rebinMuMuConst(rebinMuMu), rebinMuTkConst(rebinMuTk), rebinMuSaConst(rebinMuSa); - - if (vm.count("input-file")) { - cout << "Input files are: " - << vm["input-file"].as< vector >() << "\n"; - vector v_file = vm["input-file"].as< vector >(); - for(vector::const_iterator it = v_file.begin(); - it != v_file.end(); ++it) { - TFile * root_file = new TFile(it->c_str(),"read"); - - TH1D * histoZMuMuNoIso = (TH1D*) root_file->Get("nonIsolatedZToMuMuPlots/zMass"); - histoZMuMuNoIso->Rebin(rebinMuMuNoIso); - fix(histoZMuMuNoIso); - - TH1D * histoZMuMu = (TH1D*) root_file->Get("goodZToMuMuPlots/zMass"); - histoZMuMu->Rebin(rebinMuMu); - fix(histoZMuMu); - - TH1D * histoZMuTk = (TH1D*) root_file->Get("goodZToMuMuOneTrackPlots/zMass"); - histoZMuTk->Rebin(rebinMuTk); - fix(histoZMuTk); - - TH1D * histoZMuSa = (TH1D*) root_file->Get("goodZToMuMuOneStandAloneMuonPlots/zMass"); - histoZMuSa->Rebin(rebinMuSa); - fix(histoZMuSa); - - cout << ">>> histogram loaded\n"; - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - replace(f_string.begin(), f_string.end(), '/', '_'); - string plot_string = f_string + "." + ext; - cout << ">>> Input files loaded\n"; - - const char * kYieldZMuMu = "YieldZMuMu"; - const char * kEfficiencyTk = "EfficiencyTk"; - const char * kEfficiencySa = "EfficiencySa"; - const char * kEfficiencyIso = "EfficiencyIso"; - const char * kYieldBkgZMuTk = "YieldBkgZMuTk"; - const char * kYieldBkgZMuSa = "YieldBkgZMuSa"; - const char * kYieldBkgZMuMuNotIso = "YieldBkgZMuMuNotIso"; - const char * kAlpha = "Alpha"; - const char * kBeta = "Beta"; - const char * kLambda = "Lambda"; - const char * kA0 = "A0"; - const char * kA1 = "A1"; - const char * kA2 = "A2"; - const char * kB0 = "B0"; - const char * kB1 = "B1"; - const char * kB2 = "B2"; - const char * kMeanZMuSa = "MeanZMuSa"; - const char * kSigmaZMuSa = "SigmaZMuSa"; - - funct::Parameter yieldZMuMu(kYieldZMuMu, commands.par(kYieldZMuMu)); - funct::Parameter effTk(kEfficiencyTk, commands.par(kEfficiencyTk)); - funct::Parameter effSa(kEfficiencySa, commands.par(kEfficiencySa)); - funct::Parameter effIso(kEfficiencyIso, commands.par(kEfficiencyIso)); - funct::Parameter yieldBkgZMuTk(kYieldBkgZMuTk, commands.par(kYieldBkgZMuTk)); - funct::Parameter yieldBkgZMuSa(kYieldBkgZMuSa, commands.par(kYieldBkgZMuSa)); - funct::Parameter yieldBkgZMuMuNotIso(kYieldBkgZMuMuNotIso, commands.par(kYieldBkgZMuMuNotIso)); - funct::Parameter meanZMuSa(kMeanZMuSa, commands.par(kMeanZMuSa)); - funct::Parameter sigmaZMuSa(kSigmaZMuSa, commands.par(kSigmaZMuSa)); - funct::Parameter alpha(kAlpha, commands.par(kAlpha)); - funct::Parameter beta(kBeta, commands.par(kBeta)); - funct::Parameter lambda(kLambda, commands.par(kLambda)); - funct::Parameter a0(kA0, commands.par(kA0)); - funct::Parameter a1(kA1, commands.par(kA1)); - funct::Parameter a2(kA2, commands.par(kA2)); - funct::Parameter b0(kB0, commands.par(kB0)); - funct::Parameter b1(kB1, commands.par(kB1)); - funct::Parameter b2(kB2, commands.par(kB2)); - funct::Constant cFMin(fMin), cFMax(fMax); - - // count ZMuMu Yield - double nZMuMu = 0; - { - unsigned int nBins = histoZMuMu->GetNbinsX(); - double xMin = histoZMuMu->GetXaxis()->GetXmin(); - double xMax = histoZMuMu->GetXaxis()->GetXmax(); - double deltaX =(xMax - xMin) / nBins; - for(unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i +.5) * deltaX; - if(x > fMin && x < fMax) - nZMuMu += histoZMuMu->GetBinContent(i+1); - } - } - - cout << ">>> count of ZMuMu yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu << endl; - - funct::RootHistoPdf zPdfMuMuNonIso(*histoZMuMu, fMin, fMax); - funct::RootHistoPdf zPdfMuTk = zPdfMuMuNonIso; - zPdfMuMuNonIso.rebin(rebinMuMuNoIso); - zPdfMuTk.rebin(rebinMuTk); - - funct::Numerical<2> _2; - funct::Numerical<1> _1; - - Expr zMuMuEffTerm = (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2); - Expr zMuMuNoIsoEffTerm = (effTk ^ _2) * (effSa ^ _2) * (_1 - (effIso ^ _2)); - Expr zMuTkEffTerm = _2 * (effTk ^ _2) * effSa * (_1 - effSa) * (effIso ^ _2); - Expr zMuSaEffTerm = _2 * (effSa ^ _2) * effTk * (_1 - effTk) * (effIso ^ _2); - - Expr zMuMu = rebinMuMuConst * zMuMuEffTerm * yieldZMuMu; - - Expr zMuTkBkg = yieldBkgZMuTk * funct::Exponential(lambda) * funct::Polynomial<2>(a0, a1, a2); - Expr zMuTkBkgScaled = rebinMuTkConst * zMuTkBkg; - Expr zMuTk = rebinMuTkConst * (zMuTkEffTerm * yieldZMuMu * zPdfMuTk + zMuTkBkg); - Expr zMuMuNoIsoBkg = yieldBkgZMuMuNotIso * funct::Exponential(alpha) * funct::Polynomial<2>(b0, b1, b2); - Expr zMuMuNoIsoBkgScaled = rebinMuMuNoIsoConst * zMuMuNoIsoBkg; - Expr zMuMuNoIso = rebinMuMuNoIsoConst * (zMuMuNoIsoEffTerm * yieldZMuMu * zPdfMuMuNonIso + zMuMuNoIsoBkg); - Expr zMuSa = rebinMuSaConst * (zMuSaEffTerm * yieldZMuMu * funct::Gaussian(meanZMuSa, sigmaZMuSa) - + (yieldBkgZMuSa * funct::Exponential(beta))); - - TH1D histoZCount("histoZCount", "", 1, fMin, fMax); - histoZCount.Fill(100, nZMuMu); - - ChiSquared chi2(zMuMu, & histoZCount, - zMuTk, histoZMuTk, - zMuSa, histoZMuSa, - zMuMuNoIso,histoZMuMuNoIso, - fMin, fMax); - cout << "N. deg. of freedom: " << chi2.degreesOfFreedom() << endl; - fit::RootMinuit minuit(chi2, true); - commands.add(minuit, yieldZMuMu); - commands.add(minuit, effTk); - commands.add(minuit, effSa); - commands.add(minuit, effIso); - commands.add(minuit, yieldBkgZMuTk); - commands.add(minuit, yieldBkgZMuSa); - commands.add(minuit, yieldBkgZMuMuNotIso); - commands.add(minuit, meanZMuSa); - commands.add(minuit, sigmaZMuSa); - commands.add(minuit, lambda); - commands.add(minuit, alpha); - commands.add(minuit, beta); - commands.add(minuit, a0); - commands.add(minuit, a1); - commands.add(minuit, a2); - commands.add(minuit, b0); - commands.add(minuit, b1); - commands.add(minuit, b2); - commands.run(minuit); - const unsigned int nPar = 18;//WARNIG: this must be updated manually for now - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - std::cout << "error matrix:" << std::endl; - for(unsigned int i = 0; i < nPar; ++i) { - for(unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - - double s; - s = 0; - for(int i = 1; i <= histoZMuMuNoIso->GetNbinsX(); ++i) - s += histoZMuMuNoIso->GetBinContent(i); - histoZMuMuNoIso->SetEntries(s); - for(int i = 1; i <= histoZMuMu->GetNbinsX(); ++i) - s += histoZMuMu->GetBinContent(i); - histoZMuMu->SetEntries(s); - s = 0; - for(int i = 1; i <= histoZMuTk->GetNbinsX(); ++i) - s += histoZMuTk->GetBinContent(i); - histoZMuTk->SetEntries(s); - s = 0; - for(int i = 1; i <= histoZMuSa->GetNbinsX(); ++i) - s += histoZMuSa->GetBinContent(i); - histoZMuSa->SetEntries(s); - string ZMuMuPlot = "ZMuMuFit_" + plot_string; - root::plot(ZMuMuPlot.c_str(), *histoZMuMu, zMuMu, fMin, fMax, - effTk, effSa, effIso, yieldZMuMu, - kRed, 2, kDashed, 100, - "Z -> #mu #mu mass", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMuNoIsoPlot = "ZMuMuNoIsoFit_" + plot_string; - root::plot(ZMuMuNoIsoPlot.c_str(), *histoZMuMuNoIso, zMuMuNoIso, fMin, fMax, - effTk, effSa, effIso, yieldZMuMu, - kRed, 2, kDashed, 100, - "Z -> #mu #mu Not Iso mass", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuTkPlot = "ZMuTkFit_X_" + plot_string; - root::plot(ZMuTkPlot.c_str(), *histoZMuTk, zMuTk, fMin, fMax, - effTk, effSa, effIso, yieldZMuMu, - yieldBkgZMuTk, lambda, a0, a1, a2, - kRed, 2, kDashed, 100, - "Z -> #mu + (unmatched) track mass", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - ZMuTkPlot = "ZMuTkFit_" + plot_string; - TF1 funZMuTk = root::tf1_t("ZMuTkFunction", zMuTk, fMin, fMax, - effTk, effSa, effIso, yieldZMuMu, - yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTk.SetLineColor(kRed); - funZMuTk.SetLineWidth(2); - funZMuTk.SetLineStyle(kDashed); - funZMuTk.SetNpx(10000); - TF1 funZMuTkBkg = root::tf1_t("ZMuTkBack", zMuTkBkgScaled, fMin, fMax, - yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTkBkg.SetLineColor(kGreen); - funZMuTkBkg.SetLineWidth(2); - funZMuTkBkg.SetLineStyle(kDashed); - funZMuTkBkg.SetNpx(10000); - histoZMuTk->SetTitle("Z -> #mu + (unmatched) track mass"); - histoZMuTk->SetXTitle("#mu + (unmatched) track invariant mass (GeV/c^{2})"); - histoZMuTk->SetYTitle("Events"); - TCanvas *canvas = new TCanvas("canvas"); - histoZMuTk->Draw("e"); - funZMuTkBkg.Draw("same"); - funZMuTk.Draw("same"); - canvas->SaveAs(ZMuTkPlot.c_str()); - canvas->SetLogy(); - string logZMuTkPlot = "log_" + ZMuTkPlot; - canvas->SaveAs(logZMuTkPlot.c_str()); - string ZMuSaPlot = "ZMuSaFit_" + plot_string; - root::plot(ZMuSaPlot.c_str(), *histoZMuSa, zMuSa, fMin, fMax, - effSa, effTk, effIso, - yieldZMuMu, meanZMuSa, sigmaZMuSa, yieldBkgZMuSa, - kRed, 2, kDashed, 10000, - "Z -> #mu + (unmatched) standalone mass", - "#mu + (unmatched) standalone invariant mass (GeV/c^{2})", - "Events"); - } - } - } - catch(exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } - catch(...) { - cerr << "Exception of unknown type!\n"; - } - - return 0; -} - - - diff --git a/ElectroWeakAnalysis/ZMuMu/bin/csa08NewZFit_EtaPtbinned.cpp b/ElectroWeakAnalysis/ZMuMu/bin/csa08NewZFit_EtaPtbinned.cpp deleted file mode 100644 index ab92a1960806f..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/csa08NewZFit_EtaPtbinned.cpp +++ /dev/null @@ -1,379 +0,0 @@ -#include "FWCore/Utilities/interface/EDMException.h" -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/Numerical.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Polynomial.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Operations.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootMinuitCommands.h" -#include "PhysicsTools/Utilities/interface/FunctClone.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "PhysicsTools/Utilities/interface/Expression.h" -#include "PhysicsTools/Utilities/interface/HistoPdf.h" -#include "TROOT.h" -#include "TH1.h" -#include "TFile.h" -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -//A function that sets istogram contents to 0 -//if they are too small -void fix(TH1* histo) { - for(int i = 1; i <= histo->GetNbinsX(); ++i) { - if(histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } -} - -typedef funct::FunctExpression Expr; -typedef fit::MultiHistoChiSquare ChiSquared; - -struct sig_tag; -struct bkg_tag; - -int main(int ac, char *av[]) { - gROOT->SetStyle("Plain"); - try { - - double fMin, fMax; - string ext, variable, muCharge; - int binNumber; - po::options_description desc("Allowed options"); - desc.add_options() - ("help,h", "produce help message") - ("input-file,i", po::value< vector >(), "input file") - ("min,m", po::value(&fMin)->default_value(60), "minimum value for fit range") - ("max,M", po::value(&fMax)->default_value(120), "maximum value for fit range") - ("eta_or_pt,v", po::value(&variable)->default_value("eta"), "variable to study (eta or pt)") - ("charge,q", po::value(&muCharge)->default_value("minus"),"muon charge to study (minus or plus)") - ("binNum,b", po::value(&binNumber)->default_value(0), "cynematic bin to fit") - ("plot-format,p", po::value(&ext)->default_value("ps"), - "output plot format") - ; - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av). - options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - fit::RootMinuitCommands commands("csa08NewZFit.txt"); - - const unsigned int rebinMuMu = 1, rebinMuTk = 2, rebinMuSa = 1; - // assume that the bin size is 1 GeV!!! - funct::Constant rebinMuMuConst(rebinMuMu), rebinMuTkConst(rebinMuTk), rebinMuSaConst(rebinMuSa); - - if (vm.count("input-file")) { - cout << "Input files are: " - << vm["input-file"].as< vector >() << "\n"; - vector v_file = vm["input-file"].as< vector >(); - for(vector::const_iterator it = v_file.begin(); - it != v_file.end(); ++it) { - TFile * root_file = new TFile(it->c_str(),"read"); - cout <<"start " << endl; - // variable and charge definition at moment in manual way - // string variable = "eta"; - // string muCharge = "minus"; - //////////////////////////////////////// - - stringstream sslabelZMuMu2HLT; - sslabelZMuMu2HLT << "zMuMu_efficiencyAnalyzer/" << variable << "Intervals" << "/zmumu2HLT" << muCharge << "_" << variable << "Range" << binNumber; - stringstream sslabelZMuMu1HLT; - sslabelZMuMu1HLT << "zMuMu_efficiencyAnalyzer/" << variable << "Intervals" << "/zmumu1HLT" << muCharge << "_" << variable << "Range" << binNumber; - stringstream sslabelZMuTk; - sslabelZMuTk << "zMuMu_efficiencyAnalyzer/" << variable << "Intervals" << "/zmutrack" << muCharge << "_" << variable << "Range" << binNumber; - stringstream sslabelZMuSa; - sslabelZMuSa << "zMuMu_efficiencyAnalyzer/" << variable << "Intervals" << "/zmusta" << muCharge << "_" << variable << "Range" << binNumber; - - cout << "histoZMuMu2HLT: " << sslabelZMuMu2HLT.str() << endl; - TH1D * histoZMuMu2HLT = (TH1D*) root_file->Get(sslabelZMuMu2HLT.str().c_str()); - histoZMuMu2HLT->Rebin(rebinMuMu); - fix(histoZMuMu2HLT); - cout << "histoZMuMu1HLT: " << sslabelZMuMu1HLT.str() << endl; - TH1D * histoZMuMu1HLT = (TH1D*) root_file->Get(sslabelZMuMu1HLT.str().c_str()); - histoZMuMu1HLT->Rebin(rebinMuMu); - fix(histoZMuMu1HLT); - cout << "histoZMuTk: " << sslabelZMuTk.str() << endl; - TH1D * histoZMuTk = (TH1D*) root_file->Get(sslabelZMuTk.str().c_str()); - // histoZMuTk->Rebin(rebinMuTk); - fix(histoZMuTk); - cout << "histoZMuSa: " << sslabelZMuSa.str() << endl; - TH1D * histoZMuSa = (TH1D*) root_file->Get(sslabelZMuSa.str().c_str()); - // histoZMuSa->Rebin(rebinMuSa); - fix(histoZMuSa); - cout << ">>> histogram loaded\n"; - - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - replace(f_string.begin(), f_string.end(), '/', '_'); - string plot_string = f_string + "." + ext; - cout << ">>> Input files loaded\n" << f_string << endl; - - const char * kYieldZMuMu = "YieldZMuMu"; - const char * kEfficiencyHLT = "EfficiencyHLT"; - const char * kEfficiencyTk = "EfficiencyTk"; - const char * kEfficiencySa = "EfficiencySa"; - const char * kYieldBkgZMuTk = "YieldBkgZMuTk"; - const char * kBeta = "Beta"; - const char * kLambda = "Lambda"; - // const char * kA0 = "A0"; - // const char * kA1 = "A1"; - // const char * kA2 = "A2"; - - funct::Parameter yieldZMuMu(kYieldZMuMu, commands.par(kYieldZMuMu)); - funct::Parameter effHLT(kEfficiencyHLT, commands.par(kEfficiencyHLT)); - funct::Parameter effTk(kEfficiencyTk, commands.par(kEfficiencyTk)); - funct::Parameter effSa(kEfficiencySa, commands.par(kEfficiencySa)); - funct::Parameter yieldBkgZMuTk(kYieldBkgZMuTk, commands.par(kYieldBkgZMuTk)); - funct::Parameter beta(kBeta, commands.par(kBeta)); - funct::Parameter lambda(kLambda, commands.par(kLambda)); - // funct::Parameter a0(kA0, commands.par(kA0)); - // funct::Parameter a1(kA1, commands.par(kA1)); - // funct::Parameter a2(kA2, commands.par(kA2)); - funct::Constant cFMin(fMin), cFMax(fMax); - - // add zMuMu2HLT and zMuMu1HLT to build pdf - TH1D *histoZMuMu = (TH1D *) histoZMuMu2HLT->Clone(); - histoZMuMu->Sumw2(); - histoZMuMu->Add(histoZMuMu2HLT,histoZMuMu1HLT); - - // count ZMuMu Yield - double nZMuMu = 0; - { - unsigned int nBins = histoZMuMu->GetNbinsX(); - double xMin = histoZMuMu->GetXaxis()->GetXmin(); - double xMax = histoZMuMu->GetXaxis()->GetXmax(); - double deltaX =(xMax - xMin) / nBins; - for(unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i +.5) * deltaX; - if(x > fMin && x < fMax) - nZMuMu += histoZMuMu->GetBinContent(i+1); - } - } - - // count ZMuMu2HLT Yield - double nZMuMu2HLT = 0; - { - unsigned int nBins = histoZMuMu2HLT->GetNbinsX(); - double xMin = histoZMuMu2HLT->GetXaxis()->GetXmin(); - double xMax = histoZMuMu2HLT->GetXaxis()->GetXmax(); - double deltaX =(xMax - xMin) / nBins; - for(unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i +.5) * deltaX; - if(x > fMin && x < fMax) - nZMuMu2HLT += histoZMuMu2HLT->GetBinContent(i+1); - } - } - - // count ZMuMu1HLT Yield - double nZMuMu1HLT = 0; - { - unsigned int nBins = histoZMuMu1HLT->GetNbinsX(); - double xMin = histoZMuMu1HLT->GetXaxis()->GetXmin(); - double xMax = histoZMuMu1HLT->GetXaxis()->GetXmax(); - double deltaX =(xMax - xMin) / nBins; - for(unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i +.5) * deltaX; - if(x > fMin && x < fMax) - nZMuMu1HLT += histoZMuMu1HLT->GetBinContent(i+1); - } - } - - // count ZMuSa Yield (too low statistis so we just check the number assuming 0 background) - double nZMuSa = 0; - { - unsigned int nBins = histoZMuSa->GetNbinsX(); - double xMin = histoZMuSa->GetXaxis()->GetXmin(); - double xMax = histoZMuSa->GetXaxis()->GetXmax(); - double deltaX =(xMax - xMin) / nBins; - for(unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i +.5) * deltaX; - if(x > fMin && x < fMax) - nZMuSa += histoZMuSa->GetBinContent(i+1); - } - } - - cout << ">>> count of ZMuMu yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu << endl; - cout << ">>> count of ZMuMu2HLT yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu2HLT << endl; - cout << ">>> count of ZMuMu1HLT yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu1HLT << endl; - cout << ">>> count of ZMuSa yield in the range [" << fMin << ", " << fMax << "]: " << nZMuSa << endl; - - - funct::RootHistoPdf zPdfMuTk(*histoZMuMu, fMin, fMax); - zPdfMuTk.rebin(rebinMuTk); - - funct::Numerical<2> _2; - funct::Numerical<1> _1; - - Expr zMuMu2HLTEffTerm = effTk * effSa * effHLT; - Expr zMuMu1HLTEffTerm = effTk * effSa * (_1 - effHLT); - Expr zMuTkEffTerm = effTk * (_1 - effSa); - Expr zMuSaEffTerm = effSa * (_1 - effTk); - - Expr zMuMu2HLT = rebinMuMuConst * zMuMu2HLTEffTerm * yieldZMuMu; - Expr zMuMu1HLT = rebinMuMuConst * zMuMu1HLTEffTerm * yieldZMuMu; - - Expr zMuTkBkg = yieldBkgZMuTk * funct::Exponential(lambda); - //* funct::Polynomial<2>(a0, a1, a2); - Expr zMuTkBkgScaled = rebinMuTkConst * zMuTkBkg; - Expr zMuTk = rebinMuTkConst * (zMuTkEffTerm * yieldZMuMu * zPdfMuTk + zMuTkBkg); - Expr zMuSa = rebinMuSaConst * zMuSaEffTerm * yieldZMuMu; - - TH1D histoZMM2HLTCount("histoZMM2HLTCount", "", 1, fMin, fMax); - histoZMM2HLTCount.Fill(100, nZMuMu2HLT); - TH1D histoZMM1HLTCount("histoZMM1HLTCount", "", 1, fMin, fMax); - histoZMM1HLTCount.Fill(100, nZMuMu1HLT); - TH1D histoZMSCount("histoZMSCount", "", 1, fMin, fMax); - histoZMSCount.Fill(100, nZMuSa); - - ChiSquared chi2(zMuMu2HLT, & histoZMM2HLTCount, - zMuMu1HLT, & histoZMM1HLTCount, - zMuTk, histoZMuTk, - zMuSa, & histoZMSCount, - fMin, fMax); - cout << "N. deg. of freedom: " << chi2.degreesOfFreedom() << endl; - fit::RootMinuit minuit(chi2, true); - commands.add(minuit, yieldZMuMu); - commands.add(minuit, effHLT); - commands.add(minuit, effTk); - commands.add(minuit, effSa); - commands.add(minuit, yieldBkgZMuTk); - commands.add(minuit, lambda); - commands.add(minuit, beta); - // commands.add(minuit, a0); - // commands.add(minuit, a1); - // commands.add(minuit, a2); - commands.run(minuit); - const unsigned int nPar = 7;//WARNING: this must be updated manually for now - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - std::cout << "error matrix:" << std::endl; - for(unsigned int i = 0; i < nPar; ++i) { - for(unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - - - double s; - s = 0; - for(int i = 1; i <= histoZMuMu2HLT->GetNbinsX(); ++i) - s += histoZMuMu2HLT->GetBinContent(i); - histoZMuMu2HLT->SetEntries(s); - s = 0; - for(int i = 1; i <= histoZMuMu1HLT->GetNbinsX(); ++i) - s += histoZMuMu1HLT->GetBinContent(i); - histoZMuMu1HLT->SetEntries(s); - s = 0; - for(int i = 1; i <= histoZMuTk->GetNbinsX(); ++i) - s += histoZMuTk->GetBinContent(i); - histoZMuTk->SetEntries(s); - s = 0; - for(int i = 1; i <= histoZMuSa->GetNbinsX(); ++i) - s += histoZMuSa->GetBinContent(i); - histoZMuSa->SetEntries(s); - stringstream mybin; - mybin << muCharge << "_" << variable << binNumber << "_"; - string ZMuMu2HLTPlot = "ZMuMu2HLTFit_muon" + mybin.str() + plot_string; - root::plot(ZMuMu2HLTPlot.c_str(), *histoZMuMu2HLT, zMuMu2HLT, fMin, fMax, - effHLT, effTk, effSa, yieldZMuMu, - kRed, 2, kDashed, 100, - "Z -> #mu #mu mass (2HLT)", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMu1HLTPlot = "ZMuMu1HLTFit_muon" + mybin.str() + plot_string; - root::plot(ZMuMu1HLTPlot.c_str(), *histoZMuMu1HLT, zMuMu1HLT, fMin, fMax, - effHLT, effTk, effSa, yieldZMuMu, - kRed, 2, kDashed, 100, - "Z -> #mu #mu mass (1HLT)", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuTkPlot = "ZMuTkFit_muon" + mybin.str() + plot_string; - root::plot(ZMuTkPlot.c_str(), *histoZMuTk, zMuTk, fMin, fMax, - effHLT, effTk, effSa, yieldZMuMu, - yieldBkgZMuTk, lambda, - //a0, a1, a2, - kRed, 2, kDashed, 100, - "Z -> #mu + (unmatched) track mass", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - // string ZMuTkPlot = "ZMuTkFit_muon" + muCharge + variable + binNumber + plot_string; - TF1 funZMuTk = root::tf1_t("ZMuTkFunction", zMuTk, fMin, fMax, - effHLT, effTk, effSa, yieldZMuMu, - yieldBkgZMuTk, lambda); - funZMuTk.SetLineColor(kRed); - funZMuTk.SetLineWidth(2); - funZMuTk.SetLineStyle(kDashed); - funZMuTk.SetNpx(10000); - TF1 funZMuTkBkg = root::tf1_t("ZMuTkBack", zMuTkBkgScaled, fMin, fMax, - yieldBkgZMuTk, lambda); - funZMuTkBkg.SetLineColor(kGreen); - funZMuTkBkg.SetLineWidth(2); - funZMuTkBkg.SetLineStyle(kDashed); - funZMuTkBkg.SetNpx(10000); - histoZMuTk->SetTitle("Z -> #mu + (unmatched) track mass"); - histoZMuTk->SetXTitle("#mu + (unmatched) track invariant mass (GeV/c^{2})"); - histoZMuTk->SetYTitle("Events"); - TCanvas *canvas = new TCanvas("canvas"); - histoZMuTk->Draw("e"); - funZMuTkBkg.Draw("same"); - funZMuTk.Draw("same"); - canvas->SaveAs(ZMuTkPlot.c_str()); - canvas->SetLogy(); - string logZMuTkPlot = "log_" + ZMuTkPlot; - canvas->SaveAs(logZMuTkPlot.c_str()); - string ZMuSaPlot = "ZMuSaFit_muon" + mybin.str() + plot_string; - root::plot(ZMuSaPlot.c_str(), *histoZMuSa, zMuSa, fMin, fMax, - effHLT, effSa, effTk, yieldZMuMu, - kRed, 2, kDashed, 10000, - "Z -> #mu + (unmatched) standalone mass", - "#mu + (unmatched) standalone invariant mass (GeV/c^{2})", - "Events"); - - } - - } - } - catch(exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } - catch(...) { - cerr << "Exception of unknown type!\n"; - } - - return 0; -} - - - diff --git a/ElectroWeakAnalysis/ZMuMu/bin/csa08ZFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/csa08ZFit.cpp deleted file mode 100644 index 7ae7f02213133..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/csa08ZFit.cpp +++ /dev/null @@ -1,384 +0,0 @@ -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/ZLineShape.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/Numerical.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Polynomial.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Convolution.h" -#include "PhysicsTools/Utilities/interface/Operations.h" -#include "PhysicsTools/Utilities/interface/Integral.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootMinuitCommands.h" -#include "PhysicsTools/Utilities/interface/FunctClone.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "TROOT.h" -#include "TH1.h" -#include "TFile.h" -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -//A function that sets istogram contents to 0 -//if they are too small -void fix(TH1* histo) { - for(int i = 1; i <= histo->GetNbinsX(); ++i) { - if(histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } -} - -typedef funct::GaussIntegrator IntegratorConv; -typedef funct::GaussIntegrator IntegratorNorm; -//typedef funct::TrapezoidIntegrator IntegratorConv; -//typedef funct::TrapezoidIntegrator IntegratorNorm; - -typedef funct::Product::type>::type ZPeakNoNorm; - -NUMERICAL_FUNCT_INTEGRAL(ZPeakNoNorm, IntegratorNorm); - -typedef funct::DefIntegral ZPeakNormFactor; -typedef funct::Ratio::type ZPeak; - -int main(int ac, char *av[]) { - gROOT->SetStyle("Plain"); - try { - typedef funct::Power >::type IsoefficiencytermSQ; - typedef funct::Master::type> ZMuMuFun; - typedef funct::Slave::type> ZMuMuFunClone; - typedef funct::Product >::type, - funct::Power >::type >::type, - IsoefficiencytermSQ >::type ZMuMuEfficiencyTerm; - typedef funct::Product::type ZMuMuSig; - - - typedef funct::Product >::type, - funct::Power >::type >::type, - funct::Difference, IsoefficiencytermSQ >::type>::type ZMuMuNoIsoEfficiencyTerm; - - typedef funct::Product::type ZMuMuNoIsoSig; - - typedef funct::Product, - funct::Product >::type, - funct::Product, funct::Parameter>::type - >::type - >::type - >::type, IsoefficiencytermSQ >::type ZMuTkEfficiencyTerm; - - - - typedef funct::Product::type ZMuTkSig; - typedef funct::Product >::type >::type ZMuTkBkg; - typedef funct::Product::type ZMuTkBkgScaled;//bgtrack rescaled - typedef ZMuTkBkg ZMuMuNoIsoBkg; - typedef ZMuTkBkgScaled ZMuMuNoIsoBkgScaled ;//bgZmmNotIso rescaled - typedef ZMuTkEfficiencyTerm ZMuSaEfficiencyTerm; - typedef funct::Product::type>::type ZMuSaSig; - typedef funct::Product::type ZMuSaBkg; - - // typedef ZMuTkBkg ZMuMuNoIsoBkg; - typedef funct::Product::type>::type ZMuMuNoIso;//3 - typedef funct::Product::type ZMuMu; - typedef funct::Product::type>::type ZMuTk; - typedef funct::Product::type>::type ZMuSa; - typedef fit::MultiHistoChiSquare ChiSquared; - - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options() - ("help,h", "produce help message") - ("input-file,i", po::value< vector >(), "input file") - ("min,m", po::value(&fMin)->default_value(60), "minimum value for fit range") - ("max,M", po::value(&fMax)->default_value(120), "maximum value for fit range") - ("plot-format,p", po::value(&ext)->default_value("ps"), - "output plot format") - ; - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av). - options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - fit::RootMinuitCommands commands("csa08ZFit.txt"); - - const int rebinMuMuNoIso = 2,rebinMuMu = 1, rebinMuTk = 2, rebinMuSa = 8; - // assume that the bin size is 1 GeV!!! - funct::Constant rebinMuMuNoIsoConst(rebinMuMuNoIso),rebinMuMuConst(rebinMuMu), rebinMuTkConst(rebinMuTk), rebinMuSaConst(rebinMuSa); - - if (vm.count("input-file")) { - cout << "Input files are: " - << vm["input-file"].as< vector >() << "\n"; - vector v_file = vm["input-file"].as< vector >(); - for(vector::const_iterator it = v_file.begin(); - it != v_file.end(); ++it) { - TFile * root_file = new TFile(it->c_str(),"read"); - - TH1D * histoZMuMuNoIso = (TH1D*) root_file->Get("nonIsolatedZToMuMuPlots/zMass"); - histoZMuMuNoIso->Rebin(rebinMuMuNoIso); - fix(histoZMuMuNoIso); - - TH1D * histoZMuMu = (TH1D*) root_file->Get("goodZToMuMuPlots/zMass"); - histoZMuMu->Rebin(rebinMuMu); - fix(histoZMuMu); - - TH1D * histoZMuTk = (TH1D*) root_file->Get("goodZToMuMuOneTrackPlots/zMass"); - histoZMuTk->Rebin(rebinMuTk); - fix(histoZMuTk); - - TH1D * histoZMuSa = (TH1D*) root_file->Get("goodZToMuMuOneStandAloneMuonPlots/zMass"); - histoZMuSa->Rebin(rebinMuSa); - fix(histoZMuSa); - - cout << ">>> histogram loaded\n"; - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - replace(f_string.begin(), f_string.end(), '/', '_'); - string plot_string = f_string + "." + ext; - cout << ">>> Input files loaded\n"; - - const char * kYieldZMuMu = "YieldZMuMu"; - const char * kEfficiencyTk = "EfficiencyTk"; - const char * kEfficiencySa = "EfficiencySa"; - const char * kEfficiencyIso = "EfficiencyIso"; - const char * kYieldBkgZMuTk = "YieldBkgZMuTk"; - const char * kYieldBkgZMuSa = "YieldBkgZMuSa"; - const char * kYieldBkgZMuMuNotIso = "YieldBkgZMuMuNotIso"; - const char * kLambdaZMuMu = "LambdaZMuMu"; - const char * kMass = "Mass"; - const char * kGamma = "Gamma"; - const char * kPhotonFactorZMuMu = "PhotonFactorZMuMu"; - const char * kInterferenceFactorZMuMu = "InterferenceFactorZMuMu"; - const char * kMeanZMuMu = "MeanZMuMu"; - const char * kSigmaZMuMu = "SigmaZMuMu"; - const char * kAlpha = "Alpha"; - const char * kB0 = "B0"; - const char * kB1 = "B1"; - const char * kB2 = "B2"; - const char * kLambda = "Lambda"; - const char * kA0 = "A0"; - const char * kA1 = "A1"; - const char * kA2 = "A2"; - const char * kBeta = "Beta"; - const char * kSigmaZMuSa = "SigmaZMuSa"; - - funct::Parameter lambdaZMuMu(kLambdaZMuMu, commands.par(kLambdaZMuMu)); - funct::Parameter mass(kMass, commands.par(kMass)); - funct::Parameter gamma(kGamma, commands.par(kGamma)); - funct::Parameter photonFactorZMuMu(kPhotonFactorZMuMu, commands.par(kPhotonFactorZMuMu)); - funct::Parameter interferenceFactorZMuMu(kInterferenceFactorZMuMu, commands.par(kInterferenceFactorZMuMu)); - funct::Parameter yieldZMuMu(kYieldZMuMu, commands.par(kYieldZMuMu)); - funct::Parameter efficiencyTk(kEfficiencyTk, commands.par(kEfficiencyTk)); - funct::Parameter efficiencySa(kEfficiencySa, commands.par(kEfficiencySa)); - funct::Parameter efficiencyIso(kEfficiencyIso, commands.par(kEfficiencyIso)); - funct::Parameter yieldBkgZMuTk(kYieldBkgZMuTk, commands.par(kYieldBkgZMuTk)); - funct::Parameter yieldBkgZMuSa(kYieldBkgZMuSa, commands.par(kYieldBkgZMuSa)); - funct::Parameter yieldBkgZMuMuNotIso(kYieldBkgZMuMuNotIso, commands.par(kYieldBkgZMuMuNotIso)); - funct::Parameter meanZMuMu(kMeanZMuMu, commands.par(kMeanZMuMu)); - funct::Parameter sigmaZMuMu(kSigmaZMuMu, commands.par(kSigmaZMuMu)); - funct::Parameter sigmaZMuSa(kSigmaZMuSa, commands.par(kSigmaZMuSa)); - funct::Parameter lambda(kLambda, commands.par(kLambda)); - funct::Parameter alpha(kAlpha, commands.par(kAlpha)); - funct::Parameter beta(kBeta, commands.par(kBeta)); - funct::Parameter b0(kB0, commands.par(kB0)); - funct::Parameter b1(kB1, commands.par(kB1)); - funct::Parameter b2(kB2, commands.par(kB2)); - funct::Parameter a0(kA0, commands.par(kA0)); - funct::Parameter a1(kA1, commands.par(kA1)); - funct::Parameter a2(kA2, commands.par(kA2)); - funct::Constant cFMin(fMin), cFMax(fMax); - - //IntegratorConv integratorConv(20); - //IntegratorNorm integratorNorm(20); - IntegratorConv integratorConv(1.e-4); - IntegratorNorm integratorNorm(1.e-4); - - ZPeakNoNorm zPeakNN = funct::Exponential(lambdaZMuMu) * - funct::conv(funct::ZLineShape(mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu), - funct::Gaussian(meanZMuMu, sigmaZMuMu), - -3*sigmaZMuMu.value(), 3*sigmaZMuMu.value(), integratorConv); - ZPeak zPeak = zPeakNN / ZPeakNormFactor(zPeakNN, cFMin, cFMax, integratorNorm); - ZMuMuFun zMuMuFun = funct::master(yieldZMuMu * zPeak); - ZMuMuFunClone zMuMuFunClone = funct::slave(zMuMuFun); - IsoefficiencytermSQ efficiencyIsoSquare = (efficiencyIso ^ funct::Numerical<2>(2)); //efficienza Isolamento al quadrato - ZMuMuEfficiencyTerm zMuMuEfficiencyTerm = ((efficiencyTk ^ funct::Numerical<2>(2)) * - (efficiencySa ^ funct::Numerical<2>(2))) * efficiencyIsoSquare; - ZMuMuNoIsoEfficiencyTerm zMuMuNoIsoEfficiencyTerm = ((efficiencyTk ^ funct::Numerical<2>(2)) * - (efficiencySa ^ funct::Numerical<2>(2))) * (funct::Numerical<1>(1) - efficiencyIsoSquare); - ZMuMu zMuMu = rebinMuMuConst * (zMuMuEfficiencyTerm * zMuMuFun); - - ZMuTkBkg zMuTkBkg = yieldBkgZMuTk * (funct::Exponential(lambda) * funct::Polynomial<2>(a0, a1, a2)); - ZMuTkBkgScaled zMuTkBkgScaled = rebinMuTkConst * zMuTkBkg; - ZMuTkEfficiencyTerm zMuTkEfficiencyTerm = funct::Numerical<2>(2) * - ((efficiencyTk ^ funct::Numerical<2>(2)) * (efficiencySa * (funct::Numerical<1>(1) - efficiencySa))) * efficiencyIsoSquare; - ZMuTk zMuTk = rebinMuTkConst*(zMuTkEfficiencyTerm * zMuMuFunClone + zMuTkBkg); - - ZMuMuNoIsoBkg zMuMuNoIsoBkg = yieldBkgZMuMuNotIso * (funct::Exponential(alpha) * funct::Polynomial<2>(b0, b1, b2)); - ZMuMuNoIsoBkgScaled zMuMuNoIsoBkgScaled = rebinMuMuNoIsoConst * zMuMuNoIsoBkg; - ZMuMuNoIso zMuMuNoIso = rebinMuMuNoIsoConst * ((zMuMuNoIsoEfficiencyTerm * zMuMuFunClone) + zMuMuNoIsoBkg); - - ZMuSaEfficiencyTerm zMuSaEfficiencyTerm = funct::Numerical<2>(2) * - ((efficiencySa ^ funct::Numerical<2>()) * (efficiencyTk * (funct::Numerical<1>() - efficiencyTk)))* efficiencyIsoSquare ; - ZMuSa zMuSa = rebinMuSaConst *(zMuSaEfficiencyTerm * (yieldZMuMu * funct::Gaussian(mass, sigmaZMuSa)) - + (yieldBkgZMuSa * funct::Exponential(beta))); - - ChiSquared chi2(zMuMu, histoZMuMu, - zMuTk, histoZMuTk, - zMuSa, histoZMuSa, - zMuMuNoIso,histoZMuMuNoIso, - fMin, fMax);//WARNING attento all'ordine in cui hai definito il ch2 - cout << "N. deg. of freedom: " << chi2.numberOfBins() << endl; - fit::RootMinuit minuit(chi2, true); - commands.add(minuit, yieldZMuMu); - commands.add(minuit, efficiencyTk); - commands.add(minuit, efficiencySa); - commands.add(minuit, efficiencyIso); - commands.add(minuit, yieldBkgZMuTk); - commands.add(minuit, yieldBkgZMuSa); - commands.add(minuit, yieldBkgZMuMuNotIso); - commands.add(minuit, lambdaZMuMu); - commands.add(minuit, mass); - commands.add(minuit, gamma); - commands.add(minuit, photonFactorZMuMu); - commands.add(minuit, interferenceFactorZMuMu); - commands.add(minuit, meanZMuMu); - commands.add(minuit, sigmaZMuMu); - commands.add(minuit, sigmaZMuSa); - commands.add(minuit, lambda); - commands.add(minuit, alpha); - commands.add(minuit, beta); - commands.add(minuit, a0); - commands.add(minuit, a1); - commands.add(minuit, a2); - commands.add(minuit, b0); - commands.add(minuit, b1); - commands.add(minuit, b2); - commands.run(minuit); - const unsigned int nPar = 24;//WARNIG: this must be updated manually for now - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - std::cout << "error matrix:" << std::endl; - for(unsigned int i = 0; i < nPar; ++i) { - for(unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - - double s; - s = 0; - for(int i = 1; i <= histoZMuMuNoIso->GetNbinsX(); ++i) - s += histoZMuMuNoIso->GetBinContent(i); - histoZMuMuNoIso->SetEntries(s); - for(int i = 1; i <= histoZMuMu->GetNbinsX(); ++i) - s += histoZMuMu->GetBinContent(i); - histoZMuMu->SetEntries(s); - s = 0; - for(int i = 1; i <= histoZMuTk->GetNbinsX(); ++i) - s += histoZMuTk->GetBinContent(i); - histoZMuTk->SetEntries(s); - s = 0; - for(int i = 1; i <= histoZMuSa->GetNbinsX(); ++i) - s += histoZMuSa->GetBinContent(i); - histoZMuSa->SetEntries(s); - string ZMuMuPlot = "ZMuMuFit_" + plot_string; - root::plot(ZMuMuPlot.c_str(), *histoZMuMu, zMuMu, fMin, fMax, - efficiencyTk, efficiencySa, efficiencyIso, - yieldZMuMu, lambdaZMuMu, mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu, - meanZMuMu, sigmaZMuMu, - kRed, 2, kDashed, 100, - "Z -> #mu #mu mass", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMuNoIsoPlot = "ZMuMuNoIsoFit_" + plot_string; - root::plot(ZMuMuNoIsoPlot.c_str(), *histoZMuMuNoIso, zMuMuNoIso, fMin, fMax, - efficiencyTk, efficiencySa, efficiencyIso, - yieldZMuMu, lambdaZMuMu, mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu, - meanZMuMu, sigmaZMuMu, - kRed, 2, kDashed, 100, - "Z -> #mu #mu Not Iso mass", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuTkPlot = "ZMuTkFit_" + plot_string; - TF1 funZMuTk = root::tf1("ZMuTkFunction", zMuTk, fMin, fMax, - efficiencyTk, efficiencySa,efficiencyIso, - yieldZMuMu, lambdaZMuMu, mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu, - meanZMuMu, sigmaZMuMu, - yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTk.SetLineColor(kRed); - funZMuTk.SetLineWidth(2); - funZMuTk.SetLineStyle(kDashed); - funZMuTk.SetNpx(10000); - TF1 funZMuTkBkg = root::tf1("ZMuTkBack", zMuTkBkgScaled, fMin, fMax, - yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTkBkg.SetLineColor(kGreen); - funZMuTkBkg.SetLineWidth(2); - funZMuTkBkg.SetLineStyle(kDashed); - funZMuTkBkg.SetNpx(10000); - histoZMuTk->SetTitle("Z -> #mu + (unmatched) track mass"); - histoZMuTk->SetXTitle("#mu + (unmatched) track invariant mass (GeV/c^{2})"); - histoZMuTk->SetYTitle("Events"); - TCanvas *canvas = new TCanvas("canvas"); - histoZMuTk->Draw("e"); - funZMuTk.Draw("same"); - funZMuTkBkg.Draw("same"); - canvas->SaveAs(ZMuTkPlot.c_str()); - canvas->SetLogy(); - string logZMuTkPlot = "log_" + ZMuTkPlot; - canvas->SaveAs(logZMuTkPlot.c_str()); - string ZMuSaPlot = "ZMuSaFit_" + plot_string; - root::plot(ZMuSaPlot.c_str(), *histoZMuSa, zMuSa, fMin, fMax, - efficiencySa, efficiencyTk, efficiencyIso, - yieldZMuMu, mass, sigmaZMuSa, yieldBkgZMuSa, - kRed, 2, kDashed, 10000, - "Z -> #mu + (unmatched) standalone mass", - "#mu + (unmatched) standalone invariant mass (GeV/c^{2})", - "Events"); - } - } - - } - catch(std::exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } - catch(...) { - cerr << "Exception of unknown type!\n"; - } - return 0; -} - - - diff --git a/ElectroWeakAnalysis/ZMuMu/bin/testBias.cpp b/ElectroWeakAnalysis/ZMuMu/bin/testBias.cpp deleted file mode 100644 index 81f33f3ed38ff..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/testBias.cpp +++ /dev/null @@ -1,128 +0,0 @@ -#include "TROOT.h" -#include "PhysicsTools/Utilities/interface/Expression.h" -#include "PhysicsTools/Utilities/interface/BreitWigner.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/rootTf1.h" -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/Numerical.h" -#include "TH1.h" -#include "TF1.h" -#include "TFile.h" -#include "TRandom3.h" -#include -using namespace std; - -struct sig_tag { }; -struct bkg1_tag{ }; -struct bkg2_tag{ }; - -int main() { - gROOT->SetStyle("Plain"); - typedef funct::FunctExpression Expr; - typedef fit::MultiHistoChiSquare ChiSquared; - TRandom3 rndm; - TFile file("out.root", "RECREATE"); - TH1F hSigPull("sigPull", "sig - pull", 100, -10, 10); - TH1F hEffPull("effPull", "eff - pull", 100, -10, 10); - TH1F hBkg1Pull("bkg1Pull", "bkg1 - pull", 100, -10, 10); - TH1F hBkg2Pull("bkg2Pull", "bkg1 - pull", 100, -10, 10); - bool firstTime = true; - for(unsigned int n=0; n < 1000; ++n) { - const char * kSig = "Sig"; - const char * kEff = "Eff"; - const char * kBkg1 = "Bkg1"; - const char * kBkg2 = "Bkg2"; - const char * kMass = "Mass"; - const char * kGamma = "Gamma"; - const char * kLambda1 = "Lambda1"; - const char * kLambda2 = "Lambda2"; - double sig_true = 1000; - double eff_true = 0.95; - double bkg1_true = 100; - double bkg2_true = 40; - double mass_true = 91.2; - double gamma_true = 2.50; - double lambda1_true = -0.01; - double lambda2_true = -0.005; - - funct::Parameter sig(kSig, sig_true); - funct::Parameter eff(kEff, eff_true); - funct::Parameter bkg1(kBkg1, bkg1_true); - funct::Parameter bkg2(kBkg2, bkg2_true); - funct::Parameter mass(kMass, mass_true); - funct::Parameter gamma(kGamma, gamma_true); - funct::Parameter lambda1(kLambda1, lambda1_true); - funct::Parameter lambda2(kLambda2, lambda2_true); - const double n_rebin = 0.5; - funct::Parameter rebin("rebin", n_rebin); - - funct::Numerical<2> _2; - funct::Numerical<1> _1; - funct::BreitWigner bw(mass, gamma); - funct::Exponential expo1(lambda1); - funct::Exponential expo2(lambda2); - Expr fSig = sig * bw; - Expr fBkg1 = bkg1 * expo1; - Expr fBkg2 = bkg2 * expo2; - Expr f1 = rebin*(_2 * eff * (_1 - eff) * fSig + fBkg1); - Expr f2 = rebin*((eff ^ _2) * fSig + fBkg2); - TF1 funSig = root::tf1_t("fSig", fSig, 0, 200, sig, mass, gamma); - TF1 funBkg1 = root::tf1_t("fBkg1", fBkg1, 0, 200, bkg1, lambda1); - TF1 funBkg2 = root::tf1_t("fBkg2", fBkg2, 0, 200, bkg2, lambda2); - int bins = int(200. / n_rebin); - TH1D histo1("histo1", "Z mass (GeV/c)", bins, 0, 200); - TH1D histo2("histo2", "Z mass (GeV/c)", bins, 0, 200); - double areaBkg1 = funBkg1.Integral(0,200); - double areaBkg2 = funBkg2.Integral(0,200); - histo1.FillRandom("fBkg1", int(rndm.Poisson(areaBkg1))); - histo2.FillRandom("fBkg2", int(rndm.Poisson(areaBkg2))); - double areaSig = funSig.Integral(0, 200); - int nSig = int(rndm.Poisson(areaSig)); - for(int i = 0; i < nSig; ++i) { - bool pass1 = rndm.Uniform() < eff_true; - bool pass2 = rndm.Uniform() < eff_true; - double x = funSig.GetRandom(); - if((pass1 && !pass2) || (!pass1 && pass2)) histo1.Fill(x); - if(pass1 && pass2) histo2.Fill(x); - } - - if(firstTime) { - histo1.Write(); - histo2.Write(); - } - ChiSquared chi2(f1, &histo1, f2, &histo2, 80, 140); - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(sig, 100, 0, 10000); - minuit.addParameter(eff, 0.01, 0, 1); - minuit.addParameter(mass, 2, 70, 120); - minuit.addParameter(gamma, 1, 0, 5); - minuit.addParameter(bkg1, 10, 0, 10000); - minuit.addParameter(bkg2, 10, 0, 10000); - minuit.addParameter(lambda1, 0.1, -5, 0); - minuit.addParameter(lambda2, 0.1, -5, 0); - minuit.minimize(); - minuit.migrad(); - - double sigPull = (sig() - sig_true) / minuit.getParameterError(kSig); - cout << "sig pull: " << sigPull << endl; - double effPull = (eff() - eff_true) / minuit.getParameterError(kEff); - cout << "eff pull: " << effPull << endl; - double bkg1Pull = (bkg1() - bkg1_true) / minuit.getParameterError(kBkg1); - cout << "bkg1Pull: " << bkg1Pull << endl; - double bkg2Pull = (bkg2() - bkg2_true) / minuit.getParameterError(kBkg2); - cout << "bkg2Pull: " << bkg2Pull << endl; - hSigPull.Fill(sigPull); - hEffPull.Fill(effPull); - hBkg1Pull.Fill(bkg1Pull); - hBkg2Pull.Fill(bkg2Pull); - firstTime = false; - } - hSigPull.Write(); - hEffPull.Write(); - hBkg1Pull.Write(); - hBkg2Pull.Write(); - file.Close(); - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/testToy.sh b/ElectroWeakAnalysis/ZMuMu/bin/testToy.sh deleted file mode 100755 index 1e31a2cced175..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/testToy.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -######################### -# -# Driver script for Toy Monte Carlo submission with CRAB -# -# author: Luca Lista, INFN -# -######################### - -if [ -e outputToy ]; then - rm -rf outputToy -fi -mkdir outputToy - -i="$1" -l="$2" -if [ "$i" == "help" ]; then - echo "usage: testToy.sh " - exit 0; -fi -if [ "$i" = "" ]; then - echo "Error: missing job index" - exit 1; -fi -if [ "$i" = "" ]; then - echo "Error: missing job index" - exit 1; -fi -if [ "$l" = "" ]; then - echo "Error: missing luminosity" - exit 1; -fi - -rm -f fitResults.txt -echo "# par_name init_val fin_val par_err global_corr" > fitResults.txt -((j = 1)) -((jmax=$i)) - -echo "job number: #$i" -echo "j value: #$j" -while [ $j -le $jmax ]; do -echo "running toy MC : zMuMuRooFit -i Analisi_45pb.root -o out.root -r 2 2 10 60 -t -s $j -l $l" - zMuMuRooFit -i Analisi_45pb.root -o out.root -r 2 2 10 60 -t -s $j -l $l >& log.txt - # retrieve fit values and store into a single file - grep " Yield" log.txt >> fitResults.txt - grep " a0" log.txt >> fitResults.txt - grep " a1" log.txt >> fitResults.txt - grep " a2" log.txt >> fitResults.txt - grep " alpha" log.txt >> fitResults.txt - grep " b0" log.txt >> fitResults.txt - grep " b1" log.txt >> fitResults.txt - grep " b2" log.txt >> fitResults.txt - grep " beta" log.txt >> fitResults.txt - grep " eff_hlt" log.txt >> fitResults.txt - grep " eff_iso" log.txt >> fitResults.txt - grep " eff_sa" log.txt >> fitResults.txt - grep " eff_tk" log.txt >> fitResults.txt - grep " nbkg_mumuNotIso" log.txt >> fitResults.txt - grep " nbkg_mutrk" log.txt >> fitResults.txt - mv mass.eps outputToy/mass_$j.eps - mv out.root outputToy/out_$j.root - mv log.txt outputToy/log_$j.txt - mv fitResults.txt outputToy/ - ((j= $j + 1)) -done -echo "pack the results" -tar cvfz outputToy.tgz outputToy/ - diff --git a/ElectroWeakAnalysis/ZMuMu/bin/toyMonteCarlo.cpp b/ElectroWeakAnalysis/ZMuMu/bin/toyMonteCarlo.cpp deleted file mode 100644 index 1c37e41754777..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/toyMonteCarlo.cpp +++ /dev/null @@ -1,366 +0,0 @@ -/*************************/ -/* */ -/* author: Pasquale Noli */ -/* INFN Naples */ -/* Toy Montecarlo */ -/* */ -/*************************/ - -//root include -#include "TRandom3.h" -#include "TH1.h" -#include "TF1.h" -#include "TFile.h" -#include "TDirectory.h" -#include -#include -#include -#include -#include -#include -#include -#include - -using namespace std; - -void fillRandom(int N, TH1F *pdf, TH1F *histo, double min, double max, TRandom3 *rndm) { - int i = 0; - double m = 0; - const double maxY = pdf->GetMaximum(); - const double nBins = pdf->GetNbinsX(); - const double xMin = pdf->GetXaxis()->GetXmin(); - const double xMax = pdf->GetXaxis()->GetXmax(); - do { - m = rndm->Uniform(min, max); - int n = (int)((m - xMin) / (xMax - xMin) * nBins) + 1; - double y = pdf->GetBinContent(n); - if (rndm->Uniform() < y / maxY) { - histo->Fill(m); - i++; - } - } while (i < N); -} - -enum MuTag { globalMu, trackerMu, standaloneMu, undefinedMu }; - -MuTag mu(double effTrk, double effSa, TRandom3 *rndm) { - double _isTraker = rndm->Rndm(); - double _isStandAlone = rndm->Rndm(); - if ((_isTraker < effTrk) && (_isStandAlone < effSa)) - return globalMu; - if ((_isStandAlone < effSa) && (_isTraker > effTrk)) - return standaloneMu; - if ((_isTraker < effTrk) && (_isStandAlone > effSa)) - return trackerMu; - return undefinedMu; -} - -bool efficiencyTag(double eff, TRandom3 *rndm) { return (rndm->Rndm() < eff); } - -class BkgShape { -public: - BkgShape(double min, double max, double slope, double a0, double a1, double a2) - : norm_(1), min_(min), max_(max), fmax_(0), slope_(slope), a0_(a0), a1_(a1), a2_(a2) { - normalize(); - } - double operator()(double x) const { - if (x < min_ || x > max_) - return 0; - return exp(-slope_ * x) * (a0_ + (a1_ + a2_ * x) * x); - } - double rndm(TRandom3 *rndm) const { - double x, f; - do { - x = rndm->Uniform(min_, max_); - f = operator()(x); - } while (rndm->Uniform(0, fmax_) > f); - return x; - } - double integral() const { return norm_; } - -private: - void normalize() { - static const unsigned int steps = 1000; - double s = 0, x, f; - double base = max_ - min_; - double dx = base / steps; - for (unsigned int n = 0; n < steps; ++n) { - x = min_ + (n * dx); - s += (f = operator()(x)) * dx; - if (f > fmax_) - fmax_ = f; - } - fmax_ *= 1.001; //max of f - norm_ = s; - } - double norm_, min_, max_, fmax_; - double slope_, a0_, a1_, a2_; -}; - -int main(int argc, char *argv[]) { - TRandom3 *rndm = new TRandom3(); - int o; - char *endPtr; - const char *pdf("analysis_Z_133pb_trackIso_3.root"); - double yield(3810.0), effTrk(.996), effSa(.987), effHlt(.913), effIso(.982), factor(1.0), MIN(60.), MAX(120.); - double slopeMuTk(0.02), a0MuTk(1.0), a1MuTk(0.0), a2MuTk(0.0); - double slopeMuMuNonIso(0.02), a0MuMuNonIso(1.0), a1MuMuNonIso(0.0), a2MuMuNonIso(0.0); - double slopeMuSa(0.02), a0MuSa(1.0), a1MuSa(0.0), a2MuSa(0.0); - // double yield(50550.0), effTrk(.998364), effSa(.989626),effHlt(.915496), effIso(.978575),factor(1.0); - // double slopeMuTk(.015556), a0MuTk(.00035202), a1MuTk(2.99663), a2MuTk(-0.0211138); - // double slopeMuMuNonIso(.0246876),a0MuMuNonIso(.884777), a1MuMuNonIso(6.67684), a2MuMuNonIso(-0.0523693); - // BkgShape zMuTkBkgPdf(60., 120., slopeMuTk, a0MuTk, a1MuTk, a2MuTk); - // BkgShape zMuMuNonIsoBkgPdf(60., 120., slopeMuMuNonIso, a0MuMuNonIso, a1MuMuNonIso, a2MuMuNonIso); - - int expt(1), seed(1); - - while ((o = getopt(argc, argv, "p:n:s:y:m:M:f:T:S:H:I:h")) != EOF) { - switch (o) { - case 'p': - pdf = optarg; - break; - case 'n': - expt = strtoul(optarg, &endPtr, 0); - break; - case 's': - seed = strtoul(optarg, &endPtr, 0); - break; - case 'y': - yield = strtoul(optarg, &endPtr, 0); - break; - case 'm': - MIN = strtoul(optarg, &endPtr, 0); - break; - case 'M': - MAX = strtoul(optarg, &endPtr, 0); - break; - case 'f': - factor = strtoul(optarg, &endPtr, 0); - break; - case 'T': - effTrk = strtod(optarg, &endPtr); - break; - case 'S': - effSa = strtod(optarg, &endPtr); - break; - case 'H': - effHlt = strtod(optarg, &endPtr); - break; - case 'I': - effIso = strtod(optarg, &endPtr); - break; - case 'h': - cout << " -p : input root file for pdf" << endl - << " -n : number of experiment (default 1)" << endl - << " -s : seed for generator (default 1)" << endl - << " -T : efficiency of track (default 0.9984)" << endl - << " -S : efficiency of standAlone(default 0.9896)" << endl - << " -I : efficiency of Isolation (default 0.9786)" << endl - << " -H : efficiency of HLT (default 0.9155)" << endl - << " -y : yield (default 50550)" << endl - << " -f : scaling_factor for bkg (default 1.0)" << endl - << " -m : Min (60)" << endl - << " -M : Max (120)" << endl; - break; - default: - break; - } - } - BkgShape zMuTkBkgPdf(MIN, MAX, slopeMuTk, a0MuTk, a1MuTk, a2MuTk); - BkgShape zMuMuNonIsoBkgPdf(MIN, MAX, slopeMuMuNonIso, a0MuMuNonIso, a1MuMuNonIso, a2MuMuNonIso); - BkgShape zMuSaBkgPdf(MIN, MAX, slopeMuSa, a0MuSa, a1MuSa, a2MuSa); - MuTag mu1, mu2; - rndm->SetSeed(seed); - int count = 0; - //PDF - TFile *inputfile = new TFile(pdf); - TH1F *pdfzmm = (TH1F *)inputfile->Get("goodZToMuMuPlots/zMass"); //pdf signal Zmumu(1hlt,2hlt), ZMuMunotIso, ZmuTk - TH1F *pdfzmsa = (TH1F *)inputfile->Get("zmumuSaMassHistogram/zMass"); //pdf signal ZmuSa - double IntegralzmumuNoIsobkg = factor * (zMuMuNonIsoBkgPdf.integral()); - double Integralzmutkbkg = factor * (zMuTkBkgPdf.integral()); - double Integralzmusabkg = factor * (zMuSaBkgPdf.integral()); - - for (int j = 1; j <= expt; ++j) { //loop on number of experiments - int N0 = rndm->Poisson(yield); - int nMuTkBkg = rndm->Poisson(Integralzmutkbkg); - int nMuMuNonIsoBkg = rndm->Poisson(IntegralzmumuNoIsobkg); - int nMuSaBkg = rndm->Poisson(Integralzmusabkg); - int Nmumu = 0; - int N2HLT = 0; - int N1HLT = 0; - int NISO = 0; - int NSa = 0; - int NTk = 0; - for (int i = 0; i < N0; ++i) { //loop on Z Yield - mu1 = mu(effTrk, effSa, rndm); - mu2 = mu(effTrk, effSa, rndm); - bool iso1 = efficiencyTag(effIso, rndm); - bool iso2 = efficiencyTag(effIso, rndm); - bool trig1 = efficiencyTag(effHlt, rndm); - bool trig2 = efficiencyTag(effHlt, rndm); - - if (mu1 == globalMu && mu2 == globalMu) { - if (iso1 && iso2) { //two global mu isolated - if (trig1 && trig2) - N2HLT++; //two trigger - else if ((trig1 && !trig2) || (!trig1 && trig2)) - N1HLT++; //one trigger - } else if (!iso1 || !iso2) { //at least one not iso - if (trig1 || trig2) - NISO++; //at least one trigger - } - } //end global - else if (((mu1 == globalMu && trig1) && mu2 == standaloneMu) || - ((mu2 == globalMu && trig2) && mu1 == standaloneMu)) { - if (iso1 && iso2) - NSa++; - } //end mu sa - else if (((mu1 == globalMu && trig1) && mu2 == trackerMu) || ((mu2 == globalMu && trig2) && mu1 == trackerMu)) { - if (iso1 && iso2) - NTk++; - } //end mu tk - - } //end of generation given the yield - - Nmumu = N2HLT + N1HLT; - - //Define signal Histo - TH1F *zMuMu = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuMu2HLT = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuMu1HLT = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuMuNotIso = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuSa = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuTk = new TH1F("zMass", "zMass", 200, 0, 200); - pdfzmsa->SetName("zMass"); - - //Fill signal Histo - - fillRandom(Nmumu, pdfzmm, zMuMu, MIN, MAX, rndm); - fillRandom(N2HLT, pdfzmm, zMuMu2HLT, MIN, MAX, rndm); - fillRandom(N1HLT, pdfzmm, zMuMu1HLT, MIN, MAX, rndm); - fillRandom(NISO, pdfzmm, zMuMuNotIso, MIN, MAX, rndm); - fillRandom(NSa, pdfzmsa, zMuSa, MIN, MAX, rndm); - fillRandom(NTk, pdfzmm, zMuTk, MIN, MAX, rndm); - - //output - char head[30]; - sprintf(head, "zmm_%d", j); - string tail = ".root"; - string title = head + tail; - - TFile *outputfile = new TFile(title.c_str(), "RECREATE"); - - //Hierarchy directory - - TDirectory *goodZToMuMu = outputfile->mkdir("goodZToMuMuPlots"); - TDirectory *goodZToMuMu2HLT = outputfile->mkdir("goodZToMuMu2HLTPlots"); - TDirectory *goodZToMuMu1HLT = outputfile->mkdir("goodZToMuMu1HLTPlots"); - TDirectory *nonIsolatedZToMuMu = outputfile->mkdir("nonIsolatedZToMuMuPlots"); - TDirectory *goodZToMuMuOneStandAloneMuon = outputfile->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - TDirectory *zmumuSaMassHistogram = outputfile->mkdir("zmumuSaMassHistogram"); - TDirectory *goodZToMuMuOneTrack = outputfile->mkdir("goodZToMuMuOneTrackPlots"); - - goodZToMuMu->cd(); - zMuMu->Write(); - - goodZToMuMu2HLT->cd(); - zMuMu2HLT->Write(); - - goodZToMuMu1HLT->cd(); - zMuMu1HLT->Write(); - - nonIsolatedZToMuMu->cd(); - zMuMuNotIso->Write(); - - goodZToMuMuOneStandAloneMuon->cd(); - zMuSa->Write(); - - zmumuSaMassHistogram->cd(); - pdfzmsa->Write(); - - goodZToMuMuOneTrack->cd(); - zMuTk->Write(); - - outputfile->Write(); - outputfile->Close(); - - delete zMuMu; - delete zMuMu2HLT; - delete zMuMu1HLT; - delete zMuMuNotIso; - delete zMuSa; - delete zMuTk; - - //Define Background Histo - TH1F *zMuMuBkg = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuMu2HLTBkg = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuMu1HLTBkg = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuSaBkg = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuSafromGoldenBkg = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuMuNotIsoBkg = new TH1F("zMass", "zMass", 200, 0, 200); - TH1F *zMuTkBkg = new TH1F("zMass", "zMass", 200, 0, 200); - - //Fill >Bkg Histograms - for (int i = 0; i < nMuTkBkg; ++i) { - zMuTkBkg->Fill(zMuTkBkgPdf.rndm(rndm)); - } - for (int i = 0; i < nMuMuNonIsoBkg; ++i) { - zMuMuNotIsoBkg->Fill(zMuMuNonIsoBkgPdf.rndm(rndm)); - } - for (int i = 0; i < nMuSaBkg; ++i) { - zMuSaBkg->Fill(zMuSaBkgPdf.rndm(rndm)); - } - char head2[30]; - sprintf(head2, "bkg_%d", j); - string title2 = head2 + tail; - TFile *outputfile2 = new TFile(title2.c_str(), "RECREATE"); - - //Hierarchy directory - TDirectory *goodZToMuMu2 = outputfile2->mkdir("goodZToMuMuPlots"); - TDirectory *goodZToMuMu2HLT2 = outputfile2->mkdir("goodZToMuMu2HLTPlots"); - TDirectory *goodZToMuMu1HLT2 = outputfile2->mkdir("goodZToMuMu1HLTPlots"); - TDirectory *nonIsolatedZToMuMu2 = outputfile2->mkdir("nonIsolatedZToMuMuPlots"); - TDirectory *goodZToMuMuOneStandAloneMuon2 = outputfile2->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - TDirectory *zmumuSaMassHistogram2 = outputfile2->mkdir("zmumuSaMassHistogram"); - TDirectory *goodZToMuMuOneTrack2 = outputfile2->mkdir("goodZToMuMuOneTrackPlots"); - - goodZToMuMu2->cd(); - zMuMuBkg->Write(); - - goodZToMuMu2HLT2->cd(); - zMuMu2HLTBkg->Write(); - - goodZToMuMu1HLT2->cd(); - zMuMu1HLTBkg->Write(); - - nonIsolatedZToMuMu2->cd(); - zMuMuNotIsoBkg->Write(); - - goodZToMuMuOneStandAloneMuon2->cd(); - zMuSaBkg->Write(); - - zmumuSaMassHistogram2->cd(); - zMuSafromGoldenBkg->Write(); - - goodZToMuMuOneTrack2->cd(); - zMuTkBkg->Write(); - - outputfile2->Write(); - outputfile2->Close(); - - delete zMuMuBkg; - delete zMuMu2HLTBkg; - delete zMuMu1HLTBkg; - delete zMuMuNotIsoBkg; - delete zMuSafromGoldenBkg; - delete zMuSaBkg; - delete zMuTkBkg; - - // cout< -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -// A function that get histogram and sets contents to 0 -// if entries are too small -TH1* getHisto(TFile* file, const char* name, unsigned int rebin) { - TObject* h = file->Get(name); - if (h == nullptr) - throw edm::Exception(edm::errors::Configuration) << "Can't find object " << name << "\n"; - TH1* histo = dynamic_cast(h); - if (histo == nullptr) - throw edm::Exception(edm::errors::Configuration) - << "Object " << name << " is of type " << h->ClassName() << ", not TH1\n"; - histo->Rebin(rebin); - for (int i = 1; i <= histo->GetNbinsX(); ++i) { - if (histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } - return histo; -} - -struct sig_tag; -struct bkg_tag; - -typedef funct::FunctExpression Expr; -typedef fit::HistoChiSquare ExprChi2; -typedef fit::HistoPoissonLikelihoodRatio ExprPLR; - -double fMin, fMax; -unsigned int rebinMuMuNoIso, rebinMuMu = 1, rebinMuMu1HLT, rebinMuMu2HLT, rebinMuTk, rebinMuSa; -// assume that the bin size is 1 GeV!!! -string ext, region; -bool nonIsoTemplateFromMC; - -template -struct PlotPrefix {}; - -template <> -struct PlotPrefix { - static string str() { return "chi2"; } -}; - -template <> -struct PlotPrefix { - static string str() { return "plr"; } -}; - -template -int main_t(const vector& v_file) { - typedef fit::MultiHistoChiSquare ChiSquared; - fit::RootMinuitCommands commands("zChi2Fit.txt"); - - cout << "minuit command file completed" << endl; - - funct::Constant rebinMuMuNoIsoConst(rebinMuMuNoIso), rebinMuMuConst(rebinMuMu), rebinMuMu1HLTConst(rebinMuMu1HLT), - rebinMuMu2HLTConst(rebinMuMu2HLT), rebinMuTkConst(rebinMuTk), rebinMuSaConst(rebinMuSa); - - for (vector::const_iterator it = v_file.begin(); it != v_file.end(); ++it) { - TFile* root_file = new TFile(it->c_str(), "read"); - - // default when region==all - // TH1 * histoZMuMuNoIso = getHisto(root_file, "nonIsolatedZToMuMuPlots/zMass",rebinMuMuNoIso); - TH1* histoZMuMuNoIso = getHisto(root_file, "oneNonIsolatedZToMuMuPlots/zMass", rebinMuMuNoIso); - TH1* histoZMuMu = getHisto(root_file, "goodZToMuMuPlots/zMass", rebinMuMu); - TH1* histoZMuMu1HLT = getHisto(root_file, "goodZToMuMu1HLTPlots/zMass", rebinMuMu1HLT); - TH1* histoZMuMu2HLT = getHisto(root_file, "goodZToMuMu2HLTPlots/zMass", rebinMuMu2HLT); - TH1* histoZMuTk = getHisto(root_file, "goodZToMuMuOneTrackPlots/zMass", rebinMuTk); - TH1* histoZMuSa = getHisto(root_file, "goodZToMuMuOneStandAloneMuonPlots/zMass", rebinMuSa); - TH1* histoZMuSaFromMuMu = getHisto(root_file, "zmumuSaMassHistogram/zMass", rebinMuSa); - - TH1* histoZMuMuNoIsoTemplateFromMC = histoZMuMu; - if (nonIsoTemplateFromMC) { - // histoZMuMuNoIsoTemplateFromMC = getHisto(root_file, "nonIsolatedZToMuMuPlotsMC/zMass",rebinMuMu); - histoZMuMuNoIsoTemplateFromMC = getHisto(root_file, "oneNonIsolatedZToMuMuPlotsMC/zMass", rebinMuMu); - } - if (region == "barrel") { - histoZMuMuNoIso = getHisto(root_file, "nonIsolatedZToMuMuPlotsBarrel/zMass", rebinMuMuNoIso); - histoZMuMu = getHisto(root_file, "goodZToMuMuPlotsBarrel/zMass", rebinMuMu); - histoZMuMu1HLT = getHisto(root_file, "goodZToMuMu1HLTPlotsBarrel/zMass", rebinMuMu1HLT); - histoZMuMu2HLT = getHisto(root_file, "goodZToMuMu2HLTPlotsBarrel/zMass", rebinMuMu2HLT); - histoZMuTk = getHisto(root_file, "goodZToMuMuOneTrackPlotsBarrel/zMass", rebinMuTk); - histoZMuSa = getHisto(root_file, "goodZToMuMuOneStandAloneMuonPlotsBarrel/zMass", rebinMuSa); - histoZMuSaFromMuMu = getHisto(root_file, "zmumuSaMassHistogramBarrel/zMass", rebinMuSa); - } - - if (region == "endcap") { - histoZMuMuNoIso = getHisto(root_file, "nonIsolatedZToMuMuPlotsEndCap/zMass", rebinMuMuNoIso); - histoZMuMu = getHisto(root_file, "goodZToMuMuPlotsEndCap/zMass", rebinMuMu); - histoZMuMu1HLT = getHisto(root_file, "goodZToMuMu1HLTPlotsEndCap/zMass", rebinMuMu1HLT); - histoZMuMu2HLT = getHisto(root_file, "goodZToMuMu2HLTPlotsEndCap/zMass", rebinMuMu2HLT); - histoZMuTk = getHisto(root_file, "goodZToMuMuOneTrackPlotsEndCap/zMass", rebinMuTk); - histoZMuSa = getHisto(root_file, "goodZToMuMuOneStandAloneMuonPlotsEndCap/zMass", rebinMuSa); - histoZMuSaFromMuMu = getHisto(root_file, "zmumuSaMassHistogramEndCap/zMass", rebinMuSa); - } - - if (region == "barrend") { - histoZMuMuNoIso = getHisto(root_file, "nonIsolatedZToMuMuPlotsBarrEnd/zMass", rebinMuMuNoIso); - histoZMuMu = getHisto(root_file, "goodZToMuMuPlotsBarrEnd/zMass", rebinMuMu); - histoZMuMu1HLT = getHisto(root_file, "goodZToMuMu1HLTPlotsBarrEnd/zMass", rebinMuMu1HLT); - histoZMuMu2HLT = getHisto(root_file, "goodZToMuMu2HLTPlotsBarrEnd/zMass", rebinMuMu2HLT); - histoZMuTk = getHisto(root_file, "goodZToMuMuOneTrackPlotsBarrEnd/zMass", rebinMuTk); - histoZMuSa = getHisto(root_file, "goodZToMuMuOneStandAloneMuonPlotsBarrEnd/zMass", rebinMuSa); - histoZMuSaFromMuMu = getHisto(root_file, "zmumuSaMassHistogramBarrEnd/zMass", rebinMuSa); - } - - if (region != "endcap" && region != "barrel" && region != "barrend" && region != "all") { - cout << "not a valid region selected" << endl; - cout << "possible choises are: all, barrel, endcap, barrend " << endl; - return 0; - } - - cout << ">>> histogram loaded\n"; - string f_string = *it + "_" + PlotPrefix::str() + "_"; - replace(f_string.begin(), f_string.end(), '.', '_'); - replace(f_string.begin(), f_string.end(), '/', '_'); - string plot_string = f_string + "." + ext; - cout << ">>> Input files loaded\n"; - - const char* kYieldZMuMu = "YieldZMuMu"; - const char* kEfficiencyTk = "EfficiencyTk"; - const char* kEfficiencySa = "EfficiencySa"; - const char* kEfficiencyIso = "EfficiencyIso"; - const char* kEfficiencyHLT = "EfficiencyHLT"; - const char* kYieldBkgZMuTk = "YieldBkgZMuTk"; - const char* kYieldBkgZMuSa = "YieldBkgZMuSa"; - const char* kYieldBkgZMuMuNotIso = "YieldBkgZMuMuNotIso"; - const char* kAlpha = "Alpha"; - const char* kBeta = "Beta"; - const char* kLambda = "Lambda"; - const char* kA0 = "A0"; - const char* kA1 = "A1"; - const char* kA2 = "A2"; - const char* kB0 = "B0"; - const char* kB1 = "B1"; - const char* kB2 = "B2"; - const char* kC0 = "C0"; - const char* kC1 = "C1"; - const char* kC2 = "C2"; - - funct::Parameter yieldZMuMu(kYieldZMuMu, commands.par(kYieldZMuMu)); - funct::Parameter effTk(kEfficiencyTk, commands.par(kEfficiencyTk)); - funct::Parameter effSa(kEfficiencySa, commands.par(kEfficiencySa)); - funct::Parameter effIso(kEfficiencyIso, commands.par(kEfficiencyIso)); - funct::Parameter effHLT(kEfficiencyHLT, commands.par(kEfficiencyHLT)); - funct::Parameter yieldBkgZMuTk(kYieldBkgZMuTk, commands.par(kYieldBkgZMuTk)); - funct::Parameter yieldBkgZMuSa(kYieldBkgZMuSa, commands.par(kYieldBkgZMuSa)); - funct::Parameter yieldBkgZMuMuNotIso(kYieldBkgZMuMuNotIso, commands.par(kYieldBkgZMuMuNotIso)); - funct::Parameter alpha(kAlpha, commands.par(kAlpha)); - funct::Parameter beta(kBeta, commands.par(kBeta)); - funct::Parameter lambda(kLambda, commands.par(kLambda)); - funct::Parameter a0(kA0, commands.par(kA0)); - funct::Parameter a1(kA1, commands.par(kA1)); - funct::Parameter a2(kA2, commands.par(kA2)); - funct::Parameter b0(kB0, commands.par(kB0)); - funct::Parameter b1(kB1, commands.par(kB1)); - funct::Parameter b2(kB2, commands.par(kB2)); - funct::Parameter c0(kC0, commands.par(kC0)); - funct::Parameter c1(kC1, commands.par(kC1)); - funct::Parameter c2(kC2, commands.par(kC2)); - funct::Constant cFMin(fMin), cFMax(fMax); - - // count ZMuMu Yield - double nZMuMu = 0, nZMuMu1HLT = 0, nZMuMu2HLT = 0; - { - unsigned int nBins = histoZMuMu->GetNbinsX(); - double xMin = histoZMuMu->GetXaxis()->GetXmin(); - double xMax = histoZMuMu->GetXaxis()->GetXmax(); - double deltaX = (xMax - xMin) / nBins; - for (unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i + .5) * deltaX; - if (x > fMin && x < fMax) { - nZMuMu += histoZMuMu->GetBinContent(i + 1); - nZMuMu1HLT += histoZMuMu1HLT->GetBinContent(i + 1); - nZMuMu2HLT += histoZMuMu2HLT->GetBinContent(i + 1); - } - } - } - // aggiungi 1HLT 2HLT - cout << ">>> count of ZMuMu yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu << endl; - cout << ">>> count of ZMuMu (1HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu1HLT << endl; - cout << ">>> count of ZMuMu (2HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu2HLT << endl; - funct::RootHistoPdf zPdfMuMu(*histoZMuMu, fMin, fMax); - //assign ZMuMu as pdf - funct::RootHistoPdf zPdfMuMuNonIso = zPdfMuMu; - if (nonIsoTemplateFromMC) { - funct::RootHistoPdf zPdfMuMuNoIsoFromMC(*histoZMuMuNoIsoTemplateFromMC, fMin, fMax); - zPdfMuMuNonIso = zPdfMuMuNoIsoFromMC; - } - - funct::RootHistoPdf zPdfMuTk = zPdfMuMu; - funct::RootHistoPdf zPdfMuMu1HLT = zPdfMuMu; - funct::RootHistoPdf zPdfMuMu2HLT = zPdfMuMu; - funct::RootHistoPdf zPdfMuSa(*histoZMuSaFromMuMu, fMin, fMax); - zPdfMuMuNonIso.rebin(rebinMuMuNoIso / rebinMuMu); - zPdfMuTk.rebin(rebinMuTk / rebinMuMu); - zPdfMuMu1HLT.rebin(rebinMuMu1HLT / rebinMuMu); - zPdfMuMu2HLT.rebin(rebinMuMu2HLT / rebinMuMu); - - funct::Numerical<2> _2; - funct::Numerical<1> _1; - - //Efficiency term - Expr zMuMuEff1HLTTerm = _2 * (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * effHLT * (_1 - effHLT); - Expr zMuMuEff2HLTTerm = (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * (effHLT ^ _2); - // Expr zMuMuNoIsoEffTerm = (effTk ^ _2) * (effSa ^ _2) * (_1 - (effIso ^ _2)) * (_1 - ((_1 - effHLT)^_2)); - // change to both hlt and one not iso - Expr zMuMuNoIsoEffTerm = _2 * (effTk ^ _2) * (effSa ^ _2) * effIso * (_1 - effIso) * (effHLT ^ _2); - Expr zMuTkEffTerm = _2 * (effTk ^ _2) * effSa * (_1 - effSa) * (effIso ^ _2) * effHLT; - Expr zMuSaEffTerm = _2 * (effSa ^ _2) * effTk * (_1 - effTk) * (effIso ^ _2) * effHLT; - - Expr zMuMu1HLT = rebinMuMu1HLTConst * zMuMuEff1HLTTerm * yieldZMuMu; - Expr zMuMu2HLT = rebinMuMu2HLTConst * zMuMuEff2HLTTerm * yieldZMuMu; - - Expr zMuTkBkg = yieldBkgZMuTk * funct::Exponential(lambda) * funct::Polynomial<2>(a0, a1, a2); - Expr zMuTkBkgScaled = rebinMuTkConst * zMuTkBkg; - Expr zMuTk = rebinMuTkConst * (zMuTkEffTerm * yieldZMuMu * zPdfMuTk + zMuTkBkg); - - Expr zMuMuNoIsoBkg = yieldBkgZMuMuNotIso * funct::Exponential(alpha) * funct::Polynomial<2>(b0, b1, b2); - Expr zMuMuNoIsoBkgScaled = rebinMuMuNoIsoConst * zMuMuNoIsoBkg; - Expr zMuMuNoIso = rebinMuMuNoIsoConst * (zMuMuNoIsoEffTerm * yieldZMuMu * zPdfMuMuNonIso + zMuMuNoIsoBkg); - - Expr zMuSaBkg = yieldBkgZMuSa * funct::Exponential(beta) * funct::Polynomial<2>(c0, c1, c2); - Expr zMuSaBkgScaled = rebinMuSaConst * zMuSaBkg; - Expr zMuSa = rebinMuSaConst * (zMuSaEffTerm * yieldZMuMu * zPdfMuSa + zMuSaBkg); - - TH1D histoZCount1HLT("histoZCount1HLT", "", 1, fMin, fMax); - histoZCount1HLT.Fill(100, nZMuMu1HLT); - TH1D histoZCount2HLT("histoZCount2HLT", "", 1, fMin, fMax); - histoZCount2HLT.Fill(100, nZMuMu2HLT); - - ChiSquared chi2(zMuMu1HLT, - &histoZCount1HLT, - zMuMu2HLT, - &histoZCount2HLT, - zMuTk, - histoZMuTk, - zMuSa, - histoZMuSa, - zMuMuNoIso, - histoZMuMuNoIso, - fMin, - fMax); - cout << "N. bins: " << chi2.numberOfBins() << endl; - - fit::RootMinuit minuit(chi2, true); - commands.add(minuit, yieldZMuMu); - commands.add(minuit, effTk); - commands.add(minuit, effSa); - commands.add(minuit, effIso); - commands.add(minuit, effHLT); - commands.add(minuit, yieldBkgZMuTk); - commands.add(minuit, yieldBkgZMuSa); - commands.add(minuit, yieldBkgZMuMuNotIso); - commands.add(minuit, lambda); - commands.add(minuit, alpha); - commands.add(minuit, beta); - commands.add(minuit, a0); - commands.add(minuit, a1); - commands.add(minuit, a2); - commands.add(minuit, b0); - commands.add(minuit, b1); - commands.add(minuit, b2); - commands.add(minuit, c0); - commands.add(minuit, c1); - commands.add(minuit, c2); - commands.run(minuit); - const unsigned int nPar = 20; //WARNIG: this must be updated manually for now - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - - std::cout << "error matrix:" << std::endl; - for (unsigned int i = 0; i < nPar; ++i) { - for (unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - ofstream myfile; - myfile.open("fitResult.txt", ios::out | ios::app); - myfile << "\n"; - double Y = minuit.getParameterError("YieldZMuMu"); - double dY = minuit.getParameterError("YieldZMuMu", Y); - double tk_eff = minuit.getParameterError("EfficiencyTk"); - double dtk_eff = minuit.getParameterError("EfficiencyTk", tk_eff); - double sa_eff = minuit.getParameterError("EfficiencySa"); - double dsa_eff = minuit.getParameterError("EfficiencySa", sa_eff); - double iso_eff = minuit.getParameterError("EfficiencyIso"); - double diso_eff = minuit.getParameterError("EfficiencyIso", iso_eff); - double hlt_eff = minuit.getParameterError("EfficiencyHLT"); - double dhlt_eff = minuit.getParameterError("EfficiencyHLT", hlt_eff); - myfile << Y << " " << dY << " " << tk_eff << " " << dtk_eff << " " << sa_eff << " " << dsa_eff << " " << iso_eff - << " " << diso_eff << " " << hlt_eff << " " << dhlt_eff << " " - << chi2() / (chi2.numberOfBins() - minuit.numberOfFreeParameters()); - - myfile.close(); - - //Plot - double s; - s = 0; - for (int i = 1; i <= histoZMuMuNoIso->GetNbinsX(); ++i) - s += histoZMuMuNoIso->GetBinContent(i); - histoZMuMuNoIso->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu->GetNbinsX(); ++i) - s += histoZMuMu->GetBinContent(i); - histoZMuMu->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu1HLT->GetNbinsX(); ++i) - s += histoZMuMu1HLT->GetBinContent(i); - histoZMuMu1HLT->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu2HLT->GetNbinsX(); ++i) - s += histoZMuMu2HLT->GetBinContent(i); - histoZMuMu2HLT->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuTk->GetNbinsX(); ++i) - s += histoZMuTk->GetBinContent(i); - histoZMuTk->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuSa->GetNbinsX(); ++i) - s += histoZMuSa->GetBinContent(i); - histoZMuSa->SetEntries(s); - - string ZMuMu1HLTPlot = "ZMuMu1HLTFit_" + plot_string; - root::plot(ZMuMu1HLTPlot.c_str(), - *histoZMuMu1HLT, - zMuMu1HLT, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kOrange - 2, - 2, - kSolid, - 100, - "Z -> #mu #mu mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMu2HLTPlot = "ZMuMu2HLTFit_" + plot_string; - root::plot(ZMuMu2HLTPlot.c_str(), - *histoZMuMu2HLT, - zMuMu2HLT, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kOrange - 2, - 2, - kSolid, - 100, - "Z -> #mu #mu mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMuNoIsoPlot = "ZMuMuNoIsoFit_X_" + plot_string; - root::plot(ZMuMuNoIsoPlot.c_str(), - *histoZMuMuNoIso, - zMuMuNoIso, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - yieldBkgZMuMuNotIso, - alpha, - b0, - b1, - b2, - kWhite, - 2, - kSolid, - 100, - "Z -> #mu #mu Not Iso mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - ZMuMuNoIsoPlot = "ZMuMuNoIsoFit_" + plot_string; - TF1 funZMuMuNoIso = root::tf1_t("ZMuMuNoIsoFunction", - zMuMuNoIso, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - yieldBkgZMuMuNotIso, - alpha, - b0, - b1, - b2); - funZMuMuNoIso.SetLineColor(kOrange + 8); - funZMuMuNoIso.SetLineWidth(3); - //funZMuMuNoIso.SetLineStyle(kDashed); - - //funZMuMuNoIso.SetFillColor(kOrange-2); - //funZMuMuNoIso.SetFillStyle(3325); - - funZMuMuNoIso.SetNpx(10000); - TF1 funZMuMuNoIsoBkg = root::tf1_t( - "ZMuMuNoIsoBack", zMuMuNoIsoBkgScaled, fMin, fMax, yieldBkgZMuMuNotIso, alpha, b0, b1, b2); - funZMuMuNoIsoBkg.SetLineColor(kViolet + 3); - funZMuMuNoIsoBkg.SetLineWidth(2); - funZMuMuNoIsoBkg.SetLineStyle(kSolid); - funZMuMuNoIsoBkg.SetFillColor(kViolet - 5); - funZMuMuNoIsoBkg.SetFillStyle(3357); - - funZMuMuNoIsoBkg.SetNpx(10000); - histoZMuMuNoIso->SetTitle("Z -> #mu #mu Not Iso mass"); - histoZMuMuNoIso->SetXTitle("#mu + #mu invariant mass (GeV/c^{2})"); - histoZMuMuNoIso->SetYTitle("Events"); - TCanvas* canvas = new TCanvas("canvas"); - histoZMuMuNoIso->Draw("e"); - funZMuMuNoIsoBkg.Draw("same"); - funZMuMuNoIso.Draw("same"); - canvas->SaveAs(ZMuMuNoIsoPlot.c_str()); - canvas->SetLogy(); - string logZMuMuNoIsoPlot = "log_" + ZMuMuNoIsoPlot; - canvas->SaveAs(logZMuMuNoIsoPlot.c_str()); - - double IntSigMMNotIso = ((double)rebinMuMu / (double)rebinMuMuNoIso) * funZMuMuNoIso.Integral(fMin, fMax); - double IntSigMMNotIsoBkg = ((double)rebinMuMu / (double)rebinMuMuNoIso) * funZMuMuNoIsoBkg.Integral(fMin, fMax); - cout << "********* ZMuMuNoIsoPlot signal yield from the fit ==> " << IntSigMMNotIso << endl; - cout << "********* ZMuMuNoIsoPlot background yield from the fit ==> " << IntSigMMNotIsoBkg << endl; - - string ZMuTkPlot = "ZMuTkFit_X_" + plot_string; - root::plot(ZMuTkPlot.c_str(), - *histoZMuTk, - zMuTk, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - yieldBkgZMuTk, - lambda, - a0, - a1, - a2, - kOrange + 3, - 2, - kSolid, - 100, - "Z -> #mu + (unmatched) track mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - ZMuTkPlot = "ZMuTkFit_" + plot_string; - TF1 funZMuTk = root::tf1_t( - "ZMuTkFunction", zMuTk, fMin, fMax, effTk, effSa, effIso, effHLT, yieldZMuMu, yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTk.SetLineColor(kOrange + 8); - funZMuTk.SetLineWidth(3); - funZMuTk.SetLineStyle(kSolid); - // funZMuTk.SetFillColor(kOrange-2); - //funZMuTk.SetFillStyle(3325); - funZMuTk.SetNpx(10000); - TF1 funZMuTkBkg = - root::tf1_t("ZMuTkBack", zMuTkBkgScaled, fMin, fMax, yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTkBkg.SetLineColor(kViolet + 3); - funZMuTkBkg.SetLineWidth(2); - funZMuTkBkg.SetLineStyle(kSolid); - funZMuTkBkg.SetFillColor(kViolet - 5); - funZMuTkBkg.SetFillStyle(3357); - funZMuTkBkg.SetNpx(10000); - histoZMuTk->SetTitle("Z -> #mu + (unmatched) track mass"); - histoZMuTk->SetXTitle("#mu + (unmatched) track invariant mass (GeV/c^{2})"); - histoZMuTk->SetYTitle("Events"); - TCanvas* canvas_ = new TCanvas("canvas_"); - histoZMuTk->Draw("e"); - funZMuTkBkg.Draw("same"); - funZMuTk.Draw("same"); - canvas_->SaveAs(ZMuTkPlot.c_str()); - canvas_->SetLogy(); - string logZMuTkPlot = "log_" + ZMuTkPlot; - canvas_->SaveAs(logZMuTkPlot.c_str()); - - double IntSigMT = ((double)rebinMuMu / (double)rebinMuTk) * funZMuTk.Integral(fMin, fMax); - double IntSigMTBkg = ((double)rebinMuMu / (double)rebinMuTk) * funZMuTkBkg.Integral(fMin, fMax); - cout << "********* ZMuMuTkPlot signal yield from the fit ==> " << IntSigMT << endl; - cout << "********* ZMuMuTkPlot background yield from the fit ==> " << IntSigMTBkg << endl; - - string ZMuSaPlot = "ZMuSaFit_X_" + plot_string; - root::plot(ZMuSaPlot.c_str(), - *histoZMuSa, - zMuSa, - fMin, - fMax, - effSa, - effTk, - effIso, - yieldZMuMu, - yieldBkgZMuSa, - beta, - c0, - c1, - c2, - kOrange + 3, - 2, - kSolid, - 100, - "Z -> #mu + (unmatched) standalone mass", - "#mu + (unmatched) standalone invariant mass (GeV/c^{2})", - "Events"); - - ZMuSaPlot = "ZMuSaFit_" + plot_string; - TF1 funZMuSa = root::tf1_t( - "ZMuSaFunction", zMuSa, fMin, fMax, effTk, effSa, effIso, effHLT, yieldZMuMu, yieldBkgZMuSa, beta, c0, c1, c2); - funZMuSa.SetLineColor(kOrange + 8); - funZMuSa.SetLineWidth(3); - funZMuSa.SetLineStyle(kSolid); - // funZMuSa.SetFillColor(kOrange-2); - // funZMuSa.SetFillStyle(3325); - funZMuSa.SetNpx(10000); - TF1 funZMuSaBkg = - root::tf1_t("ZMuSaBack", zMuSaBkgScaled, fMin, fMax, yieldBkgZMuSa, beta, c0, c1, c2); - funZMuSaBkg.SetLineColor(kViolet + 3); - funZMuSaBkg.SetLineWidth(2); - funZMuSaBkg.SetLineStyle(kSolid); - funZMuSaBkg.SetFillColor(kViolet - 5); - funZMuSaBkg.SetFillStyle(3357); - funZMuSaBkg.SetNpx(10000); - histoZMuSa->SetTitle("Z -> #mu + (unmatched) standalone mass"); - histoZMuSa->SetXTitle("#mu + (unmatched) standalone invariant mass (GeV/c^{2})"); - histoZMuSa->SetYTitle("Events"); - TCanvas* canvas__ = new TCanvas("canvas__"); - histoZMuSa->Draw("e"); - funZMuSaBkg.Draw("same"); - funZMuSa.Draw("same"); - canvas__->SaveAs(ZMuSaPlot.c_str()); - canvas__->SetLogy(); - string logZMuSaPlot = "log_" + ZMuSaPlot; - canvas__->SaveAs(logZMuSaPlot.c_str()); - - double IntSigMS = ((double)rebinMuMu / (double)rebinMuSa) * funZMuSa.Integral(fMin, fMax); - double IntSigMSBkg = ((double)rebinMuMu / (double)rebinMuSa) * funZMuSaBkg.Integral(fMin, fMax); - cout << "********* ZMuMuSaPlot signal yield from the fit ==> " << IntSigMS << endl; - cout << "********* ZMuMuSaPlot background yield from the fit ==> " << IntSigMSBkg << endl; - } - return 0; -} - -#include -using namespace boost; -namespace po = boost::program_options; - -int main(int ac, char* av[]) { - po::options_description desc("Allowed options"); - desc.add_options()("help,h", "produce help message")("input-file,i", po::value >(), "input file")( - "min,m", po::value(&fMin)->default_value(60), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(120), "maximum value for fit range")( - "rebins,R", - po::value >(), - "rebins values: rebinMuMu2HLT , rebinMuMu1HLT , rebinMuMuNoIso , rebinMuSa, rebinMuTk")( - "chi2,c", "perform chi-squared fit")("plr,p", "perform Poisson likelihood-ratio fit")( - "nonIsoTemplateFromMC,I", - po::value(&nonIsoTemplateFromMC)->default_value(false), - "take the template for nonIso sample from MC")( - "plot-format,f", po::value(&ext)->default_value("eps"), "output plot format")( - "detectorRegion,r", - po::value(®ion)->default_value("all"), - "detector region in which muons are detected"); - po::positional_options_description p; - p.add("input-file", -1); - p.add("rebins", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - if (!vm.count("input-file")) { - return 1; - } - cout << "Input files are: " << vm["input-file"].as >() << "\n"; - vector v_file = vm["input-file"].as >(); - - if (vm.count("rebins")) { - vector v_rebin = vm["rebins"].as >(); - if (v_rebin.size() != 5) { - cerr << " please provide 5 numbers in the given order: rebinMuMu2HLT , rebinMuMu1HLT , rebinMuMuNoIso, " - "rebinMuSa, rebinMuTk \n"; - return 1; - } - rebinMuMuNoIso = v_rebin[2], rebinMuMu1HLT = v_rebin[1], rebinMuMu2HLT = v_rebin[0], rebinMuTk = v_rebin[4], - rebinMuSa = v_rebin[3]; - } - - bool chi2Fit = vm.count("chi2"), plrFit = vm.count("plr"); - - if (!(chi2Fit || plrFit)) - cerr << "Warning: no fit performed. Please, specify either -c or -p options or both" << endl; - - gROOT->SetStyle("Plain"); - - int ret = 0; - try { - if (plrFit) { - std::cout << "==================================== " << std::endl; - std::cout << "=== Poisson Likelihood Ratio fit === " << std::endl; - std::cout << "==================================== " << std::endl; - int ret2 = main_t(v_file); - if (ret2 != 0) - ret = 1; - } - if (chi2Fit) { - std::cout << "================= " << std::endl; - std::cout << "=== Chi-2 fit === " << std::endl; - std::cout << "================= " << std::endl; - int ret1 = main_t(v_file); - if (ret1 != 0) - ret = 1; - } - } catch (std::exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } catch (...) { - cerr << "Exception of unknown type!\n"; - } - return ret; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zFitToyMc.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zFitToyMc.cpp deleted file mode 100644 index ad71f08e54fa9..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zFitToyMc.cpp +++ /dev/null @@ -1,451 +0,0 @@ -#include "FWCore/Utilities/interface/EDMException.h" -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/Numerical.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Polynomial.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Operations.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/HistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootMinuitCommands.h" -#include "PhysicsTools/Utilities/interface/FunctClone.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "PhysicsTools/Utilities/interface/Expression.h" -#include "PhysicsTools/Utilities/interface/HistoPdf.h" -#include "FWCore/FWLite/interface/FWLiteEnabler.h" -#include "TROOT.h" -#include "TSystem.h" -#include "TH1.h" -#include "TFile.h" -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -// A function that get histogram and sets contents to 0 -// if entries are too small -TH1* getHisto(TFile* file, const char* name, unsigned int rebin) { - TObject* h = file->Get(name); - if (h == nullptr) - throw edm::Exception(edm::errors::Configuration) << "Can't find object " << name << "\n"; - TH1* histo = dynamic_cast(h); - if (histo == nullptr) - throw edm::Exception(edm::errors::Configuration) - << "Object " << name << " is of type " << h->ClassName() << ", not TH1\n"; - histo->Rebin(rebin); - for (int i = 1; i <= histo->GetNbinsX(); ++i) { - if (histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } - return histo; -} - -struct sig_tag; -struct bkg_tag; - -int main(int ac, char* av[]) { - gROOT->SetStyle("Plain"); - - try { - typedef funct::FunctExpression Expr; - typedef fit::HistoChiSquare ExprChi2; - typedef fit::MultiHistoChiSquare ChiSquared; - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options()("help,h", "produce help message")("input-file,i", po::value >(), "input file")( - "min,m", po::value(&fMin)->default_value(60), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(120), "maximum value for fit range")( - "plot-format,p", po::value(&ext)->default_value("eps"), "output plot format"); - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - fit::RootMinuitCommands commands("zFitToyMc.txt"); - - cout << "minuit command file completed" << endl; - const unsigned int rebinMuMuNoIso = 2, rebinMuMu = 1, rebinMuMu1HLT = 1, rebinMuMu2HLT = 1, rebinMuTk = 2, - rebinMuSa = 10; - // assume that the bin size is 1 GeV!!! - funct::Constant rebinMuMuNoIsoConst(rebinMuMuNoIso), rebinMuMuConst(rebinMuMu), rebinMuMu1HLTConst(rebinMuMu1HLT), - rebinMuMu2HLTConst(rebinMuMu2HLT), rebinMuTkConst(rebinMuTk), rebinMuSaConst(rebinMuSa); - - if (vm.count("input-file")) { - cout << "Input files are: " << vm["input-file"].as >() << "\n"; - vector v_file = vm["input-file"].as >(); - for (vector::const_iterator it = v_file.begin(); it != v_file.end(); ++it) { - TFile* root_file = new TFile(it->c_str(), "read"); - TH1* histoZMuMuNoIso = getHisto(root_file, "nonIsolatedZToMuMuPlots/zMass_noIso", rebinMuMuNoIso); - TH1* histoZMuMu = getHisto(root_file, "goodZToMuMuPlots/zMass_golden", rebinMuMu); - TH1* histoZMuMu1HLT = getHisto(root_file, "goodZToMuMu1HLTPlots/zMass_1hlt", rebinMuMu1HLT); - TH1* histoZMuMu2HLT = getHisto(root_file, "goodZToMuMu2HLTPlots/zMass_2hlt", rebinMuMu2HLT); - TH1* histoZMuTk = getHisto(root_file, "goodZToMuMuOneTrackPlots/zMass_tk", rebinMuTk); - TH1* histoZMuSa = getHisto(root_file, "goodZToMuMuOneStandAloneMuonPlots/zMass_sa", rebinMuSa); - TH1* histoZMuSaFromMuMu = getHisto(root_file, "zmumuSaMassHistogram/zMass_safromGolden", rebinMuSa); - - cout << ">>> histogram loaded\n"; - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - replace(f_string.begin(), f_string.end(), '/', '_'); - string plot_string = f_string + "." + ext; - cout << ">>> Input files loaded\n"; - - const char* kYieldZMuMu = "YieldZMuMu"; - const char* kEfficiencyTk = "EfficiencyTk"; - const char* kEfficiencySa = "EfficiencySa"; - const char* kEfficiencyIso = "EfficiencyIso"; - const char* kEfficiencyHLT = "EfficiencyHLT"; - const char* kYieldBkgZMuTk = "YieldBkgZMuTk"; - const char* kYieldBkgZMuSa = "YieldBkgZMuSa"; - const char* kYieldBkgZMuMuNotIso = "YieldBkgZMuMuNotIso"; - const char* kAlpha = "Alpha"; - const char* kBeta = "Beta"; - const char* kLambda = "Lambda"; - const char* kA0 = "A0"; - const char* kA1 = "A1"; - const char* kA2 = "A2"; - const char* kB0 = "B0"; - const char* kB1 = "B1"; - const char* kB2 = "B2"; - - funct::Parameter yieldZMuMu(kYieldZMuMu, commands.par(kYieldZMuMu)); - funct::Parameter effTk(kEfficiencyTk, commands.par(kEfficiencyTk)); - funct::Parameter effSa(kEfficiencySa, commands.par(kEfficiencySa)); - funct::Parameter effIso(kEfficiencyIso, commands.par(kEfficiencyIso)); - funct::Parameter effHLT(kEfficiencyHLT, commands.par(kEfficiencyHLT)); - funct::Parameter yieldBkgZMuTk(kYieldBkgZMuTk, commands.par(kYieldBkgZMuTk)); - funct::Parameter yieldBkgZMuSa(kYieldBkgZMuSa, commands.par(kYieldBkgZMuSa)); - funct::Parameter yieldBkgZMuMuNotIso(kYieldBkgZMuMuNotIso, commands.par(kYieldBkgZMuMuNotIso)); - funct::Parameter alpha(kAlpha, commands.par(kAlpha)); - funct::Parameter beta(kBeta, commands.par(kBeta)); - funct::Parameter lambda(kLambda, commands.par(kLambda)); - funct::Parameter a0(kA0, commands.par(kA0)); - funct::Parameter a1(kA1, commands.par(kA1)); - funct::Parameter a2(kA2, commands.par(kA2)); - funct::Parameter b0(kB0, commands.par(kB0)); - funct::Parameter b1(kB1, commands.par(kB1)); - funct::Parameter b2(kB2, commands.par(kB2)); - funct::Constant cFMin(fMin), cFMax(fMax); - - // count ZMuMu Yield - double nZMuMu = 0, nZMuMu1HLT = 0, nZMuMu2HLT = 0; - { - unsigned int nBins = histoZMuMu->GetNbinsX(); - double xMin = histoZMuMu->GetXaxis()->GetXmin(); - double xMax = histoZMuMu->GetXaxis()->GetXmax(); - double deltaX = (xMax - xMin) / nBins; - for (unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i + .5) * deltaX; - if (x > fMin && x < fMax) { - nZMuMu += histoZMuMu->GetBinContent(i + 1); - nZMuMu1HLT += histoZMuMu1HLT->GetBinContent(i + 1); - nZMuMu2HLT += histoZMuMu2HLT->GetBinContent(i + 1); - } - } - } - // aggiungi 1HLT 2HLT - cout << ">>> count of ZMuMu yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu << endl; - cout << ">>> count of ZMuMu (1HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu1HLT << endl; - cout << ">>> count of ZMuMu (2HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu2HLT << endl; - funct::RootHistoPdf zPdfMuMuNonIso(*histoZMuMu, fMin, fMax); //imposto le pdf a quella di ZMuMu - funct::RootHistoPdf zPdfMuTk = zPdfMuMuNonIso; - funct::RootHistoPdf zPdfMuMu1HLT = zPdfMuMuNonIso; - funct::RootHistoPdf zPdfMuMu2HLT = zPdfMuMuNonIso; - funct::RootHistoPdf zPdfMuSa(*histoZMuSaFromMuMu, fMin, fMax); - zPdfMuMuNonIso.rebin(rebinMuMuNoIso / rebinMuMu); - zPdfMuTk.rebin(rebinMuTk / rebinMuMu); - zPdfMuMu1HLT.rebin(rebinMuMu1HLT / rebinMuMu); - zPdfMuMu2HLT.rebin(rebinMuMu2HLT / rebinMuMu); - - funct::Numerical<2> _2; - funct::Numerical<1> _1; - - //Efficiency term - Expr zMuMuEff1HLTTerm = _2 * (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * effHLT * (_1 - effHLT); - Expr zMuMuEff2HLTTerm = (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * (effHLT ^ _2); - Expr zMuMuNoIsoEffTerm = (effTk ^ _2) * (effSa ^ _2) * (_1 - (effIso ^ _2)) * (_1 - ((_1 - effHLT) ^ _2)); - Expr zMuTkEffTerm = _2 * (effTk ^ _2) * effSa * (_1 - effSa) * (effIso ^ _2) * effHLT; - Expr zMuSaEffTerm = _2 * (effSa ^ _2) * effTk * (_1 - effTk) * (effIso ^ _2) * effHLT; - - Expr zMuMu1HLT = rebinMuMu1HLTConst * zMuMuEff1HLTTerm * yieldZMuMu; - Expr zMuMu2HLT = rebinMuMu2HLTConst * zMuMuEff2HLTTerm * yieldZMuMu; - - Expr zMuTkBkg = yieldBkgZMuTk * funct::Exponential(lambda) * funct::Polynomial<2>(a0, a1, a2); - Expr zMuTkBkgScaled = rebinMuTkConst * zMuTkBkg; - Expr zMuTk = rebinMuTkConst * (zMuTkEffTerm * yieldZMuMu * zPdfMuTk + zMuTkBkg); - - Expr zMuMuNoIsoBkg = yieldBkgZMuMuNotIso * funct::Exponential(alpha) * funct::Polynomial<2>(b0, b1, b2); - Expr zMuMuNoIsoBkgScaled = rebinMuMuNoIsoConst * zMuMuNoIsoBkg; - Expr zMuMuNoIso = rebinMuMuNoIsoConst * (zMuMuNoIsoEffTerm * yieldZMuMu * zPdfMuMuNonIso + zMuMuNoIsoBkg); - - Expr zMuSa = - rebinMuSaConst * (zMuSaEffTerm * yieldZMuMu * zPdfMuSa); // + (yieldBkgZMuSa * funct::Exponential(beta) )); - - TH1D histoZCount1HLT("histoZCount1HLT", "", 1, fMin, fMax); - histoZCount1HLT.Fill(100, nZMuMu1HLT); - TH1D histoZCount2HLT("histoZCount2HLT", "", 1, fMin, fMax); - histoZCount2HLT.Fill(100, nZMuMu2HLT); - - ChiSquared chi2(zMuMu1HLT, - &histoZCount1HLT, - zMuMu2HLT, - &histoZCount2HLT, - zMuTk, - histoZMuTk, - zMuSa, - histoZMuSa, - zMuMuNoIso, - histoZMuMuNoIso, - fMin, - fMax); - fit::RootMinuit minuit(chi2, true); - commands.add(minuit, yieldZMuMu); - commands.add(minuit, effTk); - commands.add(minuit, effSa); - commands.add(minuit, effIso); - commands.add(minuit, effHLT); - commands.add(minuit, yieldBkgZMuTk); - commands.add(minuit, yieldBkgZMuSa); - commands.add(minuit, yieldBkgZMuMuNotIso); - commands.add(minuit, lambda); - commands.add(minuit, alpha); - commands.add(minuit, beta); - commands.add(minuit, a0); - commands.add(minuit, a1); - commands.add(minuit, a2); - commands.add(minuit, b0); - commands.add(minuit, b1); - commands.add(minuit, b2); - commands.run(minuit); - const unsigned int nPar = 17; //WARNIG: this must be updated manually for now - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - - std::cout << "error matrix:" << std::endl; - for (unsigned int i = 0; i < nPar; ++i) { - for (unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - ofstream myfile; - myfile.open("fitResult.txt", ios::out | ios::app); - myfile << "\n"; - double Y = minuit.getParameterError("YieldZMuMu"); - double dY = minuit.getParameterError("YieldZMuMu", Y); - double tk_eff = minuit.getParameterError("EfficiencyTk"); - double dtk_eff = minuit.getParameterError("EfficiencyTk", tk_eff); - double sa_eff = minuit.getParameterError("EfficiencySa"); - double dsa_eff = minuit.getParameterError("EfficiencySa", sa_eff); - double iso_eff = minuit.getParameterError("EfficiencyIso"); - double diso_eff = minuit.getParameterError("EfficiencyIso", iso_eff); - double hlt_eff = minuit.getParameterError("EfficiencyHLT"); - double dhlt_eff = minuit.getParameterError("EfficiencyHLT", hlt_eff); - myfile << Y << " " << dY << " " << tk_eff << " " << dtk_eff << " " << sa_eff << " " << dsa_eff << " " << iso_eff - << " " << diso_eff << " " << hlt_eff << " " << dhlt_eff << " " - << chi2() / (chi2.numberOfBins() - minuit.numberOfFreeParameters()); - - myfile.close(); - - //Plot - double s; - s = 0; - for (int i = 1; i <= histoZMuMuNoIso->GetNbinsX(); ++i) - s += histoZMuMuNoIso->GetBinContent(i); - histoZMuMuNoIso->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu->GetNbinsX(); ++i) - s += histoZMuMu->GetBinContent(i); - histoZMuMu->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu1HLT->GetNbinsX(); ++i) - s += histoZMuMu1HLT->GetBinContent(i); - histoZMuMu1HLT->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu2HLT->GetNbinsX(); ++i) - s += histoZMuMu2HLT->GetBinContent(i); - histoZMuMu2HLT->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuTk->GetNbinsX(); ++i) - s += histoZMuTk->GetBinContent(i); - histoZMuTk->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuSa->GetNbinsX(); ++i) - s += histoZMuSa->GetBinContent(i); - histoZMuSa->SetEntries(s); - - string ZMuMu1HLTPlot = "ZMuMu1HLTFit_" + plot_string; - root::plot(ZMuMu1HLTPlot.c_str(), - *histoZMuMu1HLT, - zMuMu1HLT, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kRed, - 2, - kDashed, - 100, - "Z -> #mu #mu mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMu2HLTPlot = "ZMuMu2HLTFit_" + plot_string; - root::plot(ZMuMu2HLTPlot.c_str(), - *histoZMuMu2HLT, - zMuMu2HLT, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kRed, - 2, - kDashed, - 100, - "Z -> #mu #mu mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMuNoIsoPlot = "ZMuMuNoIsoFit_" + plot_string; - root::plot(ZMuMuNoIsoPlot.c_str(), - *histoZMuMuNoIso, - zMuMuNoIso, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kRed, - 2, - kDashed, - 100, - "Z -> #mu #mu Not Iso mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuTkPlot = "ZMuTkFit_X_" + plot_string; - root::plot(ZMuTkPlot.c_str(), - *histoZMuTk, - zMuTk, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - yieldBkgZMuTk, - lambda, - a0, - a1, - a2, - kRed, - 2, - kDashed, - 100, - "Z -> #mu + (unmatched) track mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - ZMuTkPlot = "ZMuTkFit_" + plot_string; - TF1 funZMuTk = root::tf1_t("ZMuTkFunction", - zMuTk, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - yieldBkgZMuTk, - lambda, - a0, - a1, - a2); - funZMuTk.SetLineColor(kRed); - funZMuTk.SetLineWidth(2); - funZMuTk.SetLineStyle(kDashed); - funZMuTk.SetNpx(10000); - TF1 funZMuTkBkg = - root::tf1_t("ZMuTkBack", zMuTkBkgScaled, fMin, fMax, yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTkBkg.SetLineColor(kGreen); - funZMuTkBkg.SetLineWidth(2); - funZMuTkBkg.SetLineStyle(kDashed); - funZMuTkBkg.SetNpx(10000); - histoZMuTk->SetTitle("Z -> #mu + (unmatched) track mass"); - histoZMuTk->SetXTitle("#mu + (unmatched) track invariant mass (GeV/c^{2})"); - histoZMuTk->SetYTitle("Events"); - TCanvas* canvas = new TCanvas("canvas"); - histoZMuTk->Draw("e"); - funZMuTkBkg.Draw("same"); - funZMuTk.Draw("same"); - canvas->SaveAs(ZMuTkPlot.c_str()); - canvas->SetLogy(); - string logZMuTkPlot = "log_" + ZMuTkPlot; - canvas->SaveAs(logZMuTkPlot.c_str()); - string ZMuSaPlot = "ZMuSaFit_" + plot_string; - root::plot(ZMuSaPlot.c_str(), - *histoZMuSa, - zMuSa, - fMin, - fMax, - effSa, - effTk, - effIso, - yieldZMuMu, - yieldBkgZMuSa, - kRed, - 2, - kDashed, - 10000, - "Z -> #mu + (unmatched) standalone mass", - "#mu + (unmatched) standalone invariant mass (GeV/c^{2})", - "Events"); - } - } - } catch (std::exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } catch (...) { - cerr << "Exception of unknown type!\n"; - } - - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zMassFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zMassFit.cpp deleted file mode 100644 index 7e3dc41a3f2ab..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zMassFit.cpp +++ /dev/null @@ -1,1040 +0,0 @@ -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/BreitWigner.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Number.h" -#include "PhysicsTools/Utilities/interface/Product.h" -#include "PhysicsTools/Utilities/interface/Sum.h" -#include "PhysicsTools/Utilities/interface/Difference.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/ZLineShape.h" -#include "PhysicsTools/Utilities/interface/Convolution.h" -#include "PhysicsTools/Utilities/interface/HistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootFunctionAdapter.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "TFile.h" -#include "TH1.h" -#include "TF1.h" -#include "TMath.h" -#include "TCanvas.h" -#include "TROOT.h" -//#include "TStyle.h" - -#include -#include -#include -#include -#include -#include -#include -using namespace std; -using namespace boost; -namespace po = boost::program_options; - -// A helper function to simplify the main part. -template -ostream &operator<<(ostream &os, const vector &v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -typedef funct::GaussIntegrator IntegratorConv; - -int main(int ac, char *av[]) { - try { - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options()("help", "produce help message")("include-path,I", po::value >(), "include path")( - "input-file", po::value >(), "input file")( - "min,m", po::value(&fMin)->default_value(80), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(120), "maximum value for fit range")( - "breitwigner", "fit to a breit-wigner")("gauss", "fit to a gaussian")( - "bwinter", "fit to the breit-wigner plus interference term")( - "bwintgam", "fit to the breit-wigner plus interference term and gamma propagator")( - "convbwg", "fit to the convolution between a breit-wigner and a gaussian")( - "convbwinterg", "fit to the convolution between a breit-wigner plus interference term and a gaussian")( - "convbwintgamg", - "fit to the convolution of a breit-wigner plus interference term and gamma propagator and a gaussian")( - "convbw2gf", "fit to the convolution between a breit-wigner and a linear combination of fixed gaussians")( - "convbwf2g", "fit to the convolution between a fixed breit-wigner and a linear combination of gaussians")( - "convbwint2gf", - "fit to the convolution between the breit-wigner plus interference term and a linear combination of fixed " - "gaussians")("convbwintf2g", - "fit to the convolution between the fixed breit-wigner plus interference term and a linear " - "combination of gaussians")("convbwintgam2gf", - "fit to the convolution of the breit-wigner plus interference term " - "and gamma propagator with a linear combination of fixed gaussians")( - "convbwintgamf2g", - "fit to the convolution of the fixed breit-wigner plus interference term and gamma propagator with a linear " - "combination of gaussians")( - "output-file,O", po::value(&ext)->default_value(".ps"), "output file format"); - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - if (vm.count("include-path")) { - cout << "Include paths are: " << vm["include-path"].as >() << "\n"; - } - - vector v_file; - vector v_ZMassHistos; - vector v_eps; - - if (vm.count("input-file")) { - cout << "Input files are: " << vm["input-file"].as >() << "\n"; - v_file = vm["input-file"].as >(); - for (vector::const_iterator it = v_file.begin(); it != v_file.end(); ++it) { - TFile *root_file = new TFile(it->c_str(), "read"); - TDirectory *Histos = (TDirectory *)root_file->GetDirectory("ZHisto"); - TDirectory *RecoHistos = (TDirectory *)Histos->GetDirectory("ZRecoHisto"); - TH1D *zMass = (TH1D *)RecoHistos->Get("ZMass"); - zMass->Rebin(4); //remember... - zMass->GetXaxis()->SetTitle("#mu #mu invariant mass (GeV/c^{2})"); - v_ZMassHistos.push_back(zMass); - gROOT->SetStyle("Plain"); - //gStyle->SetOptFit(1111); - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - string eps_string = f_string + ext; - v_eps.push_back(eps_string); - cout << ">>> histogram loaded\n"; - } - cout << v_file.size() << ", " << v_ZMassHistos.size() << ", " << v_eps.size() << endl; - cout << ">>> Input files loaded\n"; - } - - IntegratorConv integratorConv(1.e-5); - - //PDG values for Z mass and width - funct::Parameter mass("Mass", 91.1876); - funct::Parameter gamma("Gamma", 2.4952); - //Parameters for Z Line Shape - funct::Parameter f_gamma("Photon factor", 0); - funct::Parameter f_int("Interference factor", 0.001); - //Parameters for fits with gaussians - funct::Parameter yield("Yield", 482000); - funct::Parameter alpha("Alpha", 0.771); - funct::Parameter mean("Mean", 0); //0.229 - funct::Parameter sigma1("Sigma 1", 1.027); - funct::Parameter sigma2("Sigma 2", 2.94); - funct::Constant c_yield(yield), c_alpha(alpha); - funct::Number _1(1); - - if (vm.count("breitwigner")) { - cout << "Fitting histograms in input file to a Breit-Wigner\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - cout << ">>> load histogram\n"; - TH1D *zMass = v_ZMassHistos[i]; - cout << ">>> histogram loaded\n"; - funct::BreitWigner bw(mass, gamma); - funct::Constant c_yield(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c_yield * bw; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, yield, mass, gamma); - fun.SetParNames(yield.name().c_str(), mass.name().c_str(), gamma.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitBW_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitBW_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("gauss")) { - cout << "Fitting histograms in input files to a Gaussian\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mean << endl; - cout << sigma1 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::Gaussian gaus(mean, sigma1); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * gaus; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mean, 0.001, 80, 100); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, yield, mean, sigma1); - fun.SetParNames(yield.name().c_str(), mean.name().c_str(), sigma1.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("bwinter")) { - cout << "Fitting histograms in input files to the Breit-Wigner plus Z/photon interference term\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * zls; - cout << "set functions" << endl; - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.fixParameter(f_gamma.name()); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitBwIn_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitBwIn_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("bwint")) { - cout << "Fitting histograms in input files to the Breit-Wigner plus Z/photon interference term and gamma " - "propagator\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * zls; - cout << "set functions" << endl; - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitBwInGam_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitBwInGam_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("bwintgam")) { - cout << "Fitting histograms in input files to the Breit-Wigner plus Z/photon interference term and gamma " - "propagator\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * zls; - cout << "set functions" << endl; - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitBwInGam_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitBwInGam_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convbwg")) { - cout << "Fitting histograms in input files to the convolution between a Breit Wigner and a Gaussian\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << mean << endl; - cout << sigma1 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::BreitWigner bw(mass, gamma); - funct::Gaussian gauss(mean, sigma1); - double range = 3 * sigma1.value(); - funct::Convolution::type cbg( - bw, gauss, -range, range, integratorConv); - funct::Constant c(yield); - typedef funct::Product::type>::type - FitFunction; - FitFunction f = c * cbg; - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames( - yield.name().c_str(), mass.name().c_str(), gamma.name().c_str(), mean.name().c_str(), sigma1.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convbwinterg")) { - cout << "Fitting histograms in input files to the convolution between the Breit-Wigner plus Z/photon " - "interference and a Gaussian\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma1 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Gaussian gauss(mean, sigma1); - double range = 3 * sigma1.value(); - funct::Convolution::type czg( - zls, gauss, -range, range, integratorConv); - funct::Constant c(yield); - typedef funct::Product::type>::type - FitFunction; - FitFunction f = c * czg; - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.fixParameter(f_gamma.name()); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwInG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwInG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - if (vm.count("convbwintgamg")) { - cout << "Fitting histograms in input files to the convolution of the Breit-Wigner plus Z/photon interference and " - "photon propagator with a Gaussian\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma1 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Gaussian gauss(mean, sigma1); - double range = 3 * sigma1.value(); - funct::Convolution::type czg( - zls, gauss, -range, range, integratorConv); - funct::Constant c(yield); - typedef funct::Product::type>::type - FitFunction; - FitFunction f = c * czg; - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str()); - fun.SetLineColor(kRed); - fun.SetNpx(100000); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwInGaG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwInGaG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convbw2gf")) { - cout << "Fitting histograms in input files to the convolution between the Z Breit-Wigner and a linear " - "combination of fixed Gaussians\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << alpha << endl; - cout << mass << endl; - cout << gamma << endl; - cout << mean << endl; - cout << sigma1 << endl; - cout << sigma2 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::BreitWigner bw(mass, gamma); - funct::Gaussian gaus1(mean, sigma1); - funct::Gaussian gaus2(mean, sigma2); - typedef funct::Product::type G1; - typedef funct::Product::type, funct::Gaussian>::type G2; - typedef funct::Product::type>::type GaussComb; - GaussComb gc = c_yield * (c_alpha * gaus1 + (_1 - c_alpha) * gaus2); - typedef funct::Convolution::type FitFunction; - double range = 3 * max(sigma1.value(), sigma2.value()); - FitFunction f(bw, gc, -range, range, 1000); - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - //minuit.fixParameter(0); - minuit.addParameter(alpha, 0.1, -1., 1.); - //minuit.fixParameter(1); - minuit.addParameter(mass, .1, 70., 110); - //minuit.fixParameter(2); - minuit.addParameter(gamma, 1, 1, 10); - //minuit.fixParameter(3); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma1, 0.1, -5., 5.); - //minuit.fixParameter(5); - minuit.addParameter(sigma2, 0.1, -5., 5.); - //minuit.fixParameter(6); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - pars.push_back(sigma2.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str(), - sigma2.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwGGf_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwGGf_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convbwf2g")) { - cout << "Fitting histograms in input files to the convolution between the fixed Z Breit-Wigner and a linear " - "combination of Gaussians\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << alpha << endl; - cout << mass << endl; - cout << gamma << endl; - cout << mean << endl; - cout << sigma1 << endl; - cout << sigma2 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::BreitWigner bw(mass, gamma); - funct::Gaussian gaus1(mean, sigma1); - funct::Gaussian gaus2(mean, sigma2); - typedef funct::Product::type G1; - typedef funct::Product::type, funct::Gaussian>::type G2; - typedef funct::Product::type>::type GaussComb; - GaussComb gc = c_yield * (c_alpha * gaus1 + (_1 - c_alpha) * gaus2); - typedef funct::Convolution::type FitFunction; - double range = 3 * max(sigma1.value(), sigma2.value()); - FitFunction f(bw, gc, -range, range, 1000); - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - //minuit.fixParameter(0); - minuit.addParameter(alpha, 0.1, -1., 1.); - //minuit.fixParameter(1); - minuit.addParameter(mass, .1, 70., 110); - minuit.fixParameter(mass.name()); - minuit.addParameter(gamma, 1, 1, 10); - minuit.fixParameter(gamma.name()); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - //minuit.fixParameter(4); - minuit.addParameter(sigma1, 0.1, -5., 5.); - //minuit.fixParameter(5); - minuit.addParameter(sigma2, 0.1, -10., 10.); - //minuit.fixParameter(6); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - pars.push_back(sigma2.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str(), - sigma2.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwfGG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwfGG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convbwint2gf")) { - cout << "Fitting histograms in input files to the convolution between the Breit-Wigner plus Z/photon " - "interference and a linear combination of fixed Gaussians\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << alpha << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma1 << endl; - cout << sigma2 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Gaussian gaus1(mean, sigma1); - funct::Gaussian gaus2(mean, sigma2); - typedef funct::Product::type G1; - typedef funct::Product::type, funct::Gaussian>::type G2; - typedef funct::Product::type>::type GaussComb; - GaussComb gc = c_yield * (c_alpha * gaus1 + (_1 - c_alpha) * gaus2); - typedef funct::Convolution::type FitFunction; - double range = 3 * max(sigma1.value(), sigma2.value()); - FitFunction f(zls, gc, -range, range, integratorConv); - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - //minuit.fixParameter(0); - minuit.addParameter(alpha, 0.1, -1., 1.); - //minuit.fixParameter(1); - minuit.addParameter(mass, .1, 70., 110); - //minuit.fixParameter(2); - minuit.addParameter(gamma, 1, 1, 10); - //minuit.fixParameter(3); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.fixParameter(f_gamma.name()); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - //minuit.fixParameter(5); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma1, 0.1, -5., 5.); - //minuit.fixParameter(7); - minuit.addParameter(sigma2, 0.1, -5., 5.); - //minuit.fixParameter(8); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - pars.push_back(sigma2.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str(), - sigma2.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwInGGf_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwInGGf_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convbwintf2g")) { - cout << "Fitting histograms in input files to the convolution between the fixed Breit-Wigner plus Z/photon " - "interference and a linear combination of Gaussians\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << alpha << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma1 << endl; - cout << sigma2 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Gaussian gaus1(mean, sigma1); - funct::Gaussian gaus2(mean, sigma2); - typedef funct::Product::type G1; - typedef funct::Product::type, funct::Gaussian>::type G2; - typedef funct::Product::type>::type GaussComb; - GaussComb gc = c_yield * (c_alpha * gaus1 + (_1 - c_alpha) * gaus2); - typedef funct::Convolution::type FitFunction; - double range = 3 * max(sigma1.value(), sigma2.value()); - FitFunction f(zls, gc, -range, range, integratorConv); - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - //minuit.fixParameter(0); - minuit.addParameter(alpha, 0.1, -1., 1.); - //minuit.fixParameter(1); - minuit.addParameter(mass, .1, 70., 110); - minuit.fixParameter(mass.name()); - minuit.addParameter(gamma, 1, 1, 10); - minuit.fixParameter(gamma.name()); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.fixParameter(f_gamma.name()); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - //minuit.fixParameter(5); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - //minuit.fixParameter(6); - minuit.addParameter(sigma1, 0.1, -5., 5.); - //minuit.fixParameter(7); - minuit.addParameter(sigma2, 0.1, -10., 10.); - //minuit.fixParameter(8); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - pars.push_back(sigma2.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str(), - sigma2.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwInfGG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwInfGG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convbwintgam2gf")) { - cout << "Fitting histograms in input files to the convolution of the Breit-Wigner plus Z/photon interference and " - "photon propagator with a linear combination of fixed Gaussians\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << alpha << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma1 << endl; - cout << sigma2 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Gaussian gaus1(mean, sigma1); - funct::Gaussian gaus2(mean, sigma2); - typedef funct::Product::type G1; - typedef funct::Product::type, funct::Gaussian>::type G2; - typedef funct::Product::type>::type GaussComb; - GaussComb gc = c_yield * (c_alpha * gaus1 + (_1 - c_alpha) * gaus2); - typedef funct::Convolution::type FitFunction; - double range = 3 * max(sigma1.value(), sigma2.value()); - FitFunction f(zls, gc, -range, range, integratorConv); - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - //minuit.fixParameter(0); - minuit.addParameter(alpha, 0.1, -1., 1.); - //minuit.fixParameter(1); - minuit.addParameter(mass, .1, 70., 110); - //minuit.fixParameter(2); - minuit.addParameter(gamma, 1, 1, 10); - //minuit.fixParameter(3); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - //minuit.fixParameter(4); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - //minuit.fixParameter(5); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma1, 0.1, -5., 5.); - // minuit.fixParameter(7); - minuit.addParameter(sigma2, 0.1, -5., 5.); - // minuit.fixParameter(8); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - pars.push_back(sigma2.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str(), - sigma2.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwInGaGGf_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwInGaGGf_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convbwintgamf2g")) { - cout << "Fitting histograms in input files to the convolution of the fixed Breit-Wigner plus Z/photon " - "interference and photon propagator with a linear combination of Gaussians\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << alpha << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma1 << endl; - cout << sigma2 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Gaussian gaus1(mean, sigma1); - funct::Gaussian gaus2(mean, sigma2); - typedef funct::Product::type G1; - typedef funct::Product::type, funct::Gaussian>::type G2; - typedef funct::Product::type>::type GaussComb; - GaussComb gc = c_yield * (c_alpha * gaus1 + (_1 - c_alpha) * gaus2); - typedef funct::Convolution::type FitFunction; - double range = 3 * max(sigma1.value(), sigma2.value()); - FitFunction f(zls, gc, -range, range, integratorConv); - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - //minuit.fixParameter(0); - minuit.addParameter(alpha, 0.1, -1., 1.); - //minuit.fixParameter(1); - minuit.addParameter(mass, .1, 70., 110); - minuit.fixParameter(mass.name()); - minuit.addParameter(gamma, 1, 1, 10); - minuit.fixParameter(gamma.name()); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - //minuit.fixParameter(4); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - //minuit.fixParameter(5); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - //minuit.fixParameter(6); - minuit.addParameter(sigma1, 0.1, -5., 5.); - //minuit.fixParameter(7); - minuit.addParameter(sigma2, 0.1, -10., 10.); - //minuit.fixParameter(8); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - pars.push_back(sigma2.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str(), - sigma2.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwInGafGG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwInGafGG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - cout << "It works!\n"; - } catch (std::exception &e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } catch (...) { - cerr << "Exception of unknown type!\n"; - } - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zMassHSFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zMassHSFit.cpp deleted file mode 100644 index 5abc1d2ac8887..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zMassHSFit.cpp +++ /dev/null @@ -1,353 +0,0 @@ -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/BreitWigner.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Number.h" -#include "PhysicsTools/Utilities/interface/Product.h" -#include "PhysicsTools/Utilities/interface/Sum.h" -#include "PhysicsTools/Utilities/interface/Difference.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/ZLineShape.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Convolution.h" -#include "PhysicsTools/Utilities/interface/HistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootFunctionAdapter.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "TFile.h" -#include "TH1.h" -#include "TF1.h" -#include "TMath.h" -#include "TCanvas.h" -#include "TROOT.h" - -#include -#include -#include -#include -#include -#include -#include -using namespace boost; -namespace po = boost::program_options; -using namespace std; - -typedef funct::GaussIntegrator IntegratorConv; - -// A helper function to simplify the main part. -template -ostream &operator<<(ostream &os, const vector &v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -int main(int ac, char *av[]) { - try { - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options()("help", "produce help message")("include-path,I", po::value >(), "include path")( - "input-file", po::value >(), "input file")( - "min,m", po::value(&fMin)->default_value(60), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(120), "maximum value for fit range")( - "convbwintgamg", - "fit to the convolution of a breit-wigner plus interference term and gamma propagator and a gaussian")( - "convexpbwintgamg", - "fit to the convolution of the product between an exponential and a breit-wigner plus interference term and " - "gamma propagator with a gaussian")("convbwintgam2gf", - "fit to the convolution of the breit-wigner plus interference term and " - "gamma propagator with a linear combination of fixed gaussians")( - "output-file,O", po::value(&ext)->default_value(".ps"), "output file format"); - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - if (vm.count("include-path")) { - cout << "Include paths are: " << vm["include-path"].as >() << "\n"; - } - - vector v_file; - vector v_ZMassHistos; - vector v_eps; - - if (vm.count("input-file")) { - cout << "Input files are: " << vm["input-file"].as >() << "\n"; - v_file = vm["input-file"].as >(); - for (vector::const_iterator it = v_file.begin(); it != v_file.end(); ++it) { - TFile *root_file = new TFile(it->c_str(), "read"); - TDirectory *Histos = (TDirectory *)root_file->GetDirectory("ZHisto"); - TDirectory *RecoHistos = (TDirectory *)Histos->GetDirectory("ZRecoHisto"); - TH1D *zMass = (TH1D *)RecoHistos->Get("ZMass"); - zMass->Rebin(4); //remember... - zMass->GetXaxis()->SetTitle("#mu #mu invariant mass (GeV/c^{2})"); - v_ZMassHistos.push_back(zMass); - gROOT->SetStyle("Plain"); - //gStyle->SetOptFit(1111); - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - string eps_string = f_string + ext; - v_eps.push_back(eps_string); - cout << ">>> histogram loaded\n"; - } - cout << v_file.size() << ", " << v_ZMassHistos.size() << ", " << v_eps.size() << endl; - cout << ">>> Input files loaded\n"; - } - - IntegratorConv integratorConv(1.e-5); - //Values for Z mass and width - funct::Parameter mass("Mass", 91.364); - funct::Parameter gamma("Gamma", 4.11); - //Parameters for Z Line Shape - funct::Parameter f_gamma("Photon factor", 0.838); - funct::Parameter f_int("Interference factor", -0.00197); - //Parameters for fits with gaussians - funct::Parameter yield("Yield", 283000); - funct::Parameter alpha("Alpha", 0.771); //the first gaussian is narrow - funct::Parameter mean("Mean", 0); //0.229 - funct::Parameter sigma1("Sigma 1", 0.76); - funct::Parameter sigma2("Sigma 2", 2.94); - //Parameter for exponential - funct::Parameter lambda("Lambda", 0); - - if (vm.count("convbwintgamg")) { - cout << "Fitting histograms in input files to the convolution of the Breit-Wigner plus Z/photon interference and " - "photon propagator with a Gaussian\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma1 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Gaussian gauss(mean, sigma1); - double range = 3 * sigma1.value(); - funct::Convolution::type czg( - zls, gauss, -range, range, integratorConv); - funct::Constant c(yield); - typedef funct::Product::type>::type - FitFunction; - FitFunction f = c * czg; - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str()); - fun.SetLineColor(kRed); - fun.SetNpx(100000); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwInGaG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwInGaG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convexpbwintgamg")) { - cout << "Fitting histograms in input files to the convolution of the product between an exponential and a " - "breit-wigner plus interference term and gamma propagator with a gaussian" - << endl; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << lambda << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma1 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::Exponential expo(lambda); - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Gaussian gauss(mean, sigma1); - typedef funct::Product::type ExpZLS; - ExpZLS expz = expo * zls; - double range = 3 * sigma1.value(); - funct::Convolution::type cezg( - expz, gauss, -range, range, integratorConv); - funct::Constant c(yield); - typedef funct::Product::type>::type - FitFunction; - FitFunction f = c * cezg; - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(lambda, 0.1, -100, 100); - minuit.fixParameter(lambda.name()); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - minuit.releaseParameter(lambda.name()); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(lambda.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - lambda.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str()); - fun.SetLineColor(kRed); - fun.SetNpx(100000); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoExBwInGaG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoExBwInGaG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("convbwintgam2gf")) { - cout << "Fitting histograms in input files to the convolution of the Breit-Wigner plus Z/photon interference and " - "photon propagator with a linear combination of fixed Gaussians\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << alpha << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma1 << endl; - cout << sigma2 << endl; - for (unsigned int i = 0; i < v_ZMassHistos.size(); ++i) { - TH1D *zMass = v_ZMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Gaussian gaus1(mean, sigma1); - funct::Gaussian gaus2(mean, sigma2); - funct::Number _1(1); - typedef funct::Product::type G1; - typedef funct::Product::type, funct::Gaussian>::type G2; - typedef funct::Product::type>::type GaussComb; - funct::Constant c_alpha(alpha), c_yield(yield); - GaussComb gc = c_yield * (c_alpha * gaus1 + (_1 - c_alpha) * gaus2); - typedef funct::Convolution::type FitFunction; - double range = 3 * max(sigma1.value(), sigma2.value()); - FitFunction f(zls, gc, -range, range, integratorConv); - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(alpha, 0.1, -1., 1.); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.addParameter(mean, 0.001, -0.5, 0.5); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.addParameter(sigma2, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - pars.push_back(sigma2.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str(), - sigma2.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassFitCoBwInGaGGf_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassFitCoBwInGaGGf_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - cout << "It works!\n"; - } catch (std::exception &e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } catch (...) { - cerr << "Exception of unknown type!\n"; - } - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zMassMCFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zMassMCFit.cpp deleted file mode 100644 index 91cd65815fbe0..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zMassMCFit.cpp +++ /dev/null @@ -1,355 +0,0 @@ -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/BreitWigner.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Product.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/ZLineShape.h" -#include "PhysicsTools/Utilities/interface/HistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootFunctionAdapter.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "TFile.h" -#include "TH1.h" -#include "TF1.h" -#include "TMath.h" -#include "TCanvas.h" -#include "TROOT.h" -#include "TMath.h" - -#include -#include -#include -#include -#include -#include -using namespace boost; -namespace po = boost::program_options; -using namespace std; - -// A helper function to simplify the main part. -template -ostream &operator<<(ostream &os, const vector &v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -int main(int ac, char *av[]) { - try { - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options()("help", "produce help message")("include-path,I", po::value >(), "include path")( - "input-file", po::value >(), "input file")( - "min,m", po::value(&fMin)->default_value(80), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(120), "maximum value for fit range")( - "breitwigner", "fit to a breit-wigner")("gauss", "fit to a gaussian")( - "bwinter", "fit to a breit-wigner plus Z/photon interference term")( - "bwintgam", "fit to a breit-wigner plus Z/photon interference term and photon propagator")( - "expbwintgam", - "fit to the product of an exponential with a breit-wigner plus Z/photon interference term and photon " - "propagator")("output-file,O", po::value(&ext)->default_value(".ps"), "output file format"); - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - if (vm.count("include-path")) { - cout << "Include paths are: " << vm["include-path"].as >() << "\n"; - } - - vector v_file; - vector v_ZMCMassHistos; - vector v_eps; - - if (vm.count("input-file")) { - cout << "Input files are: " << vm["input-file"].as >() << "\n"; - v_file = vm["input-file"].as >(); - for (vector::const_iterator it = v_file.begin(); it != v_file.end(); ++it) { - TFile *root_file = new TFile(it->c_str(), "read"); - TDirectory *Histos = (TDirectory *)root_file->GetDirectory("ZHisto"); - TDirectory *MCHistos = (TDirectory *)Histos->GetDirectory("ZMCHisto"); - TH1D *zMass = (TH1D *)MCHistos->Get("ZMCMass"); - zMass->Rebin(4); //remember... - zMass->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - v_ZMCMassHistos.push_back(zMass); - gROOT->SetStyle("Plain"); - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - string eps_string = f_string + ext; - v_eps.push_back(eps_string); - cout << ">>> histogram loaded\n"; - } - cout << v_file.size() << ", " << v_ZMCMassHistos.size() << ", " << v_eps.size() << endl; - cout << ">>> Input files loaded\n"; - } - //PDG values for Z mass and width - funct::Parameter mass("Mass", 91.1876); - funct::Parameter gamma("Gamma", 2.4952); - //Parameters for Z Line Shape - funct::Parameter f_gamma("Photon factor", 0); - funct::Parameter f_int("Interference factor", 0.001); - //Parameters for fits with one gaussian - funct::Parameter yield("Yield", 1000); - funct::Parameter mean("Mean", 90); - funct::Parameter sigma("Sigma", 1.); - //Parameters for fit with an exponential - funct::Parameter lambda("Lambda", 0); - - if (vm.count("breitwigner")) { - cout << "Fitting histograms in input file to a Breit-Wigner\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - cout << ">>> load histogram\n"; - TH1D *zMass = v_ZMCMassHistos[i]; - cout << ">>> histogram loaded\n"; - funct::BreitWigner bw(mass, gamma); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * bw; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, yield, mass, gamma); - fun.SetParNames(yield.name().c_str(), mass.name().c_str(), gamma.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassMCFitBW_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassMCFitBW_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("gauss")) { - cout << "Fitting histograms in input files to a Gaussian\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mean << endl; - cout << sigma << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - TH1D *zMass = v_ZMCMassHistos[i]; - funct::Gaussian gaus(mean, sigma); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * gaus; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mean, 0.001, 80, 100); - minuit.addParameter(sigma, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, yield, mean, sigma); - fun.SetParNames(yield.name().c_str(), mean.name().c_str(), sigma.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassMCFitG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassMCFitG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("bwinter")) { - cout << "Fitting histograms in input files to the Breit-Wigner plus Z/photon interference term\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - TH1D *zMass = v_ZMCMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * zls; - cout << "set functions" << endl; - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.fixParameter(f_gamma.name()); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassMCFitBwIn_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassMCFitBwIn_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("bwintgam")) { - cout << "Fitting histograms in input files to the Breit-Wigner plus Z/photon interference term and photon " - "propagator\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - TH1D *zMass = v_ZMCMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * zls; - cout << "set functions" << endl; - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 1000000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetNpx(100000); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassMCFitBwInGa_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassMCFitBwInGa_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("expbwintgam")) { - cout << "Fitting histograms in input files to the product of an exponential with the Breit-Wigner plus Z/photon " - "interference term and photon propagator\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << lambda << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - TH1D *zMass = v_ZMCMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Exponential expo(lambda); - funct::Constant c(yield); - typedef funct::Product::type ExpZLS; - ExpZLS expz = expo * zls; - typedef funct::Product::type FitFunction; - FitFunction f = c * expz; - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(lambda, 0.1, -100, 100); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(lambda.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetNpx(100000); - fun.SetParNames(yield.name().c_str(), - lambda.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassMCFitExpBwInGa_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassMCFitExpBwInGa_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - cout << "It works!\n"; - } catch (std::exception &e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } catch (...) { - cerr << "Exception of unknown type!\n"; - } - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zMassResFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zMassResFit.cpp deleted file mode 100644 index 4ce46ab3144a5..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zMassResFit.cpp +++ /dev/null @@ -1,280 +0,0 @@ -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Number.h" -#include "PhysicsTools/Utilities/interface/Product.h" -#include "PhysicsTools/Utilities/interface/Sum.h" -#include "PhysicsTools/Utilities/interface/Difference.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/HistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootFunctionAdapter.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "TFile.h" -#include "TH1.h" -#include "TF1.h" -#include "TMath.h" -#include "TCanvas.h" -#include "TROOT.h" -#include "TMath.h" - -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream &operator<<(ostream &os, const vector &v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -int main(int ac, char *av[]) { - try { - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options()("help", "produce help message")("include-path,I", po::value >(), "include path")( - "input-file", po::value >(), "input file")( - "min,m", po::value(&fMin)->default_value(-20), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(20), "maximum value for fit range")( - "gauss", "fit to a gaussian")("2gauss", "fit to a linear combination of two gaussians")( - "3gauss", "fit to a linear combination of three gaussians")( - "output-file,O", po::value(&ext)->default_value(".ps"), "output file format"); - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - if (vm.count("include-path")) { - cout << "Include paths are: " << vm["include-path"].as >() << "\n"; - } - - vector v_file; - vector v_ZMassResHistos; - vector v_eps; - - if (vm.count("input-file")) { - cout << "Input files are: " << vm["input-file"].as >() << "\n"; - v_file = vm["input-file"].as >(); - for (vector::const_iterator it = v_file.begin(); it != v_file.end(); ++it) { - TFile *root_file = new TFile(it->c_str(), "read"); - TDirectory *Histos = (TDirectory *)root_file->GetDirectory("ZHisto"); - TDirectory *RecoHistos = (TDirectory *)Histos->GetDirectory("ZResolutionHisto"); - TH1D *zMass = (TH1D *)RecoHistos->Get("ZToMuMuRecoMassResolution"); - zMass->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - v_ZMassResHistos.push_back(zMass); - gROOT->SetStyle("Plain"); - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - string eps_string = f_string + ext; - v_eps.push_back(eps_string); - cout << ">>> histogram loaded\n"; - } - cout << v_file.size() << ", " << v_ZMassResHistos.size() << ", " << v_eps.size() << endl; - cout << ">>> Input files loaded\n"; - } - //Parameters for fit - funct::Parameter yield("Yield", 10000); - funct::Parameter alpha("Alpha", 0); - funct::Parameter beta("Beta", 0); - funct::Parameter mean("Mean", 0); - funct::Parameter mean2("Mean 2", 0); - funct::Parameter mean3("Mean 3", 0); - funct::Parameter sigma1("Sigma 1", 1.); - funct::Parameter sigma2("Sigma 2", 2.5); - funct::Parameter sigma3("Sigma 3", 9.); - - if (vm.count("gauss")) { - cout << "Fitting histograms in input files to a Gaussian\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mean << endl; - cout << sigma1 << endl; - for (unsigned int i = 0; i < v_ZMassResHistos.size(); ++i) { - TH1D *zMass = v_ZMassResHistos[i]; - zMass->Rebin(4); //remember... - funct::Gaussian gaus(mean, sigma1); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * gaus; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(mean, 0.001, -1., 1.); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, yield, mean, sigma1); - fun.SetParNames(yield.name().c_str(), mean.name().c_str(), sigma1.name().c_str()); - fun.SetLineColor(kRed); - fun.SetNpx(1000); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassResFitG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassResFitG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("2gauss")) { - cout << "Fitting histograms in input files to a linear combination of two Gaussians\n"; - cout << "set pars: " << endl; - cout << yield << endl; - cout << alpha << endl; - cout << mean << endl; - cout << mean2 << endl; - cout << sigma1 << endl; - cout << sigma2 << endl; - for (unsigned int i = 0; i < v_ZMassResHistos.size(); ++i) { - TH1D *zMass = v_ZMassResHistos[i]; - zMass->Rebin(4); //remember... - funct::Gaussian gaus1(mean, sigma1); - funct::Gaussian gaus2(mean, sigma2); - typedef funct::Product::type G1; - typedef funct::Product::type, funct::Gaussian>::type G2; - typedef funct::Product::type>::type FitFunction; - funct::Number _1(1); - funct::Constant c_alpha(alpha), c_yield(yield); - FitFunction f = c_yield * (c_alpha * gaus1 + (_1 - c_alpha) * gaus2); - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(alpha, 0.1, -1., 1.); - minuit.addParameter(mean, 0.001, -1., 1.); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.addParameter(sigma2, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma1.ptr()); - pars.push_back(sigma2.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - mean.name().c_str(), - sigma1.name().c_str(), - sigma2.name().c_str()); - fun.SetLineColor(kRed); - fun.SetNpx(1000); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassResFitGG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassResFitGG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("3gauss")) { - cout << "Fitting histograms in input files to a linear combination of three Gaussians\n"; - cout << "set pars: " << endl; - cout << yield << endl; - cout << alpha << endl; - cout << beta << endl; - cout << mean << endl; - cout << mean2 << endl; - cout << mean3 << endl; - cout << sigma1 << endl; - cout << sigma2 << endl; - cout << sigma3 << endl; - for (unsigned int i = 0; i < v_ZMassResHistos.size(); ++i) { - TH1D *zMass = v_ZMassResHistos[i]; - zMass->Rebin(4); //remember... - funct::Gaussian gaus1(mean, sigma1); - funct::Gaussian gaus2(mean2, sigma2); - funct::Gaussian gaus3(mean3, sigma3); - funct::Constant a(alpha), b(beta), c(yield); - funct::Number _1(1); - typedef funct::Product::type G1; - typedef funct::Sum::type SumG1; - typedef funct::Sum::type ConstSum; - typedef funct::Product::type, funct::Gaussian>::type G2; - typedef funct::Product::type>::type FitFunction; - FitFunction f = c * (a * gaus1 + b * gaus2 + (_1 - (a + b)) * gaus3); - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(alpha, 0.1, -1., 1.); - minuit.addParameter(beta, 0.1, -1., 1.); - minuit.addParameter(mean, 0.001, -1., 1.); - minuit.addParameter(mean2, 0.001, -1., 1.); - minuit.addParameter(mean3, 0.001, -1., 1.); - minuit.addParameter(sigma1, 0.1, -5., 5.); - minuit.addParameter(sigma2, 0.1, -5., 5.); - minuit.addParameter(sigma3, 0.1, -20., 20.); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(beta.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(mean2.ptr()); - pars.push_back(mean3.ptr()); - pars.push_back(sigma1.ptr()); - pars.push_back(sigma2.ptr()); - pars.push_back(sigma3.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - beta.name().c_str(), - mean.name().c_str(), - mean2.name().c_str(), - mean3.name().c_str(), - sigma1.name().c_str(), - sigma2.name().c_str(), - sigma3.name().c_str()); - fun.SetLineColor(kRed); - //fun.SetNpx(100000); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMassResFitGGG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMassResFitGGG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - cout << "It works!\n"; - } catch (std::exception &e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } catch (...) { - cerr << "Exception of unknown type!\n"; - } - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zMuMuExpFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zMuMuExpFit.cpp deleted file mode 100755 index 03cfbb39c5a6e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zMuMuExpFit.cpp +++ /dev/null @@ -1,259 +0,0 @@ -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/ZLineShape.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Polynomial.h" -#include "PhysicsTools/Utilities/interface/Convolution.h" -#include "PhysicsTools/Utilities/interface/Operations.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootMinuitCommands.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "TROOT.h" -#include "TH1.h" -#include "TFile.h" -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -//A function that sets istogram contents to 0 -//if they are too small -void fix(TH1* histo) { - for(int i = 1; i <= histo->GetNbinsX(); ++i) { - if(histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } -} - -typedef funct::GaussIntegrator IntegratorConv; - -int main(int ac, char *av[]) { - gROOT->SetStyle("Plain"); - try { - typedef funct::Product::type >::type ZPeak; - typedef funct::Product::type ZMuMuSig; - typedef ZMuMuSig ZMuMu; - typedef ZMuMuSig ZMuTkSig; - typedef funct::Product >::type >::type ZMuTkBkg; - typedef funct::Sum::type ZMuTk; - typedef funct::Product::type ZMuSaSig; - typedef funct::Parameter ZMuSaBkg; - typedef funct::Sum::type ZMuSa; - - typedef fit::MultiHistoChiSquare ChiSquared; - fit::RootMinuitCommands commands("ElectroWeakAnalysis/ZMuMu/test/zMuMuExpFit.txt"); - - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options() - ("help", "produce help message") - ("include-path,I", po::value< vector >(), - "include path") - ("input-file", po::value< vector >(), "input file") - ("min,m", po::value(&fMin)->default_value(60), "minimum value for fit range") - ("max,M", po::value(&fMax)->default_value(120), "maximum value for fit range") - ("output-file,O", po::value(&ext)->default_value(".ps"), - "output file format") - ; - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av). - options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - if (vm.count("include-path")) { - cout << "Include paths are: " - << vm["include-path"].as< vector >() << "\n"; - } - - if (vm.count("input-file")) { - cout << "Input files are: " - << vm["input-file"].as< vector >() << "\n"; - vector v_file = vm["input-file"].as< vector >(); - for(vector::const_iterator it = v_file.begin(); - it != v_file.end(); ++it) { - TFile * root_file = new TFile(it->c_str(),"read"); - TH1D * histoZMuMu = (TH1D*) root_file->Get("zToMM"); - fix(histoZMuMu); - TH1D * histoZMuTk = (TH1D*) root_file->Get("zToMTk"); - fix(histoZMuTk); - TH1D * histoZMuSa = (TH1D*) root_file->Get("zToMS"); - fix(histoZMuSa); - cout << ">>> histogram loaded\n"; - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - string plot_string = f_string + ext; - cout << ">>> Input files loaded\n"; - - const char * kYieldZMuMu = "YieldZMuMu"; - const char * kYieldZMuTk = "YieldZMuTk"; - const char * kYieldZMuSa = "YieldZMuSa"; - const char * kYieldBkgZMuTk = "YieldBkgZMuTk"; - const char * kYieldBkgZMuSa = "YieldBkgZMuSa"; - const char * kLambdaZMuMu = "LambdaZMuMu"; - const char * kMass = "Mass"; - const char * kGamma = "Gamma"; - const char * kPhotonFactorZMuMu = "PhotonFactorZMuMu"; - const char * kInterferenceFactorZMuMu = "InterferenceFactorZMuMu"; - //const char * kPhotonFactorZMuTk = "PhotonFactorZMuTk"; - //const char * kInterferenceFactorZMuTk = "InterferenceFactorZMuTk"; - const char * kMeanZMuMu = "MeanZMuMu"; - const char * kSigmaZMuMu = "SigmaZMuMu"; - const char * kLambda = "Lambda"; - const char * kA0 = "A0"; - const char * kA1 = "A1"; - const char * kA2 = "A2"; - const char * kSigmaZMuSa = "SigmaZMuSa"; - - IntegratorConv integratorConv(1.e-5); - - funct::Parameter lambdaZMuMu(kLambdaZMuMu, commands.par(kLambdaZMuMu)); - funct::Parameter mass(kMass, commands.par(kMass)); - funct::Parameter gamma(kGamma, commands.par(kGamma)); - funct::Parameter photonFactorZMuMu(kPhotonFactorZMuMu, commands.par(kPhotonFactorZMuMu)); - funct::Parameter interferenceFactorZMuMu(kInterferenceFactorZMuMu, commands.par(kInterferenceFactorZMuMu)); - //funct::Parameter photonFactorZMuTk(kPhotonFactorZMuTk, commands.par(kPhotonFactorZMuTk)); - //funct::Parameter interferenceFactorZMuTk(kInterferenceFactorZMuTk, commands.par(kInterferenceFactorZMuTk)); - funct::Parameter yieldZMuMu(kYieldZMuMu, commands.par(kYieldZMuMu)); - funct::Parameter yieldZMuTk(kYieldZMuTk, commands.par(kYieldZMuTk)); - funct::Parameter yieldZMuSa(kYieldZMuSa, commands.par(kYieldZMuSa)); - funct::Parameter yieldBkgZMuTk(kYieldBkgZMuTk, commands.par(kYieldBkgZMuTk)); - funct::Parameter yieldBkgZMuSa(kYieldBkgZMuSa, commands.par(kYieldBkgZMuSa)); - funct::Parameter meanZMuMu(kMeanZMuMu, commands.par(kMeanZMuMu)); - funct::Parameter sigmaZMuMu(kSigmaZMuMu, commands.par(kSigmaZMuMu)); - funct::Parameter sigmaZMuSa(kSigmaZMuSa, commands.par(kSigmaZMuSa)); - funct::Parameter lambda(kLambda, commands.par(kLambda)); - funct::Parameter a0(kA0, commands.par(kA0)); - funct::Parameter a1(kA1, commands.par(kA1)); - funct::Parameter a2(kA2, commands.par(kA2)); - - ZPeak zPeak = funct::Exponential(lambdaZMuMu) * - funct::conv(funct::ZLineShape(mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu), - funct::Gaussian(meanZMuMu, sigmaZMuMu), - -3*sigmaZMuMu.value(), 3*sigmaZMuMu.value(), integratorConv); - ZMuMu zMuMu = yieldZMuMu * zPeak; - ZMuTkBkg zMuTkBkg = - yieldBkgZMuTk * (funct::Exponential(lambda) * funct::Polynomial<2>(a0, a1, a2)); - ZMuTk zMuTk = yieldZMuTk * zPeak + zMuTkBkg; - ZMuSa zMuSa = yieldZMuSa * funct::Gaussian(mass, sigmaZMuSa) + yieldBkgZMuSa; - - ChiSquared chi2(zMuMu, histoZMuMu, - zMuTk, histoZMuTk, - zMuSa, histoZMuSa, - fMin, fMax); - cout << "N. deg. of freedom: " << chi2.numberOfBins() << endl; - fit::RootMinuit minuit(chi2, true); - commands.add(minuit, yieldZMuMu); - commands.add(minuit, yieldZMuTk); - commands.add(minuit, yieldZMuSa); - commands.add(minuit, yieldBkgZMuTk); - commands.add(minuit, yieldBkgZMuSa); - commands.add(minuit, lambdaZMuMu); - commands.add(minuit, mass); - commands.add(minuit, gamma); - commands.add(minuit, photonFactorZMuMu); - commands.add(minuit, interferenceFactorZMuMu); - //commands.add(minuit, photonFactorZMuTk); - //commands.add(minuit, interferenceFactorZMuTk); - commands.add(minuit, meanZMuMu); - commands.add(minuit, sigmaZMuMu); - commands.add(minuit, lambda); - commands.add(minuit, a0); - commands.add(minuit, a1); - commands.add(minuit, a2); - commands.add(minuit, sigmaZMuSa); - commands.run(minuit); - const unsigned int nPar = 17; - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - std::cout << "error matrix:" << std::endl; - for(unsigned int i = 0; i < nPar; ++i) { - for(unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - string ZMuMuPlot = "ZMuMuFit" + plot_string; - root::plot(ZMuMuPlot.c_str(), *histoZMuMu, zMuMu, fMin, fMax, - yieldZMuMu, lambdaZMuMu, mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu, - meanZMuMu, sigmaZMuMu, - kRed, 2, kDashed, 10000, - "Z -> #mu #mu mass with isolation cut", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - string ZMuTkPlot = "ZMuTkFit" + plot_string; - TF1 funZMuTk = root::tf1("ZMuTkFunction", zMuTk, fMin, fMax, - yieldZMuTk, lambdaZMuMu, mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu, - meanZMuMu, sigmaZMuMu, - yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTk.SetLineColor(kRed); - funZMuTk.SetLineWidth(2); - funZMuTk.SetLineStyle(kDashed); - funZMuTk.SetNpx(10000); - TF1 funZMuTkBkg = root::tf1("ZMuTkBack", zMuTkBkg, fMin, fMax, - yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTkBkg.SetLineColor(kGreen); - funZMuTkBkg.SetLineWidth(2); - funZMuTkBkg.SetLineStyle(kDashed); - funZMuTkBkg.SetNpx(10000); - histoZMuTk->SetTitle("Z -> #mu + (unmatched) track mass with isolation cut"); - histoZMuTk->SetXTitle("#mu + (unmatched) track invariant mass (GeV/c^{2})"); - histoZMuTk->SetYTitle("Events"); - TCanvas *canvas = new TCanvas("canvas"); - histoZMuTk->Draw("e"); - funZMuTk.Draw("same"); - funZMuTkBkg.Draw("same"); - canvas->SaveAs(ZMuTkPlot.c_str()); - canvas->SetLogy(); - string logZMuTkPlot = "log_" + ZMuTkPlot; - canvas->SaveAs(logZMuTkPlot.c_str()); - string ZMuSaPlot = "ZMuSaFit" + plot_string; - root::plot(ZMuSaPlot.c_str(), *histoZMuSa, zMuSa, fMin, fMax, - yieldZMuSa, mass, sigmaZMuSa, yieldBkgZMuSa, - kRed, 2, kDashed, 10000, - "Z -> #mu + (unmatched) standalone mass with isolation cut", - "#mu + (unmatched) standalone invariant mass (GeV/c^{2})", - "Events"); - } - } - - } - catch(std::exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } - catch(...) { - cerr << "Exception of unknown type!\n"; - } - return 0; -} - diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zMuMuFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zMuMuFit.cpp deleted file mode 100644 index 09bce04e22d6d..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zMuMuFit.cpp +++ /dev/null @@ -1,283 +0,0 @@ -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/ZLineShape.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/Numerical.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Polynomial.h" -#include "PhysicsTools/Utilities/interface/Convolution.h" -#include "PhysicsTools/Utilities/interface/Operations.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootMinuitCommands.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "TROOT.h" -#include "TH1.h" -#include "TFile.h" -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -//A function that sets istogram contents to 0 -//if they are too small -void fix(TH1* histo) { - for(int i = 1; i <= histo->GetNbinsX(); ++i) { - if(histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } -} - -typedef funct::GaussIntegrator IntegratorConv; - -int main(int ac, char *av[]) { - gROOT->SetStyle("Plain"); - try { - typedef funct::Product::type>::type ZPeak; - typedef funct::Product::type ZMuMuSig; - typedef funct::Product >::type, - funct::Power >::type >::type ZMuMuEfficiency; - typedef funct::Product::type ZMuMu; - - typedef funct::Product, - funct::Product >::type, - funct::Product, funct::Parameter>::type - >::type - >::type - >::type ZMuTkEfficiency; - typedef funct::Product::type ZMuTkSig; - typedef funct::Product >::type >::type ZMuTkBkg; - typedef funct::Sum::type ZMuTk; - - typedef ZMuTkEfficiency ZMuSaEfficiency; - typedef funct::Product::type >::type ZMuSaSig; - typedef funct::Parameter ZMuSaBkg; - typedef funct::Sum::type ZMuSa; - - typedef fit::MultiHistoChiSquare ChiSquared; - fit::RootMinuitCommands commands("ElectroWeakAnalysis/ZMuMu/test/zMuMuFit.txt"); - - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options() - ("help", "produce help message") - ("include-path,I", po::value< vector >(), - "include path") - ("input-file", po::value< vector >(), "input file") - ("min,m", po::value(&fMin)->default_value(60), "minimum value for fit range") - ("max,M", po::value(&fMax)->default_value(120), "maximum value for fit range") - ("output-file,O", po::value(&ext)->default_value(".ps"), - "output file format") - ; - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av). - options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - if (vm.count("include-path")) { - cout << "Include paths are: " - << vm["include-path"].as< vector >() << "\n"; - } - - if (vm.count("input-file")) { - cout << "Input files are: " - << vm["input-file"].as< vector >() << "\n"; - vector v_file = vm["input-file"].as< vector >(); - for(vector::const_iterator it = v_file.begin(); - it != v_file.end(); ++it) { - TFile * root_file = new TFile(it->c_str(),"read"); - TH1D * histoZMuMu = (TH1D*) root_file->Get("zToMM"); - fix(histoZMuMu); - TH1D * histoZMuTk = (TH1D*) root_file->Get("zToMTk"); - fix(histoZMuTk); - TH1D * histoZMuSa = (TH1D*) root_file->Get("zToMS"); - fix(histoZMuSa); - cout << ">>> histogram loaded\n"; - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - string plot_string = f_string + ext; - cout << ">>> Input files loaded\n"; - - const char * kYieldZMuMu = "YieldZMuMu"; - const char * kEfficiencyTk = "EfficiencyTk"; - const char * kEfficiencySa = "EfficiencySa"; - const char * kYieldBkgZMuTk = "YieldBkgZMuTk"; - const char * kYieldBkgZMuSa = "YieldBkgZMuSa"; - const char * kLambdaZMuMu = "LambdaZMuMu"; - const char * kMass = "Mass"; - const char * kGamma = "Gamma"; - const char * kPhotonFactorZMuMu = "PhotonFactorZMuMu"; - const char * kInterferenceFactorZMuMu = "InterferenceFactorZMuMu"; - //const char * kPhotonFactorZMuTk = "PhotonFactorZMuTk"; - //const char * kInterferenceFactorZMuTk = "InterferenceFactorZMuTk"; - const char * kMeanZMuMu = "MeanZMuMu"; - const char * kSigmaZMuMu = "SigmaZMuMu"; - const char * kLambda = "Lambda"; - const char * kA0 = "A0"; - const char * kA1 = "A1"; - const char * kA2 = "A2"; - const char * kSigmaZMuSa = "SigmaZMuSa"; - - IntegratorConv integratorConv(1.e-5); - - funct::Parameter lambdaZMuMu(kLambdaZMuMu, commands.par(kLambdaZMuMu)); - funct::Parameter mass(kMass, commands.par(kMass)); - funct::Parameter gamma(kGamma, commands.par(kGamma)); - funct::Parameter photonFactorZMuMu(kPhotonFactorZMuMu, commands.par(kPhotonFactorZMuMu)); - funct::Parameter interferenceFactorZMuMu(kInterferenceFactorZMuMu, commands.par(kInterferenceFactorZMuMu)); - //funct::Parameter photonFactorZMuTk(kPhotonFactorZMuTk, commands.par(kPhotonFactorZMuTk)); - //funct::Parameter interferenceFactorZMuTk(kInterferenceFactorZMuTk, commands.par(kInterferenceFactorZMuTk)); - funct::Parameter yieldZMuMu(kYieldZMuMu, commands.par(kYieldZMuMu)); - funct::Parameter efficiencyTk(kEfficiencyTk, commands.par(kEfficiencyTk)); - funct::Parameter efficiencySa(kEfficiencySa, commands.par(kEfficiencySa)); - funct::Parameter yieldBkgZMuTk(kYieldBkgZMuTk, commands.par(kYieldBkgZMuTk)); - funct::Parameter yieldBkgZMuSa(kYieldBkgZMuSa, commands.par(kYieldBkgZMuSa)); - funct::Parameter meanZMuMu(kMeanZMuMu, commands.par(kMeanZMuMu)); - funct::Parameter sigmaZMuMu(kSigmaZMuMu, commands.par(kSigmaZMuMu)); - funct::Parameter sigmaZMuSa(kSigmaZMuSa, commands.par(kSigmaZMuSa)); - funct::Parameter lambda(kLambda, commands.par(kLambda)); - funct::Parameter a0(kA0, commands.par(kA0)); - funct::Parameter a1(kA1, commands.par(kA1)); - funct::Parameter a2(kA2, commands.par(kA2)); - - ZPeak zPeak = funct::Exponential(lambdaZMuMu) * - funct::conv(funct::ZLineShape(mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu), - funct::Gaussian(meanZMuMu, sigmaZMuMu), - -3*sigmaZMuMu.value(), 3*sigmaZMuMu.value(), integratorConv); - ZMuMuSig zMuMuSig = yieldZMuMu * zPeak; - ZMuMuEfficiency zMuMuEfficiency = (efficiencyTk ^ funct::Numerical<2>(2)) * - (efficiencySa ^ funct::Numerical<2>(2)); - ZMuMu zMuMu = zMuMuEfficiency * zMuMuSig; - ZMuTkBkg zMuTkBkg = - yieldBkgZMuTk * (funct::Exponential(lambda) * funct::Polynomial<2>(a0, a1, a2)); - ZMuTkEfficiency zMuTkEfficiency = funct::Numerical<2>(2) * - ((efficiencyTk ^ funct::Numerical<2>(2)) * (efficiencySa * (funct::Numerical<1>(1) - efficiencySa))); - ZMuTk zMuTk = zMuTkEfficiency * zMuMuSig + zMuTkBkg; - ZMuSaEfficiency zMuSaEfficiency = funct::Numerical<2>(2) * - ((efficiencySa ^ funct::Numerical<2>(2)) * (efficiencyTk * (funct::Numerical<1>(1) - efficiencyTk))); - ZMuSa zMuSa = zMuSaEfficiency * (yieldZMuMu * funct::Gaussian(mass, sigmaZMuSa)) + yieldBkgZMuSa; - - ChiSquared chi2(zMuMu, histoZMuMu, - zMuTk, histoZMuTk, - zMuSa, histoZMuSa, - fMin, fMax); - cout << "N. deg. of freedom: " << chi2.numberOfBins() << endl; - fit::RootMinuit minuit(chi2, true); - commands.add(minuit, yieldZMuMu); - commands.add(minuit, efficiencyTk); - commands.add(minuit, efficiencySa); - commands.add(minuit, yieldBkgZMuTk); - commands.add(minuit, yieldBkgZMuSa); - commands.add(minuit, lambdaZMuMu); - commands.add(minuit, mass); - commands.add(minuit, gamma); - commands.add(minuit, photonFactorZMuMu); - commands.add(minuit, interferenceFactorZMuMu); - //commands.add(minuit, photonFactorZMuTk); - //commands.add(minuit, interferenceFactorZMuTk); - commands.add(minuit, meanZMuMu); - commands.add(minuit, sigmaZMuMu); - commands.add(minuit, lambda); - commands.add(minuit, a0); - commands.add(minuit, a1); - commands.add(minuit, a2); - commands.add(minuit, sigmaZMuSa); - commands.run(minuit); - const unsigned int nPar = 17; - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - std::cout << "error matrix:" << std::endl; - for(unsigned int i = 0; i < nPar; ++i) { - for(unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - string ZMuMuPlot = "ZMuMuFit" + plot_string; - root::plot(ZMuMuPlot.c_str(), *histoZMuMu, zMuMu, fMin, fMax, - efficiencyTk, efficiencySa, - yieldZMuMu, lambdaZMuMu, mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu, - meanZMuMu, sigmaZMuMu, - kRed, 2, kDashed, 10000, - "Z -> #mu #mu mass", "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - string ZMuTkPlot = "ZMuTkFit" + plot_string; - TF1 funZMuTk = root::tf1("ZMuTkFunction", zMuTk, fMin, fMax, - efficiencyTk, efficiencySa, - yieldZMuMu, lambdaZMuMu, mass, gamma, photonFactorZMuMu, interferenceFactorZMuMu, - meanZMuMu, sigmaZMuMu, - yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTk.SetLineColor(kRed); - funZMuTk.SetLineWidth(2); - funZMuTk.SetLineStyle(kDashed); - funZMuTk.SetNpx(10000); - TF1 funZMuTkBkg = root::tf1("ZMuTkBack", zMuTkBkg, fMin, fMax, - yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTkBkg.SetLineColor(kGreen); - funZMuTkBkg.SetLineWidth(2); - funZMuTkBkg.SetLineStyle(kDashed); - funZMuTkBkg.SetNpx(10000); - histoZMuTk->SetTitle("Z -> #mu + (unmatched) track mass"); - histoZMuTk->SetXTitle("#mu + (unmatched) track invariant mass (GeV/c^{2})"); - histoZMuTk->SetYTitle("Events"); - TCanvas *canvas = new TCanvas("canvas"); - histoZMuTk->Draw("e"); - funZMuTk.Draw("same"); - funZMuTkBkg.Draw("same"); - canvas->SaveAs(ZMuTkPlot.c_str()); - canvas->SetLogy(); - string logZMuTkPlot = "log_" + ZMuTkPlot; - canvas->SaveAs(logZMuTkPlot.c_str()); - string ZMuSaPlot = "ZMuSaFit" + plot_string; - root::plot(ZMuSaPlot.c_str(), *histoZMuSa, zMuSa, fMin, fMax, - efficiencySa, efficiencyTk, - yieldZMuMu, mass, sigmaZMuSa, yieldBkgZMuSa, - kRed, 2, kDashed, 10000, - "Z -> #mu + (unmatched) standalone mass", - "#mu + (unmatched) standalone invariant mass (GeV/c^{2})", - "Events"); - } - } - - } - catch(std::exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } - catch(...) { - cerr << "Exception of unknown type!\n"; - } - return 0; -} - diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zMuMuRooFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zMuMuRooFit.cpp deleted file mode 100644 index 0a454044a0692..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zMuMuRooFit.cpp +++ /dev/null @@ -1,565 +0,0 @@ -#include "RooRealVar.h" -#include "RooRealConstant.h" -#include "RooGaussian.h" -#include "RooExponential.h" -#include "RooAddPdf.h" -#include "RooAddition.h" -#include "RooDataSet.h" -#include "RooDataHist.h" -#include "RooHistPdf.h" -#include "RooChebychev.h" -#include "RooExponential.h" -#include "RooProdPdf.h" -#include "RooChi2Var.h" -#include "RooGlobalFunc.h" -#include "RooPlot.h" -#include "RooMinuit.h" -#include "RooFitResult.h" -#include "RooFormulaVar.h" -#include "RooGenericPdf.h" -#include "RooExtendPdf.h" -#include "TCanvas.h" -#include "TROOT.h" -#include "TFile.h" -#include "TH1.h" -#include "RooNLLVar.h" -#include "RooRandom.h" -#include "TRandom3.h" -#include -#include -#include -using namespace boost; -namespace po = boost::program_options; -#include - -using namespace std; -using namespace RooFit; - -// A function that get histogram, restricting it on fit range and sets contents to 0.0 if entries are too small - -TH1F *getHisto(TFile *file, const char *name, double fMin, double fMax, unsigned int rebin) { - TObject *h = file->Get(name); - if (h == nullptr) - cout << "Can't find object " << name << "\n"; - TH1F *histo = dynamic_cast(h); - if (histo == nullptr) - cout << "Object " << name << " is of type " << h->ClassName() << ", not TH1\n"; - TH1F *new_histo = new TH1F(name, name, (int)(fMax - fMin), fMin, fMax); - int bin_num = 0; - for (int i = (int)fMin; i <= (int)fMax; ++i) { - bin_num = (i - (int)fMin + 1); - new_histo->SetBinContent(bin_num, histo->GetBinContent(i)); - } - delete histo; - new_histo->Sumw2(); - new_histo->Rebin(rebin); - for (int i = 1; i <= new_histo->GetNbinsX(); ++i) { - if (new_histo->GetBinContent(i) == 0.00) { - cout << " WARNING: histo " << name << " has 0 enter in bin number " << i << endl; - } - if (new_histo->GetBinContent(i) < 0.1) { - new_histo->SetBinContent(i, 0.0); - new_histo->SetBinError(i, 0.0); - cout << " WARNING: setting value 0.0 to histo " << name << " for bin number " << i << endl; - } - } - - return new_histo; -} - -// a function that create fromm a model pdf a toy RooDataHist - -RooDataHist *genHistFromModelPdf( - const char *name, RooAbsPdf *model, RooRealVar *var, double ScaleLumi, int range, int rebin, int seed) { - double genEvents = model->expectedEvents(*var); - TRandom3 *rndm = new TRandom3(); - rndm->SetSeed(seed); - double nEvt = rndm->PoissonD(genEvents); - int intEvt = ((nEvt - (int)nEvt) >= 0.5) ? (int)nEvt + 1 : int(nEvt); - RooDataSet *data = model->generate(*var, intEvt); - cout << " expected events for " << name << " = " << genEvents << endl; - cout << " data->numEntries() for name " << name << " == " << data->numEntries() << endl; - // cout<< " nEvt from PoissonD for" << name << " == " << nEvt<< endl; - //cout<< " cast of nEvt for" << name << " == " << intEvt<< endl; - RooAbsData *binned_data = data->binnedClone(); - TH1 *toy_hist = binned_data->createHistogram(name, *var, Binning(range / rebin)); - for (int i = 1; i <= toy_hist->GetNbinsX(); ++i) { - toy_hist->SetBinError(i, sqrt(toy_hist->GetBinContent(i))); - if (toy_hist->GetBinContent(i) == 0.00) { - cout << " WARNING: histo " << name << " has 0 enter in bin number " << i << endl; - } - if (toy_hist->GetBinContent(i) < 0.1) { - toy_hist->SetBinContent(i, 0.0); - toy_hist->SetBinError(i, 0.0); - cout << " WARNING: setting value 0.0 to histo " << name << " for bin number " << i << endl; - } - } - RooDataHist *toy_rooHist = new RooDataHist(name, name, RooArgList(*var), toy_hist); - return toy_rooHist; -} - -// a function to create the pdf used for the fit, need the histo model, should be zmm except for zmusta case..... - -RooHistPdf *createHistPdf(const char *name, TH1F *model, RooRealVar *var, int rebin) { - TH1F *model_clone = new TH1F(*model); - model_clone->Sumw2(); - model_clone->Rebin(rebin); - RooDataHist *model_dataHist = new RooDataHist(name, name, RooArgList(*var), model_clone); - RooHistPdf *HistPdf = new RooHistPdf(name, name, *var, *model_dataHist, 0); - delete model_clone; - return HistPdf; -} - -void fit(RooAbsReal &chi2, int numberOfBins, const char *outFileNameWithFitResult) { - TFile *out_root_file = new TFile(outFileNameWithFitResult, "recreate"); - RooMinuit m_tot(chi2); - m_tot.migrad(); - // m_tot.hesse(); - RooFitResult *r_chi2 = m_tot.save(); - cout << "==> Chi2 Fit results " << endl; - r_chi2->Print("v"); - // r_chi2->floatParsFinal().Print("v") ; - int NumberOfFreeParameters = r_chi2->floatParsFinal().getSize(); - for (int i = 0; i < NumberOfFreeParameters; ++i) { - r_chi2->floatParsFinal()[i].Print(); - } - cout << "chi2:" << chi2.getVal() << ", numberOfBins: " << numberOfBins - << ", NumberOfFreeParameters: " << NumberOfFreeParameters << endl; - cout << "Normalized Chi2 = " << chi2.getVal() / (numberOfBins - NumberOfFreeParameters) << endl; - r_chi2->Write(); - delete out_root_file; -} - -int main(int argc, char **argv) { - gROOT->SetStyle("Plain"); - double fMin, fMax, lumi, scaleLumi = 1; - int seed; - Bool_t toy = kFALSE; - Bool_t fitFromData = kFALSE; - string infile, outfile; - int rebinZMuMu = 1, rebinZMuSa = 1, rebinZMuTk = 1, rebinZMuMuNoIso = 1, rebinZMuMuHlt = 1; - po::options_description desc("Allowed options"); - desc.add_options()("help,h", "produce help message")("toy,t", "toy enabled")( - "seed,s", po::value(&seed)->default_value(34567), "seed value for toy")( - "luminosity,l", po::value(&lumi)->default_value(45.), "luminosity value for toy ")( - "fit,f", "fit from data enabled")( - "rebin,r", po::value >(), "rebin value: r_mutrk r mumuNotIso r_musa r _muhlt")( - "input-file,i", po::value(&infile), "input file")( - "output-file,o", po::value(&outfile), "output file with fit results")( - "min,m", po::value(&fMin)->default_value(60), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(120), "maximum value for fit range"); - po::positional_options_description p; - p.add("rebin", -1); - po::variables_map vm; - po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm); - po::notify(vm); - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - if (vm.count("toy")) { - cout << "toy enabled with seed " << seed << "\n"; - toy = kTRUE; - //RooRandom::randomGenerator()->SetSeed(seed) ; - // lumi should be intented as pb-1 and passed from outside - scaleLumi = lumi / 45.0; // 45 is the current lumi correspondent to the histogram..... - } - if (vm.count("fit")) { - cout << "fit from data enabled \n"; - fitFromData = kTRUE; - } - - if (!vm.count("toy") && !vm.count("fit")) { - cerr << "Choose one beetween fitting form data or with a toy MC \n"; - return 1; - } - - if (toy == fitFromData) { - cerr << "Choose if fit from data or with a toy MC \n"; - return 1; - } - - if (vm.count("rebin")) { - vector v_rebin = vm["rebin"].as >(); - if (v_rebin.size() != 4) { - cerr << " please provide 4 numbers in the given order:r_mutrk r mumuNotIso r_musa r _muhlt \n"; - return 1; - } - rebinZMuTk = v_rebin[0]; - rebinZMuMuNoIso = v_rebin[1]; - rebinZMuSa = v_rebin[2]; - rebinZMuMuHlt = v_rebin[3]; - } - - RooRealVar *mass = new RooRealVar("mass", "mass (GeV/c^{2})", fMin, fMax); - TFile *root_file = new TFile(infile.c_str(), "read"); - int range = (int)(fMax - fMin); - int numberOfBins = range / rebinZMuSa + range / rebinZMuTk + range / rebinZMuMuNoIso + 2 * range / rebinZMuMuHlt; - // zmm histograms used for pdf - TH1F *zmm = getHisto(root_file, "goodZToMuMuPlots/zMass", fMin, fMax, rebinZMuMu); - // zmsta used for pdf - TH1F *zmsta = getHisto(root_file, "zmumuSaMassHistogram/zMass", fMin, fMax, 1); // histogramms to fit..... - TH1F *zmmsta = getHisto(root_file, "goodZToMuMuOneStandAloneMuonPlots/zMass", fMin, fMax, rebinZMuSa / rebinZMuMu); - TH1F *zmt = getHisto(root_file, "goodZToMuMuOneTrackPlots/zMass", fMin, fMax, rebinZMuTk / rebinZMuMu); - TH1F *zmmNotIso = getHisto(root_file, "nonIsolatedZToMuMuPlots/zMass", fMin, fMax, rebinZMuMuNoIso / rebinZMuMu); - TH1F *zmm1hlt = getHisto(root_file, "goodZToMuMu1HLTPlots/zMass", fMin, fMax, rebinZMuMuHlt / rebinZMuMu); - TH1F *zmm2hlt = getHisto(root_file, "goodZToMuMu2HLTPlots/zMass", fMin, fMax, rebinZMuMuHlt / rebinZMuMu); - - // creating a pdf for Zmt - - RooHistPdf *ZmtPdf = createHistPdf("ZmtPdf", zmm, mass, rebinZMuTk / rebinZMuMu); - // creating a pdf for Zmm not iso - RooHistPdf *ZmmNoIsoPdf = createHistPdf("ZmmNoIsoPdf", zmm, mass, rebinZMuMuNoIso / rebinZMuMu); - // creating a pdf for Zms from zmsta!!! - RooHistPdf *ZmsPdf = createHistPdf("ZmsPdf", zmsta, mass, rebinZMuSa / rebinZMuMu); - // creating a pdf for Zmmhlt - RooHistPdf *ZmmHltPdf = createHistPdf("ZmmHltPdf", zmm, mass, rebinZMuMuHlt / rebinZMuMu); - - // creating the variable with random init values - - RooRealVar Yield("Yield", "Yield", 15000., 345., 3567890.); - RooRealVar nbkg_mutrk("nbkg_mutrk", "background _mutrk fraction", 500, 0., 100000.); - RooRealVar nbkg_mumuNotIso("nbkg_mumuNotIso", "background fraction", 500, 0., 100000.); - RooRealVar nbkg_musa("nbkg_musa", "background fraction", 50, 0., 100000.); - RooRealVar eff_tk("eff_tk", "signal _mutrk fraction", .99, 0.8, 1.0); - RooRealVar eff_sa("eff_sa", "eff musta", 0.99, 0.8, 1.0); - RooRealVar eff_iso("eff_iso", "eff mumuNotIso", .99, 0.8, 1.0); - RooRealVar eff_hlt("eff_hlt", "eff 1hlt", 0.99, 0.8, 1.0); - RooRealVar alpha("alpha", "coefficient alpha", -0.01, -1000, 1000.); - RooRealVar a0("a0", "coefficient 0", 1, -1000., 1000.); - RooRealVar a1("a1", "coefficient 1", -0.001, -1000, 1000.); - RooRealVar a2("a2", "coefficient 2", 0.0, -1000., 1000.); - RooRealVar beta("beta", "coefficient beta", -0.01, -1000, 1000.); - RooRealVar b0("b0", "coefficient 0", 1, -1000., 1000.); - RooRealVar b1("b1", "coefficient 1", -0.001, -1000, 1000.); - RooRealVar b2("b2", "coefficient 2", 0.0, -1000., 1000.); - RooRealVar gamma("gamma", "coefficient gamma", -0.01, -1000, 1000.); - RooRealVar c0("c0", "coefficient 0", 1, -1000., 1000.); - RooRealVar c1("c1", "coefficient 1", -0.001, -1000, 1000.); - // fit parameters setted from datacard - filebuf fb; - fb.open("zMuMuRooFit.txt", ios::in); - istream is(&fb); - char line[1000]; - - Yield.readFromStream(is.getline(line, 1000), kFALSE); - nbkg_mutrk.readFromStream(is.getline(line, 1000), kFALSE); - nbkg_mumuNotIso.readFromStream(is.getline(line, 1000), kFALSE); - nbkg_musa.readFromStream(is.getline(line, 1000), kFALSE); - eff_tk.readFromStream(is.getline(line, 1000), kFALSE); - eff_sa.readFromStream(is.getline(line, 1000), kFALSE); - eff_iso.readFromStream(is.getline(line, 1000), kFALSE); - eff_hlt.readFromStream(is.getline(line, 1000), kFALSE); - alpha.readFromStream(is.getline(line, 1000), kFALSE); - a0.readFromStream(is.getline(line, 1000), kFALSE); - a1.readFromStream(is.getline(line, 1000), kFALSE); - a2.readFromStream(is.getline(line, 1000), kFALSE); - beta.readFromStream(is.getline(line, 1000), kFALSE); - b0.readFromStream(is.getline(line, 1000), kFALSE); - b1.readFromStream(is.getline(line, 1000), kFALSE); - b2.readFromStream(is.getline(line, 1000), kFALSE); - gamma.readFromStream(is.getline(line, 1000), kFALSE); - c0.readFromStream(is.getline(line, 1000), kFALSE); - c1.readFromStream(is.getline(line, 1000), kFALSE); - fb.close(); - - // scaling to lumi if toy is enabled... - if (vm.count("toy")) { - Yield.setVal(scaleLumi * (Yield.getVal())); - nbkg_mutrk.setVal(scaleLumi * (nbkg_mutrk.getVal())); - nbkg_mumuNotIso.setVal(scaleLumi * (nbkg_mumuNotIso.getVal())); - } - - //efficiency term - - //zMuMuEff1HLTTerm = _2 * (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * effHLT * (_1 - effHLT); - RooFormulaVar zMuMu1HLTEffTerm( - "zMuMu1HLTEffTerm", - "Yield * (2.* (eff_tk)^2 * (eff_sa)^2 * (eff_iso)^2 * eff_hlt *(1.- eff_hlt))", - RooArgList(eff_tk, - eff_sa, - eff_iso, - eff_hlt, - Yield)); //zMuMuEff2HLTTerm = (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * (effHLT ^ _2) ; - RooFormulaVar zMuMu2HLTEffTerm("zMuMu2HLTEffTerm", - "Yield * ((eff_tk)^2 * (eff_sa)^2 * (eff_iso)^2 * (eff_hlt)^2)", - RooArgList(eff_tk, eff_sa, eff_iso, eff_hlt, Yield)); - //zMuMuNoIsoEffTerm = (effTk ^ _2) * (effSa ^ _2) * (_1 - (effIso ^ _2)) * (_1 - ((_1 - effHLT)^_2)); - RooFormulaVar zMuMuNoIsoEffTerm("zMuMuNoIsoEffTerm", - "Yield * ((eff_tk)^2 * (eff_sa)^2 * (1.- (eff_iso)^2) * (1.- ((1.-eff_hlt)^2)))", - RooArgList(eff_tk, eff_sa, eff_iso, eff_hlt, Yield)); - //zMuTkEffTerm = _2 * (effTk ^ _2) * effSa * (_1 - effSa) * (effIso ^ _2) * effHLT; - RooFormulaVar zMuTkEffTerm("zMuTkEffTerm", - "Yield * (2. *(eff_tk)^2 * eff_sa * (1.-eff_sa)* (eff_iso)^2 * eff_hlt)", - RooArgList(eff_tk, eff_sa, eff_iso, eff_hlt, Yield)); - //zMuSaEffTerm = _2 * (effSa ^ _2) * effTk * (_1 - effTk) * (effIso ^ _2) * effHLT; - RooFormulaVar zMuSaEffTerm("zMuSaEffTerm", - "Yield * (2. *(eff_sa)^2 * eff_tk * (1.-eff_tk)* (eff_iso)^2 * eff_hlt)", - RooArgList(eff_tk, eff_sa, eff_iso, eff_hlt, Yield)); - - // creating model for the fit - // z mu track - - RooGenericPdf *bkg_mutrk = new RooGenericPdf("bkg_mutrk", - "zmt bkg_model", - "exp(alpha*mass) * ( a0 + a1 * mass + a2 * mass^2 )", - RooArgSet(*mass, alpha, a0, a1, a2)); - // RooFormulaVar fracSigMutrk("fracSigMutrk", "@0 / (@0 + @1)", RooArgList(zMuTkEffTerm, nbkg_mutrk )); - RooAddPdf *model_mutrk = new RooAddPdf( - "model_mutrk", "model_mutrk", RooArgList(*ZmtPdf, *bkg_mutrk), RooArgList(zMuTkEffTerm, nbkg_mutrk)); - // z mu mu not Iso - - // creating background pdf for zmu mu not Iso - RooGenericPdf *bkg_mumuNotIso = new RooGenericPdf("bkg_mumuNotIso", - "zmumuNotIso bkg_model", - "exp(beta * mass) * (b0 + b1 * mass + b2 * mass^2)", - RooArgSet(*mass, beta, b0, b1, b2)); - // RooFormulaVar fracSigMuMuNoIso("fracSigMuMuNoIso", "@0 / (@0 + @1)", RooArgList(zMuMuNoIsoEffTerm, nbkg_mumuNotIso )); - RooAddPdf *model_mumuNotIso = new RooAddPdf("model_mumuNotIso", - "model_mumuNotIso", - RooArgList(*ZmmNoIsoPdf, *bkg_mumuNotIso), - RooArgList(zMuMuNoIsoEffTerm, nbkg_mumuNotIso)); - // z mu sta - - // RooGenericPdf model_musta("model_musta", " ZmsPdf * zMuSaEffTerm ", RooArgSet( *ZmsPdf, zMuSaEffTerm)) ; - RooGenericPdf *bkg_musa = new RooGenericPdf( - "bkg_musa", "zmusa bkg_model", "exp(gamma * mass) * (c0 + c1 * mass )", RooArgSet(*mass, gamma, c0, c1)); - // RooAddPdf * eZmsSig= new RooAddPdf("eZmsSig","eZmsSig",RooArgList(*,*bkg_mumuNotIso), RooArgList(zMuMuNoIsoEffTerm, nbkg_mumuNotIso)); - RooAddPdf *eZmsSig = - new RooAddPdf("eZmsSig", "eZmsSig", RooArgList(*ZmsPdf, *bkg_musa), RooArgList(zMuSaEffTerm, nbkg_musa)); - - //RooExtendPdf * eZmsSig= new RooExtendPdf("eZmsSig","extended signal p.d.f for zms ",*ZmsPdf, zMuSaEffTerm ) ; - - // z mu mu HLT - - // count ZMuMu Yield - double nZMuMu = 0.; - double nZMuMu1HLT = 0.; - double nZMuMu2HLT = 0.; - unsigned int nBins = zmm->GetNbinsX(); - double xMin = zmm->GetXaxis()->GetXmin(); - double xMax = zmm->GetXaxis()->GetXmax(); - double deltaX = (xMax - xMin) / nBins; - for (unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i + .5) * deltaX; - if (x > fMin && x < fMax) { - nZMuMu += zmm->GetBinContent(i + 1); - nZMuMu1HLT += zmm1hlt->GetBinContent(i + 1); - nZMuMu2HLT += zmm2hlt->GetBinContent(i + 1); - } - } - - cout << ">>> count of ZMuMu yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu << endl; - cout << ">>> count of ZMuMu (1HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu1HLT << endl; - cout << ">>> count of ZMuMu (2HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu2HLT << endl; - // we set eff_hlt - //eff_hlt.setVal( 1. / (1. + (nZMuMu1HLT/ (2 * nZMuMu2HLT))) ) ; - // creating the pdf for z mu mu 1hlt - - RooExtendPdf *eZmm1hltSig = - new RooExtendPdf("eZmm1hltSig", "extended signal p.d.f for zmm 1hlt", *ZmmHltPdf, zMuMu1HLTEffTerm); - // creating the pdf for z mu mu 2hlt - RooExtendPdf *eZmm2hltSig = - new RooExtendPdf("eZmm2hltSig", "extended signal p.d.f for zmm 2hlt", *ZmmHltPdf, zMuMu2HLTEffTerm); - - // getting the data if fit otherwise constructed the data for model if toy.... - - RooDataHist *zmtMass, *zmmNotIsoMass, *zmsMass, *zmm1hltMass, *zmm2hltMass; - - if (toy) { - zmtMass = genHistFromModelPdf("zmtMass", model_mutrk, mass, scaleLumi, range, rebinZMuTk, seed); - zmmNotIsoMass = - genHistFromModelPdf("zmmNotIsoMass", model_mumuNotIso, mass, scaleLumi, range, rebinZMuMuNoIso, seed); - zmsMass = genHistFromModelPdf("zmsMass", eZmsSig, mass, scaleLumi, range, rebinZMuSa, seed); - zmm1hltMass = genHistFromModelPdf("zmm1hltMass", eZmm1hltSig, mass, scaleLumi, range, rebinZMuMuHlt, seed); - zmm2hltMass = genHistFromModelPdf("zmm2hltMass", eZmm2hltSig, mass, scaleLumi, range, rebinZMuMuHlt, seed); - } else { // if fit from data.... - zmtMass = new RooDataHist("zmtMass", "good z mu track", RooArgList(*mass), zmt); - zmmNotIsoMass = new RooDataHist("ZmmNotIso", "good z mu mu not isolated", RooArgList(*mass), zmmNotIso); - zmsMass = new RooDataHist("zmsMass", "good z mu sta mass", RooArgList(*mass), zmmsta); - zmm1hltMass = new RooDataHist("zmm1hltMass", "good Z mu mu 1hlt", RooArgList(*mass), zmm1hlt); - zmm2hltMass = new RooDataHist("zmm2hltMass", "good Z mu mu 2hlt", RooArgList(*mass), zmm2hlt); - } - - // creting the chi2s - RooChi2Var *chi2_mutrk = - new RooChi2Var("chi2_mutrk", "chi2_mutrk", *model_mutrk, *zmtMass, Extended(kTRUE), DataError(RooAbsData::SumW2)); - RooChi2Var *chi2_mumuNotIso = new RooChi2Var("chi2_mumuNotIso", - "chi2_mumuNotIso", - *model_mumuNotIso, - *zmmNotIsoMass, - Extended(kTRUE), - DataError(RooAbsData::SumW2)); - - RooChi2Var *chi2_musta = - new RooChi2Var("chi2_musta", "chi2_musta", *eZmsSig, *zmsMass, Extended(kTRUE), DataError(RooAbsData::SumW2)); - // uncomment this line if you want to use logLik for mu sta - // RooNLLVar *chi2_musta = new RooNLLVar("chi2_musta","chi2_musta",*eZmsSig, *zmsMass, Extended(kTRUE), DataError(RooAbsData::SumW2) ) ; - RooChi2Var *chi2_mu1hlt = new RooChi2Var( - "chi2_mu1hlt", "chi2_mu1hlt", *eZmm1hltSig, *zmm1hltMass, Extended(kTRUE), DataError(RooAbsData::SumW2)); - RooChi2Var *chi2_mu2hlt = new RooChi2Var( - "chi2_mu2hlt", "chi2_mu2hlt", *eZmm2hltSig, *zmm2hltMass, Extended(kTRUE), DataError(RooAbsData::SumW2)); - - // adding the chi2 - RooAddition totChi2("totChi2", - "chi2_mutrk + chi2_mumuNotIso + chi2_musta + chi2_mu1hlt + chi2_mu2hlt ", - RooArgSet(*chi2_mutrk, *chi2_mumuNotIso, *chi2_musta, *chi2_mu1hlt, *chi2_mu2hlt)); - - // printing out the model integral befor fitting - double N_zMuMu1hlt = eZmm1hltSig->expectedEvents(*mass); - double N_bkgTk = bkg_mutrk->expectedEvents(*mass); - double N_bkgIso = bkg_mumuNotIso->expectedEvents(*mass); - - double N_zMuTk = zMuTkEffTerm.getVal(); - - double e_hlt = eff_hlt.getVal(); - double e_tk = eff_tk.getVal(); - double e_sa = eff_sa.getVal(); - double e_iso = eff_iso.getVal(); - double Y_hlt = N_zMuMu1hlt / ((2. * (e_tk * e_tk) * (e_sa * e_sa) * (e_iso * e_iso) * e_hlt * (1. - e_hlt))); - double Y_mutk = N_zMuTk / ((2. * (e_tk * e_tk) * e_sa * (1. - e_sa) * (e_iso * e_iso) * e_hlt)); - - cout << "Yield prediction from mumu1hlt integral befor fitting: " << Y_hlt << endl; - cout << "Yield prediction from mutk integral befor fitting: " << Y_mutk << endl; - cout << "Bkg for mutk prediction from mutk integral after fitting: " << N_bkgTk << endl; - cout << "Bkg for mumuNotIso prediction from mumuNotIso integral after fitting: " << N_bkgIso << endl; - - fit(totChi2, numberOfBins, outfile.c_str()); - N_zMuMu1hlt = eZmm1hltSig->expectedEvents(*mass); - N_zMuTk = zMuTkEffTerm.getVal(); - double N_zMuMuNoIso = zMuMuNoIsoEffTerm.getVal(); - double N_Tk = model_mutrk->expectedEvents(*mass); - double N_Iso = model_mumuNotIso->expectedEvents(*mass); - e_hlt = eff_hlt.getVal(); - e_tk = eff_tk.getVal(); - e_sa = eff_sa.getVal(); - e_iso = eff_iso.getVal(); - Y_hlt = N_zMuMu1hlt / ((2. * (e_tk * e_tk) * (e_sa * e_sa) * (e_iso * e_iso) * e_hlt * (1. - e_hlt))); - Y_mutk = N_zMuTk / ((2. * (e_tk * e_tk) * e_sa * (1. - e_sa) * (e_iso * e_iso) * e_hlt)); - - cout << "Yield prediction from mumu1hlt integral after fitting: " << Y_hlt << endl; - //cout << "Yield prediction from mutk integral after fitting: " << Y_mutk << endl; - cout << "N + B prediction from mutk integral after fitting: " << N_Tk << endl; - cout << "zMuTkEffTerm " << N_zMuTk << endl; - cout << "N + B prediction from mumuNotIso integral after fitting: " << N_Iso << endl; - cout << "zMuMuNoIsoEffTerm " << N_zMuMuNoIso << endl; - - cout << "chi2_mutrk:" << chi2_mutrk->getVal() << endl; - cout << "chi2_mumuNotIso:" << chi2_mumuNotIso->getVal() << endl; - cout << "chi2_musta:" << chi2_musta->getVal() << endl; - cout << "chi2_mumu1hlt:" << chi2_mu1hlt->getVal() << endl; - cout << "chi2_mumu2hlt:" << chi2_mu2hlt->getVal() << endl; - - //plotting - RooPlot *massFrame_mutrk = mass->frame(); - RooPlot *massFrame_mumuNotIso = mass->frame(); - RooPlot *massFrame_musta = mass->frame(); - RooPlot *massFrame_mumu1hlt = mass->frame(); - RooPlot *massFrame_mumu2hlt = mass->frame(); - - TCanvas *canv1 = new TCanvas("canvas"); - TCanvas *canv2 = new TCanvas("new_canvas"); - canv1->Divide(2, 3); - canv1->cd(1); - canv1->SetLogy(kTRUE); - zmtMass->plotOn(massFrame_mutrk, LineColor(kBlue)); - model_mutrk->plotOn(massFrame_mutrk, LineColor(kRed)); - model_mutrk->plotOn(massFrame_mutrk, Components(*bkg_mutrk), LineColor(kGreen)); - massFrame_mutrk->SetTitle("Z -> #mu track"); - // massFrame_mutrk->GetYaxis()->SetLogScale(); - massFrame_mutrk->Draw(); - gPad->SetLogy(1); - - canv2->cd(); - canv2->SetLogy(kTRUE); - massFrame_mutrk->Draw(); - canv2->SaveAs("LogZMuTk.eps"); - canv2->SetLogy(kFALSE); - canv2->SaveAs("LinZMuTk.eps"); - - canv1->cd(2); - zmmNotIsoMass->plotOn(massFrame_mumuNotIso, LineColor(kBlue)); - model_mumuNotIso->plotOn(massFrame_mumuNotIso, LineColor(kRed)); - model_mumuNotIso->plotOn(massFrame_mumuNotIso, Components(*bkg_mumuNotIso), LineColor(kGreen)); - massFrame_mumuNotIso->SetTitle("Z -> #mu #mu not isolated"); - massFrame_mumuNotIso->Draw(); - gPad->SetLogy(1); - - canv2->cd(); - canv2->Clear(); - canv2->SetLogy(kTRUE); - massFrame_mumuNotIso->Draw(); - canv2->SaveAs("LogZMuMuNotIso.eps"); - canv2->SetLogy(kFALSE); - canv2->SaveAs("LinZMuMuNotIso.eps"); - - canv1->cd(3); - zmsMass->plotOn(massFrame_musta, LineColor(kBlue)); - eZmsSig->plotOn(massFrame_musta, Components(*bkg_musa), LineColor(kGreen)); - eZmsSig->plotOn(massFrame_musta, LineColor(kRed)); - massFrame_musta->SetTitle("Z -> #mu sta"); - massFrame_musta->Draw(); - - canv2->cd(); - canv2->Clear(); - canv2->SetLogy(kTRUE); - massFrame_musta->Draw(); - canv2->SaveAs("LogZMuSa.eps"); - canv2->SetLogy(kFALSE); - canv2->SaveAs("LinZMuSa.eps"); - - canv1->cd(4); - zmm1hltMass->plotOn(massFrame_mumu1hlt, LineColor(kBlue)); - eZmm1hltSig->plotOn(massFrame_mumu1hlt, LineColor(kRed)); - massFrame_mumu1hlt->SetTitle("Z -> #mu #mu 1hlt"); - massFrame_mumu1hlt->Draw(); - canv2->cd(); - canv2->Clear(); - canv2->SetLogy(kTRUE); - massFrame_mumu1hlt->Draw(); - canv2->SaveAs("LogZMuMu1Hlt.eps"); - canv2->SetLogy(kFALSE); - canv2->SaveAs("LinZMuMu1Hlt.eps"); - - canv1->cd(5); - zmm2hltMass->plotOn(massFrame_mumu2hlt, LineColor(kBlue)); - eZmm2hltSig->plotOn(massFrame_mumu2hlt, LineColor(kRed)); - massFrame_mumu2hlt->SetTitle("Z -> #mu #mu 2hlt"); - massFrame_mumu2hlt->Draw(); - - canv1->SaveAs("mass.eps"); - - canv2->cd(); - canv2->Clear(); - canv2->SetLogy(kTRUE); - massFrame_mumu2hlt->Draw(); - canv2->SaveAs("LogZMuMu2Hlt.eps"); - canv2->SetLogy(kFALSE); - canv2->SaveAs("LinZMuMu2Hlt.eps"); - - /* how to read the fit result in root - TH1D h_Yield("h_Yield", "h_Yield", 100, 10000, 30000) - for (int i =0: i < 100; i++){ - RooFitResult* r = gDirectory->Get(Form("toy_totChi2;%d)",i) - //r->floatParsFinal().Print("s"); - // without s return a list, can we get the number? - RooFitResult* r = gDirectory->Get("toy_totChi2;1") - // chi2 - r->minNll(); - //distamce form chi2..... - //r->edm(); - // yield - r->floatParsFinal()[0]->Print(); - //RooAbsReal * l = r->floatParsFinal()->first() - RooAbsReal * y = r->floatParsFinal()->find("Yield"); - h_Yield->Fill(y->getVal()); - } - - */ - - delete root_file; - //delete out_root_file; - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zMuMuRooFit.txt b/ElectroWeakAnalysis/ZMuMu/bin/zMuMuRooFit.txt deleted file mode 100644 index e140246ba0c0d..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zMuMuRooFit.txt +++ /dev/null @@ -1,22 +0,0 @@ -#"InitValue L (lo - hi) B(nBins)" for variable param. "Value C" for constant param. ORDER: Yield - nbkg_mutrk - nbkg_mumuNotIso - nbk_musa - eff_tk - eff_sa - eff_iso - eff_hlt - alpha - a0 - a1 - a2 - beta - b0 - b1 - b2 - gamma - c0 - c1## Default Yield value for signal and background at 45 pb-1, rescaled for tiy at the setted luminosity -4000 L (0 - 10000000) B(1000) -1000 L (0 - 10000) B (100) -1000 L (0 - 10000) B (100) -20 L (0 - 100) B (100) -0.999 L (0.001 - 1.0) B(100) -0.99 L (0.001 - 1.0) B(100) -0.99 L (0.001 - 1.0) B(100) -0.9 L (0.001 - 1.0) B(100) -0.0 L (-1. - 1.) B(200) -1 C -10 L (-100. - 100) B(200) -0 C -0.0 L (-1. - 1.) B(200) -1 C -10 L (-100. - 100) B(200) -0 C --0.01 L (-1. - 1.) B(200) -1 C -0 L (-100. - 100) B(200) -###### -PLEASE DO NOT ADD NEW LINES AND RESPECT THE ORDER diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zToMuMuMassMCFit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zToMuMuMassMCFit.cpp deleted file mode 100644 index 9fea7e2d1dd17..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zToMuMuMassMCFit.cpp +++ /dev/null @@ -1,438 +0,0 @@ -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/BreitWigner.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Identity.h" -#include "PhysicsTools/Utilities/interface/Product.h" -#include "PhysicsTools/Utilities/interface/Sum.h" -#include "PhysicsTools/Utilities/interface/Number.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/ZLineShape.h" -#include "PhysicsTools/Utilities/interface/HistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootFunctionAdapter.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "TFile.h" -#include "TH1.h" -#include "TF1.h" -#include "TMath.h" -#include "TCanvas.h" -#include "TROOT.h" - -#include -#include -#include -#include -#include -#include -using namespace boost; -namespace po = boost::program_options; -using namespace std; - -// A helper function to simplify the main part. -template -ostream &operator<<(ostream &os, const vector &v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -int main(int ac, char *av[]) { - try { - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options()("help", "produce help message")("include-path,I", po::value >(), "include path")( - "input-file", po::value >(), "input file")( - "min,m", po::value(&fMin)->default_value(80), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(120), "maximum value for fit range")( - "breitwigner", "fit to a breit-wigner")("gauss", "fit to a gaussian")( - "bwinter", "fit to a breit-wigner plus Z/photon interference term")( - "bwintgam", "fit to a breit-wigner plus Z/photon interference term and photon propagator")( - "expbwintgam", - "fit to the product of an exponential with a breit-wigner plus Z/photon interference term and photon " - "propagator")("weipolexpbwintgam", - "fit to the product of a weighted polynomial and an exponential with a breit-wigner plus " - "Z/photon interference term and photon propagator")( - "output-file,O", po::value(&ext)->default_value(".ps"), "output file format"); - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - if (vm.count("include-path")) { - cout << "Include paths are: " << vm["include-path"].as >() << "\n"; - } - - vector v_file; - vector v_ZMCMassHistos; - vector v_eps; - - if (vm.count("input-file")) { - cout << "Input files are: " << vm["input-file"].as >() << "\n"; - v_file = vm["input-file"].as >(); - for (vector::const_iterator it = v_file.begin(); it != v_file.end(); ++it) { - TFile *root_file = new TFile(it->c_str(), "read"); - TDirectory *Histos = (TDirectory *)root_file->GetDirectory("ZHisto"); - TDirectory *MCHistos = (TDirectory *)Histos->GetDirectory("ZMCHisto"); - TH1D *zMass = (TH1D *)MCHistos->Get("MuMuMCMass"); //for Z status 3 use "ZMCMass" - zMass->Rebin(4); //remember... - zMass->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - v_ZMCMassHistos.push_back(zMass); - gROOT->SetStyle("Plain"); - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - string eps_string = f_string + ext; - v_eps.push_back(eps_string); - cout << ">>> histogram loaded\n"; - } - cout << v_file.size() << ", " << v_ZMCMassHistos.size() << ", " << v_eps.size() << endl; - cout << ">>> Input files loaded\n"; - } - //Values for Z mass and width - funct::Parameter mass("Mass", 91.092); //91.1876 - funct::Parameter gamma("Gamma", 2.980); //2.4952 - //funct::Parameters for Z Line Shape - funct::Parameter f_gamma("Photon factor", 0.85); //0 - funct::Parameter f_int("Interference factor", -0.00142); //0.001 - funct::Parameter yield("Yield", 482000); //1000 - //funct::Parameters for fits with one gaussian - funct::Parameter mean("Mean", 91.1876); - funct::Parameter sigma("Sigma", 10.); - //funct::Parameters for fit with an exponential - funct::Parameter lambda("Lambda", -0.0054); //-0.001 - //funct::Parameters for fit with a weighted polynomial - funct::Parameter alpha("Alpha", 0.1); - - if (vm.count("breitwigner")) { - cout << "Fitting histograms in input file to a Breit-Wigner\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - cout << ">>> load histogram\n"; - TH1D *zMass = v_ZMCMassHistos[i]; - cout << ">>> histogram loaded\n"; - funct::BreitWigner bw(mass, gamma); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * bw; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.minimize(); - minuit.printFitResults(); - root::plot("ZMuMuMassMCFitBW.eps", *zMass, f, fMin, fMax, yield, mass, gamma); - } - } - - if (vm.count("gauss")) { - cout << "Fitting histograms in input files to a Gaussian\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mean << endl; - cout << sigma << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - TH1D *zMass = v_ZMCMassHistos[i]; - funct::Gaussian gaus(mean, sigma); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * gaus; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mean, 0.001, 80, 100); - minuit.addParameter(sigma, 0.1, -5., 5.); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, yield, mean, sigma); - fun.SetParNames(yield.name().c_str(), mean.name().c_str(), sigma.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMuMuMassMCFitG_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMuMuMassMCFitG_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("bwinter")) { - cout << "Fitting histograms in input files to the Breit-Wigner plus Z/photon interference term\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - TH1D *zMass = v_ZMCMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * zls; - cout << "set functions" << endl; - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 100000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.fixParameter(f_gamma.name()); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMuMuMassMCFitBwIn_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMuMuMassMCFitBwIn_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("bwintgam")) { - cout << "Fitting histograms in input files to the Breit-Wigner plus Z/photon interference term and photon " - "propagator\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - TH1D *zMass = v_ZMCMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Constant c(yield); - typedef funct::Product::type FitFunction; - FitFunction f = c * zls; - cout << "set functions" << endl; - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 1000000); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetParNames(yield.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMuMuMassMCFitBwInGa_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMuMuMassMCFitBwInGa_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("expbwintgam")) { - cout << "Fitting histograms in input files to the product of an exponential with the Breit-Wigner plus Z/photon " - "interference term and photon propagator\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << lambda << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - TH1D *zMass = v_ZMCMassHistos[i]; - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Exponential expo(lambda); - funct::Constant c(yield); - typedef funct::Product::type ExpZLS; - ExpZLS expz = expo * zls; - typedef funct::Product::type FitFunction; - FitFunction f = c * expz; - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(lambda, 0.1, -1., 0); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(lambda.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetNpx(100000); - fun.SetParNames(yield.name().c_str(), - lambda.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMuMuMassMCFitExpBwInGa_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMuMuMassMCFitExpBwInGa_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - if (vm.count("weipolexpbwintgam")) { - cout << "Fitting histograms in input files to the product of a weighted polynomial and an exponential with the " - "Breit-Wigner plus Z/photon interference term and photon propagator\n"; - cout << ">>> set pars: " << endl; - cout << yield << endl; - cout << lambda << endl; - cout << mass << endl; - cout << gamma << endl; - cout << f_gamma << endl; - cout << f_int << endl; - cout << mean << endl; - cout << sigma << endl; - cout << alpha << endl; - for (unsigned int i = 0; i < v_ZMCMassHistos.size(); ++i) { - TH1D *zMass = v_ZMCMassHistos[i]; - funct::Constant a(alpha); - funct::Identity id; - funct::Gaussian gaus(mean, sigma); - funct::Number _1(1.); - funct::ZLineShape zls(mass, gamma, f_gamma, f_int); - funct::Exponential expo(lambda); - funct::Constant c(yield); - typedef funct::Product::type Pol1; - Pol1 pol = a * id; - typedef funct::Product::type PolGau; - PolGau poga = pol * gaus; - typedef funct::Sum::type SumPG; - SumPG spg = _1 + poga; - typedef funct::Product::type ExpZLS; - ExpZLS expz = expo * zls; - typedef funct::Product::type SumPGExpZ; - SumPGExpZ spgexpz = spg * expz; - typedef funct::Product::type FitFunction; - FitFunction f = c * spgexpz; - cout << "set functions" << endl; - typedef fit::HistoChiSquare ChiSquared; - ChiSquared chi2(f, zMass, fMin, fMax); - int fullBins = chi2.numberOfBins(); - cout << "N. deg. of freedom: " << fullBins << endl; - fit::RootMinuit minuit(chi2, true); - minuit.addParameter(yield, 10, 100, 10000000); - minuit.addParameter(alpha, 0.1, -100, 100); - minuit.addParameter(mean, 10, 70, 110); - minuit.fixParameter(mean.name()); - minuit.addParameter(sigma, 0.1, -100, 100); - minuit.addParameter(lambda, 0.1, -100, 100); - minuit.addParameter(mass, .1, 70., 110); - minuit.addParameter(gamma, 1, 1, 10); - minuit.addParameter(f_gamma, 0.1, -100, 1000); - minuit.addParameter(f_int, .0001, -1000000, 1000000); - minuit.minimize(); - minuit.printFitResults(); - vector > pars; - pars.push_back(yield.ptr()); - pars.push_back(alpha.ptr()); - pars.push_back(mean.ptr()); - pars.push_back(sigma.ptr()); - pars.push_back(lambda.ptr()); - pars.push_back(mass.ptr()); - pars.push_back(gamma.ptr()); - pars.push_back(f_gamma.ptr()); - pars.push_back(f_int.ptr()); - TF1 fun = root::tf1("fun", f, fMin, fMax, pars); - fun.SetNpx(100000); - fun.SetParNames(yield.name().c_str(), - alpha.name().c_str(), - mean.name().c_str(), - sigma.name().c_str(), - lambda.name().c_str(), - mass.name().c_str(), - gamma.name().c_str(), - f_gamma.name().c_str(), - f_int.name().c_str()); - fun.SetLineColor(kRed); - fun.SetLineWidth(1); - fun.SetLineStyle(kDashed); - TCanvas *canvas = new TCanvas("canvas"); - zMass->Draw("e"); - fun.Draw("same"); - string epsFilename = "ZMuMuMassMCFitWeiPolExpBwInGa_" + v_eps[i]; - canvas->SaveAs(epsFilename.c_str()); - canvas->SetLogy(); - string epsLogFilename = "ZMuMuMassMCFitWeiPolExpBwInGa_Log_" + v_eps[i]; - canvas->SaveAs(epsLogFilename.c_str()); - } - } - - cout << "It works!\n"; - } catch (std::exception &e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } catch (...) { - cerr << "Exception of unknown type!\n"; - } - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/bin/zUMLChi2Fit.cpp b/ElectroWeakAnalysis/ZMuMu/bin/zUMLChi2Fit.cpp deleted file mode 100644 index 781d062b551d5..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/bin/zUMLChi2Fit.cpp +++ /dev/null @@ -1,464 +0,0 @@ -#include "FWCore/Utilities/interface/EDMException.h" -#include "PhysicsTools/Utilities/interface/Parameter.h" -#include "PhysicsTools/Utilities/interface/Gaussian.h" -#include "PhysicsTools/Utilities/interface/Numerical.h" -#include "PhysicsTools/Utilities/interface/Exponential.h" -#include "PhysicsTools/Utilities/interface/Polynomial.h" -#include "PhysicsTools/Utilities/interface/Constant.h" -#include "PhysicsTools/Utilities/interface/Operations.h" -#include "PhysicsTools/Utilities/interface/MultiHistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/HistoChiSquare.h" -#include "PhysicsTools/Utilities/interface/RootMinuit.h" -#include "PhysicsTools/Utilities/interface/RootMinuitCommands.h" -#include "PhysicsTools/Utilities/interface/FunctClone.h" -#include "PhysicsTools/Utilities/interface/rootPlot.h" -#include "PhysicsTools/Utilities/interface/Expression.h" -#include "PhysicsTools/Utilities/interface/HistoPdf.h" -#include "FWCore/FWLite/interface/FWLiteEnabler.h" -#include "DataFormats/FWLite/interface/Event.h" -#include "DataFormats/FWLite/interface/Handle.h" -#include "PhysicsTools/Utilities/interface/Likelihood.h" -#include "PhysicsTools/Utilities/interface/CombinedChiSquaredLikelihood.h" -#include "TROOT.h" -#include "TSystem.h" -#include "TH1.h" -#include "TFile.h" -#include -using namespace boost; -namespace po = boost::program_options; - -#include -#include -#include -#include -#include -#include -using namespace std; - -// A helper function to simplify the main part. -template -ostream& operator<<(ostream& os, const vector& v) { - copy(v.begin(), v.end(), ostream_iterator(cout, " ")); - return os; -} - -// A function that get histogram and sets contents to 0 -// if entries are too small -TH1* getHisto(TFile* file, const char* name, unsigned int rebin) { - TObject* h = file->Get(name); - if (h == nullptr) - throw edm::Exception(edm::errors::Configuration) << "Can't find object " << name << "\n"; - TH1* histo = dynamic_cast(h); - if (histo == nullptr) - throw edm::Exception(edm::errors::Configuration) - << "Object " << name << " is of type " << h->ClassName() << ", not TH1\n"; - histo->Rebin(rebin); - for (int i = 1; i <= histo->GetNbinsX(); ++i) { - if (histo->GetBinContent(i) < 0.1) { - histo->SetBinContent(i, 0.0); - histo->SetBinError(i, 0.0); - } - } - return histo; -} - -struct sig_tag; -struct bkg_tag; - -int main(int ac, char* av[]) { - typedef std::vector Sample; - - gROOT->SetStyle("Plain"); - - try { - typedef funct::FunctExpression Expr; - typedef fit::HistoChiSquare ExprChi2; - typedef fit::MultiHistoChiSquare ChiSquared; - typedef fit::Likelihood Likelihood; - double fMin, fMax; - string ext; - po::options_description desc("Allowed options"); - desc.add_options()("help,h", "produce help message")("input-file,i", po::value >(), "input file")( - "min,m", po::value(&fMin)->default_value(60), "minimum value for fit range")( - "max,M", po::value(&fMax)->default_value(120), "maximum value for fit range")( - "plot-format,p", po::value(&ext)->default_value("ps"), "output plot format"); - - po::positional_options_description p; - p.add("input-file", -1); - - po::variables_map vm; - po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm); - po::notify(vm); - - if (vm.count("help")) { - cout << "Usage: options_description [options]\n"; - cout << desc; - return 0; - } - - fit::RootMinuitCommands > commands("zUMLChi2Fit.txt"); - - const unsigned int rebinMuMuNoIso = 2, rebinMuMu = 1, rebinMuMu1HLT = 1, rebinMuMu2HLT = 1, rebinMuTk = 2, - rebinMuSa = 1; - // assume that the bin size is 1 GeV!!! - funct::Constant rebinMuMuNoIsoConst(rebinMuMuNoIso), rebinMuMuConst(rebinMuMu), rebinMuMu1HLTConst(rebinMuMu1HLT), - rebinMuMu2HLTConst(rebinMuMu2HLT), rebinMuTkConst(rebinMuTk), rebinMuSaConst(rebinMuSa); - - FWLiteEnabler::enable(); - TFile file("zMuSa-UML.root"); - fwlite::Event ev(&file); - - Sample masses; - for (ev.toBegin(); !ev.atEnd(); ++ev) { - fwlite::Handle > objs; - objs.getByLabel(ev, "goodZToMuMuOneStandAloneMuonNtuple", "mass"); - std::cout << " size " << objs->size() << std::endl; - for (unsigned int i = 0; i < objs->size(); ++i) { - double mass = (*objs)[i]; - std::cout << " mass = " << mass << std::endl; - if (fMin < mass && mass < fMax) - masses.push_back(mass); - } - } - - if (vm.count("input-file")) { - cout << "Input files are: " << vm["input-file"].as >() << "\n"; - vector v_file = vm["input-file"].as >(); - for (vector::const_iterator it = v_file.begin(); it != v_file.end(); ++it) { - TFile* root_file = new TFile(it->c_str(), "read"); - TH1* histoZMuMuNoIso = getHisto(root_file, "nonIsolatedZToMuMuPlots/zMass", rebinMuMuNoIso); - TH1* histoZMuMu = getHisto(root_file, "goodZToMuMuPlots/zMass", rebinMuMu); - TH1* histoZMuMu1HLT = getHisto(root_file, "goodZToMuMu1HLTPlots/zMass", rebinMuMu1HLT); - TH1* histoZMuMu2HLT = getHisto(root_file, "goodZToMuMu2HLTPlots/zMass", rebinMuMu2HLT); - TH1* histoZMuTk = getHisto(root_file, "goodZToMuMuOneTrackPlots/zMass", rebinMuTk); - TH1* histoZMuSa = getHisto(root_file, "goodZToMuMuOneStandAloneMuonPlots/zMass", rebinMuSa); - TH1* histoZMuSaFromMuMu = getHisto(root_file, "zmumuSaMassHistogram/zMass", rebinMuSa); - - cout << ">>> histogram loaded\n"; - string f_string = *it; - replace(f_string.begin(), f_string.end(), '.', '_'); - replace(f_string.begin(), f_string.end(), '/', '_'); - string plot_string = f_string + "." + ext; - cout << ">>> Input files loaded\n"; - - const char* kYieldZMuMu = "YieldZMuMu"; - const char* kEfficiencyTk = "EfficiencyTk"; - const char* kEfficiencySa = "EfficiencySa"; - const char* kEfficiencyIso = "EfficiencyIso"; - const char* kEfficiencyHLT = "EfficiencyHLT"; - const char* kYieldBkgZMuTk = "YieldBkgZMuTk"; - const char* kYieldBkgZMuSa = "YieldBkgZMuSa"; - const char* kYieldBkgZMuMuNotIso = "YieldBkgZMuMuNotIso"; - const char* kAlpha = "Alpha"; - // const char * kBeta = "Beta"; - const char* kLambda = "Lambda"; - const char* kA0 = "A0"; - const char* kA1 = "A1"; - const char* kA2 = "A2"; - const char* kB0 = "B0"; - const char* kB1 = "B1"; - const char* kB2 = "B2"; - - funct::Parameter yieldZMuMu(kYieldZMuMu, commands.par(kYieldZMuMu)); - funct::Parameter effTk(kEfficiencyTk, commands.par(kEfficiencyTk)); - funct::Parameter effSa(kEfficiencySa, commands.par(kEfficiencySa)); - funct::Parameter effIso(kEfficiencyIso, commands.par(kEfficiencyIso)); - funct::Parameter effHLT(kEfficiencyHLT, commands.par(kEfficiencyHLT)); - funct::Parameter yieldBkgZMuTk(kYieldBkgZMuTk, commands.par(kYieldBkgZMuTk)); - funct::Parameter yieldBkgZMuSa(kYieldBkgZMuSa, commands.par(kYieldBkgZMuSa)); - funct::Parameter yieldBkgZMuMuNotIso(kYieldBkgZMuMuNotIso, commands.par(kYieldBkgZMuMuNotIso)); - funct::Parameter alpha(kAlpha, commands.par(kAlpha)); - // funct::Parameter beta(kBeta, commands.par(kBeta)); - funct::Parameter lambda(kLambda, commands.par(kLambda)); - funct::Parameter a0(kA0, commands.par(kA0)); - funct::Parameter a1(kA1, commands.par(kA1)); - funct::Parameter a2(kA2, commands.par(kA2)); - funct::Parameter b0(kB0, commands.par(kB0)); - funct::Parameter b1(kB1, commands.par(kB1)); - funct::Parameter b2(kB2, commands.par(kB2)); - funct::Constant cFMin(fMin), cFMax(fMax); - - // count ZMuMu Yield - double nZMuMu = 0, nZMuMu1HLT = 0, nZMuMu2HLT = 0; - { - unsigned int nBins = histoZMuMu->GetNbinsX(); - double xMin = histoZMuMu->GetXaxis()->GetXmin(); - double xMax = histoZMuMu->GetXaxis()->GetXmax(); - double deltaX = (xMax - xMin) / nBins; - for (unsigned int i = 0; i < nBins; ++i) { - double x = xMin + (i + .5) * deltaX; - if (x > fMin && x < fMax) { - nZMuMu += histoZMuMu->GetBinContent(i + 1); - nZMuMu1HLT += histoZMuMu1HLT->GetBinContent(i + 1); - nZMuMu2HLT += histoZMuMu2HLT->GetBinContent(i + 1); - } - } - } - // aggiungi 1HLT 2HLT - cout << ">>> count of ZMuMu yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu << endl; - cout << ">>> count of ZMuMu (1HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu1HLT << endl; - cout << ">>> count of ZMuMu (2HLT) yield in the range [" << fMin << ", " << fMax << "]: " << nZMuMu2HLT << endl; - funct::RootHistoPdf zPdfMuMuNonIso(*histoZMuMu, fMin, fMax); //imposto le pdf a quella di ZMuMu - funct::RootHistoPdf zPdfMuTk = zPdfMuMuNonIso; - funct::RootHistoPdf zPdfMuMu1HLT = zPdfMuMuNonIso; - funct::RootHistoPdf zPdfMuMu2HLT = zPdfMuMuNonIso; - funct::RootHistoPdf zPdfMuSa(*histoZMuSaFromMuMu, fMin, fMax); - zPdfMuMuNonIso.rebin(rebinMuMuNoIso / rebinMuMu); - zPdfMuTk.rebin(rebinMuTk / rebinMuMu); - zPdfMuMu1HLT.rebin(rebinMuMu1HLT / rebinMuMu); - zPdfMuMu2HLT.rebin(rebinMuMu2HLT / rebinMuMu); - - funct::Numerical<2> _2; - funct::Numerical<1> _1; - - //Efficiency term - Expr zMuMuEff1HLTTerm = _2 * (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * effHLT * (_1 - effHLT); - Expr zMuMuEff2HLTTerm = (effTk ^ _2) * (effSa ^ _2) * (effIso ^ _2) * (effHLT ^ _2); - Expr zMuMuNoIsoEffTerm = (effTk ^ _2) * (effSa ^ _2) * (_1 - (effIso ^ _2)) * effHLT; - Expr zMuTkEffTerm = _2 * (effTk ^ _2) * effSa * (_1 - effSa) * (effIso ^ _2) * (_1 - ((_1 - effHLT) ^ _2)); - Expr zMuSaEffTerm = _2 * (effSa ^ _2) * effTk * (_1 - effTk) * (effIso ^ _2) * effHLT; - - Expr zMuMu1HLT = rebinMuMu1HLTConst * zMuMuEff1HLTTerm * yieldZMuMu; - Expr zMuMu2HLT = rebinMuMu2HLTConst * zMuMuEff2HLTTerm * yieldZMuMu; - - Expr zMuTkBkg = yieldBkgZMuTk * funct::Exponential(lambda) * funct::Polynomial<2>(a0, a1, a2); - Expr zMuTkBkgScaled = rebinMuTkConst * zMuTkBkg; - Expr zMuTk = rebinMuTkConst * (zMuTkEffTerm * yieldZMuMu * zPdfMuTk + zMuTkBkg); - - Expr zMuMuNoIsoBkg = yieldBkgZMuMuNotIso * funct::Exponential(alpha) * funct::Polynomial<2>(b0, b1, b2); - Expr zMuMuNoIsoBkgScaled = rebinMuMuNoIsoConst * zMuMuNoIsoBkg; - Expr zMuMuNoIso = rebinMuMuNoIsoConst * (zMuMuNoIsoEffTerm * yieldZMuMu * zPdfMuMuNonIso + zMuMuNoIsoBkg); - - // Expr zMuSa = rebinMuSaConst * (zMuSaEffTerm * yieldZMuMu * funct::Gaussian(meanZMuSa, sigmaZMuSa) - // + (yieldBkgZMuSa * funct::Exponential(beta))); - Expr zMuSa = - rebinMuSaConst * (zMuSaEffTerm * yieldZMuMu * zPdfMuSa + (yieldBkgZMuSa /** funct::Exponential(beta) */)); - - TH1D histoZCount1HLT("histoZCount1HLT", "", 1, fMin, fMax); - histoZCount1HLT.Fill(100, nZMuMu1HLT); - TH1D histoZCount2HLT("histoZCount2HLT", "", 1, fMin, fMax); - histoZCount2HLT.Fill(100, nZMuMu2HLT); - - Expr zPdfMuSaBkg = _1 / (cFMax - cFMin); - Expr f = yieldZMuMu * zMuSaEffTerm * zPdfMuSa + yieldBkgZMuSa * zPdfMuSaBkg; - funct::Expression zMuSaEffTermExp = _2 * (effSa ^ _2) * effTk * (_1 - effTk) * (effIso ^ _2) * effHLT; - - funct::Expression totYield = yieldZMuMu * zMuSaEffTermExp + yieldBkgZMuSa; - Likelihood like(masses, f, totYield); - ChiSquared chi2(zMuMu1HLT, - &histoZCount1HLT, - zMuMu2HLT, - &histoZCount2HLT, - zMuTk, - histoZMuTk, - // zMuSa, histoZMuSa, - zMuMuNoIso, - histoZMuMuNoIso, - fMin, - fMax); - cout << "N. bins: " << chi2.numberOfBins() << endl; - - fit::CombinedChiSquaredLikelihood combo(chi2, like); - - fit::RootMinuit > minuit(combo, true); - commands.add(minuit, yieldZMuMu); - commands.add(minuit, effTk); - commands.add(minuit, effSa); - commands.add(minuit, effIso); - commands.add(minuit, effHLT); - commands.add(minuit, yieldBkgZMuTk); - commands.add(minuit, yieldBkgZMuSa); - commands.add(minuit, yieldBkgZMuMuNotIso); - commands.add(minuit, lambda); - commands.add(minuit, alpha); - // commands.add(minuit, beta); - commands.add(minuit, a0); - commands.add(minuit, a1); - commands.add(minuit, a2); - commands.add(minuit, b0); - commands.add(minuit, b1); - commands.add(minuit, b2); - commands.run(minuit); - const unsigned int nPar = 16; //WARNIG: this must be updated manually for now - ROOT::Math::SMatrix > err; - minuit.getErrorMatrix(err); - std::cout << "error matrix:" << std::endl; - for (unsigned int i = 0; i < nPar; ++i) { - for (unsigned int j = 0; j < nPar; ++j) { - std::cout << err(i, j) << "\t"; - } - std::cout << std::endl; - } - minuit.printFitResults(); - //Plot - double s; - s = 0; - for (int i = 1; i <= histoZMuMuNoIso->GetNbinsX(); ++i) - s += histoZMuMuNoIso->GetBinContent(i); - histoZMuMuNoIso->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu->GetNbinsX(); ++i) - s += histoZMuMu->GetBinContent(i); - histoZMuMu->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu1HLT->GetNbinsX(); ++i) - s += histoZMuMu1HLT->GetBinContent(i); - histoZMuMu1HLT->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuMu2HLT->GetNbinsX(); ++i) - s += histoZMuMu2HLT->GetBinContent(i); - histoZMuMu2HLT->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuTk->GetNbinsX(); ++i) - s += histoZMuTk->GetBinContent(i); - histoZMuTk->SetEntries(s); - s = 0; - for (int i = 1; i <= histoZMuSa->GetNbinsX(); ++i) - s += histoZMuSa->GetBinContent(i); - histoZMuSa->SetEntries(s); - - string ZMuMu1HLTPlot = "ZMuMu1HLTFit_" + plot_string; - root::plot(ZMuMu1HLTPlot.c_str(), - *histoZMuMu1HLT, - zMuMu1HLT, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kRed, - 2, - kDashed, - 100, - "Z -> #mu #mu mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMu2HLTPlot = "ZMuMu2HLTFit_" + plot_string; - root::plot(ZMuMu2HLTPlot.c_str(), - *histoZMuMu2HLT, - zMuMu2HLT, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kRed, - 2, - kDashed, - 100, - "Z -> #mu #mu mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuMuNoIsoPlot = "ZMuMuNoIsoFit_" + plot_string; - root::plot(ZMuMuNoIsoPlot.c_str(), - *histoZMuMuNoIso, - zMuMuNoIso, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - kRed, - 2, - kDashed, - 100, - "Z -> #mu #mu Not Iso mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - - string ZMuTkPlot = "ZMuTkFit_X_" + plot_string; - root::plot(ZMuTkPlot.c_str(), - *histoZMuTk, - zMuTk, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - yieldBkgZMuTk, - lambda, - a0, - a1, - a2, - kRed, - 2, - kDashed, - 100, - "Z -> #mu + (unmatched) track mass", - "#mu #mu invariant mass (GeV/c^{2})", - "Events"); - ZMuTkPlot = "ZMuTkFit_" + plot_string; - TF1 funZMuTk = root::tf1_t("ZMuTkFunction", - zMuTk, - fMin, - fMax, - effTk, - effSa, - effIso, - effHLT, - yieldZMuMu, - yieldBkgZMuTk, - lambda, - a0, - a1, - a2); - funZMuTk.SetLineColor(kRed); - funZMuTk.SetLineWidth(2); - funZMuTk.SetLineStyle(kDashed); - funZMuTk.SetNpx(10000); - TF1 funZMuTkBkg = - root::tf1_t("ZMuTkBack", zMuTkBkgScaled, fMin, fMax, yieldBkgZMuTk, lambda, a0, a1, a2); - funZMuTkBkg.SetLineColor(kGreen); - funZMuTkBkg.SetLineWidth(2); - funZMuTkBkg.SetLineStyle(kDashed); - funZMuTkBkg.SetNpx(10000); - histoZMuTk->SetTitle("Z -> #mu + (unmatched) track mass"); - histoZMuTk->SetXTitle("#mu + (unmatched) track invariant mass (GeV/c^{2})"); - histoZMuTk->SetYTitle("Events"); - TCanvas* canvas = new TCanvas("canvas"); - histoZMuTk->Draw("e"); - funZMuTkBkg.Draw("same"); - funZMuTk.Draw("same"); - canvas->SaveAs(ZMuTkPlot.c_str()); - canvas->SetLogy(); - string logZMuTkPlot = "log_" + ZMuTkPlot; - canvas->SaveAs(logZMuTkPlot.c_str()); - string ZMuSaPlot = "ZMuSaFit_" + plot_string; - root::plot(ZMuSaPlot.c_str(), - *histoZMuSa, - zMuSa, - fMin, - fMax, - effSa, - effTk, - effIso, - yieldZMuMu, - yieldBkgZMuSa, - kRed, - 2, - kDashed, - 10000, - "Z -> #mu + (unmatched) standalone mass", - "#mu + (unmatched) standalone invariant mass (GeV/c^{2})", - "Events"); - } - } - } catch (std::exception& e) { - cerr << "error: " << e.what() << "\n"; - return 1; - } catch (...) { - cerr << "Exception of unknown type!\n"; - } - - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/BjetAnalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/BjetAnalyzer.cc deleted file mode 100644 index a72b7e4cc53bd..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/BjetAnalyzer.cc +++ /dev/null @@ -1,94 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/BTauReco/interface/JetTag.h" -#include -#include "TH1.h" - -class BjetAnalysis : public edm::EDAnalyzer { -public: - BjetAnalysis(const edm::ParameterSet& cfg); - void analyze(const edm::Event&, const edm::EventSetup&) override; - // virtual void endJob(); -private: - edm::EDGetTokenT bTagToken_; - edm::EDGetTokenT bTagToken2_; - edm::EDGetTokenT bTagToken3_; - std::vector matched_, unMatched_; - double ptMin_, massMin_, massMax_, etaMin_, etaMax_, trkIso_, chi2Cut_; - int nHitCut_; - TH1D *h_GlbMuNofHitsGlbMu_, *h_GlbMuChi2_, *h_TrkMuNofHitsGlbMu_, *h_GlbMuDxy_; -}; - -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -using namespace std; -using namespace reco; -using namespace edm; -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -BjetAnalysis::BjetAnalysis(const edm::ParameterSet& cfg) - : bTagToken_(consumes(edm::InputTag("trackCountingHighEffBJetTags"))), - bTagToken2_(consumes(edm::InputTag("jetProbabilityBJetTags"))), - bTagToken3_(consumes(edm::InputTag("jetBProbabilityBJetTags"))), - ptMin_(cfg.getUntrackedParameter("ptMin")), - massMin_(cfg.getUntrackedParameter("massMin")), - massMax_(cfg.getUntrackedParameter("massMax")), - etaMin_(cfg.getUntrackedParameter("etaMin")), - etaMax_(cfg.getUntrackedParameter("etaMax")), - trkIso_(cfg.getUntrackedParameter("trkIso")), - chi2Cut_(cfg.getUntrackedParameter("chi2Cut")), - nHitCut_(cfg.getUntrackedParameter("nHitCut")) { - Service fs; - TFileDirectory trackEffDir = fs->mkdir("QualityOfGlbMu"); - h_GlbMuNofHitsGlbMu_ = trackEffDir.make("# of Hits of GlobalMuon", "# of Hits of GlobalMuon", 100, 0, 100); - h_TrkMuNofHitsGlbMu_ = trackEffDir.make("# of Hits of TrackerMuon", "# of Hits of TrackerMuon", 100, 0, 100); - h_GlbMuChi2_ = trackEffDir.make("chi2 of GlobalMuon", "chi2 of GlobalMuon", 100, 0, 10); - h_GlbMuDxy_ = trackEffDir.make("Dxy of GlobalMuon", "Dxy of GlobalMuon", 1000, -5., 5.); -} - -void BjetAnalysis::analyze(const edm::Event& evt, const edm::EventSetup&) { - // Get b tag information - edm::Handle bTagHandle; - evt.getByToken(bTagToken_, bTagHandle); - const reco::JetTagCollection& bTags = *(bTagHandle.product()); - - // Loop over jets and study b tag info. - for (unsigned int i = 0; i != bTags.size(); ++i) { - cout << " Jet " << i << " has b tag discriminator (trackCountingHighEffBJetTags)= " << bTags[i].second - << " and jet Pt = " << bTags[i].first->pt() << endl; - } - - // Get b tag information - edm::Handle bTagHandle2; - evt.getByToken(bTagToken2_, bTagHandle2); - const reco::JetTagCollection& bTags2 = *(bTagHandle2.product()); - - // Loop over jets and study b tag info. - for (unsigned int i = 0; i != bTags2.size(); ++i) { - cout << " Jet " << i << " has b tag discriminator (jetProbabilityBJetTags) = " << bTags2[i].second - << " and jet Pt = " << bTags2[i].first->pt() << endl; - } - - // Get b tag information - edm::Handle bTagHandle3; - evt.getByToken(bTagToken3_, bTagHandle3); - const reco::JetTagCollection& bTags3 = *(bTagHandle3.product()); - - // Loop over jets and study b tag info. - for (unsigned int i = 0; i != bTags3.size(); ++i) { - cout << " Jet " << i << " has b tag discriminator (jetBProbabilityBJetTags) = " << bTags3[i].second - << " and jet Pt = " << bTags3[i].first->pt() << endl; - } -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(BjetAnalysis); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/BuildFile.xml b/ElectroWeakAnalysis/ZMuMu/plugins/BuildFile.xml deleted file mode 100644 index 25d4351f56147..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/BuildFile.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/DebugZMCTruth.cc b/ElectroWeakAnalysis/ZMuMu/plugins/DebugZMCTruth.cc deleted file mode 100644 index 46f16b78c8e4b..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/DebugZMCTruth.cc +++ /dev/null @@ -1,51 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include -using namespace edm; -using namespace std; -using namespace reco; - -class DebugZMCTruth : public edm::EDAnalyzer { -public: - DebugZMCTruth(const edm::ParameterSet& pset); - -private: - void analyze(const Event& event, const EventSetup& setup) override; - InputTag src_; - EDGetTokenT srcToken_; - EDGetTokenT genParticlesToken_; - EDGetTokenT matchToken_; -}; - -DebugZMCTruth::DebugZMCTruth(const ParameterSet& cfg) - : src_(cfg.getParameter("src")), - srcToken_(consumes(src_)), - genParticlesToken_(consumes(cfg.getParameter("genParticles"))), - matchToken_(consumes(cfg.getParameter("mcMatch"))) {} - -void DebugZMCTruth::analyze(const Event& event, const EventSetup& setup) { - Handle genParticles; - event.getByToken(genParticlesToken_, genParticles); - Handle src; - event.getByToken(srcToken_, src); - cout << ">>> event has " << src->size() << " reconstructed particles in {" << src_ << "}" << endl; - Handle match; - event.getByToken(matchToken_, match); - cout << ">>> Z matches: "; - for (unsigned int i = 0; i < src->size(); ++i) { - CandidateBaseRef ref = src->refAt(i); - GenParticleRef mc = (*match)[ref]; - cout << (mc.isNull() ? "(no)" : "(yes)"); - } - cout << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(DebugZMCTruth); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/DimuonMCMatcher.cc b/ElectroWeakAnalysis/ZMuMu/plugins/DimuonMCMatcher.cc deleted file mode 100644 index 244f05eef0f16..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/DimuonMCMatcher.cc +++ /dev/null @@ -1,93 +0,0 @@ -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include - -class DimuonMCMatcher : public edm::EDProducer { -public: - DimuonMCMatcher(const edm::ParameterSet& cfg); - void produce(edm::Event&, const edm::EventSetup&) override; - -private: - edm::EDGetTokenT srcToken_; -}; - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -using namespace std; -using namespace reco; -using namespace edm; - -DimuonMCMatcher::DimuonMCMatcher(const edm::ParameterSet& cfg) - : srcToken_(consumes(cfg.getParameter("src"))) { - produces >(); -} - -void DimuonMCMatcher::produce(edm::Event& evt, const edm::EventSetup&) { - Handle src; - evt.getByToken(srcToken_, src); - unique_ptr > matched(new vector); - matched->reserve(src->size()); - int j = 0; - for (CandidateView::const_iterator i = src->begin(); i != src->end(); ++i) { - j++; - const Candidate* dau1 = i->daughter(0); - const Candidate* dau2 = i->daughter(1); - if (dau1 == nullptr || dau2 == nullptr) - throw Exception(errors::InvalidReference) << "one of the two daughter does not exist\n"; - const Candidate* c1 = dau1->masterClone().get(); - GenParticleRef mc1; - const pat::Muon* mu1 = dynamic_cast(c1); - if (mu1 != nullptr) { - mc1 = mu1->genParticleRef(); - // if (mc1.isNonnull()) cout << "DimuonMCMatcher> genParticleRef1 " << mc1->pdgId() << endl; - } else { - const pat::GenericParticle* gp1 = dynamic_cast(c1); - if (gp1 == nullptr) - throw Exception(errors::InvalidReference) - << "first of two daughter is neither a pat::Muon not pat::GenericParticle\n"; - mc1 = gp1->genParticleRef(); - } - const Candidate* c2 = dau2->masterClone().get(); - GenParticleRef mc2; - const pat::Muon* mu2 = dynamic_cast(c2); - if (mu2 != nullptr) { - mc2 = mu2->genParticleRef(); - // if (mc2.isNonnull()) cout << "DimuonMCMatcher> genParticleRef2 " << mc2->pdgId() << endl; - } else { - const pat::GenericParticle* gp2 = dynamic_cast(c2); - if (gp2 == nullptr) - throw Exception(errors::InvalidReference) - << "first of two daughter is neither a pat::Muon not pat::GenericParticle\n"; - mc2 = gp2->genParticleRef(); - } - GenParticleRef dimuonMatch; - // cout << "DimuonMatcher> mc1 " << mc1.isNonnull() << " mc2 " << mc2.isNonnull() << endl; - if (mc1.isNonnull() && mc2.isNonnull()) { - int k = 0; - do { - k++; - mc1 = mc1->numberOfMothers() > 0 ? mc1->motherRef() : GenParticleRef(); - mc2 = mc2->numberOfMothers() > 0 ? mc2->motherRef() : GenParticleRef(); - // cout << "DimuonMCMatcher> do loop: " << k << " id1 " << mc1->pdgId() << " id2 " << mc2->pdgId() << endl; - } while (mc1 != mc2 && mc1.isNonnull() && mc2.isNonnull()); - if (mc1.isNonnull() && mc2.isNonnull() && mc1->pdgId() == 23) { - dimuonMatch = mc1; - } - } - // cout << "DimuonMatcher> dimuonMatch " << dimuonMatch.isNonnull() << endl; - matched->push_back(dimuonMatch); - } - - evt.put(std::move(matched)); -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(DimuonMCMatcher); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/DimuonStatistics.cc b/ElectroWeakAnalysis/ZMuMu/plugins/DimuonStatistics.cc deleted file mode 100644 index efa965d0967ac..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/DimuonStatistics.cc +++ /dev/null @@ -1,141 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include - -class DimuonStatistics : public edm::EDAnalyzer { -public: - DimuonStatistics(const edm::ParameterSet& cfg); - void analyze(const edm::Event&, const edm::EventSetup&) override; - void endJob() override; - -private: - edm::InputTag src_; - edm::EDGetTokenT srcToken_; - std::vector matched_, unMatched_; - double ptMin_, massMin_, massMax_, etaMin_, etaMax_, trkIso_; -}; - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -using namespace std; -using namespace reco; -using namespace edm; -const unsigned int maxEntries = 10; - -DimuonStatistics::DimuonStatistics(const edm::ParameterSet& cfg) - : src_(cfg.getParameter("src")), - srcToken_(consumes(src_)), - matched_(maxEntries + 1, 0), - unMatched_(maxEntries + 1, 0), - ptMin_(cfg.getUntrackedParameter("ptMin")), - massMin_(cfg.getUntrackedParameter("massMin")), - massMax_(cfg.getUntrackedParameter("massMax")), - etaMin_(cfg.getUntrackedParameter("etaMin")), - etaMax_(cfg.getUntrackedParameter("etaMax")), - trkIso_(cfg.getUntrackedParameter("trkIso")) {} - -void DimuonStatistics::endJob() { - cout << src_.encode() << endl; - cout << " == Matched == " << endl; - for (unsigned int i = 0; i <= maxEntries; ++i) { - cout << i << ": " << matched_[i]; - if (i < maxEntries) - cout << ", "; - } - cout << endl; - cout << " == unMatched == " << endl; - for (unsigned int i = 0; i <= maxEntries; ++i) { - cout << i << ": " << unMatched_[i]; - if (i < maxEntries) - cout << ", "; - } - cout << endl; -} - -void DimuonStatistics::analyze(const edm::Event& evt, const edm::EventSetup&) { - Handle src; - evt.getByToken(srcToken_, src); - double trackIso1 = -1; - double trackIso2 = -1; - int j = 0; - unsigned int matched = 0, unMatched = 0; - cout << ">> entries in " << src_ << ": " << src->size() << endl; - for (CandidateView::const_iterator i = src->begin(); i != src->end(); ++i) { - j++; - const Candidate* dau1 = i->daughter(0); - const Candidate* dau2 = i->daughter(1); - if (dau1 == nullptr || dau2 == nullptr) - throw Exception(errors::InvalidReference) << "one of the two daughter does not exist\n"; - const Candidate* c1 = dau1->masterClone().get(); - GenParticleRef mc1; - const pat::Muon* mu1 = dynamic_cast(c1); - if (mu1 != nullptr) { - mc1 = mu1->genParticleRef(); - // if (mc1.isNonnull()) cout << "DimuonStatistics> genParticleRef1 " << mc1->pdgId() << endl; - trackIso1 = mu1->trackIso(); - } else { - const pat::GenericParticle* gp1 = dynamic_cast(c1); - if (gp1 == nullptr) - throw Exception(errors::InvalidReference) - << "first of two daughter is neither a pat::Muon not pat::GenericParticle\n"; - mc1 = gp1->genParticleRef(); - } - const Candidate* c2 = dau2->masterClone().get(); - GenParticleRef mc2; - const pat::Muon* mu2 = dynamic_cast(c2); - if (mu2 != nullptr) { - mc2 = mu2->genParticleRef(); - // if (mc2.isNonnull()) cout << "DimuonStatistics> genParticleRef2 " << mc2->pdgId() << endl; - trackIso2 = mu2->trackIso(); - } else { - const pat::GenericParticle* gp2 = dynamic_cast(c2); - if (gp2 == nullptr) - throw Exception(errors::InvalidReference) - << "first of two daughter is neither a pat::Muon not pat::GenericParticle\n"; - mc2 = gp2->genParticleRef(); - } - GenParticleRef dimuonMatch; - if (mc1.isNonnull() && mc2.isNonnull()) { - cout << "DimuonStatistics> mc1: " << mc1->pdgId() << ", mc2: " << mc2->pdgId() << endl; - int k = 0; - do { - k++; - mc1 = mc1->numberOfMothers() > 0 ? mc1->motherRef() : GenParticleRef(); - mc2 = mc2->numberOfMothers() > 0 ? mc2->motherRef() : GenParticleRef(); - // cout << "DimuonStatistics> do loop: " << k << " id1 " << mc1->pdgId() << " id2 " << mc2->pdgId() << endl; - } while (mc1 != mc2 && mc1.isNonnull() && mc2.isNonnull()); - if (mc1.isNonnull() && mc2.isNonnull() && mc1->pdgId() == 23) { - dimuonMatch = mc1; - } - } - // cout << "DimuonMatcher> dimuonMatch " << dimuonMatch.isNonnull() << endl; - if ((fabs(dau1->eta()) > etaMin_ && fabs(dau1->eta()) < etaMax_) && dau1->pt() > ptMin_ && - ((fabs(dau2->eta()) > etaMin_) && (fabs(dau2->eta()) < etaMax_)) && dau2->pt() > ptMin_ && - trackIso1 < trkIso_ && trackIso2 < trkIso_ && i->mass() > massMin_ && i->mass() < massMax_) { - cout << "dimuon mass " << i->mass() << endl; - if (dimuonMatch.isNonnull()) - ++matched; - else - ++unMatched; - } - } - cout << "matched: " << matched << ", unmatched: " << unMatched << endl; - - if (matched > maxEntries) - matched = maxEntries; - if (unMatched > maxEntries) - unMatched = maxEntries; - ++matched_[matched]; - ++unMatched_[unMatched]; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(DimuonStatistics); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/EWKSystUnc.cc b/ElectroWeakAnalysis/ZMuMu/plugins/EWKSystUnc.cc deleted file mode 100644 index 5b0a49718da52..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/EWKSystUnc.cc +++ /dev/null @@ -1,210 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "TH1.h" - -class EWKSystUnc : public edm::EDAnalyzer { -public: - EWKSystUnc(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - edm::EDGetTokenT genToken_; - edm::EDGetTokenT weightsToken_; - unsigned int nbinsMass_, nbinsPt_, nbinsAng_; - double massMax_, ptMax_, angMax_; - double accPtMin_, accMassMin_, accMassMax_, accEtaMin_, accEtaMax_; - TH1F* h_nZ_; - TH1F *h_mZMC_, *h_ptZMC_, *h_phiZMC_, *h_thetaZMC_, *h_etaZMC_, *h_rapidityZMC_; - TH1F *hardpt, *softpt, *hardeta, *softeta; - TH1F* h_weight_histo; - bool isMCatNLO_; - double nAcc_, nAccReW_, nBothMuHasZHasGrandMa_; - std::string filename_; -}; - -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - -#include "HepMC/WeightContainer.h" -#include "HepMC/GenEvent.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include -#include -#include - -using namespace std; -using namespace reco; -using namespace edm; - -EWKSystUnc::EWKSystUnc(const ParameterSet& pset) - : genToken_(consumes(pset.getParameter("genParticles"))), - weightsToken_(consumes(pset.getParameter("weights"))), - nbinsMass_(pset.getUntrackedParameter("nbinsMass")), - nbinsPt_(pset.getUntrackedParameter("nbinsPt")), - nbinsAng_(pset.getUntrackedParameter("nbinsAng")), - massMax_(pset.getUntrackedParameter("massMax")), - ptMax_(pset.getUntrackedParameter("ptMax")), - angMax_(pset.getUntrackedParameter("angMax")), - accPtMin_(pset.getUntrackedParameter("accPtMin")), - accMassMin_(pset.getUntrackedParameter("accMassMin")), - accMassMax_(pset.getUntrackedParameter("accMassMax")), - accEtaMin_(pset.getUntrackedParameter("accEtaMin")), - accEtaMax_(pset.getUntrackedParameter("accEtaMax")), - isMCatNLO_(pset.getUntrackedParameter("isMCatNLO")), - filename_(pset.getUntrackedParameter("outfilename")) { - cout << ">>> Z Histogrammer constructor" << endl; - Service fs; - - TFileDirectory ZMCHisto = fs->mkdir("ZMCHisto"); - h_nZ_ = ZMCHisto.make("ZNumber", "number of Z particles", 11, -0.5, 10.5); - h_weight_histo = ZMCHisto.make("weight_histo", "weight_histo", 20, -10, 10); - - h_mZMC_ = ZMCHisto.make("ZMCMass", "Z MC mass (GeV/c^{2})", nbinsMass_, 0, massMax_); - h_ptZMC_ = ZMCHisto.make("ZMCPt", "Z MC p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - hardpt = ZMCHisto.make("hardpt", "hard muon p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - softpt = ZMCHisto.make("softpt", "soft muon p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - - h_phiZMC_ = ZMCHisto.make("ZMCPhi", "Z MC #phi", nbinsAng_, -angMax_, angMax_); - h_thetaZMC_ = ZMCHisto.make("ZMCTheta", "Z MC #theta", nbinsAng_, 0, angMax_); - h_etaZMC_ = ZMCHisto.make("ZMCEta", "Z MC #eta", nbinsAng_, -angMax_, angMax_); - h_rapidityZMC_ = ZMCHisto.make("ZMCRapidity", "Z MC y", nbinsAng_, -angMax_, angMax_); - - hardeta = ZMCHisto.make("hard muon eta", "hard muon #eta", nbinsAng_, -angMax_, angMax_); - softeta = ZMCHisto.make("soft muon eta", "soft muon #eta", nbinsAng_, -angMax_, angMax_); - nAcc_ = 0.; - nAccReW_ = 0; - nBothMuHasZHasGrandMa_ = 0; -} - -void EWKSystUnc::analyze(const edm::Event& event, const edm::EventSetup& setup) { - cout << ">>> Z Histogrammer analyze" << endl; - - Handle gen; - Handle weights; - - event.getByToken(genToken_, gen); - event.getByToken(weightsToken_, weights); - - // get weight and fill it to histogram - double weight = (*weights); - - // protection... - if (weight > 2. || weight < 0.1) { - std::cout << "weight = " << weight << ", something strange...." << std::endl; - weight = 1; - } - h_weight_histo->Fill(weight); - - std::vector muons; - - for (unsigned int i = 0; i < gen->size(); ++i) { - const GenParticle& muMC = (*gen)[i]; - // filling only muons coming form Z - if (abs(muMC.pdgId()) == 13 && muMC.status() == 1 && muMC.numberOfMothers() > 0) { - if (muMC.mother()->numberOfMothers() > 0) { - cout << "I'm getting a muon \n" - << "with " - << "muMC.numberOfMothers() " << muMC.numberOfMothers() << "\n the first mother has pdgId " - << muMC.mother()->pdgId() << "with " - << "muMC.mother()->numberOfMothers() " << muMC.mother()->numberOfMothers() - << "\n the first grandma has pdgId " << muMC.mother()->mother()->pdgId() << endl; - if (muMC.mother()->mother()->pdgId() == 23) - muons.push_back(muMC); - } - } - } - - cout << "finally I selected " << muons.size() << " muons" << endl; - - // if there are at least two muons, - // calculate invarant mass of first two and fill it into histogram - - double inv_mass = 0.0; - double Zpt_ = 0.0; - double Zeta_ = 0.0; - double Ztheta_ = 0.0; - double Zphi_ = 0.0; - double Zrapidity_ = 0.0; - - if (muons.size() > 1) { - if (muons[0].mother()->mother()->pdgId() == 23 && muons[1].mother()->mother()->pdgId() == 23) - nBothMuHasZHasGrandMa_++; - math::XYZTLorentzVector tot_momentum(muons[0].p4()); - math::XYZTLorentzVector mom2(muons[1].p4()); - tot_momentum += mom2; - inv_mass = sqrt(tot_momentum.mass2()); - Zpt_ = tot_momentum.pt(); - Zeta_ = tot_momentum.eta(); - Ztheta_ = tot_momentum.theta(); - Zphi_ = tot_momentum.phi(); - Zrapidity_ = tot_momentum.Rapidity(); - - // IMPORTANT: use the weight of the event ... - - double weight_sign = weight; - //double weight_sign = 1. ; - h_mZMC_->Fill(inv_mass, weight_sign); - h_ptZMC_->Fill(Zpt_, weight_sign); - h_etaZMC_->Fill(Zeta_, weight_sign); - h_thetaZMC_->Fill(Ztheta_, weight_sign); - h_phiZMC_->Fill(Zphi_, weight_sign); - h_rapidityZMC_->Fill(Zrapidity_, weight_sign); - - double pt1 = muons[0].pt(); - double pt2 = muons[1].pt(); - double eta1 = muons[0].eta(); - double eta2 = muons[1].eta(); - - if (pt1 > pt2) { - hardpt->Fill(pt1, weight_sign); - softpt->Fill(pt2, weight_sign); - hardeta->Fill(eta1, weight_sign); - softeta->Fill(eta2, weight_sign); - } else { - hardpt->Fill(pt2, weight_sign); - softpt->Fill(pt1, weight_sign); - hardeta->Fill(eta2, weight_sign); - softeta->Fill(eta1, weight_sign); - } - - //evaluating the geometric acceptance - if (pt1 >= accPtMin_ && pt2 >= accPtMin_ && fabs(eta1) >= accEtaMin_ && fabs(eta2) >= accEtaMin_ && - fabs(eta1) <= accEtaMax_ && fabs(eta2) <= accEtaMax_ && inv_mass >= accMassMin_ && inv_mass <= accMassMax_) { - nAcc_++; - nAccReW_ += weight; - } - } -} - -void EWKSystUnc::endJob() { - cout << " number of events accepted :" << nAcc_ << endl; - cout << " number of events accepted reweigthed :" << nAccReW_ << endl; - double nev = h_mZMC_->GetEntries(); - double nev_weigthed = h_mZMC_->Integral(0, nbinsMass_ + 1); - cout << " number of total events :" << nev << endl; - cout << " number of total weighted events :" << nev_weigthed << endl; - cout << " number of cases in which BothMuHasZHasGrandMa :" << nBothMuHasZHasGrandMa_ << endl; - double eff = (double)nAcc_ / (double)h_mZMC_->GetEntries(); - double eff_rew = (double)nAccReW_ / (double)h_mZMC_->Integral(0, nbinsMass_ + 1); - double err = sqrt(eff * (1. - eff) / (double)h_mZMC_->GetEntries()); - double err_rew = sqrt(eff_rew * (1. - eff_rew) / (double)h_mZMC_->Integral(0, nbinsMass_ + 1)); - cout << " geometric acceptance: " << eff << "+/-" << err << endl; - cout << " geometric acceptance reweighted: " << eff_rew << "+/-" << err_rew << endl; - - ofstream myfile; - myfile.open(filename_.c_str(), std::ios::app); - myfile << eff << " " << eff_rew << " " << nev << " " << nev_weigthed << endl; - myfile.close(); -} -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(EWKSystUnc); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/EventVtxInfoNtupleDumper.cc b/ElectroWeakAnalysis/ZMuMu/plugins/EventVtxInfoNtupleDumper.cc deleted file mode 100644 index 1c8da66c584c1..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/EventVtxInfoNtupleDumper.cc +++ /dev/null @@ -1,79 +0,0 @@ -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" - -#include - -using namespace edm; -using namespace std; -using namespace reco; - -class EventVtxInfoNtupleDumper : public edm::EDProducer { -public: - EventVtxInfoNtupleDumper(const edm::ParameterSet &); - -private: - void produce(edm::Event &, const edm::EventSetup &) override; - edm::EDGetTokenT primaryVerticesToken_; -}; - -EventVtxInfoNtupleDumper::EventVtxInfoNtupleDumper(const ParameterSet &cfg) - : primaryVerticesToken_(consumes(cfg.getParameter("primaryVertices"))) { - produces("numPV").setBranchAlias("numPV"); - produces("nTrkPV").setBranchAlias("nTrkPV"); - produces("chi2PV").setBranchAlias("chi2PV"); - produces("ndofPV").setBranchAlias("ndofPV"); - produces("zPV").setBranchAlias("zPV"); - produces("rhoPV").setBranchAlias("rhoPV"); - // produces >( "nTrkPV" ).setBranchAlias( "nTrkPV" ); - // produces >( "chi2PV" ).setBranchAlias( "chi2PV" ); - // produces >( "ndofPV" ).setBranchAlias( "ndofPV" ); -} - -void EventVtxInfoNtupleDumper::produce(Event &evt, const EventSetup &) { - Handle primaryVertices; // Collection of primary Vertices - evt.getByToken(primaryVerticesToken_, primaryVertices); - unique_ptr nVtxs(new int); - unique_ptr nTrkVtx(new int); - unique_ptr chi2Vtx(new float); - unique_ptr ndofVtx(new float); - unique_ptr zVtx(new float); - unique_ptr rhoVtx(new float); - // unique_ptr< vector< unsigned int > > nTrkVtx( new vector< unsigned int > ); - // unique_ptr< vector< float > > chi2Vtx( new vector< float > ); - // unique_ptr< vector< float > > ndofVtx( new vector< float > ); - - const reco::Vertex &pv = (*primaryVertices)[0]; - - *nVtxs = -1; - *nTrkVtx = -1; - *chi2Vtx = -1.0; - *ndofVtx = -1.0; - *zVtx = -1000; - *rhoVtx = -1000; - if (!(pv.isFake())) { - *nVtxs = primaryVertices->size(); - *nTrkVtx = pv.tracksSize(); - *chi2Vtx = pv.chi2(); - *ndofVtx = pv.ndof(); - *zVtx = pv.z(); - *rhoVtx = pv.position().Rho(); - } - // nTrkVtx->push_back(pv.tracksSize()); - // chi2Vtx->push_back(pv.chi2()); - // ndofVtx->push_back(pv.ndof()); - evt.put(std::move(nVtxs), "numPV"); - evt.put(std::move(nTrkVtx), "nTrkPV"); - evt.put(std::move(chi2Vtx), "chi2PV"); - evt.put(std::move(ndofVtx), "ndofPV"); - evt.put(std::move(zVtx), "zPV"); - evt.put(std::move(rhoVtx), "rhoPV"); -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(EventVtxInfoNtupleDumper); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/GlbMuQualityCutsAnalysis.cc b/ElectroWeakAnalysis/ZMuMu/plugins/GlbMuQualityCutsAnalysis.cc deleted file mode 100644 index 431b6c9db06a2..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/GlbMuQualityCutsAnalysis.cc +++ /dev/null @@ -1,161 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include -#include "TH1.h" - -class GlbMuQualityCutsAnalysis : public edm::EDAnalyzer { -public: - GlbMuQualityCutsAnalysis(const edm::ParameterSet& cfg); - void analyze(const edm::Event&, const edm::EventSetup&) override; - // virtual void endJob(); -private: - edm::InputTag src_; - edm::EDGetTokenT srcToken_; - std::vector matched_, unMatched_; - double ptMin_, massMin_, massMax_, etaMin_, etaMax_, trkIso_, chi2Cut_; - int nHitCut_; - TH1D *h_GlbMuNofHitsGlbMu_, *h_GlbMuChi2_, *h_TrkMuNofHitsGlbMu_, *h_GlbMuDxy_; -}; - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -using namespace std; -using namespace reco; -using namespace edm; -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -GlbMuQualityCutsAnalysis::GlbMuQualityCutsAnalysis(const edm::ParameterSet& cfg) - : src_(cfg.getParameter("src")), - srcToken_(consumes(src_)), - ptMin_(cfg.getUntrackedParameter("ptMin")), - massMin_(cfg.getUntrackedParameter("massMin")), - massMax_(cfg.getUntrackedParameter("massMax")), - etaMin_(cfg.getUntrackedParameter("etaMin")), - etaMax_(cfg.getUntrackedParameter("etaMax")), - trkIso_(cfg.getUntrackedParameter("trkIso")), - chi2Cut_(cfg.getUntrackedParameter("chi2Cut")), - nHitCut_(cfg.getUntrackedParameter("nHitCut")) { - Service fs; - TFileDirectory trackEffDir = fs->mkdir("QualityOfGlbMu"); - h_GlbMuNofHitsGlbMu_ = trackEffDir.make("# of Hits of GlobalMuon", "# of Hits of GlobalMuon", 100, 0, 100); - h_TrkMuNofHitsGlbMu_ = trackEffDir.make("# of Hits of TrackerMuon", "# of Hits of TrackerMuon", 100, 0, 100); - h_GlbMuChi2_ = trackEffDir.make("chi2 of GlobalMuon", "chi2 of GlobalMuon", 100, 0, 10); - h_GlbMuDxy_ = trackEffDir.make("Dxy of GlobalMuon", "Dxy of GlobalMuon", 1000, -5., 5.); -} - -/*void GlbMuQualityCutsAnalysis::endJob() { - cout << src_.encode() << endl ; - -} -*/ -void GlbMuQualityCutsAnalysis::analyze(const edm::Event& evt, const edm::EventSetup&) { - Handle src; - evt.getByToken(srcToken_, src); - int j = 0; - cout << ">> entries in " << src_ << ": " << src->size() << endl; - for (CandidateView::const_iterator i = src->begin(); i != src->end(); ++i) { - j++; - const Candidate* dau1 = i->daughter(0); - const Candidate* dau2 = i->daughter(1); - if (dau1 == nullptr || dau2 == nullptr) - throw Exception(errors::InvalidReference) << "one of the two daughter does not exist\n"; - const Candidate* c1 = dau1->masterClone().get(); - GenParticleRef mc1; - const pat::Muon* mu1 = dynamic_cast(c1); - std::cout << " dimuon mass " << i->mass() << std::endl; - std::cout << "dau1.pt() " << dau1->pt() << std::endl; - std::cout << "dau2.pt() " << dau2->pt() << std::endl; - std::cout << "dau1.isGlobalMuon() " << dau1->isGlobalMuon() << std::endl; - std::cout << "dau2.isGlobalMuon() " << dau2->isGlobalMuon() << std::endl; - std::cout << "dau1.isTrackerMuon() " << dau1->isTrackerMuon() << std::endl; - std::cout << "dau2.isTrackerlMuon() " << dau2->isTrackerMuon() << std::endl; - std::cout << "dau1.isStandAloneMuon() " << dau1->isStandAloneMuon() << std::endl; - std::cout << "dau2.isStandAloneMuon() " << dau2->isStandAloneMuon() << std::endl; - std::cout << "dau1.charge() " << dau1->charge() << std::endl; - std::cout << "dau2.charge() " << dau2->charge() << std::endl; - if (mu1 != nullptr) { - // if (mc1.isNonnull()) cout << "GlbMuQualityCutsAnalysis> genParticleRef1 " << mc1->pdgId() << endl; - // double trackIso1=mu1->trackIso(); - // std::cout << " mu1 iso" << trackIso1 << std::endl; - } else { - const pat::GenericParticle* gp1 = dynamic_cast(c1); - if (gp1 == nullptr) - throw Exception(errors::InvalidReference) - << "first of two daughter is neither a pat::Muon not pat::GenericParticle\n"; - } - const Candidate* c2 = dau2->masterClone().get(); - - const pat::Muon* mu2 = dynamic_cast(c2); - if (mu2 != nullptr) { - // double trackIso2=mu2->trackIso(); - //std::cout << " mu2 iso" << trackIso2 << std::endl; - } else { - const pat::GenericParticle* gp2 = dynamic_cast(c2); - if (gp2 == nullptr) - throw Exception(errors::InvalidReference) - << "first of two daughter is neither a pat::Muon not pat::GenericParticle\n"; - } - - int nOfHit_1 = 0, nOfHit_tk_1 = 0, nOfHit_2 = 0, nOfHit_tk_2 = 0; - if (mu1->isGlobalMuon()) - nOfHit_1 = mu1->numberOfValidHits(); - std::cout << "n of hit of GlbMu1: " << nOfHit_1 << std::endl; - if (mu1->isTrackerMuon()) - nOfHit_tk_1 = mu1->innerTrack()->numberOfValidHits(); - std::cout << "n of hit of TrkMu1: " << nOfHit_tk_1 << std::endl; - if (mu2->isGlobalMuon()) - nOfHit_2 = mu2->numberOfValidHits(); - std::cout << "n of hit of GlbMu2: " << nOfHit_2 << std::endl; - if (mu2->isTrackerMuon()) - nOfHit_tk_2 = mu2->innerTrack()->numberOfValidHits(); - std::cout << "n of hit of TrkMu2: " << nOfHit_tk_2 << std::endl; - h_GlbMuNofHitsGlbMu_->Fill(nOfHit_1); - h_GlbMuNofHitsGlbMu_->Fill(nOfHit_2); - h_TrkMuNofHitsGlbMu_->Fill(nOfHit_tk_1); - h_TrkMuNofHitsGlbMu_->Fill(nOfHit_tk_2); - double nChi2_1 = 0, nChi2_2 = 0; - if (mu1->isGlobalMuon()) - nChi2_1 = mu1->normChi2(); - std::cout << "chi2 of GlbMu1: " << nChi2_1 << std::endl; - if (mu2->isGlobalMuon()) - nChi2_2 = mu2->normChi2(); - std::cout << "chi2 of GlbMu2: " << nChi2_2 << std::endl; - h_GlbMuChi2_->Fill(nChi2_1); - h_GlbMuChi2_->Fill(nChi2_2); - double dxy_1 = mu1->dB(); - double dxy_2 = mu2->dB(); - - h_GlbMuDxy_->Fill(dxy_1); - h_GlbMuDxy_->Fill(dxy_2); - if (mu1->isGlobalMuon() && (nOfHit_tk_1 < nHitCut_)) { - std::cout << "found a GlbMuon with nOfHit " << nOfHit_tk_1 << ", it has eta: " << mu1->eta() << std::endl; - } - if (mu2->isGlobalMuon() && (nOfHit_tk_2 < nHitCut_)) { - std::cout << "found a GlbMuon with nOfHit " << nOfHit_tk_2 << ", it has eta: " << mu2->eta() << std::endl; - } - if (mu1->isGlobalMuon() && (nChi2_1 > chi2Cut_)) { - std::cout << "found a GlbMuon with chi2 " << nChi2_1 - << ", it has chi2 of track: " << mu1->innerTrack()->normalizedChi2() - << ", and chi2 of Sta: " << mu1->outerTrack()->normalizedChi2() << ", eta: " << mu1->eta() - << ",pt: " << mu1->pt() << std::endl; - } - if (mu2->isGlobalMuon() && (nChi2_2 > chi2Cut_)) { - std::cout << "found a GlbMuon with chi2 " << nChi2_2 - << ", it has chi2 of track: " << mu2->innerTrack()->normalizedChi2() - << ", and chi2 of Sta: " << mu2->outerTrack()->normalizedChi2() << ", eta: " << mu2->eta() - << ",pt: " << mu2->pt() << std::endl; - } - } -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(GlbMuQualityCutsAnalysis); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/MCAcceptanceAnalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/MCAcceptanceAnalyzer.cc deleted file mode 100644 index 88e25a782323e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/MCAcceptanceAnalyzer.cc +++ /dev/null @@ -1,218 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include - -using namespace edm; -using namespace reco; -using namespace std; - -const Candidate* mcMuDaughter(const Candidate* c) { - unsigned int n = c->numberOfDaughters(); - for (unsigned int i = 0; i < n; ++i) { - const Candidate* d = c->daughter(i); - if (fabs(d->pdgId()) == 13) - return d; - } - return nullptr; -} - -struct ZSelector { // modify this selector in order to return an integer (0: no eta cut, 1: eta cut only, 2 eta && pt cut, 3: eta, pt and Mass cut, 4: mass cut on the denominator Z MC) - ZSelector(double ptMin, - double etaDau0Min, - double etaDau0Max, - double etaDau1Min, - double etaDau1Max, - double massMin, - double massMax, - double massMinZMC, - double massMaxZMC) - : ptMin_(ptMin), - etaDau0Min_(etaDau0Min), - etaDau0Max_(etaDau0Max), - etaDau1Min_(etaDau1Min), - etaDau1Max_(etaDau1Max), - massMin_(massMin), - massMax_(massMax), - massMinZMC_(massMinZMC), - massMaxZMC_(massMaxZMC) {} - int operator()(const Candidate& c) const { - // std::cout << "c.numberOfDaughters(): " << c.numberOfDaughters()<< std::endl; - if (c.numberOfDaughters() < 2) - return 0; - if (c.numberOfDaughters() >= 6) - return 0; - const Candidate* d0 = c.daughter(0); - const Candidate* d1 = c.daughter(1); - if (c.numberOfDaughters() > 2) { - if (d0->numberOfDaughters() > 0) - d0 = mcMuDaughter(d0); - if (d1->numberOfDaughters() > 0) - d1 = mcMuDaughter(d1); - } - int temp_cut = 0; - /// allowing asymmetric cut.... - if ((fabs(d0->eta()) > etaDau0Min_ && fabs(d1->eta()) > etaDau1Min_ && fabs(d0->eta()) < etaDau0Max_ && - fabs(d1->eta()) < etaDau1Max_) || - (fabs(d0->eta()) > etaDau1Min_ && fabs(d1->eta()) > etaDau0Min_ && fabs(d0->eta()) < etaDau1Max_ && - fabs(d1->eta()) < etaDau0Max_)) { - temp_cut = 1; - if (d0->pt() > ptMin_ && d1->pt() > ptMin_) { - temp_cut = 2; - double m = (d0->p4() + d1->p4()).mass(); - if (m > massMin_ && m < massMax_) - temp_cut = 3; - if (c.mass() > massMinZMC_ && c.mass() < massMaxZMC_) - temp_cut = 4; - } - } - - return temp_cut; - } - double ptMin_, etaDau0Min_, etaDau0Max_, etaDau1Min_, etaDau1Max_, massMin_, massMax_, massMinZMC_, massMaxZMC_; -}; - -class MCAcceptanceAnalyzer : public EDAnalyzer { -public: - MCAcceptanceAnalyzer(const ParameterSet& cfg); - -private: - void analyze(const Event&, const EventSetup&) override; - void endJob() override; - InputTag zToMuMu_, zToMuMuMC_, zToMuMuMatched_; - EDGetTokenT zToMuMuToken_; - EDGetTokenT zToMuMuMCToken_; - EDGetTokenT zToMuMuMatchedToken_; - long nZToMuMu_, selZToMuMu_, nZToMuMuMC_, selZToMuMuMC_, nZToMuMuMCMatched_, selZToMuMuMCMatched_, nZToMuMuMCDen_; - ZSelector select_, select_OnlyMassCut_; -}; - -MCAcceptanceAnalyzer::MCAcceptanceAnalyzer(const ParameterSet& cfg) - : zToMuMu_(cfg.getParameter("zToMuMu")), - zToMuMuMC_(cfg.getParameter("zToMuMuMC")), - zToMuMuMatched_(cfg.getParameter("zToMuMuMatched")), - zToMuMuToken_(consumes(zToMuMu_)), - zToMuMuMCToken_(consumes(zToMuMuMC_)), - zToMuMuMatchedToken_(consumes(zToMuMuMatched_)), - nZToMuMu_(0), - selZToMuMu_(0), - nZToMuMuMC_(0), - selZToMuMuMC_(0), - nZToMuMuMCMatched_(0), - selZToMuMuMCMatched_(0), - nZToMuMuMCDen_(0), - select_(cfg.getParameter("ptMin"), - cfg.getParameter("etaDau0Min"), - cfg.getParameter("etaDau0Max"), - cfg.getParameter("etaDau1Min"), - cfg.getParameter("etaDau1Max"), - cfg.getParameter("massMin"), - cfg.getParameter("massMax"), - cfg.getParameter("massMinZMC"), - cfg.getParameter("massMaxZMC")), - select_OnlyMassCut_(-1, - -9999, - 9999, - -9999, - 9999, - 0, - 0, - cfg.getParameter("massMinZMC"), - cfg.getParameter("massMaxZMC")) {} - -void MCAcceptanceAnalyzer::analyze(const Event& evt, const EventSetup&) { - Handle zToMuMu; - evt.getByToken(zToMuMuToken_, zToMuMu); - Handle zToMuMuMC; - evt.getByToken(zToMuMuMCToken_, zToMuMuMC); - Handle zToMuMuMatched; - evt.getByToken(zToMuMuMatchedToken_, zToMuMuMatched); - // long nZToMuMu = zToMuMu->size(); - long nZToMuMuMC = zToMuMuMC->size(); - long nZToMuMuMatched = zToMuMuMatched->size(); - - // cout << ">>> " << zToMuMu_ << " has " << nZToMuMu << " entries" << endl; - //cout << ">>> " << zToMuMuMC_ << " has " << nZToMuMuMC << " entries" << endl; - //cout << ">>> " << zToMuMuMatched_ << " has " << nZToMuMuMatched << " entries" << endl; - - nZToMuMuMC_ += nZToMuMuMC; - for (long i = 0; i < nZToMuMuMC; ++i) { - const Candidate& z = (*zToMuMuMC)[i]; - if (select_(z) == 4) - ++selZToMuMuMC_; - if (select_OnlyMassCut_(z) == 4) - ++nZToMuMuMCDen_; - } - - for (long i = 0; i < nZToMuMuMatched; ++i) { - const Candidate& z = (*zToMuMu)[i]; - CandidateBaseRef zRef = zToMuMu->refAt(i); - GenParticleRef mcRef = (*zToMuMuMatched)[zRef]; - - if (mcRef.isNonnull()) { // z candidate matched to Z MC - ++nZToMuMu_; - ++nZToMuMuMCMatched_; - - int selectZ = select_(z); - if (selectZ == 4) - ++selZToMuMu_; - - int selectMC = select_(*mcRef); - - if (selectMC == 4) - ++selZToMuMuMCMatched_; - - if (selectZ != selectMC) { - cout << ">>> select reco: " << selectZ << ", select mc: " << selectMC << endl; - if ((selectZ * selectMC) == 0) - break; - if (z.numberOfDaughters() > 1) { - const Candidate *d0 = z.daughter(0), *d1 = z.daughter(1); - if (mcRef->numberOfDaughters() > 1) { - const Candidate *mcd0 = mcMuDaughter(mcRef->daughter(0)), *mcd1 = mcMuDaughter(mcRef->daughter(1)); - double m = z.mass(), mcm = (mcd0->p4() + mcd1->p4()).mass(); - cout << ">>> reco pt1, eta1: " << d0->pt() << ", " << d0->eta() << ", 2: " << d1->pt() << ", " << d1->eta() - << ", mass = " << m << endl; - cout << ">>> mc pt1, eta1: " << mcd0->pt() << ", " << mcd0->eta() << ", 2: " << mcd1->pt() << ", " - << mcd1->eta() << ", mass = " << mcm << endl; - } - } - } - // to avoid double counting - if ((selectZ == 3) && (selectMC == 3)) - break; - } - } -} - -void MCAcceptanceAnalyzer::endJob() { - double effZToMuMu = double(selZToMuMu_) / double(nZToMuMu_); - double errZToMuMu = sqrt(effZToMuMu * (1. - effZToMuMu) / nZToMuMu_); - double effZToMuMuMC = double(selZToMuMuMC_) / double(nZToMuMuMC_); - double errZToMuMuMC = sqrt(effZToMuMuMC * (1. - effZToMuMuMC) / nZToMuMuMC_); - double effZToMuMuMCDen = double(selZToMuMuMC_) / double(nZToMuMuMCDen_); - double errZToMuMuMCDen = sqrt(effZToMuMuMCDen * (1. - effZToMuMuMCDen) / nZToMuMuMCDen_); - double effZToMuMuMCMatched = double(selZToMuMuMCMatched_) / double(nZToMuMuMCMatched_); - double errZToMuMuMCMatched = sqrt(effZToMuMuMCMatched * (1. - effZToMuMuMCMatched) / nZToMuMuMCMatched_); - cout << ">>> " << zToMuMu_ << ": " << selZToMuMu_ << "/" << nZToMuMu_ << " = " << effZToMuMu << " +/- " << errZToMuMu - << endl; - cout << ">>> " << zToMuMuMC_ << " - matched: " << selZToMuMuMCMatched_ << "/" << nZToMuMuMCMatched_ << " = " - << effZToMuMuMCMatched << " +/- " << errZToMuMuMCMatched << endl; - cout << " if the two numbers above are the same we can neglete resolution effect and quote the acceptance as the " - "number below.... " - << endl; - cout << "********* acceptance m>sampleMCMassCut (usually 20 or 40) ******** " << endl; - cout << ">>> " << zToMuMuMC_ << ": " << selZToMuMuMC_ << "/" << nZToMuMuMC_ << " = " << effZToMuMuMC << " +/- " - << errZToMuMuMC << endl; - cout << "********* acceptance in the given mass range ******** " << endl; - cout << ">>> " << zToMuMuMC_ << ": " << selZToMuMuMC_ << "/" << nZToMuMuMCDen_ << " = " << effZToMuMuMCDen << " +/- " - << errZToMuMuMCDen << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(MCAcceptanceAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/MC_Efficiency_Analyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/MC_Efficiency_Analyzer.cc deleted file mode 100644 index 037206568cec8..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/MC_Efficiency_Analyzer.cc +++ /dev/null @@ -1,188 +0,0 @@ -/* \class MCEfficiencyAnalyzer - * - * Muon reconstruction efficiency from MC truth, - * for global muons, tracks and standalone. Take as input the output of the - * standard EWK skim: zToMuMu - * - * Produces in output the efficency number - * - * \author Michele de Gruttola, INFN Naples -*/ - -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Common/interface/Ref.h" -#include -#include -using namespace edm; -using namespace std; -using namespace reco; - -class MCEfficiencyAnalyzer : public edm::EDAnalyzer { -public: - MCEfficiencyAnalyzer(const edm::ParameterSet& pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - MuonsToken_(consumes(pset.getParameter("Muons"))), - MuonsMapToken_(consumes(pset.getParameter("MuonsMap"))), - TracksToken_(consumes(pset.getParameter("Tracks"))), - TracksMapToken_(consumes(pset.getParameter("TracksMap"))), - genParticlesToken_(consumes(pset.getParameter("genParticles"))), - StandAloneToken_(consumes(pset.getParameter("StandAlone"))), - StandAloneMapToken_(consumes(pset.getParameter("StandAloneMap"))), - etacut_(pset.getParameter("etacut")), - ptcut_(pset.getParameter("ptcut")), - deltaRStacut_(pset.getParameter("deltaRStacut")) - - { - nMuMC = 0; - nMureco = 0; - nTrk = 0; - nSta = 0; - nNotMuMatching = 0; - } - - void analyze(const edm::Event& event, const edm::EventSetup& setup) override { - Handle zMuMu; - event.getByToken(zMuMuToken_, zMuMu); - - Handle Muons; - event.getByToken(MuonsToken_, Muons); - - Handle Tracks; - event.getByToken(TracksToken_, Tracks); - - Handle StandAlone; - event.getByToken(StandAloneToken_, StandAlone); - - Handle MuonsMap; - event.getByToken(MuonsMapToken_, MuonsMap); - - Handle TracksMap; - event.getByToken(TracksMapToken_, TracksMap); - - Handle StandAloneMap; - event.getByToken(StandAloneMapToken_, StandAloneMap); - - Handle genParticles; - event.getByToken(genParticlesToken_, genParticles); - - //Getting muons from Z MC - for (unsigned int k = 0; k < genParticles->size(); k++) { - const Candidate& ZCand = (*genParticles)[k]; - int status = ZCand.status(); - - if (ZCand.pdgId() == 23 && status == 3) { - // positive muons - const Candidate* muCand1 = ZCand.daughter(0); - if (muCand1->status() == 3) { - for (unsigned int d = 0; d < muCand1->numberOfDaughters(); d++) { - const Candidate* muCandidate = muCand1->daughter(d); - if (muCandidate->pdgId() == muCand1->pdgId()) { - muCand1 = muCand1->daughter(d); - } - } - } - // negative muons - const Candidate* muCand2 = ZCand.daughter(1); - if (muCand2->status() == 3) { - for (unsigned int e = 0; e < muCand2->numberOfDaughters(); e++) { - const Candidate* muCandidate = muCand2->daughter(e); - if (muCandidate->pdgId() == muCand2->pdgId()) { - muCand2 = muCand2->daughter(e); - } - } - } - - double deltaR_Mu_Sta = 0; - int nMurecoTemp = nMureco; - // getting mu matched - CandMatchMap::const_iterator i; - for (i = MuonsMap->begin(); i != MuonsMap->end(); i++) { - const Candidate /* & reco = * i -> key,*/& mc = *i->val; - if ((muCand1 == &mc) && (mc.pt() > ptcut_) && (std::abs(mc.eta()) < etacut_)) { - nMuMC++; - nMureco++; - break; - } - } - if (nMureco == nMurecoTemp) // I.E. MU RECO NOT FOUND!!!! - { - int nTrkTemp = nTrk; - int nStaTemp = nSta; - - // getting tracks matched and doing the same, CONTROLLING IF MU IS RECONSTRUCTED AS A TRACK AND NOT AS A MU - CandMatchMap::const_iterator l; - for (l = TracksMap->begin(); l != TracksMap->end(); l++) { - const Candidate /* & Trkreco = * l -> key, */& Trkmc = *l->val; - if ((muCand1 == &Trkmc) && (Trkmc.pt() > ptcut_) && (std::abs(Trkmc.eta()) < etacut_)) { - nMuMC++; - nTrk++; - break; - } - } - // the same for standalone - CandMatchMap::const_iterator n; - for (n = StandAloneMap->begin(); n != StandAloneMap->end(); n++) { - const Candidate &Stareco = *n->key, &Stamc = *n->val; - if ((muCand1 == &Stamc) && (Stamc.pt() > ptcut_) && (std::abs(Stamc.eta()) < etacut_)) { - nMuMC++; - nSta++; - deltaR_Mu_Sta = deltaR(Stareco, *muCand1); - - // cout<<"Ho trovato un sta reco "< zMuMuToken_; - EDGetTokenT MuonsToken_; - EDGetTokenT MuonsMapToken_; - EDGetTokenT TracksToken_; - EDGetTokenT TracksMapToken_; - EDGetTokenT genParticlesToken_; - EDGetTokenT StandAloneToken_; - EDGetTokenT StandAloneMapToken_; - double etacut_, ptcut_, deltaRStacut_; - int nMuMC, nMureco, nTrk, nSta, nNotMuMatching; - vector v_; -}; - -DEFINE_FWK_MODULE(MCEfficiencyAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/MuTriggerAnalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/MuTriggerAnalyzer.cc deleted file mode 100644 index 05821ac5832ac..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/MuTriggerAnalyzer.cc +++ /dev/null @@ -1,219 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "FWCore/Common/interface/TriggerNames.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "TGraphAsymmErrors.h" -#include "TH1.h" -#include -#include -#include -using namespace std; -using namespace reco; -using namespace edm; - -/* -bool IsMuMatchedToHLTMu ( const reco::Candidate * dau, std::vector HLTMu , double DR, double DPtRel ) { - unsigned int dim = HLTMu.size(); - unsigned int nPass=0; - if (dim==0) return false; - for (unsigned int k =0; k< dim; k++ ) { - if ( (deltaR(HLTMu[k], *dau) < DR) && (fabs(HLTMu[k].pt() - dau->pt())/ HLTMu[k].pt()0); -} - -bool IsMuMatchedToHLTSingleMu ( const reco::Candidate * dau, reco::Particle HLTMu , double DR, double DPtRel ) { - unsigned int nPass=0; - if ( (deltaR(HLTMu, *dau) < DR) && (fabs(HLTMu.pt() - dau->pt())/ HLTMu.pt()0); -} - -*/ - -class MuTriggerAnalyzer : public edm::EDAnalyzer { -public: - MuTriggerAnalyzer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - bool IsMuMatchedToHLTMu(const reco::Muon&, std::vector&, double, double); - - edm::EDGetTokenT trigToken_; - edm::InputTag trigEvTag_; - edm::EDGetTokenT trigEvToken_; - edm::EDGetTokenT > muonToken_; - double ptMuCut_, etaMuCut_; - std::string hltPath_; - std::string L3FilterName_; - edm::Handle triggerResults_; - edm::TriggerNames const* trigNames_; - edm::Handle handleTriggerEvent_; - - double maxDPtRel_, maxDeltaR_; - const int nbins_; - const double ptMax_; - TH1D* hTrigMuonPtNumS_; - TH1D* hTrigMuonPtDenS_; - TH1D* deltaR_; - TH1D* deltaPtOverPt_; -}; - -bool MuTriggerAnalyzer::IsMuMatchedToHLTMu(const reco::Muon& mu, - std::vector& HLTMu, - double DR, - double DPtRel) { - size_t dim = HLTMu.size(); - size_t nPass = 0; - - // filling the denumerator; - double muRecoPt = mu.pt(); - hTrigMuonPtDenS_->Fill(muRecoPt); - - if (dim == 0) - return false; - for (size_t k = 0; k < dim; k++) { - if ((deltaR(HLTMu[k], mu) < DR) && (fabs(HLTMu[k].pt() - mu.pt()) / HLTMu[k].pt() < DPtRel)) { - nPass++; - std::cout << " matching a muon " << std::endl; - std::cout << "muon reco pt : " << muRecoPt << std::endl; - std::cout << "muon reco eta " << mu.eta() << std::endl; - std::cout << "muon trigger pt " << HLTMu[k].pt() << std::endl; - // filling the numerator, at the same bin as the denum..... - hTrigMuonPtNumS_->Fill(muRecoPt); - deltaR_->Fill(deltaR(HLTMu[k], mu)); - deltaPtOverPt_->Fill(fabs(HLTMu[k].pt() - mu.pt()) / HLTMu[k].pt()); - - std::cout << "muon trigger eta : " << HLTMu[k].eta() << std::endl; - std::cout << "deltaR((HLTMu[k], mu)): " << deltaR(HLTMu[k], mu) << std::endl; - std::cout << "deltaPtOverPt: " << fabs(HLTMu[k].pt() - mu.pt()) / HLTMu[k].pt() << std::endl; - } - } - - return (nPass > 0); -} - -MuTriggerAnalyzer::MuTriggerAnalyzer(const edm::ParameterSet& cfg) - : trigToken_(consumes(cfg.getParameter("TrigTag"))), - trigEvTag_(cfg.getParameter("triggerEvent")), - trigEvToken_(consumes(trigEvTag_)), - muonToken_(consumes >(cfg.getUntrackedParameter("muons"))), - ptMuCut_(cfg.getUntrackedParameter("ptMuCut")), - etaMuCut_(cfg.getUntrackedParameter("etaMuCut")), - hltPath_(cfg.getParameter("hltPath")), - L3FilterName_(cfg.getParameter("L3FilterName")), - maxDPtRel_(cfg.getParameter("maxDPtRel")), - maxDeltaR_(cfg.getParameter("maxDeltaR")), - nbins_(cfg.getParameter("ptMax_")), - ptMax_(cfg.getParameter("ptMax_")) { - Service fs; - - hTrigMuonPtNumS_ = fs->make("hTrigMuonPtNumS", "hTrigMuonPtNumS", nbins_ + 1, 0, ptMax_); - hTrigMuonPtDenS_ = fs->make("hTrigMuonPtDenS", "hTrigMuonPtDenS", nbins_ + 1, 0, ptMax_); - deltaR_ = fs->make("deltaR", "deltaR", nbins_ + 1, 0, maxDeltaR_); - deltaPtOverPt_ = fs->make("deltaPtOverPt", "deltaPtOverPt", nbins_ + 1, 0, maxDPtRel_); -} - -void MuTriggerAnalyzer::endJob() { - for (int i = 0; i < nbins_ + 1; ++i) { - std::cout << "number of reco muon in bin " << i << " = " << hTrigMuonPtDenS_->GetBinContent(i) << std::endl; - std::cout << "number of hlt muon in bin " << i << " = " << hTrigMuonPtNumS_->GetBinContent(i) << std::endl; - } -} - -void MuTriggerAnalyzer::analyze(const Event& ev, const EventSetup&) { - // bool overlap = false; - - // Trigger - Handle triggerResults; - TriggerNames trigNames; - if (!ev.getByToken(trigToken_, triggerResults)) { - LogWarning("") << ">>> TRIGGER collection does not exist !!!"; - return; - } - // trigNames.init(*triggerResults); - trigNames_ = &ev.triggerNames(*triggerResults); - //bool trigger_fired = false; - for (unsigned int i = 0; i < triggerResults->size(); i++) { - std::string trigName = trigNames_->triggerName(i); - if (trigName == hltPath_ && triggerResults->accept(i)) { - //trigger_fired = true; - } - } - edm::Handle handleTriggerEvent; - // LogTrace("") << ">>> Trigger bit: " << trigger_fired << " (" << hltPath_ << ")"; - if (!ev.getByToken(trigEvToken_, handleTriggerEvent)) { - LogWarning("errorTriggerEventValid") << "trigger::TriggerEvent product with InputTag " << trigEvTag_.encode() - << " not in event"; - return; - } - const trigger::TriggerObjectCollection& toc(handleTriggerEvent->getObjects()); - size_t nMuHLT = 0; - std::vector HLTMuMatched; - for (size_t ia = 0; ia < handleTriggerEvent->sizeFilters(); ++ia) { - std::string fullname = handleTriggerEvent->filterTag(ia).encode(); - std::string name; - size_t p = fullname.find_first_of(':'); - if (p != std::string::npos) { - name = fullname.substr(0, p); - } else { - name = fullname; - } - if (!toc.empty()) { - const trigger::Keys& k = handleTriggerEvent->filterKeys(ia); - for (trigger::Keys::const_iterator ki = k.begin(); ki != k.end(); ++ki) { - if (name == L3FilterName_) { - HLTMuMatched.push_back(toc[*ki].particle()); - nMuHLT++; - } - } - } - } - - // looping on muon.... - Handle > muons; - if (!ev.getByToken(muonToken_, muons)) { - LogError("") << ">>> muon collection does not exist !!!"; - return; - } - //saving only muons with pt> ptMuCut and eta highPtGlbMuons; - - for (unsigned int i = 0; i < muons->size(); i++) { - const reco::Muon& mu = muons->at(i); - double pt = mu.pt(); - double eta = mu.eta(); - if (pt > ptMuCut_ && fabs(eta) < etaMuCut_) { - if (mu.isGlobalMuon()) - highPtGlbMuons.push_back(mu); - } - } - unsigned int nHighPtGlbMu = highPtGlbMuons.size(); - std::cout << "I've got " << nHighPtGlbMu << " nHighPtGlbMu" << std::endl; - // unsigned int nHighPtStaMu = highPtStaMuons.size(); - // stop the loop after 10 cicles.... - if (nHighPtGlbMu > 10) - nHighPtGlbMu = 10; - - for (unsigned int i = 0; i < nHighPtGlbMu; i++) { - IsMuMatchedToHLTMu(highPtGlbMuons[i], HLTMuMatched, maxDeltaR_, maxDPtRel_); - } -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(MuTriggerAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZGlobalVsSAIsolationAnalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZGlobalVsSAIsolationAnalyzer.cc deleted file mode 100644 index 502a21fbc340a..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZGlobalVsSAIsolationAnalyzer.cc +++ /dev/null @@ -1,138 +0,0 @@ -#include "DataFormats/Common/interface/AssociationVector.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/EDMException.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" -#include -#include -#include - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; - -class ZGlobalVsSAIsolationAnalyzer : public edm::EDAnalyzer { -public: - typedef math::XYZVector Vector; - ZGlobalVsSAIsolationAnalyzer(const edm::ParameterSet& cfg); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - EDGetTokenT srcToken_; - double dRVeto; - double dRTrk, dREcal, dRHcal; - double ptThreshold, etEcalThreshold, etHcalThreshold; - double alpha, beta; - double isoCut_; - unsigned long selGlobal_, selSA_, totGlobal_, totSA_; - bool isolated(const Direction& dir, - const pat::IsoDeposit* trkIsoDep, - const pat::IsoDeposit* ecalIsoDep, - const pat::IsoDeposit* hcalIsoDep); - void evaluate(const reco::Candidate* dau); -}; - -ZGlobalVsSAIsolationAnalyzer::ZGlobalVsSAIsolationAnalyzer(const ParameterSet& cfg) - : srcToken_(consumes(cfg.getParameter("src"))), - dRVeto(cfg.getParameter("veto")), - dRTrk(cfg.getParameter("deltaRTrk")), - dREcal(cfg.getParameter("deltaREcal")), - dRHcal(cfg.getParameter("deltaRHcal")), - ptThreshold(cfg.getParameter("ptThreshold")), - etEcalThreshold(cfg.getParameter("etEcalThreshold")), - etHcalThreshold(cfg.getParameter("etHcalThreshold")), - alpha(cfg.getParameter("alpha")), - beta(cfg.getParameter("beta")), - isoCut_(cfg.getParameter("isoCut")), - selGlobal_(0), - selSA_(0), - totGlobal_(0), - totSA_(0) {} - -bool ZGlobalVsSAIsolationAnalyzer::isolated(const Direction& dir, - const pat::IsoDeposit* trkIsoDep, - const pat::IsoDeposit* ecalIsoDep, - const pat::IsoDeposit* hcalIsoDep) { - IsoDeposit::AbsVetos vetoTrk, vetoEcal, vetoHcal; - vetoTrk.push_back(new ConeVeto(dir, dRVeto)); - vetoTrk.push_back(new ThresholdVeto(ptThreshold)); - vetoEcal.push_back(new ConeVeto(dir, 0.)); - vetoEcal.push_back(new ThresholdVeto(etEcalThreshold)); - vetoHcal.push_back(new ConeVeto(dir, 0.)); - vetoHcal.push_back(new ThresholdVeto(etHcalThreshold)); - - double trkIso = trkIsoDep->sumWithin(dir, dRTrk, vetoTrk); - double ecalIso = ecalIsoDep->sumWithin(dir, dREcal, vetoEcal); - double hcalIso = hcalIsoDep->sumWithin(dir, dRHcal, vetoHcal); - double iso = alpha * ((0.5 * (1 + beta) * ecalIso) + (0.5 * (1 - beta) * hcalIso)) + (1 - alpha) * trkIso; - return iso < isoCut_; -} - -void ZGlobalVsSAIsolationAnalyzer::evaluate(const reco::Candidate* dau) { - const pat::Muon* mu = dynamic_cast(&*dau->masterClone()); - if (mu == nullptr) - throw Exception(errors::InvalidReference) << "Daughter is not a muon!\n"; - const pat::IsoDeposit* trkIsoDep = mu->isoDeposit(pat::TrackIso); - const pat::IsoDeposit* ecalIsoDep = mu->isoDeposit(pat::EcalIso); - const pat::IsoDeposit* hcalIsoDep = mu->isoDeposit(pat::HcalIso); - // global muon - { - Direction dir = Direction(mu->eta(), mu->phi()); - if (isolated(dir, trkIsoDep, ecalIsoDep, hcalIsoDep)) - selGlobal_++; - totGlobal_++; - } - // stand-alone - { - TrackRef sa = dau->get(); - Direction dir = Direction(sa->eta(), sa->phi()); - if (isolated(dir, trkIsoDep, ecalIsoDep, hcalIsoDep)) - selSA_++; - totSA_++; - } -} - -void ZGlobalVsSAIsolationAnalyzer::analyze(const edm::Event& event, const edm::EventSetup& setup) { - Handle dimuons; - event.getByToken(srcToken_, dimuons); - for (unsigned int i = 0; i < dimuons->size(); ++i) { - const Candidate& zmm = (*dimuons)[i]; - evaluate(zmm.daughter(0)); - evaluate(zmm.daughter(1)); - } -} - -void ZGlobalVsSAIsolationAnalyzer::endJob() { - cout << "Isolation efficiency report:" << endl; - double eff, err; - eff = double(selGlobal_) / double(totGlobal_); - err = sqrt(eff * (1. - eff) / double(totGlobal_)); - cout << "Global: " << selGlobal_ << "/" << totGlobal_ << " = " << eff << "+/-" << err << endl; - eff = double(selSA_) / double(totSA_); - err = sqrt(eff * (1. - eff) / double(totSA_)); - cout << "St.Al.: " << selSA_ << "/" << totSA_ << " = " << eff << "+/-" << err << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZGlobalVsSAIsolationAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZGoldenFilter.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZGoldenFilter.cc deleted file mode 100644 index 818789f258c17..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZGoldenFilter.cc +++ /dev/null @@ -1,196 +0,0 @@ -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "CommonTools/UtilAlgos/interface/SingleObjectSelector.h" -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "FWCore/Common/interface/TriggerNames.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Math/interface/deltaR.h" - -#include -using namespace std; -using namespace reco; -namespace edm { - class EventSetup; -} - -bool IsMuMatchedToHLTMu(const reco::Candidate* dau, std::vector HLTMu, double DR, double DPtRel) { - unsigned int dim = HLTMu.size(); - unsigned int nPass = 0; - if (dim == 0) - return false; - for (unsigned int k = 0; k < dim; k++) { - if ((deltaR(HLTMu[k], *dau) < DR) && (fabs(HLTMu[k].pt() - dau->pt()) / HLTMu[k].pt() < DPtRel)) { - nPass++; - } - } - return (nPass > 0); -} - -bool IsMuMatchedToHLTSingleMu(const reco::Candidate* dau, reco::Particle HLTMu, double DR, double DPtRel) { - unsigned int nPass = 0; - if ((deltaR(HLTMu, *dau) < DR) && (fabs(HLTMu.pt() - dau->pt()) / HLTMu.pt() < DPtRel)) { - nPass++; - } - return (nPass > 0); -} - -class ZGoldenFilter { -public: - ZGoldenFilter(const edm::ParameterSet&, edm::ConsumesCollector& iC); - bool operator()(const reco::Candidate&) const; - void newEvent(const edm::Event&, const edm::EventSetup&); - edm::EDGetTokenT trigToken_; - edm::InputTag trigEv_; - edm::EDGetTokenT trigEvToken_; - std::string cond_; - std::string hltPath_; - std::string L3FilterName_; - edm::Handle triggerResults_; - edm::TriggerNames const* trigNames_; - edm::Handle handleTriggerEvent_; - double maxDPtRel_, maxDeltaR_; -}; - -ZGoldenFilter::ZGoldenFilter(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC) - : trigToken_(iC.consumes(cfg.getParameter("TrigTag"))), - trigEv_(cfg.getParameter("triggerEvent")), - trigEvToken_(iC.consumes(trigEv_)), - cond_(cfg.getParameter("condition")), - hltPath_(cfg.getParameter("hltPath")), - L3FilterName_(cfg.getParameter("L3FilterName")), - maxDPtRel_(cfg.getParameter("maxDPtRel")), - maxDeltaR_(cfg.getParameter("maxDeltaR")) {} - -void ZGoldenFilter::newEvent(const edm::Event& ev, const edm::EventSetup&) { - if (!ev.getByToken(trigToken_, triggerResults_)) { - edm::LogWarning("") << ">>> TRIGGER collection does not exist !!!"; - return; - } - ev.getByToken(trigToken_, triggerResults_); - trigNames_ = &ev.triggerNames(*triggerResults_); - if (!ev.getByToken(trigEvToken_, handleTriggerEvent_)) { - edm::LogError("errorTriggerEventValid") - << "trigger::TriggerEvent product with InputTag " << trigEv_.encode() << " not in event"; - return; - } - ev.getByToken(trigEvToken_, handleTriggerEvent_); -} - -bool ZGoldenFilter::operator()(const reco::Candidate& z) const { - // int i = newEvent( edm::Event& const , edm::EventSetup& const ); - assert(z.numberOfDaughters() == 2); - bool singleTrigFlag0 = false; - bool singleTrigFlag1 = false; - bool exactlyOneTriggerFlag = false; - bool bothTriggerFlag = false; - bool atLeastOneTriggerFlag = false; - bool FirstTriggerFlag = false; - bool globalisTriggerFlag = false; - if ((((cond_ != "exactlyOneMatched" && cond_ != "atLeastOneMatched") && cond_ != "bothMatched") && - cond_ != "firstMatched") && - cond_ != "globalisMatched") - throw edm::Exception(edm::errors::Configuration) - << "Invalid condition type: " << cond_ << ". Valid types are:" - << " exactlyOneMatched, atLeastOneMatched, bothMatched, firstMatched,globalisMatched\n"; - const reco::Candidate* dau0 = z.daughter(0); - const reco::Candidate* dau1 = z.daughter(1); - const trigger::TriggerObjectCollection& toc(handleTriggerEvent_->getObjects()); - unsigned int nMuHLT = 0; - std::vector HLTMuMatched; - for (unsigned int ia = 0; ia < handleTriggerEvent_->sizeFilters(); ++ia) { - std::string fullname = handleTriggerEvent_->filterTag(ia).encode(); - std::string name; - size_t p = fullname.find_first_of(':'); - if (p != std::string::npos) { - name = fullname.substr(0, p); - } else { - name = fullname; - } - if (!toc.empty()) { - const trigger::Keys& k = handleTriggerEvent_->filterKeys(ia); - for (trigger::Keys::const_iterator ki = k.begin(); ki != k.end(); ++ki) { - if (name == L3FilterName_) { - HLTMuMatched.push_back(toc[*ki].particle()); - nMuHLT++; - } - } - } - } - /*trigger_fired is unused in all later code - bool trigger_fired = false; - for (unsigned int i=0; isize(); i++) { - std::string trigName = trigNames_->triggerName(i); - if ( trigName == hltPath_ && triggerResults_->accept(i)) trigger_fired = true; - }*/ - bool firstdismuon = (dau0->isGlobalMuon() ? true : false); - bool firstdisStandAlone = (dau0->isStandAloneMuon() ? true : false); - std::vector IsDau0Matched_; - std::vector IsDau1Matched_; - if (dau0 != nullptr) { - // checking if dau0 is matched to any HLT muon.... - singleTrigFlag0 = IsMuMatchedToHLTMu(dau0, HLTMuMatched, maxDeltaR_, maxDPtRel_); - - for (unsigned int y = 0; y < HLTMuMatched.size(); y++) { - IsDau0Matched_.push_back(IsMuMatchedToHLTSingleMu(dau0, HLTMuMatched[y], maxDeltaR_, maxDPtRel_)); - } - } - bool secondismuon = (dau1->isGlobalMuon() ? true : false); - bool secondisStandAlone = (dau1->isStandAloneMuon() ? true : false); - if (dau1 != nullptr && (secondismuon || secondisStandAlone)) { - singleTrigFlag1 = IsMuMatchedToHLTMu(dau1, HLTMuMatched, maxDeltaR_, maxDPtRel_); - for (unsigned int y = 0; y < HLTMuMatched.size(); y++) { - IsDau1Matched_.push_back(IsMuMatchedToHLTSingleMu(dau1, HLTMuMatched[y], maxDeltaR_, maxDPtRel_)); - } - } - if ((IsDau0Matched_.size() * IsDau1Matched_.size()) != 0) { - for (unsigned int y = 0; y < IsDau1Matched_.size(); y++) { - if (IsDau0Matched_[y] == true && IsDau1Matched_[y] == true) { - std::cout << "WARNING--> I'm matching the two muons to the same HLT muon....." << std::endl; - } - } - } - if (!singleTrigFlag0 && !singleTrigFlag1) - return false; - if ((singleTrigFlag0 && singleTrigFlag1) && secondismuon) - bothTriggerFlag = true; - if (((singleTrigFlag0 && !singleTrigFlag1) && secondismuon) || - ((!singleTrigFlag0 && singleTrigFlag1) && secondismuon)) - exactlyOneTriggerFlag = true; - if ((((singleTrigFlag0 && firstdismuon) && secondisStandAlone) && !secondismuon) || - (((singleTrigFlag1 && secondismuon) && firstdisStandAlone) && !firstdismuon)) - globalisTriggerFlag = true; - if ((singleTrigFlag0 && !singleTrigFlag1) && !secondismuon) - FirstTriggerFlag = true; - if ((singleTrigFlag0 || singleTrigFlag1) && secondismuon) - atLeastOneTriggerFlag = true; - if (cond_ == "exactlyOneMatched") - return exactlyOneTriggerFlag; - if (cond_ == "atLeastOneMatched") - return atLeastOneTriggerFlag; - if (cond_ == "bothMatched") - return bothTriggerFlag; - if (cond_ == "firstMatched") - return FirstTriggerFlag; - if (cond_ == "globalisMatched") - return globalisTriggerFlag; - return false; -} - -#include "CommonTools/UtilAlgos/interface/SingleObjectSelector.h" -#include "CommonTools/UtilAlgos/interface/AndSelector.h" -#include "CommonTools/UtilAlgos/interface/StringCutObjectSelector.h" -#include "CommonTools/UtilAlgos/interface/EventSetupInitTrait.h" - -EVENTSETUP_STD_INIT(ZGoldenFilter); - -typedef SingleObjectSelector, - AndSelector > > - ZGoldenSelectorAndFilter; - -DEFINE_FWK_MODULE(ZGoldenSelectorAndFilter); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZHLTMatchFilter.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZHLTMatchFilter.cc deleted file mode 100644 index 50cdb87af8d0a..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZHLTMatchFilter.cc +++ /dev/null @@ -1,103 +0,0 @@ -/* \class ZHLTFilter - * - * \author Pasquale Noli, Universita' di Napoli & INFN Napoli - * - */ -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "CommonTools/UtilAlgos/interface/SingleObjectSelector.h" -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/PatCandidates/interface/PATObject.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h" -#include -using namespace std; -namespace modules { - struct ZHLTMatchFilter { - ZHLTMatchFilter(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC) - : cond_(cfg.getParameter("condition")), hltPath_(cfg.getParameter("hltPath")) {} - bool operator()(const reco::Candidate& z) const { - assert(z.numberOfDaughters() == 2); - bool singleTrigFlag0 = false; - bool singleTrigFlag1 = false; - bool exactlyOneTriggerFlag = false; - bool bothTriggerFlag = false; - bool atLeastOneTriggerFlag = false; - bool FirstTriggerFlag = false; - bool globalisTriggerFlag = false; - if ((((cond_ != "exactlyOneMatched" && cond_ != "atLeastOneMatched") && cond_ != "bothMatched") && - cond_ != "firstMatched") && - cond_ != "globalisMatched") - throw edm::Exception(edm::errors::Configuration) - << "Invalid condition type: " << cond_ << ". Valid types are:" - << " exactlyOneMatched, atLeastOneMatched, bothMatched, firstMatched,globalisMatched\n"; - const reco::Candidate* dau0 = z.daughter(0); - const reco::Candidate* m0 = &*dau0->masterClone(); - const pat::Muon* mu0 = dynamic_cast(m0); //cast in patMuon - bool firstismuon = (dau0->isGlobalMuon() ? true : false); - bool firstisStandAlone = (dau0->isStandAloneMuon() ? true : false); - bool firstisTrackerMuon = (dau0->isTrackerMuon() ? true : false); - if (mu0 != nullptr && (firstismuon || firstisStandAlone || firstisTrackerMuon)) { - // get the vector of trigger objects matched to the muon corresponding to hltPath_ - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = mu0->triggerObjectMatchesByPath(hltPath_); - - int dimTrig0 = mu0HLTMatches.size(); - if (dimTrig0 != 0) { - singleTrigFlag0 = true; - } - } - const reco::Candidate* dau1 = z.daughter(1); - const reco::Candidate* m1 = &*dau1->masterClone(); - bool secondismuon = (dau1->isGlobalMuon() ? true : false); - bool secondisStandAlone = (dau1->isStandAloneMuon() ? true : false); - bool secondisTrackerMuon = (dau1->isTrackerMuon() ? true : false); - const pat::Muon* mu1 = dynamic_cast(m1); - if (mu1 != nullptr && (secondismuon || secondisStandAlone || secondisTrackerMuon)) { - // get the vector of trigger objects matched to the muon corresponding to hltPath_ - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = mu1->triggerObjectMatchesByPath(hltPath_); - - int dimTrig1 = mu1HLTMatches.size(); - if (dimTrig1 != 0) { - singleTrigFlag1 = true; - } - } - if (!singleTrigFlag0 && !singleTrigFlag1) - return false; - if ((singleTrigFlag0 && singleTrigFlag1) && firstismuon && secondismuon) - bothTriggerFlag = true; - if (((singleTrigFlag0 && !singleTrigFlag1) && firstismuon && secondismuon) || - ((!singleTrigFlag0 && singleTrigFlag1) && firstismuon && secondismuon)) - exactlyOneTriggerFlag = true; - if ((((singleTrigFlag0 && firstismuon) && (secondisStandAlone || secondisTrackerMuon)) && !secondismuon) || - (((singleTrigFlag1 && secondismuon) && (firstisStandAlone || firstisTrackerMuon)) && !firstismuon)) - globalisTriggerFlag = true; - - if ((singleTrigFlag0 && !singleTrigFlag1) && !secondismuon) - FirstTriggerFlag = true; - if ((singleTrigFlag0 || singleTrigFlag1) && firstismuon && secondismuon) - atLeastOneTriggerFlag = true; - if (cond_ == "exactlyOneMatched") - return exactlyOneTriggerFlag; - if (cond_ == "atLeastOneMatched") - return atLeastOneTriggerFlag; - if (cond_ == "bothMatched") - return bothTriggerFlag; - if (cond_ == "firstMatched") - return FirstTriggerFlag; - if (cond_ == "globalisMatched") - return globalisTriggerFlag; - - return false; - } - - private: - std::string cond_; - std::string hltPath_; - }; -} // namespace modules - -typedef SingleObjectSelector, modules::ZHLTMatchFilter> ZHLTMatchFilter; - -DEFINE_FWK_MODULE(ZHLTMatchFilter); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZHistogrammer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZHistogrammer.cc deleted file mode 100644 index 6b3f9c15639c3..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZHistogrammer.cc +++ /dev/null @@ -1,216 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "TH1.h" - -class ZHistogrammer : public edm::EDAnalyzer { -public: - ZHistogrammer(const edm::ParameterSet &pset); - -private: - void analyze(const edm::Event &event, const edm::EventSetup &setup) override; - edm::EDGetTokenT zToken_; - edm::EDGetTokenT genToken_; - edm::EDGetTokenT matchToken_; - unsigned int nbinsMass_, nbinsPt_, nbinsAng_, nbinsMassRes_; - double massMax_, ptMax_, angMax_, massResMax_; - TH1F *h_nZ_, *h_mZ_, *h_ptZ_, *h_phiZ_, *h_thetaZ_, *h_etaZ_, *h_rapidityZ_; - TH1F *h_invmMuMu_; - TH1F *h_nZMC_, *h_mZMC_, *h_ptZMC_, *h_phiZMC_, *h_thetaZMC_, *h_etaZMC_, *h_rapidityZMC_; - TH1F *h_invmMuMuMC_; - //TH1F *h_mZ2vs3MC_, *h_ptZ2vs3MC_, *h_phiZ2vs3MC_, *h_thetaZ2vs3MC_, *h_etaZ2vs3MC_, *h_rapidityZ2vs3MC_; - TH1F *h_mResZ_, *h_ptResZ_, *h_phiResZ_, *h_thetaResZ_, *h_etaResZ_, *h_rapidityResZ_; - TH1F *h_mResZMuMu_, *h_mRatioZMuMu_; - TH1F *h_mResZMuMuMC_, *h_mRatioZMuMuMC_; -}; - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include -#include - -using namespace std; -using namespace reco; -using namespace edm; - -ZHistogrammer::ZHistogrammer(const ParameterSet &pset) - : zToken_(consumes(pset.getParameter("z"))), - genToken_(consumes(pset.getParameter("gen"))), - matchToken_(consumes(pset.getParameter("match"))), - nbinsMass_(pset.getUntrackedParameter("nbinsMass")), - nbinsPt_(pset.getUntrackedParameter("nbinsPt")), - nbinsAng_(pset.getUntrackedParameter("nbinsAng")), - nbinsMassRes_(pset.getUntrackedParameter("nbinsMassRes")), - massMax_(pset.getUntrackedParameter("massMax")), - ptMax_(pset.getUntrackedParameter("ptMax")), - angMax_(pset.getUntrackedParameter("angMax")), - massResMax_(pset.getUntrackedParameter("massResMax")) { - cout << ">>> Z Histogrammer constructor" << endl; - Service fs; - TFileDirectory ZHisto = fs->mkdir("ZRecoHisto"); - TFileDirectory ZMCHisto = fs->mkdir("ZMCHisto"); - TFileDirectory ZResHisto = fs->mkdir("ZResolutionHisto"); - //TFileDirectory Z2vs3MCHisto = fs->mkdir( "Z2vs3MCHisto" ); - h_nZ_ = ZHisto.make("ZNumber", "number of Z particles", 11, -0.5, 10.5); - h_mZ_ = ZHisto.make("ZMass", "Z mass (GeV/c^{2})", nbinsMass_, 0, massMax_); - h_ptZ_ = ZHisto.make("ZPt", "Z p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - h_phiZ_ = ZHisto.make("ZPhi", "Z #phi", nbinsAng_, -angMax_, angMax_); - h_thetaZ_ = ZHisto.make("Ztheta", "Z #theta", nbinsAng_, 0, angMax_); - h_etaZ_ = ZHisto.make("ZEta", "Z #eta", nbinsAng_, -angMax_, angMax_); - h_rapidityZ_ = ZHisto.make("ZRapidity", "Z rapidity", nbinsAng_, -angMax_, angMax_); - h_invmMuMu_ = ZHisto.make("MuMuMass", "#mu #mu invariant mass", nbinsMass_, 0, massMax_); - h_nZMC_ = ZMCHisto.make("ZMCNumber", "number of Z MC particles", 11, -0.5, 10.5); - h_mZMC_ = ZMCHisto.make("ZMCMass", "Z MC mass (GeV/c^{2})", nbinsMass_, 0, massMax_); - h_ptZMC_ = ZMCHisto.make("ZMCPt", "Z MC p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - h_phiZMC_ = ZMCHisto.make("ZMCPhi", "Z MC #phi", nbinsAng_, -angMax_, angMax_); - h_thetaZMC_ = ZMCHisto.make("ZMCTheta", "Z MC #theta", nbinsAng_, 0, angMax_); - h_etaZMC_ = ZMCHisto.make("ZMCEta", "Z MC #eta", nbinsAng_, -angMax_, angMax_); - h_rapidityZMC_ = ZMCHisto.make("ZMCRapidity", "Z MC rapidity", nbinsAng_, -angMax_, angMax_); - h_invmMuMuMC_ = ZMCHisto.make("MuMuMCMass", "#mu #mu MC invariant mass", nbinsMass_, 0, massMax_); - /* - h_mZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCMass", "Z MC st 2 vs st 3 mass (GeV/c^{2})", - nbinsMassRes_, -massResMax_, massResMax_); - h_ptZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCPt", "Z MC st 2 vs st 3 p_{t} (GeV/c)", - nbinsPt_, -ptMax_, ptMax_); - h_phiZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCPhi", "Z MC st 2 vs st 3 #phi", - nbinsAng_, -angMax_, angMax_); - h_thetaZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCTheta", "Z MC st 2 vs st 3 #theta", - nbinsAng_, -angMax_, angMax_); - h_etaZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCEta", "Z MC st 2 vs st 3 #eta", - nbinsAng_, -angMax_, angMax_); - h_rapidityZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCRapidity", "Z MC st 2 vs st 3 rapidity", - nbinsAng_, -angMax_, angMax_); - */ - h_mResZ_ = ZResHisto.make( - "ZMassResolution", "Z mass Resolution (GeV/c^{2})", nbinsMassRes_, -massResMax_, massResMax_); - h_ptResZ_ = ZResHisto.make("ZPtResolution", "Z p_{t} Resolution (GeV/c)", nbinsPt_, -ptMax_, ptMax_); - h_phiResZ_ = ZResHisto.make("ZPhiResolution", "Z #phi Resolution", nbinsAng_, -angMax_, angMax_); - h_thetaResZ_ = ZResHisto.make("ZThetaResolution", "Z #theta Resolution", nbinsAng_, -angMax_, angMax_); - h_etaResZ_ = ZResHisto.make("ZEtaResolution", "Z #eta Resolution", nbinsAng_, -angMax_, angMax_); - h_rapidityResZ_ = ZResHisto.make("ZRapidityResolution", "Z rapidity Resolution", nbinsAng_, -angMax_, angMax_); - h_mResZMuMu_ = ZResHisto.make("ZToMuMuRecoMassResolution", - "Z Reco vs matched final state #mu #mu mass Difference (GeV/c^{2})", - nbinsMassRes_, - -massResMax_, - massResMax_); - h_mRatioZMuMu_ = - ZResHisto.make("ZToMuMuRecoMassRatio", "Z Reco vs matched final state #mu #mu mass Ratio", 4000, 0, 2); - h_mResZMuMuMC_ = ZResHisto.make("ZToMuMuMCMassResolution", - "Z vs final state #mu #mu MC mass Difference (GeV/c^{2})", - nbinsMassRes_ / 2 + 1, - -2 * massResMax_ / nbinsMassRes_, - massResMax_); - h_mRatioZMuMuMC_ = - ZResHisto.make("ZToMuMuMCMassRatio", "Z vs final state #mu #mu MC mass Ratio", 2002, 0.999, 2); -} - -void ZHistogrammer::analyze(const edm::Event &event, const edm::EventSetup &setup) { - cout << ">>> Z Histogrammer analyze" << endl; - Handle z; - Handle gen; - Handle match; - event.getByToken(zToken_, z); - event.getByToken(genToken_, gen); - event.getByToken(matchToken_, match); - h_nZ_->Fill(z->size()); - for (unsigned int i = 0; i < z->size(); ++i) { - const Candidate &zCand = (*z)[i]; - h_mZ_->Fill(zCand.mass()); - h_ptZ_->Fill(zCand.pt()); - h_phiZ_->Fill(zCand.phi()); - h_thetaZ_->Fill(zCand.theta()); - h_etaZ_->Fill(zCand.eta()); - h_rapidityZ_->Fill(zCand.rapidity()); - CandidateRef zCandRef(z, i); - CandidateRef zMCMatch = (*match)[zCandRef]; - if (zMCMatch.isNonnull() && zMCMatch->pdgId() == 23) { - h_mResZ_->Fill(zCandRef->mass() - zMCMatch->mass()); - h_ptResZ_->Fill(zCandRef->pt() - zMCMatch->pt()); - h_phiResZ_->Fill(zCandRef->phi() - zMCMatch->phi()); - h_thetaResZ_->Fill(zCandRef->theta() - zMCMatch->theta()); - h_etaResZ_->Fill(zCandRef->eta() - zMCMatch->eta()); - h_rapidityResZ_->Fill(zCandRef->rapidity() - zMCMatch->rapidity()); - const Candidate *dau0 = zMCMatch->daughter(0); - const Candidate *dau1 = zMCMatch->daughter(1); - for (unsigned int i0 = 0; i0 < dau0->numberOfDaughters(); ++i0) { - const Candidate *ddau0 = dau0->daughter(i0); - if (abs(ddau0->pdgId()) == 13 && ddau0->status() == 1) { - dau0 = ddau0; - break; - } - } - for (unsigned int i1 = 0; i1 < dau1->numberOfDaughters(); ++i1) { - const Candidate *ddau1 = dau1->daughter(i1); - if (abs(ddau1->pdgId()) == 13 && ddau1->status() == 1) { - dau1 = ddau1; - break; - } - } - assert(abs(dau0->pdgId()) == 13 && dau0->status() == 1); - assert(abs(dau1->pdgId()) == 13 && dau1->status() == 1); - double invMass = (dau0->p4() + dau1->p4()).mass(); - h_invmMuMu_->Fill(invMass); - h_mResZMuMu_->Fill(zCand.mass() - invMass); - h_mRatioZMuMu_->Fill(zCand.mass() / invMass); - } - } - h_nZMC_->Fill(gen->size()); - for (unsigned int i = 0; i < gen->size(); ++i) { - const Candidate &genCand = (*gen)[i]; - if ((genCand.pdgId() == 23) && (genCand.status() == 2)) //this is an intermediate Z0 - cout << ">>> intermediate Z0 found, with " << genCand.numberOfDaughters() << " daughters" << endl; - if ((genCand.pdgId() == 23) && (genCand.status() == 3)) { //this is a Z0 - cout << ">>> Z0 found, with " << genCand.numberOfDaughters() << " daughters" << endl; - h_mZMC_->Fill(genCand.mass()); - h_ptZMC_->Fill(genCand.pt()); - h_phiZMC_->Fill(genCand.phi()); - h_thetaZMC_->Fill(genCand.theta()); - h_etaZMC_->Fill(genCand.eta()); - h_rapidityZMC_->Fill(genCand.rapidity()); - Particle::LorentzVector pZ(0, 0, 0, 0); - int nMu = 0; - for (unsigned int j = 0; j < genCand.numberOfDaughters(); ++j) { - const Candidate *dauGen = genCand.daughter(j); - /* - if((dauGen->pdgId() == 23) && (dauGen->status() == 2)) { - h_mZ2vs3MC_->Fill(genCand.mass() - dauGen->mass()); - h_ptZ2vs3MC_->Fill(genCand.pt() - dauGen->pt()); - h_phiZ2vs3MC_->Fill(genCand.phi() - dauGen->phi()); - h_thetaZ2vs3MC_->Fill(genCand.theta() - dauGen->theta()); - h_etaZ2vs3MC_->Fill(genCand.eta() - dauGen->eta()); - h_rapidityZ2vs3MC_->Fill(genCand.rapidity() - dauGen->rapidity()); - } - */ - if ((abs(dauGen->pdgId()) == 13) && (dauGen->numberOfDaughters() != 0)) { - //we are looking for photons of final state radiation - cout << ">>> The muon " << j << " has " << dauGen->numberOfDaughters() << " daughters" << endl; - for (unsigned int k = 0; k < dauGen->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen->daughter(k); - cout << ">>> Mu " << j << " daughter MC " << k << " PDG Id " << dauMuGen->pdgId() << ", status " - << dauMuGen->status() << ", charge " << dauMuGen->charge() << endl; - if (abs(dauMuGen->pdgId()) == 13 && dauMuGen->status() == 1) { - pZ += dauMuGen->p4(); - nMu++; - } - } - } - } - assert(nMu == 2); - double mZ = pZ.mass(); - h_invmMuMuMC_->Fill(mZ); - h_mResZMuMuMC_->Fill(genCand.mass() - mZ); - h_mRatioZMuMuMC_->Fill(genCand.mass() / mZ); - } - } -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZHistogrammer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZLONLOHistogrammer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZLONLOHistogrammer.cc deleted file mode 100644 index 4ba3347ac9133..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZLONLOHistogrammer.cc +++ /dev/null @@ -1,220 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "TH1.h" - -class ZLONLOHistogrammer : public edm::EDAnalyzer { -public: - ZLONLOHistogrammer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - edm::EDGetTokenT genToken_; - edm::EDGetTokenT weightsToken_; - unsigned int nbinsMass_, nbinsPt_, nbinsAng_; - double massMax_, ptMax_, angMax_; - double accPtMin_, accMassMin_, accMassMax_, accEtaMin_, accEtaMax_; - TH1F *h_nZ_, *h_mZ_, *h_ptZ_, *h_phiZ_, *h_thetaZ_, *h_etaZ_, *h_rapidityZ_; - TH1F *h_mZMC_, *h_ptZMC_, *h_phiZMC_, *h_thetaZMC_, *h_etaZMC_, *h_rapidityZMC_; - TH1F *hardpt, *softpt, *hardeta, *softeta; - TH1F* h_weight_histo; - bool isMCatNLO_; - unsigned int nAcc_, nBothMuHasZHasGrandMa_; -}; - -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - -#include "HepMC/WeightContainer.h" -#include "HepMC/GenEvent.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include -#include - -using namespace std; -using namespace reco; -using namespace edm; - -ZLONLOHistogrammer::ZLONLOHistogrammer(const ParameterSet& pset) - : genToken_(consumes(pset.getParameter("genParticles"))), - weightsToken_(consumes(pset.getParameter("weights"))), - nbinsMass_(pset.getUntrackedParameter("nbinsMass")), - nbinsPt_(pset.getUntrackedParameter("nbinsPt")), - nbinsAng_(pset.getUntrackedParameter("nbinsAng")), - massMax_(pset.getUntrackedParameter("massMax")), - ptMax_(pset.getUntrackedParameter("ptMax")), - angMax_(pset.getUntrackedParameter("angMax")), - accPtMin_(pset.getUntrackedParameter("accPtMin")), - accMassMin_(pset.getUntrackedParameter("accMassMin")), - accMassMax_(pset.getUntrackedParameter("accMassMax")), - accEtaMin_(pset.getUntrackedParameter("accEtaMin")), - accEtaMax_(pset.getUntrackedParameter("accEtaMax")), - isMCatNLO_(pset.getUntrackedParameter("isMCatNLO")) { - cout << ">>> Z Histogrammer constructor" << endl; - Service fs; - TFileDirectory ZHisto = fs->mkdir("ZRecHisto"); - TFileDirectory ZMCHisto = fs->mkdir("ZMCHisto"); - h_nZ_ = ZHisto.make("ZNumber", "number of Z particles", 11, -0.5, 10.5); - h_mZ_ = ZHisto.make("ZMass", "Z mass (GeV/c^{2})", nbinsMass_, 0, massMax_); - h_ptZ_ = ZHisto.make("ZPt", "Z p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - h_phiZ_ = ZHisto.make("ZPhi", "Z #phi", nbinsAng_, -angMax_, angMax_); - h_thetaZ_ = ZHisto.make("Ztheta", "Z #theta", nbinsAng_, 0, angMax_); - h_etaZ_ = ZHisto.make("ZEta", "Z #eta", nbinsAng_, -angMax_, angMax_); - h_rapidityZ_ = ZHisto.make("ZRapidity", "Z rapidity", nbinsAng_, -angMax_, angMax_); - h_weight_histo = ZMCHisto.make("weight_histo", "weight_histo", 20, -10, 10); - - h_mZMC_ = ZMCHisto.make("ZMCMass", "Z MC mass (GeV/c^{2})", nbinsMass_, 0, massMax_); - h_ptZMC_ = ZMCHisto.make("ZMCPt", "Z MC p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - hardpt = ZMCHisto.make("hardpt", "hard muon p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - softpt = ZMCHisto.make("softpt", "soft muon p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - - h_phiZMC_ = ZMCHisto.make("ZMCPhi", "Z MC #phi", nbinsAng_, -angMax_, angMax_); - h_thetaZMC_ = ZMCHisto.make("ZMCTheta", "Z MC #theta", nbinsAng_, 0, angMax_); - h_etaZMC_ = ZMCHisto.make("ZMCEta", "Z MC #eta", nbinsAng_, -angMax_, angMax_); - h_rapidityZMC_ = ZMCHisto.make("ZMCRapidity", "Z MC y", nbinsAng_, -angMax_, angMax_); - - hardeta = ZMCHisto.make("hard muon eta", "hard muon #eta", nbinsAng_, -angMax_, angMax_); - softeta = ZMCHisto.make("soft muon eta", "soft muon #eta", nbinsAng_, -angMax_, angMax_); - nAcc_ = 0; - nBothMuHasZHasGrandMa_ = 0; -} - -void ZLONLOHistogrammer::analyze(const edm::Event& event, const edm::EventSetup& setup) { - cout << ">>> Z Histogrammer analyze" << endl; - - Handle gen; - Handle weights; - - event.getByToken(genToken_, gen); - event.getByToken(weightsToken_, weights); - - // get weight and fill it to histogram - - double weight = *weights; - if (!weight) - weight = 1.; - h_weight_histo->Fill(weight); - - if (isMCatNLO_) { - weight > 0 ? weight = 1. : weight = -1.; - } - - std::vector muons; - if (!isMCatNLO_) { - // LO.... - for (unsigned int i = 0; i < gen->size(); ++i) { - const GenParticle& muMC = (*gen)[i]; - // filling only muons coming form Z - if (abs(muMC.pdgId()) == 13 && muMC.status() == 1 && muMC.numberOfMothers() > 0) { - if (muMC.mother()->numberOfMothers() > 0) { - cout << "I'm getting a muon \n" - << "with " - << "muMC.numberOfMothers() " << muMC.numberOfMothers() << "\n the first mother has pdgId " - << muMC.mother()->pdgId() << "with " - << "muMC.mother()->numberOfMothers() " << muMC.mother()->numberOfMothers() - << "\n the first grandma has pdgId " << muMC.mother()->mother()->pdgId() << endl; - if (muMC.mother()->mother()->pdgId() == 23) - muons.push_back(muMC); - } - } - } - } else { - // NLO - for (unsigned int i = 0; i < gen->size(); ++i) { - const GenParticle& muMC = (*gen)[i]; - if (abs(muMC.pdgId()) == 13 && muMC.status() == 1 && muMC.numberOfMothers() > 0) { - if (muMC.mother()->numberOfMothers() > 0) { - cout << "I'm getting a muon \n" - << "with " - << "muMC.numberOfMothers() " << muMC.numberOfMothers() << "\n the first mother has pdgId " - << muMC.mother()->pdgId() << "with " - << "muMC.mother()->numberOfMothers() " << muMC.mother()->numberOfMothers() - << "\n the first grandma has pdgId " << muMC.mother()->mother()->pdgId() << endl; - // filling withoput requiring that the grandma is a Z...... sometimes the grandma are still muons, otherwise those are fake muons, but the first two are always the desired muons.... - muons.push_back(muMC); - } - } - } - } - - cout << "finally I selected " << muons.size() << " muons" << endl; - - // if there are at least two muons, - // calculate invarant mass of first two and fill it into histogram - - //if isMCatNLO_...... - - double inv_mass = 0.0; - double Zpt_ = 0.0; - double Zeta_ = 0.0; - double Ztheta_ = 0.0; - double Zphi_ = 0.0; - double Zrapidity_ = 0.0; - - if (muons.size() > 1) { - if (muons[0].mother()->mother()->pdgId() == 23 && muons[1].mother()->mother()->pdgId() == 23) - nBothMuHasZHasGrandMa_++; - math::XYZTLorentzVector tot_momentum(muons[0].p4()); - math::XYZTLorentzVector mom2(muons[1].p4()); - tot_momentum += mom2; - inv_mass = sqrt(tot_momentum.mass2()); - Zpt_ = tot_momentum.pt(); - Zeta_ = tot_momentum.eta(); - Ztheta_ = tot_momentum.theta(); - Zphi_ = tot_momentum.phi(); - Zrapidity_ = tot_momentum.Rapidity(); - - // IMPORTANT: use the weight of the event ... - - double weight_sign = (weight > 0) ? 1. : -1.; - //double weight_sign = 1. ; - h_mZMC_->Fill(inv_mass, weight_sign); - h_ptZMC_->Fill(Zpt_, weight_sign); - h_etaZMC_->Fill(Zeta_, weight_sign); - h_thetaZMC_->Fill(Ztheta_, weight_sign); - h_phiZMC_->Fill(Zphi_, weight_sign); - h_rapidityZMC_->Fill(Zrapidity_, weight_sign); - - double pt1 = muons[0].pt(); - double pt2 = muons[1].pt(); - double eta1 = muons[0].eta(); - double eta2 = muons[1].eta(); - - if (pt1 > pt2) { - hardpt->Fill(pt1, weight_sign); - softpt->Fill(pt2, weight_sign); - hardeta->Fill(eta1, weight_sign); - softeta->Fill(eta2, weight_sign); - } else { - hardpt->Fill(pt2, weight_sign); - softpt->Fill(pt1, weight_sign); - hardeta->Fill(eta2, weight_sign); - softeta->Fill(eta1, weight_sign); - } - - //evaluating the geometric acceptance - if (pt1 >= accPtMin_ && pt2 >= accPtMin_ && fabs(eta1) >= accEtaMin_ && fabs(eta2) >= accEtaMin_ && - fabs(eta1) <= accEtaMax_ && fabs(eta2) <= accEtaMax_ && inv_mass >= accMassMin_ && inv_mass <= accMassMax_) - nAcc_++; - } -} - -void ZLONLOHistogrammer::endJob() { - cout << " number of events accepted :" << nAcc_ << endl; - cout << " number of total events :" << h_mZMC_->GetEntries() << endl; - cout << " number of cases in which BothMuHasZHasGrandMa :" << nBothMuHasZHasGrandMa_ << endl; - double eff = (double)nAcc_ / (double)h_mZMC_->GetEntries(); - double err = sqrt(eff * (1. - eff) / (double)h_mZMC_->GetEntries()); - cout << " geometric acceptance: " << eff << "+/-" << err << endl; -} -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZLONLOHistogrammer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMCHistogrammer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMCHistogrammer.cc deleted file mode 100644 index da6fed31a39d1..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMCHistogrammer.cc +++ /dev/null @@ -1,243 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "TH1.h" - -class ZMCHistogrammer : public edm::EDAnalyzer { -public: - ZMCHistogrammer(const edm::ParameterSet &pset); - -private: - void analyze(const edm::Event &event, const edm::EventSetup &setup) override; - edm::EDGetTokenT zToken_; - edm::EDGetTokenT genToken_; - edm::EDGetTokenT > matchToken_; - edm::EDGetTokenT hepMCProductToken_; - unsigned int nbinsMass_, nbinsPt_, nbinsAng_, nbinsMassRes_; - double massMax_, ptMax_, angMax_, massResMax_; - TH1F *h_nZ_, *h_mZ_, *h_ptZ_, *h_phiZ_, *h_thetaZ_, *h_etaZ_, *h_rapidityZ_; - TH1F *h_invmMuMu_; - TH1F *h_nZMC_, *h_mZMC_, *h_ptZMC_, *h_phiZMC_, *h_thetaZMC_, *h_etaZMC_, *h_rapidityZMC_; - TH1F *h_invmMuMuMC_, *h_weight_histo; - //TH1F *h_mZ2vs3MC_, *h_ptZ2vs3MC_, *h_phiZ2vs3MC_, *h_thetaZ2vs3MC_, *h_etaZ2vs3MC_, *h_rapidityZ2vs3MC_; - TH1F *h_mResZ_, *h_ptResZ_, *h_phiResZ_, *h_thetaResZ_, *h_etaResZ_, *h_rapidityResZ_; - TH1F *h_mResZMuMu_, *h_mRatioZMuMu_; - TH1F *h_mResZMuMuMC_, *h_mRatioZMuMuMC_; - bool isMCatNLO_; -}; - -#include "DataFormats/Candidate/interface/CandMatchMap.h" - -#include "HepMC/WeightContainer.h" -#include "HepMC/GenEvent.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include -#include - -using namespace std; -using namespace reco; -using namespace edm; - -ZMCHistogrammer::ZMCHistogrammer(const ParameterSet &pset) - : zToken_(consumes(pset.getParameter("z"))), - genToken_(consumes(pset.getParameter("gen"))), - matchToken_(consumes >(pset.getParameter("match"))), - hepMCProductToken_(consumes(pset.getParameter("hepMCProductTag"))), - nbinsMass_(pset.getUntrackedParameter("nbinsMass")), - nbinsPt_(pset.getUntrackedParameter("nbinsPt")), - nbinsAng_(pset.getUntrackedParameter("nbinsAng")), - nbinsMassRes_(pset.getUntrackedParameter("nbinsMassRes")), - massMax_(pset.getUntrackedParameter("massMax")), - ptMax_(pset.getUntrackedParameter("ptMax")), - angMax_(pset.getUntrackedParameter("angMax")), - massResMax_(pset.getUntrackedParameter("massResMax")), - isMCatNLO_(pset.getUntrackedParameter("isMCatNLO")) { - cout << ">>> Z Histogrammer constructor" << endl; - Service fs; - TFileDirectory ZHisto = fs->mkdir("ZRecoHisto"); - TFileDirectory ZMCHisto = fs->mkdir("ZMCHisto"); - TFileDirectory ZResHisto = fs->mkdir("ZResolutionHisto"); - //TFileDirectory Z2vs3MCHisto = fs->mkdir( "Z2vs3MCHisto" ); - h_nZ_ = ZHisto.make("ZNumber", "number of Z particles", 11, -0.5, 10.5); - h_mZ_ = ZHisto.make("ZMass", "Z mass (GeV/c^{2})", nbinsMass_, 0, massMax_); - h_ptZ_ = ZHisto.make("ZPt", "Z p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - h_phiZ_ = ZHisto.make("ZPhi", "Z #phi", nbinsAng_, -angMax_, angMax_); - h_thetaZ_ = ZHisto.make("Ztheta", "Z #theta", nbinsAng_, 0, angMax_); - h_etaZ_ = ZHisto.make("ZEta", "Z #eta", nbinsAng_, -angMax_, angMax_); - h_rapidityZ_ = ZHisto.make("ZRapidity", "Z rapidity", nbinsAng_, -angMax_, angMax_); - h_invmMuMu_ = ZHisto.make("MuMuMass", "#mu #mu invariant mass", nbinsMass_, 0, massMax_); - h_weight_histo = ZHisto.make("weight_histo", "weight_histo", 20, -10, 10); - h_nZMC_ = ZMCHisto.make("ZMCNumber", "number of Z MC particles", 11, -0.5, 10.5); - h_mZMC_ = ZMCHisto.make("ZMCMass", "Z MC mass (GeV/c^{2})", nbinsMass_, 0, massMax_); - h_ptZMC_ = ZMCHisto.make("ZMCPt", "Z MC p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - h_phiZMC_ = ZMCHisto.make("ZMCPhi", "Z MC #phi", nbinsAng_, -angMax_, angMax_); - h_thetaZMC_ = ZMCHisto.make("ZMCTheta", "Z MC #theta", nbinsAng_, 0, angMax_); - h_etaZMC_ = ZMCHisto.make("ZMCEta", "Z MC #eta", nbinsAng_, -angMax_, angMax_); - h_rapidityZMC_ = ZMCHisto.make("ZMCRapidity", "Z MC rapidity", nbinsAng_, -angMax_, angMax_); - h_invmMuMuMC_ = ZMCHisto.make("MuMuMCMass", "#mu #mu MC invariant mass", nbinsMass_, 0, massMax_); - /* - h_mZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCMass", "Z MC st 2 vs st 3 mass (GeV/c^{2})", - nbinsMassRes_, -massResMax_, massResMax_); - h_ptZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCPt", "Z MC st 2 vs st 3 p_{t} (GeV/c)", - nbinsPt_, -ptMax_, ptMax_); - h_phiZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCPhi", "Z MC st 2 vs st 3 #phi", - nbinsAng_, -angMax_, angMax_); - h_thetaZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCTheta", "Z MC st 2 vs st 3 #theta", - nbinsAng_, -angMax_, angMax_); - h_etaZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCEta", "Z MC st 2 vs st 3 #eta", - nbinsAng_, -angMax_, angMax_); - h_rapidityZ2vs3MC_ = Z2vs3MCHisto.make("Z2vs3MCRapidity", "Z MC st 2 vs st 3 rapidity", - nbinsAng_, -angMax_, angMax_); - */ - h_mResZ_ = ZResHisto.make( - "ZMassResolution", "Z mass Resolution (GeV/c^{2})", nbinsMassRes_, -massResMax_, massResMax_); - h_ptResZ_ = ZResHisto.make("ZPtResolution", "Z p_{t} Resolution (GeV/c)", nbinsPt_, -ptMax_, ptMax_); - h_phiResZ_ = ZResHisto.make("ZPhiResolution", "Z #phi Resolution", nbinsAng_, -angMax_, angMax_); - h_thetaResZ_ = ZResHisto.make("ZThetaResolution", "Z #theta Resolution", nbinsAng_, -angMax_, angMax_); - h_etaResZ_ = ZResHisto.make("ZEtaResolution", "Z #eta Resolution", nbinsAng_, -angMax_, angMax_); - h_rapidityResZ_ = ZResHisto.make("ZRapidityResolution", "Z rapidity Resolution", nbinsAng_, -angMax_, angMax_); - h_mResZMuMu_ = ZResHisto.make("ZToMuMuRecoMassResolution", - "Z Reco vs matched final state #mu #mu mass Difference (GeV/c^{2})", - nbinsMassRes_, - -massResMax_, - massResMax_); - h_mRatioZMuMu_ = - ZResHisto.make("ZToMuMuRecoMassRatio", "Z Reco vs matched final state #mu #mu mass Ratio", 4000, 0, 2); - h_mResZMuMuMC_ = ZResHisto.make("ZToMuMuMCMassResolution", - "Z vs final state #mu #mu MC mass Difference (GeV/c^{2})", - nbinsMassRes_ / 2 + 1, - -2 * massResMax_ / nbinsMassRes_, - massResMax_); - h_mRatioZMuMuMC_ = - ZResHisto.make("ZToMuMuMCMassRatio", "Z vs final state #mu #mu MC mass Ratio", 2002, 0.999, 2); -} - -void ZMCHistogrammer::analyze(const edm::Event &event, const edm::EventSetup &setup) { - cout << ">>> Z Histogrammer analyze" << endl; - Handle z; - Handle gen; - Handle > match; - event.getByToken(zToken_, z); - event.getByToken(genToken_, gen); - event.getByToken(matchToken_, match); - h_nZ_->Fill(z->size()); - - // get HepMC::GenEvent ... - Handle evt_h; - event.getByToken(hepMCProductToken_, evt_h); - HepMC::GenEvent *evt = new HepMC::GenEvent(*(evt_h->GetEvent())); - - // get weight and fill it to histogram - HepMC::WeightContainer weights = evt->weights(); - double weight = weights.front(); - if (!weight) - weight = 1.; - h_weight_histo->Fill(weight); - - if (isMCatNLO_) { - weight > 0 ? weight = 1. : weight = -1.; - } - - for (unsigned int i = 0; i < z->size(); ++i) { - const Candidate &zCand = (*z)[i]; - h_mZ_->Fill(zCand.mass(), weight); - h_ptZ_->Fill(zCand.pt(), weight); - h_phiZ_->Fill(zCand.phi(), weight); - h_thetaZ_->Fill(zCand.theta(), weight); - h_etaZ_->Fill(zCand.eta(), weight); - h_rapidityZ_->Fill(zCand.rapidity(), weight); - CandidateBaseRef zCandRef = z->refAt(i); - - GenParticleRef zMCMatch = (*match)[i]; - if (zMCMatch.isNonnull() && zMCMatch->pdgId() == 23) { - h_mResZ_->Fill(zCandRef->mass() - zMCMatch->mass()); - h_ptResZ_->Fill(zCandRef->pt() - zMCMatch->pt()); - h_phiResZ_->Fill(zCandRef->phi() - zMCMatch->phi()); - h_thetaResZ_->Fill(zCandRef->theta() - zMCMatch->theta()); - h_etaResZ_->Fill(zCandRef->eta() - zMCMatch->eta()); - h_rapidityResZ_->Fill(zCandRef->rapidity() - zMCMatch->rapidity()); - const Candidate *dau0 = zMCMatch->daughter(0); - const Candidate *dau1 = zMCMatch->daughter(1); - for (unsigned int i0 = 0; i0 < dau0->numberOfDaughters(); ++i0) { - const Candidate *ddau0 = dau0->daughter(i0); - if (abs(ddau0->pdgId()) == 13 && ddau0->status() == 1) { - dau0 = ddau0; - break; - } - } - for (unsigned int i1 = 0; i1 < dau1->numberOfDaughters(); ++i1) { - const Candidate *ddau1 = dau1->daughter(i1); - if (abs(ddau1->pdgId()) == 13 && ddau1->status() == 1) { - dau1 = ddau1; - break; - } - } - assert(abs(dau0->pdgId()) == 13 && dau0->status() == 1); - assert(abs(dau1->pdgId()) == 13 && dau1->status() == 1); - double invMass = (dau0->p4() + dau1->p4()).mass(); - h_invmMuMu_->Fill(invMass, weight); - h_mResZMuMu_->Fill(zCand.mass() - invMass); - h_mRatioZMuMu_->Fill(zCand.mass() / invMass); - } - } - h_nZMC_->Fill(gen->size()); - for (unsigned int i = 0; i < gen->size(); ++i) { - const Candidate &genCand = (*gen)[i]; - if ((genCand.pdgId() == 23) && (genCand.status() == 2)) //this is an intermediate Z0 - cout << ">>> intermediate Z0 found, with " << genCand.numberOfDaughters() << " daughters" << endl; - if ((genCand.pdgId() == 23) && (genCand.status() == 3)) { //this is a Z0 - cout << ">>> Z0 found, with " << genCand.numberOfDaughters() << " daughters" << endl; - h_mZMC_->Fill(genCand.mass(), weight); - h_ptZMC_->Fill(genCand.pt(), weight); - h_phiZMC_->Fill(genCand.phi(), weight); - h_thetaZMC_->Fill(genCand.theta(), weight); - h_etaZMC_->Fill(genCand.eta(), weight); - h_rapidityZMC_->Fill(genCand.rapidity(), weight); - Particle::LorentzVector pZ(0, 0, 0, 0); - int nMu = 0; - for (unsigned int j = 0; j < genCand.numberOfDaughters(); ++j) { - const Candidate *dauGen = genCand.daughter(j); - /* - if((dauGen->pdgId() == 23) && (dauGen->status() == 2)) { - h_mZ2vs3MC_->Fill(genCand.mass() - dauGen->mass()); - h_ptZ2vs3MC_->Fill(genCand.pt() - dauGen->pt()); - h_phiZ2vs3MC_->Fill(genCand.phi() - dauGen->phi()); - h_thetaZ2vs3MC_->Fill(genCand.theta() - dauGen->theta()); - h_etaZ2vs3MC_->Fill(genCand.eta() - dauGen->eta()); - h_rapidityZ2vs3MC_->Fill(genCand.rapidity() - dauGen->rapidity()); - } - */ - if ((abs(dauGen->pdgId()) == 13) && (dauGen->numberOfDaughters() != 0)) { - //we are looking for photons of final state radiation - cout << ">>> The muon " << j << " has " << dauGen->numberOfDaughters() << " daughters" << endl; - for (unsigned int k = 0; k < dauGen->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen->daughter(k); - cout << ">>> Mu " << j << " daughter MC " << k << " PDG Id " << dauMuGen->pdgId() << ", status " - << dauMuGen->status() << ", charge " << dauMuGen->charge() << endl; - if (abs(dauMuGen->pdgId()) == 13 && dauMuGen->status() == 1) { - pZ += dauMuGen->p4(); - nMu++; - } - } - } - } - assert(nMu == 2); - double mZ = pZ.mass(); - h_invmMuMuMC_->Fill(mZ, weight); - h_mResZMuMuMC_->Fill(genCand.mass() - mZ); - h_mRatioZMuMuMC_->Fill(genCand.mass() / mZ); - } - } -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMCHistogrammer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMassHistogrammer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMassHistogrammer.cc deleted file mode 100644 index 127fb3226a474..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMassHistogrammer.cc +++ /dev/null @@ -1,74 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "TH1.h" - -class ZMassHistogrammer : public edm::EDAnalyzer { -public: - ZMassHistogrammer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - edm::EDGetTokenT zToken_; - edm::EDGetTokenT genToken_; - TH1F *h_mZ_, *h_mZMC_; -}; - -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include - -using namespace std; -using namespace reco; -using namespace edm; - -ZMassHistogrammer::ZMassHistogrammer(const ParameterSet& pset) - : zToken_(consumes(pset.getParameter("z"))), - genToken_(consumes(pset.getParameter("gen"))) { - cout << ">>> Z Mass constructor" << endl; - Service fs; - h_mZ_ = fs->make("ZMass", "Z mass (GeV/c^{2})", 100, 0, 200); - h_mZMC_ = fs->make("ZMCMass", "Z MC mass (GeV/c^{2})", 100, 0, 200); -} - -void ZMassHistogrammer::analyze(const edm::Event& event, const edm::EventSetup& setup) { - cout << ">>> Z Mass analyze" << endl; - Handle z; - Handle gen; - event.getByToken(zToken_, z); - event.getByToken(genToken_, gen); - for (unsigned int i = 0; i < z->size(); ++i) { - const Candidate& zCand = (*z)[i]; - h_mZ_->Fill(zCand.mass()); - } - for (unsigned int i = 0; i < gen->size(); ++i) { - const Candidate& genCand = (*gen)[i]; - if ((genCand.pdgId() == 23) && (genCand.status() == 2)) //this is an intermediate Z0 - cout << ">>> intermediate Z0 found, with " << genCand.numberOfDaughters() << " daughters" << endl; - if ((genCand.pdgId() == 23) && (genCand.status() == 3)) { //this is a Z0 - cout << ">>> Z0 found, with " << genCand.numberOfDaughters() << " daughters" << endl; - h_mZMC_->Fill(genCand.mass()); - if (genCand.numberOfDaughters() == 3) { //Z0 decays in mu+ mu-, the 3rd daughter is the same Z0 - const Candidate* dauGen0 = genCand.daughter(0); - const Candidate* dauGen1 = genCand.daughter(1); - const Candidate* dauGen2 = genCand.daughter(2); - cout << ">>> daughter MC 0 PDG Id " << dauGen0->pdgId() << ", status " << dauGen0->status() << ", charge " - << dauGen0->charge() << endl; - cout << ">>> daughter MC 1 PDG Id " << dauGen1->pdgId() << ", status " << dauGen1->status() << ", charge " - << dauGen1->charge() << endl; - cout << ">>> daughter MC 2 PDG Id " << dauGen2->pdgId() << ", status " << dauGen2->status() << ", charge " - << dauGen2->charge() << endl; - } - } - } -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMassHistogrammer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuAnalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuAnalyzer.cc deleted file mode 100644 index bbe091199533a..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuAnalyzer.cc +++ /dev/null @@ -1,306 +0,0 @@ -/* \class ZMuMuAnalyzer - * - * Z->mu+m- standard analysis for cross section - * measurements. Take as input the output of the - * standard EWK skim: zToMuMu - * - * Produces mass spectra and other histograms for - * the samples in input: - * - * + Z -> mu+mu-, both muons are "global" muons - * + Z -> mu+mu-, one muons is "global" muons, one unmatched tracks - * + Z -> mu+mu-, one muons is "global" muons, one unmatched stand-alone muon - * - * - * \author Michele de Gruttola, INFN Naples - * - * - */ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Common/interface/AssociationVector.h" -#include "TH1.h" -#include -#include -using namespace edm; -using namespace std; -using namespace reco; - -typedef edm::AssociationVector > IsolationCollection; - -class ZMuMuAnalyzer : public edm::EDAnalyzer { -public: - ZMuMuAnalyzer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - - OverlapChecker overlap_; - EDGetTokenT zMuMuToken_; - EDGetTokenT zMuTrackToken_; - EDGetTokenT zMuStandAloneToken_; - EDGetTokenT muIsoToken_; - EDGetTokenT trackIsoToken_; - EDGetTokenT standAloneIsoToken_; - EDGetTokenT zMuMuMapToken_; - EDGetTokenT zMuTrackMapToken_; - EDGetTokenT zMuStandAloneMapToken_; - double isocut_, etacut_, ptcut_, ptSTAcut_, minZmass_, maxZmass_; - TH1D *h_zMuMu_mass_, *h_zMuSingleTrack_mass_, *h_zMuSingleStandAlone_mass_, *h_zMuSingleStandAloneOverlap_mass_, - *h_zMuMuMatched_mass_, *h_zMuSingleTrackMatched_mass_, *h_zMuSingleStandAloneMatched_mass_, - *h_zMuSingleStandAloneOverlapMatched_mass_; -}; - -ZMuMuAnalyzer::ZMuMuAnalyzer(const edm::ParameterSet& pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - zMuTrackToken_(consumes(pset.getParameter("zMuTrack"))), - zMuStandAloneToken_(consumes(pset.getParameter("zMuStandAlone"))), - muIsoToken_(consumes(pset.getParameter("muIso"))), - trackIsoToken_(consumes(pset.getParameter("trackIso"))), - standAloneIsoToken_(consumes(pset.getParameter("standAloneIso"))), - zMuMuMapToken_(mayConsume(pset.getParameter("zMuMuMap"))), - zMuTrackMapToken_(mayConsume(pset.getParameter("zMuTrackMap"))), - zMuStandAloneMapToken_(mayConsume(pset.getParameter("zMuStandAloneMap"))), - isocut_(pset.getParameter("isocut")), - etacut_(pset.getParameter("etacut")), - ptcut_(pset.getParameter("ptcut")), - ptSTAcut_(pset.getParameter("ptSTAcut")), - - minZmass_(pset.getParameter("minZmass")), - maxZmass_(pset.getParameter("maxZmass")) { - Service fs; - h_zMuMu_mass_ = fs->make("ZMuMumass", "ZMuMu mass(GeV)", 200, 0., 200.); - h_zMuSingleTrack_mass_ = fs->make("ZMuSingleTrackmass", "ZMuSingleTrack mass(GeV)", 100, 0., 200.); - h_zMuSingleStandAlone_mass_ = - fs->make("ZMuSingleStandAlonemass", "ZMuSingleStandAlone mass(GeV)", 50, 0., 200.); - h_zMuSingleStandAloneOverlap_mass_ = - fs->make("ZMuSingleStandAloneOverlapmass", "ZMuSingleStandAloneOverlap mass(GeV)", 50, 0., 200.); - - h_zMuMuMatched_mass_ = fs->make("ZMuMuMatchedmass", "ZMuMu Matched mass(GeV)", 200, 0., 200.); - h_zMuSingleTrackMatched_mass_ = - fs->make("ZMuSingleTrackmassMatched", "ZMuSingleTrackMatched mass(GeV)", 100, 0., 200.); - h_zMuSingleStandAloneMatched_mass_ = - fs->make("ZMuSingleStandAlonemassMatched", "ZMuSingleStandAloneMatched mass(GeV)", 50, 0., 200.); - h_zMuSingleStandAloneOverlapMatched_mass_ = fs->make( - "ZMuSingleStandAloneOverlapmassMatched", "ZMuSingleStandAloneMatched Overlap mass(GeV)", 50, 0., 200.); -} - -void ZMuMuAnalyzer::analyze(const edm::Event& event, const edm::EventSetup& setup) { - Handle zMuMu; - event.getByToken(zMuMuToken_, zMuMu); - Handle zMuTrack; - event.getByToken(zMuTrackToken_, zMuTrack); - Handle zMuStandAlone; - event.getByToken(zMuStandAloneToken_, zMuStandAlone); - - unsigned int nZMuMu = zMuMu->size(); - unsigned int nZTrackMu = zMuTrack->size(); - unsigned int nZStandAloneMu = zMuStandAlone->size(); - static const double zMass = 91.1876; // PDG Z mass - - // cout << "nZMuMu = " << nZMuMu << endl; - // cout << "nZTrackMu = " << nZTrackMu << endl; - // cout << "nZStandAloneMu = " << nZStandAloneMu << endl; - - Handle zMuMuMap; - if (nZMuMu > 0) { - event.getByToken(zMuMuMapToken_, zMuMuMap); - } - - Handle zMuTrackMap; - if (nZTrackMu > 0) { - event.getByToken(zMuTrackMapToken_, zMuTrackMap); - } - - Handle zMuStandAloneMap; - if (nZStandAloneMu > 0) { - event.getByToken(zMuStandAloneMapToken_, zMuStandAloneMap); - } - - Handle muIso; - event.getByToken(muIsoToken_, muIso); - ProductID muIsoId = muIso->keyProduct().id(); - Handle trackIso; - event.getByToken(trackIsoToken_, trackIso); - ProductID trackIsoId = trackIso->keyProduct().id(); - - Handle standAloneIso; - event.getByToken(standAloneIsoToken_, standAloneIso); - ProductID standAloneIsoId = standAloneIso->keyProduct().id(); - - if (nZMuMu > 0) { - double mass = 1000000.; - for (unsigned int i = 0; i < nZMuMu; i++) { - const Candidate& zmmCand = (*zMuMu)[i]; - CandidateRef CandRef(zMuMu, i); - CandidateRef lep1 = zmmCand.daughter(0)->masterClone().castTo(); - CandidateRef lep2 = zmmCand.daughter(1)->masterClone().castTo(); - - const double iso1 = muIso->value(lep1.key()); - const double iso2 = muIso->value(lep2.key()); - - double m = zmmCand.mass(); - if (lep1->pt() > ptcut_ && lep2->pt() > ptcut_ && fabs(lep1->eta()) < etacut_ && fabs(lep2->eta()) < etacut_ && - m > minZmass_ && m < maxZmass_ && iso1 < isocut_ && iso2 < isocut_) { - if (fabs(mass - zMass) > fabs(m - zMass)) { - mass = m; - } - - h_zMuMu_mass_->Fill(mass); - CandMatchMap::const_iterator m0 = zMuMuMap->find(CandRef); - if (m0 != zMuMuMap->end()) { - h_zMuMuMatched_mass_->Fill(mass); - } - } - } - } - - //ZmuSingleTRack - if (nZMuMu == 0 && nZTrackMu > 0) { - for (unsigned int j = 0; j < nZTrackMu; j++) { - const Candidate& ztmCand = (*zMuTrack)[j]; - CandidateRef CandRef(zMuTrack, j); - CandidateRef lep1 = ztmCand.daughter(0)->masterClone().castTo(); - CandidateRef lep2 = ztmCand.daughter(1)->masterClone().castTo(); - - ProductID id1 = lep1.id(); - ProductID id2 = lep2.id(); - double iso1 = -1; - double iso2 = -1; - - if (id1 == muIsoId) - iso1 = muIso->value(lep1.key()); - else if (id1 == trackIsoId) - iso1 = trackIso->value(lep1.key()); - - if (id2 == muIsoId) - iso2 = muIso->value(lep2.key()); - else if (id2 == trackIsoId) - iso2 = trackIso->value(lep2.key()); - - double mt = ztmCand.mass(); - if (lep1->pt() > ptcut_ && lep2->pt() > ptcut_ && fabs(lep1->eta()) < etacut_ && fabs(lep2->eta()) < etacut_ && - mt > minZmass_ && mt < maxZmass_ && iso1 < isocut_ && iso2 < isocut_) { - h_zMuSingleTrack_mass_->Fill(mt); - CandMatchMap::const_iterator m0 = zMuTrackMap->find(CandRef); - if (m0 != zMuTrackMap->end()) { - h_zMuSingleTrackMatched_mass_->Fill(mt); - } - } - } - } - - //ZmuSingleStandAlone - if (nZMuMu == 0 && nZStandAloneMu > 0) { - // unsigned int index = 1000; - for (unsigned int j = 0; j < nZStandAloneMu; j++) { - const Candidate& zsmCand = (*zMuStandAlone)[j]; - CandidateRef CandRef(zMuStandAlone, j); - CandidateRef lep1 = zsmCand.daughter(0)->masterClone().castTo(); - CandidateRef lep2 = zsmCand.daughter(1)->masterClone().castTo(); - - ProductID id1 = lep1.id(); - ProductID id2 = lep2.id(); - double iso1 = -1; - double iso2 = -1; - - if (id1 == muIsoId) - iso1 = muIso->value(lep1.key()); - else if (id1 == standAloneIsoId) - iso1 = standAloneIso->value(lep1.key()); - - if (id2 == muIsoId) - iso2 = muIso->value(lep2.key()); - else if (id2 == standAloneIsoId) - iso2 = standAloneIso->value(lep2.key()); - - double ms = zsmCand.mass(); - if (lep1->pt() > ptSTAcut_ && lep2->pt() > ptSTAcut_ && fabs(lep1->eta()) < etacut_ && - fabs(lep2->eta()) < etacut_ && ms > minZmass_ && ms < maxZmass_ && iso1 < isocut_ && iso2 < isocut_) { - h_zMuSingleStandAlone_mass_->Fill(ms); - CandMatchMap::const_iterator m0 = zMuStandAloneMap->find(CandRef); - if (m0 != zMuStandAloneMap->end()) { - h_zMuSingleStandAloneMatched_mass_->Fill(ms); - } - - bool noOverlap = true; - for (unsigned int j = 0; j < zMuTrack->size(); j++) { - const Candidate& ztmCand = (*zMuTrack)[j]; - CandidateRef CandReft(zMuTrack, j); - - CandidateRef lep1 = ztmCand.daughter(0)->masterClone().castTo(); - CandidateRef lep2 = ztmCand.daughter(1)->masterClone().castTo(); - - ProductID id1 = lep1.id(); - ProductID id2 = lep2.id(); - double iso1 = -1; - double iso2 = -1; - - if (id1 == muIsoId) - iso1 = muIso->value(lep1.key()); - else if (id1 == trackIsoId) - iso1 = trackIso->value(lep1.key()); - - if (id2 == muIsoId) - iso2 = muIso->value(lep2.key()); - else if (id2 == trackIsoId) - iso2 = trackIso->value(lep2.key()); - - double mt = ztmCand.mass(); - if (lep1->pt() > ptcut_ && lep2->pt() > ptcut_ && fabs(lep1->eta()) < etacut_ && - fabs(lep2->eta()) < etacut_ && mt > minZmass_ && mt < maxZmass_ && iso1 < isocut_ && iso2 < isocut_) { - if (overlap_(ztmCand, zsmCand)) { - noOverlap = false; - break; - } - if (!noOverlap) { - h_zMuSingleStandAloneOverlap_mass_->Fill(ms); - CandMatchMap::const_iterator m1 = zMuTrackMap->find(CandReft); - CandMatchMap::const_iterator m2 = zMuStandAloneMap->find(CandRef); - - if (m1 != zMuTrackMap->end() && m2 != zMuStandAloneMap->end()) { - h_zMuSingleStandAloneOverlapMatched_mass_->Fill(ms); - } - } - } - } - } - } - } -} - -void ZMuMuAnalyzer::endJob() { - double Nzmm = h_zMuMu_mass_->GetEntries(); - double Nzsm = h_zMuSingleStandAlone_mass_->GetEntries(); - double Nzsnom = h_zMuSingleStandAloneOverlap_mass_->GetEntries(); - double Nztm = h_zMuSingleTrack_mass_->GetEntries(); - - double NzmmMatch = h_zMuMuMatched_mass_->GetEntries(); - double NzsmMatch = h_zMuSingleStandAloneMatched_mass_->GetEntries(); - double NzsnomMatch = h_zMuSingleStandAloneOverlapMatched_mass_->GetEntries(); - double NztmMatch = h_zMuSingleTrackMatched_mass_->GetEntries(); - - cout << "-- N SingleTrackMu = " << Nztm << endl; - cout << "-----N SinglStandAloneMu = " << Nzsm << endl; - cout << "-----N SingleStandAloneOverlapMu = " << Nzsnom << endl; - cout << "------- N MuMu = " << Nzmm << endl; - - cout << "-- N SingleTrackMuMatched = " << NztmMatch << endl; - cout << "-----N SinglStandAloneMuMatched = " << NzsmMatch << endl; - cout << "-----N SingleStandAloneOverlapMuMatched = " << NzsnomMatch << endl; - cout << "------- N MuMu Matched = " << NzmmMatch << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuAnalyzer_cynematics.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuAnalyzer_cynematics.cc deleted file mode 100644 index dd9014889cc93..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuAnalyzer_cynematics.cc +++ /dev/null @@ -1,873 +0,0 @@ -/* \class ZMuMuAnalyzer_cynematics - * - * Z->mu+m- standard analysis for cross section - * measurements. Take as input the output of the - * standard EWK skim: zToMuMu - * - * Produces mass spectra and other histograms for - * the samples in input: - * - * + Z -> mu+mu-, both muons are "global" muons - * + Z -> mu+mu-, one muons is "global" muons, one unmatched tracks - * + Z -> mu+mu-, one muons is "global" muons, one unmatched stand-alone muon - * - * - * \author Michele de Gruttola, - * \modified by Davide Piccolo, INFN Naples to include gerarchyc selection of Z and histos as a finction of eta pt phi - * - * - * - */ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "TFile.h" -#include "TH1.h" -#include "TH2.h" -#include -#include -#include -using namespace edm; -using namespace std; -using namespace reco; - -typedef edm::AssociationVector > IsolationCollection; - -class ZMuMuAnalyzer_cynematics : public edm::EDAnalyzer { -public: - ZMuMuAnalyzer_cynematics(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - bool isContained(const Candidate&, const Candidate&); - void endJob() override; - - OverlapChecker overlap_; - EDGetTokenT zMuMuToken_; - EDGetTokenT zMuTrackToken_; - EDGetTokenT zMuStandAloneToken_; - EDGetTokenT muIsoToken_; - EDGetTokenT trackIsoToken_; - EDGetTokenT standAloneIsoToken_; - EDGetTokenT zMuMuMapToken_; - EDGetTokenT zMuTrackMapToken_; - EDGetTokenT zMuStandAloneMapToken_; - double isocut_, etacut_, ptcut_, ptSTAcut_, minZmass_, maxZmass_; - TH1D *h_zMuMu_numberOfCand, *h_zMuMu_numberOfCand_passed, *h_zMuMu_numberOfCand_ptpassed, - *h_zMuMu_numberOfCand_etapassed, *h_zMuMu_numberOfCand_masspassed, *h_zMuMu_numberOfCand_isopassed, - *h_zMuMu_numberOfCand_ptetapassed, *h_zMuMu_numberOfCand_ptetamasspassed, *h_zMuMu_mass_, *h_zMuSingleTrack_mass_, - *h_zMuSingleStandAlone_mass_, *h_zMuSingleStandAloneOverlap_mass_, *h_zMuMuMatched_mass_, - *h_zMuSingleTrackMatched_mass_, *h_zMuSingleStandAloneMatched_mass_, *h_zMuSingleStandAloneOverlapMatched_mass_; - - TH1D *h_zMuSta_numberOfCand, *h_zMuSta_numberOfCand_passed, *h_zMuSta_MCmatched_numberOfCand_passed, - *h_zMuSta_numberOfCand_notcontained, *h_zMuTrack_numberOfCand, *h_zMuTrack_numberOfCand_notcontained, - *h_zMuTrack_numberOfCand_passed, *h_zMuTrack_MCmatched_numberOfCand_passed; - TH2D* h_OneSta_mass; - - double etamin, etamax, phimin, phimax, ptmin, ptmax; - int numberOfIntervals; // number of intervals in which to divide cynematic variables - double binEta, binPhi, binPt; - vector hmumu_eta, hmusta_eta, hmutrack_eta; - vector hmumu_phi, hmusta_phi, hmutrack_phi; - vector hmumu_pt, hmusta_pt, hmutrack_pt; -}; - -ZMuMuAnalyzer_cynematics::ZMuMuAnalyzer_cynematics(const edm::ParameterSet& pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - zMuTrackToken_(consumes(pset.getParameter("zMuTrack"))), - zMuStandAloneToken_(consumes(pset.getParameter("zMuStandAlone"))), - muIsoToken_(consumes(pset.getParameter("muIso"))), - trackIsoToken_(consumes(pset.getParameter("trackIso"))), - standAloneIsoToken_(consumes(pset.getParameter("standAloneIso"))), - zMuMuMapToken_(mayConsume(pset.getParameter("zMuMuMap"))), - zMuTrackMapToken_(mayConsume(pset.getParameter("zMuTrackMap"))), - zMuStandAloneMapToken_(mayConsume(pset.getParameter("zMuStandAloneMap"))), - isocut_(pset.getParameter("isocut")), - etacut_(pset.getParameter("etacut")), - ptcut_(pset.getParameter("ptcut")), - ptSTAcut_(pset.getParameter("ptSTAcut")), - minZmass_(pset.getParameter("minZmass")), - maxZmass_(pset.getParameter("maxZmass")) { - Service fs; - h_zMuMu_numberOfCand = fs->make("ZMuMunumberOfCand", "number of ZMuMu cand", 10, -.5, 9.5); - h_zMuMu_numberOfCand_passed = - fs->make("ZMuMunumberOfCandpassed", "number of ZMuMu cand selected", 10, -.5, 9.5); - h_zMuMu_numberOfCand_ptpassed = - fs->make("ZMuMunumberOfCandptpassed", "number of ZMuMu cand after pt cut selected", 10, -.5, 9.5); - h_zMuMu_numberOfCand_etapassed = - fs->make("ZMuMunumberOfCandetapassed", "number of ZMuMu cand after eta cut selected", 10, -.5, 9.5); - h_zMuMu_numberOfCand_masspassed = - fs->make("ZMuMunumberOfCandmasspassed", "number of ZMuMu cand after mass cut selected", 10, -.5, 9.5); - h_zMuMu_numberOfCand_isopassed = - fs->make("ZMuMunumberOfCandisopassed", "number of ZMuMu cand after iso cut selected", 10, -.5, 9.5); - h_zMuMu_numberOfCand_ptetapassed = - fs->make("ZMuMunumberOfCandptetapassed", "number of ZMuMu cand after pt & eta cut selected", 10, -.5, 9.5); - h_zMuMu_numberOfCand_ptetamasspassed = fs->make( - "ZMuMunumberOfCandptetamaspassed", "number of ZMuMu cand after pt & eta & mass cut selected", 10, -.5, 9.5); - - h_zMuMu_mass_ = fs->make("ZMuMumass", "ZMuMu mass(GeV)", 200, 0., 200.); - h_zMuSingleTrack_mass_ = fs->make("ZMuSingleTrackmass", "ZMuSingleTrack mass(GeV)", 100, 0., 200.); - h_zMuSingleStandAlone_mass_ = - fs->make("ZMuSingleStandAlonemass", "ZMuSingleStandAlone mass(GeV)", 50, 0., 200.); - h_zMuSingleStandAloneOverlap_mass_ = - fs->make("ZMuSingleStandAloneOverlapmass", "ZMuSingleStandAloneOverlap mass(GeV)", 50, 0., 200.); - - h_zMuMuMatched_mass_ = fs->make("ZMuMuMatchedmass", "ZMuMu Matched mass(GeV)", 200, 0., 200.); - h_zMuSingleTrackMatched_mass_ = - fs->make("ZMuSingleTrackmassMatched", "ZMuSingleTrackMatched mass(GeV)", 100, 0., 200.); - h_zMuSingleStandAloneMatched_mass_ = - fs->make("ZMuSingleStandAlonemassMatched", "ZMuSingleStandAloneMatched mass(GeV)", 50, 0., 200.); - h_zMuSingleStandAloneOverlapMatched_mass_ = fs->make( - "ZMuSingleStandAloneOverlapmassMatched", "ZMuSingleStandAloneMatched Overlap mass(GeV)", 50, 0., 200.); - - h_zMuSta_numberOfCand = - fs->make("ZMuStanumberOfCand", "number of ZMuSta cand (if ZMuMu not selected)", 10, -.5, 9.5); - h_OneSta_mass = - fs->make("ZOneMuStaMass", - "inv. mass of ZMuSta1 vs ZMuSta2 when one ZMuSta has been found (if ZMuMu not selected)", - 100, - 0., - 400, - 100, - 0., - 400.); - h_zMuSta_numberOfCand_notcontained = fs->make( - "ZMuStanumberOfCandnotcontained", "number of independent ZMuSta cand (if ZMuMu not selected)", 10, -.5, 9.5); - h_zMuSta_numberOfCand_passed = fs->make( - "ZMuStanumberOfCandpassed", "number of ZMuSta cand selected (if ZMuMu not selected)", 10, -.5, 9.5); - h_zMuSta_MCmatched_numberOfCand_passed = - fs->make("ZMuStaMCmatchedNumberOfCandpassed", - "number of ZMuSta MC matched cand selected (if ZMuMu not selected)", - 10, - -.5, - 9.5); - h_zMuTrack_numberOfCand = - fs->make("ZMuTranumberOfCand", "number of ZMuTrack cand (if ZMuMu and ZMuSTa not selected)", 10, -.5, 9.5); - h_zMuTrack_numberOfCand_notcontained = - fs->make("ZMuTranumberOfCandnotcontaind", - "number of indeendent ZMuTrack cand (if ZMuMu and ZMuSTa not selected)", - 10, - -.5, - 9.5); - h_zMuTrack_numberOfCand_passed = fs->make( - "ZMuTranumberOfCandpassed", "number of ZMuTrack cand selected (if ZMuMu and ZMuSta not selected)", 10, -.5, 9.5); - h_zMuTrack_MCmatched_numberOfCand_passed = - fs->make("ZMuTraMCmacthedNumberOfCandpassed", - "number of ZMuTrack MC matched cand selected (if ZMuMu and ZMuSta not selected)", - 10, - -.5, - 9.5); - - // creating histograms for each Pt, eta, phi interval - - etamin = -etacut_; - etamax = etacut_; - phimin = -3.1415; - phimax = 3.1415; - ptmin = ptcut_; - ptmax = 100; - numberOfIntervals = 8; // number of intervals in which to divide cynematic variables - binEta = (etamax - etamin) / numberOfIntervals; - binPhi = (phimax - phimin) / numberOfIntervals; - binPt = (ptmax - ptmin) / numberOfIntervals; - TFileDirectory etaDirectory = - fs->mkdir("etaIntervals"); // in this directory will be saved all the histos of different eta intervals - TFileDirectory phiDirectory = - fs->mkdir("phiIntervals"); // in this directory will be saved all the histos of different phi intervals - TFileDirectory ptDirectory = - fs->mkdir("ptIntervals"); // in this directory will be saved all the histos of different pt intervals - - // eta histograms creation - - for (int i = 0; i < numberOfIntervals; i++) { - double range0 = etamin + i * binEta; - double range1 = range0 + binEta; - char a[30], b[50]; - sprintf(a, "zmumu_etaRange%d", i); - sprintf(b, "zmumu mass eta Range %f to %f", range0, range1); - hmumu_eta.push_back(etaDirectory.make(a, b, 200, 0., 200.)); - char asta[30], bsta[50]; - sprintf(asta, "zmusta_etaRange%d", i); - sprintf(bsta, "zmusta mass eta Range %f to %f", range0, range1); - hmusta_eta.push_back(etaDirectory.make(asta, bsta, 50, 0., 200.)); - char atk[30], btk[50]; - sprintf(atk, "zmutrack_etaRange%d", i); - sprintf(btk, "zmutrack mass eta Range %f to %f", range0, range1); - hmutrack_eta.push_back(etaDirectory.make(atk, btk, 100, 0., 200.)); - } - - // phi histograms creation - - for (int i = 0; i < numberOfIntervals; i++) { - double range0 = phimin + i * binPhi; - double range1 = range0 + binPhi; - char a[30], b[50]; - sprintf(a, "zmumu_phiRange%d", i); - sprintf(b, "zmumu mass phi Range %f to %f", range0, range1); - hmumu_phi.push_back(phiDirectory.make(a, b, 200, 0., 200.)); - char asta[30], bsta[50]; - sprintf(asta, "zmusta_phiRange%d", i); - sprintf(bsta, "zmusta mass phi Range %f to %f", range0, range1); - hmusta_phi.push_back(phiDirectory.make(asta, bsta, 50, 0., 200.)); - char atk[30], btk[50]; - sprintf(atk, "zmutrack_phiRange%d", i); - sprintf(btk, "zmutrack mass phi Range %f to %f", range0, range1); - hmutrack_phi.push_back(phiDirectory.make(atk, btk, 100, 0., 200.)); - } - - // pt histograms creation - - for (int i = 0; i < numberOfIntervals; i++) { - double range0 = ptmin + i * binPt; - double range1 = range0 + binPt; - char a[30], b[50]; - sprintf(a, "zmumu_ptRange%d", i); - sprintf(b, "zmumu mass pt Range %f to %f", range0, range1); - hmumu_pt.push_back(ptDirectory.make(a, b, 200, 0., 200.)); - char asta[30], bsta[50]; - sprintf(asta, "zmusta_ptRange%d", i); - sprintf(bsta, "zmusta mass pt Range %f to %f", range0, range1); - hmusta_pt.push_back(ptDirectory.make(asta, bsta, 50, 0., 200.)); - char atk[30], btk[50]; - sprintf(atk, "zmutrack_ptRange%d", i); - sprintf(btk, "zmutrack mass pt Range %f to %f", range0, range1); - hmutrack_pt.push_back(ptDirectory.make(atk, btk, 100, 0., 200.)); - } -} - -void ZMuMuAnalyzer_cynematics::analyze(const edm::Event& event, const edm::EventSetup& setup) { - Handle zMuMu; - event.getByToken(zMuMuToken_, zMuMu); - Handle zMuTrack; - event.getByToken(zMuTrackToken_, zMuTrack); - Handle zMuStandAlone; - event.getByToken(zMuStandAloneToken_, zMuStandAlone); - - unsigned int nZMuMu = zMuMu->size(); - unsigned int nZTrackMu = zMuTrack->size(); - unsigned int nZStandAloneMu = zMuStandAlone->size(); - // static const double zMass = 91.1876; // PDG Z mass - - cout << "++++++++++++++++++++++++++" << endl; - cout << "nZMuMu = " << nZMuMu << endl; - cout << "nZTrackMu = " << nZTrackMu << endl; - cout << "nZStandAloneMu = " << nZStandAloneMu << endl; - cout << "++++++++++++++++++++++++++" << endl; - - // ZMuMu counters - - int ZMuMu_passed = 0; - int ZMuMu_ptcut_counter = 0; - int ZMuMu_etacut_counter = 0; - int ZMuMu_masscut_counter = 0; - int ZMuMu_isocut_counter = 0; - int ZMuMu_ptetacut_counter = 0; - int ZMuMu_ptetamasscut_counter = 0; - int ZMuMu_allcut_counter = 0; - - // ZMuTrack counters - - int ZMuTrack_passed = 0; - int ZMuTrack_notcontained = 0; - int ZMuTrack_MCmatched_passed = 0; - - // ZMuStandalone counters - int ZMuStandalone_notcontained = 0; - int ZMuStandalone_passed = 0; - int ZMuStandalone_MCmatched_passed = 0; - - Handle zMuMuMap; - if (nZMuMu > 0) { - event.getByToken(zMuMuMapToken_, zMuMuMap); - } - - Handle zMuTrackMap; - if (nZTrackMu > 0) { - event.getByToken(zMuTrackMapToken_, zMuTrackMap); - } - - Handle zMuStandAloneMap; - if (nZStandAloneMu > 0) { - event.getByToken(zMuStandAloneMapToken_, zMuStandAloneMap); - } - - Handle muIso; - event.getByToken(muIsoToken_, muIso); - ProductID muIsoId = muIso->keyProduct().id(); - Handle trackIso; - event.getByToken(trackIsoToken_, trackIso); - ProductID trackIsoId = trackIso->keyProduct().id(); - - Handle standAloneIso; - event.getByToken(standAloneIsoToken_, standAloneIso); - ProductID standAloneIsoId = standAloneIso->keyProduct().id(); - - if (nZMuMu > 0) { - // double mass = 1000000.; - for (unsigned int i = 0; i < nZMuMu; i++) { - bool ptcutAccept = false; - bool etacutAccept = false; - bool masscutAccept = false; - bool isocutAccept = false; - const Candidate& zmmCand = (*zMuMu)[i]; - CandidateRef CandRef(zMuMu, i); - CandidateRef lep1 = zmmCand.daughter(0)->masterClone().castTo(); - CandidateRef lep2 = zmmCand.daughter(1)->masterClone().castTo(); - - const double iso1 = muIso->value(lep1.key()); - const double iso2 = muIso->value(lep2.key()); - - double m = zmmCand.mass(); - // check single cuts - - if (lep1->pt() > ptcut_ && lep2->pt() > ptcut_) - ptcutAccept = true; - if (fabs(lep1->eta()) < etacut_ && fabs(lep2->eta()) < etacut_) - etacutAccept = true; - if (m > minZmass_ && m < maxZmass_) - masscutAccept = true; - if (iso1 < isocut_ && iso2 < isocut_) - isocutAccept = true; - - if (ptcutAccept) - ZMuMu_ptcut_counter++; - if (etacutAccept) - ZMuMu_etacut_counter++; - if (masscutAccept) - ZMuMu_masscut_counter++; - if (isocutAccept) - ZMuMu_isocut_counter++; - - // check sequencial cuts - - if (ptcutAccept && etacutAccept) { - ZMuMu_ptetacut_counter++; - if (masscutAccept) { - ZMuMu_ptetamasscut_counter++; - if (isocutAccept) { - ZMuMu_passed++; - } - } - } - - if (ptcutAccept && etacutAccept && masscutAccept && isocutAccept) { - ZMuMu_allcut_counter++; - h_zMuMu_mass_->Fill(m); - - // check the cynematics to fill correct histograms - for (int j = 0; j < numberOfIntervals; j++) { - bool statusBinEta = false; - bool statusBinPhi = false; - bool statusBinPt = false; - double range0 = etamin + j * binEta; - double range1 = range0 + binEta; - double range0phi = phimin + j * binPhi; - double range1phi = range0phi + binPhi; - double range0pt = ptmin + j * binPt; - double range1pt = range0pt + binPt; - // eta histograms - if (lep1->eta() >= range0 && lep1->eta() < range1) { - hmumu_eta[j]->Fill(m); - statusBinEta = true; - } - if (lep2->eta() >= range0 && lep2->eta() < range1 && !statusBinEta) { - hmumu_eta[j]->Fill(m); // If eta1 is in the same bin of eta2 fill just once - } - // phi histograms - if (lep1->phi() >= range0phi && lep1->phi() < range1phi) { - hmumu_phi[j]->Fill(m); - statusBinPhi = true; - } - if (lep2->phi() >= range0phi && lep2->phi() < range1phi && !statusBinPhi) { - hmumu_phi[j]->Fill(m); // If phi1 is in the same bin of phi2 fill just once - } - // pt histograms - if (lep1->pt() >= range0pt && lep1->pt() < range1pt) { - hmumu_pt[j]->Fill(m); - statusBinPt = true; - } - if (lep2->pt() >= range0pt && lep2->pt() < range1pt && !statusBinPt) { - hmumu_pt[j]->Fill(m); // If pt1 is in the same bin of pt2 fill just once - } - } - - CandMatchMap::const_iterator m0 = zMuMuMap->find(CandRef); - if (m0 != zMuMuMap->end()) { // the Z is matched to MC thruth - h_zMuMuMatched_mass_->Fill(m); - } - } - } - } - - h_zMuMu_numberOfCand->Fill(nZMuMu); // number of Z cand found per event - h_zMuMu_numberOfCand_passed->Fill(ZMuMu_allcut_counter); // number of Z cand after all cuts found per event - h_zMuMu_numberOfCand_ptpassed->Fill(ZMuMu_ptcut_counter); // number of Z cand afer pt cut found per event - h_zMuMu_numberOfCand_etapassed->Fill(ZMuMu_etacut_counter); // number of Z cand afer eta cut found per event - h_zMuMu_numberOfCand_masspassed->Fill(ZMuMu_masscut_counter); // number of Z cand afer mass cut found per event - h_zMuMu_numberOfCand_isopassed->Fill(ZMuMu_isocut_counter); // number of Z cand afer iso cut found per event - h_zMuMu_numberOfCand_ptetapassed->Fill(ZMuMu_ptetacut_counter); // number of Z cand afer pt&eta cut found per event - h_zMuMu_numberOfCand_ptetamasspassed->Fill( - ZMuMu_ptetamasscut_counter); // number of Z cand afer pt&eta&mass cut found per event - - //ZmuSingleStandAlone (check MuStandalone if MuMu has not been selected by cuts) - // cout << "ZMuMuanalyzer : n of zMuMu " << nZMuMu << " passed " << ZMuMu_passed << " n. of zStaMu " << nZStandAloneMu << endl; - - if (ZMuMu_passed == 0 && nZStandAloneMu > 0) { - // unsigned int index = 1000; - for (unsigned int j = 0; j < nZStandAloneMu; j++) { - const Candidate& zsmCand = (*zMuStandAlone)[j]; - bool skipZ = false; - for (unsigned int i = 0; i < nZMuMu; i++) { // chek if the ZMuSTandalone is contained in a ZMuMu - const Candidate& zmmCand = (*zMuMu)[i]; // if yes .. the event has to be skipped - if (isContained(zmmCand, zsmCand)) - skipZ = true; - } - if (!skipZ) { // ZSMuSTandalone not contained in a ZMuMu - ZMuStandalone_notcontained++; - CandidateRef CandRef(zMuStandAlone, j); - CandidateRef lep1 = zsmCand.daughter(0)->masterClone().castTo(); - CandidateRef lep2 = zsmCand.daughter(1)->masterClone().castTo(); - - ProductID id1 = lep1.id(); - ProductID id2 = lep2.id(); - double iso1 = -1; - double iso2 = -1; - - if (id1 == muIsoId) - iso1 = muIso->value(lep1.key()); - else if (id1 == standAloneIsoId) - iso1 = standAloneIso->value(lep1.key()); - - if (id2 == muIsoId) - iso2 = muIso->value(lep2.key()); - else if (id2 == standAloneIsoId) - iso2 = standAloneIso->value(lep2.key()); - - double ms = zsmCand.mass(); - if (lep1->pt() > ptSTAcut_ && lep2->pt() > ptSTAcut_ && fabs(lep1->eta()) < etacut_ && - fabs(lep2->eta()) < etacut_ && ms > minZmass_ && ms < maxZmass_ && iso1 < isocut_ && iso2 < isocut_) { - h_zMuSingleStandAlone_mass_->Fill(ms); - ZMuStandalone_passed++; - // check the cynematics to fill correct histograms - for (int j = 0; j < numberOfIntervals; j++) { - double range0 = etamin + j * binEta; - double range1 = range0 + binEta; - double range0phi = phimin + j * binPhi; - double range1phi = range0phi + binPhi; - double range0pt = ptmin + j * binPt; - double range1pt = range0pt + binPt; - - // check which muon is a standalone (standalone means that there is a reference missing.) - if ((lep1->get()).isNull()) { - if (lep1->eta() >= range0 && lep1->eta() < range1) - hmusta_eta[j]->Fill(ms); - if (lep1->phi() >= range0phi && lep1->phi() < range1phi) - hmusta_phi[j]->Fill(ms); - if (lep1->pt() >= range0pt && lep1->pt() < range1pt) - hmusta_pt[j]->Fill(ms); - } - if ((lep2->get()).isNull()) { - if (lep2->eta() >= range0 && lep2->eta() < range1) - hmusta_eta[j]->Fill(ms); - if (lep2->phi() >= range0phi && lep2->phi() < range1phi) - hmusta_phi[j]->Fill(ms); - if (lep2->pt() >= range0pt && lep2->pt() < range1pt) - hmusta_pt[j]->Fill(ms); - } - } - CandMatchMap::const_iterator m0 = zMuStandAloneMap->find(CandRef); - if (m0 != zMuStandAloneMap->end()) { - ZMuStandalone_MCmatched_passed++; - h_zMuSingleStandAloneMatched_mass_->Fill(ms); - } - } - } - } - h_zMuSta_numberOfCand->Fill( - nZStandAloneMu); // number of ZMuStandalone cand found per event (no higher priority Z selected) - h_zMuSta_numberOfCand_notcontained->Fill(ZMuStandalone_notcontained); - h_zMuSta_numberOfCand_passed->Fill( - ZMuStandalone_passed); // number of ZMuSTa cand after all cuts found per event (no higher prioriy Z selected) - h_zMuSta_MCmatched_numberOfCand_passed->Fill( - ZMuStandalone_MCmatched_passed); // number of ZMuSTa MC matched cand after all cuts found per event (no higher prioriy Z selected) - } - - //ZmuSingleTRack (check MuTrack if MuMu has not been selected) - if (ZMuMu_passed == 0 && ZMuStandalone_passed == 0 && nZTrackMu > 0) { - for (unsigned int j = 0; j < nZTrackMu; j++) { - const Candidate& ztmCand = (*zMuTrack)[j]; - bool skipZ = false; - for (unsigned int i = 0; i < nZMuMu; i++) { // chek if the ZMuTrack is contained in a ZMuMu - const Candidate& zmmCand = (*zMuMu)[i]; // if yes .. the event has to be skipped - if (isContained(zmmCand, ztmCand)) - skipZ = true; - } - if (!skipZ) { - ZMuTrack_notcontained++; - CandidateRef CandRef(zMuTrack, j); - CandidateRef lep1 = ztmCand.daughter(0)->masterClone().castTo(); - CandidateRef lep2 = ztmCand.daughter(1)->masterClone().castTo(); - - ProductID id1 = lep1.id(); - ProductID id2 = lep2.id(); - double iso1 = -1; - double iso2 = -1; - - if (id1 == muIsoId) - iso1 = muIso->value(lep1.key()); - else if (id1 == trackIsoId) - iso1 = trackIso->value(lep1.key()); - - if (id2 == muIsoId) - iso2 = muIso->value(lep2.key()); - else if (id2 == trackIsoId) - iso2 = trackIso->value(lep2.key()); - - double mt = ztmCand.mass(); - if (lep1->pt() > ptcut_ && lep2->pt() > ptcut_ && fabs(lep1->eta()) < etacut_ && fabs(lep2->eta()) < etacut_ && - mt > minZmass_ && mt < maxZmass_ && iso1 < isocut_ && iso2 < isocut_) { - h_zMuSingleTrack_mass_->Fill(mt); - ZMuTrack_passed++; - - // check the cynematics to fill correct histograms - for (int j = 0; j < numberOfIntervals; j++) { - double range0 = etamin + j * binEta; - double range1 = range0 + binEta; - double range0phi = phimin + j * binPhi; - double range1phi = range0phi + binPhi; - double range0pt = ptmin + j * binPt; - double range1pt = range0pt + binPt; - - // check which muon is a track only (track only means that there is a reference missing.) - if ((lep1->get()).isNull()) { - if (lep1->eta() >= range0 && lep1->eta() < range1) - hmutrack_eta[j]->Fill(mt); - if (lep1->phi() >= range0phi && lep1->phi() < range1phi) - hmutrack_phi[j]->Fill(mt); - if (lep1->pt() >= range0pt && lep1->pt() < range1pt) - hmutrack_pt[j]->Fill(mt); - } - if ((lep2->get()).isNull()) { - if (lep2->eta() >= range0 && lep2->eta() < range1) - hmutrack_eta[j]->Fill(mt); - if (lep2->phi() >= range0phi && lep2->phi() < range1phi) - hmutrack_phi[j]->Fill(mt); - if (lep2->pt() >= range0pt && lep2->pt() < range1pt) - hmutrack_pt[j]->Fill(mt); - } - } - CandMatchMap::const_iterator m0 = zMuTrackMap->find(CandRef); - if (m0 != zMuTrackMap->end()) { - ZMuTrack_MCmatched_passed++; - h_zMuSingleTrackMatched_mass_->Fill(mt); - } - } - } - } - h_zMuTrack_numberOfCand->Fill( - nZTrackMu); // number of ZMuTrack cand found per event (no higher priority Z selected) - h_zMuTrack_numberOfCand_notcontained->Fill( - ZMuTrack_notcontained); // number of ZMuTrack cand not cntained in ZMuMu (no higher priority Z selected) - - h_zMuTrack_numberOfCand_passed->Fill( - ZMuTrack_passed); // number of ZMuTrack cand after all cuts found per event (no higher priority Z selected) - - h_zMuTrack_MCmatched_numberOfCand_passed->Fill(ZMuTrack_MCmatched_passed); - } -} - -bool ZMuMuAnalyzer_cynematics::isContained(const Candidate& obj1, const Candidate& obj2) { - // check if a candidate obj2 is different from obj1 (assume that obj1 is a ZMuMu and obj2 is any other type) - // (for example a Z can be done with two global muons, or with a global muon plus a standalone muon. - // if the standalone muon is part of the second global muon in fact this is the same Z) - - const int maxd = 10; - const Candidate* daughters1[maxd]; - const Candidate* daughters2[maxd]; - TrackRef trackerTrack1[maxd]; - TrackRef stAloneTrack1[maxd]; - TrackRef globalTrack1[maxd]; - TrackRef trackerTrack2[maxd]; - TrackRef stAloneTrack2[maxd]; - TrackRef globalTrack2[maxd]; - bool flag; - unsigned int nd1 = obj1.numberOfDaughters(); - unsigned int nd2 = obj2.numberOfDaughters(); - unsigned int matched = 0; - - for (unsigned int i = 0; i < nd1; ++i) { - daughters1[i] = obj1.daughter(i); - trackerTrack1[i] = daughters1[i]->get(); - stAloneTrack1[i] = daughters1[i]->get(); - globalTrack1[i] = daughters1[i]->get(); - - /*********************************************** just used for debug ******************** - if (trackerTrack1[i].isNull()) - cout << "in ZMuMu daughter " << i << " tracker ref non found " << endl; - else - cout << "in ZMuMu daughter " << i << " tracker ref FOUND" - << " id: " << trackerTrack1[i].id() << ", index: " << trackerTrack1[i].key() - << endl; - if (stAloneTrack1[i].isNull()) - cout << "in ZMuMu daughter " << i << " stalone ref non found " << endl; - else - cout << "in ZMuMu daughter " << i << " stalone ref FOUND" - << " id: " << stAloneTrack1[i].id() << ", index: " << stAloneTrack1[i].key() - << endl; - - if (globalTrack1[i].isNull()) - cout << "in ZMuMu daughter " << i << " global ref non found " << endl; - else - cout << "in ZMuMu daughter " << i << " global ref FOUND" - << " id: " << globalTrack1[i].id() << ", index: " << globalTrack1[i].key() - << endl; - */ - } - for (unsigned int i = 0; i < nd2; ++i) { - daughters2[i] = obj2.daughter(i); - trackerTrack2[i] = daughters2[i]->get(); - stAloneTrack2[i] = daughters2[i]->get(); - globalTrack2[i] = daughters2[i]->get(); - - /******************************************** just used for debug ************ - if (trackerTrack2[i].isNull()) - cout << "in ZMuSta daughter " << i << " tracker ref non found " << endl; - else - cout << "in ZMuSta daughter " << i << " tracker ref FOUND" - << " id: " << trackerTrack2[i].id() << ", index: " << trackerTrack2[i].key() - << endl; - if (stAloneTrack2[i].isNull()) - cout << "in ZMuSta daughter " << i << " standalone ref non found " << endl; - else - cout << "in ZMuSta daughter " << i << " standalone ref FOUND" - << " id: " << stAloneTrack2[i].id() << ", index: " << stAloneTrack2[i].key() - << endl; - - if (globalTrack2[i].isNull()) - cout << "in ZMuSta daughter " << i << " global ref non found " << endl; - else - cout << "in ZMuSta daughter " << i << " global ref FOUND" - << " id: " << globalTrack2[i].id() << ", index: " << globalTrack2[i].key() - << endl; - - */ - } - if (nd1 != nd2) { - cout << "ZMuMuAnalyzer::isContained WARNING n.of daughters different " << nd1 << " " << nd2 << endl; - } else { - for (unsigned int i = 0; i < nd1; i++) { - flag = false; - for (unsigned int j = 0; j < nd2; - j++) { // if the obj2 is a standalone the trackref is alwais in the trackerTRack position - if (((trackerTrack2[i].id() == trackerTrack1[j].id()) && (trackerTrack2[i].key() == trackerTrack1[j].key())) || - ((trackerTrack2[i].id() == stAloneTrack1[j].id()) && (trackerTrack2[i].key() == stAloneTrack1[j].key()))) { - flag = true; - } - } - if (flag) - matched++; - } - } - if (matched == nd1) // return true if all the childrens of the ZMuMu have a children matched in ZMuXX - return true; - else - return false; -} - -void ZMuMuAnalyzer_cynematics::endJob() { - // candidate analysis - // ZMuMu - double Nzmmc = h_zMuMu_numberOfCand->GetEntries(); - double Nzmmc_0Z = h_zMuMu_numberOfCand->GetBinContent(1); - double Nzmmc_1Z = h_zMuMu_numberOfCand->GetBinContent(2); - double Nzmmc_moreZ = Nzmmc - Nzmmc_0Z - Nzmmc_1Z; - double Nzmmc_passed_0Z = h_zMuMu_numberOfCand_passed->GetBinContent(1); - double Nzmmc_passed_1Z = h_zMuMu_numberOfCand_passed->GetBinContent(2); - double Nzmmc_passed_moreZ = Nzmmc - Nzmmc_passed_0Z - Nzmmc_passed_1Z; - double Nzmmc_ptpassed_0Z = h_zMuMu_numberOfCand_ptpassed->GetBinContent(1); - double Nzmmc_ptpassed_1Z = h_zMuMu_numberOfCand_ptpassed->GetBinContent(2); - double Nzmmc_etapassed_0Z = h_zMuMu_numberOfCand_etapassed->GetBinContent(1); - double Nzmmc_etapassed_1Z = h_zMuMu_numberOfCand_etapassed->GetBinContent(2); - double Nzmmc_masspassed_0Z = h_zMuMu_numberOfCand_masspassed->GetBinContent(1); - double Nzmmc_masspassed_1Z = h_zMuMu_numberOfCand_masspassed->GetBinContent(2); - double Nzmmc_isopassed_0Z = h_zMuMu_numberOfCand_isopassed->GetBinContent(1); - double Nzmmc_isopassed_1Z = h_zMuMu_numberOfCand_isopassed->GetBinContent(2); - double Nzmmc_ptetapassed_0Z = h_zMuMu_numberOfCand_ptetapassed->GetBinContent(1); - double Nzmmc_ptetapassed_1Z = h_zMuMu_numberOfCand_ptetapassed->GetBinContent(2); - double Nzmmc_ptetamasspassed_0Z = h_zMuMu_numberOfCand_ptetamasspassed->GetBinContent(1); - double Nzmmc_ptetamasspassed_1Z = h_zMuMu_numberOfCand_ptetamasspassed->GetBinContent(2); - double Nzmmc_ptpassed_moreZ = Nzmmc - Nzmmc_ptpassed_0Z - Nzmmc_ptpassed_1Z; - double Nzmmc_etapassed_moreZ = Nzmmc - Nzmmc_etapassed_0Z - Nzmmc_etapassed_1Z; - double Nzmmc_masspassed_moreZ = Nzmmc - Nzmmc_masspassed_0Z - Nzmmc_masspassed_1Z; - double Nzmmc_isopassed_moreZ = Nzmmc - Nzmmc_isopassed_0Z - Nzmmc_isopassed_1Z; - double Nzmmc_ptetapassed_moreZ = Nzmmc - Nzmmc_ptetapassed_0Z - Nzmmc_ptetapassed_1Z; - double Nzmmc_ptetamasspassed_moreZ = Nzmmc - Nzmmc_ptetamasspassed_0Z - Nzmmc_ptetamasspassed_1Z; - double Nzmsc = h_zMuSta_numberOfCand->GetEntries(); - double Nzmsc_0Z = h_zMuSta_numberOfCand->GetBinContent(1); - double Nzmsc_1Z = h_zMuSta_numberOfCand->GetBinContent(2); - double Nzmsc_moreZ = Nzmsc - Nzmsc_0Z - Nzmsc_1Z; - double Nzmsc_notcontained_0Z = h_zMuSta_numberOfCand_notcontained->GetBinContent(1); - double Nzmsc_notcontained_1Z = h_zMuSta_numberOfCand_notcontained->GetBinContent(2); - double Nzmsc_notcontained_moreZ = Nzmsc - Nzmsc_notcontained_0Z - Nzmsc_notcontained_1Z; - double Nzmsc_passed_0Z = h_zMuSta_numberOfCand_passed->GetBinContent(1); - double Nzmsc_passed_1Z = h_zMuSta_numberOfCand_passed->GetBinContent(2); - double Nzmsc_passed_moreZ = Nzmsc - Nzmsc_passed_0Z - Nzmsc_passed_1Z; - double Nzmsc_MCmatched_passed_0Z = h_zMuSta_MCmatched_numberOfCand_passed->GetBinContent(1); - double Nzmsc_MCmatched_passed_1Z = h_zMuSta_MCmatched_numberOfCand_passed->GetBinContent(2); - double Nzmsc_MCmatched_passed_moreZ = Nzmsc - Nzmsc_MCmatched_passed_0Z - Nzmsc_MCmatched_passed_1Z; - double Nzmtc = h_zMuTrack_numberOfCand->GetEntries(); - double Nzmtc_0Z = h_zMuTrack_numberOfCand->GetBinContent(1); - double Nzmtc_1Z = h_zMuTrack_numberOfCand->GetBinContent(2); - double Nzmtc_moreZ = Nzmtc - Nzmtc_0Z - Nzmtc_1Z; - double Nzmtc_notcontained_0Z = h_zMuTrack_numberOfCand_notcontained->GetBinContent(1); - double Nzmtc_notcontained_1Z = h_zMuTrack_numberOfCand_notcontained->GetBinContent(2); - double Nzmtc_notcontained_moreZ = Nzmtc - Nzmtc_notcontained_0Z - Nzmtc_notcontained_1Z; - double Nzmtc_passed_0Z = h_zMuTrack_numberOfCand_passed->GetBinContent(1); - double Nzmtc_passed_1Z = h_zMuTrack_numberOfCand_passed->GetBinContent(2); - double Nzmtc_passed_moreZ = Nzmtc - Nzmtc_passed_0Z - Nzmtc_passed_1Z; - double Nzmtc_MCmatched_passed_0Z = h_zMuTrack_MCmatched_numberOfCand_passed->GetBinContent(1); - double Nzmtc_MCmatched_passed_1Z = h_zMuTrack_MCmatched_numberOfCand_passed->GetBinContent(2); - double Nzmtc_MCmatched_passed_moreZ = Nzmtc - Nzmtc_MCmatched_passed_0Z - Nzmtc_MCmatched_passed_1Z; - - cout << "--------------- Statistics ----------------------------------------------------------" << endl; - cout << "n of ZMuMu entries ...................................................... " << Nzmmc << endl; - cout << "n of ZMuMu events with 0 cand ............................................. " << Nzmmc_0Z << endl; - cout << "n of ZMuMu events with 1 cand ............................................. " << Nzmmc_1Z << endl; - cout << "n of ZMuMu events with 2 or more cand ..................................... " << Nzmmc_moreZ << endl << endl; - - cout << "n of ZMuMu events not selected by cuts .................................... " << Nzmmc_passed_0Z << endl; - cout << "n of ZMuMu events with 1 cand selected by cuts ............................ " << Nzmmc_passed_1Z << endl; - cout << "n of ZMuMu events with 2 or more cand elected by cuts ..................... " << Nzmmc_passed_moreZ << endl - << endl; - - cout << "n of ZMuMu events not selected by pt cut .................................. " << Nzmmc_ptpassed_0Z << endl; - cout << "n of ZMuMu events with 1 cand selected by pt cut .......................... " << Nzmmc_ptpassed_1Z << endl; - cout << "n of ZMuMu events with 2 or more cand elected by pt cut ................... " << Nzmmc_ptpassed_moreZ << endl - << endl; - - cout << "n of ZMuMu events not selected by eta cut ................................. " << Nzmmc_etapassed_0Z << endl; - cout << "n of ZMuMu events with 1 cand selected by eta cut ......................... " << Nzmmc_etapassed_1Z << endl; - cout << "n of ZMuMu events with 2 or more cand elected by eta cut .................. " << Nzmmc_etapassed_moreZ - << endl - << endl; - - cout << "n of ZMuMu events not selected by mass cut ................................ " << Nzmmc_masspassed_0Z << endl; - cout << "n of ZMuMu events with 1 cand selected by mass cut ........................ " << Nzmmc_masspassed_1Z << endl; - cout << "n of ZMuMu events with 2 or more cand elected by mass cut ................. " << Nzmmc_masspassed_moreZ - << endl - << endl; - - cout << "n of ZMuMu events not selected by iso cut ................................. " << Nzmmc_isopassed_0Z << endl; - cout << "n of ZMuMu events with 1 cand selected iso cut ............................ " << Nzmmc_isopassed_1Z << endl; - cout << "n of ZMuMu events with 2 or more cand elected iso cut ..................... " << Nzmmc_isopassed_moreZ - << endl - << endl; - - cout << "n of ZMuMu events not selected by pt and eta cut .......................... " << Nzmmc_ptetapassed_0Z - << endl; - cout << "n of ZMuMu events with 1 cand selected by pt and eta cut .................. " << Nzmmc_ptetapassed_1Z - << endl; - cout << "n of ZMuMu events with 2 or more cand elected by pt and eta cut ........... " << Nzmmc_ptetapassed_moreZ - << endl - << endl; - - cout << "n of ZMuMu events not selected by pt and eta and mass cut ................. " << Nzmmc_ptetamasspassed_0Z - << endl; - cout << "n of ZMuMu events with 1 cand selected by pt and eta and mass cut ......... " << Nzmmc_ptetamasspassed_1Z - << endl; - cout << "n of ZMuMu events with 2 or more cand elected by pt and eta and mass cut .. " << Nzmmc_ptetamasspassed_moreZ - << endl - << endl; - - cout << "................When No ZMuMu are selected.................................." << endl; - cout << "n of ZMuSta entries ....................................................... " << Nzmsc << endl; - cout << "n of ZMuSta events with 0 cand ............................................ " << Nzmsc_0Z << endl; - cout << "n of ZMuSta events with 1 cand ............................................ " << Nzmsc_1Z << endl; - cout << "n of ZMuSta events with 2 or more cand .................................... " << Nzmsc_moreZ << endl << endl; - - cout << "n of ZMuSta not contained events with 0 cand .............................. " << Nzmsc_notcontained_0Z - << endl; - cout << "n of ZMuSta events not contained with 1 cand .............................. " << Nzmsc_notcontained_1Z - << endl; - cout << "n of ZMuSta events no contained with 2 or more cand ....................... " << Nzmsc_notcontained_moreZ - << endl - << endl; - - cout << "n of ZMuSta cand not selectd by cuts ...................................... " << Nzmsc_passed_0Z << endl; - cout << "n of ZMuSta events with 1 cand selected by cuts ........................... " << Nzmsc_passed_1Z << endl; - cout << "n of ZMuSta events with 2 or more cand selected by cuts ................... " << Nzmsc_passed_moreZ << endl - << endl; - - cout << "n of ZMuSta MCmatched cand not selectd by cuts ............................ " << Nzmsc_MCmatched_passed_0Z - << endl; - cout << "n of ZMuSta MCmatched events with 1 cand selected by cuts ................. " << Nzmsc_MCmatched_passed_1Z - << endl; - cout << "n of ZMuSta MCmatched events with 2 or more cand selected by cuts ......... " << Nzmsc_MCmatched_passed_moreZ - << endl - << endl; - - cout << "...............When no ZMuMu and ZMuSta are selcted........................." << endl; - cout << "n of ZMuTrack entries ................................................... " << Nzmtc << endl; - cout << "n of ZMuTrack events with 0 cand ..........................................." << Nzmtc_0Z << endl; - cout << "n of ZMuTrack events with 1 cand ..........................................." << Nzmtc_1Z << endl; - cout << "n of ZMuTrack events with 2 or more cand ..................................." << Nzmtc_moreZ << endl << endl; - - cout << "n of ZMuTrack not contained events with 0 cand ............................ " << Nzmtc_notcontained_0Z - << endl; - cout << "n of ZMuTrack events not contained with 1 cand ............................ " << Nzmtc_notcontained_1Z - << endl; - cout << "n of ZMuTrack events no contained with 2 or more cand ..................... " << Nzmtc_notcontained_moreZ - << endl - << endl; - - cout << "n of ZMuTrack cand not selectd by cuts ....................................." << Nzmtc_passed_0Z << endl; - cout << "n of ZMuTrack events with 1 cand selected by cuts .........................." << Nzmtc_passed_1Z << endl; - cout << "n of ZMuTrack events with 2 or more cand selected by cuts .................." << Nzmtc_passed_moreZ << endl - << endl; - - cout << "n of ZMuTrack MCmatched cand not selectd by cuts .......................... " << Nzmtc_MCmatched_passed_0Z - << endl; - cout << "n of ZMuTrcak MCmatched events with 1 cand selected by cuts ............... " << Nzmtc_MCmatched_passed_1Z - << endl; - cout << "n of ZMuTrack MCmatched events with 2 or more cand selected by cuts ....... " << Nzmtc_MCmatched_passed_moreZ - << endl; - - cout << "------------------------------------------------------------------------------------------" << endl; - - double Nzmm = h_zMuMu_mass_->GetEntries(); - double Nzsm = h_zMuSingleStandAlone_mass_->GetEntries(); - double Nzsnom = h_zMuSingleStandAloneOverlap_mass_->GetEntries(); - double Nztm = h_zMuSingleTrack_mass_->GetEntries(); - - double NzmmMatch = h_zMuMuMatched_mass_->GetEntries(); - double NzsmMatch = h_zMuSingleStandAloneMatched_mass_->GetEntries(); - double NzsnomMatch = h_zMuSingleStandAloneOverlapMatched_mass_->GetEntries(); - double NztmMatch = h_zMuSingleTrackMatched_mass_->GetEntries(); - - cout << "-- N SingleTrackMu = " << Nztm << endl; - cout << "-----N SinglStandAloneMu = " << Nzsm << endl; - cout << "-----N SingleStandAloneOverlapMu = " << Nzsnom << endl; - cout << "------- N MuMu = " << Nzmm << endl; - - cout << "-- N SingleTrackMuMatched = " << NztmMatch << endl; - cout << "-----N SinglStandAloneMuMatched = " << NzsmMatch << endl; - cout << "-----N SingleStandAloneOverlapMuMatched = " << NzsnomMatch << endl; - cout << "------- N MuMu Matched = " << NzmmMatch << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuAnalyzer_cynematics); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuEfficiency.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuEfficiency.cc deleted file mode 100644 index 3a9a50d9a0d2c..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuEfficiency.cc +++ /dev/null @@ -1,758 +0,0 @@ -/* \class ZMuMuEfficiency - * - * author: Pasquale Noli - * revised by Salvatore di Guida - * revised for CSA08 by Davide Piccolo - * - * Efficiency of reconstruction tracker and muon Chamber - * - */ - -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/Candidate/interface/CandAssociation.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "TH1.h" -#include - -using namespace edm; -using namespace std; -using namespace reco; - -typedef ValueMap IsolationCollection; - -class ZMuMuEfficiency : public edm::EDAnalyzer { -public: - ZMuMuEfficiency(const edm::ParameterSet &pset); - -private: - void analyze(const edm::Event &event, const edm::EventSetup &setup) override; - bool check_ifZmumu(const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticlePt(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticleEta(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticlePhi(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - Particle::LorentzVector getParticleP4(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2); - void endJob() override; - - EDGetTokenT zMuMuToken_; - EDGetTokenT zMuMuMatchMapToken_; - EDGetTokenT zMuTrackToken_; - EDGetTokenT zMuTrackMatchMapToken_; - EDGetTokenT zMuStandAloneToken_; - EDGetTokenT zMuStandAloneMatchMapToken_; - EDGetTokenT muonsToken_; - EDGetTokenT muonMatchMapToken_; - EDGetTokenT muonIsoToken_; - EDGetTokenT tracksToken_; - EDGetTokenT trackIsoToken_; - EDGetTokenT standAloneToken_; - EDGetTokenT standAloneIsoToken_; - EDGetTokenT genParticlesToken_; - - double zMassMin_, zMassMax_, ptmin_, etamax_, isomax_; - unsigned int nbinsPt_, nbinsEta_; - reco::CandidateBaseRef globalMuonCandRef_, trackMuonCandRef_, standAloneMuonCandRef_; - OverlapChecker overlap_; - - //histograms for measuring tracker efficiency - TH1D *h_etaStandAlone_, *h_etaMuonOverlappedToStandAlone_; - TH1D *h_ptStandAlone_, *h_ptMuonOverlappedToStandAlone_; - - //histograms for measuring standalone efficiency - TH1D *h_etaTrack_, *h_etaMuonOverlappedToTrack_; - TH1D *h_ptTrack_, *h_ptMuonOverlappedToTrack_; - - //histograms for MC acceptance - TH1D *h_nZMCfound_; - TH1D *h_ZetaGen_, *h_ZptGen_, *h_ZmassGen_; - TH1D *h_muetaGen_, *h_muptGen_, *h_muIsoGen_; - TH1D *h_dimuonPtGen_, *h_dimuonMassGen_, *h_dimuonEtaGen_; - TH1D *h_ZetaGenPassed_, *h_ZptGenPassed_, *h_ZmassGenPassed_; - TH1D *h_muetaGenPassed_, *h_muptGenPassed_, *h_muIsoGenPassed_; - TH1D *h_dimuonPtGenPassed_, *h_dimuonMassGenPassed_, *h_dimuonEtaGenPassed_; - //histograms for invarian mass resolution - TH1D *h_DELTA_ZMuMuMassReco_dimuonMassGen_, *h_DELTA_ZMuStaMassReco_dimuonMassGen_, - *h_DELTA_ZMuTrackMassReco_dimuonMassGen_; - - int numberOfEventsWithZMuMufound, numberOfEventsWithZMuStafound; - int numberOfMatchedZMuSta_, numberOfMatchedSelectedZMuSta_; - int numberOfMatchedZMuMu_, numberOfMatchedSelectedZMuMu_; - int numberOfOverlappedStandAlone_, numberOfOverlappedTracks_, numberOfMatchedZMuTrack_notOverlapped; - int numberOfMatchedZMuTrack_exclusive, numberOfMatchedSelectedZMuTrack_exclusive; - int numberOfMatchedZMuTrack_matchedZMuMu, numberOfMatchedZMuTrack_matchedSelectedZMuMu; - int totalNumberOfevents, totalNumberOfZfound, totalNumberOfZPassed; - int noMCmatching, ZMuTrack_exclusive_1match, ZMuTrack_exclusive_morematch; - int ZMuTrackselected_exclusive_1match, ZMuTrackselected_exclusive_morematch; - int ZMuTrack_ZMuMu_1match, ZMuTrack_ZMuMu_2match, ZMuTrack_ZMuMu_morematch; - - int n_zMuMufound_genZsele, n_zMuStafound_genZsele, n_zMuTrkfound_genZsele; -}; - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Common/interface/Handle.h" -#include -#include -#include - -ZMuMuEfficiency::ZMuMuEfficiency(const ParameterSet &pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - zMuMuMatchMapToken_(mayConsume(pset.getParameter("zMuMuMatchMap"))), - zMuTrackToken_(consumes(pset.getParameter("zMuTrack"))), - zMuTrackMatchMapToken_(mayConsume(pset.getParameter("zMuTrackMatchMap"))), - zMuStandAloneToken_(consumes(pset.getParameter("zMuStandAlone"))), - zMuStandAloneMatchMapToken_(mayConsume(pset.getParameter("zMuStandAloneMatchMap"))), - muonsToken_(consumes(pset.getParameter("muons"))), - muonMatchMapToken_(mayConsume(pset.getParameter("muonMatchMap"))), - muonIsoToken_(mayConsume(pset.getParameter("muonIso"))), - tracksToken_(consumes(pset.getParameter("tracks"))), - trackIsoToken_(mayConsume(pset.getParameter("trackIso"))), - standAloneToken_(consumes(pset.getParameter("standAlone"))), - standAloneIsoToken_(mayConsume(pset.getParameter("standAloneIso"))), - genParticlesToken_(consumes(pset.getParameter("genParticles"))), - - zMassMin_(pset.getUntrackedParameter("zMassMin")), - zMassMax_(pset.getUntrackedParameter("zMassMax")), - ptmin_(pset.getUntrackedParameter("ptmin")), - etamax_(pset.getUntrackedParameter("etamax")), - isomax_(pset.getUntrackedParameter("isomax")), - nbinsPt_(pset.getUntrackedParameter("nbinsPt")), - nbinsEta_(pset.getUntrackedParameter("nbinsEta")) { - Service fs; - TFileDirectory trackEffDir = fs->mkdir("TrackEfficiency"); - - // tracker efficiency distributions - h_etaStandAlone_ = trackEffDir.make( - "StandAloneMuonEta", "StandAlone #eta for Z -> #mu + standalone", nbinsEta_, -etamax_, etamax_); - h_etaMuonOverlappedToStandAlone_ = - trackEffDir.make("MuonOverlappedToStandAloneEta", - "Global muon overlapped to standAlone #eta for Z -> #mu + sa", - nbinsEta_, - -etamax_, - etamax_); - h_ptStandAlone_ = - trackEffDir.make("StandAloneMuonPt", "StandAlone p_{t} for Z -> #mu + standalone", nbinsPt_, ptmin_, 100); - h_ptMuonOverlappedToStandAlone_ = - trackEffDir.make("MuonOverlappedToStandAlonePt", - "Global muon overlapped to standAlone p_{t} for Z -> #mu + sa", - nbinsPt_, - ptmin_, - 100); - - // StandAlone efficiency distributions - TFileDirectory standaloneEffDir = fs->mkdir("StandaloneEfficiency"); - h_etaTrack_ = - standaloneEffDir.make("TrackMuonEta", "Track #eta for Z -> #mu + track", nbinsEta_, -etamax_, etamax_); - h_etaMuonOverlappedToTrack_ = standaloneEffDir.make("MuonOverlappedToTrackEta", - "Global muon overlapped to track #eta for Z -> #mu + tk", - nbinsEta_, - -etamax_, - etamax_); - h_ptTrack_ = standaloneEffDir.make("TrackMuonPt", "Track p_{t} for Z -> #mu + track", nbinsPt_, ptmin_, 100); - h_ptMuonOverlappedToTrack_ = standaloneEffDir.make( - "MuonOverlappedToTrackPt", "Global muon overlapped to track p_{t} for Z -> #mu + tk", nbinsPt_, ptmin_, 100); - - // inv. mass resolution studies - TFileDirectory invMassResolutionDir = fs->mkdir("invriantMassResolution"); - h_DELTA_ZMuMuMassReco_dimuonMassGen_ = - invMassResolutionDir.make("zMuMu_invMassResolution", "zMuMu invariant Mass Resolution", 50, -25, 25); - h_DELTA_ZMuStaMassReco_dimuonMassGen_ = - invMassResolutionDir.make("zMuSta_invMassResolution", "zMuSta invariant Mass Resolution", 50, -25, 25); - h_DELTA_ZMuTrackMassReco_dimuonMassGen_ = - invMassResolutionDir.make("zMuTrack_invMassResolution", "zMuTrack invariant Mass Resolution", 50, -25, 25); - - // generator level histograms - TFileDirectory genParticleDir = fs->mkdir("genParticle"); - h_nZMCfound_ = genParticleDir.make("NumberOfgeneratedZeta", "n. of generated Z per event", 4, -.5, 3.5); - h_ZetaGen_ = genParticleDir.make("generatedZeta", "#eta of generated Z", 100, -5., 5.); - h_ZptGen_ = genParticleDir.make("generatedZpt", "pt of generated Z", 100, 0., 200.); - h_ZmassGen_ = genParticleDir.make("generatedZmass", "mass of generated Z", 100, 0., 200.); - h_muetaGen_ = genParticleDir.make("generatedMuonEta", "#eta of generated muons from Z decay", 100, -5., 5.); - h_muptGen_ = genParticleDir.make("generatedMuonpt", "pt of generated muons from Z decay", 100, 0., 200.); - h_dimuonEtaGen_ = genParticleDir.make("generatedDimuonEta", "#eta of generated dimuon", 100, -5., 5.); - h_dimuonPtGen_ = genParticleDir.make("generatedDimuonPt", "pt of generated dimuon", 100, 0., 200.); - h_dimuonMassGen_ = genParticleDir.make("generatedDimuonMass", "mass of generated dimuon", 100, 0., 200.); - h_ZetaGenPassed_ = genParticleDir.make("generatedZeta_passed", "#eta of generated Z after cuts", 100, -5., 5.); - h_ZptGenPassed_ = genParticleDir.make("generatedZpt_passed", "pt of generated Z after cuts", 100, 0., 200.); - h_ZmassGenPassed_ = - genParticleDir.make("generatedZmass_passed", "mass of generated Z after cuts", 100, 0., 200.); - h_muetaGenPassed_ = genParticleDir.make( - "generatedMuonEta_passed", "#eta of generated muons from Z decay after cuts", 100, -5., 5.); - h_muptGenPassed_ = genParticleDir.make( - "generatedMuonpt_passed", "pt of generated muons from Z decay after cuts", 100, 0., 200.); - h_dimuonEtaGenPassed_ = - genParticleDir.make("generatedDimuonEta_passed", "#eta of generated dimuon after cuts", 100, -5., 5.); - h_dimuonPtGenPassed_ = - genParticleDir.make("generatedDimuonPt_passed", "pt of generated dimuon after cuts", 100, 0., 200.); - h_dimuonMassGenPassed_ = - genParticleDir.make("generatedDimuonMass_passed", "mass of generated dimuon after cuts", 100, 0., 200.); - // to insert isolation histograms .............. - - numberOfEventsWithZMuMufound = 0; - numberOfEventsWithZMuStafound = 0; - numberOfMatchedZMuMu_ = 0; - numberOfMatchedSelectedZMuMu_ = 0; - numberOfMatchedZMuSta_ = 0; - numberOfMatchedSelectedZMuSta_ = 0; - numberOfMatchedZMuTrack_matchedZMuMu = 0; - numberOfMatchedZMuTrack_matchedSelectedZMuMu = 0; - numberOfMatchedZMuTrack_exclusive = 0; - numberOfMatchedSelectedZMuTrack_exclusive = 0; - numberOfOverlappedStandAlone_ = 0; - numberOfOverlappedTracks_ = 0; - numberOfMatchedZMuTrack_notOverlapped = 0; - noMCmatching = 0; - ZMuTrack_exclusive_1match = 0; - ZMuTrack_exclusive_morematch = 0; - ZMuTrackselected_exclusive_1match = 0; - ZMuTrackselected_exclusive_morematch = 0; - ZMuTrack_ZMuMu_1match = 0; - ZMuTrack_ZMuMu_2match = 0; - ZMuTrack_ZMuMu_morematch = 0; - - n_zMuMufound_genZsele = 0; - n_zMuStafound_genZsele = 0; - n_zMuTrkfound_genZsele = 0; - - // generator counters - totalNumberOfevents = 0; - totalNumberOfZfound = 0; - totalNumberOfZPassed = 0; -} - -void ZMuMuEfficiency::analyze(const Event &event, const EventSetup &setup) { - Handle zMuMu; - Handle zMuMuMatchMap; //Map of Z made by Mu global + Mu global - Handle zMuTrack; - Handle zMuTrackMatchMap; //Map of Z made by Mu + Track - Handle zMuStandAlone; - Handle zMuStandAloneMatchMap; //Map of Z made by Mu + StandAlone - Handle muons; //Collection of Muons - Handle muonMatchMap; - Handle muonIso; - Handle tracks; //Collection of Tracks - Handle trackIso; - Handle standAlone; //Collection of StandAlone - Handle standAloneIso; - Handle genParticles; // Collection of Generatd Particles - - event.getByToken(zMuMuToken_, zMuMu); - event.getByToken(zMuTrackToken_, zMuTrack); - event.getByToken(zMuStandAloneToken_, zMuStandAlone); - event.getByToken(muonsToken_, muons); - event.getByToken(tracksToken_, tracks); - event.getByToken(standAloneToken_, standAlone); - event.getByToken(genParticlesToken_, genParticles); - - cout << "********* zMuMu size : " << zMuMu->size() << endl; - cout << "********* zMuStandAlone size : " << zMuStandAlone->size() << endl; - cout << "********* zMuTrack size : " << zMuTrack->size() << endl; - cout << "********* muons size : " << muons->size() << endl; - cout << "********* standAlone size : " << standAlone->size() << endl; - cout << "********* tracks size : " << tracks->size() << endl; - cout << "********* generated size : " << genParticles->size() << endl; - - // generator level distributions - - int nZMCfound = 0; - totalNumberOfevents++; - int ngen = genParticles->size(); - bool ZMuMuMatchedfound = false; - bool ZMuMuMatchedSelectedfound = false; - bool ZMuStaMatchedfound = false; - //bool ZMuStaMatchedSelectedfound = false; - int ZMuTrackMatchedfound = 0; - int ZMuTrackMatchedSelected_exclusivefound = 0; - - double dimuonMassGen = 0; - - for (int i = 0; i < ngen; i++) { - const Candidate &genCand = (*genParticles)[i]; - - // if((genCand.pdgId() == 23) && (genCand.status() == 2)) //this is an intermediate Z0 - // cout << ">>> intermediate Z0 found, with " << genCand.numberOfDaughters() << " daughters" << endl; - if ((genCand.pdgId() == 23) && (genCand.status() == 3)) { //this is a Z0 - if (genCand.numberOfDaughters() == 3) { // possible Z0 decays in mu+ mu-, the 3rd daughter is the same Z0 - const Candidate *dauGen0 = genCand.daughter(0); - const Candidate *dauGen1 = genCand.daughter(1); - const Candidate *dauGen2 = genCand.daughter(2); - if (check_ifZmumu(dauGen0, dauGen1, dauGen2)) { // Z0 in mu+ mu- - totalNumberOfZfound++; - nZMCfound++; - bool checkpt = false; - bool checketa = false; - bool checkmass = false; - float mupluspt, muminuspt, mupluseta, muminuseta; - mupluspt = getParticlePt(-13, dauGen0, dauGen1, dauGen2); - muminuspt = getParticlePt(13, dauGen0, dauGen1, dauGen2); - mupluseta = getParticleEta(-13, dauGen0, dauGen1, dauGen2); - muminuseta = getParticleEta(13, dauGen0, dauGen1, dauGen2); - //float muplusphi = getParticlePhi(-13,dauGen0,dauGen1,dauGen2); - //float muminusphi = getParticlePhi(13,dauGen0,dauGen1,dauGen2); - Particle::LorentzVector pZ(0, 0, 0, 0); - Particle::LorentzVector muplusp4 = getParticleP4(-13, dauGen0, dauGen1, dauGen2); - Particle::LorentzVector muminusp4 = getParticleP4(13, dauGen0, dauGen1, dauGen2); - pZ = muplusp4 + muminusp4; - double dimuon_pt = sqrt(pZ.x() * pZ.x() + pZ.y() * pZ.y()); - double tan_theta_half = tan(atan(dimuon_pt / pZ.z()) / 2.); - double dimuon_eta = 0.; - if (tan_theta_half > 0) - dimuon_eta = -log(tan(tan_theta_half)); - if (tan_theta_half <= 0) - dimuon_eta = log(tan(-tan_theta_half)); - - dimuonMassGen = pZ.mass(); // dimuon invariant Mass at Generator Level - - h_ZmassGen_->Fill(genCand.mass()); - h_ZetaGen_->Fill(genCand.eta()); - h_ZptGen_->Fill(genCand.pt()); - h_dimuonMassGen_->Fill(pZ.mass()); - h_dimuonEtaGen_->Fill(dimuon_eta); - h_dimuonPtGen_->Fill(dimuon_pt); - h_muetaGen_->Fill(mupluseta); - h_muetaGen_->Fill(muminuseta); - h_muptGen_->Fill(mupluspt); - h_muptGen_->Fill(muminuspt); - // dimuon 4-momentum - // h_mDimuonMC->Fill(pZ.mass()); - // h_ZminusDimuonMassMC->Fill(genCand.mass()-pZ.mass()); - // h_DeltaPhiMC->Fill(deltaPhi(muplusphi,muminusphi)); - // if (dauGen2==23) float z_eta = dauGen2->eta(); - // if (dauGen2==23) float Zpt = dauGen2->pt(); - // h_DeltaPhivsZPtMC->Fill(DeltaPhi(muplusphi,muminusphi),ZPt); - - if (mupluspt > ptmin_ && muminuspt > ptmin_) - checkpt = true; - if (mupluseta < etamax_ && muminuseta < etamax_) - checketa = true; - if (genCand.mass() > zMassMin_ && genCand.mass() < zMassMax_) - checkmass = true; - if (checkpt && checketa && checkmass) { - totalNumberOfZPassed++; - h_ZmassGenPassed_->Fill(genCand.mass()); - h_ZetaGenPassed_->Fill(genCand.eta()); - h_ZptGenPassed_->Fill(genCand.pt()); - h_dimuonMassGenPassed_->Fill(pZ.mass()); - h_dimuonEtaGenPassed_->Fill(dimuon_eta); - h_dimuonPtGenPassed_->Fill(dimuon_pt); - h_muetaGenPassed_->Fill(mupluseta); - h_muetaGenPassed_->Fill(muminuseta); - h_muptGenPassed_->Fill(mupluspt); - h_muptGenPassed_->Fill(muminuspt); - - if (!zMuMu->empty()) { - n_zMuMufound_genZsele++; - } else if (!zMuStandAlone->empty()) { - n_zMuStafound_genZsele++; - } else { - n_zMuTrkfound_genZsele++; - } - } - } - } - } - } - h_nZMCfound_->Fill(nZMCfound); // number of Z found in the event at generator level - - //TRACK efficiency (conto numero di eventi Zmumu global e ZmuSta (ricorda che sono due campioni esclusivi) - - if (!zMuMu->empty()) { - numberOfEventsWithZMuMufound++; - event.getByToken(zMuMuMatchMapToken_, zMuMuMatchMap); - event.getByToken(muonIsoToken_, muonIso); - event.getByToken(standAloneIsoToken_, standAloneIso); - event.getByToken(muonMatchMapToken_, muonMatchMap); - for (unsigned int i = 0; i < zMuMu->size(); ++i) { //loop on candidates - const Candidate &zMuMuCand = (*zMuMu)[i]; //the candidate - CandidateBaseRef zMuMuCandRef = zMuMu->refAt(i); - bool isMatched = false; - GenParticleRef zMuMuMatch = (*zMuMuMatchMap)[zMuMuCandRef]; - - if (zMuMuMatch.isNonnull()) { // ZMuMu matched - isMatched = true; - numberOfMatchedZMuMu_++; - } - CandidateBaseRef dau0 = zMuMuCand.daughter(0)->masterClone(); - CandidateBaseRef dau1 = zMuMuCand.daughter(1)->masterClone(); - if (isMatched) - ZMuMuMatchedfound = true; - - // Cuts - if ((dau0->pt() > ptmin_) && (dau1->pt() > ptmin_) && (fabs(dau0->eta()) < etamax_) && - (fabs(dau1->eta()) < etamax_) && (zMuMuCand.mass() > zMassMin_) && (zMuMuCand.mass() < zMassMax_) && - (isMatched)) { - //The Z daughters are already matched! - const double globalMuonIsolation0 = (*muonIso)[dau0]; - const double globalMuonIsolation1 = (*muonIso)[dau1]; - if ((globalMuonIsolation0 < isomax_) && - (globalMuonIsolation1 < isomax_)) { // ZMuMu matched and selected by cuts - ZMuMuMatchedSelectedfound = true; - numberOfMatchedSelectedZMuMu_++; - h_etaStandAlone_->Fill(dau0->eta()); // StandAlone found dau0, eta - h_etaStandAlone_->Fill(dau1->eta()); // StandAlone found dau1, eta - h_etaMuonOverlappedToStandAlone_->Fill(dau0->eta()); // is global muon so dau0 is also found as a track, eta - h_etaMuonOverlappedToStandAlone_->Fill(dau1->eta()); // is global muon so dau1 is also found as a track, eta - h_ptStandAlone_->Fill(dau0->pt()); // StandAlone found dau0, pt - h_ptStandAlone_->Fill(dau1->pt()); // StandAlone found dau1, pt - h_ptMuonOverlappedToStandAlone_->Fill(dau0->pt()); // is global muon so dau0 is also found as a track, pt - h_ptMuonOverlappedToStandAlone_->Fill(dau1->pt()); // is global muon so dau1 is also found as a track, pt - - h_etaTrack_->Fill(dau0->eta()); // Track found dau0, eta - h_etaTrack_->Fill(dau1->eta()); // Track found dau1, eta - h_etaMuonOverlappedToTrack_->Fill(dau0->eta()); // is global muon so dau0 is also found as a StandAlone, eta - h_etaMuonOverlappedToTrack_->Fill(dau1->eta()); // is global muon so dau1 is also found as a StandAlone, eta - h_ptTrack_->Fill(dau0->pt()); // Track found dau0, pt - h_ptTrack_->Fill(dau1->pt()); // Track found dau1, pt - h_ptMuonOverlappedToTrack_->Fill(dau0->pt()); // is global muon so dau0 is also found as a StandAlone, pt - h_ptMuonOverlappedToTrack_->Fill(dau1->pt()); // is global muon so dau1 is also found as a StandAlone, pt - - h_DELTA_ZMuMuMassReco_dimuonMassGen_->Fill(zMuMuCand.mass() - dimuonMassGen); - // check that the two muons are matched . .per ora è solo un mio controllo - for (unsigned int j = 0; j < muons->size(); ++j) { - CandidateBaseRef muCandRef = muons->refAt(j); - GenParticleRef muonMatch = (*muonMatchMap)[muCandRef]; - // if (muonMatch.isNonnull()) cout << "mu match n. " << j << endl; - } - } - } - } - } - - if (!zMuStandAlone->empty()) { - numberOfEventsWithZMuStafound++; - event.getByToken(zMuStandAloneMatchMapToken_, zMuStandAloneMatchMap); - event.getByToken(muonIsoToken_, muonIso); - event.getByToken(standAloneIsoToken_, standAloneIso); - event.getByToken(muonMatchMapToken_, muonMatchMap); - for (unsigned int i = 0; i < zMuStandAlone->size(); ++i) { //loop on candidates - const Candidate &zMuStaCand = (*zMuStandAlone)[i]; //the candidate - CandidateBaseRef zMuStaCandRef = zMuStandAlone->refAt(i); - bool isMatched = false; - GenParticleRef zMuStaMatch = (*zMuStandAloneMatchMap)[zMuStaCandRef]; - if (zMuStaMatch.isNonnull()) { // ZMuSta Macthed - isMatched = true; - ZMuStaMatchedfound = true; - numberOfMatchedZMuSta_++; - } - CandidateBaseRef dau0 = zMuStaCand.daughter(0)->masterClone(); - CandidateBaseRef dau1 = zMuStaCand.daughter(1)->masterClone(); - - // Cuts - if ((dau0->pt() > ptmin_) && (dau1->pt() > ptmin_) && (fabs(dau0->eta()) < etamax_) && - (fabs(dau1->eta()) < etamax_) && (zMuStaCand.mass() > zMassMin_) && (zMuStaCand.mass() < zMassMax_) && - (isMatched)) { - CandidateBaseRef standAloneMuonCandRef_, globalMuonCandRef_; - if (dau0->isGlobalMuon()) { - standAloneMuonCandRef_ = dau1; - globalMuonCandRef_ = dau0; - } - if (dau1->isGlobalMuon()) { - standAloneMuonCandRef_ = dau0; - globalMuonCandRef_ = dau1; - } - - const double globalMuonIsolation = (*muonIso)[globalMuonCandRef_]; - const double standAloneMuonIsolation = (*standAloneIso)[standAloneMuonCandRef_]; - - if ((globalMuonIsolation < isomax_) && (standAloneMuonIsolation < isomax_)) { // ZMuSta matched and selected - //ZMuStaMatchedSelectedfound = true; - numberOfMatchedSelectedZMuSta_++; - h_etaStandAlone_->Fill(standAloneMuonCandRef_->eta()); //Denominator eta for measuring track efficiency - h_ptStandAlone_->Fill(standAloneMuonCandRef_->pt()); //Denominator pt for measuring track eff - h_DELTA_ZMuStaMassReco_dimuonMassGen_->Fill( - zMuStaCand.mass() - dimuonMassGen); // differnce between ZMuSta reco and dimuon mass gen - } - } - } - } //end loop on Candidate - - //STANDALONE efficiency - - if (!zMuTrack->empty()) { - event.getByToken(zMuTrackMatchMapToken_, zMuTrackMatchMap); - event.getByToken(muonIsoToken_, muonIso); - event.getByToken(trackIsoToken_, trackIso); - event.getByToken(muonMatchMapToken_, muonMatchMap); - for (unsigned int i = 0; i < zMuTrack->size(); ++i) { //loop on candidates - const Candidate &zMuTrkCand = (*zMuTrack)[i]; //the candidate - CandidateBaseRef zMuTrkCandRef = zMuTrack->refAt(i); - bool isMatched = false; - GenParticleRef zMuTrkMatch = (*zMuTrackMatchMap)[zMuTrkCandRef]; - if (zMuTrkMatch.isNonnull()) { - isMatched = true; - } - CandidateBaseRef dau0 = zMuTrkCand.daughter(0)->masterClone(); - CandidateBaseRef dau1 = zMuTrkCand.daughter(1)->masterClone(); - - if (isMatched) { - ZMuTrackMatchedfound++; - if (ZMuMuMatchedfound) - numberOfMatchedZMuTrack_matchedZMuMu++; - if (ZMuMuMatchedSelectedfound) - numberOfMatchedZMuTrack_matchedSelectedZMuMu++; - if (!ZMuMuMatchedfound) - numberOfMatchedZMuTrack_exclusive++; - } - // Cuts - if ((dau0->pt() > ptmin_) && (dau1->pt() > ptmin_) && (fabs(dau0->eta()) < etamax_) && - (fabs(dau1->eta()) < etamax_) && (zMuTrkCand.mass() > zMassMin_) && (zMuTrkCand.mass() < zMassMax_) && - (isMatched) && !ZMuMuMatchedfound && !ZMuStaMatchedfound) { - // dau0 is always the global muon, dau1 is the track for ZMuTrack collection - const double globalMuonIsolation = (*muonIso)[dau0]; - const double trackMuonIsolation = (*trackIso)[dau1]; - if ((globalMuonIsolation < isomax_) && - (trackMuonIsolation < isomax_)) { // ZMuTRack matched - selected without ZMuMu found (exclusive) - numberOfMatchedSelectedZMuTrack_exclusive++; - ZMuTrackMatchedSelected_exclusivefound++; - h_etaTrack_->Fill(dau1->eta()); //Denominator eta Sta - h_ptTrack_->Fill(dau1->pt()); //Denominator pt Sta - h_DELTA_ZMuTrackMassReco_dimuonMassGen_->Fill(zMuTrkCand.mass() - dimuonMassGen); - } - } - } - } //end loop on Candidate - - if (!ZMuMuMatchedfound && !ZMuStaMatchedfound && ZMuTrackMatchedfound == 0) - noMCmatching++; - if (!ZMuMuMatchedfound && ZMuTrackMatchedfound == 1) - ZMuTrack_exclusive_1match++; - if (!ZMuMuMatchedfound && ZMuTrackMatchedfound > 1) - ZMuTrack_exclusive_morematch++; - if (!ZMuMuMatchedfound && ZMuTrackMatchedSelected_exclusivefound == 1) - ZMuTrackselected_exclusive_1match++; - if (!ZMuMuMatchedfound && ZMuTrackMatchedSelected_exclusivefound > 1) - ZMuTrackselected_exclusive_morematch++; - if (ZMuMuMatchedfound && ZMuTrackMatchedfound == 1) - ZMuTrack_ZMuMu_1match++; - if (ZMuMuMatchedfound && ZMuTrackMatchedfound == 2) - ZMuTrack_ZMuMu_2match++; - if (ZMuMuMatchedfound && ZMuTrackMatchedfound > 2) - ZMuTrack_ZMuMu_morematch++; -} - -bool ZMuMuEfficiency::check_ifZmumu(const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - bool muplusFound = false; - bool muminusFound = false; - bool ZFound = false; - if (partId0 == 13 || partId1 == 13 || partId2 == 13) - muminusFound = true; - if (partId0 == -13 || partId1 == -13 || partId2 == -13) - muplusFound = true; - if (partId0 == 23 || partId1 == 23 || partId2 == 23) - ZFound = true; - return (muplusFound && muminusFound && ZFound); -} - -float ZMuMuEfficiency::getParticlePt(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float ptpart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - return ptpart; -} - -float ZMuMuEfficiency::getParticleEta(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float etapart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - return etapart; -} - -float ZMuMuEfficiency::getParticlePhi(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float phipart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - return phipart; -} - -Particle::LorentzVector ZMuMuEfficiency::getParticleP4(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - Particle::LorentzVector p4part(0., 0., 0., 0.); - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - return p4part; -} - -void ZMuMuEfficiency::endJob() { - // double efficiencySTA =(double)numberOfOverlappedStandAlone_/(double)numberOfMatchedZMuTrack_; - // double errorEff_STA = sqrt( efficiencySTA*(1 - efficiencySTA)/(double)numberOfMatchedZMuTrack_); - - double myTrackEff = 2. * numberOfMatchedSelectedZMuMu_ / - (2. * numberOfMatchedSelectedZMuMu_ + (double)numberOfMatchedSelectedZMuSta_); - double myErrTrackEff = sqrt(myTrackEff * (1 - myTrackEff) / - (2. * numberOfMatchedSelectedZMuMu_ + (double)numberOfMatchedSelectedZMuSta_)); - - double myStaEff = 2. * numberOfMatchedSelectedZMuMu_ / - (2. * numberOfMatchedSelectedZMuMu_ + (double)numberOfMatchedSelectedZMuTrack_exclusive); - double myErrStaEff = sqrt(myTrackEff * (1 - myTrackEff) / - (2. * numberOfMatchedSelectedZMuMu_ + (double)numberOfMatchedSelectedZMuTrack_exclusive)); - - // double efficiencyTRACK =(double)numberOfOverlappedTracks_/(double)numberOfMatchedZMuSta_; - // double errorEff_TRACK = sqrt( efficiencyTRACK*(1 - efficiencyTRACK)/(double)numberOfMatchedZMuSta_); - - cout << "------------------------------------ Counters for MC acceptance --------------------------------" << endl; - cout << "totalNumberOfevents = " << totalNumberOfevents << endl; - cout << "totalNumberOfZfound = " << totalNumberOfZfound << endl; - cout << "totalNumberOfZpassed = " << totalNumberOfZPassed << endl; - cout << "n. of events zMuMu found (gen level selected)" << n_zMuMufound_genZsele << endl; - cout << "n. of events zMuSta found (gen level selected)" << n_zMuStafound_genZsele << endl; - cout << "n. of events zMuTrk found (gen level selected)" << n_zMuTrkfound_genZsele << endl; - - cout << "---------------------------- Counter for MC truth efficiency calculation--------------------- " << endl; - - cout << "number of events with ZMuMu found = " << numberOfEventsWithZMuMufound << endl; - cout << "number of events with ZMuSta found = " << numberOfEventsWithZMuStafound << endl; - cout << "-------------------------------------------------------------------------------------- " << endl; - - cout << "number of events without MC maching = " << noMCmatching << endl; - cout << "number of ZMuTrack exclsive 1 match = " << ZMuTrack_exclusive_1match << endl; - cout << "number of ZMuTrack exclsive more match = " << ZMuTrack_exclusive_morematch << endl; - cout << "number of ZMuTrack selected exclusive 1 match = " << ZMuTrackselected_exclusive_1match << endl; - cout << "number of ZMuTrack selected exclusive more match = " << ZMuTrackselected_exclusive_morematch << endl; - cout << "number of ZMuTrack ZMuMu 1 match = " << ZMuTrack_ZMuMu_1match << endl; - cout << "number of ZMuTrack ZMuMu 2 match = " << ZMuTrack_ZMuMu_2match << endl; - cout << "number of ZMuTrack ZMuMu more match = " << ZMuTrack_ZMuMu_morematch << endl; - cout << "numberOfMatchedZMuMu = " << numberOfMatchedZMuMu_ << endl; - cout << "numberOfMatchedSelectdZMuMu = " << numberOfMatchedSelectedZMuMu_ << endl; - cout << "numberOfMatchedZMuSta = " << numberOfMatchedZMuSta_ << endl; - cout << "numberOfMatchedSelectedZMuSta = " << numberOfMatchedSelectedZMuSta_ << endl; - cout << "numberOfMatchedZMuTrack_matchedZMuMu = " << numberOfMatchedZMuTrack_matchedZMuMu << endl; - cout << "numberOfMatchedZMuTrack_matchedSelectedZMuMu = " << numberOfMatchedZMuTrack_matchedSelectedZMuMu << endl; - cout << "numberOfMatchedZMuTrack exclusive = " << numberOfMatchedZMuTrack_exclusive << endl; - cout << "numberOfMatchedSelectedZMuTrack exclusive = " << numberOfMatchedSelectedZMuTrack_exclusive << endl; - cout << " ----------------------------- Efficiency --------------------------------- " << endl; - cout << "Efficiency StandAlone = " << myStaEff << " +/- " << myErrStaEff << endl; - cout << "Efficiency Track = " << myTrackEff << " +/- " << myErrTrackEff << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuEfficiency); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuIsolationAnalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuIsolationAnalyzer.cc deleted file mode 100644 index c5a5b7916a5b2..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuIsolationAnalyzer.cc +++ /dev/null @@ -1,382 +0,0 @@ -#include "DataFormats/Common/interface/AssociationVector.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" -#include "TH1.h" -#include "TH2.h" -#include "TMath.h" -#include -#include -#include -#include - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; - -class ZMuMuIsolationAnalyzer : public edm::EDAnalyzer { -public: - ZMuMuIsolationAnalyzer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - EDGetTokenT srcToken; - double dRVeto; - double dRTrk, dREcal, dRHcal; - double ptThreshold, etEcalThreshold, etHcalThreshold; - double alpha, beta; - double pt, eta; - double iso_cut; - - TH1F *h_IsoZ_tk, *h_IsoW_tk, *h_IsoOther_tk; - TH1F *h_IsoZ_ecal, *h_IsoW_ecal, *h_IsoOther_ecal; - TH1F *h_IsoZ_hcal, *h_IsoW_hcal, *h_IsoOther_hcal; - TH1F *IsoZ, *IsoW, *IsoOther; - TH1F *TkrPt, *EcalEt, *HcalEt; - TH1F *EcalEtZ, *HcalEtZ; - - TH1F *Z_eta, *W_eta, *Other_eta; - TH1F *Z_eta_postSelection, *W_eta_postSelection, *Other_eta_postSelection; - TH1F *Z_pt, *W_pt, *Other_pt; - TH1F *Z_pt_postSelection, *W_pt_postSelection, *Other_pt_postSelection; - - enum MuTag { muFromZ, muFromW, muFromOther }; - template - MuTag muTag(const T& mu) const; - void Deposits(const pat::IsoDeposit* isodep, double dR_max, TH1F* hist); - void histo(TH1F* hist, const char* cx, const char* cy) const; -}; - -template -ZMuMuIsolationAnalyzer::MuTag ZMuMuIsolationAnalyzer::muTag(const T& mu) const { - GenParticleRef p = mu.genParticleRef(); - if (p.isNull()) { - // cout<<"genParticleRef is null "<numberOfMothers(); - if (sizem != 1) { - //cout<<"number of mothers !=1 "<mother(); - if (moth1 == nullptr) { - return muFromOther; - //cout<<"no mother "<pdgId(); - if (abs(pdgId1) != 13) { - return muFromOther; - //cout<<"mother is not a muon"<mother(); - if (moth2 == nullptr) { - return muFromOther; - //cout<<"no mother "<pdgId(); - if (pdgId2 == 23) { - //cout<<" muon from Z"<begin(); it != isodep->end(); ++it) { - if (it->dR() < dR_max) { - double theta = 2 * (TMath::ATan(TMath::Exp(-(it->eta())))); - // double theta= 2; - hist->Fill(it->value() / TMath::Sin(theta)); - } - } -} - -void ZMuMuIsolationAnalyzer::histo(TH1F* hist, const char* cx, const char* cy) const { - hist->GetXaxis()->SetTitle(cx); - hist->GetYaxis()->SetTitle(cy); - hist->GetXaxis()->SetTitleOffset(1); - hist->GetYaxis()->SetTitleOffset(1.2); - hist->GetXaxis()->SetTitleSize(0.04); - hist->GetYaxis()->SetTitleSize(0.04); - hist->GetXaxis()->SetLabelSize(0.03); - hist->GetYaxis()->SetLabelSize(0.03); -} - -ZMuMuIsolationAnalyzer::ZMuMuIsolationAnalyzer(const ParameterSet& pset) - : srcToken(consumes(pset.getParameter("src"))), - dRVeto(pset.getUntrackedParameter("veto")), - dRTrk(pset.getUntrackedParameter("deltaRTrk")), - dREcal(pset.getUntrackedParameter("deltaREcal")), - dRHcal(pset.getUntrackedParameter("deltaRHcal")), - ptThreshold(pset.getUntrackedParameter("ptThreshold")), - etEcalThreshold(pset.getUntrackedParameter("etEcalThreshold")), - etHcalThreshold(pset.getUntrackedParameter("etHcalThreshold")), - alpha(pset.getUntrackedParameter("alpha")), - beta(pset.getUntrackedParameter("beta")), - pt(pset.getUntrackedParameter("pt")), - eta(pset.getUntrackedParameter("eta")), - iso_cut(pset.getUntrackedParameter("isoCut")) { - edm::Service fs; - std::ostringstream str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, n_tracks; - str1 << "muons from Z with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk; - str2 << "muons from W with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk; - str3 << "muons from Others with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk; - str4 << "muons from Z with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk << " (alpha = " << alpha << " , " - << "beta = " << beta << " )"; - str5 << "muons from W with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk << " (alpha = " << alpha << " , " - << "beta = " << beta << " )"; - str6 << "muons from Other with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk << " (alpha = " << alpha << " , " - << "beta = " << beta << " )"; - n_tracks << "Number of tracks for muon with p_{t} > " << ptThreshold << " and #Delta R < " << dRTrk << " GeV/c"; - str7 << "Isolation Vs p_{t} with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk << "(Tracker)"; - str8 << "Isolation Vs p_{t} with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk << "(Ecal)"; - str9 << "Isolation Vs p_{t} with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk << "(Hcal)"; - str10 << "Isolation Vs p_{t} with p_{t} > " << ptThreshold << " GeV/c" - << " and #Delta R < " << dRTrk << " (alpha = " << alpha << " , " - << "beta = " << beta << " )"; - h_IsoZ_tk = fs->make("ZIso_Tk", str1.str().c_str(), 100, 0., 20.); - h_IsoW_tk = fs->make("WIso_Tk", str2.str().c_str(), 100, 0., 20.); - h_IsoOther_tk = fs->make("otherIso_Tk", str3.str().c_str(), 100, 0., 20.); - h_IsoZ_ecal = fs->make("ZIso_ecal", str1.str().c_str(), 100, 0., 20.); - h_IsoW_ecal = fs->make("WIso_ecal", str2.str().c_str(), 100, 0., 20.); - h_IsoOther_ecal = fs->make("otherIso_ecal", str3.str().c_str(), 100, 0., 20.); - h_IsoZ_hcal = fs->make("ZIso_hcal", str1.str().c_str(), 100, 0., 20.); - h_IsoW_hcal = fs->make("WIso_hcal", str2.str().c_str(), 100, 0., 20.); - h_IsoOther_hcal = fs->make("otherIso_hcal", str3.str().c_str(), 100, 0., 20.); - IsoZ = fs->make("ZIso", str4.str().c_str(), 100, 0., 20.); - IsoW = fs->make("WIso", str5.str().c_str(), 100, 0., 20.); - IsoOther = fs->make("otherIso", str6.str().c_str(), 100, 0., 20.); - - Z_eta = fs->make("Z_eta", "#eta distribution for muons coming from Z", 40, -eta, eta); - W_eta = fs->make("W_eta", "#eta distribution for muons coming from W", 40, -eta, eta); - Other_eta = fs->make("Other_eta", "#eta distribution for muons coming from other", 40, -eta, eta); - Z_eta_postSelection = fs->make( - "Z_eta_postSelection", "#eta distribution for muons coming from Z after iso selection", 40, -eta, eta); - W_eta_postSelection = fs->make( - "W_eta_postSelection", "#eta distribution for muons coming from W after iso selection", 40, -eta, eta); - Other_eta_postSelection = fs->make( - "Other_eta_postSelection", "#eta distribution for muons coming from other after iso selection", 40, -eta, eta); - - Z_pt = fs->make("Z_pt", "p_{T} distribution for muons coming from Z", 40, pt, 150.); - W_pt = fs->make("W_pt", "p_{T} distribution for muons coming from W", 40, pt, 150.); - Other_pt = fs->make("Other_pt", "p_{T} distribution for muons coming from other", 40, pt, 150.); - Z_pt_postSelection = fs->make( - "Z_pt_postSelection", "p_{T} distribution for muons coming from Z after iso selection", 40, pt, 150.); - W_pt_postSelection = fs->make( - "W_pt_postSelection", "p_{t} distribution for muons coming from W after iso selection", 40, pt, 150.); - Other_pt_postSelection = fs->make( - "Other_pt_postSelection", "p_{t} distribution for muons coming from other after iso selection", 40, pt, 150.); - - TkrPt = fs->make("TkrPt", "IsoDeposit p distribution in the Tracker", 100, 0., 10.); - EcalEt = fs->make("EcalEt", "IsoDeposit E distribution in the Ecal", 100, 0., 5.); - HcalEt = fs->make("HcalEt", "IsoDeposit E distribution in the Hcal", 100, 0., 5.); - - EcalEtZ = fs->make("VetoEcalEt", " #Sigma E_{T} deposited in veto cone in the Ecal", 100, 0., 10.); - HcalEtZ = fs->make("VetoHcalEt", " #Sigma E_{T} deposited in veto cone in the Hcal", 100, 0., 10.); -} - -void ZMuMuIsolationAnalyzer::analyze(const edm::Event& event, const edm::EventSetup& setup) { - Handle dimuons; - event.getByToken(srcToken, dimuons); - - for (unsigned int i = 0; i < dimuons->size(); ++i) { - const Candidate& zmm = (*dimuons)[i]; - const Candidate* dau0 = zmm.daughter(0); - const Candidate* dau1 = zmm.daughter(1); - const pat::Muon& mu0 = dynamic_cast(*dau0->masterClone()); - const pat::GenericParticle& mu1 = dynamic_cast(*dau1->masterClone()); - - const pat::IsoDeposit* muTrackIso = mu0.isoDeposit(pat::TrackIso); - const pat::IsoDeposit* tkTrackIso = mu1.isoDeposit(pat::TrackIso); - const pat::IsoDeposit* muEcalIso = mu0.isoDeposit(pat::EcalIso); - const pat::IsoDeposit* tkEcalIso = mu1.isoDeposit(pat::EcalIso); - const pat::IsoDeposit* muHcalIso = mu0.isoDeposit(pat::HcalIso); - const pat::IsoDeposit* tkHcalIso = mu1.isoDeposit(pat::HcalIso); - - if (mu0.pt() > pt && mu1.pt() > pt && abs(mu0.eta()) < eta && abs(mu1.eta()) < eta) { - Direction muDir = Direction(mu0.eta(), mu0.phi()); - Direction tkDir = Direction(mu1.eta(), mu1.phi()); - - IsoDeposit::AbsVetos vetos_mu; - vetos_mu.push_back(new ConeVeto(muDir, dRVeto)); - vetos_mu.push_back(new ThresholdVeto(ptThreshold)); - - reco::IsoDeposit::AbsVetos vetos_tk; - vetos_tk.push_back(new ConeVeto(tkDir, dRVeto)); - vetos_tk.push_back(new ThresholdVeto(ptThreshold)); - - reco::IsoDeposit::AbsVetos vetos_mu_ecal; - vetos_mu_ecal.push_back(new ConeVeto(muDir, 0.)); - vetos_mu_ecal.push_back(new ThresholdVeto(etEcalThreshold)); - - reco::IsoDeposit::AbsVetos vetos_tk_ecal; - vetos_tk_ecal.push_back(new ConeVeto(tkDir, 0.)); - vetos_tk_ecal.push_back(new ThresholdVeto(etEcalThreshold)); - - reco::IsoDeposit::AbsVetos vetos_mu_hcal; - vetos_mu_hcal.push_back(new ConeVeto(muDir, 0.)); - vetos_mu_hcal.push_back(new ThresholdVeto(etHcalThreshold)); - - reco::IsoDeposit::AbsVetos vetos_tk_hcal; - vetos_tk_hcal.push_back(new ConeVeto(tkDir, 0.)); - vetos_tk_hcal.push_back(new ThresholdVeto(etHcalThreshold)); - MuTag tag_mu = muTag(mu0); - MuTag tag_track = muTag(mu1); - - double Tk_isovalue = TMath::Max(muTrackIso->sumWithin(dRTrk, vetos_mu), tkTrackIso->sumWithin(dRTrk, vetos_tk)); - double Ecal_isovalue = - TMath::Max(muEcalIso->sumWithin(dREcal, vetos_mu_ecal), tkEcalIso->sumWithin(dREcal, vetos_tk_ecal)); - double Hcal_isovalue = - TMath::Max(muHcalIso->sumWithin(dRHcal, vetos_mu_hcal), tkHcalIso->sumWithin(dRHcal, vetos_tk_hcal)); - EcalEtZ->Fill(muEcalIso->candEnergy()); - EcalEtZ->Fill(tkEcalIso->candEnergy()); - HcalEtZ->Fill(muHcalIso->candEnergy()); - HcalEtZ->Fill(tkHcalIso->candEnergy()); - - double iso_value0 = alpha * ((0.5 * (1 + beta) * muEcalIso->sumWithin(dREcal, vetos_mu_ecal)) + - (0.5 * (1 - beta) * muHcalIso->sumWithin(dRHcal, vetos_mu_hcal))) + - (1 - alpha) * muTrackIso->sumWithin(dRTrk, vetos_mu); - double iso_value1 = alpha * ((0.5 * (1 + beta) * tkEcalIso->sumWithin(dREcal, vetos_tk_ecal)) + - (0.5 * (1 - beta) * tkHcalIso->sumWithin(dRHcal, vetos_tk_hcal))) + - (1 - alpha) * tkTrackIso->sumWithin(dRTrk, vetos_tk); - - double iso_value = TMath::Max(iso_value0, iso_value1); - - if (tag_mu == muFromZ && tag_track == muFromZ) { - h_IsoZ_tk->Fill(Tk_isovalue); - h_IsoZ_ecal->Fill(Ecal_isovalue); - h_IsoZ_hcal->Fill(Hcal_isovalue); - IsoZ->Fill(iso_value); - - Z_eta->Fill(mu0.eta()); - Z_eta->Fill(mu1.eta()); - Z_pt->Fill(mu0.pt()); - Z_pt->Fill(mu1.pt()); - - if (iso_value0 < iso_cut) { - Z_pt_postSelection->Fill(mu0.pt()); - Z_eta_postSelection->Fill(mu0.eta()); - } - if (iso_value1 < iso_cut) { - Z_pt_postSelection->Fill(mu1.pt()); - Z_eta_postSelection->Fill(mu1.eta()); - } - - Deposits(muTrackIso, dRTrk, TkrPt); - Deposits(muEcalIso, dREcal, EcalEt); - Deposits(muHcalIso, dRHcal, HcalEt); - Deposits(tkTrackIso, dRTrk, TkrPt); - Deposits(tkEcalIso, dREcal, EcalEt); - Deposits(tkHcalIso, dRHcal, HcalEt); - } - if (tag_mu == muFromW || tag_track == muFromW) { - h_IsoW_tk->Fill(Tk_isovalue); - h_IsoW_ecal->Fill(Ecal_isovalue); - h_IsoW_hcal->Fill(Hcal_isovalue); - IsoW->Fill(iso_value); - - W_eta->Fill(mu0.eta()); - W_eta->Fill(mu1.eta()); - W_pt->Fill(mu0.pt()); - W_pt->Fill(mu1.pt()); - - if (iso_value0 < iso_cut) { - W_pt_postSelection->Fill(mu0.pt()); - W_eta_postSelection->Fill(mu0.eta()); - } - if (iso_value1 < iso_cut) { - W_pt_postSelection->Fill(mu1.pt()); - W_eta_postSelection->Fill(mu1.eta()); - } - - Deposits(muTrackIso, dRTrk, TkrPt); - Deposits(muEcalIso, dREcal, EcalEt); - Deposits(muHcalIso, dRHcal, HcalEt); - Deposits(tkTrackIso, dRTrk, TkrPt); - Deposits(tkEcalIso, dREcal, EcalEt); - Deposits(tkHcalIso, dRHcal, HcalEt); - } else { - h_IsoOther_tk->Fill(Tk_isovalue); - h_IsoOther_ecal->Fill(Ecal_isovalue); - h_IsoOther_hcal->Fill(Hcal_isovalue); - IsoOther->Fill(iso_value); - - Other_eta->Fill(mu0.eta()); - Other_eta->Fill(mu1.eta()); - Other_pt->Fill(mu0.pt()); - Other_pt->Fill(mu1.pt()); - - if (iso_value0 < iso_cut) { - Other_pt_postSelection->Fill(mu0.pt()); - Other_eta_postSelection->Fill(mu0.eta()); - } - if (iso_value1 < iso_cut) { - Other_pt_postSelection->Fill(mu1.pt()); - Other_eta_postSelection->Fill(mu1.eta()); - } - - Deposits(muTrackIso, dRTrk, TkrPt); - Deposits(muEcalIso, dREcal, EcalEt); - Deposits(muHcalIso, dRHcal, HcalEt); - Deposits(tkTrackIso, dRTrk, TkrPt); - Deposits(tkEcalIso, dREcal, EcalEt); - Deposits(tkHcalIso, dRHcal, HcalEt); - } - } - } - - histo(h_IsoZ_tk, "#Sigma p_{T}", "Events"); - histo(h_IsoW_tk, "#Sigma p_{T}", "Events"); - histo(h_IsoOther_tk, "#Sigma p_{T}", "#Events"); - histo(h_IsoZ_ecal, "#Sigma E_{t}", "Events"); - histo(h_IsoW_ecal, "#Sigma E_{t}", "Events"); - histo(h_IsoOther_ecal, "#Sigma E_{t}", "Events"); - histo(h_IsoZ_hcal, "#Sigma E_{t}", "Events"); - histo(h_IsoW_hcal, "#Sigma E_{t}", "Events"); - histo(h_IsoOther_hcal, "#Sigma E_{t}", "Events"); - histo(TkrPt, "p ", ""); - histo(EcalEt, "E ", ""); - histo(HcalEt, "E ", ""); - histo(HcalEtZ, "E_{T}", ""); - histo(EcalEtZ, "E_{T}", ""); -} - -void ZMuMuIsolationAnalyzer::endJob() {} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuIsolationAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuOverlapExclusion.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuOverlapExclusion.cc deleted file mode 100644 index 09123304c6d3c..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuOverlapExclusion.cc +++ /dev/null @@ -1,113 +0,0 @@ -#include "CommonTools/UtilAlgos/interface/OverlapExclusionSelector.h" -#include "CommonTools/UtilAlgos/interface/SingleObjectSelector.h" -#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" -#include - -struct ZMuMuOverlap { - ZMuMuOverlap(const edm::ParameterSet&) {} - bool operator()(const reco::Candidate& zMuMu, const reco::Candidate& z) const { - using namespace std; - using namespace reco; - // check if a candidate z is different from zMuMu - // (for example a Z can be done with two global muons, or with a global muon plus a standalone muon. - // if the standalone muon is part of the second global muon in fact this is the same Z) - - unsigned int nd1 = zMuMu.numberOfDaughters(); - unsigned int nd2 = z.numberOfDaughters(); - - assert(nd1 == 2 && nd2 == 2); - const int maxd = 2; - const Candidate* daughters1[maxd]; - const Candidate* daughters2[maxd]; - TrackRef trackerTrack1[maxd]; - TrackRef stAloneTrack1[maxd]; - TrackRef globalTrack1[maxd]; - TrackRef trackerTrack2[maxd]; - TrackRef stAloneTrack2[maxd]; - TrackRef globalTrack2[maxd]; - bool flag; - unsigned int matched = 0; - - for (unsigned int i = 0; i < nd1; ++i) { - daughters1[i] = zMuMu.daughter(i); - trackerTrack1[i] = daughters1[i]->get(); - stAloneTrack1[i] = daughters1[i]->get(); - globalTrack1[i] = daughters1[i]->get(); - - /*********************************************** just used for debug ******************** - if (trackerTrack1[i].isNull()) - cout << "in ZMuMu daughter " << i << " tracker ref non found " << endl; - else - cout << "in ZMuMu daughter " << i << " tracker ref FOUND" - << " id: " << trackerTrack1[i].id() << ", index: " << trackerTrack1[i].key() - << endl; - if (stAloneTrack1[i].isNull()) - cout << "in ZMuMu daughter " << i << " stalone ref non found " << endl; - else - cout << "in ZMuMu daughter " << i << " stalone ref FOUND" - << " id: " << stAloneTrack1[i].id() << ", index: " << stAloneTrack1[i].key() - << endl; - - if (globalTrack1[i].isNull()) - cout << "in ZMuMu daughter " << i << " global ref non found " << endl; - else - cout << "in ZMuMu daughter " << i << " global ref FOUND" - << " id: " << globalTrack1[i].id() << ", index: " << globalTrack1[i].key() - << endl; - */ - } - for (unsigned int i = 0; i < nd2; ++i) { - daughters2[i] = z.daughter(i); - trackerTrack2[i] = daughters2[i]->get(); - stAloneTrack2[i] = daughters2[i]->get(); - globalTrack2[i] = daughters2[i]->get(); - - /******************************************** just used for debug ************ - if (trackerTrack2[i].isNull()) - cout << "in ZMuSta daughter " << i << " tracker ref non found " << endl; - else - cout << "in ZMuSta daughter " << i << " tracker ref FOUND" - << " id: " << trackerTrack2[i].id() << ", index: " << trackerTrack2[i].key() - << endl; - if (stAloneTrack2[i].isNull()) - cout << "in ZMuSta daughter " << i << " standalone ref non found " << endl; - else - cout << "in ZMuSta daughter " << i << " standalone ref FOUND" - << " id: " << stAloneTrack2[i].id() << ", index: " << stAloneTrack2[i].key() - << endl; - - if (globalTrack2[i].isNull()) - cout << "in ZMuSta daughter " << i << " global ref non found " << endl; - else - cout << "in ZMuSta daughter " << i << " global ref FOUND" - << " id: " << globalTrack2[i].id() << ", index: " << globalTrack2[i].key() - << endl; - - */ - } - for (unsigned int i = 0; i < nd1; i++) { - flag = false; - for (unsigned int j = 0; j < nd2; - j++) { // if the obj2 is a standalone the trackref is alwais in the trackerTRack position - if (((trackerTrack2[i].id() == trackerTrack1[j].id()) && (trackerTrack2[i].key() == trackerTrack1[j].key())) || - ((trackerTrack2[i].id() == stAloneTrack1[j].id()) && (trackerTrack2[i].key() == stAloneTrack1[j].key()))) { - flag = true; - } - } - if (flag) - matched++; - } - if (matched == nd1) // return true if all the childrens of the ZMuMu have a children matched in ZMuXX - return true; - else - return false; - } -}; - -typedef SingleObjectSelector, - OverlapExclusionSelector > - ZMuMuOverlapExclusionSelector; - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuOverlapExclusionSelector); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuPerformances.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuPerformances.cc deleted file mode 100644 index b3ce46c5c1608..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuPerformances.cc +++ /dev/null @@ -1,1405 +0,0 @@ -/* \class ZMuMuPerformances - * - * author: Davide Piccolo - * - * ZMuMu Performances: - * check charge mis-id for standAlone and global muons, - * check standAlne resolution vs track resolution - * - */ - -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/Candidate/interface/CandAssociation.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include - -using namespace edm; -using namespace std; -using namespace reco; - -typedef ValueMap IsolationCollection; - -class ZMuMuPerformances : public edm::EDAnalyzer { -public: - ZMuMuPerformances(const edm::ParameterSet &pset); - -private: - void analyze(const edm::Event &event, const edm::EventSetup &setup) override; - bool check_ifZmumu(const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticlePt(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticleEta(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticlePhi(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - Particle::LorentzVector getParticleP4(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2); - void endJob() override; - - EDGetTokenT zMuMuToken_; - EDGetTokenT zMuMuMatchMapToken_; - EDGetTokenT zMuTrackToken_; - EDGetTokenT zMuTrackMatchMapToken_; - EDGetTokenT zMuStandAloneToken_; - EDGetTokenT zMuStandAloneMatchMapToken_; - EDGetTokenT muonsToken_; - EDGetTokenT muonMatchMapToken_; - EDGetTokenT muonIsoToken_; - EDGetTokenT tracksToken_; - EDGetTokenT trackIsoToken_; - EDGetTokenT genParticlesToken_; - - bool noCut_; - double zMassMin_, zMassMax_; - double ptminPlus_, ptmaxPlus_, etaminPlus_, etamaxPlus_; - double ptminMinus_, ptmaxMinus_, etaminMinus_, etamaxMinus_, isomax_; - - double etamax_, ptmin_, massMin_, massMax_, isoMax_; - - reco::CandidateBaseRef globalMuonCandRef_, trackMuonCandRef_, standAloneMuonCandRef_; - OverlapChecker overlap_; - - // general histograms - TH1D *h_n_globalMuon_perEvent, *h_n_staOnlyMuon_perEvent, *h_n_trackerOnlyMuon_perEvent, - *h_n_trackerStaOnlyMuon_perEvent; - TH1D *h_n_globalMuon_perEvent_MCmatch, *h_n_staOnlyMuon_perEvent_MCmatch, *h_n_trackerOnlyMuon_perEvent_MCmatch; - TH1D *h_n_trackerStaOnlyMuon_perEvent_MCmatch, *h_n_tracks_perEvent; - TH1D *h_n_zMuMu_perEvent, *h_n_zMuSta_perEvent, *h_n_zMuTrack_perEvent; - - // zMuMu inv mass - TH1D *h_zMuMuMassSameSign, *h_zMuMuMassSameSign_MCmatch, *h_zMuMuMassOppositeSign; - // histograms with MC truth - // charge truth - TH1D *h_GlobalMuonChargeTimeGenCharge, *h_TrackerMuonChargeTimeGenCharge; - // resolution respect to gen particles - TH1D *h_GlobalMuonEtaMinusGenEta, *h_TrackerMuonEtaMinusGenEta, *h_GlobalMuonPtMinusGenPt, *h_TrackerMuonPtMinusGenPt; - TH1D *h_GlobalMuonStaComponentEtaMinusGenEta, *h_GlobalMuonStaComponentPtMinusGenPt; - TH2D *h_DEtaGlobalGenvsEtaGen, *h_DPtGlobalGenvsPtGen, *h_DEtaGlobalStaComponentGenvsEtaGen, - *h_DPtGlobalStaComponentGenvsPtGen; - TH2D *h_DPtGlobalGenvsEtaGen, *h_DPtGlobalStaComponentGenvsEtaGen; - // resolution respect to gen particles for ZMuMuTagged events - TH1D *h_GlobalMuonEtaMinusGenEta_ZMuMuTagged; - TH1D *h_GlobalMuonPtMinusGenPt_ZMuMuTagged; - TH1D *h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged, *h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged; - TH2D *h_DEtaGlobalGenvsEtaGen_ZMuMuTagged, *h_DPtGlobalGenvsPtGen_ZMuMuTagged; - TH2D *h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged, *h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged; - TH2D *h_DPtGlobalGenvsEtaGen_ZMuMuTagged, *h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged; - TH2D *h_DPtTrackGenvsPtGen_ZMuMuTagged, *h_DPtTrackGenvsEtaGen_ZMuMuTagged; - - // histograms for cynematic of ZMuMutagged muons for STA performances studies - TH1D *h_zMuTrackMass_ZMuMuTagged, *h_etaTrack_ZMuMuTagged, *h_phiTrack_ZMuMuTagged, *h_ptTrack_ZMuMuTagged, - *h_DRTrack_ZMuMuTagged; - // histograms for cynematic of ZMuMutagged muons when StandAlone has wrong charge - TH1D *h_zMuTrackMass_wrongStaCharge_ZMuMuTagged, *h_etaTrack_wrongStaCharge_ZMuMuTagged; - TH1D *h_phiTrack_wrongStaCharge_ZMuMuTagged, *h_ptTrack_wrongStaCharge_ZMuMuTagged, - *h_DRTrack_wrongStaCharge_ZMuMuTagged; - - // hisograms for performances of Standlone when Sta has correct charge - TH1D *h_zMuStaMass_correctStaCharge_ZMuMuTagged, *h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged; - TH2D *h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged; - TH2D *h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged; - - // histograms for cynematic of ZMuMutagged muons for TRK performances studies - TH1D *h_zMuStaMass_ZMuMuTagged, *h_etaSta_ZMuMuTagged, *h_phiSta_ZMuMuTagged, *h_ptSta_ZMuMuTagged, - *h_DRSta_ZMuMuTagged; - // histograms for cynematic of ZMuMutagged muons when TRK has wrong charge - TH1D *h_zMuStaMass_wrongTrkCharge_ZMuMuTagged, *h_etaSta_wrongTrkCharge_ZMuMuTagged; - TH1D *h_phiSta_wrongTrkCharge_ZMuMuTagged, *h_ptSta_wrongTrkCharge_ZMuMuTagged, *h_DRSta_wrongTrkCharge_ZMuMuTagged; - - // histograms for cynematic of ZMuTracktagged muons with unMatchd StandAlone for STA performances studies - TH1D *h_zMuTrackMass_ZMuTrackTagged, *h_etaTrack_ZMuTrackTagged, *h_phiTrack_ZMuTrackTagged, - *h_ptTrack_ZMuTrackTagged, *h_DRTrack_ZMuTrackTagged; - // histograms for cynematic of ZMuTracktagged muons when unMatched StandAlone has wrong charge - TH1D *h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged, *h_etaTrack_wrongStaCharge_ZMuTrackTagged; - TH1D *h_phiTrack_wrongStaCharge_ZMuTrackTagged, *h_ptTrack_wrongStaCharge_ZMuTrackTagged, - *h_DRTrack_wrongStaCharge_ZMuTrackTagged; - - // histograms for cynematic of ZMuStatagged muons with unMatchd Track for Track performances studies - TH1D *h_zMuStaMass_ZMuStaTagged, *h_etaSta_ZMuStaTagged, *h_phiSta_ZMuStaTagged, *h_ptSta_ZMuStaTagged; - // histograms for cynematic of ZMuStatagged muons when unMatched Track has wrong charge - TH1D *h_zMuStaMass_wrongTrkCharge_ZMuStaTagged, *h_etaSta_wrongTrkCharge_ZMuStaTagged; - TH1D *h_phiSta_wrongTrkCharge_ZMuStaTagged, *h_ptSta_wrongTrkCharge_ZMuStaTagged; - - // global counters - int totalNumberOfZfound; // total number of events with Z found - int totalNumberOfZpassed; // total number of Z that pass cynematical cuts at generator level - - int nZMuMuSameSign; // number of ZMuMu SameSIgn (no Cuts) - int nZMuMuSameSign_mcMatched; // number of ZMuMu Same Sign (no cuts) MCmatch - - int n_goodTrack_ZMuMutagged; // total number of tracks selected and tagged to study Sta charge - int n_correctStaCharge_ZMuMutagged; // total number of tracks selected and tagged with correct charge of Sta - int n_wrongStaCharge_ZMuMutagged; // total number of tracks selected and tagged with wrong charge of Sta - - int n_goodSta_ZMuMutagged; // total number of standAlone selected and tagged to study Trk charge - int n_correctTrkCharge_ZMuMutagged; // total number of standAlone selected and tagged with correct charge of Trk - int n_wrongTrkCharge_ZMuMutagged; // total number of standAlone selected and tagged with wrong charge of Trk - - int n_goodTrack_ZMuTracktagged; // number of traks selected and tagged to study Sta charge (for ZMuTrack colllection no ZMuMu found) - int n_correctStaCharge_ZMuTracktagged; // total number of tracks selected and tagged with correct charge of unMatched Sta - int n_wrongStaCharge_ZMuTracktagged; // total number of tracks selected and tagged with wrong charge of unMatched Sta - int n_StaNotFound_ZMuTracktagged; // total number of tracks selected and tagged with no STA found - - int n_goodSta_ZMuStatagged; // number of sta selected and tagged to study Trk charge (for ZMuSta collection no ZMuMu found) - int n_correctTrkCharge_ZMuStatagged; // total number of sta selected and tagged with correct charge of unMatched track - int n_wrongTrkCharge_ZMuStatagged; // total number of sta selected and tagged with wrong charge of unMatched track - int n_TrkNotFound_ZMuStatagged; // total number of selected selected and tagged with no Trk found - - int n_OneGoodZMuTrack; // total number with just 1 good ZMuTrack found - int n_MultipleGoodZMuTrack; // total number with more than 1 good ZMuTrack found - int numberOfMatchedZMuSta_; - int n_ZMuStaTaggedMatched; -}; - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include -#include -#include - -ZMuMuPerformances::ZMuMuPerformances(const ParameterSet &pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - zMuMuMatchMapToken_(mayConsume(pset.getParameter("zMuMuMatchMap"))), - zMuTrackToken_(consumes(pset.getParameter("zMuTrack"))), - zMuTrackMatchMapToken_(mayConsume(pset.getParameter("zMuTrackMatchMap"))), - zMuStandAloneToken_(consumes(pset.getParameter("zMuStandAlone"))), - zMuStandAloneMatchMapToken_(mayConsume(pset.getParameter("zMuStandAloneMatchMap"))), - muonsToken_(consumes(pset.getParameter("muons"))), - muonMatchMapToken_(mayConsume(pset.getParameter("muonMatchMap"))), - muonIsoToken_(mayConsume(pset.getParameter("muonIso"))), - tracksToken_(consumes(pset.getParameter("tracks"))), - trackIsoToken_(mayConsume(pset.getParameter("trackIso"))), - genParticlesToken_(consumes(pset.getParameter("genParticles"))), - - noCut_(pset.getParameter("noCut")), - - zMassMin_(pset.getUntrackedParameter("zMassMin")), - zMassMax_(pset.getUntrackedParameter("zMassMax")), - ptminPlus_(pset.getUntrackedParameter("ptminPlus")), - ptmaxPlus_(pset.getUntrackedParameter("ptmaxPlus")), - etaminPlus_(pset.getUntrackedParameter("etaminPlus")), - etamaxPlus_(pset.getUntrackedParameter("etamaxPlus")), - ptminMinus_(pset.getUntrackedParameter("ptminMinus")), - ptmaxMinus_(pset.getUntrackedParameter("ptmaxMinus")), - etaminMinus_(pset.getUntrackedParameter("etaminMinus")), - etamaxMinus_(pset.getUntrackedParameter("etamaxMinus")), - isomax_(pset.getUntrackedParameter("isomax")) { - Service fs; - - // cut setting - etamax_ = etamaxPlus_; - ptmin_ = ptminPlus_; - massMin_ = zMassMin_; - massMax_ = zMassMax_; - isoMax_ = isomax_; - - // general histograms - h_n_globalMuon_perEvent = fs->make("n_globalMuon_perEvent", "n.of globalMuons per Event", 6, -.5, 5.5); - h_n_staOnlyMuon_perEvent = - fs->make("n_staOnlyMuon_perEvent", "n.of standAlone Only Muons per Event", 6, -.5, 5.5); - h_n_trackerOnlyMuon_perEvent = - fs->make("n_trackerOnlyMuon_perEvent", "n.of tracker Only Muons per Event", 6, -.5, 5.5); - h_n_trackerStaOnlyMuon_perEvent = - fs->make("n_trackerStaOnlyMuon_perEvent", "n.of tracker & StandAlone Only Muons per Event", 6, -.5, 5.5); - h_n_globalMuon_perEvent_MCmatch = - fs->make("n_globalMuon_perEvent_MCmatch", "n.of globalMuons per Event (MCmatch)", 6, -.5, 5.5); - h_n_staOnlyMuon_perEvent_MCmatch = - fs->make("n_staOnlyMuon_perEvent_MCmatch", "n.of standAlone Only Muons per Event (MCmatch)", 6, -.5, 5.5); - h_n_trackerOnlyMuon_perEvent_MCmatch = - fs->make("n_trackerOnlyMuon_perEvent_MCmatch", "n.of tracker Only Muons per Event (MCmatch)", 6, -.5, 5.5); - h_n_trackerStaOnlyMuon_perEvent_MCmatch = fs->make( - "n_trackerStaOnlyMuon_perEvent_MCmatch", "n.of tracker & StandAlone Only Muons per Event (MCmatch)", 6, -.5, 5.5); - h_n_tracks_perEvent = fs->make("n_tracks_perEvent", "n.of tracks per Event", 100, -.5, 99.5); - h_n_zMuMu_perEvent = fs->make("n_zMuMu_perEvent", "n.of global-global muons per Event", 6, -.5, 5.5); - h_n_zMuSta_perEvent = fs->make("n_zMuSta_perEvent", "n.of global-sta muons per Event", 6, -.5, 5.5); - h_n_zMuTrack_perEvent = fs->make("n_zMuTrack_perEvent", "n.of global-track muons per Event", 100, -.5, 99.5); - - // zMuMu inv mass - h_zMuMuMassSameSign = fs->make("zMuMuMassSameSign", "inv Mass ZMuMu cand SameSign", 100, 0., 200.); - h_zMuMuMassOppositeSign = fs->make("zMuMuMassOppositeSign", "inv Mass ZMuMu cand OppositeSign", 100, 0., 200.); - h_zMuMuMassSameSign_MCmatch = - fs->make("zMuMuMassSameSign_MCmatch", "inv Mass ZMuMu cand SameSign (MC match)", 100, 0., 200.); - - // histograms for MC truth - // charge truth - h_GlobalMuonChargeTimeGenCharge = - fs->make("GlobalMuonChargeTimeGenCharge", "charge global mu times charge generated mu", 3, -1.5, 1.5); - h_TrackerMuonChargeTimeGenCharge = - fs->make("TrackerMuonChargeTimeGenCharge", "charge Tracker mu times charge generated mu", 3, -1.5, 1.5); - // resolution respect to gen particles - h_GlobalMuonEtaMinusGenEta = - fs->make("GlobalMuonEtaMinusGenEta", "global mu Eta minus generated mu Eta", 100, -.005, .005); - h_GlobalMuonPtMinusGenPt = - fs->make("GlobalMuonPtMinusGenPtoverPt", "global mu Pt minus generated mu Pt over Pt", 100, -.5, .5); - h_GlobalMuonStaComponentEtaMinusGenEta = fs->make( - "GlobalMuonStaComponentEtaMinusGenEta", "global mu Sta cmponent Eta minus generated mu Eta", 100, -.5, .5); - h_GlobalMuonStaComponentPtMinusGenPt = fs->make("GlobalMuonStaComponentPtMinusGenPtoerPt", - "global mu Sta component Pt minus generated mu Pt over Pt", - 100, - -1., - 1.); - h_TrackerMuonEtaMinusGenEta = - fs->make("TrackerMuonEtaMinusGenEta", "Tracker mu Eta minus Eta generated mu", 100, -.005, .005); - h_TrackerMuonPtMinusGenPt = - fs->make("TrackerMuonPtMinusenPtoverPt", "Tracker mu Pt minus Pt generated mu over Pt", 100, -.5, .5); - - h_DEtaGlobalGenvsEtaGen = - fs->make("h_DEtaGlobalGenvsEtaGen", "Eta global - Eta Gen vs Eta gen", 50, -2.5, 2.5, 100, -.005, .005); - h_DEtaGlobalStaComponentGenvsEtaGen = fs->make("h_DEtaGlobalStaComponentGenvsEtaGen", - "Eta Sta component of a Global - Eta Gen vs Eta gen", - 50, - -2.5, - 2.5, - 100, - -.5, - .5); - h_DPtGlobalGenvsPtGen = - fs->make("h_DPtGlobalGenovePtvsPtGen", "Pt global - Pt Gen over Pt vs Pt gen", 50, 0., 100., 100, -.5, .5); - h_DPtGlobalStaComponentGenvsPtGen = fs->make("h_DPtGlobalStaComponentGenoverPtvsPtGen", - "Pt Sta component of a Global - Pt Gen over Pt vs Pt gen", - 50, - 0., - 100., - 100, - -1., - 1.); - - // resolution respect to gen particles for ZMuMuTagged events - h_GlobalMuonEtaMinusGenEta_ZMuMuTagged = - fs->make("GlobalMuonEtaMinusGenEta_ZMuMuTagged", "global mu Eta minus generated mu Eta", 100, -.005, .005); - h_GlobalMuonPtMinusGenPt_ZMuMuTagged = fs->make( - "GlobalMuonPtMinusGenPtoverPt_ZMuMuTagged", "global mu Pt minus generated mu Pt over Pt", 100, -.5, .5); - h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged = - fs->make("GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged", - "global mu Sta cmponent Eta minus generated mu Eta", - 100, - -.5, - .5); - h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged = - fs->make("GlobalMuonStaComponentPtMinusGenPtoverPt_ZMuMuTagged", - "global mu Sta component Pt minus generated mu Pt over Pt", - 100, - -1., - 1.); - h_DEtaGlobalGenvsEtaGen_ZMuMuTagged = fs->make( - "h_DEtaGlobalGenvsEtaGen_ZMuMuTagged", "Eta global - Eta Gen vs Eta gen", 50, -2.5, 2.5, 100, -.005, .005); - h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged = fs->make("h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged", - "Eta Sta component of a Global - Eta Gen vs Eta gen", - 50, - -2.5, - 2.5, - 100, - -.5, - .5); - h_DPtGlobalGenvsPtGen_ZMuMuTagged = fs->make( - "h_DPtGlobalGenOverPtvsPtGen_ZMuMuTagged", "Pt global - Pt Gen vs Pt gen over Pt", 50, 0., 100., 100, -.5, .5); - h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged = - fs->make("h_DPtGlobalStaComponentGenoverPtvsPtGen_ZMuMuTagged", - "Pt Sta component of a Global - Pt Gen over Pt vs Pt gen", - 50, - 0., - 100., - 100, - -1., - 1.); - h_DPtGlobalGenvsEtaGen_ZMuMuTagged = fs->make( - "h_DPtGlobalGenOverPtvsEtaGen_ZMuMuTagged", "Pt global - Pt Gen over Pt vs Eta gen", 50, -2.5, 2.5, 100, -.5, .5); - h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged = - fs->make("h_DPtGlobalStaComponentGenoverPtvsEtaGen_ZMuMuTagged", - "Pt Sta component of a Global - Pt Gen over Pt vs Eta gen", - 50, - -2.5, - 2.5, - 100, - -1., - 1.); - h_DPtTrackGenvsPtGen_ZMuMuTagged = fs->make( - "h_DPtTrackGenOverPtvsPtGen_ZMuMuTagged", "Pt track - Pt Gen vs Pt gen over Pt", 50, 0., 100., 100, -.5, .5); - h_DPtTrackGenvsEtaGen_ZMuMuTagged = fs->make( - "h_DPtTrackGenOverPtvsEtaGen_ZMuMuTagged", "Pt track - Pt Gen over Pt vs Eta gen", 50, -2.5, 2.5, 100, -.5, .5); - - // histograms for cynematic of ZMuMutagged muons for Sta performances studies - h_zMuTrackMass_ZMuMuTagged = - fs->make("zMuTrackMass_ZMuMuTagged", "inv Mass ZMuTrack cand (global-global)", 100, 0., 200.); - h_etaTrack_ZMuMuTagged = fs->make("etaTrack_ZMuMuTagged", "eta of Track (global-global)", 50, -2.5, 2.5); - h_phiTrack_ZMuMuTagged = fs->make("phiTrack_ZMuMuTagged", "phi of Track (global-global)", 50, -3.1415, 3.1415); - h_ptTrack_ZMuMuTagged = fs->make("ptTrack_ZMuMuTagged", "pt of Track (global-global)", 100, 0., 100.); - h_DRTrack_ZMuMuTagged = fs->make("DRTrackSta_ZMuMuTagged", "DR track-sta (global-global)", 100, 0., 5.); - - // histograms for cynematic of ZMuMutagged muons when StandAlone has wrong charge - h_zMuTrackMass_wrongStaCharge_ZMuMuTagged = fs->make( - "zMuTrackMass_wrongStaCharge_ZMuMuTagged", "inv Mass ZMuTrack cand (global-global wrongStaCharge)", 100, 0., 200.); - h_etaTrack_wrongStaCharge_ZMuMuTagged = fs->make( - "etaTrack_wrongStaCharge_ZMuMuTagged", "eta of Track (global-global wrongStaCharge)", 50, -2.5, 2.5); - h_phiTrack_wrongStaCharge_ZMuMuTagged = fs->make( - "phiTrack_wrongStaCharge_ZMuMuTagged", "phi of Track (global-global wrongStaCharge)", 50, -3.1415, 3.1415); - h_ptTrack_wrongStaCharge_ZMuMuTagged = - fs->make("ptTrack_wrongStaCharge_ZMuMuTagged", "pt of Track (global-global wrongStaCharge)", 100, 0., 100.); - h_DRTrack_wrongStaCharge_ZMuMuTagged = fs->make( - "DRTrackSta_wrongStaCharge_ZMuMuTagged", "DR track-sta (global-global wrongStaCharge)", 100, 0., 5.); - - // hisograms for performances of StandAlone when StandAlone has correct charge - h_zMuStaMass_correctStaCharge_ZMuMuTagged = fs->make( - "zMuStaMass_correctStaCharge_ZMuMuTagged", "inv Mass ZMuSta cand (global-global correctStaCharge)", 100, 0., 200.); - h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged = - fs->make("ptStaMinusptTrackoverPT_correctStaCharge_ZMuMuTagged", - "ptSta - ptTrack over Pt (global-global correctStaCharge)", - 100, - -1., - 1.); - h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged = - fs->make("ptStaMinusptTrackoverPt_vsPtTracker_correctStaCharge_ZMuMuTagged", - "ptSta - ptTrack over Pt vs ptTrack (global-global correctStaCharge)", - 100, - 0., - 100., - 100, - -1., - 1.); - h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged = - fs->make("ptStaMinusptTrackoverPt_vsEtaTracker_correctStaCharge_ZMuMuTagged", - "ptSta - ptTrack over Pt vs etaTrack (global-global correctStaCharge)", - 100, - -2.5, - 2.5, - 100, - -1., - 1.); - - // histograms for cynematic of ZMuMutagged muons for TRK performances studies - h_zMuStaMass_ZMuMuTagged = - fs->make("zMuStaMass_ZMuMuTagged", "inv Mass ZMuSta cand (global-global)", 100, 0., 200.); - h_etaSta_ZMuMuTagged = fs->make("etaSta_ZMuMuTagged", "eta of Sta (global-global)", 50, -2.5, 2.5); - h_phiSta_ZMuMuTagged = fs->make("phiSta_ZMuMuTagged", "phi of Sta (global-global)", 50, -3.1415, 3.1415); - h_ptSta_ZMuMuTagged = fs->make("ptSta_ZMuMuTagged", "pt of Sta (global-global)", 100, 0., 100.); - h_DRSta_ZMuMuTagged = - fs->make("DRTrackSta_ZMuMuTagged_staSelected", "DR track-sta sta selected (global-global)", 100, 0., 5.); - - // histograms for cynematic of ZMuMutagged muons when Track has wrong charge - h_zMuStaMass_wrongTrkCharge_ZMuMuTagged = fs->make( - "zMuStaMass_wrongTrkCharge_ZMuMuTagged", "inv Mass ZMuSta cand (global-global wrongTrkCharge)", 100, 0., 200.); - h_etaSta_wrongTrkCharge_ZMuMuTagged = - fs->make("etaSta_wrongTrkCharge_ZMuMuTagged", "eta of Sta (global-global wrongTrkCharge)", 50, -2.5, 2.5); - h_phiSta_wrongTrkCharge_ZMuMuTagged = fs->make( - "phiSta_wrongTrkCharge_ZMuMuTagged", "phi of Sta (global-global wrongTrkCharge)", 50, -3.1415, 3.1415); - h_ptSta_wrongTrkCharge_ZMuMuTagged = - fs->make("ptSta_wrongTrkCharge_ZMuMuTagged", "pt of Sta (global-global wrongTrkCharge)", 100, 0., 100.); - h_DRSta_wrongTrkCharge_ZMuMuTagged = fs->make( - "DRTrackSta_wrongTrkCharge_ZMuMuTagged", "DR track-sta (global-global wrongTrkCharge)", 100, 0., 5.); - - // - // **************************************************************************************************** - // histograms for cynematic of ZMuTracktagged muons with unMatched StandAlone - h_zMuTrackMass_ZMuTrackTagged = - fs->make("zMuTrackMass_ZMuTrackTagged", "inv Mass ZMuTrack cand (global-track)", 100, 0., 200.); - h_etaTrack_ZMuTrackTagged = fs->make("etaTrack_ZMuTrackTagged", "eta of Track (global-track)", 50, -2.5, 2.5); - h_phiTrack_ZMuTrackTagged = - fs->make("phiTrack_ZMuTrackTagged", "phi of Track (global-track)", 50, -3.1415, 3.1415); - h_ptTrack_ZMuTrackTagged = fs->make("ptTrack_ZMuTrackTagged", "pt of Track (global-track)", 100, 0., 100.); - h_DRTrack_ZMuTrackTagged = fs->make("DRTrackSta_ZMuTrackTagged", "DR track-sta (global-track)", 100, 0., 5.); - - // histograms for cynematic of ZMuTracktagged muons when unMatched StandAlone has wrong charge - h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged = - fs->make("zMuTrackMass_wrongStaCharge_ZMuTrackTagged", - "inv Mass ZMuTrack cand (global-track wrongUnMatcehdStaCharge)", - 100, - 0., - 200.); - h_etaTrack_wrongStaCharge_ZMuTrackTagged = fs->make( - "etaTrack_wrongStaCharge_ZMuTrackTagged", "eta of Track (global-track wrongUnMatchedStaCharge)", 50, -2.5, 2.5); - h_phiTrack_wrongStaCharge_ZMuTrackTagged = fs->make("phiTrack_wrongStaCharge_ZMuTrackTagged", - "phi of Track (global-track wrongUnMatchedStaCharge)", - 50, - -3.1415, - 3.1415); - h_ptTrack_wrongStaCharge_ZMuTrackTagged = fs->make( - "ptTrack_wrongStaCharge_ZMuTrackTagged", "pt of Track (global-track wrongUnMatchedStaCharge)", 100, 0., 100.); - h_DRTrack_wrongStaCharge_ZMuTrackTagged = fs->make( - "DRTrackSta_wrongStaCharge_ZMuTrackTagged", "DR track-sta (global-track wrongUnMatchedStaCharge)", 100, 0., 5.); - - // histograms for cynematic of ZMuStatagged muons with unMatched Track - h_zMuStaMass_ZMuStaTagged = - fs->make("zMuStaMass_ZMuStaTagged", "inv Mass ZMuSta cand (global-sta)", 100, 0., 200.); - h_etaSta_ZMuStaTagged = fs->make("etaSta_ZMuStaTagged", "eta of Sta (global-sta)", 50, -2.5, 2.5); - h_phiSta_ZMuStaTagged = fs->make("phiSta_ZMuStaTagged", "phi of Sta (global-sta)", 50, -3.1415, 3.1415); - h_ptSta_ZMuStaTagged = fs->make("ptSta_ZMuStaTagged", "pt of Sta (global-sta)", 100, 0., 100.); - - // histograms for cynematic of ZMuStatagged muons when unMatched track has wrong charge - h_zMuStaMass_wrongTrkCharge_ZMuStaTagged = fs->make("zMuStaMass_wrongTrkCharge_ZMuStaTagged", - "inv Mass ZMuSta cand (global-sta wrongUnMatcehdTrkCharge)", - 100, - 0., - 200.); - h_etaSta_wrongTrkCharge_ZMuStaTagged = fs->make( - "etaSta_wrongTrkCharge_ZMuStaTagged", "eta of Sta (global-sta wrongUnMatchedTrkCharge)", 50, -2.5, 2.5); - h_phiSta_wrongTrkCharge_ZMuStaTagged = fs->make( - "phiSta_wrongTrkCharge_ZMuStaTagged", "phi of Sta (global-sta wrongUnMatchedTrkCharge)", 50, -3.1415, 3.1415); - h_ptSta_wrongTrkCharge_ZMuStaTagged = fs->make( - "ptSta_wrongTrkCharge_ZMuStaTagged", "pt of Sta (global-sta wrongUnMatchedTrkCharge)", 100, 0., 100.); - - // clear global counters - totalNumberOfZfound = 0; - totalNumberOfZpassed = 0; - nZMuMuSameSign_mcMatched = 0; - nZMuMuSameSign = 0; - n_goodTrack_ZMuMutagged = 0; - n_correctStaCharge_ZMuMutagged = 0; - n_wrongStaCharge_ZMuMutagged = 0; - n_goodSta_ZMuMutagged = 0; - n_correctTrkCharge_ZMuMutagged = 0; - n_wrongTrkCharge_ZMuMutagged = 0; - n_goodTrack_ZMuTracktagged = 0; - n_correctStaCharge_ZMuTracktagged = 0; - n_wrongStaCharge_ZMuTracktagged = 0; - n_StaNotFound_ZMuTracktagged = 0; - - n_goodSta_ZMuStatagged = 0; - n_correctTrkCharge_ZMuStatagged = 0; - n_wrongTrkCharge_ZMuStatagged = 0; - n_TrkNotFound_ZMuStatagged = 0; - - n_OneGoodZMuTrack = 0; - n_MultipleGoodZMuTrack = 0; - numberOfMatchedZMuSta_ = 0; - n_ZMuStaTaggedMatched = 0; -} - -void ZMuMuPerformances::analyze(const Event &event, const EventSetup &setup) { - Handle zMuMu; - Handle zMuMuMatchMap; //Map of Z made by Mu global + Mu global (can be used also for same sign Zmumu) - Handle zMuTrack; - Handle zMuTrackMatchMap; //Map of Z made by Mu + Track - Handle zMuStandAlone; - Handle zMuStandAloneMatchMap; //Map of Z made by Mu + StandAlone - Handle muons; //Collection of Muons - Handle muonMatchMap; - Handle muonIso; - Handle tracks; //Collection of Tracks - Handle trackIso; - Handle genParticles; // Collection of Generatd Particles - - event.getByToken(zMuMuToken_, zMuMu); - event.getByToken(zMuTrackToken_, zMuTrack); - event.getByToken(zMuStandAloneToken_, zMuStandAlone); - event.getByToken(muonsToken_, muons); - event.getByToken(tracksToken_, tracks); - event.getByToken(genParticlesToken_, genParticles); - - /* - cout << "********* zMuMu size : " << zMuMu->size() << endl; - cout << "********* zMuMuSameSign size : " << zMuMuSameSign->size() << endl; - cout << "********* zMuStandAlone size : " << zMuStandAlone->size() << endl; - cout << "********* zMuTrack size : " << zMuTrack->size() << endl; - cout << "********* muons size : " << muons->size()<< endl; - cout << "********* standAlone size : " << standAlone->size()<< endl; - cout << "********* tracks size : " << tracks->size()<< endl; - cout << "********* generated size : " << genParticles->size()<< endl; - cout << "***************************************************" << endl; - */ - - int n_globalMuon_perEvent = 0; - int n_staOnlyMuon_perEvent = 0; - int n_trackerOnlyMuon_perEvent = 0; - int n_trackerStaOnlyMuon_perEvent = 0; - int n_globalMuon_perEvent_MCmatch = 0; - int n_staOnlyMuon_perEvent_MCmatch = 0; - int n_trackerOnlyMuon_perEvent_MCmatch = 0; - int n_trackerStaOnlyMuon_perEvent_MCmatch = 0; - - for (unsigned int j = 0; j < muons->size(); ++j) { - CandidateBaseRef muCandRef = muons->refAt(j); - const Candidate &muCand = (*muons)[j]; //the candidate - const reco::Muon &muon = dynamic_cast(muCand); - reco::TrackRef innerTrackRef = muon.track(); - reco::TrackRef outerTrackRef = muon.standAloneMuon(); - TrackRef muStaComponentRef = muCand.get(); // standalone part of muon - TrackRef muTrkComponentRef = muCand.get(); // track part of muon - GenParticleRef muonMatch = (*muonMatchMap)[muCandRef]; - if (muCandRef->isGlobalMuon() == 1) - n_globalMuon_perEvent++; - if (muCandRef->isGlobalMuon() == 0 && muCandRef->isTrackerMuon() == 0 && muCandRef->isStandAloneMuon() == 1) - n_staOnlyMuon_perEvent++; - if (muCandRef->isGlobalMuon() == 0 && muCandRef->isTrackerMuon() == 1 && muCandRef->isStandAloneMuon() == 0) - n_trackerOnlyMuon_perEvent++; - if (muCandRef->isGlobalMuon() == 0 && muCandRef->isTrackerMuon() == 1 && muCandRef->isStandAloneMuon() == 1) - n_trackerStaOnlyMuon_perEvent++; - - if (muonMatch.isNonnull()) { - if (muCandRef->isGlobalMuon() == 1) - n_globalMuon_perEvent_MCmatch++; - if (muCandRef->isGlobalMuon() == 0 && muCandRef->isTrackerMuon() == 0 && muCandRef->isStandAloneMuon() == 1) - n_staOnlyMuon_perEvent_MCmatch++; - if (muCandRef->isGlobalMuon() == 0 && muCandRef->isTrackerMuon() == 1 && muCandRef->isStandAloneMuon() == 0) - n_trackerOnlyMuon_perEvent_MCmatch++; - if (muCandRef->isGlobalMuon() == 0 && muCandRef->isTrackerMuon() == 1 && muCandRef->isStandAloneMuon() == 1) - n_trackerStaOnlyMuon_perEvent_MCmatch++; - double productCharge = muCandRef->charge() * muonMatch->charge(); - if (muCandRef->isGlobalMuon() == 1) { - h_GlobalMuonChargeTimeGenCharge->Fill(productCharge); - h_GlobalMuonEtaMinusGenEta->Fill(muCandRef->eta() - muonMatch->eta()); - h_GlobalMuonPtMinusGenPt->Fill((muCandRef->pt() - muonMatch->pt()) / muonMatch->pt()); - h_GlobalMuonStaComponentEtaMinusGenEta->Fill(muStaComponentRef->eta() - muonMatch->eta()); - h_GlobalMuonStaComponentPtMinusGenPt->Fill((muStaComponentRef->pt() - muonMatch->pt()) / muonMatch->pt()); - h_DEtaGlobalGenvsEtaGen->Fill(muonMatch->eta(), muCandRef->eta() - muonMatch->eta()); - h_DPtGlobalGenvsPtGen->Fill(muonMatch->pt(), (muCandRef->pt() - muonMatch->pt()) / muonMatch->pt()); - h_DEtaGlobalStaComponentGenvsEtaGen->Fill(muonMatch->eta(), muStaComponentRef->eta() - muonMatch->eta()); - h_DPtGlobalStaComponentGenvsPtGen->Fill(muonMatch->pt(), - (muStaComponentRef->pt() - muonMatch->pt()) / muonMatch->pt()); - } - if (muCandRef->isGlobalMuon() == 0 && muCandRef->isTrackerMuon() == 1) { - h_TrackerMuonChargeTimeGenCharge->Fill(productCharge); - h_TrackerMuonEtaMinusGenEta->Fill(muCandRef->eta() - muonMatch->eta()); - h_TrackerMuonPtMinusGenPt->Fill((muCandRef->pt() - muonMatch->pt()) / muonMatch->pt()); - } - } - } - h_n_globalMuon_perEvent->Fill(n_globalMuon_perEvent); - h_n_staOnlyMuon_perEvent->Fill(n_staOnlyMuon_perEvent); - h_n_trackerOnlyMuon_perEvent->Fill(n_trackerOnlyMuon_perEvent); - h_n_trackerStaOnlyMuon_perEvent->Fill(n_trackerStaOnlyMuon_perEvent); - h_n_globalMuon_perEvent_MCmatch->Fill(n_globalMuon_perEvent_MCmatch); - h_n_staOnlyMuon_perEvent_MCmatch->Fill(n_staOnlyMuon_perEvent_MCmatch); - h_n_trackerOnlyMuon_perEvent_MCmatch->Fill(n_trackerOnlyMuon_perEvent_MCmatch); - h_n_trackerStaOnlyMuon_perEvent_MCmatch->Fill(n_trackerStaOnlyMuon_perEvent_MCmatch); - h_n_tracks_perEvent->Fill(tracks->size()); - - h_n_zMuMu_perEvent->Fill(zMuMu->size()); - h_n_zMuSta_perEvent->Fill(zMuStandAlone->size()); - h_n_zMuTrack_perEvent->Fill(zMuTrack->size()); - - // std::cout<<"Run-> "< "<empty()) { - event.getByToken(zMuMuMatchMapToken_, zMuMuMatchMap); - event.getByToken(muonIsoToken_, muonIso); - event.getByToken(muonMatchMapToken_, muonMatchMap); - float muGenplus_pt = 0, muGenminus_pt = 0, muGenplus_eta = 100, muGenminus_eta = 100; - for (unsigned int i = 0; i < zMuMu->size(); ++i) { //loop on candidates - const Candidate &zMuMuCand = (*zMuMu)[i]; //the candidate - CandidateBaseRef zMuMuCandRef = zMuMu->refAt(i); - GenParticleRef zMuMuMatch = (*zMuMuMatchMap)[zMuMuCandRef]; - bool isMCMatched = false; - if (zMuMuMatch.isNonnull()) { - isMCMatched = true; // ZMuMu matched - if (zMuMuMatch->pdgId() == 23 && zMuMuMatch->status() == 3 && zMuMuMatch->numberOfDaughters() == 3) { - // Z0 decays in mu+ mu-, the 3rd daughter is the same Z0 - const Candidate *dauGen0 = zMuMuMatch->daughter(0); - const Candidate *dauGen1 = zMuMuMatch->daughter(1); - const Candidate *dauGen2 = zMuMuMatch->daughter(2); - if (check_ifZmumu(dauGen0, dauGen1, dauGen2)) { // Z0 in mu+ mu- - muGenplus_pt = getParticlePt(-13, dauGen0, dauGen1, dauGen2); - muGenminus_pt = getParticlePt(13, dauGen0, dauGen1, dauGen2); - muGenplus_eta = getParticleEta(-13, dauGen0, dauGen1, dauGen2); - muGenminus_eta = getParticleEta(13, dauGen0, dauGen1, dauGen2); - Particle::LorentzVector pZ(0, 0, 0, 0); - Particle::LorentzVector muplusp4 = getParticleP4(-13, dauGen0, dauGen1, dauGen2); - Particle::LorentzVector muminusp4 = getParticleP4(13, dauGen0, dauGen1, dauGen2); - pZ = muplusp4 + muminusp4; - } // en if is Z - } // end if is Z->mumu - } - - TrackRef as1 = zMuMuCand.daughter(0)->get(); // standalone part of ZMuMu cand0 - TrackRef as2 = zMuMuCand.daughter(1)->get(); // standalone part of ZMuMu cand1 - TrackRef a1 = zMuMuCand.daughter(0)->get(); // global part of ZMuMu cand0 - TrackRef a2 = zMuMuCand.daughter(1)->get(); // global part of ZMuMu cand1 - TrackRef at1 = zMuMuCand.daughter(0)->get(); // tracker part of ZMuMu cand0 - TrackRef at2 = zMuMuCand.daughter(1)->get(); // tracker part of ZMuMu cand1 - - math::XYZTLorentzVector ps1(as1->px(), as1->py(), as1->pz(), as1->p()); - math::XYZTLorentzVector ps2(as2->px(), as2->py(), as2->pz(), as2->p()); - math::XYZTLorentzVector pg1(a1->px(), a1->py(), a1->pz(), a1->p()); - math::XYZTLorentzVector pg2(a2->px(), a2->py(), a2->pz(), a2->p()); - math::XYZTLorentzVector ptrk1(at1->px(), at1->py(), at1->pz(), at1->p()); - math::XYZTLorentzVector ptrk2(at2->px(), at2->py(), at2->pz(), at2->p()); - - // double mass2global = (pg1+pg2).mass(); // inv. Mass done with the two global muons (is th same like m) - double massGlobalSta = - (pg1 + ps2).mass(); // inv. mass done with the global daughter(0) and the Sta part of Daughter(1) - double massStaGlobal = - (ps1 + pg2).mass(); // inv. mass done with the global daughter(1) and the Sta part of Daughter(0) - // double mass2Tracker = (ptrk1+ptrk2).mass(); // inv. mass done with the two tracker compnents - double massGlobalTracker = - (pg1 + ptrk2).mass(); // inv. mass done with the global daughter(0) and the tracker part of Daughter(1) - double massTrackerGlobal = - (ptrk1 + pg2).mass(); // inv. mass done with the global daughter(1) and the tracker part of Daughter(0) - double etaGlobal1 = a1->eta(); - double etaGlobal2 = a2->eta(); - double etaSta1 = as1->eta(); - double etaSta2 = as2->eta(); - double etaTracker1 = at1->eta(); - double etaTracker2 = at2->eta(); - // double phiGlobal1 = a1->phi(); - // double phiGlobal2 = a2->phi(); - double phiSta1 = as1->phi(); - double phiSta2 = as2->phi(); - double phiTracker1 = at1->phi(); - double phiTracker2 = at2->phi(); - double ptGlobal1 = a1->pt(); - double ptGlobal2 = a2->pt(); - double ptSta1 = as1->pt(); - double ptSta2 = as2->pt(); - double ptTracker1 = at1->pt(); - double ptTracker2 = at2->pt(); - double chargeGlobal1 = a1->charge(); - double chargeGlobal2 = a2->charge(); - double chargeSta1 = as1->charge(); - double chargeSta2 = as2->charge(); - double chargeTracker1 = at1->charge(); - double chargeTracker2 = at2->charge(); - double DR1 = deltaR(etaSta1, phiSta1, etaTracker1, phiTracker1); - double DR2 = deltaR(etaSta2, phiSta2, etaTracker2, phiTracker2); - - if (chargeGlobal1 == chargeGlobal2) { - nZMuMuSameSign++; - h_zMuMuMassSameSign->Fill(zMuMuCand.mass()); - if (isMCMatched) { - nZMuMuSameSign_mcMatched++; - h_zMuMuMassSameSign_MCmatch->Fill(zMuMuCand.mass()); - } - } else { - h_zMuMuMassOppositeSign->Fill(zMuMuCand.mass()); - } - - bool etaCut = false; - bool ptCut = false; - //bool isoCut = false; - bool massCut = false; - - // ****************************************************************************************************************************** - // Start study for StandAlone charge mis-id: select global-global events according to global1+track2 (or global2+track1) - // ******************************************************************************************************************************* - - // cynematical cuts for Zglobal1Track2 - if (abs(etaGlobal1) < etamax_ && abs(etaTracker2) < etamax_) - etaCut = true; - if (ptGlobal1 > ptmin_ && ptTracker2 > ptmin_) - ptCut = true; - if (massGlobalTracker > massMin_ && massGlobalTracker < massMax_) - massCut = true; - - if (noCut_) { - etaCut = true; - ptCut = true; - massCut = true; - } - - if (etaCut && ptCut && massCut) { - // check first global1-track2 if they have opposite charge and if global1 has consistent charge between sta and track - if (chargeSta1 == chargeTracker1 && - chargeTracker1 != chargeTracker2) { // event tagged to study StandAlone2 charge - n_goodTrack_ZMuMutagged++; - h_zMuTrackMass_ZMuMuTagged->Fill(massGlobalTracker); // inv mass global+tracker part - h_etaTrack_ZMuMuTagged->Fill(etaTracker2); // eta of tagged track - h_phiTrack_ZMuMuTagged->Fill(phiTracker2); // phi of tagged track - h_ptTrack_ZMuMuTagged->Fill(ptTracker2); // pt of tagged track - h_DRTrack_ZMuMuTagged->Fill(DR2); // DR between sta2 and tracker2 for tagged track - - if (isMCMatched) { // if MC match .. resolution plots of global1 respect to gen particles - double etaGen, ptGen; - if (chargeGlobal1 == 1) { - etaGen = muGenplus_eta; - ptGen = muGenplus_pt; - } else { - etaGen = muGenminus_eta; - ptGen = muGenminus_pt; - } - h_GlobalMuonEtaMinusGenEta_ZMuMuTagged->Fill(etaGlobal1 - etaGen); - h_GlobalMuonPtMinusGenPt_ZMuMuTagged->Fill((ptGlobal1 - ptGen) / ptGen); - h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged->Fill(etaSta1 - etaGen); - h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged->Fill((ptSta1 - ptGen) / ptGen); - h_DEtaGlobalGenvsEtaGen_ZMuMuTagged->Fill(etaGen, etaGlobal1 - etaGen); - h_DPtGlobalGenvsPtGen_ZMuMuTagged->Fill(ptGen, (ptGlobal1 - ptGen) / ptGen); - h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged->Fill(etaGen, etaSta1 - etaGen); - h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged->Fill(ptGen, (ptSta1 - ptGen) / ptGen); - h_DPtGlobalGenvsEtaGen_ZMuMuTagged->Fill(etaGen, (ptGlobal1 - ptGen) / ptGen); - h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged->Fill(etaGen, (ptSta1 - ptGen) / ptGen); - h_DPtTrackGenvsPtGen_ZMuMuTagged->Fill(ptGen, (ptTracker1 - ptGen) / ptGen); - h_DPtTrackGenvsEtaGen_ZMuMuTagged->Fill(etaGen, (ptTracker1 - ptGen) / ptGen); - - } // end if MC Match - - if (chargeSta2 == chargeTracker2) { // StandAlone2 has correct charge - n_correctStaCharge_ZMuMutagged++; - h_zMuStaMass_correctStaCharge_ZMuMuTagged->Fill( - massGlobalSta); // inv mass of global-Sta part for correct charge muons - h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged->Fill((ptSta2 - ptTracker2) / ptTracker2); - h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged->Fill(etaTracker2, - (ptSta2 - ptTracker2) / ptTracker2); - h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged->Fill(ptTracker2, - (ptSta2 - ptTracker2) / ptTracker2); - // qui posso aggiungere plot col MC match - } - if (chargeSta2 != chargeTracker2) { // StandAlone2 has wrong charge - n_wrongStaCharge_ZMuMutagged++; - h_zMuTrackMass_wrongStaCharge_ZMuMuTagged->Fill( - massGlobalTracker); // inv mass global+tracker part (wrong Sta charge) - h_etaTrack_wrongStaCharge_ZMuMuTagged->Fill(etaTracker2); // eta of tagged track (wrong Sta charge) - h_phiTrack_wrongStaCharge_ZMuMuTagged->Fill(phiTracker2); // phi of tagged track (wrong Sta charge) - h_ptTrack_wrongStaCharge_ZMuMuTagged->Fill(ptTracker2); // pt of tagged track (wrong Sta charge) - h_DRTrack_wrongStaCharge_ZMuMuTagged->Fill( - DR2); // DR between sta2 and tracker2 for tagged track (wrong Sta charge) - } - } // end if check chrge global1-tracker2 - } // end if cut selection - - // cynematical cuts for Zglobal2Track1 - etaCut = false; - ptCut = false; - massCut = false; - //isoCut = false; - if (abs(etaGlobal2) < etamax_ && abs(etaTracker1) < etamax_) - etaCut = true; - if (ptGlobal2 > ptmin_ && ptTracker1 > ptmin_) - ptCut = true; - if (massTrackerGlobal > massMin_ && massTrackerGlobal < massMax_) - massCut = true; - - if (noCut_) { - etaCut = true; - ptCut = true; - massCut = true; - } - - if (etaCut && ptCut && massCut) { - // check global2-track1 if they have opposite charge and if global2 has consistent charge between sta and track - if (chargeSta2 == chargeTracker2 && - chargeTracker1 != chargeTracker2) { // event tagged to study StandAlone2 charge - n_goodTrack_ZMuMutagged++; - h_zMuTrackMass_ZMuMuTagged->Fill(massTrackerGlobal); // inv mass global+tracker part - h_etaTrack_ZMuMuTagged->Fill(etaTracker1); // eta of tagged track - h_phiTrack_ZMuMuTagged->Fill(phiTracker1); // phi of tagged track - h_ptTrack_ZMuMuTagged->Fill(ptTracker1); // pt of tagged track - h_DRTrack_ZMuMuTagged->Fill(DR1); // DR between sta1 and tracker1 for tagged track - - // qui posso aggiungere plot col MC match - if (isMCMatched) { // if MC match .. resolution plots of global2 respect to gen particles - double etaGen, ptGen; - if (chargeGlobal2 == 1) { - etaGen = muGenplus_eta; - ptGen = muGenplus_pt; - } else { - etaGen = muGenminus_eta; - ptGen = muGenminus_pt; - } - h_GlobalMuonEtaMinusGenEta_ZMuMuTagged->Fill(etaGlobal2 - etaGen); - h_GlobalMuonPtMinusGenPt_ZMuMuTagged->Fill((ptGlobal2 - ptGen) / ptGen); - h_GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged->Fill(etaSta2 - etaGen); - h_GlobalMuonStaComponentPtMinusGenPt_ZMuMuTagged->Fill((ptSta2 - ptGen) / ptGen); - h_DEtaGlobalGenvsEtaGen_ZMuMuTagged->Fill(etaGen, etaGlobal2 - etaGen); - h_DPtGlobalGenvsPtGen_ZMuMuTagged->Fill(ptGen, (ptGlobal2 - ptGen) / ptGen); - h_DEtaGlobalStaComponentGenvsEtaGen_ZMuMuTagged->Fill(etaGen, etaSta2 - etaGen); - h_DPtGlobalStaComponentGenvsPtGen_ZMuMuTagged->Fill(ptGen, (ptSta2 - ptGen) / ptGen); - h_DPtGlobalGenvsEtaGen_ZMuMuTagged->Fill(etaGen, (ptGlobal2 - ptGen) / ptGen); - h_DPtGlobalStaComponentGenvsEtaGen_ZMuMuTagged->Fill(etaGen, (ptSta2 - ptGen) / ptGen); - h_DPtTrackGenvsPtGen_ZMuMuTagged->Fill(ptGen, (ptTracker2 - ptGen) / ptGen); - h_DPtTrackGenvsEtaGen_ZMuMuTagged->Fill(etaGen, (ptTracker2 - ptGen) / ptGen); - } // end if MC Match - - if (chargeSta1 == chargeTracker1) { // StandAlone1 has correct charge - n_correctStaCharge_ZMuMutagged++; - h_zMuStaMass_correctStaCharge_ZMuMuTagged->Fill( - massStaGlobal); // inv mass of Sta-global part for correct charge muons - h_ptStaMinusptTrack_correctStaCharge_ZMuMuTagged->Fill((ptSta1 - ptTracker1) / ptTracker1); - h_ptStaMinusptTrack_vsEtaTracker_correctStaCharge_ZMuMuTagged->Fill(etaTracker1, - (ptSta1 - ptTracker1) / ptTracker1); - h_ptStaMinusptTrack_vsPtTracker_correctStaCharge_ZMuMuTagged->Fill(ptTracker1, - (ptSta1 - ptTracker1) / ptTracker1); - } - if (chargeSta1 != chargeTracker1) { // StandAlone2 has wrong charge - n_wrongStaCharge_ZMuMutagged++; - h_zMuTrackMass_wrongStaCharge_ZMuMuTagged->Fill( - massTrackerGlobal); // inv mass global+tracker part (wrong Sta charge) - h_etaTrack_wrongStaCharge_ZMuMuTagged->Fill(etaTracker1); // eta of tagged track (wrong Sta charge) - h_phiTrack_wrongStaCharge_ZMuMuTagged->Fill(phiTracker1); // phi of tagged track (wrong Sta charge) - h_ptTrack_wrongStaCharge_ZMuMuTagged->Fill(ptTracker1); // pt of tagged track (wrong Sta charge) - h_DRTrack_wrongStaCharge_ZMuMuTagged->Fill( - DR1); // DR between sta1 and tracker1 for tagged track (wrong Sta charge) - } - } // end if check charge global1-tracker2 - } // end if cuts - - // ****************************************************************************************************************************** - // Start study for tracker charge mis-id: select global-global events according to global1+staComponent2 (or global2+staComponent1) - // ******************************************************************************************************************************* - - etaCut = false; - ptCut = false; - //isoCut = false; - massCut = false; - - // cynematical cuts for Zglobal1Sta2 - if (abs(etaGlobal1) < etamax_ && abs(etaSta2) < etamax_) - etaCut = true; - if (ptGlobal1 > ptmin_ && ptSta2 > ptmin_) - ptCut = true; - if (massGlobalSta > massMin_ && massGlobalSta < massMax_) - massCut = true; - - if (noCut_) { - etaCut = true; - ptCut = true; - massCut = true; - } - - if (etaCut && ptCut && massCut) { - // check first global1-sta2 if they have opposite charge and if global1 has consistent charge between sta and track - if (chargeSta1 == chargeTracker1 && chargeTracker1 != chargeSta2) { // event tagged to study track2 charge - n_goodSta_ZMuMutagged++; - h_zMuStaMass_ZMuMuTagged->Fill(massGlobalSta); // inv mass global+sta part - h_etaSta_ZMuMuTagged->Fill(etaSta2); // eta of tagged sta - h_phiSta_ZMuMuTagged->Fill(phiSta2); // phi of tagged sta - h_ptSta_ZMuMuTagged->Fill(ptSta2); // pt of tagged sta - h_DRSta_ZMuMuTagged->Fill(DR2); // DR between sta2 and tracker2 for tagged sta - - if (chargeSta2 == chargeTracker2) { // track2 has correct charge - n_correctTrkCharge_ZMuMutagged++; - // qui posso aggiungere plot col MC match - } - if (chargeSta2 != chargeTracker2) { // track2 has wrong charge - n_wrongTrkCharge_ZMuMutagged++; - h_zMuStaMass_wrongTrkCharge_ZMuMuTagged->Fill( - massGlobalSta); // inv mass global+sta part (wrong Trk charge) - h_etaSta_wrongTrkCharge_ZMuMuTagged->Fill(etaSta2); // eta of tagged sta (wrong trk charge) - h_phiSta_wrongTrkCharge_ZMuMuTagged->Fill(phiSta2); // phi of tagged sta (wrong Trk charge) - h_ptSta_wrongTrkCharge_ZMuMuTagged->Fill(ptSta2); // pt of tagged sta (wrong Trk charge) - h_DRSta_wrongTrkCharge_ZMuMuTagged->Fill( - DR2); // DR between sta2 and tracker2 for tagged sta (wrong trk charge) - } - } // end if check chrge global1-sta2 - } // end if cut selection - - etaCut = false; - ptCut = false; - //isoCut = false; - massCut = false; - - // cynematical cuts for Zglobal2Sta1 - if (abs(etaGlobal2) < etamax_ && abs(etaSta1) < etamax_) - etaCut = true; - if (ptGlobal2 > ptmin_ && ptSta1 > ptmin_) - ptCut = true; - if (massStaGlobal > massMin_ && massStaGlobal < massMax_) - massCut = true; - - if (noCut_) { - etaCut = true; - ptCut = true; - massCut = true; - } - - if (etaCut && ptCut && massCut) { - // check first global2-sta1 if they have opposite charge and if global2 has consistent charge between sta and track - if (chargeSta2 == chargeTracker2 && chargeTracker2 != chargeSta1) { // event tagged to study track1 charge - n_goodSta_ZMuMutagged++; - h_zMuStaMass_ZMuMuTagged->Fill(massStaGlobal); // inv mass global+sta part - h_etaSta_ZMuMuTagged->Fill(etaSta1); // eta of tagged sta - h_phiSta_ZMuMuTagged->Fill(phiSta1); // phi of tagged sta - h_ptSta_ZMuMuTagged->Fill(ptSta1); // pt of tagged sta - h_DRSta_ZMuMuTagged->Fill(DR1); // DR between sta1 and tracker1 for tagged sta - - if (chargeSta1 == chargeTracker1) { // track1 has correct charge - n_correctTrkCharge_ZMuMutagged++; - // qui posso aggiungere plot col MC match - } - if (chargeSta1 != chargeTracker1) { // track1 has wrong charge - n_wrongTrkCharge_ZMuMutagged++; - h_zMuStaMass_wrongTrkCharge_ZMuMuTagged->Fill( - massStaGlobal); // inv mass global+sta part (wrong Trk charge) - h_etaSta_wrongTrkCharge_ZMuMuTagged->Fill(etaSta1); // eta of tagged sta (wrong trk charge) - h_phiSta_wrongTrkCharge_ZMuMuTagged->Fill(phiSta1); // phi of tagged sta (wrong Trk charge) - h_ptSta_wrongTrkCharge_ZMuMuTagged->Fill(ptSta1); // pt of tagged sta (wrong Trk charge) - h_DRSta_wrongTrkCharge_ZMuMuTagged->Fill( - DR1); // DR between sta2 and tracker2 for tagged sta (wrong trk charge) - } - } // end if check chrge global2-sta1 - } // end if cut selection - - } // end loop on ZMuMu cand - } // end if ZMuMu size > 0 - - // loop on ZMuTrack in order to recover some unMatched StandAlone - - //double LargerDRCut=2.; // larger DR cut to recover unMatched Sta - int taggedZ_index = -1; // index of Z with minimum DR respect to unMatched Sta - int taggedMuon_index = -1; // index of Sta muon with minimum DR respect to unMatched track - int n_ZMuTrackTagged_inEvent = 0; // number of tagged Z in the event - if (!zMuTrack->empty() && zMuMu->empty()) { // check ZMuTrack just if no ZMuMu has been found in the event - event.getByToken(zMuTrackMatchMapToken_, zMuTrackMatchMap); - for (unsigned int i = 0; i < zMuTrack->size(); ++i) { //loop on candidates - const Candidate &zMuTrackCand = (*zMuTrack)[i]; //the candidate - CandidateBaseRef zMuTrackCandRef = zMuTrack->refAt(i); - GenParticleRef zMuTrackMatch = (*zMuTrackMatchMap)[zMuTrackCandRef]; - //bool isMCMatched = false; - //if(zMuTrackMatch.isNonnull()) isMCMatched = true; // ZMuTrack matched - // forzo isMCMatched - // isMCMatched = true; - - double m = zMuTrackCand.mass(); - CandidateBaseRef zglobalDaughter = zMuTrackCand.daughter(0)->masterClone(); - CandidateBaseRef ztrackerDaughter = zMuTrackCand.daughter(1)->masterClone(); - TrackRef zglobalDaughter_StaComponentRef = zMuTrackCand.daughter(0)->get(); - // standalone part of global component of ZMuMu - TrackRef zglobalDaughter_TrackComponentRef = zMuTrackCand.daughter(0)->get(); - // track part Of the global component of ZMuMu - double ZtrackerDaughterCharge = ztrackerDaughter->charge(); - double ZtrackerDaughterPt = ztrackerDaughter->pt(); - double ZtrackerDaughterEta = ztrackerDaughter->eta(); - double ZtrackerDaughterPhi = ztrackerDaughter->phi(); - double ZglobalDaughterPt = zglobalDaughter->pt(); - double ZglobalDaughterEta = zglobalDaughter->eta(); - double ZglobalDaughter_StaComponentCharge = zglobalDaughter_StaComponentRef->charge(); - double ZglobalDaughter_TrackComponentCharge = zglobalDaughter_TrackComponentRef->charge(); - - //********************************************************************************************************************* - // study of standAlone charge mis-id and efficiency selecting ZMuTrack events (tag the index of Z and of muon) - // for Sta charge mis-id just use unMatched standAlone muons trackerMuons that are standAlone Muons but no globalMuons - // ******************************************************************************************************************** - // cynematical cuts for ZMuTrack - bool etaCut = false; - bool ptCut = false; - // bool isoCut = false; - bool massCut = false; - if (abs(ZglobalDaughterEta) < etamax_ && abs(ZtrackerDaughterEta) < etamax_) - etaCut = true; - if (ZglobalDaughterPt > ptmin_ && ZtrackerDaughterPt > ptmin_) - ptCut = true; - if (m > massMin_ && m < massMax_) - massCut = true; - - if (noCut_) { - etaCut = true; - ptCut = true; - massCut = true; - } - if (etaCut && ptCut && massCut && ZglobalDaughter_StaComponentCharge == ZglobalDaughter_TrackComponentCharge && - ZglobalDaughter_TrackComponentCharge != - ZtrackerDaughterCharge) { // cynematic cuts and global charge consistent and opposite tracker charge - n_ZMuTrackTagged_inEvent++; - - // posso inserire istogrammi eta e pt track per studio Sta efficiency - // ... - - for (unsigned int j = 0; j < muons->size(); ++j) { - CandidateBaseRef muCandRef = muons->refAt(j); - const Candidate &muCand = (*muons)[j]; //the candidate - TrackRef muStaComponentRef = muCand.get(); // standalone part of muon - TrackRef muTrkComponentRef = muCand.get(); // track part of muon - - if (muCandRef->isStandAloneMuon() == 1 && muCandRef->isGlobalMuon() == 0 && muCandRef->isTrackerMuon() == 1) { - double muEta = muCandRef->eta(); - double muPhi = muCandRef->phi(); - // check DeltaR between Sta muon and tracks of ZMuTrack - double DRmuSta_trackOfZ = deltaR(muEta, muPhi, ZtrackerDaughterEta, ZtrackerDaughterPhi); - if (DRmuSta_trackOfZ == 0) { // match track track ... standalone-muTracker - taggedZ_index = i; - taggedMuon_index = j; - } // end check minimum DR - } // end if isStandAlone - } // end loop on muon candidates - } // end cynematic cuts - - } // end loop on zMuTrack size - } // end if zMuTrack size > 0 - - // analyze the tagged ZMuTRack and the Sta muons with minimal DR - if (n_ZMuTrackTagged_inEvent > 0) { // at Least one ZMuTRack tagged - - if (taggedZ_index == -1) { // StandAlone inefficient - n_StaNotFound_ZMuTracktagged++; - // h_etaTrack_StaNotFound_ZMuTrackTagged->Fill(ztrackerDaughter->eta()); - } else { - const Candidate &zMuTrackCand = (*zMuTrack)[taggedZ_index]; //the candidate tagged - CandidateBaseRef zMuTrackCandRef = zMuTrack->refAt(taggedZ_index); - double m = zMuTrackCand.mass(); - CandidateBaseRef zglobalDaughter = zMuTrackCand.daughter(0)->masterClone(); - CandidateBaseRef ztrackerDaughter = zMuTrackCand.daughter(1)->masterClone(); - TrackRef zglobalDaughter_StaComponentRef = zMuTrackCand.daughter(0)->get(); - // standalone part of global component of ZMuMu - TrackRef zglobalDaughter_TrackComponentRef = zMuTrackCand.daughter(0)->get(); - // track part Of the global component of ZMuMu - double ZtrackerDaughterCharge = ztrackerDaughter->charge(); - double ZtrackerDaughterPt = ztrackerDaughter->pt(); - double ZtrackerDaughterEta = ztrackerDaughter->eta(); - double ZtrackerDaughterPhi = ztrackerDaughter->phi(); - - CandidateBaseRef muCandRef = muons->refAt(taggedMuon_index); // the tagged muon - const Candidate &muCand = (*muons)[taggedMuon_index]; //the candidate - TrackRef muStaComponentRef = muCand.get(); // standalone part of muon - TrackRef muTrkComponentRef = muCand.get(); // track part of muon - - double muEta = muStaComponentRef->eta(); - double muPhi = muStaComponentRef->phi(); - double muCharge = muStaComponentRef->charge(); - // check DeltaR between Sta muon and tracks of ZMuTrack - double DRmuSta_trackOfZ = deltaR(muEta, muPhi, ZtrackerDaughterEta, ZtrackerDaughterPhi); - - n_goodTrack_ZMuTracktagged++; - h_zMuTrackMass_ZMuTrackTagged->Fill(m); // inv mass ZMuTrack for tagged events - h_etaTrack_ZMuTrackTagged->Fill(ZtrackerDaughterEta); // eta of tagged track - h_phiTrack_ZMuTrackTagged->Fill(ZtrackerDaughterPhi); // phi of tagged track - h_ptTrack_ZMuTrackTagged->Fill(ZtrackerDaughterPt); // pt of tagged track - h_DRTrack_ZMuTrackTagged->Fill(DRmuSta_trackOfZ); // DR between sta1 and tracker1 for tagged track - - // check StandAlone charge - if (muCharge != ZtrackerDaughterCharge) { // wrong Sta charge - n_wrongStaCharge_ZMuTracktagged++; // number of events wrong charge for unMatched Sta - h_zMuTrackMass_wrongStaCharge_ZMuTrackTagged->Fill( - m); // inv mass ZMuTrack for tagged events wrong unMatched Sta charge - h_etaTrack_wrongStaCharge_ZMuTrackTagged->Fill( - ZtrackerDaughterEta); // eta of tagged track wrong unMatched Sta charge - h_phiTrack_wrongStaCharge_ZMuTrackTagged->Fill( - ZtrackerDaughterPhi); // phi of tagged track wrong unMatched Sta charge - h_ptTrack_wrongStaCharge_ZMuTrackTagged->Fill( - ZtrackerDaughterPt); // pt of tagged track wrong unMatched Sta charge - h_DRTrack_wrongStaCharge_ZMuTrackTagged->Fill( - DRmuSta_trackOfZ); // DR between unMatched Sta and tracker for wrong sta charge - } else { // correct Sta charge - n_correctStaCharge_ZMuTracktagged++; // number of events correct charge for unMatched Sta - } // end if Sta charge check - } // end if StandAlone is present - } // end if zMuTrack tagged - - //********************************************************************************************************************* - // study of track charge mis-id and efficiency selecting ZMuSta events - // for Track charge mis-id just use unMatched standAlone muons trackerMuons that are standAlone Muons but no globalMuons - // ******************************************************************************************************************** - - // loop on ZMuSta in order to recover some unMatched StandAlone - bool isZMuStaMatched = false; - //LargerDRCut=2.; // larger DR cut to recover unMatched Sta - taggedZ_index = -1; // index of Z with minimum DR respect to unMatched Sta - taggedMuon_index = -1; // index of Sta muon with minimum DR respect to unMatched track - int n_ZMuStaTagged_inEvent = 0; // number of tagged Z in the event - if (!zMuStandAlone->empty()) { // check ZMuSta just if no ZMuMu has been found in the event - event.getByToken(zMuStandAloneMatchMapToken_, zMuStandAloneMatchMap); - for (unsigned int i = 0; i < zMuStandAlone->size(); ++i) { //loop on candidates - const Candidate &zMuStaCand = (*zMuStandAlone)[i]; //the candidate - CandidateBaseRef zMuStaCandRef = zMuStandAlone->refAt(i); - - GenParticleRef zMuStaMatch = (*zMuStandAloneMatchMap)[zMuStaCandRef]; - if (zMuStaMatch.isNonnull()) { // ZMuSta Macthed - numberOfMatchedZMuSta_++; - isZMuStaMatched = true; - } - - double m = zMuStaCand.mass(); - CandidateBaseRef zglobalDaughter = zMuStaCand.daughter(0)->masterClone(); - CandidateBaseRef zstandaloneDaughter = zMuStaCand.daughter(1)->masterClone(); - int iglb = 0; - int ista = 1; - if (zglobalDaughter->isGlobalMuon() == 0 && zstandaloneDaughter->isGlobalMuon() == 1) { // invert definition - CandidateBaseRef buffer = zglobalDaughter; - zglobalDaughter = zstandaloneDaughter; - zstandaloneDaughter = buffer; - iglb = 1; - ista = 0; - } - TrackRef zglobalDaughter_StaComponentRef = zMuStaCand.daughter(iglb)->get(); - // standalone part of global component of ZMuMu - TrackRef zglobalDaughter_TrackComponentRef = zMuStaCand.daughter(iglb)->get(); - // track part Of the global component of ZMuMu - TrackRef zstaDaughter_StaComponentRef = zMuStaCand.daughter(ista)->get(); - // standalone part of global component of ZMuMu - TrackRef zstaDaughter_TrackComponentRef = zMuStaCand.daughter(ista)->get(); - // track part Of the global component of ZMuMu - double ZglobalDaughterPt = zglobalDaughter->pt(); - double ZglobalDaughterEta = zglobalDaughter->eta(); - - double ZstaDaughter_StaComponentCharge = zstaDaughter_StaComponentRef->charge(); - double ZstaDaughter_StaComponentPt = zstaDaughter_StaComponentRef->pt(); - double ZstaDaughter_StaComponentEta = zstaDaughter_StaComponentRef->eta(); - double ZstaDaughter_StaComponentPhi = zstaDaughter_StaComponentRef->phi(); - double ZstaDaughter_TrackComponentCharge = zstaDaughter_TrackComponentRef->charge(); - - double ZglobalDaughter_StaComponentCharge = zglobalDaughter_StaComponentRef->charge(); - double ZglobalDaughter_TrackComponentCharge = zglobalDaughter_TrackComponentRef->charge(); - - // cynematical cuts for ZMuSta - bool etaCut = false; - bool ptCut = false; - // bool isoCut = false; - bool massCut = false; - if (abs(ZglobalDaughterEta) < etamax_ && abs(ZstaDaughter_StaComponentEta) < etamax_) - etaCut = true; - if (ZglobalDaughterPt > ptmin_ && ZstaDaughter_StaComponentPt > ptmin_) - ptCut = true; - if (m > massMin_ && m < massMax_) - massCut = true; // dovrei usare la massa fatta con la sola parte sta - // (Se è anche trackerMu non è cosi') - if (noCut_) { - etaCut = true; - ptCut = true; - massCut = true; - } - if (etaCut && ptCut && massCut && ZglobalDaughter_StaComponentCharge == ZglobalDaughter_TrackComponentCharge && - ZglobalDaughter_StaComponentCharge != - ZstaDaughter_StaComponentCharge) { // cynematic cuts and global charge consistent and opposite sta charge - n_ZMuStaTagged_inEvent++; - if (isZMuStaMatched) - n_ZMuStaTaggedMatched++; - // posso inserire istogrammi eta e pt track per studio Sta efficiency - // ... - if (zstandaloneDaughter->isStandAloneMuon() == 1 && - zstandaloneDaughter->isTrackerMuon() == 1) { // track matched - n_goodSta_ZMuStatagged++; - h_zMuStaMass_ZMuStaTagged->Fill(m); // inv mass ZMuSta for tagged events - h_etaSta_ZMuStaTagged->Fill(ZstaDaughter_StaComponentEta); // eta of tagged sta - h_phiSta_ZMuStaTagged->Fill(ZstaDaughter_StaComponentPhi); // phi of tagged sta - h_ptSta_ZMuStaTagged->Fill(ZstaDaughter_StaComponentPt); // pt of tagged sta - - // check Track charge - if (ZstaDaughter_StaComponentCharge != ZstaDaughter_TrackComponentCharge) { // wrong Trk charge - n_wrongTrkCharge_ZMuStatagged++; // number of events wrong track charge for unMatched track - h_zMuStaMass_wrongTrkCharge_ZMuStaTagged->Fill( - m); // inv mass ZMuSta for tagged evts wrong unMatched track charge - h_etaSta_wrongTrkCharge_ZMuStaTagged->Fill( - ZstaDaughter_StaComponentEta); // eta of tagged sta wrong unMatched track charge - h_phiSta_wrongTrkCharge_ZMuStaTagged->Fill( - ZstaDaughter_StaComponentPhi); // phi of tagged sta wrong unMatched track charge - h_ptSta_wrongTrkCharge_ZMuStaTagged->Fill( - ZstaDaughter_StaComponentPt); // pt of tagged sta wrong unMatched track charge - } else { // correct Sta charge - n_correctTrkCharge_ZMuStatagged++; // number of events correct charge for unMatched Sta - } // end if Sta charge check - - } else { // tracker inefficient - n_TrkNotFound_ZMuStatagged++; - } - } // end cynematic cuts - if (n_ZMuStaTagged_inEvent == 0) { - } - - } // end loop on zMuSta candidates - } // end check ZMuSta size - -} // end analyze - -bool ZMuMuPerformances::check_ifZmumu(const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - bool muplusFound = false; - bool muminusFound = false; - bool ZFound = false; - if (partId0 == 13 || partId1 == 13 || partId2 == 13) - muminusFound = true; - if (partId0 == -13 || partId1 == -13 || partId2 == -13) - muplusFound = true; - if (partId0 == 23 || partId1 == 23 || partId2 == 23) - ZFound = true; - return (muplusFound && muminusFound && ZFound); -} - -float ZMuMuPerformances::getParticlePt(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float ptpart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - return ptpart; -} - -float ZMuMuPerformances::getParticleEta(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float etapart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - return etapart; -} - -float ZMuMuPerformances::getParticlePhi(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float phipart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - return phipart; -} - -Particle::LorentzVector ZMuMuPerformances::getParticleP4(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - Particle::LorentzVector p4part(0., 0., 0., 0.); - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - return p4part; -} - -void ZMuMuPerformances::endJob() { - cout << "------------------------------------ Counters --------------------------------" << endl; - cout << "totalNumberOfZfound = " << totalNumberOfZfound << endl; - cout << "totalNumberOfZpassed = " << totalNumberOfZpassed << endl; - cout << "Number Of ZMuMu Same Sign (no cuts) " << nZMuMuSameSign << endl; - cout << "Number Of ZMuMu Same Sign (no cuts) MC matched " << nZMuMuSameSign_mcMatched << endl; - - cout << "------------------------------------ Counters for standAlone charge mis-id studies " - "--------------------------------" - << endl; - cout << " number of goodTracks tagged for ZMuMu collection = " << n_goodTrack_ZMuMutagged << endl; - cout << " number of goodTracks tagged for ZMuMu collection (correct Sta charge) = " << n_correctStaCharge_ZMuMutagged - << endl; - cout << " number of goodTracks tagged for ZMuMu collection (wrong Sta charge) = " << n_wrongStaCharge_ZMuMutagged - << endl - << endl; - cout << " number of goodTracks tagged for ZMuTrack collection unMatchedSTA = " << n_goodTrack_ZMuTracktagged << endl; - cout << " number of goodTracks tagged for ZMuTrack collection unMatchedSTA (correct Sta charge) = " - << n_correctStaCharge_ZMuTracktagged << endl; - cout << " number of goodTracks tagged for ZMuTrack collection unMatchedSTA (wrong Sta charge) = " - << n_wrongStaCharge_ZMuTracktagged << endl - << endl; - cout << " number of goodTracks tagged for ZMuTrack collection (No STA found) = " << n_StaNotFound_ZMuTracktagged - << endl; - - cout << "------------------------------------ Counters for Track charge mis-id studies " - "--------------------------------" - << endl; - cout << " number of goodStandAlone tagged for ZMuMu collection = " << n_goodSta_ZMuMutagged << endl; - cout << " number of goodStandAlone tagged for ZMuMu collection (correct Trk charge) = " - << n_correctTrkCharge_ZMuMutagged << endl; - cout << " number of goodStandAlone tagged for ZMuMu collection (wrong Trk charge) = " << n_wrongTrkCharge_ZMuMutagged - << endl - << endl; - cout << " number of goodSta tagged for ZMuSta collection unMatchedTrk = " << n_goodSta_ZMuStatagged << endl; - cout << " number of goodSta tagged for ZMuSta collection unMatchedTrk (correct Trk charge) = " - << n_correctTrkCharge_ZMuStatagged << endl; - cout << " number of goodSta tagged for ZMuSta collection unMatchedTrk (wrong Trk charge) = " - << n_wrongTrkCharge_ZMuStatagged << endl - << endl; - cout << " number of goodSta tagged for ZMuSta collection (No Trk found) = " << n_TrkNotFound_ZMuStatagged << endl; - cout << " number of ZMuSta mactched = " << numberOfMatchedZMuSta_ << endl; - cout << " number of ZMuSta Tagged matched = " << n_ZMuStaTaggedMatched << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuPerformances); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuSaMassHistogram.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuSaMassHistogram.cc deleted file mode 100644 index d29cab17d1d7a..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMuSaMassHistogram.cc +++ /dev/null @@ -1,104 +0,0 @@ -#include "DataFormats/Common/interface/AssociationVector.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" -#include "TH1.h" -#include "TH2.h" -#include -#include -#include -#include - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; - -class ZMuMuSaMassHistogram : public edm::EDAnalyzer { -public: - typedef math::XYZVector Vector; - ZMuMuSaMassHistogram(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - EDGetTokenT srcToken_; - int counter; - double min, max; - int Nbin; - TH1F* ZMassSa; - void histo(TH1F* hist, char* cx, char* cy) const; -}; - -void ZMuMuSaMassHistogram::histo(TH1F* hist, char* cx, char* cy) const { - hist->GetXaxis()->SetTitle(cx); - hist->GetYaxis()->SetTitle(cy); - hist->GetXaxis()->SetTitleOffset(1); - hist->GetYaxis()->SetTitleOffset(1.2); - hist->GetXaxis()->SetTitleSize(0.04); - hist->GetYaxis()->SetTitleSize(0.04); - hist->GetXaxis()->SetLabelSize(0.03); - hist->GetYaxis()->SetLabelSize(0.03); -} - -ZMuMuSaMassHistogram::ZMuMuSaMassHistogram(const ParameterSet& pset) - : srcToken_(consumes(pset.getParameter("src_m"))), - counter(0), - min(pset.getUntrackedParameter("min")), - max(pset.getUntrackedParameter("max")), - Nbin(pset.getUntrackedParameter("nbin")) { - edm::Service fs; - ZMassSa = fs->make("zMass", "ZMass OneStandAlone (GeV/c^{2})", Nbin, min, max); -} - -void ZMuMuSaMassHistogram::analyze(const edm::Event& event, const edm::EventSetup& setup) { - Handle dimuons; - event.getByToken(srcToken_, dimuons); - for (unsigned int i = 0; i < dimuons->size(); ++i) { - const Candidate& zmm = (*dimuons)[i]; - const Candidate* dau0 = zmm.daughter(0); - const Candidate* dau1 = zmm.daughter(1); - TrackRef stAloneTrack; - Candidate::PolarLorentzVector p4_0; - double mu_mass; - if (counter % 2 == 0) { - stAloneTrack = dau0->get(); - p4_0 = dau1->polarP4(); - mu_mass = dau0->mass(); - } else { - stAloneTrack = dau1->get(); - p4_0 = dau0->polarP4(); - mu_mass = dau1->mass(); - } - - Vector momentum = stAloneTrack->momentum(); - Candidate::PolarLorentzVector p4_1(momentum.rho(), momentum.eta(), momentum.phi(), mu_mass); - double mass = (p4_0 + p4_1).mass(); - ZMassSa->Fill(mass); - ++counter; - } -} - -void ZMuMuSaMassHistogram::endJob() {} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMuSaMassHistogram); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_MCanalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_MCanalyzer.cc deleted file mode 100644 index f6af5da541360..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_MCanalyzer.cc +++ /dev/null @@ -1,725 +0,0 @@ -/* \class ZMuMu_MCanalyzer - * - * author: Davide Piccolo - * - * ZMuMu MC analyzer: - * check muon reco efficiencies from MC truth, - * - */ - -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h" -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/PatCandidates/interface/PATObject.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include - -using namespace edm; -using namespace std; -using namespace reco; -using namespace reco; -using namespace isodeposit; - -typedef ValueMap IsolationCollection; - -class ZMuMu_MCanalyzer : public edm::EDAnalyzer { -public: - ZMuMu_MCanalyzer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - bool check_ifZmumu(const Candidate* dauGen0, const Candidate* dauGen1, const Candidate* dauGen2); - float getParticlePt(const int ipart, const Candidate* dauGen0, const Candidate* dauGen1, const Candidate* dauGen2); - float getParticleEta(const int ipart, const Candidate* dauGen0, const Candidate* dauGen1, const Candidate* dauGen2); - float getParticlePhi(const int ipart, const Candidate* dauGen0, const Candidate* dauGen1, const Candidate* dauGen2); - Particle::LorentzVector getParticleP4(const int ipart, - const Candidate* dauGen0, - const Candidate* dauGen1, - const Candidate* dauGen2); - void endJob() override; - - EDGetTokenT zMuMuToken_; - EDGetTokenT zMuMuMatchMapToken_; - EDGetTokenT zMuStandAloneToken_; - EDGetTokenT zMuStandAloneMatchMapToken_; - EDGetTokenT zMuTrackToken_; - EDGetTokenT zMuTrackMatchMapToken_; - EDGetTokenT muonsToken_; - EDGetTokenT tracksToken_; - EDGetTokenT genParticlesToken_; - - bool bothMuons_; - - double etamin_, etamax_, ptmin_, massMin_, massMax_, isoMax_; - - double ptThreshold_, etEcalThreshold_, etHcalThreshold_, dRVetoTrk_, dRTrk_, dREcal_, dRHcal_, alpha_, beta_; - - bool relativeIsolation_; - string hltPath_; - reco::CandidateBaseRef globalMuonCandRef_, trackMuonCandRef_, standAloneMuonCandRef_; - OverlapChecker overlap_; - - // general histograms - TH1D *h_trackProbe_eta, *h_trackProbe_pt, *h_staProbe_eta, *h_staProbe_pt, *h_ProbeOk_eta, *h_ProbeOk_pt; - - // global counters - int nGlobalMuonsMatched_passed; // total number of global muons MC matched and passing cuts (and triggered) - int nGlobalMuonsMatched_passedIso; // total number of global muons MC matched and passing cuts including Iso - int n2GlobalMuonsMatched_passedIso; // total number of Z->2 global muons MC matched and passing cuts including Iso - int nStaMuonsMatched_passedIso; // total number of sta only muons MC matched and passing cuts including Iso - int nTracksMuonsMatched_passedIso; // total number of tracks only muons MC matched and passing cuts including Iso - int n2GlobalMuonsMatched_passedIso2Trg; // total number of Z->2 global muons MC matched and passing cuts including Iso and both triggered - int nMu0onlyTriggered; // n. of events zMuMu with mu0 only triggered - int nMu1onlyTriggered; // n. of events zMuMu with mu1 only triggered - - int nZMuMu_matched; // n. of events zMuMu macthed - int nZMuSta_matched; // n of events zMuSta macthed - int nZMuTrk_matched; // n. of events zMuTrk mathced -}; - -template -double isolation(const T* t, - double ptThreshold, - double etEcalThreshold, - double etHcalThreshold, - double dRVetoTrk, - double dRTrk, - double dREcal, - double dRHcal, - double alpha, - double beta, - bool relativeIsolation) { - // on 34X: - const pat::IsoDeposit* trkIso = t->isoDeposit(pat::TrackIso); - // const pat::IsoDeposit * trkIso = t->trackerIsoDeposit(); - // on 34X - const pat::IsoDeposit* ecalIso = t->isoDeposit(pat::EcalIso); - // const pat::IsoDeposit * ecalIso = t->ecalIsoDeposit(); - // on 34X - const pat::IsoDeposit* hcalIso = t->isoDeposit(pat::HcalIso); - // const pat::IsoDeposit * hcalIso = t->hcalIsoDeposit(); - - Direction dir = Direction(t->eta(), t->phi()); - - pat::IsoDeposit::AbsVetos vetosTrk; - vetosTrk.push_back(new ConeVeto(dir, dRVetoTrk)); - vetosTrk.push_back(new ThresholdVeto(ptThreshold)); - - pat::IsoDeposit::AbsVetos vetosEcal; - vetosEcal.push_back(new ConeVeto(dir, 0.)); - vetosEcal.push_back(new ThresholdVeto(etEcalThreshold)); - - pat::IsoDeposit::AbsVetos vetosHcal; - vetosHcal.push_back(new ConeVeto(dir, 0.)); - vetosHcal.push_back(new ThresholdVeto(etHcalThreshold)); - - double isovalueTrk = (trkIso->sumWithin(dRTrk, vetosTrk)); - double isovalueEcal = (ecalIso->sumWithin(dREcal, vetosEcal)); - double isovalueHcal = (hcalIso->sumWithin(dRHcal, vetosHcal)); - - double iso = - alpha * (((1 + beta) / 2 * isovalueEcal) + ((1 - beta) / 2 * isovalueHcal)) + ((1 - alpha) * isovalueTrk); - if (relativeIsolation) - iso /= t->pt(); - return iso; -} - -double candidateIsolation(const reco::Candidate* c, - double ptThreshold, - double etEcalThreshold, - double etHcalThreshold, - double dRVetoTrk, - double dRTrk, - double dREcal, - double dRHcal, - double alpha, - double beta, - bool relativeIsolation) { - const pat::Muon* mu = dynamic_cast(&*c->masterClone()); - if (mu != nullptr) - return isolation(mu, - ptThreshold, - etEcalThreshold, - etHcalThreshold, - dRVetoTrk, - dRTrk, - dREcal, - dRHcal, - alpha, - beta, - relativeIsolation); - const pat::GenericParticle* trk = dynamic_cast(&*c->masterClone()); - if (trk != nullptr) - return isolation(trk, - ptThreshold, - etEcalThreshold, - etHcalThreshold, - dRVetoTrk, - dRTrk, - dREcal, - dRHcal, - alpha, - beta, - relativeIsolation); - throw edm::Exception(edm::errors::InvalidReference) - << "Candidate daughter #0 is neither pat::Muons nor pat::GenericParticle\n"; - return -1; -} - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/Candidate/interface/CandAssociation.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include -#include -#include - -ZMuMu_MCanalyzer::ZMuMu_MCanalyzer(const ParameterSet& pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - zMuMuMatchMapToken_(mayConsume(pset.getParameter("zMuMuMatchMap"))), - zMuStandAloneToken_(consumes(pset.getParameter("zMuStandAlone"))), - zMuStandAloneMatchMapToken_(mayConsume(pset.getParameter("zMuStandAloneMatchMap"))), - zMuTrackToken_(consumes(pset.getParameter("zMuTrack"))), - zMuTrackMatchMapToken_(mayConsume(pset.getParameter("zMuTrackMatchMap"))), - muonsToken_(consumes(pset.getParameter("muons"))), - tracksToken_(consumes(pset.getParameter("tracks"))), - genParticlesToken_(consumes(pset.getParameter("genParticles"))), - - bothMuons_(pset.getParameter("bothMuons")), - etamin_(pset.getUntrackedParameter("etamin")), - etamax_(pset.getUntrackedParameter("etamax")), - ptmin_(pset.getUntrackedParameter("ptmin")), - massMin_(pset.getUntrackedParameter("zMassMin")), - massMax_(pset.getUntrackedParameter("zMassMax")), - isoMax_(pset.getUntrackedParameter("isomax")), - ptThreshold_(pset.getUntrackedParameter("ptThreshold")), - etEcalThreshold_(pset.getUntrackedParameter("etEcalThreshold")), - etHcalThreshold_(pset.getUntrackedParameter("etHcalThreshold")), - dRVetoTrk_(pset.getUntrackedParameter("deltaRVetoTrk")), - dRTrk_(pset.getUntrackedParameter("deltaRTrk")), - dREcal_(pset.getUntrackedParameter("deltaREcal")), - dRHcal_(pset.getUntrackedParameter("deltaRHcal")), - alpha_(pset.getUntrackedParameter("alpha")), - beta_(pset.getUntrackedParameter("beta")), - relativeIsolation_(pset.getUntrackedParameter("relativeIsolation")), - hltPath_(pset.getUntrackedParameter("hltPath")) { - Service fs; - - // binning of entries array (at moment defined by hand and not in cfg file) - double etaRange[8] = {-2.5, -2., -1.2, -0.8, 0.8, 1.2, 2., 2.5}; - double ptRange[4] = {20., 40., 60., 100.}; - - // general histograms - h_trackProbe_eta = fs->make("trackProbeEta", "Eta of tracks", 7, etaRange); - h_trackProbe_pt = fs->make("trackProbePt", "Pt of tracks", 3, ptRange); - h_staProbe_eta = fs->make("standAloneProbeEta", "Eta of standAlone", 7, etaRange); - h_staProbe_pt = fs->make("standAloneProbePt", "Pt of standAlone", 3, ptRange); - h_ProbeOk_eta = fs->make("probeOkEta", "Eta of probe Ok", 7, etaRange); - h_ProbeOk_pt = fs->make("probeOkPt", "Pt of probe ok", 3, ptRange); - - // clear global counters - nGlobalMuonsMatched_passed = 0; - nGlobalMuonsMatched_passedIso = 0; - n2GlobalMuonsMatched_passedIso = 0; - nStaMuonsMatched_passedIso = 0; - nTracksMuonsMatched_passedIso = 0; - n2GlobalMuonsMatched_passedIso2Trg = 0; - nMu0onlyTriggered = 0; - nMu1onlyTriggered = 0; - nZMuMu_matched = 0; - nZMuSta_matched = 0; - nZMuTrk_matched = 0; -} - -void ZMuMu_MCanalyzer::analyze(const Event& event, const EventSetup& setup) { - Handle zMuMu; - Handle zMuMuMatchMap; //Map of Z made by Mu global + Mu global - Handle zMuStandAlone; - Handle zMuStandAloneMatchMap; //Map of Z made by Mu + StandAlone - Handle zMuTrack; - Handle zMuTrackMatchMap; //Map of Z made by Mu + Track - Handle muons; //Collection of Muons - Handle tracks; //Collection of Tracks - - Handle genParticles; // Collection of Generatd Particles - - event.getByToken(zMuMuToken_, zMuMu); - event.getByToken(zMuStandAloneToken_, zMuStandAlone); - event.getByToken(zMuTrackToken_, zMuTrack); - event.getByToken(genParticlesToken_, genParticles); - event.getByToken(muonsToken_, muons); - event.getByToken(tracksToken_, tracks); - - /* - cout << "********* zMuMu size : " << zMuMu->size() << endl; - cout << "********* zMuStandAlone size : " << zMuStandAlone->size() << endl; - cout << "********* zMuTrack size : " << zMuTrack->size() << endl; - cout << "********* muons size : " << muons->size() << endl; - cout << "********* tracks size : " << tracks->size() << endl; - */ - // std::cout<<"Run-> "< "<empty()) { - event.getByToken(zMuMuMatchMapToken_, zMuMuMatchMap); - for (unsigned int i = 0; i < zMuMu->size(); ++i) { //loop on candidates - const Candidate& zMuMuCand = (*zMuMu)[i]; //the candidate - CandidateBaseRef zMuMuCandRef = zMuMu->refAt(i); - - const Candidate* lep0 = zMuMuCand.daughter(0); - const Candidate* lep1 = zMuMuCand.daughter(1); - const pat::Muon& muonDau0 = dynamic_cast(*lep0->masterClone()); - // double trkiso0 = muonDau0.trackIso(); - const pat::Muon& muonDau1 = dynamic_cast(*lep1->masterClone()); - //double trkiso1 = muonDau1.trackIso(); - - double iso0 = candidateIsolation(lep0, - ptThreshold_, - etEcalThreshold_, - etHcalThreshold_, - dRVetoTrk_, - dRTrk_, - dREcal_, - dRHcal_, - alpha_, - beta_, - relativeIsolation_); - double iso1 = candidateIsolation(lep1, - ptThreshold_, - etEcalThreshold_, - etHcalThreshold_, - dRVetoTrk_, - dRTrk_, - dREcal_, - dRHcal_, - alpha_, - beta_, - relativeIsolation_); - - double pt0 = zMuMuCand.daughter(0)->pt(); - double pt1 = zMuMuCand.daughter(1)->pt(); - double eta0 = zMuMuCand.daughter(0)->eta(); - double eta1 = zMuMuCand.daughter(1)->eta(); - double mass = zMuMuCand.mass(); - - // HLT match - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath(hltPath_); - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = muonDau1.triggerObjectMatchesByPath(hltPath_); - - bool trig0found = false; - bool trig1found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - if (!mu1HLTMatches.empty()) - trig1found = true; - - GenParticleRef zMuMuMatch = (*zMuMuMatchMap)[zMuMuCandRef]; - if (zMuMuMatch.isNonnull()) { // ZMuMu matched - zMuMu_found = true; - nZMuMu_matched++; - if (pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) > etamin_ && abs(eta1) > etamin_ && abs(eta0) < etamax_ && - abs(eta1) < etamax_ && mass > massMin_ && mass < massMax_ && - (trig0found || trig1found)) { // kinematic and trigger cuts passed - nGlobalMuonsMatched_passed++; // first global Muon passed kine cuts - nGlobalMuonsMatched_passed++; // second global muon passsed kine cuts - if (iso0 < isoMax_) - nGlobalMuonsMatched_passedIso++; // first global muon passed the iso cut - if (iso1 < isoMax_) - nGlobalMuonsMatched_passedIso++; // second global muon passed the iso cut - if (iso0 < isoMax_ && iso1 < isoMax_) { - n2GlobalMuonsMatched_passedIso++; // both muons passed iso cut - if (trig0found && trig1found) - n2GlobalMuonsMatched_passedIso2Trg++; // both muons have HLT - if (trig0found && !trig1found) - nMu0onlyTriggered++; - if (trig1found && !trig0found) - nMu1onlyTriggered++; - // histograms vs eta and pt - if (trig1found) { // check efficiency of muon0 not imposing the trigger on it - h_trackProbe_eta->Fill(eta0); - h_trackProbe_pt->Fill(pt0); - h_staProbe_eta->Fill(eta0); - h_staProbe_pt->Fill(pt0); - h_ProbeOk_eta->Fill(eta0); - h_ProbeOk_pt->Fill(pt0); - } - if (trig0found) { // check efficiency of muon1 not imposing the trigger on it - h_trackProbe_eta->Fill(eta1); - h_staProbe_eta->Fill(eta1); - h_trackProbe_pt->Fill(pt1); - h_staProbe_pt->Fill(pt1); - h_ProbeOk_eta->Fill(eta1); - h_ProbeOk_pt->Fill(pt1); - } - } - } - } // end MC match - - } // end loop on ZMuMu cand - } // end if ZMuMu size > 0 - - // loop on ZMuSta - bool zMuSta_found = false; - if (!zMuMu_found && !zMuStandAlone->empty()) { - event.getByToken(zMuStandAloneMatchMapToken_, zMuStandAloneMatchMap); - for (unsigned int i = 0; i < zMuStandAlone->size(); ++i) { //loop on candidates - const Candidate& zMuStandAloneCand = (*zMuStandAlone)[i]; //the candidate - CandidateBaseRef zMuStandAloneCandRef = zMuStandAlone->refAt(i); - GenParticleRef zMuStandAloneMatch = (*zMuStandAloneMatchMap)[zMuStandAloneCandRef]; - - const Candidate* lep0 = zMuStandAloneCand.daughter(0); - const Candidate* lep1 = zMuStandAloneCand.daughter(1); - const pat::Muon& muonDau0 = dynamic_cast(*lep0->masterClone()); - //double trkiso0 = muonDau0.trackIso(); - // const pat::Muon & muonDau1 = dynamic_cast(*lep1->masterClone()); - //double trkiso1 = muonDau1.trackIso(); - - double iso0 = candidateIsolation(lep0, - ptThreshold_, - etEcalThreshold_, - etHcalThreshold_, - dRVetoTrk_, - dRTrk_, - dREcal_, - dRHcal_, - alpha_, - beta_, - relativeIsolation_); - double iso1 = candidateIsolation(lep1, - ptThreshold_, - etEcalThreshold_, - etHcalThreshold_, - dRVetoTrk_, - dRTrk_, - dREcal_, - dRHcal_, - alpha_, - beta_, - relativeIsolation_); - - double pt0 = zMuStandAloneCand.daughter(0)->pt(); - double pt1 = zMuStandAloneCand.daughter(1)->pt(); - double eta0 = zMuStandAloneCand.daughter(0)->eta(); - double eta1 = zMuStandAloneCand.daughter(1)->eta(); - double mass = zMuStandAloneCand.mass(); - - // HLT match (check just dau0 the global) - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath(hltPath_); - - bool trig0found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - - if (zMuStandAloneMatch.isNonnull()) { // ZMuStandAlone matched - zMuSta_found = true; - nZMuSta_matched++; - if (pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) > etamin_ && abs(eta1) > etamin_ && abs(eta0) < etamax_ && - abs(eta1) < etamax_ && mass > massMin_ && mass < massMax_ && iso0 < isoMax_ && iso1 < isoMax_ && - trig0found) { // all cuts and trigger passed - nStaMuonsMatched_passedIso++; - // histograms vs eta and pt - h_staProbe_eta->Fill(eta1); - h_staProbe_pt->Fill(pt1); - } - } // end MC match - } // end loop on ZMuStandAlone cand - } // end if ZMuStandAlone size > 0 - - // loop on ZMuTrack - if (!zMuMu_found && !zMuSta_found && !zMuTrack->empty()) { - event.getByToken(zMuTrackMatchMapToken_, zMuTrackMatchMap); - for (unsigned int i = 0; i < zMuTrack->size(); ++i) { //loop on candidates - const Candidate& zMuTrackCand = (*zMuTrack)[i]; //the candidate - CandidateBaseRef zMuTrackCandRef = zMuTrack->refAt(i); - const Candidate* lep0 = zMuTrackCand.daughter(0); - const Candidate* lep1 = zMuTrackCand.daughter(1); - const pat::Muon& muonDau0 = dynamic_cast(*lep0->masterClone()); - //double trkiso0 = muonDau0.trackIso(); - //const pat::GenericParticle & trackDau1 = dynamic_cast(*lep1->masterClone()); - //double trkiso1 = trackDau1.trackIso(); - double iso0 = candidateIsolation(lep0, - ptThreshold_, - etEcalThreshold_, - etHcalThreshold_, - dRVetoTrk_, - dRTrk_, - dREcal_, - dRHcal_, - alpha_, - beta_, - relativeIsolation_); - double iso1 = candidateIsolation(lep1, - ptThreshold_, - etEcalThreshold_, - etHcalThreshold_, - dRVetoTrk_, - dRTrk_, - dREcal_, - dRHcal_, - alpha_, - beta_, - relativeIsolation_); - - double pt0 = zMuTrackCand.daughter(0)->pt(); - double pt1 = zMuTrackCand.daughter(1)->pt(); - double eta0 = zMuTrackCand.daughter(0)->eta(); - double eta1 = zMuTrackCand.daughter(1)->eta(); - double mass = zMuTrackCand.mass(); - - // HLT match (check just dau0 the global) - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath(hltPath_); - - bool trig0found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - - GenParticleRef zMuTrackMatch = (*zMuTrackMatchMap)[zMuTrackCandRef]; - if (zMuTrackMatch.isNonnull()) { // ZMuTrack matched - nZMuTrk_matched++; - if (pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) > etamin_ && abs(eta1) > etamin_ && abs(eta0) < etamax_ && - abs(eta1) < etamax_ && mass > massMin_ && mass < massMax_ && iso0 < isoMax_ && iso1 < isoMax_ && - trig0found) { // all cuts and trigger passed - nTracksMuonsMatched_passedIso++; - // histograms vs eta and pt - h_trackProbe_eta->Fill(eta1); - h_trackProbe_pt->Fill(pt1); - } - } // end MC match - } // end loop on ZMuTrack cand - } // end if ZMuTrack size > 0 - -} // end analyze - -bool ZMuMu_MCanalyzer::check_ifZmumu(const Candidate* dauGen0, const Candidate* dauGen1, const Candidate* dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - bool muplusFound = false; - bool muminusFound = false; - bool ZFound = false; - if (partId0 == 13 || partId1 == 13 || partId2 == 13) - muminusFound = true; - if (partId0 == -13 || partId1 == -13 || partId2 == -13) - muplusFound = true; - if (partId0 == 23 || partId1 == 23 || partId2 == 23) - ZFound = true; - return (muplusFound && muminusFound && ZFound); -} - -float ZMuMu_MCanalyzer::getParticlePt(const int ipart, - const Candidate* dauGen0, - const Candidate* dauGen1, - const Candidate* dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float ptpart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - return ptpart; -} - -float ZMuMu_MCanalyzer::getParticleEta(const int ipart, - const Candidate* dauGen0, - const Candidate* dauGen1, - const Candidate* dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float etapart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - return etapart; -} - -float ZMuMu_MCanalyzer::getParticlePhi(const int ipart, - const Candidate* dauGen0, - const Candidate* dauGen1, - const Candidate* dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float phipart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - return phipart; -} - -Particle::LorentzVector ZMuMu_MCanalyzer::getParticleP4(const int ipart, - const Candidate* dauGen0, - const Candidate* dauGen1, - const Candidate* dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - Particle::LorentzVector p4part(0., 0., 0., 0.); - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate* dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - return p4part; -} - -void ZMuMu_MCanalyzer::endJob() { - double eff_Iso = double(nGlobalMuonsMatched_passedIso) / nGlobalMuonsMatched_passed; - double err_effIso = sqrt(eff_Iso * (1 - eff_Iso) / nGlobalMuonsMatched_passed); - - double n1_afterIso = - 2 * n2GlobalMuonsMatched_passedIso2Trg + nMu0onlyTriggered + nMu1onlyTriggered + nTracksMuonsMatched_passedIso; - double n2_afterIso = - 2 * n2GlobalMuonsMatched_passedIso2Trg + nMu0onlyTriggered + nMu1onlyTriggered + nStaMuonsMatched_passedIso; - double nGLB_afterIso = 2 * n2GlobalMuonsMatched_passedIso2Trg + nMu0onlyTriggered + nMu1onlyTriggered; - double effSta_afterIso = - (2 * n2GlobalMuonsMatched_passedIso2Trg + nMu0onlyTriggered + nMu1onlyTriggered) / n1_afterIso; - double effTrk_afterIso = - (2 * n2GlobalMuonsMatched_passedIso2Trg + nMu0onlyTriggered + nMu1onlyTriggered) / n2_afterIso; - double effHLT_afterIso = (2. * n2GlobalMuonsMatched_passedIso2Trg) / - (2. * n2GlobalMuonsMatched_passedIso2Trg + nMu0onlyTriggered + nMu1onlyTriggered); - double err_effHLT_afterIso = sqrt(effHLT_afterIso * (1 - effHLT_afterIso) / nGLB_afterIso); - double err_effsta_afterIso = sqrt(effSta_afterIso * (1 - effSta_afterIso) / n1_afterIso); - double err_efftrk_afterIso = sqrt(effTrk_afterIso * (1 - effTrk_afterIso) / n2_afterIso); - - cout << "------------------------------------ Counters --------------------------------" << endl; - - cout << "number of events zMuMu matched " << nZMuMu_matched << endl; - cout << "number of events zMuSta matched " << nZMuSta_matched << endl; - cout << "number of events zMuTk matched " << nZMuTrk_matched << endl; - cout << "number of events zMuMu with mu0 only triggered " << nMu0onlyTriggered << endl; - cout << "number of events zMuMu with mu1 only triggered " << nMu1onlyTriggered << endl; - cout << "=========================================" << endl; - cout << "n. of global muons MC matched and passing cuts: " << nGlobalMuonsMatched_passed << endl; - cout << "n. of global muons MC matched and passing also Iso cut: " << nGlobalMuonsMatched_passedIso << endl; - cout << "n. of Z -> 2 global muons MC matched and passing ALL cuts: " << n2GlobalMuonsMatched_passedIso << endl; - cout << "n. of ZMuSta MC matched and passing ALL cuts: " << nStaMuonsMatched_passedIso << endl; - cout << "n. of ZmuTrck MC matched and passing ALL cuts: " << nTracksMuonsMatched_passedIso << endl; - cout << "n. of Z -> 2 global muons MC matched and passing ALL cuts and both triggered: " - << n2GlobalMuonsMatched_passedIso2Trg << endl; - cout << "=================================================================================" << endl; - cout << "Iso efficiency: " << eff_Iso << " +/- " << err_effIso << endl; - cout << "HLT efficiency: " << effHLT_afterIso << " +/- " << err_effHLT_afterIso << endl; - cout << "eff StandAlone (after Isocut) : " << effSta_afterIso << "+/-" << err_effsta_afterIso << endl; - cout << "eff Tracker (after Isocut) : " << effTrk_afterIso << "+/-" << err_efftrk_afterIso << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMu_MCanalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_efficiencyAnalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_efficiencyAnalyzer.cc deleted file mode 100644 index 7a2fe6e87724d..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_efficiencyAnalyzer.cc +++ /dev/null @@ -1,779 +0,0 @@ -/* \class ZMuMu_efficieyAnalyzer - * - * author: Davide Piccolo - * - * ZMuMu efficiency analyzer: - * check muon reco efficiencies from MC truth, - * - */ - -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h" -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/PatCandidates/interface/PATObject.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/Candidate/interface/CandAssociation.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" - -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include -#include - -using namespace edm; -using namespace std; -using namespace reco; - -typedef edm::ValueMap IsolationCollection; - -class ZMuMu_efficiencyAnalyzer : public edm::EDAnalyzer { -public: - ZMuMu_efficiencyAnalyzer(const edm::ParameterSet &pset); - -private: - void analyze(const edm::Event &event, const edm::EventSetup &setup) override; - bool check_ifZmumu(const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticlePt(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticleEta(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticlePhi(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - Particle::LorentzVector getParticleP4(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2); - void endJob() override; - - EDGetTokenT zMuMuToken_; - EDGetTokenT zMuMuMatchMapToken_; - EDGetTokenT zMuStandAloneToken_; - EDGetTokenT zMuStandAloneMatchMapToken_; - EDGetTokenT zMuTrackToken_; - EDGetTokenT zMuTrackMatchMapToken_; - EDGetTokenT muonsToken_; - EDGetTokenT tracksToken_; - EDGetTokenT genParticlesToken_; - EDGetTokenT primaryVerticesToken_; - - bool bothMuons_; - - double etamax_, ptmin_, massMin_, massMax_, isoMax_; - - // binning of entries array (at moment defined by hand and not in cfg file) - unsigned int etaBins; - unsigned int ptBins; - double etaRange[7]; - double ptRange[5]; - - reco::CandidateBaseRef globalMuonCandRef_, trackMuonCandRef_, standAloneMuonCandRef_; - OverlapChecker overlap_; - - // general histograms - TH1D *h_zmm_mass, *h_zmm2HLT_mass; - TH1D *h_zmm1HLTplus_mass, *h_zmmNotIsoplus_mass, *h_zmsplus_mass, *h_zmtplus_mass; - TH1D *h_zmm1HLTminus_mass, *h_zmmNotIsominus_mass, *h_zmsminus_mass, *h_zmtminus_mass; - - // global counters - int nGlobalMuonsMatched_passed; // total number of global muons MC matched and passing cuts (and triggered) - - vector hmumu2HLTplus_eta, hmumu1HLTplus_eta, hmustaplus_eta, hmutrackplus_eta, hmumuNotIsoplus_eta; - vector hmumu2HLTplus_pt, hmumu1HLTplus_pt, hmustaplus_pt, hmutrackplus_pt, hmumuNotIsoplus_pt; - vector hmumu2HLTminus_eta, hmumu1HLTminus_eta, hmustaminus_eta, hmutrackminus_eta, hmumuNotIsominus_eta; - vector hmumu2HLTminus_pt, hmumu1HLTminus_pt, hmustaminus_pt, hmutrackminus_pt, hmumuNotIsominus_pt; -}; - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include -#include -#include - -ZMuMu_efficiencyAnalyzer::ZMuMu_efficiencyAnalyzer(const ParameterSet &pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - zMuMuMatchMapToken_(mayConsume(pset.getParameter("zMuMuMatchMap"))), - zMuStandAloneToken_(consumes(pset.getParameter("zMuStandAlone"))), - zMuStandAloneMatchMapToken_(mayConsume(pset.getParameter("zMuStandAloneMatchMap"))), - zMuTrackToken_(consumes(pset.getParameter("zMuTrack"))), - zMuTrackMatchMapToken_(mayConsume(pset.getParameter("zMuTrackMatchMap"))), - muonsToken_(consumes(pset.getParameter("muons"))), - tracksToken_(consumes(pset.getParameter("tracks"))), - genParticlesToken_(consumes(pset.getParameter("genParticles"))), - primaryVerticesToken_(consumes(pset.getParameter("primaryVertices"))), - - bothMuons_(pset.getParameter("bothMuons")), - - etamax_(pset.getUntrackedParameter("etamax")), - ptmin_(pset.getUntrackedParameter("ptmin")), - massMin_(pset.getUntrackedParameter("zMassMin")), - massMax_(pset.getUntrackedParameter("zMassMax")), - isoMax_(pset.getUntrackedParameter("isomax")) { - Service fs; - - // general histograms - h_zmm_mass = fs->make("zmm_mass", "zmumu mass", 100, 0., 200.); - h_zmm2HLT_mass = fs->make("zmm2HLT_mass", "zmumu 2HLT mass", 100, 0., 200.); - h_zmm1HLTplus_mass = fs->make("zmm1HLTplus_mass", "zmumu 1HLT plus mass", 100, 0., 200.); - h_zmmNotIsoplus_mass = fs->make("zmmNotIsoplus_mass", "zmumu a least One Not Iso plus mass", 100, 0., 200.); - h_zmsplus_mass = fs->make("zmsplus_mass", "zmusta plus mass", 100, 0., 200.); - h_zmtplus_mass = fs->make("zmtplus_mass", "zmutrack plus mass", 100, 0., 200.); - h_zmm1HLTminus_mass = fs->make("zmm1HLTminus_mass", "zmumu 1HLT minus mass", 100, 0., 200.); - h_zmmNotIsominus_mass = fs->make("zmmNotIsominus_mass", "zmumu a least One Not Iso minus mass", 100, 0., 200.); - h_zmsminus_mass = fs->make("zmsminus_mass", "zmusta minus mass", 100, 0., 200.); - h_zmtminus_mass = fs->make("zmtminus_mass", "zmutrack minus mass", 100, 0., 200.); - - cout << "primo" << endl; - // creating histograms for each Pt, eta interval - - TFileDirectory etaDirectory = - fs->mkdir("etaIntervals"); // in this directory will be saved all the histos of different eta intervals - TFileDirectory ptDirectory = - fs->mkdir("ptIntervals"); // in this directory will be saved all the histos of different pt intervals - - // binning of entries array (at moment defined by hand and not in cfg file) - etaBins = 6; - ptBins = 4; - double etaRangeTmp[7] = {-2., -1.2, -0.8, 0., 0.8, 1.2, 2.}; - double ptRangeTmp[5] = {20., 40., 60., 80., 100.}; - for (unsigned int i = 0; i <= etaBins; i++) - etaRange[i] = etaRangeTmp[i]; - for (unsigned int i = 0; i <= ptBins; i++) - ptRange[i] = ptRangeTmp[i]; - - // eta histograms creation - cout << "eta istograms creation " << endl; - - for (unsigned int i = 0; i < etaBins; i++) { - cout << " bin eta plus " << i << endl; - // muon plus - double range0 = etaRange[i]; - double range1 = etaRange[i + 1]; - std::string ap, bp; - ap = "zmumu2HLTplus_etaRange" + std::to_string(i); - bp = "zmumu2HLT plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap << " " << bp << endl; - hmumu2HLTplus_eta.push_back(etaDirectory.make(ap.c_str(), bp.c_str(), 200, 0., 200.)); - ap = "zmumu1HLTplus_etaRange" + std::to_string(i); - bp = "zmumu1HLT plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap << " " << bp << endl; - hmumu1HLTplus_eta.push_back(etaDirectory.make(ap.c_str(), bp.c_str(), 200, 0., 200.)); - ap = "zmustaplus_etaRange" + std::to_string(i); - bp = "zmusta plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap << " " << bp << endl; - hmustaplus_eta.push_back(etaDirectory.make(ap.c_str(), bp.c_str(), 50, 0., 200.)); - ap = "zmutrackplus_etaRange" + std::to_string(i); - bp = "zmutrack plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap << " " << bp << endl; - hmutrackplus_eta.push_back(etaDirectory.make(ap.c_str(), bp.c_str(), 100, 0., 200.)); - ap = "zmumuNotIsoplus_etaRange" + std::to_string(i); - bp = "zmumuNotIso plus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap << " " << bp << endl; - hmumuNotIsoplus_eta.push_back(etaDirectory.make(ap.c_str(), bp.c_str(), 100, 0., 200.)); - // muon minus - cout << " bin eta minus " << i << endl; - std::string am, bm; - am = "zmumu2HLTminus_etaRange" + std::to_string(i); - bm = "zmumu2HLT minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am << " " << bm << endl; - hmumu2HLTminus_eta.push_back(etaDirectory.make(am.c_str(), bm.c_str(), 200, 0., 200.)); - am = "zmumu1HLTminus_etaRange" + std::to_string(i); - bm = "zmumu1HLT minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am << " " << bm << endl; - hmumu1HLTminus_eta.push_back(etaDirectory.make(am.c_str(), bm.c_str(), 200, 0., 200.)); - am = "zmustaminus_etaRange" + std::to_string(i); - bm = "zmusta minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am << " " << bm << endl; - hmustaminus_eta.push_back(etaDirectory.make(am.c_str(), bm.c_str(), 50, 0., 200.)); - am = "zmutrackminus_etaRange" + std::to_string(i); - bm = "zmutrack minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am << " " << bm << endl; - hmutrackminus_eta.push_back(etaDirectory.make(am.c_str(), bm.c_str(), 100, 0., 200.)); - am = "zmumuNotIsominus_etaRange" + std::to_string(i); - bm = "zmumuNotIso minus mass eta Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am << " " << bm << endl; - hmumuNotIsominus_eta.push_back(etaDirectory.make(am.c_str(), bm.c_str(), 100, 0., 200.)); - } - - // pt histograms creation - cout << "pt istograms creation " << endl; - - for (unsigned int i = 0; i < ptBins; i++) { - double range0 = ptRange[i]; - double range1 = ptRange[i + 1]; - // muon plus - cout << " bin pt plus " << i << endl; - std::string ap1, bp1; - ap1 = "zmumu2HLTplus_ptRange" + std::to_string(i); - bp1 = "zmumu2HLT plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap1 << " " << bp1 << endl; - hmumu2HLTplus_pt.push_back(ptDirectory.make(ap1.c_str(), bp1.c_str(), 200, 0., 200.)); - ap1 = "zmumu1HLTplus_ptRange" + std::to_string(i); - bp1 = "zmumu1HLT plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap1 << " " << bp1 << endl; - hmumu1HLTplus_pt.push_back(ptDirectory.make(ap1.c_str(), bp1.c_str(), 200, 0., 200.)); - ap1 = "zmustaplus_ptRange" + std::to_string(i); - bp1 = "zmusta plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap1 << " " << bp1 << endl; - hmustaplus_pt.push_back(ptDirectory.make(ap1.c_str(), bp1.c_str(), 50, 0., 200.)); - ap1 = "zmutrackplus_ptRange" + std::to_string(i); - bp1 = "zmutrack plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap1 << " " << bp1 << endl; - hmutrackplus_pt.push_back(ptDirectory.make(ap1.c_str(), bp1.c_str(), 100, 0., 200.)); - ap1 = "zmumuNotIsoplus_ptRange" + std::to_string(i); - bp1 = "zmumuNotIso plus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << ap1 << " " << bp1 << endl; - hmumuNotIsoplus_pt.push_back(ptDirectory.make(ap1.c_str(), bp1.c_str(), 100, 0., 200.)); - // muon minus - cout << " bin pt minus " << i << endl; - std::string am1, bm1; - am1 = "zmumu2HLTminus_ptRange" + std::to_string(i); - bm1 = "zmumu2HLT minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am1 << " " << bm1 << endl; - hmumu2HLTminus_pt.push_back(ptDirectory.make(am1.c_str(), bm1.c_str(), 200, 0., 200.)); - am1 = "zmumu1HLTminus_ptRange" + std::to_string(i); - bm1 = "zmumu1HLT minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am1 << " " << bm1 << endl; - hmumu1HLTminus_pt.push_back(ptDirectory.make(am1.c_str(), bm1.c_str(), 200, 0., 200.)); - am1 = "zmustaminus_ptRange" + std::to_string(i); - bm1 = "zmusta minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am1 << " " << bm1 << endl; - hmustaminus_pt.push_back(ptDirectory.make(am1.c_str(), bm1.c_str(), 50, 0., 200.)); - am1 = "zmutrackminus_ptRange" + std::to_string(i); - bm1 = "zmutrack minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am1 << " " << bm1 << endl; - hmutrackminus_pt.push_back(ptDirectory.make(am1.c_str(), bm1.c_str(), 100, 0., 200.)); - am1 = "zmumuNotIsominus_ptRange" + std::to_string(i); - bm1 = "zmumuNotIso minus mass pt Range " + std::to_string(range0) + " to " + std::to_string(range1); - cout << am1 << " " << bm1 << endl; - hmumuNotIsominus_pt.push_back(ptDirectory.make(am1.c_str(), bm1.c_str(), 100, 0., 200.)); - } - - // clear global counters - nGlobalMuonsMatched_passed = 0; -} - -void ZMuMu_efficiencyAnalyzer::analyze(const Event &event, const EventSetup &setup) { - Handle zMuMu; - Handle zMuMuMatchMap; //Map of Z made by Mu global + Mu global - Handle zMuStandAlone; - Handle zMuStandAloneMatchMap; //Map of Z made by Mu + StandAlone - Handle zMuTrack; - Handle zMuTrackMatchMap; //Map of Z made by Mu + Track - Handle muons; //Collection of Muons - Handle tracks; //Collection of Tracks - - Handle genParticles; // Collection of Generatd Particles - Handle primaryVertices; // Collection of primary Vertices - - event.getByToken(zMuMuToken_, zMuMu); - event.getByToken(zMuStandAloneToken_, zMuStandAlone); - event.getByToken(zMuTrackToken_, zMuTrack); - event.getByToken(genParticlesToken_, genParticles); - event.getByToken(primaryVerticesToken_, primaryVertices); - event.getByToken(muonsToken_, muons); - event.getByToken(tracksToken_, tracks); - - /* - cout << "********* zMuMu size : " << zMuMu->size() << endl; - cout << "********* zMuStandAlone size : " << zMuStandAlone->size() << endl; - cout << "********* zMuTrack size : " << zMuTrack->size() << endl; - cout << "********* muons size : " << muons->size() << endl; - cout << "********* tracks size : " << tracks->size() << endl; - cout << "********* vertices size : " << primaryVertices->size() << endl; - */ - - // std::cout<<"Run-> "< "<empty()) { - for (unsigned int i = 0; i < zMuMu->size(); ++i) { //loop on candidates - const Candidate &zMuMuCand = (*zMuMu)[i]; //the candidate - CandidateBaseRef zMuMuCandRef = zMuMu->refAt(i); - - const Candidate *lep0 = zMuMuCand.daughter(0); - const Candidate *lep1 = zMuMuCand.daughter(1); - const pat::Muon &muonDau0 = dynamic_cast(*lep0->masterClone()); - double trkiso0 = muonDau0.trackIso(); - const pat::Muon &muonDau1 = dynamic_cast(*lep1->masterClone()); - double trkiso1 = muonDau1.trackIso(); - - // kinemtic variables - double pt0 = zMuMuCand.daughter(0)->pt(); - double pt1 = zMuMuCand.daughter(1)->pt(); - double eta0 = zMuMuCand.daughter(0)->eta(); - double eta1 = zMuMuCand.daughter(1)->eta(); - double charge0 = zMuMuCand.daughter(0)->charge(); - double charge1 = zMuMuCand.daughter(1)->charge(); - double mass = zMuMuCand.mass(); - - // HLT match - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath("HLT_Mu9"); - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = muonDau1.triggerObjectMatchesByPath("HLT_Mu9"); - - bool trig0found = false; - bool trig1found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - if (!mu1HLTMatches.empty()) - trig1found = true; - - // kinematic selection - - bool checkOppositeCharge = false; - if (charge0 != charge1) - checkOppositeCharge = true; - if (pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) < etamax_ && abs(eta1) < etamax_ && mass > massMin_ && - mass < massMax_ && checkOppositeCharge) { - if (trig0found || trig1found) { // at least one muon match HLT - zMuMu_found = true; // Z found as global-global (so don't check Zms and Zmt) - if (trkiso0 < isoMax_ && trkiso1 < isoMax_) { // both muons are isolated - if (trig0found && trig1found) { - // ******************** category zmm 2 HLT **************** - - h_zmm2HLT_mass->Fill(mass); - h_zmm_mass->Fill(mass); - - // check the cynematics to fill correct histograms - - for (unsigned int j = 0; j < etaBins; j++) { // eta Bins loop - double range0 = etaRange[j]; - double range1 = etaRange[j + 1]; - - // eta histograms - - if (eta0 >= range0 && eta0 < range1) { - if (charge0 < 0) - hmumu2HLTminus_eta[j]->Fill(mass); // mu- in bin eta - if (charge0 > 0) - hmumu2HLTplus_eta[j]->Fill(mass); // mu+ in bin eta - } - if (eta1 >= range0 && eta1 < range1) { - if (charge1 < 0) - hmumu2HLTminus_eta[j]->Fill(mass); // mu- in bin eta - if (charge1 > 0) - hmumu2HLTplus_eta[j]->Fill(mass); // mu+ in bin eta - } - } // end loop etaBins - - for (unsigned int j = 0; j < ptBins; j++) { // pt Bins loop - double range0pt = ptRange[j]; - double range1pt = ptRange[j + 1]; - // pt histograms - if (pt0 >= range0pt && pt0 < range1pt) { - if (charge0 < 0) - hmumu2HLTminus_pt[j]->Fill(mass); // mu- in bin eta - if (charge0 > 0) - hmumu2HLTplus_pt[j]->Fill(mass); // mu+ in bin eta - } - if (pt1 >= range0pt && pt1 < range1pt) { - if (charge1 < 0) - hmumu2HLTminus_pt[j]->Fill(mass); // mu- in bin eta - if (charge1 > 0) - hmumu2HLTplus_pt[j]->Fill(mass); // mu+ in bin eta - } - } // end loop ptBins - - } // ******************* end category zmm 2 HLT **************** - - if (!trig0found || !trig1found) { - // ****************** category zmm 1 HLT ****************** - h_zmm_mass->Fill(mass); - double eta = 9999; - double pt = 9999; - double charge = 0; - if (trig0found) { - eta = eta1; // check muon not HLT matched - pt = pt1; - charge = charge1; - } else { - eta = eta0; - pt = pt0; - charge = charge0; - } - if (charge < 0) - h_zmm1HLTminus_mass->Fill(mass); - if (charge > 0) - h_zmm1HLTplus_mass->Fill(mass); - - for (unsigned int j = 0; j < etaBins; j++) { // eta Bins loop - double range0 = etaRange[j]; - double range1 = etaRange[j + 1]; - // eta histograms fill the bin of the muon not HLT matched - if (eta >= range0 && eta < range1) { - if (charge < 0) - hmumu1HLTminus_eta[j]->Fill(mass); - if (charge > 0) - hmumu1HLTplus_eta[j]->Fill(mass); - } - } // end loop etaBins - for (unsigned int j = 0; j < ptBins; j++) { // pt Bins loop - double range0 = ptRange[j]; - double range1 = ptRange[j + 1]; - // pt histograms - if (pt >= range0 && pt < range1) { - if (charge < 0) - hmumu1HLTminus_pt[j]->Fill(mass); - if (charge > 0) - hmumu1HLTplus_pt[j]->Fill(mass); - } - } // end loop ptBins - - } // ****************** end category zmm 1 HLT *************** - - } else { // one or both muons are not isolated - // ***************** category zmumuNotIso **************** (per ora non studio iso vs eta e pt da capire meglio) - - } // end if both muons isolated - - } // end if at least 1 HLT trigger found - } // end if kinematic selection - - } // end loop on ZMuMu cand - } // end if ZMuMu size > 0 - - // loop on ZMuSta - bool zMuSta_found = false; - if (!zMuMu_found && !zMuStandAlone->empty()) { - event.getByToken(zMuStandAloneMatchMapToken_, zMuStandAloneMatchMap); - for (unsigned int i = 0; i < zMuStandAlone->size(); ++i) { //loop on candidates - const Candidate &zMuStandAloneCand = (*zMuStandAlone)[i]; //the candidate - CandidateBaseRef zMuStandAloneCandRef = zMuStandAlone->refAt(i); - GenParticleRef zMuStandAloneMatch = (*zMuStandAloneMatchMap)[zMuStandAloneCandRef]; - - const Candidate *lep0 = zMuStandAloneCand.daughter(0); - const Candidate *lep1 = zMuStandAloneCand.daughter(1); - const pat::Muon &muonDau0 = dynamic_cast(*lep0->masterClone()); - double trkiso0 = muonDau0.trackIso(); - const pat::Muon &muonDau1 = dynamic_cast(*lep1->masterClone()); - double trkiso1 = muonDau1.trackIso(); - double pt0 = zMuStandAloneCand.daughter(0)->pt(); - double pt1 = zMuStandAloneCand.daughter(1)->pt(); - double eta0 = zMuStandAloneCand.daughter(0)->eta(); - double eta1 = zMuStandAloneCand.daughter(1)->eta(); - double charge0 = zMuStandAloneCand.daughter(0)->charge(); - double charge1 = zMuStandAloneCand.daughter(1)->charge(); - double mass = zMuStandAloneCand.mass(); - - // HLT match - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath("HLT_Mu9"); - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = muonDau1.triggerObjectMatchesByPath("HLT_Mu9"); - - bool trig0found = false; - bool trig1found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - if (!mu1HLTMatches.empty()) - trig1found = true; - - // check HLT match of Global muon and save eta, pt of second muon (standAlone) - bool trigGlbfound = false; - double pt = 999.; - double eta = 999.; - double charge = 0; - if (muonDau0.isGlobalMuon()) { - trigGlbfound = trig0found; - pt = pt1; - eta = eta1; - charge = charge1; - } - if (muonDau1.isGlobalMuon()) { - trigGlbfound = trig1found; - pt = pt0; - eta = eta0; - charge = charge0; - } - - bool checkOppositeCharge = false; - if (charge0 != charge1) - checkOppositeCharge = true; - - if (checkOppositeCharge && trigGlbfound && pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) < etamax_ && - abs(eta1) < etamax_ && mass > massMin_ && mass < massMax_ && trkiso0 < isoMax_ && - trkiso1 < isoMax_) { // global mu match HLT + kinematic cuts + opposite charge - - if (charge < 0) - h_zmsminus_mass->Fill(mass); - if (charge > 0) - h_zmsplus_mass->Fill(mass); - - for (unsigned int j = 0; j < etaBins; j++) { // eta Bins loop - double range0 = etaRange[j]; - double range1 = etaRange[j + 1]; - // eta histograms - if (eta >= range0 && eta < range1) { - if (charge < 0) - hmustaminus_eta[j]->Fill(mass); - if (charge > 0) - hmustaplus_eta[j]->Fill(mass); - } - } // end loop etaBins - for (unsigned int j = 0; j < ptBins; j++) { // pt Bins loop - double range0 = ptRange[j]; - double range1 = ptRange[j + 1]; - // pt histograms - if (pt >= range0 && pt < range1) { - if (charge < 0) - hmustaminus_pt[j]->Fill(mass); - if (charge > 0) - hmustaplus_pt[j]->Fill(mass); - } - } // end loop ptBins - - } // end if trigGlbfound + kinecuts + OppostieCharge - } // end loop on ZMuStandAlone cand - } // end if ZMuStandAlone size > 0 - - // loop on ZMuTrack - // bool zMuTrack_found = false; - if (!zMuMu_found && !zMuSta_found && !zMuTrack->empty()) { - event.getByToken(zMuTrackMatchMapToken_, zMuTrackMatchMap); - for (unsigned int i = 0; i < zMuTrack->size(); ++i) { //loop on candidates - const Candidate &zMuTrackCand = (*zMuTrack)[i]; //the candidate - CandidateBaseRef zMuTrackCandRef = zMuTrack->refAt(i); - const Candidate *lep0 = zMuTrackCand.daughter(0); - const Candidate *lep1 = zMuTrackCand.daughter(1); - const pat::Muon &muonDau0 = dynamic_cast(*lep0->masterClone()); - double trkiso0 = muonDau0.trackIso(); - const pat::GenericParticle &trackDau1 = dynamic_cast(*lep1->masterClone()); - double trkiso1 = trackDau1.trackIso(); - double pt0 = zMuTrackCand.daughter(0)->pt(); - double pt1 = zMuTrackCand.daughter(1)->pt(); - double eta0 = zMuTrackCand.daughter(0)->eta(); - double eta1 = zMuTrackCand.daughter(1)->eta(); - double charge0 = zMuTrackCand.daughter(0)->charge(); - double charge1 = zMuTrackCand.daughter(1)->charge(); - double mass = zMuTrackCand.mass(); - - // HLT match (check just dau0 the global) - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath("HLT_Mu9"); - - bool trig0found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - - bool checkOppositeCharge = false; - if (charge0 != charge1) - checkOppositeCharge = true; - - if (checkOppositeCharge && trig0found && pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) < etamax_ && - abs(eta1) < etamax_ && mass > massMin_ && mass < massMax_ && trkiso0 < isoMax_ && - trkiso1 < isoMax_) { // global mu match HLT + kinematic cuts + opposite charge - - if (charge1 < 0) - h_zmtminus_mass->Fill(mass); - if (charge1 > 0) - h_zmtplus_mass->Fill(mass); - - for (unsigned int j = 0; j < etaBins; j++) { // eta Bins loop - double range0 = etaRange[j]; - double range1 = etaRange[j + 1]; - // eta histograms - if (eta1 >= range0 && eta1 < range1) { - if (charge1 < 0) - hmutrackminus_eta[j]->Fill(mass); // just check muon1 (mu0 is global by definition) - if (charge1 > 0) - hmutrackplus_eta[j]->Fill(mass); // just check muon1 (mu0 is global by definition) - } - } // end loop etaBins - for (unsigned int j = 0; j < ptBins; j++) { // pt Bins loop - double range0 = ptRange[j]; - double range1 = ptRange[j + 1]; - // pt histograms - if (pt1 >= range0 && pt1 < range1) { - if (charge1 < 0) - hmutrackminus_pt[j]->Fill(mass); // just check muon1 (mu0 is global by definition) - if (charge1 > 0) - hmutrackplus_pt[j]->Fill(mass); // just check muon1 (mu0 is global by definition) - } - } // end loop ptBins - - } // end if trig0found - - } // end loop on ZMuTrack cand - } // end if ZMuTrack size > 0 - -} // end analyze - -bool ZMuMu_efficiencyAnalyzer::check_ifZmumu(const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - bool muplusFound = false; - bool muminusFound = false; - bool ZFound = false; - if (partId0 == 13 || partId1 == 13 || partId2 == 13) - muminusFound = true; - if (partId0 == -13 || partId1 == -13 || partId2 == -13) - muplusFound = true; - if (partId0 == 23 || partId1 == 23 || partId2 == 23) - ZFound = true; - return (muplusFound && muminusFound && ZFound); -} - -float ZMuMu_efficiencyAnalyzer::getParticlePt(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float ptpart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - return ptpart; -} - -float ZMuMu_efficiencyAnalyzer::getParticleEta(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float etapart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - return etapart; -} - -float ZMuMu_efficiencyAnalyzer::getParticlePhi(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float phipart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - return phipart; -} - -Particle::LorentzVector ZMuMu_efficiencyAnalyzer::getParticleP4(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - Particle::LorentzVector p4part(0., 0., 0., 0.); - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - return p4part; -} - -void ZMuMu_efficiencyAnalyzer::endJob() {} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMu_efficiencyAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_radiative_analysis.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_radiative_analysis.cc deleted file mode 100644 index 58fdcff928d70..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_radiative_analysis.cc +++ /dev/null @@ -1,557 +0,0 @@ -/* \class ZMuMu_Radiative_analyzer - * - * author: Pasquale Noli - * - * ZMuMu Radiative analyzer - * - * - */ -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/Lepton.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h" -#include "DataFormats/PatCandidates/interface/PATObject.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/Candidate/interface/CandAssociation.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include -#include -#include -#include -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; - -class ZMuMu_Radiative_analyzer : public edm::EDAnalyzer { -public: - ZMuMu_Radiative_analyzer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - - EDGetTokenT zMuMuToken_; - EDGetTokenT zMuMuMatchMapToken_; - EDGetTokenT zMuTkToken_; - EDGetTokenT zMuTkMatchMapToken_; - EDGetTokenT zMuSaToken_; - EDGetTokenT zMuSaMatchMapToken_; - double dRVeto_, dRTrk_, ptThreshold_; - //histograms - TH1D *h_zmass_FSR, *h_zmass_no_FSR; - TH1D *h_zMuSamass_FSR, *h_zMuSamass_no_FSR; - TH1D *h_zMuTkmass_FSR, *h_zMuTkmass_no_FSR; - TH1D *h_Iso_, *h_Iso_FSR_; - TH3D *h_Iso_3D_, *h_Iso_FSR_3D_; - TH2D *h_staProbe_pt_eta_no_FSR_, *h_staProbe_pt_eta_FSR_, *h_ProbeOk_pt_eta_no_FSR_, *h_ProbeOk_pt_eta_FSR_; - TH1D *h_trackProbe_eta_no_FSR, *h_trackProbe_pt_no_FSR, *h_staProbe_eta_no_FSR, *h_staProbe_pt_no_FSR, - *h_ProbeOk_eta_no_FSR, *h_ProbeOk_pt_no_FSR; - TH1D *h_trackProbe_eta_FSR, *h_trackProbe_pt_FSR, *h_staProbe_eta_FSR, *h_staProbe_pt_FSR, *h_ProbeOk_eta_FSR, - *h_ProbeOk_pt_FSR; - //boolean - bool FSR_mu, FSR_tk, FSR_mu0, FSR_mu1; - bool trig0found, trig1found; - //counter - int zmmcounter, zmscounter, zmtcounter, evntcounter; -}; - -typedef edm::ValueMap IsolationCollection; - -ZMuMu_Radiative_analyzer::ZMuMu_Radiative_analyzer(const ParameterSet& pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - zMuMuMatchMapToken_(mayConsume(pset.getParameter("zMuMuMatchMap"))), - zMuTkToken_(consumes(pset.getParameter("zMuTk"))), - zMuTkMatchMapToken_(mayConsume(pset.getParameter("zMuTkMatchMap"))), - zMuSaToken_(consumes(pset.getParameter("zMuSa"))), - zMuSaMatchMapToken_(mayConsume(pset.getParameter("zMuSaMatchMap"))), - dRVeto_(pset.getUntrackedParameter("veto")), - dRTrk_(pset.getUntrackedParameter("deltaRTrk")), - ptThreshold_(pset.getUntrackedParameter("ptThreshold")) { - zmmcounter = 0; - zmscounter = 0; - zmtcounter = 0; - evntcounter = 0; - Service fs; - - // general histograms - h_zmass_FSR = fs->make("h_zmass_FRS", "Invariant Z mass distribution", 200, 0, 200); - h_zmass_no_FSR = fs->make("h_zmass_no_FSR", "Invariant Z mass distribution", 200, 0, 200); - h_zMuSamass_FSR = fs->make("h_zMuSamass_FRS", "Invariant Z mass distribution", 200, 0, 200); - h_zMuSamass_no_FSR = fs->make("h_zMuSamass_no_FSR", "Invariant Z mass distribution", 200, 0, 200); - h_zMuTkmass_FSR = fs->make("h_zMuTkmass_FRS", "Invariant Z mass distribution", 200, 0, 200); - h_zMuTkmass_no_FSR = fs->make("h_zMuTkmass_no_FSR", "Invariant Z mass distribution", 200, 0, 200); - h_Iso_ = fs->make("h_iso", "Isolation distribution of muons without FSR", 100, 0, 20); - h_Iso_FSR_ = fs->make("h_iso_FSR", "Isolation distribution of muons with FSR ", 100, 0, 20); - h_Iso_3D_ = fs->make( - "h_iso_3D", "Isolation distribution of muons without FSR", 100, 20, 100, 100, -2.0, 2.0, 100, 0, 20); - h_Iso_FSR_3D_ = fs->make( - "h_iso_FSR_3D", "Isolation distribution of muons with FSR ", 100, 20, 100, 100, -2.0, 2.0, 100, 0, 20); - h_staProbe_pt_eta_no_FSR_ = - fs->make("h_staProbe_pt_eta_no_FSR", "Pt vs Eta StandAlone without FSR ", 100, 20, 100, 100, -2.0, 2.0); - h_staProbe_pt_eta_FSR_ = - fs->make("h_staProbe_pt_eta_FSR", "Pt vs Eta StandAlone with FSR ", 100, 20, 100, 100, -2.0, 2.0); - h_ProbeOk_pt_eta_no_FSR_ = - fs->make("h_ProbeOk_pt_eta_no_FSR", "Pt vs Eta probeOk without FSR ", 100, 20, 100, 100, -2.0, 2.0); - h_ProbeOk_pt_eta_FSR_ = - fs->make("h_ProbeOk_pt_eta_FSR", "Pt vs Eta probeOk with FSR ", 100, 20, 100, 100, -2.0, 2.0); - - h_trackProbe_eta_no_FSR = fs->make("trackProbeEta_no_FSR", "Eta of tracks", 100, -2.0, 2.0); - h_trackProbe_pt_no_FSR = fs->make("trackProbePt_no_FSR", "Pt of tracks", 100, 0, 100); - h_staProbe_eta_no_FSR = fs->make("standAloneProbeEta_no_FSR", "Eta of standAlone", 100, -2.0, 2.0); - h_staProbe_pt_no_FSR = fs->make("standAloneProbePt_no_FSR", "Pt of standAlone", 100, 0, 100); - h_ProbeOk_eta_no_FSR = fs->make("probeOkEta_no_FSR", "Eta of probe Ok", 100, -2.0, 2.0); - h_ProbeOk_pt_no_FSR = fs->make("probeOkPt_no_FSR", "Pt of probe ok", 100, 0, 100); - - h_trackProbe_eta_FSR = fs->make("trackProbeEta_FSR", "Eta of tracks", 100, -2.0, 2.0); - h_trackProbe_pt_FSR = fs->make("trackProbePt_FSR", "Pt of tracks", 100, 0, 100); - h_staProbe_eta_FSR = fs->make("standAloneProbeEta_FSR", "Eta of standAlone", 100, -2.0, 2.0); - h_staProbe_pt_FSR = fs->make("standAloneProbePt_FSR", "Pt of standAlone", 100, 0, 100); - h_ProbeOk_eta_FSR = fs->make("probeOkEta_FSR", "Eta of probe Ok", 100, -2.0, 2.0); - h_ProbeOk_pt_FSR = fs->make("probeOkPt_FSR", "Pt of probe ok", 100, 0, 100); -} - -void ZMuMu_Radiative_analyzer::analyze(const Event& event, const EventSetup& setup) { - evntcounter++; - Handle zMuMu; //Collection of Z made by Mu global + Mu global - Handle zMuMuMatchMap; //Map of Z made by Mu global + Mu global with MC - event.getByToken(zMuMuToken_, zMuMu); - Handle zMuTk; //Collection of Z made by Mu global + Track - Handle zMuTkMatchMap; - event.getByToken(zMuTkToken_, zMuTk); - Handle zMuSa; //Collection of Z made by Mu global + Sa - Handle zMuSaMatchMap; - event.getByToken(zMuSaToken_, zMuSa); - cout << "********** New Event ***********" << endl; - // ZMuMu - if (!zMuMu->empty()) { - event.getByToken(zMuMuMatchMapToken_, zMuMuMatchMap); - for (unsigned int i = 0; i < zMuMu->size(); ++i) { //loop on candidates - - const Candidate& zMuMuCand = (*zMuMu)[i]; //the candidate - CandidateBaseRef zMuMuCandRef = zMuMu->refAt(i); - - CandidateBaseRef dau0 = zMuMuCand.daughter(0)->masterClone(); - CandidateBaseRef dau1 = zMuMuCand.daughter(1)->masterClone(); - const pat::Muon& mu0 = dynamic_cast(*dau0); //cast in patMuon - const pat::Muon& mu1 = dynamic_cast(*dau1); - - double zmass = zMuMuCand.mass(); - double pt0 = mu0.pt(); - double pt1 = mu1.pt(); - double eta0 = mu0.eta(); - double eta1 = mu1.eta(); - if (pt0 > 20 && pt1 > 20 && abs(eta0) < 2 && abs(eta1) < 2 && zmass > 20 && zmass < 200) { - GenParticleRef zMuMuMatch = (*zMuMuMatchMap)[zMuMuCandRef]; - if (zMuMuMatch.isNonnull()) { // ZMuMu matched - zmmcounter++; - cout << " Zmumu cuts && matched" << endl; - FSR_mu0 = false; - FSR_mu1 = false; - - //Isodeposit - const pat::IsoDeposit* mu0TrackIso = mu0.isoDeposit(pat::TrackIso); - const pat::IsoDeposit* mu1TrackIso = mu1.isoDeposit(pat::TrackIso); - Direction mu0Dir = Direction(mu0.eta(), mu0.phi()); - Direction mu1Dir = Direction(mu1.eta(), mu1.phi()); - - reco::IsoDeposit::AbsVetos vetos_mu0; - vetos_mu0.push_back(new ConeVeto(mu0Dir, dRVeto_)); - vetos_mu0.push_back(new ThresholdVeto(ptThreshold_)); - - reco::IsoDeposit::AbsVetos vetos_mu1; - vetos_mu1.push_back(new ConeVeto(mu1Dir, dRVeto_)); - vetos_mu1.push_back(new ThresholdVeto(ptThreshold_)); - - double Tracker_isovalue_mu0 = mu0TrackIso->sumWithin(dRTrk_, vetos_mu0); - double Tracker_isovalue_mu1 = mu1TrackIso->sumWithin(dRTrk_, vetos_mu1); - - //trigger study - trig0found = false; - trig1found = false; - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = mu0.triggerObjectMatchesByPath("HLT_Mu9"); - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = mu1.triggerObjectMatchesByPath("HLT_Mu9"); - if (!mu0HLTMatches.empty()) - trig0found = true; - if (!mu1HLTMatches.empty()) - trig1found = true; - - //MonteCarlo Study - const reco::GenParticle* muMc0 = mu0.genLepton(); - const reco::GenParticle* muMc1 = mu1.genLepton(); - const Candidate* motherMu0 = muMc0->mother(); - int num_dau_muon0 = motherMu0->numberOfDaughters(); - const Candidate* motherMu1 = muMc1->mother(); - int num_dau_muon1 = motherMu1->numberOfDaughters(); - cout << " muone0" << endl; - cout << " num di daughters = " << num_dau_muon0 << endl; - if (num_dau_muon0 > 1) { - for (int j = 0; j < num_dau_muon0; ++j) { - int id = motherMu0->daughter(j)->pdgId(); - cout << " dauther[" << j << "] pdgId = " << id << endl; - if (id == 22) - FSR_mu0 = true; - } - } //end check of gamma - - cout << " muone1" << endl; - cout << " num di daughters = " << num_dau_muon1 << endl; - if (num_dau_muon1 > 1) { - for (int j = 0; j < num_dau_muon1; ++j) { - int id = motherMu1->daughter(j)->pdgId(); - cout << " dauther[" << j << "] pdgId = " << id << endl; - if (id == 22) - FSR_mu1 = true; - } - } //end check of gamma - - if (FSR_mu0 || FSR_mu1) - h_zmass_FSR->Fill(zmass); - else - h_zmass_no_FSR->Fill(zmass); - - if (trig1found) { // check efficiency of muon0 not imposing the trigger on it - cout << "muon 1 is triggered " << endl; - if (FSR_mu0) { - cout << "and muon 0 does FSR" << endl; - h_trackProbe_eta_FSR->Fill(eta0); - h_trackProbe_pt_FSR->Fill(pt0); - h_staProbe_eta_FSR->Fill(eta0); - h_staProbe_pt_FSR->Fill(pt0); - h_staProbe_pt_eta_FSR_->Fill(pt0, eta0); - h_ProbeOk_eta_FSR->Fill(eta0); - h_ProbeOk_pt_FSR->Fill(pt0); - h_ProbeOk_pt_eta_FSR_->Fill(pt0, eta0); - } else { - cout << "and muon 0 doesn't FSR" << endl; - h_trackProbe_eta_no_FSR->Fill(eta0); - h_trackProbe_pt_no_FSR->Fill(pt0); - h_staProbe_eta_no_FSR->Fill(eta0); - h_staProbe_pt_no_FSR->Fill(pt0); - h_staProbe_pt_eta_no_FSR_->Fill(pt0, eta0); - h_ProbeOk_eta_no_FSR->Fill(eta0); - h_ProbeOk_pt_no_FSR->Fill(pt0); - h_ProbeOk_pt_eta_no_FSR_->Fill(pt0, eta0); - } - if (FSR_mu0) { - h_Iso_FSR_->Fill(Tracker_isovalue_mu0); - h_Iso_FSR_3D_->Fill(pt0, eta0, Tracker_isovalue_mu0); - } else { - h_Iso_->Fill(Tracker_isovalue_mu0); - h_Iso_3D_->Fill(pt0, eta0, Tracker_isovalue_mu0); - } - } - if (trig0found) { // check efficiency of muon1 not imposing the trigger on it - cout << "muon 0 is triggered" << endl; - if (FSR_mu1) { - cout << "and muon 1 does FSR" << endl; - h_trackProbe_eta_FSR->Fill(eta1); - h_staProbe_eta_FSR->Fill(eta1); - h_trackProbe_pt_FSR->Fill(pt1); - h_staProbe_pt_FSR->Fill(pt1); - h_ProbeOk_eta_FSR->Fill(eta1); - h_ProbeOk_pt_FSR->Fill(pt1); - h_staProbe_pt_eta_FSR_->Fill(pt1, eta1); - h_ProbeOk_pt_eta_FSR_->Fill(pt1, eta1); - - } else { - cout << "and muon 1 doesn't FSR" << endl; - h_trackProbe_eta_no_FSR->Fill(eta1); - h_staProbe_eta_no_FSR->Fill(eta1); - h_trackProbe_pt_no_FSR->Fill(pt1); - h_staProbe_pt_no_FSR->Fill(pt1); - h_ProbeOk_eta_no_FSR->Fill(eta1); - h_ProbeOk_pt_no_FSR->Fill(pt1); - h_staProbe_pt_eta_no_FSR_->Fill(pt1, eta1); - h_ProbeOk_pt_eta_no_FSR_->Fill(pt1, eta1); - } - if (FSR_mu1) { - h_Iso_FSR_->Fill(Tracker_isovalue_mu1); - h_Iso_FSR_3D_->Fill(pt1, eta1, Tracker_isovalue_mu1); - } else { - h_Iso_->Fill(Tracker_isovalue_mu1); - h_Iso_3D_->Fill(pt1, eta1, Tracker_isovalue_mu1); - } - } - } // end MC match - } //end of cuts - } // end loop on ZMuMu cand - } // end if ZMuMu size > 0 - - // ZMuSa - if (!zMuSa->empty()) { - event.getByToken(zMuSaMatchMapToken_, zMuSaMatchMap); - for (unsigned int i = 0; i < zMuSa->size(); ++i) { //loop on candidates - - const Candidate& zMuSaCand = (*zMuSa)[i]; //the candidate - CandidateBaseRef zMuSaCandRef = zMuSa->refAt(i); - const Candidate* lep0 = zMuSaCand.daughter(0); - const Candidate* lep1 = zMuSaCand.daughter(1); - const CandidateBaseRef& dau0 = lep0->masterClone(); - const CandidateBaseRef& dau1 = lep1->masterClone(); - const pat::Muon& mu0 = dynamic_cast(*dau0); //cast in patMuon - const pat::Muon& mu1 = dynamic_cast(*dau1); - - double zmass = zMuSaCand.mass(); - double pt0 = mu0.pt(); - double pt1 = mu1.pt(); - double eta0 = mu0.eta(); - double eta1 = mu1.eta(); - if (pt0 > 20 && pt1 > 20 && abs(eta0) < 2 && abs(eta1) < 2 && zmass > 20 && zmass < 200) { - GenParticleRef zMuSaMatch = (*zMuSaMatchMap)[zMuSaCandRef]; - if (zMuSaMatch.isNonnull()) { // ZMuSa matched - cout << " Zmusa cuts && matched" << endl; - FSR_mu0 = false; - FSR_mu1 = false; - zmscounter++; - //Isodeposit - const pat::IsoDeposit* mu0TrackIso = mu0.isoDeposit(pat::TrackIso); - const pat::IsoDeposit* mu1TrackIso = mu1.isoDeposit(pat::TrackIso); - Direction mu0Dir = Direction(mu0.eta(), mu0.phi()); - Direction mu1Dir = Direction(mu1.eta(), mu1.phi()); - - reco::IsoDeposit::AbsVetos vetos_mu0; - vetos_mu0.push_back(new ConeVeto(mu0Dir, dRVeto_)); - vetos_mu0.push_back(new ThresholdVeto(ptThreshold_)); - - reco::IsoDeposit::AbsVetos vetos_mu1; - vetos_mu1.push_back(new ConeVeto(mu1Dir, dRVeto_)); - vetos_mu1.push_back(new ThresholdVeto(ptThreshold_)); - - double Tracker_isovalue_mu0 = mu0TrackIso->sumWithin(dRTrk_, vetos_mu0); - double Tracker_isovalue_mu1 = mu1TrackIso->sumWithin(dRTrk_, vetos_mu1); - - // HLT match (check just dau0 the global) - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = mu0.triggerObjectMatchesByPath("HLT_Mu9"); - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = mu1.triggerObjectMatchesByPath("HLT_Mu9"); - trig0found = false; - trig1found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - if (!mu1HLTMatches.empty()) - trig1found = true; - - //MonteCarlo Study - const reco::GenParticle* muMc0 = mu0.genLepton(); - const reco::GenParticle* muMc1 = mu1.genLepton(); - const Candidate* motherMu0 = muMc0->mother(); - const Candidate* motherMu1 = muMc1->mother(); - int num_dau_muon0 = motherMu0->numberOfDaughters(); - int num_dau_muon1 = motherMu1->numberOfDaughters(); - cout << " muone0" << endl; - cout << " num di daughters = " << num_dau_muon0 << endl; - if (num_dau_muon0 > 1) { - for (int j = 0; j < num_dau_muon0; ++j) { - int id = motherMu0->daughter(j)->pdgId(); - cout << " dauther[" << j << "] pdgId = " << id << endl; - if (id == 22) - FSR_mu0 = true; - } - } //end check of gamma - - cout << " muone1" << endl; - cout << " num di daughters = " << num_dau_muon1 << endl; - if (num_dau_muon1 > 1) { - for (int j = 0; j < num_dau_muon1; ++j) { - int id = motherMu1->daughter(j)->pdgId(); - cout << " dauther[" << j << "] pdgId = " << id << endl; - if (id == 22) - FSR_mu1 = true; - } - } //end check of gamma - if (FSR_mu0 || FSR_mu1) - h_zMuSamass_FSR->Fill(zmass); - else - h_zMuSamass_no_FSR->Fill(zmass); - if (lep0->isGlobalMuon() && trig0found) { - if (FSR_mu1) { - h_staProbe_eta_FSR->Fill(eta1); - h_staProbe_pt_FSR->Fill(pt1); - h_staProbe_pt_eta_FSR_->Fill(pt1, eta1); - - } else { - h_staProbe_eta_no_FSR->Fill(eta1); - h_staProbe_pt_no_FSR->Fill(pt1); - h_staProbe_pt_eta_no_FSR_->Fill(pt1, eta1); - } - if (FSR_mu1) { - h_Iso_FSR_->Fill(Tracker_isovalue_mu1); - h_Iso_FSR_3D_->Fill(pt1, eta1, Tracker_isovalue_mu1); - } else { - h_Iso_->Fill(Tracker_isovalue_mu1); - h_Iso_3D_->Fill(pt1, eta1, Tracker_isovalue_mu1); - } - } - if (lep1->isGlobalMuon() && trig1found) { - if (FSR_mu0) { - h_staProbe_eta_FSR->Fill(eta0); - h_staProbe_pt_FSR->Fill(pt0); - h_staProbe_pt_eta_FSR_->Fill(pt0, eta0); - - } else { - h_staProbe_eta_no_FSR->Fill(eta0); - h_staProbe_pt_no_FSR->Fill(pt0); - h_staProbe_pt_eta_FSR_->Fill(pt0, eta0); - } - if (FSR_mu0) { - h_Iso_FSR_->Fill(Tracker_isovalue_mu0); - h_Iso_FSR_3D_->Fill(pt0, eta0, Tracker_isovalue_mu0); - } else { - h_Iso_->Fill(Tracker_isovalue_mu0); - h_Iso_3D_->Fill(pt0, eta0, Tracker_isovalue_mu0); - } - } - } // end MC match - } //end of cuts - } // end loop on ZMuSa cand - } // end if ZMuSa size > 0 - - //ZMuTk - if (!zMuTk->empty()) { - event.getByToken(zMuTkMatchMapToken_, zMuTkMatchMap); - for (unsigned int i = 0; i < zMuTk->size(); ++i) { //loop on candidates - const Candidate& zMuTkCand = (*zMuTk)[i]; //the candidate - CandidateBaseRef zMuTkCandRef = zMuTk->refAt(i); - CandidateBaseRef dau0 = zMuTkCand.daughter(0)->masterClone(); - CandidateBaseRef dau1 = zMuTkCand.daughter(1)->masterClone(); - const pat::Muon& mu0 = dynamic_cast(*dau0); //cast in patMuon - const pat::GenericParticle& mu1 = dynamic_cast(*dau1); - - double zmass = zMuTkCand.mass(); - double pt0 = mu0.pt(); - double pt1 = mu1.pt(); - double eta0 = mu0.eta(); - double eta1 = mu1.eta(); - if (pt0 > 20 && pt1 > 20 && abs(eta0) < 2 && abs(eta1) < 2 && zmass > 20 && zmass < 200) { //kinematical cuts - GenParticleRef zMuTkMatch = (*zMuTkMatchMap)[zMuTkCandRef]; - if (zMuTkMatch.isNonnull()) { // ZMuTk matched - FSR_mu = false; - FSR_tk = false; - cout << " ZmuTk cuts && matched" << endl; - zmtcounter++; - //Isodeposit - const pat::IsoDeposit* muTrackIso = mu0.isoDeposit(pat::TrackIso); - const pat::IsoDeposit* tkTrackIso = mu1.isoDeposit(pat::TrackIso); - Direction muDir = Direction(mu0.eta(), mu0.phi()); - Direction tkDir = Direction(mu1.eta(), mu1.phi()); - - IsoDeposit::AbsVetos vetos_mu; - vetos_mu.push_back(new ConeVeto(muDir, dRVeto_)); - vetos_mu.push_back(new ThresholdVeto(ptThreshold_)); - - reco::IsoDeposit::AbsVetos vetos_tk; - vetos_tk.push_back(new ConeVeto(tkDir, dRVeto_)); - vetos_tk.push_back(new ThresholdVeto(ptThreshold_)); - - double Tracker_isovalue_mu = muTrackIso->sumWithin(dRTrk_, vetos_mu); - double Tracker_isovalue_tk = tkTrackIso->sumWithin(dRTrk_, vetos_tk); - - //MonteCarlo Study - const reco::GenParticle* muMc0 = mu0.genLepton(); - const reco::GenParticle* muMc1 = mu1.genParticle(); - const Candidate* motherMu0 = muMc0->mother(); - const Candidate* motherMu1 = muMc1->mother(); - int num_dau_muon0 = motherMu0->numberOfDaughters(); - int num_dau_muon1 = motherMu1->numberOfDaughters(); - cout << "numero di figli muone0 = " << num_dau_muon0 << endl; - cout << "numero di figli muone1 = " << num_dau_muon1 << endl; - - cout << " muon" << endl; - cout << " num di daughters = " << num_dau_muon0 << endl; - if (num_dau_muon0 > 1) { - for (int j = 0; j < num_dau_muon0; ++j) { - int id = motherMu0->daughter(j)->pdgId(); - cout << " dau[" << j << "] pdg ID = " << id << endl; - if (id == 22) { - FSR_mu = true; - } - } - } //end check of gamma - else - cout << " dau[0] pdg ID = " << motherMu0->daughter(0)->pdgId() << endl; - cout << " traccia" << endl; - cout << " num di daughters = " << num_dau_muon1 << endl; - if (num_dau_muon1 > 1) { - for (int j = 0; j < num_dau_muon1; ++j) { - int id = motherMu1->daughter(j)->pdgId(); - cout << " dau[" << j << "] pdg ID = " << id << endl; - if (id == 22) { - FSR_tk = true; - } - } - } //end check of gamma - else - cout << " dau[0] pdg ID = " << motherMu1->daughter(0)->pdgId() << endl; - cout << "Mu Isolation = " << Tracker_isovalue_mu << endl; - cout << "Track Isolation = " << Tracker_isovalue_tk << endl; - if (FSR_mu) { - h_Iso_FSR_->Fill(Tracker_isovalue_mu); - h_Iso_FSR_3D_->Fill(pt0, eta0, Tracker_isovalue_mu); - } else { - h_Iso_->Fill(Tracker_isovalue_mu); - h_Iso_3D_->Fill(pt0, eta0, Tracker_isovalue_mu); - } - if (FSR_tk) { - h_Iso_FSR_->Fill(Tracker_isovalue_tk); - h_Iso_FSR_3D_->Fill(pt1, eta1, Tracker_isovalue_tk); - h_trackProbe_eta_FSR->Fill(eta1); - h_trackProbe_pt_FSR->Fill(pt1); - } else { - h_Iso_->Fill(Tracker_isovalue_tk); - h_Iso_3D_->Fill(pt1, eta1, Tracker_isovalue_tk); - h_trackProbe_eta_no_FSR->Fill(eta1); - h_trackProbe_pt_no_FSR->Fill(pt1); - } - } // end MC match - } //end Kine-cuts - } // end loop on ZMuTk cand - } // end if ZMuTk size > 0 -} // end analyze - -void ZMuMu_Radiative_analyzer::endJob() { - cout << " ============= Summary ==========" << endl; - cout << " Numero di eventi " << evntcounter << endl; - cout << " 1)Numero di ZMuMu matched dopo i tagli cinematici = " << zmmcounter << endl; - cout << " 2)Numero di ZMuSa matched dopo i tagli cinematici = " << zmscounter << endl; - cout << " 3)Numero di ZMuTk matched dopo i tagli cinematici = " << zmtcounter << endl; - double n1 = h_Iso_FSR_->Integral(); - double icut1 = h_Iso_FSR_->Integral(0, 15); - double eff_iso_FSR = (double)icut1 / (double)n1; - double err_iso_FSR = sqrt(eff_iso_FSR * (1 - eff_iso_FSR) / n1); - double n2 = h_Iso_->Integral(); - double icut2 = h_Iso_->Integral(0, 15); - double eff_iso = (double)icut2 / (double)n2; - double err_iso = sqrt(eff_iso * (1 - eff_iso) / n2); - cout << " ============= Isolation Efficiecy ==========" << endl; - cout << "Isolation Efficiency = " << eff_iso << " +/- " << err_iso << endl; - cout << "Isolation Efficiency with FSR = " << eff_iso_FSR << " +/- " << err_iso_FSR << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMu_Radiative_analyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_vtxAnalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_vtxAnalyzer.cc deleted file mode 100644 index 57a5ed0704798..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuMu_vtxAnalyzer.cc +++ /dev/null @@ -1,638 +0,0 @@ -/* \class ZMuMu_vtxAnalyzer - * - * author: Davide Piccolo - * - * ZMuMu Vtx analyzer: - * check muon vtx distributions, - * - */ - -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/Math/interface/deltaR.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h" -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/PatCandidates/interface/PATObject.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/Candidate/interface/CandAssociation.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include - -using namespace std; -using namespace reco; -using namespace edm; - -typedef edm::ValueMap IsolationCollection; - -class ZMuMu_vtxAnalyzer : public edm::EDAnalyzer { -public: - ZMuMu_vtxAnalyzer(const edm::ParameterSet &pset); - -private: - void analyze(const edm::Event &event, const edm::EventSetup &setup) override; - bool check_ifZmumu(const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticlePt(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticleEta(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - float getParticlePhi(const int ipart, const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2); - Particle::LorentzVector getParticleP4(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2); - void endJob() override; - - EDGetTokenT zMuMuToken_; - EDGetTokenT zMuMuMatchMapToken_; - EDGetTokenT zMuStandAloneToken_; - EDGetTokenT zMuStandAloneMatchMapToken_; - EDGetTokenT zMuTrackToken_; - EDGetTokenT zMuTrackMatchMapToken_; - EDGetTokenT muonsToken_; - EDGetTokenT tracksToken_; - EDGetTokenT genParticlesToken_; - EDGetTokenT primaryVerticesToken_; - - bool bothMuons_; - - double etamax_, ptmin_, massMin_, massMax_, isoMax_; - - reco::CandidateBaseRef globalMuonCandRef_, trackMuonCandRef_, standAloneMuonCandRef_; - OverlapChecker overlap_; - - // general histograms - - // vertex studies - // ... zmumu No cuts - TH1D *h_muon_vz, *h_dimuon_vz, *h_muon_d0signed; - TH1D *h_muon_vz_respectToPV, *h_muon_d0signed_respectToPV; - // ... cynematic cuts zmumu - TH1D *h_zmumuSele_muon_vz, *h_zmumuSele_dimuon_vz, *h_zmumuSele_muon_d0signed; - TH1D *h_zmumuSele_muon_vz_respectToPV, *h_zmumuSele_muon_d0signed_respectToPV; - // ... cynematic cuts zmumuNotIso - TH1D *h_zmumuNotIsoSele_dimuon_vz; - TH1D *h_zmumuNotIsoSele_muonIso_vz, *h_zmumuNotIsoSele_muonIso_d0signed; - TH1D *h_zmumuNotIsoSele_muonIso_vz_respectToPV, *h_zmumuNotIsoSele_muonIso_d0signed_respectToPV; - TH1D *h_zmumuNotIsoSele_muonNotIso_vz, *h_zmumuNotIsoSele_muonNotIso_d0signed; - TH1D *h_zmumuNotIsoSele_muonNotIso_vz_respectToPV, *h_zmumuNotIsoSele_muonNotIso_d0signed_respectToPV; - // ... cynematic cuts zmutrack - TH1D *h_zmutrackSele_muon_vz, *h_zmutrackSele_muon_d0signed; - TH1D *h_zmutrackSele_muon_vz_respectToPV, *h_zmutrackSele_muon_d0signed_respectToPV; - TH1D *h_zmutrackSele_track_vz, *h_zmutrackSele_track_d0signed; - TH1D *h_zmutrackSele_track_vz_respectToPV, *h_zmutrackSele_track_d0signed_respectToPV; - // ... cynematic cuts zmusta - TH1D *h_zmustaSele_muon_vz, *h_zmustaSele_muon_d0signed; - TH1D *h_zmustaSele_muon_vz_respectToPV, *h_zmustaSele_muon_d0signed_respectToPV; - TH1D *h_zmustaSele_sta_vz, *h_zmustaSele_sta_d0signed; - TH1D *h_zmustaSele_sta_vz_respectToPV, *h_zmustaSele_sta_d0signed_respectToPV; - - // global counters -}; - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include -#include -#include - -ZMuMu_vtxAnalyzer::ZMuMu_vtxAnalyzer(const ParameterSet &pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - zMuMuMatchMapToken_(mayConsume(pset.getParameter("zMuMuMatchMap"))), - zMuStandAloneToken_(consumes(pset.getParameter("zMuStandAlone"))), - zMuStandAloneMatchMapToken_(mayConsume(pset.getParameter("zMuStandAloneMatchMap"))), - zMuTrackToken_(consumes(pset.getParameter("zMuTrack"))), - zMuTrackMatchMapToken_(mayConsume(pset.getParameter("zMuTrackMatchMap"))), - muonsToken_(consumes(pset.getParameter("muons"))), - tracksToken_(consumes(pset.getParameter("tracks"))), - genParticlesToken_(consumes(pset.getParameter("genParticles"))), - primaryVerticesToken_(consumes(pset.getParameter("primaryVertices"))), - - bothMuons_(pset.getParameter("bothMuons")), - - etamax_(pset.getUntrackedParameter("etamax")), - ptmin_(pset.getUntrackedParameter("ptmin")), - massMin_(pset.getUntrackedParameter("zMassMin")), - massMax_(pset.getUntrackedParameter("zMassMax")), - isoMax_(pset.getUntrackedParameter("isomax")) { - Service fs; - - // general histograms - - // vertex histograms - // ... zmumu no Cuts - h_muon_vz = fs->make("muonVz", "z vertex of muons", 50, -20., 20.); - h_muon_d0signed = fs->make("muonD0signed", "d0 vertex of muons", 50, -.1, .1); - h_dimuon_vz = fs->make("dimuonVz", "z vertex of dimuon", 50, -20., 20.); - h_muon_vz_respectToPV = - fs->make("muonVz_respectToPV", "z vertex of muons respect to PrimaryVertex", 50, -.05, .05); - h_muon_d0signed_respectToPV = - fs->make("muonD0signed_respectToPV", "d0 vertex of muons respect to PrimaryVertex", 50, -.05, .05); - // ... zmumu cynematic Cuts - h_zmumuSele_muon_vz = fs->make("zmumuSele_muonVz", "z vertex of muons (zmumu sele)", 50, -20., 20.); - h_zmumuSele_muon_d0signed = fs->make("zmumuSele_muonD0signed", "d0 vertex of muons (zmumu sele)", 50, -.1, .1); - h_zmumuSele_dimuon_vz = fs->make("zmumuSele_dimuonVz", "z vertex of dimuon (zmumu sele)", 50, -20., 20.); - h_zmumuSele_muon_vz_respectToPV = fs->make( - "zmumuSele_muonVz_respectToPV", "z vertex of muons respect to PrimaryVertex (zmumu sele)", 50, -.05, .05); - h_zmumuSele_muon_d0signed_respectToPV = fs->make( - "zmumuSele_muonD0signed_respectToPV", "d0 vertex of muons respect to PrimaryVertex (zmumu sele)", 50, -.05, .05); - // ... zmumuNotIso cynematic Cuts - h_zmumuNotIsoSele_dimuon_vz = - fs->make("zmumuNotIsoSele_dimuonVz", "z vertex of dimuon (zmumuNotIso sele)", 50, -20., 20.); - h_zmumuNotIsoSele_muonIso_vz = - fs->make("zmumuNotIsoSele_muonIsoVz", "z vertex of muons (zmumuNotIso sele muon Iso)", 50, -20., 20.); - h_zmumuNotIsoSele_muonIso_d0signed = - fs->make("zmumuNotIsoSele_muonIsoD0signed", "d0 vertex of muons (zmumuNotIso sele muon Iso)", 50, -.1, .1); - h_zmumuNotIsoSele_muonIso_vz_respectToPV = - fs->make("zmumuNotIsoSele_muonIsoVz_respectToPV", - "z vertex of muons respect to PrimaryVertex (zmumuNotIso sele muon Iso)", - 50, - -.05, - .05); - h_zmumuNotIsoSele_muonIso_d0signed_respectToPV = - fs->make("zmumuNotIsoSele_muonIsoD0signed_respectToPV", - "d0 vertex of muons respect to PrimaryVertex (zmumuNotIso sele muon Iso)", - 50, - -.05, - .05); - h_zmumuNotIsoSele_muonNotIso_vz = fs->make( - "zmumuNotIsoSele_muonNotIsoVz", "z vertex of muons (zmumuNotIso sele muon Not Iso)", 50, -20., 20.); - h_zmumuNotIsoSele_muonNotIso_d0signed = fs->make( - "zmumuNotIsoSele_muonNotIsoD0signed", "d0 vertex of muons (zmumuNotIso sele muon Not Iso)", 50, -.1, .1); - h_zmumuNotIsoSele_muonNotIso_vz_respectToPV = - fs->make("zmumuNotIsoSele_muonNotIsoVz_respectToPV", - "z vertex of muons respect to PrimaryVertex (zmumuNotIso sele muon Not Iso)", - 50, - -.05, - .05); - h_zmumuNotIsoSele_muonNotIso_d0signed_respectToPV = - fs->make("zmumuNotIsoSele_muonNotIsoD0signed_respectToPV", - "d0 vertex of muons respect to PrimaryVertex (zmumuNotIso sele muon Not Iso)", - 50, - -.05, - .05); - // ... zmutrack cynematic Cuts - h_zmutrackSele_muon_vz = fs->make("zmutrackSele_muonVz", "z vertex of muon (zmutrack sele)", 50, -20., 20.); - h_zmutrackSele_muon_d0signed = - fs->make("zmutrackSele_muonD0signed", "d0 vertex of muon (zmutrack sele)", 50, -.1, .1); - h_zmutrackSele_muon_vz_respectToPV = fs->make( - "zmutrackSele_muonVz_respectToPV", "z vertex of muon respect to PV (zmutrack sele)", 50, -.05, .05); - h_zmutrackSele_muon_d0signed_respectToPV = fs->make( - "zmutrackSele_muonD0signed_respectToPV", "d0 vertex of muon respect to PV (zmutrack sele)", 50, -.1, .1); - h_zmutrackSele_track_vz = fs->make("zmutrackSele_trackVz", "z vertex of track (zmutrack sele)", 50, -20., 20.); - h_zmutrackSele_track_d0signed = - fs->make("zmutrackSele_trackD0signed", "d0 vertex of track (zmutrack sele)", 50, -.1, .1); - h_zmutrackSele_track_vz_respectToPV = fs->make( - "zmutrackSele_trackVz_respectToPV", "z vertex of track respect to PV (zmutrack sele)", 50, -.05, .05); - h_zmutrackSele_track_d0signed_respectToPV = fs->make( - "zmutrackSele_trackD0signed_respectToPV", "d0 vertex of track respect to PV (zmutrack sele)", 50, -.1, .1); - // ... zmusta cynematic Cuts - h_zmustaSele_muon_vz = fs->make("zmustaSele_muonVz", "z vertex of muon (zmusta sele)", 50, -20., 20.); - h_zmustaSele_muon_d0signed = - fs->make("zmustaSele_muonD0signed", "d0 vertex of muon (zmusta sele)", 50, -.1, .1); - h_zmustaSele_muon_vz_respectToPV = - fs->make("zmustaSele_muonVz_respectToPV", "z vertex of muon respect to PV (zmusta sele)", 50, -.05, .05); - h_zmustaSele_muon_d0signed_respectToPV = fs->make( - "zmustaSele_muonD0signed_respectToPV", "d0 vertex of muon respect to PV (zmusta sele)", 50, -.1, .1); - h_zmustaSele_sta_vz = fs->make("zmustaSele_staVz", "z vertex of sta (zmusta sele)", 50, -20., 20.); - h_zmustaSele_sta_d0signed = fs->make("zmustaSele_staD0signed", "d0 vertex of sta (zmusta sele)", 50, -.1, .1); - h_zmustaSele_sta_vz_respectToPV = - fs->make("zmustaSele_staVz_respectToPV", "z vertex of sta respect to PV (zmusta sele)", 50, -.05, .05); - h_zmustaSele_sta_d0signed_respectToPV = - fs->make("zmustaSele_staD0signed_respectToPV", "d0 vertex of sta respect to PV (zmusta sele)", 50, -.1, .1); -} - -void ZMuMu_vtxAnalyzer::analyze(const Event &event, const EventSetup &setup) { - Handle zMuMu; - Handle zMuMuMatchMap; //Map of Z made by Mu global + Mu global - Handle zMuStandAlone; - Handle zMuStandAloneMatchMap; //Map of Z made by Mu + StandAlone - Handle zMuTrack; - Handle zMuTrackMatchMap; //Map of Z made by Mu + Track - Handle muons; //Collection of Muons - Handle tracks; //Collection of Tracks - - Handle genParticles; // Collection of Generatd Particles - Handle primaryVertices; // Collection of primary Vertices - - event.getByToken(zMuMuToken_, zMuMu); - event.getByToken(zMuStandAloneToken_, zMuStandAlone); - event.getByToken(zMuTrackToken_, zMuTrack); - event.getByToken(genParticlesToken_, genParticles); - event.getByToken(primaryVerticesToken_, primaryVertices); - event.getByToken(muonsToken_, muons); - event.getByToken(tracksToken_, tracks); - - /* - cout << "********* zMuMu size : " << zMuMu->size() << endl; - cout << "********* zMuStandAlone size : " << zMuStandAlone->size() << endl; - cout << "********* zMuTrack size : " << zMuTrack->size() << endl; - cout << "********* muons size : " << muons->size() << endl; - cout << "********* tracks size : " << tracks->size() << endl; - cout << "********* vertices size : " << primaryVertices->size() << endl; - */ - - // std::cout<<"Run-> "< "<empty()) { - event.getByToken(zMuMuMatchMapToken_, zMuMuMatchMap); - for (unsigned int i = 0; i < zMuMu->size(); ++i) { //loop on candidates - const Candidate &zMuMuCand = (*zMuMu)[i]; //the candidate - CandidateBaseRef zMuMuCandRef = zMuMu->refAt(i); - - const Candidate *lep0 = zMuMuCand.daughter(0); - const Candidate *lep1 = zMuMuCand.daughter(1); - const pat::Muon &muonDau0 = dynamic_cast(*lep0->masterClone()); - double trkiso0 = muonDau0.trackIso(); - const pat::Muon &muonDau1 = dynamic_cast(*lep1->masterClone()); - double trkiso1 = muonDau1.trackIso(); - - // vertex - h_muon_vz->Fill(muonDau0.vz()); - h_muon_vz->Fill(muonDau1.vz()); - h_dimuon_vz->Fill((muonDau0.vz() + muonDau1.vz()) / 2.); - - TrackRef mu0TrkRef = muonDau0.track(); - float d0signed_mu0 = (*mu0TrkRef).dxy(); - float d0signed_mu0_respectToPV = (*mu0TrkRef).dxy(primaryVertices->begin()->position()); - float vz_mu0_respectToPV = (*mu0TrkRef).dz(primaryVertices->begin()->position()); - - TrackRef mu1TrkRef = muonDau1.track(); - float d0signed_mu1 = (*mu1TrkRef).dxy(); - float d0signed_mu1_respectToPV = (*mu1TrkRef).dxy(primaryVertices->begin()->position()); - float vz_mu1_respectToPV = (*mu1TrkRef).dz(primaryVertices->begin()->position()); - h_muon_d0signed->Fill(d0signed_mu0); - h_muon_d0signed->Fill(d0signed_mu1); - h_muon_d0signed_respectToPV->Fill(d0signed_mu0_respectToPV); - h_muon_d0signed_respectToPV->Fill(d0signed_mu1_respectToPV); - h_muon_vz_respectToPV->Fill(vz_mu0_respectToPV); - h_muon_vz_respectToPV->Fill(vz_mu1_respectToPV); - - // eta , pt distributions - double pt0 = zMuMuCand.daughter(0)->pt(); - double pt1 = zMuMuCand.daughter(1)->pt(); - double eta0 = zMuMuCand.daughter(0)->eta(); - double eta1 = zMuMuCand.daughter(1)->eta(); - double mass = zMuMuCand.mass(); - - // HLT match - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath("HLT_Mu9"); - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = muonDau1.triggerObjectMatchesByPath("HLT_Mu9"); - - bool trig0found = false; - bool trig1found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - if (!mu1HLTMatches.empty()) - trig1found = true; - - // cynematical selection - if ((trig0found || trig1found) && pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) < etamax_ && abs(eta1) < etamax_ && - mass > massMin_) { - if (trkiso0 < isoMax_ && trkiso1 < isoMax_) { // zmumu both isolated - h_zmumuSele_muon_vz->Fill(muonDau0.vz()); - h_zmumuSele_muon_vz->Fill(muonDau1.vz()); - h_zmumuSele_dimuon_vz->Fill((muonDau0.vz() + muonDau1.vz()) / 2.); - h_zmumuSele_muon_d0signed->Fill(d0signed_mu0); - h_zmumuSele_muon_d0signed->Fill(d0signed_mu1); - h_zmumuSele_muon_d0signed_respectToPV->Fill(d0signed_mu0_respectToPV); - h_zmumuSele_muon_d0signed_respectToPV->Fill(d0signed_mu1_respectToPV); - h_zmumuSele_muon_vz_respectToPV->Fill(vz_mu0_respectToPV); - h_zmumuSele_muon_vz_respectToPV->Fill(vz_mu1_respectToPV); - } - if (trkiso0 >= isoMax_ && trkiso1 < isoMax_) { // zmumu just muon1 isolated - h_zmumuNotIsoSele_muonNotIso_vz->Fill(muonDau0.vz()); - h_zmumuNotIsoSele_muonIso_vz->Fill(muonDau1.vz()); - h_zmumuNotIsoSele_dimuon_vz->Fill((muonDau0.vz() + muonDau1.vz()) / 2.); - h_zmumuNotIsoSele_muonNotIso_d0signed->Fill(d0signed_mu0); - h_zmumuNotIsoSele_muonIso_d0signed->Fill(d0signed_mu1); - h_zmumuNotIsoSele_muonNotIso_d0signed_respectToPV->Fill(d0signed_mu0_respectToPV); - h_zmumuNotIsoSele_muonIso_d0signed_respectToPV->Fill(d0signed_mu1_respectToPV); - h_zmumuNotIsoSele_muonNotIso_vz_respectToPV->Fill(vz_mu0_respectToPV); - h_zmumuNotIsoSele_muonIso_vz_respectToPV->Fill(vz_mu1_respectToPV); - } - if (trkiso0 < isoMax_ && trkiso1 >= isoMax_) { // zmumu just muon0 isolated - h_zmumuNotIsoSele_muonNotIso_vz->Fill(muonDau1.vz()); - h_zmumuNotIsoSele_muonIso_vz->Fill(muonDau0.vz()); - h_zmumuNotIsoSele_dimuon_vz->Fill((muonDau1.vz() + muonDau1.vz()) / 2.); - h_zmumuNotIsoSele_muonNotIso_d0signed->Fill(d0signed_mu1); - h_zmumuNotIsoSele_muonIso_d0signed->Fill(d0signed_mu0); - h_zmumuNotIsoSele_muonNotIso_d0signed_respectToPV->Fill(d0signed_mu1_respectToPV); - h_zmumuNotIsoSele_muonIso_d0signed_respectToPV->Fill(d0signed_mu0_respectToPV); - h_zmumuNotIsoSele_muonNotIso_vz_respectToPV->Fill(vz_mu1_respectToPV); - h_zmumuNotIsoSele_muonIso_vz_respectToPV->Fill(vz_mu0_respectToPV); - } - } - } // end loop on ZMuMu cand - } // end if ZMuMu size > 0 - - // loop on ZMuSta - bool zMuSta_found = false; - if (!zMuMu_found && !zMuStandAlone->empty()) { - event.getByToken(zMuStandAloneMatchMapToken_, zMuStandAloneMatchMap); - for (unsigned int i = 0; i < zMuStandAlone->size(); ++i) { //loop on candidates - const Candidate &zMuStandAloneCand = (*zMuStandAlone)[i]; //the candidate - CandidateBaseRef zMuStandAloneCandRef = zMuStandAlone->refAt(i); - GenParticleRef zMuStandAloneMatch = (*zMuStandAloneMatchMap)[zMuStandAloneCandRef]; - - const Candidate *lep0 = zMuStandAloneCand.daughter(0); - const Candidate *lep1 = zMuStandAloneCand.daughter(1); - const pat::Muon &muonDau0 = dynamic_cast(*lep0->masterClone()); - double trkiso0 = muonDau0.trackIso(); - const pat::Muon &muonDau1 = dynamic_cast(*lep1->masterClone()); - double trkiso1 = muonDau1.trackIso(); - - // vertex - - TrackRef mu0TrkRef = muonDau0.track(); - float d0signed_mu0 = (*mu0TrkRef).dxy(); - float d0signed_mu0_respectToPV = (*mu0TrkRef).dxy(primaryVertices->begin()->position()); - float vz_mu0_respectToPV = (*mu0TrkRef).dz(primaryVertices->begin()->position()); - - TrackRef mu1TrkRef = muonDau1.track(); - float d0signed_mu1 = (*mu1TrkRef).dxy(); - float d0signed_mu1_respectToPV = (*mu1TrkRef).dxy(primaryVertices->begin()->position()); - float vz_mu1_respectToPV = (*mu1TrkRef).dz(primaryVertices->begin()->position()); - - double pt0 = zMuStandAloneCand.daughter(0)->pt(); - double pt1 = zMuStandAloneCand.daughter(1)->pt(); - double eta0 = zMuStandAloneCand.daughter(0)->eta(); - double eta1 = zMuStandAloneCand.daughter(1)->eta(); - double mass = zMuStandAloneCand.mass(); - - // HLT match - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath("HLT_Mu9"); - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = muonDau1.triggerObjectMatchesByPath("HLT_Mu9"); - - bool trig0found = false; - bool trig1found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - if (!mu1HLTMatches.empty()) - trig1found = true; - - // check the global muon ... trigger is required just on global muon - bool trigfound = false; - if (muonDau0.isGlobalMuon()) - trigfound = trig0found; - if (muonDau1.isGlobalMuon()) - trigfound = trig1found; - - // cynematical selection - if (trigfound && pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) < etamax_ && abs(eta1) < etamax_ && mass > massMin_ && - trkiso0 < isoMax_ && trkiso1 < isoMax_) { - zMuSta_found = true; - h_zmustaSele_muon_vz->Fill(muonDau0.vz(), 1.); // muon vz - h_zmustaSele_sta_vz->Fill(muonDau1.vz(), 1.); // sta vz - h_zmustaSele_muon_d0signed->Fill(d0signed_mu0, 1.); // muon d0 - h_zmustaSele_sta_d0signed->Fill(d0signed_mu1, 1.); // sta d0 - h_zmustaSele_muon_d0signed_respectToPV->Fill(d0signed_mu0_respectToPV, 1.); // muon d0 respect PV - h_zmustaSele_sta_d0signed_respectToPV->Fill(d0signed_mu1_respectToPV, 1.); // sta d0 respect PV - h_zmustaSele_muon_vz_respectToPV->Fill(vz_mu0_respectToPV, 1.); // muon vz respect PV - h_zmustaSele_sta_vz_respectToPV->Fill(vz_mu1_respectToPV, 1.); // sta vz respect PV - } - - } // end loop on ZMuStandAlone cand - } // end if ZMuStandAlone size > 0 - - // loop on ZMuTrack - if (!zMuMu_found && !zMuSta_found && !zMuTrack->empty()) { - event.getByToken(zMuTrackMatchMapToken_, zMuTrackMatchMap); - for (unsigned int i = 0; i < zMuTrack->size(); ++i) { //loop on candidates - const Candidate &zMuTrackCand = (*zMuTrack)[i]; //the candidate - CandidateBaseRef zMuTrackCandRef = zMuTrack->refAt(i); - const Candidate *lep0 = zMuTrackCand.daughter(0); - const Candidate *lep1 = zMuTrackCand.daughter(1); - const pat::Muon &muonDau0 = dynamic_cast(*lep0->masterClone()); - double trkiso0 = muonDau0.trackIso(); - const pat::GenericParticle &trackDau1 = dynamic_cast(*lep1->masterClone()); - double trkiso1 = trackDau1.trackIso(); - - // vertex - - TrackRef mu0TrkRef = muonDau0.track(); - float d0signed_mu0 = (*mu0TrkRef).dxy(); - float d0signed_mu0_respectToPV = (*mu0TrkRef).dxy(primaryVertices->begin()->position()); - float vz_mu0_respectToPV = (*mu0TrkRef).dz(primaryVertices->begin()->position()); - - TrackRef mu1TrkRef = trackDau1.track(); - float d0signed_mu1 = (*mu1TrkRef).dxy(); - float d0signed_mu1_respectToPV = (*mu1TrkRef).dxy(primaryVertices->begin()->position()); - float vz_mu1_respectToPV = (*mu1TrkRef).dz(primaryVertices->begin()->position()); - - // cynematical parameters - - double pt0 = zMuTrackCand.daughter(0)->pt(); - double pt1 = zMuTrackCand.daughter(1)->pt(); - double eta0 = zMuTrackCand.daughter(0)->eta(); - double eta1 = zMuTrackCand.daughter(1)->eta(); - double mass = zMuTrackCand.mass(); - - // HLT match (check just dau0 the global) - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = muonDau0.triggerObjectMatchesByPath("HLT_Mu9"); - - bool trig0found = false; - if (!mu0HLTMatches.empty()) - trig0found = true; - - // cynematical selection - if (trig0found && pt0 > ptmin_ && pt1 > ptmin_ && abs(eta0) < etamax_ && abs(eta1) < etamax_ && mass > massMin_ && - trkiso0 < isoMax_ && trkiso1 < isoMax_) { - h_zmutrackSele_muon_vz->Fill(muonDau0.vz(), 1.); // muon vz - h_zmutrackSele_track_vz->Fill(trackDau1.vz(), 1.); // track vz - h_zmutrackSele_muon_d0signed->Fill(d0signed_mu0, 1.); // muon d0 - h_zmutrackSele_track_d0signed->Fill(d0signed_mu1, 1.); // track d0 - h_zmutrackSele_muon_d0signed_respectToPV->Fill(d0signed_mu0_respectToPV, 1.); // muon d0 respect PV - h_zmutrackSele_track_d0signed_respectToPV->Fill(d0signed_mu1_respectToPV, 1.); // track d0 respect PV - h_zmutrackSele_muon_vz_respectToPV->Fill(vz_mu0_respectToPV, 1.); // muon vz respect PV - h_zmutrackSele_track_vz_respectToPV->Fill(vz_mu1_respectToPV, 1.); // track vz respect PV - } - - } // end loop on ZMuTrack cand - } // end if ZMuTrack size > 0 - -} // end analyze - -bool ZMuMu_vtxAnalyzer::check_ifZmumu(const Candidate *dauGen0, const Candidate *dauGen1, const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - bool muplusFound = false; - bool muminusFound = false; - bool ZFound = false; - if (partId0 == 13 || partId1 == 13 || partId2 == 13) - muminusFound = true; - if (partId0 == -13 || partId1 == -13 || partId2 == -13) - muplusFound = true; - if (partId0 == 23 || partId1 == 23 || partId2 == 23) - ZFound = true; - return (muplusFound && muminusFound && ZFound); -} - -float ZMuMu_vtxAnalyzer::getParticlePt(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float ptpart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - ptpart = dauMuGen->pt(); - } - } - } - return ptpart; -} - -float ZMuMu_vtxAnalyzer::getParticleEta(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float etapart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - etapart = dauMuGen->eta(); - } - } - } - return etapart; -} - -float ZMuMu_vtxAnalyzer::getParticlePhi(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - float phipart = 0.; - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - phipart = dauMuGen->phi(); - } - } - } - return phipart; -} - -Particle::LorentzVector ZMuMu_vtxAnalyzer::getParticleP4(const int ipart, - const Candidate *dauGen0, - const Candidate *dauGen1, - const Candidate *dauGen2) { - int partId0 = dauGen0->pdgId(); - int partId1 = dauGen1->pdgId(); - int partId2 = dauGen2->pdgId(); - Particle::LorentzVector p4part(0., 0., 0., 0.); - if (partId0 == ipart) { - for (unsigned int k = 0; k < dauGen0->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen0->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId1 == ipart) { - for (unsigned int k = 0; k < dauGen1->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen1->daughter(k); - if (dauMuGen->pdgId() == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - if (partId2 == ipart) { - for (unsigned int k = 0; k < dauGen2->numberOfDaughters(); ++k) { - const Candidate *dauMuGen = dauGen2->daughter(k); - if (abs(dauMuGen->pdgId()) == ipart && dauMuGen->status() == 1) { - p4part = dauMuGen->p4(); - } - } - } - return p4part; -} - -void ZMuMu_vtxAnalyzer::endJob() {} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuMu_vtxAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuPtScaleAnalyzer.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZMuPtScaleAnalyzer.cc deleted file mode 100644 index 615a3c81d1934..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZMuPtScaleAnalyzer.cc +++ /dev/null @@ -1,276 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "TH1.h" -#include "TRandom3.h" - -class ZMuPtScaleAnalyzer : public edm::EDAnalyzer { -public: - ZMuPtScaleAnalyzer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - edm::EDGetTokenT genToken_; - unsigned int nbinsMass_, nbinsPt_, nbinsAng_; - double massMax_, ptMax_, angMax_; - double accPtMin_, accMassMin_, accMassMax_, accMassMinDen_, accMassMaxDen_, accEtaMin_, accEtaMax_, ptScale_; - TH1F *h_nZ_, *h_mZ_, *h_ptZ_, *h_phiZ_, *h_thetaZ_, *h_etaZ_, *h_rapidityZ_; - TH1F *h_mZMC_, *h_ptZMC_, *h_phiZMC_, *h_thetaZMC_, *h_etaZMC_, *h_rapidityZMC_; - TH1F *hardpt, *softpt, *hardeta, *softeta; - unsigned int nAcc_, nAccPtScaleP_, nAccPtScaleN_, nAccPtScaleSmearedFlat_, nAccPtScaleSmearedGaus_, - nBothMuHasZHasGrandMa_; - int muPdgStatus_; -}; - -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - -#include "HepMC/WeightContainer.h" -#include "HepMC/GenEvent.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include -#include - -using namespace std; -using namespace reco; -using namespace edm; - -ZMuPtScaleAnalyzer::ZMuPtScaleAnalyzer(const ParameterSet& pset) - : genToken_(consumes(pset.getParameter("genParticles"))), - nbinsMass_(pset.getUntrackedParameter("nbinsMass")), - nbinsPt_(pset.getUntrackedParameter("nbinsPt")), - nbinsAng_(pset.getUntrackedParameter("nbinsAng")), - massMax_(pset.getUntrackedParameter("massMax")), - ptMax_(pset.getUntrackedParameter("ptMax")), - angMax_(pset.getUntrackedParameter("angMax")), - accPtMin_(pset.getUntrackedParameter("accPtMin")), - accMassMin_(pset.getUntrackedParameter("accMassMin")), - accMassMax_(pset.getUntrackedParameter("accMassMax")), - accMassMinDen_(pset.getUntrackedParameter("accMassMinDen")), - accMassMaxDen_(pset.getUntrackedParameter("accMassMaxDen")), - accEtaMin_(pset.getUntrackedParameter("accEtaMin")), - accEtaMax_(pset.getUntrackedParameter("accEtaMax")), - ptScale_(pset.getUntrackedParameter("ptScale")), - muPdgStatus_(pset.getUntrackedParameter("muPdgStatus")) { - cout << ">>> Z Histogrammer constructor" << endl; - Service fs; - TFileDirectory ZMCHisto = fs->mkdir("ZMCHisto"); - - h_mZMC_ = ZMCHisto.make("ZMCMass", "Z MC mass (GeV/c^{2})", nbinsMass_, 0, massMax_); - h_ptZMC_ = ZMCHisto.make("ZMCPt", "Z MC p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - hardpt = ZMCHisto.make("hardpt", "hard muon p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - softpt = ZMCHisto.make("softpt", "soft muon p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - - h_phiZMC_ = ZMCHisto.make("ZMCPhi", "Z MC #phi", nbinsAng_, -angMax_, angMax_); - h_thetaZMC_ = ZMCHisto.make("ZMCTheta", "Z MC #theta", nbinsAng_, 0, angMax_); - h_etaZMC_ = ZMCHisto.make("ZMCEta", "Z MC #eta", nbinsAng_, -angMax_, angMax_); - h_rapidityZMC_ = ZMCHisto.make("ZMCRapidity", "Z MC y", nbinsAng_, -angMax_, angMax_); - - hardeta = ZMCHisto.make("hard muon eta", "hard muon #eta", nbinsAng_, -angMax_, angMax_); - softeta = ZMCHisto.make("soft muon eta", "soft muon #eta", nbinsAng_, -angMax_, angMax_); - nAcc_ = 0; - nAccPtScaleP_ = 0; - nAccPtScaleN_ = 0; - nAccPtScaleSmearedFlat_ = 0; - nAccPtScaleSmearedGaus_ = 0; - nBothMuHasZHasGrandMa_ = 0; -} - -void ZMuPtScaleAnalyzer::analyze(const edm::Event& event, const edm::EventSetup& setup) { - cout << ">>> Z HistogrammerZLONLOHistogrammer.cc analyze" << endl; - - Handle gen; - Handle weights; - - event.getByToken(genToken_, gen); - - // get weight and fill it to histogram - - std::vector muons; - - double mZGen = -100; - - for (unsigned int i = 0; i < gen->size(); ++i) { - const GenParticle& muMC = (*gen)[i]; - // filliScaledPng only muons coming form Z - if (abs(muMC.pdgId()) == 13 && muMC.status() == muPdgStatus_ && muMC.numberOfMothers() > 0) { - cout << "I'm getting a muon \n" - << "with " - << "muMC.numberOfMothers() " << muMC.numberOfMothers() << "\n the first mother has pdgId " - << muMC.mother()->pdgId() << "with " - << "muMC.mother()->numberOfMothers() " << muMC.mother()->numberOfMothers() - << "\n the first grandma has pdgId " << muMC.mother()->mother()->pdgId() << endl; - cout << "with muMC.eta() " << muMC.eta() << endl; - muons.push_back(muMC); - } - // introducing here the gen mass cut...................... - /* - if (muPdgStatus_ ==1) { - mZGen = muMC.mother()->mother()->mass(); - if (muMC.mother()->mother()->pdgId() ==23 && mZGen>accMassMinDen_ && mZGenmass(); - if (muMC.mother()->pdgId() ==23 && mZGen>accMassMinDen_ && mZGen 1) { - mZGen = zMC.mass(); - cout << "I'm selecting a Z MC with mass " << mZGen << endl; - if (mZGen > accMassMinDen_ && mZGen < accMassMaxDen_) - h_mZMC_->Fill(mZGen); - } - } - - cout << "finally I selected " << muons.size() << " muons" << endl; - - // if there are at least two muons, - // calculate invarant mass of first two and fill it into histogram - - double inv_mass = 0.0; - double Zpt_ = 0.0; - double Zeta_ = 0.0; - double Ztheta_ = 0.0; - double Zphi_ = 0.0; - double Zrapidity_ = 0.0; - - if (muons.size() > 1) { - if (muons[0].mother()->mother()->pdgId() == 23 && muons[1].mother()->mother()->pdgId() == 23) - nBothMuHasZHasGrandMa_++; - math::XYZTLorentzVector tot_momentum(muons[0].p4()); - math::XYZTLorentzVector mom2(muons[1].p4()); - tot_momentum += mom2; - inv_mass = sqrt(tot_momentum.mass2()); - Zpt_ = tot_momentum.pt(); - Zeta_ = tot_momentum.eta(); - Ztheta_ = tot_momentum.theta(); - Zphi_ = tot_momentum.phi(); - Zrapidity_ = tot_momentum.Rapidity(); - - double weight_sign = 1.; - - //h_mZMC_->Fill(inv_mass); - h_ptZMC_->Fill(Zpt_, weight_sign); - h_etaZMC_->Fill(Zeta_, weight_sign); - h_thetaZMC_->Fill(Ztheta_, weight_sign); - h_phiZMC_->Fill(Zphi_, weight_sign); - h_rapidityZMC_->Fill(Zrapidity_, weight_sign); - - double pt1 = muons[0].pt(); - double pt2 = muons[1].pt(); - double eta1 = muons[0].eta(); - double eta2 = muons[1].eta(); - - if (pt1 > pt2) { - hardpt->Fill(pt1, weight_sign); - softpt->Fill(pt2, weight_sign); - hardeta->Fill(eta1, weight_sign); - softeta->Fill(eta2, weight_sign); - } else { - hardpt->Fill(pt2, weight_sign); - softpt->Fill(pt1, weight_sign); - hardeta->Fill(eta2, weight_sign); - softeta->Fill(eta1, weight_sign); - } - - //evaluating the geometric acceptance - if (pt1 >= accPtMin_ && pt2 >= accPtMin_ && fabs(eta1) >= accEtaMin_ && fabs(eta2) >= accEtaMin_ && - fabs(eta1) <= accEtaMax_ && fabs(eta2) <= accEtaMax_ && inv_mass >= accMassMin_ && inv_mass <= accMassMax_) - nAcc_++; - - cout << "pt1" << pt1 << endl; - - // scaling the muon pt - double pt1ScaledP = pt1 * (1. + ptScale_); - cout << "pt1 ScaledP of " << (1. + ptScale_) << endl; - cout << "pt1ScaledP" << pt1ScaledP << endl; - - double pt2ScaledP = pt2 * (1. + ptScale_); - - //evaluating the geometric acceptance - if (pt1ScaledP >= accPtMin_ && pt2ScaledP >= accPtMin_ && fabs(eta1) >= accEtaMin_ && fabs(eta2) >= accEtaMin_ && - fabs(eta1) <= accEtaMax_ && fabs(eta2) <= accEtaMax_ && inv_mass >= accMassMin_ && inv_mass <= accMassMax_) - nAccPtScaleP_++; - - // scaling the muon pt - double pt1ScaledN = pt1 * (1. - ptScale_); - double pt2ScaledN = pt2 * (1. - ptScale_); - - //evaluating the geometric acceptance - if (pt1ScaledN >= accPtMin_ && pt2ScaledN >= accPtMin_ && fabs(eta1) >= accEtaMin_ && fabs(eta2) >= accEtaMin_ && - fabs(eta1) <= accEtaMax_ && fabs(eta2) <= accEtaMax_ && inv_mass >= accMassMin_ && inv_mass <= accMassMax_) - nAccPtScaleN_++; - - // scaling the muon pt - TRandom3 f; - f.SetSeed(123456789); - double pt1SmearedFlat = pt1 * (1. + ptScale_ * f.Uniform()); - double pt2SmearedFlat = pt2 * (1. + ptScale_ * f.Uniform()); - - //evaluating the geometric acceptance - if (pt1SmearedFlat >= accPtMin_ && pt2SmearedFlat >= accPtMin_ && fabs(eta1) >= accEtaMin_ && - fabs(eta2) >= accEtaMin_ && fabs(eta1) <= accEtaMax_ && fabs(eta2) <= accEtaMax_ && inv_mass >= accMassMin_ && - inv_mass <= accMassMax_) - nAccPtScaleSmearedFlat_++; - - // scaling the muon pt - TRandom3 ff; - ff.SetSeed(123456789); - double pt1SmearedGaus = pt1 * (1. + ptScale_ * f.Gaus()); - double pt2SmearedGaus = pt2 * (1. + ptScale_ * f.Gaus()); - - //evaluating the geometric acceptance - if (pt1SmearedGaus >= accPtMin_ && pt2SmearedGaus >= accPtMin_ && fabs(eta1) >= accEtaMin_ && - fabs(eta2) >= accEtaMin_ && fabs(eta1) <= accEtaMax_ && fabs(eta2) <= accEtaMax_ && inv_mass >= accMassMin_ && - inv_mass <= accMassMax_) - nAccPtScaleSmearedGaus_++; - } -} - -void ZMuPtScaleAnalyzer::endJob() { - cout << " number of events accepted :" << nAcc_ << endl; - cout << " number of total events :" << h_mZMC_->GetEntries() << endl; - cout << " number of cases in which BothMuHasZHasGrandMa :" << nBothMuHasZHasGrandMa_ << endl; - cout << " number of events pt scaled positively accepted :" << nAccPtScaleP_ << endl; - - cout << " number of events pt scaled negatively accepted :" << nAccPtScaleN_ << endl; - - cout << " number of events pt scaled smeared flattely accepted :" << nAccPtScaleSmearedFlat_ << endl; - - cout << " number of events pt scaled smeared gaussianely accepted :" << nAccPtScaleSmearedGaus_ << endl; - - double eff = (double)nAcc_ / (double)h_mZMC_->GetEntries(); - double err = sqrt(eff * (1. - eff) / (double)h_mZMC_->GetEntries()); - cout << " geometric acceptance: " << eff << "+/-" << err << endl; - - double effScaledP = (double)nAccPtScaleP_ / (double)h_mZMC_->GetEntries(); - double errScaledP = sqrt(effScaledP * (1. - effScaledP) / (double)h_mZMC_->GetEntries()); - cout << " geometric acceptance when pt muon is positively scaled: " << effScaledP << "+/-" << errScaledP << endl; - - double effScaledN = (double)nAccPtScaleN_ / (double)h_mZMC_->GetEntries(); - double errScaledN = sqrt(effScaledN * (1. - effScaledN) / (double)h_mZMC_->GetEntries()); - cout << " geometric acceptance when pt muon is negatively scaled: " << effScaledN << "+/-" << errScaledN << endl; - - double effSmearedFlat = (double)nAccPtScaleSmearedFlat_ / (double)h_mZMC_->GetEntries(); - double errSmearedFlat = sqrt(effSmearedFlat * (1. - effSmearedFlat) / (double)h_mZMC_->GetEntries()); - cout << " geometric acceptance when pt muon is scaled with a flat smaering: " << effSmearedFlat << "+/-" - << errSmearedFlat << endl; - - double effSmearedGaus = (double)nAccPtScaleSmearedGaus_ / (double)h_mZMC_->GetEntries(); - double errSmearedGaus = sqrt(effSmearedGaus * (1. - effSmearedGaus) / (double)h_mZMC_->GetEntries()); - cout << " geometric acceptance when pt muon is scaled with a gaussian smearing: " << effSmearedGaus << "+/-" - << errSmearedGaus << endl; -} -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZMuPtScaleAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZToLLEdmNtupleDumper.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZToLLEdmNtupleDumper.cc deleted file mode 100644 index 00f88962db9db..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZToLLEdmNtupleDumper.cc +++ /dev/null @@ -1,724 +0,0 @@ -/* \class ZToLLEdmNtupleDumper - * - * \author Luca Lista, INFN - * - */ -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Provenance/interface/RunLumiEventNumber.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "DataFormats/Candidate/interface/Candidate.h" -//#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "FWCore/Utilities/interface/EDMException.h" -#include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h" - -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" - -#include - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; -//using namespace pat; - -class ZToLLEdmNtupleDumper : public edm::EDProducer { -public: - typedef math::XYZVector Vector; - ZToLLEdmNtupleDumper(const edm::ParameterSet &); - -private: - void produce(edm::Event &, const edm::EventSetup &) override; - std::vector zName_; - std::vector > zTokens_; - std::vector > zGenParticlesMatchTokens_; - edm::EDGetTokenT beamSpotToken_; - edm::EDGetTokenT primaryVerticesToken_; - - std::vector ptThreshold_, etEcalThreshold_, etHcalThreshold_, dRVetoTrk_, dRTrk_, dREcal_, dRHcal_, alpha_, - beta_; - std::vector relativeIsolation_; - std::vector hltPath_; - int counter; -}; - -template -double isolation(const T *t, - double ptThreshold, - double etEcalThreshold, - double etHcalThreshold, - double dRVetoTrk, - double dRTrk, - double dREcal, - double dRHcal, - double alpha, - double beta, - bool relativeIsolation) { - // on 34X: - const pat::IsoDeposit *trkIso = t->isoDeposit(pat::TrackIso); - // const pat::IsoDeposit * trkIso = t->trackerIsoDeposit(); - // on 34X - const pat::IsoDeposit *ecalIso = t->isoDeposit(pat::EcalIso); - // const pat::IsoDeposit * ecalIso = t->ecalIsoDeposit(); - // on 34X - const pat::IsoDeposit *hcalIso = t->isoDeposit(pat::HcalIso); - // const pat::IsoDeposit * hcalIso = t->hcalIsoDeposit(); - - Direction dir = Direction(t->eta(), t->phi()); - - pat::IsoDeposit::AbsVetos vetosTrk; - vetosTrk.push_back(new ConeVeto(dir, dRVetoTrk)); - vetosTrk.push_back(new ThresholdVeto(ptThreshold)); - - pat::IsoDeposit::AbsVetos vetosEcal; - vetosEcal.push_back(new ConeVeto(dir, 0.)); - vetosEcal.push_back(new ThresholdVeto(etEcalThreshold)); - - pat::IsoDeposit::AbsVetos vetosHcal; - vetosHcal.push_back(new ConeVeto(dir, 0.)); - vetosHcal.push_back(new ThresholdVeto(etHcalThreshold)); - - double isovalueTrk = (trkIso->sumWithin(dRTrk, vetosTrk)); - double isovalueEcal = (ecalIso->sumWithin(dREcal, vetosEcal)); - double isovalueHcal = (hcalIso->sumWithin(dRHcal, vetosHcal)); - - double iso = - alpha * (((1 + beta) / 2 * isovalueEcal) + ((1 - beta) / 2 * isovalueHcal)) + ((1 - alpha) * isovalueTrk); - if (relativeIsolation) - iso /= t->pt(); - return iso; -} - -double candIsolation(const reco::Candidate *c, - double ptThreshold, - double etEcalThreshold, - double etHcalThreshold, - double dRVetoTrk, - double dRTrk, - double dREcal, - double dRHcal, - double alpha, - double beta, - bool relativeIsolation) { - const pat::Muon *mu = dynamic_cast(c); - if (mu != nullptr) - return isolation(mu, - ptThreshold, - etEcalThreshold, - etHcalThreshold, - dRVetoTrk, - dRTrk, - dREcal, - dRHcal, - alpha, - beta, - relativeIsolation); - const pat::GenericParticle *trk = dynamic_cast(c); - if (trk != nullptr) - return isolation(trk, - ptThreshold, - etEcalThreshold, - etHcalThreshold, - dRVetoTrk, - dRTrk, - dREcal, - dRHcal, - alpha, - beta, - relativeIsolation); - throw edm::Exception(edm::errors::InvalidReference) - << "Candidate daughter #0 is neither pat::Muons nor pat::GenericParticle\n"; - return -1; -} - -ZToLLEdmNtupleDumper::ZToLLEdmNtupleDumper(const ParameterSet &cfg) { - string alias; - vector psets = cfg.getParameter >("zBlocks"); - for (std::vector::const_iterator i = psets.begin(); i != psets.end(); ++i) { - string zName = i->getParameter("zName"); - edm::EDGetTokenT zToken = consumes(i->getParameter("z")); - edm::EDGetTokenT zGenParticlesMatchToken = - consumes(i->getParameter("zGenParticlesMatch")); - beamSpotToken_ = consumes(i->getParameter("beamSpot")); - primaryVerticesToken_ = consumes(i->getParameter("primaryVertices")); - double ptThreshold = i->getParameter("ptThreshold"); - double etEcalThreshold = i->getParameter("etEcalThreshold"); - double etHcalThreshold = i->getParameter("etHcalThreshold"); - double dRVetoTrk = i->getParameter("deltaRVetoTrk"); - double dRTrk = i->getParameter("deltaRTrk"); - double dREcal = i->getParameter("deltaREcal"); - double dRHcal = i->getParameter("deltaRHcal"); - double alpha = i->getParameter("alpha"); - double beta = i->getParameter("beta"); - bool relativeIsolation = i->getParameter("relativeIsolation"); - string hltPath = i->getParameter("hltPath"); - zName_.push_back(zName); - zTokens_.push_back(zToken); - zGenParticlesMatchTokens_.push_back(zGenParticlesMatchToken); - ptThreshold_.push_back(ptThreshold); - etEcalThreshold_.push_back(etEcalThreshold); - etHcalThreshold_.push_back(etHcalThreshold); - dRVetoTrk_.push_back(dRVetoTrk); - dRTrk_.push_back(dRTrk); - dREcal_.push_back(dREcal); - dRHcal_.push_back(dRHcal); - alpha_.push_back(alpha); - beta_.push_back(beta); - relativeIsolation_.push_back(relativeIsolation); - hltPath_.push_back(hltPath); - produces >(alias = zName + "EventNumber").setBranchAlias(alias); - produces >(alias = zName + "RunNumber").setBranchAlias(alias); - produces >(alias = zName + "LumiBlock").setBranchAlias(alias); - produces >(alias = zName + "Mass").setBranchAlias(alias); - produces >(alias = zName + "MassSa").setBranchAlias(alias); - produces >(alias = zName + "Pt").setBranchAlias(alias); - produces >(alias = zName + "Eta").setBranchAlias(alias); - produces >(alias = zName + "Phi").setBranchAlias(alias); - produces >(alias = zName + "Y").setBranchAlias(alias); - produces >(alias = zName + "Dau1Pt").setBranchAlias(alias); - produces >(alias = zName + "Dau2Pt").setBranchAlias(alias); - produces >(alias = zName + "Dau1SaPt").setBranchAlias(alias); - produces >(alias = zName + "Dau2SaPt").setBranchAlias(alias); - produces >(alias = zName + "Dau1HLTBit").setBranchAlias(alias); - produces >(alias = zName + "Dau2HLTBit").setBranchAlias(alias); - produces >(alias = zName + "Dau1Q").setBranchAlias(alias); - produces >(alias = zName + "Dau2Q").setBranchAlias(alias); - produces >(alias = zName + "Dau1Eta").setBranchAlias(alias); - produces >(alias = zName + "Dau2Eta").setBranchAlias(alias); - produces >(alias = zName + "Dau1SaEta").setBranchAlias(alias); - produces >(alias = zName + "Dau2SaEta").setBranchAlias(alias); - produces >(alias = zName + "Dau1Phi").setBranchAlias(alias); - produces >(alias = zName + "Dau2Phi").setBranchAlias(alias); - produces >(alias = zName + "Dau1SaPhi").setBranchAlias(alias); - produces >(alias = zName + "Dau2SaPhi").setBranchAlias(alias); - produces >(alias = zName + "Dau1Iso").setBranchAlias(alias); - produces >(alias = zName + "Dau2Iso").setBranchAlias(alias); - produces >(alias = zName + "Dau1TrkIso").setBranchAlias(alias); - produces >(alias = zName + "Dau2TrkIso").setBranchAlias(alias); - produces >(alias = zName + "Dau1EcalIso").setBranchAlias(alias); - produces >(alias = zName + "Dau2EcalIso").setBranchAlias(alias); - produces >(alias = zName + "Dau1HcalIso").setBranchAlias(alias); - produces >(alias = zName + "Dau2HcalIso").setBranchAlias(alias); - produces >(alias = zName + "Dau1MuEnergyEm").setBranchAlias(alias); - produces >(alias = zName + "Dau1MuEnergyHad").setBranchAlias(alias); - produces >(alias = zName + "Dau2MuEnergyEm").setBranchAlias(alias); - produces >(alias = zName + "Dau2MuEnergyHad").setBranchAlias(alias); - - produces >(alias = zName + "VtxNormChi2").setBranchAlias(alias); - produces >(alias = zName + "Dau1NofHit").setBranchAlias(alias); - produces >(alias = zName + "Dau2NofHit").setBranchAlias(alias); - produces >(alias = zName + "Dau1NofHitTk").setBranchAlias(alias); - produces >(alias = zName + "Dau1NofHitSta").setBranchAlias(alias); - produces >(alias = zName + "Dau2NofHitTk").setBranchAlias(alias); - produces >(alias = zName + "Dau2NofHitSta").setBranchAlias(alias); - produces >(alias = zName + "Dau1NofMuChambers").setBranchAlias(alias); - produces >(alias = zName + "Dau2NofMuChambers").setBranchAlias(alias); - produces >(alias = zName + "Dau1NofMuMatches").setBranchAlias(alias); - produces >(alias = zName + "Dau2NofMuMatches").setBranchAlias(alias); - produces >(alias = zName + "Dau1Chi2").setBranchAlias(alias); - produces >(alias = zName + "Dau2Chi2").setBranchAlias(alias); - produces >(alias = zName + "Dau1TrkChi2").setBranchAlias(alias); - produces >(alias = zName + "Dau2TrkChi2").setBranchAlias(alias); - produces >(alias = zName + "Dau1dxyFromBS").setBranchAlias(alias); - produces >(alias = zName + "Dau2dxyFromBS").setBranchAlias(alias); - produces >(alias = zName + "Dau1dzFromBS").setBranchAlias(alias); - produces >(alias = zName + "Dau2dzFromBS").setBranchAlias(alias); - produces >(alias = zName + "Dau1dxyFromPV").setBranchAlias(alias); - produces >(alias = zName + "Dau2dxyFromPV").setBranchAlias(alias); - produces >(alias = zName + "Dau1dzFromPV").setBranchAlias(alias); - produces >(alias = zName + "Dau2dzFromPV").setBranchAlias(alias); - produces >(alias = zName + "TrueMass").setBranchAlias(alias); - produces >(alias = zName + "TruePt").setBranchAlias(alias); - produces >(alias = zName + "TrueEta").setBranchAlias(alias); - produces >(alias = zName + "TruePhi").setBranchAlias(alias); - produces >(alias = zName + "TrueY").setBranchAlias(alias); - } -} - -void ZToLLEdmNtupleDumper::produce(Event &evt, const EventSetup &) { - Handle beamSpotHandle; - if (!evt.getByToken(beamSpotToken_, beamSpotHandle)) { - std::cout << ">>> No beam spot found !!!" << std::endl; - } - Handle primaryVertices; // Collection of primary Vertices - if (!evt.getByToken(primaryVerticesToken_, primaryVertices)) { - std::cout << ">>> No primary verteces found !!!" << std::endl; - } - - unsigned int size = zTokens_.size(); - for (unsigned int c = 0; c < size; ++c) { - Handle zColl; - evt.getByToken(zTokens_[c], zColl); - bool isMCMatchTrue = false; - //if (zGenParticlesMatchTokens_[c] != "") isMCMatchTrue = true; - Handle zGenParticlesMatch; - if (evt.getByToken(zGenParticlesMatchTokens_[c], zGenParticlesMatch)) { - isMCMatchTrue = true; - } - unsigned int zSize = zColl->size(); - unique_ptr > event(new vector); - unique_ptr > run(new vector); - unique_ptr > lumi(new vector); - unique_ptr > zMass(new vector); - unique_ptr > zMassSa(new vector); - unique_ptr > zPt(new vector); - unique_ptr > zEta(new vector); - unique_ptr > zPhi(new vector); - unique_ptr > zY(new vector); - unique_ptr > zDau1Pt(new vector); - unique_ptr > zDau2Pt(new vector); - unique_ptr > zDau1SaPt(new vector); - unique_ptr > zDau2SaPt(new vector); - unique_ptr > zDau1HLTBit(new vector); - unique_ptr > zDau2HLTBit(new vector); - unique_ptr > zDau1Q(new vector); - unique_ptr > zDau2Q(new vector); - unique_ptr > zDau1Eta(new vector); - unique_ptr > zDau2Eta(new vector); - unique_ptr > zDau1SaEta(new vector); - unique_ptr > zDau2SaEta(new vector); - unique_ptr > zDau1Phi(new vector); - unique_ptr > zDau2Phi(new vector); - unique_ptr > zDau1SaPhi(new vector); - unique_ptr > zDau2SaPhi(new vector); - unique_ptr > zDau1Iso(new vector); - unique_ptr > zDau2Iso(new vector); - unique_ptr > zDau1TrkIso(new vector); - unique_ptr > zDau2TrkIso(new vector); - unique_ptr > zDau1EcalIso(new vector); - unique_ptr > zDau2EcalIso(new vector); - unique_ptr > zDau1HcalIso(new vector); - unique_ptr > zDau2HcalIso(new vector); - unique_ptr > zDau1MuEnergyEm(new vector); - unique_ptr > zDau2MuEnergyEm(new vector); - unique_ptr > zDau1MuEnergyHad(new vector); - unique_ptr > zDau2MuEnergyHad(new vector); - unique_ptr > vtxNormChi2(new vector); - unique_ptr > zDau1NofHit(new vector); - unique_ptr > zDau2NofHit(new vector); - unique_ptr > zDau1NofHitTk(new vector); - unique_ptr > zDau2NofHitTk(new vector); - unique_ptr > zDau1NofHitSta(new vector); - unique_ptr > zDau2NofHitSta(new vector); - unique_ptr > zDau1NofMuChambers(new vector); - unique_ptr > zDau2NofMuChambers(new vector); - unique_ptr > zDau1NofMuMatches(new vector); - unique_ptr > zDau2NofMuMatches(new vector); - unique_ptr > zDau1Chi2(new vector); - unique_ptr > zDau2Chi2(new vector); - unique_ptr > zDau1TrkChi2(new vector); - unique_ptr > zDau2TrkChi2(new vector); - unique_ptr > zDau1dxyFromBS(new vector); - unique_ptr > zDau2dxyFromBS(new vector); - unique_ptr > zDau1dzFromBS(new vector); - unique_ptr > zDau2dzFromBS(new vector); - unique_ptr > zDau1dxyFromPV(new vector); - unique_ptr > zDau2dxyFromPV(new vector); - unique_ptr > zDau1dzFromPV(new vector); - unique_ptr > zDau2dzFromPV(new vector); - unique_ptr > trueZMass(new vector); - unique_ptr > trueZPt(new vector); - unique_ptr > trueZEta(new vector); - unique_ptr > trueZPhi(new vector); - unique_ptr > trueZY(new vector); - event->push_back(evt.id().event()); - run->push_back(evt.id().run()); - lumi->push_back(evt.luminosityBlock()); - for (unsigned int i = 0; i < zSize; ++i) { - const Candidate &z = (*zColl)[i]; - CandidateBaseRef zRef = zColl->refAt(i); - zMass->push_back(z.mass()); - zPt->push_back(z.pt()); - zEta->push_back(z.eta()); - zPhi->push_back(z.phi()); - zY->push_back(z.rapidity()); - vtxNormChi2->push_back(z.vertexNormalizedChi2()); - const Candidate *dau1 = z.daughter(0); - const Candidate *dau2 = z.daughter(1); - zDau1Pt->push_back(dau1->pt()); - zDau2Pt->push_back(dau2->pt()); - zDau1Q->push_back(dau1->charge()); - zDau2Q->push_back(dau2->charge()); - zDau1Eta->push_back(dau1->eta()); - zDau2Eta->push_back(dau2->eta()); - zDau1Phi->push_back(dau1->phi()); - zDau2Phi->push_back(dau2->phi()); - if (!(dau1->hasMasterClone() && dau2->hasMasterClone())) - throw edm::Exception(edm::errors::InvalidReference) << "Candidate daughters have no master clone\n"; - const CandidateBaseRef &mr1 = dau1->masterClone(), &mr2 = dau2->masterClone(); - - const Candidate *m1 = &*mr1, *m2 = &*mr2; - - // isolation as defined by us into the analyzer - double iso1 = candIsolation(m1, - ptThreshold_[c], - etEcalThreshold_[c], - etHcalThreshold_[c], - dRVetoTrk_[c], - dRTrk_[c], - dREcal_[c], - dRHcal_[c], - alpha_[c], - beta_[c], - relativeIsolation_[c]); - double iso2 = candIsolation(m2, - ptThreshold_[c], - etEcalThreshold_[c], - etHcalThreshold_[c], - dRVetoTrk_[c], - dRTrk_[c], - dREcal_[c], - dRHcal_[c], - alpha_[c], - beta_[c], - relativeIsolation_[c]); - // tracker isolation : alpha =0 - double trkIso1 = candIsolation(m1, - ptThreshold_[c], - etEcalThreshold_[c], - etHcalThreshold_[c], - dRVetoTrk_[c], - dRTrk_[c], - dREcal_[c], - dRHcal_[c], - 0.0, - beta_[c], - relativeIsolation_[c]); - double trkIso2 = candIsolation(m2, - ptThreshold_[c], - etEcalThreshold_[c], - etHcalThreshold_[c], - dRVetoTrk_[c], - dRTrk_[c], - dREcal_[c], - dRHcal_[c], - 0.0, - beta_[c], - relativeIsolation_[c]); - // ecal isolation : alpha =1, beta =1 - double ecalIso1 = candIsolation(m1, - ptThreshold_[c], - etEcalThreshold_[c], - etHcalThreshold_[c], - dRVetoTrk_[c], - dRTrk_[c], - dREcal_[c], - dRHcal_[c], - 1.0, - 1.0, - relativeIsolation_[c]); - double ecalIso2 = candIsolation(m2, - ptThreshold_[c], - etEcalThreshold_[c], - etHcalThreshold_[c], - dRVetoTrk_[c], - dRTrk_[c], - dREcal_[c], - dRHcal_[c], - 1.0, - 1.0, - relativeIsolation_[c]); - // hcal isolation : alpha =1, beta =-1 - double hcalIso1 = candIsolation(m1, - ptThreshold_[c], - etEcalThreshold_[c], - etHcalThreshold_[c], - dRVetoTrk_[c], - dRTrk_[c], - dREcal_[c], - dRHcal_[c], - 1.0, - -1.0, - relativeIsolation_[c]); - double hcalIso2 = candIsolation(m2, - ptThreshold_[c], - etEcalThreshold_[c], - etHcalThreshold_[c], - dRVetoTrk_[c], - dRTrk_[c], - dREcal_[c], - dRHcal_[c], - 1.0, - -1.0, - relativeIsolation_[c]); - - zDau1Iso->push_back(iso1); - zDau2Iso->push_back(iso2); - zDau1TrkIso->push_back(trkIso1); - zDau2TrkIso->push_back(trkIso2); - zDau1EcalIso->push_back(ecalIso1); - zDau2EcalIso->push_back(ecalIso2); - zDau1HcalIso->push_back(hcalIso1); - zDau2HcalIso->push_back(hcalIso2); - if (isMCMatchTrue) { - GenParticleRef trueZRef = (*zGenParticlesMatch)[zRef]; - //CandidateRef trueZRef = trueZIter->val; - if (trueZRef.isNonnull()) { - const Candidate &z = *trueZRef; - trueZMass->push_back(z.mass()); - trueZPt->push_back(z.pt()); - trueZEta->push_back(z.eta()); - trueZPhi->push_back(z.phi()); - trueZY->push_back(z.rapidity()); - } else { - trueZMass->push_back(-100); - trueZPt->push_back(-100); - trueZEta->push_back(-100); - trueZPhi->push_back(-100); - trueZY->push_back(-100); - } - } - // quality variables - const pat::Muon *mu1 = dynamic_cast(m1); - // protection for standalone and trackerMuon - if (mu1->isGlobalMuon() == true) { - zDau1NofHit->push_back(mu1->numberOfValidHits()); - zDau1NofHitTk->push_back(mu1->innerTrack()->numberOfValidHits()); - zDau1NofHitSta->push_back(mu1->outerTrack()->numberOfValidHits()); - zDau1Chi2->push_back(mu1->normChi2()); - TrackRef mu1TrkRef = mu1->innerTrack(); - zDau1TrkChi2->push_back(mu1TrkRef->normalizedChi2()); - zDau1dxyFromBS->push_back(mu1TrkRef->dxy(beamSpotHandle->position())); - zDau1dzFromBS->push_back(mu1TrkRef->dz(beamSpotHandle->position())); - zDau1dxyFromPV->push_back(mu1TrkRef->dxy(primaryVertices->begin()->position())); - zDau1dzFromPV->push_back(mu1TrkRef->dz(primaryVertices->begin()->position())); - zDau1MuEnergyEm->push_back(mu1->calEnergy().em); - zDau1MuEnergyHad->push_back(mu1->calEnergy().had); - - } else if (mu1->isStandAloneMuon() == true) { - // the muon is a standalone - TrackRef mu1StaRef = mu1->outerTrack(); - zDau1NofHit->push_back(mu1StaRef->numberOfValidHits()); - zDau1NofHitTk->push_back(0); - zDau1NofHitSta->push_back(mu1StaRef->numberOfValidHits()); - zDau1Chi2->push_back(mu1StaRef->normalizedChi2()); - zDau1TrkChi2->push_back(0); - zDau1dxyFromBS->push_back(mu1StaRef->dxy(beamSpotHandle->position())); - zDau1dzFromBS->push_back(mu1StaRef->dz(beamSpotHandle->position())); - zDau1dxyFromPV->push_back(mu1StaRef->dxy(primaryVertices->begin()->position())); - zDau1dzFromPV->push_back(mu1StaRef->dz(primaryVertices->begin()->position())); - zDau1MuEnergyEm->push_back(-1); - zDau1MuEnergyHad->push_back(-1); - } else if (mu1->isTrackerMuon() == true) { - // the muon is a trackerMuon - TrackRef mu1TrkRef = mu1->innerTrack(); - zDau1NofHit->push_back(mu1TrkRef->numberOfValidHits()); - zDau1NofHitTk->push_back(mu1TrkRef->numberOfValidHits()); - zDau1NofHitSta->push_back(0); - zDau1Chi2->push_back(mu1TrkRef->normalizedChi2()); - zDau1TrkChi2->push_back(mu1TrkRef->normalizedChi2()); - zDau1dxyFromBS->push_back(mu1TrkRef->dxy(beamSpotHandle->position())); - zDau1dzFromBS->push_back(mu1TrkRef->dz(beamSpotHandle->position())); - zDau1dxyFromPV->push_back(mu1TrkRef->dxy(primaryVertices->begin()->position())); - zDau1dzFromPV->push_back(mu1TrkRef->dz(primaryVertices->begin()->position())); - zDau1MuEnergyEm->push_back(mu1->calEnergy().em); - zDau1MuEnergyHad->push_back(mu1->calEnergy().had); - } - zDau1NofMuChambers->push_back(mu1->numberOfChambers()); - zDau1NofMuMatches->push_back(mu1->numberOfMatches()); - - // would we like to add another variables??? - // HLT trigger bit - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = mu1->triggerObjectMatchesByPath(hltPath_[c]); - - int dimTrig1 = mu1HLTMatches.size(); - if (dimTrig1 != 0) { - zDau1HLTBit->push_back(1); - } else { - zDau1HLTBit->push_back(0); - } - const pat::Muon *mu2 = dynamic_cast(m2); - if (mu2 != nullptr) { - if (mu2->isGlobalMuon() == true) { - zDau2NofHit->push_back(mu2->numberOfValidHits()); - zDau2NofHitTk->push_back(mu2->innerTrack()->numberOfValidHits()); - zDau2NofHitSta->push_back(mu2->outerTrack()->numberOfValidHits()); - zDau2Chi2->push_back(mu2->normChi2()); - TrackRef mu2TrkRef = mu2->innerTrack(); - zDau1TrkChi2->push_back(mu2TrkRef->normalizedChi2()); - zDau2dxyFromBS->push_back(mu2TrkRef->dxy(beamSpotHandle->position())); - zDau2dzFromBS->push_back(mu2TrkRef->dz(beamSpotHandle->position())); - zDau2dxyFromPV->push_back(mu2TrkRef->dxy(primaryVertices->begin()->position())); - zDau2dzFromPV->push_back(mu2TrkRef->dz(primaryVertices->begin()->position())); - zDau2MuEnergyEm->push_back(mu2->calEnergy().em); - zDau2MuEnergyHad->push_back(mu2->calEnergy().had); - } else if (mu2->isStandAloneMuon() == true) { - // its' a standalone - zDau2HLTBit->push_back(0); - TrackRef mu2StaRef = mu2->outerTrack(); - zDau2NofHit->push_back(mu2StaRef->numberOfValidHits()); - zDau2NofHitTk->push_back(0); - zDau2NofHitSta->push_back(mu2StaRef->numberOfValidHits()); - zDau2Chi2->push_back(mu2StaRef->normalizedChi2()); - zDau2TrkChi2->push_back(0); - zDau2dxyFromBS->push_back(mu2StaRef->dxy(beamSpotHandle->position())); - zDau2dzFromBS->push_back(mu2StaRef->dz(beamSpotHandle->position())); - zDau2dxyFromPV->push_back(mu2StaRef->dxy(primaryVertices->begin()->position())); - zDau2dzFromPV->push_back(mu2StaRef->dz(primaryVertices->begin()->position())); - zDau1MuEnergyEm->push_back(-1); - zDau1MuEnergyHad->push_back(-1); - } else if (mu2->isTrackerMuon() == true) { - // the muon is a trackerMuon - TrackRef mu2TrkRef = mu2->innerTrack(); - zDau2NofHit->push_back(mu2TrkRef->numberOfValidHits()); - zDau2NofHitSta->push_back(0); - zDau2NofHitTk->push_back(mu2TrkRef->numberOfValidHits()); - zDau2Chi2->push_back(mu2TrkRef->normalizedChi2()); - zDau2TrkChi2->push_back(mu2TrkRef->normalizedChi2()); - zDau2dxyFromBS->push_back(mu2TrkRef->dxy(beamSpotHandle->position())); - zDau2dzFromBS->push_back(mu2TrkRef->dz(beamSpotHandle->position())); - zDau2dxyFromPV->push_back(mu2TrkRef->dxy(primaryVertices->begin()->position())); - zDau2dzFromPV->push_back(mu2TrkRef->dz(primaryVertices->begin()->position())); - zDau2MuEnergyEm->push_back(mu2->calEnergy().em); - zDau2MuEnergyHad->push_back(mu2->calEnergy().had); - } - - // HLT trigger bit - const pat::TriggerObjectStandAloneCollection mu2HLTMatches = mu2->triggerObjectMatchesByPath(hltPath_[c]); - int dimTrig2 = mu2HLTMatches.size(); - if (dimTrig2 != 0) { - zDau2HLTBit->push_back(1); - } else { - zDau2HLTBit->push_back(0); - } - /// only for ZGolden evaluated zMassSa for the mu+sta pdf, see zmumuSaMassHistogram.cc - if (mu1->isGlobalMuon() && mu2->isGlobalMuon()) { - TrackRef stAloneTrack1; - TrackRef stAloneTrack2; - Vector momentum; - Candidate::PolarLorentzVector p4_1; - double mu_mass; - stAloneTrack1 = dau1->get(); - stAloneTrack2 = dau2->get(); - zDau1SaEta->push_back(stAloneTrack1->eta()); - zDau2SaEta->push_back(stAloneTrack2->eta()); - zDau1SaPhi->push_back(stAloneTrack1->phi()); - zDau2SaPhi->push_back(stAloneTrack2->phi()); - if (counter % 2 == 0) { - momentum = stAloneTrack1->momentum(); - p4_1 = dau2->polarP4(); - mu_mass = dau1->mass(); - /// I fill the dau1 with positive and dau2 with negatove values for the pt, in order to flag the muons used for building zMassSa - zDau1SaPt->push_back(stAloneTrack1->pt()); - zDau2SaPt->push_back(-stAloneTrack2->pt()); - } else { - momentum = stAloneTrack2->momentum(); - p4_1 = dau1->polarP4(); - mu_mass = dau2->mass(); - /// I fill the dau1 with negatove and dau2 with positive values for the pt - zDau1SaPt->push_back(-stAloneTrack1->pt()); - zDau2SaPt->push_back(stAloneTrack2->pt()); - } - - Candidate::PolarLorentzVector p4_2(momentum.rho(), momentum.eta(), momentum.phi(), mu_mass); - double mass = (p4_1 + p4_2).mass(); - zMassSa->push_back(mass); - ++counter; - } - - zDau2NofMuChambers->push_back(mu2->numberOfChambers()); - zDau2NofMuMatches->push_back(mu2->numberOfMatches()); - } else { - // for ZMuTk case... - // it's a track...... - const pat::GenericParticle *trk2 = dynamic_cast(m2); - TrackRef mu2TrkRef = trk2->track(); - zDau2NofHit->push_back(mu2TrkRef->numberOfValidHits()); - zDau2NofHitTk->push_back(mu2TrkRef->numberOfValidHits()); - zDau2NofHitSta->push_back(0); - zDau2NofMuChambers->push_back(0); - zDau2NofMuMatches->push_back(0); - zDau2Chi2->push_back(mu2TrkRef->normalizedChi2()); - zDau2dxyFromBS->push_back(mu2TrkRef->dxy(beamSpotHandle->position())); - zDau2dzFromBS->push_back(mu2TrkRef->dz(beamSpotHandle->position())); - zDau2dxyFromPV->push_back(mu2TrkRef->dxy(primaryVertices->begin()->position())); - zDau2dzFromPV->push_back(mu2TrkRef->dz(primaryVertices->begin()->position())); - zDau1MuEnergyEm->push_back(-1); - zDau1MuEnergyHad->push_back(-1); - } - } - const string &zName = zName_[c]; - evt.put(std::move(event), zName + "EventNumber"); - evt.put(std::move(run), zName + "RunNumber"); - evt.put(std::move(lumi), zName + "LumiBlock"); - evt.put(std::move(zMass), zName + "Mass"); - evt.put(std::move(zMassSa), zName + "MassSa"); - evt.put(std::move(zPt), zName + "Pt"); - evt.put(std::move(zEta), zName + "Eta"); - evt.put(std::move(zPhi), zName + "Phi"); - evt.put(std::move(zY), zName + "Y"); - evt.put(std::move(zDau1Pt), zName + "Dau1Pt"); - evt.put(std::move(zDau2Pt), zName + "Dau2Pt"); - evt.put(std::move(zDau1SaPt), zName + "Dau1SaPt"); - evt.put(std::move(zDau2SaPt), zName + "Dau2SaPt"); - evt.put(std::move(zDau1HLTBit), zName + "Dau1HLTBit"); - evt.put(std::move(zDau2HLTBit), zName + "Dau2HLTBit"); - evt.put(std::move(zDau1Q), zName + "Dau1Q"); - evt.put(std::move(zDau2Q), zName + "Dau2Q"); - evt.put(std::move(zDau1Eta), zName + "Dau1Eta"); - evt.put(std::move(zDau2Eta), zName + "Dau2Eta"); - evt.put(std::move(zDau1SaEta), zName + "Dau1SaEta"); - evt.put(std::move(zDau2SaEta), zName + "Dau2SaEta"); - evt.put(std::move(zDau1Phi), zName + "Dau1Phi"); - evt.put(std::move(zDau2Phi), zName + "Dau2Phi"); - evt.put(std::move(zDau1SaPhi), zName + "Dau1SaPhi"); - evt.put(std::move(zDau2SaPhi), zName + "Dau2SaPhi"); - evt.put(std::move(zDau1Iso), zName + "Dau1Iso"); - evt.put(std::move(zDau2Iso), zName + "Dau2Iso"); - evt.put(std::move(zDau1TrkIso), zName + "Dau1TrkIso"); - evt.put(std::move(zDau2TrkIso), zName + "Dau2TrkIso"); - evt.put(std::move(zDau1EcalIso), zName + "Dau1EcalIso"); - evt.put(std::move(zDau2EcalIso), zName + "Dau2EcalIso"); - evt.put(std::move(zDau1HcalIso), zName + "Dau1HcalIso"); - evt.put(std::move(zDau2HcalIso), zName + "Dau2HcalIso"); - evt.put(std::move(zDau1MuEnergyEm), zName + "Dau1MuEnergyEm"); - evt.put(std::move(zDau2MuEnergyEm), zName + "Dau2MuEnergyEm"); - evt.put(std::move(zDau1MuEnergyHad), zName + "Dau1MuEnergyHad"); - evt.put(std::move(zDau2MuEnergyHad), zName + "Dau2MuEnergyHad"); - evt.put(std::move(vtxNormChi2), zName + "VtxNormChi2"); - evt.put(std::move(zDau1NofHit), zName + "Dau1NofHit"); - evt.put(std::move(zDau2NofHit), zName + "Dau2NofHit"); - evt.put(std::move(zDau1NofHitTk), zName + "Dau1NofHitTk"); - evt.put(std::move(zDau2NofHitTk), zName + "Dau2NofHitTk"); - evt.put(std::move(zDau1NofHitSta), zName + "Dau1NofHitSta"); - evt.put(std::move(zDau2NofHitSta), zName + "Dau2NofHitSta"); - evt.put(std::move(zDau1NofMuChambers), zName + "Dau1NofMuChambers"); - evt.put(std::move(zDau1NofMuMatches), zName + "Dau1NofMuMatches"); - evt.put(std::move(zDau2NofMuChambers), zName + "Dau2NofMuChambers"); - evt.put(std::move(zDau2NofMuMatches), zName + "Dau2NofMuMatches"); - evt.put(std::move(zDau1Chi2), zName + "Dau1Chi2"); - evt.put(std::move(zDau2Chi2), zName + "Dau2Chi2"); - evt.put(std::move(zDau1TrkChi2), zName + "Dau1TrkChi2"); - evt.put(std::move(zDau2TrkChi2), zName + "Dau2TrkChi2"); - evt.put(std::move(zDau1dxyFromBS), zName + "Dau1dxyFromBS"); - evt.put(std::move(zDau2dxyFromBS), zName + "Dau2dxyFromBS"); - evt.put(std::move(zDau1dxyFromPV), zName + "Dau1dxyFromPV"); - evt.put(std::move(zDau2dxyFromPV), zName + "Dau2dxyFromPV"); - evt.put(std::move(zDau1dzFromBS), zName + "Dau1dzFromBS"); - evt.put(std::move(zDau2dzFromBS), zName + "Dau2dzFromBS"); - evt.put(std::move(zDau1dzFromPV), zName + "Dau1dzFromPV"); - evt.put(std::move(zDau2dzFromPV), zName + "Dau2dzFromPV"); - evt.put(std::move(trueZMass), zName + "TrueMass"); - evt.put(std::move(trueZPt), zName + "TruePt"); - evt.put(std::move(trueZEta), zName + "TrueEta"); - evt.put(std::move(trueZPhi), zName + "TruePhi"); - evt.put(std::move(trueZY), zName + "TrueY"); - } -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZToLLEdmNtupleDumper); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuFilter.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuFilter.cc deleted file mode 100644 index b1b261d033e55..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuFilter.cc +++ /dev/null @@ -1,82 +0,0 @@ -/* \class ZToMuMuFilter - * - * \author Juan Alcaraz, CIEMAT - * - */ -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandAssociation.h" - -class ZToMuMuFilter : public edm::EDFilter { -public: - ZToMuMuFilter(const edm::ParameterSet &); - -private: - bool filter(edm::Event &, const edm::EventSetup &) override; - edm::EDGetTokenT zCandsToken_; - edm::EDGetTokenT muIso1Token_; - edm::EDGetTokenT muIso2Token_; - double ptMin_, etaMin_, etaMax_, massMin_, massMax_, isoMax_; -}; - -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -using namespace edm; -using namespace std; -using namespace reco; - -ZToMuMuFilter::ZToMuMuFilter(const ParameterSet &cfg) - : zCandsToken_(consumes(cfg.getParameter("zCands"))), - muIso1Token_(consumes(cfg.getParameter("muonIsolations1"))), - muIso2Token_(consumes(cfg.getParameter("muonIsolations2"))), - ptMin_(cfg.getParameter("ptMin")), - etaMin_(cfg.getParameter("etaMin")), - etaMax_(cfg.getParameter("etaMax")), - massMin_(cfg.getParameter("massMin")), - massMax_(cfg.getParameter("massMax")), - isoMax_(cfg.getParameter("isoMax")) {} - -bool ZToMuMuFilter::filter(Event &ev, const EventSetup &) { - Handle zCands; - ev.getByToken(zCandsToken_, zCands); - Handle muIso1; - ev.getByToken(muIso1Token_, muIso1); - Handle muIso2; - ev.getByToken(muIso2Token_, muIso2); - unsigned int nZ = zCands->size(); - if (nZ == 0) - return false; - for (unsigned int i = 0; i < nZ; ++i) { - const Candidate &zCand = (*zCands)[i]; - double zMass = zCand.mass(); - if (zMass < massMin_ || zMass > massMax_) - return false; - if (zCand.numberOfDaughters() != 2) - return false; - const Candidate *dau0 = zCand.daughter(0); - const Candidate *dau1 = zCand.daughter(1); - double pt0 = dau0->pt(), pt1 = dau1->pt(); - if (pt0 < ptMin_ || pt1 < ptMin_) - return false; - double eta0 = dau0->eta(), eta1 = dau1->eta(); - if (eta0 < etaMin_ || eta0 > etaMax_) - return false; - if (eta1 < etaMin_ || eta1 > etaMax_) - return false; - CandidateRef mu0 = dau0->masterClone().castTo(); - CandidateRef mu1 = dau1->masterClone().castTo(); - double iso0 = (*muIso1)[mu0]; - double iso1 = (*muIso2)[mu1]; - if (iso0 > isoMax_) - return false; - if (iso1 > isoMax_) - return false; - } - return true; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZToMuMuFilter); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuIsoDepositSelector.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuIsoDepositSelector.cc deleted file mode 100644 index adc57070abef2..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuIsoDepositSelector.cc +++ /dev/null @@ -1,162 +0,0 @@ -/* \class ZToMuMuIsolationSelector - * - * \author Luca Lista, INFN - * - */ - -struct IsolatedSelector { - IsolatedSelector(double cut) : cut_(cut) {} - bool operator()(double i1, double i2) const { return i1 < cut_ && i2 < cut_; } - double cut() const { return cut_; } - -private: - double cut_; -}; - -struct NonIsolatedSelector { - NonIsolatedSelector(double cut) : isolated_(cut) {} - bool operator()(double i1, double i2) const { return !isolated_(i1, i2); } - double cut() const { return isolated_.cut(); } - -private: - IsolatedSelector isolated_; -}; - -struct OneNonIsolatedSelector { - OneNonIsolatedSelector(double cut) : cut_(cut) {} - bool operator()(double i1, double i2) const { return (i1 < cut_ && i2 >= cut_) || (i1 >= cut_ && i2 < cut_); } - double cut() const { return cut_; } - -private: - double cut_; -}; - -struct TwoNonIsolatedSelector { - TwoNonIsolatedSelector(double cut) : cut_(cut) {} - bool operator()(double i1, double i2) const { return i1 >= cut_ && i2 >= cut_; } - double cut() const { return cut_; } - -private: - double cut_; -}; - -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "FWCore/Utilities/interface/EDMException.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" - -using namespace reco; -using namespace isodeposit; - -template -class ZToMuMuIsoDepositSelector { -public: - ZToMuMuIsoDepositSelector(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC) - : isolator_(cfg.template getParameter("isoCut")), - ptThreshold(cfg.getUntrackedParameter("ptThreshold")), - etEcalThreshold(cfg.getUntrackedParameter("etEcalThreshold")), - etHcalThreshold(cfg.getUntrackedParameter("etHcalThreshold")), - dRVetoTrk(cfg.getUntrackedParameter("deltaRVetoTrk")), - dRTrk(cfg.getUntrackedParameter("deltaRTrk")), - dREcal(cfg.getUntrackedParameter("deltaREcal")), - dRHcal(cfg.getUntrackedParameter("deltaRHcal")), - alpha(cfg.getUntrackedParameter("alpha")), - beta(cfg.getUntrackedParameter("beta")), - relativeIsolation(cfg.template getParameter("relativeIsolation")) {} - - template - double isolation(const T* t) const { - const pat::IsoDeposit* trkIso = t->isoDeposit(pat::TrackIso); - const pat::IsoDeposit* ecalIso = t->isoDeposit(pat::EcalIso); - const pat::IsoDeposit* hcalIso = t->isoDeposit(pat::HcalIso); - - Direction dir = Direction(t->eta(), t->phi()); - - IsoDeposit::AbsVetos vetosTrk; - vetosTrk.push_back(new ConeVeto(dir, dRVetoTrk)); - vetosTrk.push_back(new ThresholdVeto(ptThreshold)); - - IsoDeposit::AbsVetos vetosEcal; - vetosEcal.push_back(new ConeVeto(dir, 0.)); - vetosEcal.push_back(new ThresholdVeto(etEcalThreshold)); - - IsoDeposit::AbsVetos vetosHcal; - vetosHcal.push_back(new ConeVeto(dir, 0.)); - vetosHcal.push_back(new ThresholdVeto(etHcalThreshold)); - - double isovalueTrk = (trkIso->sumWithin(dRTrk, vetosTrk)); - double isovalueEcal = (ecalIso->sumWithin(dREcal, vetosEcal)); - double isovalueHcal = (hcalIso->sumWithin(dRHcal, vetosHcal)); - - double iso = - alpha * (((1 + beta) / 2 * isovalueEcal) + ((1 - beta) / 2 * isovalueHcal)) + ((1 - alpha) * isovalueTrk); - if (relativeIsolation) - iso /= t->pt(); - return iso; - } - - double candIsolation(const reco::Candidate* c) const { - const pat::Muon* mu = dynamic_cast(c); - if (mu != nullptr) - return isolation(mu); - const pat::GenericParticle* trk = dynamic_cast(c); - if (trk != nullptr) - return isolation(trk); - throw edm::Exception(edm::errors::InvalidReference) - << "Candidate daughter #0 is neither pat::Muons nor pat::GenericParticle\n"; - return -1; - } - bool operator()(const reco::Candidate& z) const { - if (z.numberOfDaughters() != 2) - throw edm::Exception(edm::errors::InvalidReference) - << "Candidate has " << z.numberOfDaughters() << " daughters, 2 expected\n"; - const reco::Candidate* dau0 = z.daughter(0); - const reco::Candidate* dau1 = z.daughter(1); - if (!(dau0->hasMasterClone() && dau1->hasMasterClone())) - throw edm::Exception(edm::errors::InvalidReference) << "Candidate daughters have no master clone\n"; - const reco::Candidate *m0 = &*dau0->masterClone(), *m1 = &*dau1->masterClone(); - return isolator_(candIsolation(m0), candIsolation(m1)); - } - -private: - Isolator isolator_; - double ptThreshold, etEcalThreshold, etHcalThreshold, dRVetoTrk, dRTrk, dREcal, dRHcal, alpha, beta; - bool relativeIsolation; -}; - -#include "CommonTools/UtilAlgos/interface/SingleObjectSelector.h" -#include "CommonTools/UtilAlgos/interface/AndSelector.h" -#include "CommonTools/UtilAlgos/interface/StringCutObjectSelector.h" - -typedef SingleObjectSelector< - reco::CandidateView, - AndSelector, StringCutObjectSelector > > - ZToMuMuIsolatedIDSelector; - -typedef SingleObjectSelector< - reco::CandidateView, - AndSelector, StringCutObjectSelector > > - ZToMuMuNonIsolatedIDSelector; - -typedef SingleObjectSelector< - reco::CandidateView, - AndSelector, StringCutObjectSelector > > - ZToMuMuOneNonIsolatedIDSelector; - -typedef SingleObjectSelector< - reco::CandidateView, - AndSelector, StringCutObjectSelector > > - ZToMuMuTwoNonIsolatedIDSelector; - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZToMuMuIsolatedIDSelector); -DEFINE_FWK_MODULE(ZToMuMuNonIsolatedIDSelector); -DEFINE_FWK_MODULE(ZToMuMuOneNonIsolatedIDSelector); -DEFINE_FWK_MODULE(ZToMuMuTwoNonIsolatedIDSelector); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuIsolationSelector.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuIsolationSelector.cc deleted file mode 100644 index 22f4bad6d92b9..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuIsolationSelector.cc +++ /dev/null @@ -1,157 +0,0 @@ -/* \class ZToMuMuIsolationSelector - * - * \author Luca Lista, INFN - * - */ - -struct IsolatedSelector { - IsolatedSelector(double cut) : cut_(cut) {} - bool operator()(double i1, double i2) const { return i1 < cut_ && i2 < cut_; } - double cut() const { return cut_; } - -private: - double cut_; -}; - -struct NonIsolatedSelector { - NonIsolatedSelector(double cut) : isolated_(cut) {} - bool operator()(double i1, double i2) const { return !isolated_(i1, i2); } - double cut() const { return isolated_.cut(); } - -private: - IsolatedSelector isolated_; -}; - -struct OneNonIsolatedSelector { - OneNonIsolatedSelector(double cut) : cut_(cut) {} - bool operator()(double i1, double i2) const { return (i1 < cut_ && i2 >= cut_) || (i1 >= cut_ && i2 < cut_); } - double cut() const { return cut_; } - -private: - double cut_; -}; - -struct TwoNonIsolatedSelector { - TwoNonIsolatedSelector(double cut) : cut_(cut) {} - bool operator()(double i1, double i2) const { return i1 >= cut_ && i2 >= cut_; } - double cut() const { return cut_; } - -private: - double cut_; -}; - -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "FWCore/Utilities/interface/EDMException.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -template -class ZToMuMuIsolationSelector { -public: - ZToMuMuIsolationSelector(const edm::ParameterSet &cfg, edm::ConsumesCollector &iC) - : isolator_(cfg.template getParameter("isoCut")) { - std::string iso = cfg.template getParameter("isolationType"); - if (iso == "track") { - leptonIsolation_ = &pat::Lepton::trackIso; - trackIsolation_ = &pat::GenericParticle::trackIso; - } else if (iso == "ecal") { - leptonIsolation_ = &pat::Lepton::ecalIso; - trackIsolation_ = &pat::GenericParticle::ecalIso; - } else if (iso == "hcal") { - leptonIsolation_ = &pat::Lepton::hcalIso; - trackIsolation_ = &pat::GenericParticle::hcalIso; - } else if (iso == "calo") { - leptonIsolation_ = &pat::Lepton::caloIso; - trackIsolation_ = &pat::GenericParticle::caloIso; - } else - throw edm::Exception(edm::errors::Configuration) << "Invalid isolation type: " << iso << ". Valid types are:" - << "'track', 'ecal', 'hcal', 'calo'\n"; - } - bool operator()(const reco::Candidate &z) const { - if (z.numberOfDaughters() != 2) - throw edm::Exception(edm::errors::InvalidReference) - << "Candidate has " << z.numberOfDaughters() << " daughters, 2 expected\n"; - const reco::Candidate *dau0 = z.daughter(0); - const reco::Candidate *dau1 = z.daughter(1); - if (!(dau0->hasMasterClone() && dau1->hasMasterClone())) - throw edm::Exception(edm::errors::InvalidReference) << "Candidate daughters have no master clone\n"; - const reco::Candidate *m0 = &*dau0->masterClone(), *m1 = &*dau1->masterClone(); - double iso0 = -1, iso1 = -1; - const pat::Muon *mu0 = dynamic_cast(m0); - if (mu0 != nullptr) { - iso0 = ((*mu0).*(leptonIsolation_))(); - } else { - const pat::GenericParticle *trk0 = dynamic_cast(m0); - if (trk0 != nullptr) { - iso0 = ((*trk0).*(trackIsolation_))(); - } else { - throw edm::Exception(edm::errors::InvalidReference) - << "Candidate daughter #0 is neither pat::Muons nor pat::GenericParticle\n"; - } - } - const pat::Muon *mu1 = dynamic_cast(m1); - if (mu1 != nullptr) { - iso1 = ((*mu1).*(leptonIsolation_))(); - } else { - const pat::GenericParticle *trk1 = dynamic_cast(m1); - if (trk1 != nullptr) { - iso1 = ((*trk1).*(trackIsolation_))(); - } else { - throw edm::Exception(edm::errors::InvalidReference) - << "Candidate daughter #1 is neither pat::Muons nor pat::GenericParticle\n"; - } - } - bool pass = isolator_(iso0, iso1); - return pass; - } - -private: - typedef float (pat::Lepton::*LeptonIsolationType)() const; - typedef float (pat::GenericParticle::*TrackIsolationType)() const; - LeptonIsolationType leptonIsolation_; - TrackIsolationType trackIsolation_; - Isolator isolator_; -}; - -namespace dummy { - void Isolationdummy() { - pat::Lepton pat; - //ignore return values - pat.trackIso(); - pat.ecalIso(); - pat.hcalIso(); - pat.caloIso(); - } -} // namespace dummy - -#include "CommonTools/UtilAlgos/interface/SingleObjectSelector.h" -#include "CommonTools/UtilAlgos/interface/AndSelector.h" -#include "CommonTools/UtilAlgos/interface/StringCutObjectSelector.h" - -typedef SingleObjectSelector< - reco::CandidateView, - AndSelector, StringCutObjectSelector > > - ZToMuMuIsolatedSelector; - -typedef SingleObjectSelector< - reco::CandidateView, - AndSelector, StringCutObjectSelector > > - ZToMuMuNonIsolatedSelector; - -typedef SingleObjectSelector< - reco::CandidateView, - AndSelector, StringCutObjectSelector > > - ZToMuMuOneNonIsolatedSelector; - -typedef SingleObjectSelector< - reco::CandidateView, - AndSelector, StringCutObjectSelector > > - ZToMuMuTwoNonIsolatedSelector; - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZToMuMuIsolatedSelector); -DEFINE_FWK_MODULE(ZToMuMuNonIsolatedSelector); -DEFINE_FWK_MODULE(ZToMuMuOneNonIsolatedSelector); -DEFINE_FWK_MODULE(ZToMuMuTwoNonIsolatedSelector); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuSelector.cc b/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuSelector.cc deleted file mode 100644 index 94d7a6855edee..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/ZToMuMuSelector.cc +++ /dev/null @@ -1,189 +0,0 @@ -/* \class ZToMuMuSelector - * - * \author Juan Alcaraz, CIEMAT - * - */ -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" - -class ZToMuMuSelector : public edm::EDFilter { -public: - ZToMuMuSelector(const edm::ParameterSet &); - bool filter(edm::Event &, const edm::EventSetup &) override; - -private: - edm::EDGetTokenT muonToken_; - edm::EDGetTokenT > isoToken_; - double ptCut_; - double etaCut_; - double massZMin_; - double massZMax_; - - bool onlyGlobalMuons_; - edm::EDGetTokenT trackerToken_; - edm::EDGetTokenT > isoTrackerToken_; - int minTrackerHits_; -}; - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -using namespace edm; -using namespace std; -using namespace reco; - -ZToMuMuSelector::ZToMuMuSelector(const ParameterSet &cfg) - : muonToken_(consumes(cfg.getParameter("MuonTag"))), - isoToken_(consumes >(cfg.getParameter("IsolationTag"))), - ptCut_(cfg.getParameter("PtCut")), - etaCut_(cfg.getParameter("EtaCut")), - massZMin_(cfg.getParameter("MassZMin")), - massZMax_(cfg.getParameter("MassZMax")), - - onlyGlobalMuons_(cfg.getParameter("OnlyGlobalMuons")), - trackerToken_(mayConsume( - cfg.getUntrackedParameter("TrackerTag", edm::InputTag("ctfWithMaterialTracks")))), - isoTrackerToken_(mayConsume >( - cfg.getUntrackedParameter("TrackerIsolationTag", edm::InputTag("zMuMuTrackerIsolations")))), - minTrackerHits_(cfg.getUntrackedParameter("MinTrackerHits", 7)) {} - -bool ZToMuMuSelector::filter(Event &ev, const EventSetup &) { - Handle muonCollection; - ev.getByToken(muonToken_, muonCollection); - if (!muonCollection.isValid()) { - LogTrace("") << ">>> Muon collection does not exist !!!"; - return false; - } - - Handle > isoMap; - ev.getByToken(isoToken_, isoMap); - if (!isoMap.isValid()) { - LogTrace("") << ">>> ISO Muon collection does not exist !!!"; - return false; - } - - Handle trackerCollection; - Handle > isoTrackerMap; - if (!onlyGlobalMuons_) { - ev.getByToken(trackerToken_, trackerCollection); - if (!trackerCollection.isValid()) { - LogTrace("") << ">>> Tracker collection does not exist !!!"; - return false; - } - - ev.getByToken(isoTrackerToken_, isoTrackerMap); - if (!isoTrackerMap.isValid()) { - LogTrace("") << ">>> ISO Tracker collection does not exist !!!"; - return false; - } - } - - unsigned int npairs = 0; - bool globalCombinationFound = false; - for (unsigned int i = 0; i < muonCollection->size(); i++) { - TrackRef mu(muonCollection, i); - LogTrace("") << "> Processing muon number " << i << "..."; - double pt = mu->pt(); - LogTrace("") << "\t... pt= " << pt << " GeV"; - if (pt < ptCut_) - continue; - double eta = mu->eta(); - LogTrace("") << "\t... eta= " << eta; - if (fabs(eta) > etaCut_) - continue; - bool iso = (*isoMap)[mu]; - LogTrace("") << "\t... isolated? " << iso; - if (!iso) - continue; - - for (unsigned int j = i + 1; j < muonCollection->size(); j++) { - TrackRef mu2(muonCollection, j); - LogTrace("") << "> Processing second muon number " << j << "..."; - double pt2 = mu2->pt(); - LogTrace("") << "\t... pt2= " << pt2 << " GeV"; - if (pt2 < ptCut_) - continue; - double eta2 = mu2->eta(); - LogTrace("") << "\t... eta2= " << eta2; - if (fabs(eta2) > etaCut_) - continue; - bool iso2 = (*isoMap)[mu2]; - LogTrace("") << "\t... isolated2? " << iso2; - if (!iso2) - continue; - - double z_en = mu->p() + mu2->p(); - double z_px = mu->px() + mu2->px(); - double z_py = mu->py() + mu2->py(); - double z_pz = mu->pz() + mu2->pz(); - double massZ = z_en * z_en - z_px * z_px - z_py * z_py - z_pz * z_pz; - massZ = (massZ > 0) ? sqrt(massZ) : 0; - LogTrace("") << "\t... Z_en, Z_px, Z_py, Z_pz= " << z_en << ", " << z_px << ", " << z_py << ", " << z_pz - << " GeV"; - LogTrace("") << "\t... (GM-GM) Invariant reconstructed mass= " << massZ << " GeV"; - if (massZ < massZMin_) - continue; - if (massZ > massZMax_) - continue; - globalCombinationFound = true; - npairs++; - } - - if (onlyGlobalMuons_ || globalCombinationFound) - continue; - - for (unsigned int j = 0; j < trackerCollection->size(); j++) { - TrackRef mu2(trackerCollection, j); - LogTrace("") << "> Processing track number " << j << "..."; - double pt2 = mu2->pt(); - LogTrace("") << "\t... pt3= " << pt2 << " GeV"; - if (pt2 < ptCut_) - continue; - double eta2 = mu2->eta(); - LogTrace("") << "\t... eta3= " << eta2; - if (fabs(eta2) > etaCut_) - continue; - int nhits2 = mu2->numberOfValidHits(); - LogTrace("") << "\t... nhits3= " << nhits2; - if (nhits2 < minTrackerHits_) - continue; - bool iso2 = (*isoTrackerMap)[mu2]; - LogTrace("") << "\t... isolated3? " << iso2; - if (!iso2) - continue; - - double z_en = mu->p() + mu2->p(); - double z_px = mu->px() + mu2->px(); - double z_py = mu->py() + mu2->py(); - double z_pz = mu->pz() + mu2->pz(); - double massZ = z_en * z_en - z_px * z_px - z_py * z_py - z_pz * z_pz; - massZ = (massZ > 0) ? sqrt(massZ) : 0; - LogTrace("") << "\t... Z_en, Z_px, Z_py, Z_pz= " << z_en << ", " << z_px << ", " << z_py << ", " << z_pz - << " GeV"; - LogTrace("") << "\t... (GM-TK) Invariant reconstructed mass= " << massZ << " GeV"; - if (massZ < massZMin_) - continue; - if (massZ > massZMax_) - continue; - npairs++; - } - } - - LogTrace("") << "> Number of Z pairs found= " << npairs; - if (npairs < 1) { - LogTrace("") << ">>>> Event REJECTED"; - return false; - } - LogTrace("") << ">>>> Event SELECTED!!!"; - - return true; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(ZToMuMuSelector); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/dimuonHLTFilterCheck.cc b/ElectroWeakAnalysis/ZMuMu/plugins/dimuonHLTFilterCheck.cc deleted file mode 100644 index f168e85063021..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/dimuonHLTFilterCheck.cc +++ /dev/null @@ -1,308 +0,0 @@ -/* \class dimuonHLTFilterCheck - * - * author: Davide Piccolo - * - * check HLTFilter for dimuon studies: - * - */ - -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/Math/interface/deltaR.h" - -// access trigger results -#include "FWCore/Common/interface/TriggerNames.h" -#include -#include -#include - -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include -#include -#include -using namespace edm; -using namespace std; -using namespace reco; -using namespace trigger; - -class dimuonHLTFilterCheck : public edm::EDAnalyzer { -public: - dimuonHLTFilterCheck(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - vector nDimuonsByType(const Handle d); - vector nMuonsByType(const Handle d); - void endJob() override; - EDGetTokenT triggerResultsToken; - EDGetTokenT tracksToken; - EDGetTokenT muonToken; - EDGetTokenT anyDimuonToken; - - // general histograms - - // global counters - int counterMatrix[5][5]; -}; - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/Candidate/interface/CandAssociation.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include -#include -#include - -dimuonHLTFilterCheck::dimuonHLTFilterCheck(const ParameterSet& pset) - : // trigger results - triggerResultsToken(consumes(pset.getParameter("triggerResults"))), - tracksToken(consumes(pset.getParameter("tracks"))), - muonToken(consumes(pset.getParameter("muons"))), - anyDimuonToken(consumes(pset.getParameter("anyDimuon"))) { - Service fs; - - // general histograms - - // general counters - for (int i = 0; i < 5; i++) { - for (int j = 0; j < 5; j++) { - counterMatrix[i][j] = 0; - } - } -} - -void dimuonHLTFilterCheck::analyze(const Event& event, const EventSetup& setup) { - Handle triggerResults; // trigger response - Handle anyDimuon; // any dimuon pair - Handle tracks; // any track - Handle muons; // any muon - - event.getByToken(triggerResultsToken, triggerResults); - event.getByToken(anyDimuonToken, anyDimuon); - event.getByToken(tracksToken, tracks); - event.getByToken(muonToken, muons); - - const edm::TriggerNames& triggerNames = event.triggerNames(*triggerResults); - - // map of MU triggers of interest - map dimuonHLT_triggers; - dimuonHLT_triggers.insert(make_pair("HLT1MuonPrescalePt3", 0)); - dimuonHLT_triggers.insert(make_pair("HLT1MuonPrescalePt7x7", 1)); - dimuonHLT_triggers.insert(make_pair("HLT1MuonIso", 2)); - dimuonHLT_triggers.insert(make_pair("HLT1MuonNonIso15", 3)); - dimuonHLT_triggers.insert(make_pair("HLT2MuonNonIso", 4)); - // map of JET triggers of interest - map jetHLT_triggers; - jetHLT_triggers.insert(make_pair("HLT1jetPE5", 0)); - jetHLT_triggers.insert(make_pair("HLT1jetPE3", 1)); - jetHLT_triggers.insert(make_pair("HLT1jetPE1", 2)); - jetHLT_triggers.insert(make_pair("candHLT1jetPE7", 3)); - - bool trgMask[5]; - for (int i = 0; i < 5; i++) - trgMask[i] = false; - - // table of possible dimuons - string dimuonTableNames[10]; - dimuonTableNames[0] = "global-global"; - dimuonTableNames[1] = "global-trackerSta"; - dimuonTableNames[2] = "global-sta"; - dimuonTableNames[3] = "global-tracker"; - dimuonTableNames[4] = "trackerSta-trackerSta"; - dimuonTableNames[5] = "trackerSta-sta"; - dimuonTableNames[6] = "trackerSta-tracker"; - dimuonTableNames[7] = "sta-sta"; - dimuonTableNames[8] = "sta-tracker"; - dimuonTableNames[9] = "tracker-tracker"; - // table of possible muons - string muonTableNames[10]; - muonTableNames[0] = "global"; - muonTableNames[1] = "trackerSta"; - muonTableNames[2] = "sta"; - muonTableNames[3] = "tracker"; - - cout << "-------------------NEW event---------------------------" << endl; - // check the dimuon reconstruction - vector dimuonTable; - dimuonTable = nDimuonsByType(anyDimuon); - // check the muon reconstruction - vector muonTable; - muonTable = nMuonsByType(muons); - - if (triggerResults.product()->wasrun()) { - // cout << "at least one path out of " << triggerResults.product()->size() << " ran? " << triggerResults.product()->wasrun() << endl; - - if (triggerResults.product()->accept()) { - // cout << endl << "at least one path accepted? " << triggerResults.product()->accept() << endl; - - const unsigned int n_TriggerResults(triggerResults.product()->size()); - for (unsigned int itrig(0); itrig < n_TriggerResults; ++itrig) { - if (triggerResults.product()->accept(itrig)) { - map::iterator iterMuHLT = dimuonHLT_triggers.find(triggerNames.triggerName(itrig)); - if (iterMuHLT != dimuonHLT_triggers.end()) { - cout << "ecco la chiave Mu HLT " << (*iterMuHLT).second << endl; - if (triggerResults.product()->state(itrig) == 1) - trgMask[(*iterMuHLT).second] = true; - } // end if key found - map::iterator iterjetHLT = jetHLT_triggers.find(triggerNames.triggerName(itrig)); - if (iterjetHLT != jetHLT_triggers.end()) { - cout << "ecco la chiave jet HLT " << (*iterjetHLT).second << endl; - } // end if key found - - } // end if trigger accepted - } // end loop on triggerResults - } // end if at least one triggerResult accepted - } // end if wasRun - if (muonTable[0] > 1) { - for (unsigned int i = 0; i < muons->size(); ++i) { //loop on candidates - const Candidate& muCand = (*muons)[i]; //the candidate - CandidateBaseRef muCandRef = muons->refAt(i); - TrackRef muStaComponentRef = muCand.get(); // standalone part of muon - TrackRef muTrkComponentRef = muCand.get(); // track part of muon - if (muCandRef->isGlobalMuon()) { - cout << "muCand : " << i << " pt " << muCandRef->pt() << " eta " << muCandRef->eta() << endl; - cout << "muCandStaComponent : " << i << " pt " << muStaComponentRef->pt() << " eta " - << muStaComponentRef->eta() << endl; - } - } - } - - // fill counterMatrix - for (int i = 0; i < 5; i++) { - for (int j = 0; j < 5; j++) { - if (trgMask[i] && trgMask[j]) - counterMatrix[i][j]++; - } - } -} // end analyze - -vector dimuonHLTFilterCheck::nDimuonsByType(const Handle d) { - vector n_; - int nCat = - 10; // number of dimuon categories (0 = glb-glb, 1 = glb-trkSta, 2 = glb-sta, 3 = glb-trk, 4 = trkSta-trkSta, 5 = trkSta-sta, 6 = trkSta-trk, 7 = sta-sta, 8 = sta-trk, 9 trk-trk) - // reset vector - n_.reserve(nCat); - for (int i = 0; i < nCat; i++) - n_.push_back(0); - for (unsigned int i = 0; i < d->size(); ++i) { //loop on candidates - // const Candidate & dCand = (*d)[i]; //the candidate - bool mu0global = false; - bool mu0trackerSta = false; - bool mu0sta = false; - bool mu0tracker = false; - bool mu1global = false; - bool mu1trackerSta = false; - bool mu1sta = false; - bool mu1tracker = false; - CandidateBaseRef dCandRef = d->refAt(i); - const Candidate* mu0 = dCandRef->daughter(0); - const Candidate* mu1 = dCandRef->daughter(1); - if (mu0->isGlobalMuon()) - mu0global = true; - if (!mu0->isGlobalMuon() && mu0->isStandAloneMuon() && mu0->isTrackerMuon()) - mu0trackerSta = true; - if (!mu0->isGlobalMuon() && mu0->isStandAloneMuon() && !mu0->isTrackerMuon()) - mu0sta = true; - if (!mu0->isGlobalMuon() && !mu0->isStandAloneMuon() && mu0->isTrackerMuon()) - mu0tracker = true; - if (mu1->isGlobalMuon()) - mu1global = true; - if (!mu1->isGlobalMuon() && mu1->isStandAloneMuon() && mu1->isTrackerMuon()) - mu1trackerSta = true; - if (!mu1->isGlobalMuon() && mu1->isStandAloneMuon() && !mu1->isTrackerMuon()) - mu1sta = true; - if (!mu1->isGlobalMuon() && !mu1->isStandAloneMuon() && mu1->isTrackerMuon()) - mu1tracker = true; - - if (mu0global && mu1global) - n_[0]++; - if ((mu0global && mu1trackerSta) || (mu1global && mu0trackerSta)) - n_[1]++; - if ((mu0global && mu1sta) || (mu1global && mu0sta)) - n_[2]++; - if ((mu0global && mu1tracker) || (mu1global && mu0tracker)) - n_[3]++; - if (mu0trackerSta && mu1trackerSta) - n_[4]++; - if ((mu0trackerSta && mu1sta) || (mu1trackerSta && mu0sta)) - n_[5]++; - if ((mu0trackerSta && mu1tracker) || (mu1trackerSta && mu0tracker)) - n_[6]++; - if (mu0sta && mu1sta) - n_[7]++; - if ((mu0sta && mu1tracker) || (mu1sta && mu0tracker)) - n_[8]++; - if (mu0tracker && mu1tracker) - n_[9]++; - } - return n_; -} - -vector dimuonHLTFilterCheck::nMuonsByType(const Handle d) { - vector n_; - int nCat = 4; // number of muon categories (0 = glb, 1 = trkSta, 2 = sta, 3 = trk) - // reset vector - n_.reserve(nCat); - for (int i = 0; i < nCat; i++) - n_.push_back(0); - for (unsigned int i = 0; i < d->size(); ++i) { //loop on candidates - // const Candidate & dCand = (*d)[i]; //the candidate - bool muglobal = false; - bool mutrackerSta = false; - bool musta = false; - bool mutracker = false; - CandidateBaseRef muCandRef = d->refAt(i); - if (muCandRef->isGlobalMuon()) - muglobal = true; - if (!muCandRef->isGlobalMuon() && muCandRef->isStandAloneMuon() && muCandRef->isTrackerMuon()) - mutrackerSta = true; - if (!muCandRef->isGlobalMuon() && muCandRef->isStandAloneMuon() && !muCandRef->isTrackerMuon()) - musta = true; - if (!muCandRef->isGlobalMuon() && !muCandRef->isStandAloneMuon() && muCandRef->isTrackerMuon()) - mutracker = true; - cout << "muglobal " << muglobal << " mutrackserSta " << mutrackerSta << " must " << musta << " mutracker " - << mutracker << endl; - if (muglobal) - n_[0]++; - if (mutrackerSta) - n_[1]++; - if (musta) - n_[2]++; - if (mutracker) - n_[3]++; - } - return n_; -} - -void dimuonHLTFilterCheck::endJob() { - cout << "------------------------------------ Counters --------------------------------" << endl; - for (int i = 0; i < 5; i++) { - cout << "trg " << i << ": "; - for (int j = 0; j < 5; j++) { - cout << counterMatrix[i][j] << " "; - } - cout << endl; - } -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(dimuonHLTFilterCheck); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/gamma_radiative_analysis.cc b/ElectroWeakAnalysis/ZMuMu/plugins/gamma_radiative_analysis.cc deleted file mode 100644 index 05b30219eaf0f..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/gamma_radiative_analysis.cc +++ /dev/null @@ -1,319 +0,0 @@ -/* \class gamma_radiative_analyzer - * - * author: Pasquale Noli - * - * Gamma Radiative analyzer - * - * - */ -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/RecoCandidate/interface/RecoCandidate.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/Candidate/interface/OverlapChecker.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/Lepton.h" -#include "DataFormats/PatCandidates/interface/GenericParticle.h" -#include "DataFormats/PatCandidates/interface/PATObject.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h" -#include "DataFormats/RecoCandidate/interface/IsoDeposit.h" -#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h" -#include "DataFormats/PatCandidates/interface/Isolation.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/Candidate/interface/CandAssociation.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include -#include -#include -#include -#include "TH1.h" -#include "TH2.h" -//#include "TH3.h" - -using namespace edm; -using namespace std; -using namespace reco; -using namespace isodeposit; - -typedef edm::ValueMap IsolationCollection; - -class gamma_radiative_analyzer : public edm::EDAnalyzer { -public: - gamma_radiative_analyzer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - - EDGetTokenT zMuMuToken_; - EDGetTokenT zMuMuMatchMapToken_; - EDGetTokenT zMuTkToken_; - EDGetTokenT zMuTkMatchMapToken_; - EDGetTokenT zMuSaToken_; - EDGetTokenT zMuSaMatchMapToken_; - double dRVeto_, dRTrk_, ptThreshold_; - //histograms - TH2D *h_gamma_pt_eta_, *h_mu_pt_eta_FSR_, *h_mu_pt_eta_no_FSR_; - - //boolean - bool FSR_mu, FSR_tk, FSR_mu0, FSR_mu1; - - //counter - int zmmcounter, zmscounter, zmtcounter, numOfEvent, numofGamma; -}; - -gamma_radiative_analyzer::gamma_radiative_analyzer(const ParameterSet& pset) - : zMuMuToken_(consumes(pset.getParameter("zMuMu"))), - zMuMuMatchMapToken_(mayConsume(pset.getParameter("zMuMuMatchMap"))), - zMuTkToken_(consumes(pset.getParameter("zMuTk"))), - zMuTkMatchMapToken_(mayConsume(pset.getParameter("zMuTkMatchMap"))), - zMuSaToken_(consumes(pset.getParameter("zMuSa"))), - zMuSaMatchMapToken_(mayConsume(pset.getParameter("zMuSaMatchMap"))) { - zmmcounter = 0; - zmscounter = 0; - zmtcounter = 0; - numOfEvent = 0; - numofGamma = 0; - Service fs; - - // general histograms - h_gamma_pt_eta_ = fs->make("h_gamma_pt_eta", "pt vs eta of gamma", 100, 20, 100, 100, -2.0, 2.0); - h_mu_pt_eta_FSR_ = fs->make("h_mu_pt_eta_FSR", "pt vs eta of muon with FSR", 100, 20, 100, 100, -2.0, 2.0); - h_mu_pt_eta_no_FSR_ = - fs->make("h_mu_pt_eta_no_FSR", "pt vs eta of of muon withot FSR", 100, 20, 100, 100, -2.0, 2.0); -} - -void gamma_radiative_analyzer::analyze(const Event& event, const EventSetup& setup) { - Handle zMuMu; //Collection of Z made by Mu global + Mu global - Handle zMuMuMatchMap; //Map of Z made by Mu global + Mu global with MC - event.getByToken(zMuMuToken_, zMuMu); - Handle zMuTk; //Collection of Z made by Mu global + Track - Handle zMuTkMatchMap; - event.getByToken(zMuTkToken_, zMuTk); - Handle zMuSa; //Collection of Z made by Mu global + Sa - Handle zMuSaMatchMap; - event.getByToken(zMuSaToken_, zMuSa); - numOfEvent++; - // ZMuMu - if (!zMuMu->empty()) { - event.getByToken(zMuMuMatchMapToken_, zMuMuMatchMap); - for (unsigned int i = 0; i < zMuMu->size(); ++i) { //loop on candidates - - const Candidate& zMuMuCand = (*zMuMu)[i]; //the candidate - CandidateBaseRef zMuMuCandRef = zMuMu->refAt(i); - - CandidateBaseRef dau0 = zMuMuCand.daughter(0)->masterClone(); - CandidateBaseRef dau1 = zMuMuCand.daughter(1)->masterClone(); - const pat::Muon& mu0 = dynamic_cast(*dau0); //cast in patMuon - const pat::Muon& mu1 = dynamic_cast(*dau1); - - double zmass = zMuMuCand.mass(); - double pt0 = mu0.pt(); - double pt1 = mu1.pt(); - double eta0 = mu0.eta(); - double eta1 = mu1.eta(); - if (pt0 > 20 && pt1 > 20 && abs(eta0) < 2 && abs(eta1) < 2 && zmass > 20 && zmass < 200) { - GenParticleRef zMuMuMatch = (*zMuMuMatchMap)[zMuMuCandRef]; - if (zMuMuMatch.isNonnull()) { // ZMuMu matched - zmmcounter++; - FSR_mu0 = false; - FSR_mu1 = false; - - //MonteCarlo Study - const reco::GenParticle* muMc0 = mu0.genLepton(); - const reco::GenParticle* muMc1 = mu1.genLepton(); - const Candidate* motherMu0 = muMc0->mother(); - const Candidate* motherMu1 = muMc1->mother(); - int num_dau_muon0 = motherMu0->numberOfDaughters(); - int num_dau_muon1 = motherMu1->numberOfDaughters(); - if (num_dau_muon0 > 1) { - for (int j = 0; j < num_dau_muon0; ++j) { - int id = motherMu0->daughter(j)->pdgId(); - if (id == 22) { - double etaG = motherMu0->daughter(j)->eta(); - double ptG = motherMu0->daughter(j)->pt(); - h_gamma_pt_eta_->Fill(ptG, etaG); - h_mu_pt_eta_FSR_->Fill(pt0, eta0); - FSR_mu0 = true; - numofGamma++; - } - } - } //end check of gamma - if (!FSR_mu0) - h_mu_pt_eta_no_FSR_->Fill(pt0, eta0); - if (num_dau_muon1 > 1) { - for (int j = 0; j < num_dau_muon1; ++j) { - int id = motherMu1->daughter(j)->pdgId(); - if (id == 22) { - double etaG = motherMu1->daughter(j)->eta(); - double ptG = motherMu1->daughter(j)->pt(); - h_gamma_pt_eta_->Fill(ptG, etaG); - h_mu_pt_eta_FSR_->Fill(pt1, eta1); - FSR_mu1 = true; - numofGamma++; - } - } - } //end check of gamma - if (!FSR_mu1) - h_mu_pt_eta_no_FSR_->Fill(pt1, eta1); - } // end MC match - } //end of cuts - } // end loop on ZMuMu cand - } // end if ZMuMu size > 0 - - // ZMuSa - if (!zMuSa->empty()) { - event.getByToken(zMuSaMatchMapToken_, zMuSaMatchMap); - for (unsigned int i = 0; i < zMuSa->size(); ++i) { //loop on candidates - - const Candidate& zMuSaCand = (*zMuSa)[i]; //the candidate - CandidateBaseRef zMuSaCandRef = zMuSa->refAt(i); - - CandidateBaseRef dau0 = zMuSaCand.daughter(0)->masterClone(); - CandidateBaseRef dau1 = zMuSaCand.daughter(1)->masterClone(); - const pat::Muon& mu0 = dynamic_cast(*dau0); //cast in patMuon - const pat::Muon& mu1 = dynamic_cast(*dau1); - - double zmass = zMuSaCand.mass(); - double pt0 = mu0.pt(); - double pt1 = mu1.pt(); - double eta0 = mu0.eta(); - double eta1 = mu1.eta(); - if (pt0 > 20 && pt1 > 20 && abs(eta0) < 2 && abs(eta1) < 2 && zmass > 20 && zmass < 200) { - GenParticleRef zMuSaMatch = (*zMuSaMatchMap)[zMuSaCandRef]; - if (zMuSaMatch.isNonnull()) { // ZMuSa matched - FSR_mu0 = false; - FSR_mu1 = false; - zmscounter++; - //MonteCarlo Study - const reco::GenParticle* muMc0 = mu0.genLepton(); - const reco::GenParticle* muMc1 = mu1.genLepton(); - const Candidate* motherMu0 = muMc0->mother(); - const Candidate* motherMu1 = muMc1->mother(); - int num_dau_muon0 = motherMu0->numberOfDaughters(); - int num_dau_muon1 = motherMu1->numberOfDaughters(); - if (num_dau_muon0 > 1) { - for (int j = 0; j < num_dau_muon0; ++j) { - int id = motherMu0->daughter(j)->pdgId(); - if (id == 22) { - double etaG = motherMu0->daughter(j)->eta(); - double ptG = motherMu0->daughter(j)->pt(); - h_gamma_pt_eta_->Fill(ptG, etaG); - h_mu_pt_eta_FSR_->Fill(pt0, eta0); - numofGamma++; - FSR_mu0 = true; - } - } - } //end check of gamma - if (!FSR_mu0) - h_mu_pt_eta_no_FSR_->Fill(pt0, eta0); - if (num_dau_muon1 > 1) { - for (int j = 0; j < num_dau_muon1; ++j) { - int id = motherMu1->daughter(j)->pdgId(); - if (id == 22) { - double etaG = motherMu1->daughter(j)->eta(); - double ptG = motherMu1->daughter(j)->pt(); - h_gamma_pt_eta_->Fill(ptG, etaG); - h_mu_pt_eta_FSR_->Fill(pt1, eta1); - numofGamma++; - FSR_mu1 = true; - } - } - } //end check of gamma - if (!FSR_mu1) - h_mu_pt_eta_no_FSR_->Fill(pt1, eta1); - } // end MC match - } //end of cuts - } // end loop on ZMuSa cand - } // end if ZMuSa size > 0 - - //ZMuTk - if (!zMuTk->empty()) { - event.getByToken(zMuTkMatchMapToken_, zMuTkMatchMap); - for (unsigned int i = 0; i < zMuTk->size(); ++i) { //loop on candidates - const Candidate& zMuTkCand = (*zMuTk)[i]; //the candidate - CandidateBaseRef zMuTkCandRef = zMuTk->refAt(i); - - CandidateBaseRef dau0 = zMuTkCand.daughter(0)->masterClone(); - CandidateBaseRef dau1 = zMuTkCand.daughter(1)->masterClone(); - const pat::Muon& mu0 = dynamic_cast(*dau0); //cast in patMuon - const pat::GenericParticle& mu1 = dynamic_cast(*dau1); - - double zmass = zMuTkCand.mass(); - double pt0 = mu0.pt(); - double pt1 = mu1.pt(); - double eta0 = mu0.eta(); - double eta1 = mu1.eta(); - if (pt0 > 20 && pt1 > 20 && abs(eta0) < 2 && abs(eta1) < 2 && zmass > 20 && zmass < 200) { //kinematical cuts - GenParticleRef zMuTkMatch = (*zMuTkMatchMap)[zMuTkCandRef]; - if (zMuTkMatch.isNonnull()) { // ZMuTk matched - FSR_mu = false; - FSR_tk = false; - zmtcounter++; - //MonteCarlo Study - const reco::GenParticle* muMc0 = mu0.genLepton(); - const reco::GenParticle* muMc1 = mu1.genParticle(); - const Candidate* motherMu0 = muMc0->mother(); - const Candidate* motherMu1 = muMc1->mother(); - int num_dau_muon0 = motherMu0->numberOfDaughters(); - int num_dau_muon1 = motherMu1->numberOfDaughters(); - if (num_dau_muon0 > 1) { - for (int j = 0; j < num_dau_muon0; ++j) { - int id = motherMu0->daughter(j)->pdgId(); - if (id == 22) { - double etaG = motherMu0->daughter(j)->eta(); - double ptG = motherMu0->daughter(j)->pt(); - h_gamma_pt_eta_->Fill(ptG, etaG); - h_mu_pt_eta_FSR_->Fill(pt0, eta0); - numofGamma++; - FSR_mu0 = true; - } - } - } //end check of gamma - if (!FSR_mu0) - h_mu_pt_eta_no_FSR_->Fill(pt0, eta0); - if (num_dau_muon1 > 1) { - for (int j = 0; j < num_dau_muon1; ++j) { - int id = motherMu1->daughter(j)->pdgId(); - if (id == 22) { - double etaG = motherMu1->daughter(j)->eta(); - double ptG = motherMu1->daughter(j)->pt(); - h_gamma_pt_eta_->Fill(ptG, etaG); - h_mu_pt_eta_FSR_->Fill(pt1, eta1); - numofGamma++; - FSR_mu1 = true; - } - } - } //end check of gamma - if (!FSR_mu1) - h_mu_pt_eta_no_FSR_->Fill(pt1, eta1); - } // end MC match - } //end Kine-cuts - } // end loop on ZMuTk cand - } // end if ZMuTk size > 0 -} // end analyze - -void gamma_radiative_analyzer::endJob() { - cout << " ============= Summary ==========" << endl; - cout << " Numero di eventi = " << numOfEvent << endl; - cout << " 1)Numero di ZMuMu matched dopo i tagli cinematici = " << zmmcounter << endl; - cout << " 2)Numero di ZMuSa matched dopo i tagli cinematici = " << zmscounter << endl; - cout << " 3)Numero di ZMuTk matched dopo i tagli cinematici = " << zmtcounter << endl; - cout << " 4)Number of gamma = " << numofGamma << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(gamma_radiative_analyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/triggerEfficiency.cc b/ElectroWeakAnalysis/ZMuMu/plugins/triggerEfficiency.cc deleted file mode 100644 index cc40f20da9ffa..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/triggerEfficiency.cc +++ /dev/null @@ -1,168 +0,0 @@ -/* \class testAnalyzer - * author: Noli Pasquale - * version 0.1 - * TriggerEfficiency module - * - */ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Candidate/interface/Particle.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/Common/interface/AssociationVector.h" -#include "DataFormats/PatCandidates/interface/PATObject.h" -#include "TH1.h" -#include -#include -#include -#include -using namespace edm; -using namespace std; -using namespace reco; -using namespace pat; - -class testAnalyzer : public edm::EDAnalyzer { -public: - testAnalyzer(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - int SingleTrigger_, DoubleTrigger_, NoTrigger_, zmumuIncrement_; - EDGetTokenT > selectMuonToken_; - EDGetTokenT zMuMuToken_; - string pathName_; - int nbinsEta_; - double minEta_, maxEta_; - int nbinsPt_; - double minPt_, maxPt_; - int nbinsEtaPt_; - TH1D* h_pt_distribution_; - TH1D *h_numberTrigMuon_, *h_numberMuon_; - TH1D *h_numberTrigMuon_ptStudy_, *h_numberMuon_ptStudy_; - TH1D* h_EtaDist_Pt80_; - vector vectorPt, vectorEta; -}; - -testAnalyzer::testAnalyzer(const edm::ParameterSet& pset) - : selectMuonToken_(consumes >(pset.getParameter("selectMuon"))), - zMuMuToken_(consumes(pset.getParameter("ZMuMu"))), - pathName_(pset.getParameter("pathName")), - nbinsEta_(pset.getParameter("EtaBins")), - minEta_(pset.getParameter("minEta")), - maxEta_(pset.getParameter("maxEta")), - nbinsPt_(pset.getParameter("PtBins")), - minPt_(pset.getParameter("minPt")), - maxPt_(pset.getParameter("maxPt")), - nbinsEtaPt_(pset.getParameter("EtaPt80Bins")) { - SingleTrigger_ = 0; - DoubleTrigger_ = 0; - NoTrigger_ = 0; - zmumuIncrement_ = 0; - Service fs; - h_pt_distribution_ = fs->make("PtResolution ", "Pt Resolution", 200, -4., 4.); - h_numberMuon_ = fs->make("Denominatore", "Number of Muons vs Eta", nbinsEta_, minEta_, maxEta_); - h_numberTrigMuon_ = - fs->make("NumeratoreTrigMuon", "Number of Triggered Muons vs Eta", nbinsEta_, minEta_, maxEta_); - h_numberMuon_ptStudy_ = fs->make("DenominatorePtStudy", "Number of Muons vs Pt", nbinsPt_, minPt_, maxPt_); - h_numberTrigMuon_ptStudy_ = - fs->make("NumeratoreTrigMuonPtStudy", "Number of Triggered Muons vs Pt", nbinsPt_, minPt_, maxPt_); - h_EtaDist_Pt80_ = fs->make("EtaDistr", "Eta distribution (Pt>80)", nbinsEtaPt_, minEta_, maxEta_); -} - -void testAnalyzer::analyze(const edm::Event& event, const edm::EventSetup& setup) { - Handle > selectMuon; - event.getByToken(selectMuonToken_, selectMuon); - Handle zMuMu; - event.getByToken(zMuMuToken_, zMuMu); - int zmumuSize = zMuMu->size(); - if (zmumuSize > 0) { - for (int i = 0; i < zmumuSize; ++i) { - bool singleTrigFlag0 = false; - bool singleTrigFlag1 = false; - zmumuIncrement_++; - const Candidate& zMuMuCand = (*zMuMu)[i]; - CandidateBaseRef dau0 = zMuMuCand.daughter(0)->masterClone(); - CandidateBaseRef dau1 = zMuMuCand.daughter(1)->masterClone(); - const pat::Muon& mu0 = dynamic_cast(*dau0); //cast in patMuon - const pat::Muon& mu1 = dynamic_cast(*dau1); - const pat::TriggerObjectStandAloneCollection mu0HLTMatches = mu0.triggerObjectMatchesByPath(pathName_); - const pat::TriggerObjectStandAloneCollection mu1HLTMatches = mu1.triggerObjectMatchesByPath(pathName_); - double EtaPatMu0 = mu0.eta(); - double EtaPatMu1 = mu1.eta(); - double PtPatMu0 = mu0.pt(); - double PtPatMu1 = mu1.pt(); - h_numberMuon_->Fill(EtaPatMu0); - h_numberMuon_->Fill(EtaPatMu1); - h_numberMuon_ptStudy_->Fill(PtPatMu0); - h_numberMuon_ptStudy_->Fill(PtPatMu1); - int dimTrig0 = mu0HLTMatches.size(); - int dimTrig1 = mu1HLTMatches.size(); - if (dimTrig0 != 0) { - for (int j = 0; j < dimTrig0; ++j) { - singleTrigFlag0 = true; - h_numberTrigMuon_->Fill(EtaPatMu0); - h_numberTrigMuon_ptStudy_->Fill(PtPatMu0); - double PtTrig = mu0HLTMatches[j].pt(); - double PtDif = PtTrig - PtPatMu0; - h_pt_distribution_->Fill(PtDif); - } - } else { - if (PtPatMu0 > 80) { - h_EtaDist_Pt80_->Fill(EtaPatMu0); - vectorPt.push_back(PtPatMu0); - vectorEta.push_back(EtaPatMu0); - } - } - if (dimTrig1 != 0) { - for (int j = 0; j < dimTrig1; ++j) { - singleTrigFlag1 = true; - h_numberTrigMuon_->Fill(EtaPatMu1); - h_numberTrigMuon_ptStudy_->Fill(PtPatMu1); - double PtTrig = mu0HLTMatches[j].pt(); - double PtDif = PtTrig - PtPatMu1; - h_pt_distribution_->Fill(PtDif); - } - } else { - if (PtPatMu0 > 80) { - h_EtaDist_Pt80_->Fill(EtaPatMu1); - vectorPt.push_back(PtPatMu0); - vectorEta.push_back(EtaPatMu0); - } - } - - if (singleTrigFlag0 && singleTrigFlag1) - DoubleTrigger_++; - if (singleTrigFlag0 && !singleTrigFlag1) - SingleTrigger_++; - if (!singleTrigFlag0 && singleTrigFlag1) - SingleTrigger_++; - if (!singleTrigFlag0 && !singleTrigFlag1) - NoTrigger_++; - - } //end loop on ZMuMu candidates - } //end check on ZMuMu -} - -void testAnalyzer::endJob() { - cout << "DoubleTrigger = " << DoubleTrigger_ << " , SingleTrigger = " << SingleTrigger_ - << " , NoTrigger = " << NoTrigger_ << " ,zmumuIncrement = " << zmumuIncrement_ << endl; - double OneTrig = (double)SingleTrigger_ / (double)zmumuIncrement_; - double DoubleTrig = (double)DoubleTrigger_ / (double)zmumuIncrement_; - cout << "eps^2 = " << DoubleTrig << endl; - cout << "2eps(1 - eps) = " << OneTrig << endl; - int dimVec = vectorPt.size(); - for (int i = 0; i < dimVec; ++i) - cout << "Pt = " << vectorPt[i] << " ==> Eta = " << vectorEta[i] << endl; -} - -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(testAnalyzer); diff --git a/ElectroWeakAnalysis/ZMuMu/plugins/zPdfUnc.cc b/ElectroWeakAnalysis/ZMuMu/plugins/zPdfUnc.cc deleted file mode 100644 index 708d267062956..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/plugins/zPdfUnc.cc +++ /dev/null @@ -1,218 +0,0 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include -#include "TH1.h" - -class zPdfUnc : public edm::EDAnalyzer { -public: - zPdfUnc(const edm::ParameterSet& pset); - -private: - void analyze(const edm::Event& event, const edm::EventSetup& setup) override; - void endJob() override; - edm::EDGetTokenT genToken_; - edm::EDGetTokenT > pdfweightsToken_; - unsigned int pdfmember_, nbinsMass_, nbinsPt_, nbinsAng_; - double massMax_, ptMax_, angMax_; - double accPtMin_, accMassMin_, accMassMax_, accEtaMin_, accEtaMax_, accMassMinDenominator_; - TH1F* h_nZ_; - TH1F *h_mZMC_, *h_ptZMC_, *h_phiZMC_, *h_thetaZMC_, *h_etaZMC_, *h_rapidityZMC_; - TH1F *hardpt, *softpt, *hardeta, *softeta; - TH1F* h_weight_histo; - bool isMCatNLO_; - double nAcc_, nAccReW_, nBothMuHasZHasGrandMa_; - std::string filename_; -}; - -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - -#include "HepMC/WeightContainer.h" -#include "HepMC/GenEvent.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include -#include -#include - -using namespace std; -using namespace reco; -using namespace edm; - -zPdfUnc::zPdfUnc(const ParameterSet& pset) - : genToken_(consumes(pset.getParameter("genParticles"))), - pdfweightsToken_(consumes >(pset.getParameter("pdfweights"))), - pdfmember_(pset.getUntrackedParameter("pdfmember")), - nbinsMass_(pset.getUntrackedParameter("nbinsMass")), - nbinsPt_(pset.getUntrackedParameter("nbinsPt")), - nbinsAng_(pset.getUntrackedParameter("nbinsAng")), - massMax_(pset.getUntrackedParameter("massMax")), - ptMax_(pset.getUntrackedParameter("ptMax")), - angMax_(pset.getUntrackedParameter("angMax")), - accPtMin_(pset.getUntrackedParameter("accPtMin")), - accMassMin_(pset.getUntrackedParameter("accMassMin")), - accMassMax_(pset.getUntrackedParameter("accMassMax")), - accEtaMin_(pset.getUntrackedParameter("accEtaMin")), - accEtaMax_(pset.getUntrackedParameter("accEtaMax")), - accMassMinDenominator_(pset.getUntrackedParameter("accMassMinDenominator")), - isMCatNLO_(pset.getUntrackedParameter("isMCatNLO")), - filename_(pset.getUntrackedParameter("outfilename")) { - cout << ">>> Z Histogrammer constructor" << endl; - Service fs; - - TFileDirectory ZMCHisto = fs->mkdir("ZMCHisto"); - h_nZ_ = ZMCHisto.make("ZNumber", "number of Z particles", 11, -0.5, 10.5); - h_weight_histo = ZMCHisto.make("weight_histo", "weight_histo", 20, -10, 10); - - h_mZMC_ = ZMCHisto.make("ZMCMass", "Z MC mass (GeV/c^{2})", nbinsMass_, 0, massMax_); - h_ptZMC_ = ZMCHisto.make("ZMCPt", "Z MC p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - hardpt = ZMCHisto.make("hardpt", "hard muon p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - softpt = ZMCHisto.make("softpt", "soft muon p_{t} (GeV/c)", nbinsPt_, 0, ptMax_); - - h_phiZMC_ = ZMCHisto.make("ZMCPhi", "Z MC #phi", nbinsAng_, -angMax_, angMax_); - h_thetaZMC_ = ZMCHisto.make("ZMCTheta", "Z MC #theta", nbinsAng_, 0, angMax_); - h_etaZMC_ = ZMCHisto.make("ZMCEta", "Z MC #eta", nbinsAng_, -angMax_, angMax_); - h_rapidityZMC_ = ZMCHisto.make("ZMCRapidity", "Z MC y", nbinsAng_, -angMax_, angMax_); - - hardeta = ZMCHisto.make("hard muon eta", "hard muon #eta", nbinsAng_, -angMax_, angMax_); - softeta = ZMCHisto.make("soft muon eta", "soft muon #eta", nbinsAng_, -angMax_, angMax_); - nAcc_ = 0.; - nAccReW_ = 0; - nBothMuHasZHasGrandMa_ = 0; -} - -void zPdfUnc::analyze(const edm::Event& event, const edm::EventSetup& setup) { - cout << ">>> Z Histogrammer analyze" << endl; - - Handle gen; - Handle > pdfweights; - - event.getByToken(genToken_, gen); - event.getByToken(pdfweightsToken_, pdfweights); - - // get weight and fill it to histogram - std::vector weights = (*pdfweights); - - unsigned int nmembers = weights.size(); - - double weight = weights[pdfmember_]; - - h_weight_histo->Fill(weight); - - cout << "found nmember: " << nmembers << endl; - cout << "taken the member n " << pdfmember_ << " weight= " << weight << endl; - - std::vector muons; - - for (unsigned int i = 0; i < gen->size(); ++i) { - const GenParticle& muMC = (*gen)[i]; - // filling only muons coming form Z - if (abs(muMC.pdgId()) == 13 && muMC.status() == 1 && muMC.numberOfMothers() > 0) { - if (muMC.mother()->numberOfMothers() > 0) { - cout << "I'm getting a muon \n" - << "with " - << "muMC.numberOfMothers() " << muMC.numberOfMothers() << "\n the first mother has pdgId " - << muMC.mother()->pdgId() << "with " - << "muMC.mother()->numberOfMothers() " << muMC.mother()->numberOfMothers() - << "\n the first grandma has pdgId " << muMC.mother()->mother()->pdgId() << endl; - if (muMC.mother()->mother()->pdgId() == 23) - muons.push_back(muMC); - } - } - } - - cout << "finally I selected " << muons.size() << " muons" << endl; - - // if there are at least two muons, - // calculate invarant mass of first two and fill it into histogram - - double inv_mass = 0.0; - double Zpt_ = 0.0; - double Zeta_ = 0.0; - double Ztheta_ = 0.0; - double Zphi_ = 0.0; - double Zrapidity_ = 0.0; - - if (muons.size() > 1) { - if (muons[0].mother()->mother()->pdgId() == 23 && muons[1].mother()->mother()->pdgId() == 23) - nBothMuHasZHasGrandMa_++; - math::XYZTLorentzVector tot_momentum(muons[0].p4()); - math::XYZTLorentzVector mom2(muons[1].p4()); - tot_momentum += mom2; - inv_mass = sqrt(tot_momentum.mass2()); - - Zpt_ = tot_momentum.pt(); - Zeta_ = tot_momentum.eta(); - Ztheta_ = tot_momentum.theta(); - Zphi_ = tot_momentum.phi(); - Zrapidity_ = tot_momentum.Rapidity(); - - // IMPORTANT: use the weight of the event ... - - double weight_sign = weight; - //double weight_sign = 1. ; - // fill the denominator numbers only if mass>accMassMinDenominator and go on in that case - if (inv_mass > accMassMinDenominator_) { - h_mZMC_->Fill(inv_mass, weight_sign); - h_ptZMC_->Fill(Zpt_, weight_sign); - h_etaZMC_->Fill(Zeta_, weight_sign); - h_thetaZMC_->Fill(Ztheta_, weight_sign); - h_phiZMC_->Fill(Zphi_, weight_sign); - h_rapidityZMC_->Fill(Zrapidity_, weight_sign); - - double pt1 = muons[0].pt(); - double pt2 = muons[1].pt(); - double eta1 = muons[0].eta(); - double eta2 = muons[1].eta(); - if (pt1 > pt2) { - hardpt->Fill(pt1, weight_sign); - softpt->Fill(pt2, weight_sign); - hardeta->Fill(eta1, weight_sign); - softeta->Fill(eta2, weight_sign); - } else { - hardpt->Fill(pt2, weight_sign); - softpt->Fill(pt1, weight_sign); - hardeta->Fill(eta2, weight_sign); - softeta->Fill(eta1, weight_sign); - } - - //evaluating the geometric acceptance - if (pt1 >= accPtMin_ && pt2 >= accPtMin_ && fabs(eta1) >= accEtaMin_ && fabs(eta2) >= accEtaMin_ && - fabs(eta1) <= accEtaMax_ && fabs(eta2) <= accEtaMax_ && inv_mass >= accMassMin_ && inv_mass <= accMassMax_) { - nAcc_++; - nAccReW_ += weight; - } - } - } -} - -void zPdfUnc::endJob() { - cout << " number of events accepted :" << nAcc_ << endl; - cout << " number of events accepted reweigthed :" << nAccReW_ << endl; - double nev = h_mZMC_->GetEntries(); - double nev_weigthed = h_mZMC_->Integral(); - cout << " number of total events :" << nev << endl; - cout << " number of total weighted events :" << nev_weigthed << endl; - cout << " number of cases in which BothMuHasZHasGrandMa :" << nBothMuHasZHasGrandMa_ << endl; - double eff = (double)nAcc_ / (double)h_mZMC_->GetEntries(); - double eff_rew = (double)nAccReW_ / (double)h_mZMC_->Integral(0, nbinsMass_ + 1); - double err = sqrt(eff * (1. - eff) / (double)h_mZMC_->GetEntries()); - double err_rew = sqrt(eff_rew * (1. - eff_rew) / (double)h_mZMC_->Integral(0, nbinsMass_ + 1)); - cout << " geometric acceptance: " << eff << "+/-" << err << endl; - cout << " geometric acceptance reweighted: " << eff_rew << "+/-" << err_rew << endl; - - ofstream myfile; - myfile.open(filename_.c_str(), std::ios::app); - myfile << eff << " " << eff_rew << " " << nev << " " << nev_weigthed << endl; - myfile.close(); -} -#include "FWCore/Framework/interface/MakerMacros.h" - -DEFINE_FWK_MODULE(zPdfUnc); diff --git a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuAnalysisNtupler_cff.py b/ElectroWeakAnalysis/ZMuMu/python/ZMuMuAnalysisNtupler_cff.py deleted file mode 100644 index 1cce3708768b9..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuAnalysisNtupler_cff.py +++ /dev/null @@ -1,748 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesSequences_cff import * - -import copy - - -### CandViewNtpProducer Configuration - common to all categories. - -goodZToMuMuEdmNtuple = cms.EDProducer( - "CandViewNtpProducer", - src=cms.InputTag("goodZToMuMuAtLeast1HLTLoose"), - lazyParser=cms.untracked.bool(True), - prefix=cms.untracked.string("z"), - eventInfo=cms.untracked.bool(True), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("Mass"), - quantity = cms.untracked.string("mass") - ), - cms.PSet( - tag = cms.untracked.string("Pt"), - quantity = cms.untracked.string("pt") - ), - cms.PSet( - tag = cms.untracked.string("Eta"), - quantity = cms.untracked.string("eta") - ), - cms.PSet( - tag = cms.untracked.string("Phi"), - quantity = cms.untracked.string("phi") - ), - cms.PSet( - tag = cms.untracked.string("Y"), - quantity = cms.untracked.string("rapidity") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Pt"), - quantity = cms.untracked.string("daughter(0).masterClone.pt") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Pt"), - quantity = cms.untracked.string("daughter(1).masterClone.pt") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Q"), - quantity = cms.untracked.string("daughter(0).masterClone.charge") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Q"), - quantity = cms.untracked.string("daughter(1).masterClone.charge") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Eta"), - quantity = cms.untracked.string("daughter(0).masterClone.eta") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Eta"), - quantity = cms.untracked.string("daughter(1).masterClone.eta") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Phi"), - quantity = cms.untracked.string("daughter(0).masterClone.phi") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Phi"), - quantity = cms.untracked.string("daughter(1).masterClone.phi") - ), - -# cms.PSet( -# tag = cms.untracked.string("Dau1NofHit"), -# quantity = cms.untracked.string("?1>0?1:0"), -# ), - - - -# cms.PSet( -# tag = cms.untracked.string("Dau1NofHit"), -# quantity = cms.untracked.string("?(daughter(0).masterClone.isGlobalMuon=1 || daughter(0).masterClone.isTrackerMuon=1)?daughter(0).masterClone.numberOfValidHits:daughter(0).masterClone.outerTrack.numberOfValidHits") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau1NofHitTk"), -# quantity = cms.untracked.string("?(daughter(0).masterClone.isGlobalMuon==1 || daughter(0).masterClone.isTrackerMuon=1)?daughter(0).masterClone.innerTrack.numberOfValidHits:0") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau1NofHitSta"), -# quantity = cms.untracked.string("?(daughter(0).masterClone.isGlobalMuon==1 ||daughter(0).masterClone.isStandAloneMuon==1 ) ? daughter(0).masterClone.outerTrack.numberOfValidHits : 0") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau1NofMuChambers"), -# quantity = cms.untracked.string("?(daughter(0).masterClone.isGlobalMuon==1 ||daughter(0).masterClone.isStandAloneMuon==1 ) ? daughter(0).masterClone.numberOfChambers :0") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau1NofMuMatches"), -# quantity = cms.untracked.string("?(daughter(0).masterClone.isGlobalMuon==1 ||daughter(0).masterClone.isStandAloneMuon==1 ) ? daughter(0).masterClone.numberOfMatches : 0") -# ), - - cms.PSet( - tag = cms.untracked.string("Dau1Iso"), - quantity = cms.untracked.string("daughter(0).masterClone.userIsolation('pat::User4Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Iso"), - quantity = cms.untracked.string("daughter(1).masterClone.userIsolation('pat::User4Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1relIso"), - quantity = cms.untracked.string("daughter(0).masterClone.userIsolation('pat::User5Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2relIso"), - quantity = cms.untracked.string("daughter(1).masterClone.userIsolation('pat::User5Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1TrkIso"), - quantity = cms.untracked.string("daughter(0).masterClone.userIsolation('pat::User1Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2TrkIso"), - quantity = cms.untracked.string("daughter(1).masterClone.userIsolation('pat::User1Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1EcalIso"), - quantity = cms.untracked.string("daughter(0).masterClone.userIsolation('pat::User2Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2EcalIso"), - quantity = cms.untracked.string("daughter(1).masterClone.userIsolation('pat::User2Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1HcalIso"), - quantity = cms.untracked.string("daughter(0).masterClone.userIsolation('pat::User3Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2HcalIso"), - quantity = cms.untracked.string("daughter(1).masterClone.userIsolation('pat::User3Iso')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1dxyFromBS"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_dxyFromBS')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1dzFromBS"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_dzFromBS')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1dxyFromPV"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_dxyFromPV')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1dzFromPV"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_dzFromPV')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1HLTBit"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_HLTBit')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1HLTSize"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_HLTSize')") - ), -cms.PSet( - tag = cms.untracked.string("Dau1HLTDeltaR"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_HLTDeltaR')") - ), -cms.PSet( - tag = cms.untracked.string("Dau1HLTDeltaEta"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_HLTDeltaEta')") - ), -cms.PSet( - tag = cms.untracked.string("Dau1HLTDeltaPhi"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_HLTDeltaPhi')") - ), -cms.PSet( - tag = cms.untracked.string("Dau1HLTDeltaPtOverPt"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_HLTDeltaPtOverPt')") - ), -cms.PSet( - tag = cms.untracked.string("Dau1HLTPt"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_HLTPt')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2dxyFromBS"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_dxyFromBS')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2dzFromBS"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_dzFromBS')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2dxyFromPV"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_dxyFromPV')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2dzFromPV"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_dzFromPV')") - ), - cms.PSet( - tag = cms.untracked.string("VtxNormChi2"), - quantity = cms.untracked.string("vertexNormalizedChi2") - ), - -# cms.PSet( -# tag = cms.untracked.string("Dau1TrkChi2"), -# quantity = cms.untracked.string("?(daughter(0).masterClone.isGlobalMuon==1 || daughter(0).masterClone.isTrackerMuon=1)?daughter(0).masterClone.innerTrack.normalizedChi2:0") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau1MuEnergyHad"), -# quantity = cms.untracked.string("?daughter(0).masterClone.isGlobalMuon==1||daughter(0).masterClone.isTrackerMuon==1 ?daughter(0).masterClone.calEnergy.had:-1") -# ), - # cms.PSet( - # tag = cms.untracked.string("Dau1MuEnergyEm"), - # quantity = cms.untracked.string("?daughter(0).masterClone.isGlobalMuon==1||daughter(0).masterClone.isTrackerMuon==1 ?daughter(0).masterClone.calEnergy.em:-1") - # ), - cms.PSet( - tag = cms.untracked.string("TrueMass"), - quantity = cms.untracked.string("userFloat('TrueMass')") - ), - cms.PSet( - tag = cms.untracked.string("TruePt"), - quantity = cms.untracked.string("userFloat('TruePt')") - ), - cms.PSet( - tag = cms.untracked.string("TrueEta"), - quantity = cms.untracked.string("userFloat('TrueEta')") - ), - cms.PSet( - tag = cms.untracked.string("TruePhi"), - quantity = cms.untracked.string("userFloat('TruePhi')") - ), - cms.PSet( - tag = cms.untracked.string("TrueY"), - quantity = cms.untracked.string("userFloat('TrueY')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Chi2"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_Chi2')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1TrkChi2"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_TrkChi2')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1SaChi2"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_SaChi2')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Chi2"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_Chi2')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2TrkChi2"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_TrkChi2')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2SaChi2"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_SaChi2')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1NofMuonHits"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_NofMuonHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1SaNofMuonHits"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_SaNofMuonHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2NofMuonHits"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_NofMuonHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2SaNofMuonHits"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_SaNofMuonHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1NofStripHits"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_NofStripHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1NofPixelHits"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_NofPixelHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1TrkNofStripHits"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_TrkNofStripHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2TrkNofStripHits"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_TrkNofStripHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1TrkNofPixelHits"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_TrkNofPixelHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2TrkNofPixelHits"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_TrkNofPixelHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1NofMuChambers"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_NofMuChambers')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2NofMuChambers"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_NofMuChambers')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1NofMuMatches"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_NofMuMatches')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2NofMuMatches"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_NofMuMatches')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1MuEnergyEm"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_MuEnergyEm')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2MuEnergyEm"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_MuEnergyEm')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1MuEnergyHad"), - quantity = cms.untracked.string("daughter(0).masterClone.userFloat('zDau_MuEnergyHad')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2MuEnergyHad"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_MuEnergyHad')") - ), - - ) - - ) - - - -### zMuMu vector of PSet is common to all categories except zMuTrk category - -zMuMu=( - - -# cms.PSet( -# tag = cms.untracked.string("Dau2NofHitSta"), - -# quantity = cms.untracked.string("?(daughter(1).masterClone.isGlobalMuon==1 ||daughter(1).masterClone.isStandAloneMuon==1 )?daughter(1).masterClone.outerTrack.numberOfValidHits: -1") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau2NofMuChambers"), -# quantity = cms.untracked.string("?(daughter(1).masterClone.isGlobalMuon==1 ||daughter(1).masterClone.isStandAloneMuon==1 )?daughter(1).masterClone.numberOfChambers: -1") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau2NofMuMatches"), -# quantity = cms.untracked.string("?(daughter(1).masterClone.isGlobalMuon==1 ||daughter(1).masterClone.isStandAloneMuon==1 )?daughter(1).masterClone.numberOfMatches: -1") -# ), - cms.PSet( - tag = cms.untracked.string("Dau2HLTBit"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_HLTBit')") - ), -cms.PSet( - tag = cms.untracked.string("Dau2HLTSize"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_HLTSize')") - ), -cms.PSet( - tag = cms.untracked.string("Dau2HLTDeltaR"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_HLTDeltaR')") - ), -cms.PSet( - tag = cms.untracked.string("Dau2HLTDeltaEta"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_HLTDeltaEta')") - ), -cms.PSet( - tag = cms.untracked.string("Dau2HLTDeltaPhi"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_HLTDeltaPhi')") - ), -cms.PSet( - tag = cms.untracked.string("Dau2HLTDeltaPtOverPt"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_HLTDeltaPtOverPt')") - ), -cms.PSet( - tag = cms.untracked.string("Dau2HLTPt"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_HLTPt')") - ), - - - - -# cms.PSet( -# tag = cms.untracked.string("Dau2MuEnergyHad"), -# quantity = cms.untracked.string("?daughter(1).masterClone.isGlobalMuon==1 ||daughter(1).masterClone.isTrackerMuon==1?daughter(1).masterClone.calEnergy.had:-1") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau2MuEnergyEm"), -# quantity = cms.untracked.string("?daughter(1).masterClone.isGlobalMuon==1 ||daughter(1).masterClone.isTrackerMuon==1?daughter(1).masterClone.calEnergy.em:-1") -# ), - - cms.PSet( - tag = cms.untracked.string("Dau1GlobalMuonBit"), - quantity = cms.untracked.string("daughter(0).masterClone.isGlobalMuon") - ), - cms.PSet( - tag = cms.untracked.string("Dau2GlobalMuonBit"), - quantity = cms.untracked.string("daughter(1).masterClone.isGlobalMuon") - ), - cms.PSet( - tag = cms.untracked.string("Dau1StandAloneBit"), - quantity = cms.untracked.string("daughter(0).masterClone.isStandAloneMuon") - ), - cms.PSet( - tag = cms.untracked.string("Dau2StandAloneBit"), - quantity = cms.untracked.string("daughter(1).masterClone.isStandAloneMuon") - ), - cms.PSet( - tag = cms.untracked.string("Dau1TrackerMuonBit"), - quantity = cms.untracked.string("daughter(0).masterClone.isTrackerMuon") - ), - cms.PSet( - tag = cms.untracked.string("Dau2TrackerMuonBit"), - quantity = cms.untracked.string("daughter(1).masterClone.isTrackerMuon") - ), - cms.PSet( - tag = cms.untracked.string("Dau2NofStripHits"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_NofStripHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2NofPixelHits"), - quantity = cms.untracked.string("daughter(1).masterClone.userFloat('zDau_NofPixelHits')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Iso03SumPt"), - quantity = cms.untracked.string("daughter(0).masterClone.trackIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Iso03SumPt"), - quantity = cms.untracked.string("daughter(1).masterClone.trackIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Iso03EmEt"), - quantity = cms.untracked.string("daughter(0).masterClone.ecalIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Iso03EmEt"), - quantity = cms.untracked.string("daughter(1).masterClone.ecalIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Iso03HadEt"), - quantity = cms.untracked.string("daughter(0).masterClone.hcalIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Iso03HadEt"), - quantity = cms.untracked.string("daughter(1).masterClone.hcalIso") - ), - - - - - ) - -### zGolden vector of PSet is specific for zGolden category - - -zGolden=( - - - ## cms.PSet( -## tag = cms.untracked.string("Dau1NofHit"), -## quantity = cms.untracked.string("daughter(0).masterClone.numberOfValidHits") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau1NofHitTk"), -## quantity = cms.untracked.string("daughter(0).masterClone.innerTrack.numberOfValidHits") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau1NofHitSta"), -## quantity = cms.untracked.string("daughter(0).masterClone.outerTrack.numberOfValidHits") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau1NofMuChambers"), -## quantity = cms.untracked.string(" daughter(0).masterClone.numberOfChambers ") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau1NofMuMatches"), -## quantity = cms.untracked.string("daughter(0).masterClone.numberOfMatches") -## ), - -## cms.PSet( -## tag = cms.untracked.string("Dau1TrkChi2"), -## quantity = cms.untracked.string("daughter(0).masterClone.innerTrack.normalizedChi2") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau1MuEnergyHad"), -## quantity = cms.untracked.string("daughter(0).masterClone.calEnergy.had") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau1MuEnergyEm"), -## quantity = cms.untracked.string("daughter(0).masterClone.calEnergy.em") -## ), - - - -## cms.PSet( -## tag = cms.untracked.string("Dau2NofHitSta"), -## quantity = cms.untracked.string("daughter(1).masterClone.outerTrack.numberOfValidHits") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau2NofMuChambers"), -## quantity = cms.untracked.string("daughter(1).masterClone.numberOfChambers") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau2NofMuMatches"), -## quantity = cms.untracked.string("daughter(1).masterClone.numberOfMatches") -## ), - - -## cms.PSet( -## tag = cms.untracked.string("Dau2MuEnergyHad"), -## quantity = cms.untracked.string("daughter(1).masterClone.calEnergy.had") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau2MuEnergyEm"), -## quantity = cms.untracked.string("daughter(1).masterClone.calEnergy.em") -## ), - -## cms.PSet( -## tag = cms.untracked.string("Dau1Chi2"), -## quantity = cms.untracked.string("daughter(0).masterClone.normChi2") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau2Chi2"), -## quantity = cms.untracked.string("daughter(1).masterClone.normChi2") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau2NofHit"), -## quantity = cms.untracked.string("daughter(1).masterClone.numberOfValidHits") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau2NofHitTk"), -## quantity = cms.untracked.string("daughter(1).masterClone.innerTrack.numberOfValidHits") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau2TrkChi2"), -## quantity = cms.untracked.string("daughter(1).masterClone.innerTrack.normalizedChi2") -## ), - cms.PSet( - tag = cms.untracked.string("SaGlbMass"), - quantity = cms.untracked.string("userFloat('SaGlbMass')") - ), - cms.PSet( - tag = cms.untracked.string("GlbSaMass"), - quantity = cms.untracked.string("userFloat('GlbSaMass')") - ), - cms.PSet( - tag = cms.untracked.string("SaSaMass"), - quantity = cms.untracked.string("userFloat('SaSaMass')") - ), - cms.PSet( - tag = cms.untracked.string("MassSa"), - quantity = cms.untracked.string("userFloat('MassSa')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1SaPt"), - quantity = cms.untracked.string("userFloat('Dau1SaPt')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2SaPt"), - quantity = cms.untracked.string("userFloat('Dau2SaPt')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1SaEta"), - quantity = cms.untracked.string("userFloat('Dau1SaEta')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2SaEta"), - quantity = cms.untracked.string("userFloat('Dau2SaEta')") - ), - cms.PSet( - tag = cms.untracked.string("Dau1SaPhi"), - quantity = cms.untracked.string("userFloat('Dau1SaPhi')") - ), - cms.PSet( - tag = cms.untracked.string("Dau2SaPhi"), - quantity = cms.untracked.string("userFloat('Dau2SaPhi')") - ), - - ) - - - -### zMUSa vector of PSet is specific for zMuSa category - -zMuSa = ( - -# cms.PSet( -# tag= cms.untracked.string("Dau2NofHit"), -# quantity = cms.untracked.string("?daughter(1).masterClone.isStandAloneMuon==1?daughter(1).masterClone.outerTrack.numberOfValidHits:daughter(1).masterClone.numberOfValidHits") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau2Chi2"), -# quantity = cms.untracked.string("?daughter(1).masterClone.isStandAloneMuon==1?daughter(1).masterClone.outerTrack.normalizedChi2:daughter(1).masterClone.normChi2") -# ), - - ) - - -### zMuTrkMu vector of PSet is specific for zMuTrkMu category - -zMuTrkMu=( -# cms.PSet( -# tag = cms.untracked.string("Dau1Chi2"), -# quantity = cms.untracked.string("?daughter(0).masterClone.isTrackerMuon==1 ? daughter(0).masterClone.innerTrack.normalizedChi2 : daughter(0).masterClone.normChi2") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau2Chi2"), -# quantity = cms.untracked.string("?daughter(1).masterClone.isTrackerMuon==1 ? daughter(1).masterClone.innerTrack.normalizedChi2 : daughter(1).masterClone.normChi2") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau2NofHit"), -# quantity = cms.untracked.string("?daughter(1).masterClone.isTrackerMuon==1 ? daughter(1).masterClone.innerTrack.numberOfValidHits: daughter(1).masterClone.numberOfValidHits") -# ), -# cms.PSet( -# tag = cms.untracked.string("Dau2NofHitTk"), -# quantity = cms.untracked.string("daughter(1).masterClone.innerTrack.numberOfValidHits") -# ), -# - ) - - -### zMuTrk vector of PSet is specific for zMuTrk category - - -zMuTrk =( -## cms.PSet( -## tag = cms.untracked.string("Dau2NofHit"), -## quantity = cms.untracked.string("daughter(1).masterClone.track.numberOfValidHits") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau2NofHitTk"), -## quantity = cms.untracked.string("daughter(1).masterClone.track.numberOfValidHits") -## ), -## cms.PSet( -## tag = cms.untracked.string("Dau2Chi2"), -## quantity = cms.untracked.string("daughter(1).masterClone.track.normalizedChi2") -## ), - - cms.PSet( - tag = cms.untracked.string("Dau1GlobalMuonBit"), - quantity = cms.untracked.string("daughter(0).masterClone.isGlobalMuon") - ), - cms.PSet( - tag = cms.untracked.string("Dau1StandAloneBit"), - quantity = cms.untracked.string("daughter(0).masterClone.isStandAloneMuon") - ), - cms.PSet( - tag = cms.untracked.string("Dau1TrackerMuonBit"), - quantity = cms.untracked.string("daughter(0).masterClone.isTrackerMuon") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Iso03SumPt"), - quantity = cms.untracked.string("daughter(0).masterClone.trackIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Iso03SumPt"), - quantity = cms.untracked.string("daughter(1).masterClone.trackIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Iso03EmEt"), - quantity = cms.untracked.string("daughter(0).masterClone.ecalIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Iso03EmEt"), - quantity = cms.untracked.string("daughter(1).masterClone.ecalIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau1Iso03HadEt"), - quantity = cms.untracked.string("daughter(0).masterClone.hcalIso") - ), - cms.PSet( - tag = cms.untracked.string("Dau2Iso03HadEt"), - quantity = cms.untracked.string("daughter(1).masterClone.hcalIso") - ) - - ) - - - -goodZToMuMuEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtuple) -goodZToMuMuEdmNtupleLoose.variables += zMuMu -goodZToMuMuEdmNtupleLoose.variables += zGolden -goodZToMuMuEdmNtupleLoose.prefix = cms.untracked.string("zGolden") -goodZToMuMuPathLoose.__iadd__(goodZToMuMuEdmNtupleLoose) -goodZToMuMuPathLoose.setLabel("goodZToMuMuEdmLoose") - - -goodZToMuMuSameChargeEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtuple) -goodZToMuMuSameChargeEdmNtupleLoose.src = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLTLoose") -goodZToMuMuSameChargeEdmNtupleLoose.prefix = cms.untracked.string("zSameCharge") -goodZToMuMuSameChargeEdmNtupleLoose.variables += zMuMu -goodZToMuMuSameChargeEdmNtupleLoose.variables += zGolden -goodZToMuMuSameChargePathLoose.__iadd__(goodZToMuMuSameChargeEdmNtupleLoose) -goodZToMuMuSameChargePathLoose.setLabel("goodZToMuMuSameChargeLoose") - - - -goodZToMuMuOneStandAloneEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtuple) -goodZToMuMuOneStandAloneEdmNtupleLoose.src=cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLTLoose") -goodZToMuMuOneStandAloneEdmNtupleLoose.prefix=cms.untracked.string("zMuSta") -goodZToMuMuOneStandAloneEdmNtupleLoose.variables += zMuMu -goodZToMuMuOneStandAloneEdmNtupleLoose.variables += zMuSa -goodZToMuMuOneStandAloneMuonPathLoose.__iadd__(goodZToMuMuOneStandAloneEdmNtupleLoose) -goodZToMuMuOneStandAloneMuonPathLoose.setLabel("goodZToMuMuOneStandAloneMuonLoose") - -goodZToMuMuOneTrackEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtuple) -goodZToMuMuOneTrackEdmNtupleLoose.src=cms.InputTag("goodZToMuMuOneTrackFirstHLTLoose") -goodZToMuMuOneTrackEdmNtupleLoose.prefix=cms.untracked.string("zMuTrk") -goodZToMuMuOneTrackEdmNtupleLoose.variables += zMuTrk -goodZToMuMuOneTrackPathLoose.__iadd__(goodZToMuMuOneTrackEdmNtupleLoose) -goodZToMuMuOneTrackPathLoose.setLabel("goodZToMuMuOneTrackLoose") - -goodZToMuMuOneTrackerMuonEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtuple) -goodZToMuMuOneTrackerMuonEdmNtupleLoose.src=cms.InputTag("goodZToMuMuOneTrackerMuonFirstHLTLoose") -goodZToMuMuOneTrackerMuonEdmNtupleLoose.prefix=cms.untracked.string("zMuTrkMu") -goodZToMuMuOneTrackerMuonEdmNtupleLoose.variables += zMuMu -goodZToMuMuOneTrackerMuonEdmNtupleLoose.variables += zMuTrkMu -goodZToMuMuOneTrackerMuonPathLoose.__iadd__(goodZToMuMuOneTrackerMuonEdmNtupleLoose) -goodZToMuMuOneTrackerMuonPathLoose.setLabel("goodZToMuMuOneTrackerMuonLoose") - - -ntuplesOut = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('NtupleLooseTestNew.root'), - outputCommands = cms.untracked.vstring( - "drop *", - "keep *_eventVtxInfoNtuple_*_*", - "keep *_goodZToMuMuEdmNtupleLoose_*_*", - "keep *_goodZToMuMuSameChargeEdmNtupleLoose_*_*", - "keep *_goodZToMuMuOneStandAloneEdmNtupleLoose_*_*", - "keep *_goodZToMuMuOneTrackEdmNtupleLoose_*_*", - "keep *_goodZToMuMuOneTrackerMuonEdmNtupleLoose_*_*", - - ) - ) - - -ntuplesOut.setLabel("ntuplesOut") -NtuplesOut.__iadd__(ntuplesOut) -NtuplesOut.setLabel("NtuplesOut") - - diff --git a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuAnalysisSchedules_cff.py b/ElectroWeakAnalysis/ZMuMu/python/ZMuMuAnalysisSchedules_cff.py deleted file mode 100644 index 45abfcbc0b2c4..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuAnalysisSchedules_cff.py +++ /dev/null @@ -1,318 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesSequences_cff import * -from ElectroWeakAnalysis.Skimming.zMuMu_SubskimPaths_cff import * -#from ElectroWeakAnalysis.Skimming.zMuMu_SubskimPathsWithMCTruth_cff import * - - -### controll by hand that all the path are in ... :-( :-( :-( - -## dimuonsSeq = cms.Sequence( -## dimuonsHLTFilter * -## goodMuonRecoForDimuon * -## dimuons * -## dimuonsGlobal * -## dimuonsOneStandAloneMuon * -## dimuonsFilter -## ) - -## dimuonsOneTrackSeq= cms.Sequence(dimuonsHLTFilter+ -## goodMuonRecoForDimuon+ -## dimuonsOneTrack+ -## dimuonsOneTrackFilter -## ) - - - - - - -#goodZToMuMuPathLoose.replace(goodZToMuMuLoose, dimuonsSeq * goodZToMuMuLoose) -goodZToMuMuPathLoose._seq = dimuonsPath._seq + goodZToMuMuPathLoose._seq - -goodZToMuMu2HLTPathLoose._seq = dimuonsPath._seq + goodZToMuMu2HLTPathLoose._seq - - -#goodZToMuMu2HLTPathLoose.replace(goodZToMuMuLoose, dimuonsSeq * goodZToMuMuLoose) - -#goodZToMuMu1HLTPathLoose.replace(goodZToMuMuLoose, dimuonsSeq * goodZToMuMuLoose) - -goodZToMuMu1HLTPathLoose._seq= dimuonsPath._seq + goodZToMuMu1HLTPathLoose._seq - - -goodZToMuMuAB1HLTPathLoose._seq = dimuonsPath._seq + goodZToMuMuAB1HLTPathLoose._seq - -goodZToMuMuBB2HLTPathLoose._seq = dimuonsPath._seq + goodZToMuMuBB2HLTPathLoose._seq - - -#goodZToMuMuSameChargePathLoose.replace(dimuonsGlobalSameCharge, dimuonsSeq * dimuonsGlobalSameCharge) -goodZToMuMuSameChargePathLoose._seq = dimuonsPath._seq + goodZToMuMuSameChargePathLoose._seq - - -## notGoodZToMuMuSeq = cms.Sequence( -## dimuonsSeq * -## ~goodZToMuMu * -## zToMuMuOneStandAloneMuonLoose -## ) - -## notGoodZToMuMuSeq.setLabel("notGoodZToMuMuSeq") - -## goodZToMuMuOneStandAloneMuonPathLoose.remove(goodZToMuMu) - -#goodZToMuMuOneStandAloneMuonPathLoose.replace(zToMuMuOneStandAloneMuonLoose, notGoodZToMuMuSeq) - -goodZToMuMuOneStandAloneMuonPathLoose._seq = dimuonsPath._seq + goodZToMuMuOneStandAloneMuonPathLoose._seq - -## notGoodZToMuMuSeq = cms.Sequence( -## dimuonsSeq + -## dimuonsOneTrackSeq+ -## ~goodZToMuMu + -## ~zToMuMuOneStandAloneMuon + -## zToMuGlobalMuOneTrack -## ) - -goodZToMuMuOneTrackerMuonPathLoose._seq = dimuonsPath._seq + goodZToMuMuOneTrackerMuonPathLoose._seq - - -## notGoodZToMuMuSeq.setLabel("notGoodZToMuMuSeq") - -## goodZToMuMuOneTrackPathLoose.remove( goodZToMuMu) -## goodZToMuMuOneTrackPathLoose.remove(zToMuMuOneStandAloneMuon ) - -#goodZToMuMuOneTrackPathLoose.replace(zToMuGlobalMuOneTrack, notGoodZToMuMuSeq * zToMuGlobalMuOneTrack ) - -goodZToMuMuOneTrackPathLoose._seq = dimuonsPath._seq + dimuonsOneTrackPath._seq + goodZToMuMuOneTrackPathLoose._seq - -goodZToMuMuOneTrackPathLoose.remove(dimuonsFilter) - -#initialGoodZToMuMuPath.replace(goodZToMuMu, dimuonsSeq * goodZToMuMu) -initialGoodZToMuMuPath._seq = dimuonsPath._seq + initialGoodZToMuMuPath._seq - - -#goodZToMuMuPath.replace(goodZToMuMu, dimuonsSeq * goodZToMuMu) -goodZToMuMuPath._seq = dimuonsPath._seq + goodZToMuMuPath._seq - - -#goodZToMuMu2HLTPath.replace(goodZToMuMu, dimuonsSeq * goodZToMuMu) -goodZToMuMu1HLTPath._seq = dimuonsPath._seq + goodZToMuMu1HLTPath._seq - -#goodZToMuMu1HLTPath.replace(goodZToMuMu, dimuonsSeq * goodZToMuMu) -goodZToMuMu2HLTPath._seq = dimuonsPath._seq + goodZToMuMu2HLTPath._seq - -goodZToMuMuAB1HLTPath._seq = dimuonsPath._seq + goodZToMuMuAB1HLTPath._seq - -goodZToMuMuBB2HLTPath._seq = dimuonsPath._seq + goodZToMuMuBB2HLTPath._seq - - -#goodZToMuMuSameChargePath.replace( dimuonsGlobalSameCharge, dimuonsSeq * dimuonsGlobalSameCharge) -goodZToMuMuSameChargePath._seq = dimuonsPath._seq + goodZToMuMuSameChargePath._seq - -#goodZToMuMuSameCharge2HLTPath.replace( dimuonsGlobalSameCharge, dimuonsSeq * dimuonsGlobalSameCharge) - -goodZToMuMuSameCharge2HLTPath._seq = dimuonsPath._seq + goodZToMuMuSameCharge2HLTPath._seq - -#goodZToMuMuSameCharge1HLTPath.replace( dimuonsGlobalSameCharge, dimuonsSeq * dimuonsGlobalSameCharge) -goodZToMuMuSameCharge1HLTPath._seq = dimuonsPath._seq + goodZToMuMuSameCharge1HLTPath._seq - - -#nonIsolatedZToMuMuPath.replace(nonIsolatedZToMuMu, dimuonsSeq * nonIsolatedZToMuMu) -nonIsolatedZToMuMuPath._seq = dimuonsPath._seq + nonIsolatedZToMuMuPath._seq - -#oneNonIsolatedZToMuMuPath.replace(nonIsolatedZToMuMu, dimuonsSeq * nonIsolatedZToMuMu) -oneNonIsolatedZToMuMuPath._seq = dimuonsPath._seq + oneNonIsolatedZToMuMuPath._seq - -#twoNonIsolatedZToMuMuPath.replace(nonIsolatedZToMuMu, dimuonsSeq * nonIsolatedZToMuMu) -twoNonIsolatedZToMuMuPath._seq = dimuonsPath._seq + twoNonIsolatedZToMuMuPath._seq - - -## notGoodZToMuMuSeq = cms.Sequence( -## dimuonsSeq * -## ~goodZToMuMu * -## zToMuMuOneStandAloneMuon -## ) - -## notGoodZToMuMuSeq.setLabel("notGoodZToMuMuSeq") - -## goodZToMuMuOneStandAloneMuonPath.remove(goodZToMuMu) -## goodZToMuMuOneStandAloneMuonPath.replace(zToMuMuOneStandAloneMuon, notGoodZToMuMuSeq) -goodZToMuMuOneStandAloneMuonPath._seq = dimuonsPath._seq + goodZToMuMuOneStandAloneMuonPath._seq - - -## notGoodZToMuMuSeq = cms.Sequence( -## dimuonsSeq + -## ~goodZToMuMu + -## dimuonsOneTrackSeq+ -## ~zToMuMuOneStandAloneMuon + -## zToMuGlobalMuOneTrack -## ) - - - -## notGoodZToMuMuSeq.setLabel("notGoodZToMuMuSeq") - -## goodZToMuMuOneTrackPath.remove( goodZToMuMu) -## goodZToMuMuOneTrackPath.remove(zToMuMuOneStandAloneMuon ) - -## goodZToMuMuOneTrackPath.replace(zToMuGlobalMuOneTrack, notGoodZToMuMuSeq * zToMuGlobalMuOneTrack ) - - -goodZToMuMuOneTrackerMuonPath._seq = dimuonsPath._seq + goodZToMuMuOneTrackerMuonPath._seq - - -goodZToMuMuOneTrackPath._seq = dimuonsPath._seq + dimuonsOneTrackPath._seq + goodZToMuMuOneTrackPath._seq -goodZToMuMuOneTrackPath.remove(dimuonsFilter) - - -## goodZToMuMuPathLoose = cms.Path( - -## goodZToMuMuLoose + -## goodZToMuMuAtLeast1HLTLoose -## ) - -## goodZToMuMu2HLTPathLoose = cms.Path( -## goodZToMuMuLoose + -## goodZToMuMu2HLTLoose -## ) - -## goodZToMuMu1HLTPathLoose = cms.Path( -## goodZToMuMuLoose + -## goodZToMuMu1HLTLoose -## ) - - -## goodZToMuMuSameChargePathLoose = cms.Path( -## dimuonsGlobalSameCharge+ -## goodZToMuMuSameChargeLoose + -## goodZToMuMuSameChargeAtLeast1HLTLoose -## ) - - -## ## goodZToMuMuSameCharge2HLTPathLoose = cms.Path( -## ## dimuonsGlobalSameCharge+ -## ## goodZToMuMuSameChargeLoose + -## ## goodZToMuMuSameCharge2HLTLoose -## ## ) - - -## ## goodZToMuMuSameCharge1HLTPathLoose = cms.Path( -## ## dimuonsGlobalSameCharge+ -## ## goodZToMuMuSameChargeLoose + -## ## goodZToMuMuSameCharge1HLTLoose -## ## ) - - - -## goodZToMuMuOneStandAloneMuonPathLoose = cms.Path( -## ### I should deby the tight zmumu, otherwise I cut to much.... -## ~goodZToMuMu + -## zToMuMuOneStandAloneMuonLoose + -## goodZToMuMuOneStandAloneMuonLoose + -## goodZToMuMuOneStandAloneMuonFirstHLTLoose -## ) - - -## goodZToMuMuOneTrackPathLoose=cms.Path( -## ### I should deby the tight zmumu, otherwise I cut to much.... -## ~goodZToMuMu + -## ~zToMuMuOneStandAloneMuon + -## zToMuGlobalMuOneTrack + -## zToMuMuOneTrackLoose + -## goodZToMuMuOneTrackLoose + -## goodZToMuMuOneTrackFirstHLTLoose -## ) - - - - - -## ### sequences and path for tight cuts... - -## initialGoodZToMuMuPath = cms.Path( -## goodZToMuMu + -## zmumuSaMassHistogram -## ) - - -## goodZToMuMuPath = cms.Path( -## goodZToMuMu + -## goodZToMuMuAtLeast1HLT -## ) - - - -## goodZToMuMu2HLTPath = cms.Path( -## goodZToMuMu + -## goodZToMuMu2HLT -## ) - - -## goodZToMuMu1HLTPath = cms.Path( -## goodZToMuMu + -## goodZToMuMu1HLT -## ) - - - -## goodZToMuMuSameChargePath = cms.Path( -## dimuonsGlobalSameCharge+ -## goodZToMuMuSameCharge + -## goodZToMuMuSameChargeAtLeast1HLT -## ) - - -## goodZToMuMuSameCharge2HLTPath = cms.Path( -## dimuonsGlobalSameCharge+ -## goodZToMuMuSameCharge + -## goodZToMuMuSameCharge2HLT -## ) - - - -## goodZToMuMuSameCharge1HLTPath = cms.Path( -## dimuonsGlobalSameCharge+ -## goodZToMuMuSameCharge + -## goodZToMuMuSameCharge1HLT -## ) - - - -## nonIsolatedZToMuMuPath = cms.Path ( -## nonIsolatedZToMuMu + -## nonIsolatedZToMuMuAtLeast1HLT -## ) - - -## oneNonIsolatedZToMuMuPath = cms.Path( -## nonIsolatedZToMuMu + -## oneNonIsolatedZToMuMu + -## oneNonIsolatedZToMuMuAtLeast1HLT -## ) - - -## twoNonIsolatedZToMuMuPath = cms.Path( -## nonIsolatedZToMuMu + -## twoNonIsolatedZToMuMu + -## twoNonIsolatedZToMuMuAtLeast1HLT -## ) - - -## goodZToMuMuOneStandAloneMuonPath = cms.Path( -## ~goodZToMuMu + -## zToMuMuOneStandAloneMuon + -## goodZToMuMuOneStandAloneMuon + -## goodZToMuMuOneStandAloneMuonFirstHLT -## ) - - - - -## goodZToMuMuOneTrackPath=cms.Path( -## ~goodZToMuMu + -## ~zToMuMuOneStandAloneMuon + -## zToMuGlobalMuOneTrack + -## zToMuMuOneTrack + -## goodZToMuMuOneTrack + -## goodZToMuMuOneTrackFirstHLT -## ) - - diff --git a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesNtuples_cff.py b/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesNtuples_cff.py deleted file mode 100644 index 1247dfe83230d..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesNtuples_cff.py +++ /dev/null @@ -1,281 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesSequences_cff import * -import copy - - -#### ntuple for loose cuts - -goodZToMuMuEdmNtupleLoose = cms.EDProducer( - "ZToLLEdmNtupleDumper", - zBlocks = cms.VPSet( - cms.PSet( - zName = cms.string("zGolden"), - z = cms.InputTag("goodZToMuMuAtLeast1HLTLoose"), - zGenParticlesMatch = cms.InputTag(""), - beamSpot = cms.InputTag("offlineBeamSpot"), - primaryVertices = cms.InputTag("offlinePrimaryVerticesWithBS"), - ptThreshold = cms.double(1.5), - etEcalThreshold = cms.double(0.2), - etHcalThreshold = cms.double(0.5), - deltaRVetoTrk = cms.double(0.015), - deltaRTrk = cms.double(0.3), - deltaREcal = cms.double(0.25), - deltaRHcal = cms.double(0.25), - alpha = cms.double(0.), - beta = cms.double(-0.75), - relativeIsolation = cms.bool(False), - hltPath = cms.string("HLT_Mu9") - ), - ) -) - -goodZToMuMuPathLoose.__iadd__(goodZToMuMuEdmNtupleLoose) -goodZToMuMuPathLoose.setLabel("goodZToMuMuLoose") - - -## goodZToMuMu2HLTEdmNtupleLoose = copy.deepcopy(goodZToMuMuEdmNtupleLoose) -## goodZToMuMu2HLTEdmNtupleLoose.zBlocks[0].z = cms.InputTag("goodZToMuMu2HLTLoose") -## goodZToMuMu2HLTEdmNtupleLoose.zBlocks[0].zName = cms.string("zGolden2HLT") -## goodZToMuMu2HLTPathLoose.__iadd__(goodZToMuMu2HLTEdmNtupleLoose) -## goodZToMuMu2HLTPathLoose.setLabel("goodZToMuMu2HLTLoose") - - -## goodZToMuMu1HLTEdmNtupleLoose = copy.deepcopy(goodZToMuMuEdmNtupleLoose) -## goodZToMuMu1HLTEdmNtupleLoose.zBlocks[0].z = cms.InputTag("goodZToMuMu1HLTLoose") -## goodZToMuMu1HLTEdmNtupleLoose.zBlocks[0].zName = cms.string("zGolden1HLT") -## goodZToMuMu1HLTPathLoose.__iadd__(goodZToMuMu1HLTEdmNtupleLoose) -## goodZToMuMu1HLTPathLoose.setLabel("goodZToMuMu1HLTLoose") - -## oneNonIsolatedZToMuMuEdmNtuple = copy.deepcopy(goodZToMuMuEdmNtuple) -## oneNonIsolatedZToMuMuEdmNtuple.zBlocks[0].z = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") -## oneNonIsolatedZToMuMuEdmNtuple.zBlocks[0].zName = cms.string("z1NotIso") -## oneNonIsolatedZToMuMuPath.__iadd__(oneNonIsolatedZToMuMuEdmNtuple) -## oneNonIsolatedZToMuMuPath.setLabel("oneNonIsolatedZToMuMu") - -## twoNonIsolatedZToMuMuEdmNtuple = copy.deepcopy(goodZToMuMuEdmNtuple) -## twoNonIsolatedZToMuMuEdmNtuple.zBlocks[0].z = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") -## twoNonIsolatedZToMuMuEdmNtuple.zBlocks[0].zName = cms.string("z2NotIso") -## twoNonIsolatedZToMuMuPath.__iadd__(twoNonIsolatedZToMuMuEdmNtuple) -## twoNonIsolatedZToMuMuPath.setLabel("twoNonIsolatedZToMuMu") - -## goodZToMuMuSameCharge2HLTEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtupleLoose) -## goodZToMuMuSameCharge2HLTEdmNtupleLoose.zBlocks[0].z = cms.InputTag("goodZToMuMuSameCharge2HLTLoose") -## goodZToMuMuSameCharge2HLTEdmNtupleLoose.zBlocks[0].zName = cms.string("zSameCharge2HLT") -## goodZToMuMuSameCharge2HLTPathLoose.__iadd__(goodZToMuMuSameCharge2HLTEdmNtupleLoose) -## goodZToMuMuSameCharge2HLTPathLoose.setLabel("goodZToMuMuSameCharge2HLTLoose") - - -## goodZToMuMuSameCharge1HLTEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtupleLoose) -## goodZToMuMuSameCharge1HLTEdmNtupleLoose.zBlocks[0].z = cms.InputTag("goodZToMuMuSameCharge1HLTLoose") -## goodZToMuMuSameCharge1HLTEdmNtupleLoose.zBlocks[0].zName = cms.string("zSameCharge1HLT") -## goodZToMuMuSameCharge1HLTPathLoose.__iadd__(goodZToMuMuSameCharge1HLTEdmNtupleLoose) -## goodZToMuMuSameCharge1HLTPathLoose.setLabel("goodZToMuMuSameCharge1HLTLoose") - -goodZToMuMuAB1HLTEdmNtupleLoose = copy.deepcopy(goodZToMuMuEdmNtupleLoose) -goodZToMuMuAB1HLTEdmNtupleLoose.zBlocks[0].z = cms.InputTag("goodZToMuMuAB1HLTLoose") -goodZToMuMuAB1HLTEdmNtupleLoose.zBlocks[0].zName = cms.string("zGoldenAB1HLT") -goodZToMuMuAB1HLTPathLoose.__iadd__(goodZToMuMuAB1HLTEdmNtupleLoose) -goodZToMuMuAB1HLTPathLoose.setLabel("goodZToMuMuAB1HLTLoose") - -goodZToMuMuBB2HLTEdmNtupleLoose = copy.deepcopy(goodZToMuMuEdmNtupleLoose) -goodZToMuMuBB2HLTEdmNtupleLoose.zBlocks[0].z = cms.InputTag("goodZToMuMuBB2HLTLoose") -goodZToMuMuBB2HLTEdmNtupleLoose.zBlocks[0].zName = cms.string("zGoldenBB2HLT") -goodZToMuMuBB2HLTPathLoose.__iadd__(goodZToMuMuBB2HLTEdmNtupleLoose) -goodZToMuMuBB2HLTPathLoose.setLabel("goodZToMuMuBB2HLTLoose") - - - -goodZToMuMuSameChargeEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtupleLoose) -goodZToMuMuSameChargeEdmNtupleLoose.zBlocks[0].z = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLTLoose") -goodZToMuMuSameChargeEdmNtupleLoose.zBlocks[0].zName = cms.string("zSameCharge") -goodZToMuMuSameChargePathLoose.__iadd__(goodZToMuMuSameChargeEdmNtupleLoose) -goodZToMuMuSameChargePathLoose.setLabel("goodZToMuMuSameChargeLoose") - - - -goodZToMuMuOneStandAloneEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtupleLoose) -goodZToMuMuOneStandAloneEdmNtupleLoose.zBlocks[0].z=cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLTLoose") -goodZToMuMuOneStandAloneEdmNtupleLoose.zBlocks[0].zName=cms.string("zMuSta") -goodZToMuMuOneStandAloneMuonPathLoose.__iadd__(goodZToMuMuOneStandAloneEdmNtupleLoose) -goodZToMuMuOneStandAloneMuonPathLoose.setLabel("goodZToMuMuOneStandAloneMuonLoose") - -goodZToMuMuOneTrackEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtupleLoose) -goodZToMuMuOneTrackEdmNtupleLoose.zBlocks[0].z=cms.InputTag("goodZToMuMuOneTrackFirstHLTLoose") -goodZToMuMuOneTrackEdmNtupleLoose.zBlocks[0].zName=cms.string("zMuTrk") -goodZToMuMuOneTrackPathLoose.__iadd__(goodZToMuMuOneTrackEdmNtupleLoose) -goodZToMuMuOneTrackPathLoose.setLabel("goodZToMuMuOneTrackLoose") - - -goodZToMuMuOneTrackerMuonEdmNtupleLoose= copy.deepcopy(goodZToMuMuEdmNtupleLoose) -goodZToMuMuOneTrackerMuonEdmNtupleLoose.zBlocks[0].z=cms.InputTag("goodZToMuMuOneTrackerMuonFirstHLTLoose") -goodZToMuMuOneTrackerMuonEdmNtupleLoose.zBlocks[0].zName=cms.string("zMuTrkMu") -goodZToMuMuOneTrackerMuonPathLoose.__iadd__(goodZToMuMuOneTrackerMuonEdmNtupleLoose) -goodZToMuMuOneTrackerMuonPathLoose.setLabel("goodZToMuMuOneTrackerMuonLoose") - - -ntuplesOut = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('NtupleLoose_test.root'), - outputCommands = cms.untracked.vstring( - "drop *", -# "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*", - "keep *_goodZToMuMuEdmNtupleLoose_*_*", - # "keep *_goodZToMuMu1HLTEdmNtupleLoose_*_*", - # "keep *_goodZToMuMu2HLTEdmNtupleLoose_*_*", - "keep *_goodZToMuMuAB1HLTEdmNtupleLoose_*_*", - "keep *_goodZToMuMuBB2HLTEdmNtupleLoose_*_*", - "keep *_goodZToMuMuSameChargeEdmNtupleLoose_*_*", -# "keep *_goodZToMuMuSameCharge1HLTEdmNtupleLoose_*_*", - # "keep *_nonIsolatedZToMuMuEdmNtuple_*_*", - # "keep *_oneNonIsolatedZToMuMuEdmNtuple_*_*", - # "keep *_twoNonIsolatedZToMuMuEdmNtuple_*_*", - "keep *_goodZToMuMuOneStandAloneEdmNtupleLoose_*_*", - "keep *_goodZToMuMuOneTrackEdmNtupleLoose_*_*", - "keep *_goodZToMuMuOneTrackerMuonEdmNtupleLoose_*_*", - # "keep *_goodZToMuMu2HLTVtxedNtuple_*_*", - - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuPathLoose", - # "goodZToMuMu1HLTPathLoose", - # "goodZToMuMu2HLTPathLoose", - "goodZToMuMuAB1HLTPathLoose", - "goodZToMuMuBB2HLTPathLoose", - "goodZToMuMuSameChargePathLoose", -# "goodZToMuMuSameCharge1HLTPathLoose", - # "nonIsolatedZToMuMuPath", - # "oneNonIsolatedZToMuMuPath", - # "twoNonIsolatedZToMuMuPath", - "goodZToMuMuOneTrackPathLoose", - "goodZToMuMuOneTrackerMuonPathLoose", - "goodZToMuMuOneStandAloneMuonPathLoose", - ) - ) -) - -ntuplesOut.setLabel("ntuplesOut") -NtuplesOut.__iadd__(ntuplesOut) -NtuplesOut.setLabel("NtuplesOut") - - -## #### ntuple for tight cuts - -## goodZToMuMuEdmNtupleTight = cms.EDProducer( -## "ZToLLEdmNtupleDumper", -## zBlocks = cms.VPSet( -## cms.PSet( -## zName = cms.string("zGoldenTight"), -## z = cms.InputTag("goodZToMuMuAtLeast1HLTTight"), -## zGenParticlesMatch = cms.InputTag(""), -## beamSpot = cms.InputTag("offlineBeamSpot"), -## primaryVertices = cms.InputTag("offlinePrimaryVerticesWithBS"), -## ptThreshold = cms.double(1.5), -## etEcalThreshold = cms.double(0.2), -## etHcalThreshold = cms.double(0.5), -## deltaRVetoTrk = cms.double(0.015), -## deltaRTrk = cms.double(0.3), -## deltaREcal = cms.double(0.25), -## deltaRHcal = cms.double(0.25), -## alpha = cms.double(0.), -## beta = cms.double(-0.75), -## relativeIsolation = cms.bool(False) -## ), -## ) -## ) - - - -## goodZToMuMu2HLTEdmNtupleTight = copy.deepcopy(goodZToMuMuEdmNtupleTight) -## goodZToMuMu2HLTEdmNtupleTight.zBlocks[0].z = cms.InputTag("goodZToMuMu2HLTTight") -## goodZToMuMu2HLTEdmNtupleTight.zBlocks[0].zName = cms.string("zGolden2HLTTight") -## goodZToMuMu2HLTPathTight.__iadd__(goodZToMuMu2HLTEdmNtupleTight) -## goodZToMuMu2HLTPathTight.setLabel("goodZToMuMu2HLTTight") - - -## goodZToMuMu1HLTEdmNtupleTight = copy.deepcopy(goodZToMuMuEdmNtupleTight) -## goodZToMuMu1HLTEdmNtupleTight.zBlocks[0].z = cms.InputTag("goodZToMuMu1HLTTight") -## goodZToMuMu1HLTEdmNtupleTight.zBlocks[0].zName = cms.string("zGolden1HLTTight") -## goodZToMuMu1HLTPathTight.__iadd__(goodZToMuMu1HLTEdmNtupleTight) -## goodZToMuMu1HLTPathTight.setLabel("goodZToMuMu1HLTTight") - -## oneNonIsolatedZToMuMuEdmNtupleTight = copy.deepcopy(goodZToMuMuEdmNtupleTight) -## oneNonIsolatedZToMuMuEdmNtupleTight.zBlocks[0].z = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLTTight") -## oneNonIsolatedZToMuMuEdmNtupleTight.zBlocks[0].zName = cms.string("z1NotIsoTight") -## oneNonIsolatedZToMuMuPathTight.__iadd__(oneNonIsolatedZToMuMuEdmNtupleTight) -## oneNonIsolatedZToMuMuPathTight.setLabel("oneNonIsolatedZToMuMuTight") - -## twoNonIsolatedZToMuMuEdmNtupleTight = copy.deepcopy(goodZToMuMuEdmNtupleTight) -## twoNonIsolatedZToMuMuEdmNtupleTight.zBlocks[0].z = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLTTight") -## twoNonIsolatedZToMuMuEdmNtupleTight.zBlocks[0].zName = cms.string("z2NotIsoTight") -## twoNonIsolatedZToMuMuPathTight.__iadd__(twoNonIsolatedZToMuMuEdmNtupleTight) -## twoNonIsolatedZToMuMuPathTight.setLabel("twoNonIsolatedZToMuMuTight") - -## goodZToMuMuSameCharge2HLTEdmNtupleTight= copy.deepcopy(goodZToMuMuEdmNtupleTight) -## goodZToMuMuSameCharge2HLTEdmNtupleTight.zBlocks[0].z = cms.InputTag("goodZToMuMuSameCharge2HLTTight") -## goodZToMuMuSameCharge2HLTEdmNtupleTight.zBlocks[0].zName = cms.string("zSameCharge2HLTTight") -## goodZToMuMuSameCharge2HLTPathTight.__iadd__(goodZToMuMuSameCharge2HLTEdmNtupleTight) -## goodZToMuMuSameCharge2HLTPathTight.setLabel("goodZToMuMuSameCharge2HLTTight") - - -## goodZToMuMuSameCharge1HLTEdmNtupleTight= copy.deepcopy(goodZToMuMuEdmNtupleTight) -## goodZToMuMuSameCharge1HLTEdmNtupleTight.zBlocks[0].z = cms.InputTag("goodZToMuMuSameCharge1HLTTight") -## goodZToMuMuSameCharge1HLTEdmNtupleTight.zBlocks[0].zName = cms.string("zSameCharge1HLTTight") -## goodZToMuMuSameCharge1HLTPathTight.__iadd__(goodZToMuMuSameCharge1HLTEdmNtupleTight) -## goodZToMuMuSameCharge1HLTPathTight.setLabel("goodZToMuMuSameCharge1HLTTight") - - -## goodZToMuMuOneStandAloneEdmNtupleTight= copy.deepcopy(goodZToMuMuEdmNtupleTight) -## goodZToMuMuOneStandAloneEdmNtupleTight.zBlocks[0].z=cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLTTight") -## goodZToMuMuOneStandAloneEdmNtupleTight.zBlocks[0].zName=cms.string("zMuStaTight") -## goodZToMuMuOneStandAloneMuonPathTight.__iadd__(goodZToMuMuOneStandAloneEdmNtupleTight) -## goodZToMuMuOneStandAloneMuonPathTight.setLabel("goodZToMuMuOneStandAloneMuonTight") - -## goodZToMuMuOneTrackEdmNtupleTight= copy.deepcopy(goodZToMuMuEdmNtupleTight) -## goodZToMuMuOneTrackEdmNtupleTight.zBlocks[0].z=cms.InputTag("goodZToMuMuOneTrackFirstHLTTight") -## goodZToMuMuOneTrackEdmNtupleTight.zBlocks[0].zName=cms.string("zMuTrkTight") -## goodZToMuMuOneTrackPathTight.__iadd__(goodZToMuMuOneTrackEdmNtupleTight) -## goodZToMuMuOneTrackPathTight.setLabel("goodZToMuMuOneTrackTight") - -## ntuplesOutTight = cms.OutputModule( -## "PoolOutputModule", -## fileName = cms.untracked.string('NtupleTight_test.root'), -## outputCommands = cms.untracked.vstring( -## "drop *", -## # "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*", -## "keep *_goodZToMuMuEdmNtupleTight_*_*", -## "keep *_goodZToMuMu1HLTEdmNtupleTight_*_*", -## "keep *_goodZToMuMu2HLTEdmNtupleTight_*_*", -## "keep *_goodZToMuMuSameCharge2HLTEdmNtupleTight_*_*", -## "keep *_goodZToMuMuSameCharge1HLTEdmNtupleTight_*_*", -## "keep *_nonIsolatedZToMuMuEdmNtupleTight_*_*", -## "keep *_oneNonIsolatedZToMuMuEdmNtupleTight_*_*", -## "keep *_twoNonIsolatedZToMuMuEdmNtupleTight_*_*", -## "keep *_goodZToMuMuOneStandAloneEdmNtupleTight_*_*", -## "keep *_goodZToMuMuOneTrackEdmNtupleTight_*_*", -## # "keep *_goodZToMuMu2HLTVtxedNtuple_*_*", - -## ), -## SelectEvents = cms.untracked.PSet( -## SelectEvents = cms.vstring( -## "goodZToMuMuPathTight", -## "goodZToMuMu1HLTPathTight", -## "goodZToMuMu2HLTPathTight", -## "goodZToMuMuSameCharge2HLTPathTight", -## "goodZToMuMuSameCharge1HLTPathTight", -## "nonIsolatedZToMuMuPathTight", -## "oneNonIsolatedZToMuMuPathTight", -## "twoNonIsolatedZToMuMuPathTight", -## "goodZToMuMuOneTrackPathTight", -## "goodZToMuMuOneStandAloneMuonPathTight", -## ) -## ) -## ) - - - - -## ntuplesOutTight.setLabel("ntuplesOutTight") -## NtuplesOutTight.__iadd__(ntuplesOutTight) -## NtuplesOutTight.setLabel("NtuplesOutTight") diff --git a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesPlots_cff.py b/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesPlots_cff.py deleted file mode 100644 index 1b469269698ab..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesPlots_cff.py +++ /dev/null @@ -1,212 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesSequences_cff import * -import copy - - -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)") - ) - ) -) - - - -# ZMuMu at least 1 HLT + 2 track-iso (Shape) -goodZToMuMuPlotsLoose = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLTLoose") -) - -goodZToMuMuPlots = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - - - -## #### plot for loose cuts - - -## goodZToMuMuSequence.__iadd__(goodZToMuMuPlots) -## goodZToMuMuSequence.setLabel("goodZToMuMuAtLeast1HLT") - -## #ZMuMu 2 HLT + 2 track-iso -## goodZToMuMu2HLTPlots = copy.deepcopy(goodZToMuMuPlots) -## goodZToMuMu2HLTPlots.src = cms.InputTag("goodZToMuMu2HLT") - -## goodZToMuMu2HLTSequence.__iadd__(goodZToMuMu2HLTPlots) -## goodZToMuMu2HLTSequence.setLabel("goodZToMuMu2HLT") - -## #ZMuMu 1 HLT + 2 track-iso -## goodZToMuMu1HLTPlots = copy.deepcopy(goodZToMuMuPlots) -## goodZToMuMu1HLTPlots.src = cms.InputTag("goodZToMuMu1HLT") - -## goodZToMuMu1HLTSequence.__iadd__(goodZToMuMu1HLTPlots) - - -## #ZMuMu at least 1 HLT + at least 1 NON track-iso -## nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlots) -## nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") - -## nonIsolatedZToMuMuSequence.__iadd__(nonIsolatedZToMuMuPlots) - -## #ZMuMu at least 1 HLT + 1 NON track-iso -## oneNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlots) -## oneNonIsolatedZToMuMuPlots.src = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") - -## oneNonIsolatedZToMuMuSequence.__iadd__(oneNonIsolatedZToMuMuPlots) - - -## #ZMuMu at least 1 HLT + 2 NON track-iso -## twoNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlots) -## twoNonIsolatedZToMuMuPlots.src = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") - -## twoNonIsolatedZToMuMuSequence.__iadd__(twoNonIsolatedZToMuMuPlots) - -## #ZMuSta First HLT + 2 track-iso -## goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlots) -## goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") - -## goodZToMuMuOneStandAloneMuonSequence.__iadd__(goodZToMuMuOneStandAloneMuonPlots) - - -## #ZMuTk First HLT + 2 track-iso -## goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlots) -## goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") - -## goodZToMuMuOneTrackSequence.__iadd__(goodZToMuMuOneTrackPlots) - -## #ZMuMu same charge -## goodZToMuMuSameChargeAtLeast1HLTPlots = copy.deepcopy(goodZToMuMuPlots) -## goodZToMuMuSameChargeAtLeast1HLTPlots.src = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLT") - -## goodZToMuMuSameChargeSequence.__iadd__(goodZToMuMuSameChargeAtLeast1HLTPlots) - -## goodZToMuMuSameCharge2HLTPlots = copy.deepcopy(goodZToMuMuPlots) -## goodZToMuMuSameCharge2HLTPlots.src = cms.InputTag("goodZToMuMuSameCharge2HLT") - -## goodZToMuMuSameCharge2HLTSequence.__iadd__(goodZToMuMuSameCharge2HLTPlots) - -## goodZToMuMuSameCharge1HLTPlots = copy.deepcopy(goodZToMuMuPlots) -## goodZToMuMuSameCharge1HLTPlots.src = cms.InputTag("goodZToMuMuSameCharge1HLT") - -## goodZToMuMuSameCharge1HLTSequence.__iadd__(goodZToMuMuSameCharge1HLTPlots) - - - -#### plot for tight cuts - - -goodZToMuMuPath.__iadd__(goodZToMuMuPlots) -goodZToMuMuPath.setLabel("goodZToMuMuAtLeast1HLT") - -#ZMuMu 2 HLT + 2 track-iso -goodZToMuMu2HLTPlots = copy.deepcopy(goodZToMuMuPlots) -goodZToMuMu2HLTPlots.src = cms.InputTag("goodZToMuMu2HLT") - -goodZToMuMu2HLTPath.__iadd__(goodZToMuMu2HLTPlots) -goodZToMuMu2HLTPath.setLabel("goodZToMuMu2HLT") - -#ZMuMu 1 HLT + 2 track-iso -goodZToMuMu1HLTPlots= copy.deepcopy(goodZToMuMuPlots) -goodZToMuMu1HLTPlots.src = cms.InputTag("goodZToMuMu1HLT") - -goodZToMuMu1HLTPath.__iadd__(goodZToMuMu1HLTPlots) - - -##### plot for AB and BB region -goodZToMuMuAB1HLTPlots= copy.deepcopy(goodZToMuMuPlots) -goodZToMuMuAB1HLTPlots.src = cms.InputTag("goodZToMuMuAB1HLT") -goodZToMuMuAB1HLTPath.__iadd__(goodZToMuMuAB1HLTPlots) - -goodZToMuMuBB2HLTPlots= copy.deepcopy(goodZToMuMuPlots) -goodZToMuMuBB2HLTPlots.src = cms.InputTag("goodZToMuMuBB2HLT") -goodZToMuMuBB2HLTPath.__iadd__(goodZToMuMuBB2HLTPlots) - - - -#ZMuMu at least 1 HLT + at least 1 NON track-iso -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlots) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") - -nonIsolatedZToMuMuPath.__iadd__(nonIsolatedZToMuMuPlots) - -#ZMuMu at least 1 HLT + 1 NON track-iso -oneNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlots) -oneNonIsolatedZToMuMuPlots.src = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") - -oneNonIsolatedZToMuMuPath.__iadd__(oneNonIsolatedZToMuMuPlots) - - -#ZMuMu at least 1 HLT + 2 NON track-iso -twoNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlots) -twoNonIsolatedZToMuMuPlots.src = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") - -twoNonIsolatedZToMuMuPath.__iadd__(twoNonIsolatedZToMuMuPlots) - -#ZMuSta global HLT + 2 track-iso -goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlots) -goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") - -goodZToMuMuOneStandAloneMuonPath.__iadd__(goodZToMuMuOneStandAloneMuonPlots) - - -#ZMuTk First HLT + 2 track-iso -goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlots) -goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") - -goodZToMuMuOneTrackPath.__iadd__(goodZToMuMuOneTrackPlots) - - -#ZMuTkMu global HLT + 2 track-iso -goodZToMuMuOneTrackerMuonPlots = copy.deepcopy(goodZToMuMuPlots) -goodZToMuMuOneTrackerMuonPlots.src = cms.InputTag("goodZToMuMuOneTrackerMuonFirstHLT") - -goodZToMuMuOneTrackerMuonPath.__iadd__(goodZToMuMuOneTrackerMuonPlots) - - - - - - -#ZMuMu same charge -goodZToMuMuSameChargeAtLeast1HLTPlots = copy.deepcopy(goodZToMuMuPlots) -goodZToMuMuSameChargeAtLeast1HLTPlots.src = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLT") - -goodZToMuMuSameChargePath.__iadd__(goodZToMuMuSameChargeAtLeast1HLTPlots) - -goodZToMuMuSameCharge2HLTPlots = copy.deepcopy(goodZToMuMuPlots) -goodZToMuMuSameCharge2HLTPlots.src = cms.InputTag("goodZToMuMuSameCharge2HLT") - -goodZToMuMuSameCharge2HLTPath.__iadd__(goodZToMuMuSameCharge2HLTPlots) - -goodZToMuMuSameCharge1HLTPlots = copy.deepcopy(goodZToMuMuPlots) -goodZToMuMuSameCharge1HLTPlots.src = cms.InputTag("goodZToMuMuSameCharge1HLT") - -goodZToMuMuSameCharge1HLTPath.__iadd__(goodZToMuMuSameCharge1HLTPlots) diff --git a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesSequences_cff.py b/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesSequences_cff.py deleted file mode 100644 index 14e13ee8607b0..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesSequences_cff.py +++ /dev/null @@ -1,321 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# reorganization of Z->mumu categories sequence, to run after the ZMuMu(Sub)Skim (i.d. supposing dimuons, dimuonsGlobal, dimuonsOneTrack and dimuonsOneStndAloneMuon categories has been built) - - -### parameter set to be overloaded in the configuration file - - -#from ElectroWeakAnalysis.Skimming.zMuMu_SubskimPaths_cff import * - -from ElectroWeakAnalysis.ZMuMu.goodZToMuMu_cfi import * -from ElectroWeakAnalysis.ZMuMu.goodZToMuMuSameCharge_cfi import * -from ElectroWeakAnalysis.ZMuMu.nonIsolatedZToMuMu_cfi import * -from ElectroWeakAnalysis.ZMuMu.goodZToMuMuOneTrack_cfi import * -from ElectroWeakAnalysis.ZMuMu.goodZToMuMuOneTrackerMuon_cfi import * -from ElectroWeakAnalysis.ZMuMu.goodZToMuMuOneStandAloneMuon_cfi import * - -### for zmusta modelling... - -zmumuSaMassHistogram = cms.EDAnalyzer( - "ZMuMuSaMassHistogram", - src_m = cms.InputTag("goodZToMuMu"), - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbin = cms.untracked.int32(200) - # name = cms.untracked.string("zMass") - ) - -### Primary vertex info - -eventVtxInfoNtuple = cms.EDProducer( - "EventVtxInfoNtupleDumper", - primaryVertices=cms.InputTag("offlinePrimaryVertices") -) - -# path for dumping vtx info in the ntuple -generalEventInfoPath = cms.Path( - eventVtxInfoNtuple - ) - - -### paths for loose cuts, not notIso ones, not 1HLT and 2HLT: only ZGolden, zMuSta, zMuTk, zMuTrackerMuon and ZGoldenSameCharge.. - -goodZToMuMuPathLoose = cms.Path( - - goodZToMuMuLoose + - goodZToMuMuAtLeast1HLTLoose - ) - - - -goodZToMuMu2HLTPathLoose = cms.Path( - goodZToMuMuLoose + - goodZToMuMu2HLTLoose - ) - -goodZToMuMu1HLTPathLoose = cms.Path( - goodZToMuMuLoose + - goodZToMuMu1HLTLoose - ) - -goodZToMuMuAB1HLTPathLoose=cms.Path( - goodZToMuMuNotFiltered+ ## not filtered - zToMuMuABLoose+ - goodZToMuMuABLoose+ - goodZToMuMuAB1HLTLoose -) - -goodZToMuMuBB2HLTPathLoose=cms.Path( - zToMuMuBBLoose+ - goodZToMuMuBB2HLTLoose -) - -goodZToMuMuSameChargePathLoose = cms.Path( - dimuonsGlobalSameCharge+ - goodZToMuMuSameChargeLoose + - goodZToMuMuSameChargeAtLeast1HLTLoose - ) - - -## goodZToMuMuSameCharge2HLTPathLoose = cms.Path( -## dimuonsGlobalSameCharge+ -## goodZToMuMuSameChargeLoose + -## goodZToMuMuSameCharge2HLTLoose -## ) - - -## goodZToMuMuSameCharge1HLTPathLoose = cms.Path( -## dimuonsGlobalSameCharge+ -## goodZToMuMuSameChargeLoose + -## goodZToMuMuSameCharge1HLTLoose -## ) - - - -goodZToMuMuOneStandAloneMuonPathLoose = cms.Path( -### I should deny the tight zmumu, otherwise I cut to much.... - ~goodZToMuMu + - zToMuMuOneStandAloneMuonLoose + - goodZToMuMuOneStandAloneMuonLoose + - goodZToMuMuOneStandAloneMuonFirstHLTLoose - ) - - -goodZToMuMuOneTrackerMuonPathLoose= cms.Path( - ### I should deny the tight zmumu, otherwise I cut to much.... - ~goodZToMuMu + - zToMuMuOneTrackerMuonLoose + - goodZToMuMuOneTrackerMuonLoose + - goodZToMuMuOneTrackerMuonFirstHLTLoose -) - - - -goodZToMuMuOneTrackPathLoose=cms.Path( - ### I should deny the tight zmumu, otherwise I cut to much.... - ~goodZToMuMu + - ~zToMuMuOneStandAloneMuon + - zToMuGlobalMuOneTrack + - zToMuMuOneTrackLoose + - goodZToMuMuOneTrackLoose + - goodZToMuMuOneTrackFirstHLTLoose - ) - - - - - -### sequences and path for tight cuts... - - -globalMuQualityCutsAnalysisAA= cms.EDAnalyzer( - "GlbMuQualityCutsAnalysis", - src = cms.InputTag("goodZToMuMu"), - ptMin = cms.untracked.double(0.0), - massMin = cms.untracked.double(0.0), - massMax = cms.untracked.double(200.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(10.0), - trkIso = cms.untracked.double(10000), - chi2Cut = cms.untracked.double(10), - nHitCut = cms.untracked.int32(10) - ) - -globalMuQualityCutsAnalysisAB= cms.EDAnalyzer( - "GlbMuQualityCutsAnalysis", - src = cms.InputTag("goodZToMuMuAB"), - ptMin = cms.untracked.double(0.0), - massMin = cms.untracked.double(0.0), - massMax = cms.untracked.double(200.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(10.0), - trkIso = cms.untracked.double(10000), - chi2Cut = cms.untracked.double(10), - nHitCut = cms.untracked.int32(10) - ) - -globalMuQualityCutsAnalysisAAtrk= cms.EDAnalyzer( - "GlbMuQualityCutsAnalysis", - src = cms.InputTag("goodZToMuMuOneTrackerMuon"), - ptMin = cms.untracked.double(0.0), - massMin = cms.untracked.double(0.0), - massMax = cms.untracked.double(200.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(10.0), - trkIso = cms.untracked.double(10000), - chi2Cut = cms.untracked.double(10), - nHitCut = cms.untracked.int32(10) - ) - -globalMuQualityCutsAnalysisAAsta= cms.EDAnalyzer( - "GlbMuQualityCutsAnalysis", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - ptMin = cms.untracked.double(0.0), - massMin = cms.untracked.double(0.0), - massMax = cms.untracked.double(200.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(10.0), - trkIso = cms.untracked.double(10000), - chi2Cut = cms.untracked.double(10), - nHitCut = cms.untracked.int32(10) - ) - - -initialGoodZToMuMuPath = cms.Path( - goodZToMuMu + - zmumuSaMassHistogram -) - - -goodZToMuMuPath = cms.Path( - goodZToMuMu + - goodZToMuMuAtLeast1HLT - ## globalMuQualityCutsAnalysisAA - ) - - - -goodZToMuMu2HLTPath = cms.Path( - goodZToMuMu + - goodZToMuMu2HLT - ) - - -goodZToMuMu1HLTPath = cms.Path( - goodZToMuMu + - goodZToMuMu1HLT - ) - -goodZToMuMuAB1HLTPath=cms.Path( - goodZToMuMuNotFiltered + ## not filtered - zToMuMuAB+ - goodZToMuMuAB+ - goodZToMuMuAB1HLT -## globalMuQualityCutsAnalysisAB -) - -goodZToMuMuBB2HLTPath=cms.Path( - zToMuMuBB+ - goodZToMuMuBB2HLT -) - - -goodZToMuMuSameChargePath = cms.Path( - dimuonsGlobalSameCharge+ - goodZToMuMuSameCharge + - goodZToMuMuSameChargeAtLeast1HLT - ) - - -goodZToMuMuSameCharge2HLTPath = cms.Path( - dimuonsGlobalSameCharge+ - goodZToMuMuSameCharge + - goodZToMuMuSameCharge2HLT - ) - - - -goodZToMuMuSameCharge1HLTPath = cms.Path( - dimuonsGlobalSameCharge+ - goodZToMuMuSameCharge + - goodZToMuMuSameCharge1HLT - ) - - - -nonIsolatedZToMuMuPath = cms.Path ( - nonIsolatedZToMuMu + - nonIsolatedZToMuMuAtLeast1HLT -) - - -oneNonIsolatedZToMuMuPath = cms.Path( - nonIsolatedZToMuMu + - oneNonIsolatedZToMuMu + - oneNonIsolatedZToMuMuAtLeast1HLT -) - - -twoNonIsolatedZToMuMuPath = cms.Path( - nonIsolatedZToMuMu + - twoNonIsolatedZToMuMu + - twoNonIsolatedZToMuMuAtLeast1HLT -) - - -goodZToMuMuOneStandAloneMuonPath = cms.Path( - ~goodZToMuMu + - zToMuMuOneStandAloneMuon + - goodZToMuMuOneStandAloneMuon + - goodZToMuMuOneStandAloneMuonFirstHLT -## globalMuQualityCutsAnalysisAAsta - ) - -goodZToMuMuOneTrackerMuonPath= cms.Path( - ~goodZToMuMu + - zToMuMuOneTrackerMuon + - goodZToMuMuOneTrackerMuon + - goodZToMuMuOneTrackerMuonFirstHLT -## globalMuQualityCutsAnalysisAAtrk -) - - - -goodZToMuMuOneTrackPath=cms.Path( - ~goodZToMuMu + - ~zToMuMuOneStandAloneMuon + - zToMuGlobalMuOneTrack + - zToMuMuOneTrack + - goodZToMuMuOneTrack + - goodZToMuMuOneTrackFirstHLT - ) - -###### endPath - - - - -eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -eventInfo.setLabel("eventInfo") - -NtuplesOut = cms.Sequence( - eventInfo - ) - - -VtxedNtuplesOut = cms.Sequence( - eventInfo - ) - - - -endPath = cms.EndPath( - NtuplesOut + - VtxedNtuplesOut -) - - diff --git a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesVtxed_cff.py b/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesVtxed_cff.py deleted file mode 100644 index 787c8520008cc..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuCategoriesVtxed_cff.py +++ /dev/null @@ -1,390 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesSequences_cff import * -import copy - -#### vertex refit for loose cut - -goodZToMuMuVtxedAtLeast1HLTLoose = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("goodZToMuMuAtLeast1HLTLoose") -) - -goodZToMuMuPathLoose.__iadd__(goodZToMuMuVtxedAtLeast1HLTLoose) -goodZToMuMuPathLoose.setLabel("goodZToMuMuLoose") - - -goodZToMuMuVtxed2HLTLoose = copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -goodZToMuMuVtxed2HLTLoose.src = cms.InputTag("goodZToMuMu2HLTLoose") -goodZToMuMu2HLTPathLoose.__iadd__(goodZToMuMuVtxed2HLTLoose) -goodZToMuMu2HLTPathLoose.setLabel("goodZToMuMu2HLTLoose") - - -goodZToMuMuVtxed1HLTLoose = copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -goodZToMuMuVtxed1HLTLoose.src = cms.InputTag("goodZToMuMu1HLTLoose") -goodZToMuMu1HLTPathLoose.__iadd__(goodZToMuMuVtxed1HLTLoose) -goodZToMuMu1HLTPathLoose.setLabel("goodZToMuMu1HLTLoose") - - -goodZToMuMuVtxedBB2HLTLoose = copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -goodZToMuMuVtxedBB2HLTLoose.src = cms.InputTag("goodZToMuMuBB2HLTLoose") -goodZToMuMuBB2HLTPathLoose.__iadd__(goodZToMuMuVtxedBB2HLTLoose) -goodZToMuMuBB2HLTPathLoose.setLabel("goodZToMuMuBB2HLTLoose") - - -goodZToMuMuVtxedAB1HLTLoose = copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -goodZToMuMuVtxedAB1HLTLoose.src = cms.InputTag("goodZToMuMuAB1HLTLoose") -goodZToMuMuAB1HLTPathLoose.__iadd__(goodZToMuMuVtxedAB1HLTLoose) -goodZToMuMuAB1HLTPathLoose.setLabel("goodZToMuMuAB1HLTLoose") - - - - -## oneNonIsolatedZToMuMuVtxed= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLT) -## oneNonIsolatedZToMuMuVtxed.src= cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") -## oneNonIsolatedZToMuMuPath.__iadd__(oneNonIsolatedZToMuMuVtxed) -## oneNonIsolatedZToMuMuPath.setLabel("oneNonIsolatedZToMuMu") - -## twoNonIsolatedZToMuMuVtxed = copy.deepcopy(goodZToMuMuVtxedAtLeast1HLT) -## twoNonIsolatedZToMuMuVtxed.src = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") -## twoNonIsolatedZToMuMuPath.__iadd__(twoNonIsolatedZToMuMuVtxed) -## twoNonIsolatedZToMuMuPath.setLabel("twoNonIsolatedZToMuMu") - -## goodZToMuMuSameCharge2HLTVtxedLoose= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -## goodZToMuMuSameCharge2HLTVtxedLoose.src = cms.InputTag("goodZToMuMuSameCharge2HLTLoose") -## goodZToMuMuSameCharge2HLTPathLoose.__iadd__(goodZToMuMuSameCharge2HLTVtxedLoose) -## goodZToMuMuSameCharge2HLTPathLoose.setLabel("goodZToMuMuSameCharge2HLTLoose") - - -## goodZToMuMuSameCharge1HLTVtxedLoose= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -## goodZToMuMuSameCharge1HLTVtxedLoose.src = cms.InputTag("goodZToMuMuSameCharge1HLTLoose") -## goodZToMuMuSameCharge1HLTPathLoose.__iadd__(goodZToMuMuSameCharge1HLTVtxedLoose) -## goodZToMuMuSameCharge1HLTPathLoose.setLabel("goodZToMuMuSameCharge1HLTLoose") - - -goodZToMuMuSameChargeVtxedLoose= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -goodZToMuMuSameChargeVtxedLoose.src = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLTLoose") -goodZToMuMuSameChargePathLoose.__iadd__(goodZToMuMuSameChargeVtxedLoose) -goodZToMuMuSameChargePathLoose.setLabel("goodZToMuMuSameChargeLoose") - - - -goodZToMuMuOneStandAloneVtxedLoose= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -goodZToMuMuOneStandAloneVtxedLoose.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLTLoose") -goodZToMuMuOneStandAloneMuonPathLoose.__iadd__(goodZToMuMuOneStandAloneVtxedLoose) -goodZToMuMuOneStandAloneMuonPathLoose.setLabel("goodZToMuMuOneStandAloneMuonLoose") - -goodZToMuMuOneTrackVtxedLoose= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -goodZToMuMuOneTrackVtxedLoose.src = cms.InputTag("goodZToMuMuOneTrackFirstHLTLoose") -goodZToMuMuOneTrackPathLoose.__iadd__(goodZToMuMuOneTrackVtxedLoose) -goodZToMuMuOneTrackPathLoose.setLabel("goodZToMuMuOneTrackLoose") - -goodZToMuMuOneTrackerMuonVtxedLoose= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTLoose) -goodZToMuMuOneTrackerMuonVtxedLoose.src = cms.InputTag("goodZToMuMuOneTrackerMuonFirstHLTLoose") -goodZToMuMuOneTrackerMuonPathLoose.__iadd__(goodZToMuMuOneTrackerMuonVtxedLoose) -goodZToMuMuOneTrackerMuonPathLoose.setLabel("goodZToMuMuOneTrackerMuonLoose") - - - - -### ntuples.... - -goodZToMuMuVtxedNtupleLoose = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag("goodZToMuMuVtxedLoose"), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("mass"), - quantity = cms.untracked.string("mass") - ), - cms.PSet( - tag = cms.untracked.string("vertexNdof"), - quantity = cms.untracked.string("vertexNdof") - ), - cms.PSet( - tag = cms.untracked.string("vertexNormalizedChi2"), - quantity = cms.untracked.string("vertexNormalizedChi2") - ), - ) -) - - -goodZToMuMuVtxed2HLTNtupleLoose = copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -goodZToMuMuVtxed2HLTNtupleLoose.src= cms.InputTag("goodZToMuMuVtxed2HLTLoose") -goodZToMuMu2HLTPathLoose.__iadd__(goodZToMuMuVtxed2HLTNtupleLoose) -goodZToMuMu2HLTPathLoose.setLabel("goodZToMuMu2HLTLoose") - - -goodZToMuMuVtxed1HLTNtupleLoose = copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -goodZToMuMuVtxed1HLTNtupleLoose.src= cms.InputTag("goodZToMuMuVtxed1HLTLoose") -goodZToMuMu1HLTPathLoose.__iadd__(goodZToMuMuVtxed1HLTNtupleLoose) -goodZToMuMu1HLTPathLoose.setLabel("goodZToMuMu1HLTLoose") - -goodZToMuMuVtxedBB2HLTNtupleLoose = copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -goodZToMuMuVtxedBB2HLTNtupleLoose.src= cms.InputTag("goodZToMuMuVtxedBB2HLTLoose") -goodZToMuMuBB2HLTPathLoose.__iadd__(goodZToMuMuVtxedBB2HLTNtupleLoose) -goodZToMuMuBB2HLTPathLoose.setLabel("goodZToMuMuBB2HLTLoose") - - -goodZToMuMuVtxedAB1HLTNtupleLoose = copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -goodZToMuMuVtxedAB1HLTNtupleLoose.src= cms.InputTag("goodZToMuMuVtxedAB1HLTLoose") -goodZToMuMuAB1HLTPathLoose.__iadd__(goodZToMuMuVtxedAB1HLTNtupleLoose) -goodZToMuMuAB1HLTPathLoose.setLabel("goodZToMuMuAB1HLTLoose") - - - -## oneNonIsolatedZToMuMuVtxedNtuple = copy.deepcopy(goodZToMuMuVtxedNtuple) -## oneNonIsolatedZToMuMuVtxedNtuple.src = cms.InputTag("oneNonIsolatedZToMuMuVtxed") -## oneNonIsolatedZToMuMuPath.__iadd__(oneNonIsolatedZToMuMuVtxedNtuple) -## oneNonIsolatedZToMuMuPath.setLabel("oneNonIsolatedZToMuMu") - -## twoNonIsolatedZToMuMuVtxedNtuple = copy.deepcopy(goodZToMuMuVtxedNtuple) -## twoNonIsolatedZToMuMuVtxedNtuple.src = cms.InputTag("twoNonIsolatedZToMuMuVtxed") -## twoNonIsolatedZToMuMuPath.__iadd__(twoNonIsolatedZToMuMuVtxedNtuple) -## twoNonIsolatedZToMuMuPath.setLabel("twoNonIsolatedZToMuMu") - -## goodZToMuMuVtxedSameCharge2HLTNtupleLoose= copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -## goodZToMuMuVtxedSameCharge2HLTNtupleLoose.src = cms.InputTag("goodZToMuMuVtxedSameCharge2HLTLoose") -## goodZToMuMuSameCharge2HLTPathLoose.__iadd__(goodZToMuMuVtxedSameCharge2HLTNtupleLoose) -## goodZToMuMuSameCharge2HLTPathLoose.setLabel("goodZToMuMuVtxedSameCharge2HLTLoose") - - -## goodZToMuMuVtxedSameCharge1HLTNtupleLoose= copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -## goodZToMuMuVtxedSameCharge1HLTNtupleLoose.src = cms.InputTag("goodZToMuMuVtxedSameCharge1HLTLoose") -## goodZToMuMuSameCharge1HLTPathLoose.__iadd__(goodZToMuMuVtxedSameCharge1HLTNtupleLoose) -## goodZToMuMuSameCharge1HLTPathLoose.setLabel("goodZToMuMuSameCharge1HLTLoose") - - - - -goodZToMuMuVtxedSameChargeNtupleLoose= copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -goodZToMuMuVtxedSameChargeNtupleLoose.src = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLTLoose") -goodZToMuMuSameChargePathLoose.__iadd__(goodZToMuMuVtxedSameChargeNtupleLoose) -goodZToMuMuSameChargePathLoose.setLabel("goodZToMuMuSameChargeLoose") - - -goodZToMuMuVtxedOneStandAloneNtupleLoose= copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -goodZToMuMuVtxedOneStandAloneNtupleLoose.src = cms.InputTag("goodZToMuMuOneStandAloneVtxedLoose") -goodZToMuMuOneStandAloneMuonPathLoose.__iadd__(goodZToMuMuVtxedOneStandAloneNtupleLoose) -goodZToMuMuOneStandAloneMuonPathLoose.setLabel("goodZToMuMuOneStandAloneMuonLoose") - -goodZToMuMuVtxedOneTrackNtupleLoose= copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -goodZToMuMuVtxedOneTrackNtupleLoose.src =cms.InputTag("goodZToMuMuOneTrackVtxedLoose") -goodZToMuMuOneTrackPathLoose.__iadd__(goodZToMuMuVtxedOneTrackNtupleLoose) -goodZToMuMuOneTrackPathLoose.setLabel("goodZToMuMuOneTrackLoose") - - -goodZToMuMuVtxedOneTrackerMuonNtupleLoose= copy.deepcopy(goodZToMuMuVtxedNtupleLoose) -goodZToMuMuVtxedOneTrackerMuonNtupleLoose.src =cms.InputTag("goodZToMuMuOneTrackerMuonVtxedLoose") -goodZToMuMuOneTrackerMuonPathLoose.__iadd__(goodZToMuMuVtxedOneTrackerMuonNtupleLoose) -goodZToMuMuOneTrackerMuonPathLoose.setLabel("goodZToMuMuOneTrackerMuonLoose") - - - -vtxedNtuplesOut = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('VtxedNtupleLoose_test.root'), - outputCommands = cms.untracked.vstring( - "drop *", -# "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*", - "keep *_goodZToMuMuVtxedNtupleLoose_*_*", - "keep *_goodZToMuMuVtxed1HLTNtupleLoose_*_*", - "keep *_goodZToMuMuVtxed2HLTNtupleLoose_*_*", - "keep *_goodZToMuMuVtxedAB1HLTNtupleLoose_*_*", - "keep *_goodZToMuMuVtxedBB2HLTNtupleLoose_*_*", -# "keep *_goodZToMuMuVtxedSameCharge2HLTNtupleLoose_*_*", - "keep *_goodZToMuMuVtxedSameChargeNtupleLoose_*_*", -# "keep *_nonIsolatedZToMuMuVtxedNtuple_*_*", -# "keep *_oneNonIsolatedZToMuMuVtxedNtuple_*_*", -# "keep *_twoNonIsolatedZToMuMuVtxedNtuple_*_*", - "keep *_goodZToMuMuVtxedOneStandAloneNtupleLoose_*_*", - "keep *_goodZToMuMuVtxedOneTrackNtupleLoose_*_*", - "keep *_goodZToMuMuVtxedOneTrackerMuonNtupleLoose_*_*", - # "keep *_goodZToMuMu2HLTVtxedNtuple_*_*", - - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuPathLoose", - "goodZToMuMu1HLTPathLoose", - "goodZToMuMu2HLTPathLoose", - "goodZToMuMuAB1HLTPathLoose", - "goodZToMuMuBB2HLTPathLoose", -# "goodZToMuMuSameCharge2HLTPathLoose", - "goodZToMuMuSameChargePathLoose", - # "nonIsolatedZToMuMuPath", - # "oneNonIsolatedZToMuMuPath", - # "twoNonIsolatedZToMuMuPath", - "goodZToMuMuOneTrackPathLoose", - "goodZToMuMuOneTrackerMuonPathLoose", - "goodZToMuMuOneStandAloneMuonPathLoose", - ) - ) -) - - -vtxedNtuplesOut.setLabel("vtxedNtuplesOut") -VtxedNtuplesOut.__iadd__(vtxedNtuplesOut) -VtxedNtuplesOut.setLabel("VtxedNtuplesOut") - - -## ## vertex refit for tight cut - -## goodZToMuMuVtxedAtLeast1HLTTight = cms.EDProducer( -## "KalmanVertexFitCompositeCandProducer", -## src = cms.InputTag("goodZToMuMuAtLeast1HLTTight") -## ) - - -## goodZToMuMuVtxed2HLTTight = copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTTight) -## goodZToMuMuVtxed2HLTTight.src = cms.InputTag("goodZToMuMu2HLTTight") -## goodZToMuMu2HLTPathTight.__iadd__(goodZToMuMuVtxed2HLTTight) -## goodZToMuMu2HLTPathTight.setLabel("goodZToMuMu2HLTTight") - - -## goodZToMuMuVtxed1HLTTight = copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTTight) -## goodZToMuMuVtxed1HLTTight.src = cms.InputTag("goodZToMuMu1HLTTight") -## goodZToMuMu1HLTPathTight.__iadd__(goodZToMuMuVtxed1HLTTight) -## goodZToMuMu1HLTPathTight.setLabel("goodZToMuMu1HLTTight") - -## oneNonIsolatedZToMuMuVtxedTight= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTTight) -## oneNonIsolatedZToMuMuVtxedTight.src= cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLTTight") -## oneNonIsolatedZToMuMuPathTight.__iadd__(oneNonIsolatedZToMuMuVtxedTight) -## oneNonIsolatedZToMuMuPathTight.setLabel("oneNonIsolatedZToMuMuTight") - -## twoNonIsolatedZToMuMuVtxedTight = copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTTight) -## twoNonIsolatedZToMuMuVtxedTight.src = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLTTight") -## twoNonIsolatedZToMuMuPathTight.__iadd__(twoNonIsolatedZToMuMuVtxedTight) -## twoNonIsolatedZToMuMuPathTight.setLabel("twoNonIsolatedZToMuMuTight") - -## goodZToMuMuSameCharge2HLTVtxedTight= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTTight) -## goodZToMuMuSameCharge2HLTVtxedTight.src = cms.InputTag("goodZToMuMuSameCharge2HLTTight") -## goodZToMuMuSameCharge2HLTPathTight.__iadd__(goodZToMuMuSameCharge2HLTVtxedTight) -## goodZToMuMuSameCharge2HLTPathTight.setLabel("goodZToMuMuSameCharge2HLTTight") - - -## goodZToMuMuSameCharge1HLTVtxedTight= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTTight) -## goodZToMuMuSameCharge1HLTVtxedTight.src = cms.InputTag("goodZToMuMuSameCharge1HLTTight") -## goodZToMuMuSameCharge1HLTPathTight.__iadd__(goodZToMuMuSameCharge1HLTVtxedTight) -## goodZToMuMuSameCharge1HLTPathTight.setLabel("goodZToMuMuSameCharge1HLTTight") - - - -## goodZToMuMuOneStandAloneVtxedTight= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTTight) -## goodZToMuMuOneStandAloneVtxedTight.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLTTight") -## goodZToMuMuOneStandAloneMuonPathTight.__iadd__(goodZToMuMuOneStandAloneVtxedTight) -## goodZToMuMuOneStandAloneMuonPathTight.setLabel("goodZToMuMuOneStandAloneMuonTight") - -## goodZToMuMuOneTrackVtxedTight= copy.deepcopy(goodZToMuMuVtxedAtLeast1HLTTight) -## goodZToMuMuOneTrackVtxedTight.src = cms.InputTag("goodZToMuMuOneTrackFirstHLTTight") -## goodZToMuMuOneTrackPathTight.__iadd__(goodZToMuMuOneTrackVtxedTight) -## goodZToMuMuOneTrackPathTight.setLabel("goodZToMuMuOneTrackTight") - - - -## ### ntuples.... - -## goodZToMuMuVtxedNtupleTight = cms.EDProducer( -## "CandViewNtpProducer", -## src = cms.InputTag("goodZToMuMuVtxedTight"), -## variables = cms.VPSet( -## cms.PSet( -## tag = cms.untracked.string("mass"), -## quantity = cms.untracked.string("mass") -## ), -## cms.PSet( -## tag = cms.untracked.string("vertexNdof"), -## quantity = cms.untracked.string("vertexNdof") -## ), -## cms.PSet( -## tag = cms.untracked.string("vertexNormalizedChi2"), -## quantity = cms.untracked.string("vertexNormalizedChi2") -## ), -## ) -## ) - - -## goodZToMuMuVtxed2HLTNtupleTight = copy.deepcopy(goodZToMuMuVtxedNtupleTight) -## goodZToMuMuVtxed2HLTNtupleTight.src= cms.InputTag("goodZToMuMuVtxed2HLTTight") -## goodZToMuMu2HLTPathTight.__iadd__(goodZToMuMuVtxed2HLTTightNtupleTight) -## goodZToMuMu2HLTPathTight.setLabel("goodZToMuMu2HLTTight") - - -## goodZToMuMuVtxed1HLTNtupleTight = copy.deepcopy(goodZToMuMuVtxedNtupleTight) -## goodZToMuMuVtxed1HLTNtupleTight.src= cms.InputTag("goodZToMuMuVtxed1HLTTight") -## goodZToMuMu1HLTPathTight.__iadd__(goodZToMuMuVtxed1HLTNtupleTight) -## goodZToMuMu1HLTPathTight.setLabel("goodZToMuMu1HLTTight") - -## oneNonIsolatedZToMuMuVtxedNtupleTight = copy.deepcopy(goodZToMuMuVtxedNtupleTight) -## oneNonIsolatedZToMuMuVtxedNtupleTight.src = cms.InputTag("oneNonIsolatedZToMuMuVtxedTight") -## oneNonIsolatedZToMuMuPathTight.__iadd__(oneNonIsolatedZToMuMuVtxedNtupleTight) -## oneNonIsolatedZToMuMuPathTight.setLabel("oneNonIsolatedZToMuMuTight") - -## twoNonIsolatedZToMuMuVtxedNtupleTight = copy.deepcopy(goodZToMuMuVtxedNtupleTight) -## twoNonIsolatedZToMuMuVtxedNtupleTight.src = cms.InputTag("twoNonIsolatedZToMuMuVtxed") -## twoNonIsolatedZToMuMuPathTight.__iadd__(twoNonIsolatedZToMuMuVtxedNtupleTight) -## twoNonIsolatedZToMuMuPathTight.setLabel("twoNonIsolatedZToMuMuTight") - -## goodZToMuMuVtxedSameCharge2HLTNtupleTight= copy.deepcopy(goodZToMuMuVtxedNtupleTight) -## goodZToMuMuVtxedSameCharge2HLTNtupleTight.src = cms.InputTag("goodZToMuMuVtxedSameCharge2HLTTight") -## goodZToMuMuSameCharge2HLTPathTight.__iadd__(goodZToMuMuVtxedSameCharge2HLTNtupleTight) -## goodZToMuMuSameCharge2HLTPathTight.setLabel("goodZToMuMuVtxedSameCharge2HLTTight") - - -## goodZToMuMuVtxedSameCharge1HLTNtupleTight= copy.deepcopy(goodZToMuMuVtxedNtupleTight) -## goodZToMuMuVtxedSameCharge1HLTNtupleTight.src = cms.InputTag("goodZToMuMuVtxedSameCharge1HLTTight") -## goodZToMuMuSameCharge1HLTPathTight.__iadd__(goodZToMuMuVtxedSameCharge1HLTNtupleTight) -## goodZToMuMuSameCharge1HLTPathTight.setLabel("goodZToMuMuSameCharge1HLTTight") - - -## goodZToMuMuVtxedOneStandAloneNtupleTight= copy.deepcopy(goodZToMuMuVtxedNtupleTight) -## goodZToMuMuVtxedOneStandAloneNtupleTight.src = cms.InputTag("goodZToMuMuOneStandAloneVtxedTight") -## goodZToMuMuOneStandAloneMuonPathTight.__iadd__(goodZToMuMuVtxedOneStandAloneNtupleTight) -## goodZToMuMuOneStandAloneMuonPathTight.setLabel("goodZToMuMuOneStandAloneMuonTight") - -## goodZToMuMuVtxedOneTrackNtupleTight= copy.deepcopy(goodZToMuMuVtxedNtupleTight) -## goodZToMuMuVtxedOneTrackNtupleTight.src =cms.InputTag("goodZToMuMuOneTrackVtxed") -## goodZToMuMuOneTrackPathTight.__iadd__(goodZToMuMuVtxedOneTrackNtupleTight) -## goodZToMuMuOneTrackPathTight.setLabel("goodZToMuMuOneTrackTight") - - - -## vtxedNtuplesOutTight = cms.OutputModule( -## "PoolOutputModule", -## fileName = cms.untracked.string('VtxedNtupleTight_test.root'), -## outputCommands = cms.untracked.vstring( -## "drop *", -## # "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*", -## "keep *_goodZToMuMuVtxedNtupleTight_*_*", -## "keep *_goodZToMuMuVtxed1HLTNtupleTight_*_*", -## "keep *_goodZToMuMuVtxed2HLTNtupleTight_*_*", -## "keep *_goodZToMuMuVtxedSameCharge2HLTNtupleTight_*_*", -## "keep *_goodZToMuMuVtxedSameCharge1HLTNtupleTight_*_*", -## "keep *_nonIsolatedZToMuMuVtxedNtupleTight_*_*", -## "keep *_oneNonIsolatedZToMuMuVtxedNtupleTight_*_*", -## "keep *_twoNonIsolatedZToMuMuVtxedNtupleTight_*_*", -## "keep *_goodZToMuMuVtxedOneStandAloneNtupleTight_*_*", -## "keep *_goodZToMuMuVtxedOneTrackNtupleTight_*_*", -## # "keep *_goodZToMuMu2HLTVtxedNtuple_*_*", - -## ), -## SelectEvents = cms.untracked.PSet( -## SelectEvents = cms.vstring( -## "goodZToMuMuPathTight", -## "goodZToMuMu1HLTPathTight", -## "goodZToMuMu2HLTPathTight", -## "goodZToMuMuSameCharge2HLTPathTight", -## "goodZToMuMuSameCharge1HLTPathTight", -## "nonIsolatedZToMuMuPathTight", -## "oneNonIsolatedZToMuMuPathTight", -## "twoNonIsolatedZToMuMuPathTight", -## "goodZToMuMuOneTrackPathTight", -## "goodZToMuMuOneStandAloneMuonPathTight", -## ) -## ) -## ) - - -## vtxedNtuplesOutTight.setLabel("vtxedNtuplesOutTight") -## VtxedNtuplesOutTight.__iadd__(vtxedNtuplesOutTight) -## VtxedNtuplesOutTight.setLabel("VtxedNtuplesOutTight") diff --git a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuGolden_cfi.py b/ElectroWeakAnalysis/ZMuMu/python/ZMuMuGolden_cfi.py deleted file mode 100755 index a905e7f87971e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/ZMuMuGolden_cfi.py +++ /dev/null @@ -1,86 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy - -################################################### -# muons for ZMuMu # -################################################### - -goodGlobalMuons = cms.EDFilter("MuonViewRefSelector", - src = cms.InputTag("muons"), - cut = cms.string('isGlobalMuon = 1 & isTrackerMuon = 1 & pt > 20 & abs(eta)<2.1 & isolationR03().sumPt<3.0 & abs(globalTrack().dxy)<0.2 & globalTrack().hitPattern().numberOfValidTrackerHits>10'), - filter = cms.bool(True) -) - -################################################### -# combiner module # -################################################### - -zmmCands = cms.EDFilter("CandViewShallowCloneCombiner", - checkCharge = cms.bool(True), - cut = cms.string('mass > 60 & mass<120 & charge=0'), - decay = cms.string("goodGlobalMuons@+ goodGlobalMuons@-") -) - - -# dimuon filter -dimuonsFilter = cms.EDFilter("CandViewCountFilter", - src = cms.InputTag("zmmCands"), - minNumber = cms.uint32(1) -) - -### trigger filter: selection of the events which have fired the HLT trigger path given. You may want to use it or to duisegard at all add a trigger match or not.... - - - -import HLTrigger.HLTfilters.hltHighLevel_cfi - -dimuonsHLTFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone() -# Add this to access 8E29 menu -dimuonsHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -# for 1E31 menu -#dimuonsHLTFilter.HLTPaths = ["HLT_Mu9", "HLT_DoubleMu3"] -dimuonsHLTFilter.HLTPaths = ["HLT_Mu9"] - - - - -################################################## -### trigger mathching, optional ####### -################################################## - -zSelection = cms.PSet( -## cut already implemented, but one could add more (e.g. massMin, massMax,... change the pt or eta cut....) - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 60"), - ) - - -##ZMuMu: at least one HLT trigger match -goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZGoldenSelectorAndFilter", - zSelection, - TrigTag = cms.InputTag("TriggerResults::HLT"), - triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::HLT" ), - src = cms.InputTag("zmmCands"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - L3FilterName= cms.string("hltSingleMu9L3Filtered9"), - maxDPtRel = cms.double( 1.0 ), - maxDeltaR = cms.double( 0.2 ), - filter = cms.bool(True) -) - - - - -ewkZMuMuGoldenSequence = cms.Sequence( - goodGlobalMuons -# one may want to disregard the HLT filter - # * dimuonsHLTFilter - * zmmCands - * dimuonsFilter -# one may want to disregard the HLT matching - # * goodZToMuMuAtLeast1HLT -) - - diff --git a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneStandAloneMuon_cfi.py b/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneStandAloneMuon_cfi.py deleted file mode 100644 index 9608297a52b1d..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneStandAloneMuon_cfi.py +++ /dev/null @@ -1,63 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy -from ElectroWeakAnalysis.ZMuMu.zSelection_cfi import * - -zToMuMuOneStandAloneMuonLoose = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionLoose, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - - -goodZToMuMuOneStandAloneMuonLoose = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuonLoose"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -## attention to the overlap... should be done for both tight and loose cuts - -goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - - - -#goodZToMuMuOneStandAloneMuon = copy.deepcopy(goodZTight) -#goodZToMuMuOneStandAloneMuon.src = cms.InputTag("goodZToMuMuOneStandAloneMuonLoose") - -#ZMuSta:requiring that the GlobalMuon has HLT match -goodZToMuMuOneStandAloneMuonFirstHLTLoose = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuonLoose"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -goodZToMuMuOneStandAloneMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - - -#goodZToMuMuOneStandAloneMuonFirstHLTTight = copy.deepcopy(goodZTight) -#goodZToMuMuOneStandAloneMuonFirstHLTTight.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") diff --git a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneTrackUserData_cfi.py b/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneTrackUserData_cfi.py deleted file mode 100644 index 3a040d0d16c9c..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneTrackUserData_cfi.py +++ /dev/null @@ -1,69 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy -from ElectroWeakAnalysis.ZMuMu.zSelection_cfi import * - -zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("userDataDimuonsOneTrack"), - filter = cms.bool(True) -) - -zToMuMuOneTrackLoose = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionLoose, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - - -zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - - -## attention to the overlap... should be done with tight zmumu - -goodZToMuMuOneTrackLoose = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrackLoose"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - - - -#goodZToMuMuOneTrack = copy.deepcopy(goodZTight) -#goodZToMuMuOneTrack.src = cms.InputTag("goodZToMuMuOneTrackLoose") - - -#ZMuTk:requiring that the GlobalMuon 'First' has HLT match -goodZToMuMuOneTrackFirstHLTLoose = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrackLoose"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -#goodZToMuMuOneTrackFirstHLT = copy.deepcopy(goodZTight) -#goodZToMuMuOneTrackFirstHLT.src = cms.InputTag("goodZToMuMuOneTrackFirstHLTLoose") - -goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) diff --git a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneTrack_cfi.py b/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneTrack_cfi.py deleted file mode 100644 index c295e81a83001..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneTrack_cfi.py +++ /dev/null @@ -1,71 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy -from ElectroWeakAnalysis.ZMuMu.zSelection_cfi import * - -zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - ### added UserData - src = cms.InputTag("userDataDimuonsOneTrack"), - ###src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -zToMuMuOneTrackLoose = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionLoose, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - - -zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - - -## attention to the overlap... should be done with tight zmumu - -goodZToMuMuOneTrackLoose = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrackLoose"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - - - -#goodZToMuMuOneTrack = copy.deepcopy(goodZTight) -#goodZToMuMuOneTrack.src = cms.InputTag("goodZToMuMuOneTrackLoose") - - -#ZMuTk:requiring that the GlobalMuon 'First' has HLT match -goodZToMuMuOneTrackFirstHLTLoose = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrackLoose"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -#goodZToMuMuOneTrackFirstHLT = copy.deepcopy(goodZTight) -#goodZToMuMuOneTrackFirstHLT.src = cms.InputTag("goodZToMuMuOneTrackFirstHLTLoose") - -goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) diff --git a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneTrackerMuon_cfi.py b/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneTrackerMuon_cfi.py deleted file mode 100644 index ca807eaea3ce8..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuOneTrackerMuon_cfi.py +++ /dev/null @@ -1,63 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy -from ElectroWeakAnalysis.ZMuMu.zSelection_cfi import * - - - -zToMuMuOneTrackerMuonLoose = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionLoose, - src = cms.InputTag("dimuonsOneTrackerMuon"), - filter = cms.bool(True) -) - - -zToMuMuOneTrackerMuon = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsOneTrackerMuon"), - filter = cms.bool(True) -) - - - -## attention to the overlap... should be done with tight zmumu -goodZToMuMuOneTrackerMuonLoose = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrackerMuonLoose"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -goodZToMuMuOneTrackerMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrackerMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - - - - - -#ZMuTrkMuon:requiring that the GlobalMuon has HLT match -goodZToMuMuOneTrackerMuonFirstHLTLoose = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrackerMuonLoose"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -goodZToMuMuOneTrackerMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrackerMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - - diff --git a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuSameCharge_cfi.py b/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuSameCharge_cfi.py deleted file mode 100644 index bc863ac449dfe..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMuSameCharge_cfi.py +++ /dev/null @@ -1,69 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy - -from ElectroWeakAnalysis.ZMuMu.zSelection_cfi import * - -# same charge dimuons.... -dimuonsGlobalSameCharge = cms.EDFilter( - "CandViewRefSelector", - ### added UserData - src = cms.InputTag("userDataDimuons"), - ##src = cms.InputTag("dimuons"), - cut = cms.string('charge!=0 & mass > 0 & daughter(0).isGlobalMuon = 1 & daughter(1).isGlobalMuon = 1') - ) - - -goodZToMuMuSameChargeLoose = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionLoose, - src = cms.InputTag("dimuonsGlobalSameCharge"), - filter = cms.bool(True) -) - -goodZToMuMuSameChargeLoose.cut=cms.string("charge!=0 & daughter(0).pt > 10 & daughter(1).pt > 10 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 ") - -goodZToMuMuSameCharge = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobalSameCharge"), - filter = cms.bool(True) -) - -goodZToMuMuSameCharge.cut=cms.string("charge!=0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 ") - - - - - -goodZToMuMuSameChargeAtLeast1HLTLoose = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuSameChargeLoose"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -goodZToMuMuSameChargeAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuSameCharge"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - - - -goodZToMuMuSameCharge2HLTLoose = copy.deepcopy(goodZToMuMuSameChargeAtLeast1HLTLoose) -goodZToMuMuSameCharge2HLTLoose.condition= cms.string("bothMatched") - -goodZToMuMuSameCharge1HLT = copy.deepcopy(goodZToMuMuSameChargeAtLeast1HLT) -goodZToMuMuSameCharge1HLT.condition= cms.string("bothMatched") - -goodZToMuMuSameCharge1HLTLoose = copy.deepcopy(goodZToMuMuSameChargeAtLeast1HLTLoose) -goodZToMuMuSameCharge1HLTLoose.condition= cms.string("exactlyOneMatched") - - -goodZToMuMuSameCharge2HLT = copy.deepcopy(goodZToMuMuSameChargeAtLeast1HLT) -goodZToMuMuSameCharge2HLT.condition= cms.string("exactlyOneMatched") diff --git a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMu_cfi.py b/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMu_cfi.py deleted file mode 100644 index fd19ca5f3167d..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/goodZToMuMu_cfi.py +++ /dev/null @@ -1,163 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy - -from ElectroWeakAnalysis.ZMuMu.zSelection_cfi import * - -goodZToMuMuLoose = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionLoose, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) - -) - -goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - -goodZToMuMuNotFiltered = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(False) ### not filtered, needed for AB and BB region study - -) - - - -#ZMuMu: requiring at least 1 HLT trigger match (for the shape) -goodZToMuMuAtLeast1HLTLoose = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuLoose"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - - -#ZMuMu: requiring 2 HLT trigger match -goodZToMuMu2HLTLoose = copy.deepcopy(goodZToMuMuAtLeast1HLTLoose) -goodZToMuMu2HLTLoose.condition =cms.string("bothMatched") - -goodZToMuMu2HLT = copy.deepcopy(goodZToMuMuAtLeast1HLT) -goodZToMuMu2HLT.condition =cms.string("bothMatched") - - -#ZMuMu: requiring 1 HLT trigger match -goodZToMuMu1HLTLoose = copy.deepcopy(goodZToMuMuAtLeast1HLTLoose) -goodZToMuMu1HLTLoose.condition =cms.string("exactlyOneMatched") - -goodZToMuMu1HLT = copy.deepcopy(goodZToMuMuAtLeast1HLT) -goodZToMuMu1HLT.condition =cms.string("exactlyOneMatched") - - - -### exploring the 2.1 -- 2.4 eta region -### A: |eta|<2.1, B: 2.1<|eta|<2.4 -zToMuMuABLoose = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionABLoose, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - -### two muon with 2.1< eta < 2.4 -zToMuMuBBLoose = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionBBLoose, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - -zToMuMuAB = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionAB, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -### two muon with 2.1< eta < 2.4 -zToMuMuBB = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelectionBB, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - -goodZToMuMuABLoose = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuABLoose"), - overlap = cms.InputTag("goodZToMuMuNotFiltered"), - filter = cms.bool(True) -) - - -goodZToMuMuAB = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuAB"), - overlap = cms.InputTag("goodZToMuMuNotFiltered"), - filter = cms.bool(True) -) - - -goodZToMuMuAB1HLTLoose = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuABLoose"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -goodZToMuMuBB2HLTLoose = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("zToMuMuBBLoose"), - condition =cms.string("bothMatched"), - hltPath = cms.string("HLT_DoubleMu3"), - filter = cms.bool(True) -) - - - -goodZToMuMuAB1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuAB"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -goodZToMuMuBB2HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("zToMuMuBB"), - condition =cms.string("bothMatched"), - hltPath = cms.string("HLT_DoubleMu3"), - filter = cms.bool(True) -) - - - - - - - - - - diff --git a/ElectroWeakAnalysis/ZMuMu/python/nonIsolatedZToMuMu_cfi.py b/ElectroWeakAnalysis/ZMuMu/python/nonIsolatedZToMuMu_cfi.py deleted file mode 100644 index 0089876ed3c44..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/nonIsolatedZToMuMu_cfi.py +++ /dev/null @@ -1,68 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from ElectroWeakAnalysis.ZMuMu.zSelection_cfi import * -import copy - -#### tight only.... - -#ZMuMu:at least one muon is not isolated -nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - -#ZMuMu:1 muon is not isolated -oneNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuOneNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - - - - -#ZMuMu: 2 muons are not isolated -twoNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuTwoNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - - - -#ZMuMunotIso: requiring at least 1 trigger -nonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("nonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -#ZMuMuOnenotIso: requiring at least 1 trigger -oneNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("oneNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - -#ZMuMuTwonotIso: requiring at least 1 trigger -twoNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("twoNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - diff --git a/ElectroWeakAnalysis/ZMuMu/python/zSelection_cfi.py b/ElectroWeakAnalysis/ZMuMu/python/zSelection_cfi.py deleted file mode 100644 index 077ef5a456f4e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/python/zSelection_cfi.py +++ /dev/null @@ -1,144 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -zSelectionLoose = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 15 & daughter(1).pt > 15 & abs(daughter(0).eta)<2.4 & abs(daughter(1).eta)<2.4 & mass > 0"), - isoCut = cms.double(1000.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - -# For standard isolation (I_Tkr<3GeV) choose this configuration: -# isoCut = cms.double(3.), -# ptThreshold = cms.untracked.double(1.5), -# etEcalThreshold = cms.untracked.double(0.2), -# etHcalThreshold = cms.untracked.double(0.5), -# deltaRVetoTrk = cms.untracked.double(0.015), -# deltaRTrk = cms.untracked.double(0.3), -# deltaREcal = cms.untracked.double(0.25), -# deltaRHcal = cms.untracked.double(0.25), -# alpha = cms.untracked.double(0.), -# beta = cms.untracked.double(-0.75), -# relativeIsolation = cms.bool(False) - ) - - -##### I = alpha /2 (( 1 + beta) HCal + (1 - beta) Ecal ) + (1 - alpha)Trk - -####### combined isolation -#zSelection = cms.PSet( -# cut = cms.string("charge = 0 & daughter(0).pt > 20. & daughter(1).pt > 20. & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 0"), -# isoCut = cms.double(.45), ### with alpha = 2/3 and beta =0, so 0.45 is equivalent to 0.15...... -# ptThreshold = cms.untracked.double(0.), -# etEcalThreshold = cms.untracked.double(0.), -# etHcalThreshold = cms.untracked.double(0.), -# deltaRVetoTrk = cms.untracked.double(0.01), -# deltaRTrk = cms.untracked.double(0.3), -# deltaREcal = cms.untracked.double(0.3), -# deltaRHcal = cms.untracked.double(0.3), -# alpha = cms.untracked.double(0.666667), -# beta = cms.untracked.double(0.0), -# relativeIsolation = cms.bool(True) -# ) - - -#### tracker isolation -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20. & daughter(1).pt > 20. & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 0"), - isoCut = cms.double(3.00), - ptThreshold = cms.untracked.double(0.), - etEcalThreshold = cms.untracked.double(0.), - etHcalThreshold = cms.untracked.double(0.), - deltaRVetoTrk = cms.untracked.double(0.01), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.3), - deltaRHcal = cms.untracked.double(0.3), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(0.0), - relativeIsolation = cms.bool(False) - ) - - - - -### region A: |eta|<2.1, region B: 2.1< |eta| <2.4 - -zSelectionABLoose = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 15 & daughter(1).pt > 15 & ( (abs(daughter(0).eta)<2.1 & 2.1< abs(daughter(1).eta)<2.4 ) || (abs(daughter(1).eta)<2.1 & 2.1< abs(daughter(0).eta)<2.4 ) ) & mass > 0"), - isoCut = cms.double(1000.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - ) - - -zSelectionAB = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20. & daughter(1).pt > 20. & ( (abs(daughter(0).eta)<2.1 & 2.1< abs(daughter(1).eta)<2.4 ) || (abs(daughter(1).eta)<2.1 & 2.1< abs(daughter(0).eta)<2.4 ) ) & mass > 0"), - isoCut = cms.double(1000.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - ) - - -zSelectionBBLoose = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 15 & daughter(1).pt > 15 & ( 2.1< abs(daughter(0).eta)<2.4 & 2.1< abs(daughter(1).eta)<2.4 ) & mass > 0"), - isoCut = cms.double(1000.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - ) - - -zSelectionBB = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & ( 2.1< abs(daughter(0).eta)<2.4 & 2.1< abs(daughter(1).eta)<2.4 ) & mass > 0"), - isoCut = cms.double(1000.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - ) - - - - -goodZTight = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("goodZ"), - filter = cms.bool(True) -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/BTagAnalysis.py b/ElectroWeakAnalysis/ZMuMu/test/BTagAnalysis.py deleted file mode 100644 index de162b60e1ab6..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/BTagAnalysis.py +++ /dev/null @@ -1,71 +0,0 @@ - - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuAnalysis") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( -# input = cms.untracked.int32(17810) - input = cms.untracked.int32(100) -) - -#process.load("ElectroWeakAnalysis/ZMuMu/OCTSUBSKIM_cff") - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( -"file:/afs/cern.ch/user/d/degrutto/scratch0/testZmm/CMSSW_3_5_7/src/ElectroWeakAnalysis/ZMuMu/test/ZMuMuSubskim_135149.root" -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/zmm/testZMuMuSubSkim_1.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/zmm/testZMuMuSubSkim_2.root", -# "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_1.root", -# "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_2.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_3.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_4.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_5.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_6.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/TTbar/testZMuMuSubSkim_1.root", - ) -) - - - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("ewkZMuMuCategories_oneshot_all_3_Test.root") - ) - - - - -process.globalMuQualityCutsAnalysis= cms.EDAnalyzer( - "BjetAnalysis", -# actually one can clean all it up..... I don't need any other branch..... - src = cms.InputTag("muons"), # dimuonsOneTrack, dimuonsOneStandAlone - ptMin = cms.untracked.double(0.0), - massMin = cms.untracked.double(0.0), - massMax = cms.untracked.double(120.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(10.0), - trkIso = cms.untracked.double(10000), - chi2Cut = cms.untracked.double(10), - nHitCut = cms.untracked.int32(10) - ) - - - -process.initialGoodZToMuMuPath = cms.Path( - process.globalMuQualityCutsAnalysis -) - - -#process.endPath = cms.EndPath( -# process.out -#) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/BuildFile.xml b/ElectroWeakAnalysis/ZMuMu/test/BuildFile.xml deleted file mode 100644 index 0ecd2c37519dd..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/BuildFile.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/EWKSystUnc.py b/ElectroWeakAnalysis/ZMuMu/test/EWKSystUnc.py deleted file mode 100644 index 631e50c568933..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/EWKSystUnc.py +++ /dev/null @@ -1,107 +0,0 @@ -from __future__ import print_function -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ewkSystUnc") - -process.maxEvents = cms.untracked.PSet( - #input = cms.untracked.int32(-1) - input = cms.untracked.int32(-1) -) - - -## process.source = cms.Source("PoolSource", -## debugVerbosity = cms.untracked.uint32(0), -## debugFlag = cms.untracked.bool(False), -## fileNames = cms.untracked.vstring() -## ) -## import os -## dirname = "/scratch1/cms/data/summer08/Zmumu_M20/" -## dirlist = os.listdir(dirname) -## basenamelist = os.listdir(dirname + "/") -## for basename in basenamelist: -## process.source.fileNames.append("file:" + dirname + "/" + basename) -## print "Number of files to process is %s" % (len(process.source.fileNames)) - - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:genParticlePlusISRANDFSRWeights.root', -) -) -process.evtInfo = cms.OutputModule("AsciiOutputModule") - - -process.TFileService = cms.Service("TFileService", - fileName = cms.string('EWKWeights.root') -) - - -#for i in range(41): -# proc = "process.zpdf" + str(i) - # print "proc", proc -process.ewkSyst = cms.EDAnalyzer("EWKSystUnc", - genParticles = cms.InputTag("genParticles"), - weights = cms.InputTag("xxxxx"), - nbinsMass=cms.untracked.uint32(200), - nbinsPt=cms.untracked.uint32(200), - nbinsAng=cms.untracked.uint32(200), - massMax = cms.untracked.double(200.), - ptMax= cms.untracked.double(200.), - angMax = cms.untracked.double(6.), - #parameter for the geometric acceptance - accPtMin = cms.untracked.double(20.0), - accMassMin = cms.untracked.double(60.0), - accMassMax = cms.untracked.double(120.0), - accEtaMin = cms.untracked.double(0.0), - accEtaMax = cms.untracked.double(2.1), - isMCatNLO= cms.untracked.bool(False), - outfilename= cms.untracked.string("xxxxx.txt") - ) - -w_1 = "isrWeight" -w_2 = "fsrWeight" -w_3= "isrGammaWeight" - - - -### w1 members ### -module_1 = copy.deepcopy(process.ewkSyst) -setattr(module_1, "weights", w_1) -setattr(module_1, "outfilename", w_1 + ".txt") -moduleLabel_1 = module_1.label() + w_1 -setattr(process, moduleLabel_1, module_1) - - -### w2 members ### -module_2 = copy.deepcopy(process.ewkSyst) -setattr(module_2, "weights", w_2) -setattr(module_2, "outfilename", w_2 + ".txt") -moduleLabel_2 = module_2.label() + w_2 -setattr(process, moduleLabel_2, module_2) - -### w2 members ### -module_3 = copy.deepcopy(process.ewkSyst) -setattr(module_3, "weights", w_3) -setattr(module_3, "outfilename", w_3 + ".txt") -moduleLabel_3 = module_3.label() + w_3 -setattr(process, moduleLabel_3, module_3) - -seq= module_1 + module_2 + module_3 - - - -print("sequence", seq) - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - - - - -process.path=cms.Path(seq) -process.end = cms.EndPath(process.evtInfo ) - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/EWKSystematicsAnalyzer.py b/ElectroWeakAnalysis/ZMuMu/test/EWKSystematicsAnalyzer.py deleted file mode 100644 index 2ae383e92a98e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/EWKSystematicsAnalyzer.py +++ /dev/null @@ -1,133 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process name -process = cms.Process("systAna") - -# Max events -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - #input = cms.untracked.int32(100) -) - -# Printouts -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 - - -# Input files (on disk) -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - fileNames = cms.untracked.vstring( -"file:~/Zmumu7TeVGenSimReco/0ABB0814-C082-DE11-9AB7-003048D4767C.root", -"file:~/Zmumu7TeVGenSimReco/0ABB0814-C082-DE11-9AB7-003048D4767C.root", -"file:~/Zmumu7TeVGenSimReco/38980FEC-C182-DE11-A3B5-003048D4767C.root", - "file:~/Zmumu7TeVGenSimReco/3AF703B9-AE82-DE11-9656-0015172C0925.root", -"file:~/Zmumu7TeVGenSimReco/46854F8E-BC82-DE11-80AA-003048D47673.root", - "file:~/Zmumu7TeVGenSimReco/8025F9B0-AC82-DE11-8C28-0015172560C6.root", - "file:~/Zmumu7TeVGenSimReco/88DDF58E-BC82-DE11-ADD8-003048D47679.root", - "file:~/Zmumu7TeVGenSimReco/9A115324-BB82-DE11-9C66-001517252130.root", -"file:~/Zmumu7TeVGenSimReco/FC279CAC-AD82-DE11-BAAA-001517357D36.root" - ) -) - -# Printout of generator information for the first event -process.include("SimGeneral/HepPDTESSource/data/pythiapdt.cfi") -process.printGenParticles = cms.EDAnalyzer("ParticleListDrawer", - maxEventsToPrint = cms.untracked.int32(10), - printVertex = cms.untracked.bool(False), - src = cms.InputTag("genParticles") -) - - -# Produce event weights according to generated boson Pt -# Example corresponds to approximate weights to study -# systematic effects due to ISR uncertainties (Z boson as fake example) -process.isrWeight = cms.EDProducer("ISRWeightProducer", - GenTag = cms.untracked.InputTag("VtxSmeared"), - ISRBinEdges = cms.untracked.vdouble( - 0., 1., 2., 3., 4., 5., 6., 7., 8., 9. - , 10., 11., 12., 13., 14., 15., 16., 17., 18., 19. - , 20., 21., 22., 23., 24., 25., 26., 27., 28., 29. - , 30., 31., 32., 33., 34., 35., 36., 37., 38., 39. - , 40., 41., 42., 43., 44., 45., 46., 47., 48., 49. - , 999999. - ), - PtWeights = cms.untracked.vdouble( - 0.800665, 0.822121, 0.851249, 0.868285, 0.878733 - , 0.953853, 0.928108, 0.982021, 1.00659 , 1.00648 - , 1.03218 , 1.04924 , 1.03621 , 1.08743 , 1.01951 - , 1.10519 , 0.984263, 1.04853 , 1.06724 , 1.10183 - , 1.0503 , 1.13162 , 1.03837 , 1.12936 , 0.999173 - , 1.01453 , 1.11435 , 1.10545 , 1.07199 , 1.04542 - , 1.00828 , 1.0822 , 1.09667 , 1.16144 , 1.13906 - , 1.27974 , 1.14936 , 1.23235 , 1.06667 , 1.06363 - , 1.14225 , 1.22955 , 1.12674 , 1.03944 , 1.04639 - , 1.13667 , 1.20493 , 1.09349 , 1.2107 , 1.21073 - ) -) - -# Produce event weights to estimate missing O(alpha) terms + NLO QED terms -process.fsrWeight = cms.EDProducer("FSRWeightProducer", - GenTag = cms.untracked.InputTag("VtxSmeared"), -) - -# Produce event weights to estimate missing QED ISR terms -process.isrGammaWeight = cms.EDProducer("ISRGammaWeightProducer", - GenTag = cms.untracked.InputTag("VtxSmeared"), -) - -# Produce weights for systematics -process.systematicsAnalyzer = cms.EDFilter("SimpleSystematicsAnalyzer", - SelectorPath = cms.untracked.string('systAna'), - WeightTags = cms.untracked.VInputTag("isrWeight","fsrWeight","isrGammaWeight") -) - - -# Save weights in the output file -process.load("Configuration.EventContent.EventContent_cff") -process.MyEventContent = cms.PSet( - outputCommands = process.AODSIMEventContent.outputCommands -) -process.MyEventContent.outputCommands.extend( - cms.untracked.vstring('drop *', - 'keep *_genParticles_*_*', - 'keep *_isrWeight_*_*', - 'keep *_fsrWeight_*_*', - 'keep *_isrGammaWeight_*_*', - # 'keep *_MRST2007lomodewkPdfWeights_*_*', 'keep -# *_cteq6mLHewkPdfWeights_*_*', - # 'keep *_MRST2007lomodewkPdfWeights_*_*', 'kee -#p *_MRST2004nloewkPdfWeights_*_*', - # 'keep *_genEventWeight_*_*' - ) -) - -# Output (optionaly filtered by path) -process.Output = cms.OutputModule("PoolOutputModule", - process.MyEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('systAna') - ), - fileName = cms.untracked.string('genParticlePlusISRANDFSRWeights.root') -) - - - - - - - -# Main path -process.systAna = cms.Path( - process.printGenParticles - *process.isrWeight - *process.fsrWeight - *process.isrGammaWeight - -) - -process.end = cms.EndPath(process.systematicsAnalyzer - * process.Output - ) diff --git a/ElectroWeakAnalysis/ZMuMu/test/EWK_ZMuMuAnalysis.py b/ElectroWeakAnalysis/ZMuMu/test/EWK_ZMuMuAnalysis.py deleted file mode 100755 index f2970d4a13ac1..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/EWK_ZMuMuAnalysis.py +++ /dev/null @@ -1,102 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("ZMuMuSubskim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) -#process.options.SkipEvent = cms.untracked.vstring('ProductNotFound') -process.options.FailPath = cms.untracked.vstring('ProductNotFound') - - -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 100 - - -# Input files -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - '/store/relval/CMSSW_3_8_5/RelValZMM/GEN-SIM-RECO/START38_V12-v1/0041/1C1BBE0B-D2D2-DF11-BDA3-002618943852.root' - ) -) -#import os -#dirname = "/tmp/degrutto/MinBiasMC/" -#dirlist = os.listdir(dirname) -#basenamelist = os.listdir(dirname + "/") -#for basename in basenamelist: -# process.source.fileNames.append("file:" + dirname + "/" + basename) -# print "Number of files to process is %s" % (len(process.source.fileNames)) - - - - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) ) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('START38_V12::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -### Subskim - -############ -## to run on data or without MC truth uncomment the following -#process.load("ElectroWeakAnalysis.Skimming.zMuMu_SubskimPaths_cff") -############ - -# output module configuration -process.load("ElectroWeakAnalysis.Skimming.zMuMuSubskimOutputModule_cfi") - -############ -## to run the MC truth uncomment the following -## Look also at python/ZMuMuAnalysisSchedules_cff.py -process.load("ElectroWeakAnalysis.Skimming.zMuMu_SubskimPathsWithMCTruth_cff") -process.zMuMuSubskimOutputModule.outputCommands.extend(process.mcEventContent.outputCommands) -#### - -process.zMuMuSubskimOutputModule.fileName = 'file:/tmp/fabozzi/testZMuMuSubskim_oneshot_Test.root' - -process.outpath = cms.EndPath(process.zMuMuSubskimOutputModule) - -### Here set the HLT Path for trigger matching -process.muonTriggerMatchHLTMuons.pathNames = cms.vstring( 'HLT_Mu11' ) -process.userDataMuons.hltPath = cms.string("HLT_Mu11") -process.userDataDimuons.hltPath = cms.string("HLT_Mu11") -process.userDataDimuonsOneTrack.hltPath = cms.string("HLT_Mu11") -############ - -### Analysis -from ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesSequences_cff import * - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string('ewkZMuMuCategories_oneshot_Test.root') -) - - -### vertexing -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesVtxed_cff") -process.vtxedNtuplesOut.fileName = cms.untracked.string('file:/tmp/fabozzi/VtxedNtupleLoose_test.root') - -### 3_5_X reprocessed MC: to process REDIGI HLT tables uncomment the following -#process.patTrigger.processName = "REDIGI" -#process.patTriggerEvent.processName = "REDIGI" -#process.patTrigger.triggerResults = cms.InputTag( "TriggerResults::REDIGI" ) -#process.patTrigger.triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::REDIGI" ) - -### 3_6_X reprocessed MC: to process REDIGI HLT tables uncomment the following -#process.dimuonsHLTFilter.TriggerResultsTag = cms.InputTag("TriggerResults","","REDIGI36X") -#process.patTrigger.processName = "REDIGI36X" -#process.patTriggerEvent.processName = "REDIGI36X" -#process.patTrigger.triggerResults = cms.InputTag( "TriggerResults::REDIGI36X" ) -#process.patTrigger.triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::REDIGI36X" ) - -### plots -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesPlots_cff") - -### ntuple -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuAnalysisNtupler_cff") -process.ntuplesOut.fileName = cms.untracked.string('file:/tmp/fabozzi/NtupleLooseTestNew_oneshot_all_Test.root') - -### -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuAnalysisSchedules_cff") - diff --git a/ElectroWeakAnalysis/ZMuMu/test/EWK_ZMuMuSubskimUserData.py b/ElectroWeakAnalysis/ZMuMu/test/EWK_ZMuMuSubskimUserData.py deleted file mode 100755 index c89f0b2f22759..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/EWK_ZMuMuSubskimUserData.py +++ /dev/null @@ -1,33 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TestZMuMuSubskim") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -# source -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - #'file:../../Skimming/test/mc7Tev.root' - 'rfio:/castor/cern.ch/user/f/fabozzi/mc7tev/F8EE38AF-1EBE-DE11-8D19-00304891F14E.root' - #'rfio:/castor/cern.ch/user/f/fabozzi/mc7tev/F8EE38AF-1EBE-DE11-8D19-00304891F14E.root' -# 'file:/scratch1/cms/data/summer09/aodsim/zmumu/0016/889E7356-0084-DE11-AF48-001E682F8676.root' -# 'file:testEWKMuSkim.root' - ) -) -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(500) ) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('START3X_V18::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.load("ElectroWeakAnalysis.ZMuMu.zMuMu_SubskimPathsUserData_cff") - -# Output module configuration -process.load("ElectroWeakAnalysis.ZMuMu.zMuMuSubskimOutputModuleUserData_cfi") -process.zMuMuSubskimOutputModule.fileName = 'file:testZMuMuSubskimUserData.root' - -process.outpath = cms.EndPath(process.zMuMuSubskimOutputModule) - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/EvalPdfUnc.py b/ElectroWeakAnalysis/ZMuMu/test/EvalPdfUnc.py deleted file mode 100644 index 9dec256295290..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/EvalPdfUnc.py +++ /dev/null @@ -1,211 +0,0 @@ -from __future__ import print_function -import os, sys, re -import string -import math -from ROOT import * - -usage = "usage: %s python EvalPdfUnc.py infile outfile" % os.path.basename(sys.argv[0]) - -if len(sys.argv) < 3: - print(usage) - sys.exit(2) -else: - argv = sys.argv - print(argv) - infile = argv[1] - outfile = argv[2] - print(argv[1]) - f = open(infile, 'read') - ## outfile in append mode - ff = open(outfile,'a') - - - -acc = std.vector(float)() -acc_rew = std.vector(float)() -nevt = std.vector(float)() -nevt_rew = std.vector(float)() -line= f.readline() -while line: - l=line.split() - acc.push_back( float(l[0])) - acc_rew.push_back( float(l[1]) ) - nevt.push_back( float(l[2])) - nevt_rew.push_back( float(l[3])) - line= f.readline() -f.close() -#for i in acc_rew: -# print i - - -def mean ( v): - mean = 0. - for e in v: - mean+= e - n = float(v.size()) - return ( mean / n ) - -avg_acc = mean (acc) -print("mean acc: ", avg_acc) -avg_acc_rew = mean (acc_rew) -print("mean acc_rew: ", avg_acc_rew) -diff_acc= (avg_acc_rew - avg_acc) / ( avg_acc ) -avg_nevt = mean (nevt) -print("mean nevt: ", avg_nevt) -avg_nevt_rew = mean (nevt_rew) -print("mean nevt_rew: ", avg_nevt_rew) -diff_evt = (avg_nevt_rew - avg_nevt) / ( avg_nevt ) - - -def eval_asym_sys(eff): - ## asym error according to Hof's master formula - d1 = 0. - d2 = 0. - x0 = 0. - s1 = 0. - s2 = 0. - for idx in range(len(eff)) : - i = eff[idx] - if idx == 0 : - x0 = i - else : - if idx % 2 != 0: - d1 = i - x0 - else : - d2 = x0 - i - if(d1 < 0) : - #if (d2<0): - # d1=0 - # d2=0 - tmp = d1 - d1 = -d2 - d2 = -tmp - print(idx/2, ' ' , x0, '[+', d1, ' -', d2, ']') - m1 = max(d1, 0.) - s1 += m1*m1 - m2 = max(d2, 0.) - s2 += m2*m2 - s1 = sqrt(s1) - s2 = sqrt(s2) - print(infile, 'asym error', file=ff) - print(' x = ', x0, '[+', s1, ' -', s2, ']', file=ff) - print('err = +', s1/x0*100, ' -', s2/x0*100, file=ff) - - - -def eval_max_asym_sys(eff): - ## symmetrizing the error, taking each step the max between the two asym errors - d1 = 0. - d2 = 0. - x0 = 0. - s1 = 0. - for idx in range(len(eff)) : - i = eff[idx] - if idx == 0 : - x0 = i - else : - if idx % 2 != 0: - d1 = i - x0 - else : - d2 = x0 - i - if(d1 < 0) : - #if (d2<0): - # d1=0 - # d2=0 - tmp = d1 - d1 = -d2 - d2 = -tmp - print(idx/2, ' ' , x0, '[+', d1, ' -', d2, ']') - m = max(abs(d1), abs(d2)) - s1 += m*m - s1 = sqrt(s1) - print(infile, 'sym error taking the max between asym errors', file=ff) - print(' x = ', x0, '[+', s1, ' -', s1, ']', file=ff) - print('err = +', s1/x0*100, ' -', s1/x0*100, file=ff) - - - - -def eval_mean_asym_sys(eff): - ## symmetrizing the error, taking each step the mean between the two asym errors - d1 = 0. - d2 = 0. - x0 = 0. - s1 = 0. - for idx in range(len(eff)) : - i = eff[idx] - if idx == 0 : - x0 = i - else : - if idx % 2 != 0: - d1 = i - x0 - else : - d2 = x0 - i - if(d1 < 0) : - #if (d2<0): - # d1=0 - # d2=0 - tmp = d1 - d1 = -d2 - d2 = -tmp - print(idx/2, ' ' , x0, '[+', d1, ' -', d2, ']') - m = 0.5 * ( abs(d1) + abs(d2)) - s1 += m*m - s1 = sqrt(s1) - print(infile, 'sym error taking the mean between asym errors', file=ff) - print(' x = ', x0, '[+', s1, ' -', s1, ']', file=ff) - print('err = +', s1/x0*100, ' -', s1/x0*100, file=ff) - - - -def eval_quadsum_asym_sys(eff): - ## symmetrizing the error, taking each step the quadractic sum between the two asym errors - d1 = 0. - d2 = 0. - x0 = 0. - s1 = 0. - for idx in range(len(eff)) : - i = eff[idx] - if idx == 0 : - x0 = i - else : - if idx % 2 != 0: - d1 = i - x0 - else : - d2 = x0 - i - if(d1 < 0) : - #if (d2<0): - # d1=0 - # d2=0 - tmp = d1 - d1 = -d2 - d2 = -tmp - print(idx/2, ' ' , x0, '[+', d1, ' -', d2, ']') - m = sqrt( 0.5 *( abs(d1)* abs(d1) + abs(d2)*abs(d2)) ) - s1 += m*m - s1 = sqrt(s1) - print(infile, 'sym error taking the qaudratic sum between asym errors', file=ff) - print(' x = ', x0, '[+', s1, ' -', s1, ']', file=ff) - print('err = +', s1/x0*100, ' -', s1/x0*100, file=ff) - - -sys_acc_asym = eval_asym_sys(acc_rew) -sys_nevt_asym = eval_asym_sys(nevt_rew ) - - -sys_acc_max_asym = eval_max_asym_sys(acc_rew) -sys_nevt_max_asym = eval_max_asym_sys(nevt_rew ) - -sys_acc_mean_asym = eval_mean_asym_sys(acc_rew) -sys_nevt_mean_asym = eval_mean_asym_sys(nevt_rew ) - -sys_acc_quadsum_asym = eval_quadsum_asym_sys(acc_rew) -sys_nevt_quadsum_asym = eval_quadsum_asym_sys(nevt_rew ) - - - - - -#print "sys acc:", acc_rew[0], " +- " , sys_acc -#print "sys nevt:", nevt_rew[0], " +- " , sys_nevt - diff --git a/ElectroWeakAnalysis/ZMuMu/test/MuAnalysis.py b/ElectroWeakAnalysis/ZMuMu/test/MuAnalysis.py deleted file mode 100644 index e1657afd0ece0..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/MuAnalysis.py +++ /dev/null @@ -1,245 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("MuonAnalysis") - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - -#"file:~/www/2010/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133483_331.root" -# "file:MuTriggerReco_1_1.root" - - - ) -) - -#import os -#dirname = "/data4/Skimming/SkimResults/135" -#dirlist = os.listdir(dirname) -#basenamelist = os.listdir(dirname + "/") -#for basename in basenamelist: -# process.source.fileNames.append("file:" + dirname + "/" + basename) -# print "Number of files to process is %s" % (len(process.source.fileNames)) - - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 10000 - - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('START3X_V21::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.load("ElectroWeakAnalysis.Skimming.patCandidatesForZMuMuSubskim_cff") - -process.selectedPatMuons.cut = 'pt > 5. & abs(eta) < 100.0' - -process.load("ElectroWeakAnalysis.Skimming.zMuMuMuonUserData") - - - - - - - - - - -### CandViewNtpProducer Configuration - common to all categories. - -process.goodMuonsEdmNtuple = cms.EDProducer( - "CandViewNtpProducer", - src=cms.InputTag("userDataMuons"), - lazyParser=cms.untracked.bool(True), - prefix=cms.untracked.string("Mu"), - eventInfo=cms.untracked.bool(True), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("Pt"), - quantity = cms.untracked.string("pt") - ), - cms.PSet( - tag = cms.untracked.string("Eta"), - quantity = cms.untracked.string("eta") - ), - cms.PSet( - tag = cms.untracked.string("Phi"), - quantity = cms.untracked.string("phi") - ), - cms.PSet( - tag = cms.untracked.string("Q"), - quantity = cms.untracked.string("charge") - ), - cms.PSet( - tag = cms.untracked.string("Iso"), - quantity = cms.untracked.string("userIso(3)") - ), - cms.PSet( - tag = cms.untracked.string("RelIso"), - quantity = cms.untracked.string("userIso(4)") - ), - cms.PSet( - tag = cms.untracked.string("TrkIso"), - quantity = cms.untracked.string("userIso(0)") - ), - cms.PSet( - tag = cms.untracked.string("EcalIso"), - quantity = cms.untracked.string("userIso(1)") - ), - cms.PSet( - tag = cms.untracked.string("HcalIso"), - quantity = cms.untracked.string("userIso(2)") - ), - cms.PSet( - tag = cms.untracked.string("DxyFromBS"), - quantity = cms.untracked.string("userFloat('zDau_dxyFromBS')") - ), - cms.PSet( - tag = cms.untracked.string("DzFromBS"), - quantity = cms.untracked.string("userFloat('zDau_dzFromBS')") - ), - cms.PSet( - tag = cms.untracked.string("DxyFromPV"), - quantity = cms.untracked.string("userFloat('zDau_dxyFromPV')") - ), - cms.PSet( - tag = cms.untracked.string("DzFromPV"), - quantity = cms.untracked.string("userFloat('zDau_dzFromPV')") - ), - cms.PSet( - tag = cms.untracked.string("HLTBit"), - quantity = cms.untracked.string("userFloat('zDau_HLTBit')") - ), - cms.PSet( - tag = cms.untracked.string("Chi2"), - quantity = cms.untracked.string("userFloat('zDau_Chi2')") - ), - cms.PSet( - tag = cms.untracked.string("TrkChi2"), - quantity = cms.untracked.string("userFloat('zDau_TrkChi2')") - ), - cms.PSet( - tag = cms.untracked.string("SaChi2"), - quantity = cms.untracked.string("userFloat('zDau_SaChi2')") - ), - cms.PSet( - tag = cms.untracked.string("NofMuonHits"), - quantity = cms.untracked.string("userFloat('zDau_NofMuonHits')") - ), - cms.PSet( - tag = cms.untracked.string("SaNofMuonHits"), - quantity = cms.untracked.string("userFloat('zDau_SaNofMuonHits')") - ), - cms.PSet( - tag = cms.untracked.string("NofStripHits"), - quantity = cms.untracked.string("userFloat('zDau_NofStripHits')") - ), - cms.PSet( - tag = cms.untracked.string("NofPixelHits"), - quantity = cms.untracked.string("userFloat('zDau_NofPixelHits')") - ), - cms.PSet( - tag = cms.untracked.string("TrkNofStripHits"), - quantity = cms.untracked.string("userFloat('zDau_TrkNofStripHits')") - ), - cms.PSet( - tag = cms.untracked.string("NofMuChambers"), - quantity = cms.untracked.string("userFloat('zDau_NofMuChambers')") - ), - cms.PSet( - tag = cms.untracked.string("NofMuMatches"), - quantity = cms.untracked.string("userFloat('zDau_NofMuMatches')") - ), - cms.PSet( - tag = cms.untracked.string("EnergyEm"), - quantity = cms.untracked.string("userFloat('zDau_MuEnergyEm')") - ), - cms.PSet( - tag = cms.untracked.string("GlobalMuonBit"), - quantity = cms.untracked.string("isGlobalMuon") - ), - cms.PSet( - tag = cms.untracked.string("StandAloneBit"), - quantity = cms.untracked.string("isStandAloneMuon") - ), - cms.PSet( - tag = cms.untracked.string("TrackerMuonBit"), - quantity = cms.untracked.string("isTrackerMuon") - ), - - - ) - ) - - - - - - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * - -EventContent = cms.PSet( - outputCommands = cms.untracked.vstring( - ) - ) - -## ntpEventContent = cms.PSet( -## outputCommands = cms.untracked.vstring( -## "keep *_goodMuonsNtuples_*_*" -## ) -## ) - -EventContent.outputCommands.extend(RECOEventContent.outputCommands) -## EventContent.outputCommands.extend(ntpEventContent.outputCommands) - - -EventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'muonsNtpPath') - ) - ) - - -process.OutputModule = cms.OutputModule("PoolOutputModule", - EventContent, - EventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('muonsNtpPath'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('MuReco.root') - - ) - - -process.ntuplesOut = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('MuonsNtuple.root'), - outputCommands = cms.untracked.vstring( - "drop *", - "keep *_goodMuonsEdmNtuple_*_*" - - ) - ) - - - -process.muonsNtpPath = cms.Path( - process.goodMuonRecoForDimuon * - process.userDataMuons * - process.goodMuonsEdmNtuple - ) - - - - -process.outpath = cms.EndPath(process.OutputModule) - -process.ntpoutpath = cms.EndPath(process.ntuplesOut) - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/MuTriggerAnalysis.py b/ElectroWeakAnalysis/ZMuMu/test/MuTriggerAnalysis.py deleted file mode 100644 index a97ac43c18918..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/MuTriggerAnalysis.py +++ /dev/null @@ -1,160 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TriggerAnalysis2") - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - -#"file:~/www/2010/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133483_331.root" -# "file:MuTriggerReco_1_1.root" - -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_1.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_10.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_11.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_12.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_13.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_2.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_3.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_4.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_5.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_6.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_7.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_8.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133874_9.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133875_1.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133875_2.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133875_3.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133875_4.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133876_1.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133876_2.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133876_3.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133876_4.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_1.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_10.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_2.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_3.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_4.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_5.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_6.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_7.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_8.root", -#"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133877_9.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133881_1.root", -"file:/data4/Skimming/SkimResults/133/EWKMuSkim_L1TG04041_AllMuAtLeastThreeTracks133885_1.root", - - ) -) - -#import os -#dirname = "/data4/Skimming/SkimResults/133" -#dirlist = os.listdir(dirname) -#basenamelist = os.listdir(dirname + "/") -#for basename in basenamelist: -# process.source.file:Names.append("file::" + dirname + "/" + basename) -# print "Number of file:s to process is %s" % (len(process.source.file:Names)) - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 10000 - - -process.source.inputCommands = cms.untracked.vstring("keep *", "drop *_MEtoEDMConverter_*_*", "drop L1GlobalTriggerObjectMapRecord_hltL1GtObjectMap__HLT") - -#process.maxEvents = cms.untracked.PSet( -# input = cms.untracked.int32(-1) -#) - -process.TFileService = cms.Service("TFileService", - fileName = cms.string('MuTriggerNew.root') -) - -# Muon filter, you can choose to add/remove/loose/tighten cuts (isolation cuts for example) - -### muon with all quality cuts except iso -process.goodMuonsNotIso = cms.EDFilter("MuonSelector", - src = cms.InputTag("muons"), - cut = cms.string('( isGlobalMuon=1 && isTrackerMuon ) && isolationR03().sumPt<1000.0 && abs(innerTrack().dxy)<0.5 && (globalTrack().hitPattern().numberOfValidMuonHits()>0) && (globalTrack.hitPattern().numberOfValidStripHits()>=10) && (globalTrack().normalizedChi2()<10) '), - filter = cms.bool(True) - ) - -### all quality cuts -process.goodMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag("muons"), - cut = cms.string('( isGlobalMuon=1 && isTrackerMuon ) && isolationR03().sumPt<3.0 && abs(innerTrack().dxy)<0.5 && (globalTrack().hitPattern().numberOfValidMuonHits()>0) && (globalTrack.hitPattern().numberOfValidStripHits()>=10) && (globalTrack().normalizedChi2()<10) '), - filter = cms.bool(True) - ) - -#### no quality cuts -process.goodMuonsNoCuts = cms.EDFilter("MuonSelector", - src = cms.InputTag("muons"), - cut = cms.string('( isGlobalMuon=1 && isTrackerMuon ) '), - filter = cms.bool(True) - ) - - - -process.MuTriggerAnalyzerAllCuts = cms.EDAnalyzer( - "MuTriggerAnalyzer", - muons= cms.untracked.InputTag("goodMuons"), - TrigTag = cms.InputTag("TriggerResults::HLT"), - triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::HLT" ), - hltPath = cms.string("HLT_Mu9"), -##HLT_Mu9 - L3FilterName= cms.string("hltSingleMu9L3Filtered9"), - ### ("hltL2Mu9L2Filtered9"), -##hltSingleMu9L3Filtered9 - maxDPtRel = cms.double( 1.0 ), - maxDeltaR = cms.double( 0.5 ), - ptMuCut = cms.untracked.double( 5.0 ), - etaMuCut = cms.untracked.double( 2.1 ), - ptMax_=cms.double( 40.0 ) -) - -import copy -process.MuTriggerAnalyzerAllCutsButIso= copy.deepcopy(process.MuTriggerAnalyzerAllCuts) -process.MuTriggerAnalyzerAllCutsButIso.muons= cms.untracked.InputTag("goodMuonsNotIso") - -process.MuTriggerAnalyzerNoCuts= copy.deepcopy(process.MuTriggerAnalyzerAllCuts) -process.MuTriggerAnalyzerNoCuts.muons= cms.untracked.InputTag("goodMuonsNoCuts") - - - - - - -process.pAllCuts = cms.Path(process.goodMuons* process.MuTriggerAnalyzerAllCuts) -process.pAllCutsButIso = cms.Path(process.goodMuonsNotIso* process.MuTriggerAnalyzerAllCutsButIso) -process.pNoCuts = cms.Path(process.goodMuonsNoCuts* process.MuTriggerAnalyzerNoCuts) - - -# Output module configuration -from Configuration.EventContent.EventContent_cff import * -EventContent = cms.PSet( - outputCommands = cms.untracked.vstring() - ) - -EventContent.outputCommands.extend(FEVTEventContent.outputCommands) - - -EventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - 'pAllCuts','pAllCutsButIso','pNoCuts') - ) - ) - - -process.OutputModule = cms.OutputModule("PoolOutputModule", - EventContent, - EventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('pAllCuts'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('MuTriggerReco.root') - - ) - - -#process.outpath = cms.EndPath(process.OutputModule) diff --git a/ElectroWeakAnalysis/ZMuMu/test/PdfSystematicsAnalyzer.py b/ElectroWeakAnalysis/ZMuMu/test/PdfSystematicsAnalyzer.py deleted file mode 100644 index 23b28a8d8d626..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/PdfSystematicsAnalyzer.py +++ /dev/null @@ -1,128 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -## produced the weigths according to the given pdf sets... After one needs to run the zPdfUnc.py and EvalPdfUnc.py - -#### intented to run with that prescription: -### cmsrel CMSSW_3_3_X -### cd CMSSW_3_3_X/src -### addpkg ElectroWeakAnalysis/Utilities V00-01-07 -### addpkg MuonAnalysis/MomentumScaleCalibration V00-03-03 -### scram setup lhapdffull -### scram b ToolUpdated -### emacs -nw ElectroWeakAnalysis/Utilities/BuildFile .... to change the build file ( Comment the and Uncomment the ) -### scram b -### cd ElectroWeakAnalysis/Utilities/test/ -### cmsenv -#### cmsRun PdfSystematicsAnalyzer.py - - -# Process name -process = cms.Process("PDFANA") - - - - -# Max events and printouts -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -process.load("FWCore.MessageLogger.MessageLogger_cfi") - -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 - -#process.options = cms.untracked.PSet( -# wantSummary = cms.untracked.bool(True) -#) - - -# Input files (on disk) -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - fileNames = cms.untracked.vstring( - - #"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/0ABB0814-C082-DE11-9AB7-003048D4767C.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/38980FEC-C182-DE11-A3B5-003048D4767C.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/3AF703B9-AE82-DE11-9656-0015172C0925.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/46854F8E-BC82-DE11-80AA-003048D47673.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/8025F9B0-AC82-DE11-8C28-0015172560C6.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/88DDF58E-BC82-DE11-ADD8-003048D47679.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/9A115324-BB82-DE11-9C66-001517252130.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/FC279CAC-AD82-DE11-BAAA-001517357D36.root") -) -# Produce PDF weights (maximum is 3) -process.pdfWeights = cms.EDProducer("PdfWeightProducer", - PdfInfoTag = cms.untracked.InputTag("VtxSmeared"), - PdfSetNames = cms.untracked.vstring( - "cteq65.LHgrid", # 21 members - "MRST2006nnlo.LHgrid" # 31 members - , "MRST2007lomod.LHgrid" # 1 member - ) -) - -## other three pdf sets -# Produce PDF weights (maximum is 3) -#process.pdfWeights = cms.EDProducer("PdfWeightProducer", -# PdfInfoTag = cms.untracked.InputTag("VtxSmeared"), -# PdfSetNames = cms.untracked.vstring( -# "cteq61.LHgrid", # 21 members -# "MRST2004nlo.LHgrid" # 1 members -# , "MRST2004nnlo.LHgrid" # 1 member -# ) -#) - - - - -# Save PDF weights in the output file -process.load("Configuration.EventContent.EventContent_cff") -process.MyEventContent = cms.PSet( - outputCommands = process.AODSIMEventContent.outputCommands -) -process.MyEventContent.outputCommands.extend( - cms.untracked.vstring('drop *', - 'keep *_genParticles_*_*', - 'keep *_pdfWeights_*_*', - # 'keep *_MRST2007lomodewkPdfWeights_*_*', 'keep -# *_cteq6mLHewkPdfWeights_*_*', - # 'keep *_MRST2007lomodewkPdfWeights_*_*', 'kee -#p *_MRST2004nloewkPdfWeights_*_*', - # 'keep *_genEventWeight_*_*' - ) -) - -# Output (optionaly filtered by path) -process.pdfOutput = cms.OutputModule("PoolOutputModule", - process.MyEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('pdfana') - ), - fileName = cms.untracked.string('genParticlePlusCteq65AndMRST06NNLOAndMSTW2007LOmodWeigths.root') -) - - - - - - - -# Selector and parameters -# WMN fast selector (use W candidates in this example) -#process.load("ElectroWeakAnalysis.WMuNu.WMuNuSelection_cff") - -# Collect uncertainties for rate and acceptance -process.pdfSystematics = cms.EDFilter("PdfSystematicsAnalyzer", - SelectorPath = cms.untracked.string('pdfana'), - PdfWeightTags = cms.untracked.VInputTag( - "pdfWeights:cteq65" - , "pdfWeights:MRST2006nnlo" - , "pdfWeights:MRST2007lomod" - ) -) - -# Main path -process.pdfana = cms.Path( - process.pdfWeights - -) - -process.end = cms.EndPath(process.pdfSystematics * process.pdfOutput) diff --git a/ElectroWeakAnalysis/ZMuMu/test/ZMuMuAnalysis_Ntuples_cfg.py b/ElectroWeakAnalysis/ZMuMu/test/ZMuMuAnalysis_Ntuples_cfg.py deleted file mode 100755 index d7bde3c986b5e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/ZMuMuAnalysis_Ntuples_cfg.py +++ /dev/null @@ -1,63 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("ZMuMuNtupla") - - - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 100 - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -#process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') -process.GlobalTag.globaltag = cms.string('START3X_V18::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(100) -) - - - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - - "file:testZMuMuSubskimUserData.root" - - ) - ) - - - -# replace ZSelection if wanted...... -## from ElectroWeakAnalysis.ZMuMu.zSelection_cfi import * -## zSelection.cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 0") - - - -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesSequencesUserData_cff") - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("ewkZMuMuCategoriesTest.root") -) - - -### vertexing -#process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesVtxed_cff") - -### plots - -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesPlots_cff") - -### ntuple - -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuAnalysisNtupler_cff") - - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/ZMuMuCategories_cfg.py b/ElectroWeakAnalysis/ZMuMu/test/ZMuMuCategories_cfg.py deleted file mode 100755 index 677133cfadace..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/ZMuMuCategories_cfg.py +++ /dev/null @@ -1,57 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EwkZMuMuCategories") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 100 - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -#process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') -#process.GlobalTag.globaltag = cms.string('START3X_V26::All') -process.GlobalTag.globaltag = cms.string('START38_V12::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - - - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - "file:/tmp/fabozzi/testZMuMuSubskim.root" - ) -) - -# replace ZSelection if wanted...... -## from ElectroWeakAnalysis.ZMuMu.zSelection_cfi import * -## zSelection.cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 0") - -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesSequences_cff") - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("ewkZMuMuCategories.root") -) - - -### vertexing -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesVtxed_cff") - -### plots - -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesPlots_cff") - -### ntuple - -### Added UserData - -#process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuCategoriesNtuples_cff") -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuAnalysisNtupler_cff") -process.ntuplesOut.fileName = cms.untracked.string('file:/tmp/fabozzi/NtupleLooseTestNew.root') - diff --git a/ElectroWeakAnalysis/ZMuMu/test/ZMuMuGolden_cfg.py b/ElectroWeakAnalysis/ZMuMu/test/ZMuMuGolden_cfg.py deleted file mode 100755 index 924bce534d48e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/ZMuMuGolden_cfg.py +++ /dev/null @@ -1,94 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("EwkZMuMuGolden") - -process.load("ElectroWeakAnalysis.ZMuMu.ZMuMuGolden_cfi") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 1 - -#process.load("Configuration.StandardSequences.Geometry_cff") -#process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -#process.GlobalTag.globaltag = cms.string('') -#process.load("Configuration.StandardSequences.MagneticField_cff") - - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - - - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/1CD6D0A6-1E64-DF11-BB60-001D09FD0D10.root', - # 'rfio:/castor/cern.ch/cms/store/relval/CMSSW_3_4_0_pre1/RelValZMM/GEN-SIM-RECO/STARTUP31X_V8-v1/0007/CAE2081C-48B5-DE11-9161-001D09F29321.root', - ) -) - - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("ewkZMuMuGolden.root") -) - -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)") - ) - ) -) - - - - -process.goodZToMuMuPlots = cms.EDFilter( - "CandViewHistoAnalyzer", - zPlots, -# src = cms.InputTag("goodZToMuMuAtLeast1HLT"), - src = cms.InputTag("zmmCands"), - filter = cms.bool(False) -) - - - - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -process.ewkZMuMuGoldenPath = cms.Path( - process.ewkZMuMuGoldenSequence * - process.goodZToMuMuPlots -) - - - -process.endPath = cms.EndPath( - process.eventInfo -) diff --git a/ElectroWeakAnalysis/ZMuMu/test/ZMuMu_MCanalysis.py b/ElectroWeakAnalysis/ZMuMu/test/ZMuMu_MCanalysis.py deleted file mode 100644 index a10bf2925a5c1..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/ZMuMu_MCanalysis.py +++ /dev/null @@ -1,157 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("ZMuMuMCanalysis") -#process.load("ElectroWeakAnalysis.Skimming.mcTruthForDimuons_cff") -#process.load("ElectroWeakAnalysis/Skimming/zMuMu_SubskimPathsWithMCTruth_cff") -#adapting what we have in zMuMu_SubskimPathsWithMCTruth_cff, we don't need to add user data.... - - -process.load("ElectroWeakAnalysis.Skimming.patCandidatesForZMuMuSubskim_cff") -#### quality cut to apply or not -process.patAODTrackCands.cut = 'pt > 20.' -process.selectedPatTracks.cut = 'pt > 20. & abs(eta)<2.1 & ( track().hitPattern().numberOfValidStripHits + track().hitPattern().numberOfValidPixelHits)>= 10 & track().normalizedChi2()<10.' - -process.selectedPatMuons.cut = 'pt > 20. & abs(eta)<2.1 & ( (isGlobalMuon & (globalTrack().hitPattern().numberOfValidStripHits + globalTrack().hitPattern().numberOfValidPixelHits)>= 10 & globalTrack().normalizedChi2()<10. & outerTrack().hitPattern().numberOfValidMuonHits>0 ) || (isStandAloneMuon & outerTrack().normalizedChi2()<10. & outerTrack().hitPattern().numberOfValidMuonHits>0 ))' - - -### temporarly form 31X-->35X reprocessed spring10 data -process.patTrigger.processName = "REDIGI" -process.patTriggerEvent.processName = "REDIGI" -process.patTrigger.triggerResults = cms.InputTag( "TriggerResults::REDIGI" ) -process.patTrigger.triggerEvent = cms.InputTag( "hltTriggerSummaryAOD::REDIGI" ) - - - -process.load("ElectroWeakAnalysis.Skimming.dimuons_cfi") -process.load("ElectroWeakAnalysis.Skimming.dimuonsOneTrack_cfi") -process.load("ElectroWeakAnalysis.Skimming.dimuonsGlobal_cfi") -process.load("ElectroWeakAnalysis.Skimming.dimuonsOneStandAloneMuon_cfi") - -# MC matching sequence -process.load("ElectroWeakAnalysis.Skimming.mcTruthForDimuons_cff") -process.goodMuonMCMatch.src = 'selectedPatMuonsTriggerMatch' -process.goodTrackMCMatch.src = 'selectedPatTracks' - - - - - - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 - - - - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -#process.GlobalTag.globaltag = cms.string('START37_V1A::All') -process.GlobalTag.globaltag = cms.string('MC_3XY_V26::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -#'file:/tmp/degrutto/testDimuonSkim_all.root' -#'rfio:/castor/cern.ch/user/f/fabozzi/testsubskimMC/testZMuMuSubskim.root' -'rfio:/castor/cern.ch/user/f/fabozzi/mc7tev/spring10/38262142-DF46-DF11-8238-0030487C6A90.root' - -#'rfio:/castor/cern.ch/user/f/fabozzi/mc7tev/F8EE38AF-1EBE-DE11-8D19-00304891F14E.root' - - ) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) -process.TFileService = cms.Service("TFileService", - fileName = cms.string('zMuMu_MCanalysis.root') -) - -process.zToMuMu = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("dimuons"), - cut = cms.string('daughter(0).isGlobalMuon = 1 & daughter(1).isGlobalMuon = 1 & charge=0'), -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("dimuonsOneStandAloneMuon"), - overlap = cms.InputTag("zToMuMu"), -) - -process.zToMuMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - src = cms.InputTag("dimuonsOneTrack"), - cut = cms.string('daughter(0).isGlobalMuon = 1 & charge=0'), -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("zToMuMu"), -) - - -process.zMuMu_MCanalyzer = cms.EDFilter("ZMuMu_MCanalyzer", - muons = cms.InputTag("selectedPatMuons"), - tracks = cms.InputTag("selectedPatTracks"), - zMuMu = cms.InputTag("zToMuMu"), - zMuStandAlone = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - zMuTrack = cms.InputTag("goodZToMuMuOneTrack"), - zMuMuMatchMap = cms.InputTag("allDimuonsMCMatch"), - zMuStandAloneMatchMap = cms.InputTag("allDimuonsMCMatch"), - zMuTrackMatchMap = cms.InputTag("dimuonsOneTrackMCMatch"), - genParticles = cms.InputTag("genParticles"), - bothMuons = cms.bool(True), - zMassMin = cms.untracked.double(60.0), - zMassMax = cms.untracked.double(120.0), - etamin = cms.untracked.double(0.0), - etamax = cms.untracked.double(2.1), - ptmin = cms.untracked.double(20.0), - hltPath = cms.untracked.string("HLT_Mu9"), - ###isolation block - isomax = cms.untracked.double(3.0), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation=cms.untracked.bool(False) -) - - -process.eventInfo = cms.OutputModule("AsciiOutputModule") - - -process.dimuonsPath = cms.Path( - process.goodMuonRecoForDimuon * - process.dimuons * - process.mcTruthForDimuons * - process.dimuonsGlobal * - process.dimuonsOneStandAloneMuon - ) - -process.dimuonsOneTrackPath = cms.Path( - process.goodMuonRecoForDimuon* - process.dimuonsOneTrack* - process.mcTruthForDimuonsOneTrack - ) - - - - -process.p = cms.Path(#process.mcTruthForDimuons * - process.zToMuMu * - process.goodZToMuMuOneStandAloneMuon * - process.zToMuMuOneTrack * - process.goodZToMuMuOneTrack * - process.zMuMu_MCanalyzer) -process.e = cms.EndPath(process.eventInfo) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/ZMuMu_efficiencyAnalyzer.py b/ElectroWeakAnalysis/ZMuMu/test/ZMuMu_efficiencyAnalyzer.py deleted file mode 100644 index 83a5c513a75cb..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/ZMuMu_efficiencyAnalyzer.py +++ /dev/null @@ -1,69 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("ZMuMuEfficiencyAnalyzer") -process.load("ElectroWeakAnalysis.ZReco.mcTruthForDimuons_cff") - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring('file:/scratch1/cms/data/summer08/skim/dimuons_skim_zmumu.root') -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) -process.TFileService = cms.Service("TFileService", - fileName = cms.string('zMuMu_efficiencyAnalyzer.root') -) - -process.zToMuMu = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("dimuons"), - cut = cms.string('daughter(0).isGlobalMuon = 1 & daughter(1).isGlobalMuon = 1'), -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("dimuonsOneStandAloneMuon"), - overlap = cms.InputTag("zToMuMu"), -) - -process.zToMuMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - src = cms.InputTag("dimuonsOneTrack"), - cut = cms.string('daughter(0).isGlobalMuon = 1'), -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("zToMuMu"), -) - - -process.zMuMu_efficiencyAnalyzer = cms.EDFilter("ZMuMu_efficiencyAnalyzer", - muons = cms.InputTag("selectedLayer1Muons"), - tracks = cms.InputTag("selectedLayer1TrackCands"), - zMuMu = cms.InputTag("zToMuMu"), - zMuStandAlone = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - zMuTrack = cms.InputTag("goodZToMuMuOneTrack"), - zMuMuMatchMap = cms.InputTag("allDimuonsMCMatch"), - zMuStandAloneMatchMap = cms.InputTag("allDimuonsMCMatch"), - zMuTrackMatchMap = cms.InputTag("allDimuonsMCMatch"), - genParticles = cms.InputTag("genParticles"), - primaryVertices =cms.InputTag("offlinePrimaryVertices"), - bothMuons = cms.bool(True), - zMassMin = cms.untracked.double(20.0), - zMassMax = cms.untracked.double(200.0), - isomax = cms.untracked.double(3.0), - etamax = cms.untracked.double(2.0), - ptmin = cms.untracked.double(20.0), -) - -process.eventInfo = cms.OutputModule("AsciiOutputModule") - -process.p = cms.Path(process.mcTruthForDimuons * - process.zToMuMu * - process.goodZToMuMuOneStandAloneMuon * - process.zToMuMuOneTrack * - process.goodZToMuMuOneTrack * - process.zMuMu_efficiencyAnalyzer) -process.e = cms.EndPath(process.eventInfo) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/ZMuMu_radiative_analysis.py b/ElectroWeakAnalysis/ZMuMu/test/ZMuMu_radiative_analysis.py deleted file mode 100644 index 36fbde894f8fc..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/ZMuMu_radiative_analysis.py +++ /dev/null @@ -1,117 +0,0 @@ -########################### -# # -# author: Pasquale Noli # -# INFN Naples # -# Script to run radiative # -# analysis # -# # -########################### - - - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("Diegol") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(False) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - ) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_1.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_2.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_3.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_4.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_6.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_7.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_8.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_9.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_10.root" - - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("analysis_radiative_table.root") -) - - - - -#ZMuSta -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("dimuonsOneStandAloneMuon"), - overlap = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(False) -) - - -#ZMuTk -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(False) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuGlobalMuOneTrack"), - overlap = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(False) -) - - -process.goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(False) -) - - -process.Analyzer = cms.EDAnalyzer( - "ZMuMu_Radiative_analyzer", - zMuMu = cms.InputTag("dimuonsGlobal"), - zMuMuMatchMap= cms.InputTag("allDimuonsMCMatch"), - zMuTk = cms.InputTag("goodZToMuMuOneTrackFirstHLT"), - zMuTkMatchMap= cms.InputTag("allDimuonsMCMatch"), - zMuSa = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - zMuSaMatchMap= cms.InputTag("allDimuonsMCMatch"), - veto = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - ptThreshold = cms.untracked.double(1.5) - ) - - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -process.path = cms.Path ( - process.goodZToMuMuOneStandAloneMuon+ - process.zToMuGlobalMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackFirstHLT + - process.Analyzer -) - - - -#process.endPath = cms.EndPath( -# process.eventInfo -#) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/crabZmmAnalysis.cfg b/ElectroWeakAnalysis/ZMuMu/test/crabZmmAnalysis.cfg deleted file mode 100644 index 0d14b7d206328..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/crabZmmAnalysis.cfg +++ /dev/null @@ -1,42 +0,0 @@ -[CRAB] - -jobtype = cmssw -scheduler = glite -server_name = pisa - -[CMSSW] - -datasetpath = /Zmumu/Spring10-START3X_V26_S09-v1/GEN-SIM-RECO - - - -pset=EWK_ZMuMuAnalysis.py -total_number_of_events=-1 -events_per_job = 1000 -get_edm_output = 1 - -[USER] -return_data = 0 -ui_working_dir= 35XSkimNewZmmv2 - -copy_data = 1 -storage_element = srm-cms.cern.ch -#storage_element =T2_IT_Legnaro - -storage_path=/srm/managerv2?SFN=/castor/cern.ch -user_remote_dir = /user/d/degrutto/35XSkimNew/zmm -#storage_path=/srm:/managerv2?SFN=/pnfs/lnl.infn.it/data/cms/store/ -#user_remote_dir = /user/d/degrutto/test/MinBiasEWKMuSkim_15Apr/ - - - -publish_data = 0 -#publish_with_import_all_parents=0 -publish_data_name = MinBiasEWKMuSkim_15Apr -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet - -[GRID] - -## RB/WMS management: -rb = CERN -#ce_white_list = t2-ce-01.lnl.infn.it,t2-ce-02.lnl.infn.it,t2-ce-03.lnl.infn.it diff --git a/ElectroWeakAnalysis/ZMuMu/test/crab_toymc.cfg b/ElectroWeakAnalysis/ZMuMu/test/crab_toymc.cfg deleted file mode 100644 index de84cd586dfb9..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/crab_toymc.cfg +++ /dev/null @@ -1,47 +0,0 @@ -[CRAB] - -jobtype = cmssw -scheduler = glite -#scheduler = lsf -server_name = legnaro - -[CMSSW] - -### The output files (comma separated list) -output_file = fitResult.txt, outputToy.tgz -datasetpath=None -pset=dummy.py -total_number_of_events=10000 -number_of_jobs=100 - -[USER] -debug_wrapper=1 -script_exe = testToyMC_crab.sh - -### OUTPUT files Management -## output back into UI -return_data = 1 - -#copy_data = 1 - -additional_input_files = toyMonteCarlo, zFitToyMc.txt, zFitToyMc, analysis_Z_133pb_trackIso_3.root - - -[EDG] -# -## RB/WMS management: -rb = CERN - -## Black and White Lists management: -## By Storage -#se_black_list = T0,T1 -#se_white_list = - -## By ComputingElement -#ce_black_list = -#ce_white_list = polgrid1.in2p3.fr,egeece01.ifca.es,t2-ce-01.lnl.infn.it,t2-ce-03.lnl.infn.it,t2-ce-03.lnl.infn.it -#ce_white_list = polgrid1.in2p3.fr - -[CONDORG] - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/dimuonStatistics.py b/ElectroWeakAnalysis/ZMuMu/test/dimuonStatistics.py deleted file mode 100644 index 4c08153d56b82..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/dimuonStatistics.py +++ /dev/null @@ -1,360 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("dimuonStatistics") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_1.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_10.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_11.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_12.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_13.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_14.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_15.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_16.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_17.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_18.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_19.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_2.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_20.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_21.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_22.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_23.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_24.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_25.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_26.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_27.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_28.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_29.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_3.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_30.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_31.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_32.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_33.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_34.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_35.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_36.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_37.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_38.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_39.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_4.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_40.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_41.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_42.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_43.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_44.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_45.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_46.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_47.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_48.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_49.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_5.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_50.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_51.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_52.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_53.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_54.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_55.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_56.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_57.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_58.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_59.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_6.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_60.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_61.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_62.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_63.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_64.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_65.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_66.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_67.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_68.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_69.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_7.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_70.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_71.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_72.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_73.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_74.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_75.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_76.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_77.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_78.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_79.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_8.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_80.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_81.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_82.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_83.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_84.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_85.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_86.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_87.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_88.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_89.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_9.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_90.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_91.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_92.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_93.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_94.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_95.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_96.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_97.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_98.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_99.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_100.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_101.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_102.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_103.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_104.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_105.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_106.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_107.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_108.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_109.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_110.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_111.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_112.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_113.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX/zmm_v2/testZMuMuSubSkim_114.root", - ) -) -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.0 & abs(daughter(1).eta)<2.0 & mass > 20"), - isoCut = cms.double(3.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - -# For standard isolation (I_Tkr<3GeV) choose this configuration: -# isoCut = cms.double(3.), -# ptThreshold = cms.untracked.double(1.5), -# etEcalThreshold = cms.untracked.double(0.2), -# etHcalThreshold = cms.untracked.double(0.5), -# deltaRVetoTrk = cms.untracked.double(0.015), -# deltaRTrk = cms.untracked.double(0.3), -# deltaREcal = cms.untracked.double(0.25), -# deltaRHcal = cms.untracked.double(0.25), -# alpha = cms.untracked.double(0.), -# beta = cms.untracked.double(-0.75), -# relativeIsolation = cms.bool(False) - - - ) - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) -#ZMuMu: richiedo almeno 1 HLT trigger match.Per la shape -process.goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu: richiedo 2 HLT trigger match -process.goodZToMuMu2HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("bothMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu: richiedo 1 HLT trigger match -process.goodZToMuMu1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -#ZMuMu1notIso: richiedo almeno un trigger -process.nonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("nonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuTk:richiedo che il muGlobal 'First' ha HLT match -process.goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuSta:richiedo che il muGlobal ha HLT match -process.goodZToMuMuOneStandAloneMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -goodZToMuMuTemplate = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("replace this string with your cut"), - src = cms.InputTag("goodZToMuMuAtLeast1HLT"), - filter = cms.bool(False) -) - - - - -process.DimuGlobalNotIsoStat = cms.EDAnalyzer( - "DimuonStatistics", - src = cms.InputTag("dimuonsGlobal"), # dimuonsOneTrack, dimuonsOneStandAlone - ptMin = cms.untracked.double(20.0), - massMin = cms.untracked.double(60.0), - massMax = cms.untracked.double(120.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(2.0), - trkIso = cms.untracked.double(10000) - ) - -process.DimuGlobalIsoStat = cms.EDAnalyzer( - "DimuonStatistics", - src = cms.InputTag("dimuonsGlobal"), - ptMin = cms.untracked.double(20.0), - massMin = cms.untracked.double(60.0), - massMax = cms.untracked.double(120.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(2.0), - trkIso = cms.untracked.double(3.0) - ) - -process.DimuOneTrackIsoStat=cms.EDAnalyzer( - "DimuonStatistics", - src = cms.InputTag("dimuonsOneTrack"), - ptMin = cms.untracked.double(20.0), - massMin = cms.untracked.double(60.0), - massMax = cms.untracked.double(120.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(2.0), - trkIso = cms.untracked.double(3.0) - ) -process.DimuOneStaIsoStat=cms.EDAnalyzer( - "DimuonStatistics", - src = cms.InputTag("dimuonsOneStandAloneMuon"), - ptMin = cms.untracked.double(20.0), - massMin = cms.untracked.double(60.0), - massMax = cms.untracked.double(120.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(2.0), - trkIso = cms.untracked.double(3.0) - ) - - - - -process.OneHLTIsolatedPath = cms.Path( - process.goodZToMuMu + - process.goodZToMuMu1HLT + - process.DimuGlobalIsoStat - ) - -process.TwoHLTIsolatedPath = cms.Path( - process.goodZToMuMu + - process.goodZToMuMu2HLT + - process.DimuGlobalIsoStat - ) - -process.NonIsolatedPath = cms.Path( - process.nonIsolatedZToMuMu * - process.nonIsolatedZToMuMuAtLeast1HLT* - process.DimuGlobalNotIsoStat - ) - - -process.MuStaIsolatedPath=cms.Path( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.DimuOneStaIsoStat - ) - -process.MuTkIsolatedPath = cms.Path( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackFirstHLT + - process.DimuOneTrackIsoStat - - ) - - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/distortedMuonsFromDB.py b/ElectroWeakAnalysis/ZMuMu/test/distortedMuonsFromDB.py deleted file mode 100644 index 122d3fda2bebf..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/distortedMuonsFromDB.py +++ /dev/null @@ -1,138 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Process, how many events, inout files, ... -process = cms.Process("distortMuonsFromDB") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(100) - #input = cms.untracked.int32(100) -) -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - #fileNames = cms.untracked.vstring("file:/data4/Wmunu_Summer09-MC_31X_V3-v1_GEN-SIM-RECO/0009/76E35258-507F-DE11-9A21-0022192311C5.root") - fileNames = cms.untracked.vstring( - -"file:../../ZMuMu/test/dimuons_100.root" - #rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/0ABB0814-C082-DE11-9AB7-003048D4767C.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/38980FEC-C182-DE11-A3B5-003048D4767C.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/3AF703B9-AE82-DE11-9656-0015172C0925.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/46854F8E-BC82-DE11-80AA-003048D47673.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/8025F9B0-AC82-DE11-8C28-0015172560C6.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/88DDF58E-BC82-DE11-ADD8-003048D47679.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/9A115324-BB82-DE11-9C66-001517252130.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/Zmumu7TeV/GEN-SIM_RECO/0014/FC279CAC-AD82-DE11-BAAA-001517357D36.root" -) -) - -# Debug/info printouts -process.MessageLogger = cms.Service("MessageLogger", - debugModules = cms.untracked.vstring('distortedMuons'), - cout = cms.untracked.PSet( - default = cms.untracked.PSet( limit = cms.untracked.int32(1000) ), - #threshold = cms.untracked.string('INFO') - threshold = cms.untracked.string('DEBUG') - ), - destinations = cms.untracked.vstring('cout') -) - -# Database for scale shift if process.distortedMuons.UseDBForMomentumScale = True -process.load("CondCore.DBCommon.CondDBCommon_cfi") -process.poolDBESSource1 = cms.ESSource("PoolDBESSource", - BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), - DBParameters = cms.PSet( - messageLevel = cms.untracked.int32(2), - authenticationPath = cms.untracked.string('/afs/cern.ch/cms/DB/conddb') - ), - timetype = cms.untracked.string('runnumber'), - connect = cms.string('oracle://cms_orcoff_prep/CMS_COND_PHYSICSTOOLS'), - toGet = cms.VPSet( - cms.PSet( - record = cms.string('MuScleFitDBobjectRcd'), - tag = cms.string('MuScleFit_Scale_OctoberExercise_EWK_InnerTrack'), - label = cms.untracked.string('') - ) - ) -) -process.poolDBESSource2 = cms.ESSource("PoolDBESSource", - BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), - DBParameters = cms.PSet( - messageLevel = cms.untracked.int32(2), - authenticationPath = cms.untracked.string('/afs/cern.ch/cms/DB/conddb') - ), - timetype = cms.untracked.string('runnumber'), - connect = cms.string('oracle://cms_orcoff_prep/CMS_COND_PHYSICSTOOLS'), - toGet = cms.VPSet( - cms.PSet( - record = cms.string('MuScleFitDBobjectRcd'), - tag = cms.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel'), - label = cms.untracked.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel') - ) - ) -) -process.poolDBESSource3 = cms.ESSource("PoolDBESSource", - BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), - DBParameters = cms.PSet( - messageLevel = cms.untracked.int32(2), - authenticationPath = cms.untracked.string('/afs/cern.ch/cms/DB/conddb') - ), - timetype = cms.untracked.string('runnumber'), - connect = cms.string('oracle://cms_orcoff_prep/CMS_COND_PHYSICSTOOLS'), - toGet = cms.VPSet( - cms.PSet( - record = cms.string('MuScleFitDBobjectRcd'), - tag = cms.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel'), - label = cms.untracked.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel') - ) - ) -) - -# Create a new "distorted" Muon collection -process.distortedMuons = cms.EDFilter("DistortedMuonProducerFromDB", - MuonTag = cms.untracked.InputTag("muons"), - - DBScaleLabel = cms.untracked.string(''), - DBDataResolutionLabel = cms.untracked.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel'), - DBMCResolutionLabel = cms.untracked.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel'), -) - -### NOTE: the following WMN selectors require the presence of -### the libraries and plugins fron the ElectroWeakAnalysis/WMuNu package -### So you need to process the ElectroWeakAnalysis/WMuNu package with -### some old CMSSW versions (at least <=3_1_2, <=3_3_0_pre4) -# - -# WMN fast selector (use W candidates in this example) -#process.load("ElectroWeakAnalysis.WMuNu.WMuNuSelection_cff") -#process.corMetWMuNus.MuonTag = cms.untracked.InputTag("distortedMuons") -#process.selcorMet.MuonTag = cms.untracked.InputTag("distortedMuons") - -# Output -process.load("Configuration.EventContent.EventContent_cff") -process.myEventContent = process.AODSIMEventContent -process.myEventContent.outputCommands.extend( - cms.untracked.vstring('drop *', - 'keep *_genParticles_*_*', - 'keep *_muons_*_*', - 'keep *_distortedMuons_*_*') - ) - -process.Output = cms.OutputModule("PoolOutputModule", - process.myEventContent, - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('distortMuons') - ), - fileName = cms.untracked.string('selectedEvents.root') -) - - - - - -# Steering the process -process.distortMuons = cms.Path( - process.distortedMuons - # *process.selectCaloMetWMuNus -) - -process.end = cms.EndPath(process.Output) diff --git a/ElectroWeakAnalysis/ZMuMu/test/errorMatrix.cpp b/ElectroWeakAnalysis/ZMuMu/test/errorMatrix.cpp deleted file mode 100644 index 510b450e7cccf..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/errorMatrix.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include -#include -#include -#include -#include -#include - -using namespace std; - -struct cov { - cov(unsigned int _ix, unsigned int _iy, double _cxy, double _rho) : - ix(_ix), iy(_iy), cxy(_cxy), rho(_rho) { } - unsigned int ix, iy; - double cxy, rho; -}; - -double operator<(const cov & c1, const cov & c2) { - return fabs(c1.rho) > fabs(c2.rho); -} - -int main() { - const unsigned int n = 24; - fstream file("error.txt"); - string name[n]; - double err[n][n]; - for(unsigned int i = 0; i < n; ++i) - file >> name[i]; - for(unsigned int i = 0; i < n; ++i) { - for(unsigned int j = 0; j < n; ++j) { - file >> err[i][j]; - } - } - - for(unsigned int i = 0; i < n; ++i) - for(unsigned int j = i; j < n; ++j) - if(fabs(err[i][j] - err[j][i])> 1.e-4) { - cerr << "error: asymmetric matrix"; - exit(1); - } - - for(unsigned int i = 0; i < n; ++i) { - cout << "err(" << name[i] << ") = " << sqrt(err[i][i]) << endl; - } - - vector covs; - for(unsigned int i = 0; i < n; ++i) - for(unsigned int j = i+1; j < n; ++j) { - double cxy = err[i][j]; - double ex = sqrt(err[i][i]), ey = sqrt(err[j][j]); - if(ex > 0 && ey > 0) { - double rho = cxy / (ex * ey); - covs.push_back(cov(i, j, cxy, rho)); - } - } - - sort(covs.begin(), covs.end()); - for(vector::const_iterator i = covs.begin(); i != covs.end(); ++i) { - cout << "cov(" << name[i->ix] << ", " << name[i->iy] << ") = " << i->cxy << ", " - << " correlation = " << i->rho << endl; - } - return 0; -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/gamma_analysis.py b/ElectroWeakAnalysis/ZMuMu/test/gamma_analysis.py deleted file mode 100644 index 9c5dae0ec641e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/gamma_analysis.py +++ /dev/null @@ -1,101 +0,0 @@ -########################### -# # -# author: Pasquale Noli # -# INFN Naples # -# Script to run gamma # -# analysis # -# # -########################### - - - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("Pocho") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(False) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(10000) - ) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_1.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_2.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_3.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_4.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_6.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_7.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_8.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_9.root", - "file:/data1/home/noli/roofile_SUMMER08/zMuMu_dimuons_10.root" - - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("gamma_analysis.root") -) - - - - -#ZMuSta -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("dimuonsOneStandAloneMuon"), - overlap = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(False) -) - - -#ZMuTk -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(False) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuGlobalMuOneTrack"), - overlap = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(False) -) - - - -process.Analyzer = cms.EDAnalyzer( - "gamma_radiative_analyzer", - zMuMu = cms.InputTag("dimuonsGlobal"), - zMuMuMatchMap= cms.InputTag("allDimuonsMCMatch"), - zMuTk = cms.InputTag("goodZToMuMuOneTrack"), - zMuTkMatchMap= cms.InputTag("allDimuonsMCMatch"), - zMuSa = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - zMuSaMatchMap= cms.InputTag("allDimuonsMCMatch"), - ) - - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -process.path = cms.Path ( - process.goodZToMuMuOneStandAloneMuon+ - process.zToMuGlobalMuOneTrack + - process.goodZToMuMuOneTrack + - process.Analyzer -) - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/isoSAEff.py b/ElectroWeakAnalysis/ZMuMu/test/isoSAEff.py deleted file mode 100644 index 63e6a11836695..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/isoSAEff.py +++ /dev/null @@ -1,47 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("IsoSAEff") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_1.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_2.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_3.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_4.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_5.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_6.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_7.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_8.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_9.root", - "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_10.root" - ) -) - -process.isoAnalyzer = cms.EDAnalyzer( - "ZGlobalVsSAIsolationAnalyzer", - src = cms.InputTag("goodZToMuMu"), - isoCut = cms.double(3), - veto = cms.double(0.001), - ptThreshold = cms.double(1.5), - etEcalThreshold = cms.double(0), - etHcalThreshold = cms.double(0), - deltaRTrk = cms.double(0.3), - deltaREcal = cms.double(0.3), - deltaRHcal = cms.double(0.3), - alpha = cms.double(0), - beta = cms.double(0) - ) - -process.path = cms.Path( - process.isoAnalyzer - ) - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/AddFlatBkgToZGolden.C b/ElectroWeakAnalysis/ZMuMu/test/macros/AddFlatBkgToZGolden.C deleted file mode 100644 index 69cfcda78304d..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/AddFlatBkgToZGolden.C +++ /dev/null @@ -1,65 +0,0 @@ -{ -gROOT->SetStyle("Plain"); -TFile * root_file = new TFile("Analysis_7TeV.root", "update"); - -TH1 * histoZMuMu = root_file->Get("goodZToMuMuPlots/zMass"); -TH1 * histoZMuMu1HLT = root_file->Get("goodZToMuMu1HLTPlots/zMass"); -TH1 * histoZMuMu2HLT = root_file->Get("goodZToMuMu2HLTPlots/zMass"); -double npercent = 1.; - -//histoZMuMu->Draw(); -double integ = (double) histoZMuMu->Integral(); -cout << "integ: " << integ << endl; -for(int i = 1; i <= histoZMuMu->GetNbinsX(); ++i) { - double cont = histoZMuMu->GetBinContent(i) ; - //cout << "cont: " << cont << endl; - // adding npercent flat content.... - double new_cont= cont + ( 0.01 * npercent * integ / histoZMuMu->GetNbinsX()); - //cout << "new_cont: " << new_cont << endl; - histoZMuMu->SetBinContent(i, new_cont); - histoZMuMu->SetBinError(i, sqrt(new_cont)); -} - - -integ = (double) histoZMuMu1HLT->Integral(); -cout << "integ: " << integ << endl; -for(int i = 1; i <= histoZMuMu1HLT->GetNbinsX(); ++i) { - double cont = histoZMuMu1HLT->GetBinContent(i) ; - //cout << "cont: " << cont << endl; - // adding npercent flat content.... - double new_cont= cont + ( 0.01 * npercent * integ / histoZMuMu1HLT->GetNbinsX()); - //cout << "new_cont: " << new_cont << endl; - histoZMuMu1HLT->SetBinContent(i, new_cont); - histoZMuMu1HLT->SetBinError(i, sqrt(new_cont)); -} - - -integ = (double) histoZMuMu2HLT->Integral(); -cout << "integ: " << integ << endl; -for(int i = 1; i <= histoZMuMu2HLT->GetNbinsX(); ++i) { - double cont = histoZMuMu2HLT->GetBinContent(i) ; - //cout << "cont: " << cont << endl; - // adding npercent flat content.... - double new_cont= cont + ( 0.01 * npercent * integ / histoZMuMu2HLT->GetNbinsX()); - //cout << "new_cont: " << new_cont << endl; - histoZMuMu2HLT->SetBinContent(i, new_cont); - histoZMuMu2HLT->SetBinError(i, sqrt(new_cont)); -} - - - -root_file->cd("goodZToMuMuPlots"); -histoZMuMu->Write(); - -root_file->cd("goodZToMuMu1HLTPlots"); -histoZMuMu1HLT->Write(); - -root_file->cd("goodZToMuMu2HLTPlots"); -histoZMuMu2HLT->Write(); -double new_integ = (double) histoZMuMu->Integral(); -cout << "new integ: " << new_integ << endl; -new_integ = (double) histoZMuMu1HLT->Integral(); -cout << "new integ: " << new_integ << endl; -new_integ = (double) histoZMuMu2HLT->Integral(); -cout << "new integ: " << new_integ << endl; -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/MCvsData.C b/ElectroWeakAnalysis/ZMuMu/test/macros/MCvsData.C deleted file mode 100644 index 6309214ab6dc3..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/MCvsData.C +++ /dev/null @@ -1,317 +0,0 @@ -{ - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - //TChain chain("Events"); // create the chain with tree "T" - // gStyle->SetOptStat(); - // gROOT->SetStyle("Plain"); - - TChain chainDATA("Events"); // create the chain with tree "T" - TChain chainMC("Events"); // create the chain with tree "T" - - chainMC.Add("MinBias2010_MC/NtupleLooseTestNew_oneshot_all_MCMinBias.root"); - chainMC.Add("MinBias2010_MC/NtupleLoose_all_15apr_23_0.root"); - chainMC.Add("MinBias2010_MC/NtupleLoose_all_15apr_23_1.root"); - - chainDATA.Add("MinBias2010_15Apr/NtupleLoose_all_15apr_23_2.root"); - chainDATA.Add("MinBias2010_15Apr/NtupleLoose_all_15apr_23_3.root"); - chainDATA.Add("MinBias2010_15Apr/NtupleLoose_all_15apr_23_4.root"); - chainDATA.Add("MinBias2010_15Apr/NtupleLoose_all_15apr_23_5.root"); - - - - /*chain.Add("NtupleLooseTestNew_oneshot_all_132653.root"); - */ - - TFile out("histo.root", "RECREATE"); - TCanvas c; - - std::string pt_cut1= "1"; - std::string pt_cut2= "1"; - std::string scut1 = string("zMuTrkDau1Pt>") + pt_cut1 ; - std::string scut2 = string("zMuTrkDau2Pt>") + pt_cut2 ; - - TH1F * muIsoDATA= new TH1F("zGoldenDauTrkIsoDATA", "zGoldenDauTrkIsoDATA", 100, 0, 50); - TH1F * trkIsoDATA = new TH1F("zMuTrkDau2TrkIsoDATA", "zMuTrkDau2TrkIsoDATA", 100, 0, 50); - TH1F * muStaIsoDATA = new TH1F("zMuStaDauTrkIsoDATA", "zMuStaDauTrkIsoDATA", 100, 0, 50); - TH1F * muTrkMuIsoDATA = new TH1F("zMuTrkMuDauTrkIsoDATA", "zMuTrkMuDauTrkIsoDATA", 100, 0, 50); - TH1F * muIsoMC= new TH1F("zGoldenDauTrkIsoMC", "zGoldenDauTrkIsoMC", 100, 0, 50); - TH1F * trkIsoMC = new TH1F("zMuTrkDau2TrkIsoMC", "zMuTrkDau2TrkIsoMC", 100, 0, 50); - TH1F * muStaIsoMC = new TH1F("zMuStaDauTrkIsoMC", "zMuStaDauTrkIsoMC", 100, 0, 50); - TH1F * muTrkMuIsoMC = new TH1F("zMuTrkMuDauTrkIsoMC", "zMuTrkMuDauTrkIsoMC", 100, 0, 50); - - - - chainDATA->Project("zGoldenDauTrkIsoDATA", "zGoldenDau1TrkIso", scut1.c_str() ); - chainDATA->Project("zGoldenDauTrkIsoDATA", "zGoldenDau2TrkIso", scut1.c_str() ); - chainDATA->Project("zMuTrkDau2TrkIsoDATA", "zMuTrkDau2TrkIso", scut2.c_str() ); - chainDATA->Project("zMuTrkMuDauTrkIsoDATA", "zMuTrkMuDau1TrkIso", scut2.c_str() ); - chainDATA->Project("zMuTrkMuDauTrkIsoDATA", "zMuTrkMuDau2TrkIso", scut2.c_str() ); - chainDATA->Project("zMuStaDauTrkIsoDATA", "zMuStaDau1TrkIso", scut2.c_str() ); - chainDATA->Project("zMuStaDauTrkIsoDATA", "zMuStaDau2TrkIso", scut2.c_str() ); - - - chainMC->Project("zGoldenDauTrkIsoMC", "zGoldenDau1TrkIso", scut1.c_str() ); - chainMC->Project("zGoldenDauTrkIsoMC", "zGoldenDau2TrkIso", scut1.c_str() ); - chainMC->Project("zMuTrkDau2TrkIsoMC", "zMuTrkDau2TrkIso", scut2.c_str() ); - chainMC->Project("zMuTrkMuDauTrkIsoMC", "zMuTrkMuDau1TrkIso", scut2.c_str() ); - chainMC->Project("zMuTrkMuDauTrkIsoMC", "zMuTrkMuDau2TrkIso", scut2.c_str() ); - chainMC->Project("zMuStaDauTrkIsoMC", "zMuStaDau1TrkIso", scut2.c_str() ); - chainMC->Project("zMuStaDauTrkIsoMC", "zMuStaDau2TrkIso", scut2.c_str() ); - - - muIsoMC->Sumw2(); - double scale = muIsoDATA->Integral()/ muIsoMC->Integral(); - muIsoMC->Scale(scale); - - muIsoDATA->SetMarkerColor(kBlack); - muIsoDATA->SetMarkerStyle(20); - muIsoDATA->SetMarkerSize(0.8); - muIsoDATA->SetLineWidth(2); - muIsoDATA->SetLineColor(kBlack); - muIsoMC->SetFillColor(kAzure+7); - muIsoMC->SetLineWidth(2); - muIsoMC->SetLineWidth(2); - muIsoMC->SetLineColor(kBlue+1); - - muIsoMC->SetMaximum(muIsoDATA->GetMaximum()*1.5 + 2); - c.SetLogy(); - - muIsoMC->Draw("HIST"); - muIsoDATA->Draw("esame"); - - leg = new TLegend(0.65,0.60,0.85,0.75); - leg->SetFillColor(kWhite); - leg->AddEntry(muIsoDATA,"data"); - leg->AddEntry(muIsoMC,"MC","f"); - leg->Draw(); - - std::cout << "MC entries "<< muIsoMC->GetEntries()<< std::endl; - std::cout << "DATA entries "<< muIsoDATA->GetEntries()<< std::endl; - - c.SaveAs( "zGoldenDau1TrkIso.eps"); - leg->Clear(); - - - std::cout << "MC entries "<< trkIsoMC->GetEntries()<< std::endl; - std::cout << "DATA entries "<< trkIsoDATA->GetEntries()<< std::endl; - - trkIsoMC->Sumw2(); - scale = trkIsoDATA->Integral()/ trkIsoMC->Integral(); - trkIsoMC->Scale(scale); - - trkIsoDATA->SetMarkerColor(kBlack); - trkIsoDATA->SetMarkerStyle(20); - trkIsoDATA->SetMarkerSize(0.8); - trkIsoDATA->SetLineWidth(2); - trkIsoDATA->SetLineColor(kBlack); - trkIsoMC->SetFillColor(kAzure+7); - trkIsoMC->SetLineWidth(2); - trkIsoMC->SetLineWidth(2); - trkIsoMC->SetLineColor(kBlue+1); - - trkIsoMC->SetMaximum(trkIsoDATA->GetMaximum()*1.5 + 1); - trkIsoMC->Draw("HIST"); - trkIsoDATA->Draw("esame"); - - leg = new TLegend(0.65,0.60,0.85,0.75); - leg->SetFillColor(kWhite); - leg->AddEntry(trkIsoDATA,"data"); - leg->AddEntry(trkIsoMC,"MC","f"); - leg->Draw(); - - c.SaveAs( "zMuTrkDau2TrkIso.eps"); - leg->Clear(); - - muStaIsoMC->Sumw2(); - scale = muStaIsoDATA->Integral()/ muStaIsoMC->Integral(); - muStaIsoMC->Scale(scale); - - muStaIsoDATA->SetMarkerColor(kBlack); - muStaIsoDATA->SetMarkerStyle(20); - muStaIsoDATA->SetMarkerSize(0.8); - muStaIsoDATA->SetLineWidth(2); - muStaIsoDATA->SetLineColor(kBlack); - muStaIsoMC->SetFillColor(kAzure+7); - muStaIsoMC->SetLineWidth(2); - muStaIsoMC->SetLineWidth(2); - muStaIsoMC->SetLineColor(kBlue+1); - - muStaIsoMC->SetMaximum(muStaIsoDATA->GetMaximum()*1.5 + 1); - muStaIsoMC->Draw("HIST"); - muStaIsoDATA->Draw("esame"); - - leg = new TLegend(0.65,0.60,0.85,0.75); - leg->SetFillColor(kWhite); - leg->AddEntry(muStaIsoDATA,"data"); - leg->AddEntry(muStaIsoMC,"MC","f"); - leg->Draw(); - - c.SaveAs( "zMuStaDauTrkIso.eps"); - leg->Clear(); - - muTrkMuIsoMC->Sumw2(); - scale = muTrkMuIsoDATA->Integral()/ muTrkMuIsoMC->Integral(); - muTrkMuIsoMC->Scale(scale); - - muTrkMuIsoDATA->SetMarkerColor(kBlack); - muTrkMuIsoDATA->SetMarkerStyle(20); - muTrkMuIsoDATA->SetMarkerSize(0.8); - muTrkMuIsoDATA->SetLineWidth(2); - muTrkMuIsoDATA->SetLineColor(kBlack); - muTrkMuIsoMC->SetFillColor(kAzure+7); - muTrkMuIsoMC->SetLineWidth(2); - muTrkMuIsoMC->SetLineWidth(2); - muTrkMuIsoMC->SetLineColor(kBlue+1); - - muTrkMuIsoMC->SetMaximum(muTrkMuIsoDATA->GetMaximum()*1.5 + 1); - muTrkMuIsoMC->Draw("HIST"); - muTrkMuIsoDATA->Draw("esame"); - - leg = new TLegend(0.65,0.60,0.85,0.75); - leg->SetFillColor(kWhite); - leg->AddEntry(muTrkMuIsoDATA,"data"); - leg->AddEntry(muTrkMuIsoMC,"MC","f"); - leg->Draw(); - - c.SaveAs( "zMuTrkMuDauTrkIso.eps"); - leg->Clear(); - - - std::string value[4] = {"zGolden", "zMuTrk", "zMuTrkMu", "zMuSta"}; - for (int z = 0; z<4; ++z ){ - int min_ = 0; - int max_ = 150; - int nBins =75; - - - - // std::string smass=(value[z]+"Mass"); - - TH1F * histoDATA = new TH1F(string(value[z]+"MassDATA").c_str(),string(value[z]+"MassDATA").c_str() , 100, min_, 20); - TH1F * histoMC = new TH1F(string(value[z]+"MassMC").c_str(),string(value[z]+"MassMC").c_str() , 100, min_, 20); - - // TH1F * histoDATA = new TH1F(string(value[z]+"MassDATA").c_str(),string(value[z]+"MassDATA").c_str() , 75, min_, 150); - // TH1F * histoMC = new TH1F(string(value[z]+"MassMC").c_str(),string(value[z]+"MassMC").c_str() , 75, min_, 150); - - - TH1F * histo2DATA = new TH1F(string(value[z] + "Dau1PtDATA").c_str(),string(value[z] + "Dau1PtDATA").c_str(), nBins, min_, max_); - TH1F * histo2MC = new TH1F(string(value[z] + "Dau1PtMC").c_str(),string(value[z] + "Dau1PtMC").c_str(), nBins, min_, max_); - - - TH1F * histo3DATA = new TH1F(string(value[z] + "Dau2PtDATA").c_str(),string(value[z] + "Dau2Pt").c_str(), nBins, min_, max_); - TH1F * histo3MC = new TH1F(string(value[z] + "Dau2PtMC").c_str(),string(value[z] + "Dau2PtMC").c_str(), nBins, min_, max_); - - - - std::string pt_cut1= "1"; - std::string pt_cut2= "1"; - - std::string scut = value[z] + "Dau1Pt>" + pt_cut1 + " && " + value[z] + "Dau2Pt> "+ pt_cut2; - TCut cut(scut.c_str()); - - chainDATA->Project(string(value[z] + "MassDATA").c_str(), string(value[z] + "Mass").c_str(), cut ); - chainMC->Project(string(value[z] + "MassMC").c_str(), string(value[z] + "Mass").c_str(), cut ); - - chainDATA->Project(string(value[z] + "Dau1PtDATA").c_str(), string(value[z] + "Dau1Pt").c_str(), cut ); - chainMC->Project(string(value[z] + "Dau1PtMC").c_str(), string(value[z] + "Dau1Pt").c_str(), cut ); - - chainDATA->Project(string(value[z] + "Dau2PtDATA").c_str(), string(value[z] + "Dau2Pt").c_str(), cut ); - chainMC->Project(string(value[z] + "Dau2PtMC").c_str(), string(value[z] + "Dau2Pt").c_str(), cut ); - - - histoMC->Sumw2(); - scale = histoDATA->Integral()/ histoMC->Integral(); - histoMC->Scale(scale); - - histoDATA->SetMarkerColor(kBlack); - histoDATA->SetMarkerStyle(20); - histoDATA->SetMarkerSize(0.8); - histoDATA->SetLineWidth(2); - histoDATA->SetLineColor(kBlack); - histoMC->SetFillColor(kAzure+7); - histoMC->SetLineWidth(2); - histoMC->SetLineWidth(2); - histoMC->SetLineColor(kBlue+1); - - histoMC->SetMaximum(histoDATA->GetMaximum()*1.5 + 1); - histoMC->Draw("HIST"); - histoDATA->Draw("esame"); - - leg = new TLegend(0.65,0.60,0.85,0.75); - leg->SetFillColor(kWhite); - leg->AddEntry(histoDATA,"data"); - leg->AddEntry(histoMC,"MC","f"); - leg->Draw(); - - c.SaveAs( string(value[z] + "Mass.eps").c_str()); - leg->Clear(); - - histo2MC->Sumw2(); - scale = histo2DATA->Integral()/ histo2MC->Integral(); - histo2MC->Scale(scale); - - histo2DATA->SetMarkerColor(kBlack); - histo2DATA->SetMarkerStyle(20); - histo2DATA->SetMarkerSize(0.8); - histo2DATA->SetLineWidth(2); - histo2DATA->SetLineColor(kBlack); - histo2MC->SetFillColor(kAzure+7); - histo2MC->SetLineWidth(2); - histo2MC->SetLineWidth(2); - histo2MC->SetLineColor(kBlue+1); - - histo2MC->SetMaximum(histo2DATA->GetMaximum()*1.5 + 1); - histo2MC->Draw("HIST"); - histo2DATA->Draw("esame"); - - leg = new TLegend(0.65,0.60,0.85,0.75); - leg->SetFillColor(kWhite); - leg->AddEntry(histo2DATA,"data"); - leg->AddEntry(histo2MC,"MC","f"); - leg->Draw(); - - c.SaveAs(string(value[z] + "Dau1Pt.eps").c_str()); - leg->Clear(); - - histo3MC->Sumw2(); - scale = histo3DATA->Integral()/ histo3MC->Integral(); - histo3MC->Scale(scale); - - histo3DATA->SetMarkerColor(kBlack); - histo3DATA->SetMarkerStyle(20); - histo3DATA->SetMarkerSize(0.8); - histo3DATA->SetLineWidth(2); - histo3DATA->SetLineColor(kBlack); - histo3MC->SetFillColor(kAzure+7); - histo3MC->SetLineWidth(2); - histo3MC->SetLineWidth(2); - histo3MC->SetLineColor(kBlue+1); - - histo3MC->SetMaximum(histo3DATA->GetMaximum()*1.5 + 1); - histo3MC->Draw("HIST"); - histo3DATA->Draw("esame"); - - leg = new TLegend(0.65,0.60,0.85,0.75); - leg->SetFillColor(kWhite); - leg->AddEntry(histo3DATA,"data"); - leg->AddEntry(histo3MC,"MC","f"); - leg->Draw(); - - // c.SetLogy(0); - - c.SaveAs(string(value[z] + "Dau2Pt.eps").c_str()); - - - - - // c.Write(); - - - -} - - - - // out.Close(); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/Start_ToyMC.csh b/ElectroWeakAnalysis/ZMuMu/test/macros/Start_ToyMC.csh deleted file mode 100755 index 56c2765236641..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/Start_ToyMC.csh +++ /dev/null @@ -1,11 +0,0 @@ -######################### -# # -# author: Pasquale Noli # -# INFN Naples # -# script to run ToyMC # -# # -######################### - -#!/bin/csh -runToyMC.csh 1000 5077000 0.75 0.75 0.75 0.75 100 140 -#0.998481 0.98935 0.979679 0.915384 10 140 diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/compareLONLO.C b/ElectroWeakAnalysis/ZMuMu/test/macros/compareLONLO.C deleted file mode 100644 index 65f806f61dea4..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/compareLONLO.C +++ /dev/null @@ -1,173 +0,0 @@ -{ - -gROOT->Reset(); -gROOT->SetStyle("Plain"); - -TCanvas *c1 = new TCanvas ("c1" , "Pythia6 vs MCatNLO"); - -int sec_LO = 19440; -int sec_NLO = 22740; -double w_LO_over_NLO= double (19440) / double (22740) ; - - -TFile *NLO = TFile::Open("ZNLO_10pb.root"); - - -//mass - -TH1D * ZMCNLOmass = (TH1D*) NLO->Get("zHistos/ZMCHisto/ZMCMass"); -ZMCNLOmass->SetLineColor(kBlue); -ZMCNLOmass->SetStats(kFALSE); -ZMCNLOmass-> Draw(); - -TFile *LO = TFile::Open("ZLO_10pb.root"); - -TH1D * ZMCLOmass = (TH1D*) LO->Get("zHistos/ZMCHisto/ZMCMass"); -ZMCLOmass->SetLineColor(kRed); - -ZMCLOmass->Draw("SAME"); -leg = new TLegend(.6,.6,0.9,0.9); -leg->AddEntry(ZMCNLOmass,"MCatNLO","l"); -leg->AddEntry(ZMCLOmass,"Pythia6","l"); -leg->SetFillColor(0); -leg->SetBorderSize(0); - -leg->Draw("SAME"); - -c1.SaveAs("LO_versus_NLO/ZMass_LO_vs_NLO_at10pb.eps"); - - -ZMCNLOmass->Scale(w_LO_over_NLO); -ZMCNLOmass->Draw(""); -ZMCLOmass->Draw("SAME"); -leg->Draw("SAME"); -c1.SaveAs("LO_versus_NLO/ZPt_LO_vs_NLO_at10pb_normalized.eps"); - - - //pt - - - -c1->SetLogy(1); - -TH1D * ZMCNLOpt = (TH1D*) NLO->Get("zHistos/ZMCHisto/ZMCPt"); -ZMCNLOpt->SetLineColor(kBlue); -ZMCNLOpt->Rebin(2); - - - -TFile *LO = TFile::Open("ZLO_10pb.root"); - -TH1D * ZMCLOpt = (TH1D*) LO->Get("zHistos/ZMCHisto/ZMCPt"); -ZMCLOpt->SetLineColor(kRed); -ZMCLOpt->Rebin(2); - -ZMCLOpt->Draw(); -ZMCLOpt->SetStats(kFALSE); -ZMCNLOpt-> Draw("same"); - -leg = new TLegend(.6,.6,0.9,0.9); -leg->AddEntry(ZMCNLOpt,"MCatNLO","l"); -leg->AddEntry(ZMCLOpt,"Pythia6","l"); -leg->SetFillColor(0); -leg->SetBorderSize(0); - -leg->Draw("SAME"); - -c1->SaveAs("LO_versus_NLO/ZPt_LO_vs_NLO_at10pb.eps"); - -// L0/NLO ratio -TH1D numLO = TH1D( *ZMCLOpt); -numLO.Sumw2(); - -TH1D denNLO = TH1D( *ZMCNLOpt); -denNLO.Sumw2(); - -numLO.Divide(&denNLO); -numLO.Draw("b"); -denNLO.Divide(&denNLO); -denNLO.Draw("same"); -c1->SetLogy(0); -c1.SaveAs("LO_versus_NLO/ratioLO_versus_NLO_pt_at10pb.eps"); - -numLO->Scale(1. / w_LO_over_NLO); -c1.SaveAs("LO_versus_NLO/ratioLO_versus_NLO_Pt_LO_vs_NLO_at10pb_normalized.eps"); - - -ZMCNLOpt->Scale(w_LO_over_NLO); -ZMCLOpt->Draw(""); -ZMCNLOpt->Draw("same"); -leg->Draw("SAME"); -c1->SetLogy(1); -c1.SaveAs("LO_versus_NLO_Pt_LO_vs_NLO_at10pb_normalized.eps"); - - - - //rapidity - -c1->SetLogy(0); - -TH1D * ZMCNLOrapidity = (TH1D*) NLO->Get("zHistos/ZMCHisto/ZMCRapidity"); -ZMCNLOrapidity->SetLineColor(kBlue); -ZMCNLOrapidity->Rebin(2); -ZMCNLOrapidity-> Draw(); -ZMCNLOrapidity->SetStats(kFALSE); - - -TFile *LO = TFile::Open("ZLO_10pb.root"); - -TH1D * ZMCLOrapidity = (TH1D*) LO->Get("zHistos/ZMCHisto/ZMCRapidity"); -ZMCLOrapidity->SetLineColor(kRed); -ZMCLOrapidity->Rebin(2); -ZMCLOrapidity->Draw(); -ZMCLOrapidity->SetStats(kFALSE); -ZMCNLOrapidity-> Draw("SAME"); -leg = new TLegend(.7,.7,0.9,0.9); -leg->AddEntry(ZMCNLOrapidity,"MCatNLO","l"); -leg->AddEntry(ZMCLOrapidity,"Pythia6","l"); -leg->SetFillColor(0); -leg->SetBorderSize(0); - -leg->Draw("SAME"); - -c1.SaveAs("LO_versus_NLO/ZRapidity_LO_vs_NLO_at10pb.eps"); - -// L0/NLO ratio -TH1D numLO = TH1D( *ZMCLOrapidity); -numLO.Sumw2(); - -TH1D denNLO = TH1D( *ZMCNLOrapidity); -denNLO.Sumw2(); - -numLO.Divide(&denNLO); -numLO.Draw("b"); -denNLO.Divide(&denNLO); -denNLO.Draw("same"); -c1->SetLogy(0); -c1.SaveAs("LO_versus_NLO/ratioLO_versus_NLO_rapidity_at10pb.eps"); - -numLO->Scale(1. / w_LO_over_NLO); -c1.SaveAs("LO_versus_NLO/ratioLO_versus_NLO_rapidity_LO_vs_NLO_at10pb_normalized.eps"); - - - - - -ZMCLOrapidity->Draw(); -ZMCNLOrapidity->Scale(w_LO_over_NLO); -ZMCNLOrapidity->Draw("SAME"); -leg->Draw("SAME"); -c1->SetLogy(1); -c1.SaveAs("LO_versus_NLO/ZRapidity_LO_vs_NLO_at10pb_normalized.eps"); - - - - -TFile * ZToLL_file = new TFile("CompareLONLO.root","recreate"); - - - - -ZToLL_file->Close(); - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/create_tree_for_toyMC.C b/ElectroWeakAnalysis/ZMuMu/test/macros/create_tree_for_toyMC.C deleted file mode 100644 index 3b201447d52fc..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/create_tree_for_toyMC.C +++ /dev/null @@ -1,93 +0,0 @@ -/*************************/ -/* */ -/* author: Pasquale Noli */ -/* INFN Naples */ -/* Create TTree from */ -/* fit on Toy Montecarlo */ -/* */ -/*************************/ -#include -#include -#include -#include -#include -#include "TObjArray.h" -#include "TROOT.h" -#include "TTree.h" -#include "TFile.h" -#include -#include - -using namespace std; - -void create_tree_for_toyMC()() -{ - gROOT->Reset(); - - Double_t Y; - Double_t Y_true; - Double_t dY; - Double_t Tk; - Double_t Tk_true; - Double_t dTk; - Double_t Sa; - Double_t Sa_true; - Double_t dSa; - Double_t Iso; - Double_t Iso_true; - Double_t dIso; - Double_t Hlt; - Double_t Hlt_true; - Double_t dHlt; - Double_t chi2; - - TFile *f; - TTree *tree; - - f = new TFile("fitResult.root","RECREATE"); - tree = new TTree("tree"," C data from ASCII file"); - - tree->Branch("Y",&Y,"Y/D"); - tree->Branch("Y_true",&Y_true,"Y/D"); - tree->Branch("dY",&dY,"dY/D"); - tree->Branch("Tk",&Tk," Tk/D"); - tree->Branch("Tk_true",&Tk_true," Tk_true/D"); - tree->Branch("dTk",&dTk," dTk/D"); - tree->Branch("Sa",&Sa," Sa/D"); - tree->Branch("Sa_true",&Sa_true," Sa_true/D"); - tree->Branch("dSa",&dSa," dSa/D"); - tree->Branch("Iso",&Iso," Iso/D"); - tree->Branch("Iso_true",&Iso_true," Iso_true/D"); - tree->Branch("dIso",&dIso," dIso/D"); - tree->Branch("Hlt",&Hlt," Hlt/D"); - tree->Branch("Hlt_true",&Hlt_true," Hlt_true/D"); - tree->Branch("dHlt",&dHlt," dHlt/D"); - tree->Branch("chi2",&chi2," chi2/D"); - - ifstream fin; - fin.open("fitResult.txt"); - - char line[1024]; - - fin.getline(line, 1024); - cout << line << endl; - fin >> Y_true >> Tk_true >> Sa_true >> Iso_true >> Hlt_true; - cout << "Yield = " << Y_true; - cout << " eff_trk = " << Tk_true; - cout << " eff_sa = " << Sa_true; - cout << " eff_iso = " << Iso_true; - cout << " eff_hlt = " << Hlt_true << endl; - while(!(fin.eof())){ - Y = 0; - fin >> Y >> dY >> Tk >> dTk >> Sa >> - dSa >> Iso >> dIso >> Hlt >> dHlt >>chi2; - if(Y > 0) - tree->Fill(); - } - - tree->Print(); - f->Write(); - f->Close(); - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/isoStudy.C b/ElectroWeakAnalysis/ZMuMu/test/macros/isoStudy.C deleted file mode 100644 index 125403cc46716..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/isoStudy.C +++ /dev/null @@ -1,110 +0,0 @@ -{ -gROOT->SetStyle("Plain"); -int n = 5; - -double isoCut[n] = { 1.0, 2.0, 3.0, 4.0, 5.0 }; -double isoCutErr[n] = { 0.0, 0.0, 0.0, 0.0, 0.0 }; -double chi2[n] = { 1.0813, 0.9948, 0.964385, 0.992457, 0.989026 }; -double zYield[n] = { 8818.69, 8832.02, 8827.16, 8804.38, 8802.99 }; -double zYieldErr[n] = { 102.324, 102.079, 98.0602, 97.502, 95.9208 }; -double effIso[n] = { 0.935329, 0.960251, 0.980071, 0.987804, 0.992889 }; -double effIsoErr[n] = { 0.00235985, 0.00187779, 0.00133067, 0.00113768, 0.000920907 }; -double effSa[n] = { 0.932455 , 0.932456, 0.933515, 0.934257, 0.93411 }; -double effSaErr[n] = { 0.0025364, 0.0024718, 0.00233289, 0.00219377, 0.00228775 }; -double effTk[n] = { 0.996802, 0.996852, 0.996798, 0.99686, 0.996899 }; -double effTkErr[n] = { 0.000584946, 0.000550869, 0.000529331, 0.000509021, 0.000526273 }; -double relErr[n]; -for(unsigned int i = 0; i < n; ++i) relErr[i] = zYieldErr[i] / zYield[i]; - -gStyle->SetOptStat(kFALSE); -TCanvas canvas ("canvas","Isolation Study", 200, 10, 700, 500); - -TH2D zYieldFrame("frame", "", 1, 0.5, 5.5, 1, 8500, 9200); -TGraphErrors zYieldGraph(n, isoCut, zYield, isoCutErr, zYieldErr); -double mcX[2] = { isoCut[0], isoCut[n-1] }; -double mcY[2] = { 8958, 8958 }; -TGraph mc(2, mcX, mcY); -mc.SetLineWidth(2); -mc.SetLineColor(kRed); -zYieldFrame.GetXaxis()->SetTitle("isolation cut (GeV/c)"); -zYieldFrame.GetYaxis()->SetTitle("Z yield from fit"); -zYieldGraph.SetMarkerStyle(21); -zYieldGraph.SetLineWidth(2); -zYieldFrame.Draw(); -zYieldGraph.Draw("LP"); -mc.Draw("L"); -canvas.Update(); -canvas.SaveAs("zYieldVsIso.eps"); - -TH2D effIsoFrame("frame", "", 1, 0.5, 5.5, 1, 0.92, 1); -TGraphErrors effIsoGraph(n, isoCut, effIso, isoCutErr, effIsoErr); -effIsoFrame.GetXaxis()->SetTitle("isolation cut (GeV/c)"); -effIsoFrame.GetYaxis()->SetTitle("isolation efficiency from fit"); -effIsoGraph.SetMarkerStyle(21); -effIsoGraph.SetLineWidth(2); -effIsoFrame.Draw(); -effIsoGraph.Draw("LP"); -canvas.Update(); -canvas.SaveAs("effIsoVsIso.eps"); -{ -TH2D effSaFrame("frame", "", 1, 0.5, 5.5, 1, 0.92, 0.95); -double mcX[2] = { isoCut[0], isoCut[n-1] }; -double mcY[2] = { .938, .938 }; -TGraph mc(2, mcX, mcY); -mc.SetLineWidth(2); -mc.SetLineColor(kRed); -TGraphErrors effSaGraph(n, isoCut, effSa, isoCutErr, effSaErr); -effSaFrame.GetXaxis()->SetTitle("isolation cut (GeV/c)"); -effSaFrame.GetYaxis()->SetTitle("stand-alone efficiency from fit"); -effSaGraph.SetMarkerStyle(21); -effSaGraph.SetLineWidth(2); -effSaFrame.Draw(); -effSaGraph.Draw("LP"); -mc.Draw("L"); -canvas.Update(); -canvas.SaveAs("effSaVsIso.eps"); -} -{ -TH2D effTkFrame("frame", "", 1, 0.5, 5.5, 1, 0.994, 1); -double mcX[2] = { isoCut[0], isoCut[n-1] }; -double mcY[2] = { .9956, .9956 }; -TGraph mc(2, mcX, mcY); -mc.SetLineWidth(2); -mc.SetLineColor(kRed); -TGraphErrors effTkGraph(n, isoCut, effTk, isoCutErr, effTkErr); -effTkFrame.GetXaxis()->SetTitle("isolation cut (GeV/c)"); -effTkFrame.GetYaxis()->SetTitle("tracker efficiency from fit"); -effTkGraph.SetMarkerStyle(21); -effTkGraph.SetLineWidth(2); -effTkFrame.Draw(); -effTkGraph.Draw("LP"); -mc.Draw("L"); -canvas.Update(); -canvas.SaveAs("effTkVsIso.eps"); -} -TH2D chi2Frame("frame", "", 1, 0.5, 5.5, 1, 0, 2.0); -TGraph chi2Graph(n, isoCut, chi2); -chi2Frame.GetXaxis()->SetTitle("isolation cut (GeV/c)"); -chi2Frame.GetYaxis()->SetTitle("fit #chi^{2}"); -chi2Graph.SetMarkerStyle(21); -chi2Graph.SetLineWidth(2); -chi2Frame.Draw(); -chi2Graph.Draw("LP"); -canvas.Update(); -canvas.SaveAs("chi2VsIso.eps"); - -TH2D relErrFrame("frame", "", 1, 0.5, 5.5, 1, 0.0105, 0.012); -TGraph relErrGraph(n, isoCut, relErr); -relErrFrame.GetXaxis()->SetTitle("isolation cut (GeV/c)"); -relErrFrame.GetXaxis()->SetTitleOffset(-0.2); -relErrFrame.GetYaxis()->SetTitle("zYield relative error"); -relErrGraph.SetMarkerStyle(21); -relErrGraph.SetLineWidth(2); -relErrFrame.Draw(); -relErrGraph.Draw("LP"); -canvas.Update(); -canvas.SaveAs("relErrVsIso.eps"); - - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/plotMuon.C b/ElectroWeakAnalysis/ZMuMu/test/macros/plotMuon.C deleted file mode 100644 index 93f3d9647d206..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/plotMuon.C +++ /dev/null @@ -1,874 +0,0 @@ -#include "TFile.h" -#include "TChain.h" -#include "TH1F.h" -#include "TH2F.h" -#include "TTree.h" -#include "TAxis.h" -#include "TCanvas.h" -//#if !defined(__CINT__) && !defined(__MAKECINT__) -#include -#include -#include -//#endif - - - - - - - - - -void setGraphicsDATA(TH1F *histo){ -gStyle->SetOptStat(0); - histo->SetMarkerColor(kBlack); - histo->SetMarkerStyle(20); - histo->SetMarkerSize(0.8); - histo->SetLineWidth(2); - histo->SetLineColor(kBlack); - } - - - - - -void setGraphicsMC(TH1F *histo){ -gStyle->SetOptStat(0); - histo->SetFillColor(kAzure+7); - histo->SetLineWidth(2); - histo->SetLineWidth(2); - histo->SetLineColor(kBlue+1); - -} - - - - -void compareDATAMC( string name, TH1F * data, TH1F * mc , bool setLogY=kFALSE){ - TCanvas c; - gStyle->SetOptStat(0); - mc->Sumw2(); - double scale =1; - if (mc->Integral()>0) scale = data->Integral()/ mc->Integral(); - mc->Scale(scale); - mc->SetMaximum(data->GetMaximum()*1.5 + 1); - mc->Draw("HIST"); - data->Draw("esame"); - data->SetTitle(name.c_str()); - mc->SetTitle(name.c_str()); - leg = new TLegend(0.65,0.60,0.85,0.75); - leg->SetFillColor(kWhite); - leg->AddEntry(data,"data"); - leg->AddEntry(mc,"MC","f"); - leg->Draw(); - string plotname= name + ".gif"; - c.SetLogy(setLogY); - c.SetTitle(name.c_str()); - c.SaveAs(plotname.c_str()); - leg->Clear(); - - -} - - - - -void plotMuon(){ - -gStyle->SetOptStat(0); -gROOT->SetStyle("Plain"); -using namespace std; - -TChain * chainDATA = new TChain("Events"); // create the chain with tree "T" - -//chainMC.Add("MinBias2010_MC/NtupleLooseTestNew_oneshot_all_MCMinBias.root"); -// chainMC.Add("MinBias2010_MC/NtupleLoose_all_15apr_23_0.root"); -// chainMC.Add("MinBias2010_MC/NtupleLoose_all_15apr_23_1.root"); - - - int nFiles = 151; - - -for(int j=1;jAdd(name.c_str()); - } - - - -TChain * chainMC = new TChain("Events"); - - nFiles =220; - - -for(int j=1;jAdd(name.c_str()); - } - - - - -TFile * out = new TFile("histoMuons.root", "RECREATE"); - - - TCut qualCut ("MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>0 && MuChi2<10 && MuTrkIso<3.0 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2" ); - - - TCut qualCutButIso ("MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>0 && MuChi2<10 && MuTrkIso<1000.0 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2" ); - - TCut noQualCut ("MuGlobalMuonBit==1 && MuNofStripHits>=1 && MuNofMuonHits>-1 && MuChi2<1000 && MuTrkIso<1000.0 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2" ); - - - -TCut stdCut ("MuGlobalMuonBit==1 && MuTrkIso<3.0 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2" ); - - TCut qualCutHLT ("MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>0 && MuChi2<10 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 &&abs(MuDxyFromBS)<0.2" ); - - TCut qualCutButIsoHLT ("MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>0 && MuChi2<10 && MuTrkIso<1000.0 && MuHLTBit==1 && abs(MuEta)<2.1 &&abs(MuDxyFromBS)<0.2" ); - - TCut noQualCutButHLT ("MuGlobalMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=1 && MuNofMuonHits>-2 && MuChi2<1000 && MuTrkIso<1000.0 && MuHLTBit==1 && abs(MuEta)<2.1 &&abs(MuDxyFromBS)<0.2" ); - - - - TCut qualCutNoHLT ("MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>0 && MuChi2<10 && MuTrkIso<3.0 && abs(MuEta)<2.1 && MuHLTBit==0 &&abs(MuDxyFromBS)<0.2 && MuPt>10" ); - - //============== histo Data ===============/// - -TDirectory * dir = out->mkdir("MuDATAPlots"); - dir->cd(); - - - TH1F * muPtDATADen= new TH1F("muPtDATADen", "muPtDATADen", 100, 0, 100); - chainDATA->Project("muPtDATADen", "MuPt", qualCut); - setGraphicsDATA(muPtDATADen); - muPtDATADen->Write(); - delete muPtDATADen; - - TH1F * muEtaDATADen= new TH1F("muEtaDATADen", "muEtaDATADen", 100, -2.5, 2.5); - chainDATA->Project("muEtaDATADen", "MuEta", qualCut); - setGraphicsDATA(muEtaDATADen); - muEtaDATADen->Write(); - delete muEtaDATADen; - - - - - TH1F * muPtDATADenNotIso= new TH1F("muPtDATADenNotIso", "muPtDATADenNotIso", 100, 0, 100); - chainDATA->Project("muPtDATADenNotIso", "MuPt", qualCutButIso); - setGraphicsDATA(muPtDATADenNotIso); - muPtDATADenNotIso->Write(); - delete muPtDATADenNotIso; - - - - TH1F * muPtDATADenNoCut= new TH1F("muPtDATADenNoCut", "muPtDATADenNoCut", 100, 0, 100); - chainDATA->Project("muPtDATADenNoCut", "MuPt", noQualCut); - setGraphicsDATA(muPtDATADenNoCut); - muPtDATADenNoCut->Write(); - delete muPtDATADenNoCut; - - - - - - - - - TH1F * muEtaDATA= new TH1F("muEtaDATA", "muEtaDATA", 100, -2.5, 2.5); - chainDATA->Project("muEtaDATA", "MuEta", qualCut); - setGraphicsDATA(muEtaDATA); - muEtaDATA->Write(); - delete muEtaDATA; - - - TH1F * muPtDATANum= new TH1F("muPtDATANum", "muPtDATANum", 100, 0, 100); - chainDATA->Project("muPtDATANum", "MuPt", qualCutHLT); - setGraphicsDATA(muPtDATANum); - muPtDATANum->Write(); - delete muPtDATANum; - - TH1F * muEtaDATANum= new TH1F("muEtaDATANum", "muEtaDATANum", 100, -2.5, 2.5); - chainDATA->Project("muEtaDATANum", "MuEta", qualCutHLT + "MuPt>10"); - setGraphicsDATA(muEtaDATANum); - muEtaDATANum->Write(); - delete muEtaDATANum; - - - - - TH1F * muPtDATANumNotIso= new TH1F("muPtDATANumNotIso", "muPtDATANumNotIso", 100, 0, 100); - chainDATA->Project("muPtDATANumNotIso", "MuPt", qualCutButIsoHLT); - setGraphicsDATA(muPtDATANumNotIso); - muPtDATANumNotIso->Write(); - delete muPtDATANumNotIso; - - - - TH1F * muPtDATANumNoCut= new TH1F("muPtDATANumNoCut", "muPtDATANumNoCut", 100, 0, 100); - chainDATA->Project("muPtDATANumNoCut", "MuPt", noQualCutButHLT); - setGraphicsDATA(muPtDATANumNoCut); - muPtDATANumNoCut->Write(); - delete muPtDATANumNoCut; - - - - - TH2F * muPtEtaDATADen= new TH2F("muPtEtaDATADen", "muPtEtaDATADenEta", 100, -2.5, 2.5, 100, 0, 100); - chainDATA->Project("muPtEtaDATADen", "MuPt:MuEta", qualCut); - //setGraphics2dimDATA(muPtEtaDATADen); - muPtEtaDATADen->Write(); - delete muPtEtaDATADen; - - - TH2F * muPtEtaDATANum= new TH2F("muPtEtaDATANum", "muPtEtaDATANum", 100, -2.5, 2.5, 100, 0, 100); - chainDATA->Project("muPtEtaDATANum", "MuPt:MuEta", qualCutHLT); - // setGraphics2dimDATA(muPtEtaDATANum); - muPtEtaDATANum->Write(); - delete muPtEtaDATANum; - - - - TH1F * muNoHLTEta= new TH1F("muNoHLTEta", "muNoHLTEta", 100, -2.5, 2.5); - chainDATA->Project("muNoHLTEta", "MuEta", qualCutNoHLT); - setGraphicsDATA(muNoHLTEta); - muNoHLTEta->Write(); - delete muNoHLTEta; - - TH1F * muNoHLTChi2= new TH1F("muNoHLTChi2", "muNoHLTChi2", 100, 0, 100); - chainDATA->Project("muNoHLTChi2", "MuChi2", qualCutNoHLT); - setGraphicsDATA(muNoHLTChi2); - muNoHLTChi2->Write(); - delete muNoHLTChi2; - - - - TH1F * muNoHLTPixelHits= new TH1F("muNoHLTPixelHits", "muNoHLTPixelHits", 10, -0.5, 9.5); - chainDATA->Project("muNoHLTPixelHits", "MuNofPixelHits", qualCutNoHLT); - setGraphicsDATA(muNoHLTPixelHits); - muNoHLTPixelHits->Write(); - delete muNoHLTPixelHits; - - - TH1F * muNoHLTMuonHits= new TH1F("muNoHLTMuonHits", "muNoHLTMuonHits", 30, -0.5, 39.5); - chainDATA->Project("muNoHLTMuonHits", "MuNofMuonHits", qualCutNoHLT); - setGraphicsDATA(muNoHLTMuonHits); - muNoHLTMuonHits->Write(); - delete muNoHLTMuonHits; - - TH1F * muNoHLTMuMatches= new TH1F("muNoHLTMuMatches", "muNoHLTMuMatches", 15, -0.5, 14.5); - chainDATA->Project("muNoHLTMuMatches", "MuNofMuMatches", qualCutNoHLT); - setGraphicsDATA(muNoHLTMuMatches); - muNoHLTMuMatches->Write(); - delete muNoHLTMuMatches; - - - - - TH1F * muNoHLTMuEnergyEm= new TH1F("muNoHLTMuEnergyEm", "muNoHLTMuEnergyEm", 100, 0, 10); - chainDATA->Project("muNoHLTMuEnergyEm", "MuEnergyEm", qualCutNoHLT); - setGraphicsDATA(muNoHLTMuEnergyEm); - muNoHLTMuEnergyEm->Write(); - delete muNoHLTMuEnergyEm; - - - TH1F * muNoHLTMuEnergyHad= new TH1F("muNoHLTMuEnergyHad", "muNoHLTMuEnergyHad", 100, 0, 20); - chainDATA->Project("muNoHLTMuEnergyHad", "MuEnergyHad", qualCutNoHLT); - setGraphicsDATA(muNoHLTMuEnergyHad); - muNoHLTMuEnergyHad->Write(); - delete muNoHLTMuEnergyHad; - - - - - - - TH1F * muNofPixelHits= new TH1F("muNofPixelHits", "muNofPixelHits", 10, -0.5, 9.5); - chainDATA->Project("muNofPixelHits", "MuNofPixelHits", stdCut); - setGraphicsDATA(muNofPixelHits); - muNofPixelHits->Write(); - delete muNofPixelHits; - - TH1F * muNofStripHits= new TH1F("muNofStripHits", "muNofStripHits", 30, -0.5, 29.5); - chainDATA->Project("muNofStripHits", "MuNofStripHits", stdCut); - setGraphicsDATA(muNofStripHits); - muNofStripHits->Write(); - delete muNofStripHits; - - - TH1F * muNofMuonHits= new TH1F("muNofMuonHits", "muNofMuonHits", 40, -0.5, 39.5); - chainDATA->Project("muNofMuonHits", "MuNofMuonHits", stdCut); - setGraphicsDATA(muNofMuonHits); - muNofMuonHits->Write(); - delete muNofMuonHits; - - - TH1F * muNofMuMatches= new TH1F("muNofMuMatches", "muNofMuMatches", 15, -0.5, 14.5); - chainDATA->Project("muNofMuMatches", "MuNofMuMatches", stdCut); - setGraphicsDATA(muNofMuMatches); - muNofMuMatches->Write(); - delete muNofMuMatches; - - - - - TH1F * muEnergyEm= new TH1F("muEnergyEm", "muEnergyEm", 100, 0, 10); - chainDATA->Project("muEnergyEm", "MuEnergyEm", stdCut); - setGraphicsDATA(muEnergyEm); - muEnergyEm->Write(); - delete muEnergyEm; - - - TH1F * muEnergyHad= new TH1F("muEnergyHad", "muEnergyHad", 100, 0, 20); - chainDATA->Project("muEnergyHad", "MuEnergyHad", stdCut); - setGraphicsDATA(muEnergyHad); - muEnergyHad->Write(); - delete muEnergyHad; - - - - - TH1F * muChi2= new TH1F("muChi2", "muChi2", 100, 0, 100); - chainDATA->Project("muChi2", "MuChi2", stdCut); - setGraphicsDATA(muChi2); - muChi2->Write(); - delete muChi2; - - - /// after quality cuts - - - TH1F * muNofPixelHitsAfterCut= new TH1F("muNofPixelHitsAfterCut", "muNofPixelHits", 10, -0.5, 9.5); - chainDATA->Project("muNofPixelHitsAfterCut", "MuNofPixelHits", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && MuNofStripHits>=7 && MuNofMuonHits>0 && MuChi2<10 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 &&abs(MuDxyFromBS)<0.2"); - setGraphicsDATA(muNofPixelHitsAfterCut); - muNofPixelHitsAfterCut->Write(); - delete muNofPixelHitsAfterCut; - - TH1F * muNofStripHitsAfterCut= new TH1F("muNofStripHitsAfterCut", "muNofStripHitsAfterCut", 30, -0.5, 29.5); - chainDATA->Project("muNofStripHitsAfterCut", "MuNofStripHits", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && MuNofPixelHits>0 && MuNofMuonHits>0 && MuChi2<10 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2"); - setGraphicsDATA(muNofStripHitsAfterCut); - muNofStripHitsAfterCut->Write(); - delete muNofStripHitsAfterCut; - - - TH1F * muNofMuonHitsAfterCut= new TH1F("muNofMuonHitsAfterCut", "muNofMuonHitsAfterCut", 15, -0.5, 14.5); - chainDATA->Project("muNofMuonHitsAfterCut", "MuNofMuonHits", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>-1 && MuChi2<10 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2"); - setGraphicsDATA(muNofMuonHitsAfterCut); - muNofMuonHitsAfterCut->Write(); - delete muNofMuonHitsAfterCut; - - - TH1F * muNofMuMatchesAfterCut= new TH1F("muNofMuMatchesAfterCut", "muNofMuMatchesAfterCut", 15, -0.5, 14.5); - chainDATA->Project("muNofMuMatchesAfterCut", "MuNofMuMatches", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>-1 && MuChi2<10 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2"); - setGraphicsDATA(muNofMuMatchesAfterCut); - muNofMuMatchesAfterCut->Write(); - delete muNofMuMatchesAfterCut; - - - - - TH1F * muEnergyEmAfterCut= new TH1F("muEnergyEmAfterCut", "muEnergyEmAfterCut", 100, 0, 10); - chainDATA->Project("muEnergyEmAfterCut", "MuEnergyEm", qualCutHLT); - setGraphicsDATA(muEnergyEmAfterCut); - muEnergyEmAfterCut->Write(); - delete muEnergyEmAfterCut; - - - TH1F * muEnergyHadAfterCut= new TH1F("muEnergyHadAfterCut", "muEnergyHadAfterCut", 100, 0, 20); - chainDATA->Project("muEnergyHadAfterCut", "MuEnergyHad", qualCutHLT); - setGraphicsDATA(muEnergyHadAfterCut); - muEnergyHadAfterCut->Write(); - delete muEnergyHadAfterCut; - - - - - TH1F * muChi2AfterCut= new TH1F("muChi2AfterCut", "muChi2AfterCut", 100, 0, 100); - chainDATA->Project("muChi2AfterCut", "MuChi2", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>-1 && MuChi2<1000 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2"); - setGraphicsDATA(muChi2AfterCut); - muChi2AfterCut->Write(); - delete muChi2AfterCut; - - - - - - - - - - -out->cd("/"); - - - -//============== histo MC ===============/// -TDirectory * dir = out->mkdir("MuMCPlots"); - dir->cd(); - - TH1F * muPtMCDen= new TH1F("muPtMCDen", "muPtMCDen", 100, 0, 100); - chainMC->Project("muPtMCDen", "MuPt", qualCut); - setGraphicsMC(muPtMCDen); - muPtMCDen->Write(); - delete muPtMCDen; - - - TH1F * muEtaMCDen= new TH1F("muEtaMCDen", "muEtaMCDen", 100, -2.5, 2.5); - chainMC->Project("muEtaMCDen", "MuEta", qualCut); - setGraphicsMC(muEtaMCDen); - muEtaMCDen->Write(); - delete muEtaMCDen; - - - - TH1F * muPtMCDenNotIso= new TH1F("muPtMCDenNotIso", "muPtMCDenNotIso", 100, 0, 100); - chainMC->Project("muPtMCDenNotIso", "MuPt", qualCutButIso); - setGraphicsMC(muPtMCDenNotIso); - muPtMCDenNotIso->Write(); - delete muPtMCDenNotIso; - - - - TH1F * muPtMCDenNoCut= new TH1F("muPtMCDenNoCut", "muPtMCDenNoCut", 100, 0, 100); - chainMC->Project("muPtMCDenNoCut", "MuPt", noQualCut); - setGraphicsMC(muPtMCDenNoCut); - muPtMCDenNoCut->Write(); - delete muPtMCDenNoCut; - - - - - -TH1F * muEtaMC= new TH1F("muEtaMC", "muEtaMC", 100, -2.5, 2.5); - chainMC->Project("muEtaMC", "MuEta", qualCut); - setGraphicsMC(muEtaMC); - muEtaMC->Write(); - delete muEtaMC; - - TH1F * muPtMCNum= new TH1F("muPtMCNum", "muPtMCNum", 100, 0, 100); - chainMC->Project("muPtMCNum", "MuPt", qualCutHLT); - setGraphicsMC(muPtMCNum); - muPtMCNum->Write(); - delete muPtMCNum; - - TH1F * muEtaMCNum= new TH1F("muEtaMCNum", "muEtaMCNum", 100, -2.5, 2.5); - chainMC->Project("muEtaMCNum", "MuEta", qualCutHLT + "MuPt>10"); - setGraphicsMC(muEtaMCNum); - muEtaMCNum->Write(); - delete muEtaMCNum; - - - - TH1F * muPtMCNumNotIso= new TH1F("muPtMCNumNotIso", "muPtMCNumNotIso", 100, 0, 100); - chainMC->Project("muPtMCNumNotIso", "MuPt", qualCutButIsoHLT); - setGraphicsMC(muPtMCNumNotIso); - muPtMCNumNotIso->Write(); - delete muPtMCNumNotIso; - - - - TH1F * muPtMCNumNoCut= new TH1F("muPtMCNumNoCut", "muPtMCNumNoCut", 100, 0, 100); - chainMC->Project("muPtMCNumNoCut", "MuPt", noQualCutButHLT); - setGraphicsMC(muPtMCNumNoCut); - muPtMCNumNoCut->Write(); - delete muPtMCNumNoCut; - - - - TH2F * muPtEtaMCDen= new TH2F("muPtEtaMCDen", "muPtEtaMCDenEta", 100, -2.5, 2.5, 100, 0, 100); - chainMC->Project("muPtEtaMCDen", "MuPt:MuEta", qualCut); - //setGraphics2dimMC(muPtEtaMCDen); - muPtEtaMCDen->Write(); - delete muPtEtaMCDen; - - - TH2F * muPtEtaMCNum= new TH2F("muPtEtaMCNum", "muPtEtaMCNum", 100, -2.5, 2.5, 100, 0, 100); - chainMC->Project("muPtEtaMCNum", "MuPt:MuEta", qualCutHLT); - // setGraphics2dimMC(muPtEtaMCNum); - muPtEtaMCNum->Write(); - delete muPtEtaMCNum; - - - - TH1F * muNoHLTEta= new TH1F("muNoHLTEta", "muNoHLTEta", 100, -2.5, 2.5); - chainMC->Project("muNoHLTEta", "MuEta", qualCutNoHLT); - setGraphicsMC(muNoHLTEta); - muNoHLTEta->Write(); - delete muNoHLTEta; - - - TH1F * muNoHLTChi2= new TH1F("muNoHLTChi2", "muNoHLTChi2", 100, 0, 100); - chainMC->Project("muNoHLTChi2", "MuChi2", qualCutNoHLT); - setGraphicsMC(muNoHLTChi2); - muNoHLTChi2->Write(); - delete muNoHLTChi2; - - - - TH1F * muNoHLTPixelHits= new TH1F("muNoHLTPixelHits", "muNoHLTPixelHits", 10, -0.5, 9.5); - chainMC->Project("muNoHLTPixelHits", "MuNofPixelHits", qualCutNoHLT); - setGraphicsMC(muNoHLTPixelHits); - muNoHLTPixelHits->Write(); - delete muNoHLTPixelHits; - - - TH1F * muNoHLTMuonHits= new TH1F("muNoHLTMuonHits", "muNoHLTMuonHits", 40, -0.5, 39.5); - chainMC->Project("muNoHLTMuonHits", "MuNofMuonHits", qualCutNoHLT); - setGraphicsMC(muNoHLTMuonHits); - muNoHLTMuonHits->Write(); - delete muNoHLTMuonHits; - - - TH1F * muNoHLTMuMatches= new TH1F("muNoHLTMuMatches", "muNoHLTMuMatches", 15, -0.5, 14.5); - chainMC->Project("muNoHLTMuMatches", "MuNofMuMatches", qualCutNoHLT); - setGraphicsMC(muNoHLTMuMatches); - muNoHLTMuMatches->Write(); - delete muNoHLTMuMatches; - - - - TH1F * muNoHLTMuEnergyEm= new TH1F("muNoHLTMuEnergyEm", "muNoHLTMuEnergyEm", 100, 0, 10); - chainMC->Project("muNoHLTMuEnergyEm", "MuEnergyEm", qualCutNoHLT); - setGraphicsMC(muNoHLTMuEnergyEm); - muNoHLTMuEnergyEm->Write(); - delete muNoHLTMuEnergyEm; - - - TH1F * muNoHLTMuEnergyHad= new TH1F("muNoHLTMuEnergyHad", "muNoHLTMuEnergyHad", 100, 0, 20); - chainMC->Project("muNoHLTMuEnergyHad", "MuEnergyHad", qualCutNoHLT); - setGraphicsMC(muNoHLTMuEnergyHad); - muNoHLTMuEnergyHad->Write(); - delete muNoHLTMuEnergyHad; - - - - - TH1F * muNofPixelHits= new TH1F("muNofPixelHits", "muNofPixelHits", 10, -0.5, 9.5); - chainMC->Project("muNofPixelHits", "MuNofPixelHits", stdCut); - setGraphicsMC(muNofPixelHits); - muNofPixelHits->Write(); - delete muNofPixelHits; - - TH1F * muNofStripHits= new TH1F("muNofStripHits", "muNofStripHits", 30, -0.5, 29.5); - chainMC->Project("muNofStripHits", "MuNofStripHits", stdCut); - setGraphicsMC(muNofStripHits); - muNofStripHits->Write(); - delete muNofStripHits; - - - TH1F * muNofMuonHits= new TH1F("muNofMuonHits", "muNofMuonHits", 40, -0.5, 39.5); - chainMC->Project("muNofMuonHits", "MuNofMuonHits", stdCut); - setGraphicsMC(muNofMuonHits); - muNofMuonHits->Write(); - delete muNofMuonHits; - - - TH1F * muNofMuMatches= new TH1F("muNofMuMatches", "muNofMuMatches", 15, -0.5, 14.5); - chainMC->Project("muNofMuMatches", "MuNofMuMatches", stdCut); - setGraphicsMC(muNofMuMatches); - muNofMuMatches->Write(); - delete muNofMuMatches; - - - - TH1F * muEnergyEm= new TH1F("muEnergyEm", "muEnergyEm", 100, 0, 10); - chainMC->Project("muEnergyEm", "MuEnergyEm", stdCut); - setGraphicsMC(muEnergyEm); - muEnergyEm->Write(); - delete muEnergyEm; - - - TH1F * muEnergyHad= new TH1F("muEnergyHad", "muEnergyHad", 100, 0, 20); - chainMC->Project("muEnergyHad", "MuEnergyHad", stdCut); - setGraphicsMC(muEnergyHad); - muEnergyHad->Write(); - delete muEnergyHad; - - - - - TH1F * muChi2= new TH1F("muChi2", "muChi2", 100, 0, 100); - chainMC->Project("muChi2", "MuChi2", stdCut); - setGraphicsMC(muChi2); - muChi2->Write(); - delete muChi2; - - - /// after quality cuts - - - TH1F * muNofPixelHitsAfterCut= new TH1F("muNofPixelHitsAfterCut", "muNofPixelHits", 10, -0.5, 9.5); - chainMC->Project("muNofPixelHitsAfterCut", "MuNofPixelHits", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && MuNofStripHits>=7 && MuNofMuonHits>0 && MuChi2<10 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 &&abs(MuDxyFromBS)<0.2"); - setGraphicsMC(muNofPixelHitsAfterCut); - muNofPixelHitsAfterCut->Write(); - delete muNofPixelHitsAfterCut; - - TH1F * muNofStripHitsAfterCut= new TH1F("muNofStripHitsAfterCut", "muNofStripHitsAfterCut", 30, -0.5, 29.5); - chainMC->Project("muNofStripHitsAfterCut", "MuNofStripHits", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && MuNofPixelHits>0 && MuNofMuonHits>0 && MuChi2<10 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 && MuPt>10 &&abs(MuDxyFromBS)<0.2"); - setGraphicsMC(muNofStripHitsAfterCut); - muNofStripHitsAfterCut->Write(); - delete muNofStripHitsAfterCut; - - - TH1F * muNofMuonHitsAfterCut= new TH1F("muNofMuonHitsAfterCut", "muNofMuonHitsAfterCut", 40, -0.5, 39.5); - chainMC->Project("muNofMuonHitsAfterCut", "MuNofMuonHits", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>-1 && MuChi2<10 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2"); - setGraphicsMC(muNofMuonHitsAfterCut); - muNofMuonHitsAfterCut->Write(); - delete muNofMuonHitsAfterCut; - - - - - TH1F * muNofMuMatchesAfterCut= new TH1F("muNofMuMatchesAfterCut", "muNofMuMatchesAfterCut", 15, -0.5, 14.5); - chainMC->Project("muNofMuMatchesAfterCut", "MuNofMuMatches", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>-1 && MuChi2<10 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2"); - setGraphicsMC(muNofMuMatchesAfterCut); - muNofMuMatchesAfterCut->Write(); - delete muNofMuMatchesAfterCut; - - - - - TH1F * muEnergyEmAfterCut= new TH1F("muEnergyEmAfterCut", "muEnergyEmAfterCut", 100, 0, 10); - chainMC->Project("muEnergyEmAfterCut", "MuEnergyEm", qualCutHLT); - setGraphicsMC(muEnergyEmAfterCut); - muEnergyEmAfterCut->Write(); - delete muEnergyEmAfterCut; - - - TH1F * muEnergyHadAfterCut= new TH1F("muEnergyHadAfterCut", "muEnergyHadAfterCut", 100, 0, 20); - chainMC->Project("muEnergyHadAfterCut", "MuEnergyHad", qualCutHLT); - setGraphicsMC(muEnergyHadAfterCut); - muEnergyHadAfterCut->Write(); - delete muEnergyHadAfterCut; - - - - - TH1F * muChi2AfterCut= new TH1F("muChi2AfterCut", "muChi2AfterCut", 100, 0, 100); - chainMC->Project("muChi2AfterCut", "MuChi2", "MuGlobalMuonBit==1 && MuTrackerMuonBit==1 && (MuNofStripHits + MuNofPixelHits)>=10 && MuNofMuonHits>-1 && MuChi2<1000 && MuTrkIso<3.0 && MuHLTBit==1 && abs(MuEta)<2.1 && MuPt>10 && abs(MuDxyFromBS)<0.2"); - setGraphicsMC(muChi2AfterCut); - muChi2AfterCut->Write(); - delete muChi2AfterCut; - - - - - - - - - -out->cd("/"); - - - - -//============== histo DATA vs MC ===============/// -TDirectory * dir = out->mkdir("DATAvsMCPlots"); - dir->cd(); - - TH1F * muPtDATADen= (TH1F*) out->Get("MuDATAPlots/muPtDATADen"); - TH1F * muPtMCDen= (TH1F*) out->Get("MuMCPlots/muPtMCDen"); - compareDATAMC( "PtDen", muPtDATADen, muPtMCDen, kTRUE ); - - TH1F * muPtDATANum= (TH1F*) out->Get("MuDATAPlots/muPtDATANum"); - TH1F * muPtMCNum= (TH1F*) out->Get("MuMCPlots/muPtMCNum"); - compareDATAMC( "PtNum", muPtDATANum, muPtMCNum , kTRUE); - - TH1F * muEtaDATADen= (TH1F*) out->Get("MuDATAPlots/muEtaDATADen"); - TH1F * muEtaMCDen= (TH1F*) out->Get("MuMCPlots/muEtaMCDen"); - compareDATAMC( "EtaDen", muEtaDATADen, muEtaMCDen , kTRUE); - - TH1F * muEtaDATANum= (TH1F*) out->Get("MuDATAPlots/muEtaDATANum"); - TH1F * muEtaMCNum= (TH1F*) out->Get("MuMCPlots/muEtaMCNum"); - compareDATAMC( "EtaNum", muEtaDATANum, muEtaMCNum , kTRUE); - - - - - TH1F * muPtDATADenNotIso= (TH1F*) out->Get("MuDATAPlots/muPtDATADenNotIso"); - TH1F * muPtMCDenNotIso= (TH1F*) out->Get("MuMCPlots/muPtMCDenNotIso"); - compareDATAMC( "PtDenNotIso", muPtDATADenNotIso, muPtMCDenNotIso, kTRUE ); - - TH1F * muPtDATANumNotIso= (TH1F*) out->Get("MuDATAPlots/muPtDATANumNotIso"); - TH1F * muPtMCNumNotIso= (TH1F*) out->Get("MuMCPlots/muPtMCNumNotIso"); - compareDATAMC( "PtNumNotIso", muPtDATANumNotIso, muPtMCNumNotIso , kTRUE); - - - - TH1F * muPtDATADenNoCut= (TH1F*) out->Get("MuDATAPlots/muPtDATADenNoCut"); - TH1F * muPtMCDenNoCut= (TH1F*) out->Get("MuMCPlots/muPtMCDenNoCut"); - compareDATAMC( "PtDenNoCut", muPtDATADenNoCut, muPtMCDenNoCut , kTRUE); - - TH1F * muPtDATANumNoCut= (TH1F*) out->Get("MuDATAPlots/muPtDATANumNoCut"); - TH1F * muPtMCNumNoCut= (TH1F*) out->Get("MuMCPlots/muPtMCNumNoCut"); - compareDATAMC( "PtNumNoCut", muPtDATANumNoCut, muPtMCNumNoCut , kTRUE); - - - - - TH1F * muEtaDATA= (TH1F*) out->Get("MuDATAPlots/muEtaDATA"); - TH1F * muEtaMC= (TH1F*) out->Get("MuMCPlots/muEtaMC"); - compareDATAMC( "Eta", muEtaDATA, muEtaMC , kTRUE); - - TH1F * muNoHLTEtaDATA= (TH1F*) out->Get("MuDATAPlots/muNoHLTEta"); - TH1F * muNoHLTEtaMC= (TH1F*) out->Get("MuMCPlots/muNoHLTEta"); - compareDATAMC( "NoHLTEta", muNoHLTEtaDATA, muNoHLTEtaMC, kTRUE ); - - - TH1F * muNoHLTChi2DATA= (TH1F*) out->Get("MuDATAPlots/muNoHLTChi2"); - TH1F * muNoHLTChi2MC= (TH1F*) out->Get("MuMCPlots/muNoHLTChi2"); - compareDATAMC( "NoHLTChi2", muNoHLTChi2DATA, muNoHLTChi2MC, kTRUE ); - - - - - TH1F * muNoHLTPixelHitsDATA= (TH1F*) out->Get("MuDATAPlots/muNoHLTPixelHits"); - TH1F * muNoHLTPixelHitsMC= (TH1F*) out->Get("MuMCPlots/muNoHLTPixelHits"); - compareDATAMC( "NoHLTPixelHits", muNoHLTPixelHitsDATA, muNoHLTPixelHitsMC ); - - - - TH1F * muNoHLTMuonHitsDATA= (TH1F*) out->Get("MuDATAPlots/muNoHLTMuonHits"); - TH1F * muNoHLTMuonHitsMC= (TH1F*) out->Get("MuMCPlots/muNoHLTMuonHits"); - compareDATAMC( "NoHLTMuonHits", muNoHLTMuonHitsDATA, muNoHLTMuonHitsMC ); - - TH1F * muNoHLTMuMatchesDATA= (TH1F*) out->Get("MuDATAPlots/muNoHLTMuMatches"); - TH1F * muNoHLTMuMatchesMC= (TH1F*) out->Get("MuMCPlots/muNoHLTMuMatches"); - compareDATAMC( "NoHLTMuMatches", muNoHLTMuMatchesDATA, muNoHLTMuMatchesMC ); - - - - - TH1F * muNoHLTMuEnergyEmDATA= (TH1F*) out->Get("MuDATAPlots/muNoHLTMuEnergyEm"); - TH1F * muNoHLTMuEnergyEmMC= (TH1F*) out->Get("MuMCPlots/muNoHLTMuEnergyEm"); - compareDATAMC( "NoHLTMuEnergyEm", muNoHLTMuEnergyEmDATA, muNoHLTMuEnergyEmMC , kTRUE); - - - TH1F * muNoHLTMuEnergyHadDATA= (TH1F*) out->Get("MuDATAPlots/muNoHLTMuEnergyHad"); - TH1F * muNoHLTMuEnergyHadMC= (TH1F*) out->Get("MuMCPlots/muNoHLTMuEnergyHad"); - compareDATAMC( "NoHLTMuEnergyHad", muNoHLTMuEnergyHadDATA, muNoHLTMuEnergyHadMC , kTRUE); - - - - TH1F * muPixelHitsDATA= (TH1F*) out->Get("MuDATAPlots/muNofPixelHits"); - TH1F * muPixelHitsMC= (TH1F*) out->Get("MuMCPlots/muNofPixelHits"); - compareDATAMC( "PixelHits", muPixelHitsDATA, muPixelHitsMC ); - - - - TH1F * muStripHitsDATA= (TH1F*) out->Get("MuDATAPlots/muNofStripHits"); - TH1F * muStripHitsMC= (TH1F*) out->Get("MuMCPlots/muNofStripHits"); - compareDATAMC( "StripHits", muStripHitsDATA, muStripHitsMC ); - - - TH1F * muMuonHitsDATA= (TH1F*) out->Get("MuDATAPlots/muNofMuonHits"); - TH1F * muMuonHitsMC= (TH1F*) out->Get("MuMCPlots/muNofMuonHits"); - compareDATAMC( "MuonHits", muMuonHitsDATA, muMuonHitsMC ); - - - TH1F * muMuMatchesDATA= (TH1F*) out->Get("MuDATAPlots/muNofMuMatches"); - TH1F * muMuMatchesMC= (TH1F*) out->Get("MuMCPlots/muNofMuMatches"); - compareDATAMC( "MuMatches", muMuMatchesDATA, muMuMatchesMC ); - - - - TH1F * muEnergyEmDATA= (TH1F*) out->Get("MuDATAPlots/muEnergyEm"); - TH1F * muEnergyEmMC= (TH1F*) out->Get("MuMCPlots/muEnergyEm"); - compareDATAMC( "MuEnergyEm", muEnergyEmDATA, muEnergyEmMC , kTRUE); - - -TH1F * muEnergyHadDATA = (TH1F*) out->Get("MuDATAPlots/muEnergyHad"); - TH1F * muEnergyHadMC= (TH1F*) out->Get("MuMCPlots/muEnergyHad"); - compareDATAMC( "MuEnergyHad", muEnergyHadDATA, muEnergyHadMC , kTRUE); - - - - TH1F * muChi2DATA= (TH1F*) out->Get("MuDATAPlots/muChi2"); - TH1F * muChi2MC= (TH1F*) out->Get("MuMCPlots/muChi2"); - compareDATAMC( "Chi2", muChi2DATA, muChi2MC , kTRUE); - - - // after quality cuts - - - - TH1F * muPixelHitsAfterCutDATA= (TH1F*) out->Get("MuDATAPlots/muNofPixelHitsAfterCut"); - TH1F * muPixelHitsAfterCutMC= (TH1F*) out->Get("MuMCPlots/muNofPixelHitsAfterCut"); - compareDATAMC( "PixelHitsAfterCut", muPixelHitsAfterCutDATA, muPixelHitsAfterCutMC ); - - - - TH1F * muStripHitsAfterCutDATA= (TH1F*) out->Get("MuDATAPlots/muNofStripHitsAfterCut"); - TH1F * muStripHitsAfterCutMC= (TH1F*) out->Get("MuMCPlots/muNofStripHitsAfterCut"); - compareDATAMC( "StripHitsAfterCut", muStripHitsAfterCutDATA, muStripHitsAfterCutMC ); - - - TH1F * muMuonHitsAfterCutDATA= (TH1F*) out->Get("MuDATAPlots/muNofMuonHitsAfterCut"); - TH1F * muMuonHitsAfterCutMC= (TH1F*) out->Get("MuMCPlots/muNofMuonHitsAfterCut"); - compareDATAMC( "MuonHitsAfterCut", muMuonHitsAfterCutDATA, muMuonHitsAfterCutMC ); - - - TH1F * muMuMatchesAfterCutDATA= (TH1F*) out->Get("MuDATAPlots/muNofMuMatchesAfterCut"); - TH1F * muMuMatchesAfterCutMC= (TH1F*) out->Get("MuMCPlots/muNofMuMatchesAfterCut"); - compareDATAMC( "MuMatchesAfterCut", muMuMatchesAfterCutDATA, muMuMatchesAfterCutMC ); - - - - TH1F * muEnergyEmAfterCutDATA= (TH1F*) out->Get("MuDATAPlots/muEnergyEmAfterCut"); - TH1F * muEnergyEmAfterCutMC= (TH1F*) out->Get("MuMCPlots/muEnergyEmAfterCut"); - compareDATAMC( "MuEnergyEmAfterCut", muEnergyEmAfterCutDATA, muEnergyEmAfterCutMC , kTRUE); - - -TH1F * muEnergyHadAfterCutDATA = (TH1F*) out->Get("MuDATAPlots/muEnergyHadAfterCut"); - TH1F * muEnergyHadAfterCutMC= (TH1F*) out->Get("MuMCPlots/muEnergyHadAfterCut"); - compareDATAMC( "MuEnergyHadAfterCut", muEnergyHadAfterCutDATA, muEnergyHadAfterCutMC , kTRUE); - - - - TH1F * muChi2AfterCutDATA= (TH1F*) out->Get("MuDATAPlots/muChi2AfterCut"); - TH1F * muChi2AfterCutMC= (TH1F*) out->Get("MuMCPlots/muChi2AfterCut"); - compareDATAMC( "Chi2AfterCut", muChi2AfterCutDATA, muChi2AfterCutMC , kTRUE); - - - TH2F * muPtEtaDATANum= (TH2F*) out->Get("MuDATAPlots/muPtEtaDATANum"); - TH2F * muPtEtaDATADen= (TH2F*) out->Get("MuDATAPlots/muPtEtaDATADen"); - - - muPtEtaDATANum->Divide(muPtEtaDATADen); - gStyle->SetPalette(1,0); - - muPtEtaDATANum->SetTitle("HLT_Mu9 pt vs eta efficiency"); - muPtEtaDATANum->GetYaxis()->SetRangeUser(9,49); - TCanvas c1; - muPtEtaDATANum->Draw("COLZ"); - - c1.SaveAs("MuHLT_Mu9_PtvsEtaEfficiency.gif"); - - - - - -out->cd("/"); - - - - - - - - - - - out->Close(); - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/plots.C b/ElectroWeakAnalysis/ZMuMu/test/macros/plots.C deleted file mode 100644 index 05419b1aed820..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/plots.C +++ /dev/null @@ -1,496 +0,0 @@ -#include "TFile.h" -#include "TH1F.h" -#include "TTree.h" -#include "TAxis.h" -#include "TCanvas.h" -//#if !defined(__CINT__) && !defined(__MAKECINT__) -#include -#include -//#endif - -void setGraphics(TH1F *histo){ - - histo->SetFillColor(kAzure+7); - //histo->SetLineWidth(2); - histo->SetLineColor(kBlue+1); -} - - - - -void plots(){ - - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - // #include ; - - // TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/incl15WithBsPv/NtupleLoose_test_inclu15_1_2.root"); - // TFile *file = TFile::Open("../NutpleLooseTestNew_oneshot_all_10_1.root"); -//TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/NtupleLoose_test.root"); -// TTree * Events = dynamic_cast< TTree *> (file->Get("Events")); - - TChain Events("Events"); - - Events.Add("../NutpleLooseTestNew_oneshot_all_10_1.root"); - Events.Add("../NutpleLooseTestNew_oneshot_all_11_1.root"); - Events.Add("../NutpleLooseTestNew_oneshot_all_12_1.root"); - Events.Add("../NutpleLooseTestNew_oneshot_all_13_1.root"); - Events.Add("../NutpleLooseTestNew_oneshot_all_4_1.root"); - Events.Add("../NutpleLooseTestNew_oneshot_all_5_1.root"); - Events.Add("../NutpleLooseTestNew_oneshot_all_6_1.root"); - Events.Add("../NutpleLooseTestNew_oneshot_all_7_1.root"); - Events.Add("../NutpleLooseTestNew_oneshot_all_8_1.root"); - - TFile * output_file = TFile::Open("histo.root", "RECREATE"); - // TFile * output_file = TFile::Open("histo_test.root", "RECREATE"); - - // zGolden plots - TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("goodZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - // Events.Draw("zGoldenMass"); - Events.Project("zMass", "zGoldenMass", cut_zGolden ); - cout<<"Number of zGolden : "<GetEntries()<Write(); - delete zMass; - - - TCut cut_zGoldenPt15("zGoldenMass>20 && zGoldenDau1Pt> 15 && zGoldenDau2Pt>15 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - dir->cd(); - - TH1F * zMassPt15 = new TH1F("zMassPt15", "zMassPt15", 200, 0, 200); - Events.Project("zMassPt15", "zGoldenMass", cut_zGoldenPt15 ); - setGraphics(zMassPt15); - zMassPt15->Write(); - delete zMassPt15; - - - - output_file->cd("/"); - - TCut cut2_zGolden1HLT(" zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && ((zGoldenDau1HLTBit==1 && zGoldenDau2HLTBit==0) || (zGoldenDau1HLTBit==0 && zGoldenDau2HLTBit==1))"); - TDirectory * dir = output_file->mkdir("goodZToMuMu1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden1HLT ); - zMass->Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - TCut cut2_zGolden2HLT("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && ((zGoldenDau1HLTBit==1 && zGoldenDau2HLTBit==1) ) && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("goodZToMuMu2HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden2HLT ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - - // zGoldenOneNotIso plots - TCut cut_zGoldenOneNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ((zGoldenDau1Iso> 3.0 && zGoldenDau2Iso < 3.0 ) || (zGoldenDau1Iso<3.0 && zGoldenDau2Iso > 3.0)) && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("oneNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenOneNotIso ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - -// // zGoldenTwoNotIso plots - TCut cut_zGoldenTwoNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ( zGoldenDau1Iso> 3.0 && zGoldenDau2Iso > 3.0 ) && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("twoNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass","zGoldenMass", cut_zGoldenTwoNotIso ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - // zGoldenNotIso plots - TCut cut_zGoldenNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ( zGoldenDau1Iso> 3.0 || zGoldenDau2Iso > 3.0 ) && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("nonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenNotIso ); - zMass->Write() ; - delete zMass; - output_file->cd("/"); - - // zGoldenSameCharge plots........ - TCut cut_zSameCharge("zSameChargeMass>20 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && ( zSameChargeDau1Iso < 3.0 && zSameChargeDau2Iso < 3.0 )"); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargePlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameCharge ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - // zGoldenSameChargeNotIso plots........ - TCut cut_zSameChargeNotIso("zSameChargeMass>60 && zSameChargeMass<120 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && ( zSameChargeDau1Iso > 3.0 || zSameChargeDau2Iso > 3.0 ) && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargeNotIsoPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameChargeNotIso ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - -// zMuTrk plots - TCut cut_zMuTrk("zMuTrkMass>60 && zMuTrkMass<120 && zMuTrkDau1Pt> 20 && zMuTrkDau2Pt>20 && zMuTrkDau1Iso< 3.0 && zMuTrkDau2Iso < 3.0 && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMass", cut_zMuTrk ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - - // zMuSta plots - TCut cut_zMuSta("zMuStaMass>60 && zMuStaMass<120 && zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1Iso< 3.0 && zMuStaDau2Iso < 3.0 && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuStaMass", cut_zMuSta ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - -// zMuSta plots - TCut cut_zMuMuSta("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("zmumuSaMassHistogram"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMassSa", cut_zMuMuSta ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - - TDirectory * dir = output_file->mkdir("zPlots"); - dir->cd(); - TH1F * zGoldenPt = new TH1F("zGoldenPt", "zGoldenPt", 200, 0, 200); - Events.Project("zGoldenPt", "zGoldenPt", cut_zGolden ); - zGoldenPt->Write(); - delete zGoldenPt; - - - TH1F * zGoldenY = new TH1F("zGoldenY", "zGoldenY", 200, -5, 5); - Events.Project("zGoldenY", "zGoldenY", cut_zGolden ); - zGoldenY->Write(); - delete zGoldenY; - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("MuPlots"); - dir->cd(); - - - TH1F * muNotTriggeredEta = new TH1F("muNotTriggeredEta", "muNotTriggeredEta", 240, -6, 6.); - TH1F * h2 = new TH1F("h2", "h2", 240, -6, 6.); - - Events.Project("muNotTriggeredEta","zGoldenDau1Eta", "zGoldenDau1HLTBit==0"); - Events.Project("h2","zGoldenDau2Eta", "zGoldenDau2HLTBit==0"); - - muNotTriggeredEta->Add(h2); - muNotTriggeredEta->Write(); - delete muNotTriggeredEta; - delete h2; - - TH1F * zGoldenDauHighPt = new TH1F("zGoldenDauHighPt", "zGoldenDauHighPt", 200, 0, 200); - Events.Project("zGoldenDauHighPt", "max(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauHighPt->Write(); - delete zGoldenDauHighPt; - - TH1F * zGoldenDauLowPt = new TH1F("zGoldenDauLowPt", "zGoldenDauLowPt", 200, 0, 200); - Events.Project("zGoldenDauLowPt", "min(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauLowPt->Write(); - delete zGoldenDauLowPt; - - //(mu1.phi -mu2.phi) - TH1F * deltaPhi = new TH1F("deltaPhi", "deltaPhi", 120, 0, 6.); - TH1F * h2 = new TH1F("h2", "h2", 120, 0, 6. ); - TH1F * h3 = new TH1F("h3", "h3", 120, 0, 6. ); - - /* result = phi1 - phi2; -040 while (result > M_PI) result -= 2*M_PI; -041 while (result <= -M_PI) result += 2*M_PI; -042 return result; - */ - - Events.Project("deltaPhi", "abs(zGoldenDau1Phi - zGoldenDau2Phi)", "-TMath::Pi() < (zGoldenDau1Phi - zGoldenDau2Phi) < TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden); - Events.Project("h2", "abs(zGoldenDau1Phi - zGoldenDau2Phi - 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) > TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + + cut_zGolden); - Events.Project("h3", "abs(zGoldenDau1Phi - zGoldenDau2Phi + 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) <= -TMath::Pi()", "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden ); - - deltaPhi->Add(h2, h3); - deltaPhi->Write(); - delete deltaPhi;; - delete h2; - delete h3; - - - - // mu1.eta -mu2.eta - TH1F * deltaEta = new TH1F("deltaEta", "deltaEta", 120, 0, 6.); - Events.Project("deltaEta", "abs(zGoldenDau1Eta - zGoldenDau2Eta)", cut_zGolden ); - deltaEta->Write(); - delete deltaEta; - - TH1F * dua1Phi = new TH1F("dau1Phi", "dau1Phi", 120, -6, 6.); - Events.Project("dau1Phi", "zGoldenDau1Phi" , cut_zGolden); - dau1Phi->Write(); - delete dau1Phi; - - TH1F * dua2Phi = new TH1F("dau2Phi", "dau2Phi", 120, -6, 6.); - Events.Project("dau2Phi", "zGoldenDau2Phi" , cut_zGolden); - dau2Phi->Write(); - delete dau2Phi; - - TH1F * dau1Eta = new TH1F("dua1Eta", "dau1Eta", 120, -6, 6.); - Events.Project("dau1Eta", "zGoldenDau1Eta", cut_zGolden ); - dau1Eta->Write(); - delete dau1Eta; - - TH1F * dau2Eta = new TH1F("dua2Eta", "dau2Eta", 120, -6, 6.); - Events.Project("dau2Eta", "zGoldenDau2Eta" , cut_zGolden); - dau2Eta->Write(); - delete dau2Eta; - - // quality variables - // caveat: I'm requiring isolations - TH1F * dau1Chi2 = new TH1F("dua1Chi2", "dau1Chi2", 1000, 0, 100); - Events.Project("dua1Chi2", "zGoldenDau1Chi2", cut_zGolden ); - dau1Chi2->Write(); - delete dau1Chi2; - - TH1F * dau2Chi2 = new TH1F("dua2Chi2", "dau2Chi2", 1000, 0, 100); - Events.Project("dau2Chi2", "zGoldenDau2Chi2", cut_zGolden ); - dau2Chi2->Write(); - delete dau2Chi2; - - - TH1F * dau1Dxy = new TH1F("dua1Dxy", "dau1Dxy", 500, 0, 5); - Events.Project("dua1Dxy", "zGoldenDau1dxyFromBS", cut_zGolden ); - dau1Dxy->Write(); - delete dau1Dxy; - - TH1F * dau2Dxy = new TH1F("dua2Dxy", "dau2Dxy", 500, 0, 5); - Events.Project("dua2Dxy", "zGoldenDau2dxyFromBS", cut_zGolden ); - dau2Dxy->Write(); - delete dau2Dxy; - - - TH1F * dau1Dz= new TH1F("dua1Dz", "dau1Dz", 500, 0, 20); - Events.Project("dua1Dz", "zGoldenDau1dzFromBS", cut_zGolden ); - dau1Dz->Write(); - delete dau1Dz; - - TH1F * dau2Dz = new TH1F("dua2Dz", "dau2Dz", 500, 0, 20); - Events.Project("dua2Dz", "zGoldenDau2dzFromBS", cut_zGolden); - dau2Dz->Write(); - delete dau2Dz; - - /* - TH1F * dau1NofHit = new TH1F("dua1NofHit", "dau1NofHit", 100, -0.5, 99.5); - Events.Project("dua1NofHit", "zGoldenDau1NofHit", cut_zGolden ); - dau1NofHit->Write(); - delete dau1NofHit; - - TH1F * dau2NofHit = new TH1F("dua2NofHit", "dau2NofHit", 100, -0.5, 99.5); - Events.Project("dua2NofHit", "zGoldenDau2NofHit", cut_zGolden ); - dau2NofHit->Write(); - delete dau2NofHit; - */ - - TH1F * dau1NofMuCh = new TH1F("dua1NofMuCh", "dau1NofMuCh", 20, -0.5, 19.5); - Events.Project("dua1NofMuCh", "zGoldenDau1NofMuChambers", cut_zGolden ); - dau1NofMuCh->Write(); - delete dau1NofMuCh; - - TH1F * dau2NofMuCh = new TH1F("dua2NofMuCh", "dau2NofMuCh", 20, -0.5, 19.5); - Events.Project("dua2NofMuCh", "zGoldenDau2NofMuChambers", cut_zGolden ); - dau2NofMuCh->Write(); - delete dau2NofMuCh; - - - TH1F * dau1NofMuMatches = new TH1F("dua1NofMuMatches", "dau1NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua1NofMuMatches", "zGoldenDau1NofMuMatches", cut_zGolden ); - dau1NofMuMatches->Write(); - delete dau1NofMuMatches; - - TH1F * dau2NofMuMatches = new TH1F("dua2NofMuMatches", "dau2NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua2NofMuMatches", "zGoldenDau2NofMuMatches", cut_zGolden ); - dau2NofMuMatches->Write(); - delete dau2NofMuMatches; - - TH1F * dau1EmEnergy = new TH1F("dua1EmEnergy", "dau1EmEnergy", 200, -0.1, 19.9); - Events.Project("dua1EmEnergy", "zGoldenDau1MuEnergyEm", cut_zGolden ); - dau1EmEnergy->Write(); - delete dau1EmEnergy; - - TH1F * dau2EmEnergy = new TH1F("dua2EmEnergy", "dau2EmEnergy", 200, -0.1, 19.9); - Events.Project("dua2EmEnergy", "zGoldenDau2MuEnergyEm", cut_zGolden ); - dau2EmEnergy->Write(); - delete dau2EmEnergy; - - TH1F * dau1HadEnergy = new TH1F("dua1HadEnergy", "dau1HadEnergy", 200, -0.1, 19.9); - Events.Project("dua1HadEnergy", "zGoldenDau1MuEnergyHad", cut_zGolden ); - dau1HadEnergy->Write(); - delete dau1HadEnergy; - - TH1F * dau2HadEnergy = new TH1F("dua2HadEnergy", "dau2HadEnergy", 200, -0.1, 19.9); - Events.Project("dua2HadEnergy", "zGoldenDau2MuEnergyHad", cut_zGolden ); - dau2HadEnergy->Write(); - delete dau2HadEnergy; - - - - - TH2F * MuChambersVsMuMatches = new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zGoldenDau1NofMuChambers:zGoldenDau1NofMuMatches", cut_zGolden); - Events.Project("hh2", "zGoldenDau2NofMuChambers:zGoldenDau2NofMuMatches", cut_zGolden); - - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->Write(); - MuChambersVsMuMatches->SetDrawOption("Box"); - // MuChambersVsMuMatches->Draw("BOX"); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - TDirectory * dir = output_file->mkdir("TrkPlots"); - dir->cd(); - - - - /* TH1F * nofHitTrk = new TH1F("nofHitTrk", "nofHitTrk", 100, -0.5, 99.5); - Events.Project("nofHitTrk", "zMuTrkDau2NofHitTk", cut_zMuTrk ); - nofHitTrk->Write(); - delete nofHitTrk; - */ - - TH1F * trkChi2 = new TH1F("trkChi2", "trkChi2", 100, -0.5, 99.5); - Events.Project("trkChi2", "zMuTrkDau2Chi2", cut_zMuTrk ); - trkChi2->Write(); - delete trkChi2; - - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("StaPlots"); - dir->cd(); - - // sta as zDaudxyFromBS=-1 by construction.... - - TH1F * staNofMuCh = new TH1F("staNofMuCh", "staNofMuCh", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuCh", "zMuStaDau1NofMuChambers", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuChambers", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuCh->Add(h2); - staNofMuCh->Write(); - delete staNofMuCh; - delete h2; - - TH1F * staNofMuMatches = new TH1F("staNofMuMatches", "staNofMuMatches", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuMatches", "zMuStaDau1NofMuMatches", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuMatches", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuMatches->Add(h2); - staNofMuMatches->Write(); - delete staNofMuMatches; - delete h2; - - TH2F * MuChambersVsMuMatches= new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zMuStaDau1NofMuChambers:zMuStaDau1NofMuMatches", cut_zMuSta); - Events.Project("hh2", "zMuStaDau2NofMuChambers:zMuStaDau2NofMuMatches", cut_zMuSta); - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->SetDrawOption("Box"); - MuChambersVsMuMatches->Write(); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - // isolations... - TDirectory * dir = output_file->mkdir("IsoPlots"); - dir->cd(); - - - TH1F * TrkIsoPt20= new TH1F("TrkIsoPt20", "TrkIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1TrkIso" , "zGoldenDau2Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>20" ); - TrkIsoPt20->Add(h2); - TrkIsoPt20->Write(); - delete TrkIsoPt20; - delete h2; - - TH1F * EcalIsoPt20 = new TH1F("EcalIsoPt20", "EcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>20" ); - EcalIsoPt20->Add(h2); - EcalIsoPt20->Write(); - delete EcalIsoPt20; - delete h2; - - TH1F * HcalIsoPt20 = new TH1F("HcalIsoPt20", "HcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>20"); - HcalIsoPt20->Add(h2); - HcalIsoPt20->Write(); - delete HcalIsoPt20; - delete h2; - - TH1F * TrkIsoPt15= new TH1F("TrkIsoPt15", "TrkIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1TrkIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>15" ); - TrkIsoPt15->Add(h2); - TrkIsoPt15->Write(); - delete TrkIsoPt15; - delete h2; - - TH1F * EcalIsoPt15 = new TH1F("EcalIsoPt15", "EcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>15" ); - EcalIsoPt15->Add(h2); - - EcalIsoPt15->Write(); - delete EcalIsoPt15; - delete h2; - - TH1F * HcalIsoPt15 = new TH1F("HcalIsoPt15", "HcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>15"); - HcalIsoPt15->Add(h2); - - HcalIsoPt15->Write(); - delete HcalIsoPt15; - delete h2; - output_file->cd("/"); - - - - output_file->Close(); - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/plots31vs35.C b/ElectroWeakAnalysis/ZMuMu/test/macros/plots31vs35.C deleted file mode 100644 index d4fb863413ed4..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/plots31vs35.C +++ /dev/null @@ -1,461 +0,0 @@ -{ - // #include ; - -TChain chain("Events"); // create the chain with tree "T" -chain.Add("NtupleLooseTestNew_oneshot_all_35X_4_1.root"); - chain.Add("NtupleLooseTestNew_oneshot_all_35X_5_1.root"); - chain.Add("NtupleLooseTestNew_oneshot_all_35X_6_1.root"); - chain.Add("NtupleLooseTestNew_oneshot_all_35X_7_1.root"); - chain.Add("NtupleLooseTestNew_oneshot_all_35X_8_1.root"); - chain.Add("NtupleLooseTestNew_oneshot_all_35X_10_1.root"); - chain.Add("NtupleLooseTestNew_oneshot_all_35X_11_1.root"); - chain.Add("NtupleLooseTestNew_oneshot_all_35X_12_1.root"); - chain.Add("NtupleLooseTestNew_oneshot_all_35X_13_1.root"); - - - TFile * output_file = TFile::Open("histo.root", "RECREATE"); - // TFile * output_file = TFile::Open("histo_test.root", "RECREATE"); - - // zGolden plots - TCut cut_zGolden("zGoldenMass>20 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && zGoldenMass>60 && zGoldenMass<120 "); - TDirectory * dir = output_file->mkdir("goodZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - // Events->Draw("zGoldenMass"); - chain->Project("zMass", "zGoldenMass", cut_zGolden ); - zMass->Write(); - delete zMass; - // zGolden with MuPt>15 - TCut cut_zGoldenPt15("zGoldenMass>20 && zGoldenDau1Pt> 15 && zGoldenDau2Pt>15 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0"); - dir->cd(); - TH1F * zMassPt15 = new TH1F("zMassPt15", "zMassPt15", 200, 0, 200); - chain->Project("zMassPt15", "zGoldenMass", cut_zGoldenPt15 ); - zMassPt15->Write(); - delete zMassPt15; - - - - output_file->cd("/"); - - TCut cut2_zGolden1HLT("zGoldenMass>20 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && ((zGoldenDau1HLTBit==1 && zGoldenDau2HLTBit==0) || (zGoldenDau1HLTBit==0 && zGoldenDau2HLTBit==1))"); - TDirectory * dir = output_file->mkdir("goodZToMuMu1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass", "zGoldenMass", cut2_zGolden1HLT ); - zMass->Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - TCut cut2_zGolden2HLT("zGoldenMass>20 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && ((zGoldenDau1HLTBit==1 && zGoldenDau2HLTBit==1) )"); - TDirectory * dir = output_file->mkdir("goodZToMuMu2HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass", "zGoldenMass", cut2_zGolden2HLT ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - - // zGoldenOneNotIso plots - TCut cut_zGoldenOneNotIso("zGoldenMass>20 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ((zGoldenDau1Iso> 3.0 && zGoldenDau2Iso < 3.0 ) || (zGoldenDau1Iso<3.0 && zGoldenDau2Iso > 3.0))"); - TDirectory * dir = output_file->mkdir("oneNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass", "zGoldenMass", cut_zGoldenOneNotIso ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - -// // zGoldenTwoNotIso plots - TCut cut_zGoldenTwoNotIso("zGoldenMass>20 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ( zGoldenDau1Iso> 3.0 && zGoldenDau2Iso > 3.0 )"); - TDirectory * dir = output_file->mkdir("twoNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass","zGoldenMass", cut_zGoldenTwoNotIso ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - // zGoldenNotIso plots - TCut cut_zGoldenNotIso("zGoldenMass>20 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ( zGoldenDau1Iso> 3.0 || zGoldenDau2Iso > 3.0 )"); - TDirectory * dir = output_file->mkdir("nonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass", "zGoldenMass", cut_zGoldenNotIso ); - zMass->Write() ; - delete zMass; - output_file->cd("/"); - - // zGoldenSameCharge plots........ - TCut cut_zSameCharge("zSameChargeMass>20 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && ( zSameChargeDau1Iso < 3.0 && zSameChargeDau2Iso < 3.0 )"); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargePlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass", "zSameChargeMass", cut_zSameCharge ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - // zGoldenSameChargeNotIso plots........ - TCut cut_zSameChargeNotIso("zSameChargeMass>20 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && ( zSameChargeDau1Iso > 3.0 || zSameChargeDau2Iso > 3.0 )"); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargeNotIsoPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass", "zSameChargeMass", cut_zSameChargeNotIso ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - -// zMuTrk plots - TCut cut_zMuTrk("zMuTrkMass>20 && zMuTrkDau1Pt> 20 && zMuTrkDau2Pt>20 && zMuTrkDau1Iso< 3.0 && zMuTrkDau2Iso < 3.0"); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass", "zMuTrkMass", cut_zMuTrk ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - - // zMuSta plots - TCut cut_zMuSta("zMuStaMass>20 && zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1Iso< 3.0 && zMuStaDau2Iso < 3.0"); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass", "zMuStaMass", cut_zMuSta ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - -// zMuSta plots - TCut cut_zMuMuSta("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0"); - TDirectory * dir = output_file->mkdir("zmumuSaMassHistogram"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - chain->Project("zMass", "zGoldenMassSa", cut_zMuMuSta ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - - TDirectory * dir = output_file->mkdir("zPlots"); - dir->cd(); - TH1F * zGoldenPt = new TH1F("zGoldenPt", "zGoldenPt", 200, 0, 200); - chain->Project("zGoldenPt", "zGoldenPt", cut_zGolden ); - zGoldenPt->Write(); - delete zGoldenPt; - - - TH1F * zGoldenY = new TH1F("zGoldenY", "zGoldenY", 200, -5, 5); - chain->Project("zGoldenY", "zGoldenY", cut_zGolden ); - zGoldenY->Write(); - delete zGoldenY; - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("MuPlots"); - dir->cd(); - - - TH1F * muNotTriggeredEta = new TH1F("muNotTriggeredEta", "muNotTriggeredEta", 240, -6, 6.); - TH1F * h2 = new TH1F("h2", "h2", 240, -6, 6.); - - chain->Project("muNotTriggeredEta","zGoldenDau1Eta", "zGoldenDau1HLTBit==0"); - chain->Project("h2","zGoldenDau2Eta", "zGoldenDau2HLTBit==0"); - - muNotTriggeredEta->Add(h2); - muNotTriggeredEta->Write(); - delete muNotTriggeredEta; - delete h2; - - TH1F * zGoldenDauHighPt = new TH1F("zGoldenDauHighPt", "zGoldenDauHighPt", 200, 0, 200); - chain->Project("zGoldenDauHighPt", "max(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauHighPt->Write(); - delete zGoldenDauHighPt; - - TH1F * zGoldenDauLowPt = new TH1F("zGoldenDauLowPt", "zGoldenDauLowPt", 200, 0, 200); - chain->Project("zGoldenDauLowPt", "min(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauLowPt->Write(); - delete zGoldenDauLowPt; - - //(mu1.phi -mu2.phi) - TH1F * deltaPhi = new TH1F("deltaPhi", "deltaPhi", 120, 0, 6.); - TH1F * h2 = new TH1F("h2", "h2", 120, 0, 6. ); - TH1F * h3 = new TH1F("h3", "h3", 120, 0, 6. ); - - /* result = phi1 - phi2; -040 while (result > M_PI) result -= 2*M_PI; -041 while (result <= -M_PI) result += 2*M_PI; -042 return result; - */ - - chain->Project("deltaPhi", "abs(zGoldenDau1Phi - zGoldenDau2Phi)", "-TMath::Pi() < (zGoldenDau1Phi - zGoldenDau2Phi) < TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden); - chain->Project("h2", "abs(zGoldenDau1Phi - zGoldenDau2Phi - 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) > TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + + cut_zGolden); - chain->Project("h3", "abs(zGoldenDau1Phi - zGoldenDau2Phi + 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) <= -TMath::Pi()", "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden ); - - deltaPhi->Add(h2, h3); - deltaPhi->Write(); - delete deltaPhi;; - delete h2; - delete h3; - - - - // mu1.eta -mu2.eta - TH1F * deltaEta = new TH1F("deltaEta", "deltaEta", 120, 0, 6.); - chain->Project("deltaEta", "abs(zGoldenDau1Eta - zGoldenDau2Eta)", cut_zGolden ); - deltaEta->Write(); - delete deltaEta; - - TH1F * dua1Phi = new TH1F("dau1Phi", "dau1Phi", 120, -6, 6.); - chain->Project("dau1Phi", "zGoldenDau1Phi" , cut_zGolden); - dau1Phi->Write(); - delete dau1Phi; - - TH1F * dua2Phi = new TH1F("dau2Phi", "dau2Phi", 120, -6, 6.); - chain->Project("dau2Phi", "zGoldenDau2Phi" , cut_zGolden); - dau2Phi->Write(); - delete dau2Phi; - - TH1F * dau1Eta = new TH1F("dua1Eta", "dau1Eta", 120, -6, 6.); - chain->Project("dau1Eta", "zGoldenDau1Eta", cut_zGolden ); - dau1Eta->Write(); - delete dau1Eta; - - TH1F * dau2Eta = new TH1F("dua2Eta", "dau2Eta", 120, -6, 6.); - chain->Project("dau2Eta", "zGoldenDau2Eta" , cut_zGolden); - dau2Eta->Write(); - delete dau2Eta; - - // quality variables - // caveat: I'm requiring isolations - TH1F * dau1Chi2 = new TH1F("dua1Chi2", "dau1Chi2", 1000, 0, 100); - chain->Project("dua1Chi2", "zGoldenDau1Chi2", cut_zGolden ); - dau1Chi2->Write(); - delete dau1Chi2; - - TH1F * dau2Chi2 = new TH1F("dau2Chi2", "dau2Chi2", 1000, 0, 100); - chain->Project("dau2Chi2", "zGoldenDau2Chi2", cut_zGolden ); - dau2Chi2->Write(); - delete dau2Chi2; - - - TH1F * dau1Dxy = new TH1F("dua1Dxy", "dau1Dxy", 500, -5, 5); - chain->Project("dua1Dxy", "zGoldenDau1dxyFromBS", cut_zGolden ); - dau1Dxy->Write(); - delete dau1Dxy; - - TH1F * dau2Dxy = new TH1F("dua2Dxy", "dau2Dxy", 500, -5, 5); - chain->Project("dua2Dxy", "zGoldenDau2dxyFromBS", cut_zGolden ); - dau2Dxy->Write(); - delete dau2Dxy; - - - TH1F * dau1Dz= new TH1F("dua1Dz", "dau1Dz", 500, 0, 20); - chain->Project("dua1Dz", "zGoldenDau1dzFromBS", cut_zGolden ); - dau1Dz->Write(); - delete dau1Dz; - - TH1F * dau2Dz = new TH1F("dua2Dz", "dau2Dz", 500, 0, 20); - chain->Project("dua2Dz", "zGoldenDau2dzFromBS", cut_zGolden); - dau2Dz->Write(); - delete dau2Dz; - - - TH1F * dau1NofHit = new TH1F("dua1NofHit", "dau1NofHit", 100, -0.5, 99.5); - chain->Project("dua1NofHit", "zGoldenDau1NofHit", cut_zGolden ); - dau1NofHit->Write(); - delete dau1NofHit; - - TH1F * dau2NofHit = new TH1F("dua2NofHit", "dau2NofHit", 100, -0.5, 99.5); - chain->Project("dua2NofHit", "zGoldenDau2NofHit", cut_zGolden ); - dau2NofHit->Write(); - delete dau2NofHit; - - - TH1F * dau1NofMuCh = new TH1F("dua1NofMuCh", "dau1NofMuCh", 20, -0.5, 19.5); - chain->Project("dua1NofMuCh", "zGoldenDau1NofMuChambers", cut_zGolden ); - dau1NofMuCh->Write(); - delete dau1NofMuCh; - - TH1F * dau2NofMuCh = new TH1F("dua2NofMuCh", "dau2NofMuCh", 20, -0.5, 19.5); - chain->Project("dua2NofMuCh", "zGoldenDau2NofMuChambers", cut_zGolden ); - dau2NofMuCh->Write(); - delete dau2NofMuCh; - - - TH1F * dau1NofMuMatches = new TH1F("dua1NofMuMatches", "dau1NofMuMatches", 20, -0.5, 19.5); - chain->Project("dua1NofMuMatches", "zGoldenDau1NofMuMatches", cut_zGolden ); - dau1NofMuMatches->Write(); - delete dau1NofMuMatches; - - TH1F * dau2NofMuMatches = new TH1F("dua2NofMuMatches", "dau2NofMuMatches", 20, -0.5, 19.5); - chain->Project("dua2NofMuMatches", "zGoldenDau2NofMuMatches", cut_zGolden ); - dau2NofMuMatches->Write(); - delete dau2NofMuMatches; - - TH1F * dau1EmEnergy = new TH1F("dua1EmEnergy", "dau1EmEnergy", 200, -0.1, 19.9); - chain->Project("dua1EmEnergy", "zGoldenDau1MuEnergyEm", cut_zGolden ); - dau1EmEnergy->Write(); - delete dau1EmEnergy; - - TH1F * dau2EmEnergy = new TH1F("dua2EmEnergy", "dau2EmEnergy", 200, -0.1, 19.9); - chain->Project("dua2EmEnergy", "zGoldenDau2MuEnergyEm", cut_zGolden ); - dau2EmEnergy->Write(); - delete dau2EmEnergy; - - TH1F * dau1HadEnergy = new TH1F("dua1HadEnergy", "dau1HadEnergy", 200, -0.1, 19.9); - chain->Project("dua1HadEnergy", "zGoldenDau1MuEnergyHad", cut_zGolden ); - dau1HadEnergy->Write(); - delete dau1HadEnergy; - - TH1F * dau2HadEnergy = new TH1F("dua2HadEnergy", "dau2HadEnergy", 200, -0.1, 19.9); - chain->Project("dua2HadEnergy", "zGoldenDau2MuEnergyHad", cut_zGolden ); - dau2HadEnergy->Write(); - delete dau2HadEnergy; - - - - - TH2F * MuChambersVsMuMatches = new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - chain->Project("MuChambersVsMuMatches", "zGoldenDau1NofMuChambers:zGoldenDau1NofMuMatches", cut_zGolden); - chain->Project("hh2", "zGoldenDau2NofMuChambers:zGoldenDau2NofMuMatches", cut_zGolden); - - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->Write(); - MuChambersVsMuMatches->SetDrawOption("Box"); - // MuChambersVsMuMatches->Draw("BOX"); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - TDirectory * dir = output_file->mkdir("TrkPlots"); - dir->cd(); - - - - TH1F * nofHitTrk = new TH1F("nofHitTrk", "nofHitTrk", 100, -0.5, 99.5); - chain->Project("nofHitTrk", "zMuTrkDau2NofHitTk", cut_zMuTrk ); - nofHitTrk->Write(); - delete nofHitTrk; - - - TH1F * trkChi2 = new TH1F("trkChi2", "trkChi2", 100, -0.5, 99.5); - chain->Project("trkChi2", "zMuTrkDau2Chi2", cut_zMuTrk ); - trkChi2->Write(); - delete trkChi2; - - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("StaPlots"); - dir->cd(); - - // sta as zDaudxyFromBS=-1 by construction.... - - //TH1F * staNofMuCh = new TH1F("staNofMuCh", "staNofMuCh", 20, -0.5, 19.5); - // TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - // chain->Project("staNofMuCh", "zMuStaDau1NofMuChambers", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - //chain->Project("h2", "zMuStaDau2NofMuChambers", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - //staNofMuCh->Add(h2); - //staNofMuCh->Write(); - //delete staNofMuCh; - //delete h2; - - // TH1F * staNofMuMatches = new TH1F("staNofMuMatches", "staNofMuMatches", 20, -0.5, 19.5); - //TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - //chain->Project("staNofMuMatches", "zMuStaDau1NofMuMatches", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - //chain->Project("h2", "zMuStaDau2NofMuMatches", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - //staNofMuMatches->Add(h2); - //staNofMuMatches->Write(); - //delete staNofMuMatches; - //delete h2; - - // TH2F * MuChambersVsMuMatches= new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - ///TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - //chain->Project("MuChambersVsMuMatches", "zMuStaDau1NofMuChambers:zMuStaDau1NofMuMatches", cut_zMuSta); - //chain->Project("hh2", "zMuStaDau2NofMuChambers:zMuStaDau2NofMuMatches", cut_zMuSta); - ///MuChambersVsMuMatches->Add(hh2); - ///MuChambersVsMuMatches->SetDrawOption("Box"); - ///MuChambersVsMuMatches->Write(); - ///delete MuChambersVsMuMatches; - ///delete hh2; - ///output_file->cd("/"); - - // isolations... - TDirectory * dir = output_file->mkdir("IsoPlots"); - dir->cd(); - - - TH1F * TrkIsoPt20= new TH1F("TrkIsoPt20", "TrkIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - chain->Project("TkIsoPt20", "zGoldenDau1TrkIso" , "zGoldenDau2Pt>20"); - chain->Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>20" ); - TrkIsoPt20->Add(h2); - TrkIsoPt20->Write(); - delete TrkIsoPt20; - delete h2; - - TH1F * EcalIsoPt20 = new TH1F("EcalIsoPt20", "EcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - chain->Project("TkIsoPt20", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - chain->Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>20" ); - EcalIsoPt20->Add(h2); - EcalIsoPt20->Write(); - delete EcalIsoPt20; - delete h2; - - TH1F * HcalIsoPt20 = new TH1F("HcalIsoPt20", "HcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - chain->Project("TkIsoPt20", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - chain->Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>20"); - HcalIsoPt20->Add(h2); - HcalIsoPt20->Write(); - delete HcalIsoPt20; - delete h2; - - TH1F * TrkIsoPt15= new TH1F("TrkIsoPt15", "TrkIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - chain->Project("TkIsoPt15", "zGoldenDau1TrkIso" , "zGoldenDau1Pt>20"); - chain->Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>15" ); - TrkIsoPt15->Add(h2); - TrkIsoPt15->Write(); - delete TrkIsoPt15; - delete h2; - - TH1F * EcalIsoPt15 = new TH1F("EcalIsoPt15", "EcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - chain->Project("TkIsoPt15", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - chain->Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>15" ); - EcalIsoPt15->Add(h2); - - EcalIsoPt15->Write(); - delete EcalIsoPt15; - delete h2; - - TH1F * HcalIsoPt15 = new TH1F("HcalIsoPt15", "HcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - chain->Project("TkIsoPt15", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - chain->Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>15"); - HcalIsoPt15->Add(h2); - - HcalIsoPt15->Write(); - delete HcalIsoPt15; - delete h2; - output_file->cd("/"); - - - - output_file->Close(); - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts.C b/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts.C deleted file mode 100644 index 2752d16f40f99..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts.C +++ /dev/null @@ -1,529 +0,0 @@ -#include "TFile.h" -#include "TH1F.h" -#include "TTree.h" -#include "TAxis.h" -#include "TCanvas.h" -//#if !defined(__CINT__) && !defined(__MAKECINT__) -#include -#include -//#endif - -void setGraphics(TH1F *histo){ - - histo->SetFillColor(kAzure+7); - //histo->SetLineWidth(2); - histo->SetLineColor(kBlue+1); -} - - - - -void plotsAfterCuts(){ - - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - // #include ; - - // TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/incl15WithBsPv/NtupleLoose_test_inclu15_1_2.root"); - // TFile *file = TFile::Open("../NutpleLooseTestNew_oneshot_all_10_1.root"); -//TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/NtupleLoose_test.root"); -// TTree * Events = dynamic_cast< TTree *> (file->Get("Events")); - - TChain Events("Events"); - // one need 130 events... each file has 1000 ev - Events.Add("zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_1_None.root", 65); - Events.Add("zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_2_None.root", 65); - - - - TFile * output_file = TFile::Open("histoZmm.root", "RECREATE"); - // TFile * output_file = TFile::Open("histo_test.root", "RECREATE"); - - // zGolden plots - TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - // Events.Draw("zGoldenMass"); - Events.Project("zMass", "zGoldenMass", cut_zGolden ); - cout<<"Number of zGoldenAA : "<GetEntries()<Write(); - delete zMass; - - - TCut cut_zGoldenPt15("zGoldenMass>20 && zGoldenDau1Pt> 15 && zGoldenDau2Pt>15 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1)"); - dir->cd(); - - TH1F * zMassPt15 = new TH1F("zMassPt15", "zMassPt15", 200, 0, 200); - Events.Project("zMassPt15", "zGoldenMass", cut_zGoldenPt15 ); - setGraphics(zMassPt15); - cout<<"Number of zGoldenPt15 : "<GetEntries()<Write(); - delete zMassPt15; - - - - output_file->cd("/"); - - TCut cut2_zGolden1HLT("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==0 || zGoldenDau2HLTBit ==0)"); - TDirectory * dir = output_file->mkdir("goodZToMuMu1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden1HLT ); - cout<<"Number of zGolden1HLT : "<GetEntries()<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - output_file->cd("/"); - - TCut cut2_zGoldenAB1HLT("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && ( abs(zGoldenDau1Eta)<2.1 && 2.1=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("goodZToMuMuAB1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden1HLT ); - cout<<"Number of zGoldenAB1HLT : "<GetEntries()<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - TCut cut2_zGolden2HLT("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==1 && zGoldenDau2HLTBit ==1)"); - - TDirectory * dir = output_file->mkdir("goodZToMuMu2HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden2HLT ); - zMass->Write(); - cout<<"Number of zGolden2HLT : "<GetEntries()<cd("/"); - - - // zGoldenOneNotIso plots - TCut cut_zGoldenOneNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ( (zGoldenDau1Iso> 3.0 && zGoldenDau2Iso < 3.0) || (zGoldenDau2Iso> 3.0 && zGoldenDau1Iso < 3.0)) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("oneNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenOneNotIso ); - zMass->Write(); - cout<<"Number of zGoldenOneNotIso : "<GetEntries()<cd("/"); - -// // zGoldenTwoNotIso plots - TCut cut_zGoldenTwoNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1Iso> 3.0 && zGoldenDau2Iso > 3.0) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("twoNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass","zGoldenMass", cut_zGoldenTwoNotIso ); - zMass->Write(); - cout<<"Number of zGoldenTwoNotIso : "<GetEntries()<cd("/"); - - // zGoldenNotIso plots - TCut cut_zGoldenNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1Iso> 3.0 || zGoldenDau2Iso > 3.0) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("nonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenNotIso ); - zMass->Write() ; - cout<<"Number of zGoldenNotIso : "<GetEntries()<cd("/"); - - // zGoldenSameCharge plots........ - TCut cut_zSameCharge("zSameChargeMass>60 && zSameChargeMass<120 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && zSameChargeDau1Iso< 3.0 && zSameChargeDau2Iso < 3.0 && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<10 && zSameChargeDau2Chi2<10 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 &&(zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>=10 && (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>=10 && zSameChargeDau1NofMuonHits>0 && zSameChargeDau2NofMuonHits>0 && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargePlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameCharge ); - zMass->Write(); - cout<<"Number of zGoldenSameCharge : "<GetEntries()<cd("/"); - - // zGoldenSameChargeNotIso plots........ - TCut cut_zSameChargeNotIso("zSameChargeMass>60 && zSameChargeMass<120 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && ( zSameChargeDau1Iso> 3.0 || zSameChargeDau2Iso > 3.0) && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<10 && zSameChargeDau2Chi2<10 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 &&(zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>=10 && (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>=10 && zSameChargeDau1NofMuonHits>0 && zSameChargeDau2NofMuonHits>0 && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargeNotIsoPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameChargeNotIso ); - zMass->Write(); - cout<<"Number of zGoldenSameChargeNotIso : "<GetEntries()<cd("/"); - - -// zMuTrk plots - TCut cut_zMuTrk("zMuTrkMass>60 && zMuTrkMass<120 && zMuTrkDau1Pt> 20 && zMuTrkDau2Pt>20 && zMuTrkDau1Iso< 3.0 && zMuTrkDau2Iso < 3.0 && abs(zMuTrkDau1Eta)<2.1 && abs(zMuTrkDau2Eta)<2.1 && zMuTrkDau1Chi2<10 && zMuTrkDau2Chi2<10 && abs(zMuTrkDau1dxyFromBS)<0.2 && abs(zMuTrkDau2dxyFromBS)<0.2 &&(zMuTrkDau1TrkNofStripHits + zMuTrkDau1TrkNofPixelHits)>=10 && (zMuTrkDau2TrkNofStripHits + zMuTrkDau2TrkNofPixelHits)>=10 && zMuTrkDau1NofMuonHits>0 && zMuTrkDau2NofMuonHits>0 && (zMuTrkDau1HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMass", cut_zMuTrk ); - zMass->Write(); - cout<<"Number of zMuTrk : "<GetEntries()<cd("/"); - -// zMuTrkMu plots - TCut cut_zMuTrkMu("zMuTrkMuMass>60 && zMuTrkMuMass<120 && zMuTrkMuDau1Pt> 20 && zMuTrkMuDau2Pt>20 && zMuTrkMuDau1Iso< 3.0 && zMuTrkMuDau2Iso < 3.0 && abs(zMuTrkMuDau1Eta)<2.1 && abs(zMuTrkMuDau2Eta)<2.1 && zMuTrkMuDau1Chi2<10 && zMuTrkMuDau2Chi2<10 && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2 &&(zMuTrkMuDau1NofStripHits + zMuTrkMuDau1NofPixelHits)>=10 && (zMuTrkMuDau2NofStripHits + zMuTrkMuDau2NofPixelHits)>=10 && zMuTrkMuDau1NofMuonHits>0 && zMuTrkMuDau2NofMuonHits>0 && (zMuTrkMuDau1HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackerMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMuMass", cut_zMuTrkMu ); - zMass->Write(); - cout<<"Number of zMuTrkMu : "<GetEntries()<cd("/"); - - - - // zMuSta plots - TCut cut_zMuSta("zMuStaMass>60 && zMuStaMass<120 && zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1Iso< 3.0 && zMuStaDau2Iso < 3.0 && abs(zMuStaDau1Eta)<2.1 && abs(zMuStaDau2Eta)<2.1 && zMuStaDau1Chi2<10 && zMuStaDau2Chi2<10 && abs(zMuStaDau1dxyFromBS)<0.2 && abs(zMuStaDau2dxyFromBS)<0.2 &&(zMuStaDau1NofStripHits + zMuStaDau1NofPixelHits)>=10 && (zMuStaDau2NofStripHits + zMuStaDau2NofPixelHits)>=10 && zMuStaDau1NofMuonHits>0 && zMuStaDau2NofMuonHits>0 && (zMuStaDau1HLTBit==1 ) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuStaMass", cut_zMuSta ); - zMass->Write(); - cout<<"Number of zMuSta : "<GetEntries()<cd("/"); - -// zMuSta plots - TCut cut_zMuMuSta("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso< 3.0 && zGoldenDau2Iso < 3.0 && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && zGoldenDau1dxyFromBS<0.02 && zGoldenDau2dxyFromBS<0.02"); - TDirectory * dir = output_file->mkdir("zmumuSaMassHistogram"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMassSa", cut_zMuMuSta ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - - TDirectory * dir = output_file->mkdir("zPlots"); - dir->cd(); - TH1F * zGoldenPt = new TH1F("zGoldenPt", "zGoldenPt", 200, 0, 200); - Events.Project("zGoldenPt", "zGoldenPt", cut_zGolden ); - zGoldenPt->Write(); - delete zGoldenPt; - - - TH1F * zGoldenY = new TH1F("zGoldenY", "zGoldenY", 200, -5, 5); - Events.Project("zGoldenY", "zGoldenY", cut_zGolden ); - zGoldenY->Write(); - delete zGoldenY; - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("MuPlots"); - dir->cd(); - - - TH1F * muNotTriggeredEta = new TH1F("muNotTriggeredEta", "muNotTriggeredEta", 240, -6, 6.); - TH1F * h2 = new TH1F("h2", "h2", 240, -6, 6.); - - Events.Project("muNotTriggeredEta","zGoldenDau1Eta", "zGoldenDau1HLTBit==0"); - Events.Project("h2","zGoldenDau2Eta", "zGoldenDau2HLTBit==0"); - - muNotTriggeredEta->Add(h2); - muNotTriggeredEta->Write(); - delete muNotTriggeredEta; - delete h2; - - TH1F * zGoldenDauHighPt = new TH1F("zGoldenDauHighPt", "zGoldenDauHighPt", 200, 0, 200); - Events.Project("zGoldenDauHighPt", "max(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauHighPt->Write(); - delete zGoldenDauHighPt; - - TH1F * zGoldenDauLowPt = new TH1F("zGoldenDauLowPt", "zGoldenDauLowPt", 200, 0, 200); - Events.Project("zGoldenDauLowPt", "min(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauLowPt->Write(); - delete zGoldenDauLowPt; - - //(mu1.phi -mu2.phi) - TH1F * deltaPhi = new TH1F("deltaPhi", "deltaPhi", 120, 0, 6.); - TH1F * h2 = new TH1F("h2", "h2", 120, 0, 6. ); - TH1F * h3 = new TH1F("h3", "h3", 120, 0, 6. ); - - /* result = phi1 - phi2; -040 while (result > M_PI) result -= 2*M_PI; -041 while (result <= -M_PI) result += 2*M_PI; -042 return result; - */ - - Events.Project("deltaPhi", "abs(zGoldenDau1Phi - zGoldenDau2Phi)", "-TMath::Pi() < (zGoldenDau1Phi - zGoldenDau2Phi) < TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden); - Events.Project("h2", "abs(zGoldenDau1Phi - zGoldenDau2Phi - 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) > TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + + cut_zGolden); - Events.Project("h3", "abs(zGoldenDau1Phi - zGoldenDau2Phi + 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) <= -TMath::Pi()", "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden ); - - deltaPhi->Add(h2, h3); - deltaPhi->Write(); - delete deltaPhi;; - delete h2; - delete h3; - - - - // mu1.eta -mu2.eta - TH1F * deltaEta = new TH1F("deltaEta", "deltaEta", 120, 0, 6.); - Events.Project("deltaEta", "abs(zGoldenDau1Eta - zGoldenDau2Eta)", cut_zGolden ); - deltaEta->Write(); - delete deltaEta; - - TH1F * dua1Phi = new TH1F("dau1Phi", "dau1Phi", 120, -6, 6.); - Events.Project("dau1Phi", "zGoldenDau1Phi" , cut_zGolden); - dau1Phi->Write(); - delete dau1Phi; - - TH1F * dua2Phi = new TH1F("dau2Phi", "dau2Phi", 120, -6, 6.); - Events.Project("dau2Phi", "zGoldenDau2Phi" , cut_zGolden); - dau2Phi->Write(); - delete dau2Phi; - - TH1F * dau1Eta = new TH1F("dua1Eta", "dau1Eta", 120, -6, 6.); - Events.Project("dau1Eta", "zGoldenDau1Eta", cut_zGolden ); - dau1Eta->Write(); - delete dau1Eta; - - TH1F * dau2Eta = new TH1F("dua2Eta", "dau2Eta", 120, -6, 6.); - Events.Project("dau2Eta", "zGoldenDau2Eta" , cut_zGolden); - dau2Eta->Write(); - delete dau2Eta; - - // quality variables - // caveat: I'm requiring isolations - TH1F * dau1Chi2 = new TH1F("dua1Chi2", "dau1Chi2", 1000, 0, 100); - Events.Project("dua1Chi2", "zGoldenDau1Chi2", cut_zGolden ); - dau1Chi2->Write(); - delete dau1Chi2; - - TH1F * dau2Chi2 = new TH1F("dua2Chi2", "dau2Chi2", 1000, 0, 100); - Events.Project("dau2Chi2", "zGoldenDau2Chi2", cut_zGolden ); - dau2Chi2->Write(); - delete dau2Chi2; - - - TH1F * dau1Dxy = new TH1F("dua1Dxy", "dau1Dxy", 500, 0, 5); - Events.Project("dua1Dxy", "zGoldenDau1dxyFromBS", cut_zGolden ); - dau1Dxy->Write(); - delete dau1Dxy; - - TH1F * dau2Dxy = new TH1F("dua2Dxy", "dau2Dxy", 500, 0, 5); - Events.Project("dua2Dxy", "zGoldenDau2dxyFromBS", cut_zGolden ); - dau2Dxy->Write(); - delete dau2Dxy; - - - TH1F * dau1Dz= new TH1F("dua1Dz", "dau1Dz", 500, 0, 20); - Events.Project("dua1Dz", "zGoldenDau1dzFromBS", cut_zGolden ); - dau1Dz->Write(); - delete dau1Dz; - - TH1F * dau2Dz = new TH1F("dua2Dz", "dau2Dz", 500, 0, 20); - Events.Project("dua2Dz", "zGoldenDau2dzFromBS", cut_zGolden); - dau2Dz->Write(); - delete dau2Dz; - - /* - TH1F * dau1NofHit = new TH1F("dua1NofHit", "dau1NofHit", 100, -0.5, 99.5); - Events.Project("dua1NofHit", "zGoldenDau1NofHit", cut_zGolden ); - dau1NofHit->Write(); - delete dau1NofHit; - - TH1F * dau2NofHit = new TH1F("dua2NofHit", "dau2NofHit", 100, -0.5, 99.5); - Events.Project("dua2NofHit", "zGoldenDau2NofHit", cut_zGolden ); - dau2NofHit->Write(); - delete dau2NofHit; - */ - - TH1F * dau1NofMuCh = new TH1F("dua1NofMuCh", "dau1NofMuCh", 20, -0.5, 19.5); - Events.Project("dua1NofMuCh", "zGoldenDau1NofMuChambers", cut_zGolden ); - dau1NofMuCh->Write(); - delete dau1NofMuCh; - - TH1F * dau2NofMuCh = new TH1F("dua2NofMuCh", "dau2NofMuCh", 20, -0.5, 19.5); - Events.Project("dua2NofMuCh", "zGoldenDau2NofMuChambers", cut_zGolden ); - dau2NofMuCh->Write(); - delete dau2NofMuCh; - - - TH1F * dau1NofMuMatches = new TH1F("dua1NofMuMatches", "dau1NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua1NofMuMatches", "zGoldenDau1NofMuMatches", cut_zGolden ); - dau1NofMuMatches->Write(); - delete dau1NofMuMatches; - - TH1F * dau2NofMuMatches = new TH1F("dua2NofMuMatches", "dau2NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua2NofMuMatches", "zGoldenDau2NofMuMatches", cut_zGolden ); - dau2NofMuMatches->Write(); - delete dau2NofMuMatches; - - TH1F * dau1EmEnergy = new TH1F("dua1EmEnergy", "dau1EmEnergy", 200, -0.1, 19.9); - Events.Project("dua1EmEnergy", "zGoldenDau1MuEnergyEm", cut_zGolden ); - dau1EmEnergy->Write(); - delete dau1EmEnergy; - - TH1F * dau2EmEnergy = new TH1F("dua2EmEnergy", "dau2EmEnergy", 200, -0.1, 19.9); - Events.Project("dua2EmEnergy", "zGoldenDau2MuEnergyEm", cut_zGolden ); - dau2EmEnergy->Write(); - delete dau2EmEnergy; - - TH1F * dau1HadEnergy = new TH1F("dua1HadEnergy", "dau1HadEnergy", 200, -0.1, 19.9); - Events.Project("dua1HadEnergy", "zGoldenDau1MuEnergyHad", cut_zGolden ); - dau1HadEnergy->Write(); - delete dau1HadEnergy; - - TH1F * dau2HadEnergy = new TH1F("dua2HadEnergy", "dau2HadEnergy", 200, -0.1, 19.9); - Events.Project("dua2HadEnergy", "zGoldenDau2MuEnergyHad", cut_zGolden ); - dau2HadEnergy->Write(); - delete dau2HadEnergy; - - - - - TH2F * MuChambersVsMuMatches = new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zGoldenDau1NofMuChambers:zGoldenDau1NofMuMatches", cut_zGolden); - Events.Project("hh2", "zGoldenDau2NofMuChambers:zGoldenDau2NofMuMatches", cut_zGolden); - - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->Write(); - MuChambersVsMuMatches->SetDrawOption("Box"); - // MuChambersVsMuMatches->Draw("BOX"); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - TDirectory * dir = output_file->mkdir("TrkPlots"); - dir->cd(); - - - - /* TH1F * nofHitTrk = new TH1F("nofHitTrk", "nofHitTrk", 100, -0.5, 99.5); - Events.Project("nofHitTrk", "zMuTrkDau2NofHitTk", cut_zMuTrk ); - nofHitTrk->Write(); - delete nofHitTrk; - */ - - TH1F * trkChi2 = new TH1F("trkChi2", "trkChi2", 100, -0.5, 99.5); - Events.Project("trkChi2", "zMuTrkDau2Chi2", cut_zMuTrk ); - trkChi2->Write(); - delete trkChi2; - - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("StaPlots"); - dir->cd(); - - // sta as zDaudxyFromBS=-1 by construction.... - - TH1F * staNofMuCh = new TH1F("staNofMuCh", "staNofMuCh", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuCh", "zMuStaDau1NofMuChambers", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuChambers", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuCh->Add(h2); - staNofMuCh->Write(); - delete staNofMuCh; - delete h2; - - TH1F * staNofMuMatches = new TH1F("staNofMuMatches", "staNofMuMatches", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuMatches", "zMuStaDau1NofMuMatches", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuMatches", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuMatches->Add(h2); - staNofMuMatches->Write(); - delete staNofMuMatches; - delete h2; - - TH2F * MuChambersVsMuMatches= new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zMuStaDau1NofMuChambers:zMuStaDau1NofMuMatches", cut_zMuSta); - Events.Project("hh2", "zMuStaDau2NofMuChambers:zMuStaDau2NofMuMatches", cut_zMuSta); - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->SetDrawOption("Box"); - MuChambersVsMuMatches->Write(); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - // isolations... - TDirectory * dir = output_file->mkdir("IsoPlots"); - dir->cd(); - - - TH1F * TrkIsoPt20= new TH1F("TrkIsoPt20", "TrkIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1TrkIso" , "zGoldenDau2Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>20" ); - TrkIsoPt20->Add(h2); - TrkIsoPt20->Write(); - delete TrkIsoPt20; - delete h2; - - TH1F * EcalIsoPt20 = new TH1F("EcalIsoPt20", "EcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>20" ); - EcalIsoPt20->Add(h2); - EcalIsoPt20->Write(); - delete EcalIsoPt20; - delete h2; - - TH1F * HcalIsoPt20 = new TH1F("HcalIsoPt20", "HcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>20"); - HcalIsoPt20->Add(h2); - HcalIsoPt20->Write(); - delete HcalIsoPt20; - delete h2; - - TH1F * TrkIsoPt15= new TH1F("TrkIsoPt15", "TrkIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1TrkIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>15" ); - TrkIsoPt15->Add(h2); - TrkIsoPt15->Write(); - delete TrkIsoPt15; - delete h2; - - TH1F * EcalIsoPt15 = new TH1F("EcalIsoPt15", "EcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>15" ); - EcalIsoPt15->Add(h2); - - EcalIsoPt15->Write(); - delete EcalIsoPt15; - delete h2; - - TH1F * HcalIsoPt15 = new TH1F("HcalIsoPt15", "HcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>15"); - HcalIsoPt15->Add(h2); - - HcalIsoPt15->Write(); - delete HcalIsoPt15; - delete h2; - output_file->cd("/"); - - - - output_file->Close(); - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_BothLegs.C b/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_BothLegs.C deleted file mode 100644 index 35c5c6ac42bc7..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_BothLegs.C +++ /dev/null @@ -1,255 +0,0 @@ -#include "TFile.h" -#include "TH1F.h" -#include "TTree.h" -#include "TAxis.h" -#include "TCanvas.h" -//#if !defined(__CINT__) && !defined(__MAKECINT__) -#include -#include -//#endif - -void setGraphics(TH1F *histo){ - - histo->SetFillColor(kAzure+7); - //histo->SetLineWidth(2); - histo->SetLineColor(kBlue+1); -} - - - - -void plotsAfterCuts_BothLegs(){ - - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - - TChain Events("Events"); - - // Events.Add("../../NtupleLoose_135_all.root") - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_132440_139790.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_139791-140159_v2.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_140160-140182.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_140183-140399.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_140440-141961.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_142035-142664.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed//NtupleLoose_142665-143179.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_143180-143336.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_143337-144114.root"); - - - TFile * output_file = TFile::Open("histoZmm_2p88_afterCutsBothLegs.root", "RECREATE"); - - - TCut cut_1Iso("((zGoldenDau1Iso03SumPt + zGoldenDau1Iso03EmEt + zGoldenDau1Iso03HadEt)/ zGoldenDau1Pt ) < 0.15"); - TCut cutTk_1Iso("((zMuTrkDau1Iso03SumPt + zMuTrkDau1Iso03EmEt + zMuTrkDau1Iso03HadEt)/ zMuTrkDau1Pt ) < 0.15"); - TCut cutSa_1Iso("((zMuStaDau1Iso03SumPt + zMuStaDau1Iso03EmEt + zMuStaDau1Iso03HadEt)/ zMuStaDau1Pt ) < 0.15"); - - TCut cut_2Iso("((zGoldenDau2Iso03SumPt + zGoldenDau2Iso03EmEt + zGoldenDau2Iso03HadEt)/ zGoldenDau2Pt ) < 0.15"); - TCut cutTk_2Iso("((zMuTrkDau2Iso03SumPt + zMuTrkDau2Iso03EmEt + zMuTrkDau2Iso03HadEt)/ zMuTrkDau2Pt ) < 0.15"); - TCut cutSa_2Iso("((zMuStaDau2Iso03SumPt + zMuStaDau2Iso03EmEt + zMuStaDau2Iso03HadEt)/ zMuStaDau2Pt ) < 0.15"); - - - - - TCut cut_OneNotIso("((((zGoldenDau1Iso03SumPt + zGoldenDau1Iso03EmEt + zGoldenDau1Iso03HadEt)/ zGoldenDau1Pt ) > 0.15) && (((zGoldenDau2Iso03SumPt + zGoldenDau2Iso03EmEt + zGoldenDau2Iso03HadEt)/ zGoldenDau2Pt ) < 0.15)) || ((((zGoldenDau1Iso03SumPt + zGoldenDau1Iso03EmEt + zGoldenDau1Iso03HadEt)/ zGoldenDau1Pt ) < 0.15) && (((zGoldenDau2Iso03SumPt + zGoldenDau2Iso03EmEt + zGoldenDau2Iso03HadEt)/ zGoldenDau2Pt ) > 0.15))"); - -TCut cut_TwoNotIso("(((zGoldenDau1Iso03SumPt + zGoldenDau1Iso03EmEt + zGoldenDau1Iso03HadEt)/ zGoldenDau1Pt ) > 0.15) && ((zGoldenDau2Iso03SumPt + zGoldenDau2Iso03EmEt + zGoldenDau2Iso03HadEt)/ zGoldenDau2Pt ) > 0.15"); - -TCut cut_NotIso("(((zGoldenDau1Iso03SumPt + zGoldenDau1Iso03EmEt + zGoldenDau1Iso03HadEt)/ zGoldenDau1Pt ) > 0.15) || ((zGoldenDau2Iso03SumPt + zGoldenDau2Iso03EmEt + zGoldenDau2Iso03HadEt)/ zGoldenDau2Pt ) > 0.15"); - - -/// cuts common.... - TCut kin_common(" (zGoldenDau1Q * zGoldenDau2Q) ==-1 && zGoldenDau1Pt>20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); // - - -TCut dau1TightWP1_notChi2AndTrackerMuon("zGoldenDau1Chi2<10000 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau1NofMuMatches>1"); - -TCut dau2TightWP1_notChi2AndTrackerMuon("zGoldenDau2Chi2<10000 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau2NofMuMatches>1"); - - - - - // zGolden plots -// TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10000 && zGoldenDau2Chi2<10000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - // Events.Draw("zGoldenMass"); - Events.Project("zMass", "zGoldenMass", kin_common + dau1TightWP1_notChi2AndTrackerMuon + dau2TightWP1_notChi2AndTrackerMuon + cut_1Iso + cut_2Iso); - cout<<"Number of zGoldenAA : "<GetEntries()<Write(); - delete zMass; - - - //TCut cut2_zGolden1HLT("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==0 || zGoldenDau2HLTBit ==0)"); - TDirectory * dir = output_file->mkdir("goodZToMuMu1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", kin_common + dau1TightWP1_notChi2AndTrackerMuon + dau2TightWP1_notChi2AndTrackerMuon + cut_1Iso + cut_2Iso + "zGoldenDau1HLTBit==0 || zGoldenDau2HLTBit==0" ); - cout<<"Number of zGolden1HLT : "<GetEntries()<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - - - - output_file->cd("/"); - - // TCut cut2_zGolden2HLT("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==1 && zGoldenDau2HLTBit ==1)"); - - TDirectory * dir = output_file->mkdir("goodZToMuMu2HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", kin_common + dau1TightWP1_notChi2AndTrackerMuon + dau2TightWP1_notChi2AndTrackerMuon + cut_1Iso + cut_2Iso + "zGoldenDau1HLTBit==1 && zGoldenDau2HLTBit==1" ); - - zMass->Write(); - cout<<"Number of zGolden2HLT : "<GetEntries()<cd("/"); - - - // zGoldenOneNotIso plots - // TCut cut_zGoldenOneNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("oneNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", kin_common + dau1TightWP1_notChi2AndTrackerMuon + dau2TightWP1_notChi2AndTrackerMuon + cut_OneNotIso); - zMass->Write(); - cout<<"Number of zGoldenOneNotIso : "<GetEntries()<cd("/"); - -// // zGoldenTwoNotIso plots -// TCut cut_zGoldenTwoNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("twoNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass","zGoldenMass", kin_common + dau1TightWP1_notChi2AndTrackerMuon + dau2TightWP1_notChi2AndTrackerMuon + cut_TwoNotIso); - zMass->Write(); - cout<<"Number of zGoldenTwoNotIso : "<GetEntries()<cd("/"); - - // zGoldenNotIso plots - // TCut cut_zGoldenNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("nonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", kin_common + dau1TightWP1_notChi2AndTrackerMuon + dau2TightWP1_notChi2AndTrackerMuon + cut_NotIso); - zMass->Write() ; - cout<<"Number of zGoldenNotIso : "<GetEntries()<cd("/"); - - // zGoldenSameCharge plots........ - TCut cut_zSameCharge("zSameChargeMass>60 && zSameChargeMass<120 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && zSameChargeDau1TrkIso< 3.0 && zSameChargeDau1TrkIso < 3.0 && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<1000 && zSameChargeDau2Chi2<1000 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 &&(zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>10 && (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>10 && zSameChargeDau1NofMuonHits>0 && zSameChargeDau2NofMuonHits>0 && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargePlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameCharge ); - zMass->Write(); - cout<<"Number of zGoldenSameCharge : "<GetEntries()<cd("/"); - - // zGoldenSameChargeNotIso plots........ - TCut cut_zSameChargeNotIso("zSameChargeMass>60 && zSameChargeMass<120 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && ( zSameChargeDau1TrkIso> 3.0 || zSameChargeDau1TrkIso > 3.0) && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<1000 && zSameChargeDau2Chi2<1000 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 &&(zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>10 && (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>10 && zSameChargeDau1NofMuonHits>0 && zSameChargeDau2NofMuonHits>0 && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargeNotIsoPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameChargeNotIso ); - zMass->Write(); - cout<<"Number of zGoldenSameChargeNotIso : "<GetEntries()<cd("/"); - - -// zMuTrk plots - TCut cut_zMuTrk("zGoldenMass@.size()==0 && zMuTrkDau1Pt> 20 && zMuTrkDau2Pt>20 && abs(zMuTrkDau1Eta)<2.1 && abs(zMuTrkDau2Eta)<2.1 && (zMuTrkDau1Chi2<1000) && ( zMuTrkDau2Chi2<1000) && abs(zMuTrkDau1dxyFromBS)<0.2 && abs(zMuTrkDau2dxyFromBS)<0.2 && ((zMuTrkDau1TrkNofStripHits + zMuTrkDau1TrkNofPixelHits)>10) && ((zMuTrkDau2TrkNofStripHits + zMuTrkDau2TrkNofPixelHits)>10) && zMuTrkDau1TrkNofPixelHits>0 && zMuTrkDau2TrkNofPixelHits>0 && (zMuTrkDau1NofMuonHits>0 && zMuTrkDau1NofMuMatches>1) && (zMuTrkDau1HLTBit==1)"); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMass", cut_zMuTrk + cutTk_1Iso + cutTk_2Iso ); - cout<<"Number of original zMuTrk : "<GetEntries()<20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10000 && zGoldenDau2Chi2<10000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau2NofPixelHits>0 && ( ((zGoldenDau1NofMuonHits==0 || zGoldenDau1NofMuMatches<2 ) && (zGoldenDau2HLTBit==1 && zGoldenDau2NofMuonHits>0 && zGoldenDau2NofMuMatches>1)) || ((zGoldenDau2NofMuonHits==0 || zGoldenDau2NofMuMatches<2 ) && (zGoldenDau1HLTBit==1 && zGoldenDau1NofMuonHits>0 && zGoldenDau1NofMuMatches>1)) ) && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - TH1F * zMass2 = new TH1F("zMass2", "zMass2", 200, 0, 200); - Events.Project("zMass2", "zGoldenMass", cut_zGoldenNotGoodSta + cut_1Iso + cut_2Iso ); - - cout<<"Number of zMuTrk from zGolden: "<GetEntries()<Add(zMass2); - zMass->Write(); - delete zMass; - output_file->cd("/"); - -// zMuTrkMu plots - - TCut cut_zMuTrkMu("zMuTrkMuDau1Pt>20 && zMuTrkMuDau2Pt>20 && zMuTrkMuDau1TrkIso< 3.0 && zMuTrkMuDau2TrkIso<3.0 && abs(zMuTrkMuDau1Eta)<2.1 && abs(zMuTrkMuDau2Eta)<2.1 && (( zMuTrkMuDau1Chi2<1000 && zMuTrkMuDau1GlobalMuonBit==1 ) || ( zMuTrkMuDau2Chi2<1000 && zMuTrkMuDau2GlobalMuonBit==1)) && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2 && (( zMuTrkMuDau1GlobalMuonBit==1 && (zMuTrkMuDau1TrkNofStripHits + zMuTrkMuDau1TrkNofPixelHits)>10) || ( zMuTrkMuDau2GlobalMuonBit==1 && (zMuTrkMuDau2TrkNofStripHits + zMuTrkMuDau2TrkNofPixelHits)>10) ) && (( zMuTrkMuDau1GlobalMuonBit==1 && zMuTrkMuDau1NofMuonHits>0) || ( zMuTrkMuDau2GlobalMuonBit==1 && zMuTrkMuDau2NofMuonHits>0 )) && ( (zMuTrkMuDau1HLTBit==1 && zMuTrkMuDau1GlobalMuonBit==1 ) || (zMuTrkMuDau2HLTBit==1 && zMuTrkMuDau2GlobalMuonBit==1 )) "); - - // TCut cut_zMuTrkMu("zMuTrkMuMass>60 && zMuTrkMuMass<120 && zMuTrkMuDau1Pt> 20 && zMuTrkMuDau2Pt>20 && zMuTrkMuDau1TrkIso< 3.0 && zMuTrkMuDau2TrkIso < 3.0 && abs(zMuTrkMuDau1Eta)<2.1 && abs(zMuTrkMuDau2Eta)<2.1 && ((( zMuTrkMuDau1GlobalMuonBit==1 && zMuTrkMuDau1Chi2<1000 && zMuTrkMuDau1NofMuonHits>0) || ( zMuTrkMuDau1GlobalMuonBit==0 && zMuTrkMuDau1TrkChi2<1000)) || (( zMuTrkMuDau2GlobalMuonBit==1 && zMuTrkMuDau2Chi2<1000) || ( zMuTrkMuDau2GlobalMuonBit==0 && zMuTrkMuDau1TrkChi2<1000 && zMuTrkMuDau2NofMuonHits>0)) && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2 && ((zMuTrkMuDau1TrkNofStripHits + zMuTrkMuDau1TrkNofPixelHits)>=10) && ((zMuTrkMuDau2TrkNofStripHits + zMuTrkMuDau2TrkNofPixelHits)>=10)) && (zMuTrkMuDau1HLTBit==1 || zMuTrkMuDau2HLTBit==1 ) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackerMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMuMass", cut_zMuTrkMu ); - - Events.Project("zMass2", "zMuTrkMuMass", cut_zMuTrkMu ); - - zMass->Write(); - cout<<"Number of zMuTrkMu : "<GetEntries()<cd("/"); - - - - // zMuSta plots - - TCut cut_zMuSta("zGoldenMass@.size()==0 && zMuStaDau1Pt>20 && zMuStaDau2Pt>20 && abs(zMuStaDau1Eta)<2.1 && abs(zMuStaDau2Eta)<2.1 && abs(zMuStaDau1dxyFromBS)<0.2 && abs(zMuStaDau2dxyFromBS)<0.2 && ( (zMuStaDau1GlobalMuonBit==1 && (zMuStaDau1TrkNofStripHits + zMuStaDau1TrkNofPixelHits)>10 && zMuStaDau1TrkNofPixelHits>0) || ( zMuStaDau2GlobalMuonBit==1 && (zMuStaDau2TrkNofStripHits + zMuStaDau2TrkNofPixelHits)>10 && zMuStaDau2TrkNofPixelHits>0)) && (( zMuStaDau1SaNofMuonHits>0 && zMuStaDau1NofMuMatches>1 && zMuStaDau2SaNofMuonHits>0 && zMuStaDau2NofMuMatches>1 )) && ( (zMuStaDau1HLTBit==1 && zMuStaDau1GlobalMuonBit==1 ) || (zMuStaDau2HLTBit==1 && zMuStaDau2GlobalMuonBit==1 ))"); - -// TCut cut_zMuSta("zMuStaMass>60 && zMuStaMass<120 && zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1TrkIso< 3.0 && zMuStaDau1TrkIso < 3.0 && abs(zMuStaDau1Eta)<2.1 && abs(zMuStaDau2Eta)<2.1 && abs(zMuStaDau1dxyFromBS)<0.2 && abs(zMuStaDau2dxyFromBS)<0.2 &&(zMuStaDau1NofStripHits + zMuStaDau1NofPixelHits)>=10 && (zMuStaDau2NofStripHits + zMuStaDau2NofPixelHits)>=10 && zMuStaDau1NofMuonHits>0 && zMuStaDau2NofMuonHits>0 && ((zMuStaDau1HLTBit==1 && zMuStaDau1GlobalMuonBit ==1 ) || ( zMuStaDau2HLTBit==1 && zMuStaDau2GlobalMuonBit ==1) ) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuStaMass", cut_zMuSta + cutSa_1Iso + cutSa_2Iso ); - - // add events from zGolden with not a good trk -TCut cut_zGoldenNotGoodTrk("zGoldenDau1Pt>20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10000 && zGoldenDau2Chi2<10000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( (((zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)<=10 || zGoldenDau1NofPixelHits==0) && (zGoldenDau2HLTBit==1 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0)) || (((zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)<=10 || zGoldenDau2NofPixelHits==0) && (zGoldenDau1HLTBit==1 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0))) && (zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1) && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1)"); - TH1F * zMass2 = new TH1F("zMass2", "zMass2", 200, 0, 200); - Events.Project("zMass2", "zGoldenMassSa", cut_zGoldenNotGoodTrk + cut_1Iso + cut_2Iso ); - - cout<<"Number of original zMuSta : "<GetEntries()<GetEntries()<Add(zMass2); - zMass->Write(); - - delete zMass; - delete zMass2; - - output_file->cd("/"); - - - - -// zMuSta plots - TCut cut_zMuMuSta("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && zGoldenDau1dxyFromBS<0.02 && zGoldenDau2dxyFromBS<0.02"); - TDirectory * dir = output_file->mkdir("zmumuSaMassHistogram"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMassSa", cut_zMuMuSta ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_NoLegs.C b/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_NoLegs.C deleted file mode 100644 index 9f6466d191c18..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_NoLegs.C +++ /dev/null @@ -1,553 +0,0 @@ -#include "TFile.h" -#include "TH1F.h" -#include "TTree.h" -#include "TAxis.h" -#include "TCanvas.h" -//#if !defined(__CINT__) && !defined(__MAKECINT__) -#include -#include -//#endif - -void setGraphics(TH1F *histo){ - - histo->SetFillColor(kAzure+7); - //histo->SetLineWidth(2); - histo->SetLineColor(kBlue+1); -} - - - - -void plotsAfterCuts_NoLegs(){ - - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - // #include ; - - // TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/incl15WithBsPv/NtupleLoose_test_inclu15_1_2.root"); - // TFile *file = TFile::Open("../NutpleLooseTestNew_oneshot_all_10_1.root"); -//TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/NtupleLoose_test.root"); -// TTree * Events = dynamic_cast< TTree *> (file->Get("Events")); - - TChain Events("Events"); - // Events.Add("../../NtupleLoose_135_all.root") - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_132440_139790.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_139791-140159_v2.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_140160-140182.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_140183-140399.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_140440-141961.root"); - Events.Add("../NtupleLoose_142035-142664.root"); - Events.Add("../NtupleLoose_142665-143179.root"); - Events.Add("../NtupleLoose_143180-143336.root"); - Events.Add("../NtupleLoose_143337-144114.root"); - Events.Add("../NtupleLoose_144114_v2.root"); - - - - TFile * output_file = TFile::Open("histo_3p07_noCuts_eta2p1.root", "RECREATE"); - // TFile * output_file = TFile::Open("histo_test.root", "RECREATE"); - - // zGolden plots - TCut cut_zGolden("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - // Events.Draw("zGoldenMass"); - Events.Project("zMass", "zGoldenMass", cut_zGolden ); - cout<<"Number of zGoldenAA : "<Integral(60,120)<Write(); - delete zMass; - - - TCut cut_zGoldenPt15("zGoldenMass>0 && zGoldenDau1Pt> 15 && zGoldenDau2Pt>15 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1)"); - dir->cd(); - - TH1F * zMassPt15 = new TH1F("zMassPt15", "zMassPt15", 200, 0, 200); - Events.Project("zMassPt15", "zGoldenMass", cut_zGoldenPt15 ); - setGraphics(zMassPt15); - cout<<"Number of zGoldenPt15 : "<Integral(60,120)<Write(); - delete zMassPt15; - - - - output_file->cd("/"); - - TCut cut2_zGolden1HLT("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==0 || zGoldenDau2HLTBit ==0)"); - TDirectory * dir = output_file->mkdir("goodZToMuMu1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden1HLT ); - cout<<"Number of zGolden1HLT : "<Integral(60,120)<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - output_file->cd("/"); - - TCut cut2_zGoldenAB1HLT("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && (( abs(zGoldenDau1Eta)>2.1 || abs(zGoldenDau2Eta)>2.1 ) ) && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("goodZToMuMuAB1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGoldenAB1HLT ); - cout<<"Number of zGoldenAB1HLT : "<Integral(60,120)<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - - TCut cut2_zGoldenBB1HLT("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && (( abs(zGoldenDau1Eta)>2.1 && abs(zGoldenDau2Eta)>2.1 ) ) && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("goodZToMuMuBB1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGoldenBB1HLT ); - cout<<"Number of zGoldenBB1HLT : "<Integral(60,120)<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - - TCut cut2_zGolden2HLT("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==1 && zGoldenDau2HLTBit ==1)"); - - TDirectory * dir = output_file->mkdir("goodZToMuMu2HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden2HLT ); - zMass->Write(); - cout<<"Number of zGolden2HLT : "<Integral(60,120)<cd("/"); - - - // zGoldenOneNotIso plots - TCut cut_zGoldenOneNotIso("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ( (zGoldenDau1Iso03SumPt> 3.0 && zGoldenDau2Iso03SumPt < 3.0) || (zGoldenDau2Iso03SumPt> 3.0 && zGoldenDau1Iso03SumPt < 3.0)) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("oneNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenOneNotIso ); - zMass->Write(); - cout<<"Number of zGoldenOneNotIso : "<Integral(60,120)<cd("/"); - -// // zGoldenTwoNotIso plots - TCut cut_zGoldenTwoNotIso("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1Iso03SumPt> 3.0 && zGoldenDau2Iso03SumPt > 3.0) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("twoNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass","zGoldenMass", cut_zGoldenTwoNotIso ); - zMass->Write(); - cout<<"Number of zGoldenTwoNotIso : "<Integral(60,120)<cd("/"); - - // zGoldenNotIso plots - TCut cut_zGoldenNotIso("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1Iso03SumPt> 3.0 || zGoldenDau2Iso03SumPt > 3.0) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("nonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenNotIso ); - zMass->Write() ; - cout<<"Number of zGoldenNotIso : "<Integral(60,120)<cd("/"); - - // zGoldenSameCharge plots........ - TCut cut_zSameCharge("zSameChargeMass>0 && zSameChargeMass<200 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && zSameChargeDau1Iso03SumPt< 3.0 && zSameChargeDau1Iso03SumPt < 3.0 && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<1000 && zSameChargeDau2Chi2<1000 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 &&(zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>=0 && (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>=0 && zSameChargeDau1NofMuonHits>=0 && zSameChargeDau2NofMuonHits>=0 && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargePlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameCharge ); - zMass->Write(); - cout<<"Number of zGoldenSameCharge : "<Integral(60,120)<cd("/"); - - // zGoldenSameChargeNotIso plots........ - TCut cut_zSameChargeNotIso("zSameChargeMass>0 && zSameChargeMass<200 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && ( zSameChargeDau1Iso03SumPt> 3.0 || zSameChargeDau1Iso03SumPt > 3.0) && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<1000 && zSameChargeDau2Chi2<1000 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 &&(zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>=0 && (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>=0 && zSameChargeDau1NofMuonHits>=0 && zSameChargeDau2NofMuonHits>=0 && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargeNotIsoPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameChargeNotIso ); - zMass->Write(); - cout<<"Number of zGoldenSameChargeNotIso : "<Integral(60,120)<cd("/"); - - -// zMuTrk plots - TCut cut_zMuTrk("zMuTrkMass>0 && zMuTrkMass<200 && zMuTrkDau1Pt> 20 && zMuTrkDau2Pt>20 && zMuTrkDau1Iso03SumPt< 3.0 && zMuTrkDau2Iso03SumPt < 3.0 && abs(zMuTrkDau1Eta)<2.1 && abs(zMuTrkDau2Eta)<2.1 && zMuTrkDau1Chi2<1000 && zMuTrkDau2TrkChi2<1000 && abs(zMuTrkDau1dxyFromBS)<0.2 && abs(zMuTrkDau2dxyFromBS)<.2 &&(zMuTrkDau1TrkNofStripHits + zMuTrkDau1TrkNofPixelHits)>=0 && (zMuTrkDau2TrkNofStripHits + zMuTrkDau2TrkNofPixelHits)>=0 && zMuTrkDau1NofMuonHits>=0 && (zMuTrkDau1HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMass", cut_zMuTrk ); - zMass->Write(); - cout<<"Number of zMuTrk : "<Integral(60,120)<cd("/"); - -// zMuTrkMu plots - TCut cut_zMuTrkMu("zMuTrkMuMass>0 && zMuTrkMuMass<200 && zMuTrkMuDau1Pt> 20 && zMuTrkMuDau2Pt>20 && zMuTrkMuDau1Iso03SumPt< 3.0 && zMuTrkMuDau2Iso03SumPt < 3.0 && abs(zMuTrkMuDau1Eta)<2.1 && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2 && abs(zMuTrkMuDau2Eta)<2.1 && ( (zMuTrkMuDau1HLTBit==1 && zMuTrkMuDau1GlobalMuonBit ==1 ) || ( zMuTrkMuDau2HLTBit==1 && zMuTrkMuDau2GlobalMuonBit ==1))");// zMuTrkMuDau1Chi2<1000 && zMuTrkMuDau2Chi2<1000 && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2 &&(zMuTrkMuDau1NofStripHits + zMuTrkMuDau1NofPixelHits)>=0 && (zMuTrkMuDau2NofStripHits + zMuTrkMuDau2NofPixelHits)>=0 && zMuTrkMuDau1NofMuonHits>=-1 && zMuTrkMuDau2NofMuonHits>=-1 "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackerMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMuMass", cut_zMuTrkMu ); - zMass->Write(); - cout<<"Number of zMuTrkMu : "<Integral(60,120)<cd("/"); - - - - // zMuSta plots - TCut cut_zMuSta("zMuStaMass>0 && zMuStaMass<200 && zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1Iso03SumPt< 3.0 && zMuStaDau2Iso03SumPt < 3.0 && abs(zMuStaDau1Eta)<2.1 && abs(zMuStaDau2Eta)<2.1 && ((zMuStaDau1HLTBit==1 && zMuStaDau1GlobalMuonBit ==1 && abs(zMuStaDau1dxyFromBS)<0.2 ) || ( zMuStaDau2HLTBit==1 && zMuStaDau2GlobalMuonBit ==1 && abs(zMuStaDau2dxyFromBS)<0.2) )");// zMuStaDau1Chi2<1000 && zMuStaDau2Chi2<1000 && abs(zMuStaDau1dxyFromBS)<0.2 && abs(zMuStaDau2dxyFromBS)<0.2 &&(zMuStaDau1NofStripHits + zMuStaDau1NofPixelHits)>=0 && (zMuStaDau2NofStripHits + zMuStaDau2NofPixelHits)>=0 && zMuStaDau1NofMuonHits>=-1 && zMuStaDau2NofMuonHits>=-1 && "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuStaMass", cut_zMuSta ); - zMass->Write(); - cout<<"Number of zMuSta : "<Integral(60,120)<cd("/"); - -// zMuSta plots - TCut cut_zMuMuSta("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau1Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && zGoldenDau1dxyFromBS<0.02 && zGoldenDau2dxyFromBS<0.02"); - TDirectory * dir = output_file->mkdir("zmumuSaMassHistogram"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMassSa", cut_zMuMuSta ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - /* - TDirectory * dir = output_file->mkdir("zPlots"); - dir->cd(); - TH1F * zGoldenPt = new TH1F("zGoldenPt", "zGoldenPt", 200, 0, 200); - Events.Project("zGoldenPt", "zGoldenPt", cut_zGolden ); - zGoldenPt->Write(); - delete zGoldenPt; - - - TH1F * zGoldenY = new TH1F("zGoldenY", "zGoldenY", 200, -5, 5); - Events.Project("zGoldenY", "zGoldenY", cut_zGolden ); - zGoldenY->Write(); - delete zGoldenY; - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("MuPlots"); - dir->cd(); - - - TH1F * muNotTriggeredEta = new TH1F("muNotTriggeredEta", "muNotTriggeredEta", 240, -6, 6.); - TH1F * h2 = new TH1F("h2", "h2", 240, -6, 6.); - - Events.Project("muNotTriggeredEta","zGoldenDau1Eta", "zGoldenDau1HLTBit==0"); - Events.Project("h2","zGoldenDau2Eta", "zGoldenDau2HLTBit==0"); - - muNotTriggeredEta->Add(h2); - muNotTriggeredEta->Write(); - delete muNotTriggeredEta; - delete h2; - - TH1F * zGoldenDauHighPt = new TH1F("zGoldenDauHighPt", "zGoldenDauHighPt", 200, 0, 200); - Events.Project("zGoldenDauHighPt", "max(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauHighPt->Write(); - delete zGoldenDauHighPt; - - TH1F * zGoldenDauLowPt = new TH1F("zGoldenDauLowPt", "zGoldenDauLowPt", 200, 0, 200); - Events.Project("zGoldenDauLowPt", "min(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauLowPt->Write(); - delete zGoldenDauLowPt; - - //(mu1.phi -mu2.phi) - TH1F * deltaPhi = new TH1F("deltaPhi", "deltaPhi", 120, 0, 6.); - TH1F * h2 = new TH1F("h2", "h2", 120, 0, 6. ); - TH1F * h3 = new TH1F("h3", "h3", 120, 0, 6. ); - */ - - /* result = phi1 - phi2; -040 while (result > M_PI) result -= 2*M_PI; -041 while (result <= -M_PI) result += 2*M_PI; -042 return result; - */ - /* - Events.Project("deltaPhi", "abs(zGoldenDau1Phi - zGoldenDau2Phi)", "-TMath::Pi() < (zGoldenDau1Phi - zGoldenDau2Phi) < TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden); - Events.Project("h2", "abs(zGoldenDau1Phi - zGoldenDau2Phi - 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) > TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + + cut_zGolden); - Events.Project("h3", "abs(zGoldenDau1Phi - zGoldenDau2Phi + 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) <= -TMath::Pi()", "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden ); - - deltaPhi->Add(h2, h3); - deltaPhi->Write(); - delete deltaPhi;; - delete h2; - delete h3; - - - - // mu1.eta -mu2.eta - TH1F * deltaEta = new TH1F("deltaEta", "deltaEta", 120, 0, 6.); - Events.Project("deltaEta", "abs(zGoldenDau1Eta - zGoldenDau2Eta)", cut_zGolden ); - deltaEta->Write(); - delete deltaEta; - - TH1F * dua1Phi = new TH1F("dau1Phi", "dau1Phi", 120, -6, 6.); - Events.Project("dau1Phi", "zGoldenDau1Phi" , cut_zGolden); - dau1Phi->Write(); - delete dau1Phi; - - TH1F * dua2Phi = new TH1F("dau2Phi", "dau2Phi", 120, -6, 6.); - Events.Project("dau2Phi", "zGoldenDau2Phi" , cut_zGolden); - dau2Phi->Write(); - delete dau2Phi; - - TH1F * dau1Eta = new TH1F("dua1Eta", "dau1Eta", 120, -6, 6.); - Events.Project("dau1Eta", "zGoldenDau1Eta", cut_zGolden ); - dau1Eta->Write(); - delete dau1Eta; - - TH1F * dau2Eta = new TH1F("dua2Eta", "dau2Eta", 120, -6, 6.); - Events.Project("dau2Eta", "zGoldenDau2Eta" , cut_zGolden); - dau2Eta->Write(); - delete dau2Eta; - - // quality variables - // caveat: I'm requiring isolations - TH1F * dau1Chi2 = new TH1F("dua1Chi2", "dau1Chi2", 1000, 0, 100); - Events.Project("dua1Chi2", "zGoldenDau1Chi2", cut_zGolden ); - dau1Chi2->Write(); - delete dau1Chi2; - - TH1F * dau2Chi2 = new TH1F("dua2Chi2", "dau2Chi2", 1000, 0, 100); - Events.Project("dau2Chi2", "zGoldenDau2Chi2", cut_zGolden ); - dau2Chi2->Write(); - delete dau2Chi2; - - - TH1F * dau1Dxy = new TH1F("dua1Dxy", "dau1Dxy", 500, 0, 5); - Events.Project("dua1Dxy", "zGoldenDau1dxyFromBS", cut_zGolden ); - dau1Dxy->Write(); - delete dau1Dxy; - - TH1F * dau2Dxy = new TH1F("dua2Dxy", "dau2Dxy", 500, 0, 5); - Events.Project("dua2Dxy", "zGoldenDau2dxyFromBS", cut_zGolden ); - dau2Dxy->Write(); - delete dau2Dxy; - - - TH1F * dau1Dz= new TH1F("dua1Dz", "dau1Dz", 500, 0, 20); - Events.Project("dua1Dz", "zGoldenDau1dzFromBS", cut_zGolden ); - dau1Dz->Write(); - delete dau1Dz; - - TH1F * dau2Dz = new TH1F("dua2Dz", "dau2Dz", 500, 0, 20); - Events.Project("dua2Dz", "zGoldenDau2dzFromBS", cut_zGolden); - dau2Dz->Write(); - delete dau2Dz; - */ - /* - TH1F * dau1NofHit = new TH1F("dua1NofHit", "dau1NofHit", 100, -0.5, 99.5); - Events.Project("dua1NofHit", "zGoldenDau1NofHit", cut_zGolden ); - dau1NofHit->Write(); - delete dau1NofHit; - - TH1F * dau2NofHit = new TH1F("dua2NofHit", "dau2NofHit", 100, -0.5, 99.5); - Events.Project("dua2NofHit", "zGoldenDau2NofHit", cut_zGolden ); - dau2NofHit->Write(); - delete dau2NofHit; - */ - /* - TH1F * dau1NofMuCh = new TH1F("dua1NofMuCh", "dau1NofMuCh", 20, -0.5, 19.5); - Events.Project("dua1NofMuCh", "zGoldenDau1NofMuChambers", cut_zGolden ); - dau1NofMuCh->Write(); - delete dau1NofMuCh; - - TH1F * dau2NofMuCh = new TH1F("dua2NofMuCh", "dau2NofMuCh", 20, -0.5, 19.5); - Events.Project("dua2NofMuCh", "zGoldenDau2NofMuChambers", cut_zGolden ); - dau2NofMuCh->Write(); - delete dau2NofMuCh; - - - TH1F * dau1NofMuMatches = new TH1F("dua1NofMuMatches", "dau1NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua1NofMuMatches", "zGoldenDau1NofMuMatches", cut_zGolden ); - dau1NofMuMatches->Write(); - delete dau1NofMuMatches; - - TH1F * dau2NofMuMatches = new TH1F("dua2NofMuMatches", "dau2NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua2NofMuMatches", "zGoldenDau2NofMuMatches", cut_zGolden ); - dau2NofMuMatches->Write(); - delete dau2NofMuMatches; - - TH1F * dau1EmEnergy = new TH1F("dua1EmEnergy", "dau1EmEnergy", 200, -0.1, 19.9); - Events.Project("dua1EmEnergy", "zGoldenDau1MuEnergyEm", cut_zGolden ); - dau1EmEnergy->Write(); - delete dau1EmEnergy; - - TH1F * dau2EmEnergy = new TH1F("dua2EmEnergy", "dau2EmEnergy", 200, -0.1, 19.9); - Events.Project("dua2EmEnergy", "zGoldenDau2MuEnergyEm", cut_zGolden ); - dau2EmEnergy->Write(); - delete dau2EmEnergy; - - TH1F * dau1HadEnergy = new TH1F("dua1HadEnergy", "dau1HadEnergy", 200, -0.1, 19.9); - Events.Project("dua1HadEnergy", "zGoldenDau1MuEnergyHad", cut_zGolden ); - dau1HadEnergy->Write(); - delete dau1HadEnergy; - - TH1F * dau2HadEnergy = new TH1F("dua2HadEnergy", "dau2HadEnergy", 200, -0.1, 19.9); - Events.Project("dua2HadEnergy", "zGoldenDau2MuEnergyHad", cut_zGolden ); - dau2HadEnergy->Write(); - delete dau2HadEnergy; - - - - - TH2F * MuChambersVsMuMatches = new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zGoldenDau1NofMuChambers:zGoldenDau1NofMuMatches", cut_zGolden); - Events.Project("hh2", "zGoldenDau2NofMuChambers:zGoldenDau2NofMuMatches", cut_zGolden); - - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->Write(); - MuChambersVsMuMatches->SetDrawOption("Box"); - // MuChambersVsMuMatches->Draw("BOX"); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - TDirectory * dir = output_file->mkdir("TrkPlots"); - dir->cd(); - - */ - - /* TH1F * nofHitTrk = new TH1F("nofHitTrk", "nofHitTrk", 100, -0.5, 99.5); - Events.Project("nofHitTrk", "zMuTrkDau2NofHitTk", cut_zMuTrk ); - nofHitTrk->Write(); - delete nofHitTrk; - */ - /* - TH1F * trkChi2 = new TH1F("trkChi2", "trkChi2", 100, -0.5, 99.5); - Events.Project("trkChi2", "zMuTrkDau2Chi2", cut_zMuTrk ); - trkChi2->Write(); - delete trkChi2; - - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("StaPlots"); - dir->cd(); - - // sta as zDaudxyFromBS=-1 by construction.... - - TH1F * staNofMuCh = new TH1F("staNofMuCh", "staNofMuCh", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuCh", "zMuStaDau1NofMuChambers", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuChambers", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuCh->Add(h2); - staNofMuCh->Write(); - delete staNofMuCh; - delete h2; - - TH1F * staNofMuMatches = new TH1F("staNofMuMatches", "staNofMuMatches", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuMatches", "zMuStaDau1NofMuMatches", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuMatches", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuMatches->Add(h2); - staNofMuMatches->Write(); - delete staNofMuMatches; - delete h2; - - TH2F * MuChambersVsMuMatches= new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zMuStaDau1NofMuChambers:zMuStaDau1NofMuMatches", cut_zMuSta); - Events.Project("hh2", "zMuStaDau2NofMuChambers:zMuStaDau2NofMuMatches", cut_zMuSta); - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->SetDrawOption("Box"); - MuChambersVsMuMatches->Write(); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - // isolations... - TDirectory * dir = output_file->mkdir("IsoPlots"); - dir->cd(); - - - TH1F * TrkIsoPt20= new TH1F("TrkIsoPt20", "TrkIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1TrkIso" , "zGoldenDau2Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>20" ); - TrkIsoPt20->Add(h2); - TrkIsoPt20->Write(); - delete TrkIsoPt20; - delete h2; - - TH1F * EcalIsoPt20 = new TH1F("EcalIsoPt20", "EcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>20" ); - EcalIsoPt20->Add(h2); - EcalIsoPt20->Write(); - delete EcalIsoPt20; - delete h2; - - TH1F * HcalIsoPt20 = new TH1F("HcalIsoPt20", "HcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>20"); - HcalIsoPt20->Add(h2); - HcalIsoPt20->Write(); - delete HcalIsoPt20; - delete h2; - - TH1F * TrkIsoPt15= new TH1F("TrkIsoPt15", "TrkIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1TrkIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>15" ); - TrkIsoPt15->Add(h2); - TrkIsoPt15->Write(); - delete TrkIsoPt15; - delete h2; - - TH1F * EcalIsoPt15 = new TH1F("EcalIsoPt15", "EcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>15" ); - EcalIsoPt15->Add(h2); - - EcalIsoPt15->Write(); - delete EcalIsoPt15; - delete h2; - - TH1F * HcalIsoPt15 = new TH1F("HcalIsoPt15", "HcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>15"); - HcalIsoPt15->Add(h2); - - HcalIsoPt15->Write(); - delete HcalIsoPt15; - delete h2; - output_file->cd("/"); - - */ - - output_file->Close(); - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_NoLegs_oldIso.C b/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_NoLegs_oldIso.C deleted file mode 100644 index f6fc9489d57c5..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_NoLegs_oldIso.C +++ /dev/null @@ -1,553 +0,0 @@ -#include "TFile.h" -#include "TH1F.h" -#include "TTree.h" -#include "TAxis.h" -#include "TCanvas.h" -//#if !defined(__CINT__) && !defined(__MAKECINT__) -#include -#include -//#endif - -void setGraphics(TH1F *histo){ - - histo->SetFillColor(kAzure+7); - //histo->SetLineWidth(2); - histo->SetLineColor(kBlue+1); -} - - - - -void plotsAfterCuts_NoLegs_oldIso(){ - - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - // #include ; - - // TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/incl15WithBsPv/NtupleLoose_test_inclu15_1_2.root"); - // TFile *file = TFile::Open("../NutpleLooseTestNew_oneshot_all_10_1.root"); -//TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/NtupleLoose_test.root"); -// TTree * Events = dynamic_cast< TTree *> (file->Get("Events")); - - TChain Events("Events"); - // Events.Add("../../NtupleLoose_135_all.root") - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_132440_139790.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_139791-140159_v2.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_140160-140182.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_140183-140399.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_140440-141961.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_142035-142664.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_142665-143179.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_143180-143336.root"); - Events.Add("/scratch2/users/degruttola/data/OfficialJSON/blessed/NtupleLoose_143337-144114.root"); - // Events.Add("../NtupleLoose_144114_v2.root"); - - - - TFile * output_file = TFile::Open("histo_2p88_noCuts_oldIso.root", "RECREATE"); - // TFile * output_file = TFile::Open("histo_test.root", "RECREATE"); - - // zGolden plots - TCut cut_zGolden("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - // Events.Draw("zGoldenMass"); - Events.Project("zMass", "zGoldenMass", cut_zGolden ); - cout<<"Number of zGoldenAA : "<Integral(60,120)<Write(); - delete zMass; - - - TCut cut_zGoldenPt15("zGoldenMass>0 && zGoldenDau1Pt> 15 && zGoldenDau2Pt>15 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1)"); - dir->cd(); - - TH1F * zMassPt15 = new TH1F("zMassPt15", "zMassPt15", 200, 0, 200); - Events.Project("zMassPt15", "zGoldenMass", cut_zGoldenPt15 ); - setGraphics(zMassPt15); - cout<<"Number of zGoldenPt15 : "<Integral(60,120)<Write(); - delete zMassPt15; - - - - output_file->cd("/"); - - TCut cut2_zGolden1HLT("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==0 || zGoldenDau2HLTBit ==0)"); - TDirectory * dir = output_file->mkdir("goodZToMuMu1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden1HLT ); - cout<<"Number of zGolden1HLT : "<Integral(60,120)<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - output_file->cd("/"); - - TCut cut2_zGoldenAB1HLT("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && (( abs(zGoldenDau1Eta)>2.1 || abs(zGoldenDau2Eta)>2.1 ) ) && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("goodZToMuMuAB1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGoldenAB1HLT ); - cout<<"Number of zGoldenAB1HLT : "<Integral(60,120)<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - - TCut cut2_zGoldenBB1HLT("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && (( abs(zGoldenDau1Eta)>2.1 && abs(zGoldenDau2Eta)>2.1 ) ) && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("goodZToMuMuBB1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGoldenBB1HLT ); - cout<<"Number of zGoldenBB1HLT : "<Integral(60,120)<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - - TCut cut2_zGolden2HLT("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==1 && zGoldenDau2HLTBit ==1)"); - - TDirectory * dir = output_file->mkdir("goodZToMuMu2HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden2HLT ); - zMass->Write(); - cout<<"Number of zGolden2HLT : "<Integral(60,120)<cd("/"); - - - // zGoldenOneNotIso plots - TCut cut_zGoldenOneNotIso("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ( (zGoldenDau1TrkIso> 3.0 && zGoldenDau2TrkIso < 3.0) || (zGoldenDau2TrkIso> 3.0 && zGoldenDau1TrkIso < 3.0)) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("oneNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenOneNotIso ); - zMass->Write(); - cout<<"Number of zGoldenOneNotIso : "<Integral(60,120)<cd("/"); - -// // zGoldenTwoNotIso plots - TCut cut_zGoldenTwoNotIso("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1TrkIso> 3.0 && zGoldenDau2TrkIso > 3.0) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("twoNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass","zGoldenMass", cut_zGoldenTwoNotIso ); - zMass->Write(); - cout<<"Number of zGoldenTwoNotIso : "<Integral(60,120)<cd("/"); - - // zGoldenNotIso plots - TCut cut_zGoldenNotIso("zGoldenMass>0 && zGoldenMass<200 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1TrkIso> 3.0 || zGoldenDau2TrkIso > 3.0) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&(zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=0 && zGoldenDau1NofMuonHits>=0 && zGoldenDau2NofMuonHits>=0 && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("nonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenNotIso ); - zMass->Write() ; - cout<<"Number of zGoldenNotIso : "<Integral(60,120)<cd("/"); - - // zGoldenSameCharge plots........ - TCut cut_zSameCharge("zSameChargeMass>0 && zSameChargeMass<200 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && zSameChargeDau1TrkIso< 3.0 && zSameChargeDau1TrkIso < 3.0 && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<1000 && zSameChargeDau2Chi2<1000 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 &&(zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>=0 && (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>=0 && zSameChargeDau1NofMuonHits>=0 && zSameChargeDau2NofMuonHits>=0 && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargePlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameCharge ); - zMass->Write(); - cout<<"Number of zGoldenSameCharge : "<Integral(60,120)<cd("/"); - - // zGoldenSameChargeNotIso plots........ - TCut cut_zSameChargeNotIso("zSameChargeMass>0 && zSameChargeMass<200 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && ( zSameChargeDau1TrkIso> 3.0 || zSameChargeDau1TrkIso > 3.0) && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<1000 && zSameChargeDau2Chi2<1000 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 &&(zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>=0 && (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>=0 && zSameChargeDau1NofMuonHits>=0 && zSameChargeDau2NofMuonHits>=0 && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargeNotIsoPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameChargeNotIso ); - zMass->Write(); - cout<<"Number of zGoldenSameChargeNotIso : "<Integral(60,120)<cd("/"); - - -// zMuTrk plots - TCut cut_zMuTrk("zMuTrkMass>0 && zMuTrkMass<200 && zMuTrkDau1Pt> 20 && zMuTrkDau2Pt>20 && zMuTrkDau1TrkIso< 3.0 && zMuTrkDau2TrkIso < 3.0 && abs(zMuTrkDau1Eta)<2.1 && abs(zMuTrkDau2Eta)<2.1 && zMuTrkDau1Chi2<1000 && zMuTrkDau2TrkChi2<1000 && abs(zMuTrkDau1dxyFromBS)<0.2 && abs(zMuTrkDau2dxyFromBS)<.2 &&(zMuTrkDau1TrkNofStripHits + zMuTrkDau1TrkNofPixelHits)>=0 && (zMuTrkDau2TrkNofStripHits + zMuTrkDau2TrkNofPixelHits)>=0 && zMuTrkDau1NofMuonHits>=0 && (zMuTrkDau1HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMass", cut_zMuTrk ); - zMass->Write(); - cout<<"Number of zMuTrk : "<Integral(60,120)<cd("/"); - -// zMuTrkMu plots - TCut cut_zMuTrkMu("zMuTrkMuMass>0 && zMuTrkMuMass<200 && zMuTrkMuDau1Pt> 20 && zMuTrkMuDau2Pt>20 && zMuTrkMuDau1TrkIso< 3.0 && zMuTrkMuDau2TrkIso < 3.0 && abs(zMuTrkMuDau1Eta)<2.1 && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2 && abs(zMuTrkMuDau2Eta)<2.1 && ( (zMuTrkMuDau1HLTBit==1 && zMuTrkMuDau1GlobalMuonBit ==1 ) || ( zMuTrkMuDau2HLTBit==1 && zMuTrkMuDau2GlobalMuonBit ==1))");// zMuTrkMuDau1Chi2<1000 && zMuTrkMuDau2Chi2<1000 && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2 &&(zMuTrkMuDau1NofStripHits + zMuTrkMuDau1NofPixelHits)>=0 && (zMuTrkMuDau2NofStripHits + zMuTrkMuDau2NofPixelHits)>=0 && zMuTrkMuDau1NofMuonHits>=-1 && zMuTrkMuDau2NofMuonHits>=-1 "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackerMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMuMass", cut_zMuTrkMu ); - zMass->Write(); - cout<<"Number of zMuTrkMu : "<Integral(60,120)<cd("/"); - - - - // zMuSta plots - TCut cut_zMuSta("zMuStaMass>0 && zMuStaMass<200 && zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1TrkIso< 3.0 && zMuStaDau2TrkIso < 3.0 && abs(zMuStaDau1Eta)<2.1 && abs(zMuStaDau2Eta)<2.1 && ((zMuStaDau1HLTBit==1 && zMuStaDau1GlobalMuonBit ==1 && abs(zMuStaDau1dxyFromBS)<0.2 ) || ( zMuStaDau2HLTBit==1 && zMuStaDau2GlobalMuonBit ==1 && abs(zMuStaDau2dxyFromBS)<0.2) )");// zMuStaDau1Chi2<1000 && zMuStaDau2Chi2<1000 && abs(zMuStaDau1dxyFromBS)<0.2 && abs(zMuStaDau2dxyFromBS)<0.2 &&(zMuStaDau1NofStripHits + zMuStaDau1NofPixelHits)>=0 && (zMuStaDau2NofStripHits + zMuStaDau2NofPixelHits)>=0 && zMuStaDau1NofMuonHits>=-1 && zMuStaDau2NofMuonHits>=-1 && "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuStaMass", cut_zMuSta ); - zMass->Write(); - cout<<"Number of zMuSta : "<Integral(60,120)<cd("/"); - -// zMuSta plots - TCut cut_zMuMuSta("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && zGoldenDau1dxyFromBS<0.02 && zGoldenDau2dxyFromBS<0.02"); - TDirectory * dir = output_file->mkdir("zmumuSaMassHistogram"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMassSa", cut_zMuMuSta ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - /* - TDirectory * dir = output_file->mkdir("zPlots"); - dir->cd(); - TH1F * zGoldenPt = new TH1F("zGoldenPt", "zGoldenPt", 200, 0, 200); - Events.Project("zGoldenPt", "zGoldenPt", cut_zGolden ); - zGoldenPt->Write(); - delete zGoldenPt; - - - TH1F * zGoldenY = new TH1F("zGoldenY", "zGoldenY", 200, -5, 5); - Events.Project("zGoldenY", "zGoldenY", cut_zGolden ); - zGoldenY->Write(); - delete zGoldenY; - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("MuPlots"); - dir->cd(); - - - TH1F * muNotTriggeredEta = new TH1F("muNotTriggeredEta", "muNotTriggeredEta", 240, -6, 6.); - TH1F * h2 = new TH1F("h2", "h2", 240, -6, 6.); - - Events.Project("muNotTriggeredEta","zGoldenDau1Eta", "zGoldenDau1HLTBit==0"); - Events.Project("h2","zGoldenDau2Eta", "zGoldenDau2HLTBit==0"); - - muNotTriggeredEta->Add(h2); - muNotTriggeredEta->Write(); - delete muNotTriggeredEta; - delete h2; - - TH1F * zGoldenDauHighPt = new TH1F("zGoldenDauHighPt", "zGoldenDauHighPt", 200, 0, 200); - Events.Project("zGoldenDauHighPt", "max(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauHighPt->Write(); - delete zGoldenDauHighPt; - - TH1F * zGoldenDauLowPt = new TH1F("zGoldenDauLowPt", "zGoldenDauLowPt", 200, 0, 200); - Events.Project("zGoldenDauLowPt", "min(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauLowPt->Write(); - delete zGoldenDauLowPt; - - //(mu1.phi -mu2.phi) - TH1F * deltaPhi = new TH1F("deltaPhi", "deltaPhi", 120, 0, 6.); - TH1F * h2 = new TH1F("h2", "h2", 120, 0, 6. ); - TH1F * h3 = new TH1F("h3", "h3", 120, 0, 6. ); - */ - - /* result = phi1 - phi2; -040 while (result > M_PI) result -= 2*M_PI; -041 while (result <= -M_PI) result += 2*M_PI; -042 return result; - */ - /* - Events.Project("deltaPhi", "abs(zGoldenDau1Phi - zGoldenDau2Phi)", "-TMath::Pi() < (zGoldenDau1Phi - zGoldenDau2Phi) < TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden); - Events.Project("h2", "abs(zGoldenDau1Phi - zGoldenDau2Phi - 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) > TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + + cut_zGolden); - Events.Project("h3", "abs(zGoldenDau1Phi - zGoldenDau2Phi + 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) <= -TMath::Pi()", "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden ); - - deltaPhi->Add(h2, h3); - deltaPhi->Write(); - delete deltaPhi;; - delete h2; - delete h3; - - - - // mu1.eta -mu2.eta - TH1F * deltaEta = new TH1F("deltaEta", "deltaEta", 120, 0, 6.); - Events.Project("deltaEta", "abs(zGoldenDau1Eta - zGoldenDau2Eta)", cut_zGolden ); - deltaEta->Write(); - delete deltaEta; - - TH1F * dua1Phi = new TH1F("dau1Phi", "dau1Phi", 120, -6, 6.); - Events.Project("dau1Phi", "zGoldenDau1Phi" , cut_zGolden); - dau1Phi->Write(); - delete dau1Phi; - - TH1F * dua2Phi = new TH1F("dau2Phi", "dau2Phi", 120, -6, 6.); - Events.Project("dau2Phi", "zGoldenDau2Phi" , cut_zGolden); - dau2Phi->Write(); - delete dau2Phi; - - TH1F * dau1Eta = new TH1F("dua1Eta", "dau1Eta", 120, -6, 6.); - Events.Project("dau1Eta", "zGoldenDau1Eta", cut_zGolden ); - dau1Eta->Write(); - delete dau1Eta; - - TH1F * dau2Eta = new TH1F("dua2Eta", "dau2Eta", 120, -6, 6.); - Events.Project("dau2Eta", "zGoldenDau2Eta" , cut_zGolden); - dau2Eta->Write(); - delete dau2Eta; - - // quality variables - // caveat: I'm requiring isolations - TH1F * dau1Chi2 = new TH1F("dua1Chi2", "dau1Chi2", 1000, 0, 100); - Events.Project("dua1Chi2", "zGoldenDau1Chi2", cut_zGolden ); - dau1Chi2->Write(); - delete dau1Chi2; - - TH1F * dau2Chi2 = new TH1F("dua2Chi2", "dau2Chi2", 1000, 0, 100); - Events.Project("dau2Chi2", "zGoldenDau2Chi2", cut_zGolden ); - dau2Chi2->Write(); - delete dau2Chi2; - - - TH1F * dau1Dxy = new TH1F("dua1Dxy", "dau1Dxy", 500, 0, 5); - Events.Project("dua1Dxy", "zGoldenDau1dxyFromBS", cut_zGolden ); - dau1Dxy->Write(); - delete dau1Dxy; - - TH1F * dau2Dxy = new TH1F("dua2Dxy", "dau2Dxy", 500, 0, 5); - Events.Project("dua2Dxy", "zGoldenDau2dxyFromBS", cut_zGolden ); - dau2Dxy->Write(); - delete dau2Dxy; - - - TH1F * dau1Dz= new TH1F("dua1Dz", "dau1Dz", 500, 0, 20); - Events.Project("dua1Dz", "zGoldenDau1dzFromBS", cut_zGolden ); - dau1Dz->Write(); - delete dau1Dz; - - TH1F * dau2Dz = new TH1F("dua2Dz", "dau2Dz", 500, 0, 20); - Events.Project("dua2Dz", "zGoldenDau2dzFromBS", cut_zGolden); - dau2Dz->Write(); - delete dau2Dz; - */ - /* - TH1F * dau1NofHit = new TH1F("dua1NofHit", "dau1NofHit", 100, -0.5, 99.5); - Events.Project("dua1NofHit", "zGoldenDau1NofHit", cut_zGolden ); - dau1NofHit->Write(); - delete dau1NofHit; - - TH1F * dau2NofHit = new TH1F("dua2NofHit", "dau2NofHit", 100, -0.5, 99.5); - Events.Project("dua2NofHit", "zGoldenDau2NofHit", cut_zGolden ); - dau2NofHit->Write(); - delete dau2NofHit; - */ - /* - TH1F * dau1NofMuCh = new TH1F("dua1NofMuCh", "dau1NofMuCh", 20, -0.5, 19.5); - Events.Project("dua1NofMuCh", "zGoldenDau1NofMuChambers", cut_zGolden ); - dau1NofMuCh->Write(); - delete dau1NofMuCh; - - TH1F * dau2NofMuCh = new TH1F("dua2NofMuCh", "dau2NofMuCh", 20, -0.5, 19.5); - Events.Project("dua2NofMuCh", "zGoldenDau2NofMuChambers", cut_zGolden ); - dau2NofMuCh->Write(); - delete dau2NofMuCh; - - - TH1F * dau1NofMuMatches = new TH1F("dua1NofMuMatches", "dau1NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua1NofMuMatches", "zGoldenDau1NofMuMatches", cut_zGolden ); - dau1NofMuMatches->Write(); - delete dau1NofMuMatches; - - TH1F * dau2NofMuMatches = new TH1F("dua2NofMuMatches", "dau2NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua2NofMuMatches", "zGoldenDau2NofMuMatches", cut_zGolden ); - dau2NofMuMatches->Write(); - delete dau2NofMuMatches; - - TH1F * dau1EmEnergy = new TH1F("dua1EmEnergy", "dau1EmEnergy", 200, -0.1, 19.9); - Events.Project("dua1EmEnergy", "zGoldenDau1MuEnergyEm", cut_zGolden ); - dau1EmEnergy->Write(); - delete dau1EmEnergy; - - TH1F * dau2EmEnergy = new TH1F("dua2EmEnergy", "dau2EmEnergy", 200, -0.1, 19.9); - Events.Project("dua2EmEnergy", "zGoldenDau2MuEnergyEm", cut_zGolden ); - dau2EmEnergy->Write(); - delete dau2EmEnergy; - - TH1F * dau1HadEnergy = new TH1F("dua1HadEnergy", "dau1HadEnergy", 200, -0.1, 19.9); - Events.Project("dua1HadEnergy", "zGoldenDau1MuEnergyHad", cut_zGolden ); - dau1HadEnergy->Write(); - delete dau1HadEnergy; - - TH1F * dau2HadEnergy = new TH1F("dua2HadEnergy", "dau2HadEnergy", 200, -0.1, 19.9); - Events.Project("dua2HadEnergy", "zGoldenDau2MuEnergyHad", cut_zGolden ); - dau2HadEnergy->Write(); - delete dau2HadEnergy; - - - - - TH2F * MuChambersVsMuMatches = new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zGoldenDau1NofMuChambers:zGoldenDau1NofMuMatches", cut_zGolden); - Events.Project("hh2", "zGoldenDau2NofMuChambers:zGoldenDau2NofMuMatches", cut_zGolden); - - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->Write(); - MuChambersVsMuMatches->SetDrawOption("Box"); - // MuChambersVsMuMatches->Draw("BOX"); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - TDirectory * dir = output_file->mkdir("TrkPlots"); - dir->cd(); - - */ - - /* TH1F * nofHitTrk = new TH1F("nofHitTrk", "nofHitTrk", 100, -0.5, 99.5); - Events.Project("nofHitTrk", "zMuTrkDau2NofHitTk", cut_zMuTrk ); - nofHitTrk->Write(); - delete nofHitTrk; - */ - /* - TH1F * trkChi2 = new TH1F("trkChi2", "trkChi2", 100, -0.5, 99.5); - Events.Project("trkChi2", "zMuTrkDau2Chi2", cut_zMuTrk ); - trkChi2->Write(); - delete trkChi2; - - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("StaPlots"); - dir->cd(); - - // sta as zDaudxyFromBS=-1 by construction.... - - TH1F * staNofMuCh = new TH1F("staNofMuCh", "staNofMuCh", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuCh", "zMuStaDau1NofMuChambers", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuChambers", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuCh->Add(h2); - staNofMuCh->Write(); - delete staNofMuCh; - delete h2; - - TH1F * staNofMuMatches = new TH1F("staNofMuMatches", "staNofMuMatches", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuMatches", "zMuStaDau1NofMuMatches", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuMatches", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuMatches->Add(h2); - staNofMuMatches->Write(); - delete staNofMuMatches; - delete h2; - - TH2F * MuChambersVsMuMatches= new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zMuStaDau1NofMuChambers:zMuStaDau1NofMuMatches", cut_zMuSta); - Events.Project("hh2", "zMuStaDau2NofMuChambers:zMuStaDau2NofMuMatches", cut_zMuSta); - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->SetDrawOption("Box"); - MuChambersVsMuMatches->Write(); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - // isolations... - TDirectory * dir = output_file->mkdir("IsoPlots"); - dir->cd(); - - - TH1F * TrkIsoPt20= new TH1F("TrkIsoPt20", "TrkIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1TrkIso" , "zGoldenDau2Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>20" ); - TrkIsoPt20->Add(h2); - TrkIsoPt20->Write(); - delete TrkIsoPt20; - delete h2; - - TH1F * EcalIsoPt20 = new TH1F("EcalIsoPt20", "EcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>20" ); - EcalIsoPt20->Add(h2); - EcalIsoPt20->Write(); - delete EcalIsoPt20; - delete h2; - - TH1F * HcalIsoPt20 = new TH1F("HcalIsoPt20", "HcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>20"); - HcalIsoPt20->Add(h2); - HcalIsoPt20->Write(); - delete HcalIsoPt20; - delete h2; - - TH1F * TrkIsoPt15= new TH1F("TrkIsoPt15", "TrkIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1TrkIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>15" ); - TrkIsoPt15->Add(h2); - TrkIsoPt15->Write(); - delete TrkIsoPt15; - delete h2; - - TH1F * EcalIsoPt15 = new TH1F("EcalIsoPt15", "EcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>15" ); - EcalIsoPt15->Add(h2); - - EcalIsoPt15->Write(); - delete EcalIsoPt15; - delete h2; - - TH1F * HcalIsoPt15 = new TH1F("HcalIsoPt15", "HcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>15"); - HcalIsoPt15->Add(h2); - - HcalIsoPt15->Write(); - delete HcalIsoPt15; - delete h2; - output_file->cd("/"); - - */ - - output_file->Close(); - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_OneLeg.C b/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_OneLeg.C deleted file mode 100644 index 82f9309933091..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/plotsAfterCuts_OneLeg.C +++ /dev/null @@ -1,543 +0,0 @@ -#include "TFile.h" -#include "TH1F.h" -#include "TTree.h" -#include "TAxis.h" -#include "TCanvas.h" -//#if !defined(__CINT__) && !defined(__MAKECINT__) -#include -#include -//#endif - -void setGraphics(TH1F *histo){ - - histo->SetFillColor(kAzure+7); - //histo->SetLineWidth(2); - histo->SetLineColor(kBlue+1); -} - - - - -void plotsAfterCuts_OneLeg(){ - - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - // #include ; - - // TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/incl15WithBsPv/NtupleLoose_test_inclu15_1_2.root"); - // TFile *file = TFile::Open("../NutpleLooseTestNew_oneshot_all_10_1.root"); -//TFile *file = TFile::Open("rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/NtupleLoose_test.root"); -// TTree * Events = dynamic_cast< TTree *> (file->Get("Events")); - - TChain Events("Events"); - // one need 130 events... each file has 1000 ev - Events.Add("../zmmNtuple/NtupleLooseTestNew.root"); - /* Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_1_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_2_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_3_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_4_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_5_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_6_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_7_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_8_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_9_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_10_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_11_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_12_None.root"); - Events.Add("../zmmNtuple/NtupleLooseTestNew_oneshot_all_Test_13_None.root"); - */ - - - - TFile * output_file = TFile::Open("histoZmm_OneCut.root", "RECREATE"); - // TFile * output_file = TFile::Open("histo_test.root", "RECREATE"); - - // zGolden plots - TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && (zGoldenDau1Chi2<10 || zGoldenDau2Chi2<10) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ((zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 || (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10) && (zGoldenDau1NofMuonHits>0 || zGoldenDau2NofMuonHits>0) && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - // Events.Draw("zGoldenMass"); - Events.Project("zMass", "zGoldenMass", cut_zGolden ); - cout<<"Number of zGoldenAA : "<GetEntries()<Write(); - delete zMass; - - - TCut cut_zGoldenPt15("zGoldenMass>20 && zGoldenDau1Pt> 15 && zGoldenDau2Pt>15 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && (zGoldenDau1Chi2<10 || zGoldenDau2Chi2<10) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ((zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 || (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10) && (zGoldenDau1NofMuonHits>0 || zGoldenDau2NofMuonHits>0) && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1)"); - dir->cd(); - - TH1F * zMassPt15 = new TH1F("zMassPt15", "zMassPt15", 200, 0, 200); - Events.Project("zMassPt15", "zGoldenMass", cut_zGoldenPt15 ); - setGraphics(zMassPt15); - cout<<"Number of zGoldenPt15 : "<GetEntries()<Write(); - delete zMassPt15; - - - - output_file->cd("/"); - - TCut cut2_zGolden1HLT("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && (zGoldenDau1Chi2<10 || zGoldenDau2Chi2<10) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 || ((zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10)) && (zGoldenDau1NofMuonHits>0 || zGoldenDau2NofMuonHits>0) && ( zGoldenDau1HLTBit ==0 || zGoldenDau2HLTBit ==0)"); - TDirectory * dir = output_file->mkdir("goodZToMuMu1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden1HLT ); - cout<<"Number of zGolden1HLT : "<GetEntries()<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - output_file->cd("/"); - - TCut cut2_zGoldenAB1HLT("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && ( abs(zGoldenDau1Eta)>2.1 || abs(zGoldenDau2Eta)>2.1 ) && (zGoldenDau1Chi2<10 || zGoldenDau2Chi2<10) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ((zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 || (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10) && (zGoldenDau1NofMuonHits>0 || zGoldenDau2NofMuonHits>0) && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("goodZToMuMuAB1HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGoldenAB1HLT ); - cout<<"Number of zGoldenAB1HLT : "<GetEntries()<Write(); - delete zMass; - //zMass2->Write(); - - output_file->cd("/"); - - - TCut cut2_zGolden2HLT("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && (zGoldenDau1Chi2<10 || zGoldenDau2Chi2<10) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ((zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 || (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10) && (zGoldenDau1NofMuonHits>0 || zGoldenDau2NofMuonHits>0) && ( zGoldenDau1HLTBit ==1 && zGoldenDau2HLTBit ==1)"); - - TDirectory * dir = output_file->mkdir("goodZToMuMu2HLTPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut2_zGolden2HLT ); - zMass->Write(); - cout<<"Number of zGolden2HLT : "<GetEntries()<cd("/"); - - - // zGoldenOneNotIso plots - TCut cut_zGoldenOneNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && ( (zGoldenDau1TrkIso> 3.0 && zGoldenDau2TrkIso < 3.0) || (zGoldenDau2TrkIso> 3.0 && zGoldenDau1TrkIso < 3.0)) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && (zGoldenDau1Chi2<10 || zGoldenDau2Chi2<10) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ((zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 || (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10) && (zGoldenDau1NofMuonHits>0 || zGoldenDau2NofMuonHits>0) && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("oneNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenOneNotIso ); - zMass->Write(); - cout<<"Number of zGoldenOneNotIso : "<GetEntries()<cd("/"); - -// // zGoldenTwoNotIso plots - TCut cut_zGoldenTwoNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1TrkIso> 3.0 && zGoldenDau2TrkIso > 3.0) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && (zGoldenDau1Chi2<10 || zGoldenDau2Chi2<10) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ((zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 || (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10) && (zGoldenDau1NofMuonHits>0 || zGoldenDau2NofMuonHits>0) && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("twoNonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass","zGoldenMass", cut_zGoldenTwoNotIso ); - zMass->Write(); - cout<<"Number of zGoldenTwoNotIso : "<GetEntries()<cd("/"); - - // zGoldenNotIso plots - TCut cut_zGoldenNotIso("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1TrkIso> 3.0 || zGoldenDau2TrkIso > 3.0) && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && (zGoldenDau1Chi2<10 || zGoldenDau2Chi2<10) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ((zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 || (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10) && (zGoldenDau1NofMuonHits>0 || zGoldenDau2NofMuonHits>0) && ( zGoldenDau1HLTBit ==1 || zGoldenDau2HLTBit ==1)"); - TDirectory * dir = output_file->mkdir("nonIsolatedZToMuMuPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMass", cut_zGoldenNotIso ); - zMass->Write() ; - cout<<"Number of zGoldenNotIso : "<GetEntries()<cd("/"); - - // zGoldenSameCharge plots........ - TCut cut_zSameCharge("zSameChargeMass>60 && zSameChargeMass<120 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && zSameChargeDau1TrkIso< 3.0 && zSameChargeDau2TrkIso < 3.0 && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<10 && zSameChargeDau2Chi2<10 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 && ((zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>=10 || (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>=10) && (zSameChargeDau1NofMuonHits>0 || zSameChargeDau2NofMuonHits>0) && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargePlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameCharge ); - zMass->Write(); - cout<<"Number of zGoldenSameCharge : "<GetEntries()<cd("/"); - - // zGoldenSameChargeNotIso plots........ - TCut cut_zSameChargeNotIso("zSameChargeMass>60 && zSameChargeMass<120 && zSameChargeDau1Pt> 20 && zSameChargeDau2Pt>20 && ( zSameChargeDau1TrkIso> 3.0 || zSameChargeDau2TrkIso > 3.0) && abs(zSameChargeDau1Eta)<2.1 && abs(zSameChargeDau2Eta)<2.1 && zSameChargeDau1Chi2<10 && zSameChargeDau2Chi2<10 && abs(zSameChargeDau1dxyFromBS)<0.2 && abs(zSameChargeDau2dxyFromBS)<0.2 && ( (zSameChargeDau1NofStripHits + zSameChargeDau1NofPixelHits)>=10 || (zSameChargeDau2NofStripHits + zSameChargeDau2NofPixelHits)>=10) && (zSameChargeDau1NofMuonHits>0 || zSameChargeDau2NofMuonHits>0) && (zSameChargeDau1HLTBit==1 || zSameChargeDau2HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuSameChargeNotIsoPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zSameChargeMass", cut_zSameChargeNotIso ); - zMass->Write(); - cout<<"Number of zGoldenSameChargeNotIso : "<GetEntries()<cd("/"); - - -// zMuTrk plots - TCut cut_zMuTrk("zMuTrkMass>60 && zMuTrkMass<120 && zMuTrkDau1Pt> 20 && zMuTrkDau2Pt>20 && zMuTrkDau1TrkIso< 3.0 && zMuTrkDau2TrkIso < 3.0 && abs(zMuTrkDau1Eta)<2.1 && abs(zMuTrkDau2Eta)<2.1 && (zMuTrkDau1Chi2<10) && abs(zMuTrkDau1dxyFromBS)<0.2 && abs(zMuTrkDau2dxyFromBS)<0.2 && ((zMuTrkDau1TrkNofStripHits + zMuTrkDau1TrkNofPixelHits)>=10) && (zMuTrkDau1NofMuonHits>0) && (zMuTrkDau1HLTBit==1) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMass", cut_zMuTrk ); - zMass->Write(); - cout<<"Number of zMuTrk : "<GetEntries()<cd("/"); - -// zMuTrkMu plots - TCut cut_zMuTrkMu("zMuTrkMuMass>60 && zMuTrkMuMass<120 && zMuTrkMuDau1Pt>20 && zMuTrkMuDau2Pt>20 && zMuTrkMuDau1TrkIso< 3.0 && zMuTrkMuDau2TrkIso<3.0 && abs(zMuTrkMuDau1Eta)<2.1 && abs(zMuTrkMuDau2Eta)<2.1 && (( zMuTrkMuDau1Chi2<10 && zMuTrkMuDau1GlobalMuonBit==1 ) || ( zMuTrkMuDau2Chi2<10 && zMuTrkMuDau2GlobalMuonBit==1)) && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2 && (( zMuTrkMuDau1GlobalMuonBit==1 && (zMuTrkMuDau1TrkNofStripHits + zMuTrkMuDau1TrkNofPixelHits)>=10) || ( zMuTrkMuDau2GlobalMuonBit==1 && (zMuTrkMuDau2TrkNofStripHits + zMuTrkMuDau2TrkNofPixelHits)>=10) ) && (( zMuTrkMuDau1GlobalMuonBit==1 && zMuTrkMuDau1NofMuonHits>0) || ( zMuTrkMuDau2GlobalMuonBit==1 && zMuTrkMuDau2NofMuonHits>0 )) && ( (zMuTrkMuDau1HLTBit==1 && zMuTrkMuDau1GlobalMuonBit==1 ) || (zMuTrkMuDau2HLTBit==1 && zMuTrkMuDau2GlobalMuonBit==1 )) "); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackerMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuTrkMuMass", cut_zMuTrkMu ); - zMass->Write(); - cout<<"Number of zMuTrkMu : "<GetEntries()<cd("/"); - - - - // zMuSta plots - TCut cut_zMuSta("zMuStaMass>60 && zMuStaMass<120 && zMuStaDau1Pt>20 && zMuStaDau2Pt>20 && zMuStaDau1TrkIso< 3.0 && zMuStaDau2TrkIso<3.0 && abs(zMuStaDau1Eta)<2.1 && abs(zMuStaDau2Eta)<2.1 && (( zMuStaDau1Chi2<10 && zMuStaDau1GlobalMuonBit==1 ) || ( zMuStaDau2Chi2<10 && zMuStaDau2GlobalMuonBit==1)) && abs(zMuStaDau1dxyFromBS)<0.2 && abs(zMuStaDau2dxyFromBS)<0.2 && (( zMuStaDau1GlobalMuonBit==1 && (zMuStaDau1TrkNofStripHits + zMuStaDau1TrkNofPixelHits)>=10) || ( zMuStaDau2GlobalMuonBit==1 && (zMuStaDau2TrkNofStripHits + zMuStaDau2TrkNofPixelHits)>=10) ) && (( zMuStaDau1GlobalMuonBit==1 && zMuStaDau1NofMuonHits>0) || ( zMuStaDau2GlobalMuonBit==1 && zMuStaDau2NofMuonHits>0 )) && ( (zMuStaDau1HLTBit==1 && zMuStaDau1GlobalMuonBit==1 ) || (zMuStaDau2HLTBit==1 && zMuStaDau2GlobalMuonBit==1 )) "); - - TDirectory * dir = output_file->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zMuStaMass", cut_zMuSta ); - zMass->Write(); - cout<<"Number of zMuSta : "<GetEntries()<cd("/"); - -// zMuSta plots - TCut cut_zMuMuSta("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1 && (zGoldenDau1Chi2<10 || zGoldenDau2Chi2<10) && zGoldenDau1dxyFromBS<0.02 && zGoldenDau2dxyFromBS<0.02"); - TDirectory * dir = output_file->mkdir("zmumuSaMassHistogram"); - dir->cd(); - TH1F * zMass = new TH1F("zMass", "zMass", 200, 0, 200); - Events.Project("zMass", "zGoldenMassSa", cut_zMuMuSta ); - zMass->Write(); - delete zMass; - output_file->cd("/"); - - - TDirectory * dir = output_file->mkdir("zPlots"); - dir->cd(); - TH1F * zGoldenPt = new TH1F("zGoldenPt", "zGoldenPt", 200, 0, 200); - Events.Project("zGoldenPt", "zGoldenPt", cut_zGolden ); - zGoldenPt->Write(); - delete zGoldenPt; - - - TH1F * zGoldenY = new TH1F("zGoldenY", "zGoldenY", 200, -5, 5); - Events.Project("zGoldenY", "zGoldenY", cut_zGolden ); - zGoldenY->Write(); - delete zGoldenY; - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("MuPlots"); - dir->cd(); - - - TH1F * muNotTriggeredEta = new TH1F("muNotTriggeredEta", "muNotTriggeredEta", 240, -6, 6.); - TH1F * h2 = new TH1F("h2", "h2", 240, -6, 6.); - - Events.Project("muNotTriggeredEta","zGoldenDau1Eta", "zGoldenDau1HLTBit==0"); - Events.Project("h2","zGoldenDau2Eta", "zGoldenDau2HLTBit==0"); - - muNotTriggeredEta->Add(h2); - muNotTriggeredEta->Write(); - delete muNotTriggeredEta; - delete h2; - - TH1F * zGoldenDauHighPt = new TH1F("zGoldenDauHighPt", "zGoldenDauHighPt", 200, 0, 200); - Events.Project("zGoldenDauHighPt", "max(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauHighPt->Write(); - delete zGoldenDauHighPt; - - TH1F * zGoldenDauLowPt = new TH1F("zGoldenDauLowPt", "zGoldenDauLowPt", 200, 0, 200); - Events.Project("zGoldenDauLowPt", "min(zGoldenDau1Pt, zGoldenDau2Pt)", cut_zGolden ); - zGoldenDauLowPt->Write(); - delete zGoldenDauLowPt; - - //(mu1.phi -mu2.phi) - TH1F * deltaPhi = new TH1F("deltaPhi", "deltaPhi", 120, 0, 6.); - TH1F * h2 = new TH1F("h2", "h2", 120, 0, 6. ); - TH1F * h3 = new TH1F("h3", "h3", 120, 0, 6. ); - - /* result = phi1 - phi2; -040 while (result > M_PI) result -= 2*M_PI; -041 while (result <= -M_PI) result += 2*M_PI; -042 return result; - */ - - Events.Project("deltaPhi", "abs(zGoldenDau1Phi - zGoldenDau2Phi)", "-TMath::Pi() < (zGoldenDau1Phi - zGoldenDau2Phi) < TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden); - Events.Project("h2", "abs(zGoldenDau1Phi - zGoldenDau2Phi - 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) > TMath::Pi()" , "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + + cut_zGolden); - Events.Project("h3", "abs(zGoldenDau1Phi - zGoldenDau2Phi + 2 * TMath::Pi())", "(zGoldenDau1Phi - zGoldenDau2Phi) <= -TMath::Pi()", "zGoldenDau1Pt>20 && zGoldenDau2Pt >20" + cut_zGolden ); - - deltaPhi->Add(h2, h3); - deltaPhi->Write(); - delete deltaPhi;; - delete h2; - delete h3; - - - - // mu1.eta -mu2.eta - TH1F * deltaEta = new TH1F("deltaEta", "deltaEta", 120, 0, 6.); - Events.Project("deltaEta", "abs(zGoldenDau1Eta - zGoldenDau2Eta)", cut_zGolden ); - deltaEta->Write(); - delete deltaEta; - - TH1F * dua1Phi = new TH1F("dau1Phi", "dau1Phi", 120, -6, 6.); - Events.Project("dau1Phi", "zGoldenDau1Phi" , cut_zGolden); - dau1Phi->Write(); - delete dau1Phi; - - TH1F * dua2Phi = new TH1F("dau2Phi", "dau2Phi", 120, -6, 6.); - Events.Project("dau2Phi", "zGoldenDau2Phi" , cut_zGolden); - dau2Phi->Write(); - delete dau2Phi; - - TH1F * dau1Eta = new TH1F("dua1Eta", "dau1Eta", 120, -6, 6.); - Events.Project("dau1Eta", "zGoldenDau1Eta", cut_zGolden ); - dau1Eta->Write(); - delete dau1Eta; - - TH1F * dau2Eta = new TH1F("dua2Eta", "dau2Eta", 120, -6, 6.); - Events.Project("dau2Eta", "zGoldenDau2Eta" , cut_zGolden); - dau2Eta->Write(); - delete dau2Eta; - - // quality variables - // caveat: I'm requiring isolations - TH1F * dau1Chi2 = new TH1F("dua1Chi2", "dau1Chi2", 1000, 0, 100); - Events.Project("dua1Chi2", "zGoldenDau1Chi2", cut_zGolden ); - dau1Chi2->Write(); - delete dau1Chi2; - - TH1F * dau2Chi2 = new TH1F("dua2Chi2", "dau2Chi2", 1000, 0, 100); - Events.Project("dau2Chi2", "zGoldenDau2Chi2", cut_zGolden ); - dau2Chi2->Write(); - delete dau2Chi2; - - - TH1F * dau1Dxy = new TH1F("dua1Dxy", "dau1Dxy", 500, 0, 5); - Events.Project("dua1Dxy", "zGoldenDau1dxyFromBS", cut_zGolden ); - dau1Dxy->Write(); - delete dau1Dxy; - - TH1F * dau2Dxy = new TH1F("dua2Dxy", "dau2Dxy", 500, 0, 5); - Events.Project("dua2Dxy", "zGoldenDau2dxyFromBS", cut_zGolden ); - dau2Dxy->Write(); - delete dau2Dxy; - - - TH1F * dau1Dz= new TH1F("dua1Dz", "dau1Dz", 500, 0, 20); - Events.Project("dua1Dz", "zGoldenDau1dzFromBS", cut_zGolden ); - dau1Dz->Write(); - delete dau1Dz; - - TH1F * dau2Dz = new TH1F("dua2Dz", "dau2Dz", 500, 0, 20); - Events.Project("dua2Dz", "zGoldenDau2dzFromBS", cut_zGolden); - dau2Dz->Write(); - delete dau2Dz; - - /* - TH1F * dau1NofHit = new TH1F("dua1NofHit", "dau1NofHit", 100, -0.5, 99.5); - Events.Project("dua1NofHit", "zGoldenDau1NofHit", cut_zGolden ); - dau1NofHit->Write(); - delete dau1NofHit; - - TH1F * dau2NofHit = new TH1F("dua2NofHit", "dau2NofHit", 100, -0.5, 99.5); - Events.Project("dua2NofHit", "zGoldenDau2NofHit", cut_zGolden ); - dau2NofHit->Write(); - delete dau2NofHit; - */ - - TH1F * dau1NofMuCh = new TH1F("dua1NofMuCh", "dau1NofMuCh", 20, -0.5, 19.5); - Events.Project("dua1NofMuCh", "zGoldenDau1NofMuChambers", cut_zGolden ); - dau1NofMuCh->Write(); - delete dau1NofMuCh; - - TH1F * dau2NofMuCh = new TH1F("dua2NofMuCh", "dau2NofMuCh", 20, -0.5, 19.5); - Events.Project("dua2NofMuCh", "zGoldenDau2NofMuChambers", cut_zGolden ); - dau2NofMuCh->Write(); - delete dau2NofMuCh; - - - TH1F * dau1NofMuMatches = new TH1F("dua1NofMuMatches", "dau1NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua1NofMuMatches", "zGoldenDau1NofMuMatches", cut_zGolden ); - dau1NofMuMatches->Write(); - delete dau1NofMuMatches; - - TH1F * dau2NofMuMatches = new TH1F("dua2NofMuMatches", "dau2NofMuMatches", 20, -0.5, 19.5); - Events.Project("dua2NofMuMatches", "zGoldenDau2NofMuMatches", cut_zGolden ); - dau2NofMuMatches->Write(); - delete dau2NofMuMatches; - - TH1F * dau1EmEnergy = new TH1F("dua1EmEnergy", "dau1EmEnergy", 200, -0.1, 19.9); - Events.Project("dua1EmEnergy", "zGoldenDau1MuEnergyEm", cut_zGolden ); - dau1EmEnergy->Write(); - delete dau1EmEnergy; - - TH1F * dau2EmEnergy = new TH1F("dua2EmEnergy", "dau2EmEnergy", 200, -0.1, 19.9); - Events.Project("dua2EmEnergy", "zGoldenDau2MuEnergyEm", cut_zGolden ); - dau2EmEnergy->Write(); - delete dau2EmEnergy; - - TH1F * dau1HadEnergy = new TH1F("dua1HadEnergy", "dau1HadEnergy", 200, -0.1, 19.9); - Events.Project("dua1HadEnergy", "zGoldenDau1MuEnergyHad", cut_zGolden ); - dau1HadEnergy->Write(); - delete dau1HadEnergy; - - TH1F * dau2HadEnergy = new TH1F("dua2HadEnergy", "dau2HadEnergy", 200, -0.1, 19.9); - Events.Project("dua2HadEnergy", "zGoldenDau2MuEnergyHad", cut_zGolden ); - dau2HadEnergy->Write(); - delete dau2HadEnergy; - - - - - TH2F * MuChambersVsMuMatches = new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zGoldenDau1NofMuChambers:zGoldenDau1NofMuMatches", cut_zGolden); - Events.Project("hh2", "zGoldenDau2NofMuChambers:zGoldenDau2NofMuMatches", cut_zGolden); - - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->Write(); - MuChambersVsMuMatches->SetDrawOption("Box"); - // MuChambersVsMuMatches->Draw("BOX"); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - TDirectory * dir = output_file->mkdir("TrkPlots"); - dir->cd(); - - - - /* TH1F * nofHitTrk = new TH1F("nofHitTrk", "nofHitTrk", 100, -0.5, 99.5); - Events.Project("nofHitTrk", "zMuTrkDau2NofHitTk", cut_zMuTrk ); - nofHitTrk->Write(); - delete nofHitTrk; - */ - - TH1F * trkChi2 = new TH1F("trkChi2", "trkChi2", 100, -0.5, 99.5); - Events.Project("trkChi2", "zMuTrkDau2Chi2", cut_zMuTrk ); - trkChi2->Write(); - delete trkChi2; - - - output_file->cd("/"); - - - - TDirectory * dir = output_file->mkdir("StaPlots"); - dir->cd(); - - // sta as zDaudxyFromBS=-1 by construction.... - - TH1F * staNofMuCh = new TH1F("staNofMuCh", "staNofMuCh", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuCh", "zMuStaDau1NofMuChambers", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuChambers", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuCh->Add(h2); - staNofMuCh->Write(); - delete staNofMuCh; - delete h2; - - TH1F * staNofMuMatches = new TH1F("staNofMuMatches", "staNofMuMatches", 20, -0.5, 19.5); - TH1F * h2 = new TH1F("h2", "h2", 20, -0.5, 19.5); - Events.Project("staNofMuMatches", "zMuStaDau1NofMuMatches", cut_zMuSta + "zMuStaDau1dxyFromBS==-1" ); - Events.Project("h2", "zMuStaDau2NofMuMatches", cut_zMuSta + "zMuStaDau2dxyFromBS==-1" ); - staNofMuMatches->Add(h2); - staNofMuMatches->Write(); - delete staNofMuMatches; - delete h2; - - TH2F * MuChambersVsMuMatches= new TH2F("MuChambersVsMuMatches", "MuChambersVsMuMatches", 21, -0.5, 20.5, 21, -0.5, 20.5); - TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events.Project("MuChambersVsMuMatches", "zMuStaDau1NofMuChambers:zMuStaDau1NofMuMatches", cut_zMuSta); - Events.Project("hh2", "zMuStaDau2NofMuChambers:zMuStaDau2NofMuMatches", cut_zMuSta); - MuChambersVsMuMatches->Add(hh2); - MuChambersVsMuMatches->SetDrawOption("Box"); - MuChambersVsMuMatches->Write(); - delete MuChambersVsMuMatches; - delete hh2; - output_file->cd("/"); - - // isolations... - TDirectory * dir = output_file->mkdir("IsoPlots"); - dir->cd(); - - - TH1F * TrkIsoPt20= new TH1F("TrkIsoPt20", "TrkIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1TrkIso" , "zGoldenDau2Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>20" ); - TrkIsoPt20->Add(h2); - TrkIsoPt20->Write(); - delete TrkIsoPt20; - delete h2; - - TH1F * EcalIsoPt20 = new TH1F("EcalIsoPt20", "EcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>20" ); - EcalIsoPt20->Add(h2); - EcalIsoPt20->Write(); - delete EcalIsoPt20; - delete h2; - - TH1F * HcalIsoPt20 = new TH1F("HcalIsoPt20", "HcalIsoPt20", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt20", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>20"); - HcalIsoPt20->Add(h2); - HcalIsoPt20->Write(); - delete HcalIsoPt20; - delete h2; - - TH1F * TrkIsoPt15= new TH1F("TrkIsoPt15", "TrkIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1TrkIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2TrkIso", "zGoldenDau2Pt>15" ); - TrkIsoPt15->Add(h2); - TrkIsoPt15->Write(); - delete TrkIsoPt15; - delete h2; - - TH1F * EcalIsoPt15 = new TH1F("EcalIsoPt15", "EcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1EcalIso" , "zGoldenDau1Pt>20"); - Events.Project("h2", "zGoldenDau2EcalIso", "zGoldenDau2Pt>15" ); - EcalIsoPt15->Add(h2); - - EcalIsoPt15->Write(); - delete EcalIsoPt15; - delete h2; - - TH1F * HcalIsoPt15 = new TH1F("HcalIsoPt15", "HcalIsoPt15", 200, 0, 20); - TH1F * h2 = new TH1F("h2", "h2", 200, 0, 20); - Events.Project("TkIsoPt15", "zGoldenDau1HcalIso" , "zGoldenDau1Pt>20" ); - Events.Project("h2", "zGoldenDau2HcalIso" , "zGoldenDau2Pt>15"); - HcalIsoPt15->Add(h2); - - HcalIsoPt15->Write(); - delete HcalIsoPt15; - delete h2; - output_file->cd("/"); - - - - output_file->Close(); - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/pulls.C b/ElectroWeakAnalysis/ZMuMu/test/macros/pulls.C deleted file mode 100644 index f9ee37c79d06f..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/pulls.C +++ /dev/null @@ -1,93 +0,0 @@ -/*************************/ -/* */ -/* author: Pasquale Noli */ -/* INFN Naples */ -/* macro to save the eps */ -/* of pulls */ -/* */ -/*************************/ - -{ - TFile *f = TFile::Open("fitResult.root"); - TH1D frameYield("frameYield", "Yield", 100, -10, 10); - TH1D frameTrk("frameTrk", "track eff.", 100, -10, 10); - TH1D frameSa("frameSa", "stand-alone eff.", 100, -10, 10); - TH1D frameIso("frameIso", "isolation eff.", 100, -10, 10); - TH1D frameHlt("frameHlt", "HLT eff.", 100, -10, 10); - TH1D frameErrYield("frameErrYield", "Err Yield", 100, 0, 100); - TH1D frameErrTrk("frameErrTrk", "Err track eff.", 100, 0, .01); - TH1D frameErrSa("frameErrSa", "Err stand-alone eff.", 100, 0, .01); - TH1D frameErrIso("frameErrIso", "Err isolation eff.", 100, 0, .01); - TH1D frameErrHlt("frameErrHlt", "Err HLT eff.", 100, 0, .01); - TH1D frameChi2("frameChi2", "chi2", 100, 0, 10); - - tree->Project("frameYield","(Y-Y_true)/dY", "abs((Y - Y_true)/dY)>5.e-3"); - tree->Project("frameTrk","(Tk-Tk_true)/dTk", "abs((Tk-Tk_true)/dTk)>5.e-3"); - tree->Project("frameSa","(Sa-Sa_true)/dSa", "abs((Sa-Sa_true)/dSa)>5.e-3"); - tree->Project("frameIso", "(Iso-Iso_true)/dIso", "abs((Iso-Iso_true)/dIso)>5.e-3"); - tree->Project("frameHlt", "(Hlt-Hlt_true)/dHlt", "abs((Hlt-Hlt_true)/dHlt)>5.e-3"); - - tree->Project("frameErrYield","dY", "abs(dY)>5.e-5"); - tree->Project("frameErrTrk","dTk", "abs(dTk)>5.e-5"); - tree->Project("frameErrSa","dSa", "abs(dSa)>5.e-5"); - tree->Project("frameErrIso", "dIso", "abs(dIso)>5.e-5"); - tree->Project("frameErrHlt", "dHlt", "abs(dHlt)>5.e-5"); - tree->Project("frameChi2", "chi2", "abs(chi2)>5.e-3"); - - - - frameYield.Fit("gaus"); - frameTrk.Fit("gaus"); - frameSa.Fit("gaus"); - frameIso.Fit("gaus"); - frameHlt.Fit("gaus"); - TCanvas *c1 = new TCanvas("c1","pulls",10,10,900,900); - gStyle->SetOptStat(1111111); - gStyle->SetStatFontSize(0.04); - gStyle->SetOptFit(kTRUE); - gStyle->SetFitFormat("5.3g"); - c1->Divide (3,2); - - c1->cd(1); - frameYield.Draw(); - - c1->cd(2); - frameTrk.Draw(); - - c1->cd(3); - - frameSa.Draw(); - c1->cd(4); - frameIso.Draw(); - c1->cd(5); - frameHlt.Draw(); - c1->Draw(); - c1->SaveAs("pulls.eps"); - - TCanvas *c2 = new TCanvas("c2","err",10,10,900,900); - c2->Divide (3,2); - c2->cd(1); - frameErrYield.Draw(); - - c2->cd(2); - frameErrTrk.Draw(); - - c2->cd(3); - - frameErrSa.Draw(); - c2->cd(4); - frameErrIso.Draw(); - c2->cd(5); - frameErrHlt.Draw(); - - - c2->cd(6); - frameChi2.Draw(); - c2->Draw(); - c2->SaveAs("Err.eps"); - - - - -} - diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/qualityStudies.C b/ElectroWeakAnalysis/ZMuMu/test/macros/qualityStudies.C deleted file mode 100644 index ce7083e9627c0..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/qualityStudies.C +++ /dev/null @@ -1,1118 +0,0 @@ -#include "TFile.h" -#include "TH1F.h" -#include "TH2F.h" -#include "TTree.h" -#include "TAxis.h" -#include "TCanvas.h" -//#if !defined(__CINT__) && !defined(__MAKECINT__) -#include -#include -#include -//#endif - -void setGraphics(TH1F *histo){ - - histo->SetFillColor(kAzure+7); - histo->SetLineWidth(2); - histo->SetLineColor(kBlue+1); -} - -TH1F * getTH1Histo(TChain *Events, const char * name, const string varToPlot, unsigned int nBins, double fMin, double fMax, TCut cut) { - - TH1F * h = new TH1F(name, name, nBins, fMin, fMax); - // Events->Draw("zGoldenMass"); - Events->Project(name, varToPlot.c_str(), cut ); - cout<<"Number of entrie for "<< name << " : "<< h->GetEntries()<SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - - // zGolden plots - TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("goodZToMuMuPlots"); - dir->cd(); - - TH1F * zMass = getTH1Histo(Events, "zMass", "zGoldenMass", 200, 0, 200, cut_zGolden) ; - zMass->Write(); - delete zMass; - - //Quality checks - // Chi2 - - // quality variables - // caveat: I'm requiring isolations - TH1F * dauChi2 = getTH1Histo(Events, "dauChi2", "zGoldenDau1Chi2", 1000, 0, 100, cut_zGolden) ; - TH1F * dau2Chi2 = getTH1Histo(Events, "dau2Chi2", "zGoldenDau2Chi2", 1000, 0, 100, cut_zGolden) ; - dauChi2->Add(dau2Chi2); - dauChi2->Write(); - delete dauChi2; - delete dau2Chi2; - - - dir->cd(); - TH1F * zMassOneDauChi2Higher10 = getTH1Histo(Events, "zMassOneDauChi2Higher10", "zGoldenMass", 200, 0, 200, cut_zGolden +"zGoldenDau1Chi2>10 || zGoldenDau2Chi2>10") ; - zMassOneDauChi2Higher10->Write(); - delete zMassOneDauChi2Higher10; - - dir->cd(); - TH1F * zMassBothDauChi2Higher10 = getTH1Histo(Events, "zMassBothDauChi2Higher10", "zGoldenMass", 200, 0, 200, cut_zGolden +"zGoldenDau1Chi2>10 && zGoldenDau2Chi2>10") ; - zMassBothDauChi2Higher10->Write(); - delete zMassBothDauChi2Higher10; - - dir->cd(); - TH1F *dauChi2NofMuonHits0 = getTH1Histo(Events, "dauChi2NofMuonHits0", "zGoldenDau1Chi2", 1000, 0, 100, cut_zGolden + "zGoldenDau1NofMuonHits==0") ; - TH1F *dau2Chi2NofMuonHits0 = getTH1Histo(Events, "dau2Chi2NofMuonHits0", "zGoldenDau2Chi2", 1000, 0, 100, cut_zGolden + "zGoldenDau2NofMuonHits==0") ; - dauChi2NofMuonHits0->Add(dau2Chi2NofMuonHits0); - dauChi2NofMuonHits0->Write(); - delete dauChi2NofMuonHits0; - delete dau2Chi2NofMuonHits0; - - - dir->cd(); - - TH1F *dauSaChi2NofSaMuonHits0 = getTH1Histo(Events, "dauSaChi2NofSaMuonHits0", "zGoldenDau1SaChi2", 1000, 0, 100, cut_zGolden + "zGoldenDau1SaNofMuonHits==0") ; - TH1F *dau2SaChi2NofSaMuonHits0 = getTH1Histo(Events, "dau2SaChi2NofSaMuonHits0", "zGoldenDau2SaChi2", 1000, 0, 100, cut_zGolden + "zGoldenDau2SaNofMuonHits==0") ; - dauSaChi2NofSaMuonHits0->Add(dau2SaChi2NofSaMuonHits0); - dauSaChi2NofSaMuonHits0->Write(); - delete dauSaChi2NofSaMuonHits0; - delete dau2SaChi2NofSaMuonHits0; - - - - TH1F *dauChi2NofStripHits0 = getTH1Histo(Events, "dauChi2NofStripHits0", "zGoldenDau1Chi2", 1000, 0, 100, cut_zGolden + "zGoldenDau1NofStripHits<10") ; - TH1F *dau2Chi2NofStripHits0 = getTH1Histo(Events, "dau2Chi2NofStripHits0", "zGoldenDau2Chi2", 1000, 0, 100, cut_zGolden + "zGoldenDau2NofStripHits<10") ; - dauChi2NofStripHits0->Add(dau2Chi2NofStripHits0); - dauChi2NofStripHits0->Write(); - //cout<<"Number of zCandidate with at least one daughter with Chi2 higher: "<GetEntries()<cd(); - // caveat: I'm requiring isolations - - TH1F *dauNofStripHits = getTH1Histo(Events, "dauNofStripHits", "zGoldenDau1NofStripHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2NofStripHits = getTH1Histo(Events, "dau2NofStripHits", "zGoldenDau2NofStripHits", 100, 0, 100, cut_zGolden ) ; - dauNofStripHits->Add(dau2NofStripHits); - dauNofStripHits->Write(); - delete dauNofStripHits; - delete dau2NofStripHits; - - - dir->cd(); - TH1F * zMassBothDauNofStripsHitsLower10 = getTH1Histo(Events, "zMassBothDauNofStripsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofStripHits<10 && zGoldenDau2NofStripHits<10" ); - zMassBothDauNofStripsHitsLower10->Write(); - delete zMassBothDauNofStripsHitsLower10; - - dir->cd(); - TH1F * zMassOneDauNofStripsHitsLower10 = getTH1Histo(Events, "zMassOneDauNofStripsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofStripHits<10 || zGoldenDau2NofStripHits<10" ); - zMassOneDauNofStripsHitsLower10->Write(); - delete zMassOneDauNofStripsHitsLower10; - - - -// Number of Strips Hits for inner track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauTrkNofStripHits = getTH1Histo(Events, "dauTrkNofStripHits", "zGoldenDau1TrkNofStripHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2TrkNofStripHits = getTH1Histo(Events, "dau2TrkNofStripHits", "zGoldenDau2TrkNofStripHits", 100, 0, 100, cut_zGolden ) ; - dauTrkNofStripHits->Add(dau2TrkNofStripHits); - dauTrkNofStripHits->Write(); - delete dauTrkNofStripHits; - delete dau2TrkNofStripHits; - - - dir->cd(); - TH1F * zMassBothDauTrkNofStripsHitsLower10 = getTH1Histo(Events, "zMassBothDauTrkNofStripsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1TrkNofStripHits<10 && zGoldenDau2TrkNofStripHits<10" ); - zMassBothDauTrkNofStripsHitsLower10->Write(); - delete zMassBothDauTrkNofStripsHitsLower10; - - dir->cd(); - TH1F * zMassOneDauTrkNofStripsHitsLower10 = getTH1Histo(Events, "zMassOneDauTrkNofStripsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1TrkNofStripHits<10 || zGoldenDau2TrkNofStripHits<10" ); - zMassOneDauTrkNofStripsHitsLower10->Write(); - delete zMassOneDauTrkNofStripsHitsLower10; - - - - - // Number of Pixel Hits for global track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauNofPixelHits = getTH1Histo(Events, "dauNofPixelHits", "zGoldenDau1NofPixelHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2NofPixelHits = getTH1Histo(Events, "dau2NofPixelHits", "zGoldenDau2NofPixelHits", 100, 0, 100, cut_zGolden ) ; - dauNofPixelHits->Add(dau2NofPixelHits); - dauNofPixelHits->Write(); - delete dauNofPixelHits; - delete dau2NofPixelHits; - - - dir->cd(); - TH1F * zMassBothDauNofPixelsHitsLower10 = getTH1Histo(Events, "zMassBothDauNofPixelsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofPixelHits<10 && zGoldenDau2NofPixelHits<10" ); - zMassBothDauNofPixelsHitsLower10->Write(); - delete zMassBothDauNofPixelsHitsLower10; - - dir->cd(); - TH1F * zMassOneDauNofPixelsHitsLower10 = getTH1Histo(Events, "zMassOneDauNofPixelsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofPixelHits<10 || zGoldenDau2NofPixelHits<10" ); - zMassOneDauNofPixelsHitsLower10->Write(); - delete zMassOneDauNofPixelsHitsLower10; - - - - - // Number of Pixel Hits for inner track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauTrkNofPixelHits = getTH1Histo(Events, "dauTrkNofPixelHits", "zGoldenDau1TrkNofPixelHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2TrkNofPixelHits = getTH1Histo(Events, "dau2TrkNofPixelHits", "zGoldenDau2TrkNofPixelHits", 100, 0, 100, cut_zGolden ) ; - dauTrkNofPixelHits->Add(dau2TrkNofPixelHits); - dauTrkNofPixelHits->Write(); - delete dauTrkNofPixelHits; - delete dau2TrkNofPixelHits; - - - dir->cd(); - TH1F * zMassBothDauTrkNofPixelsHitsLower1 = getTH1Histo(Events, "zMassBothDauTrkNofPixelsHitsLower1","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1TrkNofPixelHits<1 && zGoldenDau2TrkNofPixelHits<1" ); - zMassBothDauTrkNofPixelsHitsLower1->Write(); - delete zMassBothDauTrkNofPixelsHitsLower1; - - dir->cd(); - TH1F * zMassOneDauTrkNofPixelsHitsLower1 = getTH1Histo(Events, "zMassOneDauTrkNofPixelsHitsLower1","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1TrkNofPixelHits<1 || zGoldenDau2TrkNofPixelHits<1" ); - zMassOneDauTrkNofPixelsHitsLower1->Write(); - delete zMassOneDauTrkNofPixelsHitsLower1; - - - - - - - - // Number of Muon Hits for global track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauNofMuonHits = getTH1Histo(Events, "dauNofMuonHits", "zGoldenDau1NofMuonHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2NofMuonHits = getTH1Histo(Events, "dau2NofMuonHits", "zGoldenDau2NofMuonHits", 100, 0, 100, cut_zGolden ) ; - dauNofMuonHits->Add(dau2NofMuonHits); - dauNofMuonHits->Write(); - delete dauNofMuonHits; - delete dau2NofMuonHits; - - - dir->cd(); - TH1F * zMassBothDauNofMuonsHitsLower1 = getTH1Histo(Events, "zMassBothDauNofMuonsHitsLower1","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofMuonHits<1 && zGoldenDau2NofMuonHits<1" ); - zMassBothDauNofMuonsHitsLower1->Write(); - delete zMassBothDauNofMuonsHitsLower1; - - dir->cd(); - TH1F * zMassOneDauNofMuonsHitsLower1 = getTH1Histo(Events, "zMassOneDauNofMuonsHitsLowe10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofMuonHits<1 || zGoldenDau2NofMuonHits<1" ); - zMassOneDauNofMuonsHitsLower1->Write(); - delete zMassOneDauNofMuonsHitsLower1; - - - - // Number of Muon Hits for outer track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauSaNofMuonHits = getTH1Histo(Events, "dauSaNofMuonHits", "zGoldenDau1SaNofMuonHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2SaNofMuonHits = getTH1Histo(Events, "dau2SaNofMuonHits", "zGoldenDau2SaNofMuonHits", 100, 0, 100, cut_zGolden ) ; - dauSaNofMuonHits->Add(dau2SaNofMuonHits); - dauSaNofMuonHits->Write(); - delete dauSaNofMuonHits; - delete dau2SaNofMuonHits; - - - dir->cd(); - TH1F * zMassBothDauSaNofMuonsHitsLower1 = getTH1Histo(Events, "zMassBothDauSaNofMuonsHitsLower1","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1SaNofMuonHits<1 && zGoldenDau2SaNofMuonHits<1" ); - zMassBothDauSaNofMuonsHitsLower1->Write(); - delete zMassBothDauSaNofMuonsHitsLower1; - - dir->cd(); - TH1F * zMassOneDauSaNofMuonsHitsLower1 = getTH1Histo(Events, "zMassOneDauSaNofMuonsHitsLowe10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1SaNofMuonHits<1 || zGoldenDau2SaNofMuonHits<1" ); - zMassOneDauSaNofMuonsHitsLower1->Write(); - delete zMassOneDauSaNofMuonsHitsLower1; - - - - - - // dxyFromBS - dir->cd(); - - TH1F *dauDxy = getTH1Histo(Events, "dauDxy", "zGoldenDau1dxyFromBS", 200, -1, 1, cut_zGolden ) ; - TH1F *dau2Dxy = getTH1Histo(Events, "dau2Dxy", "zGoldenDau2dxyFromBS", 200, -1, 1, cut_zGolden ) ; - dauDxy->Add(dau2Dxy); - dauDxy->Write(); - delete dauDxy; - delete dau2Dxy; - - - TH1F * zMassBothDaudxyFromBSHigher0_2 = getTH1Histo(Events, "zMassBothDaudxyFromBSHigher0_2", "zGoldenMass", 200, -1, 1, cut_zGolden + "zGoldenDau1dxyFromBS>0.2 && zGoldenDau2dxyFromBS>0.2" ) ; - zMassBothDaudxyFromBSHigher0_2->Write(); - delete zMassBothDaudxyFromBSHigher0_2; - - - - dir->cd(); - TH1F * zMassOneDaudxyFromBSHigher0_2 = getTH1Histo(Events, "zMassOneDaudxyFromBSHigher0_2", "zGoldenMass", 200, -1, 1, cut_zGolden + "zGoldenDau1dxyFromBS>0.2 || zGoldenDau2dxyFromBS>0.2" ) ; - zMassOneDaudxyFromBSHigher0_2->Write(); - delete zMassOneDaudxyFromBSHigher0_2; - - - // isTrackerMuon - dir->cd(); - TH1F * zMassBothDauNoTrackerMuon = getTH1Histo(Events, "zMassBothDauNoTrackerMuon", "zGoldenMass", 200, 0, 200, cut_zGolden + "zGoldenDau1TrackerMuonBit==0 && zGoldenDau2TrackerMuonBit==0"); - zMassBothDauNoTrackerMuon->Write(); - delete zMassBothDauNoTrackerMuon; - - dir->cd(); - TH1F * zMassOneDauNoTrackerMuon = getTH1Histo(Events, "zMassOneDauNoTrackerMuon", "zGoldenMass", 200, 0, 200, cut_zGolden + "zGoldenDau1TrackerMuonBit==0 || zGoldenDau2TrackerMuonBit==0"); - zMassOneDauNoTrackerMuon->Write(); - delete zMassOneDauNoTrackerMuon; - - - - // Eta distribution if MuonHits is zero - - dir->cd(); - TH1F * dauEtaNofMuonHits0 = getTH1Histo(Events, "dauEtaNofMuonHits0", "zGoldenDau1Eta", 200, -5, 5, cut_zGolden + "zGoldenDau1NofMuonHits==0" ); - TH1F * dau2EtaNofMuonHits0 = getTH1Histo(Events, "dau2EtaNofMuonHits0", "zGoldenDau2Eta", 200, -5, 5, cut_zGolden + "zGoldenDau2NofMuonHits==0" ); - dauEtaNofMuonHits0->Add(dau2EtaNofMuonHits0); - dauEtaNofMuonHits0->Write(); - delete dauEtaNofMuonHits0; - delete dau2EtaNofMuonHits0; - - - // Correlation study - - // *** Chi2 vs MuonHits *** - - dir->cd(); - TH2F * Chi2VsMuonHits = new TH2F("Chi2VsMuonHits", "Chi2VsMuonHits", 100, 0, 60, 100, 0, 6); - //TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events->Project("Chi2VsMuonHits", "zGoldenDau1Chi2:zGoldenDau1NofMuonHits", cut_zGolden); - Chi2VsMuonHits->SetDrawOption("Box"); - - Chi2VsMuonHits->Write(); - - delete Chi2VsMuonHits; - - - // *** Chi2 vs StripHits *** - - dir->cd(); - TH2F * Chi2VsStripHits = new TH2F("Chi2VsStripHits", "Chi2VsStripHits", 100, 0, 30, 100, 0, 6); - //TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events->Project("Chi2VsStripHits", "zGoldenDau1Chi2:zGoldenDau1NofStripHits", cut_zGolden); - Chi2VsStripHits->SetDrawOption("Box"); - - Chi2VsStripHits->Write(); - - delete Chi2VsStripHits; - - // *** MuonHits vs Eta *** - - dir->cd(); - TH2F * MuonHitsVsEta = new TH2F("MuonHitsVsEta", "MuonHitsVsEta", 100, -2.5, 2.5, 100, 0, 60); - //TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events->Project("MuonHitsVsEta", "zGoldenDau1NofMuonHits:zGoldenDau1Eta", cut_zGolden); - MuonHitsVsEta->SetDrawOption("Box"); - - MuonHitsVsEta->Write(); - - delete MuonHitsVsEta; - - - output_file->cd("/"); - - - - - // output_file->Close(); - -} - - -void qualityStudiesZMuSta(TFile * output_file, TChain *Events){ - - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - - // zzMuSta plots - TCut cut_zMuSta("zMuStaMass>60 && zMuStaMass<120 && zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1TrkIso< 3.0 && zMuStaDau2TrkIso < 3.0 && zMuStaDau1Eta<2.1 && zMuStaDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneStandAloneMuonPlots"); - dir->cd(); - - TH1F * zMass = getTH1Histo(Events, "zMass", "zMuStaMass", 200, 0, 200, cut_zMuSta) ; - zMass->Write(); - delete zMass; - - //Quality checks - // Chi2 - - // quality variables - // caveat: I'm requiring isolations - TH1F * dauChi2 = getTH1Histo(Events, "dauChi2", "zMuStaDau1Chi2", 1000, 0, 100, cut_zMuSta) ; - TH1F * dau2Chi2 = getTH1Histo(Events, "dau2Chi2", "zMuStaDau2Chi2", 1000, 0, 100, cut_zMuSta) ; - dauChi2->Add(dau2Chi2); - dauChi2->Write(); - delete dauChi2; - delete dau2Chi2; - - - dir->cd(); - TH1F * zMassOneDauChi2Higher10 = getTH1Histo(Events, "zMassOneDauChi2Higher10", "zMuStaMass", 200, 0, 200, cut_zMuSta +"zMuStaDau1Chi2>10 || zMuStaDau2Chi2>10") ; - zMassOneDauChi2Higher10->Write(); - delete zMassOneDauChi2Higher10; - - dir->cd(); - TH1F * zMassBothDauChi2Higher10 = getTH1Histo(Events, "zMassBothDauChi2Higher10", "zMuStaMass", 200, 0, 200, cut_zMuSta +"zMuStaDau1Chi2>10 && zMuStaDau2Chi2>10") ; - zMassBothDauChi2Higher10->Write(); - delete zMassBothDauChi2Higher10; - - dir->cd(); - TH1F *dauChi2NofMuonHits0 = getTH1Histo(Events, "dauChi2NofMuonHits0", "zMuStaDau1Chi2", 1000, 0, 100, cut_zMuSta + "zMuStaDau1NofMuonHits==0") ; - TH1F *dau2Chi2NofMuonHits0 = getTH1Histo(Events, "dau2Chi2NofMuonHits0", "zMuStaDau2Chi2", 1000, 0, 100, cut_zMuSta + "zMuStaDau2NofMuonHits==0") ; - dauChi2NofMuonHits0->Add(dau2Chi2NofMuonHits0); - dauChi2NofMuonHits0->Write(); - delete dauChi2NofMuonHits0; - delete dau2Chi2NofMuonHits0; - - - dir->cd(); - - TH1F *dauSaChi2NofSaMuonHits0 = getTH1Histo(Events, "dauSaChi2NofSaMuonHits0", "zMuStaDau1SaChi2", 1000, 0, 100, cut_zMuSta + "zMuStaDau1SaNofMuonHits==0") ; - TH1F *dau2SaChi2NofSaMuonHits0 = getTH1Histo(Events, "dau2SaChi2NofSaMuonHits0", "zMuStaDau2SaChi2", 1000, 0, 100, cut_zMuSta + "zMuStaDau2SaNofMuonHits==0") ; - dauSaChi2NofSaMuonHits0->Add(dau2SaChi2NofSaMuonHits0); - dauSaChi2NofSaMuonHits0->Write(); - delete dauSaChi2NofSaMuonHits0; - delete dau2SaChi2NofSaMuonHits0; - - - - TH1F *dauChi2NofStripHits0 = getTH1Histo(Events, "dauChi2NofStripHits0", "zMuStaDau1Chi2", 1000, 0, 100, cut_zMuSta + "zMuStaDau1NofStripHits<10") ; - TH1F *dau2Chi2NofStripHits0 = getTH1Histo(Events, "dau2Chi2NofStripHits0", "zMuStaDau2Chi2", 1000, 0, 100, cut_zMuSta + "zMuStaDau2NofStripHits<10") ; - dauChi2NofStripHits0->Add(dau2Chi2NofStripHits0); - dauChi2NofStripHits0->Write(); - //cout<<"Number of zCandidate with at least one daughter with Chi2 higher: "<GetEntries()<cd(); - // caveat: I'm requiring isolations - - TH1F *dauGlbNofStripHits = getTH1Histo(Events, "dauGlbNofStripHits", "zMuStaDau1NofStripHits", 100, 0, 100, cut_zMuSta && "zMuStaDau1GlobalMuonBit==1" ) ; - TH1F *dau2NofStripHits = getTH1Histo(Events, "dau2NofStripHits", "zMuStaDau2NofStripHits", 100, 0, 100, cut_zMuSta && "zMuStaDau2GlobalMuonBit==1") ; - dauGlbNofStripHits->Add(dau2NofStripHits); - dauGlbNofStripHits->Write(); - delete dauGlbNofStripHits; - delete dau2NofStripHits; - - - - - - - - // Number of Muon Hits for global - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauGlbNofMuonHits = getTH1Histo(Events, "dauGlbNofMuonHits", "zMuStaDau1NofMuonHits", 100, 0, 100, cut_zMuSta && "zMuStaDau1GlobalMuonBit==1") ; - TH1F *dau2NofMuonHits = getTH1Histo(Events, "dau2NofMuonHits", "zMuStaDau2NofMuonHits", 100, 0, 100, cut_zMuSta && "zMuStaDau2GlobalMuonBit==1") ; - dauGlbNofMuonHits->Add(dau2NofMuonHits); - dauGlbNofMuonHits->Write(); - delete dauGlbNofMuonHits; - delete dau2NofMuonHits; - - - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauStaNofMuonHits = getTH1Histo(Events, "dauStaNofMuonHits", "zMuStaDau1SaNofMuonHits", 100, 0, 100, cut_zMuSta && "zMuStaDau1StandAloneBit==1" && "zMuStaDau1GlobalMuonBit==0") ; - TH1F *dau2NofMuonHits = getTH1Histo(Events, "dau2NofMuonHits", "zMuStaDau2SaNofMuonHits", 100, 0, 100, cut_zMuSta && "zMuStaDau2StandAloneBit==1" && "zMuStaDau2GlobalMuonBit==0" ) ; - dauStaNofMuonHits->Add(dau2NofMuonHits); - dauStaNofMuonHits->Write(); - delete dauStaNofMuonHits; - delete dau2NofMuonHits; - - - - - - - // dxyFromBS - dir->cd(); - - TH1F *dauDxy = getTH1Histo(Events, "dauDxy", "zMuStaDau1dxyFromBS", 200, -1, 1, cut_zMuSta ) ; - TH1F *dau2Dxy = getTH1Histo(Events, "dau2Dxy", "zMuStaDau2dxyFromBS", 200, -1, 1, cut_zMuSta ) ; - dauDxy->Add(dau2Dxy); - dauDxy->Write(); - delete dauDxy; - delete dau2Dxy; - - - TH1F * zMassBothDaudxyFromBSHigher0_2 = getTH1Histo(Events, "zMassBothDaudxyFromBSHigher0_2", "zMuStaMass", 200, -1, 1, cut_zMuSta + "zMuStaDau1dxyFromBS>0.2 && zMuStaDau2dxyFromBS>0.2" ) ; - zMassBothDaudxyFromBSHigher0_2->Write(); - delete zMassBothDaudxyFromBSHigher0_2; - - - - dir->cd(); - TH1F * zMassOneDaudxyFromBSHigher0_2 = getTH1Histo(Events, "zMassOneDaudxyFromBSHigher0_2", "zMuStaMass", 200, -1, 1, cut_zMuSta + "zMuStaDau1dxyFromBS>0.2 || zMuStaDau2dxyFromBS>0.2" ) ; - zMassOneDaudxyFromBSHigher0_2->Write(); - delete zMassOneDaudxyFromBSHigher0_2; - - - - // Eta distribution if MuonHits is zero - - dir->cd(); - TH1F * dauEtaNofMuonHits0 = getTH1Histo(Events, "dauEtaNofMuonHits0", "zMuStaDau1Eta", 200, -5, 5, cut_zMuSta + "zMuStaDau1NofMuonHits==0" ); - TH1F * dau2EtaNofMuonHits0 = getTH1Histo(Events, "dau2EtaNofMuonHits0", "zMuStaDau2Eta", 200, -5, 5, cut_zMuSta + "zMuStaDau2NofMuonHits==0" ); - dauEtaNofMuonHits0->Add(dau2EtaNofMuonHits0); - dauEtaNofMuonHits0->Write(); - delete dauEtaNofMuonHits0; - delete dau2EtaNofMuonHits0; - - - // Correlation study - - // *** Chi2 vs MuonHits *** - - dir->cd(); - TH2F * Chi2VsMuonHits = new TH2F("Chi2VsMuonHits", "Chi2VsMuonHits", 100, 0, 60, 100, 0, 6); - //TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events->Project("Chi2VsMuonHits", "zMuStaDau1Chi2:zMuStaDau1NofMuonHits", cut_zMuSta); - Chi2VsMuonHits->SetDrawOption("Box"); - - Chi2VsMuonHits->Write(); - - delete Chi2VsMuonHits; - - - // *** Chi2 vs StripHits *** - - dir->cd(); - TH2F * Chi2VsStripHits = new TH2F("Chi2VsStripHits", "Chi2VsStripHits", 100, 0, 30, 100, 0, 6); - //TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events->Project("Chi2VsStripHits", "zMuStaDau1Chi2:zMuStaDau1NofStripHits", cut_zMuSta); - Chi2VsStripHits->SetDrawOption("Box"); - - Chi2VsStripHits->Write(); - - delete Chi2VsStripHits; - - // *** MuonHits vs Eta *** - - dir->cd(); - TH2F * MuonHitsVsEta = new TH2F("MuonHitsVsEta", "MuonHitsVsEta", 100, -2.5, 2.5, 100, 0, 60); - //TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events->Project("MuonHitsVsEta", "zMuStaDau1NofMuonHits:zMuStaDau1Eta", cut_zMuSta); - MuonHitsVsEta->SetDrawOption("Box"); - - MuonHitsVsEta->Write(); - - delete MuonHitsVsEta; - - - output_file->cd("/"); - - - - - // output_file->Close(); - -} - - - - -void qualityStudiesZGoldenNotIso(TFile * output_file, TChain *Events){ - - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - - // zGolden plots - TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1TrkIso> 3.0 || zGoldenDau2TrkIso > 3.0 ) && zGoldenDau1Eta<2.1 && zGoldenDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("nonIsolatedZToMuMuPlots"); - dir->cd(); - - TH1F * zMass = getTH1Histo(Events, "zMass", "zGoldenMass", 200, 0, 200, cut_zGolden) ; - zMass->Write(); - delete zMass; - - //Quality checks - // Chi2 - - // quality variables - // caveat: I'm requiring isolations - TH1F * dauChi2 = getTH1Histo(Events, "dauChi2", "zGoldenDau1Chi2", 1000, 0, 100, cut_zGolden) ; - TH1F * dau2Chi2 = getTH1Histo(Events, "dau2Chi2", "zGoldenDau2Chi2", 1000, 0, 100, cut_zGolden) ; - dauChi2->Add(dau2Chi2); - dauChi2->Write(); - delete dauChi2; - delete dau2Chi2; - - - dir->cd(); - TH1F * zMassOneDauChi2Higher10 = getTH1Histo(Events, "zMassOneDauChi2Higher10", "zGoldenMass", 200, 0, 200, cut_zGolden +"zGoldenDau1Chi2>10 || zGoldenDau2Chi2>10") ; - zMassOneDauChi2Higher10->Write(); - delete zMassOneDauChi2Higher10; - - dir->cd(); - TH1F * zMassBothDauChi2Higher10 = getTH1Histo(Events, "zMassBothDauChi2Higher10", "zGoldenMass", 200, 0, 200, cut_zGolden +"zGoldenDau1Chi2>10 && zGoldenDau2Chi2>10") ; - zMassBothDauChi2Higher10->Write(); - delete zMassBothDauChi2Higher10; - - dir->cd(); - TH1F *dauChi2NofMuonHits0 = getTH1Histo(Events, "dauChi2NofMuonHits0", "zGoldenDau1Chi2", 1000, 0, 100, cut_zGolden + "zGoldenDau1NofMuonHits==0") ; - TH1F *dau2Chi2NofMuonHits0 = getTH1Histo(Events, "dau2Chi2NofMuonHits0", "zGoldenDau2Chi2", 1000, 0, 100, cut_zGolden + "zGoldenDau2NofMuonHits==0") ; - dauChi2NofMuonHits0->Add(dau2Chi2NofMuonHits0); - dauChi2NofMuonHits0->Write(); - delete dauChi2NofMuonHits0; - delete dau2Chi2NofMuonHits0; - - - dir->cd(); - - TH1F *dauSaChi2NofSaMuonHits0 = getTH1Histo(Events, "dauSaChi2NofSaMuonHits0", "zGoldenDau1SaChi2", 1000, 0, 100, cut_zGolden + "zGoldenDau1SaNofMuonHits==0") ; - TH1F *dau2SaChi2NofSaMuonHits0 = getTH1Histo(Events, "dau2SaChi2NofSaMuonHits0", "zGoldenDau2SaChi2", 1000, 0, 100, cut_zGolden + "zGoldenDau2SaNofMuonHits==0") ; - dauSaChi2NofSaMuonHits0->Add(dau2SaChi2NofSaMuonHits0); - dauSaChi2NofSaMuonHits0->Write(); - delete dauSaChi2NofSaMuonHits0; - delete dau2SaChi2NofSaMuonHits0; - - - - TH1F *dauChi2NofStripHits0 = getTH1Histo(Events, "dauChi2NofStripHits0", "zGoldenDau1Chi2", 1000, 0, 100, cut_zGolden + "zGoldenDau1NofStripHits<10") ; - TH1F *dau2Chi2NofStripHits0 = getTH1Histo(Events, "dau2Chi2NofStripHits0", "zGoldenDau2Chi2", 1000, 0, 100, cut_zGolden + "zGoldenDau2NofStripHits<10") ; - dauChi2NofStripHits0->Add(dau2Chi2NofStripHits0); - dauChi2NofStripHits0->Write(); - //cout<<"Number of zCandidate with at least one daughter with Chi2 higher: "<GetEntries()<cd(); - // caveat: I'm requiring isolations - - TH1F *dauNofStripHits = getTH1Histo(Events, "dauNofStripHits", "zGoldenDau1NofStripHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2NofStripHits = getTH1Histo(Events, "dau2NofStripHits", "zGoldenDau2NofStripHits", 100, 0, 100, cut_zGolden ) ; - dauNofStripHits->Add(dau2NofStripHits); - dauNofStripHits->Write(); - delete dauNofStripHits; - delete dau2NofStripHits; - - - dir->cd(); - TH1F * zMassBothDauNofStripsHitsLower10 = getTH1Histo(Events, "zMassBothDauNofStripsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofStripHits<10 && zGoldenDau2NofStripHits<10" ); - zMassBothDauNofStripsHitsLower10->Write(); - delete zMassBothDauNofStripsHitsLower10; - - dir->cd(); - TH1F * zMassOneDauNofStripsHitsLower10 = getTH1Histo(Events, "zMassOneDauNofStripsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofStripHits<10 || zGoldenDau2NofStripHits<10" ); - zMassOneDauNofStripsHitsLower10->Write(); - delete zMassOneDauNofStripsHitsLower10; - - - -// Number of Strips Hits for inner track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauTrkNofStripHits = getTH1Histo(Events, "dauTrkNofStripHits", "zGoldenDau1TrkNofStripHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2TrkNofStripHits = getTH1Histo(Events, "dau2TrkNofStripHits", "zGoldenDau2TrkNofStripHits", 100, 0, 100, cut_zGolden ) ; - dauTrkNofStripHits->Add(dau2TrkNofStripHits); - dauTrkNofStripHits->Write(); - delete dauTrkNofStripHits; - delete dau2TrkNofStripHits; - - - dir->cd(); - TH1F * zMassBothDauTrkNofStripsHitsLower10 = getTH1Histo(Events, "zMassBothDauTrkNofStripsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1TrkNofStripHits<10 && zGoldenDau2TrkNofStripHits<10" ); - zMassBothDauTrkNofStripsHitsLower10->Write(); - delete zMassBothDauTrkNofStripsHitsLower10; - - dir->cd(); - TH1F * zMassOneDauTrkNofStripsHitsLower10 = getTH1Histo(Events, "zMassOneDauTrkNofStripsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1TrkNofStripHits<10 || zGoldenDau2TrkNofStripHits<10" ); - zMassOneDauTrkNofStripsHitsLower10->Write(); - delete zMassOneDauTrkNofStripsHitsLower10; - - - - - // Number of Pixel Hits for global track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauNofPixelHits = getTH1Histo(Events, "dauNofPixelHits", "zGoldenDau1NofPixelHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2NofPixelHits = getTH1Histo(Events, "dau2NofPixelHits", "zGoldenDau2NofPixelHits", 100, 0, 100, cut_zGolden ) ; - dauNofPixelHits->Add(dau2NofPixelHits); - dauNofPixelHits->Write(); - delete dauNofPixelHits; - delete dau2NofPixelHits; - - - dir->cd(); - TH1F * zMassBothDauNofPixelsHitsLower10 = getTH1Histo(Events, "zMassBothDauNofPixelsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofPixelHits<10 && zGoldenDau2NofPixelHits<10" ); - zMassBothDauNofPixelsHitsLower10->Write(); - delete zMassBothDauNofPixelsHitsLower10; - - dir->cd(); - TH1F * zMassOneDauNofPixelsHitsLower10 = getTH1Histo(Events, "zMassOneDauNofPixelsHitsLower10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofPixelHits<10 || zGoldenDau2NofPixelHits<10" ); - zMassOneDauNofPixelsHitsLower10->Write(); - delete zMassOneDauNofPixelsHitsLower10; - - - - - // Number of Pixel Hits for inner track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauTrkNofPixelHits = getTH1Histo(Events, "dauTrkNofPixelHits", "zGoldenDau1TrkNofPixelHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2TrkNofPixelHits = getTH1Histo(Events, "dau2TrkNofPixelHits", "zGoldenDau2TrkNofPixelHits", 100, 0, 100, cut_zGolden ) ; - dauTrkNofPixelHits->Add(dau2TrkNofPixelHits); - dauTrkNofPixelHits->Write(); - delete dauTrkNofPixelHits; - delete dau2TrkNofPixelHits; - - - dir->cd(); - TH1F * zMassBothDauTrkNofPixelsHitsLower1 = getTH1Histo(Events, "zMassBothDauTrkNofPixelsHitsLower1","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1TrkNofPixelHits<1 && zGoldenDau2TrkNofPixelHits<1" ); - zMassBothDauTrkNofPixelsHitsLower1->Write(); - delete zMassBothDauTrkNofPixelsHitsLower1; - - dir->cd(); - TH1F * zMassOneDauTrkNofPixelsHitsLower1 = getTH1Histo(Events, "zMassOneDauTrkNofPixelsHitsLower1","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1TrkNofPixelHits<1 || zGoldenDau2TrkNofPixelHits<1" ); - zMassOneDauTrkNofPixelsHitsLower1->Write(); - delete zMassOneDauTrkNofPixelsHitsLower1; - - - - - - - - // Number of Muon Hits for global track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauNofMuonHits = getTH1Histo(Events, "dauNofMuonHits", "zGoldenDau1NofMuonHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2NofMuonHits = getTH1Histo(Events, "dau2NofMuonHits", "zGoldenDau2NofMuonHits", 100, 0, 100, cut_zGolden ) ; - dauNofMuonHits->Add(dau2NofMuonHits); - dauNofMuonHits->Write(); - delete dauNofMuonHits; - delete dau2NofMuonHits; - - - dir->cd(); - TH1F * zMassBothDauNofMuonsHitsLower1 = getTH1Histo(Events, "zMassBothDauNofMuonsHitsLower1","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofMuonHits<1 && zGoldenDau2NofMuonHits<1" ); - zMassBothDauNofMuonsHitsLower1->Write(); - delete zMassBothDauNofMuonsHitsLower1; - - dir->cd(); - TH1F * zMassOneDauNofMuonsHitsLower1 = getTH1Histo(Events, "zMassOneDauNofMuonsHitsLowe10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1NofMuonHits<1 || zGoldenDau2NofMuonHits<1" ); - zMassOneDauNofMuonsHitsLower1->Write(); - delete zMassOneDauNofMuonsHitsLower1; - - - - // Number of Muon Hits for outer track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dauSaNofMuonHits = getTH1Histo(Events, "dauSaNofMuonHits", "zGoldenDau1SaNofMuonHits", 100, 0, 100, cut_zGolden ) ; - TH1F *dau2SaNofMuonHits = getTH1Histo(Events, "dau2SaNofMuonHits", "zGoldenDau2SaNofMuonHits", 100, 0, 100, cut_zGolden ) ; - dauSaNofMuonHits->Add(dau2SaNofMuonHits); - dauSaNofMuonHits->Write(); - delete dauSaNofMuonHits; - delete dau2SaNofMuonHits; - - - dir->cd(); - TH1F * zMassBothDauSaNofMuonsHitsLower1 = getTH1Histo(Events, "zMassBothDauSaNofMuonsHitsLower1","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1SaNofMuonHits<1 && zGoldenDau2SaNofMuonHits<1" ); - zMassBothDauSaNofMuonsHitsLower1->Write(); - delete zMassBothDauSaNofMuonsHitsLower1; - - dir->cd(); - TH1F * zMassOneDauSaNofMuonsHitsLower1 = getTH1Histo(Events, "zMassOneDauSaNofMuonsHitsLowe10","zGoldenMass", 200, 0, 200,cut_zGolden +"zGoldenDau1SaNofMuonHits<1 || zGoldenDau2SaNofMuonHits<1" ); - zMassOneDauSaNofMuonsHitsLower1->Write(); - delete zMassOneDauSaNofMuonsHitsLower1; - - - - - - // dxyFromBS - dir->cd(); - - TH1F *dauDxy = getTH1Histo(Events, "dauDxy", "zGoldenDau1dxyFromBS", 200, -1, 1, cut_zGolden ) ; - TH1F *dau2Dxy = getTH1Histo(Events, "dau2Dxy", "zGoldenDau2dxyFromBS", 200, -1, 1, cut_zGolden ) ; - dauDxy->Add(dau2Dxy); - dauDxy->Write(); - delete dauDxy; - delete dau2Dxy; - - - TH1F * zMassBothDaudxyFromBSHigher0_2 = getTH1Histo(Events, "zMassBothDaudxyFromBSHigher0_2", "zGoldenMass", 200, -1, 1, cut_zGolden + "zGoldenDau1dxyFromBS>0.2 && zGoldenDau2dxyFromBS>0.2" ) ; - zMassBothDaudxyFromBSHigher0_2->Write(); - delete zMassBothDaudxyFromBSHigher0_2; - - - - dir->cd(); - TH1F * zMassOneDaudxyFromBSHigher0_2 = getTH1Histo(Events, "zMassOneDaudxyFromBSHigher0_2", "zGoldenMass", 200, -1, 1, cut_zGolden + "zGoldenDau1dxyFromBS>0.2 || zGoldenDau2dxyFromBS>0.2" ) ; - zMassOneDaudxyFromBSHigher0_2->Write(); - delete zMassOneDaudxyFromBSHigher0_2; - - - // isTrackerMuon - dir->cd(); - TH1F * zMassBothDauNoTrackerMuon = getTH1Histo(Events, "zMassBothDauNoTrackerMuon", "zGoldenMass", 200, 0, 200, cut_zGolden + "zGoldenDau1TrackerMuonBit==0 && zGoldenDau2TrackerMuonBit==0"); - zMassBothDauNoTrackerMuon->Write(); - delete zMassBothDauNoTrackerMuon; - - dir->cd(); - TH1F * zMassOneDauNoTrackerMuon = getTH1Histo(Events, "zMassOneDauNoTrackerMuon", "zGoldenMass", 200, 0, 200, cut_zGolden + "zGoldenDau1TrackerMuonBit==0 || zGoldenDau2TrackerMuonBit==0"); - zMassOneDauNoTrackerMuon->Write(); - delete zMassOneDauNoTrackerMuon; - - - - // Eta distribution if MuonHits is zero - - dir->cd(); - TH1F * dauEtaNofMuonHits0 = getTH1Histo(Events, "dauEtaNofMuonHits0", "zGoldenDau1Eta", 200, -5, 5, cut_zGolden + "zGoldenDau1NofMuonHits==0" ); - TH1F * dau2EtaNofMuonHits0 = getTH1Histo(Events, "dau2EtaNofMuonHits0", "zGoldenDau2Eta", 200, -5, 5, cut_zGolden + "zGoldenDau2NofMuonHits==0" ); - dauEtaNofMuonHits0->Add(dau2EtaNofMuonHits0); - dauEtaNofMuonHits0->Write(); - delete dauEtaNofMuonHits0; - delete dau2EtaNofMuonHits0; - - - // Correlation study - - // *** Chi2 vs MuonHits *** - - dir->cd(); - TH2F * Chi2VsMuonHits = new TH2F("Chi2VsMuonHits", "Chi2VsMuonHits", 100, 0, 60, 100, 0, 6); - //TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events->Project("Chi2VsMuonHits", "zGoldenDau1Chi2:zGoldenDau1NofMuonHits", cut_zGolden); - Chi2VsMuonHits->SetDrawOption("Box"); - - Chi2VsMuonHits->Write(); - - delete Chi2VsMuonHits; - - - // *** Chi2 vs StripHits *** - - dir->cd(); - TH2F * Chi2VsStripHits = new TH2F("Chi2VsStripHits", "Chi2VsStripHits", 100, 0, 30, 100, 0, 6); - //TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events->Project("Chi2VsStripHits", "zGoldenDau1Chi2:zGoldenDau1NofStripHits", cut_zGolden); - Chi2VsStripHits->SetDrawOption("Box"); - - Chi2VsStripHits->Write(); - - delete Chi2VsStripHits; - - // *** MuonHits vs Eta *** - - dir->cd(); - TH2F * MuonHitsVsEta = new TH2F("MuonHitsVsEta", "MuonHitsVsEta", 100, -2.5, 2.5, 100, 0, 60); - //TH2F * hh2= new TH2F("hh2", "hh2", 21, -0.5, 20.5, 21, -0.5, 20.5); - Events->Project("MuonHitsVsEta", "zGoldenDau1NofMuonHits:zGoldenDau1Eta", cut_zGolden); - MuonHitsVsEta->SetDrawOption("Box"); - - MuonHitsVsEta->Write(); - - delete MuonHitsVsEta; - - - output_file->cd("/"); - - - - - // output_file->Close(); - -} - - - - - -void qualityStudiesZGlbTrk(TFile *output_file, TChain * Events){ - - gStyle->SetOptStat(); - gROOT->SetStyle("Plain"); - using namespace std; - - - - - // zMuTrk plots - TCut cut_zMuTrk("zMuTrkMass>60 && zMuTrkMass<120 && zMuTrkDau1Pt> 20 && zMuTrkDau2Pt>20 && zMuTrkDau1TrkIso< 3.0 && zMuTrkDau2TrkIso < 3.0 && zMuTrkDau1Eta<2.1 && zMuTrkDau2Eta<2.1"); - TDirectory * dir = output_file->mkdir("goodZToMuMuOneTrackPlots"); - dir->cd(); - - - - TH1F * zMass = getTH1Histo(Events, "zMass", "zMuTrkMass", 200, 0, 200, cut_zMuTrk) ; - zMass->Write(); - delete zMass; - - //Quality checks - // Chi2 - - // quality variables - // caveat: I'm requiring isolations - TH1F * dau1Chi2 = getTH1Histo(Events, "dau1Chi2", "zMuTrkDau1Chi2", 1000, 0, 100, cut_zMuTrk) ; - TH1F * dau2Chi2 = getTH1Histo(Events, "dau2Chi2", "zMuTrkDau2Chi2", 1000, 0, 100, cut_zMuTrk) ; - - dau1Chi2->Write(); - dau2Chi2->Write(); - delete dau1Chi2; - delete dau2Chi2; - - - dir->cd(); - TH1F * zMassDau1Chi2Higher10 = getTH1Histo(Events, "zMassDau1Chi2Higher10", "zMuTrkMass", 200, 0, 200, cut_zMuTrk +"zMuTrkDau1Chi2>10") ; - zMassDau1Chi2Higher10->Write(); - delete zMassDau1Chi2Higher10; - - dir->cd(); - TH1F * zMassOneDauChi2Higher10 = getTH1Histo(Events, "zMassOneDauChi2Higher10", "zMuTrkMass", 200, 0, 200, cut_zMuTrk +"zMuTrkDau1Chi2>10 || zMuTrkDau2Chi2>10") ; - zMassOneDauChi2Higher10->Write(); - delete zMassOneDauChi2Higher10; - - dir->cd(); - TH1F * zMassBothDauChi2Higher10 = getTH1Histo(Events, "zMassBothDauChi2Higher10", "zMuTrkMass", 200, 0, 200, cut_zMuTrk +"zMuTrkDau1Chi2>10 && zMuTrkDau2Chi2>10") ; - zMassBothDauChi2Higher10->Write(); - delete zMassBothDauChi2Higher10; - - - dir->cd(); - TH1F *dau1Chi2NofMuonHits0 = getTH1Histo(Events, "dau1Chi2NofMuonHits0", "zMuTrkDau1Chi2", 1000, 0, 100, cut_zMuTrk + "zMuTrkDau1NofMuonHits==0") ; - dau1Chi2NofMuonHits0->Write(); - delete dau1Chi2NofMuonHits0; - - - - dir->cd(); - TH1F *dau1SaChi2NofSaMuonHits0 = getTH1Histo(Events, "dau1SaChi2NofSaMuonHits0", "zMuTrkDau1SaChi2", 1000, 0, 100, cut_zMuTrk + "zMuTrkDau1SaNofMuonHits==0") ; - dau1SaChi2NofSaMuonHits0->Write(); - delete dau1SaChi2NofSaMuonHits0; - - - - TH1F *dau1Chi2NofStripHits0 = getTH1Histo(Events, "dau1Chi2NofStripHits0", "zMuTrkDau1Chi2", 1000, 0, 100, cut_zMuTrk + "zMuTrkDau1TrkNofStripHits<10") ; - dau1Chi2NofStripHits0->Write(); - delete dau1Chi2NofStripHits0; - - - - - - - - -// Number of Strips Hits for inner track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dau1TrkNofStripHits = getTH1Histo(Events, "dau1TrkNofStripHits", "zMuTrkDau1TrkNofStripHits", 100, 0, 100, cut_zMuTrk ) ; - TH1F *dau2TrkNofStripHits = getTH1Histo(Events, "dau2TrkNofStripHits", "zMuTrkDau2TrkNofStripHits", 100, 0, 100, cut_zMuTrk ) ; - dau1TrkNofStripHits->Write(); - dau2TrkNofStripHits->Write(); - delete dau2TrkNofStripHits; - delete dau2TrkNofStripHits; - - -dir->cd(); - TH1F * zMassDau1TrkNofStripsHitsLower10 = getTH1Histo(Events, "zMassDau1TrkNofStripsHitsLower10","zMuTrkMass", 200, 0, 200,cut_zMuTrk +"zMuTrkDau1TrkNofStripHits<10" ); - zMassDau1TrkNofStripsHitsLower10->Write(); - delete zMassDau1TrkNofStripsHitsLower10; - - dir->cd(); - TH1F * zMassBothDauTrkNofStripsHitsLower10 = getTH1Histo(Events, "zMassBothDauTrkNofStripsHitsLower10","zMuTrkMass", 200, 0, 200,cut_zMuTrk +"zMuTrkDau1TrkNofStripHits<10 && zMuTrkDau2TrkNofStripHits<10" ); - zMassBothDauTrkNofStripsHitsLower10->Write(); - delete zMassBothDauTrkNofStripsHitsLower10; - - dir->cd(); - TH1F * zMassOneDauTrkNofStripsHitsLower10 = getTH1Histo(Events, "zMassOneDauTrkNofStripsHitsLower10","zMuTrkMass", 200, 0, 200,cut_zMuTrk +"zMuTrkDau1TrkNofStripHits<10 || zMuTrkDau2TrkNofStripHits<10" ); - zMassOneDauTrkNofStripsHitsLower10->Write(); - delete zMassOneDauTrkNofStripsHitsLower10; - - - - - - - // Number of Pixel Hits for inner track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dau1TrkNofPixelHits = getTH1Histo(Events, "dau1TrkNofPixelHits", "zMuTrkDau1TrkNofPixelHits", 100, 0, 100, cut_zMuTrk ) ; - TH1F *dau2TrkNofPixelHits = getTH1Histo(Events, "dau2TrkNofPixelHits", "zMuTrkDau1TrkNofPixelHits", 100, 0, 100, cut_zMuTrk ) ; - dau1TrkNofPixelHits->Write(); - dau2TrkNofPixelHits->Write(); - delete dau1TrkNofPixelHits; - delete dau2TrkNofPixelHits; - - - - dir->cd(); - TH1F * zMassDau1TrkNofPixelsHitsLower1 = getTH1Histo(Events, "zMassDau1TrkNofPixelsHitsLower1","zMuTrkMass", 200, 0, 200,cut_zMuTrk +"zMuTrkDau1TrkNofPixelHits<1" ); - zMassDau1TrkNofPixelsHitsLower1->Write(); - delete zMassDau1TrkNofPixelsHitsLower1; - - dir->cd(); - TH1F * zMassBothDauTrkNofPixelsHitsLower1 = getTH1Histo(Events, "zMassBothDauTrkNofPixelsHitsLower1","zMuTrkMass", 200, 0, 200,cut_zMuTrk +"zMuTrkDau1TrkNofPixelHits<1 && zMuTrkDau2TrkNofPixelHits<1" ); - zMassBothDauTrkNofPixelsHitsLower1->Write(); - delete zMassBothDauTrkNofPixelsHitsLower1; - - dir->cd(); - TH1F * zMassOneDauTrkNofPixelsHitsLower1 = getTH1Histo(Events, "zMassOneDauTrkNofPixelsHitsLower1","zMuTrkMass", 200, 0, 200,cut_zMuTrk +"zMuTrkDau1TrkNofPixelHits<1 || zMuTrkDau2TrkNofPixelHits<1" ); - zMassOneDauTrkNofPixelsHitsLower1->Write(); - delete zMassOneDauTrkNofPixelsHitsLower1; - - - - - - - // Number of Muon Hits for global track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dau1NofMuonHits = getTH1Histo(Events, "dau1NofMuonHits", "zMuTrkDau1NofMuonHits", 100, 0, 100, cut_zMuTrk ) ; - dau1NofMuonHits->Write(); - delete dau1NofMuonHits; - - - dir->cd(); - TH1F * zMassDau1NofMuonsHitsLower1 = getTH1Histo(Events, "zMassDau1NofMuonsHitsLower1","zMuTrkMass", 200, 0, 200,cut_zMuTrk +"zMuTrkDau1NofMuonHits<1 " ); - zMassDau1NofMuonsHitsLower1->Write(); - delete zMassDau1NofMuonsHitsLower1; - - - // Number of Muon Hits for outer track - dir->cd(); - // caveat: I'm requiring isolations - - TH1F *dau1SaNofMuonHits = getTH1Histo(Events, "dau1SaNofMuonHits", "zMuTrkDau1SaNofMuonHits", 100, 0, 100, cut_zMuTrk ) ; - dau1SaNofMuonHits->Write(); - delete dau1SaNofMuonHits; - - - - dir->cd(); - TH1F * zMassDau1SaNofMuonsHitsLower1 = getTH1Histo(Events, "zMassDau1SaNofMuonsHitsLower1","zMuTrkMass", 200, 0, 200,cut_zMuTrk +"zMuTrkDau1SaNofMuonHits<1 " ); - zMassDau1SaNofMuonsHitsLower1->Write(); - delete zMassDau1SaNofMuonsHitsLower1; - - - - // dxyFromBS - dir->cd(); - - TH1F *dauDxy = getTH1Histo(Events, "dauDxy", "zMuTrkDau1dxyFromBS", 200, -1, 1, cut_zMuTrk ) ; - TH1F *dau2Dxy = getTH1Histo(Events, "dau2Dxy", "zMuTrkDau2dxyFromBS", 200, -1, 1, cut_zMuTrk ) ; - dauDxy->Add(dau2Dxy); - dauDxy->Write(); - delete dauDxy; - delete dau2Dxy; - - - TH1F * zMassBothDaudxyFromBSHigher0_2 = getTH1Histo(Events, "zMassBothDaudxyFromBSHigher0_2", "zMuTrkMass", 200, -1, 1, cut_zMuTrk + "zMuTrkDau1dxyFromBS>0.2 && zMuTrkDau2dxyFromBS>0.2" ) ; - zMassBothDaudxyFromBSHigher0_2->Write(); - delete zMassBothDaudxyFromBSHigher0_2; - - - - dir->cd(); - TH1F * zMassOneDaudxyFromBSHigher0_2 = getTH1Histo(Events, "zMassOneDaudxyFromBSHigher0_2", "zMuTrkMass", 200, -1, 1, cut_zMuTrk + "zMuTrkDau1dxyFromBS>0.2 || zMuTrkDau2dxyFromBS>0.2" ) ; - zMassOneDaudxyFromBSHigher0_2->Write(); - delete zMassOneDaudxyFromBSHigher0_2; - - - // isTrackerMuon - dir->cd(); - - - TH1F * zMassDau1NoTrackerMuon = getTH1Histo(Events, "zMassDau1NoTrackerMuon", "zMuTrkMass", 200, 0, 200, cut_zMuTrk + "zMuTrkDau1TrackerMuonBit==0 "); - zMassDau1NoTrackerMuon->Write(); - delete zMassDau1NoTrackerMuon; - - - - // Eta distribution if MuonHits is zero - - dir->cd(); - TH1F * dau1EtaNofMuonHits0 = getTH1Histo(Events, "dau1EtaNofMuonHits0", "zMuTrkDau1Eta", 200, -5, 5, cut_zMuTrk + "zMuTrkDau1NofMuonHits==0" ); - dau1EtaNofMuonHits0->Write(); - delete dau1EtaNofMuonHits0; - - - - -} - - - - - - - - -void qualityStudies(){ - -TChain * Events= new TChain("Events"); - - int nFiles = 220; - - for(int j=1;jAdd(name.c_str()); - } - -TFile * output_file = TFile::Open("histo_qcd.root", "RECREATE"); -qualityStudiesZGolden(output_file, Events); - qualityStudiesZGoldenNotIso(output_file, Events); - qualityStudiesZGlbTrk(output_file, Events); - qualityStudiesZMuSta(output_file, Events); - output_file->Close(); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/runToyMC.csh b/ElectroWeakAnalysis/ZMuMu/test/macros/runToyMC.csh deleted file mode 100755 index 16f9c3f75878c..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/runToyMC.csh +++ /dev/null @@ -1,47 +0,0 @@ -######################### -# # -# author: Pasquale Noli # -# INFN Naples # -# script to run ToyMC # -# # -######################### - -#!/bin/csh -if(-e outputToy) rm -rf outputToy -mkdir outputToy -set i=1 -set iterations = $1 -set nz = $2 -set eff_trk = $3 -set eff_sa = $4 -set eff_iso = $5 -set eff_hlt = $6 -set bkg_scale = $7 -set max_mass = $8 -rm -f fitResult.txt -echo "# Yield eff_trk eff_sa eff_iso eff_hlt" > fitResult.txt -echo "$nz $eff_trk $eff_sa $eff_iso $eff_hlt" >> fitResult.txt -while ($i <= $iterations) - echo $i - toyMonteCarlo -p Analysis_10pb.root -n 1 -s $i -y $nz -T $eff_trk -S $eff_sa -I $eff_iso -H $eff_hlt -f $bkg_scale -M $max_mass - # -S 1 -T 1 -H 1 - mergeTFileServiceHistograms -i zmm_1.root bkg_1.root - mv out.root analysis_$i.root - zChi2Fit -c -M 120 analysis_$i.root >& log_fit_$i.txt - #mv zmm_1.root zmm_$i.root - #zFitToyMc zmm_1.root >& log_fit_$i.txt - #mv analysis_$i.root outputToy - #mv zmm_$i.root outputToy - mv analysis_$i.root outputToy - mv *eps outputToy - mv log_fit_$i.txt outputToy - set i=`expr $i + 1` -end - root -l -q create_tree_for_toyMC.C - root -l -q pulls.C - mv fitResult.root outputToy - mv fitResult.txt outputToy - mv pulls.eps outputToy -echo "Pulls are saved into pulls.eps" - -#gv pulls.eps diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/start_toy.csh b/ElectroWeakAnalysis/ZMuMu/test/macros/start_toy.csh deleted file mode 100644 index 21f87ef3c08e8..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/start_toy.csh +++ /dev/null @@ -1,28 +0,0 @@ -######################### -# # -# author: Pasquale Noli # -# INFN Naples # -# script to run ToyMC # -# # -######################### - -#!/bin/csh -rm fitResalt* -mkdir outputToy -set i=1 -while ($i <= $1) - echo $i - toyMonteCarlo -n 1 -s $i - mergeTFileServiceHistograms -o analysis_$i.root -i zmm_1.root bkg_1.root - zFitToyMc analysis_$i.root >& log_fit_$i.txt - rm -f analysis_$i.root - mv *ps outputToy - mv log_fit_$i.txt outputToy - set i=`expr $i + 1` -end - root -l -q create_tree_for_toyMC.C - root -l -q pulls.C - mv pulls.eps outputToy -echo "Pulls are saved into pulls.eps" - -gv outputToy/pulls.eps diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/testToyMC_crab.sh b/ElectroWeakAnalysis/ZMuMu/test/macros/testToyMC_crab.sh deleted file mode 100755 index cbd7a29a13cd8..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/testToyMC_crab.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -######################### -# # -# author: Pasquale Noli # -# INFN Naples # -# script to run ToyMC # -# # -######################### - -if [ -e outputToy ]; then - rm -rf outputToy -fi -mkdir outputToy - -i="$1" -if [ "$i" = "" ]; then - echo "Error: missing job index" - exit 1; -fi -echo "max events from CRAB: $MaxEvents" -n="$MaxEvents" -if [ "$n" = "" ]; then - n="$2" -fi -if [ "$n" = "" ]; then - echo "Error: missing number of experiments" - exit 2; -fi - -iterations=1000 -nz=5077000 -eff_trk=0.75 -eff_sa=0.75 -eff_iso=0.75 -eff_hlt=0.75 -bkg_scale=100 -max_mass=140 -rm -f fitResult.txt -echo "# Yield eff_trk eff_sa eff_iso eff_hlt" > fitResult.txt -echo "$nz $eff_trk $eff_sa $eff_iso $eff_hlt" >> fitResult.txt -j=`expr \( $i - 1 \) \* $n + 1` -jmax=`expr $j + $n - 1` -echo "job number: #$i with $n experiments ($j to $jmax)" -while [ $j -le $jmax ]; do -echo "running toy MC : ./toyMonteCarlo -n 1 -s $j -y $nz -T $eff_trk -S $eff_sa -I $eff_iso -H $eff_hlt -f $bkg_scale -M $max_mass" - ./toyMonteCarlo -n 1 -s $j -y $nz -T $eff_trk -S $eff_sa -I $eff_iso -H $eff_hlt -f $bkg_scale -M $max_mass - echo "merging histograms: mergeTFileServiceHistograms -o analysis_$j.root -i zmm_1.root bkg_1.root" - mergeTFileServiceHistograms -o analysis_$j.root -i zmm_1.root bkg_1.root - echo "performing fit: zFitToyMc -M 140 analysis_$j.root >& log_fit_$j.txt" - ./zFitToyMc -M 140 analysis_$j.root >& log_fit_$j.txt - mv analysis_$j.root outputToy - mv *eps outputToy - mv log_fit_$j.txt outputToy - j=`expr $j + 1` -done -echo "pack the results" -tar cvfz outputToy.tgz outputToy/ - diff --git a/ElectroWeakAnalysis/ZMuMu/test/macros/toyRooFitAnalyze.C b/ElectroWeakAnalysis/ZMuMu/test/macros/toyRooFitAnalyze.C deleted file mode 100644 index 8a972280f9269..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/macros/toyRooFitAnalyze.C +++ /dev/null @@ -1,99 +0,0 @@ -//how to read the fit result in root after running several toys...., to be run interactively: root toyTooFitAnalyze.C..... -{ -#include "RooFitResult.h" -#include "TCanvas.h" -#include "TH1.h" -#include "TFile.h" -#include "RooAbsReal.h" -//#include - - - -using namespace RooFit; - int Lumi = 45; - double Y_true= 17000; - // 17000 for L= 45, - double emt_true= 0.998257; - double ems_true= 0.989785; - double emmNotIso_true= 0.982977; - double emmHlt_true= 0.916176; - - -TCanvas c1; TH1D h_Yield("h_Yield", "h_Yield", 30, -5, 5); -TH1D h_emt("h_emt", "h_emt", 30, -5, 5); -TH1D h_ems("h_ems", "h_ems", 30, -5, 5); -TH1D h_emmNotIso("h_emmNotIso", "h_emmNotIso", 30, -5, 5); -TH1D h_emmHlt("h_emmHlt", "h_emmHlt", 30, -5, 5); - -TH1D h_chi2("h_chi2", "h_chi2", 30, 0, 5); - -TF1 f1("f1","gaus",-3,3); -f1.SetLineColor(kRed); - -for (int i =1; i <= 1000; i++){ -TFile f(Form("outputToy_%d./out_%d.root",Lumi,i)); - if (f.IsZombie()) cout << "file not exist " << endl; - if (f.IsZombie()) continue; -RooFitResult* r = gDirectory->Get("totChi2;1"); - //r->floatParsFinal().Print("s"); - // without s return a list, can we get the number? - //RooFitResult* r = gDirectory->Get("toy_totChi2;1"); - // chi2 -std::cout << " chi2 " << r->minNll() << "distance from FCN " << r->edm()<< std::endl; - h_chi2.Fill(r->minNll()/55.); - //distamce form chi2..... - //r->edm(); - // yield -r->floatParsFinal()[0]->Print(); -RooRealVar * y = r->floatParsFinal().find("Yield"); -RooRealVar * e_mt = r->floatParsFinal().find("eff_tk"); -RooRealVar * e_ms = r->floatParsFinal().find("eff_sa"); -RooRealVar * e_mmNotIso = r->floatParsFinal().find("eff_iso"); -RooRealVar * e_mmHlt = r->floatParsFinal().find("eff_hlt"); - - // RooAbsReal * z = new RooAbsReal(y); -std::cout << " Yield value for the chi2 number " << i << " = " << y->getVal() << std::endl; -h_Yield.Fill((y->getVal() - Y_true )/ (y->getError()) ); -h_emt.Fill((e_mt->getVal() - emt_true )/ (e_mt->getError()) ); -h_ems.Fill((e_ms->getVal() - ems_true )/ (e_ms->getError()) ); -h_emmNotIso.Fill((e_mmNotIso->getVal() - emmNotIso_true )/ (e_mmNotIso->getError()) ); -h_emmHlt.Fill((e_mmHlt->getVal() - emmHlt_true )/ (e_mmHlt->getError()) ); -//delete f; -} - - - - gStyle->SetOptStat(1110); - gStyle->SetOptFit(1111); - gStyle->SetStatFontSize(0.04); - //gStyle->SetStatFontSize(0.1); -//gStyle->SetFitFormat("5.3g"); - h_Yield.Fit("f1","","", -3, 3); -h_Yield.Draw(); -f1.Draw("same"); - -c1.SaveAs(Form("outputToy_%d./toy_Yield_%d.eps",Lumi,Lumi)); -h_chi2.Draw(); - -//f1.Draw("same"); - -c1.SaveAs(Form("outputToy_%d./toy_chi2_%d.eps",Lumi,Lumi)); -h_emt.Draw(); -h_emt.Fit("f1","","", -3, 3); -f1.Draw("same"); -c1.SaveAs(Form("outputToy_%d./toy_eff_tk_%d.eps", Lumi, Lumi)); -h_ems.Draw(); - h_ems.Fit("f1","","", -3, 3); -f1.Draw("same"); -c1.SaveAs(Form("outputToy_%d./toy_eff_sa_%d.eps",Lumi,Lumi)); -h_emmNotIso.Draw(); -h_emmNotIso.Fit("f1","","", -3, 3); -f1.Draw("same"); -c1.SaveAs(Form("outputToy_%d./toy_eff_iso_%d.eps",Lumi,Lumi)); -h_emmHlt.Draw(); - h_emmHlt.Fit("f1","","", -3, 3); -f1.Draw("same"); -c1.SaveAs(Form("outputToy_%d./toy_eff_hlt_%d.eps",Lumi,Lumi)); - -} - diff --git a/ElectroWeakAnalysis/ZMuMu/test/mcAcceptance.py b/ElectroWeakAnalysis/ZMuMu/test/mcAcceptance.py deleted file mode 100644 index ed1fba1199871..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/mcAcceptance.py +++ /dev/null @@ -1,223 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("MCAcceptance") -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - - -process.load("FWCore.MessageLogger.MessageLogger_cfi") - -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/1CD6D0A6-1E64-DF11-BB60-001D09FD0D10.root', -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/46BC4EF2-B462-DF11-8FE0-0015178C4D14.root', -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/48C1BEAB-1E64-DF11-8874-A4BADB3CF509.root', -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/9E650E9F-1963-DF11-B7CE-0024E8768D1A.root', -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/C28E2383-1D64-DF11-894B-A4BADB3CF8F5.root', -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/D21A4219-1D64-DF11-A4EC-001D09FD0D10.root', -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/F0D65D50-F162-DF11-93BB-A4BADB3CF208.root', -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/F4A6969A-9562-DF11-8192-00E08142962E.root', -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/F8CAC083-6462-DF11-9D7E-001C23C0E208.root', -'file:/scratch2/users/fabozzi/spring10/powheg_zmm_cteq66/FCD6E07C-9562-DF11-9C9A-001EC94BA3D1.root', - - - -) -) -process.evtInfo = cms.OutputModule("AsciiOutputModule") - - - - -process.zToMuMuMC = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("genParticles"), - cut = cms.string('pdgId = 23 & status = 3 & abs(daughter(0).pdgId) = 13') -) - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('MC_36Y_V10::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - -process.goodMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag("muons"), - cut = cms.string('isGlobalMuon = 1 && pt>15.'), - filter = cms.bool(False) -) - -# - - -process.dimuons = cms.EDFilter("CandViewShallowCloneCombiner", - checkCharge = cms.bool(True), - cut = cms.string('mass > 0'), - decay = cms.string('goodMuons@+ goodMuons@-') -) - - - - -process.load("PhysicsTools.HepMCCandAlgos.goodMuonMCMatch_cfi") -process.goodMuonMCMatch.src = 'goodMuons' -process.goodMuonMCMatch.maxDPtRel = cms.double(0.1) -process.goodMuonMCMatch.resolveByMatchQuality = cms.bool(True) -process.goodMuonMCMatch.maxDeltaR = cms.double(0.1) -process.goodMuonMCMatch.checkCharge = cms.bool(True) -process.goodMuonMCMatch.resolveAmbiguities = cms.bool(True) - - - - -process.dimuonsMCMatch = cms.EDFilter("MCTruthCompositeMatcherNew", - src = cms.InputTag("dimuons"), - # - # comment PAT match because works only for layer-0 muons - # - # VInputTag matchMaps = { muonMatch } - matchPDGId = cms.vint32(23,13), - matchMaps = cms.VInputTag(cms.InputTag("goodMuonMCMatch")) -) - - - - -process.mcAcceptanceAA = cms.EDAnalyzer("MCAcceptanceAnalyzer", - zToMuMu = cms.InputTag("dimuons"), - zToMuMuMC = cms.InputTag("zToMuMuMC"), - zToMuMuMatched = cms.InputTag("dimuonsMCMatch"), - massMin = cms.double(60.0), - massMax = cms.double(120.0), - etaDau0Min = cms.double(0.), - etaDau0Max = cms.double(2.1), - etaDau1Min = cms.double(0.), - etaDau1Max = cms.double(2.1), - ptMin = cms.double(20.0), - massMinZMC = cms.double(60.0), - massMaxZMC = cms.double(120.0) -) - -#process.mcAcceptanceBA = cms.EDAnalyzer("MCAcceptanceAnalyzer", -# zToMuMu = cms.InputTag("dimuons"), -# zToMuMuMC = cms.InputTag("zToMuMuMC"), -# zToMuMuMatched = cms.InputTag("dimuonsMCMatch"), -# massMin = cms.double(60.0), -# massMax = cms.double(120.0), -# etaDau0Min = cms.double(2.1), -# etaDau0Max = cms.double(2.4), -# etaDau1Min = cms.double(0.), -# etaDau1Max = cms.double(2.1), -# ptMin = cms.double(20.0), -# massMinZMC = cms.double(60.0), -# massMaxZMC = cms.double(120.0) -#) - - -process.mcAcceptanceBar = cms.EDAnalyzer("MCAcceptanceAnalyzer", - zToMuMu = cms.InputTag("dimuons"), - zToMuMuMC = cms.InputTag("zToMuMuMC"), - zToMuMuMatched = cms.InputTag("dimuonsMCMatch"), - massMin = cms.double(60.0), - massMax = cms.double(120.0), - etaDau0Min = cms.double(0.), - etaDau0Max = cms.double(0.9), - etaDau1Min = cms.double(0.), - etaDau1Max = cms.double(2.4), - ptMin = cms.double(20.0), - massMinZMC = cms.double(60.0), - massMaxZMC = cms.double(120.0) -) - -process.mcAcceptanceBarEnd = cms.EDAnalyzer("MCAcceptanceAnalyzer", - zToMuMu = cms.InputTag("dimuons"), - zToMuMuMC = cms.InputTag("zToMuMuMC"), - zToMuMuMatched = cms.InputTag("dimuonsMCMatch"), - massMin = cms.double(60.0), - massMax = cms.double(120.0), - etaDau0Min = cms.double(0.9), - etaDau0Max = cms.double(1.2), - etaDau1Min = cms.double(0.), - etaDau1Max = cms.double(2.4), - ptMin = cms.double(20.0), - massMinZMC = cms.double(60.0), - massMaxZMC = cms.double(120.0) -) - - - -process.mcAcceptanceEnd = cms.EDAnalyzer("MCAcceptanceAnalyzer", - zToMuMu = cms.InputTag("dimuons"), - zToMuMuMC = cms.InputTag("zToMuMuMC"), - zToMuMuMatched = cms.InputTag("dimuonsMCMatch"), - massMin = cms.double(60.0), - massMax = cms.double(120.0), - etaDau0Min = cms.double(1.2), - etaDau0Max = cms.double(2.1), - etaDau1Min = cms.double(0.), - etaDau1Max = cms.double(2.4), - ptMin = cms.double(20.0), - massMinZMC = cms.double(60.0), - massMaxZMC = cms.double(120.0) -) - - - - - - -process.mcPath = cms.Path( - process.zToMuMuMC + - process.goodMuons + - process.goodMuonMCMatch + - process.dimuons + - process.dimuonsMCMatch+ - process.mcAcceptanceAA - # process.mcAcceptanceBar + - # process.mcAcceptanceBarEnd + - # process.mcAcceptanceEnd - - ) - - - -from Configuration.EventContent.EventContent_cff import * - -process.EventContent = cms.PSet( - outputCommands = cms.untracked.vstring( - 'drop *', - 'keep *_dimuons_*_*', - 'keep *_goodMuons_*_*', - 'keep *_genParticles_*_*', - 'keep *_goodMuonMCMatch_*_*', - 'keep *_dimuonsMCMatch_*_*', - ) -) - -AODSIMDimuonEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -AODSIMDimuonEventContent.outputCommands.extend(AODSIMEventContent.outputCommands) -AODSIMDimuonEventContent.outputCommands.extend(process.EventContent.outputCommands) - -process.dimuonsOutputModule = cms.OutputModule("PoolOutputModule", - AODSIMDimuonEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('acceptance'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('dimuons_forAcceptance_1000.root') -) - - - - -process.end = cms.EndPath(process.dimuonsOutputModule) - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/mcAcceptanceForDistMuons.py b/ElectroWeakAnalysis/ZMuMu/test/mcAcceptanceForDistMuons.py deleted file mode 100644 index 5f940b800d1cd..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/mcAcceptanceForDistMuons.py +++ /dev/null @@ -1,219 +0,0 @@ -from __future__ import print_function -import FWCore.ParameterSet.Config as cms - -process = cms.Process("MCAcceptance") -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - - - - -process.source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(0), - debugFlag = cms.untracked.bool(False), - fileNames = cms.untracked.vstring() -) -import os -dirname = "/data1/home/degruttola/CMSSW_3_3_5/src/ElectroWeakAnalysis/Utilities/test/DistMuonsv2/res/" -dirlist = os.listdir(dirname) -basenamelist = os.listdir(dirname + "/") -for basename in basenamelist: - process.source.fileNames.append("file:" + dirname + "/" + basename) -print("Number of files to process is %s" % (len(process.source.fileNames))) - - - - -## process.source = cms.Source("PoolSource", -## fileNames = cms.untracked.vstring( -## "file:/data1/home/degruttola/CMSSW_3_3_5/src/ElectroWeakAnalysis/Utilities/test/DistMuonsv2/res/selectedEvents_1818.root", -## "file:~/Zmumu7TeVGenSimReco/0ABB0814-C082-DE11-9AB7-003048D4767C.root", -## "file:~/Zmumu7TeVGenSimReco/0ABB0814-C082-DE11-9AB7-003048D4767C.root", -## "file:~/Zmumu7TeVGenSimReco/38980FEC-C182-DE11-A3B5-003048D4767C.root", -## "file:~/Zmumu7TeVGenSimReco/3AF703B9-AE82-DE11-9656-0015172C0925.root", -## "file:~/Zmumu7TeVGenSimReco/46854F8E-BC82-DE11-80AA-003048D47673.root", -## "file:~/Zmumu7TeVGenSimReco/8025F9B0-AC82-DE11-8C28-0015172560C6.root", -## "file:~/Zmumu7TeVGenSimReco/88DDF58E-BC82-DE11-ADD8-003048D47679.root", -## "file:~/Zmumu7TeVGenSimReco/9A115324-BB82-DE11-9C66-001517252130.root", -## "file:~/Zmumu7TeVGenSimReco/FC279CAC-AD82-DE11-BAAA-001517357D36.root" -## ) -## ) - -process.evtInfo = cms.OutputModule("AsciiOutputModule") - - - - - - -process.zToMuMuMC = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("genParticles"), - cut = cms.string('pdgId = 23 & status = 3 & abs(daughter(0).pdgId) = 13') -) - - -process.dimuons = cms.EDFilter("CandViewShallowCloneCombiner", - checkCharge = cms.bool(False), - cut = cms.string('mass > 0'), - decay = cms.string('distortedMuons@+ distortedMuons@-') -) - - - -process.load("PhysicsTools.HepMCCandAlgos.goodMuonMCMatch_cfi") -#goodMuonMCMatch.src = 'selectedLayer1Muons' -process.goodMuonMCMatch.src = 'distortedMuons' - - -process.dimuonsMCMatch = cms.EDFilter("MCTruthCompositeMatcherNew", - src = cms.InputTag("dimuons"), - # - # comment PAT match because works only for layer-0 muons - # - # VInputTag matchMaps = { muonMatch } - matchPDGId = cms.vint32(), - matchMaps = cms.VInputTag(cms.InputTag("goodMuonMCMatch")) -) - - - - -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = cms.string('MC_31X_V3::All') -process.load("Configuration.StandardSequences.MagneticField_cff") - - - -process.load("CondCore.DBCommon.CondDBCommon_cfi") -process.poolDBESSource1 = cms.ESSource("PoolDBESSource", - BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), - DBParameters = cms.PSet( - messageLevel = cms.untracked.int32(2), - authenticationPath = cms.untracked.string('.') - ), - timetype = cms.untracked.string('runnumber'), - connect = cms.string('frontier://FrontierPrep/CMS_COND_PHYSICSTOOLS'), - toGet = cms.VPSet( - cms.PSet( - record = cms.string('MuScleFitDBobjectRcd'), - tag = cms.string('MuScleFit_Scale_OctoberExercise_EWK_InnerTrack'), - label = cms.untracked.string('') - ) - ) -) -process.poolDBESSource2 = cms.ESSource("PoolDBESSource", - BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), - DBParameters = cms.PSet( - messageLevel = cms.untracked.int32(2), - authenticationPath = cms.untracked.string('.') - ), - timetype = cms.untracked.string('runnumber'), - connect = cms.string('frontier://FrontierPrep/CMS_COND_PHYSICSTOOLS'), - toGet = cms.VPSet( - cms.PSet( - record = cms.string('MuScleFitDBobjectRcd'), - tag = cms.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel'), - label = cms.untracked.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel') - ) - ) -) -process.poolDBESSource3 = cms.ESSource("PoolDBESSource", - BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), - DBParameters = cms.PSet( - messageLevel = cms.untracked.int32(2), - authenticationPath = cms.untracked.string('.') - ), - timetype = cms.untracked.string('runnumber'), - connect = cms.string('frontier://FrontierPrep/CMS_COND_PHYSICSTOOLS'), - toGet = cms.VPSet( - cms.PSet( - record = cms.string('MuScleFitDBobjectRcd'), - tag = cms.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel'), - label = cms.untracked.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel') - ) - ) -) - -# Create a new "distorted" Muon collection -process.distortedMuons = cms.EDFilter("DistortedMuonProducerFromDB", - MuonTag = cms.untracked.InputTag("muons"), - - DBScaleLabel = cms.untracked.string(''), - DBDataResolutionLabel = cms.untracked.string('MuScleFit_Resol_OctoberExercise_EWK_InnerTrack_WithLabel'), - DBMCResolutionLabel = cms.untracked.string('MuScleFit_Resol_OctoberExercise_SherpaIdealMC_WithLabel'), -) - - - - - - - -process.mcAcceptance = cms.EDAnalyzer("MCAcceptanceAnalyzer", - zToMuMu = cms.InputTag("dimuons"), - zToMuMuMC = cms.InputTag("zToMuMuMC"), - zToMuMuMatched = cms.InputTag("dimuonsMCMatch"), - massMin = cms.double(60.0), - massMax = cms.double(120.0), - etaMin = cms.double(0.0), - etaMax = cms.double(2.1), - ptMin = cms.double(20.0), -# parameter for denominator - massMinZMC = cms.double(60.0) -) - -process.mcPath = cms.Path( - process.zToMuMuMC* -# process.distortedMuons * - process.goodMuonMCMatch * - process.dimuons * - process.dimuonsMCMatch* - process.mcAcceptance - ) - -from Configuration.EventContent.EventContent_cff import * - -process.EventContent = cms.PSet( - outputCommands = cms.untracked.vstring( - 'drop *', - 'keep *_dimuons_*_*', - 'keep *_muons_*_*', - 'keep *_genParticles_*_*', - 'keep *_muonMatch_*_*', - 'keep *_trackMuMatch_*_*', - 'keep *_allDimuonsMCMatch_*_*', - 'keep *_distortedMuons_*_*' -# 'keep patTriggerObjects_patTrigger_*_*', -# 'keep patTriggerFilters_patTrigger_*_*', -# 'keep patTriggerPaths_patTrigger_*_*', -# 'keep patTriggerEvent_patTriggerEvent_*_*', -# 'keep patTriggerObjectsedmAssociation_patTriggerEvent_*_*' - ) -) - -AODSIMDimuonEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -AODSIMDimuonEventContent.outputCommands.extend(AODSIMEventContent.outputCommands) -AODSIMDimuonEventContent.outputCommands.extend(process.EventContent.outputCommands) - -process.dimuonsOutputModule = cms.OutputModule("PoolOutputModule", - AODSIMDimuonEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('acceptance'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('dimuons_testDistMuon.root') -) - - - - -process.end = cms.EndPath(process.dimuonsOutputModule) - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/merge.py b/ElectroWeakAnalysis/ZMuMu/test/merge.py deleted file mode 100644 index b370d6cee9aac..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/merge.py +++ /dev/null @@ -1,48 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("Merge") - - -process.load("FWCore.MessageLogger.MessageLogger_cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "file:NtupleLooseTestNew_oneshot_all_Test_10_1.root", - "file:NtupleLooseTestNew_oneshot_all_Test_11_1.root", - "file:NtupleLooseTestNew_oneshot_all_Test_12_1.root", - "file:NtupleLooseTestNew_oneshot_all_Test_13_1.root", - "file:NtupleLooseTestNew_oneshot_all_Test_14_1.root", - ) -) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -process.out = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('file:Ntuple_ZmmPowheg_36X.root'), -) - -process.dummy = cms.EDAnalyzer( - "EventContentAnalyzer" - ) - -process.path = cms.Path( - process.dummy - ) - -process.endPath = cms.EndPath( - process.eventInfo + - process.out -) diff --git a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuAnalysis_IsoDeposit.py b/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuAnalysis_IsoDeposit.py deleted file mode 100644 index a51e894145a7b..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuAnalysis_IsoDeposit.py +++ /dev/null @@ -1,368 +0,0 @@ -from __future__ import print_function -#analysis code. -#It produces plot for Fit study -#author Luca Lista -#modificated by Noli Pasquale 21-10-2008 -#modified by Annapaola de Cosa 18-12-2008 - - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuAnalysis") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( -# input = cms.untracked.int32(17810) - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "file:testDimuonSkim_prova.root" - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("Analysis_test.root") -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2 & abs(daughter(1).eta)<2 & mass > 20"), - isoCut = cms.double(3.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - -# For standard isolation (I_Tkr<3GeV) choose this configuration: -# isoCut = cms.double(3.), -# ptThreshold = cms.untracked.double(1.5), -# etEcalThreshold = cms.untracked.double(0.2), -# etHcalThreshold = cms.untracked.double(0.5), -# deltaRVetoTrk = cms.untracked.double(0.015), -# deltaRTrk = cms.untracked.double(0.3), -# deltaREcal = cms.untracked.double(0.25), -# deltaRHcal = cms.untracked.double(0.25), -# alpha = cms.untracked.double(0.), -# beta = cms.untracked.double(-0.75), -# relativeIsolation = cms.bool(False) - - - ) - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) -#ZMuMu: richiedo almeno 1 HLT trigger match.Per la shape -process.goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu: richiedo 2 HLT trigger match -process.goodZToMuMu2HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("bothMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu: richiedo 1 HLT trigger match -process.goodZToMuMu1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -#ZMuMu1notIso: richiedo almeno un trigger -process.nonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("nonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuTk:richiedo che il muGlobal 'First' ha HLT match -process.goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuSta:richiedo che il muGlobal ha HLT match -process.goodZToMuMuOneStandAloneMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.zmumuSaMassHistogram = cms.EDAnalyzer( - "ZMuMuSaMassHistogram", - src_m = cms.InputTag("goodZToMuMu"), - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbin = cms.untracked.int32(200) - # name = cms.untracked.string("zMass") - ) - -goodZToMuMuTemplate = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("replace this string with your cut"), - src = cms.InputTag("goodZToMuMuAtLeast1HLT"), - filter = cms.bool(False) -) - -#### Plot ### - -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)") - ) - ) -) - -#ZMuMu almeno 1 HLT + 2 track-iso (Shape) -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - -#ZMuMu almeno 1 HLT + almeno 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) - -etaBounds = [-2, 2.0] - -def addModulesFromTemplate(sequence, moduleLabel, src, probeSelection): - print("selection for: ", moduleLabel) - for i in range(len(etaBounds)-1): - etaMin = etaBounds[i] - etaMax = etaBounds[i+1] - module = copy.deepcopy(goodZToMuMuTemplate) - if probeSelection == "single": - cut = "%5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax) - elif probeSelection == "double": - cut = "%5.3f < daughter(0).eta < %5.3f | %5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax, etaMin, etaMax) - print(i, ") cut = ", cut) - setattr(module, "cut", cut) - setattr(module, "src", cms.InputTag(src)) - copyModuleLabel = moduleLabel + str(i) - setattr(process, copyModuleLabel, module) - if sequence == None: - sequence = module - else: - sequence = sequence + module - plotModule = copy.deepcopy(goodZToMuMuPlotsTemplate) - setattr(plotModule, "src", cms.InputTag(copyModuleLabel)) - for h in plotModule.histograms: - h.description.setValue(h.description.value() + ": " + "#eta: [%5.3f, %5.3f]" %(etaMin, etaMax)) - plotModuleLabel = moduleLabel + "Plots" + str(i) - setattr(process, plotModuleLabel, plotModule) - sequence = sequence + plotModule - path = cms.Path(sequence) - setattr(process, moduleLabel+"Path", path) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -#ZMuMu almeno 1 HLT + 2 track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate - -#ZMuMu 1 HLT + 2 track-iso -process.goodZToMuMu1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu1HLTPlots.src = cms.InputTag("goodZToMuMu1HLT") - -#ZMuMu 2 HLT + 2 track-iso -process.goodZToMuMu2HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu2HLTPlots.src = cms.InputTag("goodZToMuMu2HLT") - -#ZMuSta First HLT + 2 track-iso -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") - -#ZMuTk First HLT + 2 track-iso -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") - -# N-tuples - -process.goodZToMuMuOneStandAloneMuonNtuple = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("mass"), - quantity = cms.untracked.string("mass") - ) - ) -) - -process.initialGoodZToMuMuPath = cms.Path( - process.goodZToMuMu + - process.zmumuSaMassHistogram -) - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuPlots, - "goodZToMuMu", "goodZToMuMu", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu2HLT + - process.goodZToMuMu2HLTPlots, - "goodZToMuMu2HLT", "goodZToMuMu2HLT", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu1HLT + - process.goodZToMuMu1HLTPlots, - "goodZToMuMu1HLT", "goodZToMuMu1HLT", - "double") - -process.nonIsolatedZToMuMuPath = cms.Path ( - process.nonIsolatedZToMuMu + - process.nonIsolatedZToMuMuAtLeast1HLT + - process.nonIsolatedZToMuMuPlots -) - -addModulesFromTemplate( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.goodZToMuMuOneStandAloneMuonNtuple + - process.goodZToMuMuOneStandAloneMuonPlots, - "goodZToMuMuOneStandAloneMuon", "goodZToMuMuOneStandAloneMuon", - "single") - -addModulesFromTemplate( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackFirstHLT + - process.goodZToMuMuOneTrackPlots, - "goodZToMuMuOneTrack", "goodZToMuMuOneTrack", - "single") - -process.out = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('file:./zMuSa-UML.root'), - outputCommands = cms.untracked.vstring( - "drop *", - "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*" - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuOneStandAloneMuonPath" - ) - ) -) - -process.endPath = cms.EndPath( - process.eventInfo + - process.out -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuAnalysis_zmm.py b/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuAnalysis_zmm.py deleted file mode 100644 index be74149acd896..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuAnalysis_zmm.py +++ /dev/null @@ -1,311 +0,0 @@ -from __future__ import print_function -#analysis code. -#It produces plot for Fit study -#author Luca Lista -#modificated by Noli Pasquale 21-10-2008 - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuAnalysis") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_1.root", - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_2.root", - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_3.root", - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_4.root", - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_5.root", - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_6.root", - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_7.root", - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_8.root", - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_9.root", - "rfio:/castor/cern.ch/user/n/noli/Summer08/reskimed/zmm/zmumu_reskim_10.root" - - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("analysis_zmunu_reskim_10000evt.root") -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2 & abs(daughter(1).eta)<2 & mass > 20"), - isoCut = cms.double(3.0), - isolationType = cms.string("track"), - ) - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) -#ZMuMu: richiedo almeno 1 HLT trigger match.Per la shape -process.goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - -#ZMuMu: richiedo 2 HLT trigger match -process.goodZToMuMu2HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("bothMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - -#ZMuMu: richiedo 1 HLT trigger match -process.goodZToMuMu1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - - -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -#ZMuMu1notIso: richiedo almeno un trigger -process.nonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("nonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuTk:richiedo che il muGlobal 'First' ha HLT match -process.goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuSta:richiedo che il muGlobal 'First' ha HLT match -process.goodZToMuMuOneStandAloneMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - -goodZToMuMuTemplate = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("replace this string with your cut"), - src = cms.InputTag("goodZToMuMuAtLeast1HLT"), - filter = cms.bool(False) -) - - -#### Plot ### - -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)") - ) - ) -) - - -#ZMuMu almeno 1 HLT + 2 track-iso (Shape) -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - -#ZMuMu almeno 1 HLT + almeno 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) - -etaBounds = [-2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2.0] - -def addModulesFromTemplate(sequence, moduleLabel, src, probeSelection): - print("selection for: ", moduleLabel) - for i in range(len(etaBounds)-1): - etaMin = etaBounds[i] - etaMax = etaBounds[i+1] - module = copy.deepcopy(goodZToMuMuTemplate) - if probeSelection == "single": - cut = "%5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax) - elif probeSelection == "double": - cut = "%5.3f < daughter(0).eta < %5.3f | %5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax, etaMin, etaMax) - print(i, ") cut = ", cut) - setattr(module, "cut", cut) - setattr(module, "src", cms.InputTag(src)) - copyModuleLabel = moduleLabel + str(i) - setattr(process, copyModuleLabel, module) - if sequence == None: - sequence = module - else: - sequence = sequence + module - plotModule = copy.deepcopy(goodZToMuMuPlotsTemplate) - setattr(plotModule, "src", cms.InputTag(copyModuleLabel)) - for h in plotModule.histograms: - h.description.setValue(h.description.value() + ": " + "#eta: [%5.3f, %5.3f]" %(etaMin, etaMax)) - plotModuleLabel = moduleLabel + "Plots" + str(i) - setattr(process, plotModuleLabel, plotModule) - sequence = sequence + plotModule - path = cms.Path(sequence) - setattr(process, moduleLabel+"Path", path) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -#ZMuMu almeno 1 HLT + 2 track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate - -#ZMuMu 1 HLT + 2 track-iso -process.goodZToMuMu1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu1HLTPlots.src = cms.InputTag("goodZToMuMu1HLT") - -#ZMuMu 2 HLT + 2 track-iso -process.goodZToMuMu2HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu2HLTPlots.src = cms.InputTag("goodZToMuMu2HLT") - -#ZMuSta First HLT + 2 track-iso -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") - -#ZMuTk First HLT + 2 track-iso -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuPlots, - "goodZToMuMu", "goodZToMuMu", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu2HLT+ - process.goodZToMuMu2HLTPlots, - "goodZToMuMu2HLT", "goodZToMuMu2HLT", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu1HLT+ - process.goodZToMuMu1HLTPlots, - "goodZToMuMu1HLT", "goodZToMuMu1HLT", - "double") - -process.nonIsolatedZToMuMuPath = cms.Path ( - process.nonIsolatedZToMuMu + - process.nonIsolatedZToMuMuAtLeast1HLT+ - process.nonIsolatedZToMuMuPlots -) - -addModulesFromTemplate( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT+ - process.goodZToMuMuOneStandAloneMuonPlots, - "goodZToMuMuOneStandAloneMuon", "goodZToMuMuOneStandAloneMuon", - "single") - -addModulesFromTemplate( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackFirstHLT+ - process.goodZToMuMuOneTrackPlots, - "goodZToMuMuOneTrack", "goodZToMuMuOneTrack", - "single") - -process.endPath = cms.EndPath( - process.eventInfo -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuBackgroundAnalysis.py b/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuBackgroundAnalysis.py deleted file mode 100644 index 297a53666883d..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuBackgroundAnalysis.py +++ /dev/null @@ -1,205 +0,0 @@ -from __future__ import print_function -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuBackgroundAnalysis") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "file:/scratch1/users/fabozzi/patv2_skim/testSkim_v2.root" - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("test.root") -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2 & abs(daughter(1).eta)<2 & mass > 20"), - isoCut = cms.double(3.0), - isolationType = cms.string("track") -) - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -goodZToMuMuTemplate = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("replace this string with your cut"), - src = cms.InputTag("goodZToMuMu"), - filter = cms.bool(False) -) - -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)") - ) - ) -) - - -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMu") -) - -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMu") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) - -etaBounds = [-2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2.0] - -def addModulesFromTemplate(sequence, moduleLabel, src, probeSelection): - print("selection for: ", moduleLabel) - for i in range(len(etaBounds)-1): - etaMin = etaBounds[i] - etaMax = etaBounds[i+1] - module = copy.deepcopy(goodZToMuMuTemplate) - if probeSelection == "single": - cut = "%5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax) - elif probeSelection == "double": - cut = "%5.3f < daughter(0).eta < %5.3f | %5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax, etaMin, etaMax) - print(i, ") cut = ", cut) - setattr(module, "cut", cut) - setattr(module, "src", cms.InputTag(src)) - copyModuleLabel = moduleLabel + str(i) - setattr(process, copyModuleLabel, module) - if sequence == None: - sequence = module - else: - sequence = sequence + module - plotModule = copy.deepcopy(goodZToMuMuPlotsTemplate) - setattr(plotModule, "src", cms.InputTag(copyModuleLabel)) - for h in plotModule.histograms: - h.description.setValue(h.description.value() + ": " + "#eta: [%5.3f, %5.3f]" %(etaMin, etaMax)) - plotModuleLabel = moduleLabel + "Plots" + str(i) - setattr(process, plotModuleLabel, plotModule) - sequence = sequence + plotModule - path = cms.Path(sequence) - setattr(process, moduleLabel+"Path", path) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuon") -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrack") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMuPlots, - "goodZToMuMu", "goodZToMuMu", - "double") - -process.nonIsolatedZToMuMuPath = cms.Path ( - process.nonIsolatedZToMuMu + - process.nonIsolatedZToMuMuPlots, -) - -addModulesFromTemplate( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonPlots, - "goodZToMuMuOneStandAloneMuon", "goodZToMuMuOneStandAloneMuon", - "single") - -addModulesFromTemplate( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackPlots, - "goodZToMuMuOneTrack", "goodZToMuMuOneTrack", - "single") - -process.endPath = cms.EndPath( - process.eventInfo -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuHistos.py b/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuHistos.py deleted file mode 100644 index 9009e69d9f373..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuHistos.py +++ /dev/null @@ -1,163 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuHistos") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "file:/data1/cmsdata/dimuons/S156/Zmumu_zMuMuSkimOut_1.root" - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("dimuons_zmumu_histos.root") -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2 & abs(daughter(1).eta)<2 & mass > 20"), - isoCut = cms.double(4.0), - muonIsolations1 = cms.InputTag("muonIsolations"), - muonIsolations2 = cms.InputTag("muonIsolations") -) - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)") - ) - ) -) - -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMu") -) - -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMu") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuon") -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrack") - -process.goodZToMuMuPath = cms.Path( - process.goodZToMuMu + - process.goodZToMuMuPlots - ) - -process.nonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMu + - process.nonIsolatedZToMuMuPlots, -) - -process.zToMuMuOneStandAloneMuonPath = cms.Path( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonPlots - ) - -process.goodZToMuMuPath = cms.Path( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackPlots - ) - -process.endPath = cms.EndPath( - process.eventInfo -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuHistosFromSubSkim.py b/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuHistosFromSubSkim.py deleted file mode 100644 index cee3fd106b583..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuHistosFromSubSkim.py +++ /dev/null @@ -1,160 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuHistosFromSubSkim") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "file:/data1/cmsdata/dimuons/s156-subSkim/Zmm.root" - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("dimuons_zmumu_histos.root") -) - -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)") - ) - ) -) - -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMu") -) - -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMu") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuon") -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrack") - -process.goodZToMuMuExists = cms.EDFilter( - "CandCollectionExistFilter", - src = process.nonIsolatedZToMuMuPlots.src - ) - -process.nonIsolatedZToMuMuExists = cms.EDFilter( - "CandCollectionExistFilter", - src = process.nonIsolatedZToMuMuPlots.src - ) - -process.goodZToMuMuOneStandAloneMuonExists = cms.EDFilter( - "CandCollectionExistFilter", - src = process.goodZToMuMuOneStandAloneMuonPlots.src - ) - -process.goodZToMuMuOneTrackExists = cms.EDFilter( - "CandCollectionExistFilter", - src = process.goodZToMuMuOneTrackPlots.src -) - -zSelection = cms.PSet( - cut = cms.string("1 > 0"), - isoCut = cms.double(3.0), - muonIsolations1 = cms.InputTag("muonIsolations"), - muonIsolations2 = cms.InputTag("muonIsolations") -) - -process.goodZToMuMuFilter = cms.EDFilter( - "ZToMuMuNonIsolatedSelector", - zSelection, - src = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -process.nonIsolatedZToMuMuFilter = cms.EDFilter( - "ZToMuMuNonIsolatedSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuonFilter = cms.EDFilter( - "ZToMuMuNonIsolatedSelector", - zSelection, - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrackFilter = cms.EDFilter( - "ZToMuMuNonIsolatedSelector", - zSelection, - src = cms.InputTag("goodZToMuMuOneTrack"), - filter = cms.bool(True) -) - -process.goodZToMuMuPath = cms.Path( - process.goodZToMuMuExists * - process.goodZToMuMuFilter * - process.goodZToMuMuPlots -) - -process.nonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMuExists * - process.nonIsolatedZToMuMuFilter * - process.nonIsolatedZToMuMuPlots -) - -process.goodZToMuMuOneStandAloneMuonPath = cms.Path( - process.goodZToMuMuOneStandAloneMuonExists * - process.goodZToMuMuOneStandAloneMuonFilter * - process.goodZToMuMuOneStandAloneMuonPlots -) - -process.goodZToMuMuOneTrackPath = cms.Path( - process.goodZToMuMuOneTrackExists * - process.goodZToMuMuOneTrackFilter * - process.goodZToMuMuOneTrackPlots -) - -process.endPath = cms.EndPath( - process.eventInfo -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuMicroSkim.py b/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuMicroSkim.py deleted file mode 100644 index 65f4f6c1d73d7..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/old/zToMuMuMicroSkim.py +++ /dev/null @@ -1,204 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("reskim") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "file:/scratch1/users/fabozzi/patv2_skim/testSkim_v2.root" - ) -) - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.GlobalTag.globaltag = 'IDEAL_V9::All' -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.prunedGenParticles = cms.EDProducer( - "GenParticlePruner", - src = cms.InputTag("genParticles"), - select = cms.vstring( - "drop * ", # this is the default - "keep+ pdgId = {Z0}", - "keep+ pdgId = {W-}", - "keep++ pdgId = {mu-}" - ) -) - -process.load("ElectroWeakAnalysis.ZReco.dimuonsHLTFilter_cfi") -process.load("ElectroWeakAnalysis.ZReco.patCandidatesForDimuonsSequences_cff") -process.load("ElectroWeakAnalysis.ZReco.dimuons_cfi") -process.load("ElectroWeakAnalysis.ZReco.dimuonsOneTrack_cfi") -process.load("ElectroWeakAnalysis.ZReco.dimuonsGlobal_cfi") -process.load("ElectroWeakAnalysis.ZReco.dimuonsOneStandAloneMuon_cfi") -process.load("ElectroWeakAnalysis.ZReco.mcTruthForDimuons_cff") -process.load("ElectroWeakAnalysis.ZReco.dimuonsFilter_cfi") -process.load("ElectroWeakAnalysis.ZReco.dimuonsOneTrackFilter_cfi") - -process.muonMatch.matched = cms.InputTag("prunedGenParticles") -process.trackMuMatch.matched = cms.InputTag("prunedGenParticles") - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & " - "abs(daughter(0).eta)<2 & abs(daughter(1).eta)<2 & mass > 20"), - isoCut = cms.double(100.0), - isolationType = cms.string("track"), -) - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -process.out = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('file:zmm_reskim_v2.root'), - outputCommands = cms.untracked.vstring( - "drop *", - "keep *_prunedGenParticles_*_reskim", - "keep *_selectedLayer1Muons_*_reskim", - "keep *_selectedLayer1TrackCands_*_reskim", - "keep *_dimuons_*_reskim", - "keep *_dimuonsOneTrack_*_reskim", - "keep *_dimuonsGlobal_*_reskim", - "keep *_dimuonsOneStandAloneMuon_*_reskim", - "keep *_muonMatch_*_reskim", - "keep *_allDimuonsMCMatch_*_reskim", - "keep *_goodZToMuMu_*_reskim", - "keep *_nonIsolatedZToMuMu_*_reskim", - "keep *_goodZToMuMuOneStandAloneMuon_*_reskim", - "keep *_goodZToMuMuOneTrack_*_reskim", - # "keep *_genParticles_*_*", - "keep L1MuRegionalCands_*_*_*", - "keep L1MuGMTCands_*_*_*", - "keep L1MuGMTReadoutCollection_*_*_*", - # "keep l1extraL1MuonParticles_*_*_*", - "keep TriggerResults_*_*_*", - "keep recoTracks_generalTracks_*_*", - "keep recoTracks_globalMuons_*_*", - "keep recoTracks_standAloneMuons_*_*", - "keep recoMuons_muons_*_*", - "keep *_selectedLayer1Muons_*_*", - "keep *_selectedLayer1TrackCands_*_*", -# "keep *_goodTracks_*_*", - "drop *_*_*_TestDimuonReco" - - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuPath", "nonIsolatedZToMuMuPath", - "zToMuMuOneStandAloneMuonPath", "goodZToMuMuOneTrackPath" - ) - ) -) - -process.genParticlesPath = cms.Path( - process.prunedGenParticles - ) - -process.dimuonsPath = cms.Path( - process.dimuonsHLTFilter + - process.goodMuonRecoForDimuon + - process.dimuons + - process.dimuonsGlobal + - process.dimuonsOneStandAloneMuon + - process.dimuonsFilter - ) - -process.dimuonsOneTrackPath = cms.Path( - process.dimuonsHLTFilter + - process.goodMuonRecoForDimuon + - process.dimuonsOneTrack + - process.dimuonsOneTrackFilter - ) - -process.dimuonsMCTruth = cms.Path( - process.dimuonsHLTFilter + - process.mcTruthForDimuons - ) - -process.goodZToMuMuPath = cms.Path( - process.goodZToMuMu -) - -process.nonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMu -) - -process.zToMuMuOneStandAloneMuonPath = cms.Path( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon -) - -process.goodZToMuMuOneTrackPath = cms.Path( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack -) - -process.endPath = cms.EndPath( - process.eventInfo + - process.out -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/old/zUMLChi2Fit.txt b/ElectroWeakAnalysis/ZMuMu/test/old/zUMLChi2Fit.txt deleted file mode 100644 index de611cc0df4cb..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/old/zUMLChi2Fit.txt +++ /dev/null @@ -1,26 +0,0 @@ -# -# Z -> Mu Mu fit -# -# name value error min max free/fixed (optional) -#------------------------------------------------------------------------------ -par YieldZMuMu 3818 10 0 1000000 free -par YieldBkgZMuTk 1 10 0 1000000 fixed -par YieldBkgZMuSa 0 1 0 1000000 fixed -par YieldBkgZMuMuNotIso 1 10 0 1000000 fixed -par EfficiencyTk 0.99884 0.001 0 1 free -par EfficiencySa 0.988525 0.01 0 1 free -par EfficiencyIso 0.98186 0.01 0 1 free -par EfficiencyHLT 0.913146 0.01 0 1 free -par Lambda -0.01244 0.009 -100 0 free -par Alpha -0.0444 0.01 -100 0 free -par A0 45.57 0.1 0 2 free -par A1 -0.62464 0.001 -10000 10000 free -par A2 2.644e-3 0.0001 -1000 1000 free -par B0 137.9 0.1 0 2 free -par B1 0.16275 0.001 -10000 10000 free -par B2 2.119e-03 1 -1000 1000 free -migrad -print_all -release YieldBkgZMuSa -migrad -print_all diff --git a/ElectroWeakAnalysis/ZMuMu/test/rootlogon.C b/ElectroWeakAnalysis/ZMuMu/test/rootlogon.C deleted file mode 100755 index b04133420cba6..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/rootlogon.C +++ /dev/null @@ -1,14 +0,0 @@ -{ - std::string macroPath = gROOT->GetMacroPath(); - macroPath += ":"; - macroPath += gSystem->ExpandPathName("$CMSSW_RELEASE_BASE/src/PhysicsTools/Utilities/macros"); - macroPath += ":"; - macroPath += gSystem->ExpandPathName("$CMSSW_BASE/src/PhysicsTools/Utilities/macros"); - gROOT->SetMacroPath(macroPath.c_str()); - gSystem->AddIncludePath("$CMSSW_RELEASE_BASE/src"); - gSystem->AddIncludePath("$CMSSW_BASE/src"); - gROOT->ProcessLine(".L setTDRStyle.C"); - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - setTDRStyle(); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_qcd_2_4_all.root b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_qcd_2_4_all.root deleted file mode 100644 index a7e98104975de..0000000000000 Binary files a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_qcd_2_4_all.root and /dev/null differ diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_ttbar_2_4.root b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_ttbar_2_4.root deleted file mode 100644 index 2d949fea67fd6..0000000000000 Binary files a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_ttbar_2_4.root and /dev/null differ diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_wmn_2_4.root b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_wmn_2_4.root deleted file mode 100644 index b2d419c68b40c..0000000000000 Binary files a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_wmn_2_4.root and /dev/null differ diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_zmm_2_4.root b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_zmm_2_4.root deleted file mode 100644 index 88c841f7ab726..0000000000000 Binary files a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/Analysis_zmm_2_4.root and /dev/null differ diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/data13XXXX.root b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/data13XXXX.root deleted file mode 100644 index f9a38d2479932..0000000000000 Binary files a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/data13XXXX.root and /dev/null differ diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/rootlogon.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/rootlogon.C deleted file mode 100755 index b04133420cba6..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/rootlogon.C +++ /dev/null @@ -1,14 +0,0 @@ -{ - std::string macroPath = gROOT->GetMacroPath(); - macroPath += ":"; - macroPath += gSystem->ExpandPathName("$CMSSW_RELEASE_BASE/src/PhysicsTools/Utilities/macros"); - macroPath += ":"; - macroPath += gSystem->ExpandPathName("$CMSSW_BASE/src/PhysicsTools/Utilities/macros"); - gROOT->SetMacroPath(macroPath.c_str()); - gSystem->AddIncludePath("$CMSSW_RELEASE_BASE/src"); - gSystem->AddIncludePath("$CMSSW_BASE/src"); - gROOT->ProcessLine(".L setTDRStyle.C"); - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - setTDRStyle(); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_all.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_all.C deleted file mode 100644 index b12cce4d68d18..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_all.C +++ /dev/null @@ -1,19 +0,0 @@ -#include "stack_zGolden.C" -#include "stack_zmTrk.C" -#include "stack_zmTrkMu.C" -#include "stack_zmSta.C" -#include "stack_zmm1hlt.C" -#include "stack_zmm2hlt.C" -#include "stack_zmmNotIso.C" -#include "stack_zmm0neLess2p4.C" - -void stack_all() { - stack_zGolden(); - stack_zmTrk(); - stack_zmTrkMu(); - stack_zmSta(); - stack_zmm1hlt(); - stack_zmm2hlt(); - stack_zmmNotIso(); - stack_zmm0neLess2p4(); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_common.h b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_common.h deleted file mode 100644 index 93a0bb72dc30a..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_common.h +++ /dev/null @@ -1,257 +0,0 @@ -#ifndef STACK_COMMON_H -#define STACK_COMMON_H - -#include -#include "TChain.h" - - - -const int canvasSizeX = 500; -const int canvasSizeY = 500; - -const Color_t zLineColor = kAzure+2; -const Color_t zFillColor = kAzure+6; -const Color_t wLineColor = kAzure+4; -const Color_t wFillColor = kAzure+2; -const Color_t qcdLineColor = kGreen+3; -const Color_t qcdFillColor = kGreen+1; -const Color_t ttFillColor = kRed+1; -const Color_t ttLineColor = kRed+3; -const Color_t ztFillColor = kYellow-9; -const Color_t ztLineColor = kYellow-1; - - -const double lumi =.020 ; -const double lumiZ = 100. ; -const double lumiW = 100.; -const double lumiQ = 35.; -const double lumiT =100.; -const double lumiZT =100.; - - -const double mMin = 60; -const double mMax = 120; - - - - - -//TCanvas *c1 = new TCanvas("c1","Stack plot",10,10,canvasSizeX, canvasSizeY); -TCanvas *c1 = new TCanvas("c1","Stack plot"); - - - - - - - - - -void setHisto(TH1 * h, Color_t fill, Color_t line, double scale, int rebin) { - h->SetFillColor(fill); - h->SetLineColor(line); - h->Scale(scale); - h->Rebin(rebin); -} - -void stat(TH1 * h1, TH1 * h2, TH1 * h3, TH1 * h4, TH1 *h5, TH1 * hdata, int rebin) { - double a = mMin/rebin, b = mMax/rebin; - double i1 = h1->Integral(a, b); - double i2 = h2->Integral(a, b); - double i3 = h3->Integral(a, b); - double i4 = h4->Integral(a, b); - double i5 = h5->Integral(a, b); - - double idata = hdata != 0 ? hdata->Integral(a, b) : 0; - std::cout.setf(0,ios::floatfield); - std::cout.setf(ios::fixed,ios::floatfield); - std::cout.precision(1); - std::cout <<"Zmm (" << mMin << ", " << mMax << ") = "; - std::cout.precision(8); - std::cout << i1 <Add(h5); - hs->Add(h4); - hs->Add(h3); - hs->Add(h2); - hs->Add(h1); - - hs->Draw("HIST"); - if(hdata != 0) { - hdata->SetMarkerStyle(20); - hdata->SetMarkerSize(1.3); - hdata->SetMarkerColor(kBlack); - hdata->SetLineWidth(2); - hdata->SetLineColor(kBlack); - hdata->Rebin(rebin); - hdata->Draw("epsame"); - hdata->GetXaxis()->SetLabelSize(0); - hdata->GetYaxis()->SetLabelSize(0); - hs->SetMaximum( hdata->GetMaximum() + 5); - gStyle->SetErrorX(1); -} - hs->SetMinimum(min); - hs->GetXaxis()->SetTitle("m_{#mu^{+} #mu^{-}} (GeV/c^{2})"); - - std::string yTag = ""; - switch(rebin) { - case 1: yTag = "events/(GeV/c^{2})"; break; - case 2: yTag = "events/(2 GeV/c^{2})"; break; - case 3: yTag = "events/(3 GeV/c^{2})"; break; - case 4: yTag = "events/(4 GeV/c^{2})"; break; - case 5: yTag = "events/(5 GeV/c^{2})"; break; - case 10: yTag = "events/(10 GeV/c^{2})"; break; - default: - std::cerr << ">>> ERROR: set y tag for rebin = " << rebin << std::endl; - }; - - hs->GetYaxis()->SetTitle(yTag.c_str()); - hs->GetXaxis()->SetTitleSize(0.05); - hs->GetYaxis()->SetTitleSize(0.05); - hs->GetXaxis()->SetTitleOffset(1.2); - hs->GetYaxis()->SetTitleOffset(1.2); - hs->GetYaxis()->SetLabelOffset(0); - hs->GetXaxis()->SetLabelSize(.05); - hs->GetYaxis()->SetLabelSize(.05); - // leg = new TLegend(0.65,0.55,0.85,0.75); - leg = new TLegend(0.75,0.65,0.9,0.8); - if(hdata != 0) - leg->AddEntry(hdata,"data"); - leg->AddEntry(h1,"Z#rightarrow#mu #mu","f"); - leg->AddEntry(h2,"W#rightarrow#mu #nu","f"); - leg->AddEntry(h4,"QCD","f"); - leg->AddEntry(h3,"t#bar{t}","f"); - leg->AddEntry(h5,"Z#rightarrow#tau #tau","f"); - leg->SetFillColor(kWhite); - leg->SetFillColor(kWhite); - leg->SetShadowColor(kBlack); - leg->Draw(); - c1->SetLogy(); - TPaveText *pave = new TPaveText( 0.5 * (hdata->GetXaxis()->GetXmax() - (hdata->GetXaxis()->GetXmin())) , (hdata->GetMaximum()) + 1.5 , hdata->GetXaxis()->GetXmax() , hdata->GetMaximum() + 9 ); - pave->SetFillColor(kWhite); - pave->SetBorderSize(0); - TText * t1 = pave->AddText("CMS Preliminary 2010"); - TText * t2 = pave->AddText("L_{int} = 20 nb^{-1} #sqrt{s} = 7 TeV"); // change by hand, can be improved..... - t1->SetTextColor(kBlack); - t2->SetTextColor(kBlack); - pave->Draw(); - stat(h1, h2, h3, h4, h5,hdata, rebin); - c1->Update(); -c1->SetTickx(0); -c1->SetTicky(0); -} - - - - - -// allowing two variables, for plotting the muon variables... -void makePlots(const char * var1, const char * var2, TCut cut, int rebin, const char * plot, - double min = 0.001, unsigned int nbins, double xMin, double xMax, bool doData = false) { - - - -TChain * zEvents = new TChain("Events"); - -zEvents->Add("/scratch2/users/degruttola/Spring10Ntuples/NtupleLoose_ZmmPowhegSpring10HLTRedigi_100pb.root"); -TChain * wEvents = new TChain("Events"); -wEvents->Add("/scratch2/users/degruttola/Spring10Ntuples/NtupleLoose_wmunuPowhegSpring10HLTRedigi_100pb.root"); -// 100 pb -TChain * tEvents = new TChain("Events"); -tEvents->Add("/scratch2/users/degruttola/Spring10Ntuples/NtupleLoose_ttbarSpring10HLTRedigi_100pb.root"); -// 100 pb -TChain * qEvents = new TChain("Events"); -qEvents->Add("/scratch2/users/degruttola/Spring10Ntuples/NtupleLoose_incl15Spring10HLTRedigi_35pb.root"); -TChain * ztEvents = new TChain("Events"); -ztEvents->Add("/scratch2/users/degruttola/Spring10Ntuples/NtupleLoose_ztautauSpring10HLTRedigi_100pb.root"); -// 35 pb - - -TChain * dataEvents= new TChain("Events"); - -dataEvents->Add("/scratch2/users/degruttola/data/NtupleLoose_135149.root"); -dataEvents->Add("/scratch2/users/degruttola/data/NtupleLoose_136033.root"); -dataEvents->Add("/scratch2/users/degruttola/data/NtupleLoose_136087.root"); -dataEvents->Add("/scratch2/users/degruttola/data/NtupleLoose_136100.root"); -dataEvents->Add("/scratch2/users/degruttola/data/NtupleLoose_137028.root"); - - - - -// .020 pb - - - - - - - TH1F *h1 = new TH1F ("h1", "h1", nbins, xMin, xMax); - // h1->Rebin(rebin); - TH1F *h2 = new TH1F ("h2", "h2", nbins, xMin, xMax); - // h2->Rebin(rebin); - TH1F *h3 = new TH1F ("h3", "h3", nbins, xMin, xMax); - //h3->Rebin(rebin); - TH1F *h4 = new TH1F ("h4", "h4", nbins, xMin, xMax); - //h4->Rebin(rebin); - TH1F *h5 = new TH1F ("h5", "h5", nbins, xMin, xMax); - - zEvents->Project("h1", var1, cut); - zEvents->Project("h1", var2, cut); - - wEvents->Project("h2", var1, cut); - wEvents->Project("h2", var2, cut); - - - tEvents->Project("h3", var1, cut); - tEvents->Project("h3", var2, cut); - - qEvents->Project("h4", var1, cut); - qEvents->Project("h4", var2, cut); - - ztEvents->Project("h5", var1, cut); - ztEvents->Project("h5", var2, cut); - - - // TH1F *hdata = doData? (TH1F*)data.Get(var) : 0; - if (doData) { - TH1F *hdata = new TH1F ("hdata", "hdata", nbins, xMin, xMax); - dataEvents->Project("hdata", var1, cut) ; - dataEvents->Project("hdata", var2, cut) ; - } - makeStack(h1, h2, h3, h4, h5, hdata, min, rebin); - c1->SaveAs((std::string(plot)+".eps").c_str()); - c1->SaveAs((std::string(plot)+".gif").c_str()); - c1->SaveAs((std::string(plot)+".pdf").c_str()); - -} -#endif diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zGolden.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zGolden.C deleted file mode 100644 index 7c2a0fd695ccf..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zGolden.C +++ /dev/null @@ -1,16 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGolden() { - -TCut cut_zGolden("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && zGoldenDau1NofStripHits>9 && zGoldenDau1NofPixelHits>0 && zGoldenDau2NofStripHits>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenMass", "", cut_zGolden, 5, "zGolden", 0.001, 200, 0 ,200, true); - -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zGoldenPt.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zGoldenPt.C deleted file mode 100644 index 85b74d56dd9c3..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zGoldenPt.C +++ /dev/null @@ -1,17 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenPt() { -TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && zGoldenDau1NofStripHits>9 && zGoldenDau1NofPixelHits>0 && zGoldenDau2NofStripHits>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenPt", "", cut_zGolden, 5, "zGoldenPt", 0.001, 200, 0 ,200, true); - hs->GetXaxis()->SetTitle("p_{T #mu^{+} #mu^{-}} (GeV/c)"); - string yTag = "events/(5 GeV/c)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenPt.eps"); - c1->SaveAs("zGoldenPt.gif"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zGoldenY.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zGoldenY.C deleted file mode 100644 index 0f7b81d7fb954..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zGoldenY.C +++ /dev/null @@ -1,18 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - - -void stack_zGoldenY() { -TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && zGoldenDau1NofStripHits>9 && zGoldenDau1NofPixelHits>0 && zGoldenDau2NofStripHits>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenY", "", cut_zGolden, 1, "zGoldenY", 0.001, 30, -3 ,3, true); - hs->GetXaxis()->SetTitle("y_{#mu^{+} #mu^{-}}"); - string yTag = "events/0.2"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenY.eps"); - c1->SaveAs("zGoldenY.gif"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmSta.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmSta.C deleted file mode 100644 index f7f24a976c883..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmSta.C +++ /dev/null @@ -1,12 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - - -void stack_zmSta() { - makePlots("goodZToMuMuOneStandAloneMuonPlots/zMass", 5, "zmSta", - 0.0001); -} - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmTrk.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmTrk.C deleted file mode 100644 index 5beb120212269..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmTrk.C +++ /dev/null @@ -1,10 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmTrk() { - makePlots("goodZToMuMuOneTrackPlots/zMass", 5, "zmTrk", - 0.0001, true); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmTrkMu.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmTrkMu.C deleted file mode 100644 index 93ee28061fadc..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmTrkMu.C +++ /dev/null @@ -1,10 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmTrkMu() { - makePlots("goodZToMuMuOneTrackerMuonPlots/zMass", 5, "zmTrkMu", - 0.0001); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmm0neLess2p4.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmm0neLess2p4.C deleted file mode 100644 index 45f2966ff85fb..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmm0neLess2p4.C +++ /dev/null @@ -1,9 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmm0neLess2p4() { - makePlots("goodZToMuMuOnlyOneMuonWithEtaLessThan2p11HLTPlots/zMass", 1, "zmm1hltEta24", 0.0001); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmm1hlt.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmm1hlt.C deleted file mode 100644 index 9f7f55c682754..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmm1hlt.C +++ /dev/null @@ -1,15 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmm1hlt() { - - -TCut cut_zGolden("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && zGoldenDau1NofStripHits>9 && zGoldenDau1NofPixelHits>0 && zGoldenDau2NofStripHits>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==0 || zGoldenDau2HLTBit==0) "); - - makePlots("zGoldenMass", "", cut_zGolden, 5, "zGolden1hlt", 0.001, 200, 0 ,200, true); -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmm2hlt.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmm2hlt.C deleted file mode 100644 index 4f617850d2997..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmm2hlt.C +++ /dev/null @@ -1,15 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmm2hlt() { - - -TCut cut_zGolden("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && zGoldenDau1NofStripHits>9 && zGoldenDau1NofPixelHits>0 && zGoldenDau2NofStripHits>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 && zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenMass", "", cut_zGolden, 5, "zGolden2hlt", 0.001, 200, 0 ,200, true); -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmmNotIso.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmmNotIso.C deleted file mode 100644 index bb6bdfbdf2d5b..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlot10pb/stack_zmmNotIso.C +++ /dev/null @@ -1,10 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmmNotIso() { - makePlots("nonIsolatedZToMuMuPlots/zMass", 5, "zmmNotIso", - 0.0001); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/compareMCandDataShape.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/compareMCandDataShape.C deleted file mode 100644 index 4b3b1d38b3f25..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/compareMCandDataShape.C +++ /dev/null @@ -1,212 +0,0 @@ -#include -#include -#include "stack_common.h" - -void compareMCandDataShape(){ - - - -const Color_t zLineColor = kBlack; -const Color_t zFillColor = kOrange-2; - -const double lumi =0.077 ; -//const double lumi =0100.0 ; -const double lumiZ = 100. ; - -/// cuts common.... -TCut kin_common("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( abs(zGoldenDau1dxyFromBS)<0.1 || abs(zGoldenDau2dxyFromBS)<0.1 ) "); - - - -TCut dau1Loose(" (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 "); -TCut dau2Loose(" (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 "); - -TCut dau1TightWP1("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1"); -TCut dau2TightWP1("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau2NofMuMatches>1 && zGoldenDau2TrackerMuonBit==1"); - - -TCut dau1TightWP2("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofMuonHits>0 && zGoldenDau1TrackerMuonBit==1"); -TCut dau2TightWP2("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofMuonHits>0 && zGoldenDau2TrackerMuonBit==1"); - -TCut dau1TightWP1_hltAlso("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofMuonHits>0 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau1HLTBit==1"); -TCut dau2TightWP1_hltAlso("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofMuonHits>0 && zGoldenDau2TrackerMuonBit==1 && zGoldenDau2HLTBit==1"); - - -TCut massCut("zGoldenMass>60 && zGoldenMass<120 "); - - -void makeStack(TH1 * h1, TH1 * hdata, - double min, int rebin) { - setHisto(h1, zFillColor, zLineColor, lumi/lumiZ, rebin); - - THStack * hs = new THStack("hs",""); - - - hs->Add(h1); - - hs->Draw("HIST"); - if(hdata != 0) { - hdata->SetMarkerStyle(20); - hdata->SetMarkerSize(1.0); - hdata->SetMarkerColor(kBlack); - hdata->SetLineWidth(2); - hdata->SetLineColor(kBlack); - hdata->Rebin(rebin); - hdata->Draw("epsame"); - hdata->GetXaxis()->SetLabelSize(0); - hdata->GetYaxis()->SetLabelSize(0); - // log plots, so the maximum should be one order of magnitude more... - // hs->SetMaximum( pow(10 , 0.0 + int(log( hdata->GetMaximum() ) ) )); - // lin plot - hs->SetMaximum( 4 + hdata->GetMaximum() ) ; - // gStyle->SetErrorX(.5); -} - hs->SetMinimum(min); - hs->GetXaxis()->SetTitle("m_{#mu^{+} #mu^{-}} (GeV/c^{2})"); - - std::string yTag = ""; - switch(rebin) { - case 1: yTag = "events/(GeV/c^{2})"; break; - case 2: yTag = "events/(GeV/c^{2})"; break; - case 3: yTag = "events/(3 GeV/c^{2})"; break; - case 4: yTag = "events/(4 GeV/c^{2})"; break; - case 5: yTag = "events/(5 GeV/c^{2})"; break; - case 10: yTag = "events/(10 GeV/c^{2})"; break; - default: - std::cerr << ">>> ERROR: set y tag for rebin = " << rebin << std::endl; - }; - - hs->GetYaxis()->SetTitle(yTag.c_str()); - hs->GetXaxis()->SetTitleSize(0.05); - hs->GetYaxis()->SetTitleSize(0.05); - hs->GetXaxis()->SetTitleOffset(1.2); - hs->GetYaxis()->SetTitleOffset(1.2); - //hs->GetYaxis()->SetLabelOffset(1.0); - hs->GetXaxis()->SetLabelSize(.05); - hs->GetYaxis()->SetLabelSize(.05); - - leg = new TLegend(0.75,0.55,0.90,0.7); - if(hdata != 0) - leg->AddEntry(hdata,"data"); - leg->AddEntry(h1,"Z#rightarrow#mu #mu","f"); - //leg->AddEntry(h5,"Z#rightarrow#tau #tau","f"); - leg->SetFillColor(kWhite); - leg->SetFillColor(kWhite); - leg->SetShadowColor(kBlack); - leg->Draw(); - // c1->SetLogy(); - // TPaveText *pave = new TPaveText( 0.5 * (hdata->GetXaxis()->GetXmax() - (hdata->GetXaxis()->GetXmin())) , (hdata->GetMaximum()) +1 , hdata->GetXaxis()->GetXmax() , 10 * hdata->GetMaximum() ); - - TPaveText *pave = new TPaveText( 0.6 , 0.75 , 0.9 , 0.8 , "NDC"); - pave->SetFillColor(kWhite); - pave->SetBorderSize(0); - // TText * t1 = pave->AddText("CMS Preliminary 2010"); - // TText * t2 = pave->AddText("L_{int} = 61 nb^{ -1} #sqrt{s} = 7 TeV"); // change by hand, can be improved........... - TText * t = pave->AddText("#int L dt = 77 nb^{ -1}"); - t->SetTextColor(kBlack); - // t2->SetTextColor(kBlack); - pave->Draw(); - - TPaveText *ppave = new TPaveText( 0.15 , 0.95 , 0.65 , 1.0 , "NDC"); - ppave->SetFillColor(kWhite); - ppave->SetBorderSize(0); - // TText * t1 = pave->AddText("CMS Preliminary 2010"); - // TText * t2 = pave->AddText("L_{int} = 61 nb^{ -1} #sqrt{s} = 7 TeV"); // change by hand, can be improved........... - TText * tt = ppave->AddText("CMS preliminary 2010"); - // hs->SetTitle(" #sqrt{s} = 7 TeV"); - tt->SetTextColor(kBlack); - // t2->SetTextColor(kBlack); - ppave->Draw(); - - TPaveText *pppave = new TPaveText( 0.6 , 0.95 , 1.0 , 1.0 , "NDC"); - pppave->SetFillColor(kWhite); - pppave->SetBorderSize(0); - TText * ttt = pppave->AddText("#sqrt{s} = 7 TeV"); - ttt->SetTextColor(kBlack); - // t2->SetTextColor(kBlack); - pppave->Draw(); - -} - -void setHisto(TH1 * h, Color_t fill, Color_t line, double scale, int rebin) { - h->SetFillColor(fill); - h->SetLineColor(line); - h->Scale(scale); - h->Rebin(rebin); -} - -// allowing two variables, for plotting the muon variables... -void comparePlots(const char * var1, const char * var2, TCut cut, int rebin, const char * plot, - double min = 0.001, unsigned int nbins, double xMin, double xMax, bool doData = true) { - - - -TChain * zEvents = new TChain("Events"); - - - zEvents->Add("/scratch2/users/degruttola/Spring10Ntuples_withIso03/NtupleLoose_zmmSpring10cteq66_100pb.root"); -TChain * wEvents = new TChain("Events"); - -TChain * dataEvents= new TChain("Events"); - - -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_132440_135802.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_135821-137731.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_138737-138751_promptreco_FF.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_138_919_939.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139020.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_096_103.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_195_239.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139347.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_356_360.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_362_365.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_368_370.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_372_375.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_399_411.root"); - -// .040 pb - - TH1F *h1 = new TH1F ("h1", "h1", nbins, xMin, xMax); - TH1F *hh1 = new TH1F ("hh1", "hh1", nbins, xMin, xMax); - - zEvents->Project("h1", var1, cut); - zEvents->Project("hh1", var2, cut); - h1->Add(hh1); - - TH1F *hdata = new TH1F ("hdata", "hdata", nbins, xMin, xMax); - TH1F *hhdata = new TH1F ("hhdata", "hhdata", nbins, xMin, xMax); - dataEvents->Project("hdata", var1, cut) ; - dataEvents->Project("hhdata", var2, cut) ; - hdata->Add(hhdata); - makeStack(h1, hdata, min, rebin); - c1->SaveAs((std::string(plot)+".eps").c_str()); - c1->SaveAs((std::string(plot)+".gif").c_str()); - c1->SaveAs((std::string(plot)+".pdf").c_str()); - - - hdata->KolmogorovTest(h1, "D"); - hdata->Chi2Test(h1, "UWP"); - - -} - - - - comparePlots("zGoldenMass", "", kin_common + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )) ,2 , "compareZGoldenMass_b2", 0.001, 70, 60 ,130, true); - - TCut kin_common_woPt("zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - - - - comparePlots("zGoldenDau1Pt", "zGoldenDau2Pt", massCut + kin_common_woPt + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )), 2, "zGoldenDauPt", 0.01, 100, 0 ,100, true); - hs->GetXaxis()->SetTitle("p_{T #mu} [GeV]"); - string yTag = "events/2 [GeV]"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("compareZGoldenDauPt_b2.gif"); - - -} - - - -#endif diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/makeListOfCandidates.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/makeListOfCandidates.C deleted file mode 100644 index c75fb6496d24a..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/makeListOfCandidates.C +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef STACK_COMMON_H -#define STACK_COMMON_H - -#include -using namespace std; -#include "TChain.h" - - - - -void makeListOfCandidates() { - - - -/// cuts common.... -TCut kin_common("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - -TCut kin_common_musta("zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1Iso03SumPt< 3.0 && zMuStaDau2Iso03SumPt < 3.0 && abs(zMuStaDau1Eta)<2.4 && abs(zMuStaDau2Eta)<2.4 && (zMuStaDau1HLTBit==1 || zMuStaDau2HLTBit==1) && abs(zMuStaDau1dxyFromBS)<0.2 && abs(zMuStaDau2dxyFromBS)<0.2 "); - -TCut kin_common_mutrkMu("zMuTrkMuDau1Pt> 20 && zMuTrkMuDau2Pt>20 && zMuTrkMuDau1Iso03SumPt< 3.0 && zMuTrkMuDau2Iso03SumPt < 3.0 && abs(zMuTrkMuDau1Eta)<2.4 && abs(zMuTrkMuDau2Eta)<2.4 && (zMuTrkMuDau1HLTBit==1 || zMuTrkMuDau2HLTBit==1) && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2 "); - - -TCut kin_common_notIso("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1Iso03SumPt> 3.0 || zGoldenDau2Iso03SumPt>3.0) && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - - - -TCut dau1Loose(" (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 "); -TCut dau2Loose(" (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 "); - - - -TCut dau1TightWP2("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofMuonHits>0 && zGoldenDau1TrackerMuonBit==1"); -TCut dau2TightWP2("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofMuonHits>0 && zGoldenDau2TrackerMuonBit==1"); - -TCut dau1TightWP1_hltAlso("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && abs(zGoldenDau1Eta)<2.1 && zGoldenDau1HLTBit==1"); -TCut dau2TightWP1_hltAlso("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau2NofMuMatches>1 && zGoldenDau2TrackerMuonBit==1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau2HLTBit==1"); - - - -TCut massCut("zGoldenMass>60 && zGoldenMass<120 "); - - - - -TChain * dataEvents= new TChain("Events"); - - - dataEvents->Add("../NtupleLoose_132440_139790.root"); - dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_965_971.root"); - dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_972_980.root"); - dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_140_058_076.root"); - dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_140_116_126.root"); - - - - - - - std::cout << " - -Z-->mu mu golden candidate in the mass range [60-120] " << std::endl; -Events->Scan("zGoldenRunNumber:zGoldenLumiblock:zGoldenEventNumber:zGoldenMass:zGoldenPt:zGoldenDau1Eta:zGoldenDau2Eta:zGoldenDau1Pt:zGoldenDau2Pt", "zGoldenMass>60 && zGoldenMass<120" + kin_common + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )) ); - - std::cout << " - -run number Z-->mu mu golden candidate in the mass range [60-120] " << std::endl; -Events->Scan("zGoldenRunNumber", "zGoldenMass>60 && zGoldenMass<120" + kin_common + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )) ); - - - std::cout << " - -Z-->mu mu candidate outside the mass range [60-120] " << std::endl; -Events->Scan("zGoldenRunNumber:zGoldenLumiblock:zGoldenEventNumber:zGoldenMass:zGoldenPt:zGoldenDau1Eta:zGoldenDau2Eta:zGoldenDau1Pt:zGoldenDau2Pt:zGoldenDau1Iso03SumPt:zGoldenDau2Iso03SumPt:zGoldenDau1Iso03EmEt:zGoldenDau2Iso03EmEt:zGoldenDau1Iso03HadEt:zGoldenDau2Iso03HadEt:zGoldenDau1NofMuonHits:zGoldenDau2NofMuonHits:zGoldenDau1NofPixelHits:zGoldenDau2NofPixelHits", "zGoldenMass<60 || zGoldenMass>120" + kin_common + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )) ); - - std::cout << " - -Z-->mu mu candidate not isolated in the mass range [60-120] " << std::endl; -Events->Scan("zGoldenRunNumber:zGoldenLumiblock:zGoldenEventNumber:zGoldenMass:zGoldenPt:zGoldenDau1Iso03SumPt:zGoldenDau2Iso03SumPt:zGoldenDau1Eta:zGoldenDau2Eta:zGoldenDau1Pt:zGoldenDau2Pt", "zGoldenMass>60 && zGoldenMass<120" + kin_common_notIso + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )) ); - - std::cout << " - -Z-->mu sta candidate in the mass range [60-120] " << std::endl; -Events->Scan("zMuStaRunNumber:zMuStaLumiblock:zMuStaEventNumber:zMuStaMass:zMuStaPt:zMuStaDau1Eta:zMuStaDau2Eta:zMuStaDau1Pt:zMuStaDau2Pt", "zMuStaMass>60 && zMuStaMass<120" + kin_common_musta ); - - -std::cout << " - -Z-->mu trk candidate in the mass range [60-120] " << std::endl; -Events->Scan("zMuTrkRunNumber:zMuTrkLumiblock:zMuTrkEventNumber:zMuTrkMass:zMuTrkPt:zMuTrkDau1Eta:zMuTrkDau2Eta:zMuTrkDau1Pt:zMuTrkDau2Pt", "zMuTrkMass>60 && zMuTrkMass<120" + kin_common_mutrkMu ); - - -} - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/plotMuHLTBit.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/plotMuHLTBit.C deleted file mode 100644 index 3b0e77eda813e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/plotMuHLTBit.C +++ /dev/null @@ -1,58 +0,0 @@ -{ - - - -TCut cut_zGolden("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau2TrkIso < 3.0 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=11 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=11 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 "); - -TChain * z = new TChain("Events"); -// z.Add("/scratch2/users/degruttola/Spring10Ntuples/NtupleLoose_ZmmPowhegSpring10HLTRedigi_100pb.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_132440_135802.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_135821-137731.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_138737-138751_promptreco_FF.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_138_919_939.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139020.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_096_103.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_195_239.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139347.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_356_360.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_362_365.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_368_370.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_372_375.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_399_411.root"); - z.Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_457_459.root"); - - - - TCut eta1cut(" abs(zGoldenDau1Eta)>2.1 && abs(zGoldenDau1Eta) <2.4 "); - TCut eta2cut("abs(zGoldenDau2Eta) < 2.4"); - - z.Project("hltBit", "zGoldenDau1HLTBit", cut_zGolden + eta1cut + eta2cut); - - - int N2 = hltBit.Integral() ; - int N1 = hltBit.Integral(0,1) ; - // cout << "hltBit.Integral()" << N2 << endl; - // cout << "hltBit.Integral(0,1)" << N1 << endl; - - - TCut eta1cut("abs(zGoldenDau1Eta) < 2.4"); - TCut eta2cut("abs(zGoldenDau2Eta)> 2.1 && abs(zGoldenDau2Eta) <2.4 "); - - z.Project("hltBit", "zGoldenDau2HLTBit", cut_zGolden + eta1cut + eta2cut); - - - // cout << "hltBit.Integral()" << hltBit.Integral() << endl; - // cout << "hltBit.Integral(0,1)" << hltBit.Integral(0,1) << endl; - N2 += hltBit.Integral(); - N1 += hltBit.Integral(0,1); - - - double eff= ((double) N2 - (double) (2 * N1)) / ((double) N2 - (double) ( N1)) ; - cout << "eff " << eff << endl; - - cout << "N2 --> number of reco glb muons passing all cut ==" << N2 << endl; - cout << "N2 - N1 --> number of reco glb muons passing the trigger path ==" << N2 - N1 << endl; - cout << " eff = N2 - 2N1 / N2 -N1" << endl; - cout << " N2 - 2N1 (successes) == " << N2 - 2 * N1<< endl; - cout << " N2 - N1 (trials) == " << N2 - N1<< endl; -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/qualityCutCheck.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/qualityCutCheck.C deleted file mode 100644 index e18ca9d1aa178..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/qualityCutCheck.C +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef STACK_COMMON_H -#define STACK_COMMON_H - -#include -using namespace std; -#include "TChain.h" - - - - -void qualityCutCheck() { - - - -/// cuts common.... -TCut kin_common("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - -TCut kin_common_musta("zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1Iso03SumPt< 3.0 && zMuStaDau2Iso03SumPt < 3.0 && abs(zMuStaDau1Eta)<2.4 && abs(zMuStaDau2Eta)<2.4 && (zMuStaDau1HLTBit==1 || zMuStaDau2HLTBit==1) && abs(zMuStaDau1dxyFromBS)<0.2 && abs(zMuStaDau2dxyFromBS)<0.2 "); - -TCut kin_common_notIso("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1Iso03SumPt> 3.0 || zGoldenDau2Iso03SumPt>3.0) && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - - - -TCut dau1Loose(" (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 "); -TCut dau2Loose(" (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 "); - -TCut dau1TightWP1("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1"); -TCut dau2TightWP1("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau2NofMuMatches>1 && zGoldenDau2TrackerMuonBit==1"); - - -TCut dau1TightWP2("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofMuonHits>0 && zGoldenDau1TrackerMuonBit==1"); -TCut dau2TightWP2("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofMuonHits>0 && zGoldenDau2TrackerMuonBit==1"); - -TCut dau1TightWP1_hltAlso("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau1HLTBit==1 && (abs(zGoldenDau1Eta)<2.1)"); -TCut dau2TightWP1_hltAlso("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau2NofMuMatches>1 && zGoldenDau2TrackerMuonBit==1&& zGoldenDau2HLTBit==0 && (abs(zGoldenDau2Eta)<2.1)"); - - - - -TCut massCut("zGoldenMass>60 && zGoldenMass<120 "); - - - - -TChain * dataEvents= new TChain("Events"); - - dataEvents->Add("/scratch2/users/degruttola/data/OfficialJSON/NtupleLoose_132440_139790.root"); - dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_965_971.root"); - dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_972_980.root"); - dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_140_058_076.root"); - dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_140_116_126.root"); - - - - - - std::cout << "muon with high chi2 " << std::endl; - - Events->Scan("zGoldenRunNumber:zGoldenLumiblock:zGoldenEventNumber:zGoldenMass:zGoldenDau1Pt:zGoldenDau1Eta:zGoldenDau1Iso03SumPt:zGoldenDau1Chi2:zGoldenDau1NofPixelHits:zGoldenDau1NofStripHits:zGoldenDau1NofMuonHits:zGoldenDau1HLTBit:zGoldenDau1TrackerMuonBit:zGoldenDau1NofMuMatches:zGoldenDau1TrkChi2:zGoldenDau1SaChi2", "zGoldenMass>60 && zGoldenMass<120" + kin_common + "zGoldenDau1Chi2>10 || zGoldenDau2Chi2>10"); - - std::cout << "muon with hit pixel 0 " << std::endl; - - - Events->Scan("zGoldenRunNumber:zGoldenLumiblock:zGoldenEventNumber:zGoldenMass:zGoldenDau1Pt:zGoldenDau1Eta:zGoldenDau1Iso03SumPt:zGoldenDau1Chi2:zGoldenDau1NofPixelHits:zGoldenDau1NofStripHits:zGoldenDau1NofMuonHits:zGoldenDau1HLTBit:zGoldenDau1TrackerMuonBit:zGoldenDau1NofMuMatches:zGoldenDau1dxyFromBS:zGoldenDau2dxyFromBS", "zGoldenMass>60 && zGoldenMass<120" + kin_common + "zGoldenDau1NofPixelHits==0 || zGoldenDau2NofPixelHits==0"); - - std::cout << "muon chamber <2 " << std::endl; - -Events->Scan("zGoldenRunNumber:zGoldenLumiblock:zGoldenEventNumber:zGoldenMass:zGoldenDau1Pt:zGoldenDau1Eta:zGoldenDau1Iso03SumPt:zGoldenDau1Chi2:zGoldenDau1NofPixelHits:zGoldenDau1NofStripHits:zGoldenDau1NofMuonHits:zGoldenDau1HLTBit:zGoldenDau1TrackerMuonBit:zGoldenDau1NofMuMatches:zGoldenDau1dxyFromBS:zGoldenDau2dxyFromBS", "zGoldenMass>60 && zGoldenMass<120" + kin_common + "zGoldenDau1NofMuMatches<2 || zGoldenDau2NofMuMatches<2"); - - //Events->Scan("zMuStaRunNumber:zMuStaLumiblock:zMuStaEventNumber:zMuStaMass:zMuStaDau1Pt:zMuStaDau1Eta:zMuStaDau2Pt:zMuStaDau2Eta:zMuStaDau1HLTBit:zMuStaDau1NofMuMatches:zMuStaDau2HLTBit:zMuStaDau2NofMuMatches:", "zMuStaMass>60 && zMuStaMass<120"+ kin_common_musta ); - - std::cout << "muon hit 0 " << std::endl; - -Events->Scan("zGoldenRunNumber:zGoldenLumiblock:zGoldenEventNumber:zGoldenMass:zGoldenDau1Pt:zGoldenDau1Eta:zGoldenDau1Iso03SumPt:zGoldenDau1Chi2:zGoldenDau1NofPixelHits:zGoldenDau1NofStripHits:zGoldenDau1NofMuonHits:zGoldenDau1HLTBit:zGoldenDau1TrackerMuonBit:zGoldenDau1NofMuMatches:zGoldenDau1dxyFromBS:zGoldenDau2dxyFromBS", "zGoldenMass>60 && zGoldenMass<120" + kin_common + "zGoldenDau1NofMuonHits==0 || zGoldenDau2NofMuonHits==0"); - - - -} - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/rootlogon.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/rootlogon.C deleted file mode 100755 index b04133420cba6..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/rootlogon.C +++ /dev/null @@ -1,14 +0,0 @@ -{ - std::string macroPath = gROOT->GetMacroPath(); - macroPath += ":"; - macroPath += gSystem->ExpandPathName("$CMSSW_RELEASE_BASE/src/PhysicsTools/Utilities/macros"); - macroPath += ":"; - macroPath += gSystem->ExpandPathName("$CMSSW_BASE/src/PhysicsTools/Utilities/macros"); - gROOT->SetMacroPath(macroPath.c_str()); - gSystem->AddIncludePath("$CMSSW_RELEASE_BASE/src"); - gSystem->AddIncludePath("$CMSSW_BASE/src"); - gROOT->ProcessLine(".L setTDRStyle.C"); - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - setTDRStyle(); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stackAll.sh b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stackAll.sh deleted file mode 100755 index d36af76f1814b..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stackAll.sh +++ /dev/null @@ -1,17 +0,0 @@ -root -b -q stack_zGolden.C -root -b -q stack_zGoldenDauChi2.C -root -b -q stack_zGoldenDauEcalIso.C -root -b -q stack_zGoldenDauHcalIso.C -root -b -q stack_zGoldenDauMaxPt.C -root -b -q stack_zGoldenDauMinPt.C -root -b -q stack_zGoldenDauNofMuMatches.C -root -b -q stack_zGoldenDauNofMuonHits.C -root -b -q stack_zGoldenDauNofPixelHits.C -root -b -q stack_zGoldenDauNofStripHits.C -root -b -q stack_zGoldenDauTrkIso.C -root -b -q stack_zGoldenPt.C -root -b -q stack_zGoldenY.C -root -b -q stack_zmm1hlt.C -root -b -q stack_zmm2hlt.C -root -b -q stack_zGoldenIsTrackerMuon.C - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_all.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_all.C deleted file mode 100644 index b12cce4d68d18..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_all.C +++ /dev/null @@ -1,19 +0,0 @@ -#include "stack_zGolden.C" -#include "stack_zmTrk.C" -#include "stack_zmTrkMu.C" -#include "stack_zmSta.C" -#include "stack_zmm1hlt.C" -#include "stack_zmm2hlt.C" -#include "stack_zmmNotIso.C" -#include "stack_zmm0neLess2p4.C" - -void stack_all() { - stack_zGolden(); - stack_zmTrk(); - stack_zmTrkMu(); - stack_zmSta(); - stack_zmm1hlt(); - stack_zmm2hlt(); - stack_zmmNotIso(); - stack_zmm0neLess2p4(); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_common.h b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_common.h deleted file mode 100644 index c739f027a41b5..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_common.h +++ /dev/null @@ -1,527 +0,0 @@ -#ifndef STACK_COMMON_H -#define STACK_COMMON_H - -#include -#include "TChain.h" - -#include "TGraphAsymmErrors.h" - -const int canvasSizeX = 500; -const int canvasSizeY = 500; -const Color_t zLineColor = kOrange+3; -const Color_t zFillColor = kOrange-2; -// ewk: W+ztt -const Color_t ewkLineColor = kOrange+3; -const Color_t ewkFillColor = kOrange+7; - -const Color_t qcdLineColor = kViolet+3; -const Color_t qcdFillColor = kViolet-5; - - -const Color_t ttLineColor = kRed+4; -const Color_t ttFillColor = kRed+2; - -//const Color_t ztFillColor = kYellow-9; -//const Color_t ztLineColor = kYellow-1; - - - - -// 78 -double intLumi = 177 ; -//double intLumi = 100000; - -const double lumi = intLumi * .001 ; -//const double lumi =0100.0 ; -const double lumiZ = 100. ; -const double lumiW = 100.; -//adjust to new filter efficiency -const double lumiQ = 60.; -//scaling ttbar from 94.3 to 162. -const double lumiT =100. * (94.3/162.); -const double lumiZT =100.; - - -const double mMin = 60; -const double mMax = 120; - - - - - -/// cuts common.... -TCut kin_common(" (zGoldenDau1Q * zGoldenDau2Q) ==-1 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && ( (zGoldenDau1HLTBit==1 && abs(zGoldenDau1Eta)<2.1) || ( zGoldenDau2HLTBit==1 && abs(zGoldenDau2Eta)<2.1)) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); // && ( abs(zGoldenDau1dxyFromBS)<0.1 || abs(zGoldenDau2dxyFromBS)<0.1 ) "); - - - -TCut dau1Loose(" (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 "); -TCut dau2Loose(" (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 "); - -TCut dau1TightWP1("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1"); -TCut dau2TightWP1("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau2NofMuMatches>1 && zGoldenDau2TrackerMuonBit==1"); - - -TCut dau1TightWP2("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofMuonHits>0 && zGoldenDau1TrackerMuonBit==1"); -TCut dau2TightWP2("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofMuonHits>0 && zGoldenDau2TrackerMuonBit==1"); - -TCut dau1TightWP1_hltAlso("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && abs(zGoldenDau1Eta)<2.1 && zGoldenDau1HLTBit==1");// 2.1 can bacome 2.4 later.... -TCut dau2TightWP1_hltAlso("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau2NofMuMatches>1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau2HLTBit==1"); - - - -TCut massCut("zGoldenMass>60 && zGoldenMass<120 "); - - - - -TCanvas *c1 = new TCanvas("c1","Stack plot", 300,300,479,510); - - c1->SetLeftMargin( 87./479 ); - c1->SetRightMargin( 42./479 ); - c1->SetTopMargin( 30./510 ); - c1->SetBottomMargin( 80./510 ); - c1->SetFillColor(0); - c1->SetTickx(1); - c1->SetTicky(1); - c1->SetFrameFillStyle(0); - c1->SetFrameLineWidth(2); - c1->SetFrameBorderMode(0); - - - - - int lineWidth(3); - -if( logScale ) - { - lineWidth = 1; - } - - // histogram limits, in linear and logarithmic - int nbin_(100); - float xmin_(0.), xmax_(100.); - float ymin_(0.), ymax_(40.); - float yminl_(0.1), ymaxl_(200.); - - // titles and axis, marker size - TString xtitle; - TString ytitle; -int ndivx(506); - int ndivy(506); - float markerSize(2.); - - // canvas name - TString cname("c"); - TString ctitle; - - // legend position and scale; - float xl_ = 0.; - float yl_ = 0.6; - float scalel_ = 0.05; - ndivx = 120; - -if( logScale ) - { - ndivx=506; - ndivy = 506; - } - else - { - ndivy = 506; - ndivx=506; - } - - if( logScale ) - { - markerSize = 1.2; - } - else - { - markerSize = 1.2; - } - - - if( logScale ) - { - xl_ = 0.60; - yl_ = 0.60; - } - else - { - xl_ = 0.60; - yl_ = 0.60; - scalel_ = 0.06; - } - - - - -void setHisto(TH1 * h, Color_t fill, Color_t line, double scale, int rebin) { - h->SetFillColor(fill); - h->SetLineColor(line); - h->Scale(scale); - h->Rebin(rebin); - -} - -void stat(TH1 * h1, TH1 * h2, TH1 * h3, TH1 * h4, TH1 *h5, TH1 * hdata, int rebin) { - double a = mMin/rebin +1, b = mMax/rebin; - double i1 = h1->Integral(a, b); - double err1 = sqrt(i1); - double i2 = h2->Integral(a, b); - double err2 = sqrt(i2); - double i3 = h3->Integral(a, b); - double err3 = sqrt(i3); - double i4 = h4->Integral(a, b); - double err4 = sqrt(i4); - double i5 = h5->Integral(a, b); - double err5 = sqrt(i5); - - double idata = hdata != 0 ? hdata->Integral(a, b) : 0; - double errData = sqrt(idata); - - std::cout.setf(0,ios::floatfield); - std::cout.setf(ios::fixed,ios::floatfield); - std::cout.precision(1); - std::cout <<"Zmm (" << mMin << ", " << mMax << ") = "; - std::cout.precision(8); - std::cout << i1 << "+/- " << err1 <Add(h5); - - THStack * hs = new THStack("hs",""); - - - - - if (logScale) { - - - - hs->Add(h4); - hs->Add(h3); - hs->Add(h2); - } - //hs->Add(h5); - hs->Add(h1); - - hs->Draw("HIST"); - if(hdata != 0) { - hdata->Rebin(rebin); - - /* TGraphAsymmErrors* dataGraph = (TGraphAsymmErrors*)hdata; - dataGraph->SetMarkerStyle(kFullCircle); - dataGraph->SetMarkerColor(kBlack); - dataGraph->SetMarkerSize(markerSize); - // Remove the horizontal bars (at Michael's request) - double x_(0), y_(0); - for( int ii=0; iiGetN(); ii++ ) - { - dataGraph->SetPointEXlow(ii,0); - dataGraph->SetPointEXhigh(ii,0); - dataGraph->GetPoint(ii,x_,y_ ); - if( y_==0 ) - { - dataGraph->RemovePoint( ii ); - ii--; - } - } -dataGraph->Draw("pesame"); - */ - - hdata->SetMarkerStyle(kFullCircle); - hdata->SetMarkerSize(markerSize); - hdata->SetMarkerColor(kBlack); - hdata->SetLineWidth(lineWidth); - hdata->SetLineColor(kBlack); - //gStyle->SetErrorX(.5); - gStyle->SetEndErrorSize(2); - - hdata->Draw("PE1SAME"); - hdata->GetXaxis()->SetLabelSize(0); - hdata->GetYaxis()->SetLabelSize(0); - hdata->GetXaxis()->SetNdivisions(ndivx); - hdata->GetYaxis()->SetNdivisions(ndivy); - hs->GetXaxis()->SetNdivisions(ndivx); - hs->GetYaxis()->SetNdivisions(ndivy); - // log plots, so the maximum should be one order of magnitude more... - - - - hs->SetMaximum( 8 + hdata->GetMaximum() ) ; - if (logScale) { - hs->SetMaximum( pow(10 , 2. + int(log( hdata->GetMaximum() ) ) )); - } - // lin plot - - // - } - hs->SetMinimum(min); - - hs->GetXaxis()->SetTitle("M(#mu^{+} #mu^{-}) [GeV]"); - - - - std::string yTag = ""; - switch(rebin) { - case 1: yTag = "number of events/ 1 GeV"; break; - case 2: yTag = "number of events/ 2 GeV"; break; - case 2.5: yTag = "number of events/ 2.5 GeV"; break; - case 3: yTag = "number of events/ 3 GeV"; break; - case 4: yTag = "number of events/ 4 GeV"; break; - case 5: yTag = "number of events/ 5 GeV"; break; - case 10: yTag = "number of events/ 10 GeV"; break; - default: - std::cerr << ">>> ERROR: set y tag for rebin = " << rebin << std::endl; - }; - - hs->GetYaxis()->SetTitle(yTag.c_str()); - - - /* - hs->GetXaxis()->SetTitleSize(0.05); - hs->GetYaxis()->SetTitleSize(0.05); - - */ - if (logScale) { - hs->GetXaxis()->SetTitleOffset(1.0); - hs->GetYaxis()->SetTitleOffset(1.1); - - hs->GetYaxis()->SetLabelOffset(0.0); - hs->GetXaxis()->SetLabelSize(.05); - hs->GetYaxis()->SetLabelSize(.05); - } - - -//leg = new TLegend(0.75,0.55,0.90,0.7); - - - int nChan =2; - if (logScale) nChan = 4; -float dxl_ = scalel_*5; - if (logScale) dxl_ = scalel_*4; - float dyl_ = scalel_*(nChan); - if (logScale) dyl_ = scalel_*(nChan-1); - // TLegend* legend=new TLegend(xl_,yl_,xl_+dxl_,yl_+dyl_); - // TLegend* legend=new TLegend(0.65,0.54,0.95,0.796); - // legend on the left - TLegend* legend=new TLegend(0.2,0.78,0.4,0.93); - legend->SetLineColor(0); - legend->SetFillColor(0); - - - - - - //leg = new TLegend(0.20,0.7,0.35,0.85); - if(hdata != 0) - legend->AddEntry(hdata,"data", "pl"); - legend->AddEntry(h1,"Z #rightarrow#mu #mu","f"); - if (logScale) { - - legend->AddEntry(h2,"EWK","f"); - legend->AddEntry(h4,"QCD","f"); - legend->AddEntry(h3,"t#bar{t}","f"); - //leg->AddEntry(h5,"Z#rightarrow#tau #tau","f"); - } - - // legend->SetFillColor(kWhite); - //legend->SetFillColor(kWhite); - - legend->SetShadowColor(kWhite); - legend->Draw(); - - - -TLatex latex; - latex.SetNDC(); - latex.SetTextSize(0.04); - - latex.SetTextAlign(31); // align right - latex.DrawLatex(0.90,0.96,"#sqrt{s} = 7 TeV"); - if (intLumi > 0.) { - latex.SetTextAlign(31); // align right - latex.DrawLatex(0.85,0.84,Form("#int #font[12]{L} dt = %.0f nb^{-1}",intLumi)); - } - latex.SetTextAlign(11); // align left - latex.DrawLatex(0.12,0.96,"CMS preliminary 2010"); - - - stat(h1, h2, h3, h4, h5,hdata, rebin); - - // c1->Update(); - // c1->SetTickx(0); - // c1->SetTicky(0); -} - - - - - -// allowing two variables, for plotting the muon variables... -void makePlots(const char * var1, const char * var2, TCut cut, int rebin, const char * plot, - double min = 0.001, unsigned int nbins, double xMin, double xMax, bool doData = false, bool logScale=false) { - - - -TChain * zEvents = new TChain("Events"); - - -// zEvents->Add("/scratch2/users/degruttola/Spring10Ntuples_withIso03/NtupleLoose_zmmSpring10cteq66_100pb.root"); - - - - zEvents->Add("/scratch2/users/degruttola/Summer10Ntuples/Ntuple_ZmmPowheg_36X_100pb.root"); -TChain * wEvents = new TChain("Events"); - wEvents->Add("/scratch2/users/degruttola/Summer10Ntuples/Ntuple_wplusPowheg_36X_100pb_v2.root"); - wEvents->Add("/scratch2/users/degruttola/Summer10Ntuples/Ntuple_wminusPowheg36X_100pb.root"); - -// 100 pb -TChain * tEvents = new TChain("Events"); -tEvents->Add("/scratch2/users/degruttola/Summer10Ntuples/Ntuple_ttbar_36X_100pb.root"); -// 100 pb -TChain * qEvents = new TChain("Events"); -qEvents->Add("/scratch2/users/degruttola/Summer10Ntuples/Ntuple_incl15_36X_60pb.root"); -TChain * ztEvents = new TChain("Events"); - ztEvents->Add("/scratch2/users/degruttola/Summer10Ntuples/Ntuple_ztautauPowheg36X_100pb.root"); -// 35 pb - - -TChain * dataEvents= new TChain("Events"); - - - dataEvents->Add("/scratch2/users/degruttola/data/OfficialJSON/NtupleLoose_132440_139790.root"); - dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_965_971.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_139_972_980.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_140_058_076.root"); -dataEvents->Add("/scratch2/users/degruttola/data/jun14rereco_and361p4PromptReco/NtupleLoose_140_116_126.root"); - -// .040 pb - - TH1F *h1 = new TH1F ("h1", "h1", nbins, xMin, xMax); - TH1F *hh1 = new TH1F ("hh1", "hh1", nbins, xMin, xMax); - - // h1->Rebin(rebin); - TH1F *h2 = new TH1F ("h2", "h2", nbins, xMin, xMax); - TH1F *hh2 = new TH1F ("hh2", "hh2", nbins, xMin, xMax); - - // h2->Rebin(rebin); - TH1F *h3 = new TH1F ("h3", "h3", nbins, xMin, xMax); - TH1F *hh3 = new TH1F ("hh3", "hh3", nbins, xMin, xMax); - - //h3->Rebin(rebin); - TH1F *h4 = new TH1F ("h4", "h4", nbins, xMin, xMax); - TH1F *hh4 = new TH1F ("hh4", "hh4", nbins, xMin, xMax); - - //h4->Rebin(rebin); - TH1F *h5 = new TH1F ("h5", "h5", nbins, xMin, xMax); - TH1F *hh5 = new TH1F ("hh5", "hh5", nbins, xMin, xMax); - - - zEvents->Project("h1", var1, cut); - zEvents->Project("hh1", var2, cut); - h1->Add(hh1); - - wEvents->Project("h2", var1, cut); - wEvents->Project("h2", var2, cut); - h2->Add(hh2); - - tEvents->Project("h3", var1, cut); - tEvents->Project("h3", var2, cut); - h3->Add(hh3); - - qEvents->Project("h4", var1, cut); - qEvents->Project("h4", var2, cut); - h4->Add(hh4); - - ztEvents->Project("h5", var1, cut); - ztEvents->Project("h5", var2, cut); - h5->Add(hh5); - - // TH1F *hdata = doData? (TH1F*)data.Get(var) : 0; - if (doData) { - TH1F *hdata = new TH1F ("hdata", "hdata", nbins, xMin, xMax); - TH1F *hhdata = new TH1F ("hhdata", "hhdata", nbins, xMin, xMax); - dataEvents->Project("hdata", var1, cut) ; - dataEvents->Project("hhdata", var2, cut) ; - hdata->Add(hhdata); - } - makeStack(h1, h2, h3, h4, h5, hdata, min, rebin, logScale); - - - - if (logScale) c1->SetLogy(); - - c1->SaveAs((std::string(plot)+".eps").c_str()); - c1->SaveAs((std::string(plot)+".gif").c_str()); - c1->SaveAs((std::string(plot)+".pdf").c_str()); - - TFile * out = new TFile("plot.root", "RECREATE"); - - c1->Write(); -} - - -void evalEff(const char * var1, const char * var2, TCut cut, TCut cut_Nminus1, unsigned int nbins, double xMin, double xMax) { - - -TChain * zEvents = new TChain("Events"); - -// zEvents->Add("/scratch2/users/degruttola/Spring10Ntuples_withIso03/NtupleLoose_zmmSpring10cteq66_100pb.root"); -zEvents->Add("/scratch2/users/degruttola/Summer10Ntuples/Ntuple_ZmmPowheg_36X_100pb.root"); - TH1F * htot1 = new TH1F("htot1", "htot1", nbins, xMin, xMax); - TH1F * htot2 = new TH1F("htot2", "htot2", nbins, xMin, xMax); - TH1F * hcut1 = new TH1F("hcut1", "hcut1", nbins, xMin, xMax); - TH1F * hcut2 = new TH1F("hcut2", "hcut2", nbins, xMin, xMax); - - - zEvents->Project("htot1", var1, cut); - zEvents->Project("hcut1", var1, cut_Nminus1); - zEvents->Project("htot2", var2, cut); - zEvents->Project("hcut2", var2, cut_Nminus1); - - int npass = hcut1->Integral() + hcut2->Integral() ; - int ntot = htot1->Integral() + htot2->Integral() ; - - double eff = (double) npass / ntot; - double err = sqrt(eff * (1 - eff ) / (ntot)); - std::cout << " efficiency for the given cut: " << eff; - std::cout << " npass: " << npass; - std::cout << " nTot: " << ntot; - std::cout << " binomial error: " << err << std::endl; - - -} - - - -#endif diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGolden.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGolden.C deleted file mode 100644 index 5e31e481c5a4f..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGolden.C +++ /dev/null @@ -1,70 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGolden() { - - - // TCut kin_common("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - - - - // TCut dau1Loose(" (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 "); - // TCut dau2Loose(" (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 "); - - // TCut dau1TightWP1("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1"); - //TCut dau2TightWP1("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau2NofMuMatches>1 && zGoldenDau2TrackerMuonBit==1"); - - - //TCut dau1TightWP2("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofMuonHits>0 && zGoldenDau1TrackerMuonBit==1"); - // TCut dau2TightWP2("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofMuonHits>0 && zGoldenDau2TrackerMuonBit==1"); - - // TCut dau1TightWP1_hltAlso("zGoldenDau1Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofMuonHits>0 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau1HLTBit==1"); - // TCut dau2TightWP1_hltAlso("zGoldenDau2Chi2<10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofMuonHits>0 && zGoldenDau2TrackerMuonBit==1 && zGoldenDau2HLTBit==1"); - - - - - - - //TCut cut_zGolden("zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits+ zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1"); - - - // makePlots("zGoldenMass", "", kin_common + dau1TightWP1 + dau2TightWP1, 5, "zGolden", 0.001, 200, 0 ,200, true); - - - - - // evaluateing now the total efficency of the qulaity cut - - //TCut massCut("zGoldenMass>60 && zGoldenMass<120 "); - - //evalEff("zGoldenMass", "", kin_common + massCut, kin_common + massCut + dau1TightWP1 + dau2TightWP1 ,200, 0, 200); - - - - //makePlots("zGoldenMass", "", kin_common + ( ( dau1Loose && dau2TightWP1 ) || ( dau2Loose && dau1TightWP1 )) , 5, "zGolden", 0.001, 200, 0 ,200, true); - - //evalEff("zGoldenMass", "", kin_common + massCut, kin_common + massCut + ( ( dau1Loose && dau2TightWP1 ) || ( dau2Loose && dau1TightWP1 )) ,200, 0, 200); - - // WP2 - - //makePlots("zGoldenMass", "", kin_common + dau1TightWP2 + dau1TightWP2 , 5, "zGolden", 0.001, 200, 0 ,200, true); - - //evalEff("zGoldenMass", "", kin_common + massCut, kin_common + massCut + dau2TightWP2 + dau1TightWP2,200, 0, 200); - - // makePlots("zGoldenMass", "", kin_common + ( ( dau1Loose && dau2TightWP2 ) || ( dau2Loose && dau1TightWP2 )) , 5, "zGolden", 0.001, 200, 0 ,200, true); - - // evalEff("zGoldenMass", "", kin_common + massCut, kin_common + massCut + ( ( dau1Loose && dau2TightWP2 ) || ( dau2Loose && dau1TightWP2 )) ,200, 0, 200); - - makePlots("zGoldenMass", "", kin_common + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )) ,5, "zGoldenLog_b5", 0.001, 200, 0 ,200, true, true); - - evalEff("zGoldenMass", "", kin_common + massCut, kin_common + massCut + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )) ,200, 0, 200); - - -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauChi2.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauChi2.C deleted file mode 100644 index 238718fbe5019..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauChi2.C +++ /dev/null @@ -1,23 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauChi2() { - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<1000 && zGoldenDau2Chi2<1000 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits )>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenDau1Chi2", "zGoldenDau2Chi2", massCut + kin_common , 1, "zGoldenDauChi2", 0.0001, 100, 0 ,100, true, true); - hs->GetXaxis()->SetTitle("#chi^{2}"); - string yTag = "events"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauChi2.eps"); - c1->SaveAs("zGoldenDauChi2.gif"); - // c1->SaveAs("zGoldenDauChi2.pdf"); - - //TCut Ncut("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits )>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - //evalEff("zGoldenDau1Chi2", "zGoldenDau2Chi2", cut_zGolden, Ncut, 100, 0, 100); - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauDxy.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauDxy.C deleted file mode 100644 index 117cb80185a63..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauDxy.C +++ /dev/null @@ -1,23 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauDxy() { - - - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 0 && zGoldenDau2Pt>0 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits )>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits) >9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - TCut kin_common_woDxy("zGoldenDau1Pt>20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - - - makePlots("zGoldenDau1dxyFromBS", "zGoldenDau2dxyFromBS", massCut + kin_common_woDxy + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )), 1, "zGoldenDauDxy", 0.001, 100, -0.2 ,0.2, true); - hs->GetXaxis()->SetTitle("dxy from beam spot (cm)"); - string yTag = "events/(.001 GeV/c)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauDxy.eps"); - c1->SaveAs("zGoldenDauDxy.gif"); - // c1->SaveAs("zGoldenDauPt.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauEcalIso.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauEcalIso.C deleted file mode 100644 index b7518bf61fb93..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauEcalIso.C +++ /dev/null @@ -1,24 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauEcalIso() { - - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1EcalIso< 3000.0 && zGoldenDau1EcalIso < 3000.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - TCut kin_common_woIso("zGoldenDau1Pt>20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - - - - makePlots("zGoldenDau1Iso03EmEt", "zGoldenDau2Iso03EmEt", massCut + kin_common_woIso + ( ( dau1Loose && dau2TightWP1_hltAlso) || ( dau2Loose && dau1TightWP1_hltAlso )) , 1, "zGoldenDauEcalIso", 0.01, 50, 0 ,10, true); - hs->GetXaxis()->SetTitle("#sum Et (GeV/c) (ecal)"); - string yTag = "events/(.2 GeV/c)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - hs->GetYaxis()->SetTitleOffset(1.2); - c1->SaveAs("zGoldenDauEcalIso.eps"); - c1->SaveAs("zGoldenDauEcalIso.gif"); - c1->SaveAs("zGoldenDauEcalIso.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauEta.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauEta.C deleted file mode 100644 index 43762fa23a0ac..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauEta.C +++ /dev/null @@ -1,23 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauEta() { - - - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 0 && zGoldenDau2Pt>0 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits )>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits) >9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - - - - makePlots("zGoldenDau1Eta", "zGoldenDau2Eta", massCut + kin_common + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )), 1, "zGoldenDauEta", 0.001, 18, -2.7 ,2.7, true, false); - hs->GetXaxis()->SetTitle("#eta_{#mu}"); - string yTag = "events/(0.1)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauEta.eps"); - c1->SaveAs("zGoldenDauEta.gif"); - // c1->SaveAs("zGoldenDauPt.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauEtaNotTriggered.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauEtaNotTriggered.C deleted file mode 100644 index 3b93b676881c8..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauEtaNotTriggered.C +++ /dev/null @@ -1,23 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauEtaNotTriggered() { - - - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 0 && zGoldenDau2Pt>0 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits )>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits) >9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - - - - makePlots("zGoldenDau1Eta", "zGoldenDau2Eta", massCut + kin_common + ( (dau2TightWP1 && dau1TightWP1_hltAlso && "zGoldenDau2HLTBit==0") || ( dau2TightWP1_hltAlso && dau1TightWP1 && "zGoldenDau1HLTBit==0" )), 1, "zGoldenDauEtaNotTriggered", 0.001, 18, -2.7 ,2.7, true); - hs->GetXaxis()->SetTitle("#eta_{#mu}"); - string yTag = "events/(0.1)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauEtaNotTriggered.eps"); - c1->SaveAs("zGoldenDauEtaNotTriggered.gif"); - // c1->SaveAs("zGoldenDauPt.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauHcalIso.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauHcalIso.C deleted file mode 100644 index fba86ac784519..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauHcalIso.C +++ /dev/null @@ -1,24 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauHcalIso() { - - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1HcalIso< 3000.0 && zGoldenDau1HcalIso < 3000.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - TCut kin_common_woIso("zGoldenDau1Pt>20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - - - - makePlots("zGoldenDau1Iso03HadEt", "zGoldenDau2Iso03HadEt", massCut + kin_common_woIso + ( ( dau1Loose && dau2TightWP1_hltAlso) || ( dau2Loose && dau1TightWP1_hltAlso )) , 1, "zGoldenDauHcalIso", 0.01, 50, 0 ,10, true); - hs->GetXaxis()->SetTitle("#sum Et (GeV/c) (hcal)"); - string yTag = "events/(.2 GeV/c)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - hs->GetYaxis()->SetTitleOffset(1.2); - c1->SaveAs("zGoldenDauHcalIso.eps"); - c1->SaveAs("zGoldenDauHcalIso.gif"); - //c1->SaveAs("zGoldenDauHcalIso.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauMaxPt.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauMaxPt.C deleted file mode 100644 index 19a9466a278ae..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauMaxPt.C +++ /dev/null @@ -1,18 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauMaxPt() { -TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 0 && zGoldenDau2Pt>0 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits )>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits) >9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("max(zGoldenDau1Pt,zGoldenDau2Pt)", "", cut_zGolden, 5, "zGoldenDauMaxPt", 0.01, 200, 0 ,200, true); - hs->GetXaxis()->SetTitle("p_{T #mu} (GeV/c)"); - string yTag = "events/(5 GeV/c)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauMaxPt.eps"); - c1->SaveAs("zGoldenDauMaxPt.gif"); - c1->SaveAs("zGoldenDauMaxPt.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauMinPt.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauMinPt.C deleted file mode 100644 index 1b20f76f3d4ef..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauMinPt.C +++ /dev/null @@ -1,19 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauMinPt() { -TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 0 && zGoldenDau2Pt>0 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits) >9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("min(zGoldenDau1Pt,zGoldenDau2Pt)", "", cut_zGolden, 5, "zGoldenDauMinPt", 0.01, 200, 0 ,200, true); - hs->GetXaxis()->SetTitle("p_{T #mu} (GeV/c)"); - string yTag = "events/(5 GeV/c)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauMinPt.eps"); - c1->SaveAs("zGoldenDauMinPt.gif"); - c1->SaveAs("zGoldenDauMinPt.pdf"); - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofMuMatches.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofMuMatches.C deleted file mode 100644 index d16a0499431bf..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofMuMatches.C +++ /dev/null @@ -1,29 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauNofMuMatches() { - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10&& zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>-1 && zGoldenDau2NofMuMatches>-1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenDau1NofMuMatches", "zGoldenDau2NofMuMatches", massCut + kin_common , 1, "zGoldenDauNofMuMatches", 0.001, 12, -0.5 ,11.5, true, false); - hs->GetXaxis()->SetTitle("# of matched chambers"); - string yTag = "events"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauNofMuMatches.eps"); - c1->SaveAs("zGoldenDauNofMuMatches.gif"); - // c1->SaveAs("zGoldenDauNofMuMatches.pdf"); - - - //TCut Ncut("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10&& zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - //TCut Invcut("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10&& zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches<2 && zGoldenDau2NofMuMatches<2 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - - //evalEff("zGoldenDau1NofMuMatches", "zGoldenDau2NofMuMatches", cut_zGolden, Ncut, 100, -0.5, 99.5); - //evalEff("zGoldenDau1HLTBit", "zGoldenDau2HLTBit", cut_zGolden, Invcut, 1, 0.5, 1.5); - //evalEff("zGoldenDau1HLTBit", "zGoldenDau2HLTBit", cut_zGolden, Invcut, 1, -0.5, 0.5); - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofMuonHits.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofMuonHits.C deleted file mode 100644 index d07bb75895d1f..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofMuonHits.C +++ /dev/null @@ -1,35 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauNofMuonHits() { - - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10&& zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>-1 && zGoldenDau2NofMuonHits>-1 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenDau1NofMuonHits", "zGoldenDau2NofMuonHits", massCut + kin_common, 1, "zGoldenDauNofMuonHits", 0.001, 70, -0.5 ,69.5, true, false); - hs->GetXaxis()->SetTitle("# of muon hits"); - string yTag = "events"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauNofMuonHits.eps"); - c1->SaveAs("zGoldenDauNofMuonHits.gif"); - // c1->SaveAs("zGoldenDauNofMuonHits.pdf"); - - - //TCut Ncut("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - - - - - - - //evalEff("zGoldenDau1NofMuonHits", "zGoldenDau2NofMuonHits" , cut_zGolden, Ncut, 70, -0.5, 69.6); - - - - - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofPixelHits.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofPixelHits.C deleted file mode 100644 index 044124d23cf86..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofPixelHits.C +++ /dev/null @@ -1,23 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauNofPixelHits() { - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>-1 && ( zGoldenDau2NofStripHits +zGoldenDau2NofPixelHits )>9 && zGoldenDau2NofPixelHits>-1 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenDau1NofPixelHits", "zGoldenDau2NofPixelHits", massCut + kin_common , 1, "zGoldenDauNofPixelHits", 0.01, 10, -0.5 ,9.5, true, false); - hs->GetXaxis()->SetTitle("# of pixel hits"); - string yTag = "events"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauNofPixelHits.eps"); - c1->SaveAs("zGoldenDauNofPixelHits.gif"); - c1->SaveAs("zGoldenDauNofPixelHits.pdf"); - - - //TCut Ncut("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits +zGoldenDau2NofPixelHits )>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - //evalEff("zGoldenDau1NofPixelHits", "zGoldenDau2NofPixelHits", cut_zGolden, Ncut, 10, -0.5, 9.5); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofStripHits.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofStripHits.C deleted file mode 100644 index 9d86b6716dd30..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauNofStripHits.C +++ /dev/null @@ -1,25 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauNofStripHits() { - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && zGoldenDau1NofStripHits>0 && zGoldenDau1NofPixelHits>0 && zGoldenDau2NofStripHits>0 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenDau1NofStripHits +zGoldenDau1NofPixelHits ", "zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits", massCut + kin_common, 1, "zGoldenDauNofTrkHits", 0.001, 40, -0.5 ,39.5, true, false); - hs->GetXaxis()->SetTitle("# of tracker hits"); - string yTag = "events"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauNofTrkHits.eps"); - c1->SaveAs("zGoldenDauNofTrkHits.gif"); - // c1->SaveAs("zGoldenDauNofTrkHits.pdf"); - - // TCut Ncut("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - // evalEff("zGoldenDau1NofStripHits +zGoldenDau1NofPixelHits ", "zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits", cut_zGolden, Ncut, 40, -0.5, 39.5); - - evalEff("zGoldenDau1NofStripHits +zGoldenDau1NofPixelHits ", "zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits", massCut + kin_common , massCut + kin_common + "(zGoldenDau1NofStripHits +zGoldenDau1NofPixelHits) > 10 && (zGoldenDau2NofStripHits +zGoldenDau2NofPixelHits)>10 " , 40, -0.5, 39.5); - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauPhi.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauPhi.C deleted file mode 100644 index 9fc2282c4b8d0..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauPhi.C +++ /dev/null @@ -1,23 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauPhi() { - - - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 0 && zGoldenDau2Pt>0 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits )>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits) >9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - - - - makePlots("zGoldenDau1Phi", "zGoldenDau2Phi", massCut + kin_common + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )), 1, "zGoldenDauPhi", 0.001, 20, -3.1415 , +3.1415 , true, false); - hs->GetXaxis()->SetTitle("#phi_{#mu}"); - string yTag = "events/(20/6.28)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauPhi.eps"); - c1->SaveAs("zGoldenDauPhi.gif"); - // c1->SaveAs("zGoldenDauPt.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauPt.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauPt.C deleted file mode 100644 index c315c6a7a767c..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauPt.C +++ /dev/null @@ -1,23 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauPt() { - - - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 0 && zGoldenDau2Pt>0 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits )>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits) >9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - TCut kin_common_woPt("zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - - - - makePlots("zGoldenDau1Pt", "zGoldenDau2Pt", massCut + kin_common_woPt + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )), 2, "zGoldenDauPt", 0.01, 100, 0 ,100, true); - hs->GetXaxis()->SetTitle("p_{T #mu} (GeV/c)"); - string yTag = "events/(5 GeV/c)"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenDauPt.eps"); - c1->SaveAs("zGoldenDauPtLin_r2.gif"); - c1->SaveAs("zGoldenDauPt.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauTrkIso.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauTrkIso.C deleted file mode 100644 index 01fb471208d14..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenDauTrkIso.C +++ /dev/null @@ -1,23 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenDauTrkIso() { - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3000.0 && zGoldenDau1TrkIso < 3000.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - -TCut kin_common_woIso("zGoldenDau1Pt>20 && zGoldenDau2Pt>20 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - - - - makePlots("zGoldenDau1Iso03SumPt", "zGoldenDau2Iso03SumPt", massCut + kin_common_woIso + ( ( dau1Loose && dau2TightWP1_hltAlso) || ( dau2Loose && dau1TightWP1_hltAlso )) , 1, "zGoldenDauTrkIso", 0.01, 25, 0 ,5, true, false); - hs->GetXaxis()->SetTitle("#sum pt [GeV] (tracker)"); - string yTag = "events/ .2 GeV "; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - hs->GetYaxis()->SetTitleOffset(1.2); - c1->SaveAs("zGoldenDauTrkIso.eps"); - c1->SaveAs("zGoldenDauTrkIso.gif"); - // c1->SaveAs("zGoldenDauTrkIso.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenIsTrackerMuon.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenIsTrackerMuon.C deleted file mode 100644 index bc66468106714..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenIsTrackerMuon.C +++ /dev/null @@ -1,27 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenIsTrackerMuon() { - - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits +zGoldenDau2NofPixelHits )>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenDau1TrackerMuonBit", "zGoldenDau2TrackerMuonBit",massCut + kin_common , 1, "IsTrackerMuon", 0.1, 3, -0.5 ,2.5, true); - - hs->GetXaxis()->SetTitle("IsTrackerMuon"); - string yTag = "events"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("IsTrackerMuon.eps"); - c1->SaveAs("IsTrackerMuon.gif"); - //c1->SaveAs("IsTrackerMuon.pdf"); - - //TCut Ncut("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits +zGoldenDau2NofPixelHits )>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit ==1 && zGoldenDau2TrackerMuonBit ==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - //evalEff("zGoldenDau1TrackerMuonBit", "zGoldenDau2TrackerMuonBit", cut_zGolden, Ncut, 100, -0.5, 99.5); - -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenPt.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenPt.C deleted file mode 100644 index 599e44fa9fc3b..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenPt.C +++ /dev/null @@ -1,18 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zGoldenPt() { - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits )>9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenPt", "", massCut + kin_common + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )), 5, "zGoldenPt", 0.001, 120, 0 ,120, true, false); - hs->GetXaxis()->SetTitle("p_{T #mu^{+} #mu^{-}} [GeV]"); - string yTag = "events/ 5 GeV"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenPt.eps"); - c1->SaveAs("zGoldenPt.gif"); - -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenY.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenY.C deleted file mode 100644 index 056c661716987..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zGoldenY.C +++ /dev/null @@ -1,19 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - - -void stack_zGoldenY() { - //TCut cut_zGolden("zGoldenMass>60 && zGoldenMass<120 && zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>9 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits +zGoldenDau2NofPixelHits ) >9 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenY", "", massCut + kin_common + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )), 1, "zGoldenY", 0.001, 31, -3 ,3.2, true, false); - hs->GetXaxis()->SetTitle("y_{#mu^{+} #mu^{-}}"); - string yTag = "events/ 0.2"; // use the correct rebin - hs->GetYaxis()->SetTitle(yTag.c_str()); - c1->SaveAs("zGoldenY.eps"); - c1->SaveAs("zGoldenY.gif"); - c1->SaveAs("zGoldenY.pdf"); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zMuSta.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zMuSta.C deleted file mode 100644 index 11114f541e244..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zMuSta.C +++ /dev/null @@ -1,38 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zMuSta() { - - /// cuts common.... - TCut kin_common("zMuStaDau1Pt> 20 && zMuStaDau2Pt>20 && zMuStaDau1Iso03SumPt<3.0 && zMuStaDau2Iso03SumPt < 3.0 && abs(zMuStaDau1Eta)<2.1 && abs(zMuStaDau2Eta)<2.1 && (zMuStaDau1HLTBit==1 || zMuStaDau2HLTBit==1) && ( ( zMuStaDau1GlobalMuonBit==1 && abs(zMuStaDau1dxyFromBS)<0.2 ) || ( zMuStaDau2GlobalMuonBit==1 && abs(zMuStaDau2dxyFromBS)<0.2 ))"); - - - - - - TCut dau1Loose("zMuStaDau1GlobalMuonBit==0 && zMuStaDau1SaChi2<10 && zMuStaDau1SaNofMuonHits>0 && zMuStaDau1NofMuMatches>1"); - TCut dau2Loose("zMuStaDau1GlobalMuonBit==0 && zMuStaDau2SaChi2<10 && zMuStaDau2SaNofMuonHits>0 && zMuStaDau2NofMuMatches>1"); - - TCut dau1TightWP2_hltAlso("zMuStaDau1GlobalMuonBit==1 && zMuStaDau1Chi2<10 && (zMuStaDau1NofStripHits + zMuStaDau1NofPixelHits)>10 && zMuStaDau1NofMuonHits>0 && zMuStaDau1NofMuMatches>1 && zMuStaDau1TrackerMuonBit==1 && zMuStaDau1HLTBit==1"); - TCut dau2TightWP2_hltAlso("zMuStaDau2GlobalMuonBit==1 && zMuStaDau2Chi2<10 && (zMuStaDau2NofStripHits + zMuStaDau2NofPixelHits)>10 && zMuStaDau2NofMuonHits>0 && zMuStaDau2NofMuMatches>1 && zMuStaDau2TrackerMuonBit==1 && zMuStaDau2HLTBit==1"); - - - TCut massCut("zMuStaMass>60 && zMuStaMass<120 "); - - - - - makePlots("zMuStaMass", "", kin_common + (( dau1TightWP2_hltAlso && dau2Loose ) || (dau2TightWP2_hltAlso + dau1Loose)), 5, "zMuSta", 0.0001, 200, 0 ,200, true, true); - - // makePlots("zMuStaMass", "", kin_common + dau1TightWP1_hltAlso , 5, "zMuSta", 0.001, 200, 0 ,200, true); - - //makePlots("zMuStaMass", "", kin_common, 5, "zMuSta", 0.001, 200, 0 ,200, true); - - -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zMuTrk.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zMuTrk.C deleted file mode 100644 index fdcae659be68a..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zMuTrk.C +++ /dev/null @@ -1,37 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zMuTrk() { - - /// cuts common.... - TCut kin_common("zMuTrkDau1Pt>20 && zMuTrkDau2Pt>20 && zMuTrkDau1TrkIso<3.0 && zMuTrkDau2TrkIso<3.0 && abs(zMuTrkDau1Eta)<2.1 && abs(zMuTrkDau2Eta)<2.1 && (zMuTrkDau1HLTBit==1) && abs(zMuTrkDau1dxyFromBS)<0.2 && abs(zMuTrkDau2dxyFromBS)<0.2"); - - - - - - - TCut dau2Loose("zMuTrkDau2TrkChi2<10 && (zMuTrkDau2TrkNofStripHits + zMuTrkDau2TrkNofPixelHits)>10 && zMuTrkDau2TrkNofPixelHits > 0"); - - TCut dau1TightWP2_hltAlso("zMuTrkDau1GlobalMuonBit==1 && zMuTrkDau1Chi2<10 && (zMuTrkDau1NofStripHits + zMuTrkDau1NofPixelHits)>10 && zMuTrkDau1NofMuonHits>0 && zMuTrkDau1NofMuMatches>1 && zMuTrkDau1TrackerMuonBit==1 && zMuTrkDau1HLTBit==1"); - - - - TCut massCut("zMuTrkMass>60 && zMuTrkMass<120 "); - - - - - makePlots("zMuTrkMass", "", kin_common + dau1TightWP2_hltAlso + dau2Loose, 5 , "zMuTrk" , 0.0001, 200, 0 ,200, true); - - makePlots("zMuTrkMass", "", kin_common , 5 , "zMuTrk" , 0.0001, 200, 0 ,200, true, true); - - - -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zMuTrkMu.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zMuTrkMu.C deleted file mode 100644 index eacd7c6273d3b..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zMuTrkMu.C +++ /dev/null @@ -1,38 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zMuTrkMu() { - - /// cuts common.... - TCut kin_common("zMuTrkMuDau1Pt> 20 && zMuTrkMuDau2Pt>20 && zMuTrkMuDau1Iso03SumPt<3.0 && zMuTrkMuDau2Iso03SumPt < 3.0 && abs(zMuTrkMuDau1Eta)<2.4 && abs(zMuTrkMuDau2Eta)<2.4 && (zMuTrkMuDau1HLTBit==1 || zMuTrkMuDau2HLTBit==1) && abs(zMuTrkMuDau1dxyFromBS)<0.2 && abs(zMuTrkMuDau2dxyFromBS)<0.2"); - - - - - - TCut dau1Loose("zMuTrkMuDau1GlobalMuonBit==0 && zMuTrkMuDau1TrkChi2<10 && (zMuTrkMuDau1TrkNofStripHits + zMuTrkMuDau1TrkNofPixelHits)>10 && zMuTrkMuDau1TrkNofPixelHits > 0"); - TCut dau2Loose("zMuTrkMuDau2GlobalMuonBit==0 && zMuTrkMuDau2TrkChi2<10 && (zMuTrkMuDau2TrkNofStripHits + zMuTrkMuDau2TrkNofPixelHits)>10 && zMuTrkMuDau2TrkNofPixelHits > 0"); - - TCut dau1TightWP2_hltAlso("zMuTrkMuDau1GlobalMuonBit==1 && zMuTrkMuDau1Chi2<10 && (zMuTrkMuDau1NofStripHits + zMuTrkMuDau1NofPixelHits)>10 && zMuTrkMuDau1NofMuonHits>0 && zMuTrkMuDau1NofMuMatches>1 && zMuTrkMuDau1TrackerMuonBit==1 && zMuTrkMuDau1HLTBit==1"); - TCut dau2TightWP2_hltAlso("zMuTrkMuDau2GlobalMuonBit==1 && zMuTrkMuDau2Chi2<10 && (zMuTrkMuDau2NofStripHits + zMuTrkMuDau2NofPixelHits)>10 && zMuTrkMuDau2NofMuonHits>0 && zMuTrkMuDau2NofMuMatches>1 && zMuTrkMuDau2TrackerMuonBit==1 && zMuTrkMuDau2HLTBit==1"); - - - TCut massCut("zMuTrkMuMass>60 && zMuTrkMuMass<120 "); - - - - - makePlots("zMuTrkMuMass", "", kin_common + (( dau1TightWP2_hltAlso && dau2Loose ) || (dau2TightWP2_hltAlso + dau1Loose)), 5, "zMuTrkMu", 0.0001, 200, 0 ,200, true, true); - - // makePlots("zMuTrkMuMass", "", kin_common + dau1TightWP1_hltAlso , 5, "zMuTrkMu", 0.001, 200, 0 ,200, true); - - //makePlots("zMuTrkMuMass", "", kin_common, 5, "zMuTrkMu", 0.001, 200, 0 ,200, true); - - -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zNotIso.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zNotIso.C deleted file mode 100644 index 490a1f0294079..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zNotIso.C +++ /dev/null @@ -1,21 +0,0 @@ -// stack macro -// Pasquale Noli - -#include -#include -#include "stack_common.h" - -void stack_zNotIso() { - - -TCut kin_commonButIso("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && (zGoldenDau1Iso03SumPt> 3.0 || zGoldenDau2Iso03SumPt >3.0) && abs(zGoldenDau1Eta)<2.4 && abs(zGoldenDau2Eta)<2.4 && (zGoldenDau1HLTBit==1 || zGoldenDau2HLTBit==1) && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 "); - - - makePlots("zGoldenMass", "", kin_commonButIso + ( ( dau1Loose && dau2TightWP1_hltAlso ) || ( dau2Loose && dau1TightWP1_hltAlso )) , 5, "zNotIso", 0.001, 200, 0 ,200, true, true); - - - - -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmSta.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmSta.C deleted file mode 100644 index f7f24a976c883..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmSta.C +++ /dev/null @@ -1,12 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - - -void stack_zmSta() { - makePlots("goodZToMuMuOneStandAloneMuonPlots/zMass", 5, "zmSta", - 0.0001); -} - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmTrk.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmTrk.C deleted file mode 100644 index 5beb120212269..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmTrk.C +++ /dev/null @@ -1,10 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmTrk() { - makePlots("goodZToMuMuOneTrackPlots/zMass", 5, "zmTrk", - 0.0001, true); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmTrkMu.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmTrkMu.C deleted file mode 100644 index 93ee28061fadc..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmTrkMu.C +++ /dev/null @@ -1,10 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmTrkMu() { - makePlots("goodZToMuMuOneTrackerMuonPlots/zMass", 5, "zmTrkMu", - 0.0001); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm0neLess2p4.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm0neLess2p4.C deleted file mode 100644 index 45f2966ff85fb..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm0neLess2p4.C +++ /dev/null @@ -1,9 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmm0neLess2p4() { - makePlots("goodZToMuMuOnlyOneMuonWithEtaLessThan2p11HLTPlots/zMass", 1, "zmm1hltEta24", 0.0001); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm1hlt.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm1hlt.C deleted file mode 100644 index 2c46d315e1538..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm1hlt.C +++ /dev/null @@ -1,15 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmm1hlt() { - - -TCut cut_zGolden("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && ( zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>10 && zGoldenDau1NofPixelHits>0 && (zGoldenDau2NofStripHits+ zGoldenDau2NofPixelHits)>10 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==0 || zGoldenDau2HLTBit==0) "); - - makePlots("zGoldenMass", "", cut_zGolden, 5, "zGolden1hlt", 0.001, 200, 0 ,200, true, false); -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm1hltAB.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm1hltAB.C deleted file mode 100644 index 27cdf1c8868e7..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm1hltAB.C +++ /dev/null @@ -1,15 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmm1hltAB() { - - -TCut cut_zGolden("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1TrkIso< 3.0 && zGoldenDau1TrkIso < 3.0 && ( abs(zGoldenDau1Eta)>2.1 || abs(zGoldenDau2Eta)>2.1 ) && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 && (zGoldenDau1NofStripHits + zGoldenDau1NofPixelHits)>=10 && (zGoldenDau2NofStripHits + zGoldenDau2NofPixelHits)>=10 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==0 || zGoldenDau2HLTBit==0) "); - - makePlots("zGoldenMass", cut_zGolden, 5, "zGolden1hltAB", 0.001, 200, 0 ,200, true); -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm2hlt.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm2hlt.C deleted file mode 100644 index e89cfe1686835..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmm2hlt.C +++ /dev/null @@ -1,18 +0,0 @@ - - - -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmm2hlt() { - - -TCut cut_zGolden("zGoldenDau1Pt> 20 && zGoldenDau2Pt>20 && zGoldenDau1Iso03SumPt< 3.0 && zGoldenDau2Iso03SumPt < 3.0 && abs(zGoldenDau1Eta)<2.1 && abs(zGoldenDau2Eta)<2.1 && zGoldenDau1Chi2<10 && zGoldenDau2Chi2<10 && abs(zGoldenDau1dxyFromBS)<0.2 && abs(zGoldenDau2dxyFromBS)<0.2 &&( zGoldenDau1NofStripHits +zGoldenDau1NofPixelHits ) >10 && zGoldenDau1NofPixelHits>0 && ( zGoldenDau2NofStripHits +zGoldenDau2NofPixelHits ) >10 && zGoldenDau2NofPixelHits>0 && zGoldenDau1NofMuonHits>0 && zGoldenDau2NofMuonHits>0 && zGoldenDau1NofMuMatches>1 && zGoldenDau2NofMuMatches>1 && zGoldenDau1TrackerMuonBit==1 && zGoldenDau2TrackerMuonBit==1 && (zGoldenDau1HLTBit==1 && zGoldenDau2HLTBit==1) "); - - makePlots("zGoldenMass", "", cut_zGolden, 5, "zGolden2hlt", 0.001, 200, 0 ,200, true, false); -} - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmmNotIso.C b/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmmNotIso.C deleted file mode 100644 index bb6bdfbdf2d5b..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/stackPlots/stack_zmmNotIso.C +++ /dev/null @@ -1,10 +0,0 @@ -// stack macro -// Pasquale Noli -#include -#include -#include "stack_common.h" - -void stack_zmmNotIso() { - makePlots("nonIsolatedZToMuMuPlots/zMass", 5, "zmmNotIso", - 0.0001); -} diff --git a/ElectroWeakAnalysis/ZMuMu/test/triggerEfficiency.py b/ElectroWeakAnalysis/ZMuMu/test/triggerEfficiency.py deleted file mode 100644 index 47d92b4fc3a40..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/triggerEfficiency.py +++ /dev/null @@ -1,81 +0,0 @@ -# il file di iuput /tmp/noli/dimuons_allevt.root su lxplus204 - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("Lavezzi") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(False) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - ) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "file:dimuons_allevt.root" - # "file:dimuons_1000evt.root" - - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("TriggerEfficiencyStudy.root") -) - - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2 & abs(daughter(1).eta)<2 & mass > 20 & mass < 200"), - isoCut = cms.double(3.0), - muonIsolations1 = cms.InputTag("muonIsolations"), - muonIsolations2 = cms.InputTag("muonIsolations") -) - - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - -process.testAnalyzer = cms.EDAnalyzer( - "testAnalyzer", - selectMuon = cms.InputTag("selectedLayer1MuonsTriggerMatch"), - ZMuMu = cms.InputTag("goodZToMuMu"), - pathName = cms.string("HLT_Mu9"), - EtaBins = cms.int32(40), - minEta = cms.double(-2.), - maxEta = cms.double(2.), - PtBins = cms.int32(10), - minPt = cms.double(20.), - maxPt = cms.double(100.), - EtaPt80Bins = cms.int32(10) - ) - - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - - - - -process.path = cms.Path ( - process.goodZToMuMu + - process.testAnalyzer -) - - - -process.endPath = cms.EndPath( - process.eventInfo -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zChi2Fit.txt b/ElectroWeakAnalysis/ZMuMu/test/zChi2Fit.txt deleted file mode 100644 index bcdd1ca0bff97..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zChi2Fit.txt +++ /dev/null @@ -1,27 +0,0 @@ -# -# Z -> Mu Mu fit -# -# name value error min max free/fixed (optional) -#------------------------------------------------------------------------------ -par YieldZMuMu 1000 10 0 1000000 free -par YieldBkgZMuTk 1 10 0 1000000 fixed -par YieldBkgZMuSa 1 1 0 1000000 fixed -par YieldBkgZMuMuNotIso 1 10 0 1000000 fixed -par EfficiencyTk 0.98 0.01 0 1 free -par EfficiencySa 0.98 0.01 0 1 free -par EfficiencyIso 0.98 0.01 0 1 free -par EfficiencyHLT 0.88 0.01 0 1 free -par Lambda -0. 0.001 -100 100 free -par Alpha -0. 0.001 -100 100 free -par Beta -0. 0.001 -100 100 free -par A0 1 0.1 0 1000 free -par A1 0 0.001 -10000 10000 free -par A2 0 0.0001 -1000 1000 fixed -par B0 1 0.1 0 1000 free -par B1 0 0.001 -10000 10000 free -par B2 0 1 -1000 1000 fixed -par C0 1 0.001 0 1000 free -par C1 0 0.0001 -10000 10000 fixed -par C2 0 1 -1000 1000 fixed -migrad -print_all diff --git a/ElectroWeakAnalysis/ZMuMu/test/zFitToyMc.txt b/ElectroWeakAnalysis/ZMuMu/test/zFitToyMc.txt deleted file mode 100644 index 6c1d3891bda95..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zFitToyMc.txt +++ /dev/null @@ -1,27 +0,0 @@ -# -# Z -> Mu Mu fit -# -# name value error min max free/fixed (optional) -#------------------------------------------------------------------------------ -par YieldZMuMu 600000 10 0 1000000 free -par YieldBkgZMuTk 1 10 0 1000000 fixed -par YieldBkgZMuSa 0 1 0 1000000 fixed -par YieldBkgZMuMuNotIso 1 10 0 1000000 fixed -par EfficiencyTk 0.9985 0.001 0 1 free -par EfficiencySa 0.988525 0.01 0 1 free -par EfficiencyIso 0.98186 0.01 0 1 free -par EfficiencyHLT 0.913146 0.01 0 1 free -par Lambda -0.01244 0.009 -100 0 free -par Alpha -0.036 0.01 -100 0 free -par Beta 0.0 0.01 -100 0 fixed -par A0 0 0.1 0 2 free -par A1 3 0.001 -10000 10000 free -par A2 -0.01 0.0001 -1000 1000 free -par B0 1 0.1 0 2 free -par B1 6.0 0.001 -10000 10000 free -par B2 0.0 1 -1000 1000 free -migrad -print_all - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zLONLO.py b/ElectroWeakAnalysis/ZMuMu/test/zLONLO.py deleted file mode 100644 index 1ed0cc1349784..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zLONLO.py +++ /dev/null @@ -1,67 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("zlonlo") -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -## 'rfio:/castor/cern.ch/user/d/degrutto/MCatNLOzToMuMum20/dimuons_1.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/MCatNLOzToMuMum20/dimuons_2.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/MCatNLOzToMuMum20/dimuons_3.root' - - 'rfio:/castor/cern.ch/user/d/degrutto/zToMuMum20v2/dimuons_1.root', - 'rfio:/castor/cern.ch/user/d/degrutto/zToMuMum20v2/dimuons_2.root', - 'rfio:/castor/cern.ch/user/d/degrutto/zToMuMum20v2/dimuons_3.root' - - ) - ) - - -process.evtInfo = cms.OutputModule("AsciiOutputModule") - - -process.TFileService = cms.Service("TFileService", - fileName = cms.string('ZLO_10pb.root') -) - - - -process.zHistos = cms.EDAnalyzer("ZLONLOHistogrammer", - RecZ = cms.InputTag("dimuons"), - genParticles = cms.InputTag("genParticles"), - weights = cms.InputTag("genEventWeight"), - nbinsMass=cms.untracked.uint32(200), - nbinsPt=cms.untracked.uint32(200), - nbinsAng=cms.untracked.uint32(200), - massMax = cms.untracked.double(200.), - ptMax= cms.untracked.double(200.), - angMax = cms.untracked.double(6.), - #parameter for the geometric acceptance - accPtMin = cms.untracked.double(0.0), - accMassMin = cms.untracked.double(40.0), - accMassMax = cms.untracked.double(12000.0), - accEtaMin = cms.untracked.double(0.0), - accEtaMax = cms.untracked.double(2.5), - isMCatNLO= cms.untracked.bool(False) - -) - - - - - - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - - - -process.maxEvents = cms.untracked.PSet( - input =cms.untracked.int32(19440) -) - -process.path=cms.Path(process.zHistos) - -process.end = cms.EndPath(process.evtInfo ) - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zMuMuIsolationAnalysis.py b/ElectroWeakAnalysis/ZMuMu/test/zMuMuIsolationAnalysis.py deleted file mode 100644 index f759daf1a17d9..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zMuMuIsolationAnalysis.py +++ /dev/null @@ -1,142 +0,0 @@ -from __future__ import print_function -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZMuMuIsolationAnalysis") - -process.TFileService=cms.Service( - "TFileService", - fileName=cms.string("Prova_W_Isolamento.root") - ) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) - ) - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) - ) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - - # "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_1.root", - # "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_2.root", - # "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_2.root", - -# "file:/scratch1/cms/data/summer08/skim/dimuons_skim_zmumu.root", - "file:/scratch1/cms/data/summer08/skim/dimuons_skim_wmunu.root" - - # "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/qcd/noli/InclusiveMuPt15/InclusiveMuPt15SubSkim/d85f8e8eea12813d6b1603f1ce4b0f84/qcd_reskim_4.root", - # "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/qcd/noli/InclusiveMuPt15/InclusiveMuPt15SubSkim/d85f8e8eea12813d6b1603f1ce4b0f84/qcd_reskim_5.root", - # "rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/qcd/noli/InclusiveMuPt15/InclusiveMuPt15SubSkim/d85f8e8eea12813d6b1603f1ce4b0f84/qcd_reskim_6.root" - ) - ) - -process.zmumuNewIsolation = cms.EDAnalyzer( - "ZMuMuIsolationAnalyzer", - src = cms.InputTag("dimuonsOneTrack"), - ptThreshold = cms.untracked.double(1), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRTrk = cms.untracked.double(0.2), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - veto = cms.untracked.double(0.015), - alpha = cms.untracked.double(0.75), - beta = cms.untracked.double(-0.75), - pt = cms.untracked.double(20), - eta = cms.untracked.double(2), - isoCut = cms.untracked.double(1.7) - ) - -cut = [0.4,0.6,0.8,1.0,1.2] - -for i in range(len(cut)): - ptThreshold = cut[i] - print(i, ") cut = ", ptThreshold) - - plotModuleLabel = "isoPlots_ptTkr_" + str(i); - module = copy.deepcopy(process.zmumuNewIsolation) - setattr(module, "ptThreshold", ptThreshold) - setattr(process, plotModuleLabel, module) - - plotPathLabel = "isoPath_ptTkr_" + str(i); - path = cms.Path(module); - setattr(process, plotPathLabel, path) - - -ecal_cut = [0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.] - -for i in range(len(ecal_cut)): - etEcalThreshold = ecal_cut[i] - print(i, ") cut = ", etEcalThreshold) - - plotModuleLabel = "isoPlots_etEcal_" + str(i); - module = copy.deepcopy(process.zmumuNewIsolation) - setattr(module, "etEcalThreshold", etEcalThreshold) - setattr(process, plotModuleLabel, module) - - plotPathLabel = "isoPath_etEcal_" + str(i); - path = cms.Path(module); - setattr(process, plotPathLabel, path) - - -hcal_cut = [0.5,0.6,0.7,0.8,0.9,1.] - -for i in range(len(hcal_cut)): - etHcalThreshold = hcal_cut[i] - print(i, ") cut = ", etHcalThreshold) - - plotModuleLabel = "isoPlots_etHcal_" + str(i); - module = copy.deepcopy(process.zmumuNewIsolation) - setattr(module, "etHcalThreshold", etHcalThreshold) - setattr(process, plotModuleLabel, module) - - plotPathLabel = "isoPath_etHcal_" + str(i); - path = cms.Path(module); - setattr(process, plotPathLabel, path) - - -deltaR_ = [0.05,0.10,0.15,0.18,0.20,0.25,0.30,0.35] - -for i in range(len(deltaR_)): - deltaRTrk = deltaR_[i] - deltaREcal = deltaR_[i] - deltaRHcal = deltaR_[i] - - print(i, ") deltaR = ", deltaRTrk) - - plotModuleLabel = "isoPlots_DR_" + str(i); - module = copy.deepcopy(process.zmumuNewIsolation) - setattr(module, "deltaRTrk", deltaRTrk) - setattr(module, "deltaREcal", deltaREcal) - setattr(module, "deltaRHcal", deltaRHcal) - setattr(process, plotModuleLabel, module) - - plotPathLabel = "isoPath_DR_" + str(i); - path = cms.Path(module); - setattr(process, plotPathLabel, path) - - -alpha_array = [0.0,0.25,0.5,0.75,1.0] -beta_array = [-1.0,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1.0] - -for i in range(len(alpha_array)): - alpha = alpha_array[i] - print(i, ") alpha = ", alpha) - - for j in range(len(beta_array)): - beta = beta_array[j] - print(i,".", j, ") beta = ", beta) - - plotModuleLabel = "isoPlots_LinearComb_" + str(i)+"_" + str(j); - module = copy.deepcopy(process.zmumuNewIsolation) - setattr(module, "alpha", alpha) - setattr(module, "beta", beta) - setattr(process, plotModuleLabel, module) - - plotPathLabel = "isoPath_LineareComb_" + str(i) +"_"+ str(j); - path = cms.Path(module); - setattr(process, plotPathLabel, path) diff --git a/ElectroWeakAnalysis/ZMuMu/test/zMuMuRooFit.txt b/ElectroWeakAnalysis/ZMuMu/test/zMuMuRooFit.txt deleted file mode 100644 index cc913f0a9a03f..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zMuMuRooFit.txt +++ /dev/null @@ -1,22 +0,0 @@ -#"InitValue L (lo - hi) B(nBins)" for variable param. "Value C" for constant param. ORDER: Yield - nbkg_mutrk - nbkg_mumuNotIso - nbk_musa - eff_tk - eff_sa - eff_iso - eff_hlt - alpha - a0 - a1 - a2 - beta - b0 - b1 - b2 - gamma - c0 - c1## Default Yield value for signal and background at 45 pb-1, rescaled for tiy at the setted luminosity -30000 L (0 - 10000000) B(1000) -0 L (0 - 10000) B (100) -0 L (0 - 10000) B (100) -0 L (0 - 100) B (100) -0.99 L (0.001 - 1.0) B(100) -0.9 L (0.001 - 1.0) B(100) -0.9 L (0.001 - 1.0) B(100) -0.9 L (0.001 - 1.0) B(100) -0.0 L (-1. - 1.) B(200) -1 C -0 L (-100. - 100) B(200) -0 C -0.0 L (-1. - 1.) B(200) -1 C -0 L (-100. - 100) B(200) -0 C --0.01 L (-1. - 1.) B(200) -1 C -0 L (-100. - 100) B(200) -###### -PLEASE DO NOT ADD NEW LINES AND RESPECT THE ORDER diff --git a/ElectroWeakAnalysis/ZMuMu/test/zPdfUnc.py b/ElectroWeakAnalysis/ZMuMu/test/zPdfUnc.py deleted file mode 100644 index de15be1cac6db..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zPdfUnc.py +++ /dev/null @@ -1,127 +0,0 @@ -from __future__ import print_function -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("zpdfsys") - -process.maxEvents = cms.untracked.PSet( - #input = cms.untracked.int32(-1) - input = cms.untracked.int32(-1) -) - - -## process.source = cms.Source("PoolSource", -## debugVerbosity = cms.untracked.uint32(0), -## debugFlag = cms.untracked.bool(False), -## fileNames = cms.untracked.vstring() -## ) -## import os -## dirname = "/scratch1/cms/data/summer08/Zmumu_M20/" -## dirlist = os.listdir(dirname) -## basenamelist = os.listdir(dirname + "/") -## for basename in basenamelist: -## process.source.fileNames.append("file:" + dirname + "/" + basename) -## print "Number of files to process is %s" % (len(process.source.fileNames)) - - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:genParticlePlusCteq65AndMRST06NNLOAndMSTW2007LOmodWeigths.root', -) -) -process.evtInfo = cms.OutputModule("AsciiOutputModule") - - -process.TFileService = cms.Service("TFileService", - fileName = cms.string('cteq65AndMST06NLOABDMSTW2007lomod.root') -) - - -#for i in range(41): -# proc = "process.zpdf" + str(i) - # print "proc", proc -process.zpf = cms.EDAnalyzer("zPdfUnc", - genParticles = cms.InputTag("genParticles"), - pdfweights = cms.InputTag("pdfWeights:xxxxx"), - pdfmember = cms.untracked.uint32(0), - nbinsMass=cms.untracked.uint32(200), - nbinsPt=cms.untracked.uint32(200), - nbinsAng=cms.untracked.uint32(200), - massMax = cms.untracked.double(200.), - ptMax= cms.untracked.double(200.), - angMax = cms.untracked.double(6.), - #parameter for the geometric acceptance (numerator) - accPtMin = cms.untracked.double(20.0), - accMassMin = cms.untracked.double(60.0), - accMassMax = cms.untracked.double(120.0), - accEtaMin = cms.untracked.double(0.0), - accEtaMax = cms.untracked.double(2.1), - # for denominator - accMassMinDenominator=cms.untracked.double(40.0), - isMCatNLO= cms.untracked.bool(False), - outfilename= cms.untracked.string("xxxxx.txt") - ) - -pdf_1 = "cteq65" -pdf_2 = "MRST2006nnlo" -pdf_3= "MRST2007lomod" - - - -### cteq65 has 1 + 2*20 members ### -for i in range(41): - module = copy.deepcopy(process.zpf) - setattr(module, "pdfweights", "pdfWeights:cteq65") - setattr(module, "pdfmember", i) - setattr(module, "outfilename", "cteq65.txt") - moduleLabel = module.label() + pdf_1+ "_" + str(i) - setattr(process, moduleLabel, module) - if i == 0: - seq = module - else: - seq = seq + module - -### MRST2006nnlo has 1 + 2*30 members ### -for j in range(61): - module = copy.deepcopy(process.zpf) - setattr(module, "pdfweights", "pdfWeights:MRST2006nnlo") - setattr(module, "pdfmember", j) - setattr(module, "outfilename", "MRST2006nnlo.txt") - moduleLabel = module.label() + pdf_2+ "_" + str(j) - setattr(process, moduleLabel, module) - # needed only if the sequence is filled for the first time - # if j == 0: - # seq_2 = module - # else: - seq = seq + module - -### MRST2007lomod has 1 member ### -for k in range(1): - module = copy.deepcopy(process.zpf) - setattr(module, "pdfweights", "pdfWeights:MRST2007lomod") - setattr(module, "pdfmember", k) - setattr(module, "outfilename", "MRST2007lomod.txt") - moduleLabel = module.label() + pdf_3+ "_" + str(k) - setattr(process, moduleLabel, module) - # needed only if the sequence is filled for the first time - # if k == 0: - # seq_3 = module - # else: - seq = seq + module - - - -print("sequence", seq) - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - - - - -process.path=cms.Path(seq) -process.end = cms.EndPath(process.evtInfo ) - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zPtScale.py b/ElectroWeakAnalysis/ZMuMu/test/zPtScale.py deleted file mode 100644 index 0cd253434c895..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zPtScale.py +++ /dev/null @@ -1,99 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("zptscale") -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -## 'rfio:/castor/cern.ch/user/d/degrutto/MCatNLOzToMuMum20/dimuons_1.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/MCatNLOzToMuMum20/dimuons_2.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/MCatNLOzToMuMum20/dimuons_3.root' - -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/086FD387-F97F-DF11-89A1-002618943957.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E2BB3FAB-F27F-DF11-98A9-003048678AE4.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/0CC6A6C5-3C80-DF11-B35E-003048678B92.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E4D7DBB0-EC7F-DF11-B0EE-00248C0BE016.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/1896BBB8-F97F-DF11-9F2F-001A92971B48.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E8576675-EC7F-DF11-91DA-002618943856.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/64DB4BB0-F97F-DF11-98C7-002618943926.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/EA9489E6-EB7F-DF11-9875-002354EF3BCE.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/70A33058-2F80-DF11-8EAB-002618943983.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/EC9C1993-EB7F-DF11-9206-00261894391C.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/802A2887-F97F-DF11-855C-002618943886.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/ECD82E7B-F37F-DF11-B775-002618943800.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/AC8B97B2-F97F-DF11-BD20-002618FDA263.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/EE04C8B3-F37F-DF11-9BD1-003048679044.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/BC8AF7A7-F97F-DF11-9F75-003048678FA6.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/EED4B178-F27F-DF11-BE1A-002618943899.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/CEC0C35C-2180-DF11-809E-0018F3D095FA.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/F2A31B46-F27F-DF11-A9BD-002618943860.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/D4A4F191-F27F-DF11-BE80-00261894380B.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/FA0ACF88-EC7F-DF11-85EE-003048678DD6.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/DE2AED38-F27F-DF11-B867-002618943901.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/FE2F8537-9A80-DF11-B80E-0026189438C9.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E05B3CBB-F27F-DF11-8E2E-002618FDA263.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/FEC277B8-F37F-DF11-A644-00261894380D.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E0AECCD7-F27F-DF11-9601-002618FDA262.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/FEEFF5AC-F97F-DF11-A5B6-0018F3D09626.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E0E68C3A-ED7F-DF11-8D04-003048678BE6.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E224964B-ED7F-DF11-B36B-00261894387E.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E2549BBA-F37F-DF11-BEA1-00261894382D.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E289C8C2-F27F-DF11-A41B-0018F3D0965A.root', -'file:/scratch2/users/fabozzi/summer10/zmmPowheg_cteq66/E28AE239-F27F-DF11-9AA3-00261894398A.root', - - - - ) - ) - - -process.evtInfo = cms.OutputModule("AsciiOutputModule") - - -process.TFileService = cms.Service("TFileService", - fileName = cms.string('ZptScale_100K_1xcent.root') -) - - - -process.zHistos = cms.EDAnalyzer("ZMuPtScaleAnalyzer", - genParticles = cms.InputTag("genParticles"), - nbinsMass=cms.untracked.uint32(200), - nbinsPt=cms.untracked.uint32(200), - nbinsAng=cms.untracked.uint32(200), - massMax = cms.untracked.double(200.), - ptMax= cms.untracked.double(200.), - angMax = cms.untracked.double(6.), - #parameter for the geometric acceptance - accPtMin = cms.untracked.double(20.0), - accMassMin = cms.untracked.double(60.0), - accMassMax = cms.untracked.double(120.0), - accMassMinDen = cms.untracked.double(60.0), - accMassMaxDen = cms.untracked.double(120.0), - accEtaMin = cms.untracked.double(0.0), - accEtaMax = cms.untracked.double(2.1), - muPdgStatus = cms.untracked.int32(1), - # scaling of 1% - ptScale = cms.untracked.double(0.006) - -) - - - - - - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - - - -process.maxEvents = cms.untracked.PSet( - input =cms.untracked.int32(-1) -) - -process.path=cms.Path(process.zHistos) - -process.end = cms.EndPath(process.evtInfo ) - - - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis.py b/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis.py deleted file mode 100644 index ea9a813615c45..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis.py +++ /dev/null @@ -1,892 +0,0 @@ -from __future__ import print_function -#analysis code. -#It produces plot for Fit study -#author Luca Lista -#modificated by Noli Pasquale 21-10-2008 -#modified by Annapaola de Cosa 18-12-2008 -#modified by Michele de Gruttola 08-10-2009 - - - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuAnalysis") - -process.load("FWCore.MessageLogger.MessageLogger_cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( -# input = cms.untracked.int32(17810) - input = cms.untracked.int32(-1) -) - -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 - - - -#process.load("ElectroWeakAnalysis/ZMuMu/OCTSUBSKIM_cff") - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( -"file:/scratch2/users/degruttola/zmm_cteq66/skim/testZMuMuSubskim_oneshot_Test_1_1.root" -#"file:/tmp/degrutto/testZMuMuSubskim_doubleMu3.root", -## 'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/wmn/zMuMuSubskim_1.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/wmn/zMuMuSubskim_2.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/wmn/zMuMuSubskim_3.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/wmn/zMuMuSubskim_4.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/wmn/zMuMuSubskim_5.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/wmn/zMuMuSubskim_6.root', -## 'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/wmn/zMuMuSubskim_7.root', - -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_1.root', -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_2.root', -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_3.root', -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_5.root', -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_6.root', -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_7.root', -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_8.root', -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_9.root', -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_10.root', -#'rfio:/castor/cern.ch/user/d/degrutto/eta2p4/qcd/zMuMuSubskim_11.root', - - -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/zmm/testZMuMuSubSkim_1.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/zmm/testZMuMuSubSkim_2.root", -# "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_1.root", -# "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_2.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_3.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_4.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_5.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_6.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/TTbar/testZMuMuSubSkim_1.root", - - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("Analysis_zmmAllWithTrkMuon_2_4.root") -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 20"), - isoCut = cms.double(3.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - -# For standard isolation (I_Tkr<3GeV) choose this configuration: -# isoCut = cms.double(3.), -# ptThreshold = cms.untracked.double(1.5), -# etEcalThreshold = cms.untracked.double(0.2), -# etHcalThreshold = cms.untracked.double(0.5), -# deltaRVetoTrk = cms.untracked.double(0.015), -# deltaRTrk = cms.untracked.double(0.3), -# deltaREcal = cms.untracked.double(0.25), -# deltaRHcal = cms.untracked.double(0.25), -# alpha = cms.untracked.double(0.), -# beta = cms.untracked.double(-0.75), -# relativeIsolation = cms.bool(False) - ) - - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - - -##### enlarging the eta cut for gaining statistics -### one muon with eta <2.4 - -process.zToMuMuOnlyOneMuonWithEtaLessThan2p1 = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.zToMuMuOnlyOneMuonWithEtaLessThan2p1.cut= cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & ((abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.4) | (abs(daughter(0).eta)<2.4 & abs(daughter(1).eta)<2.1)) & mass > 20") - - - - - -### two muon with 2.1< eta < 2.4 -process.zToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p4 = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.zToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p4.cut= cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & ( (2.1 < abs(daughter(0).eta)<2.4) & (2.1< abs(daughter(1).eta)<2.4)) & mass > 20") - - - - - -process.goodZToMuMuOnlyOneMuonWithEtaLessThan2p1 = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOnlyOneMuonWithEtaLessThan2p1"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - - - -# same charge dimuons.... -process.dimuonsGlobalSameCharge = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("userDataDimuons"), - cut = cms.string('mass > 20 & daughter(0).isGlobalMuon = 1 & daughter(1).isGlobalMuon = 1') -) - -process.goodZToMuMuSameCharge = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobalSameCharge"), - filter = cms.bool(True) -) -process.goodZToMuMuSameCharge.cut=cms.string("charge!=0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 20") - - -#ZMuMu: requiring at least 1 HLT trigger match (for the shape) -process.goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - - -#ZMuMu: requiring 2 HLT trigger match -process.goodZToMuMu2HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("bothMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu: requiring 1 HLT trigger match -process.goodZToMuMu1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - - -process.goodZToMuMuOnlyOneMuonWithEtaLessThan2p11HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOnlyOneMuonWithEtaLessThan2p1"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.goodZToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p42HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("zToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p4"), - condition =cms.string("bothMatched"), - hltPath = cms.string("HLT_DoubleMu3"), - filter = cms.bool(True) -) - - - - -#ZMuMu:at least one muon is not isolated -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -#ZMuMu:1 muon is not isolated -process.oneNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuOneNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - -#ZMuMu: 2 muons are not isolated -process.twoNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuTwoNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - - - -#ZMuMunotIso: requiring at least 1 trigger -process.nonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("nonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMuOnenotIso: requiring at least 1 trigger -process.oneNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("oneNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMuTwonotIso: requiring at least 1 trigger -process.twoNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("twoNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("userDataDimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -### already into the subskim - -## process.dimuonsOneTrackerMuon = cms.EDFilter("CandViewRefSelector", -## src = cms.InputTag("dimuons"), -## cut = cms.string('charge = 0 & mass > 20 & ( (daughter(0).isTrackerMuon = 1 & daughter(0).isGlobalMuon = 0 & daughter(1).isGlobalMuon = 1) | (daughter(1).isTrackerMuon = 1 & daughter(1).isGlobalMuon = 0 & daughter(0).isGlobalMuon = 1) )') -## ) - - - -## setting the filter to false, the HLT filter will be enable finally.. taht is needed for not losong events when looking at the 2.1 20 & daughter(1).pt > 20 & ((abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.4) | (abs(daughter(0).eta)<2.4 & abs(daughter(1).eta)<2.1)) & mass > 20") - - - - -#ZMuTk:requiring that the GlobalMuon 'First' has HLT match -process.goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrackerMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrackerMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(False) -) - -######## requiring non overlap with the 2.1 eta region -process.goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1 = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1"), - overlap = cms.InputTag("goodZToMuMuOneTrackerMuon"), - filter = cms.bool(True) -) - - - -#ZMuSta:requiring that the GlobalMuon has HLT match -process.goodZToMuMuOneStandAloneMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuTrkMuon:requiring that the GlobalMuon has HLT match -process.goodZToMuMuOneTrackerMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrackerMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -process.goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1FirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - -process.zmumuSaMassHistogram = cms.EDAnalyzer( - "ZMuMuSaMassHistogram", - src_m = cms.InputTag("goodZToMuMu"), - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbin = cms.untracked.int32(200) - # name = cms.untracked.string("zMass") - ) - -goodZToMuMuTemplate = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("replace this string with your cut"), - src = cms.InputTag("goodZToMuMuAtLeast1HLT"), - filter = cms.bool(False) -) - - - -#### Plot #### -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(2000.0), - nbins = cms.untracked.int32(2000), - name = cms.untracked.string("zMassUpToTwoTeV"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(-10.0), - max = cms.untracked.double(10.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zEta"), - description = cms.untracked.string("Z #eta"), - plotquantity = cms.untracked.string("eta") - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("zRapidity"), - description = cms.untracked.string("Z y"), - plotquantity = cms.untracked.string("rapidity") - ), - cms.PSet( - min = cms.untracked.double(0), - max = cms.untracked.double(200), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zPt"), - description = cms.untracked.string("Z p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("pt") - ), - cms.PSet( - min = cms.untracked.double(-4), - max = cms.untracked.double(4), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("zPhi"), - description = cms.untracked.string("Z #phi"), - plotquantity = cms.untracked.string("phi") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1Eta"), - description = cms.untracked.string("muon1 #eta"), - plotquantity = cms.untracked.string("daughter(0).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2Eta"), - description = cms.untracked.string("muon2 #eta"), - plotquantity = cms.untracked.string("daughter(1).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1y"), - description = cms.untracked.string("muon1 y"), - plotquantity = cms.untracked.string("daughter(0).rapidity"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2y"), - description = cms.untracked.string("muon2 y"), - plotquantity = cms.untracked.string("daughter(1).rapidity"), - ), -cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu1phi"), - description = cms.untracked.string("muon1 #phi"), - plotquantity = cms.untracked.string("daughter(0).phi"), - ), - cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu2phi"), - description = cms.untracked.string("muon2 #phi"), - plotquantity = cms.untracked.string("daughter(1).phi"), - ), - cms.PSet( - min = cms.untracked.double(-0.1), - max = cms.untracked.double(6.9), - nbins = cms.untracked.int32(7000), - name = cms.untracked.string("absMu1phiMinusMu2phi"), - description = cms.untracked.string("|mu1 #phi - mu2 #phi|"), - plotquantity = cms.untracked.string("abs(daughter(0).phi - daughter(1).phi)"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dxy"), - description = cms.untracked.string("muon1 dxy"), - plotquantity = cms.untracked.string("(- daughter(0).vx * daughter(0).py + daughter(0).vy * daughter(0).px) / daughter(0).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dxy"), - description = cms.untracked.string("muon2 dxy"), - plotquantity = cms.untracked.string("(- daughter(1).vx * daughter(1).py + daughter(1).vy * daughter(1).px) / daughter(1).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dz"), - description = cms.untracked.string("muon1 dz"), - plotquantity = cms.untracked.string("daughter(0).vz - ( daughter(0).vx * daughter(0).px + daughter(0).vy * daughter(0).py) / daughter(0).pt * daughter(0).pz / daughter(0).pt"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dz"), - description = cms.untracked.string("muon2 dz"), - plotquantity = cms.untracked.string("daughter(1).vz - ( daughter(1).vx * daughter(1).px + daughter(1).vy * daughter(1).py) / daughter(1).pt * daughter(1).pz / daughter(1).pt"), - ) - ) -) - -## # dxy constructed from the vtx position -## dxy0 = " (- daughter(0).vx * daughter(0).py + daughter(0).vy * daughter(0).px) / daughter(0).pt " -## dxy1 = " ( - daughter(1).vx * daughter(1).py + daughter(1).vy * daughter(1).px) / daughter(1).pt " -## # dz constructed from vertex position -## dz0 = " daughter(0).vz - ( daughter(0).vx * daughter(0).px + daughter(0).vy * daughter(0).py) / daughter(0).pt * daughter(0).pz / daughter(0).pt " -## dz1 = " daughter(1).vz - ( daughter(1).vx * daughter(1).px + daughter(1).vy * daughter(1).py) / daughter(1).pt * daughter(1).pz / daughter(1).pt " - - -#ZMuMu at least 1 HLT + 2 track-iso (Shape) -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - -#ZMuMu at least 1 HLT + at least 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) - -#ZMuMu at least 1 HLT + 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -oneNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -oneNonIsolatedZToMuMuPlots.src = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "oneNonIsolatedZToMuMuPlots", oneNonIsolatedZToMuMuPlots) - -#ZMuMu at least 1 HLT + 2 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -twoNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -twoNonIsolatedZToMuMuPlots.src = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "twoNonIsolatedZToMuMuPlots", twoNonIsolatedZToMuMuPlots) - - - - -etaBounds = [2.1] -## if you want to perform studies on different eta bins... -##### etaBounds = [-2.1, -1.2, -0.8, 0.8, 1.2, 2.1] - -def addModulesFromTemplate(sequence, moduleLabel, src, probeSelection): - print("selection for: ", moduleLabel) - for i in range(len(etaBounds)-1): - etaMin = etaBounds[i] - etaMax = etaBounds[i+1] - module = copy.deepcopy(goodZToMuMuTemplate) - if probeSelection == "single": - cut = "%5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax) - elif probeSelection == "double": - cut = "%5.3f < daughter(0).eta < %5.3f | %5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax, etaMin, etaMax) - print(i, ") cut = ", cut) - setattr(module, "cut", cut) - setattr(module, "src", cms.InputTag(src)) - copyModuleLabel = moduleLabel + str(i) - setattr(process, copyModuleLabel, module) - if sequence == None: - sequence = module - else: - sequence = sequence + module - plotModule = copy.deepcopy(goodZToMuMuPlotsTemplate) - setattr(plotModule, "src", cms.InputTag(copyModuleLabel)) - for h in plotModule.histograms: - h.description.setValue(h.description.value() + ": " + "#eta: [%5.3f, %5.3f]" %(etaMin, etaMax)) - plotModuleLabel = moduleLabel + "Plots" + str(i) - setattr(process, plotModuleLabel, plotModule) - sequence = sequence + plotModule - path = cms.Path(sequence) - setattr(process, moduleLabel+"Path", path) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -#ZMuMu at least 1 HLT + 2 track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate - -#ZMuMu 1 HLT + 2 track-iso -process.goodZToMuMu1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu1HLTPlots.src = cms.InputTag("goodZToMuMu1HLT") - -#ZMuMu 2 HLT + 2 track-iso -process.goodZToMuMu2HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu2HLTPlots.src = cms.InputTag("goodZToMuMu2HLT") - -#ZMuSta First HLT + 2 track-iso -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") - -#ZMuTrkMuon First HLT + 2 track-iso -process.goodZToMuMuOneTrackerMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackerMuonPlots.src = cms.InputTag("goodZToMuMuOneTrackerMuonFirstHLT") - -process.goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1Plots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1Plots.src = cms.InputTag("goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1FirstHLT") - - -#ZMuTk First HLT + 2 track-iso -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") - - -#ZMuMu same charge -process.goodZToMuMuSameChargeAtLeast1HLT = copy.deepcopy(process.goodZToMuMuAtLeast1HLT) -process.goodZToMuMuSameChargeAtLeast1HLT.src= cms.InputTag("goodZToMuMuSameCharge") - -process.goodZToMuMuSameChargeAtLeast1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuSameChargeAtLeast1HLTPlots.src = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLT") -process.goodZToMuMuSameCharge2HLT = copy.deepcopy(process.goodZToMuMu2HLT) -process.goodZToMuMuSameCharge2HLT.src= cms.InputTag("goodZToMuMuSameCharge") - -process.goodZToMuMuSameCharge2HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuSameCharge2HLTPlots.src = cms.InputTag("goodZToMuMuSameCharge2HLT") - -process.goodZToMuMuSameCharge1HLT = copy.deepcopy(process.goodZToMuMu1HLT) -process.goodZToMuMuSameCharge1HLT.src= cms.InputTag("goodZToMuMuSameCharge") - -process.goodZToMuMuSameCharge1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuSameCharge1HLTPlots.src = cms.InputTag("goodZToMuMuSameCharge1HLT") - - -process.goodZToMuMuOnlyOneMuonWithEtaLessThan2p11HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOnlyOneMuonWithEtaLessThan2p11HLTPlots.src = cms.InputTag("goodZToMuMuOnlyOneMuonWithEtaLessThan2p11HLT") - -process.goodZToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p42HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p42HLTPlots.src = cms.InputTag("goodZToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p42HLT") - - - - - - -process.globalMuQualityCutsAnalysis= cms.EDAnalyzer( - "GlbMuQualityCutsAnalysis", - src = cms.InputTag("goodZToMuMuAtLeast1HLT"), - ptMin = cms.untracked.double(0.0), - massMin = cms.untracked.double(0.0), - massMax = cms.untracked.double(120.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(10.0), - trkIso = cms.untracked.double(10000), - chi2Cut = cms.untracked.double(10), - nHitCut = cms.untracked.int32(10) - ) - - -# N-tuples - -process.goodZToMuMuOneStandAloneMuonNtuple = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("mass"), - quantity = cms.untracked.string("mass") - ) - ) -) - -process.initialGoodZToMuMuPath = cms.Path( - process.goodZToMuMu + - process.zmumuSaMassHistogram -) - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuPlots , -# process.globalMuQualityCutsAnalysis, - "goodZToMuMu", "goodZToMuMu", - "double") - - -addModulesFromTemplate( - process.zToMuMuOnlyOneMuonWithEtaLessThan2p1+ - process.goodZToMuMuOnlyOneMuonWithEtaLessThan2p1+ - process.goodZToMuMuOnlyOneMuonWithEtaLessThan2p11HLT+ - process.goodZToMuMuOnlyOneMuonWithEtaLessThan2p11HLTPlots, - "goodZToMuMuOnlyOneMuonWithEtaLessThan2p1", "goodZToMuMuOnlyOneMuonWithEtaLessThan2p1", - "double") - -addModulesFromTemplate( - process.zToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p4 + - process.goodZToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p42HLT + - process.goodZToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p42HLTPlots, - "goodZToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p42HLT", "goodZToMuMuTwoMuonWithEtaGreaterThan2p1LessThan2p42HLT", - "double") - - - - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu2HLT + - process.goodZToMuMu2HLTPlots, - "goodZToMuMu2HLT", "goodZToMuMu2HLT", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu1HLT + - process.goodZToMuMu1HLTPlots, - "goodZToMuMu1HLT", "goodZToMuMu1HLT", - "double") - -process.globalMuQualityCutsAnalysisSameCharge = copy.deepcopy(process.globalMuQualityCutsAnalysis) -process.globalMuQualityCutsAnalysisSameCharge.src = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLT") - -addModulesFromTemplate( - process.dimuonsGlobalSameCharge+ - process.goodZToMuMuSameCharge + - process.goodZToMuMuSameChargeAtLeast1HLT+ - process.goodZToMuMuSameChargeAtLeast1HLTPlots, - # process.globalMuQualityCutsAnalysisSameCharge, - "goodZToMuMuSameCharge", "goodZToMuMuSameCharge", - "double") - - -addModulesFromTemplate( - process.dimuonsGlobalSameCharge+ - process.goodZToMuMuSameCharge + - process.goodZToMuMuSameCharge2HLT + - process.goodZToMuMuSameCharge2HLTPlots, - "goodZToMuMuSameCharge2HLT", "goodZToMuMuSameCharge2HLT", - "double") - -addModulesFromTemplate( - process.dimuonsGlobalSameCharge+ - process.goodZToMuMuSameCharge + - process.goodZToMuMuSameCharge1HLT + - process.goodZToMuMuSameCharge1HLTPlots, - "goodZToMuMuSameCharge1HLT", "goodZToMuMuSameCharge1HLT", - "double") - - - - -process.nonIsolatedZToMuMuPath = cms.Path ( - process.nonIsolatedZToMuMu + - process.nonIsolatedZToMuMuAtLeast1HLT + - process.nonIsolatedZToMuMuPlots -) -process.oneNonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMu + - process.oneNonIsolatedZToMuMu + - process.oneNonIsolatedZToMuMuAtLeast1HLT + - process.oneNonIsolatedZToMuMuPlots -) - -process.twoNonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMu + - process.twoNonIsolatedZToMuMu + - process.twoNonIsolatedZToMuMuAtLeast1HLT + - process.twoNonIsolatedZToMuMuPlots -) - -addModulesFromTemplate( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.goodZToMuMuOneStandAloneMuonNtuple + - process.goodZToMuMuOneStandAloneMuonPlots, - "goodZToMuMuOneStandAloneMuon", "goodZToMuMuOneStandAloneMuon", - "single") - -addModulesFromTemplate( - ~process.goodZToMuMu + -# process.dimuonsOneTrackerMuon + - process.zToMuMuOneTrackerMuon + - process.goodZToMuMuOneTrackerMuon + - process.goodZToMuMuOneTrackerMuonFirstHLT + - process.goodZToMuMuOneTrackerMuonPlots, - "goodZToMuMuOneTrackerMuon", "goodZToMuMuOneTrackerMuon", - "single") - - -addModulesFromTemplate( - ~process.goodZToMuMu + -# process.dimuonsOneTrackerMuon + - process.zToMuMuOneTrackerMuon + - process.goodZToMuMuOneTrackerMuon + - process.zToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1 + - process.goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1+ - process.goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1FirstHLT + - process.goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1Plots, - "goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1", "goodZToMuMuOneTrackerMuonOnlyOneMuonWithEtaLessThan2p1", - "single") - - - -addModulesFromTemplate( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackFirstHLT + - process.goodZToMuMuOneTrackPlots, - "goodZToMuMuOneTrack", "goodZToMuMuOneTrack", - "single") - -process.out = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('zMuSa-UML_test.root'), - outputCommands = cms.untracked.vstring( - "drop *", - "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*" - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuOneStandAloneMuonPath" - ) - ) -) - -process.endPath = cms.EndPath( - process.eventInfo - + process.out -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_EtaRegions.py b/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_EtaRegions.py deleted file mode 100644 index f4f1f8635d6e6..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_EtaRegions.py +++ /dev/null @@ -1,638 +0,0 @@ -from __future__ import print_function -#analysis code. -#It produces plot for Fit study -#author Luca Lista -#modificated by Noli Pasquale 21-10-2008 - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuAnalysis") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(1) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( -"rfio:/dpm/na.infn.it/home/cms/store/user/noli/reskim/zmm/zmumu_reskim_1.root" - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("zMuMu_qcd.root") -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.0 & abs(daughter(1).eta)<2.0 & mass > 20"), - # adjusting isolation values - isoCut = cms.double(3.0), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - # setting alpha=0 in order to have only tracker isolation - alpha = cms.untracked.double(0), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - ) - -#selecting endcap / endcap-barrel / barrel regions - -dict = {'Barrel':[0, 0.8],'BarrEnd':[0.8, 1.2],'EndCap':[1.2, 2.0] } - - -def addModuleEtaRegions(moduleToModify, region, src="", cut =""): - print("selection for: ", moduleToModify.label()+region) - etaMin = dict[region][0] - etaMax = dict[region][1] - module = copy.deepcopy(moduleToModify) - if cut=="": - cut = "mass>20 & charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & ( abs(daughter(0).eta) > %5.3f & abs( daughter(0).eta )< %5.3f) & ( abs(daughter(1).eta) > %5.3f & abs( daughter(1).eta )< %5.3f) " %(etaMin, etaMax, etaMin, etaMax) - print(region, ") cut = ", cut) - if 'cut' in module.parameters_(): - setattr(module, "cut", cut) - if 'src' in module.parameters_(): - setattr(module, "src", src) - copyModuleLabel = moduleToModify.label() + region - setattr(process, copyModuleLabel, module) - return module - - -def addPlotModuleEtaRegions(plotModuleToModify, region, src=""): - print("selection for: ", plotModuleToModify.label()) - etaMin = dict[region][0] - etaMax = dict[region][1] - plotModule = copy.deepcopy(plotModuleToModify) - for h in plotModule.histograms: - h.description.setValue(h.description.value() + ": " + "|#eta|: [%5.3f, %5.3f]" %(etaMin, etaMax)) - if 'src' in plotModule.parameters_(): - setattr(plotModule, "src", src) - copyPlotModuleLabel = plotModuleToModify.label() + region - setattr(process, copyPlotModuleLabel, plotModule) - return plotModule - - - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -for region in dict.keys(): - addModuleEtaRegions(process.goodZToMuMu, region,"dimuonsGlobal" ) - -#ZMuMu: richiedo almeno 1 HLT trigger match.Per la shape -process.goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - -## for region in dict.keys(): -## addModuleEtaRegions(process.goodZToMuMuAtLeast1HLT, region, addModuleEtaRegions(process.goodZToMuMu, region,"dimuonsGlobal" ) ) - - - -#ZMuMu: richiedo 2 HLT trigger match -process.goodZToMuMu2HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("bothMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - -## for region in dict.keys(): -## addModuleEtaRegions(process.goodZToMuMu2HLT, region,addModuleEtaRegions(process.goodZToMuMu, region,"dimuonsGlobal" ) ) - - - - -#ZMuMu: richiedo 1 HLT trigger match -process.goodZToMuMu1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) -## for region in dict.keys(): -## addModuleEtaRegions(process.goodZToMuMu1HLT, region,addModuleEtaRegions(process.goodZToMuMu, region,"dimuonsGlobal" ) ) - - - -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -for region in dict.keys(): - addModuleEtaRegions(process.nonIsolatedZToMuMu, region,"dimuonsGlobal" ) - - - -#ZMuMu1notIso: richiedo almeno un trigger -process.nonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("nonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) -## for region in dict.keys(): -## addModuleEtaRegions(process.nonIsolatedZToMuMuAtLeast1HLT, region, addModuleEtaRegions(process.nonIsolatedZToMuMu, region,"dimuonsGlobal" )) - - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - ## for region in dict.keys(): -## addModuleEtaRegions(process.zToMuGlobalMuOneTrack, region, "dimuonsOneTrack" ,"daughter(0).isGlobalMuon = 1") - - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) -for region in dict.keys(): - addModuleEtaRegions(process.zToMuMuOneTrack, region, "zToMuGlobalMuOneTrack" ) - - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -for region in dict.keys(): - addModuleEtaRegions(process.zToMuMuOneStandAloneMuon, region, "dimuonsOneStandAloneMuon" ) - - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrackBarrel = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrackBarrel"), - overlap = cms.InputTag("goodZToMuMuBarrel"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrackEndCap = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrackEndCap"), - overlap = cms.InputTag("goodZToMuMuEndCap"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrackBarrEnd = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrackBarrEnd"), - overlap = cms.InputTag("goodZToMuMuBarrEnd"), - filter = cms.bool(True) -) - - -#ZMuTk:richiedo che il muGlobal 'First' ha HLT match -process.goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrackFirstHLTBarrel = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrackBarrel"), - condition =cms.string("firstMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrackFirstHLTEndCap = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrackEndCap"), - condition =cms.string("firstMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) -process.goodZToMuMuOneTrackFirstHLTBarrEnd = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrackBarrEnd"), - condition =cms.string("firstMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -## for region in dict.keys(): -## addModuleEtaRegions(process.goodZToMuMuOneStandAloneMuon, region, addModuleEtaRegions(process.zToMuMuOneStandAloneMuon, region, "dimuonsOneStandAloneMuon" )) - -#ZMuSta:richiedo che il muGlobal 'First' ha HLT match -process.goodZToMuMuOneStandAloneMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - condition =cms.string("firstMatched"), - hltPath = cms.string("hltSingleMuNoIsoL3PreFiltered"), - filter = cms.bool(True) -) -## for region in dict.keys(): -## addModuleEtaRegions(process.goodZToMuMuOneStandAloneMuonFirstHLT, region,addModuleEtaRegions(process.goodZToMuMuOneStandAloneMuon, region, addModuleEtaRegions(process.zToMuMuOneStandAloneMuon, region, "dimuonsOneStandAloneMuon" )) ) - - -process.zmumuSaMassHistogram = cms.EDAnalyzer( - "ZMuMuSaMassHistogram", - src_m = cms.InputTag("goodZToMuMu"), - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbin = cms.untracked.int32(200) -# name = cms.untracked.string("zMass") - ) - -for region in dict.keys(): - addModuleEtaRegions(process.zmumuSaMassHistogram, region, addModuleEtaRegions(process.goodZToMuMu, region,"dimuonsGlobal" ) ) - - - -goodZToMuMuTemplate = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string(""), - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(False) -) - -### Plot ### - -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)") - ) - ) -) - -#ZMuMu almeno 1 HLT + 2 track-iso (Shape) -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - -#ZMuMu almeno 1 HLT + almeno 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -for region in dict.keys(): - addPlotModuleEtaRegions(process.goodZToMuMuPlots, region, "goodZToMuMuAtLeast1HLT" ) - - -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) -for region in dict.keys(): - addPlotModuleEtaRegions(process.nonIsolatedZToMuMuPlots, region, "nonIsolatedZToMuMuAtLeast1HLT" ) - - - - - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -#ZMuMu almeno 1 HLT + 2 track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate - -#ZMuMu 1 HLT + 2 track-iso -process.goodZToMuMu1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu1HLTPlots.src = cms.InputTag("goodZToMuMu1HLT") - -for region in dict.keys(): - addPlotModuleEtaRegions(process.goodZToMuMu1HLTPlots, region, "goodZToMuMuAtLeast1HLT" ) - -#ZMuMu 2 HLT + 2 track-iso -process.goodZToMuMu2HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu2HLTPlots.src = cms.InputTag("goodZToMuMu2HLT") -for region in dict.keys(): - addPlotModuleEtaRegions(process.goodZToMuMu2HLTPlots, region, "goodZToMuMuAtLeast1HLT" ) - - -#ZMuSta First HLT + 2 track-iso -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") -for region in dict.keys(): - addPlotModuleEtaRegions(process.goodZToMuMuOneStandAloneMuonPlots, region, "goodZToMuMuOneStandAloneMuonFirstHLT" ) - - - - -#ZMuTk First HLT + 2 track-iso -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") - -process.goodZToMuMuOneTrackPlotsBarrel = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlotsBarrel.src = cms.InputTag("goodZToMuMuOneTrackFirstHLTBarrel") - -process.goodZToMuMuOneTrackPlotsEndCap = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlotsEndCap.src = cms.InputTag("goodZToMuMuOneTrackFirstHLTEndCap") - -process.goodZToMuMuOneTrackPlotsBarrEnd = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlotsBarrEnd.src = cms.InputTag("goodZToMuMuOneTrackFirstHLTBarrEnd") - - -# N-tuples - -process.goodZToMuMuOneStandAloneMuonNtuple = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("mass"), - quantity = cms.untracked.string("mass") - ) - ) -) - -process.initialGoodZToMuMuPath = cms.Path( - process.goodZToMuMu + - process.zmumuSaMassHistogram -) - -process.initialGoodZToMuMuBarrelPath = cms.Path( - process.goodZToMuMuBarrel+ - process.zmumuSaMassHistogramBarrel -) - -process.initialGoodZToMuMuEndCapPath = cms.Path( - process.goodZToMuMuEndCap+ - process.zmumuSaMassHistogramEndCap -) - -process.initialGoodZToMuMuBarEndCapPath = cms.Path( - process.goodZToMuMuBarrEnd+ - process.zmumuSaMassHistogramBarrEnd -) - - - -process.goodZToMuMuFinalPath = cms.Path ( - process.goodZToMuMu + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuPlots - ) - -process.goodZToMuMuFinalBarrelPath = cms.Path ( - process.goodZToMuMuBarrel + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuPlotsBarrel - ) - -process.goodZToMuMuFinalEndCapPath = cms.Path ( - process.goodZToMuMuEndCap + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuPlotsEndCap - ) - -process.goodZToMuMuFinalBarrEndPath = cms.Path ( - process.goodZToMuMuBarrEnd + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuPlotsBarrEnd - ) - -process.goodZToMuMu2HLTFinalPath= cms.Path( - process.goodZToMuMu + - process.goodZToMuMu2HLT + - process.goodZToMuMu2HLTPlots - ) - - -process.goodZToMuMu2HLTBarrelFinalPath= cms.Path( - process.goodZToMuMuBarrel + - process.goodZToMuMu2HLT + - process.goodZToMuMu2HLTPlotsBarrel - ) - -process.goodZToMuMu2HLTEndCapFinalPath= cms.Path( - process.goodZToMuMuEndCap+ - process.goodZToMuMu2HLT + - process.goodZToMuMu2HLTPlotsEndCap - ) - -process.goodZToMuMu2HLTBarrEndFinalPath= cms.Path( - process.goodZToMuMuBarrEnd + - process.goodZToMuMu2HLT + - process.goodZToMuMu2HLTPlotsBarrEnd - ) - - -process.goodZToMuMu1HLTFinalPath= cms.Path( - process.goodZToMuMu + - process.goodZToMuMu1HLT + - process.goodZToMuMu1HLTPlots - ) - - -process.goodZToMuMu1HLTBarrelFinalPath= cms.Path( - process.goodZToMuMuBarrel + - process.goodZToMuMu1HLT + - process.goodZToMuMu1HLTPlotsBarrel - ) - -process.goodZToMuMu1HLTEndCapFinalPath= cms.Path( - process.goodZToMuMuEndCap+ - process.goodZToMuMu1HLT + - process.goodZToMuMu1HLTPlotsEndCap - ) - -process.goodZToMuMu1HLTBarrEndFinalPath= cms.Path( - process.goodZToMuMuBarrEnd + - process.goodZToMuMu1HLT + - process.goodZToMuMu1HLTPlotsBarrEnd - ) - - - -process.nonIsolatedZToMuMuFinalPath = cms.Path ( - process.nonIsolatedZToMuMu + - process.nonIsolatedZToMuMuAtLeast1HLT + - process.nonIsolatedZToMuMuPlots - ) - -process.nonIsolatedZToMuMuFinalBarrelPath = cms.Path ( - process.nonIsolatedZToMuMuBarrel + - process.nonIsolatedZToMuMuAtLeast1HLT + - process.nonIsolatedZToMuMuPlotsBarrel - ) - -process.nonIsolatedZToMuMuFinalEndCapPath = cms.Path ( - process.nonIsolatedZToMuMuEndCap + - process.nonIsolatedZToMuMuAtLeast1HLT + - process.nonIsolatedZToMuMuPlotsEndCap - ) - -process.nonIsolatedZToMuMuFinalBarrEndPath = cms.Path ( - process.nonIsolatedZToMuMuBarrEnd + - process.nonIsolatedZToMuMuAtLeast1HLT + - process.nonIsolatedZToMuMuPlotsBarrEnd - ) - - - - -process.goodZToMuMuOneStandAloneMuonFinalPath=cms.Path( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.goodZToMuMuOneStandAloneMuonNtuple + - process.goodZToMuMuOneStandAloneMuonPlots - ) - -process.goodZToMuMuOneStandAloneMuonFinalBarrelPath=cms.Path( - ~process.goodZToMuMuBarrel + - process.zToMuMuOneStandAloneMuonBarrel + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.goodZToMuMuOneStandAloneMuonNtuple + - process.goodZToMuMuOneStandAloneMuonPlotsBarrel - ) - -process.goodZToMuMuOneStandAloneMuonFinalEndCapPath=cms.Path( - ~process.goodZToMuMuEndCap + - process.zToMuMuOneStandAloneMuonEndCap + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.goodZToMuMuOneStandAloneMuonNtuple + - process.goodZToMuMuOneStandAloneMuonPlotsEndCap - ) - -process.goodZToMuMuOneStandAloneMuonFinalBarrEndPath=cms.Path( - ~process.goodZToMuMuBarrEnd + - process.zToMuMuOneStandAloneMuonBarrEnd + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.goodZToMuMuOneStandAloneMuonNtuple + - process.goodZToMuMuOneStandAloneMuonPlotsBarrEnd - ) - - - - -process.goodZToMuMuOneTrackFinalPath=cms.Path( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackFirstHLT + - process.goodZToMuMuOneTrackPlots - ) - -process.goodZToMuMuOneTrackFinalBarrelPath=cms.Path( - ~process.goodZToMuMuBarrel + - ~process.zToMuMuOneStandAloneMuonBarrel + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrackBarrel + - process.goodZToMuMuOneTrackBarrel + - process.goodZToMuMuOneTrackFirstHLTBarrel + - process.goodZToMuMuOneTrackPlotsBarrel - ) - -process.goodZToMuMuOneTrackFinalEndCapPath=cms.Path( - ~process.goodZToMuMuEndCap + - ~process.zToMuMuOneStandAloneMuonEndCap + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrackEndCap + - process.goodZToMuMuOneTrackEndCap + - process.goodZToMuMuOneTrackFirstHLTEndCap + - process.goodZToMuMuOneTrackPlotsEndCap - ) - -process.goodZToMuMuOneTrackFinalBarrEndPath=cms.Path( - ~process.goodZToMuMuBarrEnd + - ~process.zToMuMuOneStandAloneMuonBarrEnd + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrackBarrEnd + - process.goodZToMuMuOneTrackBarrEnd + - process.goodZToMuMuOneTrackFirstHLTBarrEnd + - process.goodZToMuMuOneTrackPlotsBarrEnd - ) - - - - - - - -process.out = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('file:./zMuSa-UML.root'), - outputCommands = cms.untracked.vstring( - "drop *", - "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*" - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuOneStandAloneMuonFinalPath" - ) - ) -) - -process.endPath = cms.EndPath( - process.eventInfo + - process.out -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_ntuple.py b/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_ntuple.py deleted file mode 100644 index 4d3a734f0ead3..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_ntuple.py +++ /dev/null @@ -1,889 +0,0 @@ -from __future__ import print_function -#analysis code. -#It produces plot for Fit study -#author Luca Lista -#modificated by Noli Pasquale 21-10-2008 -#modified by Annapaola de Cosa 18-12-2008 -#modified by Michele de Gruttola 08-10-2009 - - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuAnalysis") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( -# input = cms.untracked.int32(17810) - input = cms.untracked.int32(-1) -) - - -process.load("Configuration.StandardSequences.MagneticField_cff") - - - -#process.load("ElectroWeakAnalysis/ZMuMu/OCTSUBSKIM_cff") - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_1.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_2.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_3.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_4.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_5.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_6.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_7.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_8.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_9.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_10.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_11.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_12.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_13.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_14.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_15.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_16.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_17.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_18.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_19.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_20.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_21.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_22.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_23.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_24.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_25.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_26.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_27.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_28.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_29.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_30.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_31.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_32.root", -# "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_33.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_34.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_35.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_36.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_37.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_38.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_39.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_40.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_41.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_42.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_43.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_44.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_45.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_46.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_47.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_48.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_49.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_50.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_51.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_52.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_53.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_54.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_55.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_56.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_57.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_58.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_59.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_60.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_61.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_62.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_63.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_64.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_65.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_66.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_67.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_68.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_69.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_70.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_71.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_72.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_73.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_74.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_75.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_76.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_77.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_78.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_79.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_80.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_81.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_82.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_83.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_84.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_85.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_86.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_87.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_88.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_89.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_90.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_91.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_92.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_93.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_94.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_95.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_96.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_97.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_98.root", - "rfio:/castor/cern.ch/user/d/degrutto/zmmWithBsPv/testZMuMuSubSkim_99.root" - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("Analysis_zmm_10TeV_SameCharge.root") -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 10 & daughter(1).pt > 10 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 0"), - isoCut = cms.double(3.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - -# For standard isolation (I_Tkr<3GeV) choose this configuration: -# isoCut = cms.double(3.), -# ptThreshold = cms.untracked.double(1.5), -# etEcalThreshold = cms.untracked.double(0.2), -# etHcalThreshold = cms.untracked.double(0.5), -# deltaRVetoTrk = cms.untracked.double(0.015), -# deltaRTrk = cms.untracked.double(0.3), -# deltaREcal = cms.untracked.double(0.25), -# deltaRHcal = cms.untracked.double(0.25), -# alpha = cms.untracked.double(0.), -# beta = cms.untracked.double(-0.75), -# relativeIsolation = cms.bool(False) - ) - - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - - -# same charge dimuons.... -process.dimuonsGlobalSameCharge = cms.EDFilter("CandViewRefSelector", - src = cms.InputTag("dimuons"), - cut = cms.string('mass > 20 & daughter(0).isGlobalMuon = 1 & daughter(1).isGlobalMuon = 1') -) - -process.goodZToMuMuSameCharge = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobalSameCharge"), - filter = cms.bool(True) -) -process.goodZToMuMuSameCharge.cut=cms.string("charge!=0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 20") - - -#ZMuMu: requiring at least 1 HLT trigger match (for the shape) -process.goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - - -#ZMuMu: requiring 2 HLT trigger match -process.goodZToMuMu2HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("bothMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu: requiring 1 HLT trigger match -process.goodZToMuMu1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu:at least one muon is not isolated -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -#ZMuMu:1 muon is not isolated -process.oneNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuOneNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - -#ZMuMu: 2 muons are not isolated -process.twoNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuTwoNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - - - -#ZMuMunotIso: requiring at least 1 trigger -process.nonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("nonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMuOnenotIso: requiring at least 1 trigger -process.oneNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("oneNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMuTwonotIso: requiring at least 1 trigger -process.twoNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("twoNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuTk:requiring that the GlobalMuon 'First' has HLT match -process.goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuSta:requiring that the GlobalMuon has HLT match -process.goodZToMuMuOneStandAloneMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.zmumuSaMassHistogram = cms.EDAnalyzer( - "ZMuMuSaMassHistogram", - src_m = cms.InputTag("goodZToMuMu"), - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbin = cms.untracked.int32(200) - # name = cms.untracked.string("zMass") - ) - -goodZToMuMuTemplate = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("replace this string with your cut"), - src = cms.InputTag("goodZToMuMuAtLeast1HLT"), - filter = cms.bool(False) -) - - - -#### Plot #### -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(2000.0), - nbins = cms.untracked.int32(2000), - name = cms.untracked.string("zMassUpToTwoTeV"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(-10.0), - max = cms.untracked.double(10.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zEta"), - description = cms.untracked.string("Z #eta"), - plotquantity = cms.untracked.string("eta") - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("zRapidity"), - description = cms.untracked.string("Z y"), - plotquantity = cms.untracked.string("rapidity") - ), - cms.PSet( - min = cms.untracked.double(0), - max = cms.untracked.double(200), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zPt"), - description = cms.untracked.string("Z p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("pt") - ), - cms.PSet( - min = cms.untracked.double(-4), - max = cms.untracked.double(4), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("zPhi"), - description = cms.untracked.string("Z #phi"), - plotquantity = cms.untracked.string("phi") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1Eta"), - description = cms.untracked.string("muon1 #eta"), - plotquantity = cms.untracked.string("daughter(0).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2Eta"), - description = cms.untracked.string("muon2 #eta"), - plotquantity = cms.untracked.string("daughter(1).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1y"), - description = cms.untracked.string("muon1 y"), - plotquantity = cms.untracked.string("daughter(0).rapidity"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2y"), - description = cms.untracked.string("muon2 y"), - plotquantity = cms.untracked.string("daughter(1).rapidity"), - ), -cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu1phi"), - description = cms.untracked.string("muon1 #phi"), - plotquantity = cms.untracked.string("daughter(0).phi"), - ), - cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu2phi"), - description = cms.untracked.string("muon2 #phi"), - plotquantity = cms.untracked.string("daughter(1).phi"), - ), - cms.PSet( - min = cms.untracked.double(-0.1), - max = cms.untracked.double(6.9), - nbins = cms.untracked.int32(7000), - name = cms.untracked.string("absMu1phiMinusMu2phi"), - description = cms.untracked.string("|mu1 #phi - mu2 #phi|"), - plotquantity = cms.untracked.string("abs(daughter(0).phi - daughter(1).phi)"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dxy"), - description = cms.untracked.string("muon1 dxy"), - plotquantity = cms.untracked.string("(- daughter(0).vx * daughter(0).py + daughter(0).vy * daughter(0).px) / daughter(0).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dxy"), - description = cms.untracked.string("muon2 dxy"), - plotquantity = cms.untracked.string("(- daughter(1).vx * daughter(1).py + daughter(1).vy * daughter(1).px) / daughter(1).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dz"), - description = cms.untracked.string("muon1 dz"), - plotquantity = cms.untracked.string("daughter(0).vz - ( daughter(0).vx * daughter(0).px + daughter(0).vy * daughter(0).py) / daughter(0).pt * daughter(0).pz / daughter(0).pt"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dz"), - description = cms.untracked.string("muon2 dz"), - plotquantity = cms.untracked.string("daughter(1).vz - ( daughter(1).vx * daughter(1).px + daughter(1).vy * daughter(1).py) / daughter(1).pt * daughter(1).pz / daughter(1).pt"), - ) - ) -) - -## # dxy constructed from the vtx position -## dxy0 = " (- daughter(0).vx * daughter(0).py + daughter(0).vy * daughter(0).px) / daughter(0).pt " -## dxy1 = " ( - daughter(1).vx * daughter(1).py + daughter(1).vy * daughter(1).px) / daughter(1).pt " -## # dz constructed from vertex position -## dz0 = " daughter(0).vz - ( daughter(0).vx * daughter(0).px + daughter(0).vy * daughter(0).py) / daughter(0).pt * daughter(0).pz / daughter(0).pt " -## dz1 = " daughter(1).vz - ( daughter(1).vx * daughter(1).px + daughter(1).vy * daughter(1).py) / daughter(1).pt * daughter(1).pz / daughter(1).pt " - - -#ZMuMu at least 1 HLT + 2 track-iso (Shape) -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - -#ZMuMu at least 1 HLT + at least 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) - -#ZMuMu at least 1 HLT + 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -oneNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -oneNonIsolatedZToMuMuPlots.src = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "oneNonIsolatedZToMuMuPlots", oneNonIsolatedZToMuMuPlots) - -#ZMuMu at least 1 HLT + 2 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -twoNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -twoNonIsolatedZToMuMuPlots.src = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "twoNonIsolatedZToMuMuPlots", twoNonIsolatedZToMuMuPlots) - - - - -etaBounds = [2.1] -## if you want to perform studies on different eta bins... -##### etaBounds = [-2.1, -1.2, -0.8, 0.8, 1.2, 2.1] - -def addModulesFromTemplate(sequence, moduleLabel, src, probeSelection): - print("selection for: ", moduleLabel) - for i in range(len(etaBounds)-1): - etaMin = etaBounds[i] - etaMax = etaBounds[i+1] - module = copy.deepcopy(goodZToMuMuTemplate) - if probeSelection == "single": - cut = "%5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax) - elif probeSelection == "double": - cut = "%5.3f < daughter(0).eta < %5.3f | %5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax, etaMin, etaMax) - print(i, ") cut = ", cut) - setattr(module, "cut", cut) - setattr(module, "src", cms.InputTag(src)) - copyModuleLabel = moduleLabel + str(i) - setattr(process, copyModuleLabel, module) - if sequence == None: - sequence = module - else: - sequence = sequence + module - plotModule = copy.deepcopy(goodZToMuMuPlotsTemplate) - setattr(plotModule, "src", cms.InputTag(copyModuleLabel)) - for h in plotModule.histograms: - h.description.setValue(h.description.value() + ": " + "#eta: [%5.3f, %5.3f]" %(etaMin, etaMax)) - plotModuleLabel = moduleLabel + "Plots" + str(i) - setattr(process, plotModuleLabel, plotModule) - sequence = sequence + plotModule - path = cms.Path(sequence) - setattr(process, moduleLabel+"Path", path) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -#ZMuMu at least 1 HLT + 2 track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate - -#ZMuMu 1 HLT + 2 track-iso -process.goodZToMuMu1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu1HLTPlots.src = cms.InputTag("goodZToMuMu1HLT") - -#ZMuMu 2 HLT + 2 track-iso -process.goodZToMuMu2HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu2HLTPlots.src = cms.InputTag("goodZToMuMu2HLT") - -#ZMuSta First HLT + 2 track-iso -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") - -#ZMuTk First HLT + 2 track-iso -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") - - -#ZMuMu same charge -process.goodZToMuMuSameChargeAtLeast1HLT = copy.deepcopy(process.goodZToMuMuAtLeast1HLT) -process.goodZToMuMuSameChargeAtLeast1HLT.src= cms.InputTag("goodZToMuMuSameCharge") - -process.goodZToMuMuSameChargeAtLeast1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuSameChargeAtLeast1HLTPlots.src = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLT") -process.goodZToMuMuSameCharge2HLT = copy.deepcopy(process.goodZToMuMu2HLT) -process.goodZToMuMuSameCharge2HLT.src= cms.InputTag("goodZToMuMuSameCharge") - -process.goodZToMuMuSameCharge2HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuSameCharge2HLTPlots.src = cms.InputTag("goodZToMuMuSameCharge2HLT") - -process.goodZToMuMuSameCharge1HLT = copy.deepcopy(process.goodZToMuMu1HLT) -process.goodZToMuMuSameCharge1HLT.src= cms.InputTag("goodZToMuMuSameCharge") - -process.goodZToMuMuSameCharge1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuSameCharge1HLTPlots.src = cms.InputTag("goodZToMuMuSameCharge1HLT") - - -## process.globalMuQualityCutsAnalysis= cms.EDAnalyzer( -## "GlbMuQualityCutsAnalysis", -## src = cms.InputTag("goodZToMuMuAtLeast1HLT"), -## ptMin = cms.untracked.double(0.0), -## massMin = cms.untracked.double(0.0), -## massMax = cms.untracked.double(120.0), -## etaMin = cms.untracked.double(-1.0), -## etaMax = cms.untracked.double(10.0), -## trkIso = cms.untracked.double(10000), -## chi2Cut = cms.untracked.double(10), -## nHitCut = cms.untracked.int32(10) -## ) - - -# N-tuples - -process.goodZToMuMuOneStandAloneMuonNtuple = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("mass"), - quantity = cms.untracked.string("mass") - ) - ) -) - -process.goodZToMuMu2HLTVtxed = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("goodZToMuMu2HLT") -) - -process.goodZToMuMu2HLTVtxedNtuple = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag("goodZToMuMu2HLTVtxed"), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("mass"), - quantity = cms.untracked.string("mass") - ), - cms.PSet( - tag = cms.untracked.string("vertexNdof"), - quantity = cms.untracked.string("vertexNdof") - ), - cms.PSet( - tag = cms.untracked.string("vertexNormalizedChi2"), - quantity = cms.untracked.string("vertexNormalizedChi2") - ), - ) -) - - - - - - - -process.goodZToMuMuEdmNtuple = cms.EDProducer( - "ZToLLEdmNtupleDumper", - zBlocks = cms.VPSet( - cms.PSet( - zName = cms.string("zGolden"), - z = cms.InputTag("goodZToMuMuAtLeast1HLT"), - zGenParticlesMatch = cms.InputTag(""), - beamSpot = cms.InputTag("offlineBeamSpot"), - primaryVertices = cms.InputTag("offlinePrimaryVerticesWithBS"), - ptThreshold = cms.double(1.5), - etEcalThreshold = cms.double(0.2), - etHcalThreshold = cms.double(0.5), - deltaRVetoTrk = cms.double(0.015), - deltaRTrk = cms.double(0.3), - deltaREcal = cms.double(0.25), - deltaRHcal = cms.double(0.25), - alpha = cms.double(0.), - beta = cms.double(-0.75), - relativeIsolation = cms.bool(False), - hltPath = cms.string("HLT_Mu9") - - ), - ) -) - - - -process.goodZToMuMu2HLTEdmNtuple = copy.deepcopy(process.goodZToMuMuEdmNtuple) -process.goodZToMuMu2HLTEdmNtuple.zBlocks[0].z = cms.InputTag("goodZToMuMu2HLT") -process.goodZToMuMu2HLTEdmNtuple.zBlocks[0].zName = cms.string("zGolden2HLT") - - -process.goodZToMuMu1HLTEdmNtuple = copy.deepcopy(process.goodZToMuMuEdmNtuple) -process.goodZToMuMu1HLTEdmNtuple.zBlocks[0].z = cms.InputTag("goodZToMuMu1HLT") -process.goodZToMuMu1HLTEdmNtuple.zBlocks[0].zName = cms.string("zGolden1HLT") - -process.oneNonIsolatedZToMuMuEdmNtuple = copy.deepcopy(process.goodZToMuMuEdmNtuple) -process.oneNonIsolatedZToMuMuEdmNtuple.zBlocks[0].z = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") -process.oneNonIsolatedZToMuMuEdmNtuple.zBlocks[0].zName = cms.string("z1NotIso") - -process.twoNonIsolatedZToMuMuEdmNtuple = copy.deepcopy(process.goodZToMuMuEdmNtuple) -process.twoNonIsolatedZToMuMuEdmNtuple.zBlocks[0].z = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") -process.twoNonIsolatedZToMuMuEdmNtuple.zBlocks[0].zName = cms.string("z2NotIso") - - -process.goodZToMuMuSameChargeEdmNtuple= copy.deepcopy(process.goodZToMuMuEdmNtuple) -process.goodZToMuMuSameChargeEdmNtuple.zBlocks[0].z = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLT") -process.goodZToMuMuSameChargeEdmNtuple.zBlocks[0].zName = cms.string("zSameCharge") - - -process.goodZToMuMuOneStandAloneEdmNtuple= copy.deepcopy(process.goodZToMuMuEdmNtuple) -process.goodZToMuMuOneStandAloneEdmNtuple.zBlocks[0].z=cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") -process.goodZToMuMuOneStandAloneEdmNtuple.zBlocks[0].zName=cms.string("zMuSta") - -process.goodZToMuMuOneTrackEdmNtuple= copy.deepcopy(process.goodZToMuMuEdmNtuple) -process.goodZToMuMuOneTrackEdmNtuple.zBlocks[0].z=cms.InputTag("goodZToMuMuOneTrackFirstHLT") -process.goodZToMuMuOneTrackEdmNtuple.zBlocks[0].zName=cms.string("zMuTrk") - - - - -process.initialGoodZToMuMuPath = cms.Path( - process.goodZToMuMu + - process.zmumuSaMassHistogram -) - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuPlots , -# process.goodZToMuMuEdmNtuple, - # process.globalMuQualityCutsAnalysis, - "goodZToMuMu", "goodZToMuMu", - "double") - - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu2HLT + - process.goodZToMuMu2HLTPlots + - process.goodZToMuMu2HLTEdmNtuple + - process.goodZToMuMu2HLTVtxed + - process.goodZToMuMu2HLTVtxedNtuple, - "goodZToMuMu2HLT", "goodZToMuMu2HLT", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu1HLT + - process.goodZToMuMu1HLTPlots + - process.goodZToMuMu1HLTEdmNtuple, - "goodZToMuMu1HLT", "goodZToMuMu1HLT", - "double") - -#process.globalMuQualityCutsAnalysisSameCharge = copy.deepcopy(process.globalMuQualityCutsAnalysis) -#process.globalMuQualityCutsAnalysisSameCharge.src = cms.InputTag("goodZToMuMuSameChargeAtLeast1HLT") - -addModulesFromTemplate( - process.dimuonsGlobalSameCharge+ - process.goodZToMuMuSameCharge + - process.goodZToMuMuSameChargeAtLeast1HLT+ - process.goodZToMuMuSameChargeAtLeast1HLTPlots + - process.goodZToMuMuSameChargeEdmNtuple, -# process.globalMuQualityCutsAnalysisSameCharge, - "goodZToMuMuSameCharge", "goodZToMuMuSameCharge", - "double") - - -addModulesFromTemplate( - process.dimuonsGlobalSameCharge+ - process.goodZToMuMuSameCharge + - process.goodZToMuMuSameCharge2HLT + - process.goodZToMuMuSameCharge2HLTPlots, - "goodZToMuMuSameCharge2HLT", "goodZToMuMuSameCharge2HLT", - "double") - -addModulesFromTemplate( - process.dimuonsGlobalSameCharge+ - process.goodZToMuMuSameCharge + - process.goodZToMuMuSameCharge1HLT + - process.goodZToMuMuSameCharge1HLTPlots, - "goodZToMuMuSameCharge1HLT", "goodZToMuMuSameCharge1HLT", - "double") - - - - -process.nonIsolatedZToMuMuPath = cms.Path ( - process.nonIsolatedZToMuMu + - process.nonIsolatedZToMuMuAtLeast1HLT + - process.nonIsolatedZToMuMuPlots - # process.nonIsolatedZToMuMuEdmNtuple -) -process.oneNonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMu + - process.oneNonIsolatedZToMuMu + - process.oneNonIsolatedZToMuMuAtLeast1HLT + - process.oneNonIsolatedZToMuMuPlots+ - process.oneNonIsolatedZToMuMuEdmNtuple -) - -process.twoNonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMu + - process.twoNonIsolatedZToMuMu + - process.twoNonIsolatedZToMuMuAtLeast1HLT + - process.twoNonIsolatedZToMuMuPlots + - process.twoNonIsolatedZToMuMuEdmNtuple - -) - -addModulesFromTemplate( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.goodZToMuMuOneStandAloneMuonNtuple + - process.goodZToMuMuOneStandAloneEdmNtuple + - process.goodZToMuMuOneStandAloneMuonPlots, - "goodZToMuMuOneStandAloneMuon", "goodZToMuMuOneStandAloneMuon", - "single") - -addModulesFromTemplate( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackFirstHLT + - process.goodZToMuMuOneTrackPlots + - process.goodZToMuMuOneTrackEdmNtuple , - "goodZToMuMuOneTrack", "goodZToMuMuOneTrack", - "single") - -process.out = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('Ntuple_test_v2.root'), - outputCommands = cms.untracked.vstring( - "drop *", - "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*", - "keep *_goodZToMuMuEdmNtuple_*_*", - "keep *_goodZToMuMu1HLTEdmNtuple_*_*", - "keep *_goodZToMuMu2HLTEdmNtuple_*_*", - "keep *_goodZToMuMuSameChargeEdmNtuple_*_*", - "keep *_nonIsolatedZToMuMuEdmNtuple_*_*", - "keep *_oneNonIsolatedZToMuMuEdmNtuple_*_*", - "keep *_twoNonIsolatedZToMuMuEdmNtuple_*_*", - "keep *_goodZToMuMuOneStandAloneEdmNtuple_*_*", - "keep *_goodZToMuMuOneTrackEdmNtuple_*_*", - "keep *_goodZToMuMu2HLTVtxedNtuple_*_*", - - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuOneStandAloneMuonPath", - "goodZToMuMuPath", - "goodZToMuMu1HLTPath", - "goodZToMuMu2HLTPath", - "goodZToMuMuSameChargePath", - "nonIsolatedZToMuMuPath", - "oneNonIsolatedZToMuMuPath", - "twoNonIsolatedZToMuMuPath", - "goodZToMuMuOneTrackPath", - ) - ) -) - -process.endPath = cms.EndPath( - process.eventInfo - + process.out -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_vtx.py b/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_vtx.py deleted file mode 100644 index 6ba343e0636bb..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_vtx.py +++ /dev/null @@ -1,1005 +0,0 @@ -from __future__ import print_function -#analysis code. -#It produces plot for Fit study -#author Luca Lista -#modificated by Noli Pasquale 21-10-2008 -#modified by Annapaola de Cosa 18-12-2008 -#modified by Michele de Gruttola 08-10-2009 - - - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuAnalysis") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( -# input = cms.untracked.int32(17810) - input = cms.untracked.int32(-1) -) - -process.MessageLogger.cerr.threshold = '' -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 - -#process.load("ElectroWeakAnalysis/ZMuMu/OCTSUBSKIM_cff") - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_1.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_10.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_11.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_12.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_13.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_14.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_15.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_16.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_17.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_18.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_19.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_2.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_20.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_21.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_22.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_23.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_24.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_25.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_26.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_27.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_28.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_29.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_3.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_30.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_31.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_32.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_33.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_34.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_35.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_36.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_37.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_38.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_39.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_4.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_40.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_41.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_42.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_44.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_45.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_46.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_47.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_48.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_49.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_5.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_50.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_51.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_52.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_53.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_54.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_55.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_56.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_57.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_58.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_59.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_6.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_60.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_61.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_62.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_63.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_64.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_65.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_66.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_67.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_68.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_69.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_7.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_70.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_71.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_72.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_73.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_74.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_75.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_76.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_77.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_78.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_79.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_8.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_80.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_81.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_82.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_83.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_84.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_85.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_86.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_87.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_88.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_89.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_9.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_90.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_91.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_92.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_93.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_94.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_95.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_96.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_97.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_98.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_99.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_100.root", -## "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/inclusiveMu15/testZMuMuSubSkim_101.root" - -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/zmm/testZMuMuSubSkim_1.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/zmm/testZMuMuSubSkim_2.root", -# "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_1.root", -# "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_2.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_3.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_4.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_5.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_6.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/TTbar/testZMuMuSubSkim_1.root", - - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("Analysis_ttbar_7TeV_vtx.root") -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 20"), - isoCut = cms.double(3.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - -# For standard isolation (I_Tkr<3GeV) choose this configuration: -# isoCut = cms.double(3.), -# ptThreshold = cms.untracked.double(1.5), -# etEcalThreshold = cms.untracked.double(0.2), -# etHcalThreshold = cms.untracked.double(0.5), -# deltaRVetoTrk = cms.untracked.double(0.015), -# deltaRTrk = cms.untracked.double(0.3), -# deltaREcal = cms.untracked.double(0.25), -# deltaRHcal = cms.untracked.double(0.25), -# alpha = cms.untracked.double(0.), -# beta = cms.untracked.double(-0.75), -# relativeIsolation = cms.bool(False) - - - ) - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - -#ZMuMu: requiring at least 1 HLT trigger match (for the shape) -process.goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -process.goodZToMuMuVtxedAtLeast1HLT = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - - -#ZMuMu: requiring 2 HLT trigger match -process.goodZToMuMu2HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("bothMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -process.goodZToMuMu2HLTVtxed = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("goodZToMuMu2HLT") -) - - -#ZMuMu: requiring 1 HLT trigger match -process.goodZToMuMu1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -process.goodZToMuMu1HLTVtxed = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("goodZToMuMu1HLT") -) - - -#ZMuMu:at least one muon is not isolated -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - - - -#ZMuMu:1 muon is not isolated -process.oneNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuOneNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - - - - -#ZMuMu: 2 muons are not isolated -process.twoNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuTwoNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - - - - - -#ZMuMunotIso: requiring at least 1 trigger -process.nonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("nonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - -process.nonIsolatedZToMuMuVtxed = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") -) - - -#ZMuMuOnenotIso: requiring at least 1 trigger -process.oneNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("oneNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.oneNonIsolatedZToMuMuVtxed = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") -) - - -#ZMuMuTwonotIso: requiring at least 1 trigger -process.twoNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("twoNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.twoNonIsolatedZToMuMuVtxed = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") -) - - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuTk:requiring that the GlobalMuon 'First' has HLT match -process.goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrackFirstHLTVtxed = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") -) - - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuSta:requiring that the GlobalMuon has HLT match -process.goodZToMuMuOneStandAloneMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuonFirstHLTVtxed = cms.EDProducer( - "KalmanVertexFitCompositeCandProducer", - src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") -) - - - -process.zmumuSaMassHistogram = cms.EDAnalyzer( - "ZMuMuSaMassHistogram", - src_m = cms.InputTag("goodZToMuMu"), - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbin = cms.untracked.int32(200) - # name = cms.untracked.string("zMass") - ) - -goodZToMuMuTemplate = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("replace this string with your cut"), - src = cms.InputTag("goodZToMuMuAtLeast1HLT"), - filter = cms.bool(False) -) - - - -#### Plot #### -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(2000.0), - nbins = cms.untracked.int32(2000), - name = cms.untracked.string("zMassUpToTwoTeV"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(-10.0), - max = cms.untracked.double(10.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zEta"), - description = cms.untracked.string("Z #eta"), - plotquantity = cms.untracked.string("eta") - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("zRapidity"), - description = cms.untracked.string("Z y"), - plotquantity = cms.untracked.string("rapidity") - ), - cms.PSet( - min = cms.untracked.double(0), - max = cms.untracked.double(200), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zPt"), - description = cms.untracked.string("Z p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("pt") - ), - cms.PSet( - min = cms.untracked.double(-4), - max = cms.untracked.double(4), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("zPhi"), - description = cms.untracked.string("Z #phi"), - plotquantity = cms.untracked.string("phi") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1Eta"), - description = cms.untracked.string("muon1 #eta"), - plotquantity = cms.untracked.string("daughter(0).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2Eta"), - description = cms.untracked.string("muon2 #eta"), - plotquantity = cms.untracked.string("daughter(1).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1y"), - description = cms.untracked.string("muon1 y"), - plotquantity = cms.untracked.string("daughter(0).rapidity"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2y"), - description = cms.untracked.string("muon2 y"), - plotquantity = cms.untracked.string("daughter(1).rapidity"), - ), -cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu1phi"), - description = cms.untracked.string("muon1 #phi"), - plotquantity = cms.untracked.string("daughter(0).phi"), - ), - cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu2phi"), - description = cms.untracked.string("muon2 #phi"), - plotquantity = cms.untracked.string("daughter(1).phi"), - ), - cms.PSet( - min = cms.untracked.double(-0.1), - max = cms.untracked.double(6.9), - nbins = cms.untracked.int32(7000), - name = cms.untracked.string("absMu1phiMinusMu2phi"), - description = cms.untracked.string("|mu1 #phi - mu2 #phi|"), - plotquantity = cms.untracked.string("abs(daughter(0).phi - daughter(1).phi)"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dxy"), - description = cms.untracked.string("muon1 dxy"), - plotquantity = cms.untracked.string("(- daughter(0).vx * daughter(0).py + daughter(0).vy * daughter(0).px) / daughter(0).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dxy"), - description = cms.untracked.string("muon2 dxy"), - plotquantity = cms.untracked.string("(- daughter(1).vx * daughter(1).py + daughter(1).vy * daughter(1).px) / daughter(1).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dz"), - description = cms.untracked.string("muon1 dz"), - plotquantity = cms.untracked.string("daughter(0).vz - ( daughter(0).vx * daughter(0).px + daughter(0).vy * daughter(0).py) / daughter(0).pt * daughter(0).pz / daughter(0).pt"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dz"), - description = cms.untracked.string("muon2 dz"), - plotquantity = cms.untracked.string("daughter(1).vz - ( daughter(1).vx * daughter(1).px + daughter(1).vy * daughter(1).py) / daughter(1).pt * daughter(1).pz / daughter(1).pt"), - ) - ) -) - -## # dxy constructed from the vtx position -## dxy0 = " (- daughter(0).vx * daughter(0).py + daughter(0).vy * daughter(0).px) / daughter(0).pt " -## dxy1 = " ( - daughter(1).vx * daughter(1).py + daughter(1).vy * daughter(1).px) / daughter(1).pt " -## # dz constructed from vertex position -## dz0 = " daughter(0).vz - ( daughter(0).vx * daughter(0).px + daughter(0).vy * daughter(0).py) / daughter(0).pt * daughter(0).pz / daughter(0).pt " -## dz1 = " daughter(1).vz - ( daughter(1).vx * daughter(1).px + daughter(1).vy * daughter(1).py) / daughter(1).pt * daughter(1).pz / daughter(1).pt " - - -#### Plot #### -zVtxPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(2000.0), - nbins = cms.untracked.int32(2000), - name = cms.untracked.string("zMassUpToTwoTeV"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(-10.0), - max = cms.untracked.double(10.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zEta"), - description = cms.untracked.string("Z #eta"), - plotquantity = cms.untracked.string("eta") - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("zRapidity"), - description = cms.untracked.string("Z y"), - plotquantity = cms.untracked.string("rapidity") - ), - cms.PSet( - min = cms.untracked.double(0), - max = cms.untracked.double(200), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zPt"), - description = cms.untracked.string("Z p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("pt") - ), - cms.PSet( - min = cms.untracked.double(-4), - max = cms.untracked.double(4), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("zPhi"), - description = cms.untracked.string("Z #phi"), - plotquantity = cms.untracked.string("phi") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1Eta"), - description = cms.untracked.string("muon1 #eta"), - plotquantity = cms.untracked.string("daughter(0).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2Eta"), - description = cms.untracked.string("muon2 #eta"), - plotquantity = cms.untracked.string("daughter(1).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1y"), - description = cms.untracked.string("muon1 y"), - plotquantity = cms.untracked.string("daughter(0).rapidity"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2y"), - description = cms.untracked.string("muon2 y"), - plotquantity = cms.untracked.string("daughter(1).rapidity"), - ), -cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu1phi"), - description = cms.untracked.string("muon1 #phi"), - plotquantity = cms.untracked.string("daughter(0).phi"), - ), - cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu2phi"), - description = cms.untracked.string("muon2 #phi"), - plotquantity = cms.untracked.string("daughter(1).phi"), - ), - cms.PSet( - min = cms.untracked.double(-0.1), - max = cms.untracked.double(6.9), - nbins = cms.untracked.int32(7000), - name = cms.untracked.string("absMu1phiMinusMu2phi"), - description = cms.untracked.string("|mu1 #phi - mu2 #phi|"), - plotquantity = cms.untracked.string("abs(daughter(0).phi - daughter(1).phi)"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dxy"), - description = cms.untracked.string("muon1 dxy"), - plotquantity = cms.untracked.string("(- daughter(0).vx * daughter(0).py + daughter(0).vy * daughter(0).px) / daughter(0).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dxy"), - description = cms.untracked.string("muon2 dxy"), - plotquantity = cms.untracked.string("(- daughter(1).vx * daughter(1).py + daughter(1).vy * daughter(1).px) / daughter(1).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dz"), - description = cms.untracked.string("muon1 dz"), - plotquantity = cms.untracked.string("daughter(0).vz - ( daughter(0).vx * daughter(0).px + daughter(0).vy * daughter(0).py) / daughter(0).pt * daughter(0).pz / daughter(0).pt"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dz"), - description = cms.untracked.string("muon2 dz"), - plotquantity = cms.untracked.string("daughter(1).vz - ( daughter(1).vx * daughter(1).px + daughter(1).vy * daughter(1).py) / daughter(1).pt * daughter(1).pz / daughter(1).pt"), - ), - cms.PSet( - min = cms.untracked.double(0), - max = cms.untracked.double(100), - nbins = cms.untracked.int32(100), - name = cms.untracked.string("vertexNdof"), - description = cms.untracked.string("vertexNdof"), - plotquantity = cms.untracked.string("vertexNdof"), - ), - cms.PSet( - min = cms.untracked.double(0), - max = cms.untracked.double(100), - nbins = cms.untracked.int32(100), - name = cms.untracked.string("vertexNormalizedChi2"), - description = cms.untracked.string("vertexNormalizedChi2"), - plotquantity = cms.untracked.string("vertexNormalizedChi2"), - ) - ) -) - - -#ZMuMu at least 1 HLT + 2 track-iso (Shape) -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - -goodZToMuMuVtxPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zVtxPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - - -#ZMuMu at least 1 HLT + at least 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate - -#ZMuMu at least 1HLT with vertex contraint -goodZToMuMuVtxPlots = copy.deepcopy(goodZToMuMuVtxPlotsTemplate) -goodZToMuMuVtxPlots.src = cms.InputTag("goodZToMuMuVtxedAtLeast1HLT") -setattr(process, "goodZToMuMuVtxPlots", goodZToMuMuVtxPlots) - - -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) - -nonIsolatedZToMuMuVtxPlots = copy.deepcopy(goodZToMuMuVtxPlotsTemplate) -nonIsolatedZToMuMuVtxPlots.src = cms.InputTag("nonIsolatedZToMuMuVtxed") -setattr(process, "nonIsolatedZToMuMuVtxPlots", nonIsolatedZToMuMuVtxPlots) - - - -#ZMuMu at least 1 HLT + 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -oneNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -oneNonIsolatedZToMuMuPlots.src = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "oneNonIsolatedZToMuMuPlots", oneNonIsolatedZToMuMuPlots) - -oneNonIsolatedZToMuMuVtxPlots = copy.deepcopy(goodZToMuMuVtxPlotsTemplate) -oneNonIsolatedZToMuMuVtxPlots.src = cms.InputTag("oneNonIsolatedZToMuMuVtxed") -setattr(process, "oneNonIsolatedZToMuMuVtxPlots", oneNonIsolatedZToMuMuVtxPlots) - - - -#ZMuMu at least 1 HLT + 2 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -twoNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -twoNonIsolatedZToMuMuPlots.src = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "twoNonIsolatedZToMuMuPlots", twoNonIsolatedZToMuMuPlots) - -twoNonIsolatedZToMuMuVtxPlots = copy.deepcopy(goodZToMuMuVtxPlotsTemplate) -twoNonIsolatedZToMuMuVtxPlots.src = cms.InputTag("twoNonIsolatedZToMuMuVtxed") -setattr(process, "twoNonIsolatedZToMuMuVtxPlots", twoNonIsolatedZToMuMuVtxPlots) - - - -etaBounds = [2.1] -## if you want to perform studies on different eta bins... -##### etaBounds = [-2.1, -1.2, -0.8, 0.8, 1.2, 2.1] - -def addModulesFromTemplate(sequence, moduleLabel, src, probeSelection): - print("selection for: ", moduleLabel) - for i in range(len(etaBounds)-1): - etaMin = etaBounds[i] - etaMax = etaBounds[i+1] - module = copy.deepcopy(goodZToMuMuTemplate) - if probeSelection == "single": - cut = "%5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax) - elif probeSelection == "double": - cut = "%5.3f < daughter(0).eta < %5.3f | %5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax, etaMin, etaMax) - print(i, ") cut = ", cut) - setattr(module, "cut", cut) - setattr(module, "src", cms.InputTag(src)) - copyModuleLabel = moduleLabel + str(i) - setattr(process, copyModuleLabel, module) - if sequence == None: - sequence = module - else: - sequence = sequence + module - plotModule = copy.deepcopy(goodZToMuMuPlotsTemplate) - setattr(plotModule, "src", cms.InputTag(copyModuleLabel)) - for h in plotModule.histograms: - h.description.setValue(h.description.value() + ": " + "#eta: [%5.3f, %5.3f]" %(etaMin, etaMax)) - plotModuleLabel = moduleLabel + "Plots" + str(i) - setattr(process, plotModuleLabel, plotModule) - sequence = sequence + plotModule - path = cms.Path(sequence) - setattr(process, moduleLabel+"Path", path) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -#ZMuMu at least 1 HLT + 2 track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate - -#ZMuMu 1 HLT + 2 track-iso -process.goodZToMuMu1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu1HLTPlots.src = cms.InputTag("goodZToMuMu1HLT") - -process.goodZToMuMu1HLTVtxPlots = copy.deepcopy(goodZToMuMuVtxPlotsTemplate) -process.goodZToMuMu1HLTVtxPlots.src = cms.InputTag("goodZToMuMu1HLTVtxed") - - -#ZMuMu 2 HLT + 2 track-iso -process.goodZToMuMu2HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu2HLTPlots.src = cms.InputTag("goodZToMuMu2HLT") - -process.goodZToMuMu2HLTVtxPlots = copy.deepcopy(goodZToMuMuVtxPlotsTemplate) -process.goodZToMuMu2HLTVtxPlots.src = cms.InputTag("goodZToMuMu2HLTVtxed") - - -#ZMuSta First HLT + 2 track-iso -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") - - -process.goodZToMuMuOneStandAloneMuonVtxPlots = copy.deepcopy(goodZToMuMuVtxPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonVtxPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLTVtxed") - - - -#ZMuTk First HLT + 2 track-iso -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") - -process.goodZToMuMuOneTrackVtxPlots = copy.deepcopy(goodZToMuMuVtxPlotsTemplate) -process.goodZToMuMuOneTrackVtxPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLTVtxed") - - -## process.dimuonGlobalAnalysis= cms.EDAnalyzer( -## "DimuonsAnalysis", -## src = cms.InputTag("dimuonsGlobal"), # dimuonsOneTrack, dimuonsOneStandAlone -## ptMin = cms.untracked.double(0.0), -## massMin = cms.untracked.double(0.0), -## massMax = cms.untracked.double(120.0), -## etaMin = cms.untracked.double(-1.0), -## etaMax = cms.untracked.double(10.0), -## trkIso = cms.untracked.double(10000), -## chi2Cut = cms.untracked.double(10), -## nHitCut = cms.untracked.int32(10) -## ) - -# N-tuples - -process.goodZToMuMuOneStandAloneMuonNtuple = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("mass"), - quantity = cms.untracked.string("mass") - ) - ) -) - -process.initialGoodZToMuMuPath = cms.Path( - process.goodZToMuMu + - process.zmumuSaMassHistogram -) - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuVtxedAtLeast1HLT + - process.goodZToMuMuPlots + -# process.dimuonGlobalAnalysis, - process.goodZToMuMuVtxPlots, - "goodZToMuMu", "goodZToMuMu", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu2HLT + - process.goodZToMuMu2HLTVtxed + - process.goodZToMuMu2HLTPlots + - process.goodZToMuMu2HLTVtxPlots, - "goodZToMuMu2HLT", "goodZToMuMu2HLT", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu1HLT + - process.goodZToMuMu1HLTVtxed + - process.goodZToMuMu1HLTPlots+ - process.goodZToMuMu1HLTVtxPlots, - "goodZToMuMu1HLT", "goodZToMuMu1HLT", - "double") - -process.nonIsolatedZToMuMuPath = cms.Path ( - process.nonIsolatedZToMuMu + - process.nonIsolatedZToMuMuAtLeast1HLT + - process.nonIsolatedZToMuMuVtxed + - process.nonIsolatedZToMuMuPlots+ - process.nonIsolatedZToMuMuVtxPlots -) -process.oneNonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMu + - process.oneNonIsolatedZToMuMu + - process.oneNonIsolatedZToMuMuAtLeast1HLT + - process.oneNonIsolatedZToMuMuVtxed + - process.oneNonIsolatedZToMuMuPlots+ - process.oneNonIsolatedZToMuMuVtxPlots - -) - -process.twoNonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMu + - process.twoNonIsolatedZToMuMu + - process.twoNonIsolatedZToMuMuAtLeast1HLT + - process.twoNonIsolatedZToMuMuVtxed + - process.twoNonIsolatedZToMuMuPlots + - process.twoNonIsolatedZToMuMuVtxPlots -) - -addModulesFromTemplate( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.goodZToMuMuOneStandAloneMuonFirstHLTVtxed + - process.goodZToMuMuOneStandAloneMuonNtuple + - process.goodZToMuMuOneStandAloneMuonPlots + - process.goodZToMuMuOneStandAloneMuonVtxPlots, - "goodZToMuMuOneStandAloneMuon", "goodZToMuMuOneStandAloneMuon", - "single") - -addModulesFromTemplate( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackFirstHLT + - process.goodZToMuMuOneTrackFirstHLTVtxed + - process.goodZToMuMuOneTrackPlots + - process.goodZToMuMuOneTrackVtxPlots, - "goodZToMuMuOneTrack", "goodZToMuMuOneTrack", - "single") - -process.out = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('zMuSa-UML_test.root'), - outputCommands = cms.untracked.vstring( - "drop *", - "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*" - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuOneStandAloneMuonPath" - ) - ) -) - -process.endPath = cms.EndPath( - process.eventInfo + - process.out -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_withGlbMuQualityCuts.py b/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_withGlbMuQualityCuts.py deleted file mode 100644 index 98515af2b522e..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuAnalysis_withGlbMuQualityCuts.py +++ /dev/null @@ -1,610 +0,0 @@ -from __future__ import print_function -#analysis code. -#It produces plot for Fit study -#author Luca Lista -#modificated by Noli Pasquale 21-10-2008 -#modified by Annapaola de Cosa 18-12-2008 -#modified by Michele de Gruttola 08-10-2009 - - - -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuAnalysis") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( -# input = cms.untracked.int32(17810) - input = cms.untracked.int32(100) -) - -#process.load("ElectroWeakAnalysis/ZMuMu/OCTSUBSKIM_cff") - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/zmm/testZMuMuSubSkim_1.root", -"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/zmm/testZMuMuSubSkim_2.root", -# "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_1.root", -# "rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_2.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_3.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_4.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_5.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/wmn/testZMuMuSubSkim_6.root", -#"rfio:/dpm/na.infn.it/home/cms/store/user/degrutto/EWK_ZMM_OCT_EX_7TeV/TTbar/testZMuMuSubSkim_1.root", - ) -) - -process.TFileService = cms.Service( - "TFileService", - fileName = cms.string("Analysis_zmm_7TeV_qualityCuts_test100ev.root") -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2.1 & abs(daughter(1).eta)<2.1 & mass > 20"), - isoCut = cms.double(3.), - ptThreshold = cms.untracked.double(1.5), - etEcalThreshold = cms.untracked.double(0.2), - etHcalThreshold = cms.untracked.double(0.5), - deltaRVetoTrk = cms.untracked.double(0.015), - deltaRTrk = cms.untracked.double(0.3), - deltaREcal = cms.untracked.double(0.25), - deltaRHcal = cms.untracked.double(0.25), - alpha = cms.untracked.double(0.), - beta = cms.untracked.double(-0.75), - relativeIsolation = cms.bool(False) - -# For standard isolation (I_Tkr<3GeV) choose this configuration: -# isoCut = cms.double(3.), -# ptThreshold = cms.untracked.double(1.5), -# etEcalThreshold = cms.untracked.double(0.2), -# etHcalThreshold = cms.untracked.double(0.5), -# deltaRVetoTrk = cms.untracked.double(0.015), -# deltaRTrk = cms.untracked.double(0.3), -# deltaREcal = cms.untracked.double(0.25), -# deltaRHcal = cms.untracked.double(0.25), -# alpha = cms.untracked.double(0.), -# beta = cms.untracked.double(-0.75), -# relativeIsolation = cms.bool(False) - - - ) - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) -#ZMuMu: requiring at least 1 HLT trigger match (for the shape) -process.goodZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu: requiring 2 HLT trigger match -process.goodZToMuMu2HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("bothMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu: requiring 1 HLT trigger match -process.goodZToMuMu1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMu"), - condition =cms.string("exactlyOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMu:at least one muon is not isolated -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -#ZMuMu:1 muon is not isolated -process.oneNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuOneNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - -#ZMuMu: 2 muons are not isolated -process.twoNonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuTwoNonIsolatedIDSelector", - zSelection, - src = cms.InputTag("nonIsolatedZToMuMu"), - filter = cms.bool(True) -) - - - -#ZMuMunotIso: requiring at least 1 trigger -process.nonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("nonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMuOnenotIso: requiring at least 1 trigger -process.oneNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("oneNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -#ZMuMuTwonotIso: requiring at least 1 trigger -process.twoNonIsolatedZToMuMuAtLeast1HLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("twoNonIsolatedZToMuMu"), - condition =cms.string("atLeastOneMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - - - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedIDSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuTk:requiring that the GlobalMuon 'First' has HLT match -process.goodZToMuMuOneTrackFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneTrack"), - condition =cms.string("firstMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -#ZMuSta:requiring that the GlobalMuon has HLT match -process.goodZToMuMuOneStandAloneMuonFirstHLT = cms.EDFilter( - "ZHLTMatchFilter", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - condition =cms.string("globalisMatched"), - hltPath = cms.string("HLT_Mu9"), - filter = cms.bool(True) -) - -process.zmumuSaMassHistogram = cms.EDAnalyzer( - "ZMuMuSaMassHistogram", - src_m = cms.InputTag("goodZToMuMu"), - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbin = cms.untracked.int32(200) - # name = cms.untracked.string("zMass") - ) - -goodZToMuMuTemplate = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("replace this string with your cut"), - src = cms.InputTag("goodZToMuMuAtLeast1HLT"), - filter = cms.bool(False) -) - - - -#### Plot #### -zPlots = cms.PSet( - histograms = cms.VPSet( - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zMass"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(2000.0), - nbins = cms.untracked.int32(2000), - name = cms.untracked.string("zMassUpToTwoTeV"), - description = cms.untracked.string("Z mass [GeV/c^{2}]"), - plotquantity = cms.untracked.string("mass") - ), - cms.PSet( - min = cms.untracked.double(-10.0), - max = cms.untracked.double(10.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zEta"), - description = cms.untracked.string("Z #eta"), - plotquantity = cms.untracked.string("eta") - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("zRapidity"), - description = cms.untracked.string("Z y"), - plotquantity = cms.untracked.string("rapidity") - ), - cms.PSet( - min = cms.untracked.double(0), - max = cms.untracked.double(200), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("zPt"), - description = cms.untracked.string("Z p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("pt") - ), - cms.PSet( - min = cms.untracked.double(-4), - max = cms.untracked.double(4), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("zPhi"), - description = cms.untracked.string("Z #phi"), - plotquantity = cms.untracked.string("phi") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu1Pt"), - description = cms.untracked.string("Highest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("max(daughter(0).pt,daughter(1).pt)") - ), - cms.PSet( - min = cms.untracked.double(0.0), - max = cms.untracked.double(200.0), - nbins = cms.untracked.int32(200), - name = cms.untracked.string("mu2Pt"), - description = cms.untracked.string("Lowest muon p_{t} [GeV/c]"), - plotquantity = cms.untracked.string("min(daughter(0).pt,daughter(1).pt)"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1Eta"), - description = cms.untracked.string("muon1 #eta"), - plotquantity = cms.untracked.string("daughter(0).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2Eta"), - description = cms.untracked.string("muon2 #eta"), - plotquantity = cms.untracked.string("daughter(1).eta"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu1y"), - description = cms.untracked.string("muon1 y"), - plotquantity = cms.untracked.string("daughter(0).rapidity"), - ), - cms.PSet( - min = cms.untracked.double(-6.0), - max = cms.untracked.double(6.0), - nbins = cms.untracked.int32(120), - name = cms.untracked.string("mu2y"), - description = cms.untracked.string("muon2 y"), - plotquantity = cms.untracked.string("daughter(1).rapidity"), - ), -cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu1phi"), - description = cms.untracked.string("muon1 #phi"), - plotquantity = cms.untracked.string("daughter(0).phi"), - ), - cms.PSet( - min = cms.untracked.double(-4.0), - max = cms.untracked.double(4.0), - nbins = cms.untracked.int32(80), - name = cms.untracked.string("mu2phi"), - description = cms.untracked.string("muon2 #phi"), - plotquantity = cms.untracked.string("daughter(1).phi"), - ), - cms.PSet( - min = cms.untracked.double(-0.1), - max = cms.untracked.double(6.9), - nbins = cms.untracked.int32(7000), - name = cms.untracked.string("absMu1phiMinusMu2phi"), - description = cms.untracked.string("|mu1 #phi - mu2 #phi|"), - plotquantity = cms.untracked.string("abs(daughter(0).phi - daughter(1).phi)"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dxy"), - description = cms.untracked.string("muon1 dxy"), - plotquantity = cms.untracked.string("(- daughter(0).vx * daughter(0).py + daughter(0).vy * daughter(0).px) / daughter(0).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dxy"), - description = cms.untracked.string("muon2 dxy"), - plotquantity = cms.untracked.string("(- daughter(1).vx * daughter(1).py + daughter(1).vy * daughter(1).px) / daughter(1).pt "), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu1 dz"), - description = cms.untracked.string("muon1 dz"), - plotquantity = cms.untracked.string("daughter(0).vz - ( daughter(0).vx * daughter(0).px + daughter(0).vy * daughter(0).py) / daughter(0).pt * daughter(0).pz / daughter(0).pt"), - ), - cms.PSet( - min = cms.untracked.double(-10), - max = cms.untracked.double(10), - nbins = cms.untracked.int32(1000), - name = cms.untracked.string("mu2 dz"), - description = cms.untracked.string("muon2 dz"), - plotquantity = cms.untracked.string("daughter(1).vz - ( daughter(1).vx * daughter(1).px + daughter(1).vy * daughter(1).py) / daughter(1).pt * daughter(1).pz / daughter(1).pt"), - ) - ) -) - -## # dxy constructed from the vtx position -## dxy0 = " (- daughter(0).vx * daughter(0).py + daughter(0).vy * daughter(0).px) / daughter(0).pt " -## dxy1 = " ( - daughter(1).vx * daughter(1).py + daughter(1).vy * daughter(1).px) / daughter(1).pt " -## # dz constructed from vertex position -## dz0 = " daughter(0).vz - ( daughter(0).vx * daughter(0).px + daughter(0).vy * daughter(0).py) / daughter(0).pt * daughter(0).pz / daughter(0).pt " -## dz1 = " daughter(1).vz - ( daughter(1).vx * daughter(1).px + daughter(1).vy * daughter(1).py) / daughter(1).pt * daughter(1).pz / daughter(1).pt " - - - - -#ZMuMu at least 1 HLT + 2 track-iso (Shape) -goodZToMuMuPlotsTemplate = cms.EDAnalyzer( - "CandViewHistoAnalyzer", - zPlots, - src = cms.InputTag("goodZToMuMuAtLeast1HLT") -) - -#ZMuMu at least 1 HLT + at least 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -nonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -nonIsolatedZToMuMuPlots.src = cms.InputTag("nonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "nonIsolatedZToMuMuPlots", nonIsolatedZToMuMuPlots) - -#ZMuMu at least 1 HLT + 1 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -oneNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -oneNonIsolatedZToMuMuPlots.src = cms.InputTag("oneNonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "oneNonIsolatedZToMuMuPlots", oneNonIsolatedZToMuMuPlots) - -#ZMuMu at least 1 HLT + 2 NON track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate -twoNonIsolatedZToMuMuPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -twoNonIsolatedZToMuMuPlots.src = cms.InputTag("twoNonIsolatedZToMuMuAtLeast1HLT") -setattr(process, "twoNonIsolatedZToMuMuPlots", twoNonIsolatedZToMuMuPlots) - - - - -etaBounds = [2.1] -## if you want to perform studies on different eta bins... -##### etaBounds = [-2.1, -1.2, -0.8, 0.8, 1.2, 2.1] - -def addModulesFromTemplate(sequence, moduleLabel, src, probeSelection): - print("selection for: ", moduleLabel) - for i in range(len(etaBounds)-1): - etaMin = etaBounds[i] - etaMax = etaBounds[i+1] - module = copy.deepcopy(goodZToMuMuTemplate) - if probeSelection == "single": - cut = "%5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax) - elif probeSelection == "double": - cut = "%5.3f < daughter(0).eta < %5.3f | %5.3f < daughter(1).eta < %5.3f" %(etaMin, etaMax, etaMin, etaMax) - print(i, ") cut = ", cut) - setattr(module, "cut", cut) - setattr(module, "src", cms.InputTag(src)) - copyModuleLabel = moduleLabel + str(i) - setattr(process, copyModuleLabel, module) - if sequence == None: - sequence = module - else: - sequence = sequence + module - plotModule = copy.deepcopy(goodZToMuMuPlotsTemplate) - setattr(plotModule, "src", cms.InputTag(copyModuleLabel)) - for h in plotModule.histograms: - h.description.setValue(h.description.value() + ": " + "#eta: [%5.3f, %5.3f]" %(etaMin, etaMax)) - plotModuleLabel = moduleLabel + "Plots" + str(i) - setattr(process, plotModuleLabel, plotModule) - sequence = sequence + plotModule - path = cms.Path(sequence) - setattr(process, moduleLabel+"Path", path) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -#ZMuMu at least 1 HLT + 2 track-iso -process.goodZToMuMuPlots = goodZToMuMuPlotsTemplate - -#ZMuMu 1 HLT + 2 track-iso -process.goodZToMuMu1HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu1HLTPlots.src = cms.InputTag("goodZToMuMu1HLT") - -#ZMuMu 2 HLT + 2 track-iso -process.goodZToMuMu2HLTPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMu2HLTPlots.src = cms.InputTag("goodZToMuMu2HLT") - -#ZMuSta First HLT + 2 track-iso -process.goodZToMuMuOneStandAloneMuonPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneStandAloneMuonPlots.src = cms.InputTag("goodZToMuMuOneStandAloneMuonFirstHLT") - -#ZMuTk First HLT + 2 track-iso -process.goodZToMuMuOneTrackPlots = copy.deepcopy(goodZToMuMuPlotsTemplate) -process.goodZToMuMuOneTrackPlots.src = cms.InputTag("goodZToMuMuOneTrackFirstHLT") - - - - - - -process.globalMuQualityCutsAnalysis= cms.EDAnalyzer( - "GlbMuQualityCutsAnalysis", - src = cms.InputTag("goodZToMuMuAtLeast1HLT"), # dimuonsOneTrack, dimuonsOneStandAlone - ptMin = cms.untracked.double(0.0), - massMin = cms.untracked.double(0.0), - massMax = cms.untracked.double(120.0), - etaMin = cms.untracked.double(-1.0), - etaMax = cms.untracked.double(10.0), - trkIso = cms.untracked.double(10000), - chi2Cut = cms.untracked.double(10), - nHitCut = cms.untracked.int32(10) - ) - - - - - - -# N-tuples - -process.goodZToMuMuOneStandAloneMuonNtuple = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag("goodZToMuMuOneStandAloneMuon"), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("mass"), - quantity = cms.untracked.string("mass") - ) - ) -) - -process.initialGoodZToMuMuPath = cms.Path( - process.goodZToMuMu + - process.zmumuSaMassHistogram -) - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMuAtLeast1HLT+ - process.goodZToMuMuPlots + - process.globalMuQualityCutsAnalysis, - "goodZToMuMu", "goodZToMuMu", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu2HLT + - process.goodZToMuMu2HLTPlots, - "goodZToMuMu2HLT", "goodZToMuMu2HLT", - "double") - -addModulesFromTemplate( - process.goodZToMuMu + - process.goodZToMuMu1HLT + - process.goodZToMuMu1HLTPlots, - "goodZToMuMu1HLT", "goodZToMuMu1HLT", - "double") - -process.nonIsolatedZToMuMuPath = cms.Path ( - process.nonIsolatedZToMuMu + - process.nonIsolatedZToMuMuAtLeast1HLT + - process.nonIsolatedZToMuMuPlots -) -process.oneNonIsolatedZToMuMuPath = cms.Path( - process.oneNonIsolatedZToMuMu + - process.oneNonIsolatedZToMuMuAtLeast1HLT + - process.oneNonIsolatedZToMuMuPlots -) - -process.twoNonIsolatedZToMuMuPath = cms.Path( - process.twoNonIsolatedZToMuMu + - process.twoNonIsolatedZToMuMuAtLeast1HLT + - process.twoNonIsolatedZToMuMuPlots -) - -addModulesFromTemplate( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuonFirstHLT + - process.goodZToMuMuOneStandAloneMuonNtuple + - process.goodZToMuMuOneStandAloneMuonPlots, - "goodZToMuMuOneStandAloneMuon", "goodZToMuMuOneStandAloneMuon", - "single") - -addModulesFromTemplate( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack + - process.goodZToMuMuOneTrackFirstHLT + - process.goodZToMuMuOneTrackPlots, - "goodZToMuMuOneTrack", "goodZToMuMuOneTrack", - "single") - -process.out = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('zMuSa-UML_test.root'), - outputCommands = cms.untracked.vstring( - "drop *", - "keep *_goodZToMuMuOneStandAloneMuonNtuple_*_*" - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuOneStandAloneMuonPath" - ) - ) -) - -process.endPath = cms.EndPath( - process.eventInfo + - process.out -) - diff --git a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuSubSkim.py b/ElectroWeakAnalysis/ZMuMu/test/zToMuMuSubSkim.py deleted file mode 100644 index d5776bfc22da7..0000000000000 --- a/ElectroWeakAnalysis/ZMuMu/test/zToMuMuSubSkim.py +++ /dev/null @@ -1,146 +0,0 @@ -import FWCore.ParameterSet.Config as cms -import copy - -process = cms.Process("ZToMuMuHistos") - -process.include("FWCore/MessageLogger/data/MessageLogger.cfi") - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(1000) -) - -process.source = cms.Source( - "PoolSource", - fileNames = cms.untracked.vstring( - "file:/scratch1/cms/data/summer08/skim/dimuons_skim_zmumu.root" - ) -) - -zSelection = cms.PSet( - cut = cms.string("charge = 0 & daughter(0).pt > 20 & daughter(1).pt > 20 & abs(daughter(0).eta)<2 & abs(daughter(1).eta)<2 & mass > 20"), - isoCut = cms.double(100.0), - isolationType = cms.string("track"), -) - -process.goodZToMuMu = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.nonIsolatedZToMuMu = cms.EDFilter( - "ZToMuMuNonIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsGlobal"), - filter = cms.bool(True) -) - -process.zToMuGlobalMuOneTrack = cms.EDFilter( - "CandViewRefSelector", - cut = cms.string("daughter(0).isGlobalMuon = 1"), - src = cms.InputTag("dimuonsOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneTrack = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("zToMuGlobalMuOneTrack"), - filter = cms.bool(True) -) - -process.zToMuMuOneStandAloneMuon = cms.EDFilter( - "ZToMuMuIsolatedSelector", - zSelection, - src = cms.InputTag("dimuonsOneStandAloneMuon"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneTrack = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneTrack"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -process.goodZToMuMuOneStandAloneMuon = cms.EDFilter( - "ZMuMuOverlapExclusionSelector", - src = cms.InputTag("zToMuMuOneStandAloneMuon"), - overlap = cms.InputTag("goodZToMuMu"), - filter = cms.bool(True) -) - -process.eventInfo = cms.OutputModule ( - "AsciiOutputModule" -) - -process.out = cms.OutputModule( - "PoolOutputModule", - fileName = cms.untracked.string('file:./Zmm.root'), - outputCommands = cms.untracked.vstring( - "drop *", -# "keep *_genParticles_*_*", -# "keep L1MuRegionalCands_*_*_*", -# "keep L1MuGMTCands_*_*_*", -# "keep L1MuGMTReadoutCollection_*_*_*", - "keep TriggerResults_*_*_*", -# "keep recoTracks_generalTracks_*_*", -# "keep recoTracks_globalMuons_*_*", -# "keep recoTracks_standAloneMuons_*_*", -# "keep recoMuons_muons_*_*", - "keep *_selectedLayer1Muons_*_*", - "keep *_selectedLayer1TrackCands_*_*", - 'keep *_selectedLayer1MuonsTriggerMatch_*_*', -# "keep *_goodTracks_*_*", - "keep *_dimuons_*_*", - "keep *_dimuonsOneTrack_*_*", - "keep *_dimuonsGlobal_*_*", - "keep *_dimuonsOneStandAloneMuon_*_*", -# "keep *_muonMatch_*_*", -# "keep *_allDimuonsMCMatch_*_*", - "keep *_goodZToMuMu__*", - "keep *_nonIsolatedZToMuMu__*", - "keep *_goodZToMuMuOneStandAloneMuon__*", - "keep *_goodZToMuMuOneTrack__*" - ), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring( - "goodZToMuMuPath", "nonIsolatedZToMuMuPath", - "zToMuMuOneStandAloneMuonPath", "goodZToMuMuOneTrackPath" - ) - ) -) - -process.goodZToMuMuPath = cms.Path( - process.goodZToMuMu -) - -process.nonIsolatedZToMuMuPath = cms.Path( - process.nonIsolatedZToMuMu -) - -process.zToMuMuOneStandAloneMuonPath = cms.Path( - ~process.goodZToMuMu + - process.zToMuMuOneStandAloneMuon + - process.goodZToMuMuOneStandAloneMuon -) - -process.goodZToMuMuOneTrackPath = cms.Path( - ~process.goodZToMuMu + - ~process.zToMuMuOneStandAloneMuon + - process.zToMuGlobalMuOneTrack + - process.zToMuMuOneTrack + - process.goodZToMuMuOneTrack -) - - -process.endPath = cms.EndPath( - process.eventInfo + - process.out -) - diff --git a/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_EventContent_cff.py b/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_EventContent_cff.py deleted file mode 100644 index e1067a75e366d..0000000000000 --- a/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_EventContent_cff.py +++ /dev/null @@ -1,18 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# HeavyFlavorAnalysis event content -# -from HeavyFlavorAnalysis.Skimming.bToMuMu_EventContent_cff import * -from HeavyFlavorAnalysis.Skimming.jpsiToMuMu_EventContent_cff import * -from HeavyFlavorAnalysis.Skimming.upsilonToMuMu_EventContent_cff import * -from HeavyFlavorAnalysis.Skimming.tauTo3Mu_EventContent_cff import * - -HeavyFlavorAnalysisEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -HeavyFlavorAnalysisEventContent.outputCommands.extend(bToMuMuEventContent.outputCommands) -HeavyFlavorAnalysisEventContent.outputCommands.extend(jpsiToMuMuEventContent.outputCommands) -HeavyFlavorAnalysisEventContent.outputCommands.extend(upsilonToMuMuEventContent.outputCommands) -HeavyFlavorAnalysisEventContent.outputCommands.extend(tauTo3MuEventContent.outputCommands) - diff --git a/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_OutputModules_cff.py b/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_OutputModules_cff.py deleted file mode 100644 index e918c804a2882..0000000000000 --- a/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_OutputModules_cff.py +++ /dev/null @@ -1,11 +0,0 @@ -# The following comments couldn't be translated into the new config version: - -#tauTo3MuOutputModuleAODSIM & - -import FWCore.ParameterSet.Config as cms - -# -# HeavyFlavorAnalysis output modules -# -from HeavyFlavorAnalysis.Skimming.onia_OutputModules_cff import * - diff --git a/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_SkimPaths_cff.py b/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_SkimPaths_cff.py deleted file mode 100644 index c58e0d79a3898..0000000000000 --- a/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_SkimPaths_cff.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# HeavyFlavorAnalysis skim paths -# -from HeavyFlavorAnalysis.Skimming.onia_SkimPaths_cff import * -from HeavyFlavorAnalysis.Skimming.tauTo3Mu_SkimPaths_cff import * - diff --git a/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_cff.py b/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_cff.py deleted file mode 100644 index 29f89f2ca7027..0000000000000 --- a/HeavyFlavorAnalysis/Configuration/python/HeavyFlavorAnalysis_cff.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# HeavyFlavorAnalysis standard sequences -# -from HeavyFlavorAnalysis.Skimming.onia_Sequences_cff import * -from HeavyFlavorAnalysis.Skimming.tauTo3MuSequences_cff import * -heavyFlavorAnalysis = cms.Sequence(cms.SequencePlaceholder("onia")+cms.SequencePlaceholder("tauTo3Mu")) - diff --git a/HeavyFlavorAnalysis/Skimming/BuildFile.xml b/HeavyFlavorAnalysis/Skimming/BuildFile.xml deleted file mode 100644 index 7cf29fc51b3f4..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/BuildFile.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/HeavyFlavorAnalysis/Skimming/interface/Combinatorics.h b/HeavyFlavorAnalysis/Skimming/interface/Combinatorics.h deleted file mode 100644 index 10ae79adfed51..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/interface/Combinatorics.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Combinatorics.h - * - * 03/04/2006 kasselmann@physik.rwth-aachen.de - * - */ - -#ifndef COMBINATORICS_H -#define COMBINATORICS_H - -// C++ header -#include - -// ROOT header -#include - -class Combinatorics { -public: - Combinatorics(Int_t Set, Int_t Subset); - virtual ~Combinatorics(); - - std::vector > GetPermutations(); - std::vector > GetCombinations(); - std::vector > GetCombinations_2_0(); - std::vector > GetCombinations_2_2(); - std::vector > GetCombinations_N_1(); - - Int_t EqualPermutation(const std::vector& permutation1, const std::vector& permutation2); - Int_t EqualPermutation_2_0(const std::vector& permutation1, const std::vector& permutation2); - Int_t EqualPermutation_2_2(const std::vector& permutation1, const std::vector& permutation2); - Int_t EqualPermutation_N_1(const std::vector& permutation1, const std::vector& permutation2); - - void Print(const std::vector& permutation); - void Print(const std::vector >& permutations); - -private: - Int_t CalculatePermutations(); - - void initial_permutation(int size, int* permutation); - Bool_t next_permutation(int size, int* permutation); - void initial_subset(int k, int* subset); - Bool_t next_subset(int n, int k, int* subset); - - void Skip_2_0(const std::vector >& permutation1, std::vector >& permutation2); - void Skip_2_2(const std::vector >& permutation1, std::vector >& permutation2); - - std::vector Rotate(const std::vector& permutation, UInt_t digits); - - const Int_t m_SetQuantity; - const Int_t m_SubsetQuantity; - - std::vector m_Subset; - std::vector > m_Permutations; - std::vector > m_Combinations; -}; - -#endif diff --git a/HeavyFlavorAnalysis/Skimming/interface/Tau3MuReco.h b/HeavyFlavorAnalysis/Skimming/interface/Tau3MuReco.h deleted file mode 100644 index 4b8cd32919946..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/interface/Tau3MuReco.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef TAU3MURECO_H -#define TAU3MURECO_H - -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Utilities/interface/InputTag.h" - -#include -#include -#include - -class Tau3MuReco { -public: - Tau3MuReco(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC); - ~Tau3MuReco(); - - bool doTau3MuReco(const edm::Event& iEvent, - const edm::EventSetup& iSetup, - reco::MuonCollection* muonCollection, - reco::TrackCollection* trackCollection); - -private: - bool check4MuonTrack( - const reco::Track& track); //compares track with reconstructed muons and return true if they are equal - bool find3rdTrack( - const edm::Event& iEvent, - const edm::EventSetup& iSetup, - const reco::TrackCollection& Tracks); //try to find a 3rd muon in tracks, if this was not detected as a muon - bool findCorrectPairing(); //find the correct 3 muons, if more than 3 muons has been reconstructed - double getInvariantMass(const reco::TrackCollection* tracks, const double MuonMass = 0.106); - double getDeltaR(const reco::Track& track1, const reco::Track& track2); - bool removeIncorrectMuon(); //try to remove one muon, which seems to come not from a tau->3Mu decay - - const double m_kMatchingDeltaR; - const double m_kMatchingPt; - const double m_kTauMassCut; - const double m_kTauMass; - const double m_kMuonMass; - - const edm::EDGetTokenT m_kMuonSourceToken; - const edm::EDGetTokenT m_kTrackSourceToken; - - reco::MuonCollection* m_MuonCollection; - reco::TrackCollection* m_TrackCollection; -}; - -#endif diff --git a/HeavyFlavorAnalysis/Skimming/plugins/BuildFile.xml b/HeavyFlavorAnalysis/Skimming/plugins/BuildFile.xml deleted file mode 100644 index 996fee6d9943b..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/plugins/BuildFile.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.cc b/HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.cc deleted file mode 100644 index 97096b5b26104..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.cc +++ /dev/null @@ -1,60 +0,0 @@ -// -*- C++ -*- -// -// Package: Tau3MuSkim -// Class: Tau3MuSkim -// -/**\class Tau3MuSkim Tau3MuSkim.cc HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.cc - - Description: - - Implementation: - -*/ -// -// Original Author: Manuel Giffels -// Created: Mon Jul 23 10:19:11 CEST 2007 -// -// -// - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" - -#include "HeavyFlavorAnalysis/Skimming/interface/Tau3MuReco.h" -#include "HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.h" - -Tau3MuSkim::Tau3MuSkim(const edm::ParameterSet& iConfig) { - m_Tau3MuReco = new Tau3MuReco(iConfig, consumesCollector()); - - produces("tau3MuCandidateMuons"); - produces("tau3MuCandidateTracks"); -} - -Tau3MuSkim::~Tau3MuSkim() { delete m_Tau3MuReco; } - -// -// member functions -// - -// ------------ method called on each new Event ------------ -bool Tau3MuSkim::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) { - std::unique_ptr tau3MuCandidateMuons(new reco::MuonCollection); - std::unique_ptr tau3MuCandidateTracks(new reco::TrackCollection); - - bool accept = m_Tau3MuReco->doTau3MuReco(iEvent, iSetup, tau3MuCandidateMuons.get(), tau3MuCandidateTracks.get()); - - iEvent.put(std::move(tau3MuCandidateMuons), "tau3MuCandidateMuons"); - iEvent.put(std::move(tau3MuCandidateTracks), "tau3MuCandidateTracks"); - - return accept; -} - -// ------------ method called once each job just before starting event loop ------------ -void Tau3MuSkim::beginJob() {} - -// ------------ method called once each job just after ending the event loop ------------ -void Tau3MuSkim::endJob() {} - -//define this as a plug-in -DEFINE_FWK_MODULE(Tau3MuSkim); diff --git a/HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.h b/HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.h deleted file mode 100644 index f83574fd5f7c5..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef TAU3MUSKIM -#define TAU3MUSKIM - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -// -// class declaration -// - -class Tau3MuReco; - -class Tau3MuSkim : public edm::EDFilter { -public: - explicit Tau3MuSkim(const edm::ParameterSet&); - ~Tau3MuSkim() override; - -private: - void beginJob() override; - bool filter(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - // ----------member data --------------------------- - Tau3MuReco* m_Tau3MuReco; -}; - -#endif diff --git a/HeavyFlavorAnalysis/Skimming/python/AODSIMTauTo3Mu_EventContent_cff.py b/HeavyFlavorAnalysis/Skimming/python/AODSIMTauTo3Mu_EventContent_cff.py deleted file mode 100644 index f96663f12346b..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/AODSIMTauTo3Mu_EventContent_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HeavyFlavorAnalysis.Skimming.tauTo3Mu_EventContent_cff import * -AODSIMTauTo3MuEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -AODSIMTauTo3MuEventContent.outputCommands.extend(AODSIMEventContent.outputCommands) -AODSIMTauTo3MuEventContent.outputCommands.extend(tauTo3MuEventContent.outputCommands) - diff --git a/HeavyFlavorAnalysis/Skimming/python/CompactSkim_cff.py b/HeavyFlavorAnalysis/Skimming/python/CompactSkim_cff.py deleted file mode 100644 index 1a072842e0137..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/CompactSkim_cff.py +++ /dev/null @@ -1,117 +0,0 @@ -import FWCore.ParameterSet.Config as cms -from PhysicsTools.PatAlgos.tools.helpers import getPatAlgosToolsTask - -def CompactSkim(process,inFileNames,outFileName,Global_Tag='auto:run2_mc',MC=True,Filter=True): - - patAlgosToolsTask = getPatAlgosToolsTask(process) - - 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('Configuration.StandardSequences.GeometryRecoDB_cff') - process.load('Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff') - process.load('Configuration.StandardSequences.EndOfProcess_cff') - patAlgosToolsTask.add(process.MEtoEDMConverter) - process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') - - process.MessageLogger.cerr.FwkReport.reportEvery = 100 - process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(False) ) - process.source = cms.Source('PoolSource', fileNames = cms.untracked.vstring(inFileNames)) - process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - - from Configuration.AlCa.GlobalTag import GlobalTag - process.GlobalTag = GlobalTag(process.GlobalTag, Global_Tag, '') - - # make patCandidates, select and clean them - process.load('PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff') - patAlgosToolsTask.add(process.patCandidatesTask) - process.load('PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff') - patAlgosToolsTask.add(process.selectedPatCandidatesTask) - process.load('PhysicsTools.PatAlgos.cleaningLayer1.cleanPatCandidates_cff') - patAlgosToolsTask.add(process.cleanPatCandidatesTask) - process.patMuons.embedTrack = True - - process.selectedPatMuons.cut = cms.string('muonID(\"TMOneStationTight\")' - ' && abs(innerTrack.dxy) < 0.3' - ' && abs(innerTrack.dz) < 20.' - ' && innerTrack.hitPattern.trackerLayersWithMeasurement > 5' - ' && innerTrack.hitPattern.pixelLayersWithMeasurement > 0' - ' && innerTrack.quality(\"highPurity\")' - ) - - #make patTracks - from PhysicsTools.PatAlgos.tools.trackTools import makeTrackCandidates - makeTrackCandidates(process, - label = 'TrackCands', # output collection - tracks = cms.InputTag('generalTracks'), # input track collection - particleType = 'pi+', # particle type (for assigning a mass) - preselection = 'pt > 0.7', # preselection cut on candidates - selection = 'pt > 0.7', # selection on PAT Layer 1 objects - isolation = {}, # isolations to use (set to {} for None) - isoDeposits = [], - mcAs = None # replicate MC match as the one used for Muons - ) - process.patTrackCands.embedTrack = True - - # dimuon = Onia2MUMU - process.load('HeavyFlavorAnalysis.Onia2MuMu.onia2MuMuPAT_cfi') - patAlgosToolsTask.add(process.onia2MuMuPAT) - process.onia2MuMuPAT.muons=cms.InputTag('cleanPatMuons') - process.onia2MuMuPAT.primaryVertexTag=cms.InputTag('offlinePrimaryVertices') - process.onia2MuMuPAT.beamSpotTag=cms.InputTag('offlineBeamSpot') - - process.onia2MuMuPATCounter = cms.EDFilter('CandViewCountFilter', - src = cms.InputTag('onia2MuMuPAT'), - minNumber = cms.uint32(1), - ) - - # reduce MC genParticles a la miniAOD - process.load('PhysicsTools.PatAlgos.slimming.genParticles_cff') - patAlgosToolsTask.add(process.genParticlesTask) - process.packedGenParticles.inputVertices = cms.InputTag('offlinePrimaryVertices') - - # make photon candidate conversions for P-wave studies - process.load('HeavyFlavorAnalysis.Onia2MuMu.OniaPhotonConversionProducer_cfi') - patAlgosToolsTask.add(process.PhotonCandidates) - - # add v0 with tracks embed - process.load('HeavyFlavorAnalysis.Onia2MuMu.OniaAddV0TracksProducer_cfi') - patAlgosToolsTask.add(process.oniaV0Tracks) - - # Pick branches you want to keep - SlimmedEventContent = [ - 'keep recoVertexs_offlinePrimaryVertices_*_*', - 'keep *_inclusiveSecondaryVertices_*_*', - 'keep *_offlineBeamSpot_*_*', - 'keep *_TriggerResults_*_HLT', - 'keep *_gtDigis_*_RECO', - 'keep *_cleanPatTrackCands_*_*', - 'keep *_PhotonCandidates_*_*', - 'keep *_onia2MuMuPAT_*_*', - 'keep *_generalV0Candidates_*_*', - 'keep *_oniaV0Tracks_*_*', - 'keep PileupSummaryInfos_*_*_*' - ] - - if not MC: - from PhysicsTools.PatAlgos.tools.coreTools import runOnData - runOnData( process, outputModules = [] ) - else : - SlimmedEventContent += [ - 'keep patPackedGenParticles_packedGenParticles_*_*', - 'keep recoGenParticles_prunedGenParticles_*_*', - 'keep GenFilterInfo_*_*_*', - 'keep GenEventInfoProduct_generator_*_*', - 'keep GenRunInfoProduct_*_*_*' - ] - - process.FilterOutput = cms.Path(process.onia2MuMuPATCounter) - - process.out = cms.OutputModule('PoolOutputModule', - fileName = cms.untracked.string(outFileName), - outputCommands = cms.untracked.vstring('drop *', *SlimmedEventContent), - SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring('FilterOutput')) if Filter else cms.untracked.PSet() - ) - - process.outpath = cms.EndPath(process.out, patAlgosToolsTask) diff --git a/HeavyFlavorAnalysis/Skimming/python/bToMuMuOutputModuleAODSIM_cfi.py b/HeavyFlavorAnalysis/Skimming/python/bToMuMuOutputModuleAODSIM_cfi.py deleted file mode 100644 index d93b46ca9f0bd..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/bToMuMuOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -#include "Configuration/EventContent/data/EventContent.cff" -from HeavyFlavorAnalysis.Skimming.onia_EventContent_cff import * -bToMuMuOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - AODSIMEventContent, - bToMuMuEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('bToMuMu'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('bToMuMu.root') -) - - diff --git a/HeavyFlavorAnalysis/Skimming/python/bToMuMu_EventContent_cff.py b/HeavyFlavorAnalysis/Skimming/python/bToMuMu_EventContent_cff.py deleted file mode 100644 index af91d61c0a659..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/bToMuMu_EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# keep essential info used to construct b to Jpsi -bToMuMuEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -bToMuMuEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('bToMuMuHLTPath') - ) -) - diff --git a/HeavyFlavorAnalysis/Skimming/python/bToMuMu_HLTPath_cfi.py b/HeavyFlavorAnalysis/Skimming/python/bToMuMu_HLTPath_cfi.py deleted file mode 100644 index 873a4b6fd9663..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/bToMuMu_HLTPath_cfi.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -bToMuMuHLTFilter = copy.deepcopy(hltHighLevel) -bToMuMuHLTFilter.HLTPaths = ['HLT_DoubleMu3', 'HLT_DoubleMu4_BJPsi', 'HLT_DoubleMu3_SameSign'] - diff --git a/HeavyFlavorAnalysis/Skimming/python/bToMuMu_SkimPath_cff.py b/HeavyFlavorAnalysis/Skimming/python/bToMuMu_SkimPath_cff.py deleted file mode 100644 index 081024b15ab1b..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/bToMuMu_SkimPath_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.bToMuMu_HLTPath_cfi import * -bToMuMuHLTPath = cms.Path(bToMuMuHLTFilter) - diff --git a/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMuOutputModuleAODSIM_cfi.py b/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMuOutputModuleAODSIM_cfi.py deleted file mode 100644 index 4479cc2b0ecf2..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMuOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -#include "Configuration/EventContent/data/EventContent.cff" -from HeavyFlavorAnalysis.Skimming.onia_EventContent_cff import * -jpsiToMuMuOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - AODSIMEventContent, - jpsiToMuMuEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('jpsiToMuMu'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('jpsiToMuMu.root') -) - - diff --git a/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMu_EventContent_cff.py b/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMu_EventContent_cff.py deleted file mode 100644 index 90a9565e691c9..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMu_EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -jpsiToMuMuEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) - -jpsiToMuMuEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('jpsiToMuMuHLTPath') - ) -) - diff --git a/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMu_HLTPath_cfi.py b/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMu_HLTPath_cfi.py deleted file mode 100644 index bbaa6124b21ef..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMu_HLTPath_cfi.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -jpsiToMuMuHLTFilter = copy.deepcopy(hltHighLevel) -jpsiToMuMuHLTFilter.HLTPaths = ['HLT_DoubleMu3_JPsi'] - diff --git a/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMu_SkimPath_cff.py b/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMu_SkimPath_cff.py deleted file mode 100644 index 157297610609f..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/jpsiToMuMu_SkimPath_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.jpsiToMuMu_HLTPath_cfi import * -jpsiToMuMuHLTPath = cms.Path(jpsiToMuMuHLTFilter) - diff --git a/HeavyFlavorAnalysis/Skimming/python/onia_EventContent_cff.py b/HeavyFlavorAnalysis/Skimming/python/onia_EventContent_cff.py deleted file mode 100644 index 2285588858ead..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/onia_EventContent_cff.py +++ /dev/null @@ -1,20 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.jpsiToMuMu_EventContent_cff import * -from HeavyFlavorAnalysis.Skimming.upsilonToMuMu_EventContent_cff import * -from HeavyFlavorAnalysis.Skimming.bToMuMu_EventContent_cff import * -from Configuration.EventContent.EventContent_cff import * -oniaMuMuEventContent = cms.PSet( - outputCommands = cms.untracked.vstring('keep *_source_*_*', - 'keep recoCandidatesOwned_genParticleCandidates_*_*', - 'keep recoTracks_ctfWithMaterialTracks_*_*', - 'keep recoTracks_globalMuons_*_*', - 'keep recoTracks_standAloneMuons_*_*', - 'keep recoMuons_muons_*_*', - 'keep recoCandidatesOwned_allMuons_*_*', - 'keep recoCandidatesOwned_allTracks_*_*', - 'keep recoCandidatesOwned_allStandAloneMuonTracks_*_*') -) -AODSIMEventContent.outputCommands.extend(oniaMuMuEventContent.outputCommands) -AODSIMEventContent.outputCommands.extend(bToMuMuEventContent.outputCommands) - diff --git a/HeavyFlavorAnalysis/Skimming/python/onia_OutputModules_cff.py b/HeavyFlavorAnalysis/Skimming/python/onia_OutputModules_cff.py deleted file mode 100644 index 752e29b69d655..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/onia_OutputModules_cff.py +++ /dev/null @@ -1,6 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.jpsiToMuMuOutputModuleAODSIM_cfi import * -from HeavyFlavorAnalysis.Skimming.upsilonToMuMuOutputModuleAODSIM_cfi import * -from HeavyFlavorAnalysis.Skimming.bToMuMuOutputModuleAODSIM_cfi import * - diff --git a/HeavyFlavorAnalysis/Skimming/python/onia_Sequences_cff.py b/HeavyFlavorAnalysis/Skimming/python/onia_Sequences_cff.py deleted file mode 100644 index 1d27c22c07af0..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/onia_Sequences_cff.py +++ /dev/null @@ -1,6 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.jpsiToMuMu_HLTPath_cfi import * -from HeavyFlavorAnalysis.Skimming.upsilonToMuMu_HLTPath_cfi import * -from HeavyFlavorAnalysis.Skimming.bToMuMu_HLTPath_cfi import * - diff --git a/HeavyFlavorAnalysis/Skimming/python/onia_SkimPaths_cff.py b/HeavyFlavorAnalysis/Skimming/python/onia_SkimPaths_cff.py deleted file mode 100644 index 0bdf93d926a06..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/onia_SkimPaths_cff.py +++ /dev/null @@ -1,6 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.jpsiToMuMu_SkimPath_cff import * -from HeavyFlavorAnalysis.Skimming.upsilonToMuMu_SkimPath_cff import * -from HeavyFlavorAnalysis.Skimming.bToMuMu_SkimPath_cff import * - diff --git a/HeavyFlavorAnalysis/Skimming/python/tauTo3MuFilter_cfi.py b/HeavyFlavorAnalysis/Skimming/python/tauTo3MuFilter_cfi.py deleted file mode 100644 index 3ca3164a8c51b..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/tauTo3MuFilter_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -tauTo3MuFilter = cms.EDFilter("Tau3MuSkim", - RecoAnalysisMuonMass = cms.double(0.1057), - RecoAnalysisTauMass = cms.double(1.777), - TrackSourceTag = cms.InputTag("ctfWithMaterialTracks"), - RecoAnalysisMatchingDeltaR = cms.double(0.01), - MuonSourceTag = cms.InputTag("muons"), - RecoAnalysisMatchingPt = cms.double(0.1), - RecoAnalysisTauMassCut = cms.double(0.2) -) - - diff --git a/HeavyFlavorAnalysis/Skimming/python/tauTo3MuHLTPath_cfi.py b/HeavyFlavorAnalysis/Skimming/python/tauTo3MuHLTPath_cfi.py deleted file mode 100644 index 9664d5fea2ca5..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/tauTo3MuHLTPath_cfi.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -tauTo3MuHLTFilter = copy.deepcopy(hltHighLevel) -tauTo3MuHLTFilter.HLTPaths = ['HLT_IsoMu11', 'HLT_Mu15_L1Mu7', 'HLT_DoubleMu3', 'HLT_TripleMu3'] - diff --git a/HeavyFlavorAnalysis/Skimming/python/tauTo3MuOutputModule_cfi.py b/HeavyFlavorAnalysis/Skimming/python/tauTo3MuOutputModule_cfi.py deleted file mode 100644 index ac639d19c1545..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/tauTo3MuOutputModule_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.tauTo3Mu_EventContent_cff import * -from HeavyFlavorAnalysis.Skimming.AODSIMTauTo3Mu_EventContent_cff import * -tauTo3MuOutputModule = cms.OutputModule("PoolOutputModule", - AODSIMTauTo3MuEventContent, - tauTo3MuEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('tauTo3Mu'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('tauTo3Mu.root') -) - - diff --git a/HeavyFlavorAnalysis/Skimming/python/tauTo3MuSequences_cff.py b/HeavyFlavorAnalysis/Skimming/python/tauTo3MuSequences_cff.py deleted file mode 100644 index de14812da4cba..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/tauTo3MuSequences_cff.py +++ /dev/null @@ -1,6 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.tauTo3MuHLTPath_cfi import * -from HeavyFlavorAnalysis.Skimming.tauTo3MuFilter_cfi import * -tauTo3MuSkim = cms.Sequence(tauTo3MuHLTFilter+tauTo3MuFilter) - diff --git a/HeavyFlavorAnalysis/Skimming/python/tauTo3Mu_EventContent_cff.py b/HeavyFlavorAnalysis/Skimming/python/tauTo3Mu_EventContent_cff.py deleted file mode 100644 index b1e783e9d80f7..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/tauTo3Mu_EventContent_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -tauTo3MuEventContent = cms.PSet( - outputCommands = cms.untracked.vstring('keep recoTracks_ctfWithMaterialTracks_*_*', - 'keep recoTracks_globalMuons_*_*', - 'keep recoTracks_standAloneMuons_*_*', - 'keep recoMuons_muons_*_*', - 'keep recoCandidatesOwned_genParticle_*_*', - 'keep *_tauTo3MuFilter_*_*') -) -tauTo3MuEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('tauTo3MuPath') - ) -) - diff --git a/HeavyFlavorAnalysis/Skimming/python/tauTo3Mu_SkimPaths_cff.py b/HeavyFlavorAnalysis/Skimming/python/tauTo3Mu_SkimPaths_cff.py deleted file mode 100644 index 30fe63d9d1a5a..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/tauTo3Mu_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.tauTo3MuSequences_cff import * -tauTo3MuPath = cms.Path(tauTo3MuSkim) - diff --git a/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMuOutputModuleAODSIM_cfi.py b/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMuOutputModuleAODSIM_cfi.py deleted file mode 100644 index f9351f21ed82c..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMuOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -#include "Configuration/EventContent/data/EventContent.cff" -from HeavyFlavorAnalysis.Skimming.onia_EventContent_cff import * -upsilonToMuMuOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - upsilonToMuMuEventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('upsilonToMuMu'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('upsilonToMuMu.root') -) - - diff --git a/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMu_EventContent_cff.py b/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMu_EventContent_cff.py deleted file mode 100644 index d3e746482e301..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMu_EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -upsilonToMuMuEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) - -upsilonToMuMuEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('upsilonToMuMuHLTPath') - ) -) - diff --git a/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMu_HLTPath_cfi.py b/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMu_HLTPath_cfi.py deleted file mode 100644 index dd67b2b8c3812..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMu_HLTPath_cfi.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -upsilonToMuMuHLTFilter = copy.deepcopy(hltHighLevel) -upsilonToMuMuHLTFilter.HLTPaths = ['HLT_DoubleMu3_Upsilon'] - diff --git a/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMu_SkimPath_cff.py b/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMu_SkimPath_cff.py deleted file mode 100644 index 730a2aa007eb0..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/python/upsilonToMuMu_SkimPath_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HeavyFlavorAnalysis.Skimming.upsilonToMuMu_HLTPath_cfi import * -upsilonToMuMuHLTPath = cms.Path(upsilonToMuMuHLTFilter) - diff --git a/HeavyFlavorAnalysis/Skimming/src/Combinatorics.cc b/HeavyFlavorAnalysis/Skimming/src/Combinatorics.cc deleted file mode 100644 index 8ac52973951dd..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/src/Combinatorics.cc +++ /dev/null @@ -1,426 +0,0 @@ -/* - * Combinatorics.cpp - * - * 03/04/2006 kasselmann@physik.rwth-aachen.de - * 19/08/2007 giffels@physik.rwth-aachen.de - * - */ -//framework -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -// Own header -#include "HeavyFlavorAnalysis/Skimming/interface/Combinatorics.h" - -using namespace std; - -// ************************************************************************** -// Class Constructor -// ************************************************************************** -Combinatorics::Combinatorics(Int_t SetQuantity, Int_t SubsetQuantity) - : - - m_SetQuantity(SetQuantity), - m_SubsetQuantity(SubsetQuantity) { - // Get permutations - CalculatePermutations(); -} - -// ************************************************************************** -// Class Destructor -// ************************************************************************** -Combinatorics::~Combinatorics() {} - -// ************************************************************************** -// Get subset permutations -// ************************************************************************** -vector > Combinatorics::GetPermutations() { return m_Permutations; } - -// ************************************************************************** -// Calculate all subset permutations -// ************************************************************************** -Int_t Combinatorics::CalculatePermutations() { - if (m_SetQuantity < 1 || m_SubsetQuantity < 1 || (m_SetQuantity < m_SubsetQuantity)) { - edm::LogWarning("Combinatorics") << "[Combinatorics] No valid choice of set or subset!" << endl; - return -1; - } - - Int_t* currentSubset = new Int_t[m_SubsetQuantity]; - Int_t* currentMapping = new Int_t[m_SetQuantity]; - - initial_subset(m_SubsetQuantity, currentSubset); - do { - initial_permutation(m_SetQuantity, currentMapping); - do { - for (UShort_t i = 0; i < m_SubsetQuantity; i++) { - m_Subset.push_back(currentSubset[currentMapping[i]]); - } - m_Permutations.push_back(m_Subset); - m_Subset.clear(); - } while (next_permutation(m_SubsetQuantity, currentMapping)); - } while (next_subset(m_SetQuantity, m_SubsetQuantity, currentSubset)); - - delete[] currentSubset; - delete[] currentMapping; - - return 0; -} - -// ************************************************************************** -// Build initial permutation -// ************************************************************************** -void Combinatorics::initial_permutation(int size, int* permutation) { - for (int i = 0; i < size; i++) { - permutation[i] = i; - } -} - -// ************************************************************************** -// Build initial subset -// ************************************************************************** -void Combinatorics::initial_subset(int k, int* subset) { - for (int i = 0; i < k; i++) { - subset[i] = i; - } -} - -// ************************************************************************** -// Get next permutation if a next permutation exists -// ************************************************************************** -Bool_t Combinatorics::next_permutation(int size, int* permutation) { - int i, j, k; - if (size < 2) - return false; - i = size - 2; - - while ((permutation[i] > permutation[i + 1]) && (i != 0)) { - i--; - } - if ((i == 0) && (permutation[0] > permutation[1])) - return false; - - k = i + 1; - for (j = i + 2; j < size; j++) { - if ((permutation[j] > permutation[i]) && (permutation[j] < permutation[k])) { - k = j; - } - } - - // swap i and k - { - int tmp = permutation[i]; - permutation[i] = permutation[k]; - permutation[k] = tmp; - } - - for (j = i + 1; j <= ((size + i) / 2); j++) { - int tmp = permutation[j]; - permutation[j] = permutation[size + i - j]; - permutation[size + i - j] = tmp; - } - - // return whether a next permutation exists - return true; -} - -// ************************************************************************** -// Get next subset if a next subset exists -// -// n: the size of the set -// k: the size of the subset -// ************************************************************************** -Bool_t Combinatorics::next_subset(int n, int k, int* subset) { - int i; - int j; - int jsave; - bool done; - - if (subset[0] < n - k) { - done = false; - jsave = k - 1; - for (j = 0; j < k - 1; j++) { - if (subset[j] + 1 < subset[j + 1]) { - jsave = j; - break; - } - } - for (i = 0; i < jsave; i++) - subset[i] = i; - subset[jsave] = subset[jsave] + 1; - } else { - done = true; - } - // return whether a next subset exists - return !done; -} - -// ************************************************************************** -// Get all subset combinations -// ************************************************************************** -vector > Combinatorics::GetCombinations() { - if (m_Permutations.empty()) { - LogDebug("Combinatorics") << "Nothing to do." << endl; - return m_Combinations; - } - - m_Combinations.push_back(m_Permutations.at(0)); - - for (UInt_t i = 1; i < m_Permutations.size(); i++) { - if (!EqualPermutation(m_Combinations.back(), m_Permutations.at(i))) { - m_Combinations.push_back(m_Permutations.at(i)); - } - } - return m_Combinations; -} - -// ************************************************************************** -// Returns true if two permutations of four "int" are equal -// (Equal means e.g.: 0123 = 1023 = 0132 = 1032) -// ************************************************************************** -Int_t Combinatorics::EqualPermutation(const vector& p1, const vector& p2) { - if (p1.size() != p2.size()) { - edm::LogWarning("Combinatorics") << "[Combinatorics::EqualPermutation] permutations have different size!" << endl; - return -1; - } - - Float_t p1_sum = 0.0; - Float_t p2_sum = 0.0; - - // Check whether permutations are equal (2^index) - for (UInt_t i = 0; i < p1.size(); i++) - p1_sum += (1 << p1.at(i)); - for (UInt_t i = 0; i < p2.size(); i++) - p2_sum += (1 << p2.at(i)); - - return (p1_sum == p2_sum ? 1 : 0); -} - -// ************************************************************************** -// Get combinations: 4 out of n -// -// (The order of the first and second two is not important! -// 0123 = 1023 = 0132 = 1032 are equal therefore) -// ************************************************************************** -vector > Combinatorics::GetCombinations_2_2() { - // combination vector returned - vector > FinalCombinations; - - if (m_Permutations.empty()) { - LogDebug("Combinatorics") << "[Combinatorics::GetCombinations_2_2] Nothing to do." << endl; - return FinalCombinations; - } - - // So far only for subsets of four indices - if (m_SubsetQuantity != 4) { - edm::LogWarning("Combinatorics") << "[Combinatorics::GetCombinations_2_2] Subset must be 4." << endl; - return FinalCombinations; - } - - // Skip specific permutations - Skip_2_2(m_Permutations, FinalCombinations); - - return FinalCombinations; -} - -// ************************************************************************** -// Get combinations: 4 out of n -// -// (The order of the last two is important only: -// 0123 = 1023 are equal therefore) -// ************************************************************************** -vector > Combinatorics::GetCombinations_2_0() { - // combination vector returned - vector > FinalCombinations; - - if (m_Permutations.empty()) { - LogDebug("Combinatorics") << "[Combinatorics::GetCombinations_2_0] Nothing to do." << endl; - return FinalCombinations; - } - - // So far only for subsets of four indices - if (m_SubsetQuantity != 4) { - edm::LogWarning("Combinatorics") << "[Combinatorics::GetCombinations_2_0] Subset must be 4." << endl; - return FinalCombinations; - } - - // Skip specific permutations - Skip_2_0(m_Permutations, FinalCombinations); - - return FinalCombinations; -} - -// ************************************************************************** -// Skip permutation from p1 if already existing in p2 -// ************************************************************************** -void Combinatorics::Skip_2_0(const vector >& p1, vector >& p2) { - Bool_t Skip = kFALSE; - - p2.push_back(p1.at(0)); - - for (UShort_t i = 1; i < p1.size(); i++) { - for (UShort_t j = 0; j < p2.size(); j++) { - if (EqualPermutation_2_0(p1.at(i), p2.at(j))) { - Skip = kTRUE; - } - } - if (!Skip) - p2.push_back(p1.at(i)); - - Skip = kFALSE; - } -} - -// ************************************************************************** -// Skip permutation from p1 if already existing in p2 -// ************************************************************************** -void Combinatorics::Skip_2_2(const vector >& p1, vector >& p2) { - Bool_t Skip = kFALSE; - - p2.push_back(p1.at(0)); - - for (UShort_t i = 1; i < p1.size(); i++) { - for (UShort_t j = 0; j < p2.size(); j++) { - if (EqualPermutation_2_2(p1.at(i), p2.at(j))) { - Skip = kTRUE; - } - } - if (!Skip) - p2.push_back(p1.at(i)); - - Skip = kFALSE; - } -} - -// ************************************************************************** -// Returns true if the two first digm_ of two permutations are equal -// e.g.: 0123 = 1023 -// ************************************************************************** -Int_t Combinatorics::EqualPermutation_2_0(const vector& p1, const vector& p2) { - if (p1.size() < 2) { - edm::LogWarning("Combinatorics") << "[Combinatorics::EqualPermutation_2_0] permutation has wrong size!" << endl; - return -1; - } - - // Check whether permutations are equal - if (((1 << p1.at(0)) + (1 << p1.at(1)) == (1 << p2.at(0)) + (1 << p2.at(1))) && p1.at(2) == p2.at(2) && - p1.at(3) == p2.at(3)) { - return 1; - } - return 0; -} - -// ************************************************************************** -// Returns true if two permutations of four "int" are equal -// e.g.: 0123 = 1023 = 0132 = 1032 -// ************************************************************************** -Int_t Combinatorics::EqualPermutation_2_2(const vector& p1, const vector& p2) { - // Returns true if two permutations of four "int" are equal - // (equal means e.g.: 0123 = 1023 = 0132 = 1032) - - if (p1.size() != 4 && p2.size() != 4) { - edm::LogWarning("Combinatorics") << "[Combinatorics::EqualPermutationTwoByTwo] permutation(s) have wrong size!" - << endl; - return -1; - } - - // Check whether permutations are equal (2^index) - if (((1 << p1.at(0)) + (1 << p1.at(1)) == (1 << p2.at(0)) + (1 << p2.at(1))) && - ((1 << p1.at(2)) + (1 << p1.at(3)) == (1 << p2.at(2)) + (1 << p2.at(3)))) { - return 1; - } - return 0; -} - -// ************************************************************************** -// Returns true if two permutations of four are "equal" -// e.g.: 0123 = 1023 -// ************************************************************************** -Int_t Combinatorics::EqualPermutation_N_1(const vector& p1, const vector& p2) { - // Returns true if two permutations of four "int" are equal - // (equal means e.g.: 012 = 102) - - if (p1.size() != p2.size()) { - edm::LogWarning("Combinatorics") << "[Combinatorics::EqualPermutationTwoByTwo] permutation(s) have wrong size!" - << endl; - return -1; - } - - return (EqualPermutation(p1, p2) && p1.back() == p2.back() ? 1 : 0); -} - -// ************************************************************************** -// Get combinations "N by 1" -// ************************************************************************** -vector > Combinatorics::GetCombinations_N_1() { - // Get combinations - m_Combinations.clear(); - GetCombinations(); - - // combination vector returned - vector > FinalCombinations; - - if (m_Combinations.empty()) { - LogDebug("Combinatorics") << "[Combinatorics::GetCombinationsThreeByOne] Nothing to do." << endl; - return FinalCombinations; - } - - for (UInt_t i = 0; i < m_Combinations.size(); i++) { - vector RotatingPermutation = m_Combinations.at(i); - FinalCombinations.push_back(m_Combinations.at(i)); - - for (UInt_t j = 1; j < RotatingPermutation.size(); j++) { - FinalCombinations.push_back(Rotate(RotatingPermutation, j)); - } - } - return FinalCombinations; -} - -// ************************************************************************** -// Rotate permutation to the "left" by n digm_ -// ************************************************************************** -vector Combinatorics::Rotate(const vector& permutation, UInt_t digm_) { - vector p; - vector tmp; - - if (permutation.size() <= digm_) { - edm::LogWarning("Combinatorics") << "[Combinatorics::Rotate] WARNING: More rotations than digm_ in permutation!" - << endl; - } - - // Save the first i digm_ - for (UInt_t i = 0; i < digm_; i++) { - tmp.push_back(permutation.at(i)); - } - for (UInt_t j = 0; j < permutation.size() - digm_; j++) { - p.push_back(permutation.at(j + digm_)); - } - for (UInt_t k = 0; k < digm_; k++) - p.push_back(tmp.at(k)); - - return p; -} - -// ************************************************************************** -// Print one permutation -// ************************************************************************** -void Combinatorics::Print(const vector& p) { - // Print permutations - for (UShort_t i = 0; i < p.size(); i++) { - LogDebug("Combinatorics") << (p.at(i)); - } - LogDebug("Combinatorics") << endl; -} - -// ************************************************************************** -// Print permutations -// ************************************************************************** -void Combinatorics::Print(const vector >& p) { - LogDebug("Combinatorics") << "**************" << endl; - LogDebug("Combinatorics") << "Permutations: " << p.size() << endl; - - // Print permutations - for (UShort_t i = 0; i < p.size(); i++) { - for (UShort_t j = 0; j < (p.at(0)).size(); j++) - LogDebug("Combinatorics") << (p.at(i)).at(j); - LogDebug("Combinatorics") << endl; - } -} diff --git a/HeavyFlavorAnalysis/Skimming/src/Tau3MuReco.cc b/HeavyFlavorAnalysis/Skimming/src/Tau3MuReco.cc deleted file mode 100644 index f23ad72dd5437..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/src/Tau3MuReco.cc +++ /dev/null @@ -1,292 +0,0 @@ -#include - -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include "HeavyFlavorAnalysis/Skimming/interface/Combinatorics.h" - -#include "HeavyFlavorAnalysis/Skimming/interface/Tau3MuReco.h" - -Tau3MuReco::Tau3MuReco(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC) - : m_kMatchingDeltaR(iConfig.getParameter("RecoAnalysisMatchingDeltaR")), - m_kMatchingPt(iConfig.getParameter("RecoAnalysisMatchingPt")), - m_kTauMassCut(iConfig.getParameter("RecoAnalysisTauMassCut")), - m_kTauMass(iConfig.getParameter("RecoAnalysisTauMass")), - m_kMuonMass(iConfig.getParameter("RecoAnalysisMuonMass")), - m_kMuonSourceToken(iC.consumes(iConfig.getParameter("MuonSourceTag"))), - m_kTrackSourceToken(iC.consumes(iConfig.getParameter("TrackSourceTag"))) {} - -Tau3MuReco::~Tau3MuReco() {} - -bool Tau3MuReco::doTau3MuReco(const edm::Event& iEvent, - const edm::EventSetup& iSetup, - reco::MuonCollection* muonCollection, - reco::TrackCollection* trackCollection) { - m_MuonCollection = muonCollection; - m_TrackCollection = trackCollection; - - edm::Handle muons; - edm::Handle tracks; - - reco::MuonCollection::const_iterator muon; - - iEvent.getByToken(m_kMuonSourceToken, muons); - iEvent.getByToken(m_kTrackSourceToken, tracks); - - for (muon = muons->begin(); muon != muons->end(); ++muon) { - m_TrackCollection->push_back(*(muon->track().get())); - m_MuonCollection->push_back(*muon); - } - - if (m_TrackCollection->size() > 3) { - //find the right three ones coming from tau - if (findCorrectPairing() == false) { //maybe implement something like in ==3 (throw away ....) - LogDebug("Tau3MuReco") << "Could not find correct combination!" << std::endl; - return false; - } - - return true; - } - - if (m_TrackCollection->size() == 3) { - if (fabs(getInvariantMass(m_TrackCollection, m_kMuonMass) - m_kTauMass) <= m_kTauMassCut) - return true; - else //throw away one muon which don't match - removeIncorrectMuon(); - } - - if (m_TrackCollection->size() == 2) { - //search the third track - - //get 3rd muon canidate from tracks - if (find3rdTrack(iEvent, iSetup, *(tracks.product())) == false) { - LogDebug("Tau3MuReco") << "A 3rd Track can not be assigned!" << std::endl; - return false; - } else - return true; - } - - // cannot use this event, because less than 2 muons have been found - - LogDebug("Tau3MuReco") << "Not enough (" << m_TrackCollection->size() << ") muons found! Event skipped!" << std::endl; - - return false; -} - -//private -bool Tau3MuReco::check4MuonTrack(const reco::Track& track) { - reco::TrackCollection::const_iterator iter; - - for (iter = m_TrackCollection->begin(); iter != m_TrackCollection->end(); iter++) { - //check if the track has the right charge - //and check if dR is smaller than fMatchingDeltaR - if ((*iter).charge() == track.charge() && getDeltaR(*iter, track) < m_kMatchingDeltaR && - fabs(((*iter).pt()) - (track.pt())) <= (track.pt() * m_kMatchingPt)) { - LogDebug("Tau3MuReco") << "Found muon track in Tracks with DeltaR: " << getDeltaR(*iter, track) - << " Pt: " << track.pt() << " Muons Pt is: " << (*iter).pt() << std::endl; - return true; - } - } - return false; -} - -bool Tau3MuReco::find3rdTrack(const edm::Event& iEvent, - const edm::EventSetup& iSetup, - const reco::TrackCollection& Tracks) { - //check size of TrackVector (should be two!) - if (m_TrackCollection->size() != 2) - return false; - - //more then two tracks should be in the event - if (Tracks.size() <= 2) - return false; - - double SumDeltaR = 0; - - double MuonDeltaR = getDeltaR(m_TrackCollection->at(0), m_TrackCollection->at(1)); - - //Loop overall tracks - - LogDebug("Tau3MuReco") << "Number of tracks found: " << Tracks.size() << std::endl; - - std::multimap TrackMultiMap; - - unsigned short muonCounter = 0; - - reco::TrackCollection::const_iterator track; - - for (track = Tracks.begin(); track != Tracks.end(); track++) { - if (check4MuonTrack(*track)) { - muonCounter++; - continue; - } - - SumDeltaR = MuonDeltaR; - - SumDeltaR += getDeltaR(m_TrackCollection->at(1), *track); - SumDeltaR += getDeltaR(*track, m_TrackCollection->at(0)); - - std::pair actTrack(SumDeltaR, *track); - - TrackMultiMap.insert(actTrack); - } - - //two tracks should be clearly identified as muons by check4MuonTrack - //else event is not useable - if (muonCounter < 2) { - LogDebug("Tau3MuReco") << "Not enough muons (" << muonCounter << ") assigned to a track! Event skipped!" - << std::endl; - return false; - } - - std::multimap::iterator it = TrackMultiMap.begin(); - - if (it == TrackMultiMap.end()) { - LogDebug("Tau3MuReco") << "Not enough tracks (0) left! Event skipped!" << std::endl; - return false; - } - - //get 2mu+track with minimal DeltaR Sum (MultiMaps are sorted) - m_TrackCollection->push_back((*it).second); - - //and check charge of this track - //and check invariant mass of this combination - //and make a vertex fit - - char Charge = m_TrackCollection->at(0).charge() * m_TrackCollection->at(1).charge(); - - unsigned int count = 0; - - //Charge > 0 means the two muons have same charge, so the third track has to have the opposit charge - while ((Charge > 0 && ((*it).second).charge() == (m_TrackCollection->at(0)).charge()) || - fabs(getInvariantMass(m_TrackCollection) - m_kTauMass) > m_kTauMassCut) { - count++; - - LogDebug("Tau3MuReco") << "Track canidate: " << count << std::endl; - - if (Charge > 0 && ((*it).second).charge() != (m_TrackCollection->at(0)).charge()) - LogDebug("Tau3MuReco") << "\tWrong charge!" << std::endl; - LogDebug("Tau3MuReco") << "\tInvariant Mass deviation! " << fabs(getInvariantMass(m_TrackCollection) - m_kTauMass) - << std::endl; - LogDebug("Tau3MuReco") << "\tTrack Pt: " << (*it).second.pt() << std::endl; - LogDebug("Tau3MuReco") << "\tDelta R: " << (*it).first << std::endl; - LogDebug("Tau3MuReco") << "\tChi2: " << ((*it).second).normalizedChi2() << std::endl; - - ++it; - - //was not the best canidate - m_TrackCollection->pop_back(); - - if (it == TrackMultiMap.end()) - return false; - - //get next to minimal (Delta R Sum) track - m_TrackCollection->push_back((*it).second); - } - - LogDebug("Tau3MuReco") << "Found corresponding 3rd track: " << std::endl; - LogDebug("Tau3MuReco") << "Track canidate: " << count << std::endl; - LogDebug("Tau3MuReco") << "\tInvariant Mass deviation! " << fabs(getInvariantMass(m_TrackCollection) - m_kTauMass) - << std::endl; - LogDebug("Tau3MuReco") << "\tDelta R: " << (*it).first << std::endl; - LogDebug("Tau3MuReco") << "\tNormChi2: " << ((*it).second).normalizedChi2() << std::endl; - - //choose this track, because it is the best canidate - return true; -} - -bool Tau3MuReco::findCorrectPairing() { - Combinatorics myCombinatorics(m_TrackCollection->size(), 3); - - std::vector > CombinationVec = myCombinatorics.GetCombinations(); - - std::vector >::iterator it = CombinationVec.begin(); - - char Charge = 0; - - reco::TrackCollection tempTrackCollection; - reco::MuonCollection tempMuonCollection; - - do { - if (it == CombinationVec.end()) - return false; - - Charge = 0; - - tempMuonCollection.clear(); - tempTrackCollection.clear(); - - for (UInt_t i = 0; i < (*it).size(); i++) { - Charge += m_TrackCollection->at((*it).at(i)).charge(); - tempTrackCollection.push_back(m_TrackCollection->at((*it).at(i))); - tempMuonCollection.push_back(m_MuonCollection->at((*it).at(i))); - } - - LogDebug("Tau3MuReco") << "Charge is: " << (int)Charge << " Have to be -1 or 1!!!" << std::endl; - LogDebug("Tau3MuReco") << "Invariant mass is: " << fabs(getInvariantMass(&tempTrackCollection) - m_kTauMass) - << " Have to be smaller than " << m_kTauMassCut << std::endl; - - it++; - } while (abs(Charge) != 1 || fabs(getInvariantMass(&tempTrackCollection) - m_kTauMass) > m_kTauMassCut); - - *m_MuonCollection = tempMuonCollection; - *m_TrackCollection = tempTrackCollection; - - return true; -} - -bool Tau3MuReco::removeIncorrectMuon() { - double deltaR12 = getDeltaR(m_TrackCollection->at(0), m_TrackCollection->at(1)); - double deltaR23 = getDeltaR(m_TrackCollection->at(1), m_TrackCollection->at(2)); - double deltaR31 = getDeltaR(m_TrackCollection->at(2), m_TrackCollection->at(0)); - - //if DeltaR12 is the smallest, than the 3rd one seems to be wrong - //if DeltaR23 is the smallest, than the 2nd one seems to be wrong - //if DeltaR31 is the smallest, than the 1st one seems to be wrong - - unsigned char temp; - double junk; - - deltaR12 < deltaR23 ? temp = 3 : temp = 1; - deltaR12 < deltaR23 ? junk = deltaR12 : junk = deltaR23; - - if (deltaR31 < junk) - temp = 2; - - m_TrackCollection->erase(m_TrackCollection->begin() + temp - 1); - - return true; -} - -double Tau3MuReco::getInvariantMass(const reco::TrackCollection* tracks, const double MuonMass) { - unsigned int numOfParticles = tracks->size(); - - double SumPx = 0; - double SumPy = 0; - double SumPz = 0; - - double SumE = 0; - - for (unsigned int i = 0; i < numOfParticles; i++) { - SumPx += tracks->at(i).px(); - SumPy += tracks->at(i).py(); - SumPz += tracks->at(i).pz(); - - SumE += sqrt(pow(tracks->at(i).p(), 2) + pow(MuonMass, 2)); - } - - double invmass = sqrt(pow(SumE, 2) - pow(SumPx, 2) - pow(SumPy, 2) - pow(SumPz, 2)); - - return invmass; -} - -double Tau3MuReco::getDeltaR(const reco::Track& track1, const reco::Track& track2) { - double dEta = track1.eta() - track2.eta(); - double dPhi = track1.phi() - track2.phi(); - - while (dPhi >= TMath::Pi()) - dPhi -= (2.0 * TMath::Pi()); - while (dPhi < (-1.0 * TMath::Pi())) - dPhi += (2.0 * TMath::Pi()); - - return sqrt(pow(dEta, 2) + pow(dPhi, 2)); -} diff --git a/HeavyFlavorAnalysis/Skimming/test/runCompactSkim.py b/HeavyFlavorAnalysis/Skimming/test/runCompactSkim.py deleted file mode 100644 index dc126265a270e..0000000000000 --- a/HeavyFlavorAnalysis/Skimming/test/runCompactSkim.py +++ /dev/null @@ -1,15 +0,0 @@ -from FWCore.ParameterSet.VarParsing import VarParsing -opt = VarParsing ('analysis') -opt.parseArguments() - -outFileName = opt.outputFile -inFileNames = opt.inputFiles -Global_Tag = 'auto:run2_mc' -MC = True -Filter = True - -import FWCore.ParameterSet.Config as cms -process = cms.Process('PAT') - -from HeavyFlavorAnalysis.Skimming.CompactSkim_cff import CompactSkim -CompactSkim(process,inFileNames,outFileName,Global_Tag,MC,Filter) diff --git a/HiggsAnalysis/Configuration/python/HiggsAnalysis_EventContent_cff.py b/HiggsAnalysis/Configuration/python/HiggsAnalysis_EventContent_cff.py deleted file mode 100644 index 25d89f1539d51..0000000000000 --- a/HiggsAnalysis/Configuration/python/HiggsAnalysis_EventContent_cff.py +++ /dev/null @@ -1,23 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# HiggsAnalysis event content -# -# Dominique Fortin - UC Riverside -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_EventContent_cff import * -from HiggsAnalysis.Skimming.higgsTo2Gamma_EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToInvisible_EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToWW2Leptons_EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_EventContent_cff import * -# include "HiggsAnalysis/Skimming/data/rsTo2Gamma_EventContent.cff" -HiggsAnalysisEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -HiggsAnalysisEventContent.outputCommands.extend(heavyChHiggsToTauNuEventContent.outputCommands) -HiggsAnalysisEventContent.outputCommands.extend(higgsTo2GammaEventContent.outputCommands) -HiggsAnalysisEventContent.outputCommands.extend(higgsToInvisibleEventContent.outputCommands) -HiggsAnalysisEventContent.outputCommands.extend(higgsToTauTauLeptonTauEventContent.outputCommands) -HiggsAnalysisEventContent.outputCommands.extend(higgsToWW2LeptonsEventContent.outputCommands) -HiggsAnalysisEventContent.outputCommands.extend(higgsToZZ4LeptonsEventContent.outputCommands) - diff --git a/HiggsAnalysis/Configuration/python/HiggsAnalysis_OutputModules_cff.py b/HiggsAnalysis/Configuration/python/HiggsAnalysis_OutputModules_cff.py deleted file mode 100644 index c63c0090099ff..0000000000000 --- a/HiggsAnalysis/Configuration/python/HiggsAnalysis_OutputModules_cff.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# HiggsAnalysis output modules -# -# Dominique Fortin - UC Riverside -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_OutputModule_cff import * -from HiggsAnalysis.Skimming.higgsTo2Gamma_OutputModule_cff import * -from HiggsAnalysis.Skimming.higgsToInvisible_OutputModule_cff import * -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_OutputModule_cff import * -from HiggsAnalysis.Skimming.higgsToWW2Leptons_OutputModule_cff import * -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_OutputModule_cff import * -# include "HiggsAnalysis/Skimming/data/rsTo2Gamma_OutputModule.cff" -HiggsAnalysisOutput = cms.Sequence(heavyChHiggsToTauNuOutputModuleRECOSIM+higgsTo2GammaOutputModuleRECOSIM+higgsToInvisibleOutputModuleRECOSIM+higgsToTauTauLeptonTauOutputModuleAODSIM+higgsToWW2LeptonsOutputModuleAODSIM+higgsToZZ4LeptonsOutputModuleRECOSIM) - diff --git a/HiggsAnalysis/Configuration/python/HiggsAnalysis_SkimPaths_cff.py b/HiggsAnalysis/Configuration/python/HiggsAnalysis_SkimPaths_cff.py deleted file mode 100644 index b775ed31f242b..0000000000000 --- a/HiggsAnalysis/Configuration/python/HiggsAnalysis_SkimPaths_cff.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# HiggsAnalysis skim paths -# -# Dominique Fortin - UC Riverside -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_SkimPaths_cff import * -from HiggsAnalysis.Skimming.higgsTo2Gamma_SkimPaths_cff import * -from HiggsAnalysis.Skimming.higgsToInvisible_SkimPaths_cff import * -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_SkimPaths_cff import * -from HiggsAnalysis.Skimming.higgsToWW2Leptons_SkimPaths_cff import * -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_SkimPaths_cff import * - diff --git a/HiggsAnalysis/Configuration/python/HiggsAnalysis_cff.py b/HiggsAnalysis/Configuration/python/HiggsAnalysis_cff.py deleted file mode 100644 index 382d73f86eabc..0000000000000 --- a/HiggsAnalysis/Configuration/python/HiggsAnalysis_cff.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# HiggsAnalysis standard sequences -# -# Dominique Fortin - UC Riverside -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_Sequences_cff import * -from HiggsAnalysis.Skimming.higgsTo2Gamma_Sequences_cff import * -from HiggsAnalysis.Skimming.higgsToInvisible_Sequences_cff import * -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_Sequences_cff import * -from HiggsAnalysis.Skimming.higgsToWW2Leptons_Sequences_cff import * -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_Sequences_cff import * -# include "HiggsAnalysis/Skimming/data/rsTo2Gamma_Sequences.cff" -higgsAnalysis = cms.Sequence(heavyChHiggsToTauNuSequence+higgsTo2GammaSequence+higgsToInvisibleSequence+higgsToTauTauLeptonTauSequence+higgsToWW2LeptonsSequence+higgsToZZ4LeptonsSequence) - diff --git a/HiggsAnalysis/HiggsToGammaGamma/BuildFile.xml b/HiggsAnalysis/HiggsToGammaGamma/BuildFile.xml deleted file mode 100644 index 68e49f7627d2e..0000000000000 --- a/HiggsAnalysis/HiggsToGammaGamma/BuildFile.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/HiggsAnalysis/HiggsToGammaGamma/interface/PhotonFix.h b/HiggsAnalysis/HiggsToGammaGamma/interface/PhotonFix.h deleted file mode 100644 index 553ab98ef661c..0000000000000 --- a/HiggsAnalysis/HiggsToGammaGamma/interface/PhotonFix.h +++ /dev/null @@ -1,172 +0,0 @@ -#ifndef PhotonFix_Defined_hh -#define PhotonFix_Defined_hh - -//-------------------------------------------------------// -// Project: PhotonFix -// Author: Paul Dauncey (p.dauncey@imperial.ac.uk) -// Modified: 11/07/2011 -// Admins: Paul Dauncey (p.dauncey@imperial.ac.uk) -// Matt Kenzie (matthew.william.kenzie@cern.ch) -//-------------------------------------------------------// - -/* - Does post-reco fixes to ECAL photon energy and estimates resolution. - This can run outside of the usual CMS software framework but requires - access to a file 'EcalGaps.dat' which must be in the same directory as - that used to run. - - To run within CMSSW use PhotonFixCMS.h (which can access the geometry - directly - go to "RecoEcal/EgammaCoreTools/plugins/PhotonFixCMS.h" - for details. - - Before instantiating any objects of PhotonFix, the constants must be - initialised in the first event using - PhotonFix::initialise("3_8"); - - The string gives the reco version used. Valid strings are - "3_8", "3_11", "4_2" and "Nominal", where the latter gives no correction - to the energy and a nominal resolution value. There is also "4_2e" which - provides corrections for electrons which are reconstructed as photons (to - aid with testing the performance of these corrections in data). - - Make objects using - PhotonFix a(energy,eta,phi,r9); - where energy is the photon energy, eta and phi are the ECAL - cluster positions (NB from the Supercluster object, _not_ the - Photon object, as the latter gives eta and phi directions, - not positions), and r9 is the R9 value of the SC. - - Get the corrected energy using - a.fixedEnergy(); - and the resolution using - a.sigmaEnergy(); - -*/ - -#include -#include - -class PhotonFix { -public: - PhotonFix(double e, double eta, double phi, double r9); - - // Must be called before instantiating any PhotonFix objects - static bool initialise(const std::string &s = "Nominal"); - static bool initialised(); - - // Used by above; do not call directly - static bool initialiseParameters(const std::string &s); - static bool initialiseGeometry(const std::string &s); - - void setup(); - - // Corrected energy and sigma - double fixedEnergy() const; - double sigmaEnergy() const; - - // Input values - double rawEnergy() const; - double eta() const; - double phi() const; - double r9() const; - - // Derived EB crystal, submodule and module relative coordinates - double etaC() const; - double etaS() const; - double etaM() const; - - double phiC() const; - double phiS() const; - double phiM() const; - - // Derived EE zeta, crystal, subcrystal and D-module relative coordinates - double xZ() const; - double xC() const; - double xS() const; - double xM() const; - - double yZ() const; - double yC() const; - double yS() const; - double yM() const; - - // Return arrays containing positions of ecal gaps - static void barrelCGap(unsigned i, unsigned j, unsigned k, double c); - static void barrelSGap(unsigned i, unsigned j, unsigned k, double c); - static void barrelMGap(unsigned i, unsigned j, unsigned k, double c); - static void endcapCrystal(unsigned i, unsigned j, bool c); - static void endcapCGap(unsigned i, unsigned j, unsigned k, double c); - static void endcapSGap(unsigned i, unsigned j, unsigned k, double c); - static void endcapMGap(unsigned i, unsigned j, unsigned k, double c); - - void print() const; - - // Input and output the fit parameters - static void setParameters(unsigned be, unsigned hl, const double *p); - static void getParameters(unsigned be, unsigned hl, double *p); - - static void dumpParameters(std::ostream &o); - static void printParameters(std::ostream &o); - - // Utility functions - static double GetaPhi(double f0, double f1); - static double asinh(double s); - static void dumpGaps(std::ostream &o); - -private: - // Utility functions - static double dPhi(double f0, double f1); - static double aPhi(double f0, double f1); - - static double expCorrection(double a, const double *p); - static double gausCorrection(double a, const double *p); - - // Actual data for each instantiated object - unsigned _be, _hl; - double _e, _eta, _phi, _r9; - double _aC, _aS, _aM, _bC, _bS, _bM; - - // Constants - static const double _onePi; - static const double _twoPi; - - // Initialisation flag - static bool _initialised; - - // Parameters for fixes - static double _meanScale[2][2][4]; - static double _meanAT[2][2][4]; - static double _meanAC[2][2][4]; - static double _meanAS[2][2][4]; - static double _meanAM[2][2][4]; - static double _meanBT[2][2][4]; - static double _meanBC[2][2][4]; - static double _meanBS[2][2][4]; - static double _meanBM[2][2][4]; - static double _meanR9[2][2][4]; - - // Parameters for resolution - static double _sigmaScale[2][2][4]; - static double _sigmaAT[2][2][4]; - static double _sigmaAC[2][2][4]; - static double _sigmaAS[2][2][4]; - static double _sigmaAM[2][2][4]; - static double _sigmaBT[2][2][4]; - static double _sigmaBC[2][2][4]; - static double _sigmaBS[2][2][4]; - static double _sigmaBM[2][2][4]; - static double _sigmaR9[2][2][4]; - - // EB gap positions - static double _barrelCGap[169][360][2]; - static double _barrelSGap[33][180][2]; - static double _barrelMGap[7][18][2]; - - // EE crystal existence and gap positions - static bool _endcapCrystal[100][100]; - static double _endcapCGap[2][7080][2]; - static double _endcapSGap[2][264][2]; - static double _endcapMGap[2][1][2]; -}; - -#endif diff --git a/HiggsAnalysis/HiggsToGammaGamma/interface/PhotonFixCMS.h b/HiggsAnalysis/HiggsToGammaGamma/interface/PhotonFixCMS.h deleted file mode 100644 index 1678534a3a652..0000000000000 --- a/HiggsAnalysis/HiggsToGammaGamma/interface/PhotonFixCMS.h +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef PhotonFixCMS_Defined_hh -#define PhotonFixCMS_Defined_hh - -//-------------------------------------------------------// -// Project: PhotonFix -// Author: Paul Dauncey (p.dauncey@imperial.ac.uk) -// Modified: 11/07/2011 -// Admins: Paul Dauncey (p.dauncey@imperial.ac.uk) -// Matt Kenzie (matthew.william.kenzie@cern.ch) -//-------------------------------------------------------// - -/* - Does post-reco fixes to ECAL photon energy and estimates resolution. - This can run outside of the usual CMS software framework but requires - access to a file 'PhotonFix.dat' which must be in the same directory as - that used to run. - - To run independently of CMSSW use PhotonFix.h directly - go to - "RecoEcal/EgammaCoreTools/plugins/PhotonFix.h" for details. - - Before instantiating any objects of PhotonFix, the constants must be - initialised in the first event using - PhotonFixCMS::initialise("3_8"); - - The string gives the reco version used. Valid strings are - "3_8", "3_11", "4_2" and "Nominal", where the latter gives no correction - to the energy and a nominal resolution value. There is also "4_2e" which - provides corrections for electrons which are reconstructed as photons (to - aid with testing the performance of these corrections in data). - - - Make objects using - PhotonFixCMS a(p); - where p is a reco::Photon reference - - Get the corrected energy using - a.fixedEnergy(); - and the resolution using - a.sigmaEnergy(); - -*/ - -#include -#include -#include "HiggsAnalysis/HiggsToGammaGamma/interface/PhotonFix.h" -#include "DataFormats/EgammaCandidates/interface/Photon.h" -#include "FWCore/Framework/interface/EventSetup.h" - -class PhotonFixCMS { -public: - PhotonFixCMS(const reco::Photon &p); - - // Must be called before instantiating any PhotonFix objects - static bool initialise(const edm::EventSetup &iSetup, const std::string &s = "Nominal"); - - // Corrected energy and sigma - double fixedEnergy() const; - double sigmaEnergy() const; - - const PhotonFix &photonFix() const; - -private: - PhotonFix pf; -}; -#endif diff --git a/HiggsAnalysis/HiggsToGammaGamma/src/PhotonFix.cc b/HiggsAnalysis/HiggsToGammaGamma/src/PhotonFix.cc deleted file mode 100644 index 8a1a67494db72..0000000000000 --- a/HiggsAnalysis/HiggsToGammaGamma/src/PhotonFix.cc +++ /dev/null @@ -1,2158 +0,0 @@ -#include -#include -#include -#include - -// ensure that this include points to the appropriate location for PhotonFix.h -#include "HiggsAnalysis/HiggsToGammaGamma/interface/PhotonFix.h" - -PhotonFix::PhotonFix(double e, double eta, double phi, double r9) : _e(e), _eta(eta), _phi(phi), _r9(r9) { setup(); } - -void PhotonFix::setup() { - // Check constants have been set up - assert(_initialised); - - // Determine if EB or EE - _be = (fabs(_eta) < 1.48 ? 0 : 1); - - // Determine if high or low R9 - if (_be == 0) - _hl = (_r9 >= 0.94 ? 0 : 1); - else - _hl = (_r9 >= 0.95 ? 0 : 1); - - // Coordinates relative to cracks - double r2Min; - if (_be == 0) { - r2Min = 1.0e6; - for (unsigned i(0); i < 169; i++) { - for (unsigned j(0); j < 360; j++) { - double de(_eta - _barrelCGap[i][j][0]); - double df(dPhi(_phi, _barrelCGap[i][j][1])); - double r2(de * de + df * df); - - if (r2 < r2Min) { - r2Min = r2; - if (i >= 84) { - _aC = de; - _bC = -df; - } else { - _aC = -de; - _bC = df; - } - } - } - } - - r2Min = 1.0e6; - for (unsigned i(0); i < 33; i++) { - for (unsigned j(0); j < 180; j++) { - double de(_eta - _barrelSGap[i][j][0]); - double df(dPhi(_phi, _barrelSGap[i][j][1])); - double r2(de * de + df * df); - - if (r2 < r2Min) { - r2Min = r2; - if (i >= 16) { - _aS = de; - _bS = -df; - } else { - _aS = -de; - _bS = df; - } - } - } - } - - r2Min = 1.0e6; - for (unsigned i(0); i < 7; i++) { - for (unsigned j(0); j < 18; j++) { - double de(_eta - _barrelMGap[i][j][0]); - double df(dPhi(_phi, _barrelMGap[i][j][1])); - double r2(de * de + df * df); - - if (r2 < r2Min) { - r2Min = r2; - if (i >= 3) { - _aM = de; - _bM = -df; - } else { - _aM = -de; - _bM = df; - } - } - } - } - - } else { - unsigned iz(_eta >= 0.0 ? 0 : 1); - double r[2] = {xZ(), yZ()}; - - r2Min = 1.0e6; - for (unsigned i(0); i < 7080; i++) { - double dx(r[0] - _endcapCGap[iz][i][0]); - double dy(r[1] - _endcapCGap[iz][i][1]); - double r2(dx * dx + dy * dy); - - if (r2 < r2Min) { - r2Min = r2; - if (r[0] > 0.0) - _aC = dx; - else - _aC = -dx; - if (r[1] > 0.0) - _bC = dy; - else - _bC = -dy; - } - } - - r2Min = 1.0e6; - for (unsigned i(0); i < 264; i++) { - double dx(r[0] - _endcapSGap[iz][i][0]); - double dy(r[1] - _endcapSGap[iz][i][1]); - double r2(dx * dx + dy * dy); - - if (r2 < r2Min) { - r2Min = r2; - if (r[0] > 0.0) - _aS = dx; - else - _aS = -dx; - if (r[1] > 0.0) - _bS = dy; - else - _bS = -dy; - } - } - - r2Min = 1.0e6; - for (unsigned i(0); i < 1; i++) { - double dx(r[0] - _endcapMGap[iz][i][0]); - double dy(r[1] - _endcapMGap[iz][i][1]); - double r2(dx * dx + dy * dy); - - if (r2 < r2Min) { - r2Min = r2; - if (iz == 0) { - _aM = dx; - _bM = dy; - } else { - _aM = -dx; - _bM = -dy; - } - } - } - } -} - -double PhotonFix::fixedEnergy() const { - double f(0.0); - - // Overall scale and energy(T) dependence - f = _meanScale[_be][_hl][0]; - f += _meanScale[_be][_hl][1] * _e; - f += _meanScale[_be][_hl][2] * _e / cosh(_eta); - f += _meanScale[_be][_hl][3] * cosh(_eta) / _e; - - // General eta or zeta dependence - if (_be == 0) { - f += _meanAT[_be][_hl][0] * _eta * _eta; - f += expCorrection(_eta, _meanBT[_be][_hl]); - } else { - f += _meanAT[_be][_hl][0] * xZ() * xZ(); - f += _meanBT[_be][_hl][0] * yZ() * yZ(); - } - - // Eta or x crystal, submodule and module dependence - f += expCorrection(_aC, _meanAC[_be][_hl]); - f += expCorrection(_aS, _meanAS[_be][_hl]); - f += expCorrection(_aM, _meanAM[_be][_hl]); - - // Phi or y crystal, submodule and module dependence - f += expCorrection(_bC, _meanBC[_be][_hl]); - f += expCorrection(_bS, _meanBS[_be][_hl]); - f += expCorrection(_bM, _meanBM[_be][_hl]); - - // R9 dependence - if (_hl == 0) { - f += _meanR9[_be][_hl][1] * (_r9 - _meanR9[_be][_hl][0]) * (_r9 - _meanR9[_be][_hl][0]) + - _meanR9[_be][_hl][2] * (_r9 - _meanR9[_be][_hl][0]) * (_r9 - _meanR9[_be][_hl][0]) * - (_r9 - _meanR9[_be][_hl][0]); - } else { - f += _meanR9[_be][_hl][0] * _r9 + _meanR9[_be][_hl][1] * _r9 * _r9 + _meanR9[_be][_hl][2] * _r9 * _r9 * _r9; - } - - return _e * f; -} - -double PhotonFix::sigmaEnergy() const { - // Overall resolution scale vs energy - double sigma; - if (_be == 0) { - sigma = _sigmaScale[_be][_hl][0] * _sigmaScale[_be][_hl][0]; - //std::cout << "PhotonFix::sigmaEnergy 1 sigma = " << sigma << std::endl; - sigma += _sigmaScale[_be][_hl][1] * _sigmaScale[_be][_hl][1] * _e; - //std::cout << "PhotonFix::sigmaEnergy 2 sigma = " << sigma << std::endl; - sigma += _sigmaScale[_be][_hl][2] * _sigmaScale[_be][_hl][2] * _e * _e; - //std::cout << "PhotonFix::sigmaEnergy 3 sigma = " << sigma << std::endl; - } else { - sigma = _sigmaScale[_be][_hl][0] * _sigmaScale[_be][_hl][0] * cosh(_eta) * cosh(_eta); - sigma += _sigmaScale[_be][_hl][1] * _sigmaScale[_be][_hl][1] * _e; - sigma += _sigmaScale[_be][_hl][2] * _sigmaScale[_be][_hl][2] * _e * _e; - } - sigma = sqrt(sigma); - - double f(1.0); - - // General eta or zeta dependence - if (_be == 0) { - f += _sigmaAT[_be][_hl][0] * _eta * _eta; - //std::cout << "PhotonFix::sigmaEnergy 4 f = " << f << std::endl; - f += expCorrection(_eta, _sigmaBT[_be][_hl]); - //std::cout << "PhotonFix::sigmaEnergy 5 f = " << f << std::endl; - } else { - f += _sigmaAT[_be][_hl][0] * xZ() * xZ(); - f += _sigmaBT[_be][_hl][0] * yZ() * yZ(); - } - - // Eta or x crystal, submodule and module dependence - f += expCorrection(_aC, _sigmaAC[_be][_hl]); - //std::cout << "PhotonFix::sigmaEnergy 6 f = " << f << std::endl; - f += expCorrection(_aS, _sigmaAS[_be][_hl]); - //std::cout << "PhotonFix::sigmaEnergy 7 f = " << f << std::endl; - f += expCorrection(_aM, _sigmaAM[_be][_hl]); - //std::cout << "PhotonFix::sigmaEnergy 8 f = " << f << std::endl; - - // Phi or y crystal, submodule and module dependence - f += expCorrection(_bC, _sigmaBC[_be][_hl]); - //std::cout << "PhotonFix::sigmaEnergy 9 f = " << f << std::endl; - f += expCorrection(_bS, _sigmaBS[_be][_hl]); - //std::cout << "PhotonFix::sigmaEnergy 10 f = " << f << std::endl; - f += expCorrection(_bM, _sigmaBM[_be][_hl]); - //std::cout << "PhotonFix::sigmaEnergy 11 f = " << f << std::endl; - - // R9 dependence - if (_hl == 0) { - f += _sigmaR9[_be][_hl][1] * (_r9 - _sigmaR9[_be][_hl][0]) * (_r9 - _sigmaR9[_be][_hl][0]) + - _sigmaR9[_be][_hl][2] * (_r9 - _sigmaR9[_be][_hl][0]) * (_r9 - _sigmaR9[_be][_hl][0]) * - (_r9 - _sigmaR9[_be][_hl][0]); - //std::cout << "PhotonFix::sigmaEnergy 12 f = " << f << std::endl; - } else { - f += _sigmaR9[_be][_hl][0] * _r9 + _sigmaR9[_be][_hl][1] * _r9 * _r9; - //std::cout << "PhotonFix::sigmaEnergy 13 f = " << f << std::endl; - } - - return sigma * f; -} - -double PhotonFix::rawEnergy() const { return _e; } - -double PhotonFix::eta() const { return _eta; } - -double PhotonFix::phi() const { return _phi; } - -double PhotonFix::r9() const { return _r9; } - -double PhotonFix::etaC() const { - assert(_be == 0); - return _aC; -} - -double PhotonFix::etaS() const { - assert(_be == 0); - return _aS; -} - -double PhotonFix::etaM() const { - assert(_be == 0); - return _aM; -} - -double PhotonFix::phiC() const { - assert(_be == 0); - return _bC; -} - -double PhotonFix::phiS() const { - assert(_be == 0); - return _bS; -} - -double PhotonFix::phiM() const { - assert(_be == 0); - return _bM; -} - -double PhotonFix::xZ() const { - assert(_be == 1); - return asinh(cos(_phi) / sinh(_eta)); -} - -double PhotonFix::xC() const { - assert(_be == 1); - return _aC; -} - -double PhotonFix::xS() const { - assert(_be == 1); - return _aS; -} - -double PhotonFix::xM() const { - assert(_be == 1); - return _aM; -} - -double PhotonFix::yZ() const { - assert(_be == 1); - return asinh(sin(_phi) / sinh(_eta)); -} - -double PhotonFix::yC() const { - assert(_be == 1); - return _bC; -} - -double PhotonFix::yS() const { - assert(_be == 1); - return _bS; -} - -double PhotonFix::yM() const { - assert(_be == 1); - return _bM; -} - -double PhotonFix::GetaPhi(double f0, double f1) { return aPhi(f0, f1); } - -void PhotonFix::barrelCGap(unsigned i, unsigned j, unsigned k, double c) { _barrelCGap[i][j][k] = c; } -void PhotonFix::barrelSGap(unsigned i, unsigned j, unsigned k, double c) { _barrelSGap[i][j][k] = c; } -void PhotonFix::barrelMGap(unsigned i, unsigned j, unsigned k, double c) { _barrelMGap[i][j][k] = c; } -void PhotonFix::endcapCrystal(unsigned i, unsigned j, bool c) { _endcapCrystal[i][j] = c; } -void PhotonFix::endcapCGap(unsigned i, unsigned j, unsigned k, double c) { _endcapCGap[i][j][k] = c; } -void PhotonFix::endcapSGap(unsigned i, unsigned j, unsigned k, double c) { _endcapSGap[i][j][k] = c; } -void PhotonFix::endcapMGap(unsigned i, unsigned j, unsigned k, double c) { _endcapMGap[i][j][k] = c; } - -void PhotonFix::print() const { - std::cout << "PhotonFix: e,eta,phi,r9 = " << _e << ", " << _eta << ", " << _phi << ", " << _r9 << ", gaps " << _aC - << ", " << _aS << ", " << _aM << ", " << _bC << ", " << _bS << ", " << _bM << std::endl; -} - -void PhotonFix::setParameters(unsigned be, unsigned hl, const double *p) { - for (unsigned i(0); i < 4; i++) { - _meanScale[be][hl][i] = p[i + 0 * 4]; - _meanAT[be][hl][i] = p[i + 1 * 4]; - _meanAC[be][hl][i] = p[i + 2 * 4]; - _meanAS[be][hl][i] = p[i + 3 * 4]; - _meanAM[be][hl][i] = p[i + 4 * 4]; - _meanBT[be][hl][i] = p[i + 5 * 4]; - _meanBC[be][hl][i] = p[i + 6 * 4]; - _meanBS[be][hl][i] = p[i + 7 * 4]; - _meanBM[be][hl][i] = p[i + 8 * 4]; - _meanR9[be][hl][i] = p[i + 9 * 4]; - - _sigmaScale[be][hl][i] = p[i + 10 * 4]; - _sigmaAT[be][hl][i] = p[i + 11 * 4]; - _sigmaAC[be][hl][i] = p[i + 12 * 4]; - _sigmaAS[be][hl][i] = p[i + 13 * 4]; - _sigmaAM[be][hl][i] = p[i + 14 * 4]; - _sigmaBT[be][hl][i] = p[i + 15 * 4]; - _sigmaBC[be][hl][i] = p[i + 16 * 4]; - _sigmaBS[be][hl][i] = p[i + 17 * 4]; - _sigmaBM[be][hl][i] = p[i + 18 * 4]; - _sigmaR9[be][hl][i] = p[i + 19 * 4]; - } -} - -void PhotonFix::getParameters(unsigned be, unsigned hl, double *p) { - for (unsigned i(0); i < 4; i++) { - p[i + 0 * 4] = _meanScale[be][hl][i]; - p[i + 1 * 4] = _meanAT[be][hl][i]; - p[i + 2 * 4] = _meanAC[be][hl][i]; - p[i + 3 * 4] = _meanAS[be][hl][i]; - p[i + 4 * 4] = _meanAM[be][hl][i]; - p[i + 5 * 4] = _meanBT[be][hl][i]; - p[i + 6 * 4] = _meanBC[be][hl][i]; - p[i + 7 * 4] = _meanBS[be][hl][i]; - p[i + 8 * 4] = _meanBM[be][hl][i]; - p[i + 9 * 4] = _meanR9[be][hl][i]; - - p[i + 10 * 4] = _sigmaScale[be][hl][i]; - p[i + 11 * 4] = _sigmaAT[be][hl][i]; - p[i + 12 * 4] = _sigmaAC[be][hl][i]; - p[i + 13 * 4] = _sigmaAS[be][hl][i]; - p[i + 14 * 4] = _sigmaAM[be][hl][i]; - p[i + 15 * 4] = _sigmaBT[be][hl][i]; - p[i + 16 * 4] = _sigmaBC[be][hl][i]; - p[i + 17 * 4] = _sigmaBS[be][hl][i]; - p[i + 18 * 4] = _sigmaBM[be][hl][i]; - p[i + 19 * 4] = _sigmaR9[be][hl][i]; - } -} - -void PhotonFix::dumpParameters(std::ostream &o) { - for (unsigned be(0); be < 2; be++) { - for (unsigned hl(0); hl < 2; hl++) { - for (unsigned i(0); i < 4; i++) { - o << " _meanScale[" << be << "][" << hl << "][" << i << "]=" << _meanScale[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _meanAT[" << be << "][" << hl << "][" << i << "]=" << _meanAT[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _meanAC[" << be << "][" << hl << "][" << i << "]=" << _meanAC[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _meanAS[" << be << "][" << hl << "][" << i << "]=" << _meanAS[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _meanAM[" << be << "][" << hl << "][" << i << "]=" << _meanAM[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _meanBT[" << be << "][" << hl << "][" << i << "]=" << _meanBT[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _meanBC[" << be << "][" << hl << "][" << i << "]=" << _meanBC[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _meanBS[" << be << "][" << hl << "][" << i << "]=" << _meanBS[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _meanBM[" << be << "][" << hl << "][" << i << "]=" << _meanBM[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _meanR9[" << be << "][" << hl << "][" << i << "]=" << _meanR9[be][hl][i] << ";" << std::endl; - } - o << std::endl; - - for (unsigned i(0); i < 4; i++) { - o << " _sigmaScale[" << be << "][" << hl << "][" << i << "]=" << _sigmaScale[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _sigmaAT[" << be << "][" << hl << "][" << i << "]=" << _sigmaAT[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _sigmaAC[" << be << "][" << hl << "][" << i << "]=" << _sigmaAC[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _sigmaAS[" << be << "][" << hl << "][" << i << "]=" << _sigmaAS[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _sigmaAM[" << be << "][" << hl << "][" << i << "]=" << _sigmaAM[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _sigmaBT[" << be << "][" << hl << "][" << i << "]=" << _sigmaBT[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _sigmaBC[" << be << "][" << hl << "][" << i << "]=" << _sigmaBC[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _sigmaBS[" << be << "][" << hl << "][" << i << "]=" << _sigmaBS[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _sigmaBM[" << be << "][" << hl << "][" << i << "]=" << _sigmaBM[be][hl][i] << ";" << std::endl; - } - for (unsigned i(0); i < 4; i++) { - o << " _sigmaR9[" << be << "][" << hl << "][" << i << "]=" << _sigmaR9[be][hl][i] << ";" << std::endl; - } - o << std::endl; - } - } -} - -void PhotonFix::printParameters(std::ostream &o) { - o << "PhotonFix::printParameters()" << std::endl; - - for (unsigned be(0); be < 2; be++) { - for (unsigned hl(0); hl < 2; hl++) { - o << " Parameters for " << (be == 0 ? "barrel" : "endcap") << ", " << (hl == 0 ? "high" : "low") << " R9" - << std::endl; - - o << " Mean scaling "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanScale[be][hl][i]; - o << std::endl; - o << " Mean " << (be == 0 ? "Eta " : "ZetaX") << " total "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanAT[be][hl][i]; - o << std::endl; - o << " Mean " << (be == 0 ? "Eta " : "ZetaX") << " crystal "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanAC[be][hl][i]; - o << std::endl; - o << " Mean " << (be == 0 ? "Eta " : "ZetaX") << " submodule"; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanAS[be][hl][i]; - o << std::endl; - o << " Mean " << (be == 0 ? "Eta " : "ZetaX") << " module "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanAM[be][hl][i]; - o << std::endl; - o << " Mean " << (be == 0 ? "Eta zero " : "ZetaY total "); - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanBT[be][hl][i]; - o << std::endl; - o << " Mean " << (be == 0 ? "Phi " : "ZetaY") << " crystal "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanBC[be][hl][i]; - o << std::endl; - o << " Mean " << (be == 0 ? "Phi " : "ZetaY") << " submodule"; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanBS[be][hl][i]; - o << std::endl; - o << " Mean " << (be == 0 ? "Phi " : "ZetaY") << " module "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanBM[be][hl][i]; - o << std::endl; - o << " Mean R9 "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _meanR9[be][hl][i]; - o << std::endl; - - o << " Sigma scaling "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaScale[be][hl][i]; - o << std::endl; - o << " Sigma " << (be == 0 ? "Eta " : "ZetaX") << " total "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaAT[be][hl][i]; - o << std::endl; - o << " Sigma " << (be == 0 ? "Eta " : "ZetaX") << " crystal "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaAC[be][hl][i]; - o << std::endl; - o << " Sigma " << (be == 0 ? "Eta " : "ZetaX") << " submodule"; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaAS[be][hl][i]; - o << std::endl; - o << " Sigma " << (be == 0 ? "Eta " : "ZetaX") << " module "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaAM[be][hl][i]; - o << std::endl; - o << " Sigma " << (be == 0 ? "Eta " : "ZetaY") << " total "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaBT[be][hl][i]; - o << std::endl; - o << " Sigma " << (be == 0 ? "Eta " : "ZetaY") << " crystal "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaBC[be][hl][i]; - o << std::endl; - o << " Sigma " << (be == 0 ? "Phi " : "ZetaY") << " submodule"; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaBS[be][hl][i]; - o << std::endl; - o << " Sigma " << (be == 0 ? "Phi " : "ZetaY") << " module "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaBM[be][hl][i]; - o << std::endl; - o << " Sigma R9 "; - for (unsigned i(0); i < 4; i++) - o << std::setw(14) << _sigmaR9[be][hl][i]; - o << std::endl; - } - } -} - -double PhotonFix::asinh(double s) { - if (s >= 0.0) - return log(sqrt(s * s + 1.0) + s); - else - return -log(sqrt(s * s + 1.0) - s); -} - -void PhotonFix::dumpGaps(std::ostream &o) { - o << std::setprecision(15); - - for (unsigned i(0); i < 169; i++) { - for (unsigned j(0); j < 360; j++) { - for (unsigned k(0); k < 2; k++) { - o << _barrelCGap[i][j][k] << std::endl; - } - } - } - - for (unsigned i(0); i < 33; i++) { - for (unsigned j(0); j < 180; j++) { - for (unsigned k(0); k < 2; k++) { - o << _barrelSGap[i][j][k] << std::endl; - } - } - } - - for (unsigned i(0); i < 7; i++) { - for (unsigned j(0); j < 18; j++) { - for (unsigned k(0); k < 2; k++) { - o << _barrelMGap[i][j][k] << std::endl; - } - } - } - - for (unsigned i(0); i < 100; i++) { - for (unsigned j(0); j < 100; j++) { - if (_endcapCrystal[i][j]) - o << 0 << std::endl; - else - o << 1 << std::endl; - } - } - - for (unsigned i(0); i < 2; i++) { - for (unsigned j(0); j < 7080; j++) { - for (unsigned k(0); k < 2; k++) { - o << _endcapCGap[i][j][k] << std::endl; - } - } - } - - for (unsigned i(0); i < 2; i++) { - for (unsigned j(0); j < 264; j++) { - for (unsigned k(0); k < 2; k++) { - o << _endcapSGap[i][j][k] << std::endl; - } - } - } - - for (unsigned i(0); i < 2; i++) { - for (unsigned j(0); j < 1; j++) { - for (unsigned k(0); k < 2; k++) { - o << _endcapMGap[i][j][k] << std::endl; - } - } - } -} - -double PhotonFix::dPhi(double f0, double f1) { - double df(f0 - f1); - if (df > _onePi) - df -= _twoPi; - if (df < -_onePi) - df += _twoPi; - return df; -} - -double PhotonFix::aPhi(double f0, double f1) { - double af(0.5 * (f0 + f1)); - if (fabs(dPhi(af, f0)) > 0.5 * _onePi) { - if (af >= 0.0) - af -= _onePi; - else - af += _onePi; - } - - assert(fabs(dPhi(af, f0)) < 0.5 * _onePi); - assert(fabs(dPhi(af, f1)) < 0.5 * _onePi); - - return af; -} - -double PhotonFix::expCorrection(double a, const double *p) { - if (p[1] == 0.0 || p[2] == 0.0 || p[3] == 0.0) - return 0.0; - - double b(a - p[0]); - if (b >= 0.0) - return p[1] * exp(-fabs(p[2]) * b); - else - return p[1] * exp(fabs(p[3]) * b); -} - -double PhotonFix::gausCorrection(double a, const double *p) { - if (p[1] == 0.0 || p[2] == 0.0 || p[3] == 0.0) - return 0.0; - - double b(a - p[0]); - if (b >= 0.0) - return p[1] * exp(-0.5 * p[2] * p[2] * b * b); - else - return p[1] * exp(-0.5 * p[3] * p[3] * b * b); -} -bool PhotonFix::initialised() { return _initialised; } -bool PhotonFix::initialise(const std::string &s) { - if (_initialised) - return false; - - initialiseParameters(s); - initialiseGeometry(s); - return true; -} - -bool PhotonFix::initialiseParameters(const std::string &s) { - _initialised = false; - - if (s == "Nominal") { - for (unsigned be(0); be < 2; be++) { - for (unsigned hl(0); hl < 2; hl++) { - for (unsigned i(0); i < 4; i++) { - _meanScale[be][hl][i] = 0; - _meanAT[be][hl][i] = 0; - _meanAC[be][hl][i] = 0; - _meanAS[be][hl][i] = 0; - _meanAM[be][hl][i] = 0; - _meanBT[be][hl][i] = 0; - _meanBC[be][hl][i] = 0; - _meanBS[be][hl][i] = 0; - _meanBM[be][hl][i] = 0; - _meanR9[be][hl][i] = 0; - - _sigmaScale[be][hl][i] = 0; - _sigmaAT[be][hl][i] = 0; - _sigmaAC[be][hl][i] = 0; - _sigmaAS[be][hl][i] = 0; - _sigmaAM[be][hl][i] = 0; - _sigmaBT[be][hl][i] = 0; - _sigmaBC[be][hl][i] = 0; - _sigmaBS[be][hl][i] = 0; - _sigmaBM[be][hl][i] = 0; - _sigmaR9[be][hl][i] = 0; - } - - _meanScale[be][hl][0] = 1.0; - if (be == 0) { - _sigmaScale[be][hl][0] = 0.2; - _sigmaScale[be][hl][1] = 0.03; - _sigmaScale[be][hl][2] = 0.006; - } else { - _sigmaScale[be][hl][0] = 0.25; - _sigmaScale[be][hl][1] = 0.05; - _sigmaScale[be][hl][2] = 0.010; - } - } - } - - _initialised = true; - } - - if (s == "3_8") { - _meanScale[0][0][0] = 0.994724; - _meanScale[0][0][1] = 1.98102e-06; - _meanScale[0][0][2] = 1.43015e-05; - _meanScale[0][0][3] = -0.0908525; - _meanAT[0][0][0] = 0.0; - _meanAT[0][0][1] = 0.0; - _meanAT[0][0][2] = 0.0; - _meanAT[0][0][3] = 0.0; - _meanAC[0][0][0] = -0.00352041; - _meanAC[0][0][1] = 0.00982015; - _meanAC[0][0][2] = 434.32; - _meanAC[0][0][3] = 529.508; - _meanAS[0][0][0] = -1.1; - _meanAS[0][0][1] = 0.00135995; - _meanAS[0][0][2] = 295.712; - _meanAS[0][0][3] = 5.13202e+07; - _meanAM[0][0][0] = -0.00140562; - _meanAM[0][0][1] = 0.156322; - _meanAM[0][0][2] = 263.097; - _meanAM[0][0][3] = 222.294; - _meanBT[0][0][0] = 0.0; - _meanBT[0][0][1] = 0.0; - _meanBT[0][0][2] = 0.0; - _meanBT[0][0][3] = 0.0; - _meanBC[0][0][0] = -0.00294295; - _meanBC[0][0][1] = 0.011533; - _meanBC[0][0][2] = 562.905; - _meanBC[0][0][3] = 421.097; - _meanBS[0][0][0] = -0.00204373; - _meanBS[0][0][1] = 0.00347592; - _meanBS[0][0][2] = 36.5614; - _meanBS[0][0][3] = 1265.25; - _meanBM[0][0][0] = -0.00275381; - _meanBM[0][0][1] = 0.0812447; - _meanBM[0][0][2] = 216.885; - _meanBM[0][0][3] = 264.754; - _meanR9[0][0][0] = 0.952584; - _meanR9[0][0][1] = 22.7119; - _meanR9[0][0][2] = 402.816; - _meanR9[0][0][3] = 0; - - _sigmaScale[0][0][0] = 0.167184; - _sigmaScale[0][0][1] = 6.14323e-11; - _sigmaScale[0][0][2] = 0.00769693; - _sigmaScale[0][0][3] = 0; - _sigmaAT[0][0][0] = 0.228255; - _sigmaAT[0][0][1] = 0; - _sigmaAT[0][0][2] = 0; - _sigmaAT[0][0][3] = 0; - _sigmaAC[0][0][0] = -0.00411906; - _sigmaAC[0][0][1] = 0.077799; - _sigmaAC[0][0][2] = 23.1033; - _sigmaAC[0][0][3] = -3e+17; - _sigmaAS[0][0][0] = 0; - _sigmaAS[0][0][1] = 0; - _sigmaAS[0][0][2] = 0; - _sigmaAS[0][0][3] = 0; - _sigmaAM[0][0][0] = -0.000130695; - _sigmaAM[0][0][1] = 11.2121; - _sigmaAM[0][0][2] = 468.535; - _sigmaAM[0][0][3] = 407.652; - _sigmaBT[0][0][0] = 1.33384e-05; - _sigmaBT[0][0][1] = 8.77098; - _sigmaBT[0][0][2] = 324.048; - _sigmaBT[0][0][3] = 239.868; - _sigmaBC[0][0][0] = -0.00281964; - _sigmaBC[0][0][1] = 0.125811; - _sigmaBC[0][0][2] = 538.949; - _sigmaBC[0][0][3] = 1358.76; - _sigmaBS[0][0][0] = 0; - _sigmaBS[0][0][1] = 0; - _sigmaBS[0][0][2] = 0; - _sigmaBS[0][0][3] = 0; - _sigmaBM[0][0][0] = -0.00293676; - _sigmaBM[0][0][1] = 8.88276; - _sigmaBM[0][0][2] = 350.032; - _sigmaBM[0][0][3] = 580.354; - _sigmaR9[0][0][0] = 0.955876; - _sigmaR9[0][0][1] = 2254.5; - _sigmaR9[0][0][2] = 14627; - _sigmaR9[0][0][3] = 0; - - _meanScale[0][1][0] = 0.888348; - _meanScale[0][1][1] = 1.20452e-05; - _meanScale[0][1][2] = -1.04458e-05; - _meanScale[0][1][3] = -0.542383; - _meanAT[0][1][0] = 0.0; - _meanAT[0][1][1] = 0.0; - _meanAT[0][1][2] = 0.0; - _meanAT[0][1][3] = 0.0; - _meanAC[0][1][0] = -0.00320856; - _meanAC[0][1][1] = 0.0240109; - _meanAC[0][1][2] = 115.145; - _meanAC[0][1][3] = 205.859; - _meanAS[0][1][0] = 0.0349736; - _meanAS[0][1][1] = -0.00232864; - _meanAS[0][1][2] = 318.584; - _meanAS[0][1][3] = 1.4e+09; - _meanAM[0][1][0] = -0.00104798; - _meanAM[0][1][1] = 0.208249; - _meanAM[0][1][2] = 297.049; - _meanAM[0][1][3] = 220.609; - _meanBT[0][1][0] = 0.0; - _meanBT[0][1][1] = 0.0; - _meanBT[0][1][2] = 0.0; - _meanBT[0][1][3] = 0.0; - _meanBC[0][1][0] = -0.00420429; - _meanBC[0][1][1] = 0.00203991; - _meanBC[0][1][2] = 172.278; - _meanBC[0][1][3] = 410.677; - _meanBS[0][1][0] = -0.0430854; - _meanBS[0][1][1] = 0.0961883; - _meanBS[0][1][2] = 0.196958; - _meanBS[0][1][3] = 11442.2; - _meanBM[0][1][0] = -0.00389457; - _meanBM[0][1][1] = 0.0449086; - _meanBM[0][1][2] = 78.9252; - _meanBM[0][1][3] = 103.237; - _meanR9[0][1][0] = 0.0182102; - _meanR9[0][1][1] = -0.03752; - _meanR9[0][1][2] = 0.0198881; - _meanR9[0][1][3] = 0; - - _sigmaScale[0][1][0] = 0.386681; - _sigmaScale[0][1][1] = 0.0913412; - _sigmaScale[0][1][2] = 0.00119232; - _sigmaScale[0][1][3] = 0; - _sigmaAT[0][1][0] = 1.36562; - _sigmaAT[0][1][1] = 0; - _sigmaAT[0][1][2] = 0; - _sigmaAT[0][1][3] = 0; - _sigmaAC[0][1][0] = -0.00504613; - _sigmaAC[0][1][1] = -1.09115; - _sigmaAC[0][1][2] = 8.57406; - _sigmaAC[0][1][3] = 57.1351; - _sigmaAS[0][1][0] = 0; - _sigmaAS[0][1][1] = 0; - _sigmaAS[0][1][2] = 0; - _sigmaAS[0][1][3] = 0; - _sigmaAM[0][1][0] = -0.00014319; - _sigmaAM[0][1][1] = 5.39527; - _sigmaAM[0][1][2] = 432.566; - _sigmaAM[0][1][3] = 265.165; - _sigmaBT[0][1][0] = -0.040161; - _sigmaBT[0][1][1] = 2.65711; - _sigmaBT[0][1][2] = -0.398357; - _sigmaBT[0][1][3] = -0.440649; - _sigmaBC[0][1][0] = 0.00580015; - _sigmaBC[0][1][1] = -0.631833; - _sigmaBC[0][1][2] = 18594.3; - _sigmaBC[0][1][3] = 4.00955e+08; - _sigmaBS[0][1][0] = 0; - _sigmaBS[0][1][1] = 0; - _sigmaBS[0][1][2] = 0; - _sigmaBS[0][1][3] = 0; - _sigmaBM[0][1][0] = -0.00376665; - _sigmaBM[0][1][1] = 3.74316; - _sigmaBM[0][1][2] = 102.72; - _sigmaBM[0][1][3] = 157.396; - _sigmaR9[0][1][0] = -3.12696; - _sigmaR9[0][1][1] = 1.75114; - _sigmaR9[0][1][2] = 0; - _sigmaR9[0][1][3] = 0; - - _meanScale[1][0][0] = 0.999461; - _meanScale[1][0][1] = 4.37414e-06; - _meanScale[1][0][2] = 4.92078e-06; - _meanScale[1][0][3] = -0.121609; - _meanAT[1][0][0] = 0.0; - _meanAT[1][0][1] = 0.0; - _meanAT[1][0][2] = 0.0; - _meanAT[1][0][3] = 0.0; - _meanAC[1][0][0] = -0.000396058; - _meanAC[1][0][1] = 0.0144837; - _meanAC[1][0][2] = 1374.93; - _meanAC[1][0][3] = 945.634; - _meanAS[1][0][0] = -0.000871036; - _meanAS[1][0][1] = 0.0442747; - _meanAS[1][0][2] = 645.709; - _meanAS[1][0][3] = 962.845; - _meanAM[1][0][0] = 0.000434298; - _meanAM[1][0][1] = 0.0658628; - _meanAM[1][0][2] = 1928.49; - _meanAM[1][0][3] = 728.522; - _meanBT[1][0][0] = 0.0; - _meanBT[1][0][1] = 0.0; - _meanBT[1][0][2] = 0.0; - _meanBT[1][0][3] = 0.0; - _meanBC[1][0][0] = -0.000452212; - _meanBC[1][0][1] = 0.0129968; - _meanBC[1][0][2] = 1056.08; - _meanBC[1][0][3] = 759.102; - _meanBS[1][0][0] = -0.000786157; - _meanBS[1][0][1] = 0.0346555; - _meanBS[1][0][2] = 592.239; - _meanBS[1][0][3] = 854.285; - _meanBM[1][0][0] = -0.0665038; - _meanBM[1][0][1] = -0.00211713; - _meanBM[1][0][2] = 4.84395; - _meanBM[1][0][3] = 11.6644; - _meanR9[1][0][0] = 0.971355; - _meanR9[1][0][1] = 47.2751; - _meanR9[1][0][2] = 536.907; - _meanR9[1][0][3] = 0; - - _sigmaScale[1][0][0] = 0.254641; - _sigmaScale[1][0][1] = 0.00264818; - _sigmaScale[1][0][2] = 0.0114953; - _sigmaScale[1][0][3] = 0; - _sigmaAT[1][0][0] = 0.935839; - _sigmaAT[1][0][1] = 0; - _sigmaAT[1][0][2] = 0; - _sigmaAT[1][0][3] = 0; - _sigmaAC[1][0][0] = -0.00476475; - _sigmaAC[1][0][1] = 2.14548; - _sigmaAC[1][0][2] = 29937; - _sigmaAC[1][0][3] = 2.6e+11; - _sigmaAS[1][0][0] = -8.17285e-05; - _sigmaAS[1][0][1] = 1.5821; - _sigmaAS[1][0][2] = 1928.83; - _sigmaAS[1][0][3] = 902.519; - _sigmaAM[1][0][0] = 0.0278577; - _sigmaAM[1][0][1] = 0.58439; - _sigmaAM[1][0][2] = 43.3575; - _sigmaAM[1][0][3] = 19.7836; - _sigmaBT[1][0][0] = -0.456051; - _sigmaBT[1][0][1] = 0; - _sigmaBT[1][0][2] = 0; - _sigmaBT[1][0][3] = 0; - _sigmaBC[1][0][0] = -0.00264527; - _sigmaBC[1][0][1] = 0.696043; - _sigmaBC[1][0][2] = 7.49509e+12; - _sigmaBC[1][0][3] = 96843; - _sigmaBS[1][0][0] = 0.000258933; - _sigmaBS[1][0][1] = 1.28387; - _sigmaBS[1][0][2] = 1668.71; - _sigmaBS[1][0][3] = 730.716; - _sigmaBM[1][0][0] = 0.00121506; - _sigmaBM[1][0][1] = 0.938541; - _sigmaBM[1][0][2] = 9003.57; - _sigmaBM[1][0][3] = 288.897; - _sigmaR9[1][0][0] = 1.01207; - _sigmaR9[1][0][1] = -816.244; - _sigmaR9[1][0][2] = -16283.8; - _sigmaR9[1][0][3] = 0; - - _meanScale[1][1][0] = 0.324634; - _meanScale[1][1][1] = 9.48206e-05; - _meanScale[1][1][2] = 1.0e-12; - _meanScale[1][1][3] = 1.0e-12; - _meanAT[1][1][0] = 0.0; - _meanAT[1][1][1] = 0.0; - _meanAT[1][1][2] = 0.0; - _meanAT[1][1][3] = 0.0; - _meanAC[1][1][0] = -0.00158311; - _meanAC[1][1][1] = 0.0106161; - _meanAC[1][1][2] = 338.964; - _meanAC[1][1][3] = 797.172; - _meanAS[1][1][0] = -0.00960269; - _meanAS[1][1][1] = -0.00496491; - _meanAS[1][1][2] = 934.472; - _meanAS[1][1][3] = 8.32667e-16; - _meanAM[1][1][0] = -0.00219814; - _meanAM[1][1][1] = 0.653906; - _meanAM[1][1][2] = 0.0949848; - _meanAM[1][1][3] = 0.0977831; - _meanBT[1][1][0] = 0.0; - _meanBT[1][1][1] = 0.0; - _meanBT[1][1][2] = 0.0; - _meanBT[1][1][3] = 0.0; - _meanBC[1][1][0] = -0.00423472; - _meanBC[1][1][1] = 0.0279695; - _meanBC[1][1][2] = 28073.7; - _meanBC[1][1][3] = 118612; - _meanBS[1][1][0] = -0.0012476; - _meanBS[1][1][1] = 0.02744; - _meanBS[1][1][2] = 390.697; - _meanBS[1][1][3] = 727.861; - _meanBM[1][1][0] = -1.36573e-05; - _meanBM[1][1][1] = 0.0667504; - _meanBM[1][1][2] = -80154.4; - _meanBM[1][1][3] = 576.637; - _meanR9[1][1][0] = 0.113317; - _meanR9[1][1][1] = 0.0142669; - _meanR9[1][1][2] = -0.125721; - _meanR9[1][1][3] = 0; - - _sigmaScale[1][1][0] = 0.471767; - _sigmaScale[1][1][1] = 0.211196; - _sigmaScale[1][1][2] = 0.0240124; - _sigmaScale[1][1][3] = 0; - _sigmaAT[1][1][0] = 0.404395; - _sigmaAT[1][1][1] = 0; - _sigmaAT[1][1][2] = 0; - _sigmaAT[1][1][3] = 0; - _sigmaAC[1][1][0] = 0.00173151; - _sigmaAC[1][1][1] = -0.479291; - _sigmaAC[1][1][2] = 11583.5; - _sigmaAC[1][1][3] = -7e+09; - _sigmaAS[1][1][0] = 0.000450387; - _sigmaAS[1][1][1] = 0.662978; - _sigmaAS[1][1][2] = 924.051; - _sigmaAS[1][1][3] = 448.417; - _sigmaAM[1][1][0] = 0.00335603; - _sigmaAM[1][1][1] = 0.648407; - _sigmaAM[1][1][2] = 134.672; - _sigmaAM[1][1][3] = 27.4139; - _sigmaBT[1][1][0] = 0.602402; - _sigmaBT[1][1][1] = 0; - _sigmaBT[1][1][2] = 0; - _sigmaBT[1][1][3] = 0; - _sigmaBC[1][1][0] = -0.00256192; - _sigmaBC[1][1][1] = 2.01276; - _sigmaBC[1][1][2] = 114558; - _sigmaBC[1][1][3] = 2.15421e+06; - _sigmaBS[1][1][0] = 0.00151576; - _sigmaBS[1][1][1] = 0.359084; - _sigmaBS[1][1][2] = 329.414; - _sigmaBS[1][1][3] = 154.509; - _sigmaBM[1][1][0] = -0.0452587; - _sigmaBM[1][1][1] = 1.26253; - _sigmaBM[1][1][2] = 1.9e+09; - _sigmaBM[1][1][3] = 1058.76; - _sigmaR9[1][1][0] = 4.59667; - _sigmaR9[1][1][1] = -5.14404; - _sigmaR9[1][1][2] = 0; - _sigmaR9[1][1][3] = 0; - - _initialised = true; - } - - if (s == "3_11") { - _meanScale[0][0][0] = 0.994363; - _meanScale[0][0][1] = 4.84904e-07; - _meanScale[0][0][2] = 1.54475e-05; - _meanScale[0][0][3] = -0.103309; - _meanAT[0][0][0] = 0.0; - _meanAT[0][0][1] = 0.0; - _meanAT[0][0][2] = 0.0; - _meanAT[0][0][3] = 0.0; - _meanAC[0][0][0] = -0.00360057; - _meanAC[0][0][1] = 0.00970858; - _meanAC[0][0][2] = 409.406; - _meanAC[0][0][3] = 527.952; - _meanAS[0][0][0] = -1.1; - _meanAS[0][0][1] = 0.00135995; - _meanAS[0][0][2] = 295.712; - _meanAS[0][0][3] = 5.13202e+07; - _meanAM[0][0][0] = -0.00129854; - _meanAM[0][0][1] = 0.151466; - _meanAM[0][0][2] = 261.828; - _meanAM[0][0][3] = 214.662; - _meanBT[0][0][0] = 0.0; - _meanBT[0][0][1] = 0.0; - _meanBT[0][0][2] = 0.0; - _meanBT[0][0][3] = 0.0; - _meanBC[0][0][0] = -0.00286864; - _meanBC[0][0][1] = 0.0114118; - _meanBC[0][0][2] = 563.962; - _meanBC[0][0][3] = 412.922; - _meanBS[0][0][0] = -0.00210996; - _meanBS[0][0][1] = 0.00327867; - _meanBS[0][0][2] = 23.617; - _meanBS[0][0][3] = 1018.45; - _meanBM[0][0][0] = -0.002287; - _meanBM[0][0][1] = 0.0848984; - _meanBM[0][0][2] = 235.575; - _meanBM[0][0][3] = 260.773; - _meanR9[0][0][0] = 0.951724; - _meanR9[0][0][1] = 23.7181; - _meanR9[0][0][2] = 177.34; - _meanR9[0][0][3] = 0; - - _sigmaScale[0][0][0] = 0.187578; - _sigmaScale[0][0][1] = -0.000901045; - _sigmaScale[0][0][2] = 0.00673186; - _sigmaScale[0][0][3] = 0; - _sigmaAT[0][0][0] = 0.183777; - _sigmaAT[0][0][1] = 0; - _sigmaAT[0][0][2] = 0; - _sigmaAT[0][0][3] = 0; - _sigmaAC[0][0][0] = -0.00430202; - _sigmaAC[0][0][1] = 0.122501; - _sigmaAC[0][0][2] = 51.9772; - _sigmaAC[0][0][3] = -3e+17; - _sigmaAS[0][0][0] = 0; - _sigmaAS[0][0][1] = 0; - _sigmaAS[0][0][2] = 0; - _sigmaAS[0][0][3] = 0; - _sigmaAM[0][0][0] = 0.00101883; - _sigmaAM[0][0][1] = 11.2009; - _sigmaAM[0][0][2] = 593.111; - _sigmaAM[0][0][3] = 345.433; - _sigmaBT[0][0][0] = -6.02356e-05; - _sigmaBT[0][0][1] = 6.99896; - _sigmaBT[0][0][2] = 235.996; - _sigmaBT[0][0][3] = 196; - _sigmaBC[0][0][0] = -0.00282254; - _sigmaBC[0][0][1] = 0.18764; - _sigmaBC[0][0][2] = 509.825; - _sigmaBC[0][0][3] = 1400.14; - _sigmaBS[0][0][0] = 0; - _sigmaBS[0][0][1] = 0; - _sigmaBS[0][0][2] = 0; - _sigmaBS[0][0][3] = 0; - _sigmaBM[0][0][0] = -0.00252199; - _sigmaBM[0][0][1] = 39.1544; - _sigmaBM[0][0][2] = 612.481; - _sigmaBM[0][0][3] = 905.994; - _sigmaR9[0][0][0] = 0.95608; - _sigmaR9[0][0][1] = 2203.31; - _sigmaR9[0][0][2] = -22454.2; - _sigmaR9[0][0][3] = 0; - - _meanScale[0][1][0] = 0.889415; - _meanScale[0][1][1] = 1.21788e-05; - _meanScale[0][1][2] = -4.3438e-06; - _meanScale[0][1][3] = -0.629968; - _meanAT[0][1][0] = 0.0; - _meanAT[0][1][1] = 0.0; - _meanAT[0][1][2] = 0.0; - _meanAT[0][1][3] = 0.0; - _meanAC[0][1][0] = -0.00313701; - _meanAC[0][1][1] = 0.0227998; - _meanAC[0][1][2] = 128.653; - _meanAC[0][1][3] = 234.333; - _meanAS[0][1][0] = 0.0346198; - _meanAS[0][1][1] = -0.00261336; - _meanAS[0][1][2] = 177.983; - _meanAS[0][1][3] = 1.19839e+14; - _meanAM[0][1][0] = -0.00100745; - _meanAM[0][1][1] = 0.264247; - _meanAM[0][1][2] = 337.255; - _meanAM[0][1][3] = 251.454; - _meanBT[0][1][0] = 0.0; - _meanBT[0][1][1] = 0.0; - _meanBT[0][1][2] = 0.0; - _meanBT[0][1][3] = 0.0; - _meanBC[0][1][0] = -0.00397794; - _meanBC[0][1][1] = 0.00219079; - _meanBC[0][1][2] = 176.842; - _meanBC[0][1][3] = 450.29; - _meanBS[0][1][0] = -2e+07; - _meanBS[0][1][1] = 0.0957598; - _meanBS[0][1][2] = -8.88573e-27; - _meanBS[0][1][3] = 11442.2; - _meanBM[0][1][0] = -0.00366315; - _meanBM[0][1][1] = 0.0622186; - _meanBM[0][1][2] = 94.5155; - _meanBM[0][1][3] = 126.404; - _meanR9[0][1][0] = 0.00636789; - _meanR9[0][1][1] = 0.000336062; - _meanR9[0][1][2] = -0.0092699; - _meanR9[0][1][3] = 0; - - _sigmaScale[0][1][0] = 0.685096; - _sigmaScale[0][1][1] = 0.129065; - _sigmaScale[0][1][2] = -0.00212486; - _sigmaScale[0][1][3] = 0; - _sigmaAT[0][1][0] = 0.898865; - _sigmaAT[0][1][1] = 0; - _sigmaAT[0][1][2] = 0; - _sigmaAT[0][1][3] = 0; - _sigmaAC[0][1][0] = -0.00492979; - _sigmaAC[0][1][1] = -1.20123; - _sigmaAC[0][1][2] = 2.89231; - _sigmaAC[0][1][3] = 18.2059; - _sigmaAS[0][1][0] = 0; - _sigmaAS[0][1][1] = 0; - _sigmaAS[0][1][2] = 0; - _sigmaAS[0][1][3] = 0; - _sigmaAM[0][1][0] = -0.000727825; - _sigmaAM[0][1][1] = 8.42395; - _sigmaAM[0][1][2] = 512.032; - _sigmaAM[0][1][3] = 415.962; - _sigmaBT[0][1][0] = -0.0336364; - _sigmaBT[0][1][1] = 2.45182; - _sigmaBT[0][1][2] = -0.284353; - _sigmaBT[0][1][3] = -0.31679; - _sigmaBC[0][1][0] = 0.00510553; - _sigmaBC[0][1][1] = -0.953869; - _sigmaBC[0][1][2] = 113872; - _sigmaBC[0][1][3] = 1.35966e+09; - _sigmaBS[0][1][0] = 0; - _sigmaBS[0][1][1] = 0; - _sigmaBS[0][1][2] = 0; - _sigmaBS[0][1][3] = 0; - _sigmaBM[0][1][0] = -0.0034071; - _sigmaBM[0][1][1] = 4.19719; - _sigmaBM[0][1][2] = 128.952; - _sigmaBM[0][1][3] = 180.604; - _sigmaR9[0][1][0] = -3.38988; - _sigmaR9[0][1][1] = 2.0714; - _sigmaR9[0][1][2] = 0; - _sigmaR9[0][1][3] = 0; - - _meanScale[1][0][0] = 1.0009; - _meanScale[1][0][1] = -4.79805e-06; - _meanScale[1][0][2] = 3.34625e-05; - _meanScale[1][0][3] = -0.194267; - _meanAT[1][0][0] = 0.0; - _meanAT[1][0][1] = 0.0; - _meanAT[1][0][2] = 0.0; - _meanAT[1][0][3] = 0.0; - _meanAC[1][0][0] = -0.000177563; - _meanAC[1][0][1] = 0.0122839; - _meanAC[1][0][2] = 1798.92; - _meanAC[1][0][3] = 776.856; - _meanAS[1][0][0] = -0.000533039; - _meanAS[1][0][1] = 0.0642604; - _meanAS[1][0][2] = 969.596; - _meanAS[1][0][3] = 1004.15; - _meanAM[1][0][0] = 0.000163185; - _meanAM[1][0][1] = 0.085936; - _meanAM[1][0][2] = 1593.17; - _meanAM[1][0][3] = 681.623; - _meanBT[1][0][0] = 0.0; - _meanBT[1][0][1] = 0.0; - _meanBT[1][0][2] = 0.0; - _meanBT[1][0][3] = 0.0; - _meanBC[1][0][0] = -0.000518186; - _meanBC[1][0][1] = 0.0121868; - _meanBC[1][0][2] = 1112.53; - _meanBC[1][0][3] = 933.281; - _meanBS[1][0][0] = -0.000750734; - _meanBS[1][0][1] = 0.03859; - _meanBS[1][0][2] = 547.579; - _meanBS[1][0][3] = 775.887; - _meanBM[1][0][0] = -0.190395; - _meanBM[1][0][1] = -0.00362647; - _meanBM[1][0][2] = 5.25687; - _meanBM[1][0][3] = -2.8e+08; - _meanR9[1][0][0] = 0.972346; - _meanR9[1][0][1] = 53.9185; - _meanR9[1][0][2] = 1354.5; - _meanR9[1][0][3] = 0; - - _sigmaScale[1][0][0] = 0.348019; - _sigmaScale[1][0][1] = -6.43731e-11; - _sigmaScale[1][0][2] = 0.0158647; - _sigmaScale[1][0][3] = 0; - _sigmaAT[1][0][0] = 0.215239; - _sigmaAT[1][0][1] = 0; - _sigmaAT[1][0][2] = 0; - _sigmaAT[1][0][3] = 0; - _sigmaAC[1][0][0] = -0.00492298; - _sigmaAC[1][0][1] = -3.40058; - _sigmaAC[1][0][2] = 17263.9; - _sigmaAC[1][0][3] = 2.6e+11; - _sigmaAS[1][0][0] = -0.000237998; - _sigmaAS[1][0][1] = 3.0258; - _sigmaAS[1][0][2] = 1811.25; - _sigmaAS[1][0][3] = 1846.79; - _sigmaAM[1][0][0] = 0.0210134; - _sigmaAM[1][0][1] = 0.328359; - _sigmaAM[1][0][2] = 22.49; - _sigmaAM[1][0][3] = 14.5021; - _sigmaBT[1][0][0] = -0.495072; - _sigmaBT[1][0][1] = 0; - _sigmaBT[1][0][2] = 0; - _sigmaBT[1][0][3] = 0; - _sigmaBC[1][0][0] = -0.00265007; - _sigmaBC[1][0][1] = 0.970549; - _sigmaBC[1][0][2] = -6.89119e+07; - _sigmaBC[1][0][3] = 180110; - _sigmaBS[1][0][0] = 0.00045833; - _sigmaBS[1][0][1] = 2.16342; - _sigmaBS[1][0][2] = 3582.4; - _sigmaBS[1][0][3] = 1100.36; - _sigmaBM[1][0][0] = 0.00188871; - _sigmaBM[1][0][1] = 1.66177; - _sigmaBM[1][0][2] = 3.2e+08; - _sigmaBM[1][0][3] = 2163.81; - _sigmaR9[1][0][0] = -220.415; - _sigmaR9[1][0][1] = 5.19136e-08; - _sigmaR9[1][0][2] = 3.04028e-10; - _sigmaR9[1][0][3] = 0; - - _meanScale[1][1][0] = 0.338011; - _meanScale[1][1][1] = 9.47815e-05; - _meanScale[1][1][2] = -0.000238735; - _meanScale[1][1][3] = -0.846414; - _meanAT[1][1][0] = 0.0; - _meanAT[1][1][1] = 0.0; - _meanAT[1][1][2] = 0.0; - _meanAT[1][1][3] = 0.0; - _meanAC[1][1][0] = -0.00125367; - _meanAC[1][1][1] = 0.013324; - _meanAC[1][1][2] = 203.988; - _meanAC[1][1][3] = 431.951; - _meanAS[1][1][0] = 0.000282607; - _meanAS[1][1][1] = 0.0307431; - _meanAS[1][1][2] = 343.509; - _meanAS[1][1][3] = 274.957; - _meanAM[1][1][0] = 0.0020258; - _meanAM[1][1][1] = 0.643913; - _meanAM[1][1][2] = 0.0693877; - _meanAM[1][1][3] = 0.0816029; - _meanBT[1][1][0] = 0.0; - _meanBT[1][1][1] = 0.0; - _meanBT[1][1][2] = 0.0; - _meanBT[1][1][3] = 0.0; - _meanBC[1][1][0] = -0.00513833; - _meanBC[1][1][1] = 5.94424e+08; - _meanBC[1][1][2] = -62814.9; - _meanBC[1][1][3] = 118612; - _meanBS[1][1][0] = -0.00152129; - _meanBS[1][1][1] = 0.0234694; - _meanBS[1][1][2] = 186.483; - _meanBS[1][1][3] = 754.201; - _meanBM[1][1][0] = -0.000404987; - _meanBM[1][1][1] = 0.156384; - _meanBM[1][1][2] = -1.7e+08; - _meanBM[1][1][3] = 1793.83; - _meanR9[1][1][0] = 0.0645278; - _meanR9[1][1][1] = 0.161614; - _meanR9[1][1][2] = -0.215822; - _meanR9[1][1][3] = 0; - - _sigmaScale[1][1][0] = 1.07376; - _sigmaScale[1][1][1] = 7.47238e-13; - _sigmaScale[1][1][2] = 0.0289594; - _sigmaScale[1][1][3] = 0; - _sigmaAT[1][1][0] = -0.520907; - _sigmaAT[1][1][1] = 0; - _sigmaAT[1][1][2] = 0; - _sigmaAT[1][1][3] = 0; - _sigmaAC[1][1][0] = 0.00165941; - _sigmaAC[1][1][1] = -0.351422; - _sigmaAC[1][1][2] = 8968.94; - _sigmaAC[1][1][3] = -7e+09; - _sigmaAS[1][1][0] = 0.000490279; - _sigmaAS[1][1][1] = 0.554531; - _sigmaAS[1][1][2] = 469.111; - _sigmaAS[1][1][3] = 457.541; - _sigmaAM[1][1][0] = 0.00102079; - _sigmaAM[1][1][1] = 0.628055; - _sigmaAM[1][1][2] = 53.9452; - _sigmaAM[1][1][3] = 72.911; - _sigmaBT[1][1][0] = -0.461542; - _sigmaBT[1][1][1] = 0; - _sigmaBT[1][1][2] = 0; - _sigmaBT[1][1][3] = 0; - _sigmaBC[1][1][0] = -0.00219303; - _sigmaBC[1][1][1] = 0.874327; - _sigmaBC[1][1][2] = 71353.2; - _sigmaBC[1][1][3] = 2.09924e+08; - _sigmaBS[1][1][0] = 0.00104021; - _sigmaBS[1][1][1] = 0.236098; - _sigmaBS[1][1][2] = 482.954; - _sigmaBS[1][1][3] = 191.984; - _sigmaBM[1][1][0] = -0.000116086; - _sigmaBM[1][1][1] = 2.4438; - _sigmaBM[1][1][2] = 1.9e+09; - _sigmaBM[1][1][3] = -700.271; - _sigmaR9[1][1][0] = 4.59374; - _sigmaR9[1][1][1] = -5.06202; - _sigmaR9[1][1][2] = 0; - _sigmaR9[1][1][3] = 0; - - _initialised = true; - } - - if (s == "4_2") { - _meanScale[0][0][0] = 0.996757; - _meanScale[0][0][1] = -1.02729e-05; - _meanScale[0][0][2] = 2.92397e-05; - _meanScale[0][0][3] = -0.0892806; - _meanAT[0][0][0] = 0.000616189; - _meanAT[0][0][1] = 0; - _meanAT[0][0][2] = 0; - _meanAT[0][0][3] = 0; - _meanAC[0][0][0] = -0.00343502; - _meanAC[0][0][1] = 0.0102123; - _meanAC[0][0][2] = 460.294; - _meanAC[0][0][3] = 510.925; - _meanAS[0][0][0] = 0; - _meanAS[0][0][1] = 0; - _meanAS[0][0][2] = 0; - _meanAS[0][0][3] = 0; - _meanAM[0][0][0] = -0.0010363; - _meanAM[0][0][1] = 0.147364; - _meanAM[0][0][2] = 280.742; - _meanAM[0][0][3] = 200.903; - _meanBT[0][0][0] = 0; - _meanBT[0][0][1] = 0.0290516; - _meanBT[0][0][2] = -113.185; - _meanBT[0][0][3] = -176099; - _meanBC[0][0][0] = -0.00262961; - _meanBC[0][0][1] = 0.0134481; - _meanBC[0][0][2] = 699.825; - _meanBC[0][0][3] = 401.452; - _meanBS[0][0][0] = 0; - _meanBS[0][0][1] = 0; - _meanBS[0][0][2] = 0; - _meanBS[0][0][3] = 0; - _meanBM[0][0][0] = -0.00170238; - _meanBM[0][0][1] = 0.0751873; - _meanBM[0][0][2] = 232.9; - _meanBM[0][0][3] = 225.712; - _meanR9[0][0][0] = 0.946441; - _meanR9[0][0][1] = 19.5162; - _meanR9[0][0][2] = 173.503; - _meanR9[0][0][3] = 0; - - _sigmaScale[0][0][0] = 0.196245; - _sigmaScale[0][0][1] = 0.0191932; - _sigmaScale[0][0][2] = 0.00660053; - _sigmaScale[0][0][3] = 0; - _sigmaAT[0][0][0] = 0.179417; - _sigmaAT[0][0][1] = 0; - _sigmaAT[0][0][2] = 0; - _sigmaAT[0][0][3] = 0; - _sigmaAC[0][0][0] = -0.00383752; - _sigmaAC[0][0][1] = 0.0881981; - _sigmaAC[0][0][2] = 88.6384; - _sigmaAC[0][0][3] = -3e+17; - _sigmaAS[0][0][0] = 0; - _sigmaAS[0][0][1] = 0; - _sigmaAS[0][0][2] = 0; - _sigmaAS[0][0][3] = 0; - _sigmaAM[0][0][0] = 0.000932441; - _sigmaAM[0][0][1] = 10.1637; - _sigmaAM[0][0][2] = 610.691; - _sigmaAM[0][0][3] = 290.271; - _sigmaBT[0][0][0] = -0.00599323; - _sigmaBT[0][0][1] = 1.71943; - _sigmaBT[0][0][2] = 90.7352; - _sigmaBT[0][0][3] = 164.449; - _sigmaBC[0][0][0] = -0.00167802; - _sigmaBC[0][0][1] = 0.303306; - _sigmaBC[0][0][2] = 1326.56; - _sigmaBC[0][0][3] = 765.552; - _sigmaBS[0][0][0] = 0; - _sigmaBS[0][0][1] = 0; - _sigmaBS[0][0][2] = 0; - _sigmaBS[0][0][3] = 0; - _sigmaBM[0][0][0] = -0.00252598; - _sigmaBM[0][0][1] = 52.0947; - _sigmaBM[0][0][2] = 660.313; - _sigmaBM[0][0][3] = 1052.64; - _sigmaR9[0][0][0] = 0.952982; - _sigmaR9[0][0][1] = 1961.39; - _sigmaR9[0][0][2] = 22382.1; - _sigmaR9[0][0][3] = 0; - - _meanScale[0][1][0] = 0.88802; - _meanScale[0][1][1] = 1.61e-05; - _meanScale[0][1][2] = -1.08e-05; - _meanScale[0][1][3] = -0.489; - _meanAT[0][1][0] = -0.00165; - _meanAT[0][1][1] = 0; - _meanAT[0][1][2] = 0; - _meanAT[0][1][3] = 0; - _meanAC[0][1][0] = -0.003195; - _meanAC[0][1][1] = 0.02012; - _meanAC[0][1][2] = 151.6; - _meanAC[0][1][3] = 255; - _meanAS[0][1][0] = 0; - _meanAS[0][1][1] = 0; - _meanAS[0][1][2] = 0; - _meanAS[0][1][3] = 0; - _meanAM[0][1][0] = -0.00055; - _meanAM[0][1][1] = 0.1515; - _meanAM[0][1][2] = 534; - _meanAM[0][1][3] = 330; - _meanBT[0][1][0] = 0; - _meanBT[0][1][1] = 0.187; - _meanBT[0][1][2] = 299.298; - _meanBT[0][1][3] = 428.221; - _meanBC[0][1][0] = -0.00366; - _meanBC[0][1][1] = 0.0038; - _meanBC[0][1][2] = 760; - _meanBC[0][1][3] = 760; - _meanBS[0][1][0] = 0; - _meanBS[0][1][1] = 0; - _meanBS[0][1][2] = 0; - _meanBS[0][1][3] = 0; - _meanBM[0][1][0] = -0.00316; - _meanBM[0][1][1] = 0.0404; - _meanBM[0][1][2] = 137; - _meanBM[0][1][3] = 146; - _meanR9[0][1][0] = 0.02573; - _meanR9[0][1][1] = -0.03722; - _meanR9[0][1][2] = 0.0144; - _meanR9[0][1][3] = 0; - - _sigmaScale[0][1][0] = 0.66; - _sigmaScale[0][1][1] = 0.07465; - _sigmaScale[0][1][2] = -0.00373; - _sigmaScale[0][1][3] = 0; - _sigmaAT[0][1][0] = 1.363; - _sigmaAT[0][1][1] = 0; - _sigmaAT[0][1][2] = 0; - _sigmaAT[0][1][3] = 0; - _sigmaAC[0][1][0] = -0.00342; - _sigmaAC[0][1][1] = -1.667; - _sigmaAC[0][1][2] = 6.6; - _sigmaAC[0][1][3] = 14; - _sigmaAS[0][1][0] = 0; - _sigmaAS[0][1][1] = 0; - _sigmaAS[0][1][2] = 0; - _sigmaAS[0][1][3] = 0; - _sigmaAM[0][1][0] = -0.00094; - _sigmaAM[0][1][1] = 12.0228; - _sigmaAM[0][1][2] = 536; - _sigmaAM[0][1][3] = 464; - _sigmaBT[0][1][0] = 0.022; - _sigmaBT[0][1][1] = 3.223; - _sigmaBT[0][1][2] = -0.361; - _sigmaBT[0][1][3] = -0.318; - _sigmaBC[0][1][0] = 0.00567264; - _sigmaBC[0][1][1] = -1.184; - _sigmaBC[0][1][2] = 76000; - _sigmaBC[0][1][3] = 2.14748e+08; - _sigmaBS[0][1][0] = 0; - _sigmaBS[0][1][1] = 0; - _sigmaBS[0][1][2] = 0; - _sigmaBS[0][1][3] = 0; - _sigmaBM[0][1][0] = -0.00236; - _sigmaBM[0][1][1] = 5.78; - _sigmaBM[0][1][2] = 166; - _sigmaBM[0][1][3] = 203.5; - _sigmaR9[0][1][0] = -2.94; - _sigmaR9[0][1][1] = 1.53445; - _sigmaR9[0][1][2] = 0; - _sigmaR9[0][1][3] = 0; - - _meanScale[1][0][0] = 0.993921; - _meanScale[1][0][1] = -8.11417e-06; - _meanScale[1][0][2] = 3.23086e-05; - _meanScale[1][0][3] = -0.0976369; - _meanAT[1][0][0] = 0.0691979; - _meanAT[1][0][1] = 0; - _meanAT[1][0][2] = 0; - _meanAT[1][0][3] = 0; - _meanAC[1][0][0] = -0.000310485; - _meanAC[1][0][1] = 0.0169478; - _meanAC[1][0][2] = 1301.97; - _meanAC[1][0][3] = 796.53; - _meanAS[1][0][0] = -0.0005425; - _meanAS[1][0][1] = 0.0676613; - _meanAS[1][0][2] = 790.284; - _meanAS[1][0][3] = 970; - _meanAM[1][0][0] = 0.000134362; - _meanAM[1][0][1] = 0.364822; - _meanAM[1][0][2] = 3396.04; - _meanAM[1][0][3] = 2407.2; - _meanBT[1][0][0] = 0.0456649; - _meanBT[1][0][1] = 0; - _meanBT[1][0][2] = 0; - _meanBT[1][0][3] = 0; - _meanBC[1][0][0] = -0.000356413; - _meanBC[1][0][1] = 0.0167018; - _meanBC[1][0][2] = 1394.52; - _meanBC[1][0][3] = 823.035; - _meanBS[1][0][0] = -0.000484; - _meanBS[1][0][1] = 0.0542618; - _meanBS[1][0][2] = 798.07; - _meanBS[1][0][3] = 1019.88; - _meanBM[1][0][0] = -0.175333; - _meanBM[1][0][1] = -0.00324513; - _meanBM[1][0][2] = 2.87972; - _meanBM[1][0][3] = 7.58712e+12; - _meanR9[1][0][0] = 0.96393; - _meanR9[1][0][1] = 29.6072; - _meanR9[1][0][2] = 334.89; - _meanR9[1][0][3] = 0; - - _sigmaScale[1][0][0] = 0.337911; - _sigmaScale[1][0][1] = 1.03419e-11; - _sigmaScale[1][0][2] = 0.0153846; - _sigmaScale[1][0][3] = 0; - _sigmaAT[1][0][0] = 1.12; - _sigmaAT[1][0][1] = 0; - _sigmaAT[1][0][2] = 0; - _sigmaAT[1][0][3] = 0; - _sigmaAC[1][0][0] = 48.1275; - _sigmaAC[1][0][1] = 1.50005e+08; - _sigmaAC[1][0][2] = 21231.6; - _sigmaAC[1][0][3] = 2.6e+11; - _sigmaAS[1][0][0] = -0.00036952; - _sigmaAS[1][0][1] = 2.75194; - _sigmaAS[1][0][2] = 1045.06; - _sigmaAS[1][0][3] = 1420.87; - _sigmaAM[1][0][0] = 0.05567; - _sigmaAM[1][0][1] = 0.32; - _sigmaAM[1][0][2] = 420; - _sigmaAM[1][0][3] = 12.8233; - _sigmaBT[1][0][0] = -0.22312; - _sigmaBT[1][0][1] = 0; - _sigmaBT[1][0][2] = 0; - _sigmaBT[1][0][3] = 0; - _sigmaBC[1][0][0] = -0.00320087; - _sigmaBC[1][0][1] = 59.2836; - _sigmaBC[1][0][2] = 7.49509e+12; - _sigmaBC[1][0][3] = 1.32714e+07; - _sigmaBS[1][0][0] = 0.000189384; - _sigmaBS[1][0][1] = 2.89111; - _sigmaBS[1][0][2] = 2468.02; - _sigmaBS[1][0][3] = 1294.69; - _sigmaBM[1][0][0] = 0.00154629; - _sigmaBM[1][0][1] = 16.9762; - _sigmaBM[1][0][2] = 1.05e+07; - _sigmaBM[1][0][3] = -9e+06; - _sigmaR9[1][0][0] = 99.68; - _sigmaR9[1][0][1] = -9.37265e-08; - _sigmaR9[1][0][2] = 6.91613e-09; - _sigmaR9[1][0][3] = 0; - - _meanScale[1][1][0] = 0.340125; - _meanScale[1][1][1] = -5.02007e-05; - _meanScale[1][1][2] = 0.000208216; - _meanScale[1][1][3] = -1.32063; - _meanAT[1][1][0] = -0.092494; - _meanAT[1][1][1] = 0; - _meanAT[1][1][2] = 0; - _meanAT[1][1][3] = 0; - _meanAC[1][1][0] = -0.00131984; - _meanAC[1][1][1] = 0.00950668; - _meanAC[1][1][2] = 259.804; - _meanAC[1][1][3] = 705.003; - _meanAS[1][1][0] = -0.00705787; - _meanAS[1][1][1] = -0.00581517; - _meanAS[1][1][2] = 7.10951e+10; - _meanAS[1][1][3] = -68.7322; - _meanAM[1][1][0] = -0.00496966; - _meanAM[1][1][1] = 0.655834; - _meanAM[1][1][2] = 0.0491064; - _meanAM[1][1][3] = 0.0632471; - _meanBT[1][1][0] = -0.158344; - _meanBT[1][1][1] = 0; - _meanBT[1][1][2] = 0; - _meanBT[1][1][3] = 0; - _meanBC[1][1][0] = -0.00498431; - _meanBC[1][1][1] = -18315.4; - _meanBC[1][1][2] = 50760; - _meanBC[1][1][3] = 118612; - _meanBS[1][1][0] = -0.000620577; - _meanBS[1][1][1] = 0.0247672; - _meanBS[1][1][2] = 437.005; - _meanBS[1][1][3] = 374.823; - _meanBM[1][1][0] = 0.000431046; - _meanBM[1][1][1] = 0.0224695; - _meanBM[1][1][2] = -1.06e+07; - _meanBM[1][1][3] = -135.039; - _meanR9[1][1][0] = 0.151826; - _meanR9[1][1][1] = 0.00348896; - _meanR9[1][1][2] = -0.161781; - _meanR9[1][1][3] = 0; - - _sigmaScale[1][1][0] = 1.19993; - _sigmaScale[1][1][1] = 1.38778e-17; - _sigmaScale[1][1][2] = 0.0251314; - _sigmaScale[1][1][3] = 0; - _sigmaAT[1][1][0] = -0.791929; - _sigmaAT[1][1][1] = 0; - _sigmaAT[1][1][2] = 0; - _sigmaAT[1][1][3] = 0; - _sigmaAC[1][1][0] = 0.0015505; - _sigmaAC[1][1][1] = -0.530085; - _sigmaAC[1][1][2] = 33506.7; - _sigmaAC[1][1][3] = -7e+09; - _sigmaAS[1][1][0] = 7.98682e-05; - _sigmaAS[1][1][1] = 0.875124; - _sigmaAS[1][1][2] = 483.102; - _sigmaAS[1][1][3] = 1005.71; - _sigmaAM[1][1][0] = -0.00510653; - _sigmaAM[1][1][1] = 1.05312; - _sigmaAM[1][1][2] = 49.6466; - _sigmaAM[1][1][3] = 7.11474e+12; - _sigmaBT[1][1][0] = -1.30079; - _sigmaBT[1][1][1] = 0; - _sigmaBT[1][1][2] = 0; - _sigmaBT[1][1][3] = 0; - _sigmaBC[1][1][0] = -0.00202301; - _sigmaBC[1][1][1] = 4.19368; - _sigmaBC[1][1][2] = -1.08161e+07; - _sigmaBC[1][1][3] = -6e+09; - _sigmaBS[1][1][0] = 0.00182147; - _sigmaBS[1][1][1] = 0.25995; - _sigmaBS[1][1][2] = 881.576; - _sigmaBS[1][1][3] = 304.891; - _sigmaBM[1][1][0] = -0.0454995; - _sigmaBM[1][1][1] = 7.63845; - _sigmaBM[1][1][2] = 1.9e+09; - _sigmaBM[1][1][3] = 150001; - _sigmaR9[1][1][0] = 5.69741; - _sigmaR9[1][1][1] = -6.23853; - _sigmaR9[1][1][2] = 0; - _sigmaR9[1][1][3] = 0; - - _initialised = true; - } - - if (s == "4_2e") { - _meanScale[0][0][0] = 1.02133; - _meanScale[0][0][1] = -0.000183073; - _meanScale[0][0][2] = 0.000252052; - _meanScale[0][0][3] = 0.300892; - _meanAT[0][0][0] = 0.016876; - _meanAT[0][0][1] = 0; - _meanAT[0][0][2] = 0; - _meanAT[0][0][3] = 0; - _meanAC[0][0][0] = -0.00327969; - _meanAC[0][0][1] = 0.00932112; - _meanAC[0][0][2] = 430.176; - _meanAC[0][0][3] = 440.94; - _meanAS[0][0][0] = 0; - _meanAS[0][0][1] = 0; - _meanAS[0][0][2] = 0; - _meanAS[0][0][3] = 0; - _meanAM[0][0][0] = -0.000876726; - _meanAM[0][0][1] = 0.128953; - _meanAM[0][0][2] = 262.609; - _meanAM[0][0][3] = 204.869; - _meanBT[0][0][0] = 0; - _meanBT[0][0][1] = 0; - _meanBT[0][0][2] = 0; - _meanBT[0][0][3] = 0; - _meanBC[0][0][0] = -0.00316342; - _meanBC[0][0][1] = 0.00801235; - _meanBC[0][0][2] = 552.944; - _meanBC[0][0][3] = 507.239; - _meanBS[0][0][0] = 0; - _meanBS[0][0][1] = 0; - _meanBS[0][0][2] = 0; - _meanBS[0][0][3] = 0; - _meanBM[0][0][0] = -0.00171652; - _meanBM[0][0][1] = 0.0746995; - _meanBM[0][0][2] = 190.606; - _meanBM[0][0][3] = 210.147; - _meanR9[0][0][0] = 0.847311; - _meanR9[0][0][1] = -10.0049; - _meanR9[0][0][2] = 67.613; - _meanR9[0][0][3] = 0; - - _sigmaScale[0][0][0] = 0.345777; - _sigmaScale[0][0][1] = 0.0375747; - _sigmaScale[0][0][2] = -0.00516299; - _sigmaScale[0][0][3] = 0; - _sigmaAT[0][0][0] = 0.994444; - _sigmaAT[0][0][1] = 0; - _sigmaAT[0][0][2] = 0; - _sigmaAT[0][0][3] = 0; - _sigmaAC[0][0][0] = -0.00380373; - _sigmaAC[0][0][1] = -1.00415; - _sigmaAC[0][0][2] = 110274; - _sigmaAC[0][0][3] = -3e+17; - _sigmaAS[0][0][0] = 0; - _sigmaAS[0][0][1] = 0; - _sigmaAS[0][0][2] = 0; - _sigmaAS[0][0][3] = 0; - _sigmaAM[0][0][0] = -0.000881147; - _sigmaAM[0][0][1] = 8.76414; - _sigmaAM[0][0][2] = 455.387; - _sigmaAM[0][0][3] = 412.382; - _sigmaBT[0][0][0] = 0.00578517; - _sigmaBT[0][0][1] = 2.28008; - _sigmaBT[0][0][2] = -3.36e+07; - _sigmaBT[0][0][3] = -152.696; - _sigmaBC[0][0][0] = -0.00161997; - _sigmaBC[0][0][1] = 50513.8; - _sigmaBC[0][0][2] = -1.26888e+07; - _sigmaBC[0][0][3] = 3.75561e+07; - _sigmaBS[0][0][0] = 0; - _sigmaBS[0][0][1] = 0; - _sigmaBS[0][0][2] = 0; - _sigmaBS[0][0][3] = 0; - _sigmaBM[0][0][0] = -0.00168415; - _sigmaBM[0][0][1] = 6.89324; - _sigmaBM[0][0][2] = 272.169; - _sigmaBM[0][0][3] = 315.424; - _sigmaR9[0][0][0] = 0.952571; - _sigmaR9[0][0][1] = 0; - _sigmaR9[0][0][2] = 0; - _sigmaR9[0][0][3] = 0; - - _meanScale[0][1][0] = 0.870259; - _meanScale[0][1][1] = 0.000234598; - _meanScale[0][1][2] = -0.000262422; - _meanScale[0][1][3] = 0.277914; - _meanAT[0][1][0] = 1e-06; - _meanAT[0][1][1] = 0; - _meanAT[0][1][2] = 0; - _meanAT[0][1][3] = 0; - _meanAC[0][1][0] = -0.00324258; - _meanAC[0][1][1] = 0.0209948; - _meanAC[0][1][2] = 167.983; - _meanAC[0][1][3] = 305.464; - _meanAS[0][1][0] = 0.0333341; - _meanAS[0][1][1] = -591.066; - _meanAS[0][1][2] = 1.48079e+11; - _meanAS[0][1][3] = 1.61987e+07; - _meanAM[0][1][0] = -0.000991417; - _meanAM[0][1][1] = 0.121994; - _meanAM[0][1][2] = 367.004; - _meanAM[0][1][3] = 289.22; - _meanBT[0][1][0] = 0; - _meanBT[0][1][1] = 0.187; - _meanBT[0][1][2] = 299.298; - _meanBT[0][1][3] = 428.221; - _meanBC[0][1][0] = -0.00437016; - _meanBC[0][1][1] = 0.00235015; - _meanBC[0][1][2] = 759.85; - _meanBC[0][1][3] = -5018.79; - _meanBS[0][1][0] = -1.2e+08; - _meanBS[0][1][1] = 0.0934286; - _meanBS[0][1][2] = -1.226e-16; - _meanBS[0][1][3] = 11442.2; - _meanBM[0][1][0] = -0.000153536; - _meanBM[0][1][1] = 0.0101487; - _meanBM[0][1][2] = 60.0003; - _meanBM[0][1][3] = -4.4e+08; - _meanR9[0][1][0] = 0.0853634; - _meanR9[0][1][1] = -0.263819; - _meanR9[0][1][2] = 0.200892; - _meanR9[0][1][3] = 0; - - _sigmaScale[0][1][0] = 0.705452; - _sigmaScale[0][1][1] = -0.0781086; - _sigmaScale[0][1][2] = 0.0039561; - _sigmaScale[0][1][3] = 0; - _sigmaAT[0][1][0] = 1.46888; - _sigmaAT[0][1][1] = 0; - _sigmaAT[0][1][2] = 0; - _sigmaAT[0][1][3] = 0; - _sigmaAC[0][1][0] = -0.00537924; - _sigmaAC[0][1][1] = -0.740685; - _sigmaAC[0][1][2] = 1.59714; - _sigmaAC[0][1][3] = 31.9922; - _sigmaAS[0][1][0] = 0; - _sigmaAS[0][1][1] = 0; - _sigmaAS[0][1][2] = 0; - _sigmaAS[0][1][3] = 0; - _sigmaAM[0][1][0] = 0.000163134; - _sigmaAM[0][1][1] = 7.30822; - _sigmaAM[0][1][2] = 632.013; - _sigmaAM[0][1][3] = 373.003; - _sigmaBT[0][1][0] = 0.00253725; - _sigmaBT[0][1][1] = 2.97332; - _sigmaBT[0][1][2] = -0.516548; - _sigmaBT[0][1][3] = -0.50994; - _sigmaBC[0][1][0] = 0.00578715; - _sigmaBC[0][1][1] = -0.473225; - _sigmaBC[0][1][2] = 8363.08; - _sigmaBC[0][1][3] = 2.36808e+19; - _sigmaBS[0][1][0] = 0; - _sigmaBS[0][1][1] = 0; - _sigmaBS[0][1][2] = 0; - _sigmaBS[0][1][3] = 0; - _sigmaBM[0][1][0] = 0.000184199; - _sigmaBM[0][1][1] = 3.82105; - _sigmaBM[0][1][2] = 93.4062; - _sigmaBM[0][1][3] = 95.4072; - _sigmaR9[0][1][0] = 1.20664; - _sigmaR9[0][1][1] = -3.43548; - _sigmaR9[0][1][2] = 0; - _sigmaR9[0][1][3] = 0; - - _meanScale[1][0][0] = 0.966787; - _meanScale[1][0][1] = 4.77112e-05; - _meanScale[1][0][2] = -4.47768e-05; - _meanScale[1][0][3] = 0.0854689; - _meanAT[1][0][0] = 0.0691979; - _meanAT[1][0][1] = 0; - _meanAT[1][0][2] = 0; - _meanAT[1][0][3] = 0; - _meanAC[1][0][0] = -0.000985244; - _meanAC[1][0][1] = 0.0132327; - _meanAC[1][0][2] = 530.13; - _meanAC[1][0][3] = 1008.64; - _meanAS[1][0][0] = -0.000571197; - _meanAS[1][0][1] = 0.0579624; - _meanAS[1][0][2] = 687.722; - _meanAS[1][0][3] = 836.21; - _meanAM[1][0][0] = 0.00052402; - _meanAM[1][0][1] = 0.402941; - _meanAM[1][0][2] = 3615.29; - _meanAM[1][0][3] = 1495.1; - _meanBT[1][0][0] = 0.0456649; - _meanBT[1][0][1] = 0; - _meanBT[1][0][2] = 0; - _meanBT[1][0][3] = 0; - _meanBC[1][0][0] = -0.000675969; - _meanBC[1][0][1] = 0.0118283; - _meanBC[1][0][2] = 1050.1; - _meanBC[1][0][3] = 1329.8; - _meanBS[1][0][0] = -0.000254569; - _meanBS[1][0][1] = 0.0576783; - _meanBS[1][0][2] = 853.571; - _meanBS[1][0][3] = 938.698; - _meanBM[1][0][0] = -0.186506; - _meanBM[1][0][1] = -0.00654349; - _meanBM[1][0][2] = 1.09286; - _meanBM[1][0][3] = -5.8e+08; - _meanR9[1][0][0] = 0.951164; - _meanR9[1][0][1] = -0.323083; - _meanR9[1][0][2] = 506.054; - _meanR9[1][0][3] = 0; - - _sigmaScale[1][0][0] = 0.443288; - _sigmaScale[1][0][1] = 1.73472e-18; - _sigmaScale[1][0][2] = 0.0134633; - _sigmaScale[1][0][3] = 0; - _sigmaAT[1][0][0] = 6.60294; - _sigmaAT[1][0][1] = 0; - _sigmaAT[1][0][2] = 0; - _sigmaAT[1][0][3] = 0; - _sigmaAC[1][0][0] = 48.1275; - _sigmaAC[1][0][1] = 1.50005e+08; - _sigmaAC[1][0][2] = 21231.6; - _sigmaAC[1][0][3] = 2.6e+11; - _sigmaAS[1][0][0] = 0.000112234; - _sigmaAS[1][0][1] = 2.38201; - _sigmaAS[1][0][2] = 1368.36; - _sigmaAS[1][0][3] = 1014.58; - _sigmaAM[1][0][0] = 0.0227945; - _sigmaAM[1][0][1] = 1.35035; - _sigmaAM[1][0][2] = 34.8078; - _sigmaAM[1][0][3] = 41.2653; - _sigmaBT[1][0][0] = 4.6512; - _sigmaBT[1][0][1] = 0; - _sigmaBT[1][0][2] = 0; - _sigmaBT[1][0][3] = 0; - _sigmaBC[1][0][0] = -0.00385034; - _sigmaBC[1][0][1] = 9860.11; - _sigmaBC[1][0][2] = 7.49509e+12; - _sigmaBC[1][0][3] = 5.55794e+07; - _sigmaBS[1][0][0] = 0.000287389; - _sigmaBS[1][0][1] = 2.22754; - _sigmaBS[1][0][2] = 2066.43; - _sigmaBS[1][0][3] = 926.247; - _sigmaBM[1][0][0] = 0.00110983; - _sigmaBM[1][0][1] = 4.70582; - _sigmaBM[1][0][2] = 8.47552e+10; - _sigmaBM[1][0][3] = -4572.21; - _sigmaR9[1][0][0] = 141.283; - _sigmaR9[1][0][1] = -6.07621e-07; - _sigmaR9[1][0][2] = 1.40907e-08; - _sigmaR9[1][0][3] = 0; - - _meanScale[1][1][0] = 0.290862; - _meanScale[1][1][1] = -5.93303e-05; - _meanScale[1][1][2] = 0.000431058; - _meanScale[1][1][3] = 0.350738; - _meanAT[1][1][0] = -0.092494; - _meanAT[1][1][1] = 0; - _meanAT[1][1][2] = 0; - _meanAT[1][1][3] = 0; - _meanAC[1][1][0] = -0.00105099; - _meanAC[1][1][1] = 0.0195863; - _meanAC[1][1][2] = 162.87; - _meanAC[1][1][3] = 259.479; - _meanAS[1][1][0] = -0.00820192; - _meanAS[1][1][1] = -0.00404515; - _meanAS[1][1][2] = -9e+12; - _meanAS[1][1][3] = -12.1537; - _meanAM[1][1][0] = 0.00430129; - _meanAM[1][1][1] = 0.647006; - _meanAM[1][1][2] = 0.0524654; - _meanAM[1][1][3] = 0.057336; - _meanBT[1][1][0] = -0.158344; - _meanBT[1][1][1] = 0; - _meanBT[1][1][2] = 0; - _meanBT[1][1][3] = 0; - _meanBC[1][1][0] = -0.00661496; - _meanBC[1][1][1] = -0.0551321; - _meanBC[1][1][2] = 1286.49; - _meanBC[1][1][3] = 118612; - _meanBS[1][1][0] = -0.000517633; - _meanBS[1][1][1] = 0.0294134; - _meanBS[1][1][2] = 414.964; - _meanBS[1][1][3] = 487.294; - _meanBM[1][1][0] = 0.00298075; - _meanBM[1][1][1] = 0.0146853; - _meanBM[1][1][2] = -7.17525e+06; - _meanBM[1][1][3] = 41.9253; - _meanR9[1][1][0] = 0.213804; - _meanR9[1][1][1] = -0.395466; - _meanR9[1][1][2] = 0.202973; - _meanR9[1][1][3] = 0; - - _sigmaScale[1][1][0] = 1.29656; - _sigmaScale[1][1][1] = 9.61084e-11; - _sigmaScale[1][1][2] = 0.0270649; - _sigmaScale[1][1][3] = 0; - _sigmaAT[1][1][0] = -0.0115339; - _sigmaAT[1][1][1] = 0; - _sigmaAT[1][1][2] = 0; - _sigmaAT[1][1][3] = 0; - _sigmaAC[1][1][0] = 0.0013797; - _sigmaAC[1][1][1] = -0.445789; - _sigmaAC[1][1][2] = 29539.8; - _sigmaAC[1][1][3] = -3.6e+08; - _sigmaAS[1][1][0] = 0.000213606; - _sigmaAS[1][1][1] = 0.547654; - _sigmaAS[1][1][2] = 892.47; - _sigmaAS[1][1][3] = 408.826; - _sigmaAM[1][1][0] = -0.00121353; - _sigmaAM[1][1][1] = 1.10052; - _sigmaAM[1][1][2] = 31.303; - _sigmaAM[1][1][3] = 80.0479; - _sigmaBT[1][1][0] = 0.470361; - _sigmaBT[1][1][1] = 0; - _sigmaBT[1][1][2] = 0; - _sigmaBT[1][1][3] = 0; - _sigmaBC[1][1][0] = -0.00222463; - _sigmaBC[1][1][1] = 18440.6; - _sigmaBC[1][1][2] = 5.80805e+07; - _sigmaBC[1][1][3] = -4.43323e+17; - _sigmaBS[1][1][0] = 0.00156455; - _sigmaBS[1][1][1] = 0.337173; - _sigmaBS[1][1][2] = 281.318; - _sigmaBS[1][1][3] = 252.457; - _sigmaBM[1][1][0] = -0.0455886; - _sigmaBM[1][1][1] = 1.47875; - _sigmaBM[1][1][2] = 1.9e+09; - _sigmaBM[1][1][3] = 1193.93; - _sigmaR9[1][1][0] = 8.89993; - _sigmaR9[1][1][1] = -9.8386; - _sigmaR9[1][1][2] = 0; - _sigmaR9[1][1][3] = 0; - - _initialised = true; - } - - assert(_initialised); - return true; -} - -// Get the geometry of cracks and gaps from file -bool PhotonFix::initialiseGeometry(const std::string &s) { - std::ifstream fin("../test/PhotonFix.dat"); - assert(fin); - - std::cout << "Reading in here" << std::endl; - for (unsigned i(0); i < 169; i++) { - for (unsigned j(0); j < 360; j++) { - for (unsigned k(0); k < 2; k++) { - fin >> _barrelCGap[i][j][k]; - } - } - } - - for (unsigned i(0); i < 33; i++) { - for (unsigned j(0); j < 180; j++) { - for (unsigned k(0); k < 2; k++) { - fin >> _barrelSGap[i][j][k]; - } - } - } - - for (unsigned i(0); i < 7; i++) { - for (unsigned j(0); j < 18; j++) { - for (unsigned k(0); k < 2; k++) { - fin >> _barrelMGap[i][j][k]; - } - } - } - for (unsigned i(0); i < 100; i++) { - for (unsigned j(0); j < 100; j++) { - unsigned k; - fin >> k; - _endcapCrystal[i][j] = (k == 0); - } - } - - for (unsigned i(0); i < 2; i++) { - for (unsigned j(0); j < 7080; j++) { - for (unsigned k(0); k < 2; k++) { - fin >> _endcapCGap[i][j][k]; - } - } - } - - for (unsigned i(0); i < 2; i++) { - for (unsigned j(0); j < 264; j++) { - for (unsigned k(0); k < 2; k++) { - fin >> _endcapSGap[i][j][k]; - } - } - } - - for (unsigned i(0); i < 2; i++) { - for (unsigned j(0); j < 1; j++) { - for (unsigned k(0); k < 2; k++) { - fin >> _endcapMGap[i][j][k]; - } - } - } - - assert(fin); - - return true; -} - -const double PhotonFix::_onePi(acos(-1.0)); -const double PhotonFix::_twoPi(2.0 * acos(-1.0)); - -bool PhotonFix::_initialised = false; - -double PhotonFix::_meanScale[2][2][4]; -double PhotonFix::_meanAT[2][2][4]; -double PhotonFix::_meanAC[2][2][4]; -double PhotonFix::_meanAS[2][2][4]; -double PhotonFix::_meanAM[2][2][4]; -double PhotonFix::_meanBT[2][2][4]; -double PhotonFix::_meanBC[2][2][4]; -double PhotonFix::_meanBS[2][2][4]; -double PhotonFix::_meanBM[2][2][4]; -double PhotonFix::_meanR9[2][2][4]; - -double PhotonFix::_sigmaScale[2][2][4]; -double PhotonFix::_sigmaAT[2][2][4]; -double PhotonFix::_sigmaAC[2][2][4]; -double PhotonFix::_sigmaAS[2][2][4]; -double PhotonFix::_sigmaAM[2][2][4]; -double PhotonFix::_sigmaBT[2][2][4]; -double PhotonFix::_sigmaBC[2][2][4]; -double PhotonFix::_sigmaBS[2][2][4]; -double PhotonFix::_sigmaBM[2][2][4]; -double PhotonFix::_sigmaR9[2][2][4]; - -double PhotonFix::_barrelCGap[169][360][2]; -double PhotonFix::_barrelSGap[33][180][2]; -double PhotonFix::_barrelMGap[7][18][2]; - -bool PhotonFix::_endcapCrystal[100][100]; -double PhotonFix::_endcapCGap[2][7080][2]; -double PhotonFix::_endcapSGap[2][264][2]; -double PhotonFix::_endcapMGap[2][1][2]; diff --git a/HiggsAnalysis/HiggsToGammaGamma/src/PhotonFixCMS.cc b/HiggsAnalysis/HiggsToGammaGamma/src/PhotonFixCMS.cc deleted file mode 100644 index e6e793e37c53c..0000000000000 --- a/HiggsAnalysis/HiggsToGammaGamma/src/PhotonFixCMS.cc +++ /dev/null @@ -1,172 +0,0 @@ -#include -#include -#include -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.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 "DataFormats/DetId/interface/DetId.h" -#include "Geometry/Records/interface/CaloGeometryRecord.h" -#include "Geometry/Records/interface/EcalBarrelGeometryRecord.h" -#include "Geometry/EcalAlgo/interface/EcalBarrelGeometry.h" -#include "Geometry/Records/interface/EcalEndcapGeometryRecord.h" -#include "Geometry/EcalAlgo/interface/EcalEndcapGeometry.h" -#include "Geometry/CaloGeometry/interface/CaloGeometry.h" -#include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" -#include "Geometry/CaloGeometry/interface/CaloCellGeometry.h" -#include "Geometry/CaloGeometry/interface/TruncatedPyramid.h" -#include "DataFormats/EgammaReco/interface/SuperCluster.h" - -#include "HiggsAnalysis/HiggsToGammaGamma/interface/PhotonFixCMS.h" - -PhotonFixCMS::PhotonFixCMS(const reco::Photon &p) - : pf(p.energy(), p.superCluster()->eta(), p.superCluster()->phi(), p.r9()) {} - -bool PhotonFixCMS::initialise(const edm::EventSetup &iSetup, const std::string &s) { - if (PhotonFix::initialised()) - return false; - - PhotonFix::initialiseParameters(s); - - // Get ECAL geometry - edm::ESHandle geoHandle; - iSetup.get().get(geoHandle); - const CaloGeometry &geometry = *geoHandle; - - // EB - const CaloSubdetectorGeometry *barrelGeometry = geometry.getSubdetectorGeometry(DetId::Ecal, EcalBarrel); - - double bc[170][360][2]; - for (int iz(0); iz < 2; iz++) { - for (int ie(0); ie < 85; ie++) { - int id = ie + 1; - if (iz == 0) - id = ie - 85; - for (int ip(0); ip < 360; ip++) { - EBDetId eb(id, ip + 1); - - auto cellGeometry = barrelGeometry->getGeometry(eb); - const GlobalPoint &crystalPos = cellGeometry->getPosition(); - bc[85 * iz + ie][ip][0] = crystalPos.eta(); - bc[85 * iz + ie][ip][1] = crystalPos.phi(); - } - } - } - - for (unsigned i(0); i < 169; i++) { - for (unsigned j(0); j < 360; j++) { - unsigned k((j + 1) % 360); - - double eta = 0.25 * (bc[i][j][0] + bc[i + 1][j][0] + bc[i][k][0] + bc[i + 1][k][0]); - double phi = PhotonFix::GetaPhi(PhotonFix::GetaPhi(bc[i][j][1], bc[i + 1][j][1]), - PhotonFix::GetaPhi(bc[i][k][1], bc[i + 1][k][1])); - - PhotonFix::barrelCGap(i, j, 0, eta); - PhotonFix::barrelCGap(i, j, 1, phi); - - if ((i % 5) == 4 && (j % 2) == 1) { - PhotonFix::barrelSGap(i / 5, j / 2, 0, eta); - PhotonFix::barrelSGap(i / 5, j / 2, 1, phi); - } - - if ((j % 20) == 19) { - if (i == 19) { - PhotonFix::barrelMGap(0, j / 20, 0, eta); - PhotonFix::barrelMGap(0, j / 20, 1, phi); - } - if (i == 39) { - PhotonFix::barrelMGap(1, j / 20, 0, eta); - PhotonFix::barrelMGap(1, j / 20, 1, phi); - } - if (i == 59) { - PhotonFix::barrelMGap(2, j / 20, 0, eta); - PhotonFix::barrelMGap(2, j / 20, 1, phi); - } - if (i == 84) { - PhotonFix::barrelMGap(3, j / 20, 0, eta); - PhotonFix::barrelMGap(3, j / 20, 1, phi); - } - if (i == 109) { - PhotonFix::barrelMGap(4, j / 20, 0, eta); - PhotonFix::barrelMGap(4, j / 20, 1, phi); - } - if (i == 129) { - PhotonFix::barrelMGap(5, j / 20, 0, eta); - PhotonFix::barrelMGap(5, j / 20, 1, phi); - } - if (i == 149) { - PhotonFix::barrelMGap(6, j / 20, 0, eta); - PhotonFix::barrelMGap(6, j / 20, 1, phi); - } - } - } - } - - // EE - const CaloSubdetectorGeometry *endcapGeometry = geometry.getSubdetectorGeometry(DetId::Ecal, EcalEndcap); - - double ec[2][100][100][2]; - bool valid[100][100]; - int val_count = 0; - for (int iz(0); iz < 2; iz++) { - for (int ix(0); ix < 100; ix++) { - for (int iy(0); iy < 100; iy++) { - valid[ix][iy] = EEDetId::validDetId(ix + 1, iy + 1, 2 * iz - 1); - if (iz == 0) - PhotonFix::endcapCrystal(ix, iy, valid[ix][iy]); - if (valid[ix][iy]) { - EEDetId ee(ix + 1, iy + 1, 2 * iz - 1); - val_count += 1; - - auto cellGeometry = endcapGeometry->getGeometry(ee); - const GlobalPoint &crystalPos = cellGeometry->getPosition(); - ec[iz][ix][iy][0] = asinh(crystalPos.x() / fabs(crystalPos.z())); - ec[iz][ix][iy][1] = asinh(crystalPos.y() / fabs(crystalPos.z())); - } - } - } - } - std::cout << "GG valid " << val_count << std::endl; - double c[2]; - for (unsigned iz(0); iz < 2; iz++) { - unsigned nC(0), nS(0); - for (unsigned i(0); i < 99; i++) { - for (unsigned j(0); j < 99; j++) { - if (valid[i][j] && valid[i + 1][j] && valid[i][j + 1] && valid[i + 1][j + 1]) { - for (unsigned k(0); k < 2; k++) { - c[k] = 0.25 * (ec[iz][i][j][k] + ec[iz][i + 1][j][k] + ec[iz][i][j + 1][k] + ec[iz][i + 1][j + 1][k]); - - PhotonFix::endcapCGap(iz, nC, k, c[k]); - } - - if ((i % 5) == 4 && (j % 5) == 4) { - for (unsigned k(0); k < 2; k++) { - PhotonFix::endcapSGap(iz, nS, k, c[k]); - } - nS++; - } - nC++; - } - } - } - std::cout << "Endcap number of crystal, submodule boundaries = " << nC << ", " << nS << std::endl; - } - - // Hardcode EE D-module gap to 0,0 - PhotonFix::endcapMGap(0, 0, 0, 0.0); - PhotonFix::endcapMGap(0, 0, 1, 0.0); - PhotonFix::endcapMGap(1, 0, 0, 0.0); - PhotonFix::endcapMGap(1, 0, 1, 0.0); - - return true; -} - -double PhotonFixCMS::fixedEnergy() const { return pf.fixedEnergy(); } - -double PhotonFixCMS::sigmaEnergy() const { return pf.sigmaEnergy(); } - -const PhotonFix &PhotonFixCMS::photonFix() const { return pf; } diff --git a/HiggsAnalysis/HiggsToGammaGamma/test/PhotonFix.dat b/HiggsAnalysis/HiggsToGammaGamma/test/PhotonFix.dat deleted file mode 100644 index 13c61d207dfd0..0000000000000 --- a/HiggsAnalysis/HiggsToGammaGamma/test/PhotonFix.dat +++ /dev/null @@ -1,173192 +0,0 @@ --1.46862989664 --0.15601734072 --1.46860229969 --0.138757757842 --1.46857792139 --0.121498476714 --1.46855676174 --0.104239817709 --1.46853888035 --0.0869813524186 --1.46852421761 --0.0697233742103 --1.46851277351 --0.0524654565379 --1.46850457787 --0.0352079104632 --1.46849957109 --0.0179503036197 --1.46849781275 --0.000692945672197 --1.46849936247 -0.0165645941161 --1.46850413084 -0.0338220098056 --1.46851202846 -0.0510797258466 --1.46852326393 -0.0683374460786 --1.46853777766 -0.0855955947191 --1.46855551004 -0.102853864431 --1.46857640147 -0.120112676173 --1.46860057116 -0.137371733785 --1.46862789989 -0.154631458223 --1.46864336729 -0.173840790987 --1.46862989664 -0.1930485107 --1.46860229969 -0.210308093577 --1.46857795119 -0.22756736353 --1.46855682134 -0.24482601881 --1.46853888034 -0.262084484101 --1.4685241878 -0.279342472553 --1.46851274371 -0.296600401402 --1.46850451827 -0.31385795027 --1.46849954128 -0.331115543843 --1.46849781275 -0.348372891545 --1.46849930286 -0.365630432963 --1.46850410104 -0.382887855172 --1.46851211787 -0.400145582855 --1.46852332354 -0.417403303087 --1.46853777766 -0.434661440551 --1.46855551004 -0.451919712126 --1.46857640147 -0.469178535044 --1.46860057116 -0.48643759638 --1.46862789989 -0.503697313368 --1.46864339709 -0.522906631231 --1.46862992644 -0.542114362121 --1.46860232949 -0.559373959899 --1.46857795119 -0.576633229852 --1.46855679154 -0.593891888857 --1.46853891015 -0.611150354147 --1.46852421761 -0.6284083426 --1.46851274371 -0.645666256547 --1.46850451827 -0.662923797965 --1.46849957108 -0.680181398988 --1.46849787235 -0.697438746691 --1.46849936247 -0.714696288109 --1.46850410104 -0.731953710318 --1.46851208806 -0.74921143055 --1.46852335334 -0.76646913588 --1.46853780746 -0.783727273345 --1.46855551004 -0.800985559821 --1.46857640147 -0.818244382739 --1.46860057116 -0.835503429175 --1.46862792969 -0.852763161063 --1.46864339709 -0.871972501278 --1.46862989664 -0.891180217266 --1.46860232949 -0.908439800143 --1.46857795119 -0.925699070096 --1.46855679154 -0.942957744002 --1.46853888034 -0.960216209293 --1.4685242176 -0.977474167943 --1.46851277351 -0.99473206699 --1.46850451827 -1.01198962331 --1.46849957108 -1.02924725413 --1.46849787235 -1.04650461674 --1.46849936247 -1.06376215816 --1.46850410104 -1.08101958036 --1.46851208806 -1.09827730059 --1.46852332354 -1.11553499103 --1.46853777766 -1.13279312849 --1.46855551004 -1.15005141497 --1.46857640147 -1.16731023789 --1.46860057116 -1.18456932903 --1.46862789989 -1.20182904601 --1.46864336729 -1.22103834152 --1.46862989664 -1.24024602771 --1.46860229969 -1.25750562548 --1.46857792139 -1.27476492524 --1.46855679154 -1.29202356934 --1.46853888034 -1.30928203464 --1.4685241878 -1.32654002309 --1.46851274371 -1.34379795194 --1.46850454807 -1.36105549336 --1.46849960089 -1.37831309438 --1.46849787235 -1.39557045698 --1.46849936247 -1.4128279984 --1.46850413084 -1.43008542061 --1.46851211787 -1.44734314084 --1.46852332354 -1.46460083127 --1.46853774786 -1.48185896874 --1.46855548024 -1.49911725521 --1.46857643127 -1.51637604832 --1.46860060096 -1.53363510966 --1.46862795949 -1.55089488626 --1.4686434567 -1.57010424137 --1.46862989664 -1.58931192755 --1.46860229969 -1.60657146573 --1.46857795119 -1.62383076548 --1.46855682134 -1.64108946919 --1.46853896975 -1.65834793449 --1.46852427721 -1.67560589313 --1.46851277351 -1.69286379218 --1.46850451827 -1.7101213336 --1.46849954128 -1.72737893462 --1.46849784255 -1.74463629723 --1.46849936247 -1.76189383864 --1.46850413084 -1.77915126085 --1.46851211787 -1.79640898108 --1.46852332354 -1.81366670131 --1.46853777766 -1.83092483878 --1.46855553985 -1.84818312526 --1.46857643127 -1.86544194817 --1.46860054135 -1.88270100951 --1.46862787009 -1.8999607265 --1.46864336729 -1.91917002201 --1.46862989664 -1.9383777678 --1.46860232949 -1.95563736558 --1.46857795119 -1.97289660573 --1.46855679154 -1.99015524983 --1.46853888034 -2.00741371513 --1.4685242176 -2.02467173338 --1.46851277351 -2.04192966222 --1.46850451827 -2.05918717385 --1.46849954128 -2.07644474507 --1.46849784255 -2.09370213747 --1.46849936247 -2.11095970869 --1.46850410104 -2.1282171607 --1.46851208806 -2.14547485113 --1.46852332354 -2.16273254156 --1.46853777766 -2.17999070883 --1.46855551004 -2.1972489953 --1.46857640147 -2.21450781822 --1.46860057116 -2.23176681995 --1.46862792969 -2.24902653694 --1.46864339709 -2.26823586226 --1.46862989664 -2.28744357824 --1.46860232949 -2.30470317602 --1.46857798099 -2.32196247578 --1.46855682134 -2.33922117949 --1.46853888034 -2.35647964477 --1.4685241878 -2.37373757362 --1.46851274371 -2.39099544286 --1.46850454807 -2.40825301409 --1.46849957109 -2.42551070452 --1.46849787235 -2.44276803732 --1.46849939227 -2.46002548933 --1.46850413084 -2.47728294134 --1.46851211787 -2.49454069138 --1.46852332354 -2.51179838181 --1.46853777766 -2.52905648947 --1.46855551004 -2.54631477594 --1.46857640147 -2.56357365846 --1.46860057116 -2.5808327198 --1.46862789989 -2.59809243679 --1.46864333749 -2.6173017621 --1.46862986684 -2.63650947809 --1.46860229969 -2.65376907587 --1.46857792139 -2.67102831602 --1.46855679154 -2.68828696012 --1.46853888034 -2.70554548502 --1.4685241878 -2.72280347347 --1.46851274371 -2.74006140232 --1.46850451827 -2.75731891393 --1.46849957108 -2.77457648515 --1.46849784255 -2.79183381796 --1.46849933267 -2.80909132958 --1.46850410104 -2.82634878159 --1.46851208806 -2.84360653162 --1.46852332354 -2.86086422205 --1.46853777766 -2.87812238932 --1.46855553985 -2.89538067579 --1.46857643127 -2.9126394391 --1.46860054135 -2.92989856004 --1.46862789989 -2.94715833664 --1.46864339709 -2.96636766195 --1.46862989664 -2.98557531834 --1.46860229969 -3.00283485651 --1.46857792139 -3.02009415626 --1.46855676174 -3.03735280037 --1.46853888035 -3.05461126566 --1.46852421761 -3.07186931372 --1.46851277351 -3.08912724257 --1.46850457787 -3.10638475418 --1.46849957109 -3.1236423254 --1.46849781275 -3.14089968999 --1.46849936247 --3.12502801418 --1.46850413084 --3.10777062178 --1.46851202846 --3.09051293135 --1.46852326393 --3.07325524092 --1.46853777766 --3.05599707365 --1.46855551004 --3.03873878717 --1.46857640147 --3.02148002386 --1.46860057116 --3.00422090292 --1.46862789989 --2.98696118593 --1.46864336729 --2.96775186062 --1.46862989664 --2.94854414463 --1.46860229969 --2.93128460646 --1.46857795119 --2.9140253067 --1.46855682134 --2.8967666626 --1.46853888034 --2.87950819731 --1.4685241878 --2.86225014925 --1.46851274371 --2.8449922204 --1.46850451827 --2.82773470878 --1.46849954128 --2.81047713756 --1.46849781275 --2.79321974516 --1.46849930286 --2.77596217394 --1.46850410104 --2.75870484114 --1.46851211787 --2.74144715071 --1.46852332354 --2.72418934107 --1.46853777766 --2.7069311738 --1.46855551004 --2.68967294693 --1.46857640147 --2.67241412401 --1.46860057116 --2.65515506268 --1.46862789989 --2.63789534569 --1.46864339709 --2.61868602038 --1.46862992644 --2.59947824478 --1.46860232949 --2.582218647 --1.46857795119 --2.56495940685 --1.46855679154 --2.54770076275 --1.46853891015 --2.53044235706 --1.46852421761 --2.51318436861 --1.46851274371 --2.49592643976 --1.46850451827 --2.47866886854 --1.46849957108 --2.46141123772 --1.46849787235 --2.44415390491 --1.46849936247 --2.4268963933 --1.46850410104 --2.40963894129 --1.46851208806 --2.39238119126 --1.46852335334 --2.37512350083 --1.46853780746 --2.35786539316 --1.46855551004 --2.34060710668 --1.46857640147 --2.32334822417 --1.46860057116 --2.30608922243 --1.46862792969 --2.28882950544 --1.46864339709 --2.26962012052 --1.46862989664 --2.25041240454 --1.46860232949 --2.23315286636 --1.46857795119 --2.21589362621 --1.46855679154 --2.1986349225 --1.46853888034 --2.18137639761 --1.4685242176 --2.16411846876 --1.46851277351 --2.14686059952 --1.46850451827 --2.1296030283 --1.46849957108 --2.11234539747 --1.46849787235 --2.09508806467 --1.46849936247 --2.07783055306 --1.46850410104 --2.06057310105 --1.46851208806 --2.04331535101 --1.46852332354 --2.02605766058 --1.46853777766 --2.00879955292 --1.46855551004 --1.99154126644 --1.46857640147 --1.97428244352 --1.46860057116 --1.95702338219 --1.46862789989 --1.9397636354 --1.46864336729 --1.92055428028 --1.46862989664 --1.9013465941 --1.46860229969 --1.88408699632 --1.46857792139 --1.86682769656 --1.46855679154 --1.84956905246 --1.46853888034 --1.83231058717 --1.4685241878 --1.81505259872 --1.46851274371 --1.79779469967 --1.46850454807 --1.78053715825 --1.46849960089 --1.76327955723 --1.46849787235 --1.74602222443 --1.46849936247 --1.72876468301 --1.46850413084 --1.7115072608 --1.46851211787 --1.69424954057 --1.46852332354 --1.67699182034 --1.46853774786 --1.65973368287 --1.46855548024 --1.6424753964 --1.46857643127 --1.62521657348 --1.46860060096 --1.60795751214 --1.46862795949 --1.59069779515 --1.4686434567 --1.57148849964 --1.46862989664 --1.55228075385 --1.46860229969 --1.53502115607 --1.46857795119 --1.51776191592 --1.46855682134 --1.50050324202 --1.46853896975 --1.48324474693 --1.46852427721 --1.46598678827 --1.46851277351 --1.44872888923 --1.46850451827 --1.43147131801 --1.46849954128 --1.41421368718 --1.46849784255 --1.39695632458 --1.46849936247 --1.37969878316 --1.46850413084 --1.36244139075 --1.46851211787 --1.34518370032 --1.46852332354 --1.32792598009 --1.46853777766 --1.31066781283 --1.46855553985 --1.29340955615 --1.46857643127 --1.27615073323 --1.46860054135 --1.2588916719 --1.46862787009 --1.24163195491 --1.46864336729 --1.22242259979 --1.46862989664 --1.20321491361 --1.46860232949 --1.18595531583 --1.46857795119 --1.16869601607 --1.46855679154 --1.15143737197 --1.46853888034 --1.13417890668 --1.4685242176 --1.11692091823 --1.46851277351 --1.09966298938 --1.46850451827 --1.08240544796 --1.46849954128 --1.06514787674 --1.46849784255 --1.04789054394 --1.46849936247 --1.03063297272 --1.46850410104 --1.0133755207 --1.46851208806 --0.996117815374 --1.46852332354 --0.978860110045 --1.46853777766 --0.961601942778 --1.46855551004 --0.944343656301 --1.46857640147 --0.927084878087 --1.46860057116 --0.909825831652 --1.46862792969 --0.892566084862 --1.46864339709 --0.873356759548 --1.46862989664 --0.854149058461 --1.46860232949 --0.836889475584 --1.46857798099 --0.819630205631 --1.46855682134 --0.802371531725 --1.46853888034 --0.785113036633 --1.4685241878 --0.767855063081 --1.46851274371 --0.750597164035 --1.46850454807 --0.733339607715 --1.46849957109 --0.716081991792 --1.46849787235 --0.698824644089 --1.46849939227 --0.681567102671 --1.46850413084 --0.664309695363 --1.46851211787 --0.647051975131 --1.46852332354 --0.629794254899 --1.46853777766 --0.612536117434 --1.46855551004 --0.59527784586 --1.46857640147 --0.578019022942 --1.46860057116 --0.560759946704 --1.46862789989 --0.543500214815 --1.46864333749 --0.524290904403 --1.46862986684 --0.505083210766 --1.46860229969 --0.487823605538 --1.46857792139 --0.470564328134 --1.46855679154 --0.45330568403 --1.46853888034 --0.436047203839 --1.4685241878 --0.418789222837 --1.46851274371 --0.40153130889 --1.46850451827 --0.384273760021 --1.46849957108 --0.367016166448 --1.46849784255 --0.349758811295 --1.46849933267 --0.332501254975 --1.46850410104 --0.315243832767 --1.46851208806 --0.297986119986 --1.46852332354 --0.280728399754 --1.46853777766 --0.263470247388 --1.46855553985 --0.246211990714 --1.46857643127 --0.228953186423 --1.46860054135 --0.211694110185 --1.46862789989 --0.194434378296 --1.46864339709 --0.175225049257 --1.45152050256 --0.156015470624 --1.45149305463 --0.138755898923 --1.45146879554 --0.121496632695 --1.45144769549 --0.104237979278 --1.4514298737 --0.0869795158505 --1.45141524076 --0.0697215422987 --1.45140382648 --0.0524636311456 --1.45139566064 --0.0352060929872 --1.45139068365 --0.0179484942928 --1.45138895512 --0.000691143563018 --1.45139050484 -0.0165663890075 --1.45139527321 -0.0338237984106 --1.45140314103 -0.0510815083981 --1.45141431689 -0.0683392193168 --1.45142877102 -0.0855973605067 --1.45144644379 -0.102855622768 --1.45146727562 -0.12011442706 --1.4514913559 -0.137373477221 --1.45151859522 -0.154633197933 --1.45153400302 -0.173842597753 --1.45152056217 -0.193050377071 --1.45149308443 -0.210309952497 --1.45146879554 -0.227569215 --1.45144772529 -0.24482787028 --1.4514298737 -0.262086331845 --1.45141524076 -0.279344305396 --1.45140382647 -0.296602219343 --1.45139563084 -0.313859760761 --1.45139068365 -0.331117354333 --1.45138895512 -0.348374694586 --1.45139044523 -0.365632228553 --1.4513951838 -0.382889643311 --1.45140314103 -0.400147356093 --1.4514143467 -0.417405068875 --1.45142877102 -0.434663206339 --1.45144644379 -0.451921463013 --1.45146727562 -0.469180271029 --1.4514913559 -0.486439332366 --1.45151859522 -0.503699071705 --1.45153400302 -0.522908464074 --1.45152053237 -0.542116239667 --1.45149305463 -0.559375807643 --1.45146879554 -0.576635062695 --1.45144772529 -0.593893721699 --1.4514299035 -0.61115218699 --1.45141527056 -0.628410175443 --1.45140382647 -0.645668074489 --1.45139563084 -0.662925601006 --1.45139068365 -0.68018321693 --1.45138895512 -0.697440564633 --1.45139044523 -0.714698091149 --1.45139521361 -0.731955513358 --1.45140317083 -0.749213218689 --1.4514143765 -0.766470909119 --1.45142880082 -0.783729046583 --1.45144644379 -0.800987318158 --1.45146724581 -0.818246141076 --1.45149132609 -0.835505187512 --1.45151859522 -0.852764889598 --1.45153400302 -0.871974304318 --1.45152053237 -0.891182079911 --1.45149305463 -0.908441647887 --1.45146879554 -0.92570091784 --1.45144772529 -0.942959576845 --1.4514298737 -0.960218042135 --1.45141521096 -0.977476000786 --1.45140379668 -0.994733899831 --1.45139563084 -1.01199144125 --1.45139068365 -1.02924907207 --1.45138898492 -1.04650643468 --1.45139050483 -1.06376394629 --1.45139521361 -1.0810213685 --1.45140314103 -1.09827908873 --1.4514143765 -1.11553677916 --1.45142880082 -1.13279491663 --1.45144644379 -1.15005320311 --1.45146727562 -1.16731199622 --1.4514913559 -1.18457105756 --1.45151859522 -1.20183077455 --1.45153400302 -1.22104012966 --1.45152053237 -1.24024790525 --1.45149302482 -1.25750750303 --1.45146876574 -1.27476677298 --1.45144772529 -1.29202541709 --1.4514298737 -1.30928388238 --1.45141521096 -1.32654187084 --1.45140379668 -1.34379979968 --1.45139563084 -1.3610573113 --1.45139068365 -1.37831488252 --1.45138898492 -1.39557224512 --1.45139047503 -1.41282978654 --1.45139521361 -1.43008720875 --1.45140317083 -1.44734492898 --1.4514143467 -1.46460261941 --1.45142877102 -1.48186075687 --1.45144644379 -1.49911901355 --1.45146727562 -1.51637780666 --1.4514913559 -1.533636868 --1.45151862502 -1.55089661479 --1.45153403282 -1.57010602951 --1.45152056217 -1.5893137753 --1.45149308443 -1.60657331347 --1.45146879554 -1.62383261323 --1.4514477551 -1.64109131694 --1.45142993331 -1.65834978223 --1.45141527056 -1.67560771108 --1.45140382647 -1.69286558032 --1.45139560103 -1.71012315154 --1.45139065385 -1.72738078237 --1.45138895512 -1.74463811517 --1.45139044523 -1.76189562678 --1.45139521361 -1.77915304899 --1.45140317083 -1.79641076922 --1.4514143765 -1.81366845965 --1.45142880082 -1.83092659712 --1.4514464736 -1.8481848836 --1.45146730542 -1.86544367671 --1.45149132609 -1.88270273805 --1.45151856542 -1.89996245503 --1.45153400302 -1.91917183995 --1.45152053237 -1.93837964534 --1.45149305463 -1.95563921332 --1.45146879554 -1.97289845347 --1.45144772529 -1.99015709758 --1.4514298737 -2.00741556287 --1.45141524076 -2.02467352152 --1.45140382647 -2.04193145037 --1.45139563084 -2.05918902159 --1.45139068365 -2.07644659281 --1.45138895512 -2.09370392561 --1.45139044523 -2.11096149683 --1.45139521361 -2.12821894884 --1.45140317083 -2.14547663927 --1.4514143467 -2.1627343297 --1.45142877102 -2.17999249697 --1.45144644379 -2.19725078344 --1.45146724581 -2.21450954676 --1.45149132609 -2.23176854849 --1.45151859522 -2.24902826548 --1.45153400302 -2.26823771 --1.45152053237 -2.2874455452 --1.45149305463 -2.30470508337 --1.45146879554 -2.32196432352 --1.45144772529 -2.33922296763 --1.4514298737 -2.35648143291 --1.45141524076 -2.37373942136 --1.45140382647 -2.39099729061 --1.45139563084 -2.40825480223 --1.45139068365 -2.42551243305 --1.45138898492 -2.44276982546 --1.45139047503 -2.46002733707 --1.45139521361 -2.47728472948 --1.45140317083 -2.49454241991 --1.4514143467 -2.51180011034 --1.45142877102 -2.5290582776 --1.45144644379 -2.54631656408 --1.45146727562 -2.563575387 --1.4514913559 -2.58083444834 --1.45151859522 -2.59809416533 --1.45153397322 -2.61730355024 --1.45152053237 -2.63651132583 --1.45149305463 -2.65377092362 --1.45146876574 -2.67103016376 --1.45144772529 -2.68828880787 --1.4514298737 -2.70554733277 --1.45141524076 -2.72280532122 --1.45140382647 -2.74006325006 --1.45139563084 -2.75732076168 --1.45139068365 -2.7745783329 --1.45138895512 -2.7918356657 --1.45139044523 -2.80909311771 --1.45139521361 -2.82635051012 --1.45140317083 -2.84360831976 --1.4514143467 -2.86086606979 --1.45142877102 -2.87812417745 --1.4514464736 -2.89538240432 --1.45146727562 -2.91264122724 --1.45149129629 -2.92990034819 --1.45151859522 -2.94716006517 --1.45153400302 -2.96636945009 --1.45152050256 -2.98557716608 --1.45149305463 -3.00283670426 --1.45146879554 -3.02009600401 --1.45144769549 -3.03735464812 --1.4514298737 -3.0546131134 --1.45141524076 -3.07187110185 --1.45140382648 -3.0891290307 --1.45139566064 -3.10638660192 --1.45139068365 -3.12364417315 --1.45138895512 -3.14090153773 --1.45139050484 --3.12502622605 --1.45139527321 --3.10776889324 --1.45140314103 --3.09051114321 --1.45141431689 --3.07325339318 --1.45142877102 --3.05599528551 --1.45144644379 --3.03873705864 --1.45146727562 --3.02147823572 --1.4514913559 --3.00421911478 --1.45151859522 --2.98695939779 --1.45153400302 --2.96775001287 --1.45152056217 --2.94854229689 --1.45149308443 --2.93128275871 --1.45146879554 --2.91402345896 --1.45144772529 --2.89676481485 --1.4514298737 --2.87950634956 --1.45141524076 --2.86224836111 --1.45140382647 --2.84499043226 --1.45139563084 --2.82773286104 --1.45139068365 --2.81047528982 --1.45138895512 --2.79321795702 --1.45139044523 --2.7759603858 --1.4513951838 --2.7587029934 --1.45140314103 --2.74144530297 --1.4514143467 --2.72418755293 --1.45142877102 --2.70692938566 --1.45144644379 --2.68967115879 --1.45146727562 --2.67241239548 --1.4514913559 --2.65515333414 --1.45151859522 --2.63789361715 --1.45153400302 --2.61868423224 --1.45152053237 --2.59947639704 --1.45149305463 --2.58221679926 --1.45146879554 --2.56495755911 --1.45144772529 --2.54769891501 --1.4514299035 --2.53044050932 --1.45141527056 --2.51318252087 --1.45140382647 --2.49592459202 --1.45139563084 --2.4786670804 --1.45139068365 --2.46140944958 --1.45138895512 --2.44415211678 --1.45139044523 --2.42689460516 --1.45139521361 --2.40963715315 --1.45140317083 --2.39237946272 --1.4514143765 --2.37512177229 --1.45142880082 --2.35786360502 --1.45144644379 --2.34060531855 --1.45146724581 --2.32334649563 --1.45149132609 --2.30608749389 --1.45151859522 --2.28882777691 --1.45153400302 --2.26961833239 --1.45152053237 --2.25041055679 --1.45149305463 --2.23315101862 --1.45146879554 --2.21589177847 --1.45144772529 --2.19863307476 --1.4514298737 --2.18137454987 --1.45141521096 --2.16411662102 --1.45140379668 --2.14685881138 --1.45139563084 --2.12960129976 --1.45139068365 --2.11234360933 --1.45138898492 --2.09508621692 --1.45139050483 --2.07782876492 --1.45139521361 --2.06057137251 --1.45140314103 --2.04331362247 --1.4514143765 --2.02605593204 --1.45142880082 --2.00879782438 --1.45144644379 --1.99153953791 --1.45146727562 --1.97428068519 --1.4514913559 --1.95702162385 --1.45151859522 --1.93976190686 --1.45153400302 --1.92055249214 --1.45152053237 --1.90134474635 --1.45149302482 --1.88408514857 --1.45146876574 --1.86682584882 --1.45144772529 --1.84956720471 --1.4514298737 --1.83230873942 --1.45141521096 --1.81505075097 --1.45140379668 --1.79779288173 --1.45139563084 --1.78053537011 --1.45139068365 --1.76327773929 --1.45138898492 --1.74602040648 --1.45139047503 --1.72876289487 --1.45139521361 --1.71150547266 --1.45140317083 --1.69424775243 --1.4514143467 --1.67699003219 --1.45142877102 --1.65973189473 --1.45144644379 --1.64247363806 --1.45146727562 --1.62521481514 --1.4514913559 --1.6079557538 --1.45151862502 --1.59069603682 --1.45153403282 --1.5714866519 --1.45152056217 --1.5522788763 --1.45149308443 --1.53501930833 --1.45146879554 --1.51776003838 --1.4514477551 --1.50050139427 --1.45142993331 --1.48324292898 --1.45141527056 --1.46598494053 --1.45140382647 --1.44872704148 --1.45139560103 --1.43146950006 --1.45139065385 --1.41421189904 --1.45138895512 --1.39695453644 --1.45139044523 --1.37969699502 --1.45139521361 --1.36243960261 --1.45140317083 --1.34518191218 --1.4514143765 --1.32792419195 --1.45142880082 --1.31066605449 --1.4514464736 --1.29340779782 --1.45146730542 --1.2761489749 --1.45149132609 --1.25888991356 --1.45151856542 --1.24163019658 --1.45153400302 --1.22242081166 --1.45152053237 --1.20321303606 --1.45149305463 --1.18595343828 --1.45146879554 --1.16869416833 --1.45144772529 --1.15143552422 --1.4514298737 --1.13417705893 --1.45141524076 --1.11691907048 --1.45140382647 --1.09966114163 --1.45139563084 --1.08240363002 --1.45139068365 --1.0651460588 --1.45138895512 --1.047888726 --1.45139044523 --1.03063118458 --1.45139521361 --1.01337376237 --1.45140317083 --0.996116057038 --1.4514143467 --0.978858321905 --1.45142877102 --0.961600169539 --1.45144644379 --0.944341897964 --1.45146724581 --0.92708311975 --1.45149132609 --0.909824088216 --1.45151859522 --0.892564341426 --1.45153400302 --0.873354941607 --1.45152053237 --0.854147166014 --1.45149305463 --0.836887583137 --1.45146879554 --0.819628313184 --1.45144772529 --0.80236966908 --1.4514298737 --0.785111203789 --1.45141524076 --0.767853215337 --1.45140382647 --0.750595331192 --1.45139563084 --0.733337804675 --1.45139068365 --0.716080188751 --1.45138898492 --0.698822841048 --1.45139047503 --0.68156529963 --1.45139521361 --0.664307892322 --1.45140317083 --0.647050201893 --1.4514143467 --0.629792496562 --1.45142877102 --0.612534344196 --1.45144644379 --0.595276087522 --1.45146727562 --0.578017279506 --1.4514913559 --0.560758203268 --1.45151859522 --0.543498471379 --1.45153397322 --0.524289086461 --1.45152053237 --0.50508133322 --1.45149305463 --0.487821750343 --1.45146876574 --0.470562472939 --1.45144772529 --0.453303828835 --1.4514298737 --0.436045363545 --1.45141524076 --0.418787389994 --1.45140382647 --0.401529490948 --1.45139563084 --0.38427194953 --1.45139068365 --0.367014355957 --1.45138895512 --0.349757008254 --1.45139044523 --0.332499459386 --1.45139521361 --0.315242052078 --1.45140317083 --0.297984346747 --1.4514143467 --0.280726633966 --1.45142877102 --0.263468489051 --1.4514464736 --0.246210228652 --1.45146727562 --0.228951431811 --1.45149129629 --0.211692370475 --1.45151859522 --0.194432646036 --1.45153400302 --0.175223246217 --1.43438383937 --0.156013578177 --1.43435648084 --0.1387540102 --1.43433231115 --0.121494755149 --1.43431130052 --0.104236109182 --1.43429356813 --0.0869776513427 --1.434278965 --0.0697196843102 --1.43426755071 --0.0524617796764 --1.43425944447 --0.0352042503655 --1.43425449729 --0.0179466602858 --1.43425276875 --0.000689316540957 --1.43425431847 -0.0165682078805 --1.43425905705 -0.033825609833 --1.43426692486 -0.0510833142325 --1.43427807093 -0.0683410158381 --1.43429243564 -0.0855991467833 --1.43431001901 -0.102857401594 --1.43433076143 -0.120116198435 --1.4343547523 -0.137375246733 --1.43438190222 -0.154634959996 --1.43439725041 -0.17384441942 --1.43438386917 -0.193052265793 --1.43435648084 -0.210311837494 --1.43433228135 -0.227571099996 --1.43431130052 -0.244829751551 --1.43429350853 -0.26208820194 --1.43427893519 -0.279346168041 --1.43426758051 -0.296604074538 --1.43425944447 -0.313861601055 --1.43425449729 -0.331119187176 --1.43425276875 -0.348376527429 --1.43425425887 -0.365634053945 --1.43425896764 -0.382891453803 --1.43426689506 -0.400149151683 --1.43427807093 -0.417406857014 --1.43429243564 -0.434664994478 --1.43431004882 -0.451923251152 --1.43433082104 -0.469182044267 --1.43435478211 -0.486441090703 --1.43438190222 -0.503700822592 --1.43439725041 -0.522910282016 --1.43438380956 -0.542118132114 --1.43435645103 -0.559377700091 --1.43433228135 -0.576636940241 --1.43431127071 -0.593895584345 --1.43429356813 -0.611154049635 --1.4342790246 -0.628412023187 --1.43426761031 -0.645669922233 --1.43425941467 -0.66292744875 --1.43425446749 -0.680185034871 --1.43425276875 -0.697442382574 --1.43425425887 -0.714699909091 --1.43425899744 -0.731957316399 --1.43426692486 -0.74921502173 --1.43427807093 -0.766472727061 --1.43429243564 -0.783730849624 --1.43431001901 -0.800989091396 --1.43433076143 -0.818247914314 --1.4343547523 -0.835506975651 --1.43438190222 -0.852766662836 --1.43439725041 -0.87197612226 --1.43438383937 -0.891183972358 --1.43435648084 -0.908443525433 --1.43433231115 -0.925702780485 --1.43431130052 -0.94296143949 --1.43429350853 -0.96021990478 --1.43427890539 -0.977477863431 --1.43426755071 -0.994735747576 --1.43425944447 -1.01199325919 --1.43425449729 -1.02925089002 --1.43425276875 -1.04650825262 --1.43425428867 -1.06376576423 --1.43425899744 -1.08102318644 --1.43426689506 -1.09828087688 --1.43427810073 -1.11553856731 --1.43429246545 -1.13279670477 --1.43431004882 -1.15005496144 --1.43433082104 -1.16731375456 --1.43435478211 -1.18457281589 --1.43438190222 -1.20183253288 --1.43439725041 -1.22104197741 --1.43438383937 -1.24024981261 --1.43435645103 -1.25750938058 --1.43433228135 -1.27476865053 --1.43431130052 -1.29202729463 --1.43429350853 -1.30928575993 --1.43427890539 -1.32654374838 --1.43426755071 -1.34380164743 --1.43425944447 -1.36105915904 --1.43425449729 -1.37831673026 --1.43425276875 -1.39557406306 --1.43425425887 -1.41283157468 --1.43425899744 -1.43008899689 --1.43426692486 -1.44734674692 --1.43427807093 -1.46460443735 --1.43429243564 -1.48186254501 --1.43431001901 -1.49912080169 --1.43433076143 -1.51637959481 --1.4343547523 -1.53363862634 --1.43438190222 -1.55089834333 --1.43439725041 -1.57010781765 --1.43438386917 -1.58931565285 --1.43435651064 -1.60657522082 --1.43433231115 -1.62383449078 --1.43431136012 -1.64109316468 --1.43429356813 -1.65835162997 --1.434278965 -1.67560955882 --1.43426758051 -1.69286742807 --1.43425938487 -1.71012499929 --1.43425446749 -1.72738263011 --1.43425276875 -1.74463996291 --1.43425425887 -1.76189747453 --1.43425899744 -1.77915486693 --1.43426692486 -1.79641255736 --1.43427810073 -1.81367024779 --1.43429246545 -1.83092838526 --1.43431004882 -1.84818664193 --1.43433082104 -1.86544543505 --1.43435478211 -1.88270449639 --1.43438190222 -1.89996421337 --1.43439725041 -1.91917368769 --1.43438383937 -1.93838152289 --1.43435645103 -1.95564106107 --1.43433228135 -1.97290033102 --1.43431130052 -1.99015897512 --1.43429350853 -2.00741741061 --1.43427893519 -2.02467536927 --1.43426758051 -2.04193329811 --1.43425944447 -2.05919086933 --1.43425449729 -2.07644844055 --1.43425276875 -2.09370577335 --1.43425428867 -2.11096334457 --1.43425902724 -2.12822073698 --1.43426692486 -2.14547842741 --1.43427807093 -2.16273611784 --1.43429243564 -2.1799942851 --1.43431004882 -2.19725257158 --1.43433079123 -2.2145113349 --1.4343547523 -2.23177033663 --1.43438190222 -2.24903005361 --1.43439725041 -2.26823955774 --1.43438380956 -2.28744739294 --1.43435645103 -2.30470693112 --1.43433231115 -2.32196617127 --1.43431130052 -2.33922481537 --1.43429353833 -2.35648334027 --1.43427896499 -2.37374132872 --1.43426758051 -2.39099913836 --1.43425944447 -2.40825664997 --1.43425449729 -2.4255142808 --1.43425276875 -2.4427716732 --1.43425428867 -2.46002918482 --1.43425902724 -2.47728651762 --1.43426692486 -2.49454420805 --1.43427807093 -2.51180189848 --1.43429243564 -2.52906006574 --1.43431001901 -2.54631835222 --1.43433079123 -2.56357711554 --1.43435478211 -2.58083623648 --1.43438190222 -2.59809595347 --1.43439725041 -2.61730539799 --1.43438386917 -2.63651323319 --1.43435648084 -2.65377277136 --1.43433228135 -2.67103201151 --1.43431130052 -2.68829065561 --1.43429350853 -2.70554918051 --1.43427893519 -2.72280710936 --1.43426758051 -2.74006503821 --1.43425944447 -2.75732260943 --1.43425452709 -2.77458018064 --1.43425279855 -2.79183751345 --1.43425428867 -2.80909496546 --1.43425902724 -2.82635235786 --1.43426692486 -2.8436101079 --1.43427807093 -2.86086785793 --1.43429243564 -2.8781259656 --1.43431004882 -2.89538419246 --1.43433079123 -2.91264301539 --1.4343547523 -2.92990207672 --1.43438190222 -2.94716179371 --1.43439725041 -2.96637123823 --1.43438383937 -2.98557907343 --1.43435648084 -3.00283867121 --1.43433231115 -3.02009797096 --1.43431130052 -3.03735661507 --1.43429356813 -3.05461502076 --1.434278965 -3.0718729496 --1.43426755071 -3.08913087844 --1.43425944447 -3.10638839006 --1.43425449729 -3.12364596128 --1.43425276875 -3.14090332587 --1.43425431847 --3.12502449751 --1.43425905705 --3.10776710511 --1.43426692486 --3.09050935507 --1.43427807093 --3.07325160503 --1.43429243564 --3.05599349737 --1.43431001901 --3.0387352705 --1.43433076143 --3.02147644758 --1.4343547523 --3.00421738625 --1.43438190222 --2.98695766926 --1.43439725041 --2.96774822473 --1.43438386917 --2.94854038954 --1.43435648084 --2.93128079176 --1.43433228135 --2.91402149201 --1.43431130052 --2.8967628479 --1.43429350853 --2.87950444222 --1.43427893519 --2.86224651337 --1.43426758051 --2.84498858452 --1.43425944447 --2.8277310729 --1.43425449729 --2.81047350168 --1.43425276875 --2.79321616888 --1.43425425887 --2.77595859766 --1.43425896764 --2.75870114565 --1.43426689506 --2.74144345522 --1.43427807093 --2.72418576479 --1.43429243564 --2.70692765713 --1.43431004882 --2.68966937065 --1.43433082104 --2.67241054773 --1.43435478211 --2.655151546 --1.43438190222 --2.63789182901 --1.43439725041 --2.6186823845 --1.43438380956 --2.59947454929 --1.43435645103 --2.58221495152 --1.43433228135 --2.56495571137 --1.43431127071 --2.54769706726 --1.43429356813 --2.53043860197 --1.4342790246 --2.51318061352 --1.43426761031 --2.49592274428 --1.43425941467 --2.47866523266 --1.43425446749 --2.46140760183 --1.43425276875 --2.44415026903 --1.43425425887 --2.42689275741 --1.43425899744 --2.40963536501 --1.43426692486 --2.39237767458 --1.43427807093 --2.37511992455 --1.43429243564 --2.35786175728 --1.43431001901 --2.34060353041 --1.43433076143 --2.32334476709 --1.4343547523 --2.30608570576 --1.43438190222 --2.28882598877 --1.43439725041 --2.26961654425 --1.43438383937 --2.25040870905 --1.43435648084 --2.23314917087 --1.43433231115 --2.21588993072 --1.43431130052 --2.19863122701 --1.43429350853 --2.18137270212 --1.43427890539 --2.16411477327 --1.43426755071 --2.14685696363 --1.43425944447 --2.12959945202 --1.43425449729 --2.11234176159 --1.43425276875 --2.09508436918 --1.43425428867 --2.07782691717 --1.43425899744 --2.06056952477 --1.43426689506 --2.04331183434 --1.43427810073 --2.02605414391 --1.43429246545 --2.00879597664 --1.43431004882 --1.99153771997 --1.43433082104 --1.97427892685 --1.43435478211 --1.95701986551 --1.43438190222 --1.93976014853 --1.43439725041 --1.92055070401 --1.43438383937 --1.90134286881 --1.43435645103 --1.88408327103 --1.43433228135 --1.86682400107 --1.43431130052 --1.84956535697 --1.43429350853 --1.83230689168 --1.43427890539 --1.81504893303 --1.43426755071 --1.79779103399 --1.43425944447 --1.78053349257 --1.43425449729 --1.76327589154 --1.43425276875 --1.74601855874 --1.43425425887 --1.72876104712 --1.43425899744 --1.71150365472 --1.43426692486 --1.69424596429 --1.43427807093 --1.67698824406 --1.43429243564 --1.65973007679 --1.43431001901 --1.64247184992 --1.43433076143 --1.62521305681 --1.4343547523 --1.60795399546 --1.43438190222 --1.59069427848 --1.43439725041 --1.57148480416 --1.43438386917 --1.55227696896 --1.43435651064 --1.53501743078 --1.43433231115 --1.51775816083 --1.43431136012 --1.50049951672 --1.43429356813 --1.48324105143 --1.434278965 --1.46598306298 --1.43426758051 --1.44872519374 --1.43425938487 --1.43146768212 --1.43425446749 --1.4142100811 --1.43425276875 --1.39695271849 --1.43425425887 --1.37969517708 --1.43425899744 --1.36243775487 --1.43426692486 --1.34518006444 --1.43427810073 --1.32792237401 --1.43429246545 --1.31066426635 --1.43431004882 --1.29340600967 --1.43433082104 --1.27614718676 --1.43435478211 --1.25888812542 --1.43438190222 --1.24162840843 --1.43439725041 --1.22241896391 --1.43438383937 --1.20321112871 --1.43435645103 --1.18595156073 --1.43433228135 --1.16869232058 --1.43431130052 --1.15143367648 --1.43429350853 --1.13417521119 --1.43427893519 --1.11691722274 --1.43426758051 --1.09965929389 --1.43425944447 --1.08240178228 --1.43425449729 --1.06514421106 --1.43425276875 --1.04788687825 --1.43425428867 --1.03062936663 --1.43425902724 --1.01337197423 --1.43426692486 --0.996114253998 --1.43427807093 --0.978856518864 --1.43429243564 --0.9615983814 --1.43431004882 --0.944340139627 --1.43433079123 --0.927081346512 --1.4343547523 --0.909822300076 --1.43438190222 --0.892562583089 --1.43439725041 --0.873353123665 --1.43438380956 --0.854145288468 --1.43435645103 --0.836885720491 --1.43433231115 --0.819626450539 --1.43431130052 --0.802367806435 --1.43429353833 --0.785109341145 --1.43427896499 --0.767851367593 --1.43426758051 --0.750593483448 --1.43425944447 --0.733335956931 --1.43425449729 --0.716078355908 --1.43425276875 --0.698821008205 --1.43425428867 --0.681563481688 --1.43425902724 --0.664306089282 --1.43426692486 --0.647048398852 --1.43427807093 --0.629790708423 --1.43429243564 --0.612532570958 --1.43431001901 --0.595274314284 --1.43433079123 --0.578015506267 --1.43435478211 --0.56075643003 --1.43438190222 --0.543496713042 --1.43439725041 --0.524287253618 --1.43438386917 --0.505079433322 --1.43435648084 --0.487819872796 --1.43433228135 --0.470560595393 --1.43431130052 --0.45330195874 --1.43429350853 --0.436043508351 --1.43427893519 --0.418785534799 --1.43426758051 --0.401527628303 --1.43425944447 --0.384270101786 --1.43425452709 --0.367012523115 --1.43425279855 --0.349755175411 --1.43425428867 --0.332497633993 --1.43425902724 --0.315240241587 --1.43426692486 --0.297982551157 --1.43427807093 --0.280724845827 --1.43429243564 --0.263466708362 --1.43431004882 --0.246208447963 --1.43433079123 --0.228949647397 --1.4343547523 --0.211690600961 --1.43438190222 --0.194430883974 --1.43439725041 --0.175221417099 --1.41721609235 --0.156011663377 --1.41718885302 --0.138752102852 --1.41716477275 --0.121492851526 --1.41714385152 --0.104234209284 --1.41712611913 --0.0869757588953 --1.4171115756 --0.069717801176 --1.41710028052 --0.0524599067867 --1.41709220409 --0.0352023844607 --1.4170872569 --0.0179448015988 --1.41708552837 --0.000687464838847 --1.41708704829 -0.0165700518992 --1.41709175706 -0.0338274454698 --1.41709962487 -0.0510851424187 --1.41711074114 -0.0683428384364 --1.41712501645 -0.0856009591371 --1.41714251042 -0.102859202772 --1.41716316342 -0.120117994025 --1.41718706489 -0.137377038598 --1.41721412539 -0.15463674441 --1.41722941399 -0.173846270889 --1.41721609235 -0.193054184317 --1.41718879342 -0.210313748568 --1.41716468334 -0.22757300362 --1.41714379191 -0.244831647724 --1.41712608933 -0.262090101838 --1.4171115756 -0.279348053038 --1.41710025072 -0.296605937183 --1.41709217429 -0.3138634637 --1.4170872569 -0.331121049821 --1.41708552837 -0.348378375173 --1.41708701849 -0.365635894239 --1.41709172726 -0.382893286645 --1.41709962487 -0.400150977075 --1.41711074114 -0.417408682406 --1.41712501645 -0.434666804969 --1.41714254022 -0.451925054192 --1.41716322303 -0.469183847308 --1.41718709469 -0.486442886293 --1.41721412539 -0.503702588379 --1.41722941399 -0.522912114858 --1.41721603274 -0.542120054364 --1.41718879342 -0.55937962234 --1.41716471314 -0.576638862491 --1.41714376211 -0.593897506595 --1.41712611913 -0.611155956984 --1.41711166501 -0.628413900733 --1.41710034013 -0.645671799779 --1.41709217429 -0.662929326296 --1.41708722711 -0.680186867714 --1.41708552837 -0.697444230318 --1.41708701849 -0.714701771736 --1.41709172726 -0.731959149242 --1.41709962487 -0.749216854572 --1.41711074114 -0.766474559903 --1.41712501645 -0.783732667565 --1.41714251042 -0.800990894437 --1.41716319323 -0.818249702454 --1.41718709469 -0.83550876379 --1.41721412539 -0.852768465877 --1.41722941399 -0.871977970004 --1.41721606254 -0.891185894609 --1.41718879342 -0.908445462584 --1.41716471315 -0.925704687834 --1.41714382171 -0.942963331938 --1.41712611913 -0.960221812129 --1.4171115756 -0.977479770779 --1.41710028052 -0.994737640023 --1.41709220409 -1.01199513674 --1.4170872569 -1.02925273776 --1.41708552837 -1.04651007056 --1.41708701849 -1.06376758218 --1.41709172726 -1.08102500439 --1.41709962487 -1.09828269482 --1.41711074114 -1.11554038525 --1.41712501645 -1.13279849291 --1.41714254022 -1.15005674958 --1.41716322303 -1.1673155725 --1.41718709469 -1.18457460403 --1.41721412539 -1.20183429122 --1.41722941399 -1.22104382515 --1.41721606254 -1.24025171995 --1.41718876362 -1.25751128793 --1.41716468334 -1.27477055788 --1.41714382171 -1.29202920198 --1.41712611913 -1.30928766728 --1.4171115756 -1.32654562593 --1.41710025072 -1.34380352497 --1.41709217429 -1.36106103659 --1.4170872569 -1.37831860781 --1.41708552837 -1.39557594061 --1.41708701849 -1.41283345222 --1.41709172726 -1.43009084463 --1.41709962487 -1.44734856486 --1.41711074114 -1.46460625529 --1.41712501645 -1.48186436296 --1.41714251042 -1.49912261963 --1.41716319323 -1.51638138294 --1.41718709469 -1.53364041448 --1.41721412539 -1.55090013146 --1.41722944379 -1.57010966539 --1.41721609235 -1.58931759 --1.41718882322 -1.60657715797 --1.41716477275 -1.62383639812 --1.41714385152 -1.64109504223 --1.41712608933 -1.65835350752 --1.4171115756 -1.67561143637 --1.41710025073 -1.69286930561 --1.41709214449 -1.71012687683 --1.4170872569 -1.72738447786 --1.41708552837 -1.74464181066 --1.41708701849 -1.76189932227 --1.41709172726 -1.77915668488 --1.41709962487 -1.7964143753 --1.41711074114 -1.81367206573 --1.41712501645 -1.8309301734 --1.41714254022 -1.84818843007 --1.41716322303 -1.86544725299 --1.41718709469 -1.88270628452 --1.41721412539 -1.89996600151 --1.41722941399 -1.91917556524 --1.41721609235 -1.93838343024 --1.41718879342 -1.95564296841 --1.41716468334 -1.97290223837 --1.41714379191 -1.99016088247 --1.41712608933 -2.00741934776 --1.4171115756 -2.02467733622 --1.41710025072 -2.04193520546 --1.41709217429 -2.05919271708 --1.4170872569 -2.0764502883 --1.41708552837 -2.0937076211 --1.41708704829 -2.11096519232 --1.41709175706 -2.12822258472 --1.41709962487 -2.14548027515 --1.41711074114 -2.16273796558 --1.41712501645 -2.17999613285 --1.41714254022 -2.19725435973 --1.41716322303 -2.21451312304 --1.41718709469 -2.23177212477 --1.41721412539 -2.24903178215 --1.41722941399 -2.26824134588 --1.41721603274 -2.28744930029 --1.41718876362 -2.30470889807 --1.41716471315 -2.32196813822 --1.41714379191 -2.33922678232 --1.41712611913 -2.35648524761 --1.41711160541 -2.37374317646 --1.41710025072 -2.3910010457 --1.41709214449 -2.40825861692 --1.4170872271 -2.42551624775 --1.41708552837 -2.44277352094 --1.41708704829 -2.46003097296 --1.41709175706 -2.47728836536 --1.41709962487 -2.49454605579 --1.41711074114 -2.51180374622 --1.41712501645 -2.52906191349 --1.41714251042 -2.54632019997 --1.41716319323 -2.56357896328 --1.41718709469 -2.58083802462 --1.41721412539 -2.59809774161 --1.41722941399 -2.61730724573 --1.41721609235 -2.63651514053 --1.41718879342 -2.65377467871 --1.41716468334 -2.67103391886 --1.41714382171 -2.68829256296 --1.41712611913 -2.70555102825 --1.4171115756 -2.7228089571 --1.41710025072 -2.74006688595 --1.41709214449 -2.75732445717 --1.4170872569 -2.77458202839 --1.41708555817 -2.79183936119 --1.41708701849 -2.8090968132 --1.41709172726 -2.82635420561 --1.41709962487 -2.84361189604 --1.41711074114 -2.86086958647 --1.41712501645 -2.87812775373 --1.41714254022 -2.89538604021 --1.41716322303 -2.91264480352 --1.41718709469 -2.92990380526 --1.41721412539 -2.94716352224 --1.41722941399 -2.96637308597 --1.41721609235 -2.98558104038 --1.41718885302 -3.00284057856 --1.41716477275 -3.0200998187 --1.41714385152 -3.03735846281 --1.41712611913 -3.0546169281 --1.4171115756 -3.07187485695 --1.41710028052 -3.08913272619 --1.41709220409 -3.10639023781 --1.4170872569 -3.12364780903 --1.41708552837 -3.14090517361 --1.41708704829 --3.12502264976 --1.41709175706 --3.10776525736 --1.41709962487 --3.09050750733 --1.41711074114 --3.0732498169 --1.41712501645 --3.05599170923 --1.41714251042 --3.03873342276 --1.41716316342 --3.02147465944 --1.41718706489 --3.00421565771 --1.41721412539 --2.98695594073 --1.41722941399 --2.96774637699 --1.41721609235 --2.94853842258 --1.41718879342 --2.93127888441 --1.41716468334 --2.91401964426 --1.41714379191 --2.89676100016 --1.41712608933 --2.87950253487 --1.4171115756 --2.86224460602 --1.41710025072 --2.84498673677 --1.41709217429 --2.82772922516 --1.4170872569 --2.81047165394 --1.41708552837 --2.79321432114 --1.41708701849 --2.77595674992 --1.41709172726 --2.75869935751 --1.41709962487 --2.74144166708 --1.41711074114 --2.72418397665 --1.41712501645 --2.70692592859 --1.41714254022 --2.68966764211 --1.41716322303 --2.67240875959 --1.41718709469 --2.65514975786 --1.41721412539 --2.63789010048 --1.41722941399 --2.61868053675 --1.41721603274 --2.59947258234 --1.41718879342 --2.58221298456 --1.41716471314 --2.56495374441 --1.41714376211 --2.54769510031 --1.41712611913 --2.53043663502 --1.41711166501 --2.51317870617 --1.41710034013 --2.49592083692 --1.41709217429 --2.47866332531 --1.41708722711 --2.46140581369 --1.41708552837 --2.44414842129 --1.41708701849 --2.42689085007 --1.41709172726 --2.40963351727 --1.41709962487 --2.39237582684 --1.41711074114 --2.3751180768 --1.41712501645 --2.35785990953 --1.41714251042 --2.34060174227 --1.41716319323 --2.32334297895 --1.41718709469 --2.30608385801 --1.41721412539 --2.28882414103 --1.41722941399 --2.26961469651 --1.41721606254 --2.2504068017 --1.41718879342 --2.23314720392 --1.41716471315 --2.21588796377 --1.41714382171 --2.19862931967 --1.41712611913 --2.18137085438 --1.4171115756 --2.16411292553 --1.41710028052 --2.14685505628 --1.41709220409 --2.12959754467 --1.4170872569 --2.11233991385 --1.41708552837 --2.09508252144 --1.41708701849 --2.07782506943 --1.41709172726 --2.06056767702 --1.41709962487 --2.04330998659 --1.41711074114 --2.02605229616 --1.41712501645 --2.00879412889 --1.41714254022 --1.99153587222 --1.41716322303 --1.97427710891 --1.41718709469 --1.95701807737 --1.41721412539 --1.93975836038 --1.41722941399 --1.92054885626 --1.41721606254 --1.90134093166 --1.41718876362 --1.88408136368 --1.41716468334 --1.86682212353 --1.41714382171 --1.84956347942 --1.41712611913 --1.83230501413 --1.4171115756 --1.81504705549 --1.41710025072 --1.79778915644 --1.41709217429 --1.78053161502 --1.4170872569 --1.7632740438 --1.41708552837 --1.746016711 --1.41708701849 --1.72875919938 --1.41709172726 --1.71150180697 --1.41709962487 --1.69424411655 --1.41711074114 --1.67698642612 --1.41712501645 --1.65972825885 --1.41714251042 --1.64247003197 --1.41716319323 --1.62521126866 --1.41718709469 --1.60795220733 --1.41721412539 --1.59069249034 --1.41722944379 --1.57148295641 --1.41721609235 --1.55227503181 --1.41718882322 --1.53501549363 --1.41716477275 --1.51775625348 --1.41714385152 --1.50049760937 --1.41712608933 --1.48323917389 --1.4171115756 --1.46598121524 --1.41710025073 --1.4487233162 --1.41709214449 --1.43146580458 --1.4170872569 --1.41420820355 --1.41708552837 --1.39695087075 --1.41708701849 --1.37969335914 --1.41709172726 --1.36243593693 --1.41709962487 --1.3451782465 --1.41711074114 --1.32792055607 --1.41712501645 --1.31066244841 --1.41714254022 --1.29340419173 --1.41716322303 --1.27614539862 --1.41718709469 --1.25888636708 --1.41721412539 --1.24162665009 --1.41722941399 --1.22241711616 --1.41721609235 --1.20320922136 --1.41718879342 --1.18594965339 --1.41716468334 --1.16869041324 --1.41714379191 --1.15143179894 --1.41712608933 --1.13417333364 --1.4171115756 --1.11691534519 --1.41710025072 --1.09965744615 --1.41709217429 --1.08239993453 --1.4170872569 --1.06514236331 --1.41708552837 --1.04788503051 --1.41708704829 --1.03062748909 --1.41709175706 --1.01337009669 --1.41709962487 --0.996112406254 --1.41711074114 --0.978854700923 --1.41712501645 --0.961596563458 --1.41714254022 --0.944338336587 --1.41716322303 --0.927079558372 --1.41718709469 --0.909820511937 --1.41721412539 --0.892560824752 --1.41722941399 --0.873351290822 --1.41721603274 --0.854143366218 --1.41718876362 --0.836883813143 --1.41716471315 --0.819624558091 --1.41714379191 --0.802365913987 --1.41712611913 --0.785107448697 --1.41711160541 --0.767849490047 --1.41710025072 --0.750591605902 --1.41709214449 --0.733334079385 --1.4170872271 --0.716076478362 --1.41708552837 --0.69881914556 --1.41708704829 --0.681561648845 --1.41709175706 --0.664304256439 --1.41709962487 --0.647046566009 --1.41711074114 --0.629788890481 --1.41712501645 --0.612530767918 --1.41714251042 --0.595272496343 --1.41716319323 --0.578013688326 --1.41718709469 --0.560754656792 --1.41721412539 --0.543494954705 --1.41722941399 --0.524285405874 --1.41721609235 --0.505077518523 --1.41718879342 --0.487817965448 --1.41716468334 --0.470558688044 --1.41714382171 --0.453300066292 --1.41712611913 --0.436041623354 --1.4171115756 --0.418783657253 --1.41710025072 --0.401525758207 --1.41709214449 --0.384268239141 --1.4170872569 --0.36701066792 --1.41708555817 --0.349753320217 --1.41708701849 --0.332495801151 --1.41709172726 --0.315238408744 --1.41709962487 --0.297980710864 --1.41711074114 --0.280723020434 --1.41712501645 --0.26346489042 --1.41714254022 --0.246206637472 --1.41716322303 --0.228947848082 --1.41718709469 --0.211688809097 --1.41721412539 --0.19442909956 --1.41722941399 --0.175219569355 --1.40005332232 --0.156007699668 --1.4000261724 --0.138748154044 --1.40000221133 --0.121488917619 --1.39998140931 --0.104230294004 --1.39996373653 --0.0869718585163 --1.39994925261 --0.0697139166295 --1.39993801713 --0.0524560390041 --1.3999299407 --0.0351985311136 --1.39992502332 --0.0179409640841 --1.39992332459 --0.000683643389492 --1.3999247849 -0.0165738575161 --1.39992946386 -0.0338312350214 --1.39993733168 -0.0510889152065 --1.39994841814 -0.0683465991169 --1.39996266365 -0.0856047049165 --1.39998009801 -0.102862929925 --1.40000069142 -0.120121711865 --1.40002447367 -0.137380741536 --1.40005141497 -0.154640432447 --1.40006664395 -0.173850100487 --1.40005332232 -0.193058148026 --1.4000261426 -0.210317693651 --1.40000215173 -0.227576933801 --1.3999813497 -0.244835559279 --1.39996373653 -0.262093998492 --1.39994928241 -0.279351934791 --1.39993798733 -0.296609804034 --1.3999299109 -0.313867323101 --1.39992502332 -0.331124894321 --1.39992332459 -0.348382197321 --1.3999248147 -0.365639701485 --1.39992949367 -0.382897078991 --1.39993736148 -0.400154754519 --1.39994844794 -0.417412444949 --1.39996266365 -0.434670552611 --1.39998009801 -0.451928786934 --1.40000069142 -0.469187565148 --1.40002447367 -0.486446589231 --1.40005138516 -0.503706276417 --1.40006661415 -0.522915944457 --1.40005332232 -0.542124003172 --1.4000262022 -0.559383556247 --1.40000224113 -0.576642796397 --1.39998137951 -0.593901410699 --1.39996373653 -0.611159846186 --1.39994931221 -0.628417789936 --1.39993804693 -0.64567565918 --1.3999299407 -0.662933170795 --1.39992502332 -0.680190727115 --1.39992332459 -0.697448059917 --1.3999247849 -0.714705586434 --1.39992949367 -0.731962949038 --1.39993739128 -0.749220624566 --1.39994844794 -0.766478314996 --1.39996266365 -0.783736392856 --1.39998009801 -0.800994604826 --1.40000066161 -0.818253397942 --1.40002444387 -0.835512444377 --1.40005138516 -0.852772146463 --1.40006661415 -0.871981799603 --1.40005329251 -0.891189858317 --1.40002611279 -0.908449411392 --1.40000215173 -0.925708621741 --1.39998137951 -0.942967250944 --1.39996376633 -0.960225701332 --1.39994928241 -0.977483645081 --1.39993801713 -0.994741514324 --1.3999299407 -1.01199901104 --1.39992502332 -1.02925658226 --1.39992332459 -1.04651388526 --1.3999248147 -1.06377136707 --1.39992952347 -1.08102875948 --1.39993736148 -1.09828644991 --1.39994841814 -1.11554414034 --1.39996266365 -1.132802248 --1.39998009801 -1.15006047487 --1.40000069142 -1.16731926799 --1.40002447367 -1.18457829952 --1.40005138516 -1.20183798671 --1.40006661415 -1.22104763985 --1.40005332232 -1.24025568366 --1.4000261426 -1.25751525164 --1.40000215173 -1.27477449179 --1.39998137951 -1.29203310609 --1.39996376633 -1.30929154158 --1.39994928241 -1.32654950023 --1.39993798733 -1.34380739927 --1.3999299109 -1.36106488108 --1.39992502332 -1.3783224523 --1.39992332459 -1.39557978511 --1.3999248147 -1.41283726692 --1.39992952347 -1.43009462952 --1.39993739128 -1.44735231995 --1.39994847775 -1.46461001038 --1.39996269346 -1.48186811805 --1.39998009801 -1.49912634492 --1.40000066161 -1.51638510823 --1.40002447367 -1.53364413977 --1.40005141497 -1.55090382695 --1.40006664395 -1.57011350989 --1.40005332232 -1.58932155371 --1.4000261426 -1.60658109188 --1.40000221133 -1.62384033203 --1.39998137951 -1.64109894633 --1.39996370673 -1.65835741162 --1.39994925261 -1.67561534047 --1.39993798733 -1.69287320972 --1.3999299109 -1.71013075113 --1.39992499351 -1.72738829255 --1.39992329478 -1.74464559555 --1.3999247849 -1.76190310716 --1.39992949367 -1.77916046977 --1.39993736148 -1.7964181304 --1.39994841814 -1.81367582083 --1.39996266365 -1.83093392849 --1.39998009801 -1.84819215536 --1.40000069142 -1.86545094847 --1.40002447367 -1.88270998001 --1.40005138516 -1.899969697 --1.40006661415 -1.91917937994 --1.40005332232 -1.93838739395 --1.4000261426 -1.95564693213 --1.40000215173 -1.97290617228 --1.3999813497 -1.99016481638 --1.39996373653 -2.00742328167 --1.39994928241 -2.02468121052 --1.39993798733 -2.04193907976 --1.3999299109 -2.05919659138 --1.39992502332 -2.07645410299 --1.39992332459 -2.09371137619 --1.3999248147 -2.11096894741 --1.39992952347 -2.12822639942 --1.39993736148 -2.14548408985 --1.39994841814 -2.16274178028 --1.39996266365 -2.17999988794 --1.39998009801 -2.19725805521 --1.40000066161 -2.21451681852 --1.40002444387 -2.23177582025 --1.40005138516 -2.24903547764 --1.40006661415 -2.26824522018 --1.40005329251 -2.2874532938 --1.40002611279 -2.30471283197 --1.40000215173 -2.32197207212 --1.3999813497 -2.33923071623 --1.39996373653 -2.35648912191 --1.39994928241 -2.37374705076 --1.39993798733 -2.39100497961 --1.3999298811 -2.40826249123 --1.39992499351 -2.42552006245 --1.39992332459 -2.44277733564 --1.3999247849 -2.46003478765 --1.39992949367 -2.47729218006 --1.39993739128 -2.49454987049 --1.39994844794 -2.51180756092 --1.39996266365 -2.52906566858 --1.39998009801 -2.54632389546 --1.40000069142 -2.56358265877 --1.40002447367 -2.5808416605 --1.40005138516 -2.59810137749 --1.40006661415 -2.61731106043 --1.40005335212 -2.63651913404 --1.4000261724 -2.65377867222 --1.40000215173 -2.67103785276 --1.39998137951 -2.68829649687 --1.39996376633 -2.70555496216 --1.39994928241 -2.72281289101 --1.39993798733 -2.74007076025 --1.3999298811 -2.75732827187 --1.39992499351 -2.77458584309 --1.39992332459 -2.79184317589 --1.3999247849 -2.8091006279 --1.39992949367 -2.8263579607 --1.39993736148 -2.84361565113 --1.39994841814 -2.86087334156 --1.39996266365 -2.87813150883 --1.39998009801 -2.8953897953 --1.40000066161 -2.91264855861 --1.40002444387 -2.92990756035 --1.40005141497 -2.94716721773 --1.40006664395 -2.96637690067 --1.40005332232 -2.98558497429 --1.4000261724 -3.00284451246 --1.40000221133 -3.02010375261 --1.39998140931 -3.03736233711 --1.39996373653 -3.0546208024 --1.39994925261 -3.07187873125 --1.39993801713 -3.08913654089 --1.3999299407 -3.10639411211 --1.39992502332 -3.12365168333 --1.39992332459 -3.14090898831 --1.3999247849 --3.12501883507 --1.39992946386 --3.10776150226 --1.39993733168 --3.09050375223 --1.39994841814 --3.0732460618 --1.39996266365 --3.05598795414 --1.39998009801 --3.03872966766 --1.40000069142 --3.02147090435 --1.40002447367 --3.00421190262 --1.40005141497 --2.98695224523 --1.40006664395 --2.96774256229 --1.40005332232 --2.94853448868 --1.4000261426 --2.93127495051 --1.40000215173 --2.91401571035 --1.3999813497 --2.89675712585 --1.39996373653 --2.87949866057 --1.39994928241 --2.86224073172 --1.39993798733 --2.84498292208 --1.3999299109 --2.82772535086 --1.39992502332 --2.81046777964 --1.39992332459 --2.79321050644 --1.3999248147 --2.77595293522 --1.39992949367 --2.75869554281 --1.39993736148 --2.74143791199 --1.39994844794 --2.72418028116 --1.39996266365 --2.7069221735 --1.39998009801 --2.68966388702 --1.40000069142 --2.67240506411 --1.40002447367 --2.65514606238 --1.40005138516 --2.63788640499 --1.40006661415 --2.61867672205 --1.40005332232 --2.59946864843 --1.4000262022 --2.58220905066 --1.40000224113 --2.56494981051 --1.39998137951 --2.54769122601 --1.39996373653 --2.53043282032 --1.39994931221 --2.51317483187 --1.39993804693 --2.49591690302 --1.3999299407 --2.47865945101 --1.39992502332 --2.461401999 --1.39992332459 --2.44414460659 --1.3999247849 --2.42688703537 --1.39992949367 --2.40962970257 --1.39993739128 --2.39237201214 --1.39994844794 --2.37511432171 --1.39996266365 --2.35785621405 --1.39998009801 --2.34059804678 --1.40000066161 --2.32333928347 --1.40002444387 --2.30608022213 --1.40005138516 --2.28882050514 --1.40006661415 --2.2696108222 --1.40005329251 --2.25040274859 --1.40002611279 --2.23314321041 --1.40000215173 --2.21588402987 --1.39998137951 --2.19862538576 --1.39996376633 --2.18136698008 --1.39994928241 --2.16410905123 --1.39993801713 --2.14685112238 --1.3999299407 --2.12959367037 --1.39992502332 --2.11233609915 --1.39992332459 --2.09507870674 --1.3999248147 --2.07782125473 --1.39992952347 --2.06056392193 --1.39993736148 --2.0433062315 --1.39994841814 --2.02604854107 --1.39996266365 --2.00879043341 --1.39998009801 --1.99153217673 --1.40000069142 --1.97427338362 --1.40002447367 --1.95701438189 --1.40005138516 --1.9397546947 --1.40006661415 --1.92054501176 --1.40005332232 --1.90133693814 --1.4000261426 --1.88407739997 --1.40000215173 --1.86681815982 --1.39998137951 --1.84955954552 --1.39996376633 --1.83230111003 --1.39994928241 --1.81504315138 --1.39993798733 --1.79778528213 --1.3999299109 --1.78052777052 --1.39992502332 --1.7632702291 --1.39992332459 --1.7460128963 --1.3999248147 --1.72875538468 --1.39992952347 --1.71149802208 --1.39993739128 --1.69424033165 --1.39994847775 --1.67698264122 --1.39996269346 --1.65972453356 --1.39998009801 --1.64246630669 --1.40000066161 --1.62520754337 --1.40002447367 --1.60794851184 --1.40005141497 --1.59068879485 --1.40006664395 --1.57147914171 --1.40005332232 --1.5522710979 --1.4000261426 --1.53501155973 --1.40000221133 --1.51775231958 --1.39998137951 --1.50049367547 --1.39996370673 --1.48323526978 --1.39994925261 --1.46597734094 --1.39993798733 --1.44871944189 --1.3999299109 --1.43146193027 --1.39992499351 --1.41420435905 --1.39992329478 --1.39694705605 --1.3999247849 --1.37968954444 --1.39992949367 --1.36243215203 --1.39993736148 --1.34517449141 --1.39994841814 --1.32791683078 --1.39996266365 --1.31065872311 --1.39998009801 --1.29340046644 --1.40000069142 --1.27614170313 --1.40002447367 --1.25888267159 --1.40005138516 --1.24162298441 --1.40006661415 --1.22241333127 --1.40005332232 --1.20320525766 --1.4000261426 --1.18594568968 --1.40000215173 --1.16868644953 --1.3999813497 --1.15142786503 --1.39996373653 --1.13416942954 --1.39994928241 --1.11691144109 --1.39993798733 --1.09965357184 --1.3999299109 --1.08239609003 --1.39992502332 --1.06513854861 --1.39992332459 --1.04788121581 --1.3999248147 --1.03062367439 --1.39992952347 --1.01336631179 --1.39993736148 --0.996108636259 --1.39994841814 --0.97885094583 --1.39996266365 --0.961592838168 --1.39998009801 --0.944334611297 --1.40000066161 --0.927075862884 --1.40002444387 --0.909816861153 --1.40005138516 --0.892557159067 --1.40006661415 --0.873347446322 --1.40005329251 --0.854139387608 --1.40002611279 --0.836879864335 --1.40000215173 --0.819620609284 --1.3999813497 --0.80236196518 --1.39996373653 --0.785103529692 --1.39994928241 --0.767845585942 --1.39993798733 --0.750587731599 --1.3999298811 --0.733330234885 --1.39992499351 --0.716072648764 --1.39992332459 --0.698815345764 --1.3999247849 --0.681557863951 --1.39992949367 --0.664300471544 --1.39993739128 --0.647042781114 --1.39994844794 --0.629785120487 --1.39996266365 --0.612527012825 --1.39998009801 --0.595268756151 --1.40000069142 --0.578009963036 --1.40002447367 --0.560750961304 --1.40005138516 --0.54349128902 --1.40006661415 --0.524281591177 --1.40005335212 --0.505073547363 --1.4000261724 --0.487814001739 --1.40000215173 --0.470554746687 --1.39998137951 --0.453296139836 --1.39996376633 --0.43603771925 --1.39994928241 --0.4187797755 --1.39993798733 --0.401521891355 --1.3999298811 --0.38426437974 --1.39992499351 --0.367006823421 --1.39992332459 --0.34974950552 --1.3999247849 --0.332491993904 --1.39992949367 --0.315234608948 --1.39993736148 --0.297976925969 --1.39994841814 --0.280719250441 --1.39996266365 --0.263461142778 --1.39998009801 --0.246202912181 --1.40000066161 --0.228944141418 --1.40002444387 --0.211685117334 --1.40005141497 --0.194425422698 --1.40006664395 --0.175215750932 --1.3829408586 --0.156003635377 --1.38291382789 --0.138744100929 --1.38288998604 --0.12148488313 --1.38286927342 --0.104226281866 --1.38285169005 --0.0869678631425 --1.38283723593 --0.0697099361569 --1.38282603025 --0.0524520743639 --1.38281801343 --0.0351945837029 --1.38281312585 --0.0179370320402 --1.38281142712 --0.000679727643727 --1.38281285763 -0.016577756498 --1.38281747699 -0.0338351172395 --1.382825315 -0.0510927801952 --1.38283637166 -0.0683504473418 --1.38285058737 -0.0856085401028 --1.38286796212 -0.102866752073 --1.38288843632 -0.120125520975 --1.38291212916 -0.137384533882 --1.38293898106 -0.154644209891 --1.38295415044 -0.173854023218 --1.3829408586 -0.193062208593 --1.38291379809 -0.21032173559 --1.38288992643 -0.22758096084 --1.38286921382 -0.244839563966 --1.38285166025 -0.262097977102 --1.38283726573 -0.27935590595 --1.38282606006 -0.296613782644 --1.38281798363 -0.31387128681 --1.38281309605 -0.331128828228 --1.38281142712 -0.348386123776 --1.38281288743 -0.36564361304 --1.38281753659 -0.382900975644 --1.38282540441 -0.400158636272 --1.38283646107 -0.417416289449 --1.38285061717 -0.43467438221 --1.38286799192 -0.451932609082 --1.38288849592 -0.469191364944 --1.38291215896 -0.486450374127 --1.38293895125 -0.503710061311 --1.38295409083 -0.522919878363 --1.3829408586 -0.542128056288 --1.3829138577 -0.559387594461 --1.38288998604 -0.576646819711 --1.38286924362 -0.59390540421 --1.38285166025 -0.611163824797 --1.38283723593 -0.628421768546 --1.38282600045 -0.645679622889 --1.38281795383 -0.662937104702 --1.38281309605 -0.680194661021 --1.38281142712 -0.697451964021 --1.38281285763 -0.714709460735 --1.38281753659 -0.73196682334 --1.38282543421 -0.749224483967 --1.38283643127 -0.766482144594 --1.38285058737 -0.783740222454 --1.38286799192 -0.800998434425 --1.38288846612 -0.818257197738 --1.38291212916 -0.835516214371 --1.38293895125 -0.852775901556 --1.38295409083 -0.871985718608 --1.3829408288 -0.891193911433 --1.38291379809 -0.908453434706 --1.38288995623 -0.925712645054 --1.38286924362 -0.942971259355 --1.38285166025 -0.960229665041 --1.38283726573 -0.977487578988 --1.38282603025 -0.994745463133 --1.38281795383 -1.01200297475 --1.38281309605 -1.02926051616 --1.38281139732 -1.04651781917 --1.38281285763 -1.06377530098 --1.38281756639 -1.08103266358 --1.38282540441 -1.09829032421 --1.38283643127 -1.11554801464 --1.38285061717 -1.1328061223 --1.38286799192 -1.15006428957 --1.38288846612 -1.16732305288 --1.38291212916 -1.18458208442 --1.38293895125 -1.2018417716 --1.38295412064 -1.22105157376 --1.38294091821 -1.24025976658 --1.3829138577 -1.25751930475 --1.38288995623 -1.2747785151 --1.38286924362 -1.2920370996 --1.38285166025 -1.30929550528 --1.38283723593 -1.32655346393 --1.38282603025 -1.34381133318 --1.38281798363 -1.36106881499 --1.38281309605 -1.37832638621 --1.38281142712 -1.39558368921 --1.38281288743 -1.41284114122 --1.38281753659 -1.43009850383 --1.3828253746 -1.44735619426 --1.38283643127 -1.46461385489 --1.38285061717 -1.48187193274 --1.38286799192 -1.49913015961 --1.38288843632 -1.51638892293 --1.38291212916 -1.53364792466 --1.38293898106 -1.55090761185 --1.38295409083 -1.5701174438 --1.3829408288 -1.58932560683 --1.38291379809 -1.6065851152 --1.38288992643 -1.62384435535 --1.38286924362 -1.64110296965 --1.38285169005 -1.65836140513 --1.38283723593 -1.67561933398 --1.38282603025 -1.69287720322 --1.38281798363 -1.71013468504 --1.38281306625 -1.72739219665 --1.38281136752 -1.74464949966 --1.38281282783 -1.76190701127 --1.38281753659 -1.77916437388 --1.38282540441 -1.7964220047 --1.38283640147 -1.81367969513 --1.38285058737 -1.83093780279 --1.38286799192 -1.84819597006 --1.38288849592 -1.86545473337 --1.38291215896 -1.88271376491 --1.38293895125 -1.89997345209 --1.38295409083 -1.91918325424 --1.3829408288 -1.93839144707 --1.38291379809 -1.95565098524 --1.38288995623 -1.97291019559 --1.38286924362 -1.99016880989 --1.38285166025 -2.00742721557 --1.38283723593 -2.02468514442 --1.38282603025 -2.04194307327 --1.38281798363 -2.05920058489 --1.38281309605 -2.0764580965 --1.38281142712 -2.0937153697 --1.38281288743 -2.11097288132 --1.38281756639 -2.12823027373 --1.38282540441 -2.14548796415 --1.38283643127 -2.16274565459 --1.38285061717 -2.18000370264 --1.38286799192 -2.19726186991 --1.38288846612 -2.21452063322 --1.38291212916 -2.23177963496 --1.38293895125 -2.24903929234 --1.38295412064 -2.26824915409 --1.3829408586 -2.28745734692 --1.38291382789 -2.30471682548 --1.38288998604 -2.32197600603 --1.38286924362 -2.33923465014 --1.38285166025 -2.35649311543 --1.38283726573 -2.37375104428 --1.38282603025 -2.39100891352 --1.38281795383 -2.40826636553 --1.38281309605 -2.42552393675 --1.38281139732 -2.44278126955 --1.38281282783 -2.46003872156 --1.38281753659 -2.47729605436 --1.38282543421 -2.4945537448 --1.38283643127 -2.51181143523 --1.38285058737 -2.52906948328 --1.38286799192 -2.54632765054 --1.38288849592 -2.56358641386 --1.38291215896 -2.58084541559 --1.38293895125 -2.59810513258 --1.38295409083 -2.61731499434 --1.3829408586 -2.63652318716 --1.38291382789 -2.65378272533 --1.38288995623 -2.67104190588 --1.38286924362 -2.68830049038 --1.38285166025 -2.70555895567 --1.38283723593 -2.72281688452 --1.38282603025 -2.74007469416 --1.38281798363 -2.75733220577 --1.38281309605 -2.77458977699 --1.38281139732 -2.79184705019 --1.38281285763 -2.8091045022 --1.38281753659 -2.82636183501 --1.3828253746 -2.84361952543 --1.38283643127 -2.86087721586 --1.38285061717 -2.87813532353 --1.38286799192 -2.89539361 --1.38288843632 -2.91265237331 --1.38291209936 -2.92991137505 --1.38293898106 -2.94717103243 --1.38295415044 -2.96638077498 --1.3829408586 -2.9855889678 --1.38291382789 -3.00284856558 --1.38288998604 -3.02010780573 --1.38286927342 -3.03736639023 --1.38285169005 -3.05462479591 --1.38283723593 -3.07188272476 --1.38282603025 -3.08914059401 --1.38281801343 -3.10639810562 --1.38281312585 -3.12365561724 --1.38281142712 -3.14091286262 --1.38281285763 --3.12501496077 --1.38281747699 --3.10775762796 --1.382825315 --3.09049993753 --1.38283637166 --3.07324224711 --1.38285058737 --3.05598413944 --1.38286796212 --3.03872585297 --1.38288843632 --3.02146708966 --1.38291212916 --3.00420808792 --1.38293898106 --2.98694843054 --1.38295415044 --2.96773862838 --1.3829408586 --2.94853043556 --1.38291379809 --2.93127089739 --1.38288992643 --2.91401165724 --1.38286921382 --2.89675307274 --1.38285166025 --2.87949466705 --1.38283726573 --2.8622367382 --1.38282606006 --2.84497886896 --1.38281798363 --2.82772135735 --1.38281309605 --2.81046384573 --1.38281142712 --2.79320657253 --1.38281288743 --2.77594900131 --1.38281753659 --2.7586916089 --1.38282540441 --2.74143403768 --1.38283646107 --2.72417646646 --1.38285061717 --2.7069182992 --1.38286799192 --2.68966001272 --1.38288849592 --2.67240124941 --1.38291215896 --2.65514224768 --1.38293895125 --2.63788259029 --1.38295409083 --2.61867278814 --1.3829408586 --2.59946459532 --1.3829138577 --2.58220505715 --1.38288998604 --2.5649458766 --1.38286924362 --2.5476872921 --1.38285166025 --2.53042888642 --1.38283723593 --2.51317089796 --1.38282600045 --2.49591296911 --1.38281795383 --2.4786555171 --1.38281309605 --2.46139800549 --1.38281142712 --2.44414067268 --1.38281285763 --2.42688316106 --1.38281753659 --2.40962582826 --1.38282543421 --2.39236813784 --1.38283643127 --2.3751104474 --1.38285058737 --2.35785239935 --1.38286799192 --2.34059423208 --1.38288846612 --2.32333546877 --1.38291212916 --2.30607646704 --1.38293895125 --2.28881675005 --1.38295409083 --2.26960688829 --1.3829408288 --2.25039869547 --1.38291379809 --2.2331392169 --1.38288995623 --2.21588003636 --1.38286924362 --2.19862139225 --1.38285166025 --2.18136298656 --1.38283726573 --2.16410505772 --1.38282603025 --2.14684718847 --1.38281795383 --2.12958973646 --1.38281309605 --2.11233216524 --1.38281139732 --2.09507483244 --1.38281285763 --2.07781738043 --1.38281756639 --2.06056004763 --1.38282540441 --2.04330235719 --1.38283643127 --2.02604466676 --1.38285061717 --2.00878661871 --1.38286799192 --1.99152839184 --1.38288846612 --1.97426956892 --1.38291212916 --1.95701056719 --1.38293895125 --1.93975090981 --1.38295412064 --1.92054107785 --1.38294091821 --1.90133288502 --1.3829138577 --1.88407334686 --1.38288995623 --1.86681410671 --1.38286924362 --1.8495555222 --1.38285166025 --1.83229711652 --1.38283723593 --1.81503918767 --1.38282603025 --1.79778131842 --1.38281798363 --1.78052383661 --1.38281309605 --1.76326629519 --1.38281142712 --1.74600896239 --1.38281288743 --1.72875148058 --1.38281753659 --1.71149414777 --1.3828253746 --1.69423645735 --1.38283643127 --1.67697876692 --1.38285061717 --1.65972071886 --1.38286799192 --1.64246249199 --1.38288843632 --1.62520372868 --1.38291212916 --1.60794472695 --1.38293898106 --1.59068503976 --1.38295409083 --1.57147526741 --1.3829408288 --1.55226707459 --1.38291379809 --1.53500753641 --1.38288992643 --1.51774829626 --1.38286924362 --1.50048965216 --1.38285169005 --1.48323124647 --1.38283723593 --1.46597334742 --1.38282603025 --1.44871547818 --1.38281798363 --1.43145796657 --1.38281306625 --1.41420042515 --1.38281136752 --1.39694315195 --1.38281282783 --1.37968564034 --1.38281753659 --1.36242824793 --1.38282540441 --1.3451706171 --1.38283640147 --1.32791298628 --1.38285058737 --1.31065487861 --1.38286799192 --1.29339665174 --1.38288849592 --1.27613788843 --1.38291215896 --1.2588788569 --1.38293895125 --1.24161919952 --1.38295409083 --1.22240939736 --1.3829408288 --1.20320117474 --1.38291379809 --1.18594163656 --1.38288995623 --1.16868242621 --1.38286924362 --1.15142384172 --1.38285166025 --1.13416543603 --1.38283723593 --1.11690747738 --1.38282603025 --1.09964960813 --1.38281798363 --1.08239212632 --1.38281309605 --1.0651345849 --1.38281142712 --1.0478772819 --1.38281288743 --1.03061980009 --1.38281756639 --1.01336243749 --1.38282540441 --0.996104747055 --1.38283643127 --0.97884708643 --1.38285061717 --0.96158900857 --1.38286799192 --0.9443307966 --1.38288846612 --0.927072063088 --1.38291212916 --0.909813061357 --1.38293895125 --0.89255335927 --1.38295412064 --0.873343512416 --1.3829408586 --0.854135334491 --1.38291382789 --0.83687582612 --1.38288998604 --0.81961658597 --1.38286924362 --0.802357956767 --1.38285166025 --0.78509953618 --1.38283726573 --0.767841622233 --1.38282603025 --0.750583767891 --1.38281795383 --0.733326286077 --1.38281309605 --0.716068729758 --1.38281139732 --0.69881144166 --1.38281282783 --0.681553959847 --1.38281753659 --0.664296582341 --1.38282543421 --0.647038906812 --1.38283643127 --0.629781231284 --1.38285058737 --0.612523138523 --1.38286799192 --0.595264926553 --1.38288849592 --0.578006163239 --1.38291215896 --0.560747176409 --1.38293895125 --0.543487519026 --1.38295409083 --0.524277672172 --1.3829408586 --0.505069471895 --1.38291382789 --0.487809941172 --1.38288995623 --0.470550715924 --1.38286924362 --0.453292123973 --1.38285166025 --0.436033718288 --1.38283723593 --0.41877578944 --1.38282603025 --0.401517920196 --1.38281798363 --0.384260430932 --1.38281309605 --0.367002889514 --1.38281139732 --0.349745586514 --1.38281285763 --0.3324880898 --1.38281753659 --0.315230719745 --1.3828253746 --0.297973059117 --1.38283643127 --0.280715405941 --1.38285061717 --0.26345731318 --1.38286799192 --0.246199097484 --1.38288843632 --0.228940334171 --1.38291209936 --0.211681321263 --1.38293898106 --0.194421645254 --1.38295415044 --0.175211831927 --1.36584559083 --0.15600149706 --1.36581867933 --0.138741970062 --1.36579492688 --0.121482757852 --1.36577430368 --0.104224162176 --1.36575680971 --0.0869657564908 --1.36574238539 --0.0697078378871 --1.36573120952 --0.052449981682 --1.3657232821 --0.0351925003343 --1.36571842432 --0.0179349572864 --1.36571669579 --0.000677661038932 --1.3657181561 -0.0165798154194 --1.36572277546 -0.0338371675462 --1.36573055386 -0.0510948225856 --1.36574155092 -0.0683524794876 --1.36575570703 -0.0856105647981 --1.36577302217 -0.102868771181 --1.36579337716 -0.120127525181 --1.36581695079 -0.137386526913 --1.36584371328 -0.154646199196 --1.36585882306 -0.173856090754 --1.36584559083 -0.193064350635 --1.36581864953 -0.210323873907 --1.36579486728 -0.227583084256 --1.36577424407 -0.24484167248 --1.36575677991 -0.262100085616 --1.36574241519 -0.279358007014 --1.36573123932 -0.296615868807 --1.3657232225 -0.313873358071 --1.36571836472 -0.331130892038 --1.36571672559 -0.348388187587 --1.3657181561 -0.36564566195 --1.36572274566 -0.382903024554 --1.36573058367 -0.400160685182 --1.36574161053 -0.417418323458 --1.36575570703 -0.434676416219 --1.36577302217 -0.451934628189 --1.36579343676 -0.469193369151 --1.3658169806 -0.486452378333 --1.36584368348 -0.503712050617 --1.36585876345 -0.522921934724 --1.36584556102 -0.542130202055 --1.36581864953 -0.559389740229 --1.36579486728 -0.576648935676 --1.36577421427 -0.593907520175 --1.36575675011 -0.611165940761 --1.36574241519 -0.628423854709 --1.36573120952 -0.645681709051 --1.36572319269 -0.662939190864 --1.36571836472 -0.680196732282 --1.36571669579 -0.697454035282 --1.3657181263 -0.714711517096 --1.36572277546 -0.7319688797 --1.36573061347 -0.749226540327 --1.36574158072 -0.766484171152 --1.36575567723 -0.783742249012 --1.36577302217 -0.801000460982 --1.36579343676 -0.818259209395 --1.3658169806 -0.835518211127 --1.36584371328 -0.852777883411 --1.36585879326 -0.871987774968 --1.36584556102 -0.891196042299 --1.36581864953 -0.908455565572 --1.36579489708 -0.92571477592 --1.36577424407 -0.94297337532 --1.36575675011 -0.960231795907 --1.36574241519 -0.977489709854 --1.36573120952 -0.994747564197 --1.36572319269 -1.01200506091 --1.36571836472 -1.02926260233 --1.36571666598 -1.04651990533 --1.36571809649 -1.06377738714 --1.36572274566 -1.08103471994 --1.36573058367 -1.09829235077 --1.36574161053 -1.1155500412 --1.36575570703 -1.13280814886 --1.36577302217 -1.15006631612 --1.36579340696 -1.16732507944 --1.36581695079 -1.18458408118 --1.36584371328 -1.20184373856 --1.36585882306 -1.22105363012 --1.36584562063 -1.24026191235 --1.36581867933 -1.25752145052 --1.36579489708 -1.27478063107 --1.36577424407 -1.29203921556 --1.36575675011 -1.30929762125 --1.36574241519 -1.3265555501 --1.36573123932 -1.34381341934 --1.3657232225 -1.36107090115 --1.36571836472 -1.37832844257 --1.36571669579 -1.39558574558 --1.3657181263 -1.41284322739 --1.36572274566 -1.43010058999 --1.36573055386 -1.44735825062 --1.36574155092 -1.46461588144 --1.36575567723 -1.4818739593 --1.36577302217 -1.49913218617 --1.36579340696 -1.51639091969 --1.36581695079 -1.53364992142 --1.36584371328 -1.5509096086 --1.36585879326 -1.57011950016 --1.36584553122 -1.58932775259 --1.36581861972 -1.60658726096 --1.36579486728 -1.62384650111 --1.36577424407 -1.64110511541 --1.36575677991 -1.6583635211 --1.36574238539 -1.67562142014 --1.36573120952 -1.69287928939 --1.3657232523 -1.7101367712 --1.36571842432 -1.72739428282 --1.36571669578 -1.74465158582 --1.36571809649 -1.76190906763 --1.36572277546 -1.77916640043 --1.36573061347 -1.79642406106 --1.36574158072 -1.81368175149 --1.36575567723 -1.83093982935 --1.36577302217 -1.84819799662 --1.36579343676 -1.86545675993 --1.3658169806 -1.88271576166 --1.36584368348 -1.89997541905 --1.36585876345 -1.9191853404 --1.36584556102 -1.93839362264 --1.36581864953 -1.95565313101 --1.36579489708 -1.97291231155 --1.36577424407 -1.99017089605 --1.36575675011 -2.00742933154 --1.36574238539 -2.02468729019 --1.36573120952 -2.04194515943 --1.3657232225 -2.05920261144 --1.36571836472 -2.07646018266 --1.36571672559 -2.09371751547 --1.3657181561 -2.11097496748 --1.36572277546 -2.12823230028 --1.36573061347 -2.14548999071 --1.36574161053 -2.16274768114 --1.36575570703 -2.1800057292 --1.36577302217 -2.19726389646 --1.36579346657 -2.21452265978 --1.3658170402 -2.23178166151 --1.36584371328 -2.24904125929 --1.36585879326 -2.26825118065 --1.36584559083 -2.28745949268 --1.36581867933 -2.30471897125 --1.36579492688 -2.3219781518 --1.36577424407 -2.3392367959 --1.36575675011 -2.35649526119 --1.36574244499 -2.37375313044 --1.36573123932 -2.39101094008 --1.3657232225 -2.40826845169 --1.36571839452 -2.42552602291 --1.36571669579 -2.44278329611 --1.3657181561 -2.46004074812 --1.36572280526 -2.47729808092 --1.36573061347 -2.49455577135 --1.36574158072 -2.51181346178 --1.36575567723 -2.52907150984 --1.36577302217 -2.54632967711 --1.36579343676 -2.56358844042 --1.3658169806 -2.58084744215 --1.36584368348 -2.59810715914 --1.36585876345 -2.6173170805 --1.36584556102 -2.63652533293 --1.36581864953 -2.6537848711 --1.36579489708 -2.67104405165 --1.36577424407 -2.68830263614 --1.36575675011 -2.70556104183 --1.36574238539 -2.72281897068 --1.36573120952 -2.74007683992 --1.3657232225 -2.75733435154 --1.36571836472 -2.77459186315 --1.36571669579 -2.79184907675 --1.3657181263 -2.80910658836 --1.36572271586 -2.82636398077 --1.36573055386 -2.8436216116 --1.36574161053 -2.86087924242 --1.36575570703 -2.87813729048 --1.36577302217 -2.89539557695 --1.36579340696 -2.91265434027 --1.36581695079 -2.929913342 --1.36584368348 -2.94717305899 --1.36585879326 -2.96638286114 --1.36584559083 -2.98559111357 --1.36581867933 -3.00285065174 --1.36579492688 -3.02010989189 --1.36577430368 -3.037368536 --1.36575680971 -3.05462694168 --1.36574238539 -3.07188487053 --1.36573120952 -3.08914273978 --1.3657232821 -3.10640019179 --1.36571842432 -3.1236577034 --1.36571669579 -3.14091494878 --1.3657181561 --3.1250128746 --1.36572277546 --3.1077554822 --1.36573055386 --3.09049785137 --1.36574155092 --3.07324022055 --1.36575570703 --3.05598217249 --1.36577302217 --3.03872388602 --1.36579337716 --3.0214651227 --1.36581695079 --3.00420612096 --1.36584371328 --2.98694640398 --1.36585882306 --2.96773654222 --1.36584559083 --2.94852828979 --1.36581864953 --2.93126881122 --1.36579486728 --2.91400957107 --1.36577424407 --2.89675092697 --1.36575677991 --2.87949252129 --1.36574241519 --2.86223459244 --1.36573123932 --2.84497672319 --1.3657232225 --2.82771927118 --1.36571836472 --2.81046175957 --1.36571672559 --2.79320442676 --1.3657181561 --2.77594691515 --1.36572274566 --2.75868958235 --1.36573058367 --2.74143201113 --1.36574161053 --2.7241743803 --1.36575570703 --2.70691621303 --1.36577302217 --2.68965798617 --1.36579343676 --2.67239922285 --1.3658169806 --2.65514022112 --1.36584368348 --2.63788062334 --1.36585876345 --2.61867076159 --1.36584556102 --2.59946244955 --1.36581864953 --2.58220291138 --1.36579486728 --2.56494373083 --1.36577421427 --2.54768514633 --1.36575675011 --2.53042674065 --1.36574241519 --2.5131688118 --1.36573120952 --2.49591094255 --1.36572319269 --2.47865349054 --1.36571836472 --2.46139591933 --1.36571669579 --2.44413858652 --1.3657181263 --2.42688113451 --1.36572277546 --2.40962380171 --1.36573061347 --2.39236611128 --1.36574158072 --2.37510842085 --1.36575567723 --2.35785037279 --1.36577302217 --2.34059220553 --1.36579343676 --2.32333344221 --1.3658169806 --2.30607444048 --1.36584371328 --2.28881478309 --1.36585879326 --2.26960486173 --1.36584556102 --2.2503966093 --1.36581864953 --2.23313713074 --1.36579489708 --2.21587789059 --1.36577424407 --2.19861924649 --1.36575675011 --2.1813608408 --1.36574241519 --2.16410291195 --1.36573120952 --2.1468450427 --1.36572319269 --2.12958759069 --1.36571836472 --2.11233007908 --1.36571666598 --2.09507274628 --1.36571809649 --2.07781529427 --1.36572274566 --2.06055796146 --1.36573058367 --2.04330027103 --1.36574161053 --2.02604264021 --1.36575570703 --2.00878459215 --1.36577302217 --1.99152636528 --1.36579340696 --1.97426757217 --1.36581695079 --1.95700857043 --1.36584371328 --1.93974891305 --1.36585882306 --1.92053902149 --1.36584562063 --1.90133076906 --1.36581867933 --1.88407123089 --1.36579489708 --1.86681199074 --1.36577424407 --1.84955340624 --1.36575675011 --1.83229500055 --1.36574241519 --1.8150370717 --1.36573123932 --1.79777920246 --1.3657232225 --1.78052175045 --1.36571836472 --1.76326420903 --1.36571669579 --1.74600690603 --1.3657181263 --1.72874945402 --1.36572274566 --1.71149209141 --1.36573055386 --1.69423440099 --1.36574155092 --1.67697674036 --1.36575567723 --1.6597186923 --1.36577302217 --1.64246046543 --1.36579340696 --1.62520170212 --1.36581695079 --1.60794273019 --1.36584371328 --1.59068307281 --1.36585879326 --1.57147318125 --1.36584553122 --1.55226489902 --1.36581861972 --1.53500539064 --1.36579486728 --1.5177461803 --1.36577424407 --1.50048756599 --1.36575677991 --1.48322913051 --1.36574238539 --1.46597123146 --1.36573120952 --1.44871339202 --1.3657232523 --1.4314558804 --1.36571842432 --1.41419833898 --1.36571669578 --1.39694106579 --1.36571809649 --1.37968358398 --1.36572277546 --1.36242622137 --1.36573061347 --1.34516859054 --1.36574158072 --1.32791092992 --1.36575567723 --1.31065282225 --1.36577302217 --1.29339462519 --1.36579343676 --1.27613586187 --1.3658169806 --1.25887686014 --1.36584368348 --1.24161720276 --1.36585876345 --1.2224073112 --1.36584556102 --1.20319902897 --1.36581864953 --1.1859394908 --1.36579489708 --1.16868031025 --1.36577424407 --1.15142172575 --1.36575675011 --1.13416332006 --1.36574238539 --1.11690539121 --1.36573120952 --1.09964752197 --1.3657232225 --1.08239004016 --1.36571836472 --1.06513249874 --1.36571672559 --1.04787522554 --1.3657181561 --1.03061774373 --1.36572277546 --1.01336035132 --1.36573061347 --0.996102690694 --1.36574161053 --0.978845044971 --1.36575570703 --0.961586967111 --1.36577302217 --0.944328770041 --1.36579346657 --0.927070036531 --1.3658170402 --0.909811034799 --1.36584371328 --0.892551362514 --1.36585879326 --0.873341456055 --1.36584559083 --0.854133173823 --1.36581867933 --0.836873665452 --1.36579492688 --0.819614470005 --1.36577424407 --0.802355855703 --1.36575675011 --0.785097435117 --1.36574244499 --0.767839536071 --1.36573123932 --0.750581666827 --1.3657232225 --0.733324199915 --1.36571839452 --0.716066658497 --1.36571669579 --0.698809340596 --1.3657181561 --0.681551873684 --1.36572280526 --0.664294525981 --1.36573061347 --0.647036865354 --1.36574158072 --0.629779189825 --1.36575567723 --0.612521111966 --1.36577302217 --0.595262929797 --1.36579343676 --0.578004181385 --1.3658169806 --0.560745194554 --1.36584368348 --0.54348552227 --1.36585876345 --0.52427560091 --1.36584556102 --0.505067333579 --1.36581864953 --0.487807817757 --1.36579489708 --0.470548599959 --1.36577424407 --0.453290015459 --1.36575675011 --0.436031609773 --1.36574238539 --0.418773680926 --1.36573120952 --0.401515826583 --1.3657232225 --0.384258344769 --1.36571836472 --0.367000803351 --1.36571669579 --0.349743515253 --1.3657181263 --0.33248604089 --1.36572271586 --0.315228678286 --1.36573055386 --0.297971025109 --1.36574161053 --0.280713379383 --1.36575570703 --0.263455294073 --1.36577302217 --0.246197082102 --1.36579340696 --0.228938322514 --1.36581695079 --0.211679320782 --1.36584368348 --0.194419652223 --1.36585879326 --0.175209764391 --1.34872514009 --0.155999328941 --1.34869834781 --0.138739809394 --1.34867468476 --0.121480602771 --1.34865412116 --0.104222014546 --1.3486367464 --0.0869636181742 --1.34862247109 --0.0697057107463 --1.34861129523 --0.0524478610605 --1.348603338 --0.035190386232 --1.34859853983 --0.0179328531958 --1.34859681129 --0.000675566261633 --1.34859827161 -0.0165819020476 --1.34860292077 -0.0338392457924 --1.34861066937 -0.051096893847 --1.34862160683 -0.0683545432985 --1.34863567353 -0.0856126174331 --1.34865292907 -0.10287081264 --1.34867322445 -0.120129553601 --1.34869664907 -0.13738854602 --1.34872329235 -0.154648210853 --1.34873834252 -0.173858176917 --1.34872514009 -0.193066518754 --1.34869834781 -0.210326042026 --1.34867468476 -0.227585241198 --1.34865412116 -0.244843818247 --1.3486367464 -0.262102231384 --1.34862244129 -0.27936013788 --1.34861129523 -0.296617977321 --1.348603338 -0.313875459134 --1.34859851002 -0.331132993102 --1.34859684109 -0.3483902812 --1.34859827161 -0.365647740662 --1.34860286117 -0.382905088365 --1.34861063957 -0.400162748992 --1.34862160683 -0.417420394719 --1.34863564372 -0.434678465128 --1.34865289926 -0.451936669648 --1.34867325425 -0.46919541806 --1.34869667888 -0.486454419792 --1.34872326255 -0.503714069724 --1.34873831272 -0.522924020886 --1.34872514009 -0.542132377624 --1.34869831801 -0.559391900897 --1.34867465496 -0.576651081443 --1.34865412116 -0.593909665942 --1.3486367464 -0.611168086529 --1.34862247109 -0.628426000476 --1.34861132503 -0.645683839917 --1.348603338 -0.66294130683 --1.34859851002 -0.680198833346 --1.34859681129 -0.697456121445 --1.3485982418 -0.714713603258 --1.34860289097 -0.731970950961 --1.34861066937 -0.749228596687 --1.34862160683 -0.766486257315 --1.34863564372 -0.783744320273 --1.34865286946 -0.801002502441 --1.34867322445 -0.818261250854 --1.34869667888 -0.835520252586 --1.34872329235 -0.852779924869 --1.34873834252 -0.871989876032 --1.34872514009 -0.891198217869 --1.34869834781 -0.908457741141 --1.34867468476 -0.925716936588 --1.34865409136 -0.942975521087 --1.3486367166 -0.960233941674 --1.34862244129 -0.977491855621 --1.34861129523 -0.994749680162 --1.348603338 -1.01200714707 --1.34859851002 -1.02926471829 --1.34859681129 -1.04652202129 --1.3485982418 -1.06377947331 --1.34860286117 -1.08103680611 --1.34861063957 -1.09829443693 --1.34862160683 -1.11555209756 --1.34863564372 -1.13281017542 --1.34865289926 -1.15006834269 --1.34867325425 -1.167327106 --1.34869667888 -1.18458610773 --1.34872329235 -1.20184576511 --1.34873834252 -1.22105574608 --1.34872514009 -1.24026408792 --1.34869834781 -1.25752359629 --1.34867471456 -1.27478277683 --1.34865415096 -1.29204136133 --1.3486367464 -1.30929976701 --1.34862247109 -1.32655769587 --1.34861132503 -1.34381556511 --1.3486033082 -1.36107301712 --1.34859848022 -1.37833052874 --1.34859681129 -1.39558783174 --1.3485982418 -1.41284531355 --1.34860289097 -1.43010264635 --1.34861066937 -1.44736027718 --1.34862160683 -1.4646179378 --1.34863564372 -1.48187604546 --1.34865289926 -1.49913424253 --1.34867325425 -1.51639294624 --1.34869670868 -1.53365194798 --1.34872329235 -1.55091160536 --1.34873831272 -1.57012155652 --1.34872511029 -1.58932992816 --1.3486982882 -1.60658946633 --1.34867468476 -1.62384867668 --1.34865415096 -1.64110726118 --1.3486367464 -1.65836566686 --1.34862244129 -1.67562353611 --1.34861126542 -1.69288137555 --1.3486033082 -1.71013888717 --1.34859853982 -1.72739642859 --1.34859684109 -1.74465370178 --1.3485982418 -1.7619111538 --1.34860289097 -1.7791684866 --1.34861066937 -1.79642614722 --1.34862160683 -1.81368380785 --1.34863564372 -1.83094185591 --1.34865289926 -1.84820005298 --1.34867325425 -1.86545881629 --1.34869667888 -1.88271778822 --1.34872326255 -1.8999774456 --1.34873831272 -1.91918745637 --1.34872514009 -1.93839579821 --1.34869834781 -1.95565527677 --1.34867468476 -1.97291448712 --1.34865409136 -1.99017307162 --1.3486367166 -2.00743147731 --1.34862244129 -2.02468937636 --1.34861129523 -2.04194718599 --1.3486033082 -2.05920469761 --1.34859848022 -2.07646226883 --1.34859684109 -2.09371954203 --1.34859827161 -2.11097699404 --1.34860292077 -2.12823432684 --1.34861069917 -2.14549201727 --1.34862160683 -2.1627497077 --1.34863564372 -2.18000775576 --1.34865289926 -2.19726592302 --1.34867328405 -2.21452468634 --1.34869673848 -2.23178368807 --1.34872329235 -2.24904328585 --1.34873831272 -2.26825326681 --1.3487251699 -2.28746163845 --1.34869834781 -2.30472111702 --1.34867465496 -2.32198035717 --1.34865412116 -2.33923900127 --1.3486367464 -2.35649740696 --1.34862247109 -2.3737552762 --1.34861132503 -2.39101308584 --1.348603338 -2.40827059746 --1.34859851002 -2.42552810908 --1.34859684109 -2.44278532267 --1.34859830141 -2.46004283428 --1.34860295058 -2.47730022669 --1.34861069917 -2.49455785751 --1.34862160683 -2.51181548834 --1.34863564372 -2.5290735364 --1.34865289926 -2.54633170366 --1.34867325425 -2.56359046697 --1.34869667888 -2.58084946871 --1.34872326255 -2.5981091857 --1.34873831272 -2.61731916666 --1.34872514009 -2.63652747869 --1.34869834781 -2.65378701687 --1.34867468476 -2.67104619741 --1.34865412116 -2.68830478191 --1.3486367464 -2.7055631876 --1.34862244129 -2.72282111645 --1.34861129523 -2.74007898569 --1.3486033082 -2.7573364377 --1.34859848022 -2.77459394932 --1.34859684109 -2.79185122251 --1.34859827161 -2.80910873413 --1.34860286117 -2.82636612654 --1.34861063957 -2.84362369776 --1.34862160683 -2.86088126898 --1.34863564372 -2.87813937664 --1.34865289926 -2.89539766312 --1.34867325425 -2.91265636682 --1.34869670868 -2.92991536855 --1.34872329235 -2.94717508554 --1.34873831272 -2.9663850069 --1.34872514009 -2.98559331894 --1.34869834781 -3.00285279751 --1.34867468476 -3.02011203766 --1.34865412116 -3.03737068176 --1.3486367464 -3.05462908745 --1.34862247109 -3.07188695669 --1.34861129523 -3.08914476633 --1.348603338 -3.10640221834 --1.34859853983 -3.12365978956 --1.34859681129 -3.14091709455 --1.34859827161 --3.12501072883 --1.34860292077 --3.10775333643 --1.34861066937 --3.09049576521 --1.34862160683 --3.07323819399 --1.34863567353 --3.05598008633 --1.34865292907 --3.03872179985 --1.34867322445 --3.02146309614 --1.34869664907 --3.00420409441 --1.34872329235 --2.98694437742 --1.34873834252 --2.96773445606 --1.34872514009 --2.94852608442 --1.34869834781 --2.93126660585 --1.34867468476 --2.91400742531 --1.34865412116 --2.8967487812 --1.3486367464 --2.87949037552 --1.34862244129 --2.86223250627 --1.34861129523 --2.84497469664 --1.348603338 --2.82771718502 --1.34859851002 --2.8104596138 --1.34859684109 --2.7932023406 --1.34859827161 --2.77594488859 --1.34860286117 --2.75868755579 --1.34861063957 --2.74142992497 --1.34862160683 --2.72417223454 --1.34863564372 --2.70691412687 --1.34865289926 --2.68965595961 --1.34867325425 --2.67239719629 --1.34869667888 --2.65513819456 --1.34872326255 --2.63787859678 --1.34873831272 --2.61866867542 --1.34872514009 --2.59946030378 --1.34869831801 --2.58220076561 --1.34867465496 --2.56494158507 --1.34865412116 --2.54768300056 --1.3486367464 --2.53042459488 --1.34862247109 --2.51316666603 --1.34861132503 --2.49590879679 --1.348603338 --2.47865134478 --1.34859851002 --2.46139383316 --1.34859681129 --2.44413655996 --1.3485982418 --2.42687910795 --1.34860289097 --2.40962177515 --1.34861066937 --2.39236408472 --1.34862160683 --2.37510639429 --1.34863564372 --2.35784834623 --1.34865286946 --2.34059017897 --1.34867322445 --2.32333141565 --1.34869667888 --2.30607241392 --1.34872329235 --2.28881275654 --1.34873834252 --2.26960277557 --1.34872514009 --2.25039446354 --1.34869834781 --2.23313492537 --1.34867468476 --2.21587568522 --1.34865409136 --2.19861710072 --1.3486367166 --2.18135869503 --1.34862244129 --2.16410076618 --1.34861129523 --2.14684289694 --1.348603338 --2.12958544493 --1.34859851002 --2.11232793331 --1.34859681129 --2.09507060051 --1.3485982418 --2.0778131485 --1.34860286117 --2.06055581569 --1.34861063957 --2.04329818487 --1.34862160683 --2.02604061365 --1.34863564372 --2.00878256559 --1.34865289926 --1.99152433872 --1.34867325425 --1.97426557541 --1.34869667888 --1.95700657368 --1.34872329235 --1.9397469163 --1.34873834252 --1.92053696513 --1.34872514009 --1.90132859349 --1.34869834781 --1.88406905532 --1.34867471456 --1.86680984497 --1.34865415096 --1.84955126047 --1.3486367464 --1.83229285478 --1.34862247109 --1.81503495574 --1.34861132503 --1.7977771163 --1.3486033082 --1.78051963449 --1.34859848022 --1.76326209307 --1.34859681129 --1.74600481987 --1.3485982418 --1.72874736786 --1.34860289097 --1.71149000525 --1.34861066937 --1.69423234463 --1.34862160683 --1.6769747138 --1.34863564372 --1.65971663594 --1.34865289926 --1.64245840907 --1.34867325425 --1.62519967556 --1.34869670868 --1.60794070363 --1.34872329235 --1.59068104625 --1.34873831272 --1.57147106528 --1.34872511029 --1.55226272345 --1.3486982882 --1.53500324488 --1.34867468476 --1.51774403453 --1.34865415096 --1.50048545003 --1.3486367464 --1.48322701454 --1.34862244129 --1.46596908569 --1.34861126542 --1.44871127605 --1.3486033082 --1.43145379424 --1.34859853982 --1.41419625282 --1.34859684109 --1.39693894982 --1.3485982418 --1.37968149781 --1.34860289097 --1.36242416501 --1.34861066937 --1.34516650438 --1.34862160683 --1.32790884375 --1.34863564372 --1.31065076589 --1.34865289926 --1.29339259863 --1.34867325425 --1.27613383532 --1.34869667888 --1.25887483358 --1.34872326255 --1.2416151762 --1.34873831272 --1.22240519524 --1.34872514009 --1.2031968534 --1.34869834781 --1.18593734503 --1.34867468476 --1.16867816448 --1.34865409136 --1.15141957998 --1.3486367166 --1.1341611743 --1.34862244129 --1.11690324545 --1.34861129523 --1.09964540601 --1.3486033082 --1.082387954 --1.34859848022 --1.06513041258 --1.34859684109 --1.04787313938 --1.34859827161 --1.03061565757 --1.34860292077 --1.01335829496 --1.34861069917 --0.996100649235 --1.34862160683 --0.97884298861 --1.34863564372 --0.961584925651 --1.34865289926 --0.944326728582 --1.34867328405 --0.927067995071 --1.34869673848 --0.909809023141 --1.34872329235 --0.892549365758 --1.34873831272 --0.873339384794 --1.3487251699 --0.854131013155 --1.34869834781 --0.836871504784 --1.34867465496 --0.819612309337 --1.34865412116 --0.802353709936 --1.3486367464 --0.785095304251 --1.34862247109 --0.767837390303 --1.34861132503 --0.750579550862 --1.348603338 --0.733322098851 --1.34859851002 --0.716064557433 --1.34859684109 --0.698807254434 --1.34859830141 --0.681549787521 --1.34860295058 --0.664292439818 --1.34861069917 --0.647034794092 --1.34862160683 --0.629777148366 --1.34863564372 --0.612519070506 --1.34865289926 --0.595260888338 --1.34867325425 --0.578002154827 --1.34869667888 --0.560743153095 --1.34872326255 --0.543483480811 --1.34873831272 --0.524273514748 --1.34872514009 --0.505065172911 --1.34869834781 --0.487805649638 --1.34867468476 --0.470546454191 --1.34865412116 --0.453287877142 --1.3486367464 --0.436029471457 --1.34862244129 --0.418771550059 --1.34861129523 --0.401513703168 --1.3486033082 --0.384256228805 --1.34859848022 --0.366998687386 --1.34859684109 --0.349741414189 --1.34859827161 --0.332483954728 --1.34860286117 --0.315226599574 --1.34861063957 --0.297968953848 --1.34862160683 --0.280711315572 --1.34863564372 --0.263453237713 --1.34865289926 --0.246195033193 --1.34867325425 --0.228936288506 --1.34869670868 --0.21167729795 --1.34872329235 --0.194417636842 --1.34873831272 --0.175207670778 --1.33157590032 --0.15599712357 --1.33154922724 --0.138737615198 --1.3315256834 --0.121478419751 --1.33150523901 --0.104219840839 --1.33148792386 --0.0869614500552 --1.33147370815 --0.069703550078 --1.33146262169 --0.052445711568 --1.33145469427 --0.0351882451214 --1.3314499259 --0.0179307213984 --1.33144822716 --0.000673443078995 --1.33144965768 -0.016584015917 --1.33145430684 -0.0338413515128 --1.33146205544 -0.0510989902541 --1.33147290349 -0.068356629461 --1.33148688078 -0.085614696145 --1.33150404692 -0.102872883901 --1.33152425289 -0.120131621138 --1.33154758811 -0.13739060238 --1.33157408237 -0.154650248587 --1.33158904314 -0.173860296607 --1.33157593012 -0.193068724126 --1.33154925704 -0.210328236223 --1.33152571321 -0.227587427944 --1.33150526881 -0.244846001268 --1.33148792386 -0.262104392052 --1.33147367835 -0.279362283647 --1.33146265149 -0.296620123088 --1.33145475388 -0.313877597451 --1.3314499259 -0.331135123968 --1.33144822716 -0.348392404616 --1.33144965768 -0.365649856627 --1.33145427704 -0.382907189428 --1.33146202564 -0.400164835155 --1.33147290349 -0.41742247343 --1.33148685098 -0.434680528939 --1.33150401712 -0.451938733458 --1.3315242827 -0.469197489321 --1.33154761791 -0.486456468701 --1.33157408237 -0.503716111183 --1.33158904314 -0.522926151752 --1.33157593012 -0.542134582996 --1.33154922724 -0.559394091368 --1.3315256536 -0.576653271914 --1.33150526881 -0.593911841512 --1.33148798346 -0.611170247197 --1.33147370815 -0.628428161144 --1.33146265149 -0.645685985684 --1.33145475388 -0.662943452597 --1.3314499259 -0.680200979114 --1.33144822716 -0.697458252311 --1.33144965768 -0.714715719223 --1.33145427704 -0.731973037124 --1.33146202564 -0.749230667949 --1.33147290349 -0.766488343477 --1.33148685098 -0.783746421337 --1.33150398731 -0.801004603505 --1.33152425289 -0.818263322115 --1.33154764772 -0.835522308945 --1.33157411218 -0.852781981229 --1.33158904314 -0.871992006898 --1.33157593012 -0.891200423241 --1.33154925704 -0.908459931612 --1.3315256834 -0.925719112157 --1.33150520921 -0.942977696657 --1.33148789406 -0.960236102343 --1.33147367835 -0.977494001389 --1.33146265149 -0.994751825929 --1.33145475388 -1.01200926304 --1.3314499259 -1.02926683426 --1.33144822716 -1.04652416706 --1.33144965768 -1.06378158927 --1.33145427704 -1.08103889227 --1.33146202564 -1.0982965529 --1.33147290349 -1.11555421353 --1.33148685098 -1.13281226158 --1.33150401712 -1.15007042885 --1.3315243125 -1.16732916236 --1.33154764772 -1.18458816409 --1.33157408237 -1.20184782147 --1.33158904314 -1.22105786204 --1.33157593012 -1.24026629329 --1.33154925704 -1.25752580166 --1.33152571321 -1.2747849822 --1.33150526881 -1.2920435369 --1.33148795366 -1.30930191278 --1.33147370815 -1.32655984163 --1.33146265149 -1.34381771088 --1.33145472407 -1.36107516289 --1.33144989609 -1.3783326745 --1.33144822716 -1.3955899477 --1.33144968748 -1.41284739971 --1.33145430684 -1.43010473251 --1.33146199584 -1.44736236334 --1.33147287369 -1.46462002396 --1.33148685098 -1.48187810183 --1.33150401712 -1.49913626909 --1.3315242827 -1.5163950026 --1.33154767752 -1.53365400434 --1.33157411217 -1.55091366172 --1.33158901334 -1.57012370229 --1.33157593012 -1.58933213353 --1.33154922724 -1.6065916419 --1.33152571321 -1.62385082245 --1.33150529861 -1.64110940695 --1.33148792386 -1.65836781263 --1.33147367835 -1.67562568188 --1.33146262169 -1.69288349152 --1.33145466447 -1.71014100313 --1.33144986629 -1.72739857435 --1.33144822716 -1.74465584755 --1.33144965768 -1.76191329956 --1.33145427704 -1.77917063236 --1.33146202564 -1.79642826319 --1.33147290349 -1.81368589401 --1.33148685098 -1.83094394207 --1.33150401712 -1.84820213914 --1.3315242827 -1.86546087265 --1.33154761791 -1.88271984458 --1.33157408237 -1.89997950196 --1.33158904314 -1.91918954253 --1.33157590032 -1.93839797377 --1.33154922724 -1.95565748214 --1.33152571321 -1.9729166925 --1.33150523901 -1.99017524719 --1.33148789406 -2.00743362308 --1.33147367835 -2.02469152212 --1.33146265149 -2.04194933176 --1.33145472407 -2.05920684338 --1.33144989609 -2.0764644146 --1.33144822716 -2.0937216878 --1.33144965768 -2.1109790802 --1.33145430684 -2.128236413 --1.33146205544 -2.14549410343 --1.33147290349 -2.16275173426 --1.33148685098 -2.18000978231 --1.33150401712 -2.19726794958 --1.3315242827 -2.21452671289 --1.33154764772 -2.23178571463 --1.33157411218 -2.24904531241 --1.33158904314 -2.26825535297 --1.33157595992 -2.28746384382 --1.33154925704 -2.30472332239 --1.3315256536 -2.32198250294 --1.33150526881 -2.33924114704 --1.33148795366 -2.35649955273 --1.33147367835 -2.37375742197 --1.33146265149 -2.39101523161 --1.33145472407 -2.40827268362 --1.33144989609 -2.42553019524 --1.33144822716 -2.44278746843 --1.33144965768 -2.46004498005 --1.33145433664 -2.47730237246 --1.33146208525 -2.49456000328 --1.33147290349 -2.5118175745 --1.33148685098 -2.52907562256 --1.33150401712 -2.54633384943 --1.3315242827 -2.56359255314 --1.33154764772 -2.58085149527 --1.33157411218 -2.59811121225 --1.33158901334 -2.61732125282 --1.33157590032 -2.63652962446 --1.33154925704 -2.65378922224 --1.3315256834 -2.67104846239 --1.33150523901 -2.68830698729 --1.33148792386 -2.70556533337 --1.33147367835 -2.72282326222 --1.33146265149 -2.74008113146 --1.33145472407 -2.75733858347 --1.33144989609 -2.77459609509 --1.33144822716 -2.79185336828 --1.33144965768 -2.80911082029 --1.33145427704 -2.8263681531 --1.33146202564 -2.84362578392 --1.33147290349 -2.86088341475 --1.33148688078 -2.87814152241 --1.33150404692 -2.89539974928 --1.3315242827 -2.91265845299 --1.33154767752 -2.92991745472 --1.33157414198 -2.9471771121 --1.33158904314 -2.96638715267 --1.33157590032 -2.98559552431 --1.33154922724 -3.00285500288 --1.3315256834 -3.02011424303 --1.33150523901 -3.03737282753 --1.33148792386 -3.05463123322 --1.33147370815 -3.07188910246 --1.33146262169 -3.0891469121 --1.33145469427 -3.10640436411 --1.3314499259 -3.12366187572 --1.33144822716 -3.14091918071 --1.33144965768 --3.12500864267 --1.33145430684 --3.10775130987 --1.33146205544 --3.09049367905 --1.33147290349 --3.07323604822 --1.33148688078 --3.05597794056 --1.33150404692 --3.03871971369 --1.33152425289 --3.02146100998 --1.33154758811 --3.00420200825 --1.33157408237 --2.98694235086 --1.33158904314 --2.9677323103 --1.33157593012 --2.94852387905 --1.33154925704 --2.93126440049 --1.33152571321 --2.91400521994 --1.33150526881 --2.89674663544 --1.33148792386 --2.87948822975 --1.33147367835 --2.86223036051 --1.33146265149 --2.84497255087 --1.33145475388 --2.82771503925 --1.3314499259 --2.81045746803 --1.33144822716 --2.79320025444 --1.33144965768 --2.77594280243 --1.33145427704 --2.75868541002 --1.33146202564 --2.7414277792 --1.33147290349 --2.72417014837 --1.33148685098 --2.70691210031 --1.33150401712 --2.68965393305 --1.3315242827 --2.67239516974 --1.33154761791 --2.655136168 --1.33157408237 --2.63787657022 --1.33158904314 --2.61866652966 --1.33157593012 --2.59945803881 --1.33154922724 --2.58219856024 --1.3315256536 --2.5649394393 --1.33150526881 --2.5476808548 --1.33148798346 --2.53042244911 --1.33147370815 --2.51316452026 --1.33146265149 --2.49590665102 --1.33145475388 --2.47864919901 --1.3314499259 --2.46139168739 --1.33144822716 --2.4441344142 --1.33144965768 --2.42687696219 --1.33145427704 --2.40961962938 --1.33146202564 --2.39236199856 --1.33147290349 --2.37510436773 --1.33148685098 --2.35784626007 --1.33150398731 --2.3405880332 --1.33152425289 --2.32332932949 --1.33154764772 --2.30607038736 --1.33157411218 --2.28881067037 --1.33158904314 --2.26960062981 --1.33157593012 --2.25039225817 --1.33154925704 --2.23313271999 --1.3315256834 --2.21587353945 --1.33150520921 --2.19861495495 --1.33148789406 --2.18135654926 --1.33147367835 --2.16409862041 --1.33146265149 --2.14684075117 --1.33145475388 --2.12958329916 --1.3314499259 --2.11232578755 --1.33144822716 --2.09506851435 --1.33144965768 --2.07781106234 --1.33145427704 --2.06055372953 --1.33146202564 --2.04329609871 --1.33147290349 --2.02603846788 --1.33148685098 --2.00878041982 --1.33150401712 --1.99152225256 --1.3315243125 --1.97426351905 --1.33154764772 --1.95700451732 --1.33157408237 --1.93974485994 --1.33158904314 --1.92053481937 --1.33157593012 --1.90132638812 --1.33154925704 --1.88406687975 --1.33152571321 --1.8668076694 --1.33150526881 --1.8495490849 --1.33148795366 --1.83229070902 --1.33147370815 --1.81503280997 --1.33146265149 --1.79777497053 --1.33145472407 --1.78051748872 --1.33144989609 --1.7632599473 --1.33144822716 --1.74600267411 --1.33144968748 --1.72874522209 --1.33145430684 --1.71148788929 --1.33146199584 --1.69423025846 --1.33147287369 --1.67697262764 --1.33148685098 --1.65971454978 --1.33150401712 --1.64245635271 --1.3315242827 --1.6251976192 --1.33154767752 --1.60793861747 --1.33157411217 --1.59067898989 --1.33158901334 --1.57146894932 --1.33157593012 --1.55226051807 --1.33154922724 --1.5350010395 --1.33152571321 --1.51774182916 --1.33150529861 --1.50048324466 --1.33148792386 --1.48322483897 --1.33147367835 --1.46596693992 --1.33146262169 --1.44870913029 --1.33145466447 --1.43145167827 --1.33144986629 --1.41419416666 --1.33144822716 --1.39693686366 --1.33144965768 --1.37967941165 --1.33145427704 --1.36242207884 --1.33146202564 --1.34516441822 --1.33147290349 --1.32790678739 --1.33148685098 --1.31064870953 --1.33150401712 --1.29339051247 --1.3315242827 --1.27613177895 --1.33154761791 --1.25887280703 --1.33157408237 --1.24161314965 --1.33158904314 --1.22240307927 --1.33157590032 --1.20319467783 --1.33154922724 --1.18593519926 --1.33152571321 --1.16867598891 --1.33150523901 --1.15141740441 --1.33148789406 --1.13415902853 --1.33147367835 --1.11690109968 --1.33146265149 --1.09964326024 --1.33145472407 --1.08238580823 --1.33144989609 --1.06512826681 --1.33144822716 --1.04787099361 --1.33144965768 --1.0306135416 --1.33145430684 --1.0133562088 --1.33146205544 --0.996098563075 --1.33147290349 --0.978840917349 --1.33148685098 --0.96158285439 --1.33150401712 --0.944324657321 --1.3315242827 --0.92706592381 --1.33154764772 --0.90980695188 --1.33157411218 --0.892547309398 --1.33158904314 --0.873337268829 --1.33157595992 --0.854128837585 --1.33154925704 --0.836869329214 --1.3315256536 --0.819610133767 --1.33150526881 --0.802351549268 --1.33148795366 --0.785093143582 --1.33147367835 --0.767835229635 --1.33146265149 --0.750577405095 --1.33145472407 --0.733319953084 --1.33144989609 --0.716062426567 --1.33144822716 --0.69880515337 --1.33144965768 --0.681547686458 --1.33145433664 --0.664290338755 --1.33146208525 --0.647032693028 --1.33147290349 --0.629775062203 --1.33148685098 --0.612517014146 --1.33150401712 --0.595258817077 --1.3315242827 --0.578000083566 --1.33154764772 --0.560741096735 --1.33157411218 --0.543481439352 --1.33158901334 --0.524271398783 --1.33157590032 --0.505062967539 --1.33154925704 --0.487803451717 --1.3315256834 --0.470544263721 --1.33150523901 --0.453285686671 --1.33148792386 --0.436027295887 --1.33147367835 --0.418769396841 --1.33146265149 --0.40151154995 --1.33145472407 --0.384254083037 --1.33144989609 --0.36699655652 --1.33144822716 --0.349739290773 --1.33144965768 --0.332481838762 --1.33145427704 --0.31522449106 --1.33146202564 --0.297966852784 --1.33147290349 --0.28070922941 --1.33148688078 --0.263451159 --1.33150404692 --0.246192961931 --1.3315242827 --0.228934232146 --1.33154767752 --0.211675245315 --1.33157414198 --0.194415595382 --1.33158904314 --0.175205551088 --1.31439909339 --0.155993212015 --1.31437250972 --0.138733718545 --1.31434908509 --0.121474539861 --1.31432878971 --0.104215977714 --1.31431153417 --0.0869576018304 --1.31429737806 --0.069699715823 --1.3142863512 --0.0524418931455 --1.31427845359 --0.0351844420657 --1.31427368522 --0.0179269339424 --1.31427201629 --0.000669670756908 --1.3142734468 -0.0165877726395 --1.31427806616 -0.03384509217 --1.31428575516 -0.0511027136818 --1.3142965436 -0.0683603370562 --1.31431049109 -0.085618391633 --1.31432756782 -0.102876564488 --1.31434765458 -0.120135283098 --1.31437090039 -0.137394249439 --1.31439724564 -0.154653880745 --1.3144120872 -0.173864074051 --1.31439909339 -0.193072639406 --1.31437253952 -0.210332129151 --1.31434911489 -0.227591305972 --1.31432881951 -0.244849864394 --1.31431153417 -0.262108244002 --1.31429737806 -0.279366128147 --1.31428638101 -0.296623952687 --1.31427848339 -0.313881404698 --1.31427368522 -0.331138916314 --1.31427201629 -0.348396189511 --1.3142734468 -0.365653634071 --1.31427803635 -0.382910944521 --1.31428575516 -0.400168560445 --1.3142965734 -0.41742618382 --1.31431046128 -0.434684231877 --1.31432753802 -0.451942414045 --1.31434768438 -0.469201140106 --1.31437093019 -0.486460104585 --1.31439724564 -0.503719739616 --1.314412117 -0.522929921746 --1.31439912319 -0.5421384871 --1.31437253952 -0.559397980571 --1.31434908509 -0.576657146216 --1.31432878971 -0.593915700913 --1.31431156397 -0.611174091697 --1.31429737806 -0.628431975842 --1.3142863512 -0.645689785481 --1.31427848339 -0.662947252393 --1.31427368522 -0.68020477891 --1.31427201629 -0.697462037206 --1.3142734468 -0.714719489217 --1.31427803635 -0.731976792216 --1.31428575516 -0.74923440814 --1.3142965734 -0.766492053866 --1.31431046128 -0.783750116825 --1.31432753802 -0.801008284092 --1.31434768438 -0.818266972899 --1.31437096 -0.835525929928 --1.31439727544 -0.852785587311 --1.314412117 -0.871995776892 --1.31439912319 -0.891204327345 --1.31437253952 -0.908463835716 --1.31434908509 -0.925723016262 --1.31432875991 -0.94298158586 --1.31431150436 -0.960239976645 --1.31429737806 -0.977497845888 --1.31428638101 -0.994755655526 --1.31427848339 -1.01201310754 --1.31427368522 -1.02927064896 --1.31427201629 -1.04652792215 --1.3142734468 -1.06378531456 --1.31427803635 -1.08104261756 --1.31428575516 -1.09830027819 --1.3142965734 -1.11555790902 --1.31431046128 -1.13281595707 --1.31432753802 -1.15007412434 --1.31434771419 -1.16733282805 --1.31437096 -1.18459182978 --1.31439724564 -1.20185145736 --1.3144120872 -1.22106161714 --1.31439909339 -1.24027019739 --1.31437253952 -1.25752970576 --1.31434908509 -1.27478888631 --1.31432875991 -1.2920474112 --1.31431153417 -1.30930575728 --1.31429740787 -1.32656365633 --1.31428638101 -1.34382149577 --1.31427848339 -1.36107894778 --1.31427368522 -1.3783364594 --1.31427201629 -1.3955937326 --1.3142734766 -1.41285118461 --1.31427806616 -1.43010848761 --1.31428572535 -1.44736611843 --1.3142965436 -1.46462374925 --1.31431046128 -1.48188176751 --1.31432753802 -1.49913993478 --1.31434765458 -1.51639866829 --1.31437093019 -1.53365764022 --1.31439727544 -1.5509172976 --1.3144120872 -1.57012748718 --1.31439909339 -1.58933603763 --1.31437253952 -1.60659551621 --1.31434911489 -1.62385469675 --1.31432875991 -1.64111328125 --1.31431147456 -1.65837165713 --1.31429737806 -1.67562952637 --1.31428638101 -1.69288733602 --1.31427845359 -1.71014481783 --1.31427365542 -1.72740235925 --1.31427201629 -1.74465960264 --1.3142734468 -1.76191705465 --1.31427803635 -1.77917438745 --1.31428575516 -1.79643198848 --1.3142965734 -1.8136895895 --1.31431046128 -1.83094763756 --1.31432753802 -1.84820583463 --1.31434768438 -1.86546453834 --1.31437093019 -1.88272351027 --1.31439724564 -1.89998313785 --1.314412117 -1.91919329762 --1.31439909339 -1.93840187788 --1.31437250972 -1.95566138625 --1.31434911489 -1.9729205668 --1.31432878971 -1.99017912149 --1.31431150436 -2.00743752718 --1.31429737806 -2.02469539642 --1.31428638101 -2.04195320606 --1.3142785132 -2.05921065807 --1.31427371502 -2.07646816969 --1.31427201629 -2.09372544289 --1.3142734468 -2.11098283529 --1.31427803635 -2.12824016809 --1.31428575516 -2.14549779892 --1.3142965734 -2.16275537014 --1.31431049109 -2.1800134182 --1.31432756782 -2.19727158547 --1.31434768438 -2.21453034878 --1.31437096 -2.23178935051 --1.31439727544 -2.24904894829 --1.314412117 -2.26825916767 --1.31439912319 -2.28746777773 --1.31437253952 -2.3047272563 --1.31434908509 -2.32198637724 --1.31432878971 -2.33924496174 --1.31431153417 -2.35650336742 --1.31429737806 -2.37376123667 --1.31428638101 -2.39101904631 --1.31427848339 -2.40827643871 --1.31427368522 -2.42553395033 --1.31427201629 -2.44279128313 --1.3142734468 -2.46004873514 --1.31427806616 -2.47730606794 --1.31428578496 -2.49456375837 --1.3142965734 -2.51182132959 --1.31431049109 -2.52907937765 --1.31432756782 -2.54633760453 --1.31434768438 -2.56359624863 --1.31437096 -2.58085513115 --1.31439730525 -2.59811478853 --1.3144120872 -2.61732500792 --1.31439906359 -2.63653355837 --1.31437253952 -2.65379309654 --1.31434908509 -2.67105233669 --1.31432875991 -2.68831086159 --1.31431150436 -2.70556914806 --1.31429737806 -2.72282707691 --1.31428638101 -2.74008494616 --1.31427848339 -2.75734239817 --1.31427368522 -2.77459990978 --1.31427201629 -2.79185712338 --1.3142734468 -2.80911457539 --1.31427803635 -2.82637190819 --1.31428575516 -2.84362953901 --1.3142965734 -2.86088716984 --1.31431049109 -2.8781452179 --1.31432756782 -2.89540338516 --1.31434768438 -2.91266208887 --1.31437096 -2.9299210906 --1.31439727544 -2.94718074798 --1.314412117 -2.96639090776 --1.31439909339 -2.98559945822 --1.31437250972 -3.00285893679 --1.31434908509 -3.02011811733 --1.31432878971 -3.03737670183 --1.31431153417 -3.05463510752 --1.31429737806 -3.07189297676 --1.3142863512 -3.0891507864 --1.31427845359 -3.10640823841 --1.31427368522 -3.12366569042 --1.31427201629 -3.1409229358 --1.3142734468 --3.12500488758 --1.31427806616 --3.10774755478 --1.31428575516 --3.09048992395 --1.3142965436 --3.07323229313 --1.31431049109 --3.05597424507 --1.31432756782 --3.03871607781 --1.31434765458 --3.0214573741 --1.31437090039 --3.00419837236 --1.31439724564 --2.98693871498 --1.3144120872 --2.96772855521 --1.31439909339 --2.94852000475 --1.31437253952 --2.93126052618 --1.31434911489 --2.91400134564 --1.31432881951 --2.89674282074 --1.31431153417 --2.87948441505 --1.31429737806 --2.86222648621 --1.31428638101 --2.84496867657 --1.31427848339 --2.82771122456 --1.31427368522 --2.81045371294 --1.31427201629 --2.79319649935 --1.3142734468 --2.77593904734 --1.31427803635 --2.75868165493 --1.31428575516 --2.74142408371 --1.3142965734 --2.72416651249 --1.31431046128 --2.70690846443 --1.31432753802 --2.68965029717 --1.31434768438 --2.67239153385 --1.31437093019 --2.65513253212 --1.31439724564 --2.63787293434 --1.314412117 --2.61866271496 --1.31439912319 --2.5994541049 --1.31437253952 --2.58219462633 --1.31434908509 --2.56493550539 --1.31432878971 --2.5476769805 --1.31431156397 --2.53041857481 --1.31429737806 --2.51316070557 --1.3142863512 --2.49590289593 --1.31427848339 --2.47864544392 --1.31427368522 --2.4613879323 --1.31427201629 --2.4441305995 --1.3142734468 --2.42687314749 --1.31427803635 --2.40961587429 --1.31428575516 --2.39235824347 --1.3142965734 --2.37510061264 --1.31431046128 --2.35784250498 --1.31432753802 --2.3405842781 --1.31434768438 --2.323325634 --1.31437096 --2.30606675148 --1.31439727544 --2.2888070941 --1.314412117 --2.26959687471 --1.31439912319 --2.25038832426 --1.31437253952 --2.23312884569 --1.31434908509 --2.21586966515 --1.31432875991 --2.19861108065 --1.31431150436 --2.18135273457 --1.31429737806 --2.16409480572 --1.31428638101 --2.14683693647 --1.31427848339 --2.12957948446 --1.31427368522 --2.11232197285 --1.31427201629 --2.09506475926 --1.3142734468 --2.07780730725 --1.31427803635 --2.06054997444 --1.31428575516 --2.04329234362 --1.3142965734 --2.02603471279 --1.31431046128 --2.00877666473 --1.31432753802 --1.99151852727 --1.31434771419 --1.97425982356 --1.31437096 --1.95700085163 --1.31439724564 --1.93974122405 --1.3144120872 --1.92053100467 --1.31439909339 --1.90132245421 --1.31437253952 --1.88406300545 --1.31434908509 --1.8668037951 --1.31432875991 --1.8495452106 --1.31431153417 --1.83228686452 --1.31429740787 --1.81502896547 --1.31428638101 --1.79777112603 --1.31427848339 --1.78051367402 --1.31427368522 --1.76325616241 --1.31427201629 --1.74599891901 --1.3142734766 --1.728741467 --1.31427806616 --1.7114841342 --1.31428572535 --1.69422653317 --1.3142965436 --1.67696890235 --1.31431046128 --1.65971085429 --1.31432753802 --1.64245268702 --1.31434765458 --1.62519395351 --1.31437093019 --1.60793498159 --1.31439727544 --1.59067535401 --1.3144120872 --1.57146516442 --1.31439909339 --1.55225658417 --1.31437253952 --1.5349971056 --1.31434911489 --1.51773795485 --1.31432875991 --1.50047940016 --1.31431147456 --1.48322099447 --1.31429737806 --1.46596309542 --1.31428638101 --1.44870528579 --1.31427845359 --1.43144786358 --1.31427365542 --1.41419038177 --1.31427201629 --1.39693310857 --1.3142734468 --1.37967565656 --1.31427803635 --1.36241832375 --1.31428575516 --1.34516069293 --1.3142965734 --1.32790309191 --1.31431046128 --1.31064501405 --1.31432753802 --1.29338681698 --1.31434768438 --1.27612811327 --1.31437093019 --1.25886917114 --1.31439724564 --1.24160954356 --1.314412117 --1.22239932418 --1.31439909339 --1.20319077373 --1.31437250972 --1.18593132496 --1.31434911489 --1.16867211461 --1.31432878971 --1.15141353011 --1.31431150436 --1.13415518403 --1.31429737806 --1.11689728499 --1.31428638101 --1.09963944554 --1.3142785132 --1.08238199353 --1.31427371502 --1.06512448191 --1.31427201629 --1.04786723852 --1.3142734468 --1.03060978651 --1.31427803635 --1.01335245371 --1.31428575516 --0.996094837786 --1.3142965734 --0.978837221861 --1.31431049109 --0.961579173803 --1.31432756782 --0.944320991635 --1.31434768438 --0.927062258124 --1.31437096 --0.909803286195 --1.31439727544 --0.892543673515 --1.314412117 --0.873333498835 --1.31439912319 --0.85412491858 --1.31437253952 --0.83686542511 --1.31434908509 --0.819606259465 --1.31432878971 --0.802347674966 --1.31431153417 --0.785089284182 --1.31429737806 --0.767831400037 --1.31428638101 --0.750573575497 --1.31427848339 --0.733316138387 --1.31427368522 --0.716058641672 --1.31427201629 --0.698801383376 --1.3142734468 --0.681543931365 --1.31427806616 --0.664286598563 --1.31428578496 --0.647028967738 --1.3142965734 --0.629771351814 --1.31431049109 --0.612513318658 --1.31432756782 --0.59525513649 --1.31434768438 --0.57799641788 --1.31437096 --0.560737460851 --1.31439730525 --0.54347781837 --1.3144120872 --0.524267613888 --1.31439906359 --0.505059041083 --1.31437253952 --0.487799569965 --1.31434908509 --0.470540396869 --1.31432875991 --0.45328181982 --1.31431150436 --0.436023443937 --1.31429737806 --0.418765567243 --1.31428638101 --0.401507735252 --1.31427848339 --0.384250275791 --1.31427368522 --0.366992771626 --1.31427201629 --0.34973552078 --1.3142734468 --0.33247808367 --1.31427803635 --0.315220758319 --1.31428575516 --0.297963134944 --1.3142965734 --0.280705519021 --1.31431049109 --0.263447463513 --1.31432756782 --0.24618928507 --1.31434768438 --0.228930570185 --1.31437096 --0.211671598256 --1.31439727544 --0.194411963224 --1.314412117 --0.175201781094 --1.29726266861 --0.155989196151 --1.29723623395 --0.138729713857 --1.29721295834 --0.121470550075 --1.29719269276 --0.104212004691 --1.29717549681 --0.0869536418468 --1.29716145992 --0.0696957735345 --1.29715049267 --0.0524379676208 --1.29714262486 --0.0351805319078 --1.29713785649 --0.0179230393842 --1.29713621736 --0.000665792031215 --1.29713764787 -0.0165916352998 --1.29714217782 -0.0338489385322 --1.29714980721 -0.0511065442115 --1.29716059565 -0.0683641545474 --1.29717451334 -0.0856221932917 --1.29719150066 -0.10288034752 --1.29721146822 -0.120139047503 --1.29723462462 -0.137398000806 --1.29726085067 -0.154657620937 --1.29727560282 -0.173867955804 --1.29726263881 -0.19307666272 --1.29723623395 -0.210336133838 --1.29721295834 -0.227595295757 --1.29719269276 -0.244853839278 --1.29717549681 -0.262112207711 --1.29716145992 -0.279370084405 --1.29715046286 -0.296627894044 --1.29714259505 -0.313885331154 --1.29713782668 -0.331142820418 --1.29713615775 -0.348400078714 --1.29713761806 -0.365657508373 --1.29714220762 -0.382914796472 --1.29714989662 -0.400172397494 --1.29716065526 -0.417430005968 --1.29717448354 -0.434688039124 --1.29719147086 -0.45194619894 --1.29721149802 -0.469204895199 --1.29723465443 -0.486463852227 --1.29726082087 -0.503723479807 --1.29727560282 -0.522933796048 --1.29726266861 -0.542142510414 --1.29723623395 -0.559401988983 --1.29721295834 -0.576661139727 --1.29719269276 -0.593919694424 --1.29717549681 -0.611178070307 --1.29716143012 -0.62843593955 --1.29715043306 -0.645693734288 --1.29714259505 -0.662951171398 --1.29713785649 -0.680208668113 --1.29713621736 -0.697465911508 --1.29713764787 -0.714723348617 --1.29714220762 -0.731980636716 --1.29714989662 -0.74923825264 --1.29716065526 -0.766495868564 --1.29717451334 -0.78375390172 --1.29719150066 -0.801012054086 --1.29721149802 -0.818270742893 --1.29723465443 -0.835529685021 --1.29726085067 -0.852789327502 --1.29727563262 -0.871999680996 --1.29726266861 -0.89120836556 --1.29723620415 -0.908467844129 --1.29721289873 -0.925727009773 --1.29719266295 -0.942985549569 --1.29717549681 -0.960243925452 --1.29716145992 -0.977501794696 --1.29715049267 -0.994759589434 --1.29714262486 -1.01201704145 --1.29713785649 -1.02927455306 --1.29713618756 -1.04653176665 --1.29713761806 -1.06378915906 --1.29714220762 -1.08104649186 --1.29714986682 -1.09830412269 --1.29716062546 -1.11556169391 --1.29717448354 -1.13281971216 --1.29719147086 -1.15007787943 --1.29721149802 -1.16733658314 --1.29723465443 -1.18459555507 --1.29726085067 -1.20185518265 --1.29727560282 -1.22106552124 --1.29726263881 -1.2402742207 --1.29723623395 -1.25753369927 --1.29721295834 -1.27479287982 --1.29719269276 -1.29205140472 --1.29717549681 -1.3093097508 --1.29716145992 -1.32656762004 --1.29715049267 -1.34382542967 --1.29714262486 -1.36108288169 --1.29713785649 -1.3783403635 --1.29713618756 -1.3955976069 --1.29713761806 -1.41285505891 --1.29714217782 -1.4301123321 --1.29714983702 -1.44736993313 --1.29716062546 -1.46462756395 --1.29717448354 -1.4818855822 --1.29719147086 -1.49914374947 --1.29721146822 -1.51640245318 --1.29723462462 -1.53366139531 --1.29726085067 -1.55092102289 --1.29727560282 -1.57013133168 --1.29726266861 -1.58934006095 --1.29723626375 -1.60659953952 --1.29721292854 -1.62385869026 --1.29719263315 -1.64111727476 --1.29717546701 -1.65837562084 --1.29716145992 -1.67563346028 --1.29715049267 -1.69289126992 --1.29714259505 -1.71014872193 --1.29713782668 -1.72740623355 --1.29713618756 -1.74466347695 --1.29713764787 -1.76192089915 --1.29714223742 -1.77917820215 --1.29714986682 -1.79643580318 --1.29716062546 -1.8136934042 --1.29717448354 -1.83095145225 --1.29719147086 -1.84820961952 --1.29721149802 -1.86546832323 --1.29723465443 -1.88272726536 --1.29726085067 -1.89998686313 --1.29727563262 -1.91919720173 --1.29726266861 -1.93840590119 --1.29723623395 -1.95566537976 --1.29721295834 -1.97292456031 --1.29719269276 -1.990183115 --1.29717549681 -2.00744152069 --1.29716145992 -2.02469933033 --1.29715046286 -2.04195708036 --1.29714262485 -2.05921453237 --1.29713785649 -2.07647204399 --1.29713615775 -2.09372925758 --1.29713761806 -2.11098664999 --1.29714220762 -2.12824398279 --1.29714989662 -2.14550161362 --1.29716065526 -2.16275918484 --1.29717451334 -2.18001717329 --1.29719150066 -2.19727540016 --1.29721149802 -2.21453416348 --1.29723465443 -2.2317931056 --1.29726085067 -2.24905270338 --1.29727563262 -2.26826304198 --1.29726266861 -2.28747177124 --1.29723623395 -2.30473124981 --1.29721295834 -2.32199037075 --1.29719269276 -2.33924895525 --1.29717549681 -2.35650736093 --1.29716145992 -2.37376523018 --1.29715046286 -2.39102303982 --1.29714259505 -2.40828043222 --1.29713785649 -2.42553788423 --1.29713618756 -2.44279515743 --1.29713761806 -2.46005260945 --1.29714220762 -2.47730994225 --1.29714989662 -2.49456757307 --1.29716065526 -2.51182514429 --1.29717451334 -2.52908319235 --1.29719150066 -2.54634135961 --1.29721149802 -2.56360000372 --1.29723465443 -2.58085888624 --1.29726085067 -2.59811854363 --1.29727560282 -2.61732888222 --1.29726263881 -2.63653755188 --1.29723623395 -2.65379703045 --1.29721295834 -2.67105621099 --1.29719269276 -2.68831479549 --1.29717549681 -2.70557314157 --1.29716145992 -2.72283101082 --1.29715046286 -2.74008882046 --1.29714259505 -2.75734627247 --1.29713785649 -2.77460378408 --1.29713618756 -2.79186099768 --1.29713761806 -2.80911844969 --1.29714220762 -2.82637578249 --1.29714989662 -2.84363335371 --1.29716065526 -2.86089092493 --1.29717448354 -2.87814897299 --1.29719147086 -2.89540714026 --1.29721149802 -2.91266584397 --1.29723462462 -2.9299248457 --1.29726082087 -2.94718450308 --1.29727563262 -2.96639478207 --1.29726266861 -2.98560345173 --1.29723623395 -3.0028629303 --1.29721295834 -3.02012211084 --1.29719269276 -3.03738069534 --1.29717549681 -3.05463904142 --1.29716145992 -3.07189685106 --1.29715049267 -3.0891546607 --1.29714262486 -3.10641211271 --1.29713785649 -3.12366962433 --1.29713621736 -3.14092686971 --1.29713764787 --3.12500101328 --1.29714217782 --3.10774368048 --1.29714980721 --3.09048610926 --1.29716059565 --3.07322853803 --1.29717451334 --3.05597048998 --1.29719150066 --3.03871232271 --1.29721146822 --3.021453619 --1.29723462462 --3.00419461727 --1.29726085067 --2.98693495989 --1.29727560282 --2.9677246809 --1.29726263881 --2.94851601124 --1.29723623395 --2.93125653267 --1.29721295834 --2.91399735213 --1.29719269276 --2.89673882723 --1.29717549681 --2.87948048115 --1.29716145992 --2.8622226119 --1.29715046286 --2.84496480227 --1.29714259505 --2.82770735026 --1.29713782668 --2.81044983864 --1.29713615775 --2.79319256544 --1.29713761806 --2.77593517304 --1.29714220762 --2.75867789984 --1.29714989662 --2.74142026901 --1.29716065526 --2.72416263819 --1.29717448354 --2.70690464974 --1.29719147086 --2.68964654207 --1.29721149802 --2.67238777876 --1.29723465443 --2.65512877703 --1.29726082087 --2.63786917925 --1.29727560282 --2.61865884066 --1.29726266861 --2.59945011139 --1.29723623395 --2.58219063282 --1.29721295834 --2.56493151188 --1.29719269276 --2.54767298699 --1.29717549681 --2.5304145813 --1.29716143012 --2.51315671206 --1.29715043306 --2.49589890242 --1.29714259505 --2.47864145041 --1.29713785649 --2.4613839984 --1.29713621736 --2.44412672519 --1.29713764787 --2.42686927318 --1.29714220762 --2.4096120596 --1.29714989662 --2.39235442877 --1.29716065526 --2.37509673834 --1.29717451334 --2.35783869028 --1.29719150066 --2.34058052301 --1.29721149802 --2.32332187891 --1.29723465443 --2.30606299639 --1.29726085067 --2.288803339 --1.29727563262 --2.26959294081 --1.29726266861 --2.25038427115 --1.29723620415 --2.23312485218 --1.29721289873 --2.21586567164 --1.29719266295 --2.19860714674 --1.29717549681 --2.18134880066 --1.29716145992 --2.16409087181 --1.29715049267 --2.14683306217 --1.29714262486 --2.12957561016 --1.29713785649 --2.11231809855 --1.29713618756 --2.09506088495 --1.29713761806 --2.07780343294 --1.29714220762 --2.06054610014 --1.29714986682 --2.04328852892 --1.29716062546 --2.0260309577 --1.29717448354 --2.00877290964 --1.29719147086 --1.99151474238 --1.29721149802 --1.97425603867 --1.29723465443 --1.95699709654 --1.29726085067 --1.93973749876 --1.29727560282 --1.92052713037 --1.29726263881 --1.9013184011 --1.29723623395 --1.88405898214 --1.29721295834 --1.86679983139 --1.29719269276 --1.84954124689 --1.29717549681 --1.83228287101 --1.29716145992 --1.81502500177 --1.29715049267 --1.79776722193 --1.29714262486 --1.78050979972 --1.29713785649 --1.7632522881 --1.29713618756 --1.74599504471 --1.29713761806 --1.72873759269 --1.29714217782 --1.7114802897 --1.29714983702 --1.69422271848 --1.29716062546 --1.67696508765 --1.29717448354 --1.6597070396 --1.29719147086 --1.64244890213 --1.29721146822 --1.62519019842 --1.29723462462 --1.60793122649 --1.29726085067 --1.59067159891 --1.29727560282 --1.57146129012 --1.29726266861 --1.55225259065 --1.29723626375 --1.53499311209 --1.29721292854 --1.51773396135 --1.29719263315 --1.50047543645 --1.29717546701 --1.48321706057 --1.29716145992 --1.46595916152 --1.29715049267 --1.44870135188 --1.29714259505 --1.43144392967 --1.29713782668 --1.41418644786 --1.29713618756 --1.39692920446 --1.29713764787 --1.37967178225 --1.29714223742 --1.36241444945 --1.29714986682 --1.34515681863 --1.29716062546 --1.32789924741 --1.29717448354 --1.31064122915 --1.29719147086 --1.29338306189 --1.29721149802 --1.27612435818 --1.29723465443 --1.25886541605 --1.29726085067 --1.24160578847 --1.29727563262 --1.22239542008 --1.29726266861 --1.20318672061 --1.29723623395 --1.18592727184 --1.29721295834 --1.1686681211 --1.29719269276 --1.1514095664 --1.29717549681 --1.13415119052 --1.29716145992 --1.11689332128 --1.29715046286 --1.09963554144 --1.29714262485 --1.08237811923 --1.29713785649 --1.06512060761 --1.29713615775 --1.04786336422 --1.29713761806 --1.03060591221 --1.29714220762 --1.01334860921 --1.29714989662 --0.996091008186 --1.29716065526 --0.978833407164 --1.29717451334 --0.96157540381 --1.29719150066 --0.944317221642 --1.29721149802 --0.92705848813 --1.29723465443 --0.909799546003 --1.29726085067 --0.892539948225 --1.29727563262 --0.873329609633 --1.29726266861 --0.854120880365 --1.29723623395 --0.836861401796 --1.29721295834 --0.819602236151 --1.29719269276 --0.802343666553 --1.29717549681 --0.785085305572 --1.29716145992 --0.767827451229 --1.29715046286 --0.75056964159 --1.29714259505 --0.733312219381 --1.29713785649 --0.716054737568 --1.29713618756 --0.698797494173 --1.29713761806 --0.681540071964 --1.29714220762 --0.664282754064 --1.29714989662 --0.64702513814 --1.29716065526 --0.629767537117 --1.29717451334 --0.61250950396 --1.29719150066 --0.595251336694 --1.29721149802 --0.577992632985 --1.29723465443 --0.560733705759 --1.29726085067 --0.543474078178 --1.29727560282 --0.524263739586 --1.29726263881 --0.505055040121 --1.29723623395 --0.487795569003 --1.29721295834 --0.470536410809 --1.29719269276 --0.453277856112 --1.29717549681 --0.436019487679 --1.29716145992 --0.418761625886 --1.29715046286 --0.401503816247 --1.29714259505 --0.384246371686 --1.29713785649 --0.366988889873 --1.29713618756 --0.349731639028 --1.29713761806 --0.332474209368 --1.29714220762 --0.315216913819 --1.29714989662 --0.297959312797 --1.29716065526 --0.280701696873 --1.29717448354 --0.263443648815 --1.29719147086 --0.246185492724 --1.29721149802 --0.228926796466 --1.29723462462 --0.211667846888 --1.29726082087 --0.194408226759 --1.29727563262 --0.175197903067 --1.28016805649 --0.15598673746 --1.28014177084 --0.138727270067 --1.28011861444 --0.121468117461 --1.28009843827 --0.104209579527 --1.28008136153 --0.0869512241334 --1.28006738424 --0.069693364203 --1.28005650639 --0.0524355713278 --1.28004869819 --0.035178147722 --1.28004392982 --0.0179206633475 --1.28004232049 --0.000663425773382 --1.280043751 -0.016593991546 --1.28004825115 -0.033851286862 --1.28005588054 -0.0511088846251 --1.28006663918 -0.0683664865792 --1.28008046746 -0.0856245160103 --1.28009730577 -0.1028826572 --1.28011718392 -0.120141346008 --1.28014025092 -0.137400288135 --1.28016632795 -0.154659900814 --1.2801810205 -0.173870321364 --1.28016808629 -0.19307911396 --1.28014180064 -0.210338577628 --1.28011861444 -0.227597735822 --1.28009843827 -0.244856275618 --1.28008136153 -0.262114621699 --1.28006738424 -0.279372483492 --1.28005647659 -0.296630293131 --1.28004863858 -0.313887715339 --1.28004387021 -0.331145182252 --1.28004226089 -0.348402425647 --1.2800437212 -0.365659847856 --1.28004825115 -0.382917135954 --1.28005591035 -0.400174736977 --1.28006663918 -0.417432337999 --1.28008040786 -0.434690363705 --1.28009727597 -0.45194850862 --1.28011718392 -0.469207204878 --1.28014025092 -0.486466154456 --1.28016629815 -0.503725759685 --1.2801809907 -0.522936165333 --1.28016808629 -0.542144969106 --1.28014180064 -0.559404447675 --1.28011861444 -0.576663598418 --1.28009843827 -0.593922138214 --1.28008136153 -0.611180499196 --1.28006738424 -0.628438353538 --1.28005647659 -0.645696148276 --1.28004863858 -0.662953570485 --1.28004390001 -0.680211052299 --1.28004232049 -0.697468280792 --1.280043751 -0.7147256881 --1.28004825115 -0.731982991099 --1.28005591035 -0.749240592122 --1.28006663918 -0.766498178244 --1.28008043766 -0.783756196499 --1.28009730577 -0.801014363766 --1.28011718392 -0.818273067475 --1.28014028072 -0.8355319947 --1.28016635776 -0.852791622281 --1.2801810205 -0.872002065182 --1.28016808629 -0.891210839152 --1.28014177084 -0.908470287919 --1.28011855483 -0.925729438662 --1.28009840846 -0.942987948656 --1.28008136153 -0.960246309638 --1.28006738424 -0.977504193783 --1.28005650639 -0.994761988522 --1.28004869819 -1.01201942563 --1.28004392982 -1.02927690744 --1.28004229069 -1.04653412104 --1.2800437212 -1.06379151344 --1.28004825115 -1.08104881644 --1.28005588054 -1.09830644727 --1.28006660938 -1.11556404829 --1.28008040786 -1.13282203674 --1.28009727597 -1.15008017421 --1.28011718392 -1.16733887792 --1.28014028072 -1.18459782004 --1.28016635776 -1.20185744762 --1.2801810205 -1.22106787562 --1.28016808629 -1.2402766645 --1.28014180064 -1.25753614307 --1.28011861444 -1.27479532361 --1.28009843827 -1.2920538485 --1.28008136153 -1.30931219458 --1.28006738424 -1.32657006383 --1.28005650639 -1.34382784366 --1.28004866839 -1.36108526587 --1.28004390001 -1.37834274769 --1.28004229069 -1.39559996128 --1.2800437212 -1.41285738349 --1.28004822135 -1.43011468649 --1.28005585074 -1.44737225771 --1.28006660938 -1.46462985873 --1.28008040786 -1.48188790679 --1.28009730577 -1.49914607406 --1.28011721372 -1.51640477777 --1.28014028072 -1.53366371989 --1.28016635776 -1.55092331767 --1.2801810205 -1.57013371587 --1.28016811609 -1.58934253454 --1.28014183044 -1.60660198331 --1.28011858464 -1.62386110425 --1.28009840846 -1.64111968875 --1.28008136153 -1.65837803483 --1.28006738424 -1.67563584447 --1.28005650639 -1.69289365411 --1.28004863858 -1.71015110612 --1.28004387021 -1.72740858793 --1.28004229069 -1.74466583133 --1.280043751 -1.76192325354 --1.28004828095 -1.77918052673 --1.28005588054 -1.79643812776 --1.28006660938 -1.81369575858 --1.28008040786 -1.83095380664 --1.28009727597 -1.8482119143 --1.28011718392 -1.86547058821 --1.28014025092 -1.88272953034 --1.28016632795 -1.89998912811 --1.2801810205 -1.91919955611 --1.28016808629 -1.93840834499 --1.28014180064 -1.95566782355 --1.28011861444 -1.9729270041 --1.28009843827 -1.99018552899 --1.28008136153 -2.00744387507 --1.28006738424 -2.02470171452 --1.28005647659 -2.04195946455 --1.28004863858 -2.05921691656 --1.28004387021 -2.07647442817 --1.28004226089 -2.09373164177 --1.2800437212 -2.11098903418 --1.28004825115 -2.12824630737 --1.28005591035 -2.1455039382 --1.28006663918 -2.16276156902 --1.28008040786 -2.18001955748 --1.28009727597 -2.19727772474 --1.28011718392 -2.21453642845 --1.28014025092 -2.23179537058 --1.28016632795 -2.24905502796 --1.2801810205 -2.26826542616 --1.28016808629 -2.28747421503 --1.28014180064 -2.3047336936 --1.28011861444 -2.32199281454 --1.28009843827 -2.33925139904 --1.28008136153 -2.35650974512 --1.28006738424 -2.37376755476 --1.28005647659 -2.3910253644 --1.28004866839 -2.40828281641 --1.28004392982 -2.42554032802 --1.28004229069 -2.44279754162 --1.2800437212 -2.46005493403 --1.28004825115 -2.47731226683 --1.28005591035 -2.49456989765 --1.28006663918 -2.51182746887 --1.28008040786 -2.52908545732 --1.28009727597 -2.54634362459 --1.28011718392 -2.5636023283 --1.28014025092 -2.58086121082 --1.28016629815 -2.59812086821 --1.2801809907 -2.6173312664 --1.28016808629 -2.63653999567 --1.28014180064 -2.65379947424 --1.28011864424 -2.67105859518 --1.28009846807 -2.68831717968 --1.28008136153 -2.70557558537 --1.28006738424 -2.72283345461 --1.28005647659 -2.74009126425 --1.28004866839 -2.75734865665 --1.28004392982 -2.77460610867 --1.28004229069 -2.79186338186 --1.2800437212 -2.80912083387 --1.28004825115 -2.82637810707 --1.28005591035 -2.84363567829 --1.28006663918 -2.86089324951 --1.28008040786 -2.87815129757 --1.28009727597 -2.89540946484 --1.28011718392 -2.91266816854 --1.28014022112 -2.92992717028 --1.28016629815 -2.94718676806 --1.2801810205 -2.96639716625 --1.28016805649 -2.98560595512 --1.28014177084 -3.00286537409 --1.28011861444 -3.02012455463 --1.28009843827 -3.03738307953 --1.28008136153 -3.054641366 --1.28006738424 -3.07189923525 --1.28005650639 -3.08915704489 --1.28004869819 -3.1064144969 --1.28004392982 -3.12367200852 --1.28004232049 -3.14092919429 --1.280043751 --3.1249986887 --1.28004825115 --3.1077413559 --1.28005588054 --3.09048378468 --1.28006663918 --3.07322621346 --1.28008046746 --3.0559681654 --1.28009730577 --3.03870999813 --1.28011718392 --3.02145129442 --1.28014025092 --3.0041923523 --1.28016632795 --2.98693275452 --1.2801810205 --2.96772229672 --1.28016808629 --2.94851356745 --1.28014180064 --2.93125414849 --1.28011861444 --2.91399490834 --1.28009843827 --2.89673638344 --1.28008136153 --2.87947809696 --1.28006738424 --2.86222022772 --1.28005647659 --2.84496241808 --1.28004863858 --2.82770496607 --1.28004387021 --2.81044745445 --1.28004226089 --2.79319018125 --1.2800437212 --2.77593278885 --1.28004825115 --2.75867557526 --1.28005591035 --2.74141794443 --1.28006663918 --2.724160254 --1.28008040786 --2.70690226555 --1.28009727597 --2.68964421749 --1.28011718392 --2.67238551378 --1.28014025092 --2.65512651205 --1.28016629815 --2.63786691427 --1.2801809907 --2.61865651608 --1.28016808629 --2.5994476676 --1.28014180064 --2.58218818903 --1.28011861444 --2.56492906809 --1.28009843827 --2.5476705432 --1.28008136153 --2.53041213751 --1.28006738424 --2.51315426826 --1.28005647659 --2.49589645863 --1.28004863858 --2.47863900661 --1.28004390001 --2.4613815546 --1.28004232049 --2.44412434101 --1.280043751 --2.4268669486 --1.28004825115 --2.40960967541 --1.28005591035 --2.39235210419 --1.28006663918 --2.37509447336 --1.28008043766 --2.3578364253 --1.28009730577 --2.34057825804 --1.28011718392 --2.32331955433 --1.28014028072 --2.30606067181 --1.28016635776 --2.28880101442 --1.2801810205 --2.26959055662 --1.28016808629 --2.25038182736 --1.28014177084 --2.23312240839 --1.28011855483 --2.21586328745 --1.28009840846 --2.19860476256 --1.28008136153 --2.18134635687 --1.28006738424 --2.16408848763 --1.28005650639 --2.14683067799 --1.28004869819 --2.12957322598 --1.28004392982 --2.11231577397 --1.28004229069 --2.09505856037 --1.2800437212 --2.07780116796 --1.28004825115 --2.06054383516 --1.28005588054 --2.04328620434 --1.28006660938 --2.02602863312 --1.28008040786 --2.00877058506 --1.28009727597 --1.9915124178 --1.28011718392 --1.97425374389 --1.28014028072 --1.95699480176 --1.28016635776 --1.93973520398 --1.2801810205 --1.92052477598 --1.28016808629 --1.90131595731 --1.28014180064 --1.88405650854 --1.28011861444 --1.8667973876 --1.28009843827 --1.8495388329 --1.28008136153 --1.83228045702 --1.28006738424 --1.81502258778 --1.28005650639 --1.79776480794 --1.28004866839 --1.78050741553 --1.28004390001 --1.76324993372 --1.28004229069 --1.74599269033 --1.2800437212 --1.72873523831 --1.28004822135 --1.71147793531 --1.28005585074 --1.69422036409 --1.28006660938 --1.67696276307 --1.28008040786 --1.65970471501 --1.28009730577 --1.64244657755 --1.28011721372 --1.62518790364 --1.28014028072 --1.60792896151 --1.28016635776 --1.59066933393 --1.2801810205 --1.57145890594 --1.28016811609 --1.55225014687 --1.28014183044 --1.5349906981 --1.28011858464 --1.51773151755 --1.28009840846 --1.50047299266 --1.28008136153 --1.48321464658 --1.28006738424 --1.46595677733 --1.28005650639 --1.44869896769 --1.28004863858 --1.43144151568 --1.28004387021 --1.41418403387 --1.28004229069 --1.39692682028 --1.280043751 --1.37966942787 --1.28004828095 --1.36241212487 --1.28005588054 --1.34515449404 --1.28006660938 --1.32789692282 --1.28008040786 --1.31063893437 --1.28009727597 --1.29338076711 --1.28011718392 --1.2761220634 --1.28014025092 --1.25886312127 --1.28016632795 --1.24160349369 --1.2801810205 --1.22239306569 --1.28016808629 --1.20318427682 --1.28014180064 --1.18592479825 --1.28011861444 --1.16866567731 --1.28009843827 --1.15140715242 --1.28008136153 --1.13414874673 --1.28006738424 --1.11689087749 --1.28005647659 --1.09963312745 --1.28004863858 --1.08237573504 --1.28004387021 --1.06511822343 --1.28004226089 --1.04786098003 --1.2800437212 --1.03060355783 --1.28004825115 --1.01334628463 --1.28005591035 --0.996088698505 --1.28006663918 --0.978831067681 --1.28008040786 --0.961573049426 --1.28009727597 --0.94431489706 --1.28011718392 --0.927056193352 --1.28014025092 --0.909797266126 --1.28016632795 --0.892537653446 --1.2801810205 --0.873327225447 --1.28016808629 --0.854118436575 --1.28014180064 --0.836858958006 --1.28011861444 --0.819599792361 --1.28009843827 --0.802341252565 --1.28008136153 --0.785082921386 --1.28006738424 --0.767825067044 --1.28005647659 --0.750567257404 --1.28004866839 --0.733309835195 --1.28004392982 --0.716052338481 --1.28004229069 --0.698795095086 --1.2800437212 --0.68153770268 --1.28004825115 --0.664280414581 --1.28005591035 --0.647022813558 --1.28006663918 --0.629765227437 --1.28008040786 --0.612507194281 --1.28009727597 --0.595249041915 --1.28011718392 --0.577990353107 --1.28014025092 --0.560731425881 --1.28016629815 --0.543471813202 --1.2801809907 --0.524261385202 --1.28016808629 --0.50505258888 --1.28014180064 --0.487793125212 --1.28011864424 --0.470533974468 --1.28009846807 --0.453275434673 --1.28008136153 --0.436017073691 --1.28006738424 --0.418759219349 --1.28005647659 --0.40150142461 --1.28004866839 --0.384243994951 --1.28004392982 --0.366986520589 --1.28004229069 --0.349729269743 --1.2800437212 --0.332471847534 --1.28004825115 --0.315214551985 --1.28005591035 --0.297956958413 --1.28006663918 --0.28069935739 --1.28008040786 --0.263441324234 --1.28009727597 --0.24618318677 --1.28011718392 --0.228924497962 --1.28014022112 --0.21166555956 --1.28016629815 --0.194405950606 --1.2801810205 --0.175195533782 --1.26305007935 --0.155984245241 --1.26302394271 --0.138724792749 --1.26300087571 --0.121465647593 --1.26298081875 --0.104207120836 --1.26296386123 --0.0869487803429 --1.26294997335 --0.0696909287945 --1.2629391253 --0.0524331443012 --1.26293131709 --0.0351757300086 --1.26292660832 --0.0179182549473 --1.262924999 --0.000661027850583 --1.26292642951 -0.0165963806212 --1.26293095946 -0.0338536668569 --1.26293852925 -0.0511112539098 --1.26294919849 -0.0683688428253 --1.26296293735 -0.0856268629432 --1.26297971606 -0.102884998545 --1.26299953461 -0.12014367804 --1.2630224526 -0.137402612716 --1.26304835081 -0.154662217945 --1.26306292415 -0.17387272045 --1.26305010915 -0.193081598729 --1.26302400231 -0.210341058671 --1.26300087571 -0.22760020569 --1.26298081875 -0.244858723134 --1.26296386123 -0.262117065489 --1.26294997335 -0.279374927282 --1.2629391253 -0.29663271457 --1.26293128729 -0.313890121877 --1.26292654872 -0.33114758879 --1.2629249692 -0.348404824734 --1.26292642951 -0.365662232042 --1.26293092966 -0.382919512689 --1.26293852925 -0.400177106261 --1.26294919849 -0.417434692383 --1.26296287775 -0.434692710638 --1.26297965646 -0.451950848102 --1.26299950481 -0.46920953691 --1.2630224526 -0.486468471587 --1.26304835081 -0.503728061915 --1.26306292415 -0.52293856442 --1.26305010915 -0.5421474576 --1.26302400231 -0.559406936169 --1.26300087571 -0.576666072011 --1.26298081875 -0.593924582005 --1.26296386123 -0.611182928085 --1.26294997335 -0.628440782428 --1.2629391551 -0.645698577166 --1.26293131709 -0.662955984473 --1.26292657852 -0.680213466287 --1.262924999 -0.697470679879 --1.26292642951 -0.714728072285 --1.26293089986 -0.731985375285 --1.26293846965 -0.749242946505 --1.26294916868 -0.766500532627 --1.26296287775 -0.783758550882 --1.26297968626 -0.801016703248 --1.26299950481 -0.818275392055 --1.2630224526 -0.835534304381 --1.26304838061 -0.85279391706 --1.26306295395 -0.872004434466 --1.26305013895 -0.891213312745 --1.26302400231 -0.908472761512 --1.26300087571 -0.925731897354 --1.26298081875 -0.942990422249 --1.26296383143 -0.96024876833 --1.26294991374 -0.977506607771 --1.2629390955 -0.99476441741 --1.26293131709 -1.01202183962 --1.26292657852 -1.02927929163 --1.2629249692 -1.04653653502 --1.26292642951 -1.06379392743 --1.26293092966 -1.08105120063 --1.26293849945 -1.09830880165 --1.26294916868 -1.11556640267 --1.26296287775 -1.13282442093 --1.26297965646 -1.15008252859 --1.262999475 -1.1673412025 --1.26302242279 -1.18460014463 --1.26304835081 -1.2018597424 --1.26306295395 -1.22107025981 --1.26305010915 -1.24027913809 --1.26302397251 -1.25753858685 --1.26300087571 -1.2747977674 --1.26298081875 -1.2920562923 --1.26296386123 -1.30931463838 --1.26294997335 -1.32657250762 --1.2629391253 -1.34383025766 --1.26293128729 -1.36108765006 --1.26292657852 -1.37834513187 --1.262924999 -1.39560234547 --1.26292639971 -1.41285976768 --1.26293089986 -1.43011707068 --1.26293849945 -1.4473746419 --1.26294916868 -1.46463224292 --1.26296287775 -1.48189026117 --1.26297971606 -1.49914839864 --1.26299953461 -1.51640710235 --1.2630224526 -1.53366604447 --1.26304838061 -1.55092564225 --1.26306295395 -1.57013612986 --1.26305010915 -1.58934500814 --1.26302397251 -1.6066044569 --1.26300087571 -1.62386357784 --1.26298081875 -1.64112213254 --1.26296386123 -1.65838047862 --1.26294997335 -1.67563828826 --1.2629391551 -1.6928960979 --1.26293131709 -1.71015354991 --1.26292657852 -1.72741100192 --1.262924999 -1.74466821551 --1.26292642951 -1.76192563772 --1.26293089986 -1.77918291092 --1.26293849945 -1.79644048214 --1.26294919849 -1.81369808316 --1.26296287775 -1.83095613122 --1.26297965646 -1.84821426869 --1.26299950481 -1.86547294259 --1.2630224526 -1.88273185492 --1.26304835081 -1.89999142289 --1.26306295395 -1.9192019403 --1.26305013895 -1.93841084838 --1.26302400231 -1.95567032695 --1.26300087571 -1.97292947769 --1.26298081875 -1.99018797279 --1.26296386123 -2.00744625926 --1.26294997335 -2.02470415831 --1.2629391253 -2.04196196795 --1.26293128729 -2.05921936035 --1.26292654872 -2.07647681236 --1.2629249692 -2.09373402595 --1.26292642951 -2.11099147796 --1.26293089986 -2.12824875116 --1.26293846965 -2.14550632239 --1.26294916868 -2.16276395321 --1.26296287775 -2.18002200127 --1.26297965646 -2.19728010893 --1.26299950481 -2.21453875303 --1.2630224526 -2.23179769516 --1.26304832101 -2.24905735254 --1.26306292415 -2.26826786995 --1.26305013895 -2.28747671842 --1.26302397251 -2.30473619699 --1.26300084591 -2.32199531794 --1.26298081875 -2.33925378323 --1.26296386123 -2.35651212931 --1.26294997335 -2.37376999855 --1.2629391253 -2.39102774859 --1.26293131709 -2.40828514099 --1.26292660832 -2.42554271221 --1.262924999 -2.44279992581 --1.26292642951 -2.46005725861 --1.26293092966 -2.47731459141 --1.26293849945 -2.49457222223 --1.26294916868 -2.51182979345 --1.26296287775 -2.52908778191 --1.26297965646 -2.54634594917 --1.26299950481 -2.56360465288 --1.2630224526 -2.58086353541 --1.26304835081 -2.59812313318 --1.26306295395 -2.61733365059 --1.26305013895 -2.63654249906 --1.26302400231 -2.65380197764 --1.26300090552 -2.67106115818 --1.26298084855 -2.68831968308 --1.26296386123 -2.70557802916 --1.26294997335 -2.7228358984 --1.2629391253 -2.74009370804 --1.26293131709 -2.75735110044 --1.26292657852 -2.77460855246 --1.2629249692 -2.79186582565 --1.26292642951 -2.80912321806 --1.26293092966 -2.82638043165 --1.26293849945 -2.84363806248 --1.26294916868 -2.8608956337 --1.26296287775 -2.87815362215 --1.26297968626 -2.89541178942 --1.26299953461 -2.91267049312 --1.2630224526 -2.92992949486 --1.26304835081 -2.94718909264 --1.26306295395 -2.96639955044 --1.26305007935 -2.98560845852 --1.26302394271 -3.00286787748 --1.26300087571 -3.02012699842 --1.26298081875 -3.03738552332 --1.26296386123 -3.0546438098 --1.26294997335 -3.07190167904 --1.2629391253 -3.08915948868 --1.26293131709 -3.10641694069 --1.26292660832 -3.1236743927 --1.262924999 -3.14093157848 --1.26292642951 --3.12499624491 --1.26293095946 --3.10773897171 --1.26293852925 --3.09048140049 --1.26294919849 --3.07322376967 --1.26296293735 --3.05596578121 --1.26297971606 --3.03870767355 --1.26299953461 --3.02144896984 --1.2630224526 --3.00419002771 --1.26304835081 --2.98693042993 --1.26306292415 --2.96771991253 --1.26305010915 --2.94851106405 --1.26302400231 --2.93125164509 --1.26300087571 --2.91399246454 --1.26298081875 --2.89673393965 --1.26296386123 --2.87947565317 --1.26294997335 --2.86221778393 --1.2629391253 --2.84495997429 --1.26293128729 --2.82770252228 --1.26292654872 --2.81044507027 --1.2629249692 --2.79318785667 --1.26292642951 --2.77593040466 --1.26293092966 --2.75867313147 --1.26293852925 --2.74141556025 --1.26294919849 --2.72415792942 --1.26296287775 --2.70689988136 --1.26297965646 --2.6896417737 --1.26299950481 --2.67238312959 --1.2630224526 --2.65512418747 --1.26304835081 --2.63786458969 --1.26306292415 --2.61865407229 --1.26305010915 --2.59944516421 --1.26302400231 --2.58218574524 --1.26300087571 --2.5649266243 --1.26298081875 --2.5476680994 --1.26296386123 --2.53040969372 --1.26294997335 --2.51315182447 --1.2629391551 --2.49589407444 --1.26293131709 --2.47863668203 --1.26292657852 --2.46137917042 --1.262924999 --2.44412195683 --1.26292642951 --2.42686462402 --1.26293089986 --2.40960729122 --1.26293846965 --2.39234972 --1.26294916868 --2.37509214878 --1.26296287775 --2.35783410072 --1.26297968626 --2.34057593346 --1.26299950481 --2.32331722975 --1.2630224526 --2.30605834723 --1.26304838061 --2.28879874945 --1.26306295395 --2.26958823204 --1.26305013895 --2.25037938356 --1.26302400231 --2.233119905 --1.26300087571 --2.21586078405 --1.26298081875 --2.19860225916 --1.26296383143 --2.18134385347 --1.26294991374 --2.16408604383 --1.2629390955 --2.14682823419 --1.26293131709 --2.12957078218 --1.26292657852 --2.11231333017 --1.2629249692 --2.09505611658 --1.26292642951 --2.07779878378 --1.26293092966 --2.06054151058 --1.26293849945 --2.04328387976 --1.26294916868 --2.02602630854 --1.26296287775 --2.00876826048 --1.26297965646 --1.99151009321 --1.262999475 --1.97425141931 --1.26302242279 --1.95699247718 --1.26304835081 --1.9397328794 --1.26306295395 --1.920522362 --1.26305010915 --1.90131348372 --1.26302397251 --1.88405403495 --1.26300087571 --1.8667948842 --1.26298081875 --1.84953635931 --1.26296386123 --1.83227804303 --1.26294997335 --1.81502017379 --1.2629391253 --1.79776236415 --1.26293128729 --1.78050497174 --1.26292657852 --1.76324751973 --1.262924999 --1.74599030614 --1.26292639971 --1.72873288393 --1.26293089986 --1.71147558093 --1.26293849945 --1.69421797991 --1.26294916868 --1.67696040869 --1.26296287775 --1.65970239043 --1.26297971606 --1.64244422317 --1.26299953461 --1.62518554926 --1.2630224526 --1.60792663693 --1.26304838061 --1.59066703915 --1.26306295395 --1.57145652175 --1.26305010915 --1.55224764347 --1.26302397251 --1.5349881947 --1.26300087571 --1.51772904396 --1.26298081875 --1.50047051907 --1.26296386123 --1.48321217298 --1.26294997335 --1.46595433354 --1.2629391551 --1.44869652391 --1.26293131709 --1.4314391017 --1.26292657852 --1.41418164968 --1.262924999 --1.39692440629 --1.26292642951 --1.37966701389 --1.26293089986 --1.36240974068 --1.26293849945 --1.34515213966 --1.26294919849 --1.32789456844 --1.26296287775 --1.31063657999 --1.26297965646 --1.29337844252 --1.26299950481 --1.27611973882 --1.2630224526 --1.25886079669 --1.26304835081 --1.24160119891 --1.26306295395 --1.22239068151 --1.26305013895 --1.20318180323 --1.26302400231 --1.18592235446 --1.26300087571 --1.16866320371 --1.26298081875 --1.15140467882 --1.26296386123 --1.13414630294 --1.26294997335 --1.1168884337 --1.2629391253 --1.09963068366 --1.26293128729 --1.08237329125 --1.26292654872 --1.06511580944 --1.2629249692 --1.04785859585 --1.26292642951 --1.03060117364 --1.26293089986 --1.01334387064 --1.26293846965 --0.996086314321 --1.26294916868 --0.978828713298 --1.26296287775 --0.961570680141 --1.26297965646 --0.944312557578 --1.26299950481 --0.927053883672 --1.2630224526 --0.909794941544 --1.26304832101 --0.892535328865 --1.26306292415 --0.87332482636 --1.26305013895 --0.854115948081 --1.26302397251 --0.836856484413 --1.26300084591 --0.81959733367 --1.26298081875 --0.802338823676 --1.26296386123 --0.785080507398 --1.26294997335 --0.767822638154 --1.2629391253 --0.750564843416 --1.26293131709 --0.733307436108 --1.26292660832 --0.716049939394 --1.262924999 --0.6987927109 --1.26292642951 --0.681535318494 --1.26293092966 --0.664278030395 --1.26293849945 --0.647020444274 --1.26294916868 --0.629762873053 --1.26296287775 --0.612504854798 --1.26297965646 --0.595246717334 --1.26299950481 --0.577988028526 --1.2630224526 --0.560729086399 --1.26304835081 --0.543469503522 --1.26306295395 --0.524258986116 --1.26305013895 --0.505050085485 --1.26302400231 --0.487790651619 --1.26300090552 --0.470531515777 --1.26298084855 --0.453272975981 --1.26296386123 --0.43601462245 --1.26294997335 --0.418756775558 --1.2629391253 --0.401498995721 --1.26293131709 --0.384241580963 --1.26292657852 --0.3669841066 --1.2629249692 --0.349726870656 --1.26292642951 --0.332469463349 --1.26293092966 --0.31521217525 --1.26293849945 --0.297954581678 --1.26294916868 --0.280697003007 --1.26296287775 --0.263438992202 --1.26297968626 --0.246180854738 --1.26299953461 --0.228922169656 --1.2630224526 --0.211663238704 --1.26304835081 --0.194403637201 --1.26306295395 --0.175193127245 --1.24590530991 --0.15598173067 --1.24587932229 --0.138722285629 --1.2458563447 --0.121463146061 --1.24583637714 --0.104204630479 --1.24581947923 --0.0869462992996 --1.24580568076 --0.069688458927 --1.24579489231 --0.0524306846783 --1.24578711391 --0.0351732792333 --1.24578246474 --0.0179158153478 --1.24578088522 --0.000658598262818 --1.24578231573 -0.0165988004301 --1.24578681588 -0.0338560775854 --1.24579432607 -0.0511136548594 --1.24580490589 -0.0683712288737 --1.24581855536 -0.0856292378157 --1.24583527446 -0.10288736783 --1.2458550036 -0.120146043599 --1.24587777257 -0.137404970825 --1.24590349198 -0.154664561152 --1.2459179759 -0.173875153065 --1.24590525031 -0.193084120751 --1.24587929249 -0.210343569517 --1.2458563149 -0.22760270536 --1.24583637714 -0.244861211628 --1.24581950903 -0.262119546533 --1.24580571056 -0.279377400875 --1.24579489231 -0.296635173261 --1.24578711391 -0.313892565668 --1.24578243494 -0.33115003258 --1.24578082562 -0.348407253623 --1.24578228593 -0.365664646029 --1.24578681588 -0.382921919227 --1.24579435587 -0.400179497898 --1.2458049357 -0.417437076569 --1.24581852555 -0.434695087373 --1.24583521485 -0.451953217387 --1.24585497379 -0.469211891293 --1.24587777257 -0.486470811069 --1.24590349198 -0.503730393946 --1.2459179759 -0.522940993309 --1.24590528011 -0.542149975896 --1.24587932229 -0.559409439564 --1.2458563149 -0.576668575406 --1.24583640695 -0.5939270854 --1.24581953883 -0.611185401678 --1.24580571056 -0.628443226218 --1.24579492211 -0.645701020956 --1.24578714371 -0.662958443165 --1.24578246474 -0.680215910077 --1.24578085542 -0.697473108768 --1.24578228593 -0.714730501175 --1.24578678608 -0.731987774372 --1.24579429626 -0.749245345592 --1.24580490589 -0.766502946615 --1.24581852555 -0.783760949969 --1.24583524466 -0.801019072533 --1.24585497379 -0.818277746439 --1.24587774277 -0.835536658764 --1.24590349198 -0.852796241641 --1.24591800571 -0.872006833553 --1.24590528011 -0.891215831041 --1.24587932229 -0.908475279808 --1.2458563447 -0.925734385848 --1.24583640695 -0.942992925644 --1.24581950903 -0.960251271725 --1.24580565095 -0.977509081364 --1.24579486251 -0.9947668761 --1.24578711391 -1.01202428341 --1.24578243494 -1.02928173542 --1.24578085542 -1.04653897882 --1.24578231573 -1.06379637122 --1.24578681588 -1.08105364442 --1.24579432607 -1.09831121564 --1.24580487609 -1.11556878686 --1.24581849575 -1.13282680511 --1.24583521485 -1.15008491278 --1.24585494399 -1.16734358668 --1.24587771297 -1.18460249901 --1.24590346217 -1.20186209679 --1.24591800571 -1.2210727334 --1.24590525031 -1.24028167128 --1.24587926268 -1.25754109025 --1.2458563149 -1.2748002708 --1.24583640695 -1.29205879569 --1.24581953883 -1.30931711197 --1.24580571056 -1.32657495141 --1.24579489231 -1.34383270144 --1.24578711391 -1.36109009385 --1.24578246474 -1.37834757566 --1.24578085542 -1.39560478926 --1.24578225613 -1.41286218166 --1.24578678608 -1.43011945486 --1.24579432607 -1.44737702608 --1.24580487609 -1.46463462711 --1.24581849575 -1.48189264536 --1.24583524466 -1.49915078282 --1.24585494399 -1.51640945673 --1.24587774277 -1.53366836906 --1.24590352178 -1.55092796684 --1.24591800571 -1.57013854385 --1.24590525031 -1.58934751153 --1.24587926268 -1.6066069901 --1.2458563149 -1.62386611104 --1.24583637714 -1.64112460613 --1.24581950903 -1.65838295221 --1.24580571056 -1.67564079165 --1.24579492211 -1.69289857149 --1.24578714371 -1.7101559937 --1.24578246474 -1.72741344571 --1.24578085542 -1.7446706593 --1.24578228593 -1.76192805171 --1.24578678608 -1.77918532491 --1.24579432607 -1.79644289613 --1.2458049357 -1.81370046735 --1.24581852555 -1.8309584856 --1.24583521485 -1.84821662306 --1.24585497379 -1.86547532677 --1.24587777257 -1.8827342391 --1.24590349198 -1.89999377728 --1.24591800571 -1.91920438409 --1.24590528011 -1.93841338158 --1.24587932229 -1.95567283035 --1.2458563447 -1.97293198109 --1.24583637714 -1.99019047618 --1.24581950903 -2.00744879246 --1.24580571056 -2.0247066617 --1.24579489231 -2.04196441173 --1.24578711391 -2.05922180414 --1.24578243494 -2.07647925615 --1.24578085542 -2.09373646975 --1.24578231573 -2.11099392176 --1.24578678608 -2.12825119495 --1.24579429626 -2.14550876618 --1.24580490589 -2.1627663374 --1.24581852555 -2.18002432585 --1.24583521485 -2.19728249311 --1.24585497379 -2.21454119682 --1.24587780237 -2.23180007935 --1.24590352178 -2.24905961752 --1.24591800571 -2.26827025414 --1.24590528011 -2.28747922182 --1.24587929249 -2.30473864079 --1.2458563149 -2.32199776173 --1.24583640695 -2.33925622702 --1.24581953883 -2.3565146327 --1.24580571056 -2.37377256155 --1.24579489231 -2.39103031159 --1.24578711391 -2.40828764439 --1.24578246474 -2.425545156 --1.24578085542 -2.44280236959 --1.24578225613 -2.4600597024 --1.24578678608 -2.4773170352 --1.24579432607 -2.49457460642 --1.24580490589 -2.51183217764 --1.24581852555 -2.5290902257 --1.24583521485 -2.54634833336 --1.24585497379 -2.56360697746 --1.24587777257 -2.58086585999 --1.24590352178 -2.59812545776 --1.24591803551 -2.61733609438 --1.24590528011 -2.63654506207 --1.24587932229 -2.65380454063 --1.2458563447 -2.67106372118 --1.24583640695 -2.68832224607 --1.24581953883 -2.70558053255 --1.24580571056 -2.72283834219 --1.24579489231 -2.74009615183 --1.24578711391 -2.75735354424 --1.24578243494 -2.77461099625 --1.24578082562 -2.79186820984 --1.24578228593 -2.80912554264 --1.24578681588 -2.82638281584 --1.24579432607 -2.84364044666 --1.24580490589 -2.86089801788 --1.24581852555 -2.87815600634 --1.24583524466 -2.895414114 --1.2458550036 -2.91267281771 --1.24587777257 -2.92993181944 --1.24590352178 -2.94719141722 --1.24591806531 -2.96640193462 --1.24590530991 -2.98561090231 --1.24587932229 -3.00287038088 --1.2458563447 -3.02012950182 --1.24583637714 -3.03738802671 --1.24581947923 -3.05464631319 --1.24580568076 -3.07190412283 --1.24579489231 -3.08916193247 --1.24578711391 -3.10641938448 --1.24578246474 -3.12367683649 --1.24578088522 -3.14093402226 --1.24578231573 --3.12499386072 --1.24578681588 --3.10773658752 --1.24579432607 --3.0904790163 --1.24580490589 --3.07322138548 --1.24581855536 --3.05596339702 --1.24583527446 --3.03870534897 --1.2458550036 --3.02144664526 --1.24587777257 --3.00418764353 --1.24590349198 --2.98692804575 --1.2459179759 --2.96771752834 --1.24590525031 --2.94850856066 --1.24587929249 --2.93124908209 --1.2458563149 --2.91398996115 --1.24583637714 --2.89673143625 --1.24581950903 --2.87947314977 --1.24580571056 --2.86221534014 --1.24579489231 --2.8449575305 --1.24578711391 --2.82770007849 --1.24578243494 --2.81044262647 --1.24578082562 --2.79318541288 --1.24578228593 --2.77592796087 --1.24578681588 --2.75867068768 --1.24579435587 --2.74141311645 --1.2458049357 --2.72415554523 --1.24581852555 --2.70689755678 --1.24583521485 --2.68963938951 --1.24585497379 --2.67238068581 --1.24587777257 --2.65512180328 --1.24590349198 --2.63786226511 --1.2459179759 --2.61865162849 --1.24590528011 --2.59944266081 --1.24587932229 --2.58218330145 --1.2458563149 --2.56492418051 --1.24583640695 --2.54766565561 --1.24581953883 --2.53040724993 --1.24580571056 --2.51314938069 --1.24579492211 --2.49589163065 --1.24578714371 --2.47863423824 --1.24578246474 --2.46137672663 --1.24578085542 --2.44411951304 --1.24578228593 --2.42686218024 --1.24578678608 --2.40960490703 --1.24579429626 --2.39234733581 --1.24580490589 --2.37508970499 --1.24581852555 --2.35783165693 --1.24583524466 --2.34057354927 --1.24585497379 --2.32331490517 --1.24587774277 --2.30605602264 --1.24590349198 --2.28879642486 --1.24591800571 --2.26958578825 --1.24590528011 --2.25037682056 --1.24587932229 --2.23311734199 --1.2458563447 --2.21585822105 --1.24583640695 --2.19859969616 --1.24581950903 --2.18134135008 --1.24580565095 --2.16408354044 --1.24579486251 --2.1468257308 --1.24578711391 --2.12956833839 --1.24578243494 --2.11231088638 --1.24578085542 --2.09505367279 --1.24578231573 --2.07779633999 --1.24578681588 --2.06053906679 --1.24579432607 --2.04328149557 --1.24580487609 --2.02602392435 --1.24581849575 --2.00876587629 --1.24583521485 --1.99150773883 --1.24585494399 --1.97424906492 --1.24587771297 --1.95699015259 --1.24590346217 --1.93973055482 --1.24591800571 --1.920519948 --1.24590525031 --1.90131098032 --1.24587926268 --1.88405153155 --1.2458563149 --1.86679238081 --1.24583640695 --1.84953385592 --1.24581953883 --1.83227553964 --1.24580571056 --1.8150177002 --1.24579489231 --1.79775992036 --1.24578711391 --1.78050252795 --1.24578246474 --1.76324507594 --1.24578085542 --1.74598786235 --1.24578225613 --1.72873046994 --1.24578678608 --1.71147319675 --1.24579432607 --1.69421559572 --1.24580487609 --1.6769580245 --1.24581849575 --1.65970003605 --1.24583524466 --1.64244189859 --1.24585494399 --1.62518319487 --1.24587774277 --1.60792425275 --1.24590352178 --1.59066468477 --1.24591800571 --1.57145410776 --1.24590525031 --1.55224514007 --1.24587926268 --1.53498569131 --1.2458563149 --1.51772654057 --1.24583637714 --1.50046801567 --1.24581950903 --1.48320969939 --1.24580571056 --1.46595188975 --1.24579492211 --1.44869408011 --1.24578714371 --1.4314366579 --1.24578246474 --1.4141792059 --1.24578085542 --1.3969219625 --1.24578228593 --1.37966457009 --1.24578678608 --1.36240729689 --1.24579432607 --1.34514972567 --1.2458049357 --1.32789215445 --1.24581852555 --1.310634166 --1.24583521485 --1.29337605834 --1.24585497379 --1.27611735463 --1.24587777257 --1.2588584125 --1.24590349198 --1.24159884453 --1.24591800571 --1.22238823772 --1.24590528011 --1.20317927003 --1.24587932229 --1.18591985106 --1.2458563447 --1.16866070032 --1.24583637714 --1.15140217542 --1.24581950903 --1.13414382935 --1.24580571056 --1.11688598991 --1.24579489231 --1.09962823987 --1.24578711391 --1.08237084746 --1.24578243494 --1.06511339545 --1.24578085542 --1.04785618186 --1.24578231573 --1.03059875965 --1.24578678608 --1.01334145666 --1.24579429626 --0.996083885433 --1.24580490589 --0.978826314211 --1.24581852555 --0.961568310857 --1.24583521485 --0.944310188293 --1.24585497379 --0.927051514387 --1.24587780237 --0.909792587161 --1.24590352178 --0.892533004284 --1.24591800571 --0.873322412371 --1.24590528011 --0.854113429785 --1.24587929249 --0.836853995919 --1.2458563149 --0.819594860077 --1.24583640695 --0.802336335182 --1.24581953883 --0.785078004003 --1.24580571056 --0.76782014966 --1.24579489231 --0.750562369823 --1.24578711391 --0.733304977417 --1.24578246474 --0.716047510505 --1.24578085542 --0.698790311813 --1.24578225613 --0.681532919407 --1.24578678608 --0.664275616407 --1.24579432607 --0.647018030286 --1.24580490589 --0.629760459065 --1.24581852555 --0.612502470612 --1.24583521485 --0.595244348049 --1.24585497379 --0.577985659242 --1.24587777257 --0.560726732016 --1.24590352178 --0.54346716404 --1.24591803551 --0.524256572127 --1.24590528011 --0.50504758209 --1.24587932229 --0.487788140774 --1.2458563447 --0.470529004931 --1.24583640695 --0.453270480037 --1.24581953883 --0.436012148857 --1.24580571056 --0.418754316867 --1.24579489231 --0.40149653703 --1.24578711391 --0.384239129722 --1.24578243494 --0.36698167026 --1.24578082562 --0.349724441767 --1.24578228593 --0.332467034459 --1.24578681588 --0.315209768713 --1.24579432607 --0.297952197492 --1.24580490589 --0.280694618821 --1.24581852555 --0.263436615467 --1.24583524466 --0.246178485453 --1.2458550036 --0.228919807822 --1.24587777257 --0.211660884321 --1.24590352178 --0.194401293993 --1.24591806531 --0.175190698355 --1.22875928879 --0.155977711082 --1.22873342037 --0.138718284667 --1.2287105918 --0.121459161863 --1.22869077325 --0.104200657457 --1.22867396474 --0.086942339316 --1.22866022587 --0.0696845166385 --1.22864949703 --0.0524267591536 --1.22864174843 --0.0351693700068 --1.22863709927 --0.0179119217209 --1.22863554955 --0.000654720468448 --1.22863698006 -0.0166026616935 --1.2286414206 -0.0338599225506 --1.22864890098 -0.0511174844578 --1.22865945101 -0.0683750445023 --1.22867301107 -0.0856330357492 --1.22868961096 -0.102891148999 --1.22870922089 -0.120149813592 --1.22873187065 -0.137408722192 --1.22875744104 -0.154668290168 --1.22877189517 -0.173879027367 --1.22875922918 -0.193088136614 --1.22873336077 -0.210347566754 --1.22871056199 -0.227606698871 --1.22869074345 -0.244865193963 --1.22867396474 -0.26212349534 --1.22866025567 -0.279381327331 --1.22864949703 -0.296639099717 --1.22864177823 -0.313896477223 --1.22863712907 -0.331153921783 --1.22863551975 -0.348411120474 --1.22863695025 -0.365668497979 --1.22864145041 -0.382925763726 --1.22864893079 -0.400183327496 --1.22865945101 -0.417440898717 --1.22867301107 -0.43469888717 --1.22868961096 -0.451956994831 --1.22870922089 -0.469215653836 --1.22873187065 -0.486474566161 --1.22875744104 -0.503734134137 --1.22877189517 -0.522944867611 --1.22875925899 -0.54215399921 --1.22873339057 -0.559413433075 --1.22871053219 -0.576672554016 --1.22869077325 -0.59393106401 --1.22867402435 -0.611189365387 --1.22866025567 -0.628447160125 --1.22864949703 -0.64570492506 --1.22864177823 -0.662962347269 --1.22863712907 -0.68021979928 --1.22863551975 -0.69747698307 --1.22863695025 -0.714734360576 --1.22864145041 -0.731991618872 --1.22864893079 -0.749249190092 --1.22865945101 -0.766506776214 --1.22867301107 -0.783764764667 --1.22868961096 -0.801022857428 --1.22870922089 -0.818281501532 --1.22873187065 -0.835540398956 --1.22875744104 -0.852799981833 --1.22877189517 -0.872010737657 --1.22875922918 -0.891219869256 --1.22873339057 -0.90847928822 --1.2287105918 -0.925738379359 --1.22869077325 -0.942996904254 --1.22867399454 -0.960255235433 --1.22866025567 -0.977513030171 --1.22864949703 -0.994770780205 --1.22864177823 -1.01202818751 --1.22863712907 -1.02928563953 --1.22863554955 -1.04654282332 --1.22863698006 -1.06380021572 --1.22864145041 -1.08105748892 --1.22864893079 -1.09831503033 --1.2286594212 -1.11557260156 --1.22867298126 -1.13283059001 --1.22868961096 -1.15008869767 --1.22870922089 -1.16734737158 --1.22873187065 -1.1846062541 --1.22875744104 -1.20186585188 --1.22877189517 -1.2210766077 --1.22875925899 -1.2402856946 --1.22873339057 -1.25754511356 --1.22871056199 -1.27480426431 --1.22869077325 -1.2920627892 --1.22867399454 -1.30932107568 --1.22866025567 -1.32657888532 --1.22864949703 -1.34383663535 --1.22864177823 -1.36109402776 --1.22863712907 -1.37835150957 --1.22863554955 -1.39560869336 --1.22863695025 -1.41286602616 --1.2286414206 -1.43012329936 --1.22864893079 -1.44738087058 --1.2286594212 -1.464638412 --1.22867298126 -1.48189643025 --1.22868961096 -1.49915456772 --1.22870919109 -1.51641321182 --1.22873187065 -1.53367212415 --1.22875750065 -1.55093169212 --1.22877192497 -1.57014241815 --1.22875922918 -1.58935153484 --1.22873336077 -1.60661098361 --1.22871053219 -1.62387010455 --1.22869074345 -1.64112856984 --1.22867399454 -1.65838691592 --1.22866025567 -1.67564475536 --1.22864949703 -1.6929025054 --1.22864177823 -1.71015989781 --1.22863712907 -1.72741732002 --1.22863551975 -1.74467453361 --1.22863695025 -1.76193192601 --1.22864145041 -1.77918916941 --1.22864893079 -1.79644674063 --1.22865945101 -1.81370431185 --1.22867301107 -1.8309623003 --1.22868961096 -1.84822040796 --1.22870922089 -1.86547905207 --1.22873187065 -1.88273796439 --1.22875744104 -1.89999753237 --1.22877189517 -1.91920825839 --1.22875922918 -1.93841737509 --1.22873339057 -1.95567679405 --1.2287105918 -1.9729359448 --1.22869074345 -1.99019446969 --1.22867396474 -2.00745278597 --1.22866025567 -2.02471059561 --1.22864949703 -2.04196828604 --1.22864177823 -2.05922567845 --1.22863712907 -2.07648313046 --1.22863554955 -2.09374034405 --1.22863698006 -2.11099779606 --1.22864145041 -2.12825500965 --1.22864893079 -2.14551258087 --1.22865945101 -2.16277015209 --1.22867301107 -2.18002808094 --1.22868961096 -2.19728624821 --1.22870922089 -2.21454495192 --1.22873190045 -2.23180383444 --1.22875750065 -2.24906337261 --1.22877192497 -2.26827412844 --1.22875922918 -2.28748321533 --1.22873339057 -2.3047426343 --1.2287105918 -2.32200175524 --1.22869080305 -2.33926022053 --1.22867402435 -2.35651856661 --1.22866025567 -2.37377643585 --1.22864949703 -2.39103424549 --1.22864177823 -2.4082916379 --1.22863712907 -2.42554908991 --1.22863551975 -2.4428063035 --1.22863692045 -2.4600636363 --1.2286413908 -2.4773209095 --1.22864890098 -2.49457848072 --1.22865945101 -2.51183605194 --1.22867301107 -2.52909404039 --1.22868961096 -2.54635208845 --1.22870922089 -2.56361073256 --1.22873187065 -2.58086961508 --1.22875747084 -2.59812921286 --1.22877192497 -2.61733996868 --1.22875922918 -2.63654911518 --1.22873339057 -2.65380859375 --1.2287105918 -2.67106765508 --1.22869080305 -2.68832612037 --1.22867402435 -2.70558446645 --1.22866025567 -2.7228423357 --1.22864949703 -2.74010008574 --1.22864177823 -2.75735741854 --1.22863712907 -2.77461487055 --1.22863551975 -2.79187208414 --1.22863695025 -2.80912941694 --1.22864145041 -2.82638669014 --1.22864893079 -2.84364426136 --1.22865945101 -2.86090183258 --1.22867301107 -2.87815988064 --1.22868961096 -2.89541792869 --1.22870922089 -2.9126765728 --1.22873187065 -2.92993551492 --1.22875747084 -2.9471950531 --1.22877195478 -2.96640580893 --1.22875928879 -2.98561495543 --1.22873342037 -3.00287437439 --1.2287105918 -3.02013349533 --1.22869077325 -3.03739202022 --1.22867396474 -3.0546503067 --1.22866022587 -3.07190811634 --1.22864949703 -3.08916586637 --1.22864174843 -3.10642325878 --1.22863709927 -3.12368071079 --1.22863554955 -3.14093789657 --1.22863698006 --3.12499004603 --1.2286414206 --3.10773277283 --1.22864890098 --3.09047520161 --1.22865945101 --3.07321763039 --1.22867301107 --3.05595958233 --1.22868961096 --3.03870153427 --1.22870922089 --3.02144289017 --1.22873187065 --3.00418388843 --1.22875744104 --2.98692435026 --1.22877189517 --2.96771365404 --1.22875922918 --2.94850450754 --1.22873336077 --2.93124508858 --1.22871056199 --2.91398596764 --1.22869074345 --2.89672744274 --1.22867396474 --2.87946915626 --1.22866025567 --2.86221134663 --1.22864949703 --2.84495359659 --1.22864177823 --2.82769620419 --1.22863712907 --2.81043875217 --1.22863551975 --2.79318153858 --1.22863695025 --2.77592408657 --1.22864145041 --2.75866687298 --1.22864893079 --2.74140936136 --1.22865945101 --2.72415179014 --1.22867301107 --2.70689380169 --1.22868961096 --2.68963563442 --1.22870922089 --2.67237693071 --1.22873187065 --2.65511804819 --1.22875744104 --2.63785851002 --1.22877189517 --2.61864775419 --1.22875925899 --2.5994386673 --1.22873339057 --2.58217930794 --1.22871053219 --2.564920187 --1.22869077325 --2.5476616621 --1.22867402435 --2.53040331602 --1.22866025567 --2.51314550638 --1.22864949703 --2.49588769675 --1.22864177823 --2.47863030434 --1.22863712907 --2.46137285232 --1.22863551975 --2.44411563873 --1.22863695025 --2.42685830593 --1.22864145041 --2.40960103273 --1.22864893079 --2.39234346151 --1.22865945101 --2.37508583069 --1.22867301107 --2.35782784223 --1.22868961096 --2.34056979418 --1.22870922089 --2.32331115007 --1.22873187065 --2.30605226755 --1.22875744104 --2.28879266977 --1.22877189517 --2.26958191395 --1.22875922918 --2.25037276745 --1.22873339057 --2.23311328888 --1.2287105918 --2.21585422754 --1.22869077325 --2.19859570265 --1.22867399454 --2.18133735657 --1.22866025567 --2.16407960654 --1.22864949703 --2.1468218565 --1.22864177823 --2.12956446409 --1.22863712907 --2.11230701208 --1.22863554955 --2.09504985809 --1.22863698006 --2.07779252529 --1.22864145041 --2.06053519249 --1.22864893079 --2.04327762127 --1.2286594212 --2.02602005005 --1.22867298126 --2.0087620616 --1.22868961096 --1.99150395393 --1.22870922089 --1.97424528003 --1.22873187065 --1.95698639751 --1.22875744104 --1.93972682953 --1.22877189517 --1.92051610351 --1.22875925899 --1.90130695701 --1.22873339057 --1.88404750824 --1.22871056199 --1.8667884171 --1.22869077325 --1.84952992201 --1.22867399454 --1.83227157593 --1.22866025567 --1.81501373649 --1.22864949703 --1.79775598645 --1.22864177823 --1.78049862385 --1.22863712907 --1.76324117183 --1.22863554955 --1.74598395825 --1.22863695025 --1.72872659564 --1.2286414206 --1.71146935224 --1.22864893079 --1.69421178102 --1.2286594212 --1.6769542098 --1.22867298126 --1.65969622135 --1.22868961096 --1.64243811369 --1.22870919109 --1.62517943979 --1.22873187065 --1.60792052746 --1.22875750065 --1.59066095948 --1.22877192497 --1.57145020365 --1.22875922918 --1.55224111676 --1.22873336077 --1.5349816978 --1.22871053219 --1.51772254705 --1.22869074345 --1.50046405196 --1.22867399454 --1.48320576549 --1.22866025567 --1.46594795585 --1.22864949703 --1.44869017601 --1.22864177823 --1.4314327538 --1.22863712907 --1.41417530179 --1.22863551975 --1.396918118 --1.22863695025 --1.37966072559 --1.22864145041 --1.3624034524 --1.22864893079 --1.34514591098 --1.22865945101 --1.32788833976 --1.22867301107 --1.3106303513 --1.22868961096 --1.29337224364 --1.22870922089 --1.27611356974 --1.22873187065 --1.25885465741 --1.22875744104 --1.24159508944 --1.22877189517 --1.22238436341 --1.22875922918 --1.20317524671 --1.22873339057 --1.18591582775 --1.2287105918 --1.16865670681 --1.22869074345 --1.15139818191 --1.22867396474 --1.13413986564 --1.22866025567 --1.116882056 --1.22864949703 --1.09962430596 --1.22864177823 --1.08236694336 --1.22863712907 --1.06510949135 --1.22863554955 --1.04785227776 --1.22863698006 --1.03059491515 --1.22864145041 --1.01333767176 --1.22864893079 --0.996080085635 --1.22865945101 --0.978822484612 --1.22867301107 --0.96156449616 --1.22868961096 --0.944306388498 --1.22870922089 --0.927047729492 --1.22873190045 --0.909788832068 --1.22875750065 --0.892529264092 --1.22877192497 --0.873318523169 --1.22875922918 --0.854109406471 --1.22873339057 --0.836849987507 --1.2287105918 --0.819590866566 --1.22869080305 --0.802332341671 --1.22867402435 --0.785074025393 --1.22866025567 --0.767816215754 --1.22864949703 --0.750558465719 --1.22864177823 --0.733301073313 --1.22863712907 --0.716043621302 --1.22863551975 --0.69878642261 --1.22863692045 --0.681529030203 --1.2286413908 --0.664271771907 --1.22864890098 --0.647014215589 --1.22865945101 --0.629756644368 --1.22867301107 --0.612498655915 --1.22868961096 --0.595240548253 --1.22870922089 --0.577981904149 --1.22873187065 --0.560723006725 --1.22875747084 --0.543463423848 --1.22877192497 --0.524252697825 --1.22875922918 --0.505043573678 --1.22873339057 --0.487784132361 --1.2287105918 --0.47052501142 --1.22869080305 --0.453266508877 --1.22867402435 --0.43600820005 --1.22866025567 --0.41875038296 --1.22864949703 --0.401492618024 --1.22864177823 --0.384235218167 --1.22863712907 --0.366977773607 --1.22863551975 --0.349720567465 --1.22863695025 --0.332463175058 --1.22864145041 --0.315205924213 --1.22864893079 --0.297948375344 --1.22865945101 --0.280690796673 --1.22867301107 --0.26343280077 --1.22868961096 --0.246174700558 --1.22870922089 --0.228916037828 --1.22873187065 --0.211657125503 --1.22875747084 --0.194397553801 --1.22877195478 --0.175186820328 --1.21164864301 --0.155973561108 --1.21162295342 --0.138714157045 --1.21160030365 --0.12145505473 --1.21158063412 --0.104196565226 --1.21156391501 --0.0869382638484 --1.21155023575 --0.0696804570034 --1.21153956651 --0.0524227134883 --1.21153187752 --0.0351653406397 --1.21152722836 --0.0179079081863 --1.21152564883 --0.000650723464785 --1.21152707934 -0.0166066419333 --1.21153151989 -0.0338638853282 --1.21153897047 -0.0511214304715 --1.21154946089 -0.0683789784089 --1.21156293154 -0.085636952892 --1.21157944202 -0.102895047516 --1.21159893274 -0.120153695345 --1.2116214633 -0.137412589043 --1.21164691448 -0.154672142118 --1.2116612494 -0.173883024603 --1.21164861321 -0.193092282862 --1.21162292361 -0.21035169065 --1.21160030365 -0.227610804141 --1.21158060431 -0.244869291782 --1.21156391501 -0.262127585709 --1.21155026555 -0.279385395348 --1.21153956651 -0.296643137932 --1.21153190732 -0.313900507986 --1.21152725816 -0.331157937646 --1.21152567864 -0.348415121436 --1.21152710914 -0.36567248404 --1.21153154969 -0.382929734885 --1.21153900027 -0.400187283754 --1.21154946089 -0.417444832623 --1.21156293154 -0.434702798724 --1.21157944202 -0.451960891485 --1.21159893274 -0.46921954304 --1.2116214633 -0.486478440463 --1.21164691448 -0.503737993538 --1.2116612494 -0.522948861122 --1.21164864301 -0.542158141732 --1.21162295342 -0.559417545795 --1.21160024405 -0.576676636934 --1.21158057451 -0.593935146928 --1.21156394482 -0.611193448305 --1.21155026555 -0.628451257944 --1.21153956651 -0.645708993077 --1.21153190732 -0.662966355681 --1.21152725816 -0.680223792791 --1.21152567864 -0.697480976582 --1.21152710914 -0.714738339186 --1.21153154969 -0.731995582581 --1.21153900027 -0.749253123999 --1.21154946089 -0.766510680318 --1.21156293154 -0.78376866877 --1.21157944202 -0.80102674663 --1.21159893274 -0.818285375834 --1.2116214633 -0.835544273257 --1.21164691448 -0.852803856134 --1.2116612494 -0.872014760971 --1.21164861321 -0.891224011779 --1.21162292361 -0.908483400941 --1.21160030365 -0.92574249208 --1.21158060431 -0.943000987172 --1.21156388521 -0.96025930345 --1.21155023575 -0.977517098188 --1.21153956651 -0.994774818421 --1.21153190732 -1.01203221083 --1.21152725816 -1.02928966284 --1.21152564883 -1.04654681682 --1.21152710914 -1.06380417943 --1.21153157949 -1.08106145262 --1.21153900027 -1.09831896424 --1.21154946089 -1.11557650566 --1.21156293154 -1.13283449411 --1.21157944202 -1.15009260178 --1.21159893274 -1.16735124588 --1.2116214633 -1.1846101284 --1.21164691448 -1.20186969638 --1.2116612494 -1.22108057141 --1.21164864301 -1.24028983712 --1.21162295342 -1.25754925608 --1.21160030365 -1.27480837703 --1.21158060431 -1.29206687212 --1.21156391501 -1.3093251586 --1.21155026555 -1.32658296824 --1.21153956651 -1.34384071827 --1.21153190732 -1.36109808088 --1.21152725816 -1.37835550308 --1.21152567863 -1.39561268687 --1.21152707934 -1.41287004947 --1.21153151989 -1.43012729287 --1.21153900027 -1.44738483429 --1.21154946089 -1.4646423757 --1.21156293154 -1.48190036416 --1.21157944202 -1.49915844202 --1.21159893274 -1.51641708613 --1.2116214633 -1.53367599845 --1.21164694428 -1.55093553662 --1.211661309 -1.57014641166 --1.21164864301 -1.58935567736 --1.21162292361 -1.60661509633 --1.21160027385 -1.62387418747 --1.21158060431 -1.64113265276 --1.21156394482 -1.65839096904 --1.21155026555 -1.67564877868 --1.21153956651 -1.69290652871 --1.21153187752 -1.71016392112 --1.21152722836 -1.72742131353 --1.21152564883 -1.74467849732 --1.21152707934 -1.76193588972 --1.21153154969 -1.77919313312 --1.21153900027 -1.79645070434 --1.21154946089 -1.81370824575 --1.21156290174 -1.8309662044 --1.21157941222 -1.84822431207 --1.21159893274 -1.86548292637 --1.2116214633 -1.88274180889 --1.21164691448 -1.90000137687 --1.2116612494 -1.9192122519 --1.21164864301 -1.93842151761 --1.21162295342 -1.95568093658 --1.21160030365 -1.97294005752 --1.21158060431 -1.99019855261 --1.21156391501 -2.00745686889 --1.21155026555 -2.02471464872 --1.21153956651 -2.04197233915 --1.21153190732 -2.05922973156 --1.21152725816 -2.07648718357 --1.21152564883 -2.09374433756 --1.21152710914 -2.11100172997 --1.21153157949 -2.12825900316 --1.21153900027 -2.14551657438 --1.21154946089 -2.162774086 --1.21156293154 -2.18003201485 --1.21157944202 -2.19729018212 --1.21159893274 -2.21454882622 --1.2116214633 -2.23180770874 --1.21164691448 -2.24906730652 --1.2116612792 -2.26827818155 --1.21164867282 -2.28748738766 --1.21162295342 -2.30474680662 --1.21160030365 -2.32200592756 --1.21158063412 -2.33926439285 --1.21156391501 -2.35652267933 --1.21155023575 -2.37378048897 --1.21153956651 -2.391038239 --1.21153190732 -2.40829563141 --1.21152725816 -2.42555308342 --1.21152567864 -2.44281029701 --1.21152710914 -2.46006762981 --1.21153151989 -2.47732484341 --1.21153897047 -2.49458241463 --1.21154946089 -2.51183998585 --1.21156293154 -2.5290979147 --1.21157944202 -2.54635596276 --1.21159893274 -2.56361460686 --1.2116214633 -2.58087348938 --1.21164691448 -2.59813308716 --1.2116612494 -2.61734396219 --1.21164861321 -2.6365532279 --1.21162292361 -2.65381264687 --1.21160027385 -2.6710717082 --1.21158060431 -2.68833017349 --1.21156391501 -2.70558851957 --1.21155023575 -2.72284638882 --1.21153956651 -2.74010407925 --1.21153190732 -2.75736141205 --1.21152725816 -2.77461886406 --1.21152564883 -2.79187607765 --1.21152707934 -2.80913341045 --1.21153154969 -2.82639062405 --1.21153900027 -2.84364819527 --1.21154946089 -2.86090576649 --1.21156293154 -2.87816381455 --1.21157944202 -2.8954218626 --1.21159893274 -2.9126805067 --1.2116214633 -2.92993938923 --1.21164691448 -2.9471988678 --1.2116612494 -2.96640980244 --1.21164864301 -2.98561906815 --1.21162295342 -3.00287848711 --1.21160030365 -3.02013760805 --1.21158063412 -3.03739607334 --1.21156391501 -3.05465435982 --1.21155023575 -3.07191216946 --1.21153956651 -3.08916991949 --1.21153187752 -3.10642731189 --1.21152722836 -3.12368476391 --1.21152564883 -3.14094194968 --1.21152707934 --3.12498605252 --1.21153151989 --3.10772883892 --1.21153897047 --3.0904712677 --1.21154946089 --3.07321369648 --1.21156293154 --3.05595564842 --1.21157944202 --3.03869760037 --1.21159893274 --3.02143895626 --1.2116214633 --3.00418001413 --1.21164691448 --2.98692053556 --1.2116612494 --2.96770966053 --1.21164861321 --2.94850039482 --1.21162292361 --2.93124097586 --1.21160030365 --2.91398185491 --1.21158060431 --2.89672338962 --1.21156391501 --2.87946510315 --1.21155026555 --2.86220729351 --1.21153956651 --2.84494954347 --1.21153190732 --2.82769215107 --1.21152725816 --2.81043469906 --1.21152567864 --2.79317754507 --1.21152710914 --2.77592015266 --1.21153154969 --2.75866287947 --1.21153900027 --2.74140536785 --1.21154946089 --2.72414785624 --1.21156293154 --2.70688986778 --1.21157944202 --2.68963170052 --1.21159893274 --2.67237305641 --1.2116214633 --2.65511417389 --1.21164691448 --2.63785463572 --1.2116612494 --2.61864376068 --1.21164864301 --2.59943449497 --1.21162295342 --2.58217513561 --1.21160024405 --2.56491601467 --1.21158057451 --2.54765748978 --1.21156394482 --2.5303992033 --1.21155026555 --2.51314139366 --1.21153956651 --2.49588364363 --1.21153190732 --2.47862631082 --1.21152725816 --2.46136885881 --1.21152567864 --2.44411164522 --1.21152710914 --2.42685431242 --1.21153154969 --2.40959703922 --1.21153900027 --2.392339468 --1.21154946089 --2.37508189678 --1.21156293154 --2.35782396793 --1.21157944202 --2.34056591987 --1.21159893274 --2.32330727577 --1.2116214633 --2.30604839325 --1.21164691448 --2.28878879547 --1.2116612494 --2.26957792044 --1.21164861321 --2.25036865473 --1.21162292361 --2.23310923576 --1.21160030365 --2.21585017443 --1.21158060431 --2.19859164953 --1.21156388521 --2.18133330345 --1.21155023575 --2.16407555342 --1.21153956651 --2.14681786299 --1.21153190732 --2.12956047058 --1.21152725816 --2.11230301857 --1.21152564883 --2.09504586458 --1.21152710914 --2.07778853178 --1.21153157949 --2.06053125858 --1.21153900027 --2.04327368736 --1.21154946089 --2.02601611614 --1.21156293154 --2.00875818729 --1.21157944202 --1.99150007963 --1.21159893274 --1.97424137593 --1.2116214633 --1.9569824934 --1.21164691448 --1.93972295523 --1.2116612494 --1.92051208019 --1.21164864301 --1.90130278468 --1.21162295342 --1.88404339552 --1.21160030365 --1.86678433418 --1.21158060431 --1.84952583909 --1.21156391501 --1.83226752281 --1.21155026555 --1.81500968337 --1.21153956651 --1.79775193334 --1.21153190732 --1.78049460053 --1.21152725816 --1.76323714852 --1.21152567863 --1.74597996473 --1.21152707934 --1.72872263193 --1.21153151989 --1.71146538853 --1.21153900027 --1.69420781731 --1.21154946089 --1.6769502759 --1.21156293154 --1.65969231724 --1.21157944202 --1.64243420958 --1.21159893274 --1.62517556548 --1.2116214633 --1.60791668296 --1.21164694428 --1.59065711498 --1.211661309 --1.57144621015 --1.21164864301 --1.55223697424 --1.21162292361 --1.53497755527 --1.21160027385 --1.51771843433 --1.21158060431 --1.50045996905 --1.21156394482 --1.48320168257 --1.21155026555 --1.46594387293 --1.21153956651 --1.4486861229 --1.21153187752 --1.43142873049 --1.21152722836 --1.41417130828 --1.21152564883 --1.39691415429 --1.21152707934 --1.37965676189 --1.21153154969 --1.36239948869 --1.21153900027 --1.34514197707 --1.21154946089 --1.32788443565 --1.21156290174 --1.3106264472 --1.21157941222 --1.29336833954 --1.21159893274 --1.27610969544 --1.2116214633 --1.25885081291 --1.21164691448 --1.24159124493 --1.2116612494 --1.2223803699 --1.21164864301 --1.20317110419 --1.21162295342 --1.18591168523 --1.21160030365 --1.16865256429 --1.21158060431 --1.15139406919 --1.21156391501 --1.13413578272 --1.21155026555 --1.11687797308 --1.21153956651 --1.09962025285 --1.21153190732 --1.08236292005 --1.21152725816 --1.06510546804 --1.21152564883 --1.04784825444 --1.21152710914 --1.03059092164 --1.21153157949 --1.01333370805 --1.21153900027 --0.996076136828 --1.21154946089 --0.978818565607 --1.21156293154 --0.961560592056 --1.21157944202 --0.944302484393 --1.21159893274 --0.927043840289 --1.2116214633 --0.909784972668 --1.21164691448 --0.892525404692 --1.2116612792 --0.873314499855 --1.21164867282 --0.854105249047 --1.21162295342 --0.836845844984 --1.21160030365 --0.819586724043 --1.21158063412 --0.802328228951 --1.21156391501 --0.785069957376 --1.21155023575 --0.767812177539 --1.21153956651 --0.750554442406 --1.21153190732 --0.733297064901 --1.21152725816 --0.716039627791 --1.21152567864 --0.698782414198 --1.21152710914 --0.681525036692 --1.21153151989 --0.6642678231 --1.21153897047 --0.647010281682 --1.21154946089 --0.629752725363 --1.21156293154 --0.61249473691 --1.21157944202 --0.595236629247 --1.21159893274 --0.577978014946 --1.2116214633 --0.560719132424 --1.21164691448 --0.543459549546 --1.2116612494 --0.524248674512 --1.21164861321 --0.505039416254 --1.21162292361 --0.487779997289 --1.21160027385 --0.4705208987 --1.21158060431 --0.453262403608 --1.21156391501 --0.436004109681 --1.21155023575 --0.418746314943 --1.21153956651 --0.401488564909 --1.21153190732 --0.384231187403 --1.21152725816 --0.366973757744 --1.21152564883 --0.349716566503 --1.21152707934 --0.332459196448 --1.21153154969 --0.315201960504 --1.21153900027 --0.297944419086 --1.21154946089 --0.280686862767 --1.21156293154 --0.263428889215 --1.21157944202 --0.246170800179 --1.21159893274 --0.22891215235 --1.2116214633 --0.211653258652 --1.21164691448 --0.194393701851 --1.2116612494 --0.175182815641 --1.19455015659 --0.15597075969 --1.19452464581 --0.138711366803 --1.19450214505 --0.121452275664 --1.19448259473 --0.104193799198 --1.19446596503 --0.0869355089962 --1.19445234537 --0.0696777114645 --1.19444176555 --0.0524199781939 --1.19443416596 --0.0351626160554 --1.1944295466 --0.0179051957093 --1.19442793727 --0.000648021930827 --1.19442936778 -0.0166093318258 --1.19443383813 -0.0338665642776 --1.19444122911 -0.0511240996421 --1.19445160031 -0.0683816354722 --1.19446498156 -0.0856395978481 --1.19448143244 -0.102897681296 --1.19450080395 -0.120156314224 --1.19452318549 -0.137415196746 --1.19454851747 -0.154674746096 --1.19456273317 -0.173885732889 --1.19455015659 -0.19309509173 --1.19452464581 -0.210354484618 --1.19450214505 -0.227613575757 --1.19448259473 -0.244872055948 --1.19446599483 -0.262130357325 --1.19445237517 -0.279388159513 --1.19444176555 -0.296645872295 --1.19443416596 -0.313903227449 --1.1944295466 -0.331160657108 --1.19442796707 -0.348417833447 --1.19442939758 -0.36567518115 --1.19443383813 -0.382932409644 --1.19444122911 -0.400189951062 --1.19445163012 -0.41744749248 --1.19446501136 -0.434705451131 --1.19448143244 -0.451963536442 --1.19450080395 -0.469222173095 --1.19452318549 -0.486481048167 --1.19454848766 -0.503740593791 --1.19456270337 -0.522951573133 --1.19455018639 -0.542160943151 --1.19452467561 -0.559420332312 --1.19450211525 -0.576679423452 --1.19448256492 -0.593937933445 --1.19446596503 -0.611196219921 --1.19445234537 -0.628454014659 --1.19444176555 -0.645711749792 --1.19443416596 -0.662969097495 --1.1944295466 -0.680226504803 --1.19442796707 -0.697483673692 --1.19442939758 -0.714741036296 --1.19443383813 -0.73199826479 --1.19444122911 -0.749255776405 --1.19445160031 -0.766513317823 --1.19446498156 -0.783771306276 --1.19448143244 -0.801029384136 --1.19450080395 -0.818287998438 --1.19452318549 -0.835546895861 --1.19454848766 -0.852806478739 --1.19456270337 -0.872017458081 --1.19455012679 -0.891226798296 --1.194524616 -0.908486187458 --1.19450214505 -0.925745263696 --1.19448256493 -0.943003728986 --1.19446593523 -0.960262045264 --1.19445234537 -0.977519854903 --1.19444176555 -0.994777575136 --1.19443416596 -1.01203495264 --1.1944295466 -1.02929237485 --1.19442793727 -1.04654952883 --1.19442939758 -1.06380686164 --1.19443383813 -1.08106410503 --1.1944411993 -1.09832164645 --1.19445163012 -1.11557918787 --1.19446501136 -1.13283714652 --1.19448143244 -1.15009522438 --1.19450080395 -1.16735386849 --1.19452318549 -1.18461275101 --1.19454851747 -1.20187228918 --1.19456273317 -1.22108328343 --1.19455015659 -1.24029263854 --1.19452464581 -1.2575520277 --1.19450211525 -1.27481114865 --1.19448256492 -1.29206961393 --1.19446599483 -1.30932790041 --1.19445237517 -1.32658571005 --1.19444176555 -1.34384343028 --1.19443416596 -1.36110076309 --1.1944295466 -1.37835818529 --1.19442796707 -1.39561539888 --1.19442936778 -1.41287276149 --1.19443377852 -1.43012997508 --1.1944411993 -1.4473874867 --1.19445160031 -1.46464502812 --1.19446498156 -1.48190301657 --1.19448143244 -1.49916109442 --1.19450080395 -1.51641973853 --1.19452318549 -1.53367862105 --1.19454848766 -1.55093815923 --1.19456273317 -1.57014912367 --1.19455018639 -1.58935847878 --1.19452464581 -1.60661789775 --1.19450214505 -1.62387695909 --1.19448259473 -1.64113542438 --1.19446599483 -1.65839371085 --1.19445240497 -1.67565152049 --1.19444179535 -1.69290927052 --1.19443416596 -1.71016663313 --1.1944295764 -1.72742402553 --1.19442799687 -1.74468117952 --1.19442939758 -1.76193857193 --1.19443383813 -1.77919581532 --1.19444125891 -1.79645335674 --1.19445165992 -1.81371089816 --1.19446498156 -1.83096882701 --1.19448140264 -1.84822690487 --1.19450080395 -1.86548554897 --1.19452318549 -1.8827444315 --1.19454848766 -1.90000396967 --1.19456270337 -1.91921496392 --1.19455018639 -1.93842434883 --1.19452467561 -1.95568373799 --1.19450214505 -1.97294282913 --1.19448259473 -1.99020129442 --1.19446599483 -2.0074596107 --1.19445237517 -2.02471739054 --1.19444176555 -2.04197508097 --1.19443416596 -2.05923247338 --1.1944295466 -2.07648992539 --1.19442793727 -2.09374707937 --1.19442939758 -2.11100441217 --1.19443386793 -2.12826168537 --1.19444122911 -2.14551925659 --1.19445160031 -2.16277676821 --1.19446498156 -2.18003469705 --1.19448143244 -2.19729280472 --1.19450080395 -2.21455144882 --1.19452318549 -2.23181033134 --1.19454848766 -2.24906986952 --1.19456273317 -2.26828086376 --1.1945502162 -2.28749024868 --1.19452467561 -2.30474960804 --1.19450214505 -2.32200866938 --1.19448259473 -2.33926719427 --1.19446596503 -2.35652548075 --1.19445234537 -2.37378329039 --1.19444176555 -2.39104104042 --1.19443416596 -2.40829831362 --1.1944295466 -2.42555570602 --1.19442796707 -2.44281291962 --1.19442939758 -2.46007025242 --1.19443383813 -2.47732746601 --1.19444122911 -2.49458503723 --1.19445163012 -2.51184260845 --1.19446501136 -2.5291005373 --1.19448143244 -2.54635858536 --1.19450080395 -2.56361722946 --1.19452318549 -2.58087611198 --1.19454848766 -2.59813570976 --1.19456270337 -2.617346704 --1.19455015659 -2.63655602932 --1.19452464581 -2.65381538868 --1.19450211525 -2.67107450962 --1.19448256492 -2.68833303451 --1.19446596503 -2.70559132099 --1.19445234537 -2.72284913063 --1.19444176555 -2.74010682106 --1.19443416596 -2.75736415386 --1.1944295466 -2.77462160587 --1.19442796707 -2.79187875986 --1.19442939758 -2.80913609266 --1.19443383813 -2.82639336586 --1.19444122911 -2.84365087748 --1.19445163012 -2.86090838909 --1.19446501136 -2.87816643715 --1.19448143244 -2.89542448521 --1.19450080395 -2.9126830697 --1.19452318549 -2.92994195223 --1.19454848766 -2.9472014904 --1.19456270337 -2.96641248464 --1.19455015659 -2.98562180996 --1.19452464581 -3.00288128853 --1.19450214505 -3.02014040947 --1.19448259473 -3.03739881515 --1.19446596503 -3.05465710163 --1.19445234537 -3.07191491127 --1.19444176555 -3.0891726613 --1.19443416596 -3.10643005371 --1.1944295466 -3.12368750572 --1.19442793727 -3.1409446915 --1.19442936778 --3.1249833107 --1.19443383813 --3.10772609711 --1.19444122911 --3.09046858549 --1.19445160031 --3.07321107388 --1.19446498156 --3.05595302582 --1.19448143244 --3.03869491816 --1.19450080395 --3.02143627405 --1.19452318549 --3.00417745113 --1.19454851747 --2.98691797256 --1.19456273317 --2.96770697832 --1.19455015659 --2.94849765301 --1.19452464581 --2.93123817444 --1.19450214505 --2.91397905349 --1.19448259473 --2.89672064781 --1.19446599483 --2.87946236133 --1.19445237517 --2.8622045517 --1.19444176555 --2.84494680166 --1.19443416596 --2.82768940926 --1.1944295466 --2.81043195725 --1.19442796707 --2.79317480326 --1.19442939758 --2.77591747046 --1.19443383813 --2.75866019726 --1.19444122911 --2.74140262604 --1.19445163012 --2.72414511442 --1.19446501136 --2.70688718557 --1.19448143244 --2.68962907791 --1.19450080395 --2.67237043381 --1.19452318549 --2.65511155128 --1.19454848766 --2.63785207271 --1.19456270337 --2.61864107847 --1.19455018639 --2.59943163395 --1.19452467561 --2.58217227459 --1.19450211525 --2.56491321325 --1.19448256492 --2.54765474796 --1.19446596503 --2.53039646149 --1.19445234537 --2.51313865185 --1.19444176555 --2.49588096142 --1.19443416596 --2.47862356901 --1.1944295466 --2.461366117 --1.19442796707 --2.44410896301 --1.19442939758 --2.42685163021 --1.19443383813 --2.40959441662 --1.19444122911 --2.3923368454 --1.19445160031 --2.37507927418 --1.19446498156 --2.35782134533 --1.19448143244 --2.34056329727 --1.19450080395 --2.32330465317 --1.19452318549 --2.30604577064 --1.19454848766 --2.28878617287 --1.19456270337 --2.26957517862 --1.19455012679 --2.25036585331 --1.194524616 --2.23310649395 --1.19450214505 --2.21584743261 --1.19448256493 --2.19858890772 --1.19446593523 --2.18133056164 --1.19445234537 --2.164072752 --1.19444176555 --2.14681506157 --1.19443416596 --2.12955772877 --1.1944295466 --2.11230033636 --1.19442793727 --2.09504318237 --1.19442939758 --2.07778578997 --1.19443383813 --2.06052851677 --1.1944411993 --2.04327100515 --1.19445163012 --2.02601349354 --1.19446501136 --2.00875556469 --1.19448143244 --1.99149745703 --1.19450080395 --1.97423875332 --1.19452318549 --1.9569798708 --1.19454851747 --1.93972033262 --1.19456273317 --1.92050933838 --1.19455015659 --1.90129998327 --1.19452464581 --1.88404062391 --1.19450211525 --1.86678153277 --1.19448256492 --1.84952303768 --1.19446599483 --1.83226475119 --1.19445237517 --1.81500694156 --1.19444176555 --1.79774922133 --1.19443416596 --1.78049188852 --1.1944295466 --1.76323443651 --1.19442796707 --1.74597728252 --1.19442936778 --1.72871994972 --1.19443377852 --1.71146267653 --1.1944411993 --1.69420513511 --1.19445160031 --1.67694762349 --1.19446498156 --1.65968966484 --1.19448143244 --1.64243158698 --1.19450080395 --1.62517297268 --1.19452318549 --1.60791409015 --1.19454848766 --1.59065452218 --1.19456273317 --1.57144352794 --1.19455018639 --1.55223417282 --1.19452464581 --1.53497475386 --1.19450214505 --1.51771566272 --1.19448259473 --1.50045719743 --1.19446599483 --1.48319891095 --1.19445240497 --1.46594113111 --1.19444179535 --1.44868338108 --1.19443416596 --1.43142598868 --1.1944295764 --1.41416859627 --1.19442799687 --1.39691144228 --1.19442939758 --1.37965407967 --1.19443383813 --1.36239683628 --1.19444125891 --1.34513929487 --1.19445165992 --1.32788175344 --1.19446498156 --1.31062379479 --1.19448140264 --1.29336571693 --1.19450080395 --1.27610707283 --1.19452318549 --1.25884819031 --1.19454848766 --1.24158865213 --1.19456270337 --1.22237765789 --1.19455018639 --1.20316830277 --1.19452467561 --1.18590891361 --1.19450214505 --1.16864979267 --1.19448259473 --1.15139132738 --1.19446599483 --1.13413304091 --1.19445237517 --1.11687523127 --1.19444176555 --1.09961754084 --1.19443416596 --1.08236020804 --1.1944295466 --1.06510275602 --1.19442793727 --1.04784554243 --1.19442939758 --1.03058820963 --1.19443386793 --1.01333099604 --1.19444122911 --0.99607345462 --1.19445160031 --0.978815928102 --1.19446498156 --0.96155795455 --1.19448143244 --0.944299861789 --1.19450080395 --0.927041232586 --1.19452318549 --0.909782364965 --1.19454848766 --0.89252281189 --1.19456273317 --0.873311817646 --1.1945502162 --0.85410246253 --1.19452467561 --0.836843058467 --1.19450214505 --0.819583952427 --1.19448259473 --0.802325472235 --1.19446596503 --0.785067215562 --1.19445234537 --0.767809420824 --1.19444176555 --0.75055167079 --1.19443416596 --0.733294337988 --1.1944295466 --0.71603693068 --1.19442796707 --0.698779731989 --1.19442939758 --0.681522369385 --1.19443383813 --0.664265155793 --1.19444122911 --0.647007614374 --1.19445163012 --0.629750072956 --1.19446501136 --0.612492099404 --1.19448143244 --0.595233991742 --1.19450080395 --0.577975362539 --1.19452318549 --0.560716494918 --1.19454848766 --0.543456956745 --1.19456270337 --0.524245962501 --1.19455015659 --0.505036592483 --1.19452464581 --0.487777203321 --1.19450211525 --0.470518119633 --1.19448256492 --0.453259639442 --1.19446596503 --0.436001352966 --1.19445234537 --0.418743565679 --1.19444176555 --0.401485830546 --1.19443416596 --0.384228467941 --1.1944295466 --0.366971053183 --1.19442796707 --0.349713869393 --1.19442939758 --0.332456506788 --1.19443383813 --0.315199278295 --1.19444122911 --0.297941744327 --1.19445163012 --0.28068421036 --1.19446501136 --0.26342625171 --1.19448143244 --0.246168170124 --1.19450080395 --0.228909537196 --1.19452318549 --0.211650654674 --1.19454848766 --0.194391105324 --1.19456270337 --0.175180114805 --1.17742952704 --0.155967924744 --1.17740416527 --0.138708539307 --1.17738181353 --0.121449459344 --1.17736241221 --0.104190995917 --1.17734593153 --0.0869327187538 --1.17733237147 --0.0696749296039 --1.17732185126 --0.0524172075093 --1.17731428146 --0.0351598570123 --1.17730966211 --0.0179024478421 --1.17730811238 --0.000645285472275 --1.17730954289 -0.0166120571085 --1.17731395364 -0.0338692772202 --1.17732128501 -0.0511268014088 --1.17733159661 -0.0683843269944 --1.17734488845 -0.0856422781944 --1.17736124992 -0.102900352329 --1.17738050222 -0.120158972219 --1.17740270495 -0.137417841703 --1.17742788792 -0.154677379876 --1.17744204402 -0.173888467252 --1.17742955685 -0.193097926676 --1.17740419507 -0.210357315838 --1.17738181353 -0.227616395801 --1.17736238241 -0.244874853641 --1.17734590172 -0.262133136391 --1.17733237147 -0.279390931129 --1.17732185126 -0.296648643911 --1.17731428146 -0.313905991614 --1.17730969191 -0.331163406372 --1.17730814219 -0.348420567811 --1.17730954289 -0.365677908063 --1.17731395364 -0.382935121655 --1.17732131481 -0.400192655623 --1.17733165622 -0.41745018959 --1.17734491825 -0.43470813334 --1.17736124992 -0.451966203749 --1.17738050222 -0.469224818051 --1.17740270495 -0.486483678222 --1.17742785811 -0.503743223846 --1.17744201422 -0.522954314947 --1.17742955685 -0.542163789272 --1.17740419507 -0.559423178435 --1.17738181353 -0.576682239771 --1.17736238241 -0.593940719962 --1.17734584212 -0.611199006439 --1.17733231187 -0.628456786275 --1.17732185126 -0.645714506507 --1.17731431127 -0.66297185421 --1.17730969191 -0.680229261517 --1.17730811238 -0.697486415506 --1.17730954289 -0.714743763209 --1.17731395364 -0.732000976801 --1.17732128501 -0.749258488417 --1.17733159661 -0.766516014933 --1.17734488845 -0.783773988485 --1.17736124992 -0.801032081246 --1.17738050222 -0.818290665746 --1.17740270495 -0.835549518466 --1.17742785811 -0.852809101343 --1.17744201422 -0.872020184994 --1.17742952704 -0.891229614616 --1.17740416527 -0.908489003777 --1.17738184333 -0.925748080015 --1.17736238241 -0.943006545305 --1.17734587192 -0.960264831781 --1.17733237147 -0.977522626519 --1.17732185126 -0.994780346751 --1.17731431127 -1.01203769446 --1.17730972171 -1.02929508686 --1.17730814219 -1.04655224085 --1.17730954289 -1.06380960346 --1.17731392384 -1.08106681705 --1.17732128501 -1.09832435847 --1.17733165622 -1.11558189988 --1.17734491825 -1.13283982873 --1.17736124992 -1.15009790659 --1.17738050222 -1.16735655069 --1.17740270495 -1.18461543321 --1.17742788792 -1.20187494159 --1.17744204402 -1.22108602524 --1.17742955685 -1.24029546976 --1.17740419507 -1.25755482912 --1.17738178373 -1.27481395006 --1.17736235261 -1.29207241535 --1.17734590172 -1.30933067202 --1.17733237147 -1.32658848166 --1.17732185126 -1.3438462019 --1.17731431127 -1.3611035347 --1.17730972171 -1.37836095691 --1.17730817199 -1.3956181407 --1.1773095429 -1.4128754735 --1.17731389403 -1.43013268709 --1.17732125521 -1.44739019871 --1.17733159661 -1.46464771032 --1.17734488845 -1.48190566897 --1.17736122012 -1.49916374683 --1.17738047242 -1.51642239094 --1.17740270495 -1.53368127346 --1.17742785811 -1.55094081164 --1.17744201422 -1.57015186548 --1.17742955685 -1.58936131 --1.17740419507 -1.60662072897 --1.17738181353 -1.62387979031 --1.17736238241 -1.6411382556 --1.17734587192 -1.65839654207 --1.17733237147 -1.67565432191 --1.17732188106 -1.69291204214 --1.17731434107 -1.71016937494 --1.17730978131 -1.72742679715 --1.17730820179 -1.74468395114 --1.1773095727 -1.76194131374 --1.17731395364 -1.77919852733 --1.17732134461 -1.79645603895 --1.17733168602 -1.81371361018 --1.17734491825 -1.83097153902 --1.17736124992 -1.84822958708 --1.17738050222 -1.86548820138 --1.17740273476 -1.8827470839 --1.17742788792 -1.90000662208 --1.17744201422 -1.91921770573 --1.17742955685 -1.93842718005 --1.17740419507 -1.95568653941 --1.17738181353 -1.97294563055 --1.17736238241 -1.99020409584 --1.17734587192 -2.00746238232 --1.17733234167 -2.02472019196 --1.17732185126 -2.04197788239 --1.17731431127 -2.05923521519 --1.17730972171 -2.07649260759 --1.17730814219 -2.09374976158 --1.17730954289 -2.11100715399 --1.17731395364 -2.12826442718 --1.17732131481 -2.1455219388 --1.17733162641 -2.16277945041 --1.17734488845 -2.18003737926 --1.17736124992 -2.19729542732 --1.17738050222 -2.21455407143 --1.17740270495 -2.23181295395 --1.17742788792 -2.24907243252 --1.17744204402 -2.26828354597 --1.17742955685 -2.2874931097 --1.17740419507 -2.30475246906 --1.17738181353 -2.3220114708 --1.17736238241 -2.33926993609 --1.17734587192 -2.35652822256 --1.17733234167 -2.3737860322 --1.17732185126 -2.39104378224 --1.17731431127 -2.40830105543 --1.17730972171 -2.42555844784 --1.17730814219 -2.44281566143 --1.17730954289 -2.46007299423 --1.17731395364 -2.47733020782 --1.17732131481 -2.49458771944 --1.17733165622 -2.51184523106 --1.17734491825 -2.52910321951 --1.17736124992 -2.54636132717 --1.17738050222 -2.56361991167 --1.17740270495 -2.58087873459 --1.17742785811 -2.59813833237 --1.17744201422 -2.61734944582 --1.17742955685 -2.63655889034 --1.17740419507 -2.6538182497 --1.17738181353 -2.67107731104 --1.17736238241 -2.68833583593 --1.17734590172 -2.70559412241 --1.17733237147 -2.72285187245 --1.17732185126 -2.74010956288 --1.17731431127 -2.75736695528 --1.17730972171 -2.77462440729 --1.17730817199 -2.79188150167 --1.1773095727 -2.80913883448 --1.17731395364 -2.82639610767 --1.17732131481 -2.84365361929 --1.17733165622 -2.8609111309 --1.17734491825 -2.87816911936 --1.17736124992 -2.89542716741 --1.17738050222 -2.91268575192 --1.17740273476 -2.92994463444 --1.17742788792 -2.94720417261 --1.17744201422 -2.96641522646 --1.17742952704 -2.98562467098 --1.17740416527 -3.00288414955 --1.17738181353 -3.02014327049 --1.17736241221 -3.03740167618 --1.17734593153 -3.05465996266 --1.17733237147 -3.0719177723 --1.17732185126 -3.08917546272 --1.17731428146 -3.10643279552 --1.17730966211 -3.12369018793 --1.17730811238 -3.14094737371 --1.17730954289 --3.12498056889 --1.17731395364 --3.1077233553 --1.17732128501 --3.09046584368 --1.17733159661 --3.07320833206 --1.17734488845 --3.05595034361 --1.17736124992 --3.03869223595 --1.17738050222 --3.02143359184 --1.17740270495 --3.00417476893 --1.17742788792 --2.98691529036 --1.17744204402 --2.96770423651 --1.17742955685 --2.94849479199 --1.17740419507 --2.93123531342 --1.17738181353 --2.91397619247 --1.17736238241 --2.89671778679 --1.17734590172 --2.87945950031 --1.17733237147 --2.86220169067 --1.17732185126 --2.84494400024 --1.17731428146 --2.82768666744 --1.17730969191 --2.81042927504 --1.17730814219 --2.79317212105 --1.17730954289 --2.77591472864 --1.17731395364 --2.75865751505 --1.17732131481 --2.74140000343 --1.17733165622 --2.72414243221 --1.17734491825 --2.70688450336 --1.17736124992 --2.68962645531 --1.17738050222 --2.6723678112 --1.17740270495 --2.65510892868 --1.17742785811 --2.63784945011 --1.17744201422 --2.61863833666 --1.17742955685 --2.59942877293 --1.17740419507 --2.58216941357 --1.17738181353 --2.56491041183 --1.17736238241 --2.54765200615 --1.17734584212 --2.53039371967 --1.17733231187 --2.51313591003 --1.17732185126 --2.4958782196 --1.17731431127 --2.4786208272 --1.17730969191 --2.46136337519 --1.17730811238 --2.4441062212 --1.17730954289 --2.4268488884 --1.17731395364 --2.40959167481 --1.17732128501 --2.39233416319 --1.17733159661 --2.37507665158 --1.17734488845 --2.35781866312 --1.17736124992 --2.34056055546 --1.17738050222 --2.32330197096 --1.17740270495 --2.30604314804 --1.17742785811 --2.28878355026 --1.17744201422 --2.26957243681 --1.17742952704 --2.25036299229 --1.17740416527 --2.23310363293 --1.17738184333 --2.21584463119 --1.17736238241 --2.1985861063 --1.17734587192 --2.18132776022 --1.17733237147 --2.16407001018 --1.17732185126 --2.14681231975 --1.17731431127 --2.12955498695 --1.17730972171 --2.11229759455 --1.17730814219 --2.09504044056 --1.17730954289 --2.07778304816 --1.17731392384 --2.06052577496 --1.17732128501 --2.04326826334 --1.17733165622 --2.02601075173 --1.17734491825 --2.00875282288 --1.17736124992 --1.99149477482 --1.17738050222 --1.97423613071 --1.17740270495 --1.95697724819 --1.17742788792 --1.93971771002 --1.17744204402 --1.92050662637 --1.17742955685 --1.90129718184 --1.17740419507 --1.88403779268 --1.17738178373 --1.86677870154 --1.17736235261 --1.84952023626 --1.17734590172 --1.83226194978 --1.17733237147 --1.81500416994 --1.17732185126 --1.79774647951 --1.17731431127 --1.78048914671 --1.17730972171 --1.7632316947 --1.17730817199 --1.74597451091 --1.1773095429 --1.72871717811 --1.17731389403 --1.71145993471 --1.17732125521 --1.6942024231 --1.17733159661 --1.67694491148 --1.17734488845 --1.65968695283 --1.17736122012 --1.64242890477 --1.17738047242 --1.62517029047 --1.17740270495 --1.60791140795 --1.17742785811 --1.59065186977 --1.17744201422 --1.57144078612 --1.17742955685 --1.5522313118 --1.17740419507 --1.53497192264 --1.17738181353 --1.5177128613 --1.17736238241 --1.50045439601 --1.17734587192 --1.48319610953 --1.17733237147 --1.46593832969 --1.17732188106 --1.44868060946 --1.17731434107 --1.43142324686 --1.17730978131 --1.41416585445 --1.17730820179 --1.39690870047 --1.1773095727 --1.37965136767 --1.17731395364 --1.36239415407 --1.17732134461 --1.34513661266 --1.17733168602 --1.32787907124 --1.17734491825 --1.31062111259 --1.17736124992 --1.29336303473 --1.17738050222 --1.27610442042 --1.17740273476 --1.2588455677 --1.17742788792 --1.24158602953 --1.17744201422 --1.22237491608 --1.17742955685 --1.20316547155 --1.17740419507 --1.1859061122 --1.17738181353 --1.16864702106 --1.17736238241 --1.15138855577 --1.17734587192 --1.13413026929 --1.17733234167 --1.11687248945 --1.17732185126 --1.09961476922 --1.17731431127 --1.08235740662 --1.17730972171 --1.0650999844 --1.17730814219 --1.04784280062 --1.17730954289 --1.03058546781 --1.17731395364 --1.01332825422 --1.17732131481 --0.996070742607 --1.17733162641 --0.978813245893 --1.17734488845 --0.961555272341 --1.17736124992 --0.94429717958 --1.17738050222 --0.927038565278 --1.17740270495 --0.909779697656 --1.17742788792 --0.892520174384 --1.17744204402 --0.873309105634 --1.17742955685 --0.854099631309 --1.17740419507 --0.836840212345 --1.17738181353 --0.819581136107 --1.17736238241 --0.802322685719 --1.17734587192 --0.785064414144 --1.17733234167 --0.767806619406 --1.17732185126 --0.750548899174 --1.17731431127 --0.733291566372 --1.17730972171 --0.716034173965 --1.17730814219 --0.698777005076 --1.17730954289 --0.681519642473 --1.17731395364 --0.664262443781 --1.17732131481 --0.647004917264 --1.17733165622 --0.629747375846 --1.17734491825 --0.612489417195 --1.17736124992 --0.595231324434 --1.17738050222 --0.577972695231 --1.17740270495 --0.560713842511 --1.17742785811 --0.543454319239 --1.17744201422 --0.524243220687 --1.17742955685 --0.505033753812 --1.17740419507 --0.487774379551 --1.17738181353 --0.470515310764 --1.17736238241 --0.453256852925 --1.17734590172 --0.4359985739 --1.17733237147 --0.418740786612 --1.17732185126 --0.40148306638 --1.17731431127 --0.384225711227 --1.17730972171 --0.366968296468 --1.17730817199 --0.34971113503 --1.1773095727 --0.332453787327 --1.17731395364 --0.315196566284 --1.17732131481 --0.297939047217 --1.17733165622 --0.28068151325 --1.17734491825 --0.26342356205 --1.17736124992 --0.246165502816 --1.17738050222 --0.228906884789 --1.17740273476 --0.211648009717 --1.17742788792 --0.194388467818 --1.17744201422 --0.175177380442 --1.16028353572 --0.155965052545 --1.16025832295 --0.138705678284 --1.16023612023 --0.121446609497 --1.16021683812 --0.104188157245 --1.16020044685 --0.0869298912584 --1.160187006 --0.0696721123531 --1.16017657518 --0.0524144014344 --1.160169065 --0.0351570625789 --1.16016447544 --0.0178996645845 --1.16016295552 --0.000642513856293 --1.16016438603 -0.0166148180142 --1.16016870737 -0.0338720269501 --1.16017597914 -0.0511295385659 --1.16018626094 -0.0683870529756 --1.16019949317 -0.0856449957937 --1.16021570563 -0.102903058752 --1.16023480892 -0.120161665604 --1.16025686264 -0.137420520187 --1.16028186679 -0.154680043459 --1.16029596329 -0.173891235143 --1.16028353572 -0.193100798875 --1.16025832295 -0.210360176861 --1.16023609042 -0.227619245648 --1.16021677852 -0.244877703488 --1.16020044685 -0.262135975062 --1.1601870358 -0.279393739998 --1.16017657518 -0.29665145278 --1.160169065 -0.313908793032 --1.16016450524 -0.331166185438 --1.16016295552 -0.348423339426 --1.16016435623 -0.365680672228 --1.16016870737 -0.38293787837 --1.16017600894 -0.400195389986 --1.16018629074 -0.417452909052 --1.16019949317 -0.434710845351 --1.16021570563 -0.451968900859 --1.16023480892 -0.469227515161 --1.16025686264 -0.486486367881 --1.16028186679 -0.503745891154 --1.16029593349 -0.522957086563 --1.16028350592 -0.542166665197 --1.16025832295 -0.559426039457 --1.16023609042 -0.576685085893 --1.16021677852 -0.593943536281 --1.16020041704 -0.611201792956 --1.160187006 -0.628459572792 --1.16017657518 -0.645717293024 --1.1601690948 -0.662974625826 --1.16016450524 -0.680232048035 --1.16016292572 -0.697489202023 --1.16016432643 -0.714746519924 --1.16016867757 -0.732003718615 --1.16017597914 -0.74926123023 --1.16018626094 -0.766518741846 --1.16019946337 -0.783776685596 --1.16021567583 -0.801034778357 --1.16023480892 -0.818293362856 --1.16025686264 -0.835552200675 --1.16028186679 -0.85281175375 --1.16029596329 -0.872022941709 --1.16028353572 -0.89123249054 --1.16025832295 -0.908491879702 --1.16023615003 -0.925750941038 --1.16021680832 -0.943009391427 --1.16020038724 -0.960267648101 --1.160187006 -0.977525427937 --1.16017657518 -0.99478316307 --1.1601690948 -1.01204049587 --1.16016453504 -1.02929788828 --1.16016298532 -1.04655501246 --1.16016438603 -1.06381237507 --1.16016867757 -1.08106961846 --1.16017597914 -1.09832710028 --1.16018629074 -1.11558458209 --1.16019946337 -1.13284254074 --1.16021567583 -1.1501006484 --1.16023480892 -1.16735926271 --1.16025689244 -1.18461811542 --1.16028189659 -1.2018776238 --1.16029596329 -1.22108879686 --1.16028353572 -1.24029836059 --1.16025832295 -1.25755771994 --1.16023609042 -1.27481678128 --1.16021677852 -1.29207524658 --1.16020044685 -1.30933350325 --1.1601870358 -1.32659128308 --1.16017657518 -1.34384900331 --1.1601690948 -1.36110633612 --1.16016453504 -1.37836372852 --1.16016295552 -1.39562088251 --1.16016432643 -1.41287821532 --1.16016867757 -1.43013542891 --1.16017597914 -1.44739294052 --1.16018626094 -1.46465045214 --1.16019946337 -1.48190838098 --1.16021564603 -1.49916642904 --1.16023474932 -1.51642507314 --1.16025686264 -1.53368395567 --1.16028189659 -1.55094346404 --1.16029593349 -1.5701546371 --1.16028350592 -1.58936420083 --1.16025829315 -1.60662358999 --1.16023609042 -1.62388265133 --1.16021680832 -1.64114111662 --1.16020041704 -1.6583994031 --1.160187006 -1.67565715313 --1.16017657518 -1.69291484356 --1.160169065 -1.71017217636 --1.16016450525 -1.72742959857 --1.16016298532 -1.74468675256 --1.16016435623 -1.76194408536 --1.16016867757 -1.77920129895 --1.16017600894 -1.79645881057 --1.16018629074 -1.81371632218 --1.16019946337 -1.83097425103 --1.16021567583 -1.84823232889 --1.16023480892 -1.86549091339 --1.16025692224 -1.88274976611 --1.16028192639 -1.90000930429 --1.16029596329 -1.91922047734 --1.16028353572 -1.93843004107 --1.16025832295 -1.95568940043 --1.16023609042 -1.97294849157 --1.16021677852 -1.99020695687 --1.16020038724 -2.00746524334 --1.16018697619 -2.02472305298 --1.16017657518 -2.04198074341 --1.160169065 -2.05923807621 --1.16016450525 -2.07649540901 --1.16016295552 -2.09375250339 --1.16016435623 -2.1110098958 --1.16016870737 -2.128267169 --1.16017600894 -2.14552468062 --1.16018629074 -2.16278213263 --1.16019946337 -2.18004006147 --1.16021567583 -2.19729816914 --1.16023480892 -2.21455675364 --1.16025689244 -2.23181557655 --1.16028192639 -2.24907511473 --1.16029596329 -2.26828634739 --1.16028350592 -2.28749597072 --1.16025832295 -2.30475533009 --1.16023609042 -2.32201433182 --1.16021677852 -2.3392727375 --1.16020041704 -2.35653102398 --1.160187006 -2.37378883362 --1.16017657518 -2.39104652405 --1.1601690948 -2.40830385685 --1.16016453504 -2.42556124926 --1.16016295552 -2.44281840324 --1.16016432643 -2.46007579565 --1.16016864776 -2.47733300924 --1.16017597914 -2.49459046126 --1.16018629074 -2.51184797287 --1.16019949317 -2.52910596132 --1.16021570563 -2.54636406898 --1.16023480892 -2.56362265348 --1.16025686264 -2.5808814764 --1.16028186679 -2.59814101458 --1.16029596329 -2.61735218764 --1.16028353572 -2.63656175136 --1.16025832295 -2.65382111073 --1.16023609042 -2.67108011246 --1.16021677852 -2.68833863735 --1.16020044685 -2.70559692383 --1.1601870358 -2.72285461426 --1.16017657518 -2.74011230469 --1.160169065 -2.7573696971 --1.16016450525 -2.77462714911 --1.16016295552 -2.79188430309 --1.16016432643 -2.80914163589 --1.16016867757 -2.82639884948 --1.16017600894 -2.8436563611 --1.16018629074 -2.86091387272 --1.16019949317 -2.87817180157 --1.16021570563 -2.89542984962 --1.16023480892 -2.91268849373 --1.16025692224 -2.92994737625 --1.16028192639 -2.94720685482 --1.16029596329 -2.96641802788 --1.16028353572 -2.98562759161 --1.16025832295 -3.00288701057 --1.16023612023 -3.02014613151 --1.16021683812 -3.0374045372 --1.16020044685 -3.05466282368 --1.160187006 -3.07192063332 --1.16017657518 -3.08917832375 --1.160169065 -3.10643565655 --1.16016447544 -3.12369298935 --1.16016295552 -3.14095011552 --1.16016438603 --3.12497782707 --1.16016870737 --3.10772061348 --1.16017597914 --3.09046310186 --1.16018626094 --3.07320559025 --1.16019949317 --3.0559476614 --1.16021570563 --3.03868961334 --1.16023480892 --3.02143096924 --1.16025686264 --3.00417208672 --1.16028186679 --2.98691260815 --1.16029596329 --2.96770143509 --1.16028353572 --2.94849187136 --1.16025832295 --2.9312324524 --1.16023609042 --2.91397333145 --1.16021677852 --2.89671492577 --1.16020044685 --2.87945663929 --1.1601870358 --2.86219882965 --1.16017657518 --2.84494113922 --1.160169065 --2.82768380642 --1.16016450524 --2.81042647362 --1.16016295552 --2.79316937923 --1.16016435623 --2.77591198683 --1.16016870737 --2.75865477323 --1.16017600894 --2.74139732122 --1.16018629074 --2.72413980961 --1.16019949317 --2.70688182116 --1.16021570563 --2.6896237731 --1.16023480892 --2.6723651886 --1.16025686264 --2.65510630608 --1.16028186679 --2.6378467679 --1.16029593349 --2.61863553524 --1.16028350592 --2.59942591191 --1.16025832295 --2.58216655254 --1.16023609042 --2.56490755081 --1.16021677852 --2.54764914512 --1.16020041704 --2.53039085865 --1.160187006 --2.51313304901 --1.16017657518 --2.49587535858 --1.1601690948 --2.47861802578 --1.16016450524 --2.46136057377 --1.16016292572 --2.44410341978 --1.16016432643 --2.42684614658 --1.16016867757 --2.40958893299 --1.16017597914 --2.39233142137 --1.16018626094 --2.37507390976 --1.16019946337 --2.35781592131 --1.16021567583 --2.34055781364 --1.16023480892 --2.32329928875 --1.16025686264 --2.30604046583 --1.16028186679 --2.28878086805 --1.16029596329 --2.26956969499 --1.16028353572 --2.25036013126 --1.16025832295 --2.2331007719 --1.16023615003 --2.21584177017 --1.16021680832 --2.19858324528 --1.16020038724 --2.1813249588 --1.160187006 --2.16406726837 --1.16017657518 --2.14680957794 --1.1601690948 --2.12955224514 --1.16016453504 --2.11229479313 --1.16016298532 --2.09503763914 --1.16016438603 --2.07778030634 --1.16016867757 --2.06052303314 --1.16017597914 --2.04326552152 --1.16018629074 --2.02600800991 --1.16019946337 --2.00875008106 --1.16021567583 --1.99149206281 --1.16023480892 --1.97423344851 --1.16025689244 --1.95697456598 --1.16028189659 --1.93971505761 --1.16029596329 --1.92050388455 --1.16028353572 --1.90129432082 --1.16025832295 --1.88403493166 --1.16023609042 --1.86677587033 --1.16021677852 --1.84951740504 --1.16020044685 --1.83225911856 --1.1601870358 --1.81500136852 --1.16017657518 --1.79774367809 --1.1601690948 --1.78048634529 --1.16016453504 --1.76322892308 --1.16016295552 --1.74597173929 --1.16016432643 --1.72871440649 --1.16016867757 --1.7114571929 --1.16017597914 --1.69419968128 --1.16018626094 --1.67694216967 --1.16019946337 --1.65968424082 --1.16021564603 --1.64242619276 --1.16023474932 --1.62516757846 --1.16025686264 --1.60790872574 --1.16028189659 --1.59064918756 --1.16029593349 --1.5714380145 --1.16028350592 --1.55222845077 --1.16025829315 --1.53496906161 --1.16023609042 --1.51771000028 --1.16021680832 --1.50045156479 --1.16020041704 --1.48319330811 --1.160187006 --1.46593549847 --1.16017657518 --1.44867777824 --1.160169065 --1.43142044544 --1.16016450525 --1.41416305304 --1.16016298532 --1.39690592885 --1.16016435623 --1.37964862585 --1.16016867757 --1.36239141226 --1.16017600894 --1.34513390065 --1.16018629074 --1.32787638903 --1.16019946337 --1.31061840057 --1.16021567583 --1.29336032271 --1.16023480892 --1.27610173821 --1.16025692224 --1.25884288549 --1.16028192639 --1.24158334732 --1.16029596329 --1.22237214446 --1.16028353572 --1.20316261053 --1.16025832295 --1.18590325117 --1.16023609042 --1.16864418984 --1.16021677852 --1.15138572455 --1.16020038724 --1.13412743807 --1.16018697619 --1.11686968803 --1.16017657518 --1.0996119678 --1.160169065 --1.0823546052 --1.16016450525 --1.06509721279 --1.16016295552 --1.0478400588 --1.16016435623 --1.030582726 --1.16016870737 --1.01332551241 --1.16017600894 --0.996068000794 --1.16018629074 --0.97881051898 --1.16019946337 --0.961552575231 --1.16021567583 --0.94429448247 --1.16023480892 --0.927035868168 --1.16025689244 --0.909777015448 --1.16028192639 --0.892517492175 --1.16029596329 --0.873306304216 --1.16028350592 --0.854096740484 --1.16025832295 --0.836837366223 --1.16023609042 --0.819578304887 --1.16021677852 --0.802319854498 --1.16020041704 --0.785061582923 --1.160187006 --0.767803803086 --1.16017657518 --0.750546112657 --1.1601690948 --0.733288764954 --1.16016453504 --0.716031372547 --1.16016295552 --0.698774233461 --1.16016432643 --0.681516885758 --1.16016864776 --0.664259687066 --1.16017597914 --0.647002160549 --1.16018629074 --0.629744634032 --1.16019949317 --0.612486690283 --1.16021570563 --0.595228627324 --1.16023480892 --0.577970027923 --1.16025686264 --0.560711175204 --1.16028186679 --0.54345163703 --1.16029596329 --0.524240449071 --1.16028353572 --0.50503090024 --1.16025832295 --0.487771518529 --1.16023609042 --0.470512449741 --1.16021677852 --0.453254006803 --1.16020044685 --0.435995750129 --1.1601870358 --0.418737977743 --1.16017657518 --0.401480257511 --1.160169065 --0.384222909808 --1.16016450525 --0.3669655025 --1.16016295552 --0.349708355963 --1.16016432643 --0.332451030612 --1.16016867757 --0.31519382447 --1.16017600894 --0.297936312855 --1.16018629074 --0.280678786337 --1.16019949317 --0.263420842588 --1.16021570563 --0.24616279453 --1.16023480892 --0.228904187679 --1.16025692224 --0.211645323783 --1.16028192639 --0.194385796785 --1.16029596329 --0.175174608826 --1.14051029086 --0.155960150063 --1.14048522711 --0.138700790703 --1.14046317339 --0.121441736817 --1.1404440403 --0.104183305055 --1.14042776823 --0.0869250614196 --1.14041447639 --0.069667304866 --1.14040410519 --0.052409613505 --1.1403966248 --0.0351522923447 --1.14039215445 --0.0178949129768 --1.14039066434 --0.00063778180629 --1.14039203525 -0.0166195309721 --1.14039632678 -0.0338767222129 --1.14040356875 -0.0511342156679 --1.14041376114 -0.0683917067945 --1.14042687416 -0.0856496281922 --1.14044293761 -0.102907672524 --1.14046189189 -0.120166260749 --1.1404838264 -0.137425098568 --1.14050862193 -0.154684603215 --1.14052256942 -0.173895969987 --1.14051026106 -0.193105708808 --1.14048525691 -0.210365064442 --1.14046317339 -0.227624114603 --1.14044401049 -0.244882550091 --1.14042779803 -0.262140795589 --1.1404145062 -0.279398553074 --1.14040410519 -0.296656250954 --1.14039665461 -0.313913568855 --1.14039218426 -0.33117094636 --1.14039063454 -0.348428077996 --1.14039203525 -0.365685395896 --1.14039632678 -0.382942587137 --1.14040350914 -0.4002000615 --1.14041373134 -0.417457550764 --1.14042690396 -0.434715479612 --1.14044296741 -0.451973520219 --1.14046189189 -0.469232112169 --1.1404838264 -0.486490957439 --1.14050862193 -0.503750450909 --1.14052253962 -0.522961810231 --1.14051023126 -0.542171567678 --1.14048522711 -0.559430927038 --1.14046314359 -0.576689973473 --1.14044401049 -0.59394839406 --1.14042779803 -0.611206635833 --1.14041447639 -0.628464400768 --1.14040407538 -0.645722076297 --1.14039665461 -0.662979394197 --1.14039218426 -0.680236801505 --1.14039060474 -0.697493925691 --1.14039197564 -0.714751213789 --1.14039629698 -0.732008397579 --1.14040350914 -0.749265909195 --1.14041373134 -0.76652340591 --1.14042687416 -0.783781319857 --1.14044296741 -0.801039367914 --1.14046192169 -0.818297937512 --1.1404838264 -0.835556790233 --1.14050862193 -0.852816313505 --1.14052256942 -0.872027665377 --1.14051026106 -0.891237407923 --1.14048525691 -0.908496782183 --1.14046320319 -0.925755813718 --1.14044401049 -0.943014234305 --1.14042773843 -0.960272476077 --1.14041447639 -0.977530241012 --1.14040410519 -0.994787961245 --1.14039665461 -1.01204526425 --1.14039218426 -1.02930262685 --1.14039066434 -1.04655975103 --1.14039206505 -1.06381708384 --1.14039629698 -1.08107429743 --1.14040347934 -1.09833174944 --1.14041373134 -1.11558923125 --1.14042684436 -1.1328471899 --1.14044290781 -1.15010523796 --1.14046189189 -1.16736382246 --1.1404838562 -1.18462264538 --1.14050865173 -1.20188215375 --1.14052256942 -1.22109353543 --1.14051026106 -1.24030327797 --1.14048522711 -1.25756263733 --1.14046314359 -1.27482166887 --1.14044401049 -1.29208010435 --1.14042779803 -1.30933836103 --1.1404145062 -1.32659608126 --1.14040410519 -1.34385374189 --1.14039665461 -1.36111107469 --1.14039218426 -1.37836846709 --1.14039060474 -1.39562559128 --1.14039194584 -1.41288292408 --1.14039626718 -1.43014013767 --1.14040350914 -1.44739761949 --1.14041373134 -1.4646551013 --1.14042687416 -1.48191300035 --1.14044293761 -1.4991710484 --1.14046186209 -1.5164296627 --1.14048379659 -1.53368851542 --1.14050865173 -1.5509480238 --1.14052256942 -1.57015937567 --1.14051023126 -1.58936911821 --1.14048519731 -1.60662847757 --1.14046314359 -1.62388750911 --1.1404440403 -1.6411459446 --1.14042779803 -1.65840420127 --1.14041447639 -1.6756619513 --1.14040407538 -1.69291964173 --1.14039662481 -1.71017697453 --1.14039215446 -1.72743433714 --1.14039066434 -1.74469146132 --1.14039200544 -1.76194879413 --1.14039626718 -1.77920597792 --1.14040350914 -1.79646345973 --1.14041373134 -1.81372094154 --1.14042687416 -1.83097887039 --1.14044293761 -1.84823694825 --1.14046189189 -1.86549553275 --1.1404838562 -1.88275435567 --1.14050865173 -1.90001386404 --1.14052256942 -1.91922521591 --1.14051026106 -1.93843495846 --1.14048525691 -1.95569431782 --1.14046317339 -1.97295337915 --1.14044401049 -1.99021181464 --1.14042776823 -2.00747007131 --1.14041447639 -2.02472782135 --1.14040410519 -2.04198551178 --1.14039662481 -2.05924284458 --1.14039215446 -2.07650017739 --1.14039063454 -2.09375727177 --1.14039203525 -2.11101460457 --1.14039632678 -2.12827181816 --1.14040353894 -2.14552932978 --1.14041376114 -2.16278678179 --1.14042684436 -2.18004471063 --1.14044293761 -2.1973028183 --1.14046192169 -2.21456134319 --1.1404838264 -2.23182016611 --1.14050862193 -2.24907970429 --1.14052253962 -2.26829105616 --1.14051023126 -2.2875007987 --1.14048525691 -2.30476015806 --1.14046317339 -2.3220192194 --1.14044401049 -2.33927762508 --1.14042779803 -2.35653585195 --1.14041447639 -2.37379366159 --1.14040407538 -2.39105135202 --1.14039665461 -2.40830868483 --1.14039218426 -2.42556607723 --1.14039063454 -2.44282317162 --1.14039200544 -2.46008050442 --1.14039626718 -2.47733765841 --1.14040347934 -2.49459511042 --1.14041373134 -2.51185268164 --1.14042690396 -2.52911061048 --1.14044296741 -2.54636859894 --1.14046189189 -2.56362724304 --1.1404838264 -2.58088612556 --1.14050862193 -2.59814560414 --1.14052256942 -2.61735695601 --1.14051026106 -2.63656669855 --1.14048525691 -2.65382599831 --1.14046317339 -2.67108500004 --1.14044401049 -2.68834352493 --1.14042779803 -2.70560181141 --1.1404145062 -2.72285950184 --1.14040410519 -2.74011713266 --1.14039662481 -2.75737446547 --1.14039215446 -2.77463191748 --1.14039060474 -2.79188907146 --1.14039197564 -2.80914634466 --1.14039629698 -2.82640355825 --1.14040350914 -2.84366106987 --1.14041373134 -2.86091852188 --1.14042690396 -2.87817639112 --1.14044296741 -2.89543443918 --1.14046189189 -2.91269308329 --1.1404838562 -2.9299519062 --1.14050865173 -2.94721138477 --1.14052259922 -2.96642279625 --1.14051029086 -2.9856325388 --1.14048522711 -3.00289189816 --1.14046317339 -3.02015095949 --1.1404440403 -3.03740936517 --1.14042776823 -3.05466765165 --1.14041447639 -3.07192540169 --1.14040410519 -3.08918309212 --1.1403966248 -3.10644042492 --1.14039215445 -3.12369775772 --1.14039066434 -3.14095488389 --1.14039203525 --3.12497311831 --1.14039632678 --3.10771590471 --1.14040356875 --3.0904583931 --1.14041376114 --3.07320094109 --1.14042687416 --3.05594307185 --1.14044293761 --3.03868502378 --1.14046189189 --3.02142637968 --1.1404838264 --3.00416755676 --1.14050862193 --2.98690807819 --1.14052256942 --2.96769666672 --1.14051026106 --2.94848692417 --1.14048525691 --2.93122756481 --1.14046317339 --2.91396850348 --1.14044401049 --2.89671009779 --1.14042779803 --2.87945181131 --1.1404145062 --2.86219406128 --1.14040410519 --2.84493637085 --1.14039665461 --2.82767903805 --1.14039218426 --2.81042170525 --1.14039063454 --2.79316461086 --1.14039203525 --2.77590727806 --1.14039632678 --2.75865006447 --1.14040350914 --2.74139261246 --1.14041373134 --2.72413516045 --1.14042690396 --2.70687717199 --1.14044296741 --2.68961912394 --1.14046189189 --2.67236059904 --1.1404838264 --2.65510171652 --1.14050862193 --2.63784217835 --1.14052253962 --2.61863082647 --1.14051023126 --2.59942108393 --1.14048522711 --2.58216172457 --1.14046314359 --2.56490266323 --1.14044401049 --2.54764425755 --1.14042779803 --2.53038603068 --1.14041447639 --2.51312822104 --1.14040407538 --2.4958705306 --1.14039665461 --2.47861325741 --1.14039218426 --2.461355865 --1.14039060474 --2.44409877062 --1.14039197564 --2.42684149742 --1.14039629698 --2.40958428383 --1.14040350914 --2.39232677221 --1.14041373134 --2.3750692606 --1.14042687416 --2.35781133175 --1.14044296741 --2.34055328369 --1.14046192169 --2.3232947588 --1.1404838264 --2.30603587627 --1.14050862193 --2.28877627849 --1.14052256942 --2.26956498623 --1.14051026106 --2.25035524368 --1.14048525691 --2.23309588432 --1.14046320319 --2.21583688259 --1.14044401049 --2.1985784173 --1.14042773843 --2.18132019043 --1.14041447639 --2.1640624404 --1.14040410519 --2.14680474997 --1.14039665461 --2.12954741716 --1.14039218426 --2.11229002476 --1.14039066434 --2.09503293037 --1.14039206505 --2.07777559758 --1.14039629698 --2.06051832437 --1.14040347934 --2.04326081276 --1.14041373134 --2.02600336075 --1.14042684436 --2.00874549151 --1.14044290781 --1.99148747325 --1.14046189189 --1.97422882914 --1.1404838562 --1.95696997642 --1.14050865173 --1.93971049785 --1.14052256942 --1.92049914598 --1.14051026106 --1.90128940344 --1.14048522711 --1.88403004408 --1.14046314359 --1.86677101255 --1.14044401049 --1.84951254725 --1.14042779803 --1.83225429058 --1.1404145062 --1.81499657035 --1.14040410519 --1.79773887992 --1.14039665461 --1.78048154712 --1.14039218426 --1.76322415471 --1.14039060474 --1.74596703052 --1.14039194584 --1.72870972753 --1.14039626718 --1.71145251393 --1.14040350914 --1.69419500232 --1.14041373134 --1.67693752051 --1.14042687416 --1.65967962146 --1.14044293761 --1.6424215734 --1.14046186209 --1.6251629889 --1.14048379659 --1.60790416598 --1.14050865173 --1.59064465761 --1.14052256942 --1.57143330574 --1.14051023126 --1.5522235632 --1.14048519731 --1.53496417403 --1.14046314359 --1.5177051127 --1.1404440403 --1.50044670701 --1.14042779803 --1.48318848014 --1.14041447639 --1.4659307003 --1.14040407538 --1.44867298007 --1.14039662481 --1.43141567707 --1.14039215446 --1.41415831447 --1.14039066434 --1.39690119028 --1.14039200544 --1.37964388728 --1.14039626718 --1.36238670349 --1.14040350914 --1.34512922168 --1.14041373134 --1.32787171006 --1.14042687416 --1.31061375141 --1.14044293761 --1.29335573315 --1.14046189189 --1.27609714865 --1.1404838562 --1.25883826613 --1.14050865173 --1.24157875776 --1.14052256942 --1.22236743569 --1.14051026106 --1.20315772295 --1.14048525691 --1.18589836359 --1.14046317339 --1.16863933206 --1.14044401049 --1.15138086677 --1.14042776823 --1.13412258029 --1.14041447639 --1.11686483025 --1.14040410519 --1.09960713983 --1.14039662481 --1.08234983683 --1.14039215446 --1.06509247422 --1.14039063454 --1.04783535004 --1.14039203525 --1.03057801723 --1.14039632678 --1.01332080364 --1.14040353894 --0.996063321829 --1.14041376114 --0.978805854916 --1.14042684436 --0.961547940969 --1.14044293761 --0.944289878011 --1.14046192169 --0.92703127861 --1.1404838264 --0.909772440791 --1.14050862193 --0.89251293242 --1.14052253962 --0.873301550746 --1.14051023126 --0.854091823101 --1.14048525691 --0.836832493544 --1.14046317339 --0.819573432207 --1.14044401049 --0.80231499672 --1.14042779803 --0.785056754947 --1.14041447639 --0.767798990011 --1.14040407538 --0.750541314483 --1.14039665461 --0.733283981681 --1.14039218426 --0.716026604176 --1.14039063454 --0.698769494891 --1.14039200544 --0.68151217699 --1.14039626718 --0.664254978299 --1.14040347934 --0.646997466683 --1.14041373134 --0.629739969969 --1.14042690396 --0.612482070923 --1.14044296741 --0.595224037766 --1.14046189189 --0.577965438366 --1.1404838264 --0.560706600547 --1.14050862193 --0.543447092175 --1.14052256942 --0.524235725403 --1.14051026106 --0.505025990307 --1.14048525691 --0.487766630947 --1.14046317339 --0.470507577062 --1.14044401049 --0.453249149025 --1.14042779803 --0.435990907252 --1.1404145062 --0.418733157218 --1.14040410519 --0.401475466788 --1.14039662481 --0.384218133986 --1.14039215446 --0.366960756481 --1.14039060474 --0.349703624845 --1.14039197564 --0.332446314395 --1.14039629698 --0.315189130604 --1.14040350914 --0.29793163389 --1.14041373134 --0.280674137175 --1.14042690396 --0.263416215777 --1.14044296741 --0.246158178896 --1.14046189189 --0.22889958322 --1.1404838562 --0.211640741676 --1.14050865173 --0.194381240755 --1.14052259922 --0.175169881433 --1.12076309324 --0.155955117196 --1.1207382381 --0.138695776463 --1.12071633339 --0.121436741203 --1.12069737911 --0.104178331792 --1.12068128586 --0.0869201067835 --1.12066808343 --0.0696623697877 --1.12065777183 --0.0524046998471 --1.12065035105 --0.0351473991759 --1.1206459403 --0.0178900395986 --1.12064445019 --0.000632927985863 --1.12064576149 -0.0166243650019 --1.12065005303 -0.0338815357536 --1.12065726519 -0.0511390101165 --1.12066736817 -0.0683964826167 --1.12068036199 -0.0856543835253 --1.12069627642 -0.102912405506 --1.12071511149 -0.120170971379 --1.12073689699 -0.13742979616 --1.1207614541 -0.154689285904 --1.12077525258 -0.173900824041 --1.12076306343 -0.19311073795 --1.1207382977 -0.210370078683 --1.12071639299 -0.227629113943 --1.12069734931 -0.244887523353 --1.12068125605 -0.262145735324 --1.12066808343 -0.279403477907 --1.12065777183 -0.296661160886 --1.12065038085 -0.313918463886 --1.1206459403 -0.331175819039 --1.12064442038 -0.348432920873 --1.12064579129 -0.365690223872 --1.12065002322 -0.382947400212 --1.12065720558 -0.400204859674 --1.12066736817 -0.417462326586 --1.12068039179 -0.434720233083 --1.12069633603 -0.451978258789 --1.12071511149 -0.469236820936 --1.12073686719 -0.486495643854 --1.1207614541 -0.503755122423 --1.12077525258 -0.522966653108 --1.12076306343 -0.54217658937 --1.1207382381 -0.559435933828 --1.12071633339 -0.576694965362 --1.12069737911 -0.593953371048 --1.12068128586 -0.611211597919 --1.12066805363 -0.628469347954 --1.12065774202 -0.645727008581 --1.12065038085 -0.662984311581 --1.1206459701 -0.680241674185 --1.12064442038 -0.697498768568 --1.12064576149 -0.714756041765 --1.12065005303 -0.732013210654 --1.12065720558 -0.74927072227 --1.12066733837 -0.766528189182 --1.12068039179 -0.783786073327 --1.12069636583 -0.801044106484 --1.1207151413 -0.818302676082 --1.12073686719 -0.835561499 --1.1207614839 -0.85282099247 --1.12077528238 -0.872032538056 --1.12076306343 -0.891242444515 --1.1207382679 -0.908501788974 --1.12071636319 -0.925760820508 --1.12069737911 -0.943019211292 --1.12068128586 -0.960277438164 --1.12066808343 -0.977535188198 --1.12065777183 -0.994792863726 --1.12065038085 -1.01205015183 --1.1206459701 -1.02930748463 --1.12064445019 -1.04656460881 --1.12064579129 -1.06382191181 --1.12065002322 -1.0810790658 --1.12065720558 -1.09833654761 --1.12066736817 -1.11559402943 --1.12068036199 -1.13285192847 --1.12069630623 -1.15010994673 --1.12071511149 -1.16736853123 --1.12073686719 -1.18462735414 --1.1207614541 -1.20188683272 --1.12077525258 -1.2210983932 --1.12076306343 -1.24030831456 --1.1207382381 -1.25756764412 --1.12071633339 -1.27482667565 --1.12069734931 -1.29208508134 --1.12068125605 -1.30934330821 --1.12066808343 -1.32660102844 --1.12065777183 -1.34385868907 --1.12065038085 -1.36111599207 --1.1206459403 -1.37837335468 --1.12064442038 -1.39563047886 --1.12064576149 -1.41288778186 --1.12065002322 -1.43014496565 --1.12065720558 -1.44740241766 --1.12066733837 -1.46465986967 --1.12068036198 -1.48191776872 --1.12069630623 -1.49917581678 --1.12071511149 -1.51643437147 --1.12073683738 -1.53369316459 --1.1207614839 -1.55095267296 --1.12077531218 -1.57016420365 --1.12076306343 -1.589374125 --1.1207382381 -1.60663348436 --1.12071633339 -1.6238925159 --1.12069737911 -1.64115092158 --1.12068128586 -1.65840914845 --1.12066808343 -1.67566689849 --1.12065777182 -1.69292455911 --1.12065038085 -1.71018186212 --1.1206459403 -1.72743919492 --1.12064442038 -1.7446962893 --1.12064579129 -1.7619536221 --1.12065005303 -1.77921077609 --1.12065723538 -1.7964682281 --1.12066736817 -1.81372570991 --1.12068039179 -1.83098360896 --1.12069633603 -1.84824165702 --1.12071514129 -1.86550024152 --1.12073689699 -1.88275906444 --1.1207614541 -1.90001854301 --1.12077525258 -1.91923007369 --1.12076306343 -1.93843999505 --1.1207382679 -1.95569935441 --1.12071636319 -1.97295838595 --1.12069734931 -1.99021679163 --1.12068125605 -2.0074750185 --1.12066808343 -2.02473270893 --1.12065777183 -2.04199039936 --1.12065038085 -2.05924773216 --1.1206459403 -2.07650506496 --1.12064445019 -2.09376215935 --1.1206458509 -2.11101949215 --1.12065008283 -2.12827664614 --1.12065723539 -2.14553409815 --1.12066736817 -2.16279160976 --1.12068036199 -2.18004947901 --1.12069633603 -2.19730746746 --1.1207151711 -2.21456605196 --1.12073686719 -2.23182493448 --1.1207614243 -2.24908441305 --1.12077525258 -2.26829588414 --1.12076306343 -2.28750580549 --1.1207382679 -2.30476516485 --1.12071636319 -2.32202422619 --1.12069734931 -2.33928263188 --1.12068125605 -2.35654079914 --1.12066805363 -2.37379854917 --1.12065774202 -2.3910562396 --1.12065038085 -2.4083135724 --1.1206459701 -2.42557096481 --1.12064445019 -2.4428280592 --1.12064579129 -2.46008533239 --1.12065002322 -2.47734248638 --1.12065720558 -2.49459993839 --1.12066736817 -2.51185745001 --1.12068039179 -2.52911537886 --1.12069630623 -2.54637336731 --1.12071508169 -2.56363195181 --1.12073686719 -2.58089077473 --1.1207614541 -2.5981502533 --1.12077525258 -2.61736184359 --1.12076306343 -2.63657176494 --1.1207382679 -2.6538310051 --1.12071636319 -2.67109000683 --1.12069734931 -2.68834847212 --1.12068125605 -2.70560675859 --1.12066808343 -2.72286450863 --1.12065777183 -2.74012207985 --1.12065038085 -2.75737935305 --1.1206459403 -2.77463680506 --1.12064439058 -2.79189389944 --1.12064576149 -2.80915111303 --1.12065005303 -2.82640832663 --1.12065720558 -2.84366583824 --1.12066736817 -2.86092329025 --1.12068042159 -2.8781811595 --1.12069633603 -2.89543920756 --1.12071511149 -2.91269779205 --1.12073686719 -2.92995655537 --1.1207614541 -2.94721603393 --1.12077528238 -2.96642762422 --1.12076309324 -2.98563754558 --1.1207382381 -3.00289690495 --1.12071633339 -3.02015590668 --1.12069737911 -3.03741431236 --1.12068128586 -3.05467259884 --1.12066808343 -3.07193028927 --1.12065777183 -3.0891879797 --1.12065035105 -3.1064453125 --1.1206459403 -3.1237026453 --1.12064445019 -3.14095971186 --1.12064576149 --3.12496834994 --1.12065005303 --3.10771113634 --1.12065726519 --3.09045362473 --1.12066736817 --3.07319617272 --1.12068036199 --3.05593830347 --1.12069627642 --3.03868025541 --1.12071511149 --3.02142167091 --1.12073689699 --3.0041629076 --1.1207614541 --2.98690342903 --1.12077525258 --2.96769183874 --1.12076306343 --2.94848191738 --1.1207382977 --2.93122255802 --1.12071639299 --2.91396349669 --1.12069734931 --2.896705091 --1.12068125605 --2.87944686413 --1.12066808343 --2.8621891737 --1.12065777183 --2.84493148327 --1.12065038085 --2.82767415047 --1.1206459403 --2.81041681766 --1.12064442038 --2.79315972328 --1.12064579129 --2.77590245009 --1.12065002322 --2.7586452961 --1.12065720558 --2.74138778448 --1.12066736817 --2.72413033247 --1.12068039179 --2.70687246323 --1.12069633603 --2.68961441517 --1.12071511149 --2.67235583067 --1.12073686719 --2.65509694815 --1.1207614541 --2.63783746958 --1.12077525258 --2.6186259985 --1.12076306343 --2.59941607714 --1.1207382381 --2.58215671777 --1.12071633339 --2.56489765644 --1.12069737911 --2.54763925076 --1.12068128586 --2.53038108349 --1.12066805363 --2.51312333345 --1.12065774202 --2.49586564303 --1.12065038085 --2.47860836983 --1.1206459701 --2.46135103703 --1.12064442038 --2.44409394264 --1.12064576149 --2.42683660984 --1.12065005303 --2.40957939625 --1.12065720558 --2.39232194424 --1.12066733837 --2.37506449223 --1.12068039179 --2.35780656338 --1.12069636583 --2.34054857493 --1.1207151413 --2.32329005003 --1.12073686719 --2.30603116751 --1.1207614839 --2.28877162933 --1.12077528238 --2.26956009864 --1.12076306343 --2.25035017729 --1.1207382679 --2.23309087753 --1.12071636319 --2.2158318758 --1.12069737911 --2.19857347011 --1.12068128586 --2.18131524325 --1.12066808343 --2.16405743361 --1.12065777183 --2.14679980278 --1.12065038085 --2.12954252959 --1.1206459701 --2.11228519678 --1.12064445019 --2.0950281024 --1.12064579129 --2.0777707696 --1.12065002322 --2.060513556 --1.12065720558 --2.04325604439 --1.12066736817 --2.02599859238 --1.12068036199 --2.00874072313 --1.12069630623 --1.99148270488 --1.12071511149 --1.97422409057 --1.12073686719 --1.95696529746 --1.1207614541 --1.93970581889 --1.12077525258 --1.92049428821 --1.12076306343 --1.90128439665 --1.1207382381 --1.88402503729 --1.12071633339 --1.86676600575 --1.12069734931 --1.84950757026 --1.12068125605 --1.8322493434 --1.12066808343 --1.81499162317 --1.12065777183 --1.79773396254 --1.12065038085 --1.78047665954 --1.1206459403 --1.76321926713 --1.12064442038 --1.74596217275 --1.12064576149 --1.72870489955 --1.12065002322 --1.71144771576 --1.12065720558 --1.69419023395 --1.12066733837 --1.67693275213 --1.12068036198 --1.65967488289 --1.12069630623 --1.64241686463 --1.12071511149 --1.62515828013 --1.12073683738 --1.60789945722 --1.1207614839 --1.59063997865 --1.12077531218 --1.57142844796 --1.12076306343 --1.5522185266 --1.1207382381 --1.53495916724 --1.12071633339 --1.51770013571 --1.12069737911 --1.50044173002 --1.12068128586 --1.48318350315 --1.12066808343 --1.46592578292 --1.12065777182 --1.44866809249 --1.12065038085 --1.43141078949 --1.1206459403 --1.41415345669 --1.12064442038 --1.3968963325 --1.12064579129 --1.3796390295 --1.12065005303 --1.36238187552 --1.12065723538 --1.3451243937 --1.12066736817 --1.32786691189 --1.12068039179 --1.31060901284 --1.12069633603 --1.29335099459 --1.12071514129 --1.27609241008 --1.12073689699 --1.25883355737 --1.1207614541 --1.2415740788 --1.12077525258 --1.22236257792 --1.12076306343 --1.20315265656 --1.1207382679 --1.185893327 --1.12071636319 --1.16863432526 --1.12069734931 --1.15137588978 --1.12068125605 --1.13411763311 --1.12066808343 --1.11685988307 --1.12065777183 --1.09960219264 --1.12065038085 --1.08234491944 --1.1206459403 --1.06508758664 --1.12064445019 --1.04783049226 --1.1206458509 --1.03057318926 --1.12065008283 --1.01331600547 --1.12065723539 --0.996058553458 --1.12066736817 --0.978801071644 --1.12068036199 --0.961543172598 --1.12069633603 --0.944285139441 --1.1207151711 --0.927026554942 --1.12073686719 --0.909767746925 --1.1207614243 --0.892508268356 --1.12077525258 --0.87329672277 --1.12076306343 --0.854086816311 --1.1207382679 --0.836827471852 --1.12071636319 --0.819568425417 --1.12069734931 --0.802310019731 --1.12068125605 --0.78505179286 --1.12066805363 --0.767794057727 --1.12065774202 --0.7505363971 --1.12065038085 --0.733279079199 --1.1206459701 --0.716021731496 --1.12064445019 --0.698764637113 --1.12064579129 --0.681507334113 --1.12065002322 --0.664250150323 --1.12065720558 --0.646992668509 --1.12066736817 --0.629735201597 --1.12068039179 --0.612477317453 --1.12069630623 --0.595219299197 --1.12071508169 --0.577960714698 --1.12073686719 --0.560701906681 --1.1207614541 --0.543442428112 --1.12077525258 --0.524230867624 --1.12076306343 --0.505020938814 --1.1207382679 --0.487761609256 --1.12071636319 --0.470502592623 --1.12069734931 --0.453244172037 --1.12068125605 --0.435985937715 --1.12066808343 --0.418728217483 --1.12065777183 --0.401470556855 --1.12065038085 --0.384213246405 --1.1206459403 --0.366955883801 --1.12064439058 --0.349698774517 --1.12064576149 --0.332441486419 --1.12065005303 --0.315184317529 --1.12065720558 --0.297926835716 --1.12066736817 --0.280669361353 --1.12068042159 --0.263411469757 --1.12069633603 --0.246153447777 --1.12071511149 --0.228894863278 --1.12073686719 --0.211636044085 --1.1207614541 --0.194376561791 --1.12077528238 --0.175165023655 --1.10364598036 --0.155951950699 --1.10362133384 --0.138692624867 --1.10359957814 --0.121433600784 --1.10358074307 --0.104175204411 --1.10356476903 --0.0869169887155 --1.10355165601 --0.0696592647582 --1.10354146362 --0.0524016087875 --1.10353416204 --0.0351443211548 --1.1035297513 --0.0178869748488 --1.10352817177 --0.000629875808953 --1.10352951288 -0.0166274048388 --1.10353380442 -0.0338845620863 --1.10354092717 -0.051142022945 --1.10355097055 -0.0683994842693 --1.10356390476 -0.0856573730707 --1.10357972979 -0.102915383875 --1.10359841585 -0.120173942298 --1.10362002253 -0.13743275404 --1.10364437103 -0.154692232609 --1.1036580801 -0.173903878778 --1.10364595056 -0.193113900721 --1.10362136364 -0.210373230279 --1.10359963775 -0.227632254362 --1.10358071327 -0.244890656322 --1.10356476903 -0.262148857117 --1.10355168581 -0.279406577349 --1.10354146362 -0.296664245427 --1.10353413224 -0.313921540976 --1.10352969169 -0.331178881228 --1.10352817177 -0.348435968161 --1.10352951288 -0.365693248808 --1.10353374481 -0.382950410247 --1.10354092717 -0.400207877159 --1.10355100035 -0.417465344071 --1.10356390476 -0.434723228216 --1.1035797596 -0.451981239021 --1.10359841585 -0.469239793718 --1.10361999273 -0.486498601735 --1.10364440083 -0.503758065403 --1.10365810991 -0.522969707847 --1.10364595056 -0.542179763317 --1.10362133384 -0.559439092874 --1.10359960795 -0.576698109508 --1.10358074307 -0.593956500292 --1.10356476903 -0.611214697361 --1.10355165601 -0.628472432494 --1.10354146362 -0.645730108023 --1.10353413224 -0.662987411022 --1.10352972149 -0.680244728923 --1.10352820158 -0.697501823306 --1.10352951288 -0.714759111404 --1.10353377462 -0.732016250491 --1.10354092717 -0.749273732305 --1.10355097055 -0.766531199217 --1.10356390476 -0.783789068461 --1.1035797596 -0.801047086716 --1.10359841585 -0.818305656314 --1.10361996293 -0.83556444943 --1.10364440083 -0.852823927999 --1.10365813971 -0.872035592794 --1.10364595056 -0.891245603561 --1.10362133384 -0.908504933119 --1.10359960795 -0.925763949752 --1.10358074307 -0.943022325635 --1.10356476903 -0.960280552506 --1.10355165601 -0.97753828764 --1.10354146362 -0.994795933364 --1.10353413224 -1.01205322146 --1.10352972149 -1.02931058407 --1.10352820158 -1.04656767845 --1.10352951288 -1.06382492184 --1.10353374481 -1.08108207583 --1.10354092717 -1.09833958745 --1.10355100035 -1.11559703946 --1.10356390476 -1.13285490871 --1.1035797596 -1.15011292696 --1.10359841585 -1.16737148166 --1.10361996293 -1.18463030457 --1.10364437103 -1.20188978314 --1.10365810991 -1.22110143304 --1.10364595056 -1.24031147361 --1.10362133384 -1.25757080317 --1.10359960795 -1.2748298049 --1.10358071327 -1.29208818078 --1.10356476903 -1.30934640765 --1.10355168581 -1.32660415768 --1.10354146362 -1.34386181831 --1.10353413224 -1.36111909151 --1.10352969169 -1.37837642431 --1.10352823138 -1.3956335485 --1.10352957249 -1.4128908217 --1.10353377462 -1.43014797568 --1.10354092717 -1.44740542769 --1.10355100035 -1.46466287971 --1.10356390476 -1.48192077875 --1.10357972979 -1.49917879701 --1.10359838605 -1.51643735171 --1.10361996293 -1.53369614482 --1.10364440083 -1.55095562339 --1.10365810991 -1.57016727329 --1.10364598036 -1.58937728405 --1.10362136364 -1.60663661361 --1.10359960795 -1.62389564514 --1.10358074307 -1.64115405083 --1.10356476903 -1.6584122777 --1.10355168581 -1.67566999793 --1.10354149341 -1.69292762876 --1.10353413224 -1.71018493176 --1.10352969169 -1.72744229436 --1.10352817177 -1.74469935894 --1.10352954269 -1.76195666194 --1.10353380442 -1.77921381593 --1.10354095697 -1.79647126794 --1.10355100035 -1.81372871995 --1.10356390476 -1.83098658919 --1.1035797596 -1.84824463725 --1.10359844565 -1.86550319195 --1.10361999273 -1.88276198506 --1.10364437103 -1.90002146363 --1.10365810991 -1.91923311353 --1.10364595056 -1.9384431541 --1.10362133384 -1.95570251345 --1.10359960795 -1.97296151519 --1.10358071327 -1.99021992087 --1.10356476903 -2.00747811794 --1.10355168581 -2.02473580837 --1.10354146362 -2.0419934988 --1.10353413224 -2.0592508316 --1.10352969169 -2.07650816441 --1.10352820158 -2.09376525879 --1.10352957249 -2.11102259159 --1.10353380442 -2.12827968597 --1.10354092717 -2.14553713799 --1.10355097055 -2.1627946496 --1.10356390476 -2.18005245924 --1.1035797596 -2.19731044769 --1.10359844565 -2.2145690918 --1.10362002253 -2.23182791472 --1.10364440083 -2.24908733368 --1.10365810991 -2.26829898358 --1.10364595056 -2.28750902414 --1.10362133384 -2.30476832389 --1.10359960795 -2.32202732563 --1.10358071327 -2.33928573132 --1.10356476903 -2.35654395819 --1.10355168581 -2.37380164862 --1.10354146362 -2.39105927944 --1.10353413224 -2.40831661224 --1.10352972149 -2.42557394504 --1.10352820158 -2.44283103943 --1.10352951288 -2.46008837223 --1.10353374481 -2.47734552622 --1.10354092717 -2.49460297823 --1.10355100035 -2.51186043024 --1.10356390476 -2.52911829948 --1.10357972979 -2.54637634754 --1.10359835625 -2.56363493204 --1.10361996293 -2.58089369536 --1.10364440083 -2.59815317392 --1.10365810991 -2.61736488342 --1.10364595056 -2.63657492399 --1.10362133384 -2.65383416414 --1.10359960795 -2.67109316587 --1.10358071327 -2.68835157156 --1.10356476903 -2.70560979843 --1.10355168581 -2.72286760807 --1.10354146362 -2.74012523889 --1.10353413224 -2.75738245249 --1.10352969169 -2.77463984489 --1.10352817177 -2.79189693927 --1.10352951288 -2.80915415287 --1.10353380442 -2.82641136646 --1.10354095697 -2.84366881847 --1.10355100035 -2.86092627048 --1.10356393456 -2.87818419934 --1.1035797596 -2.89544218779 --1.10359838605 -2.91270071268 --1.10361996293 -2.9299595356 --1.10364440083 -2.94721901417 --1.10365810991 -2.96643066406 --1.10364598036 -2.98564070463 --1.10362133384 -3.00290006399 --1.10359957814 -3.02015906573 --1.10358074307 -3.03741747141 --1.10356476903 -3.05467569828 --1.10355165601 -3.07193338871 --1.10354146362 -3.08919107914 --1.10353416204 -3.10644835234 --1.1035297513 -3.12370568514 --1.10352817177 -3.1409627517 --1.10352951288 --3.1249653101 --1.10353380442 --3.10770809651 --1.10354092717 --3.0904506445 --1.10355097055 --3.07319319249 --1.10356390476 --3.05593526363 --1.10357972979 --3.03867727518 --1.10359841585 --3.02141875029 --1.10362002253 --3.00415992737 --1.10364437103 --2.9869004488 --1.1036580801 --2.9676887989 --1.10364595056 --2.94847875833 --1.10362136364 --2.93121939898 --1.10359963775 --2.91396033764 --1.10358071327 --2.89670193195 --1.10356476903 --2.87944376469 --1.10355168581 --2.86218607426 --1.10354146362 --2.84492838383 --1.10353413224 --2.82767105103 --1.10352969169 --2.81041371822 --1.10352817177 --2.79315668344 --1.10352951288 --2.77589941025 --1.10353374481 --2.75864225626 --1.10354092717 --2.74138474464 --1.10355100035 --2.72412729263 --1.10356390476 --2.70686948299 --1.1035797596 --2.68961143494 --1.10359841585 --2.67235285043 --1.10361999273 --2.65509402752 --1.10364440083 --2.63783454895 --1.10365810991 --2.61862295866 --1.10364595056 --2.59941291809 --1.10362133384 --2.58215355873 --1.10359960795 --2.564894557 --1.10358074307 --2.54763615131 --1.10356476903 --2.53037792444 --1.10355165601 --2.51312023401 --1.10354146362 --2.49586260319 --1.10353413224 --2.47860527039 --1.10352972149 --2.46134793758 --1.10352820158 --2.4440908432 --1.10352951288 --2.4268335104 --1.10353377462 --2.40957635641 --1.10354092717 --2.3923189044 --1.10355097055 --2.37506145239 --1.10356390476 --2.35780358315 --1.1035797596 --2.34054559469 --1.10359841585 --2.32328701019 --1.10361996293 --2.30602818727 --1.10364440083 --2.2887687087 --1.10365813971 --2.26955699921 --1.10364595056 --2.25034701824 --1.10362133384 --2.23308777809 --1.10359960795 --2.21582877636 --1.10358074307 --2.19857037067 --1.10356476903 --2.1813120842 --1.10355165601 --2.16405433416 --1.10354146362 --2.14679670334 --1.10353413224 --2.12953943014 --1.10352972149 --2.11228209734 --1.10352820158 --2.09502500295 --1.10352951288 --2.07776772976 --1.10353374481 --2.06051057577 --1.10354092717 --2.04325312376 --1.10355100035 --2.02599561215 --1.10356390476 --2.0087376833 --1.1035797596 --1.99147969484 --1.10359841585 --1.97422114015 --1.10361996293 --1.95696234703 --1.10364437103 --1.93970286846 --1.10365810991 --1.92049121857 --1.10364595056 --1.9012812078 --1.10362133384 --1.88402187825 --1.10359960795 --1.86676284671 --1.10358071327 --1.84950444102 --1.10356476903 --1.83224624396 --1.10355168581 --1.81498852372 --1.10354146362 --1.79773086309 --1.10353413224 --1.7804735601 --1.10352969169 --1.76321619749 --1.10352823138 --1.74595910311 --1.10352957249 --1.72870182991 --1.10353377462 --1.71144467592 --1.10354092717 --1.69418722391 --1.10355100035 --1.6769297421 --1.10356390476 --1.65967187285 --1.10357972979 --1.6424138844 --1.10359838605 --1.6251552999 --1.10361996293 --1.60789647698 --1.10364440083 --1.59063702822 --1.10365810991 --1.57142537832 --1.10364598036 --1.55221533775 --1.10362136364 --1.5349560082 --1.10359960795 --1.51769700646 --1.10358074307 --1.50043860078 --1.10356476903 --1.48318037391 --1.10355168581 --1.46592268348 --1.10354149341 --1.44866502285 --1.10353413224 --1.43140771985 --1.10352969169 --1.41415038705 --1.10352817177 --1.39689329267 --1.10352954269 --1.37963601947 --1.10353380442 --1.36237886548 --1.10354095697 --1.34512138367 --1.10355100035 --1.32786393166 --1.10356390476 --1.31060603261 --1.1035797596 --1.29334798455 --1.10359844565 --1.27608942985 --1.10361999273 --1.25883063674 --1.10364437103 --1.24157115817 --1.10365810991 --1.22235950828 --1.10364595056 --1.20314949751 --1.10362133384 --1.18589016795 --1.10359960795 --1.16863113642 --1.10358071327 --1.15137276054 --1.10356476903 --1.13411456346 --1.10355168581 --1.11685681343 --1.10354146362 --1.099599123 --1.10353413224 --1.0823418498 --1.10352969169 --1.065084517 --1.10352820158 --1.04782742262 --1.10352957249 --1.03057014942 --1.10353380442 --1.01331299543 --1.10354092717 --0.996055543423 --1.10355097055 --0.978798061609 --1.10356390476 --0.961540162563 --1.1035797596 --0.944282159209 --1.10359844565 --0.927023589611 --1.10362002253 --0.909764796495 --1.10364440083 --0.892505332827 --1.10365810991 --0.873293682933 --1.10364595056 --0.854083672166 --1.10362133384 --0.836824327708 --1.10359960795 --0.819565296173 --1.10358071327 --0.802306905389 --1.10356476903 --0.785048693418 --1.10355168581 --0.767790973187 --1.10354146362 --0.750533312559 --1.10353413224 --0.73327600956 --1.10352972149 --0.716018676758 --1.10352820158 --0.698761582375 --1.10352951288 --0.681504294276 --1.10353374481 --0.664247125387 --1.10354092717 --0.646989658475 --1.10355100035 --0.629732206464 --1.10356390476 --0.612474322319 --1.10357972979 --0.595216318965 --1.10359835625 --0.577957749367 --1.10361996293 --0.560698956251 --1.10364440083 --0.543439492583 --1.10365810991 --0.524227827788 --1.10364595056 --0.505017787218 --1.10362133384 --0.48775845021 --1.10359960795 --0.470499448478 --1.10358071327 --0.453241042793 --1.10356476903 --0.435982823372 --1.10355168581 --0.41872511059 --1.10354146362 --0.401467457414 --1.10353413224 --0.384210169315 --1.10352969169 --0.366952821612 --1.10352817177 --0.349695727229 --1.10352951288 --0.332438454032 --1.10353380442 --0.315181292594 --1.10354095697 --0.297923825681 --1.10355100035 --0.28066637367 --1.10356393456 --0.263408482075 --1.1035797596 --0.24615046382 --1.10359838605 --0.228891897947 --1.10361996293 --0.211633093655 --1.10364440083 --0.194373622537 --1.10365810991 --0.175161965191 --1.08650758862 --0.155948743224 --1.08648315072 --0.138689428568 --1.08646157384 --0.121430421248 --1.08644285798 --0.104172034189 --1.08642697334 --0.0869138296694 --1.08641394973 --0.0696561206132 --1.08640387655 --0.0523984795436 --1.08639666438 --0.0351412054151 --1.08639225363 --0.0178838709835 --1.08639070391 --0.000626784283665 --1.08639207482 -0.0166304835584 --1.08639630675 -0.0338876284659 --1.0864033699 -0.051145077683 --1.08641335368 -0.0684025269002 --1.08642616868 -0.0856604017317 --1.0864418745 -0.10291840136 --1.08646041155 -0.120176948607 --1.08648183942 -0.137435745448 --1.08650603891 -0.154695209115 --1.08651962877 -0.173906967044 --1.08650758862 -0.193117108196 --1.08648318052 -0.210376422852 --1.08646160364 -0.227635424584 --1.08644285798 -0.244893819094 --1.08642703295 -0.262152016163 --1.08641403914 -0.279409721494 --1.08640390635 -0.296667374671 --1.08639663458 -0.313924655319 --1.08639225363 -0.33118198812 --1.08639073372 -0.348439067602 --1.08639204502 -0.365696333349 --1.08639627695 -0.382953472436 --1.0864033699 -0.400210924447 --1.08641332388 -0.417468383908 --1.08642613888 -0.434726253152 --1.0864418745 -0.451984249055 --1.08646041155 -0.469242788851 --1.08648183942 -0.486501596868 --1.08650603891 -0.503761045635 --1.08651962876 -0.522972792387 --1.08650758862 -0.542182967067 --1.08648318052 -0.559442296624 --1.08646160364 -0.576701298356 --1.08644285798 -0.593959674239 --1.08642700315 -0.611217871308 --1.08641400933 -0.628475576639 --1.08640390635 -0.645733222365 --1.08639663458 -0.662990510464 --1.08639222383 -0.680247828364 --1.08639070391 -0.697504907847 --1.08639204502 -0.714762181044 --1.08639627695 -0.73201932013 --1.0864033699 -0.749276772142 --1.08641332388 -0.766534224153 --1.08642616868 -0.783792093396 --1.08644190431 -0.801050096751 --1.08646041155 -0.818308651447 --1.08648180962 -0.835567444563 --1.0865060091 -0.852826908231 --1.08651962876 -0.872038662434 --1.08650758862 -0.89124879241 --1.08648318052 -0.908508107066 --1.08646160364 -0.925767108798 --1.08644285798 -0.943025499583 --1.08642700315 -0.960283711553 --1.08641400933 -0.977541431785 --1.08640390635 -0.994799062609 --1.08639663458 -1.0120563209 --1.08639222383 -1.02931368351 --1.08639070391 -1.04657077789 --1.08639204502 -1.06382802129 --1.08639627695 -1.08108517528 --1.0864033699 -1.09834265709 --1.08641332388 -1.1156001091 --1.08642613888 -1.13285797834 --1.0864418745 -1.15011593699 --1.08646041155 -1.16737446189 --1.08648180962 -1.18463328481 --1.0865060091 -1.20189276338 --1.08651962876 -1.22110453248 --1.08650755882 -1.24031466246 --1.08648315072 -1.25757399202 --1.08646160364 -1.27483299375 --1.08644285798 -1.29209136963 --1.08642703295 -1.3093495965 --1.08641403914 -1.32660731673 --1.08640390635 -1.34386494756 --1.08639663458 -1.36112222076 --1.08639222383 -1.37837955356 --1.08639073372 -1.39563664794 --1.08639207482 -1.41289389133 --1.08639627695 -1.43015101552 --1.0864033401 -1.44740846753 --1.08641332388 -1.46466591954 --1.08642619848 -1.48192378879 --1.08644190431 -1.49918177724 --1.08646038175 -1.51644036174 --1.08648180962 -1.53369918466 --1.08650603891 -1.55095863343 --1.08651962877 -1.57017037273 --1.08650761843 -1.5893805027 --1.08648321033 -1.60663983226 --1.08646160364 -1.62389883399 --1.08644285798 -1.64115720988 --1.08642697334 -1.65841540694 --1.08641397953 -1.67567309737 --1.08640390635 -1.6929307282 --1.08639660477 -1.71018803119 --1.08639222383 -1.7274453938 --1.08639073372 -1.74470245838 --1.08639204502 -1.76195973158 --1.08639627695 -1.77921688557 --1.0864033699 -1.79647433758 --1.08641332388 -1.81373178959 --1.08642616868 -1.83098965883 --1.08644190431 -1.84824767709 --1.08646041155 -1.86550620198 --1.08648180962 -1.8827649653 --1.08650603891 -1.90002444387 --1.08651965857 -1.91923621297 --1.08650758862 -1.93844634295 --1.08648318052 -1.9557056725 --1.08646160364 -1.97296467423 --1.08644285798 -1.99022307992 --1.08642703295 -2.00748127699 --1.08641403914 -2.02473896742 --1.08640390635 -2.04199659824 --1.08639663458 -2.05925387144 --1.08639222383 -2.07651120424 --1.08639073372 -2.09376829863 --1.08639207482 -2.11102563143 --1.08639627695 -2.12828278542 --1.0864033699 -2.14554023743 --1.08641332388 -2.16279768944 --1.08642616868 -2.18005549908 --1.08644190431 -2.19731348753 --1.08646041155 -2.21457207203 --1.08648183942 -2.23183083534 --1.08650606871 -2.24909025431 --1.08651965857 -2.26830208302 --1.08650758862 -2.28751224279 --1.08648318052 -2.30477148294 --1.08646160364 -2.32203048468 --1.08644285798 -2.33928889036 --1.08642703295 -2.35654711724 --1.08641403914 -2.37380480766 --1.08640390635 -2.39106243849 --1.08639663458 -2.40831977129 --1.08639222383 -2.42557710409 --1.08639070391 -2.44283419847 --1.08639204502 -2.46009147167 --1.08639627695 -2.47734856606 --1.0864033699 -2.49460601807 --1.08641332388 -2.51186347008 --1.08642616868 -2.52912133932 --1.08644190431 -2.54637932777 --1.08646038175 -2.56363791227 --1.08648180962 -2.58089673519 --1.08650606871 -2.59815615416 --1.08651965857 -2.61736792326 --1.08650758862 -2.63657808304 --1.08648318052 -2.65383738279 --1.08646160364 -2.67109638452 --1.08644285798 -2.68835479021 --1.08642703295 -2.70561301708 --1.08641403914 -2.72287076712 --1.08640390635 -2.74012839794 --1.08639663458 -2.75738561153 --1.08639222383 -2.77464294433 --1.08639070391 -2.79190003872 --1.08639204502 -2.80915725231 --1.08639630675 -2.8264144063 --1.0864033997 -2.84367185831 --1.08641335368 -2.86092931032 --1.08642616868 -2.87818723917 --1.0864418745 -2.89544522762 --1.08646038175 -2.91270375252 --1.08648180962 -2.92996257543 --1.08650606871 -2.947222054 --1.08651965857 -2.9664337635 --1.08650758862 -2.98564392328 --1.08648315072 -3.00290328264 --1.08646157384 -3.02016228438 --1.08644285798 -3.03742069006 --1.08642697334 -3.05467885733 --1.08641394973 -3.07193654776 --1.08640387655 -3.08919417858 --1.08639666438 -3.10645139217 --1.08639225363 -3.12370872497 --1.08639070391 -3.14096585114 --1.08639207482 --3.12496221066 --1.08639630675 --3.10770505667 --1.0864033699 --3.09044760466 --1.08641335368 --3.07319015265 --1.08642616868 --3.0559322238 --1.0864418745 --3.03867423534 --1.08646041155 --3.02141571045 --1.08648183942 --3.00415688753 --1.08650603891 --2.98689740896 --1.08651962877 --2.96768569946 --1.08650758862 --2.94847553968 --1.08648318052 --2.93121618033 --1.08646160364 --2.91395717859 --1.08644285798 --2.89669877291 --1.08642703295 --2.87944060564 --1.08641403914 --2.86218291521 --1.08640390635 --2.84492528438 --1.08639663458 --2.82766801119 --1.08639225363 --2.81041067838 --1.08639073372 --2.79315364361 --1.08639204502 --2.7758963108 --1.08639627695 --2.75863909721 --1.0864033699 --2.7413816452 --1.08641332388 --2.72412419319 --1.08642613888 --2.70686638355 --1.0864418745 --2.6896083951 --1.08646041155 --2.6723498702 --1.08648183942 --2.65509110689 --1.08650603891 --2.63783162832 --1.08651962876 --2.61861985921 --1.08650758862 --2.59940969944 --1.08648318052 --2.58215039969 --1.08646160364 --2.56489139795 --1.08644285798 --2.54763299227 --1.08642700315 --2.53037476539 --1.08641400933 --2.51311707496 --1.08640390635 --2.49585944414 --1.08639663458 --2.47860211134 --1.08639222383 --2.46134477854 --1.08639070391 --2.44408774376 --1.08639204502 --2.42683047056 --1.08639627695 --2.40957331657 --1.0864033699 --2.39231586456 --1.08641332388 --2.37505841255 --1.08642616868 --2.35780060291 --1.08644190431 --2.34054261446 --1.08646041155 --2.32328397035 --1.08648180962 --2.30602514744 --1.0865060091 --2.28876572848 --1.08651962876 --2.26955395937 --1.08650758862 --2.2503438592 --1.08648318052 --2.23308461905 --1.08646160364 --2.21582561731 --1.08644285798 --2.19856721163 --1.08642700315 --2.18130898475 --1.08641400933 --2.16405123472 --1.08640390635 --2.14679354429 --1.08639663458 --2.12953627109 --1.08639222383 --2.11227893829 --1.08639070391 --2.09502184391 --1.08639204502 --2.07776463032 --1.08639627695 --2.06050753593 --1.0864033699 --2.04325008392 --1.08641332388 --2.02599257231 --1.08642613888 --2.00873464346 --1.0864418745 --1.99147668481 --1.08646041155 --1.97421815991 --1.08648180962 --1.956959337 --1.0865060091 --1.93969988823 --1.08651962876 --1.92048811913 --1.08650755882 --1.90127795935 --1.08648315072 --1.88401865959 --1.08646160364 --1.86675965786 --1.08644285798 --1.84950128198 --1.08642703295 --1.83224311471 --1.08641403914 --1.81498539448 --1.08640390635 --1.79772773385 --1.08639663458 --1.78047043085 --1.08639222383 --1.76321309805 --1.08639073372 --1.74595603347 --1.08639207482 --1.72869876027 --1.08639627695 --1.71144160628 --1.0864033401 --1.69418415427 --1.08641332388 --1.67692670226 --1.08642619848 --1.65966883302 --1.08644190431 --1.64241084456 --1.08646038175 --1.62515228987 --1.08648180962 --1.60789349675 --1.08650603891 --1.59063404799 --1.08651962877 --1.57142227888 --1.08650761843 --1.5522121489 --1.08648321033 --1.53495284915 --1.08646160364 --1.51769384742 --1.08644285798 --1.50043544173 --1.08642697334 --1.48317721486 --1.08641397953 --1.46591952443 --1.08640390635 --1.44866189361 --1.08639660477 --1.43140462041 --1.08639222383 --1.41414728761 --1.08639073372 --1.39689019322 --1.08639204502 --1.37963292003 --1.08639627695 --1.36237576604 --1.0864033699 --1.34511831403 --1.08641332388 --1.32786089182 --1.08642616868 --1.31060299277 --1.08644190431 --1.29334497452 --1.08646041155 --1.27608644962 --1.08648180962 --1.25882765651 --1.08650603891 --1.24156820774 --1.08651965857 --1.22235643864 --1.08650758862 --1.20314630866 --1.08648318052 --1.1858869791 --1.08646160364 --1.16862794757 --1.08644285798 --1.15136960149 --1.08642703295 --1.13411143422 --1.08641403914 --1.11685368419 --1.08640390635 --1.09959599375 --1.08639663458 --1.08233872056 --1.08639222383 --1.06508138776 --1.08639073372 --1.04782432318 --1.08639207482 --1.03056704998 --1.08639627695 --1.01330989599 --1.0864033699 --0.996052473784 --1.08641332388 --0.978795021772 --1.08642616868 --0.961537137627 --1.08644190431 --0.944279134273 --1.08646041155 --0.927020579576 --1.08648183942 --0.909761801362 --1.08650606871 --0.892502352595 --1.08651965857 --0.873290583492 --1.08650758862 --0.854080438614 --1.08648318052 --0.836821123958 --1.08646160364 --0.819562122226 --1.08644285798 --0.802303746343 --1.08642703295 --0.785045549274 --1.08641403914 --0.767787829042 --1.08640390635 --0.750530183316 --1.08639663458 --0.733272910118 --1.08639222383 --0.716015577317 --1.08639070391 --0.698758482933 --1.08639204502 --0.681501209736 --1.08639627695 --0.664244070649 --1.0864033699 --0.646986618638 --1.08641332388 --0.629729166627 --1.08642616868 --0.612471297383 --1.08644190431 --0.59521330893 --1.08646038175 --0.577954754233 --1.08648180962 --0.560695961118 --1.08650606871 --0.543436512351 --1.08651965857 --0.524224743247 --1.08650758862 --0.505014590919 --1.08648318052 --0.487755268812 --1.08646160364 --0.47049626708 --1.08644285798 --0.453237868846 --1.08642703295 --0.435979664326 --1.08641403914 --0.418721958995 --1.08640390635 --0.401464320719 --1.08639663458 --0.384207054973 --1.08639222383 --0.366949722171 --1.08639070391 --0.349692627788 --1.08639204502 --0.332435362041 --1.08639630675 --0.315178222954 --1.0864033997 --0.297920778394 --1.08641335368 --0.280663341284 --1.08642616868 --0.263405457139 --1.0864418745 --0.24614745006 --1.08646038175 --0.228888902813 --1.08648180962 --0.211630109698 --1.08650606871 --0.194370649755 --1.08651965857 --0.175158880651 --1.06934481859 --0.155945494771 --1.06932061911 --0.138686198741 --1.06929922104 --0.121427206322 --1.06928062439 --0.104168830439 --1.06926485896 --0.0869106370956 --1.06925192476 --0.0696529392153 --1.06924191118 --0.0523953102529 --1.06923475862 --0.0351380496286 --1.06923037767 --0.0178807280026 --1.06922888756 --0.000623654341323 --1.06923025846 -0.0166336006951 --1.06923443079 -0.0338907320984 --1.06924143434 -0.0511481678113 --1.06925135851 -0.0684056049213 --1.0692640841 -0.0856634695083 --1.06927964092 -0.102921456098 --1.06929799915 -0.120179986581 --1.0693192482 -0.137438770384 --1.06934329868 -0.154698215425 --1.06935676932 -0.173910092563 --1.06934484839 -0.193120356649 --1.06932064891 -0.210379656404 --1.06929922104 -0.227638643235 --1.06928062439 -0.244897022844 --1.06926488877 -0.262155205012 --1.06925201416 -0.279412895441 --1.06924197078 -0.296670533717 --1.06923475862 -0.313927799464 --1.06923040748 -0.331185132265 --1.06922888756 -0.348442211747 --1.06923019886 -0.365699455142 --1.06923440099 -0.382956571877 --1.06924143434 -0.400214008987 --1.06925132871 -0.417471453547 --1.0692640543 -0.43472931534 --1.06927964092 -0.451987296343 --1.06929799915 -0.469245821238 --1.0693192482 -0.486504621804 --1.06934326887 -0.503764078021 --1.06935673952 -0.522975936532 --1.06934481859 -0.542186185717 --1.06932061911 -0.559445500374 --1.06929922104 -0.576704502106 --1.06928062439 -0.593962877989 --1.06926491857 -0.611221075058 --1.06925201416 -0.628478765488 --1.06924194098 -0.645736381412 --1.06923475862 -0.662993654609 --1.06923037767 -0.68025097251 --1.06922885775 -0.697508022189 --1.06923022866 -0.714765265584 --1.06923446059 -0.732022404671 --1.06924146414 -0.749279856682 --1.06925132871 -0.766537278891 --1.0692640841 -0.783795148134 --1.06927967072 -0.801053166389 --1.06929799915 -0.818311706186 --1.0693192482 -0.8355704844 --1.06934326887 -0.852829933166 --1.06935673952 -0.872041806579 --1.06934484839 -0.891252055764 --1.06932064891 -0.908511340618 --1.06929922104 -0.925770327449 --1.06928062439 -0.943028718233 --1.06926488877 -0.960286900401 --1.06925201416 -0.977544605732 --1.06924197078 -0.994802266359 --1.06923475862 -1.01205950976 --1.06923037767 -1.02931681275 --1.06922885775 -1.04657390713 --1.06923022866 -1.06383118034 --1.06923443079 -1.08108830452 --1.06924143434 -1.09834572673 --1.06925132871 -1.11560317874 --1.0692640245 -1.13286104799 --1.06927961111 -1.15011900663 --1.06929799915 -1.16737753153 --1.0693192482 -1.18463632465 --1.06934326887 -1.20189580321 --1.06935673952 -1.22110769152 --1.06934481859 -1.24031791091 --1.0693205893 -1.25757721066 --1.06929919124 -1.2748362124 --1.06928062439 -1.29209458828 --1.06926488877 -1.30935278535 --1.06925201416 -1.32661047578 --1.06924197078 -1.34386810661 --1.06923475862 -1.3611253798 --1.06923037767 -1.3783827126 --1.06922885775 -1.39563977718 --1.06923019886 -1.41289699078 --1.06923440099 -1.43015411496 --1.06924140453 -1.44741156697 --1.0692512989 -1.46466901898 --1.0692640543 -1.48192688823 --1.06927964092 -1.49918484688 --1.06929799915 -1.51644340158 --1.0693192482 -1.5337022245 --1.06934329868 -1.55096164346 --1.06935679913 -1.57017347217 --1.0693448484 -1.58938375115 --1.06932061911 -1.60664308071 --1.06929922104 -1.62390205264 --1.06928062439 -1.64116042852 --1.06926488876 -1.65841862559 --1.06925201416 -1.67567631602 --1.06924197078 -1.69293394685 --1.06923472881 -1.71019119024 --1.06923037767 -1.72744849324 --1.06922888756 -1.74470558762 --1.06923022866 -1.76196286082 --1.06923443079 -1.77921998501 --1.06924143434 -1.79647740722 --1.06925132871 -1.81373485923 --1.0692640841 -1.83099272847 --1.06927967072 -1.84825071693 --1.06929799915 -1.86550924182 --1.0693192482 -1.88276800513 --1.06934329868 -1.9000274837 --1.06935676932 -1.91923937201 --1.06934484839 -1.9384495914 --1.06932064891 -1.95570889115 --1.06929922104 -1.97296789289 --1.06928062439 -1.99022626877 --1.06926488877 -2.00748449564 --1.06925201416 -2.02474218607 --1.06924197078 -2.04199975729 --1.06923475862 -2.05925697088 --1.06923037767 -2.07651430368 --1.06922888756 -2.09377139807 --1.06923022866 -2.11102867127 --1.06923440099 -2.12828588486 --1.06924143434 -2.14554333687 --1.06925132871 -2.16280072928 --1.0692640543 -2.18005853892 --1.06927964092 -2.19731652737 --1.06929799915 -2.21457505226 --1.0693192482 -2.23183381558 --1.06934329868 -2.24909329414 --1.06935676932 -2.26830518246 --1.06934481859 -2.28751546144 --1.06932061911 -2.3047747612 --1.06929922104 -2.32203376293 --1.06928062439 -2.33929210901 --1.06926488877 -2.35655027628 --1.06925198436 -2.37380796671 --1.06924194098 -2.39106559753 --1.06923475862 -2.40832293034 --1.06923037767 -2.42558026314 --1.06922885775 -2.44283735752 --1.06923022866 -2.46009463072 --1.06923443079 -2.4773517251 --1.06924143434 -2.49460911751 --1.06925132871 -2.51186656952 --1.0692640543 -2.52912449837 --1.06927964092 -2.54638242721 --1.06929799915 -2.56364095211 --1.0693192482 -2.58089977503 --1.06934329868 -2.59815913439 --1.06935676932 -2.6173710227 --1.06934481859 -2.63658130169 --1.0693205893 -2.65384060144 --1.06929919124 -2.67109960317 --1.06928062439 -2.68835800886 --1.06926491857 -2.70561623573 --1.06925201416 -2.72287392616 --1.06924194098 -2.74013155699 --1.06923475862 -2.75738877058 --1.06923037767 -2.77464604378 --1.06922885775 -2.79190313816 --1.06923022866 -2.80916041136 --1.06923443079 -2.82641750574 --1.06924143434 -2.84367495775 --1.06925135851 -2.86093240977 --1.0692640543 -2.87819027901 --1.06927961111 -2.89544826746 --1.06929799915 -2.91270679235 --1.0693192482 -2.92996555567 --1.06934329868 -2.94722503424 --1.06935676932 -2.96643692255 --1.06934481859 -2.98564714193 --1.06932061911 -3.00290644169 --1.06929922104 -3.02016544342 --1.06928062439 -3.03742384911 --1.06926485896 -3.05468201637 --1.06925192476 -3.0719397068 --1.06924191118 -3.08919733763 --1.06923475862 -3.10645455122 --1.06923037767 -3.12371188402 --1.06922888756 -3.14096901019 --1.06923025846 --3.12495905161 --1.06923443079 --3.10770195723 --1.06924143434 --3.09044450522 --1.06925135851 --3.0731870532 --1.0692640841 --3.05592918396 --1.06927964092 --3.0386711955 --1.06929799915 --3.02141267061 --1.0693192482 --3.00415384769 --1.06934329868 --2.98689436913 --1.06935676932 --2.96768254042 --1.06934484839 --2.94847226143 --1.06932064891 --2.93121296168 --1.06929922104 --2.91395401955 --1.06928062439 --2.89669561386 --1.06926488877 --2.87943744659 --1.06925201416 --2.86217975617 --1.06924197078 --2.84492212534 --1.06923475862 --2.82766491174 --1.06923040748 --2.81040757895 --1.06922888756 --2.79315048456 --1.06923019886 --2.77589321136 --1.06923440099 --2.75863605737 --1.06924143434 --2.74137860536 --1.06925132871 --2.72412115336 --1.0692640543 --2.70686334371 --1.06927964092 --2.68960535526 --1.06929799915 --2.67234683036 --1.0693192482 --2.65508806705 --1.06934326887 --2.63782858849 --1.06935673952 --2.61861670017 --1.06934481859 --2.59940642118 --1.06932061911 --2.58214712143 --1.06929922104 --2.5648881197 --1.06928062439 --2.54762977362 --1.06926491857 --2.53037160635 --1.06925201416 --2.51311391592 --1.06924194098 --2.49585628509 --1.06923475862 --2.47859895229 --1.06923037767 --2.46134161949 --1.06922885775 --2.44408464432 --1.06923022866 --2.42682743072 --1.06923446059 --2.40957021713 --1.06924146414 --2.39231276512 --1.06925132871 --2.37505537271 --1.0692640841 --2.35779750347 --1.06927967072 --2.34053951502 --1.06929799915 --2.32328093052 --1.0693192482 --2.3060221076 --1.06934326887 --2.28876274824 --1.06935673952 --2.26955085993 --1.06934484839 --2.25034058094 --1.06932064891 --2.23308134079 --1.06929922104 --2.21582233906 --1.06928062439 --2.19856393338 --1.06926488877 --2.1813057661 --1.06925201416 --2.16404801607 --1.06924197078 --2.14679032564 --1.06923475862 --2.12953311205 --1.06923037767 --2.11227583885 --1.06922885775 --2.09501874447 --1.06923022866 --2.07776147127 --1.06923443079 --2.06050437689 --1.06924143434 --2.04324692488 --1.06925132871 --2.02598947287 --1.0692640245 --2.00873160362 --1.06927961111 --1.99147361517 --1.06929799915 --1.97421509028 --1.0693192482 --1.95695629716 --1.06934326887 --1.9396968782 --1.06935673952 --1.92048501969 --1.06934481859 --1.9012747407 --1.0693205893 --1.88401544094 --1.06929919124 --1.86675646901 --1.06928062439 --1.84949809313 --1.06926488877 --1.83223989606 --1.06925201416 --1.81498217583 --1.06924197078 --1.797724545 --1.06923475862 --1.78046727181 --1.06923037767 --1.76320996881 --1.06922885775 --1.74595293403 --1.06923019886 --1.72869566083 --1.06923440099 --1.71143850684 --1.06924140453 --1.69418105483 --1.0692512989 --1.67692363262 --1.0692640543 --1.65966579318 --1.06927964092 --1.64240780473 --1.06929799915 --1.62514927984 --1.0693192482 --1.60789051652 --1.06934329868 --1.59063103795 --1.06935679913 --1.57141914964 --1.0693448484 --1.55220893025 --1.06932061911 --1.5349496305 --1.06929922104 --1.51769062877 --1.06928062439 --1.50043225289 --1.06926488876 --1.48317405582 --1.06925201416 --1.46591636539 --1.06924197078 --1.44865873456 --1.06923472881 --1.43140146136 --1.06923037767 --1.41414412856 --1.06922888756 --1.39688703418 --1.06923022866 --1.37962979079 --1.06923443079 --1.3623726666 --1.06924143434 --1.34511521458 --1.06925132871 --1.32785779237 --1.0692640841 --1.31059992314 --1.06927967072 --1.29334193468 --1.06929799915 --1.27608340979 --1.0693192482 --1.25882461667 --1.06934329868 --1.24156519771 --1.06935676932 --1.22235330939 --1.06934484839 --1.2031430304 --1.06932064891 --1.18588373065 --1.06929922104 --1.16862472892 --1.06928062439 --1.15136638284 --1.06926488877 --1.13410821557 --1.06925201416 --1.11685049534 --1.06924197078 --1.09959283471 --1.06923475862 --1.08233556152 --1.06923037767 --1.06507825852 --1.06922888756 --1.04782122373 --1.06923022866 --1.03056395054 --1.06923440099 --1.01330679655 --1.06924143434 --0.996049374343 --1.06925132871 --0.978791952133 --1.0692640543 --0.961534097791 --1.06927964092 --0.944276094437 --1.06929799915 --0.927017554641 --1.0693192482 --0.909758776426 --1.06934329868 --0.892499327659 --1.06935676932 --0.873287439346 --1.06934481859 --0.854077175259 --1.06932061911 --0.836817890406 --1.06929922104 --0.819558918476 --1.06928062439 --0.802300542593 --1.06926488877 --0.785042360425 --1.06925198436 --0.767784655094 --1.06924194098 --0.750527009368 --1.06923475862 --0.733269751072 --1.06923037767 --0.716012433171 --1.06922885775 --0.698755353689 --1.06923022866 --0.681498080492 --1.06923443079 --0.664240956306 --1.06924143434 --0.646983519196 --1.06925132871 --0.629726082087 --1.0692640543 --0.612468227744 --1.06927964092 --0.595210254192 --1.06929799915 --0.577951744199 --1.0693192482 --0.560692951083 --1.06934329868 --0.543433502317 --1.06935676932 --0.524221614003 --1.06934481859 --0.505011335015 --1.0693205893 --0.48775203526 --1.06929919124 --0.47049304843 --1.06928062439 --0.453234665096 --1.06926491857 --0.435976468027 --1.06925201416 --0.418718777597 --1.06924194098 --0.401461154223 --1.06923475862 --0.384203895927 --1.06923037767 --0.366946578026 --1.06922885775 --0.349689498544 --1.06923022866 --0.332432240248 --1.06923443079 --0.315175116062 --1.06924143434 --0.297917686403 --1.06925135851 --0.280660256743 --1.0692640543 --0.2634023875 --1.06927961111 --0.246144395321 --1.06929799915 --0.228885862976 --1.0693192482 --0.211627081037 --1.06934329868 --0.19436763227 --1.06935676932 --0.175155747682 --1.05218559504 --0.155940756202 --1.05216157436 --0.138681482524 --1.05214032531 --0.121422505006 --1.05212190748 --0.104164149612 --1.05210629106 --0.0869059786201 --1.05209347606 --0.0696482984349 --1.05208352208 --0.0523906843737 --1.05207639933 --0.0351334428414 --1.05207204819 --0.017876141239 --1.05207055807 --0.000619086902585 --1.05207189917 -0.0166381490417 --1.0520760715 -0.0338952620514 --1.05208304524 -0.0511526782066 --1.05209288001 -0.0684100948274 --1.05210548639 -0.0856679398567 --1.052120924 -0.102925909683 --1.05213913322 -0.12018442899 --1.05216020346 -0.137443196028 --1.05218407512 -0.154702618718 --1.05219742656 -0.173914667219 --1.05218556523 -0.193125095218 --1.05216154456 -0.210384372622 --1.05214032531 -0.227643344552 --1.05212190748 -0.244901698083 --1.05210629106 -0.262159861624 --1.05209353566 -0.279417544603 --1.05208358169 -0.296675160527 --1.05207639933 -0.313932403922 --1.05207204819 -0.331189714372 --1.05207055807 -0.348446771502 --1.05207186937 -0.365703999996 --1.0520760417 -0.382961109281 --1.05208304524 -0.40021853149 --1.05209288001 -0.417475953698 --1.05210548639 -0.434733793139 --1.052120924 -0.45199175924 --1.05213913322 -0.469250276685 --1.05216020346 -0.486509039998 --1.05218407512 -0.503768481314 --1.05219742656 -0.52298052609 --1.05218556523 -0.542190939188 --1.05216157437 -0.559450224042 --1.05214035511 -0.57670918107 --1.05212190748 -0.593967527151 --1.05210632086 -0.61122572422 --1.05209350586 -0.62848341465 --1.05208352208 -0.645741000772 --1.05207639933 -0.662998244166 --1.05207204819 -0.680255547166 --1.05207055807 -0.697512596846 --1.05207189917 -0.714769840241 --1.0520760715 -0.732026949525 --1.05208304524 -0.749284371733 --1.05209288001 -0.766541793942 --1.05210548639 -0.783799648285 --1.052120924 -0.801057636738 --1.05213913322 -0.818316146731 --1.05216020346 -0.835574895144 --1.05218407512 -0.852834329009 --1.05219742656 -0.872046381235 --1.05218556523 -0.891256794334 --1.05216157437 -0.908516064286 --1.05214035511 -0.925775036216 --1.05212190748 -0.943033397198 --1.05210629106 -0.960291564465 --1.05209353566 -0.977549239993 --1.05208358169 -0.99480688572 --1.05207639933 -1.01206412912 --1.05207207799 -1.02932140231 --1.05207058787 -1.04657846689 --1.05207189917 -1.06383574009 --1.0520760417 -1.08109283447 --1.05208301544 -1.09835022688 --1.05209288001 -1.11560764909 --1.05210545659 -1.13286548853 --1.05212089419 -1.15012347698 --1.05213913322 -1.16738200188 --1.05216020346 -1.18464076519 --1.05218407512 -1.20190021396 --1.05219742656 -1.22111225128 --1.05218556523 -1.24032264948 --1.05216154456 -1.25758194923 --1.05214032531 -1.27484092116 --1.05212190748 -1.29209923744 --1.05210629106 -1.30935740471 --1.05209350586 -1.32661509514 --1.05208355189 -1.34387272596 --1.05207639933 -1.36112996936 --1.05207204819 -1.37838727236 --1.05207058787 -1.39564433694 --1.05207189917 -1.41290155053 --1.0520760119 -1.43015867472 --1.05208301544 -1.44741609693 --1.05209288001 -1.46467351913 --1.05210545659 -1.48193138838 --1.05212089419 -1.49918931723 --1.05213913322 -1.51644781232 --1.05216020346 -1.53370660544 --1.05218407512 -1.5509660244 --1.05219745636 -1.57017806172 --1.05218556523 -1.58938848972 --1.05216151476 -1.60664775967 --1.05214032531 -1.6239067316 --1.05212190748 -1.64116510748 --1.05210632086 -1.65842330456 --1.05209356547 -1.67568099499 --1.05208358169 -1.69293859601 --1.05207639933 -1.71019580961 --1.05207204819 -1.7274530828 --1.05207055807 -1.74471014738 --1.05207189917 -1.76196742058 --1.0520760417 -1.77922451496 --1.05208301544 -1.79648190737 --1.05209288001 -1.81373932958 --1.05210548639 -1.83099716902 --1.052120924 -1.84825515747 --1.05213913322 -1.86551368237 --1.05216020346 -1.88277244568 --1.05218407512 -1.90003189445 --1.05219742656 -1.91924393177 --1.05218559504 -1.93845432997 --1.05216160417 -1.95571362972 --1.05214035511 -1.97297260165 --1.05212190748 -1.99023094773 --1.05210629106 -2.00748917461 --1.05209353566 -2.02474683523 --1.05208358169 -2.04200440645 --1.05207639933 -2.05926162005 --1.05207204819 -2.07651889324 --1.05207055807 -2.09377598762 --1.05207186937 -2.11103326082 --1.0520760417 -2.12829041481 --1.05208304524 -2.14554780722 --1.05209288001 -2.16280519962 --1.05210545659 -2.18006306887 --1.05212089419 -2.19732105732 --1.05213913322 -2.21457952261 --1.05216020346 -2.23183828592 --1.05218407512 -2.24909776449 --1.05219742656 -2.26830977201 --1.05218556523 -2.28752017021 --1.05216157437 -2.30477946997 --1.05214035511 -2.3220384717 --1.05212190748 -2.33929681778 --1.05210629106 -2.35655498505 --1.05209350586 -2.37381261587 --1.05208355189 -2.39107018709 --1.05207639933 -2.40832751989 --1.05207204819 -2.4255848527 --1.05207055807 -2.44284188747 --1.05207189917 -2.46009916067 --1.0520760417 -2.47735625506 --1.05208301544 -2.49461364746 --1.05209288001 -2.51187109947 --1.05210545659 -2.52912896871 --1.05212089419 -2.54638689757 --1.05213913322 -2.56364536285 --1.05216020346 -2.58090412617 --1.05218407512 -2.59816354513 --1.05219742656 -2.61737561226 --1.05218556523 -2.63658607006 --1.05216154456 -2.65384531021 --1.05214032531 -2.67110425234 --1.05212190748 -2.68836265802 --1.05210632086 -2.70562082529 --1.05209353566 -2.72287851572 --1.05208355189 -2.74013614655 --1.05207639933 -2.75739336014 --1.05207207799 -2.77465063333 --1.05207058787 -2.79190766811 --1.05207189917 -2.80916494131 --1.0520760417 -2.8264220953 --1.05208301544 -2.84367954731 --1.05209288001 -2.86093693972 --1.05210545659 -2.87819474935 --1.05212089419 -2.8954526782 --1.05213913322 -2.9127112031 --1.05216020346 -2.92996996641 --1.05218407512 -2.94722938538 --1.05219742656 -2.96644151211 --1.05218559504 -2.98565191031 --1.05216157436 -3.00291115046 --1.05214032531 -3.02017015219 --1.05212190748 -3.03742849827 --1.05210629106 -3.05468660593 --1.05209347606 -3.07194429636 --1.05208352208 -3.08920198679 --1.05207639933 -3.10645920038 --1.05207204819 -3.12371647358 --1.05207055807 -3.14097354014 --1.05207189917 --3.12495452165 --1.0520760715 --3.10769736767 --1.05208304524 --3.09043991566 --1.05209288001 --3.07318252325 --1.05210548639 --3.05592471361 --1.052120924 --3.03866678476 --1.05213913322 --3.02140825987 --1.05216020346 --3.00414943695 --1.05218407512 --2.98689001798 --1.05219742656 --2.96767795086 --1.05218556523 --2.94846749306 --1.05216154456 --2.93120825291 --1.05214032531 --2.91394931078 --1.05212190748 --2.8966909647 --1.05210629106 --2.87943279743 --1.05209353566 --2.862175107 --1.05208358169 --2.84491747618 --1.05207639933 --2.82766026258 --1.05207204819 --2.81040298939 --1.05207055807 --2.793145895 --1.05207186937 --2.7758886218 --1.0520760417 --2.75863152742 --1.05208304524 --2.74137413502 --1.05209288001 --2.72411674261 --1.05210548639 --2.70685893297 --1.052120924 --2.68960088491 --1.05213913322 --2.67234236002 --1.05216020346 --2.65508365631 --1.05218407512 --2.63782417774 --1.05219742656 --2.61861211061 --1.05218556523 --2.59940171242 --1.05216157437 --2.58214241266 --1.05214035511 --2.56488341093 --1.05212190748 --2.54762512446 --1.05210632086 --2.53036695719 --1.05209350586 --2.51310926676 --1.05208352208 --2.49585169554 --1.05207639933 --2.47859442234 --1.05207204819 --2.46133708954 --1.05207055807 --2.44408005476 --1.05207189917 --2.42682284116 --1.0520760715 --2.40956568718 --1.05208304524 --2.39230829477 --1.05209288001 --2.37505090237 --1.05210548639 --2.35779297352 --1.052120924 --2.34053498507 --1.05213913322 --2.32327651977 --1.05216020346 --2.30601775646 --1.05218407512 --2.2887583375 --1.05219742656 --2.26954627037 --1.05218556523 --2.25033587217 --1.05216157437 --2.23307663202 --1.05214035511 --2.21581763029 --1.05212190748 --2.19855922461 --1.05210629106 --2.18130105734 --1.05209353566 --2.16404336691 --1.05208358169 --2.14678573608 --1.05207639933 --2.12952852249 --1.05207207799 --2.11227124929 --1.05207058787 --2.09501421452 --1.05207189917 --2.07775694132 --1.0520760417 --2.06049984693 --1.05208301544 --2.04324239492 --1.05209288001 --2.02598494291 --1.05210545659 --2.00872713328 --1.05212089419 --1.99146914482 --1.05213913322 --1.97421064973 --1.05216020346 --1.95695191622 --1.05218407512 --1.93969249725 --1.05219742656 --1.92048045993 --1.05218556523 --1.90127000212 --1.05216154456 --1.88401073217 --1.05214032531 --1.86675179005 --1.05212190748 --1.84949341416 --1.05210629106 --1.8322352171 --1.05209350586 --1.81497752666 --1.05208355189 --1.79771992564 --1.05207639933 --1.78046268225 --1.05207204819 --1.76320537925 --1.05207058787 --1.74594834447 --1.05207189917 --1.72869110107 --1.0520760119 --1.71143397689 --1.05208301544 --1.69417655468 --1.05209288001 --1.67691913247 --1.05210545659 --1.65966132283 --1.05212089419 --1.64240336418 --1.05213913322 --1.62514483928 --1.05216020346 --1.60788607598 --1.05218407512 --1.59062662721 --1.05219745636 --1.57141458988 --1.05218556523 --1.55220419168 --1.05216151476 --1.53494489193 --1.05214032531 --1.5176858902 --1.05212190748 --1.50042754412 --1.05210632086 --1.48316940665 --1.05209356547 --1.46591174603 --1.05208358169 --1.4486541152 --1.05207639933 --1.431396842 --1.05207204819 --1.414139539 --1.05207055807 --1.39688247442 --1.05207189917 --1.37962526083 --1.0520760417 --1.36236816645 --1.05208301544 --1.34511074423 --1.05209288001 --1.32785332203 --1.05210548639 --1.31059545278 --1.052120924 --1.29333746433 --1.05213913322 --1.27607896924 --1.05216020346 --1.25882023573 --1.05218407512 --1.24156078697 --1.05219742656 --1.22234871984 --1.05218559504 --1.20313829183 --1.05216160417 --1.18587899208 --1.05214035511 --1.16862002015 --1.05212190748 --1.15136170387 --1.05210629106 --1.13410353661 --1.05209353566 --1.11684584618 --1.05208358169 --1.09958821535 --1.05207639933 --1.08233097196 --1.05207204819 --1.06507369876 --1.05207055807 --1.04781663418 --1.05207186937 --1.03055939079 --1.0520760417 --1.0133022666 --1.05208304524 --0.996044829489 --1.05209288001 --0.978787437082 --1.05210545659 --0.96152959764 --1.05212089419 --0.944271638989 --1.05213913322 --0.927013128996 --1.05216020346 --0.909754350782 --1.05218407512 --0.892494931817 --1.05219742656 --0.873282879591 --1.05218556523 --0.854072451592 --1.05216157437 --0.836813166738 --1.05214035511 --0.819554209709 --1.05212190748 --0.802295863629 --1.05210629106 --0.785037696362 --1.05209350586 --0.767780020833 --1.05208355189 --0.750522390008 --1.05207639933 --0.733265131712 --1.05207204819 --0.716007828712 --1.05207055807 --0.698750779033 --1.05207189917 --0.681493535638 --1.0520760417 --0.664236411452 --1.05208301544 --0.646978989243 --1.05209288001 --0.629721581936 --1.05210545659 --0.612463757396 --1.05212089419 --0.595205798745 --1.05213913322 --0.577947303653 --1.05216020346 --0.560688540339 --1.05218407512 --0.543429091573 --1.05219742656 --0.524217039347 --1.05218556523 --0.505006603897 --1.05216154456 --0.487747311592 --1.05214032531 --0.470488347113 --1.05212190748 --0.453230001032 --1.05210632086 --0.435971818864 --1.05209353566 --0.418714135885 --1.05208355189 --0.401456534863 --1.05207639933 --0.384199291468 --1.05207207799 --0.366941995919 --1.05207058787 --0.349684938788 --1.05207189917 --0.332427695394 --1.0520760417 --0.315170586109 --1.05208301544 --0.2979131639 --1.05209288001 --0.280655749142 --1.05210545659 --0.26339790225 --1.05212089419 --0.246139928699 --1.05213913322 --0.228881418705 --1.05216020346 --0.211622662842 --1.05218407512 --0.194363228976 --1.05219742656 --0.1751511693 --1.03506866097 --0.155935868621 --1.03504481911 --0.13867661357 --1.03502374887 --0.121417658403 --1.03500550985 --0.104159321636 --1.03499001265 --0.0869011711329 --1.03497734666 --0.0696435114369 --1.03496751189 --0.0523859178647 --1.03496044874 --0.0351286958903 --1.0349561274 --0.0178714133799 --1.03495460749 --0.00061437790282 --1.03495588899 -0.016642838018 --1.03496003151 -0.0338999317028 --1.03496697545 -0.0511573292315 --1.03497672081 -0.0684147272259 --1.03498920798 -0.0856725517661 --1.03500452637 -0.102930501104 --1.03502261639 -0.120189005509 --1.03504350781 -0.137447752058 --1.03506717086 -0.154707159847 --1.03508043289 -0.173919383436 --1.03506866097 -0.193129975349 --1.03504478931 -0.210389230401 --1.03502374887 -0.227648183703 --1.03500550985 -0.244906529784 --1.03499004245 -0.26216468215 --1.03497740627 -0.279422342777 --1.03496754169 -0.296679936349 --1.03496041894 -0.313937157393 --1.0349560976 -0.331194445491 --1.03495460749 -0.34845148027 --1.03495591879 -0.365708693862 --1.03496009111 -0.382965788245 --1.03496703505 -0.400223188102 --1.03497675061 -0.417480587959 --1.03498920798 -0.434738397598 --1.03500452637 -0.451996348798 --1.03502261639 -0.469254858792 --1.03504350781 -0.486513584852 --1.03506717086 -0.503772996366 --1.03508043289 -0.522985234857 --1.03506869077 -0.54219584167 --1.03504484892 -0.559455111623 --1.03502377868 -0.576714023948 --1.03500550985 -0.593972340226 --1.03499001265 -0.611230522394 --1.03497734666 -0.628488197923 --1.03496751189 -0.645745784044 --1.03496044874 -0.663002997637 --1.0349561274 -0.680260285735 --1.03495460749 -0.697517320514 --1.03495591879 -0.714774549008 --1.03496006131 -0.732031643391 --1.03496697545 -0.749289035797 --1.03497672081 -0.766546443105 --1.03498920798 -0.783804252744 --1.03500452637 -0.801062211394 --1.03502261639 -0.818320721388 --1.03504350781 -0.835579454899 --1.03506717086 -0.852838858962 --1.03508040309 -0.872051075101 --1.03506863117 -0.891261667013 --1.03504484892 -0.908520922065 --1.03502380848 -0.925779879093 --1.03500553966 -0.943038225174 --1.03499007225 -0.96029637754 --1.03497740627 -0.977554023266 --1.03496754169 -0.994811624289 --1.03496041894 -1.01206886769 --1.0349561274 -1.02932614088 --1.03495463729 -1.04658317566 --1.03495591879 -1.06384041905 --1.03496006131 -1.08109751344 --1.03496697545 -1.09835490584 --1.03497672081 -1.11561229825 --1.03498920798 -1.13287010789 --1.03500452637 -1.15012806654 --1.03502261639 -1.16738656163 --1.03504350781 -1.18464529514 --1.03506717086 -1.20190471411 --1.03508040309 -1.22111693025 --1.03506863117 -1.24032753706 --1.03504481911 -1.25758680701 --1.03502377868 -1.27484574914 --1.03500553966 -1.29210406542 --1.03499007225 -1.30936220288 --1.03497737646 -1.32661986351 --1.03496751189 -1.34387749434 --1.03496044874 -1.36113470793 --1.0349561274 -1.37839198113 --1.03495463729 -1.3956490457 --1.03495591879 -1.4129062593 --1.03496003151 -1.43016335368 --1.03496697545 -1.44742071628 --1.03497672081 -1.46467810869 --1.03498920798 -1.48193597794 --1.03500452637 -1.49919390678 --1.03502261639 -1.51645237207 --1.03504350781 -1.53371113539 --1.03506717086 -1.55097055435 --1.03508043289 -1.57018280029 --1.03506866097 -1.5893933773 --1.03504478931 -1.60665261745 --1.03502374887 -1.62391158938 --1.03500550985 -1.64116993546 --1.03499004245 -1.65842810273 --1.03497740627 -1.67568576336 --1.03496754169 -1.69294333458 --1.03496041894 -1.71020054818 --1.0349560976 -1.72745782137 --1.03495460749 -1.74471485615 --1.03495591879 -1.76197209954 --1.03496006131 -1.77922919393 --1.03496697545 -1.79648658633 --1.03497672081 -1.81374397874 --1.03498920798 -1.83100178838 --1.03500452637 -1.84825974703 --1.03502261639 -1.86551827192 --1.03504350781 -1.88277703523 --1.03506717086 -1.9000364244 --1.03508043289 -1.91924861073 --1.03506869077 -1.93845921755 --1.03504487872 -1.9557185173 --1.03502380848 -1.97297745943 --1.03500553966 -1.99023577571 --1.03499007225 -2.00749397278 --1.03497740627 -2.0247516036 --1.03496754169 -2.04200917482 --1.03496044874 -2.05926638842 --1.0349561274 -2.07652360201 --1.03495460749 -2.09378069639 --1.03495591879 -2.11103796959 --1.03496009111 -2.12829506397 --1.03496700525 -2.14555245638 --1.03497672081 -2.16280984878 --1.03498920798 -2.18006771803 --1.03500452637 -2.19732564688 --1.03502261639 -2.21458411217 --1.03504350781 -2.23184287548 --1.03506717086 -2.24910229444 --1.03508040309 -2.26831448078 --1.03506866097 -2.28752505779 --1.03504484892 -2.30478435755 --1.03502377868 -2.32204329967 --1.03500550985 -2.33930164575 --1.03499004245 -2.35655981302 --1.03497740627 -2.37381738424 --1.03496754169 -2.39107495546 --1.03496041894 -2.40833228827 --1.0349560976 -2.42558962107 --1.03495460749 -2.44284659624 --1.03495591879 -2.46010380983 --1.03496006131 -2.47736090422 --1.03496697545 -2.49461829662 --1.03497672081 -2.51187568903 --1.03498920798 -2.52913349867 --1.03500452637 -2.54639142752 --1.03502261639 -2.56364989281 --1.03504350781 -2.58090865612 --1.03506717086 -2.59816807508 --1.03508043289 -2.61738032103 --1.03506869077 -2.63659095764 --1.03504484892 -2.65385019779 --1.03502377868 -2.67110908031 --1.03500550985 -2.68836742639 --1.03499004245 -2.70562559366 --1.03497740627 -2.72288328409 --1.03496754169 -2.74014091492 --1.03496044874 -2.75739812851 --1.0349561572 -2.77465540171 --1.03495463729 -2.79191237688 --1.03495591879 -2.80916959047 --1.03496006131 -2.82642674446 --1.03496697545 -2.84368413687 --1.03497672081 -2.86094152927 --1.03498920798 -2.87819933891 --1.03500452637 -2.89545726776 --1.03502261639 -2.91271579266 --1.03504350781 -2.92997455597 --1.03506717086 -2.94723397494 --1.03508040309 -2.96644622087 --1.03506866097 -2.98565679788 --1.03504481911 -3.00291603804 --1.03502374887 -3.02017503977 --1.03500550985 -3.03743338585 --1.03499001265 -3.05469149351 --1.03497734666 -3.07194912434 --1.03496751189 -3.08920675516 --1.03496044874 -3.10646396875 --1.0349561274 -3.12372118235 --1.03495460749 -3.14097818931 --1.03495588899 --3.12494987249 --1.03496003151 --3.10769271851 --1.03496697545 --3.0904353261 --1.03497672081 --3.07317793369 --1.03498920798 --3.05592006445 --1.03500452637 --3.0386621356 --1.03502261639 --3.02140367031 --1.03504350781 --3.00414490699 --1.03506717086 --2.98688548803 --1.03508043289 --2.96767324209 --1.03506866097 --2.94846266508 --1.03504478931 --2.93120342493 --1.03502374887 --2.9139444232 --1.03500550985 --2.89668607712 --1.03499004245 --2.87942790985 --1.03497740627 --2.86217027903 --1.03496754169 --2.84491270781 --1.03496041894 --2.82765549421 --1.0349560976 --2.81039828062 --1.03495460749 --2.79314118624 --1.03495591879 --2.77588391304 --1.03496009111 --2.75862681866 --1.03496703505 --2.74136942625 --1.03497675061 --2.72411209345 --1.03498920798 --2.70685428381 --1.03500452637 --2.68959629535 --1.03502261639 --2.67233777046 --1.03504350781 --2.65507906675 --1.03506717086 --2.63781964779 --1.03508043289 --2.61860740185 --1.03506869077 --2.59939682484 --1.03504484892 --2.58213758469 --1.03502377868 --2.56487864256 --1.03500550985 --2.54762029648 --1.03499001265 --2.53036212921 --1.03497734666 --2.51310443878 --1.03496751189 --2.49584686756 --1.03496044874 --2.47858965397 --1.0349561274 --2.46133238077 --1.03495460749 --2.44407534599 --1.03495591879 --2.4268180728 --1.03496006131 --2.40956097841 --1.03496697545 --2.39230364561 --1.03497672081 --2.3750462532 --1.03498920798 --2.35778838396 --1.03500452637 --2.34053039551 --1.03502261639 --2.32327193022 --1.03504350781 --2.30601322651 --1.03506717086 --2.28875380755 --1.03508040309 --2.2695415616 --1.03506863117 --2.25033098459 --1.03504484892 --2.23307174444 --1.03502380848 --2.21581280231 --1.03500553966 --2.19855445623 --1.03499007225 --2.18129628897 --1.03497740627 --2.16403859854 --1.03496754169 --2.14678096771 --1.03496041894 --2.12952375412 --1.0349561274 --2.11226648092 --1.03495463729 --2.09500950575 --1.03495591879 --2.07775229216 --1.03496006131 --2.06049519777 --1.03496697545 --2.04323780536 --1.03497672081 --2.02598035336 --1.03498920798 --2.00872254372 --1.03500452637 --1.99146458507 --1.03502261639 --1.97420608997 --1.03504350781 --1.95694738626 --1.03506717086 --1.9396879673 --1.03508040309 --1.92047572136 --1.03506863117 --1.90126511455 --1.03504481911 --1.8840058744 --1.03502377868 --1.86674693227 --1.03500553966 --1.84948858619 --1.03499007225 --1.83223041892 --1.03497737646 --1.81497275829 --1.03496751189 --1.79771518707 --1.03496044874 --1.78045797348 --1.0349561274 --1.76320067048 --1.03495463729 --1.7459436357 --1.03495591879 --1.72868642211 --1.03496003151 --1.71142932772 --1.03496697545 --1.69417193532 --1.03497672081 --1.67691451311 --1.03498920798 --1.65965670347 --1.03500452637 --1.64239877462 --1.03502261639 --1.62514024973 --1.03504350781 --1.60788148642 --1.03506717086 --1.59062206745 --1.03508043289 --1.57140988111 --1.03506866097 --1.5521993041 --1.03504478931 --1.53494000435 --1.03502374887 --1.51768103242 --1.03500550985 --1.50042271614 --1.03499004245 --1.48316457867 --1.03497740627 --1.46590691805 --1.03496754169 --1.44864931703 --1.03496041894 --1.43139207363 --1.0349560976 --1.41413480043 --1.03495460749 --1.39687776565 --1.03495591879 --1.37962055206 --1.03496006131 --1.36236345768 --1.03496697545 --1.34510606527 --1.03497672081 --1.32784867287 --1.03498920798 --1.31059083343 --1.03500452637 --1.29333287477 --1.03502261639 --1.27607440949 --1.03504350781 --1.25881570578 --1.03506717086 --1.24155625701 --1.03508043289 --1.22234401107 --1.03506869077 --1.20313340425 --1.03504487872 --1.1858741343 --1.03502380848 --1.16861522198 --1.03500553966 --1.1513569057 --1.03499007225 --1.13409873843 --1.03497740627 --1.1168410778 --1.03496754169 --1.09958347678 --1.03496044874 --1.08232626319 --1.0349561274 --1.06506898999 --1.03495460749 --1.04781192541 --1.03495591879 --1.03055471182 --1.03496009111 --1.01329761744 --1.03496700525 --0.996040195227 --1.03497672081 --0.97878280282 --1.03498920798 --0.96152497828 --1.03500452637 --0.94426703453 --1.03502261639 --0.927008539439 --1.03504350781 --0.909749805927 --1.03506717086 --0.892490401864 --1.03508040309 --0.873278170824 --1.03506866097 --0.854067578912 --1.03504484892 --0.836808294058 --1.03502377868 --0.81954935193 --1.03500550985 --0.802291035652 --1.03499004245 --0.785032883287 --1.03497740627 --0.76777523756 --1.03496754169 --0.750517636537 --1.03496041894 --0.733260393143 --1.0349560976 --0.716003105044 --1.03495460749 --0.698746070265 --1.03495591879 --0.681488856673 --1.03496006131 --0.664231747389 --1.03496697545 --0.646974340081 --1.03497672081 --0.629716962576 --1.03498920798 --0.612459152937 --1.03500452637 --0.595201209188 --1.03502261639 --0.577942714095 --1.03504350781 --0.560683965683 --1.03506717086 --0.543424546718 --1.03508043289 --0.52421233058 --1.03506869077 --0.505001738667 --1.03504484892 --0.487742461264 --1.03502377868 --0.470483504236 --1.03500550985 --0.453225173056 --1.03499004245 --0.435967020691 --1.03497740627 --0.418709360063 --1.03496754169 --0.401451766491 --1.03496044874 --0.384194545448 --1.0349561572 --0.3669372648 --1.03495463729 --0.349680230022 --1.03495591879 --0.332423016429 --1.03496006131 --0.315165914595 --1.03496697545 --0.297908507288 --1.03497672081 --0.280651107431 --1.03498920798 --0.263393282891 --1.03500452637 --0.246135339141 --1.03502261639 --0.228876847774 --1.03504350781 --0.211618110537 --1.03506717086 --0.194358691573 --1.03508040309 --0.175146456808 --1.0179682672 --0.155932288617 --1.01794463396 --0.138673044741 --1.01792377234 --0.121414106339 --1.01790568232 --0.104155784473 --1.01789033413 --0.0868976470083 --1.01787778735 --0.0696400022134 --1.01786801219 --0.0523824244738 --1.01786100864 --0.0351252164692 --1.01785677671 --0.0178679479286 --1.0178552866 --0.000610925955697 --1.0178565681 -0.016646276461 --1.01786065101 -0.0339033547789 --1.01786747575 -0.0511607369408 --1.0178771317 -0.0684181218967 --1.01788952947 -0.0856759343296 --1.01790472865 -0.102933870629 --1.01792266965 -0.120192356408 --1.01794338226 -0.137451086193 --1.01796680689 -0.154710486531 --1.01797994971 -0.173922840506 --1.017968297 -0.193133555353 --1.01794463396 -0.210392799229 --1.01792377234 -0.227651741356 --1.01790568232 -0.244910072535 --1.01789036393 -0.262168213725 --1.01787781716 -0.279425859452 --1.01786801219 -0.296683430672 --1.01786097884 -0.313940629363 --1.01785674691 -0.331197910011 --1.0178552568 -0.348454937339 --1.0178565383 -0.36571212858 --1.01786068082 -0.382969200611 --1.01786753535 -0.400226585567 --1.0178771615 -0.417483970523 --1.01788952947 -0.434741772711 --1.01790469885 -0.45199970901 --1.01792263985 -0.469258196652 --1.01794338226 -0.486516915262 --1.01796680689 -0.503776319325 --1.01797994971 -0.522988677025 --1.017968297 -0.542199403047 --1.01794463396 -0.559458673001 --1.01792380214 -0.576717600226 --1.01790571213 -0.593975916505 --1.01789033413 -0.611234068871 --1.01787778735 -0.628491714597 --1.01786801219 -0.645749285817 --1.01786100864 -0.663006484508 --1.01785677671 -0.680263757706 --1.0178552866 -0.697520762682 --1.0178565979 -0.714777961374 --1.01786071062 -0.732035040855 --1.01786750555 -0.749292418361 --1.0178771019 -0.766549825668 --1.01788949967 -0.783807635307 --1.01790472865 -0.801065564156 --1.01792266965 -0.818324059248 --1.01794335246 -0.835582792759 --1.01796677708 -0.852842181921 --1.01797991991 -0.872054517269 --1.0179682672 -0.891265243292 --1.01794466376 -0.908524483442 --1.01792380214 -0.925783425569 --1.01790571213 -0.943041756749 --1.01789039373 -0.960299894213 --1.01787781716 -0.977557525039 --1.01786801219 -0.994815096259 --1.01786097884 -1.01207232475 --1.01785674691 -1.02932959795 --1.0178552568 -1.04658663273 --1.0178565383 -1.06384384632 --1.01786068082 -1.0811009109 --1.01786750555 -1.09835830331 --1.0178771317 -1.11561569571 --1.01788952947 -1.13287347555 --1.01790469885 -1.1501314044 --1.01792263985 -1.16738989949 --1.01794335246 -1.1846486032 --1.01796677708 -1.20190799236 --1.01797991991 -1.22112035751 --1.0179682672 -1.24033111334 --1.01794463396 -1.25759035349 --1.01792380214 -1.27484926581 --1.01790574193 -1.2921076119 --1.01789039373 -1.30936574936 --1.01787781716 -1.32662338019 --1.01786804199 -1.34388098121 --1.01786103844 -1.3611381948 --1.01785677671 -1.378395468 --1.0178552568 -1.39565250278 --1.01785650849 -1.41290968656 --1.01786065101 -1.43016675115 --1.01786753535 -1.44742411375 --1.0178771615 -1.46468150616 --1.01788952947 -1.4819393456 --1.01790472865 -1.49919727445 --1.01792266965 -1.51645573974 --1.01794338226 -1.53371447325 --1.01796680689 -1.55097389221 --1.01797994971 -1.57018625736 --1.017968297 -1.58939695358 --1.01794463396 -1.60665619373 --1.01792377234 -1.62391513586 --1.01790568232 -1.64117345214 --1.01789036393 -1.6584315896 --1.01787781716 -1.67568925023 --1.01786801219 -1.69294682145 --1.01786097884 -1.71020400524 --1.01785674691 -1.72746127844 --1.0178552568 -1.74471831322 --1.0178565681 -1.76197552681 --1.01786071062 -1.77923262119 --1.01786750555 -1.7964900136 --1.0178771317 -1.8137473762 --1.01788952947 -1.83100518584 --1.01790469885 -1.84826311469 --1.01792263985 -1.86552160978 --1.01794338226 -1.8827803731 --1.01796680689 -1.90003973246 --1.01797994971 -1.9192520678 --1.017968297 -1.93846282363 --1.01794466376 -1.95572209358 --1.01792380214 -1.97298103571 --1.01790571213 -1.99023932218 --1.01789039373 -2.00749745965 --1.01787781716 -2.02475512028 --1.01786804199 -2.0420126915 --1.01786103844 -2.05926984549 --1.01785677671 -2.07652705908 --1.0178552568 -2.09378415346 --1.0178565681 -2.11104136705 --1.01786071062 -2.12829846144 --1.01786753535 -2.14555591345 --1.0178771615 -2.16281324625 --1.01788952947 -2.18007105589 --1.01790469885 -2.19732898473 --1.01792263985 -2.21458745003 --1.01794335246 -2.23184621334 --1.01796677708 -2.2491055727 --1.01797991991 -2.26831787824 --1.0179682672 -2.28752863407 --1.01794466376 -2.30478793382 --1.01792383194 -2.32204687595 --1.01790571213 -2.33930516243 --1.01789036393 -2.35656327009 --1.01787781716 -2.37382090092 --1.01786801219 -2.39107847214 --1.01786097884 -2.40833574534 --1.01785674691 -2.42559307814 --1.0178552568 -2.44285005331 --1.0178565681 -2.4601072073 --1.01786071062 -2.47736430168 --1.01786750555 -2.49462169409 --1.0178771317 -2.51187902689 --1.01788952947 -2.52913683653 --1.01790469885 -2.54639476538 --1.01792263985 -2.56365329027 --1.01794338226 -2.58091205359 --1.01796680689 -2.59817141294 --1.01797994971 -2.61738377809 --1.017968297 -2.63659447431 --1.01794463396 -2.65385371446 --1.01792377234 -2.67111265659 --1.01790568232 -2.68837100267 --1.01789036393 -2.70562916994 --1.01787781716 -2.72288680077 --1.01786801219 -2.74014443159 --1.01786100864 -2.75740164518 --1.01785677671 -2.77465885878 --1.0178552568 -2.79191583395 --1.0178565681 -2.80917304754 --1.01786071062 -2.82643014192 --1.01786750555 -2.84368747473 --1.0178771317 -2.86094492674 --1.01788955927 -2.87820273638 --1.01790472865 -2.89546066522 --1.01792263985 -2.91271919012 --1.01794338226 -2.92997789383 --1.01796680689 -2.9472373128 --1.01797991991 -2.96644967795 --1.0179682672 -2.98566037417 --1.01794463396 -3.00291961432 --1.01792377234 -3.02017855644 --1.01790568232 -3.03743690252 --1.01789033413 -3.05469506979 --1.01787778735 -3.07195264101 --1.01786801219 -3.08921021223 --1.01786100864 -3.10646742583 --1.01785677671 -3.12372463942 --1.0178552866 -3.14098164638 --1.0178565681 --3.12494641542 --1.01786065101 --3.10768932104 --1.01786747575 --3.09043198824 --1.0178771317 --3.07317453623 --1.01788952947 --3.05591666698 --1.01790472865 --3.03865873814 --1.01792266965 --3.02140027285 --1.01794338226 --3.00414156914 --1.01796680689 --2.98688215018 --1.01797994971 --2.96766978503 --1.017968297 --2.9484590888 --1.01794463396 --2.93119984865 --1.01792377234 --2.91394090653 --1.01790568232 --2.89668256044 --1.01789036393 --2.87942439318 --1.01787781716 --2.86216676236 --1.01786801219 --2.84490919114 --1.01786097884 --2.82765203715 --1.01785674691 --2.81039482355 --1.0178552568 --2.79313772917 --1.0178565383 --2.77588051558 --1.01786068082 --2.7586234212 --1.01786753535 --2.74136596918 --1.0178771615 --2.72410863638 --1.01788952947 --2.70685088634 --1.01790469885 --2.6895929575 --1.01792263985 --2.67233443261 --1.01794338226 --2.65507572889 --1.01796680689 --2.63781636953 --1.01797994971 --2.61860400438 --1.017968297 --2.59939324856 --1.01794463396 --2.58213400841 --1.01792380214 --2.56487506628 --1.01790571213 --2.5476167202 --1.01789033413 --2.53035861254 --1.01787778735 --2.51310092211 --1.01786801219 --2.49584335089 --1.01786100864 --2.47858613729 --1.01785677671 --2.4613288641 --1.0178552866 --2.44407188892 --1.0178565979 --2.42681467533 --1.01786071062 --2.40955758095 --1.01786750555 --2.39230018854 --1.0178771019 --2.37504285574 --1.01788949967 --2.3577850461 --1.01790472865 --2.34052705765 --1.01792266965 --2.32326859236 --1.01794335246 --2.30600988865 --1.01796677708 --2.28875046968 --1.01797991991 --2.26953810454 --1.0179682672 --2.25032740831 --1.01794466376 --2.23306816816 --1.01792380214 --2.21580922604 --1.01790571213 --2.19855093956 --1.01789039373 --2.18129277229 --1.01787781716 --2.16403508186 --1.01786801219 --2.14677745104 --1.01786097884 --2.12952023744 --1.01785674691 --2.11226302385 --1.0178552568 --2.09500604868 --1.0178565383 --2.07774883509 --1.01786068082 --2.0604917407 --1.01786750555 --2.0432344079 --1.0178771317 --2.0259770155 --1.01788952947 --2.00871920586 --1.01790469885 --1.99146124721 --1.01792263985 --1.97420275212 --1.01794335246 --1.95694404841 --1.01796677708 --1.93968462944 --1.01797991991 --1.92047226429 --1.0179682672 --1.90126156807 --1.01794463396 --1.88400232792 --1.01792380214 --1.86674338579 --1.01790574193 --1.84948503971 --1.01789039373 --1.83222687244 --1.01787781716 --1.81496924162 --1.01786804199 --1.7977116704 --1.01786103844 --1.78045445681 --1.01785677671 --1.76319721341 --1.0178552568 --1.74594020843 --1.01785650849 --1.72868299484 --1.01786065101 --1.71142590046 --1.01786753535 --1.69416850805 --1.0178771615 --1.67691111565 --1.01788952947 --1.65965330601 --1.01790472865 --1.64239537716 --1.01792266965 --1.62513688207 --1.01794338226 --1.60787814855 --1.01796680689 --1.59061872959 --1.01797994971 --1.57140639424 --1.017968297 --1.55219569802 --1.01794463396 --1.53493642807 --1.01792377234 --1.51767748594 --1.01790568232 --1.50041919947 --1.01789036393 --1.483161062 --1.01787781716 --1.46590340137 --1.01786801219 --1.44864583015 --1.01786097884 --1.43138861656 --1.01785674691 --1.41413134337 --1.0178552568 --1.39687430859 --1.0178565681 --1.37961709499 --1.01786071062 --1.36236003041 --1.01786750555 --1.34510266781 --1.0178771317 --1.3278452754 --1.01788952947 --1.31058746576 --1.01790469885 --1.29332953691 --1.01792263985 --1.27607107163 --1.01794338226 --1.25881233811 --1.01796680689 --1.24155291915 --1.01797994971 --1.2223405838 --1.017968297 --1.20312982798 --1.01794466376 --1.18587055802 --1.01792380214 --1.1686116755 --1.01790571213 --1.15135335922 --1.01789039373 --1.13409519195 --1.01787781716 --1.11683756113 --1.01786804199 --1.09957998991 --1.01786103844 --1.08232277632 --1.01785677671 --1.06506550312 --1.0178552568 --1.04780846834 --1.0178565681 --1.03055128455 --1.01786071062 --1.01329421997 --1.01786753535 --0.996036797762 --1.0178771615 --0.978779405356 --1.01788952947 --0.961521610618 --1.01790469885 --0.944263666868 --1.01792263985 --0.927005186677 --1.01794335246 --0.909746482968 --1.01796677708 --0.892487078905 --1.01797991991 --0.873274713755 --1.0179682672 --0.854064002633 --1.01794466376 --0.836804747581 --1.01792383194 --0.819545805454 --1.01790571213 --0.802287489176 --1.01789036393 --0.785029366612 --1.01787781716 --0.767771735787 --1.01786801219 --0.750514134765 --1.01786097884 --0.733256921172 --1.01785674691 --0.715999662876 --1.0178552568 --0.698742628097 --1.0178565681 --0.681485429406 --1.01786071062 --0.664228335023 --1.01786750555 --0.646970927715 --1.0178771317 --0.629713565111 --1.01788952947 --0.612455770373 --1.01790469885 --0.595197856426 --1.01792263985 --0.577939361334 --1.01794338226 --0.56068059802 --1.01796680689 --0.543421208858 --1.01797994971 --0.52420887351 --1.017968297 --0.504998162389 --1.01794463396 --0.487738907337 --1.01792377234 --0.47047995776 --1.01790568232 --0.45322163403 --1.01789036393 --0.435963504016 --1.01787781716 --0.418705865741 --1.01786801219 --0.401448279619 --1.01786100864 --0.384191073477 --1.01785677671 --0.36693380028 --1.0178552568 --0.349676780403 --1.0178565681 --0.332419581711 --1.01786071062 --0.315162487328 --1.01786750555 --0.297905102372 --1.0178771317 --0.280647717416 --1.01788955927 --0.263389907777 --1.01790472865 --0.246131982655 --1.01792263985 --0.228873498738 --1.01794338226 --0.211614768952 --1.01796680689 --0.194355368614 --1.01797991991 --0.175143010914 --1.00084793567 --0.155928667635 --1.00082451105 --0.138669434935 --1.00080385804 --0.121410511434 --1.00078593194 --0.104152206332 --1.00077074766 --0.0868940837681 --1.00075830519 --0.0696364538744 --1.00074857473 --0.052378888242 --1.00074163079 --0.0351216932758 --1.00073745847 --0.017864440335 --1.00073601306 --0.00060743233189 --1.00073730946 -0.0166497563477 --1.00074137747 -0.0339068216272 --1.0007481128 -0.0511641893536 --1.00075764954 -0.068421558477 --1.0007699281 -0.0856793541461 --1.00078499317 -0.102937279269 --1.00080277026 -0.120195748284 --1.00082330406 -0.137454461306 --1.00084650516 -0.154713850468 --1.00085948407 -0.173926331102 --1.00084793567 -0.19313718006 --1.00082451105 -0.21039641276 --1.00080385804 -0.227655336261 --1.00078593194 -0.244913645088 --1.00077074766 -0.262171775103 --1.00075830519 -0.279429413378 --1.00074857473 -0.296686962247 --1.00074163079 -0.313944146037 --1.00073745847 -0.331201404333 --1.00073598325 -0.348458409309 --1.00073724985 -0.3657155931 --1.00074131787 -0.382972665131 --1.00074808299 -0.400230035186 --1.00075764954 -0.41748739779 --1.0007699281 -0.434745199978 --1.00078496337 -0.452003121376 --1.00080274045 -0.469261594117 --1.00082330406 -0.486520305276 --1.00084650516 -0.503779694438 --1.00085949898 -0.522992178798 --1.00084795058 -0.54220302403 --1.00082451105 -0.559462279082 --1.00080388785 -0.576721206308 --1.00078599155 -0.593979507685 --1.00077077746 -0.611237630248 --1.00075830519 -0.628495261073 --1.00074857473 -0.645752817392 --1.00074163079 -0.663010001182 --1.00073745847 -0.680267259478 --1.00073601306 -0.697524249554 --1.00073730946 -0.714781433344 --1.00074137747 -0.732038497925 --1.0007481128 -0.749295860529 --1.00075761974 -0.766553267837 --1.0007698983 -0.783811092377 --1.00078499317 -0.801068991423 --1.00080277026 -0.818327441811 --1.00082327425 -0.835586160421 --1.00084647536 -0.852845549583 --1.00085949898 -0.872058019042 --1.00084795058 -0.891268864274 --1.00082451105 -0.908528089523 --1.00080385804 -0.92578703165 --1.00078593194 -0.943045347929 --1.00077074766 -0.960303455591 --1.00075830519 -0.977561071515 --1.00074858964 -0.994818627834 --1.00074164569 -1.01207584143 --1.00073745847 -1.02933311462 --1.00073598325 -1.0465901196 --1.00073724985 -1.06384730339 --1.00074131787 -1.08110436797 --1.00074808299 -1.09836176038 --1.00075764954 -1.11561912298 --1.0007699281 -1.13287687302 --1.00078494847 -1.15013480187 --1.00080275536 -1.16739329696 --1.00082330406 -1.18465200066 --1.00084647536 -1.20191138983 --1.00085949898 -1.22112387419 --1.00084795058 -1.24033471942 --1.00082451105 -1.25759395957 --1.00080388785 -1.2748528719 --1.00078596175 -1.29211118818 --1.00077074766 -1.30936932564 --1.00075830519 -1.32662695646 --1.00074861944 -1.34388452768 --1.0007416755 -1.36114174127 --1.00073745847 -1.37839898467 --1.00073598325 -1.39565598965 --1.00073724985 -1.41291317344 --1.00074134767 -1.43017020822 --1.0007481724 -1.44742757082 --1.00075770915 -1.46468496323 --1.0007699281 -1.48194277287 --1.00078499317 -1.49920070171 --1.00080277026 -1.51645916701 --1.00082330406 -1.53371787071 --1.00084650516 -1.55097725988 --1.00085948407 -1.57018974423 --1.00084792077 -1.58940058947 --1.00082449615 -1.60665979982 --1.00080387294 -1.62391871214 --1.00078597665 -1.64117702842 --1.00077077746 -1.65843516588 --1.00075830519 -1.67569279671 --1.00074857473 -1.69295033813 --1.00074163079 -1.71020752192 --1.00073745847 -1.72746479511 --1.00073598325 -1.74472180009 --1.00073727965 -1.76197898388 --1.00074134767 -1.77923607826 --1.00074808299 -1.79649347067 --1.00075764954 -1.81375080347 --1.0007699281 -1.83100858331 --1.00078496337 -1.84826651215 --1.00080274045 -1.86552497745 --1.00082330406 -1.88278371096 --1.00084650516 -1.90004310012 --1.00085948407 -1.91925558448 --1.00084793567 -1.93846642971 --1.00082451105 -1.95572566986 --1.00080385804 -1.97298461199 --1.00078593194 -1.99024289846 --1.00077074766 -2.00750103593 --1.00075830519 -2.02475869656 --1.00074861944 -2.04201626777 --1.0007416755 -2.05927342176 --1.00073745847 -2.07653063536 --1.00073598325 -2.09378767014 --1.00073727965 -2.11104482412 --1.00074134767 -2.12830191851 --1.0007481128 -2.14555937052 --1.00075767934 -2.16281670332 --1.0007699281 -2.18007445336 --1.00078494847 -2.1973323822 --1.00080272555 -2.21459084749 --1.00082327425 -2.2318495512 --1.00084647536 -2.24910891056 --1.00085949898 -2.26832139492 --1.00084795058 -2.28753226995 --1.00082457065 -2.3047915101 --1.00080394745 -2.32205045223 --1.00078596175 -2.33930873871 --1.00077074766 -2.35656684637 --1.00075830519 -2.37382447719 --1.00074857473 -2.39108204841 --1.00074163079 -2.40833926201 --1.00073745847 -2.4255965352 --1.00073598325 -2.44285351038 --1.00073727965 -2.46011066437 --1.00074137747 -2.47736775875 --1.0007481426 -2.49462515116 --1.00075767934 -2.51188248396 --1.0007699281 -2.5291402936 --1.00078496337 -2.54639822245 --1.00080274045 -2.56365668774 --1.00082330406 -2.58091545105 --1.00084650516 -2.59817481041 --1.00085949898 -2.61738723517 --1.00084795058 -2.63659805059 --1.00082451105 -2.65385729074 --1.00080385804 -2.67111629248 --1.00078593194 -2.68837463856 --1.00077074766 -2.70563274622 --1.00075830519 -2.72289037705 --1.00074857473 -2.74014794827 --1.00074163079 -2.75740510225 --1.00073745847 -2.77466231585 --1.00073598325 -2.79191935063 --1.00073727965 -2.80917656422 --1.00074134767 -2.826433599 --1.00074808299 -2.8436909318 --1.00075764954 -2.86094838381 --1.0007699579 -2.87820619345 --1.00078499317 -2.89546406269 --1.00080274045 -2.91272258758 --1.00082330406 -2.92998129129 --1.00084653497 -2.94724065065 --1.00085951388 -2.96645313501 --1.00084793567 -2.98566401005 --1.00082451105 -3.0029232502 --1.00080385804 -3.02018213272 --1.00078593194 -3.0374404192 --1.00077074766 -3.05469852686 --1.00075830519 -3.07195615768 --1.00074857473 -3.0892137289 --1.00074163079 -3.1064709425 --1.00073745847 -3.12372821569 --1.00073601306 -3.14098522265 --1.00073730946 --3.12494289875 --1.00074137747 --3.10768586397 --1.0007481128 --3.09042853117 --1.00075764954 --3.07317107916 --1.0007699281 --3.05591326952 --1.00078499317 --3.03865540028 --1.00080277026 --3.02139687538 --1.00082330406 --3.00413817167 --1.00084650516 --2.98687881231 --1.00085948407 --2.96766626835 --1.00084793567 --2.94845539332 --1.00082451105 --2.93119621277 --1.00080385804 --2.91393733025 --1.00078593194 --2.89667898416 --1.00077074766 --2.8794208765 --1.00075830519 --2.86216324568 --1.00074857473 --2.84490567446 --1.00074163079 --2.82764852047 --1.00073745847 --2.81039124727 --1.00073598325 --2.79313421249 --1.00073724985 --2.7758770585 --1.00074131787 --2.75861996412 --1.00074808299 --2.74136251211 --1.00075764954 --2.72410517931 --1.0007699281 --2.70684748888 --1.00078496337 --2.68958956003 --1.00080274045 --2.67233103514 --1.00082330406 --2.65507239103 --1.00084650516 --2.63781303167 --1.00085949898 --2.61860048771 --1.00084795058 --2.59938961268 --1.00082451105 --2.58213037252 --1.00080388785 --2.5648714304 --1.00078599155 --2.54761314392 --1.00077077746 --2.53035503626 --1.00075830519 --2.51309740543 --1.00074857473 --2.49583983421 --1.00074163079 --2.47858262062 --1.00073745847 --2.46132534742 --1.00073601306 --2.44406837225 --1.00073730946 --2.42681121826 --1.00074137747 --2.40955412388 --1.0007481128 --2.39229673147 --1.00075761974 --2.37503939867 --1.0007698983 --2.35778158903 --1.00078499317 --2.34052366018 --1.00080277026 --2.3232652545 --1.00082327425 --2.30600649119 --1.00084647536 --2.28874707222 --1.00085949898 --2.26953464746 --1.00084795058 --2.25032383204 --1.00082451105 --2.23306459189 --1.00080385804 --2.21580559016 --1.00078593194 --2.19854730368 --1.00077074766 --2.18128919601 --1.00075830519 --2.16403156519 --1.00074858964 --2.14677399397 --1.00074164569 --2.12951678038 --1.00073745847 --2.11225956679 --1.00073598325 --2.09500259161 --1.00073724985 --2.07774537802 --1.00074131787 --2.06048828364 --1.00074808299 --2.04323095083 --1.00075764954 --2.02597361803 --1.0007699281 --2.00871580839 --1.00078494847 --1.99145781994 --1.00080275536 --1.97419935465 --1.00082330406 --1.95694065094 --1.00084647536 --1.93968126178 --1.00085949898 --1.92046877742 --1.00084795058 --1.90125793219 --1.00082451105 --1.88399872184 --1.00080388785 --1.86673980952 --1.00078596175 --1.84948146343 --1.00077074766 --1.83222329617 --1.00075830519 --1.81496566534 --1.00074861944 --1.79770812392 --1.0007416755 --1.78045094013 --1.00073745847 --1.76319369674 --1.00073598325 --1.74593669176 --1.00073724985 --1.72867947817 --1.00074134767 --1.71142241359 --1.0007481724 --1.69416505098 --1.00075770915 --1.67690765858 --1.0007699281 --1.65964984894 --1.00078499317 --1.64239194989 --1.00080277026 --1.6251334846 --1.00082330406 --1.60787478089 --1.00084650516 --1.59061539173 --1.00085948407 --1.57140290737 --1.00084792077 --1.55219209194 --1.00082449615 --1.53493285179 --1.00080387294 --1.51767390967 --1.00078597665 --1.50041562319 --1.00077077746 --1.48315751553 --1.00075830519 --1.4658998847 --1.00074857473 --1.44864231348 --1.00074163079 --1.43138509989 --1.00073745847 --1.41412782669 --1.00073598325 --1.39687082171 --1.00073727965 --1.37961363792 --1.00074134767 --1.36235657335 --1.00074808299 --1.34509921074 --1.00075764954 --1.32784184813 --1.0007699281 --1.3105840683 --1.00078496337 --1.29332613945 --1.00080274045 --1.27606767416 --1.00082330406 --1.25880894065 --1.00084650516 --1.24154955149 --1.00085948407 --1.22233709693 --1.00084793567 --1.2031262219 --1.00082451105 --1.18586695194 --1.00080385804 --1.16860803962 --1.00078593194 --1.15134975314 --1.00077074766 --1.13409161568 --1.00075830519 --1.11683398485 --1.00074861944 --1.09957641363 --1.0007416755 --1.08231922984 --1.00073745847 --1.06506198644 --1.00073598325 --1.04780495167 --1.00073727965 --1.03054779768 --1.00074134767 --1.0132907629 --1.0007481128 --0.996033355595 --1.00075767934 --0.978775963187 --1.0007699281 --0.96151818335 --1.00078494847 --0.944260269403 --1.00080272555 --0.927001804113 --1.00082327425 --0.909743100405 --1.00084647536 --0.892483711243 --1.00085949898 --0.873271211982 --1.00084795058 --0.85406036675 --1.00082457065 --0.836801156402 --1.00080394745 --0.819542229176 --1.00078596175 --0.802283912897 --1.00077074766 --0.785025805235 --1.00075830519 --0.76776817441 --1.00074857473 --0.750510573387 --1.00074163079 --0.733253389597 --1.00073745847 --0.715996146202 --1.00073598325 --0.698739126324 --1.00073727965 --0.681481957435 --1.00074137747 --0.664224892855 --1.0007481426 --0.646967500448 --1.00075767934 --0.629710137844 --1.0007699281 --0.612452358008 --1.00078496337 --0.595194444061 --1.00080274045 --0.577935948968 --1.00082330406 --0.560677200556 --1.00084650516 --0.543417826295 --1.00085949898 --0.524205371738 --1.00084795058 --0.504994533956 --1.00082451105 --0.487735293806 --1.00080385804 --0.47047636658 --1.00078593194 --0.453218057752 --1.00077074766 --0.435959935188 --1.00075830519 --0.418702311814 --1.00074857473 --0.401444748044 --1.00074163079 --0.384187556803 --1.00073745847 --0.366930298507 --1.00073598325 --0.34967328608 --1.00073727965 --0.332416094839 --1.00074134767 --0.315159022808 --1.00074808299 --0.297901652753 --1.00075764954 --0.280644282698 --1.0007699579 --0.263386487961 --1.00078499317 --0.246128574014 --1.00080274045 --0.228870108723 --1.00082330406 --0.211611393839 --1.00084653497 --0.194352008402 --1.00085951388 --0.175139524042 --0.983704805374 --0.155925001949 --0.983681619167 --0.13866578415 --0.983661144972 --0.121406877413 --0.983643382788 --0.104148585349 --0.983628362417 --0.0868904776871 --0.983616039157 --0.0696328626946 --0.983606413006 --0.0523753110319 --0.98359952867 --0.0351181295701 --0.983595371246 --0.017860890599 --0.983593940735 --0.00060389726423 --0.983595192432 -0.0166532769799 --0.983599230647 -0.033910327591 --0.983605965972 -0.0511676818133 --0.983615398407 -0.0684250378981 --0.983627542853 -0.0856828186661 --0.983642444014 -0.1029407233 --0.983660057187 -0.120199175551 --0.983680397272 -0.137457877397 --0.983703374863 -0.154717251658 --0.983716249466 -0.173929862678 --0.983704805374 -0.193140845746 --0.983681619167 -0.210400063544 --0.983661159873 -0.227658972144 --0.983643382788 -0.244917266071 --0.983628347516 -0.262175381184 --0.983616039157 -0.279432997108 --0.983606413006 -0.296690538525 --0.98359952867 -0.313947722316 --0.983595371246 -0.33120495826 --0.983593940735 -0.348461948335 --0.983595192432 -0.365719117224 --0.983599200845 -0.382976174355 --0.98360593617 -0.400233529508 --0.983615398407 -0.41749086976 --0.983627557755 -0.434748657048 --0.983642458916 -0.452006570995 --0.983660057187 -0.469265036285 --0.983680427074 -0.486523732543 --0.983703404665 -0.503783114254 --0.983716264367 -0.522995725274 --0.983704820275 -0.542206689716 --0.983681619167 -0.559465914965 --0.983661159873 -0.57672482729 --0.983643427491 -0.593983128667 --0.983628377318 -0.611241221428 --0.983616024256 -0.628498837352 --0.983606398105 -0.645756408572 --0.983599513769 -0.663013577461 --0.983595356345 -0.680270805955 --0.983593925834 -0.69752779603 --0.983595222235 -0.71478497982 --0.983599260449 -0.732042044401 --0.983605965972 -0.749299392104 --0.983615398407 -0.766556754708 --0.983627542853 -0.783814549446 --0.983642473817 -0.801072448492 --0.983660057187 -0.81833088398 --0.98368036747 -0.835589572787 --0.983703374863 -0.852848947048 --0.983716264367 -0.872061565518 --0.983704820275 -0.891272544861 --0.983681619167 -0.908531755209 --0.983661159873 -0.925790682435 --0.983643397689 -0.943048968911 --0.983628362417 -0.960307061672 --0.983616039157 -0.977564677596 --0.983606413007 -0.994822219014 --0.983599528671 -1.0120794177 --0.983595371246 -1.0293366909 --0.983593940735 -1.04659366607 --0.983595222235 -1.06385082006 --0.983599230647 -1.08110788464 --0.98360593617 -1.09836524725 --0.983615398407 -1.11562258005 --0.983627542853 -1.13288033009 --0.983642458916 -1.15013825893 --0.983660101891 -1.16739672423 --0.983680427074 -1.18465542794 --0.983703374863 -1.2019148171 --0.983716249466 -1.22112742067 --0.983704805374 -1.24033838511 --0.983681619167 -1.25759759546 --0.983661144972 -1.27485650778 --0.983643382788 -1.29211479425 --0.983628362417 -1.30937290192 --0.983616039157 -1.32663053274 --0.983606427908 -1.34388810396 --0.983599543572 -1.36114528775 --0.983595356345 -1.37840250135 --0.983593896031 -1.39565950632 --0.983595192432 -1.41291669011 --0.983599260449 -1.43017372489 --0.983605995775 -1.4474310875 --0.983615443111 -1.4646884501 --0.983627572656 -1.48194622993 --0.983642458916 -1.49920415878 --0.983660027384 -1.51646262407 --0.98368036747 -1.53372129798 --0.983703374863 -1.55098065734 --0.983716234565 -1.57019329071 --0.983704775572 -1.58940428496 --0.983681604266 -1.6066634655 --0.983661174774 -1.62392234803 --0.983643442392 -1.6411806643 --0.983628392219 -1.65843880177 --0.983616054058 -1.67569640279 --0.983606413007 -1.69295394421 --0.983599513769 -1.710211128 --0.983595356345 -1.72746837139 --0.983593925834 -1.74472534656 --0.983595222235 -1.76198250055 --0.983599230647 -1.77923956514 --0.98360593617 -1.79649692774 --0.983615398407 -1.81375429034 --0.983627557755 -1.83101207018 --0.983642488718 -1.84826996922 --0.98366008699 -1.86552840471 --0.983680427074 -1.88278710842 --0.983703404665 -1.90004649758 --0.983716234565 -1.91925910115 --0.983704790473 -1.9384700656 --0.983681619167 -1.95572930575 --0.983661159873 -1.97298824787 --0.983643397689 -1.99024653435 --0.983628362417 -2.00750464201 --0.983616039157 -2.02476227283 --0.983606413007 -2.04201984405 --0.983599528671 -2.05927699804 --0.983595356345 -2.07653421164 --0.983593925834 -2.09379118681 --0.983595222235 -2.1110483408 --0.983599230647 -2.12830543518 --0.98360593617 -2.14556282759 --0.983615398407 -2.16282016039 --0.983627557755 -2.18007791042 --0.983642473817 -2.19733583927 --0.983660072088 -2.21459430456 --0.983680397272 -2.23185294866 --0.983703374863 -2.24911230802 --0.983716264367 -2.2683249712 --0.983704820275 -2.28753596544 --0.98368164897 -2.30479520559 --0.983661189675 -2.32205408812 --0.983643397689 -2.33931237459 --0.983628362417 -2.35657048225 --0.983616039157 -2.37382805348 --0.983606398105 -2.3910856247 --0.983599513769 -2.40834283828 --0.983595356345 -2.42560011148 --0.983593925834 -2.44285708666 --0.983595222235 -2.46011424064 --0.983599260449 -2.47737127542 --0.983605995775 -2.49462860823 --0.983615428209 -2.51188594103 --0.983627542853 -2.52914375067 --0.983642444014 -2.54640167952 --0.983660057187 -2.5636600852 --0.983680397272 -2.58091884852 --0.983703374863 -2.59817820788 --0.983716264367 -2.61739075184 --0.983704820275 -2.63660174608 --0.983681619167 -2.65386098623 --0.983661159873 -2.67111992836 --0.983643397689 -2.68837821484 --0.983628362417 -2.7056363225 --0.983616039157 -2.72289395332 --0.983606398105 -2.74015152454 --0.983599513769 -2.75740867853 --0.983595356345 -2.77466589212 --0.983593925834 -2.7919229269 --0.983595222235 -2.80918008089 --0.983599230647 -2.82643711567 --0.98360593617 -2.84369450808 --0.983615413308 -2.86095190048 --0.983627557755 -2.87820965052 --0.983642473817 -2.89546746016 --0.98366008699 -2.91272598505 --0.983680397272 -2.92998474836 --0.983703404665 -2.94724410772 --0.983716279268 -2.96645665169 --0.983704805374 -2.98566764593 --0.983681619167 -3.00292688608 --0.983661144972 -3.0201857686 --0.983643382788 -3.03744405508 --0.983628362417 -3.05470210314 --0.983616039157 -3.07195979357 --0.983606413006 -3.08921736479 --0.98359952867 -3.10647451878 --0.983595371246 -3.12373179197 --0.983593940735 -3.14098879893 --0.983595192432 --3.12493938208 --0.983599230647 --3.1076823473 --0.983605965972 --3.09042495489 --0.983615398407 --3.07316756249 --0.983627542853 --3.05590981245 --0.983642444014 --3.03865200281 --0.983660057187 --3.02139347792 --0.983680397272 --3.0041347146 --0.983703374863 --2.98687535524 --0.983716249466 --2.96766275168 --0.983704805374 --2.94845175743 --0.983681619167 --2.93119257688 --0.983661159873 --2.91393369436 --0.983643382788 --2.89667534828 --0.983628347516 --2.87941730022 --0.983616039157 --2.862159729 --0.983606413006 --2.84490215778 --0.98359952867 --2.82764494419 --0.983595371246 --2.81038767099 --0.983593940735 --2.79313069582 --0.983595192432 --2.77587354183 --0.983599200845 --2.75861644745 --0.98360593617 --2.74135905504 --0.983615398407 --2.72410172224 --0.983627557755 --2.70684397221 --0.983642458916 --2.68958604336 --0.983660057187 --2.67232757807 --0.983680427074 --2.65506893396 --0.983703404665 --2.6378095746 --0.983716264367 --2.61859691143 --0.983704820275 --2.59938591718 --0.983681619167 --2.58212673664 --0.983661159873 --2.56486785412 --0.983643427491 --2.54760950804 --0.983628377318 --2.53035140037 --0.983616024256 --2.51309382915 --0.983606398105 --2.49583625793 --0.983599513769 --2.47857910395 --0.983595356345 --2.46132189035 --0.983593925834 --2.44406485558 --0.983595222235 --2.42680764198 --0.983599260449 --2.4095506072 --0.983605965972 --2.3922932744 --0.983615398407 --2.3750359416 --0.983627542853 --2.35777813196 --0.983642473817 --2.34052020311 --0.983660057187 --2.32326179743 --0.98368036747 --2.30600309372 --0.983703374863 --2.28874373436 --0.983716264367 --2.26953113079 --0.983704820275 --2.25032013655 --0.983681619167 --2.2330608964 --0.983661159873 --2.21580195427 --0.983643397689 --2.19854366779 --0.983628362417 --2.18128556013 --0.983616039157 --2.16402798891 --0.983606413007 --2.1467704773 --0.983599528671 --2.12951326371 --0.983595371246 --2.11225599051 --0.983593940735 --2.09499901533 --0.983595222235 --2.07774186135 --0.983599230647 --2.06048482657 --0.98360593617 --2.04322749376 --0.983615398407 --2.02597010136 --0.983627542853 --2.00871229172 --0.983642458916 --1.99145436287 --0.983660101891 --1.97419589758 --0.983680427074 --1.95693719387 --0.983703374863 --1.93967783451 --0.983716249466 --1.92046523094 --0.983704805374 --1.9012542367 --0.983681619167 --1.88399505615 --0.983661144972 --1.86673617363 --0.983643382788 --1.84947785735 --0.983628362417 --1.83221971989 --0.983616039157 --1.81496208906 --0.983606427908 --1.79770454764 --0.983599543572 --1.78044739366 --0.983595356345 --1.76319015026 --0.983593896031 --1.74593314528 --0.983595192432 --1.7286759615 --0.983599260449 --1.71141889691 --0.983605995775 --1.69416156411 --0.983615443111 --1.67690420151 --0.983627572656 --1.65964639187 --0.983642458916 --1.64238852263 --0.983660027384 --1.62513005733 --0.98368036747 --1.60787135362 --0.983703374863 --1.59061199427 --0.983716234565 --1.5713993907 --0.983704775572 --1.55218845606 --0.983681604266 --1.53492921591 --0.983661174774 --1.51767027378 --0.983643442392 --1.5004119873 --0.983628392219 --1.48315387964 --0.983616054058 --1.46589627862 --0.983606413007 --1.4486387372 --0.983599513769 --1.43138152361 --0.983595356345 --1.41412428021 --0.983593925834 --1.39686730504 --0.983595222235 --1.37961012125 --0.983599230647 --1.36235305667 --0.98360593617 --1.34509569406 --0.983615398407 --1.32783836126 --0.983627557755 --1.31058058143 --0.983642488718 --1.29332265258 --0.98366008699 --1.27606421709 --0.983680427074 --1.25880551339 --0.983703404665 --1.24154615402 --0.983716234565 --1.22233355046 --0.983704790473 --1.20312255621 --0.983681619167 --1.18586334586 --0.983661159873 --1.16860443354 --0.983643397689 --1.15134614706 --0.983628362417 --1.1340880394 --0.983616039157 --1.11683040857 --0.983606413007 --1.09957283735 --0.983599528671 --1.08231568337 --0.983595356345 --1.06505846977 --0.983593925834 --1.04780143499 --0.983595222235 --1.0305442512 --0.983599230647 --1.01328721643 --0.98360593617 --0.996029868722 --0.983615398407 --0.978772506118 --0.983627557755 --0.961514726281 --0.983642473817 --0.944256827235 --0.983660072088 --0.926998376846 --0.983680397272 --0.909739688039 --0.983703374863 --0.892480298877 --0.983716264367 --0.873267665505 --0.983704820275 --0.854056686163 --0.98368164897 --0.836797490716 --0.983661189675 --0.819538593292 --0.983643397689 --0.802280291915 --0.983628362417 --0.785022199154 --0.983616039157 --0.76776458323 --0.983606398105 --0.75050701201 --0.983599513769 --0.733249828219 --0.983595356345 --0.715992569923 --0.983593925834 --0.698735579848 --0.983595222235 --0.68147842586 --0.983599260449 --0.664221376181 --0.983605995775 --0.646964013577 --0.983615428209 --0.629706665873 --0.983627542853 --0.612448886037 --0.983642444014 --0.59519097209 --0.983660057187 --0.5779325068 --0.983680397272 --0.56067378819 --0.983703374863 --0.543414428831 --0.983716264367 --0.524201840163 --0.983704820275 --0.50499086082 --0.983681619167 --0.487731635571 --0.983661159873 --0.470472723246 --0.983643397689 --0.453214421868 --0.983628362417 --0.435956321657 --0.983616039157 --0.418698713183 --0.983606398105 --0.401441156864 --0.983599513769 --0.384183980524 --0.983595356345 --0.36692674458 --0.983593925834 --0.349669754505 --0.983595222235 --0.332412578166 --0.983599230647 --0.315155513585 --0.98360593617 --0.29789815098 --0.983615413308 --0.280640803277 --0.983627557755 --0.263383023441 --0.983642473817 --0.246125116944 --0.98366008699 --0.228866670281 --0.983680397272 --0.211607974023 --0.983703404665 --0.194348603487 --0.983716279268 --0.175135988742 --0.966561347246 --0.155920118094 --0.966538384557 --0.138660918921 --0.966518089175 --0.121402027086 --0.966500520706 --0.104143749923 --0.966485649347 --0.0868856590241 --0.966473430395 --0.0696280635893 --0.966463908553 --0.0523705342784 --0.96645706892 --0.0351133733056 --0.9664529562 --0.017856152961 --0.966451570392 --0.000599179416895 --0.966452807188 -0.0166579762008 --0.966456770897 -0.0339150065556 --0.966463431716 -0.0511723412201 --0.966472819448 -0.0684296805412 --0.966484874487 -0.0856874454766 --0.966499596834 -0.102945324033 --0.966517031193 -0.120203753933 --0.966537177563 -0.137462440878 --0.966559916735 -0.154721796513 --0.966572672128 -0.173934582621 --0.966561317444 -0.193145733327 --0.966538354755 -0.210404932499 --0.966518104076 -0.227663826197 --0.966500520706 -0.244922094047 --0.966485634446 -0.262180179357 --0.966473445296 -0.27943778038 --0.966463938356 -0.296695321798 --0.966457113624 -0.313952490687 --0.966452971101 -0.33120970428 --0.966451570391 -0.348466679454 --0.966452822089 -0.365723825991 --0.966456770897 -0.382980845869 --0.966463446617 -0.400238193572 --0.966472804547 -0.417495526374 --0.966484844685 -0.434753283858 --0.966499611735 -0.452011175454 --0.966517046094 -0.469269610941 --0.966537207365 -0.486528292298 --0.966559946537 -0.503787651658 --0.966572672128 -0.523000434041 --0.966561317444 -0.542211577296 --0.966538354755 -0.559470772743 --0.966518104076 -0.576729670167 --0.966500535608 -0.593987956643 --0.966485634446 -0.611246034503 --0.966473415494 -0.628503620625 --0.966463908553 -0.645761162043 --0.966457098723 -0.66301831603 --0.966452971101 -0.680275544524 --0.966451555491 -0.697532534599 --0.96645283699 -0.714789688587 --0.966456800699 -0.732046738267 --0.966463446617 -0.749304056167 --0.966472804547 -0.766561374068 --0.966484829784 -0.783819139004 --0.966499626637 -0.80107703805 --0.966517031193 -0.818335473537 --0.966537132859 -0.835594132543 --0.966559916735 -0.852853491902 --0.966572672128 -0.872066274285 --0.966561317444 -0.891277432442 --0.966538354755 -0.90853664279 --0.966518104076 -0.925795525312 --0.966500535608 -0.943053781986 --0.966485649347 -0.960311889649 --0.966473430395 -0.977569490671 --0.966463893652 -0.994827002287 --0.966457083821 -1.01208418608 --0.966452986002 -1.02934139967 --0.966451570392 -1.04659837484 --0.96645283699 -1.06385555863 --0.966456800699 -1.08111256361 --0.966463446617 -1.09836986661 --0.966472804547 -1.11562719941 --0.966484829784 -1.13288494945 --0.966499626637 -1.15014284849 --0.966517075897 -1.16740131378 --0.966537177563 -1.18466001749 --0.966559946537 -1.20191934705 --0.96657268703 -1.22113209963 --0.966561302543 -1.24034327269 --0.966538354755 -1.25760248303 --0.966518089175 -1.27486136556 --0.966500520706 -1.29211962223 --0.966485664249 -1.30937770009 --0.966473445296 -1.32663530111 --0.966463908553 -1.34389284253 --0.96645706892 -1.36114999652 --0.966452941298 -1.37840721011 --0.966451525688 -1.39566421509 --0.966452807188 -1.41292136907 --0.966456800699 -1.43017840385 --0.966463431716 -1.44743576646 --0.966472804547 -1.46469309926 --0.966484874487 -1.48195084929 --0.966499611735 -1.49920874834 --0.96651700139 -1.51646718383 --0.96653714776 -1.53372582793 --0.966559946537 -1.55098518729 --0.96657268703 -1.57019799948 --0.966561302543 -1.58940914273 --0.966538354755 -1.60666832328 --0.966518104076 -1.6239272058 --0.966500535608 -1.64118549228 --0.966485664249 -1.65844359994 --0.966473460198 -1.67570120096 --0.966463908553 -1.69295874238 --0.966457083821 -1.71021589637 --0.966452971101 -1.72747310996 --0.966451555491 -1.74473008514 --0.96645283699 -1.76198723912 --0.966456800699 -1.7792442441 --0.966463446617 -1.7965015769 --0.966472834349 -1.81375893951 --0.966484874487 -1.83101671934 --0.966499626637 -1.84827458858 --0.966517060995 -1.86553299427 --0.966537222266 -1.88279169798 --0.966559961438 -1.90005102753 --0.966572657227 -1.91926380992 --0.966561302543 -1.93847498298 --0.966538354755 -1.95573419333 --0.966518104076 -1.97299310565 --0.966500535608 -1.99025136232 --0.966485649347 -2.00750944018 --0.966473430395 -2.02476704121 --0.966463893652 -2.04202455282 --0.966457054019 -2.05928170681 --0.966452941298 -2.0765389204 --0.966451555491 -2.09379589558 --0.96645283699 -2.11105310917 --0.966456800699 -2.12831014395 --0.966463446617 -2.14556747675 --0.966472804547 -2.16282480955 --0.966484859586 -2.18008255959 --0.966499656439 -2.19734048844 --0.966517075897 -2.21459889412 --0.966537177563 -2.23185753822 --0.966559916735 -2.24911689758 --0.966572672128 -2.26832967996 --0.966561317444 -2.28754085302 --0.966538384557 -2.30480009318 --0.966518133879 -2.3220589757 --0.966500535608 -2.33931720257 --0.966485649347 -2.35657525063 --0.966473445296 -2.37383288145 --0.966463923454 -2.39109045267 --0.96645706892 -2.40834760666 --0.966452941298 -2.42560487985 --0.966451555491 -2.44286185503 --0.96645283699 -2.46011894941 --0.966456800699 -2.47737592459 --0.966463446617 -2.49463325739 --0.966472804547 -2.51189059019 --0.966484829784 -2.52914834023 --0.966499596834 -2.54640626907 --0.966517046094 -2.56366473437 --0.966537177563 -2.58092343807 --0.966559916735 -2.59818273783 --0.966572672128 -2.61739546061 --0.966561317444 -2.63660663366 --0.966538384557 -2.65386587381 --0.966518133879 -2.67112475634 --0.966500535608 -2.68838304281 --0.966485664249 -2.70564115047 --0.966473445296 -2.7228987217 --0.966463908553 -2.74015629292 --0.96645706892 -2.7574134469 --0.966452941298 -2.77467066049 --0.966451555491 -2.79192763567 --0.96645283699 -2.80918473005 --0.966456800699 -2.82644182444 --0.966463446617 -2.84369921684 --0.96647284925 -2.86095649004 --0.966484874487 -2.87821424007 --0.966499611735 -2.89547210932 --0.966517060995 -2.91273057461 --0.966537177563 -2.92998927832 --0.966559916735 -2.94724863768 --0.966572672128 -2.96646142006 --0.966561347246 -2.98567253351 --0.966538384557 -3.00293171406 --0.966518089175 -3.02019059658 --0.966500520706 -3.03744888306 --0.966485649347 -3.05470699072 --0.966473430395 -3.07196462154 --0.966463908553 -3.08922213316 --0.96645706892 -3.10647928715 --0.9664529562 -3.12373650074 --0.966451570392 -3.14099344809 --0.966452807188 --3.12493473291 --0.966456770897 --3.10767763853 --0.966463431716 --3.09042024612 --0.966472819448 --3.07316291333 --0.966484874487 --3.05590516329 --0.966499596834 --3.03864735365 --0.966517031193 --3.02138888836 --0.966537177563 --3.00413018465 --0.966559916735 --2.98687082529 --0.966572672128 --2.96765804291 --0.966561317444 --2.94844692946 --0.966538354755 --2.93118774891 --0.966518104076 --2.91392886639 --0.966500520706 --2.89667057991 --0.966485634446 --2.87941247225 --0.966473445296 --2.86215490103 --0.966463938356 --2.84489738941 --0.966457113624 --2.82764017582 --0.966452971101 --2.81038296223 --0.966451570391 --2.79312598705 --0.966452822089 --2.77586877346 --0.966456770897 --2.75861173868 --0.966463446617 --2.74135440588 --0.966472804547 --2.72409707308 --0.966484844685 --2.70683932305 --0.966499611735 --2.6895814538 --0.966517046094 --2.67232304812 --0.966537207365 --2.65506434441 --0.966559946537 --2.63780498505 --0.966572672128 --2.61859220266 --0.966561317444 --2.5993810296 --0.966538354755 --2.58212184906 --0.966518104076 --2.56486296654 --0.966500535608 --2.54760468006 --0.966485634446 --2.53034663201 --0.966473415494 --2.51308906078 --0.966463908553 --2.49583154917 --0.966457098723 --2.47857439518 --0.966452971101 --2.46131712198 --0.966451555491 --2.4440600872 --0.96645283699 --2.42680293321 --0.966456800699 --2.40954595804 --0.966463446617 --2.39228862524 --0.966472804547 --2.37503129244 --0.966484829784 --2.3577735424 --0.966499626637 --2.34051561356 --0.966517031193 --2.32325720787 --0.966537132859 --2.30599856377 --0.966559916735 --2.28873920441 --0.966572672128 --2.26952642203 --0.966561317444 --2.25031524897 --0.966538354755 --2.23305600881 --0.966518104076 --2.21579712629 --0.966500535608 --2.19853883982 --0.966485649347 --2.18128073216 --0.966473430395 --2.16402316094 --0.966463893652 --2.14676564932 --0.966457083821 --2.12950849533 --0.966452986002 --2.11225122213 --0.966451570392 --2.09499424696 --0.96645283699 --2.07773715258 --0.966456800699 --2.0604801774 --0.966463446617 --2.0432228446 --0.966472804547 --2.02596539259 --0.966484829784 --2.00870758295 --0.966499626637 --1.99144974351 --0.966517075897 --1.97419133782 --0.966537177563 --1.95693266392 --0.966559946537 --1.93967330456 --0.96657268703 --1.92046052217 --0.966561302543 --1.90124934912 --0.966538354755 --1.88399016857 --0.966518089175 --1.86673128605 --0.966500520706 --1.84947299957 --0.966485664249 --1.83221492171 --0.966473445296 --1.81495732069 --0.966463908553 --1.79769977927 --0.96645706892 --1.78044262529 --0.966452941298 --1.76318541169 --0.966451525688 --1.74592843652 --0.966452807188 --1.72867128253 --0.966456800699 --1.71141421795 --0.966463431716 --1.69415688515 --0.966472804547 --1.67689955235 --0.966484874487 --1.65964177251 --0.966499611735 --1.64238390327 --0.96651700139 --1.62512546778 --0.96653714776 --1.60786679387 --0.966559946537 --1.59060743451 --0.96657268703 --1.57139465213 --0.966561302543 --1.55218353868 --0.966538354755 --1.53492432833 --0.966518104076 --1.517665416 --0.966500535608 --1.50040712952 --0.966485664249 --1.48314902186 --0.966473460198 --1.46589145064 --0.966463908553 --1.44863393903 --0.966457083821 --1.43137675524 --0.966452971101 --1.41411954164 --0.966451555491 --1.39686256647 --0.96645283699 --1.37960541248 --0.966456800699 --1.36234840751 --0.966463446617 --1.34509107471 --0.966472834349 --1.3278337419 --0.966484874487 --1.31057596207 --0.966499626637 --1.29331806302 --0.966517060995 --1.27605962753 --0.966537222266 --1.25880092382 --0.966559961438 --1.24154159427 --0.966572657227 --1.22232881188 --0.966561302543 --1.20311763883 --0.966538354755 --1.18585848808 --0.966518104076 --1.16859960556 --0.966500535608 --1.15134131909 --0.966485649347 --1.13408324122 --0.966473430395 --1.1168256402 --0.966463893652 --1.09956809878 --0.966457054019 --1.0823109448 --0.966452941298 --1.0650537312 --0.966451555491 --1.04779672623 --0.96645283699 --1.03053954244 --0.966456800699 --1.01328250766 --0.966463446617 --0.996025189757 --0.966472804547 --0.978767871857 --0.966484859586 --0.961510121822 --0.966499656439 --0.944252222777 --0.966517075897 --0.926993787289 --0.966537177563 --0.909735113382 --0.966559916735 --0.892475739121 --0.966572672128 --0.873262971639 --0.966561317444 --0.854051813483 --0.966538384557 --0.836792588234 --0.966518133879 --0.819533720612 --0.966500535608 --0.802275463939 --0.966485649347 --0.785017386079 --0.966473445296 --0.767759785056 --0.966463923454 --0.750502243638 --0.96645706892 --0.73324508965 --0.966452941298 --0.715987861156 --0.966451555491 --0.698730885982 --0.96645283699 --0.681473731995 --0.966456800699 --0.664216697216 --0.966463446617 --0.646959349513 --0.966472804547 --0.62970200181 --0.966484829784 --0.612444251776 --0.966499596834 --0.595186367631 --0.966517046094 --0.577927917242 --0.966537177563 --0.560669243336 --0.966559916735 --0.543409898877 --0.966572672128 --0.524197116494 --0.966561317444 --0.504985973239 --0.966538384557 --0.487726770341 --0.966518133879 --0.470467865467 --0.966500535608 --0.453209586442 --0.966485664249 --0.435951516032 --0.966473445296 --0.41869392246 --0.966463908553 --0.401436381042 --0.96645706892 --0.384179219603 --0.966452941298 --0.366922006011 --0.966451555491 --0.349665038288 --0.96645283699 --0.332407876849 --0.966456800699 --0.31515083462 --0.966463446617 --0.297893486917 --0.96647284925 --0.280636161566 --0.966484874487 --0.263378411531 --0.966499611735 --0.246120516211 --0.966517060995 --0.228862080723 --0.966537177563 --0.211603403091 --0.966559916735 --0.194344051182 --0.966572672128 --0.175131268799 --0.949451312423 --0.155915070325 --0.949428588152 --0.138655889779 --0.949408501387 --0.121397012845 --0.949391126633 --0.104138758033 --0.949376374483 --0.0868806857616 --0.949364259839 --0.0696231098846 --0.949354842305 --0.0523656019941 --0.949348062277 --0.035108460579 --0.949344024062 --0.0178512609564 --0.949342653155 --0.000594307901337 --0.949343889952 -0.0166628274601 --0.949347808957 -0.0339198382571 --0.949354365468 -0.0511771533638 --0.949363678694 -0.0684344731271 --0.949375629425 -0.0856922157109 --0.949390202761 -0.102950075641 --0.949407443404 -0.12020849064 --0.949427396059 -0.137467153371 --0.949449911714 -0.154726486653 --0.949462518096 -0.173939451575 --0.94945128262 -0.19315077737 --0.949428543448 -0.210409957916 --0.949408486486 -0.227668832988 --0.94939109683 -0.244927078485 --0.949376359582 -0.262185141444 --0.949364289641 -0.279442735016 --0.949354887009 -0.296700261533 --0.949348121881 -0.313957393169 --0.949344009161 -0.33121458441 --0.949342623353 -0.348471544683 --0.949343904853 -0.36572868377 --0.949347823858 -0.382985688746 --0.949354410171 -0.400243014097 --0.949363678694 -0.417500324548 --0.949375584722 -0.43475805223 --0.949390217662 -0.452015921474 --0.949407473206 -0.46927433461 --0.949427396059 -0.486533001065 --0.949449911714 -0.503792338073 --0.949462518096 -0.523005306721 --0.94945128262 -0.542216643691 --0.94942855835 -0.559475824237 --0.949408516288 -0.576734691858 --0.949391111731 -0.593992933631 --0.949376374483 -0.61125099659 --0.949364289641 -0.628508582712 --0.949354872108 -0.645766094327 --0.949348121881 -0.663023233414 --0.949344053865 -0.680280447006 --0.949342653155 -0.697537407279 --0.949343889952 -0.714794531465 --0.949347808957 -0.732051536441 --0.94935439527 -0.749308854341 --0.949363678694 -0.766566172242 --0.949375584722 -0.783823907375 --0.949390217662 -0.801081776619 --0.949407458305 -0.818340197205 --0.949427381158 -0.835598856211 --0.949449911714 -0.852858200669 --0.949462518096 -0.872071146965 --0.94945128262 -0.891282469034 --0.94942855835 -0.908541664481 --0.949408501387 -0.925800532103 --0.94939109683 -0.943058788776 --0.949376359582 -0.960316866636 --0.94936427474 -0.977574422956 --0.949354857206 -0.994831934572 --0.949348136783 -1.01208910346 --0.949344053865 -1.02934628725 --0.949342623353 -1.04660323262 --0.949343889952 -1.06386038661 --0.949347808957 -1.08111739159 --0.94935439527 -1.09837469458 --0.949363678694 -1.11563202739 --0.949375599623 -1.13288974762 --0.949390232563 -1.15014761686 --0.949407473206 -1.16740608215 --0.949427396059 -1.18466475606 --0.949449941516 -1.20192405582 --0.949462547898 -1.22113698721 --0.94945128262 -1.24034833908 --0.949428543448 -1.25760754943 --0.949408486486 -1.27486643195 --0.94939109683 -1.29212465882 --0.949376374483 -1.30938270688 --0.949364289641 -1.3266402781 --0.949354857206 -1.34389778972 --0.949348077178 -1.3611549139 --0.94934399426 -1.37841209769 --0.949342623353 -1.39566907287 --0.949343889952 -1.41292622686 --0.949347823858 -1.43018323183 --0.94935439527 -1.44744053483 --0.949363663793 -1.46469786763 --0.949375614524 -1.48195561766 --0.949390232563 -1.49921348691 --0.949407458305 -1.51647189259 --0.949427396059 -1.5337305367 --0.949449941516 -1.55098989606 --0.949462547898 -1.57020285725 --0.94945128262 -1.58941414952 --0.949428543448 -1.60667333007 --0.949408486486 -1.62393221259 --0.94939109683 -1.64119046927 --0.949376389384 -1.65844854712 --0.949364304543 -1.67570611835 --0.949354857206 -1.69296362996 --0.94934810698 -1.71022078395 --0.949344024062 -1.72747799754 --0.949342623353 -1.74473497271 --0.949343889952 -1.7619920969 --0.949347808957 -1.77924907208 --0.94935439527 -1.79650640488 --0.949363708496 -1.81376373768 --0.949375629425 -1.83102148771 --0.949390217662 -1.84827932715 --0.949407458305 -1.86553773284 --0.94942741096 -1.88279643655 --0.949449926615 -1.9000557363 --0.949462518096 -1.9192686975 --0.94945128262 -1.93848004937 --0.94942855835 -1.95573922992 --0.949408501387 -1.97299811244 --0.94939109683 -1.99025633931 --0.949376359582 -2.00751441717 --0.94936427474 -2.02477198839 --0.949354857206 -2.0420294404 --0.949348077178 -2.05928659439 --0.94934399426 -2.07654380798 --0.949342608452 -2.09380078316 --0.949343875051 -2.11105793715 --0.949347808957 -2.12831491232 --0.94935439527 -2.14557224512 --0.949363678694 -2.16282957792 --0.949375599623 -2.18008732796 --0.949390232563 -2.19734525681 --0.949407473206 -2.21460366249 --0.949427396059 -2.2318623066 --0.949449911714 -2.24912160635 --0.949462518096 -2.26833450794 --0.94945128262 -2.28754585981 --0.949428588152 -2.30480509996 --0.949408531189 -2.32206398249 --0.94939109683 -2.33932214975 --0.949376359582 -2.35658019781 --0.949364289641 -2.37383782864 --0.949354887009 -2.39109539986 --0.949348092079 -2.40835249424 --0.94934399426 -2.42560970783 --0.949342623353 -2.44286668301 --0.949343889952 -2.46012377739 --0.949347808957 -2.47738081217 --0.949354380369 -2.49463814497 --0.949363663793 -2.51189541817 --0.949375599623 -2.5291531086 --0.949390232563 -2.54641103745 --0.949407473206 -2.56366950274 --0.949427396059 -2.58092814684 --0.949449911714 -2.59818744659 --0.949462518096 -2.61740040779 --0.94945128262 -2.63661175966 --0.949428588152 -2.65387094021 --0.949408531189 -2.67112976313 --0.94939109683 -2.6883880496 --0.949376374483 -2.70564615726 --0.949364289641 -2.72290372848 --0.949354872108 -2.7401612401 --0.949348092079 -2.75741833449 --0.94934399426 -2.77467554808 --0.949342623353 -2.79193252325 --0.949343889952 -2.80918961763 --0.949347808957 -2.82644665241 --0.94935439527 -2.84370398521 --0.949363708496 -2.86096125841 --0.949375614524 -2.87821900845 --0.94939020276 -2.89547687769 --0.949407458305 -2.91273528338 --0.949427396059 -2.92999392748 --0.949449911714 -2.94725328684 --0.949462518096 -2.96646630764 --0.949451312423 -2.98567759991 --0.949428588152 -3.00293672085 --0.949408501387 -3.02019560337 --0.949391126633 -3.03745388985 --0.949376374483 -3.05471199751 --0.949364259839 -3.07196956873 --0.949354842305 -3.08922702074 --0.949348062277 -3.10648417473 --0.949344024062 -3.12374138832 --0.949342653155 -3.14099833568 --0.949343889952 --3.12492984533 --0.949347808957 --3.10767281055 --0.949354365468 --3.09041547775 --0.949363678694 --3.07315814495 --0.949375629425 --3.05590039492 --0.949390202761 --3.03864258528 --0.949407443404 --3.02138417959 --0.949427396059 --3.00412553549 --0.949449911714 --2.98686617613 --0.949462518096 --2.96765315533 --0.94945128262 --2.94844186306 --0.949428543448 --2.93118274212 --0.949408486486 --2.9139238596 --0.94939109683 --2.89666557312 --0.949376359582 --2.87940746546 --0.949364289641 --2.86214989424 --0.949354887009 --2.84489244222 --0.949348121881 --2.82763528824 --0.949344009161 --2.81037807465 --0.949342623353 --2.79312109947 --0.949343904853 --2.77586394548 --0.949347823858 --2.75860697031 --0.949354410171 --2.74134963751 --0.949363678694 --2.72409230471 --0.949375584722 --2.70683455467 --0.949390217662 --2.68957674503 --0.949407473206 --2.67231833935 --0.949427396059 --2.65505963564 --0.949449911714 --2.63780033589 --0.949462518096 --2.61858737469 --0.94945128262 --2.59937602282 --0.94942855835 --2.58211678266 --0.949408516288 --2.56485790014 --0.949391111731 --2.54759973288 --0.949376374483 --2.53034168482 --0.949364289641 --2.5130841136 --0.949354872108 --2.49582660198 --0.949348121881 --2.478569448 --0.949344053865 --2.4613122344 --0.949342653155 --2.44405525923 --0.949343889952 --2.42679810524 --0.949347808957 --2.40954113006 --0.94935439527 --2.39228379726 --0.949363678694 --2.37502646446 --0.949375584722 --2.35776877403 --0.949390217662 --2.34051084518 --0.949407458305 --2.3232524395 --0.949427381158 --2.30599379539 --0.949449911714 --2.28873443603 --0.949462518096 --2.26952153444 --0.94945128262 --2.25031024217 --0.94942855835 --2.23305100203 --0.949408501387 --2.2157921195 --0.94939109683 --2.19853383303 --0.949376359582 --2.18127578497 --0.94936427474 --2.16401827335 --0.949354857206 --2.14676070213 --0.949348136783 --2.12950354815 --0.949344053865 --2.11224633455 --0.949342623353 --2.09498935938 --0.949343889952 --2.07773226499 --0.949347808957 --2.06047528982 --0.94935439527 --2.04321795702 --0.949363678694 --2.02596056461 --0.949375599623 --2.00870281458 --0.949390232563 --1.99144500494 --0.949407473206 --1.97418662906 --0.949427396059 --1.95692798495 --0.949449941516 --1.93966862559 --0.949462547898 --1.92045566439 --0.94945128262 --1.90124431252 --0.949428543448 --1.88398513198 --0.949408486486 --1.86672627926 --0.94939109683 --1.84946799278 --0.949376374483 --1.83220991492 --0.949364289641 --1.8149523437 --0.949354857206 --1.79769486189 --0.949348077178 --1.7804377377 --0.94934399426 --1.76318052411 --0.949342623353 --1.74592354894 --0.949343889952 --1.72866639495 --0.949347823858 --1.71140938997 --0.94935439527 --1.69415208697 --0.949363663793 --1.67689475417 --0.949375614524 --1.65963700413 --0.949390232563 --1.64237913489 --0.949407458305 --1.62512072921 --0.949427396059 --1.60786208511 --0.949449941516 --1.59060275555 --0.949462547898 --1.57138979435 --0.94945128262 --1.55217847228 --0.949428543448 --1.53491929174 --0.949408486486 --1.51766040921 --0.94939109683 --1.50040215254 --0.949376389384 --1.48314407468 --0.949364304543 --1.46588650346 --0.949354857206 --1.44862899185 --0.94934810698 --1.43137183785 --0.949344024062 --1.41411462426 --0.949342623353 --1.39685767889 --0.949343889952 --1.3796005845 --0.949347808957 --1.36234357953 --0.94935439527 --1.34508624673 --0.949363708496 --1.32782894373 --0.949375629425 --1.31057122349 --0.949390217662 --1.29331335425 --0.949407458305 --1.27605491877 --0.94942741096 --1.25879624486 --0.949449926615 --1.2415369153 --0.949462518096 --1.2223239243 --0.94945128262 --1.20311257243 --0.94942855835 --1.18585342169 --0.949408501387 --1.16859456897 --0.94939109683 --1.1513363123 --0.949376359582 --1.13407823443 --0.94936427474 --1.11682066321 --0.949354857206 --1.0995631516 --0.949348077178 --1.08230602741 --0.94934399426 --1.06504884362 --0.949342608452 --1.04779186845 --0.949343875051 --1.03053471446 --0.949347808957 --1.01327770949 --0.94935439527 --0.996020391585 --0.949363678694 --0.978763073683 --0.949375599623 --0.961505353451 --0.949390232563 --0.944247469306 --0.949407473206 --0.92698904872 --0.949427396059 --0.909730389714 --0.949449911714 --0.892471045256 --0.949462518096 --0.873258113861 --0.94945128262 --0.854046791792 --0.949428588152 --0.836787581444 --0.949408531189 --0.819528713823 --0.94939109683 --0.80227047205 --0.949376359582 --0.78501239419 --0.949364289641 --0.767754808068 --0.949354887009 --0.750497296453 --0.949348092079 --0.733240187168 --0.94934399426 --0.715982988477 --0.949342623353 --0.698726013303 --0.949343889952 --0.681468889118 --0.949347808957 --0.664211884141 --0.949354380369 --0.64695456624 --0.949363663793 --0.629697233439 --0.949375599623 --0.612439498306 --0.949390232563 --0.595181629062 --0.949407473206 --0.577923178673 --0.949427396059 --0.560664534569 --0.949449911714 --0.543405219913 --0.949462518096 --0.524192243815 --0.94945128262 --0.504980914295 --0.949428588152 --0.487721741199 --0.949408531189 --0.470462858677 --0.94939109683 --0.453204602003 --0.949376374483 --0.435946546495 --0.949364289641 --0.418688967824 --0.949354872108 --0.401431448758 --0.949348092079 --0.384174317121 --0.94934399426 --0.366917125881 --0.949342623353 --0.349660165608 --0.949343889952 --0.332403019071 --0.949347808957 --0.315145999193 --0.94935439527 --0.297888681293 --0.949363708496 --0.280631378293 --0.949375614524 --0.26337365061 --0.94939020276 --0.246115773916 --0.949407458305 --0.228857349604 --0.949427396059 --0.211598686874 --0.949449911714 --0.194339353591 --0.949462518096 --0.175126396119 --0.932354003191 --0.155911043286 --0.932331517339 --0.138651877641 --0.932311654091 --0.121393013746 --0.932294458151 --0.104134773835 --0.932279869914 --0.0868767220527 --0.93226788938 --0.0696191629395 --0.932258576155 --0.0523616690189 --0.932251900435 --0.0351045443676 --0.932247892022 --0.0178473603446 --0.932246491313 --0.000590422889217 --0.932247698307 -0.0166666964069 --0.932251617313 -0.0339236930013 --0.932258144021 -0.0511809941381 --0.932267308235 -0.068438295275 --0.932279109955 -0.0856960192323 --0.932293564081 -0.102953869849 --0.93231061101 -0.120212273672 --0.932330340147 -0.137470919639 --0.932352632284 -0.154730234295 --0.932365104556 -0.173943340778 --0.932354003191 -0.193154811859 --0.932331502438 -0.210413977504 --0.932311654091 -0.227672837675 --0.932294443249 -0.244931068272 --0.932279855013 -0.262189120054 --0.932267904282 -0.279446691275 --0.932258591056 -0.296704187989 --0.932251900435 -0.313961304724 --0.932247847319 -0.331218488515 --0.93224646151 -0.348475426435 --0.932247728109 -0.365732550621 --0.932251647115 -0.382989548147 --0.932258144021 -0.400246843696 --0.932267308235 -0.417504139245 --0.932279095054 -0.434761866928 --0.932293564081 -0.45201972127 --0.932310625911 -0.469278112054 --0.932330325246 -0.486536763608 --0.932352647185 -0.503796093166 --0.932365134358 -0.523009181023 --0.93235398829 -0.542220652104 --0.932331502438 -0.559479832649 --0.932311683893 -0.576738685369 --0.932294458151 -0.593996927142 --0.932279869914 -0.6112549752 --0.932267934084 -0.628512531519 --0.932258605957 -0.645770043135 --0.932251900435 -0.663027182221 --0.932247877121 -0.680284351111 --0.932246491313 -0.697541281581 --0.932247728109 -0.714798405767 --0.932251632214 -0.732055395841 --0.932258144021 -0.749312713742 --0.932267323136 -0.766570016742 --0.932279095054 -0.783827736974 --0.932293578982 -0.801085576415 --0.932310640812 -0.818343952298 --0.932330340147 -0.835602611303 --0.932352632284 -0.852861940861 --0.932365089655 -0.872075036168 --0.93235398829 -0.891286492348 --0.932331517339 -0.908545672894 --0.932311654091 -0.925804540515 --0.932294428348 -0.943062767386 --0.932279855013 -0.960320815444 --0.932267904282 -0.977578371763 --0.932258591056 -0.994835883379 --0.932251930237 -1.01209300756 --0.932247877121 -1.02935019135 --0.932246476412 -1.04660710692 --0.932247713208 -1.06386423111 --0.932251602411 -1.08112126589 --0.932258144021 -1.09837856889 --0.932267323136 -1.11563587188 --0.932279109955 -1.13289356232 --0.932293578982 -1.15015143156 --0.932310625911 -1.16740986705 --0.932330340147 -1.18466851115 --0.932352632284 -1.20192781091 --0.932365104556 -1.22114089131 --0.93235398829 -1.24035236239 --0.932331487537 -1.25761154294 --0.93231163919 -1.27487042546 --0.932294428348 -1.29212865233 --0.932279855013 -1.30938670039 --0.932267904282 -1.32664427161 --0.932258591056 -1.34390175343 --0.932251900435 -1.36115884781 --0.932247847319 -1.3784160316 --0.93224646151 -1.39567297697 --0.932247698307 -1.41293010115 --0.932251617312 -1.43018707633 --0.932258144021 -1.44744434953 --0.932267308235 -1.46470168233 --0.932279109955 -1.48195943236 --0.932293593883 -1.49921727181 --0.932310640812 -1.51647567749 --0.932330340147 -1.53373432159 --0.932352662087 -1.55099365115 --0.932365134358 -1.57020676136 --0.932354003191 -1.58941820264 --0.932331502438 -1.60667735338 --0.93231163919 -1.6239362061 --0.932294428348 -1.64119443298 --0.932279869914 -1.65845248104 --0.932267919183 -1.67571005225 --0.932258591056 -1.69296756387 --0.932251915336 -1.71022471786 --0.93224786222 -1.72748190165 --0.93224646151 -1.74473884702 --0.932247728109 -1.7619959414 --0.932251632214 -1.77925291657 --0.932258144021 -1.79651024938 --0.932267323136 -1.81376755237 --0.932279109955 -1.83102527261 --0.932293578982 -1.84828311205 --0.932310640812 -1.86554151773 --0.932330355048 -1.88280019164 --0.932352632284 -1.9000594914 --0.932365089655 -1.9192725718 --0.932353973388 -1.93848407269 --0.93233153224 -1.95574325323 --0.932311698794 -1.97300210595 --0.932294443249 -1.99026033282 --0.932279855013 -2.00751835108 --0.932267904282 -2.0247759223 --0.932258591056 -2.04203343391 --0.932251900435 -2.0592905283 --0.932247847319 -2.07654768228 --0.932246446609 -2.09380465746 --0.932247713208 -2.11106181145 --0.932251632214 -2.12831878662 --0.93225812912 -2.14557605982 --0.932267308235 -2.16283333302 --0.932279095054 -2.18009114265 --0.932293564081 -2.1973490715 --0.932310625911 -2.21460741758 --0.932330325246 -2.23186606169 --0.932352617383 -2.24912536144 --0.932365104556 -2.26833838225 --0.93235398829 -2.28754985332 --0.93233153224 -2.30480909347 --0.932311698794 -2.322067976 --0.932294443249 -2.33932614326 --0.932279855013 -2.35658419132 --0.932267904282 -2.37384176254 --0.932258591056 -2.39109927416 --0.932251900435 -2.40835636854 --0.932247847319 -2.42561358213 --0.93224646151 -2.44287055731 --0.932247728109 -2.46012765169 --0.932251632214 -2.47738468647 --0.932258114219 -2.49464201927 --0.932267293334 -2.51189929247 --0.932279109955 -2.5291569829 --0.932293578982 -2.54641485214 --0.932310625911 -2.56367325783 --0.932330340147 -2.58093190193 --0.932352632284 -2.59819120169 --0.932365104556 -2.6174043417 --0.93235398829 -2.63661581278 --0.932331502438 -2.65387493372 --0.932311668992 -2.67113375664 --0.932294443249 -2.68839204311 --0.932279855013 -2.70565015077 --0.932267904282 -2.72290766239 --0.932258591056 -2.7401651144 --0.932251900435 -2.75742226839 --0.932247832417 -2.77467948198 --0.932246446609 -2.79193639755 --0.932247698307 -2.80919349194 --0.932251602411 -2.82645046711 --0.93225812912 -2.84370779991 --0.932267308235 -2.86096513271 --0.932279095054 -2.87822282314 --0.932293564081 -2.89548063278 --0.932310640812 -2.91273903847 --0.932330355048 -2.92999768257 --0.932352632284 -2.94725704193 --0.932365104556 -2.96647018194 --0.932354003191 -2.98568165302 --0.932331517339 -3.00294077396 --0.932311654091 -3.02019959688 --0.932294458151 -3.03745788336 --0.932279869914 -3.05471593142 --0.93226788938 -3.07197350264 --0.932258576155 -3.08923101425 --0.932251900435 -3.10648810864 --0.932247892022 -3.12374526262 --0.932246491313 -3.14100220998 --0.932247698307 --3.12492597103 --0.932251617313 --3.10766899586 --0.932258144021 --3.09041166305 --0.932267308235 --3.07315433025 --0.932279109955 --3.05589663982 --0.932293564081 --3.03863883019 --0.93231061101 --3.0213804245 --0.932330340147 --3.00412178039 --0.932352632284 --2.98686242104 --0.932365104556 --2.96764928103 --0.932354003191 --2.94843780994 --0.932331502438 --2.931178689 --0.932311654091 --2.91391986609 --0.932294443249 --2.89666157961 --0.932279855013 --2.87940353155 --0.932267904282 --2.86214596033 --0.932258591056 --2.84488844871 --0.932251900435 --2.82763135433 --0.932247847319 --2.81037420035 --0.93224646151 --2.79311728478 --0.932247728109 --2.77586013079 --0.932251647115 --2.75860309601 --0.932258144021 --2.74134582281 --0.932267308235 --2.72408854962 --0.932279095054 --2.70683079958 --0.932293564081 --2.68957293034 --0.932310625911 --2.67231452465 --0.932330325246 --2.65505588055 --0.932352647185 --2.63779658079 --0.932365134358 --2.61858350039 --0.93235398829 --2.5993720293 --0.932331502438 --2.58211278915 --0.932311683893 --2.56485390663 --0.932294458151 --2.54759573937 --0.932279869914 --2.53033769131 --0.932267934084 --2.51308012008 --0.932258605957 --2.49582260847 --0.932251900435 --2.47856551409 --0.932247877121 --2.4613083601 --0.932246491313 --2.44405138493 --0.932247728109 --2.42679423094 --0.932251632214 --2.40953725576 --0.932258144021 --2.39227992296 --0.932267323136 --2.37502259016 --0.932279095054 --2.35776489973 --0.932293578982 --2.34050703049 --0.932310640812 --2.3232486844 --0.932330340147 --2.3059900403 --0.932352632284 --2.28873068094 --0.932365089655 --2.26951760053 --0.93235398829 --2.25030618906 --0.932331517339 --2.23304700851 --0.932311654091 --2.21578812599 --0.932294428348 --2.19852989912 --0.932279855013 --2.18127185106 --0.932267904282 --2.16401433945 --0.932258591056 --2.14675682783 --0.932251930237 --2.12949961424 --0.932247877121 --2.11224240065 --0.932246476412 --2.09498548508 --0.932247713208 --2.07772839069 --0.932251602411 --2.06047141552 --0.932258144021 --2.04321408272 --0.932267323136 --2.02595674992 --0.932279109955 --2.00869905949 --0.932293578982 --1.99144124985 --0.932310625911 --1.97418284416 --0.932330340147 --1.95692420006 --0.932352632284 --1.9396648705 --0.932365104556 --1.92045176029 --0.93235398829 --1.90124028921 --0.932331487537 --1.88398113847 --0.93231163919 --1.86672228575 --0.932294428348 --1.84946399927 --0.932279855013 --1.83220595122 --0.932267904282 --1.8149484098 --0.932258591056 --1.79769092798 --0.932251900435 --1.78043380379 --0.932247847319 --1.76317662001 --0.93224646151 --1.74591967464 --0.932247698307 --1.72866252064 --0.932251617312 --1.71140554547 --0.932258144021 --1.69414827228 --0.932267308235 --1.67689096928 --0.932279109955 --1.65963321924 --0.932293593883 --1.64237535 --0.932310640812 --1.62511697412 --0.932330340147 --1.60785833001 --0.932352662087 --1.59059903026 --0.932365134358 --1.57138594985 --0.932354003191 --1.55217444897 --0.932331502438 --1.53491526842 --0.93231163919 --1.5176564157 --0.932294428348 --1.50039818883 --0.932279869914 --1.48314014077 --0.932267919183 --1.46588256955 --0.932258591056 --1.44862505794 --0.932251915336 --1.43136793375 --0.93224786222 --1.41411074996 --0.93224646151 --1.39685383439 --0.932247728109 --1.37959674001 --0.932251632214 --1.36233970523 --0.932258144021 --1.34508237243 --0.932267323136 --1.32782509923 --0.932279109955 --1.3105674088 --0.932293578982 --1.29330953956 --0.932310640812 --1.27605113387 --0.932330355048 --1.25879251957 --0.932352632284 --1.24153319001 --0.932365089655 --1.22232005 --0.932353973388 --1.20310857892 --0.93233153224 --1.18584939838 --0.932311698794 --1.16859054565 --0.932294443249 --1.15133231878 --0.932279855013 --1.13407424092 --0.932267904282 --1.1168166697 --0.932258591056 --1.09955918789 --0.932251900435 --1.08230209351 --0.932247847319 --1.06504490972 --0.932246446609 --1.04778796434 --0.932247713208 --1.03053084015 --0.932251632214 --1.01327386498 --0.93225812912 --0.996016576888 --0.932267308235 --0.978759258985 --0.932279095054 --0.961501523852 --0.932293564081 --0.944243654609 --0.932310625911 --0.926985263824 --0.932330325246 --0.909726634622 --0.932352617383 --0.892467319965 --0.932365104556 --0.873254224658 --0.93235398829 --0.854042753577 --0.93233153224 --0.836783587933 --0.932311698794 --0.819524720311 --0.932294443249 --0.802266478538 --0.932279855013 --0.785008430481 --0.932267904282 --0.767750874162 --0.932258591056 --0.750493377447 --0.932251900435 --0.733236253262 --0.932247847319 --0.715979069472 --0.93224646151 --0.6987221241 --0.932247728109 --0.681465014816 --0.932251632214 --0.66420802474 --0.932258114219 --0.646950721741 --0.932267293334 --0.62969340384 --0.932279109955 --0.612435683608 --0.932293578982 --0.595177844167 --0.932310625911 --0.57791942358 --0.932330340147 --0.560660779476 --0.932352632284 --0.54340146482 --0.932365104556 --0.52418833971 --0.93235398829 --0.504976868629 --0.932331502438 --0.487717725337 --0.932311668992 --0.470458872616 --0.932294443249 --0.453200623393 --0.932279855013 --0.435942575336 --0.932267904282 --0.418685011566 --0.932258591056 --0.401427514851 --0.932251900435 --0.384170405566 --0.932247832417 --0.366913221776 --0.932246446609 --0.349656276405 --0.932247698307 --0.332399152219 --0.932251602411 --0.315142147243 --0.93225812912 --0.297884851694 --0.932267308235 --0.280627563596 --0.932279095054 --0.263369843364 --0.932293564081 --0.246111989021 --0.932310640812 --0.228853579611 --0.932330355048 --0.211594931781 --0.932352632284 --0.194335617125 --0.932365104556 --0.175122514367 --0.915237620473 --0.155906971544 --0.915215358138 --0.1386478208 --0.915195703507 --0.121388973668 --0.915178701282 --0.104130748659 --0.915164276958 --0.0868727136403 --0.915152445436 --0.069615171291 --0.915143221617 --0.0523576904088 --0.915136620402 --0.0351005820557 --0.915132641792 --0.017843414098 --0.915131226182 --0.00058649247512 --0.915132433176 -0.0166706107557 --0.915136337281 -0.0339275919832 --0.915142804385 -0.0511848777533 --0.915151849389 -0.068442161195 --0.915163531899 -0.0856998711825 --0.915177851915 -0.102957706898 --0.915194705129 -0.120216092095 --0.915214195847 -0.13747472316 --0.915236234665 -0.154734026641 --0.915248572826 -0.173947274685 --0.915237575769 -0.193158887327 --0.915215328336 -0.21041803807 --0.915195718408 -0.22767688334 --0.915178716183 -0.244935099036 --0.915164276958 -0.262193135918 --0.915152445436 -0.279450684786 --0.915143221617 -0.296708159149 --0.915136605501 -0.313965275883 --0.915132626891 -0.331222444773 --0.915131241083 -0.348479352892 --0.915132477879 -0.365736454725 --0.915136352182 -0.38299343735 --0.915142774582 -0.400250717998 --0.91515186429 -0.417508013547 --0.9151635468 -0.434765733779 --0.915177837014 -0.452023565769 --0.915194690228 -0.469281941652 --0.915214166045 -0.486540570855 --0.915236249566 -0.503799878061 --0.915248602629 -0.523013114929 --0.915237560868 -0.542224720121 --0.915215313435 -0.559483870864 --0.915195718408 -0.576742723584 --0.91517868638 -0.594000965357 --0.915164247155 -0.611258998513 --0.915152460337 -0.62851652503 --0.915143251419 -0.645774006844 --0.915136620402 -0.663031131029 --0.915132626891 -0.680288299918 --0.915131241083 -0.697545215487 --0.915132477879 -0.714802324772 --0.915136352182 -0.732059314847 --0.915142789483 -0.749316602945 --0.915151849389 -0.766573876142 --0.915163502097 -0.783831596374 --0.915177837014 -0.801089420914 --0.91519472003 -0.818347766995 --0.915214195847 -0.835606396198 --0.915236234665 -0.852865710855 --0.915248557925 -0.872078970075 --0.915237560868 -0.891290590167 --0.915215328336 -0.908549755812 --0.915195703507 -0.925808578729 --0.915178671479 -0.943066775799 --0.915164247155 -0.960324823856 --0.915152415633 -0.977582380176 --0.915143191814 -0.994839876889 --0.915136605501 -1.01209697127 --0.915132626891 -1.02935412526 --0.915131255984 -1.04661104083 --0.915132462978 -1.06386816501 --0.915136322379 -1.08112516999 --0.915142789483 -1.09838244319 --0.915151849389 -1.11563971639 --0.915163502097 -1.13289740682 --0.915177822113 -1.15015524626 --0.915194690228 -1.16741365194 --0.915214180946 -1.18467229605 --0.915236234665 -1.2019315958 --0.915248572826 -1.22114482522 --0.915237560868 -1.24035641551 --0.915215328336 -1.25761556625 --0.915195718408 -1.27487441897 --0.915178701282 -1.29213264585 --0.915164276958 -1.3093906939 --0.915152445436 -1.32664823532 --0.915143236518 -1.34390568733 --0.915136605501 -1.36116281151 --0.91513261199 -1.37842002511 --0.915131226182 -1.39567694068 --0.915132433176 -1.41293403506 --0.915136322379 -1.43019098043 --0.915142789483 -1.44744825363 --0.915151879192 -1.46470558643 --0.915163531899 -1.48196330666 --0.915177837014 -1.4992211163 --0.91519472003 -1.51647949219 --0.91521422565 -1.53373813629 --0.91523629427 -1.55099743605 --0.91524861753 -1.57021069527 --0.915237620473 -1.58942231536 --0.915215373039 -1.6066814363 --0.915195718408 -1.62394025922 --0.915178701282 -1.64119848609 --0.915164276958 -1.65845653415 --0.915152445436 -1.67571407557 --0.915143221617 -1.69297155738 --0.915136620402 -1.71022868156 --0.915132641792 -1.72748583555 --0.915131241083 -1.74474275112 --0.915132477879 -1.7619998455 --0.915136352182 -1.77925682068 --0.915142789483 -1.79651412368 --0.915151849389 -1.81377139687 --0.915163516998 -1.83102908731 --0.915177837014 -1.84828692675 --0.91519472003 -1.86554533243 --0.915214240551 -1.88280397654 --0.915236264467 -1.90006327629 --0.915248557925 -1.91927650571 --0.915237545967 -1.9384881556 --0.915215343237 -1.95574733615 --0.91519574821 -1.97300612926 --0.91517868638 -1.99026432633 --0.915164247155 -2.00752234459 --0.915152445436 -2.02477991581 --0.915143236518 -2.04203742742 --0.915136620402 -2.05929452181 --0.915132626891 -2.0765516758 --0.915131241083 -2.09380859137 --0.915132477879 -2.11106574535 --0.915136352182 -2.12832272053 --0.915142774582 -2.14557993412 --0.915151834488 -2.16283720732 --0.915163502097 -2.18009495735 --0.915177822113 -2.19735282659 --0.915194690228 -2.21461117268 --0.915214166045 -2.23186981678 --0.915236219764 -2.24912917614 --0.915248572826 -2.26834237576 --0.915237560868 -2.28755396605 --0.915215343237 -2.30481314659 --0.91519574821 -2.32207202911 --0.915178716183 -2.33933019638 --0.915164276958 -2.35658824444 --0.915152445436 -2.37384581566 --0.915143236518 -2.39110326767 --0.915136620402 -2.40836036205 --0.915132626891 -2.42561751604 --0.915131241083 -2.44287449121 --0.915132477879 -2.4601315856 --0.915136352182 -2.47738856077 --0.915142774582 -2.49464589357 --0.91515186429 -2.51190316677 --0.915163531899 -2.5291608572 --0.915177822113 -2.54641866684 --0.915194705129 -2.56367707252 --0.91521422565 -2.58093571663 --0.915236264467 -2.59819495678 --0.915248572826 -2.617408216 --0.915237560868 -2.63661980629 --0.915215313435 -2.65387892723 --0.915195718408 -2.67113780975 --0.91517868638 -2.68839609623 --0.915164247155 -2.70565414429 --0.915152445436 -2.7229115963 --0.915143236518 -2.74016904831 --0.915136620402 -2.7574262619 --0.91513261199 -2.77468341589 --0.915131226182 -2.79194027186 --0.915132448077 -2.80919736624 --0.915136322379 -2.82645434141 --0.915142774582 -2.84371167422 --0.91515186429 -2.86096894741 --0.9151635468 -2.87822663784 --0.915177837014 -2.89548450708 --0.915194705129 -2.91274291277 --0.91521422565 -2.93000149727 --0.915236264467 -2.94726079702 --0.915248587728 -2.96647405624 --0.915237620473 -2.98568570614 --0.915215358138 -3.00294488668 --0.915195703507 -3.02020365 --0.915178701282 -3.03746187687 --0.915164276958 -3.05471992493 --0.915152445436 -3.07197749615 --0.915143221617 -3.08923500776 --0.915136620402 -3.10649210215 --0.915132641792 -3.12374925613 --0.915131226182 -3.14100614388 --0.915132433176 --3.12492209673 --0.915136337281 --3.10766512155 --0.915142804385 --3.09040778875 --0.915151849389 --3.07315051556 --0.915163531899 --3.05589282513 --0.915177851915 --3.03863495588 --0.915194705129 --3.0213765502 --0.915214195847 --3.0041179657 --0.915236234665 --2.98685866594 --0.915248572826 --2.96764540672 --0.915237575769 --2.94843375683 --0.915215328336 --2.93117457628 --0.915195718408 --2.91391581297 --0.915178716183 --2.8966575861 --0.915164276958 --2.87939953804 --0.915152445436 --2.86214196682 --0.915143221617 --2.8448844552 --0.915136605501 --2.82762736082 --0.915132626891 --2.81037020683 --0.915131241083 --2.79311335087 --0.915132477879 --2.77585619688 --0.915136352182 --2.7585991621 --0.915142774582 --2.74134194851 --0.91515186429 --2.72408467531 --0.9151635468 --2.70682698488 --0.915177837014 --2.68956911564 --0.915194690228 --2.67231070995 --0.915214166045 --2.65505206585 --0.915236249566 --2.63779270649 --0.915248602629 --2.61857950687 --0.915237560868 --2.59936791658 --0.915215313435 --2.58210873604 --0.915195718408 --2.56484985352 --0.91517868638 --2.54759168625 --0.915164247155 --2.5303336978 --0.915152460337 --2.51307612657 --0.915143251419 --2.49581867456 --0.915136620402 --2.47856158018 --0.915132626891 --2.46130436659 --0.915131241083 --2.44404739141 --0.915132477879 --2.42679029703 --0.915136352182 --2.40953332186 --0.915142789483 --2.39227598905 --0.915151849389 --2.37501871586 --0.915163502097 --2.35776102543 --0.915177837014 --2.34050321579 --0.91519472003 --2.32324492931 --0.915214195847 --2.30598628521 --0.915236234665 --2.28872692585 --0.915248557925 --2.26951366663 --0.915237560868 --2.25030207634 --0.915215328336 --2.2330429554 --0.915195703507 --2.21578407288 --0.915178671479 --2.19852584601 --0.915164247155 --2.18126779795 --0.915152415633 --2.16401028633 --0.915143191814 --2.14675283432 --0.915136605501 --2.12949568033 --0.915132626891 --2.11223852635 --0.915131255984 --2.09498161078 --0.915132462978 --2.07772451639 --0.915136322379 --2.06046754122 --0.915142789483 --2.04321020842 --0.915151849389 --2.02595293522 --0.915163502097 --2.00869524479 --0.915177822113 --1.99143740535 --0.915194690228 --1.97417902947 --0.915214180946 --1.95692038536 --0.915236234665 --1.93966108561 --0.915248572826 --1.92044782639 --0.915237560868 --1.90123620629 --0.915215328336 --1.88397708535 --0.915195718408 --1.86671823263 --0.915178701282 --1.84945997596 --0.915164276958 --1.8322019577 --0.915152445436 --1.81494444609 --0.915143236518 --1.79768696427 --0.915136605501 --1.78042984009 --0.91513261199 --1.7631726861 --0.915131226182 --1.74591577053 --0.915132433176 --1.72865864634 --0.915136322379 --1.71140167117 --0.915142789483 --1.69414439797 --0.915151879192 --1.67688712478 --0.915163531899 --1.65962937474 --0.915177837014 --1.6423715055 --0.91519472003 --1.62511315942 --0.91521422565 --1.60785454512 --0.91523629427 --1.59059524536 --0.91524861753 --1.57138201594 --0.915237620473 --1.55217036605 --0.915215373039 --1.5349111855 --0.915195718408 --1.51765236258 --0.915178701282 --1.50039416552 --0.915164276958 --1.48313614726 --0.915152445436 --1.46587857604 --0.915143221617 --1.44862106442 --0.915136620402 --1.43136397004 --0.915132641792 --1.41410681605 --0.915131241083 --1.39684990048 --0.915132477879 --1.3795928061 --0.915136352182 --1.36233580112 --0.915142789483 --1.34507849812 --0.915151849389 --1.32782122493 --0.915163516998 --1.3105635345 --0.915177837014 --1.29330569505 --0.91519472003 --1.27604728937 --0.915214240551 --1.25878867507 --0.915236264467 --1.24152940512 --0.915248557925 --1.22231614589 --0.915237545967 --1.2031045258 --0.915215343237 --1.18584537506 --0.91519574821 --1.16858652234 --0.91517868638 --1.15132829547 --0.915164247155 --1.13407024741 --0.915152445436 --1.116812706 --0.915143236518 --1.09955522418 --0.915136620402 --1.08229809999 --0.915132626891 --1.06504094601 --0.915131241083 --1.04778406024 --0.915132477879 --1.03052696586 --0.915136352182 --1.01326999068 --0.915142774582 --0.996012702584 --0.915151834488 --0.978755399584 --0.915163502097 --0.961497679353 --0.915177822113 --0.944239839912 --0.915194690228 --0.926981464029 --0.915214166045 --0.909722834826 --0.915236219764 --0.892463520169 --0.915248572826 --0.87325027585 --0.915237560868 --0.854038655758 --0.915215343237 --0.836779519916 --0.91519574821 --0.819520696997 --0.915178716183 --0.802262470126 --0.915164276958 --0.785004422068 --0.915152445436 --0.767746880651 --0.915143236518 --0.750489383936 --0.915136620402 --0.73323225975 --0.915132626891 --0.715975120664 --0.915131241083 --0.698718205094 --0.915132477879 --0.68146109581 --0.915136352182 --0.664204120636 --0.915142774582 --0.646946832538 --0.91515186429 --0.629689529538 --0.915163531899 --0.612431839108 --0.915177822113 --0.595174014568 --0.915194705129 --0.577915608883 --0.91521422565 --0.560656994581 --0.915236264467 --0.543397694826 --0.915248572826 --0.524184405803 --0.915237560868 --0.504972793162 --0.915215313435 --0.487713672221 --0.915195718408 --0.470454834401 --0.91517868638 --0.453196600079 --0.915164247155 --0.435938566923 --0.915152445436 --0.418681025505 --0.915143236518 --0.401423543692 --0.915136620402 --0.384166434407 --0.91513261199 --0.366909258067 --0.915131226182 --0.349652342498 --0.915132448077 --0.332395248115 --0.915136322379 --0.31513826549 --0.915142774582 --0.297880977392 --0.91515186429 --0.280623696744 --0.9151635468 --0.263365991414 --0.915177837014 --0.246108151972 --0.915194705129 --0.228849761188 --0.91521422565 --0.211591131985 --0.915236264467 --0.194331828505 --0.915248587728 --0.17511858046 --0.898099437356 --0.155902843923 --0.898077428341 --0.138643704355 --0.898058012128 --0.121384879574 --0.898041203618 --0.10412667878 --0.898026928306 --0.0868686567992 --0.898015245795 --0.0696111302823 --0.898006126285 --0.0523536670953 --0.897999584675 --0.0350965731777 --0.897995680571 --0.0178394222166 --0.897994309664 --0.000582517357543 --0.897995501757 -0.0166745693423 --0.897999316454 -0.0339315324091 --0.898005694151 -0.0511888004839 --0.89801466465 -0.0684460690245 --0.89802621305 -0.0857037641108 --0.898040354252 -0.1029615812 --0.898057028651 -0.12021994777 --0.898076310754 -0.137478563935 --0.898098126054 -0.154737856239 --0.898110315203 -0.173951249569 --0.898099392652 -0.193163003773 --0.898077428341 -0.210422139615 --0.89805804193 -0.227680966258 --0.898041203618 -0.244939163327 --0.898026928306 -0.262197189033 --0.898015230894 -0.279454723001 --0.898006111383 -0.296712182462 --0.897999569774 -0.313969284296 --0.897995650768 -0.331226430833 --0.897994294762 -0.348483324051 --0.897995516657 -0.365740418434 --0.897999316454 -0.382997386158 --0.898005694151 -0.400254659355 --0.898014709354 -0.417511940002 --0.898026242852 -0.434769622981 --0.898040354252 -0.452027440071 --0.898057028651 -0.469285815954 --0.898076310754 -0.486544430256 --0.898098111153 -0.50380371511 --0.898110300302 -0.523017093539 --0.898099392652 -0.542228847742 --0.898077398539 -0.559487983584 --0.898058027029 -0.576746821404 --0.898041188717 -0.594005033374 --0.898026898503 -0.611263051629 --0.898015230894 -0.628520578146 --0.898006141186 -0.645778030157 --0.897999614477 -0.66303512454 --0.89799566567 -0.680292278528 --0.897994294762 -0.697549179196 --0.897995501757 -0.714806273579 --0.897999316454 -0.732063248753 --0.898005694151 -0.749320521951 --0.89801466465 -0.766577780247 --0.898026198149 -0.783835470676 --0.898040339351 -0.801093280315 --0.898057043552 -0.818351641297 --0.898076325655 -0.835610255599 --0.898098111153 -0.852869540453 --0.898110300302 -0.872082948685 --0.898099392652 -0.89129473269 --0.898077398539 -0.908553868532 --0.898058012128 -0.925812661648 --0.898041173816 -0.943070858717 --0.898026898503 -0.960328891873 --0.898015201092 -0.97758641839 --0.898006081581 -0.994843900204 --0.897999584675 -1.01210099458 --0.89799566567 -1.02935811877 --0.897994294762 -1.04661503434 --0.897995516657 -1.06387212872 --0.897999331355 -1.0811290741 --0.898005709052 -1.09838634729 --0.898014679551 -1.11564362049 --0.898026198149 -1.13290131092 --0.898040339351 -1.15015912056 --0.89805701375 -1.16741749644 --0.898076295853 -1.18467614055 --0.898098111153 -1.2019354403 --0.898110285401 -1.22114881873 --0.898099377751 -1.24036055803 --0.89807741344 -1.25761967897 --0.898058027029 -1.27487850189 --0.898041203618 -1.29213672877 --0.898026928306 -1.30939474702 --0.898015230894 -1.32665225864 --0.898006141186 -1.34390971065 --0.897999584675 -1.36116683483 --0.897995635867 -1.37842401862 --0.897994294763 -1.39568090439 --0.897995501757 -1.41293799877 --0.897999301553 -1.43019494415 --0.898005709053 -1.44745218754 --0.898014724255 -1.46470949053 --0.898026227951 -1.48196718096 --0.898040339351 -1.49922499061 --0.898057028651 -1.51648336649 --0.898076340556 -1.53374198079 --0.898098140955 -1.55100125074 --0.898110315203 -1.57021465897 --0.898099437356 -1.58942642808 --0.898077443242 -1.60668554902 --0.89805804193 -1.62394437194 --0.898041203618 -1.64120256901 --0.898026913405 -1.65846061706 --0.898015230894 -1.67571812868 --0.898006111383 -1.69297558069 --0.897999569774 -1.71023267507 --0.897995650768 -1.72748979926 --0.897994294762 -1.74474671483 --0.897995501757 -1.76200380921 --0.897999316454 -1.77926078439 --0.898005694151 -1.79651805758 --0.89801466465 -1.81377530098 --0.89802621305 -1.83103299141 --0.898040354252 -1.84829080105 --0.898057028651 -1.86554917693 --0.898076340556 -1.88280782104 --0.898098140955 -1.90006712079 --0.898110300302 -1.91928049922 --0.898099407554 -1.93849226833 --0.89807741344 -1.95575141907 --0.898058027029 -1.97301021218 --0.898041188717 -1.99026840925 --0.898026898503 -2.0075264275 --0.898015230894 -2.02478396893 --0.898006141186 -2.04204142094 --0.897999599576 -2.05929851532 --0.897995650768 -2.07655566931 --0.897994294762 -2.09381252527 --0.897995516657 -2.11106961965 --0.897999331355 -2.12832659483 --0.898005709052 -2.14558386803 --0.898014679551 -2.16284114122 --0.898026198149 -2.18009883165 --0.898040339351 -2.1973567009 --0.89805701375 -2.21461504698 --0.898076295853 -2.23187363148 --0.898098111153 -2.24913299084 --0.898110285401 -2.26834636927 --0.898099377751 -2.28755807877 --0.898077398539 -2.30481719971 --0.898058027029 -2.32207608223 --0.898041218519 -2.3393343091 --0.898026943207 -2.35659229755 --0.898015245795 -2.37384980917 --0.898006126285 -2.39110726118 --0.897999584675 -2.40836435556 --0.897995650768 -2.42562150955 --0.897994294762 -2.44287848473 --0.897995501757 -2.46013557911 --0.897999316454 -2.47739249468 --0.898005694151 -2.49464976788 --0.898014694453 -2.51190704107 --0.898026227951 -2.5291647315 --0.898040339351 -2.54642254114 --0.898057028651 -2.56368094683 --0.898076340556 -2.58093953133 --0.898098140955 -2.59819877148 --0.898110300302 -2.61741220951 --0.898099392652 -2.63662397862 --0.898077428341 -2.65388309956 --0.89805804193 -2.67114192247 --0.898041173816 -2.68840014934 --0.898026898503 -2.7056581974 --0.898015230894 -2.72291570902 --0.898006141186 -2.74017316103 --0.897999614477 -2.75743031502 --0.89799566567 -2.7746874094 --0.897994294762 -2.79194426537 --0.897995501757 -2.80920135975 --0.897999316454 -2.82645833492 --0.898005694151 -2.84371560812 --0.898014694453 -2.86097282171 --0.898026242852 -2.87823051214 --0.898040354252 -2.89548838139 --0.89805701375 -2.91274678707 --0.898076325655 -2.93000537157 --0.898098140955 -2.94726461172 --0.898110315203 -2.96647799015 --0.898099437356 -2.98568981886 --0.898077428341 -3.00294899941 --0.898058012128 -3.02020776272 --0.898041203618 -3.03746592998 --0.898026928306 -3.05472397804 --0.898015245795 -3.07198154926 --0.898006126285 -3.08923900127 --0.897999584675 -3.10649609566 --0.897995680571 -3.12375324965 --0.897994309664 -3.14101013739 --0.897995501757 --3.12491810322 --0.897999316454 --3.10766112804 --0.898005694151 --3.09040385485 --0.89801466465 --3.07314664126 --0.89802621305 --3.05588895083 --0.898040354252 --3.03863108158 --0.898057028651 --3.0213726759 --0.898076310754 --3.0041140914 --0.898098126054 --2.98685485125 --0.898110315203 --2.96764147282 --0.898099392652 --2.94842964411 --0.898077428341 --2.93117046356 --0.89805804193 --2.91391170025 --0.898041203618 --2.89665353298 --0.898026928306 --2.87939548492 --0.898015230894 --2.8621379137 --0.898006111383 --2.84488046169 --0.897999569774 --2.82762336731 --0.897995650768 --2.81036621332 --0.897994294762 --2.79310935736 --0.897995516657 --2.77585226297 --0.897999316454 --2.7585952878 --0.898005694151 --2.7413380146 --0.898014709354 --2.72408074141 --0.898026242852 --2.70682305098 --0.898040354252 --2.68956524134 --0.898057028651 --2.67230689526 --0.898076310754 --2.65504825115 --0.898098111153 --2.63778889179 --0.898110300302 --2.61857551336 --0.898099392652 --2.59936380386 --0.898077398539 --2.58210468292 --0.898058027029 --2.5648458004 --0.898041188717 --2.54758757353 --0.898026898503 --2.53032964468 --0.898015230894 --2.51307213306 --0.898006141186 --2.49581468105 --0.897999614477 --2.47855758667 --0.89799566567 --2.46130037308 --0.897994294762 --2.44404345751 --0.897995501757 --2.42678636313 --0.897999316454 --2.40952938795 --0.898005694151 --2.39227211475 --0.89801466465 --2.37501484156 --0.898026198149 --2.35775715113 --0.898040339351 --2.34049934149 --0.898057043552 --2.32324099541 --0.898076325655 --2.30598241091 --0.898098111153 --2.28872311115 --0.898110300302 --2.26950967312 --0.898099392652 --2.25029790401 --0.898077398539 --2.23303878307 --0.898058012128 --2.21577996016 --0.898041173816 --2.19852173329 --0.898026898503 --2.18126368523 --0.898015201092 --2.16400623321 --0.898006081581 --2.1467487812 --0.897999584675 --2.12949168682 --0.89799566567 --2.11223459244 --0.897994294762 --2.09497761726 --0.897995516657 --2.07772052288 --0.897999331355 --2.0604635477 --0.898005709052 --2.04320627451 --0.898014679551 --2.02594906092 --0.898026198149 --2.00869137049 --0.898040339351 --1.99143353104 --0.89805701375 --1.97417518496 --0.898076295853 --1.95691657066 --0.898098111153 --1.93965727091 --0.898110285401 --1.92044386268 --0.898099377751 --1.90123209357 --0.89807741344 --1.88397297263 --0.898058027029 --1.86671414971 --0.898041203618 --1.84945595265 --0.898026928306 --1.83219790459 --0.898015230894 --1.81494036317 --0.898006141186 --1.79768291116 --0.897999584675 --1.78042584658 --0.897995635867 --1.76316869259 --0.897994294763 --1.74591177702 --0.897995501757 --1.72865471244 --0.897999301553 --1.71139773726 --0.898005709053 --1.69414046406 --0.898014724255 --1.67688319087 --0.898026227951 --1.65962547064 --0.898040339351 --1.64236763119 --0.898057028651 --1.62510928511 --0.898076340556 --1.60785070062 --0.898098140955 --1.59059140086 --0.898110315203 --1.57137802243 --0.898099437356 --1.55216625333 --0.898077443242 --1.53490707278 --0.89805804193 --1.51764824987 --0.898041203618 --1.5003900826 --0.898026913405 --1.48313209414 --0.898015230894 --1.46587455273 --0.898006111383 --1.44861707091 --0.897999569774 --1.43135997653 --0.897995650768 --1.41410282254 --0.897994294762 --1.39684590697 --0.897995501757 --1.37958881259 --0.897999316454 --1.36233186722 --0.898005694151 --1.34507459402 --0.89801466465 --1.32781732082 --0.89802621305 --1.31055963039 --0.898040354252 --1.29330182075 --0.898057028651 --1.27604344487 --0.898076340556 --1.25878483057 --0.898098140955 --1.24152559042 --0.898110300302 --1.22231218219 --0.898099407554 --1.20310038328 --0.89807741344 --1.18584126234 --0.898058027029 --1.16858243942 --0.898041188717 --1.15132421255 --0.898026898503 --1.13406619429 --0.898015230894 --1.11680868268 --0.898006141186 --1.09955120087 --0.897999599576 --1.08229407668 --0.897995650768 --1.0650369823 --0.897994294762 --1.04778012633 --0.897995516657 --1.03052303195 --0.897999331355 --1.01326605678 --0.898005709052 --0.996008768676 --0.898014679551 --0.978751495481 --0.898026198149 --0.961493790149 --0.898040339351 --0.94423596561 --0.89805701375 --0.926977619529 --0.898076295853 --0.909719005227 --0.898098111153 --0.892459690571 --0.898110285401 --0.87324629724 --0.898099377751 --0.854034528136 --0.898077398539 --0.836775407195 --0.898058027029 --0.81951661408 --0.898041218519 --0.802258402109 --0.898026943207 --0.785000354052 --0.898015245795 --0.767742827534 --0.898006126285 --0.750485360622 --0.897999584675 --0.733228266239 --0.897995650768 --0.715971127152 --0.897994294762 --0.698714211583 --0.897995501757 --0.681457132101 --0.897999316454 --0.664200171828 --0.898005694151 --0.646942913532 --0.898014694453 --0.629685640335 --0.898026227951 --0.612427949906 --0.898040339351 --0.595170140266 --0.898057028651 --0.577911749482 --0.898076340556 --0.560653150081 --0.898098140955 --0.543393880129 --0.898110300302 --0.524180456996 --0.898099392652 --0.504968680441 --0.898077428341 --0.4877095595 --0.89805804193 --0.470450744033 --0.898041173816 --0.453192532062 --0.898026898503 --0.435934513807 --0.898015230894 --0.41867698729 --0.898006141186 --0.401419520378 --0.897999614477 --0.384162425995 --0.89799566567 --0.366905264556 --0.897994294762 --0.349648371339 --0.897995501757 --0.332391299307 --0.897999316454 --0.315134331584 --0.898005694151 --0.297877050936 --0.898014694453 --0.28061978519 --0.898026242852 --0.263362102211 --0.898040354252 --0.24610427022 --0.89805701375 --0.228845898062 --0.898076325655 --0.211587287485 --0.898098140955 --0.194327998906 --0.898110315203 --0.175114605576 --0.880940705537 --0.155898101628 --0.880918979644 --0.138638980687 --0.880899816751 --0.121380176395 --0.880883187055 --0.104121992364 --0.880869090557 --0.0868639908731 --0.880857557058 --0.0696064857766 --0.880848556757 --0.0523490421474 --0.880842089653 --0.0350919673219 --0.880838230252 --0.0178348349873 --0.880836904049 --0.000577948754653 --0.880838081241 -0.0166791193187 --0.880841836333 -0.0339360632934 --0.880848139525 -0.0511933127418 --0.880857020617 -0.0684505626559 --0.880868420005 -0.0857082419097 --0.880882367492 -0.102966040373 --0.880898833275 -0.120224386453 --0.880917906761 -0.137482985854 --0.880939483643 -0.154742252081 --0.88095150888 -0.173955816776 --0.880940705537 -0.193167746067 --0.880919009447 -0.210426859558 --0.880899846554 -0.227685663849 --0.880883187055 -0.244943846017 --0.880869090557 -0.262201853097 --0.880857512355 -0.279459357262 --0.880848512054 -0.296716801822 --0.880842074752 -0.313973888755 --0.880838185549 -0.331231020391 --0.880836844444 -0.348487891257 --0.88083806634 -0.365744963288 --0.880841836333 -0.38300191611 --0.880848139525 -0.400259174406 --0.880857020617 -0.417516432702 --0.880868390202 -0.43477409333 --0.880882367492 -0.452031895518 --0.880898863077 -0.4692902565 --0.880917921662 -0.486548855901 --0.880939468742 -0.503808118403 --0.880951493978 -0.523021653295 --0.880940720439 -0.54223357141 --0.880918994546 -0.559492707253 --0.880899831652 -0.576751530171 --0.880883201956 -0.594009712338 --0.880869090557 -0.611267715692 --0.880857542157 -0.628525227308 --0.880848556757 -0.645782664418 --0.880842104554 -0.663039743901 --0.88083820045 -0.680296868086 --0.880836844444 -0.697553738952 --0.880838021636 -0.714810803533 --0.880841806531 -0.732067763805 --0.880848124623 -0.749325037003 --0.880856990814 -0.766582280397 --0.880868390202 -0.783839941025 --0.880882367492 -0.801097750663 --0.880898863077 -0.818356096745 --0.880917921662 -0.835614681244 --0.880939468742 -0.852873951197 --0.880951493978 -0.87208750844 --0.880940705537 -0.891299456358 --0.880918979644 -0.908558577299 --0.880899816751 -0.925817370415 --0.880883172154 -0.943075552583 --0.880869075656 -0.960333555937 --0.880857542157 -0.977591067553 --0.880848541856 -0.994848519566 --0.880842089653 -1.01210558414 --0.88083820045 -1.02936267853 --0.880836859345 -1.0466195941 --0.880838081241 -1.06387668848 --0.880841851234 -1.08113360405 --0.880848154426 -1.09839084744 --0.880857020617 -1.11564809084 --0.880868390202 -1.13290578127 --0.880882367492 -1.15016359091 --0.880898848176 -1.16742193699 --0.880917906761 -1.18468055129 --0.880939468742 -1.20193982124 --0.880951479077 -1.22115337849 --0.880940705538 -1.2403652966 --0.880918994546 -1.25762438774 --0.880899816751 -1.27488321066 --0.880883187055 -1.29214143753 --0.880869090557 -1.30939942598 --0.880857542157 -1.32665690779 --0.880848556757 -1.34391435981 --0.880842089653 -1.36117145419 --0.880838185549 -1.37842857837 --0.880836874247 -1.39568543434 --0.880838081241 -1.41294249892 --0.88084179163 -1.4301994741 --0.880848094821 -1.44745671749 --0.880857005716 -1.46471396088 --0.880868405104 -1.48197162151 --0.880882382393 -1.49922943115 --0.880898863077 -1.51648780703 --0.880917906761 -1.53374639153 --0.88093945384 -1.55100566149 --0.880951493978 -1.57021921873 --0.880940720439 -1.58943113685 --0.880918979645 -1.60669025779 --0.880899846554 -1.6239490509 --0.880883216858 -1.64120721817 --0.880869075656 -1.65846526622 --0.880857542157 -1.67572277784 --0.880848556757 -1.69298020005 --0.880842089653 -1.71023729443 --0.880838185549 -1.72749441862 --0.880836844444 -1.74475130439 --0.880838051439 -1.76200836897 --0.880841836333 -1.77926531434 --0.880848124623 -1.79652258754 --0.880856990814 -1.81377983093 --0.880868390202 -1.83103749156 --0.880882367492 -1.8482952714 --0.880898848176 -1.86555361748 --0.880917906761 -1.88281226158 --0.880939468742 -1.90007153153 --0.880951493978 -1.91928505897 --0.88094073534 -1.9384970069 --0.880918994546 -1.95575612783 --0.880899816751 -1.97301492095 --0.880883201956 -1.99027311802 --0.880869090557 -2.00753110647 --0.880857542157 -2.02478861809 --0.880848556757 -2.0420460701 --0.880842089653 -2.05930316448 --0.880838185549 -2.07656025886 --0.880836844444 -2.09381711483 --0.88083806634 -2.11107420921 --0.880841851234 -2.12833112478 --0.880848154426 -2.14558839798 --0.880857020617 -2.16284567117 --0.880868390202 -2.18010336161 --0.88088235259 -2.19736117124 --0.880898833275 -2.21461945772 --0.880917906761 -2.23187804222 --0.880939468742 -2.24913740158 --0.880951479077 -2.26835095882 --0.880940705538 -2.28756284714 --0.880918979645 -2.30482196808 --0.880899816751 -2.32208079099 --0.880883201956 -2.33933901786 --0.880869105458 -2.35659694671 --0.880857557058 -2.37385439872 --0.880848541856 -2.39111185074 --0.880842074752 -2.40836894512 --0.880838185549 -2.42562609911 --0.880836859345 -2.44288301468 --0.880838036537 -2.46014010906 --0.880841806531 -2.47739702463 --0.880848124623 -2.49465423823 --0.880856990814 -2.51191151142 --0.880868390202 -2.52916920185 --0.880882367492 -2.54642701149 --0.880898848176 -2.56368535757 --0.880917906761 -2.58094388247 --0.880939468742 -2.59820318222 --0.880951493978 -2.61741679907 --0.880940720439 -2.63662874699 --0.880919024348 -2.65388786793 --0.880899846554 -2.67114663124 --0.880883187055 -2.68840479851 --0.880869090557 -2.70566284657 --0.880857542157 -2.72292035818 --0.880848556757 -2.74017781019 --0.880842104554 -2.75743490457 --0.88083820045 -2.77469199896 --0.880836859345 -2.79194885493 --0.880838036537 -2.8092058897 --0.880841776728 -2.82646286488 --0.880848094821 -2.84372013808 --0.880856990814 -2.86097735166 --0.880868390202 -2.87823498249 --0.88088235259 -2.89549279213 --0.880898833275 -2.91275119782 --0.880917906761 -2.93000978231 --0.880939468742 -2.94726902246 --0.880951493978 -2.96648257971 --0.880940705537 -2.98569452763 --0.880918979644 -3.00295364857 --0.880899816751 -3.02021241188 --0.880883187055 -3.03747057915 --0.880869090557 -3.0547286272 --0.880857557058 -3.07198619842 --0.880848556757 -3.08924365043 --0.880842089653 -3.10650068521 --0.880838230252 -3.1237577796 --0.880836904049 -3.14101466735 --0.880838081241 --3.12491357326 --0.880841836333 --3.10765659809 --0.880848139525 --3.09039932489 --0.880857020617 --3.07314211131 --0.880868420005 --3.05588442088 --0.880882367492 --3.03862661123 --0.880898833275 --3.02136826516 --0.880917906761 --3.00410962105 --0.880939483643 --2.9868503809 --0.88095150888 --2.96763688326 --0.880940705537 --2.94842493534 --0.880919009447 --2.9311658144 --0.880899846554 --2.91390705108 --0.880883187055 --2.89664888382 --0.880869090557 --2.87939083576 --0.880857512355 --2.86213326454 --0.880848512054 --2.84487581253 --0.880842074752 --2.82761877776 --0.880838185549 --2.81036168337 --0.880836844444 --2.7931047678 --0.88083806634 --2.77584767341 --0.880841836333 --2.75859075784 --0.880848139525 --2.74133348465 --0.880857020617 --2.72407627106 --0.880868390202 --2.70681858063 --0.880882367492 --2.68956077099 --0.880898863077 --2.67230248451 --0.880917921662 --2.65504384041 --0.880939468742 --2.63778454065 --0.880951493978 --2.61857098341 --0.880940720439 --2.5993590951 --0.880918994546 --2.58209997415 --0.880899831652 --2.56484109163 --0.880883201956 --2.54758286476 --0.880869090557 --2.53032493591 --0.880857542157 --2.5130674839 --0.880848556757 --2.49581003189 --0.880842104554 --2.47855293751 --0.88083820045 --2.46129578352 --0.880836844444 --2.44403892755 --0.880838021636 --2.42678183317 --0.880841806531 --2.409524858 --0.880848124623 --2.3922676444 --0.880856990814 --2.37501037121 --0.880868390202 --2.35775268078 --0.880882367492 --2.34049487114 --0.880898863077 --2.32323652506 --0.880917921662 --2.30597800017 --0.880939468742 --2.28871870041 --0.880951493978 --2.26950508356 --0.880940705537 --2.25029313564 --0.880918979644 --2.2330340147 --0.880899816751 --2.21577525139 --0.880883172154 --2.19851708412 --0.880869075656 --2.18125903607 --0.880857542157 --2.16400158405 --0.880848541856 --2.14674419165 --0.880842089653 --2.12948709726 --0.88083820045 --2.11222994328 --0.880836859345 --2.09497302771 --0.880838081241 --2.07771599292 --0.880841851234 --2.06045901775 --0.880848154426 --2.04320174456 --0.880857020617 --2.02594453097 --0.880868390202 --2.00868690014 --0.880882367492 --1.9914290905 --0.880898848176 --1.97417071462 --0.880917906761 --1.95691213012 --0.880939468742 --1.93965286017 --0.880951479077 --1.92043927312 --0.880940705538 --1.901227355 --0.880918994546 --1.88396826386 --0.880899816751 --1.86670944095 --0.880883187055 --1.84945124388 --0.880869090557 --1.83219322562 --0.880857542157 --1.81493571401 --0.880848556757 --1.7976782918 --0.880842089653 --1.78042122722 --0.880838185549 --1.76316407323 --0.880836874247 --1.74590718746 --0.880838081241 --1.72865015268 --0.88084179163 --1.71139320731 --0.880848094821 --1.69413593411 --0.880857005716 --1.67687866092 --0.880868405104 --1.65962100029 --0.880882382393 --1.64236322045 --0.880898863077 --1.62510487437 --0.880917906761 --1.60784628987 --0.88093945384 --1.59058701992 --0.880951493978 --1.57137346268 --0.880940720439 --1.55216151476 --0.880918979645 --1.53490236401 --0.880899846554 --1.5176435709 --0.880883216858 --1.50038540364 --0.880869075656 --1.48312741518 --0.880857542157 --1.46586990357 --0.880848556757 --1.44861245156 --0.880842089653 --1.43135538697 --0.880838185549 --1.41409826279 --0.880836844444 --1.39684134722 --0.880838051439 --1.37958425283 --0.880841836333 --1.36232733727 --0.880848124623 --1.34507009387 --0.880856990814 --1.32781285047 --0.880868390202 --1.31055516005 --0.880882367492 --1.29329735041 --0.880898848176 --1.27603900433 --0.880917906761 --1.25878041983 --0.880939468742 --1.24152117968 --0.880951493978 --1.22230759263 --0.88094073534 --1.20309564471 --0.880918994546 --1.18583655357 --0.880899816751 --1.16857773066 --0.880883201956 --1.15131950378 --0.880869090557 --1.13406151533 --0.880857542157 --1.11680403352 --0.880848556757 --1.09954661131 --0.880842089653 --1.08228951692 --0.880838185549 --1.06503239274 --0.880836844444 --1.04777553677 --0.88083806634 --1.03051844239 --0.880841851234 --1.01326149702 --0.880848154426 --0.996004253626 --0.880857020617 --0.978746980429 --0.880868390202 --0.961489275098 --0.88088235259 --0.94423148036 --0.880898833275 --0.926973178983 --0.880917906761 --0.909714579582 --0.880939468742 --0.892455279827 --0.880951479077 --0.873241722584 --0.880940705538 --0.854029789567 --0.880918979645 --0.836770683527 --0.880899816751 --0.819511890411 --0.880883201956 --0.802253693342 --0.880869105458 --0.784995689988 --0.880857557058 --0.767738193273 --0.880848541856 --0.750480756164 --0.880842074752 --0.733223661781 --0.880838185549 --0.715966522694 --0.880836859345 --0.698709651828 --0.880838036537 --0.681452602148 --0.880841806531 --0.664195656776 --0.880848124623 --0.64693839848 --0.880856990814 --0.629681140184 --0.880868390202 --0.612423464656 --0.880882367492 --0.595165669918 --0.880898848176 --0.577907323837 --0.880917906761 --0.560648724437 --0.880939468742 --0.543389454484 --0.880951493978 --0.524175897241 --0.880940720439 --0.504963949323 --0.880919024348 --0.487704835832 --0.880899846554 --0.470446042717 --0.880883187055 --0.453187853098 --0.880869090557 --0.435929849744 --0.880857542157 --0.418672330677 --0.880848556757 --0.401414886117 --0.880842104554 --0.384157814086 --0.88083820045 --0.366900674999 --0.880836859345 --0.349643804133 --0.880838036537 --0.332386739552 --0.880841776728 --0.31512978673 --0.880848094821 --0.297872535885 --0.880856990814 --0.28061529249 --0.880868390202 --0.263357616961 --0.88088235259 --0.246099807322 --0.880898833275 --0.228841461241 --0.880917906761 --0.211582873017 --0.880939468742 --0.194323606789 --0.880951493978 --0.17511003837 --0.863786056637 --0.155893176794 --0.863764613867 --0.138634085655 --0.863745689392 --0.121375305578 --0.863729253411 --0.104117132723 --0.863715350628 --0.0868591535836 --0.863703951239 --0.0696016689762 --0.863695040345 --0.0523442402482 --0.863688647747 --0.0350871849805 --0.863684818149 --0.0178300722037 --0.863683506847 --0.000573205063118 --0.863684684038 -0.0166838434525 --0.863688394427 -0.0339407674037 --0.863694608212 -0.0511979972944 --0.863703384996 -0.0684552295134 --0.863714650273 -0.0857128892094 --0.863728433847 -0.102970669046 --0.863744705915 -0.120228998363 --0.863763540983 -0.137487575412 --0.863784834743 -0.154746819288 --0.863796710968 -0.17396055907 --0.863786056637 -0.193172667175 --0.863764613867 -0.210431758314 --0.863745689392 -0.227690543979 --0.863729253411 -0.244948714972 --0.863715335727 -0.262206695974 --0.863703891635 -0.279464177787 --0.863694995642 -0.296721607447 --0.863688632846 -0.313978664577 --0.863684773445 -0.331235781312 --0.863683462143 -0.348492644727 --0.863684669137 -0.365749686956 --0.863688394427 -0.383006609976 --0.863694623113 -0.40026383847 --0.863703384996 -0.417521074414 --0.863714620471 -0.434778727591 --0.863728433847 -0.452036507428 --0.863744720817 -0.469294846058 --0.863763540983 -0.486553430557 --0.863784834743 -0.503812670708 --0.863796710968 -0.523026406765 --0.863786071539 -0.542238503695 --0.863764628768 -0.559497594834 --0.863745689392 -0.576756402851 --0.863729253411 -0.594014570117 --0.863715335727 -0.61127255857 --0.863703921437 -0.628530055284 --0.863695025444 -0.645787477493 --0.863688647747 -0.663044542074 --0.863684788346 -0.680301636457 --0.863683462143 -0.697558477521 --0.863684639335 -0.714815527201 --0.863688364625 -0.732072457671 --0.863694608212 -0.749329701066 --0.863703370094 -0.766586944461 --0.863714620471 -0.783844605088 --0.863728433847 -0.801102399826 --0.863744720817 -0.818360701203 --0.863763540983 -0.8356192559 --0.863784834743 -0.852878525853 --0.863796710968 -0.872092261911 --0.863786056637 -0.891304373741 --0.863764598966 -0.908563479781 --0.863745674491 -0.925822257996 --0.86372923851 -0.943080410362 --0.863715320826 -0.960338398815 --0.863703921437 -0.977595895529 --0.863695025444 -0.994853302838 --0.863688632846 -1.01211035252 --0.863684788346 -1.0293674469 --0.863683491945 -1.04662433266 --0.863684684038 -1.06388142705 --0.863688409328 -1.08113834262 --0.863694638014 -1.09839555621 --0.863703384996 -1.1156527698 --0.863714620471 -1.13291043043 --0.863728448748 -1.15016821026 --0.863744735718 -1.16742652655 --0.863763540983 -1.18468511105 --0.863784834743 -1.2019443512 --0.863796710968 -1.22115811706 --0.863786071539 -1.24037021398 --0.863764628768 -1.25762927532 --0.863745689392 -1.27488809824 --0.863729253411 -1.29214629531 --0.863715335727 -1.30940425396 --0.863703921437 -1.32666170597 --0.863695025444 -1.34391915798 --0.863688632846 -1.36117622256 --0.863684788346 -1.37843331694 --0.863683491945 -1.39569017291 --0.863684684038 -1.41294720769 --0.863688364625 -1.43020418286 --0.863694578409 -1.44746142626 --0.863703370094 -1.46471863985 --0.863714650273 -1.48197627067 --0.863728478551 -1.49923405051 --0.86374476552 -1.51649239659 --0.863763540983 -1.53375098109 --0.863784790039 -1.55101025105 --0.863796696067 -1.5702239573 --0.863786071539 -1.58943605423 --0.863764598966 -1.60669517517 --0.863745689392 -1.62395393849 --0.863729268312 -1.64121207595 --0.863715320825 -1.6584700942 --0.863703936338 -1.67572760582 --0.863695040345 -1.69298499822 --0.863688647747 -1.7102420628 --0.863684788346 -1.72749918699 --0.863683462143 -1.74475604296 --0.863684669137 -1.76201310754 --0.863688394427 -1.77927002311 --0.863694608212 -1.7965272665 --0.863703370094 -1.8137845099 --0.863714620471 -1.83104214072 --0.863728448748 -1.84829992056 --0.863744735718 -1.86555823684 --0.863763540983 -1.88281682134 --0.863784834743 -1.90007606149 --0.863796710968 -1.91928979754 --0.863786071539 -1.93850192428 --0.863764613867 -1.95576101542 --0.86374565959 -1.97301980853 --0.86372923851 -1.9902779758 --0.863715335727 -2.00753596425 --0.863703921437 -2.02479344606 --0.863695025444 -2.04205083847 --0.863688647747 -2.05930793285 --0.863684788346 -2.07656502724 --0.863683462143 -2.0938218832 --0.863684669137 -2.11107897759 --0.863688394427 -2.12833583355 --0.863694623113 -2.14559304714 --0.863703384996 -2.16285032034 --0.863714620471 -2.18010801077 --0.863728418946 -2.1973657608 --0.863744705915 -2.21462404728 --0.863763540983 -2.23188269138 --0.863784834743 -2.24914199114 --0.863796710968 -2.26835572719 --0.863786071539 -2.28756779432 --0.863764613867 -2.30482685566 --0.863745674491 -2.32208567858 --0.863729253411 -2.33934384584 --0.863715335727 -2.35660177469 --0.863703921437 -2.37385928631 --0.863695010543 -2.39111673832 --0.863688632846 -2.4083737731 --0.863684803247 -2.42563086748 --0.863683491945 -2.44288772345 --0.863684654236 -2.46014475823 --0.863688379526 -2.4774016738 --0.863694623113 -2.49465888739 --0.863703370094 -2.51191616058 --0.863714620471 -2.52917385101 --0.863728433847 -2.54643160105 --0.863744720817 -2.56368988752 --0.863763540983 -2.58094847202 --0.863784834743 -2.59820777178 --0.863796710968 -2.61742150783 --0.863786071539 -2.63663363457 --0.863764613867 -2.65389275551 --0.863745674491 -2.67115151882 --0.86372923851 -2.68840968609 --0.863715320825 -2.70566767454 --0.863703921437 -2.72292512655 --0.863695025444 -2.74018257856 --0.863688647747 -2.75743961334 --0.863684803247 -2.77469670773 --0.863683491945 -2.79195356369 --0.863684654236 -2.80921059847 --0.863688349723 -2.82646757364 --0.863694578409 -2.84372484684 --0.863703355193 -2.86098206043 --0.863714620471 -2.87823963165 --0.863728433847 -2.89549744129 --0.863744720816 -2.91275584698 --0.863763540983 -2.93001437187 --0.863784834743 -2.94727361202 --0.863796710968 -2.96648734808 --0.863786056637 -2.98569941521 --0.863764613867 -3.00295853615 --0.863745689392 -3.02021729946 --0.863729253411 -3.03747546673 --0.863715350628 -3.05473351479 --0.863703951239 -3.0719910264 --0.863695040345 -3.08924841881 --0.863688647747 -3.10650545359 --0.863684818149 -3.12376254797 --0.863683506847 -3.14101937612 --0.863684684038 --3.1249088645 --0.863688394427 --3.10765188932 --0.863694608212 --3.09039461613 --0.863703384996 --3.07313740254 --0.863714650273 --3.05587977171 --0.863728433847 --3.03862196207 --0.863744705915 --3.02136361599 --0.863763540983 --3.00410503149 --0.863784834743 --2.98684579134 --0.863796710968 --2.96763211489 --0.863786056637 --2.94842004776 --0.863764613867 --2.93116092682 --0.863745689392 --2.9139021635 --0.863729253411 --2.89664399624 --0.863715335727 --2.87938594818 --0.863703891635 --2.86212843657 --0.863694995642 --2.84487104416 --0.863688632846 --2.82761400938 --0.863684773445 --2.810356915 --0.863683462143 --2.79309999943 --0.863684669137 --2.77584290504 --0.863688394427 --2.75858604908 --0.863694623113 --2.74132883549 --0.863703384996 --2.7240716219 --0.863714620471 --2.70681393147 --0.863728433847 --2.68955612183 --0.863744720817 --2.67229783535 --0.863763540983 --2.65503925085 --0.863784834743 --2.6377800107 --0.863796710968 --2.61856621504 --0.863786071539 --2.59935414791 --0.863764628768 --2.58209508657 --0.863745689392 --2.56483620405 --0.863729253411 --2.54757803679 --0.863715335727 --2.53032010794 --0.863703921437 --2.51306265593 --0.863695025444 --2.49580520392 --0.863688647747 --2.47854810953 --0.863684788346 --2.46129101515 --0.863683462143 --2.44403415918 --0.863684639335 --2.4267771244 --0.863688364625 --2.40952020883 --0.863694608212 --2.39226299524 --0.863703370094 --2.37500572205 --0.863714620471 --2.35774803162 --0.863728433847 --2.34049028158 --0.863744720817 --2.32323199511 --0.863763540983 --2.30597341061 --0.863784834743 --2.28871411085 --0.863796710968 --2.2695003748 --0.863786056637 --2.25028824806 --0.863764598966 --2.23302912712 --0.863745674491 --2.21577036381 --0.86372923851 --2.19851225614 --0.863715320826 --2.18125426769 --0.863703921437 --2.16399675608 --0.863695025444 --2.14673936367 --0.863688632846 --2.12948232889 --0.863684788346 --2.1122251749 --0.863683491945 --2.09496831894 --0.863684684038 --2.07771128416 --0.863688409328 --2.06045430899 --0.863694638014 --2.04319703579 --0.863703384996 --2.0259398222 --0.863714620471 --2.00868225098 --0.863728448748 --1.99142447114 --0.863744735718 --1.97416609526 --0.863763540983 --1.95690751076 --0.863784834743 --1.93964827061 --0.863796710968 --1.92043453455 --0.863786071539 --1.90122243762 --0.863764628768 --1.88396334648 --0.863745689392 --1.86670455337 --0.863729253411 --1.8494463563 --0.863715335727 --1.83218836784 --0.863703921437 --1.81493091583 --0.863695025444 --1.79767352343 --0.863688632846 --1.78041645884 --0.863684788346 --1.76315930486 --0.863683491945 --1.74590244889 --0.863684684038 --1.72864541411 --0.863688364625 --1.71138849854 --0.863694578409 --1.69413125515 --0.863703370094 --1.67687401176 --0.863714650273 --1.65961638093 --0.863728478551 --1.64235860109 --0.86374476552 --1.62510025501 --0.863763540983 --1.60784167051 --0.863784790039 --1.59058243036 --0.863796696067 --1.57136869431 --0.863786071539 --1.55215656757 --0.863764598966 --1.53489747643 --0.863745689392 --1.51763871312 --0.863729268312 --1.50038054586 --0.863715320825 --1.4831225574 --0.863703936338 --1.46586504578 --0.863695040345 --1.44860762358 --0.863688647747 --1.4313505888 --0.863684788346 --1.41409349441 --0.863683462143 --1.39683660865 --0.863684669137 --1.37957954407 --0.863688394427 --1.3623226285 --0.863694608212 --1.34506541491 --0.863703370094 --1.32780820131 --0.863714620471 --1.31055051088 --0.863728448748 --1.29329273105 --0.863744735718 --1.27603441477 --0.863763540983 --1.25877583027 --0.863784834743 --1.24151659012 --0.863796710968 --1.22230285406 --0.863786071539 --1.20309075713 --0.863764613867 --1.18583166599 --0.86374565959 --1.16857287288 --0.86372923851 --1.15131467581 --0.863715335727 --1.13405668735 --0.863703921437 --1.11679923534 --0.863695025444 --1.09954181313 --0.863688647747 --1.08228474855 --0.863684788346 --1.06502762437 --0.863683462143 --1.0477707386 --0.863684669137 --1.03051367402 --0.863688394427 --1.01325675845 --0.863694623113 --0.99599954486 --0.863703384996 --0.978742301464 --0.863714620471 --0.961484625936 --0.863728418946 --0.944226861 --0.863744705915 --0.926968559623 --0.863763540983 --0.909709960222 --0.863784834743 --0.892450690269 --0.863796710968 --0.873236969114 --0.863786071539 --0.854024887085 --0.863764613867 --0.836765795946 --0.863745674491 --0.819507002831 --0.863729253411 --0.802248820663 --0.863715335727 --0.78499083221 --0.863703921437 --0.767733350396 --0.863695010543 --0.750475943088 --0.863688632846 --0.733218878508 --0.863684803247 --0.715961769223 --0.863683491945 --0.69870492816 --0.863684654236 --0.68144787848 --0.863688379526 --0.664190962911 --0.863694623113 --0.646933719516 --0.863703370094 --0.629676476121 --0.863714620471 --0.612418830395 --0.863728433847 --0.595161035657 --0.863744720817 --0.577902704477 --0.863763540983 --0.560644119978 --0.863784834743 --0.543384879828 --0.863796710968 --0.524171158671 --0.863786071539 --0.50495903939 --0.863764613867 --0.487699948251 --0.863745674491 --0.470441155135 --0.86372923851 --0.453182980418 --0.863715320825 --0.435925006866 --0.863703921437 --0.418667517602 --0.863695025444 --0.401410087943 --0.863688647747 --0.384153030813 --0.863684803247 --0.366895921529 --0.863683491945 --0.349639065563 --0.863684654236 --0.332382008433 --0.863688349723 --0.315125077963 --0.863694578409 --0.297867849469 --0.863703355193 --0.280610620975 --0.863714620471 --0.263352960348 --0.863728433847 --0.246095176786 --0.863744720816 --0.228836856782 --0.863763540983 --0.211578287184 --0.863784834743 --0.194319039583 --0.863796710968 --0.17510529235 --0.846635684371 --0.155888650566 --0.84661449492 --0.138629578054 --0.846595808864 --0.121370814741 --0.8465795964 --0.104112660512 --0.84656585753 --0.0868546981364 --0.846554577351 --0.0695972256362 --0.846545800567 --0.0523398155347 --0.846539512277 --0.0350827788934 --0.84653571248 --0.0178256831132 --0.846534401178 --0.000568834133445 --0.846535548568 -0.0166881969199 --0.846539214253 -0.0339451027103 --0.846545338631 -0.0512023139745 --0.846554011106 -0.0684595294297 --0.846565157175 -0.085717169568 --0.846578776836 -0.102974932641 --0.846594840288 -0.120233245194 --0.846613436937 -0.137491803616 --0.846634462476 -0.154751032591 --0.846646189689 -0.173964928835 --0.846635684371 -0.193177197129 --0.84661449492 -0.210436277092 --0.846595808864 -0.22769504413 --0.846579581499 -0.24495319277 --0.846565827727 -0.262211151421 --0.846554547548 -0.279468618334 --0.846545770764 -0.296726033091 --0.846539467573 -0.31398306787 --0.846535652876 -0.331240162253 --0.846534371376 -0.348497018218 --0.846535548568 -0.365754045546 --0.846539214253 -0.383010953665 --0.846545383334 -0.400268167257 --0.84655405581 -0.417525380849 --0.846565142274 -0.434783011675 --0.846578761935 -0.452040761709 --0.846594840288 -0.469299085438 --0.846613436937 -0.486557655036 --0.846634462476 -0.503816865384 --0.846646189689 -0.523030772805 --0.846635684371 -0.542243048549 --0.84661449492 -0.559502094984 --0.846595808864 -0.576760873199 --0.846579581499 -0.594019055367 --0.846565827727 -0.611277028918 --0.846554547548 -0.628534480929 --0.846545770764 -0.645791888237 --0.846539482474 -0.663048952818 --0.846535682678 -0.6803060323 --0.846534386277 -0.697562858462 --0.846535548568 -0.714819893241 --0.846539214253 -0.732076793909 --0.846545353532 -0.749334007502 --0.846554026008 -0.766591235996 --0.846565157175 -0.783848881722 --0.846578776836 -0.801106661558 --0.84659487009 -0.818364962936 --0.846613466739 -0.835623502731 --0.846634477377 -0.852882742882 --0.846646204591 -0.872096642852 --0.846635699272 -0.891308903694 --0.84661449492 -0.908567979932 --0.846595793963 -0.925826743245 --0.846579581499 -0.943084895611 --0.846565827727 -0.960342869163 --0.846554547548 -0.977600336075 --0.846545770764 -0.994857743382 --0.846539482474 -1.01211479306 --0.846535697579 -1.02937188744 --0.846534401178 -1.04662871361 --0.846535563469 -1.06388574839 --0.846539244055 -1.08114266396 --0.846545368433 -1.09839987755 --0.846554026008 -1.11565709114 --0.846565142274 -1.13291472196 --0.846578776836 -1.150172472 --0.846594884991 -1.16743075848 --0.846613466739 -1.18468934298 --0.846634477377 -1.20194858313 --0.846646189689 -1.2211624682 --0.84663566947 -1.24037474394 --0.84661449492 -1.25763383508 --0.846595808864 -1.27489262819 --0.846579581499 -1.29215076566 --0.846565827727 -1.30940869451 --0.846554547548 -1.32666614652 --0.846545770764 -1.34392356872 --0.846539482474 -1.3611806035 --0.846535697579 -1.37843769789 --0.846534386277 -1.39569455385 --0.846535518765 -1.41295158863 --0.846539199352 -1.43020853401 --0.846545383334 -1.44746574759 --0.846554040909 -1.46472296119 --0.846565142274 -1.48198059201 --0.846578776836 -1.49923834204 --0.846594855189 -1.51649665833 --0.846613422036 -1.53375521303 --0.846634417772 -1.55101445318 --0.846646159887 -1.57022833824 --0.846635684371 -1.58944058418 --0.84661449492 -1.60669967532 --0.846595793963 -1.62395843863 --0.846579566598 -1.6412165761 --0.846565812826 -1.65847456455 --0.84655456245 -1.67573204636 --0.846545770764 -1.69298943877 --0.846539482474 -1.71024647355 --0.846535697579 -1.72750356793 --0.846534386277 -1.7447603941 --0.846535563469 -1.76201745868 --0.846539229154 -1.77927437425 --0.846545353532 -1.79653155804 --0.846554026008 -1.81378877163 --0.846565157175 -1.83104640245 --0.846578791737 -1.84830418229 --0.846594884991 -1.86556246877 --0.846613466739 -1.88282102346 --0.846634477377 -1.90008026362 --0.846646189689 -1.91929417849 --0.84663566947 -1.93850645423 --0.84661449492 -1.95576551557 --0.846595793963 -1.97302430868 --0.846579566598 -1.99028247595 --0.846565842628 -2.0075404644 --0.846554562449 -2.02479791641 --0.846545770764 -2.04205524921 --0.846539497375 -2.05931228399 --0.846535697579 -2.07656937838 --0.846534386277 -2.09382623434 --0.846535563469 -2.11108332873 --0.846539229154 -2.12834018469 --0.846545383334 -2.14559733868 --0.84655405581 -2.16285455227 --0.846565157175 -2.1801122427 --0.846578776836 -2.19737005234 --0.84659487009 -2.21462833881 --0.846613466739 -2.23188692331 --0.846634477377 -2.24914616346 --0.846646204591 -2.26836007833 --0.846635699272 -2.28757232428 --0.846614509821 -2.30483132601 --0.846595808864 -2.32209014892 --0.846579581499 -2.33934831619 --0.846565842628 -2.35660624504 --0.846554562449 -2.37386375666 --0.846545755863 -2.39112120867 --0.846539482474 -2.40837824345 --0.84653571248 -2.42563527823 --0.846534401178 -2.44289207459 --0.846535548568 -2.46014910937 --0.846539229154 -2.47740602494 --0.846545398235 -2.49466323852 --0.84655405581 -2.51192051172 --0.846565157175 -2.52917814255 --0.846578776836 -2.54643583298 --0.846594840288 -2.56369411945 --0.846613436937 -2.58095270395 --0.846634477377 -2.5982119441 --0.846646189689 -2.61742585897 --0.846635684371 -2.63663816452 --0.84661449492 -2.65389728546 --0.846595793963 -2.67115604877 --0.846579566598 -2.68841415644 --0.846565827727 -2.70567208529 --0.846554562449 -2.7229295373 --0.846545770764 -2.74018698931 --0.846539497375 -2.75744402409 --0.846535697579 -2.77470111847 --0.846534386277 -2.79195797443 --0.846535548568 -2.80921500921 --0.846539229154 -2.82647192478 --0.846545383334 -2.84372913837 --0.846554040909 -2.86098635197 --0.846565142274 -2.87824392319 --0.846578776836 -2.89550167322 --0.846594855189 -2.91276007891 --0.846613436937 -2.93001866341 --0.846634477377 -2.94727784395 --0.846646204591 -2.96649169922 --0.846635684371 -2.98570394516 --0.84661449492 -3.0029630661 --0.846595808864 -3.02022182941 --0.8465795964 -3.03747999668 --0.84656585753 -3.05473804474 --0.846554577351 -3.07199549675 --0.846545800567 -3.08925282955 --0.846539512277 -3.10650986433 --0.84653571248 -3.12376695871 --0.846534401178 -3.14102378686 --0.846535548568 --3.12490445375 --0.846539214253 --3.10764753818 --0.846545338631 --3.09039032459 --0.846554011106 --3.073133111 --0.846565157175 --3.05587548018 --0.846578776836 --3.03861767054 --0.846594840288 --3.02135932446 --0.846613436937 --3.00410079956 --0.846634462476 --2.98684155941 --0.846646189689 --2.96762770414 --0.846635684371 --2.94841551781 --0.84661449492 --2.93115639687 --0.846595808864 --2.91389763355 --0.846579581499 --2.89663946628 --0.846565827727 --2.87938141823 --0.846554547548 --2.86212396622 --0.846545770764 --2.84486663342 --0.846539467573 --2.82760959864 --0.846535652876 --2.81035250425 --0.846534371376 --2.79309564829 --0.846535548568 --2.77583861351 --0.846539214253 --2.75858175754 --0.846545383334 --2.74132454395 --0.84655405581 --2.72406733036 --0.846565142274 --2.70680963993 --0.846578761935 --2.68955183029 --0.846594840288 --2.67229354382 --0.846613436937 --2.65503501892 --0.846634462476 --2.63777577877 --0.846646189689 --2.61856180429 --0.846635684371 --2.59934955835 --0.84661449492 --2.58209055662 --0.846595808864 --2.5648317337 --0.846579581499 --2.54757356644 --0.846565827727 --2.53031563759 --0.846554547548 --2.51305818558 --0.846545770764 --2.49580079317 --0.846539482474 --2.47854369879 --0.846535682678 --2.4612866044 --0.846534386277 --2.44402980804 --0.846535548568 --2.42677277326 --0.846539214253 --2.40951585769 --0.846545353532 --2.3922586441 --0.846554026008 --2.37500137091 --0.846565157175 --2.35774374008 --0.846578776836 --2.34048604965 --0.84659487009 --2.32322776318 --0.846613466739 --2.30596917868 --0.846634477377 --2.28870993853 --0.846646204591 --2.26949602366 --0.846635699272 --2.25028371811 --0.84661449492 --2.23302465677 --0.846595793963 --2.21576589346 --0.846579581499 --2.1985077858 --0.846565827727 --2.18124985695 --0.846554547548 --2.16399234533 --0.846545770764 --2.14673489332 --0.846539482474 --2.12947785855 --0.846535697579 --2.11222076416 --0.846534401178 --2.0949639082 --0.846535563469 --2.07770687341 --0.846539244055 --2.06044995785 --0.846545368433 --2.04319274426 --0.846554026008 --2.02593553066 --0.846565142274 --2.00867795944 --0.846578776836 --1.99142020941 --0.846594884991 --1.97416186333 --0.846613466739 --1.95690330863 --0.846634477377 --1.93964406848 --0.846646189689 --1.92043018341 --0.84663566947 --1.90121793747 --0.84661449492 --1.88395884633 --0.846595808864 --1.86670008302 --0.846579581499 --1.84944191575 --0.846565827727 --1.8321839273 --0.846554547548 --1.81492647529 --0.846545770764 --1.79766908288 --0.846539482474 --1.7804120481 --0.846535697579 --1.76315492391 --0.846534386277 --1.74589806795 --0.846535518765 --1.72864103317 --0.846539199352 --1.71138414741 --0.846545383334 --1.69412696362 --0.846554040909 --1.67686975002 --0.846565142274 --1.6596121192 --0.846578776836 --1.64235433936 --0.846594855189 --1.62509599328 --0.846613422036 --1.60783740878 --0.846634417772 --1.59057819843 --0.846646159887 --1.57136431337 --0.846635684371 --1.55215203762 --0.84661449492 --1.53489297629 --0.846595793963 --1.51763421297 --0.846579566598 --1.5003760457 --0.846565812826 --1.48311808705 --0.84655456245 --1.46586060524 --0.846545770764 --1.44860318303 --0.846539482474 --1.43134614825 --0.846535697579 --1.41408908367 --0.846534386277 --1.39683225751 --0.846535563469 --1.37957522273 --0.846539229154 --1.36231830717 --0.846545353532 --1.34506109357 --0.846554026008 --1.32780387997 --0.846565157175 --1.31054621935 --0.846578791737 --1.29328846931 --0.846594884991 --1.27603018284 --0.846613466739 --1.25877159834 --0.846634477377 --1.24151235819 --0.846646189689 --1.22229847312 --0.84663566947 --1.20308619737 --0.84661449492 --1.18582710624 --0.846595793963 --1.16856834293 --0.846579566598 --1.15131020546 --0.846565842628 --1.13405224681 --0.846554562449 --1.1167947948 --0.846545770764 --1.09953737259 --0.846539497375 --1.08228033781 --0.846535697579 --1.06502324342 --0.846534386277 --1.04776635766 --0.846535563469 --1.03050932288 --0.846539229154 --1.01325240731 --0.846545383334 --0.995995208622 --0.84655405581 --0.97873802483 --0.846565157175 --0.961480364203 --0.846578776836 --0.944222599268 --0.84659487009 --0.926964297891 --0.846613466739 --0.909705728292 --0.846634477377 --0.892446503043 --0.846646204591 --0.873232617974 --0.846635699272 --0.854020372033 --0.846614509821 --0.836761295795 --0.846595808864 --0.819502517581 --0.846579581499 --0.802244350314 --0.846565842628 --0.784986376762 --0.846554562449 --0.76772890985 --0.846545755863 --0.750471502542 --0.846539482474 --0.733214467764 --0.84653571248 --0.715957388282 --0.846534401178 --0.698700547218 --0.846535548568 --0.681443497539 --0.846539229154 --0.664186596871 --0.846545398235 --0.646929398179 --0.84655405581 --0.629672184586 --0.846565157175 --0.612414553762 --0.846578776836 --0.595156788826 --0.846594840288 --0.577898457646 --0.846613436937 --0.560639888048 --0.846634477377 --0.5433806777 --0.846646189689 --0.524166792631 --0.846635684371 --0.504954516888 --0.84661449492 --0.487695433199 --0.846595793963 --0.470436654985 --0.846579566598 --0.453178495169 --0.846565827727 --0.435920536518 --0.846554562449 --0.418663077057 --0.846545770764 --0.401405669749 --0.846539497375 --0.384148634971 --0.846535697579 --0.366891540587 --0.846534386277 --0.349634692073 --0.846535548568 --0.332377657294 --0.846539229154 --0.315120741725 --0.846545383334 --0.297863528132 --0.846554040909 --0.28060631454 --0.846565142274 --0.263348676264 --0.846578776836 --0.246090915054 --0.846594855189 --0.228832606226 --0.846613436937 --0.211574051529 --0.846634477377 --0.19431482628 --0.846646204591 --0.175100926309 --0.829466477036 --0.155884072185 --0.829445585608 --0.138625018299 --0.829427137971 --0.121366271749 --0.829411134124 --0.104108134285 --0.829397544265 --0.0868501868099 --0.829386383295 --0.0695927292109 --0.829377755523 --0.0523353405297 --0.82937155664 --0.0350783234462 --0.829367801547 --0.0178212451283 --0.829366520047 --0.000564414774997 --0.829367667437 -0.016692598816 --0.829371318221 -0.033949488774 --0.829377382994 -0.0512066828087 --0.829385921359 -0.0684638759121 --0.829396903515 -0.0857214983553 --0.829410359264 -0.102979244664 --0.829426184297 -0.120237534866 --0.829444512725 -0.137496072799 --0.829465284944 -0.154755286872 --0.829476848244 -0.173969350755 --0.829466477036 -0.193181782961 --0.829445570707 -0.210440844298 --0.82942712307 -0.227699588984 --0.829411119223 -0.244957718998 --0.829397544265 -0.262215659022 --0.829386413098 -0.279473111034 --0.829377755523 -0.29673050344 --0.829371541739 -0.313987523317 --0.829367801547 -0.331244602799 --0.829366520047 -0.348501428962 --0.829367652536 -0.365758433938 --0.829371288419 -0.383015334606 --0.829377397895 -0.400272548199 --0.829385951161 -0.41752974689 --0.829396873712 -0.434787355363 --0.82941031456 -0.452045083046 --0.829426199198 -0.469303384423 --0.829444557428 -0.48656193167 --0.829465299845 -0.503821127117 --0.829476878047 -0.52303519845 --0.829466506839 -0.542247638107 --0.829445585608 -0.55950666964 --0.829427137971 -0.576765432954 --0.829411119223 -0.594023600221 --0.829397544265 -0.611281529069 --0.829386413098 -0.628538966179 --0.829377770424 -0.645796358585 --0.82937155664 -0.663053393364 --0.829367801547 -0.680310487747 --0.829366520047 -0.697567299009 --0.829367652536 -0.714824303985 --0.829371288419 -0.732081189752 --0.829377368092 -0.749338388443 --0.829385921359 -0.766595587135 --0.829396888614 -0.783853203058 --0.829410329461 -0.801110967994 --0.829426229 -0.818369269371 --0.829444587231 -0.835627794266 --0.829465314746 -0.852887004614 --0.829476863146 -0.872101068497 --0.829466491938 -0.891313493252 --0.82944560051 -0.908572539687 --0.829427137971 -0.925831273198 --0.829411119223 -0.943089425564 --0.829397529364 -0.960347369313 --0.829386398197 -0.977604821324 --0.829377755523 -0.994862213729 --0.82937155664 -1.01211923361 --0.829367816448 -1.02937632799 --0.829366520047 -1.04663312435 --0.829367682338 -1.06389012933 --0.829371318221 -1.0811470449 --0.82937733829 -1.09840422868 --0.829385891557 -1.11566141247 --0.829396873712 -1.1329190433 --0.82941031456 -1.15017679334 --0.829426229 -1.16743507982 --0.829444572329 -1.18469363451 --0.829465299845 -1.20195284486 --0.829476878047 -1.22116687894 --0.829466491937 -1.2403793335 --0.829445585608 -1.25763842463 --0.829427137971 -1.27489715814 --0.829411119223 -1.29215526581 --0.829397544265 -1.30941319466 --0.829386413098 -1.32667064667 --0.829377755523 -1.34392803907 --0.82937155664 -1.36118507385 --0.829367816448 -1.37844216824 --0.829366505146 -1.3956989944 --0.829367622733 -1.41295599938 --0.829371273517 -1.43021288514 --0.829377397895 -1.44747009873 --0.829385921359 -1.46472731232 --0.82939684391 -1.48198491335 --0.82941031456 -1.49924266338 --0.829426199198 -1.51650094986 --0.829444527626 -1.53375947476 --0.829465270042 -1.55101871491 --0.829476833343 -1.57023277879 --0.829466491938 -1.58944517374 --0.829445615411 -1.60670420528 --0.82942712307 -1.62396296859 --0.829411104322 -1.64122113585 --0.829397544265 -1.65847909451 --0.829386413098 -1.67573654652 --0.829377770424 -1.69299393892 --0.82937155664 -1.7102509439 --0.829367816448 -1.72750800848 --0.829366520047 -1.74476480484 --0.829367667437 -1.76202183962 --0.829371318221 -1.77927875519 --0.829377368092 -1.79653590917 --0.829385921359 -1.81379309296 --0.829396903515 -1.83105072379 --0.829410359264 -1.84830847382 --0.829426243901 -1.8655667603 --0.829444587231 -1.8828253448 --0.829465299845 -1.90008455515 --0.829476833343 -1.91929858923 --0.829466462135 -1.93851104379 --0.829445585608 -1.95577010512 --0.829427137971 -1.97302883863 --0.829411119223 -1.9902869761 --0.829397559166 -2.00754496455 --0.829386427999 -2.02480244637 --0.829377755523 -2.04205977917 --0.82937155664 -2.05931675434 --0.829367816448 -2.07657384872 --0.829366520047 -2.09383064509 --0.829367682338 -2.11108767987 --0.829371333122 -2.12834459543 --0.829377412796 -2.14560174942 --0.829385951161 -2.16285896301 --0.829396888614 -2.18011659384 --0.829410344362 -2.19737434387 --0.829426243901 -2.21463263035 --0.829444587231 -2.23189115524 --0.829465314746 -2.24915039539 --0.829476892948 -2.26836448908 --0.82946652174 -2.28757691384 --0.829445585608 -2.30483591557 --0.82942712307 -2.32209467888 --0.829411119223 -2.33935284615 --0.829397559166 -2.356610775 --0.829386427999 -2.37386822701 --0.829377770424 -2.39112567902 --0.829371571541 -2.40838271379 --0.829367816448 -2.42563968897 --0.829366520047 -2.44289648533 --0.829367652536 -2.46015352011 --0.829371288419 -2.47741043568 --0.829377368092 -2.49466764927 --0.829385921359 -2.51192486286 --0.829396903515 -2.52918249369 --0.829410359264 -2.54644018412 --0.829426229 -2.56369847059 --0.829444572329 -2.58095699549 --0.829465314746 -2.59821617603 --0.829476848244 -2.61743026972 --0.829466477036 -2.63664275408 --0.829445585608 -2.65390187502 --0.82942712307 -2.67116057873 --0.829411119223 -2.68841862679 --0.829397559166 -2.70567655564 --0.829386427999 -2.72293400765 --0.829377770424 -2.74019145966 --0.829371571541 -2.75744849443 --0.829367816448 -2.77470552921 --0.829366520047 -2.79196238518 --0.829367667437 -2.80921941995 --0.829371318221 -2.82647627592 --0.829377412796 -2.84373342991 --0.829385951161 -2.8609906435 --0.829396888614 -2.87824827433 --0.829410344362 -2.89550596476 --0.829426214099 -2.91276431084 --0.829444542527 -2.93002295494 --0.829465299845 -2.94728213549 --0.829476863146 -2.96649610996 --0.829466477036 -2.98570853472 --0.829445585608 -3.00296765566 --0.829427137971 -3.02022641897 --0.829411134124 -3.03748452663 --0.829397544265 -3.05474251509 --0.829386383295 -3.0719999671 --0.829377755523 -3.0892572999 --0.82937155664 -3.10651433468 --0.829367801547 -3.12377142906 --0.829366520047 -3.14102825721 --0.829367667437 --3.12490004301 --0.829371318221 --3.10764318704 --0.829377382994 --3.09038597346 --0.829385921359 --3.07312875986 --0.829396903515 --3.05587112904 --0.829410359264 --3.0386133194 --0.829426184297 --3.02135503292 --0.829444512725 --3.00409650803 --0.829465284944 --2.98683726787 --0.829476848244 --2.9676232934 --0.829466477036 --2.94841092825 --0.829445570707 --2.93115180731 --0.82942712307 --2.913893044 --0.829411119223 --2.89663487673 --0.829397544265 --2.87937688827 --0.829386413098 --2.86211943626 --0.829377755523 --2.84486210346 --0.829371541739 --2.82760512829 --0.829367801547 --2.8103480339 --0.829366520047 --2.79309123754 --0.829367652536 --2.77583426237 --0.829371288419 --2.7585773468 --0.829377397895 --2.74132013321 --0.829385951161 --2.72406297922 --0.829396873712 --2.7068053484 --0.82941031456 --2.68954753876 --0.829426199198 --2.67228925228 --0.829444557428 --2.65503072739 --0.829465299845 --2.63777148723 --0.829476878047 --2.61855739355 --0.829466506839 --2.5993449688 --0.829445585608 --2.58208596706 --0.829427137971 --2.56482720375 --0.829411119223 --2.54756903649 --0.829397544265 --2.53031110764 --0.829386413098 --2.51305365562 --0.829377770424 --2.49579632282 --0.82937155664 --2.47853928804 --0.829367801547 --2.46128219366 --0.829366520047 --2.4440253973 --0.829367652536 --2.42676830292 --0.829371288419 --2.40951138735 --0.829377368092 --2.39225423336 --0.829385921359 --2.37499701977 --0.829396888614 --2.35773938894 --0.829410329461 --2.34048169851 --0.829426229 --2.32322341204 --0.829444587231 --2.30596488714 --0.829465314746 --2.28870570659 --0.829476863146 --2.26949161291 --0.829466491938 --2.25027912855 --0.82944560051 --2.23302012682 --0.829427137971 --2.21576142311 --0.829411119223 --2.19850325584 --0.829397529364 --2.181245327 --0.829386398197 --2.16398787498 --0.829377755523 --2.14673042297 --0.82937155664 --2.1294733882 --0.829367816448 --2.11221635342 --0.829366520047 --2.09495949745 --0.829367682338 --2.07770246268 --0.829371318221 --2.06044560671 --0.82937733829 --2.04318845272 --0.829385891557 --2.02593123913 --0.829396873712 --2.0086736083 --0.82941031456 --1.99141585827 --0.829426229 --1.97415754199 --0.829444572329 --1.9568990171 --0.829465299845 --1.93963980675 --0.829476878047 --1.92042574287 --0.829466491937 --1.90121334791 --0.829445585608 --1.88395428657 --0.829427137971 --1.86669552326 --0.829411119223 --1.8494373858 --0.829397544265 --1.83217942715 --0.829386413098 --1.81492197513 --0.829377755523 --1.79766458273 --0.82937155664 --1.78040757776 --0.829367816448 --1.76315048337 --0.829366505146 --1.7458936274 --0.829367622733 --1.72863662243 --0.829371273517 --1.71137976647 --0.829377397895 --1.69412261248 --0.829385921359 --1.67686539888 --0.82939684391 --1.65960776806 --0.82941031456 --1.64235004782 --0.829426199198 --1.62509173155 --0.829444527626 --1.60783317685 --0.829465270042 --1.5905739665 --0.829476833343 --1.57135990262 --0.829466491938 --1.55214747787 --0.829445615411 --1.53488841653 --0.82942712307 --1.51762965321 --0.829411104322 --1.50037151575 --0.829397544265 --1.4831135869 --0.829386413098 --1.46585613489 --0.829377770424 --1.44859871268 --0.82937155664 --1.4313416779 --0.829367816448 --1.41408464312 --0.829366520047 --1.39682784676 --0.829367667437 --1.37957081199 --0.829371318221 --1.36231389642 --0.829377368092 --1.34505671263 --0.829385921359 --1.32779952883 --0.829396903515 --1.31054189801 --0.829410359264 --1.29328414798 --0.829426243901 --1.2760258615 --0.829444587231 --1.25876730681 --0.829465299845 --1.24150809646 --0.829476833343 --1.22229403258 --0.829466462135 --1.20308157802 --0.829445585608 --1.18582251668 --0.829427137971 --1.16856378317 --0.829411119223 --1.15130567551 --0.829397559166 --1.13404774666 --0.829386427999 --1.11679029464 --0.829377755523 --1.09953290224 --0.82937155664 --1.08227589727 --0.829367816448 --1.06501880288 --0.829366520047 --1.04776194692 --0.829367682338 --1.03050494194 --0.829371333122 --1.01324805618 --0.829377412796 --0.995990872383 --0.829385951161 --0.978733673691 --0.829396888614 --0.961476042867 --0.829410344362 --0.944218307734 --0.829426243901 --0.926960006356 --0.829444587231 --0.909701451659 --0.829465314746 --0.892442256212 --0.829476892948 --0.87322820723 --0.82946652174 --0.854015782476 --0.829445585608 --0.83675673604 --0.82942712307 --0.819497972727 --0.829411119223 --0.802239820361 --0.829397559166 --0.784981876612 --0.829386427999 --0.7677244246 --0.829377770424 --0.750467017293 --0.829371571541 --0.733209997416 --0.829367816448 --0.715952932835 --0.829366520047 --0.698696106672 --0.829367652536 --0.681439101696 --0.829371288419 --0.664182201028 --0.829377368092 --0.646925002337 --0.829385921359 --0.629667833447 --0.829396903515 --0.612410217524 --0.829410359264 --0.595152467489 --0.829426229 --0.577894166112 --0.829444572329 --0.560635611415 --0.829465314746 --0.543376415968 --0.829476848244 --0.524162366986 --0.829466477036 --0.50494992733 --0.829445585608 --0.487690858543 --0.82942712307 --0.470432110131 --0.829411119223 --0.453173972666 --0.829397559166 --0.435916021466 --0.829386427999 --0.418658576906 --0.829377770424 --0.401401199401 --0.829371571541 --0.384144186974 --0.829367816448 --0.366887100041 --0.829366520047 --0.349630266428 --0.829367667437 --0.332373254001 --0.829371318221 --0.315116353333 --0.829377412796 --0.297859162092 --0.829385951161 --0.280601978302 --0.829396888614 --0.263344362378 --0.829410344362 --0.246086616069 --0.829426214099 --0.228828310966 --0.829444542527 --0.211569771171 --0.829465299845 --0.194310564548 --0.829476863146 --0.17509650439 --0.812276124954 --0.155879437923 --0.812255531549 --0.138620402664 --0.812237352133 --0.121361674741 --0.812221542001 --0.104103557765 --0.812208145857 --0.0868456270546 --0.812197163701 --0.0695881899446 --0.812188625336 --0.0523308198899 --0.812182500958 --0.0350738200359 --0.812178820371 --0.0178167605773 --0.812177568674 --0.000559948384763 --0.812178701162 -0.0166970468126 --0.812182292342 -0.0339539190754 --0.81218829751 -0.051211095415 --0.812196716666 -0.0684682689607 --0.812207549811 -0.0857258737087 --0.812220811844 -0.102983601391 --0.81223641336 -0.120241876691 --0.812254503369 -0.137500397861 --0.812274992466 -0.154759593308 --0.812286391854 -0.173973824828 --0.812276124954 -0.193186417222 --0.812255516648 -0.210445452482 --0.812237337232 -0.227704178542 --0.8122215271 -0.24496229738 --0.812208145857 -0.262220226228 --0.812197178602 -0.279477663338 --0.812188640237 -0.296735025943 --0.812182530761 -0.313992030919 --0.812178835273 -0.33124910295 --0.812177553773 -0.34850589931 --0.81217867136 -0.365762881935 --0.81218226254 -0.383019760251 --0.812188282609 -0.400276951492 --0.812196701765 -0.417534127831 --0.812207490206 -0.434791728854 --0.812220752239 -0.452049449086 --0.812236428261 -0.469307728112 --0.812254548073 -0.486566260457 --0.812274992466 -0.503825441003 --0.812286406755 -0.5230396837 --0.812276169658 -0.542252287269 --0.812255546451 -0.559511303902 --0.812237337232 -0.576770052314 --0.8122215271 -0.594028174877 --0.812208160758 -0.611286073923 --0.812197193503 -0.628543511033 --0.812188655138 -0.645800888538 --0.812182530761 -0.663057893515 --0.812178820372 -0.680314958096 --0.812177538872 -0.697571754456 --0.81217867136 -0.714828759432 --0.81218226254 -0.732085630297 --0.812188267707 -0.749342799187 --0.812196686864 -0.766599968076 --0.812207490206 -0.783857569099 --0.812220752239 -0.801115304232 --0.812236428261 -0.818373575807 --0.812254548073 -0.8356320858 --0.812275007367 -0.852891296148 --0.812286391854 -0.872105538845 --0.812276124954 -0.891318127513 --0.812255531549 -0.908577159047 --0.812237352133 -0.925835862756 --0.812221542001 -0.943093985319 --0.812208160758 -0.960351914168 --0.812197193503 -0.977609351277 --0.812188640237 -0.99486671388 --0.812182515859 -1.01212370395 --0.812178820372 -1.02938076854 --0.812177538872 -1.0466375649 --0.812178686261 -1.06389459968 --0.812182277441 -1.08115151525 --0.812188252806 -1.09840866923 --0.812196671963 -1.11566582322 --0.812207490206 -1.13292342424 --0.812220752239 -1.15018114447 --0.812236428261 -1.16743943096 --0.812254533172 -1.18469795585 --0.812274992466 -1.20195713639 --0.812286421657 -1.22117137909 --0.812276169658 -1.24038398266 --0.812255546451 -1.25764301419 --0.812237352133 -1.2749017179 --0.812221542001 -1.29215982556 --0.812208160758 -1.30941775441 --0.812197193503 -1.32667520643 --0.812188640237 -1.34393259883 --0.812182515859 -1.3611896038 --0.812178820372 -1.37844666839 --0.81217752397 -1.39570346475 --0.812178656459 -1.41296043992 --0.81218226254 -1.43021729588 --0.812188282609 -1.44747447967 --0.812196686864 -1.46473166347 --0.812207460404 -1.48198926449 --0.812220752239 -1.49924701452 --0.812236443162 -1.5165052712 --0.812254533172 -1.53376379609 --0.812274992466 -1.55102300644 --0.812286391854 -1.57023721934 --0.812276139855 -1.5894498229 --0.812255516648 -1.60670885444 --0.812237307429 -1.62396758795 --0.8122215271 -1.64122572541 --0.812208175659 -1.65848365426 --0.812197208404 -1.67574107647 --0.812188655138 -1.69299843907 --0.812182515859 -1.71025544405 --0.812178820372 -1.72751250863 --0.812177538872 -1.74476930499 --0.81217867136 -1.76202630996 --0.812182277441 -1.77928319573 --0.812188282609 -1.79654034972 --0.812196701765 -1.81379750371 --0.812207505107 -1.83105510473 --0.812220782042 -1.84831282496 --0.812236443162 -1.86557111144 --0.812254548073 -1.88282966614 --0.812274977565 -1.90008884669 --0.812286362052 -1.91930305958 --0.812276139855 -1.93851566315 --0.812255546451 -1.95577472448 --0.812237352133 -1.973033458 --0.812221542001 -1.99029153585 --0.812208160758 -2.0075494647 --0.812197193503 -2.02480691672 --0.812188640237 -2.04206424952 --0.812182515859 -2.05932128429 --0.812178820372 -2.07657837868 --0.812177538872 -2.09383511543 --0.812178686261 -2.11109209061 --0.812182292342 -2.12834900618 --0.81218829751 -2.14560621977 --0.812196716666 -2.16286343336 --0.812207505107 -2.18012100458 --0.81222076714 -2.19737869501 --0.812236443162 -2.21463698149 --0.812254548073 -2.23189550638 --0.812275007367 -2.24915468693 --0.812286421657 -2.26836889982 --0.812276169658 -2.28758150339 --0.812255531549 -2.30484050512 --0.812237337232 -2.32209926844 --0.812221542001 -2.3393574357 --0.812208175659 -2.35661530495 --0.812197208404 -2.37387275696 --0.812188655138 -2.39113020897 --0.812182530761 -2.40838718414 --0.812178820372 -2.42564415932 --0.812177538872 -2.44290095568 --0.81217867136 -2.46015793085 --0.81218226254 -2.47741478682 --0.812188252806 -2.49467200041 --0.812196671963 -2.511929214 --0.812207505107 -2.52918684483 --0.812220782042 -2.54644453526 --0.812236458063 -2.56370282173 --0.812254562974 -2.58096134663 --0.812275007367 -2.59822052717 --0.812286391854 -2.61743479967 --0.812276139855 -2.63664740324 --0.812255531549 -2.65390646458 --0.812237337232 -2.67116516829 --0.812221542001 -2.68842321634 --0.812208160758 -2.70568114519 --0.812197193503 -2.7229385972 --0.812188655138 -2.74019598961 --0.812182530761 -2.75745296478 --0.812178835273 -2.77470999956 --0.812177553773 -2.79196685553 --0.812178686261 -2.8092238903 --0.812182292342 -2.82648074627 --0.81218829751 -2.84373784065 --0.812196701765 -2.86099499464 --0.812207505107 -2.87825262547 --0.812220782042 -2.8955103755 --0.812236443162 -2.91276866197 --0.812254533172 -2.93002724647 --0.812274977565 -2.94728648662 --0.812286376953 -2.96650063992 --0.812276124954 -2.98571318388 --0.812255531549 -3.00297224522 --0.812237352133 -3.02023100853 --0.812221542001 -3.03748911619 --0.812208145857 -3.05474704504 --0.812197163701 -3.07200443744 --0.812188625336 -3.08926177025 --0.812182500958 -3.10651880503 --0.812178820371 -3.12377589941 --0.812177568674 -3.14103272756 --0.812178701162 --3.12489557266 --0.812182292342 --3.1076387167 --0.81218829751 --3.09038156271 --0.812196716666 --3.07312440872 --0.812207549811 --3.0558667779 --0.812220811844 --3.03860896826 --0.81223641336 --3.02135074139 --0.812254503369 --3.00409221649 --0.812274992466 --2.98683297634 --0.812286391854 --2.96761882305 --0.812276124954 --2.94840627909 --0.812255516648 --2.93114721775 --0.812237337232 --2.91388845444 --0.8122215271 --2.89663028717 --0.812208145857 --2.87937235832 --0.812197178602 --2.86211496591 --0.812188640237 --2.84485763311 --0.812182530761 --2.82760059834 --0.812178835273 --2.81034350395 --0.812177553773 --2.7930867672 --0.81217867136 --2.77582979202 --0.81218226254 --2.75857287645 --0.812188282609 --2.74131566286 --0.812196701765 --2.72405850887 --0.812207490206 --2.70680093765 --0.812220752239 --2.68954318762 --0.812236428261 --2.67228490114 --0.812254548073 --2.65502637625 --0.812274992466 --2.6377671957 --0.812286406755 --2.61855298281 --0.812276169658 --2.59934037924 --0.812255546451 --2.58208137751 --0.812237337232 --2.56482261419 --0.8122215271 --2.54756444693 --0.812208160758 --2.53030657768 --0.812197193503 --2.51304912567 --0.812188655138 --2.49579173326 --0.812182530761 --2.47853475809 --0.812178820372 --2.46127772331 --0.812177538872 --2.44402092695 --0.81217867136 --2.42676389218 --0.81218226254 --2.40950703621 --0.812188267707 --2.39224988222 --0.812196686864 --2.37499266863 --0.812207490206 --2.3577350378 --0.812220752239 --2.34047734737 --0.812236428261 --2.3232190609 --0.812254548073 --2.305960536 --0.812275007367 --2.28870135546 --0.812286391854 --2.26948714256 --0.812276124954 --2.250274539 --0.812255531549 --2.23301547766 --0.812237352133 --2.21575677395 --0.812221542001 --2.19849866629 --0.812208160758 --2.18124073744 --0.812197193503 --2.16398328543 --0.812188640237 --2.14672589302 --0.812182515859 --2.12946891785 --0.812178820372 --2.11221194267 --0.812177538872 --2.09495508671 --0.812178686261 --2.07769799233 --0.812182277441 --2.06044113636 --0.812188252806 --2.04318404198 --0.812196671963 --2.02592688799 --0.812207490206 --2.00866919756 --0.812220752239 --1.99141144752 --0.812236428261 --1.97415319085 --0.812254533172 --1.95689466596 --0.812274992466 --1.93963551521 --0.812286421657 --1.92042130232 --0.812276169658 --1.90120869875 --0.812255546451 --1.88394963741 --0.812237352133 --1.8666909039 --0.812221542001 --1.84943279624 --0.812208160758 --1.83217486739 --0.812197193503 --1.81491744519 --0.812188640237 --1.79766008258 --0.812182515859 --1.7804030776 --0.812178820372 --1.76314598322 --0.81217752397 --1.74588915706 --0.812178656459 --1.72863218189 --0.81218226254 --1.71137532592 --0.812188282609 --1.69411817193 --0.812196686864 --1.67686098814 --0.812207460404 --1.65960338712 --0.812220752239 --1.64234566688 --0.812236443162 --1.62508738041 --0.812254533172 --1.60782888532 --0.812274992466 --1.59056967497 --0.812286391854 --1.57135543227 --0.812276139855 --1.55214285851 --0.812255516648 --1.53488382697 --0.812237307429 --1.51762506366 --0.8122215271 --1.500366956 --0.812208175659 --1.48310905695 --0.812197208404 --1.46585160494 --0.812188655138 --1.44859421253 --0.812182515859 --1.43133720755 --0.812178820372 --1.41408017278 --0.812177538872 --1.39682337642 --0.81217867136 --1.37956637144 --0.812182277441 --1.36230948567 --0.812188282609 --1.34505230188 --0.812196701765 --1.32779511809 --0.812207505107 --1.31053751707 --0.812220782042 --1.29327979684 --0.812236443162 --1.27602151037 --0.812254548073 --1.25876298547 --0.812274977565 --1.24150380493 --0.812286362052 --1.22228956223 --0.812276139855 --1.20307695866 --0.812255546451 --1.18581792712 --0.812237352133 --1.16855922341 --0.812221542001 --1.15130111575 --0.812208160758 --1.1340431869 --0.812197193503 --1.11678573489 --0.812188640237 --1.09952837229 --0.812182515859 --1.08227139711 --0.812178820372 --1.06501430273 --0.812177538872 --1.04775747657 --0.812178686261 --1.0305005014 --0.812182292342 --1.01324364543 --0.81218829751 --0.99598647654 --0.812196716666 --0.978729277849 --0.812207505107 --0.961471676826 --0.81222076714 --0.944213956595 --0.812236443162 --0.926955655217 --0.812254548073 --0.909697115421 --0.812275007367 --0.892437934875 --0.812286421657 --0.873223721981 --0.812276169658 --0.854011118412 --0.812255531549 --0.836752101779 --0.812237337232 --0.819493368268 --0.812221542001 --0.802235245704 --0.812208175659 --0.784977331757 --0.812197208404 --0.767719894647 --0.812188655138 --0.750462517142 --0.812182530761 --0.733205527067 --0.812178820372 --0.715948462486 --0.812177538872 --0.698691636324 --0.81217867136 --0.68143466115 --0.81218226254 --0.664177790284 --0.812188252806 --0.646920591593 --0.812196671963 --0.629663422704 --0.812207505107 --0.612405836582 --0.812220782042 --0.595148101449 --0.812236458063 --0.577889829874 --0.812254562974 --0.560631290078 --0.812275007367 --0.543372094631 --0.812286391854 --0.524157881737 --0.812276139855 --0.504945285618 --0.812255531549 --0.487686246634 --0.812237337232 --0.470427513122 --0.812221542001 --0.45316939801 --0.812208160758 --0.435911476612 --0.812197193503 --0.418654054403 --0.812188655138 --0.401396684349 --0.812182530761 --0.384139679372 --0.812178835273 --0.366882622242 --0.812177553773 --0.349625810981 --0.812178686261 --0.332368806005 --0.812182292342 --0.315111927688 --0.81218829751 --0.297854758799 --0.812196701765 --0.280597597361 --0.812207505107 --0.263339996338 --0.812220782042 --0.246082257479 --0.812236443162 --0.228823974729 --0.812254533172 --0.211565453559 --0.812274977565 --0.194306258112 --0.812286376953 --0.175092030317 --0.792548984289 --0.155873045325 --0.792528688908 --0.138614024967 --0.792510807514 --0.121355315671 --0.792495280504 --0.104097232223 --0.792482107877 --0.0868393294513 --0.792471304536 --0.0695819184184 --0.792462930083 --0.052324575372 --0.792456924915 --0.0350676011294 --0.792453274131 --0.0178105658852 --0.792452022433 --0.000553778838367 --0.792453154922 -0.016703190282 --0.792456686497 -0.0339600369334 --0.792462557554 -0.051217187196 --0.792470872402 -0.0684743383899 --0.792481556535 -0.0857319198549 --0.792494550348 -0.102989617735 --0.792509913445 -0.120247868821 --0.792527735233 -0.137506373227 --0.792547866702 -0.154765538871 --0.792559087277 -0.173979990184 --0.792548984289 -0.193192813545 --0.792528703809 -0.210451826453 --0.792510822415 -0.227710526437 --0.792495250702 -0.244968622923 --0.792482092977 -0.26222653687 --0.792471319437 -0.279483936727 --0.792462930083 -0.296741269529 --0.792456924915 -0.313998259604 --0.79245325923 -0.331255301833 --0.792451992631 -0.348512083292 --0.792453125119 -0.365769051015 --0.792456656694 -0.383025892079 --0.792462557554 -0.400283046067 --0.792470827699 -0.417540192604 --0.792481467128 -0.434797771275 --0.792494535446 -0.452055476605 --0.792509928346 -0.469313725829 --0.792527735233 -0.486572228372 --0.792547851801 -0.503831394017 --0.792559072375 -0.52304585278 --0.79254899919 -0.542258679867 --0.79252871871 -0.5595176965 --0.792510807514 -0.576776400208 --0.792495250702 -0.594034478068 --0.792482107878 -0.611292377114 --0.792471334338 -0.628549799323 --0.792462930083 -0.645807147026 --0.792456910014 -0.663064107299 --0.79245325923 -0.680321127176 --0.792451992631 -0.697577923536 --0.792453125119 -0.71483489871 --0.792456656694 -0.732091739774 --0.792462527752 -0.749348893762 --0.792470797896 -0.766606032848 --0.792481467128 -0.783863604069 --0.792494535446 -0.8011213094 --0.792509943247 -0.818379566074 --0.792527750134 -0.835638046265 --0.792547866702 -0.852897211909 --0.792559072375 -0.872111678124 --0.792548969388 -0.89132450521 --0.792528703809 -0.908583521843 --0.792510822415 -0.92584221065 --0.792495265603 -0.943100318313 --0.792482122779 -0.96035823226 --0.792471349239 -0.977615624666 --0.792462930083 -0.994872972369 --0.792456910014 -1.01212993264 --0.79245325923 -1.02938696742 --0.792451992631 -1.04664376378 --0.792453125119 -1.06390073895 --0.792456656694 -1.08115759492 --0.792462557554 -1.09841474891 --0.7924708426 -1.11567190289 --0.792481482029 -1.13292947412 --0.792494535446 -1.15018716455 --0.792509928346 -1.16744542122 --0.792527735233 -1.18470391631 --0.792547866702 -1.20196306706 --0.792559087277 -1.22117754817 --0.79254899919 -1.24039036035 --0.79252871871 -1.25764936209 --0.792510822415 -1.2749080658 --0.792495265603 -1.29216614365 --0.792482107878 -1.3094240725 --0.792471334338 -1.32668149471 --0.792462930083 -1.34393885732 --0.792456910014 -1.36119583249 --0.79245325923 -1.37845283747 --0.79245197773 -1.39570960402 --0.792453125119 -1.4129665792 --0.792456686497 -1.43022343516 --0.792462557554 -1.44748058915 --0.792470812798 -1.46473774314 --0.792481452227 -1.48199531436 --0.792494505644 -1.49925303459 --0.792509928346 -1.51651129127 --0.792527750134 -1.53376978636 --0.792547866702 -1.5510289371 --0.792559072375 -1.57024335861 --0.792548954487 -1.5894562006 --0.792528659105 -1.60671523214 --0.792510792613 -1.62397393585 --0.792495250702 -1.64123204351 --0.792482107877 -1.65848994255 --0.792471349239 -1.67574733496 --0.792462930083 -1.69300466776 --0.792456924915 -1.71026167273 --0.79245325923 -1.72751873732 --0.79245197773 -1.74477550387 --0.792453125119 -1.76203244924 --0.792456656694 -1.77928930521 --0.792462557554 -1.7965464592 --0.7924708426 -1.81380358338 --0.792481482029 -1.8310611546 --0.792494535446 -1.84831884504 --0.792509943247 -1.86557710171 --0.792527750134 -1.8828356266 --0.792547851801 -1.90009480715 --0.792559072375 -1.91930925846 --0.79254899919 -1.93852207064 --0.79252871871 -1.95578110218 --0.792510822415 -1.97303980589 --0.792495265603 -1.99029785395 --0.792482107878 -2.00755572319 --0.792471334338 -2.0248131156 --0.792462930083 -2.0420704484 --0.792456910014 -2.05932748318 --0.79245325923 -2.07658457756 --0.792451992631 -2.09384131432 --0.792453125119 -2.11109822988 --0.792456656694 -2.12835508585 --0.792462557554 -2.14561229944 --0.7924708426 -2.16286945343 --0.792481482029 -2.18012702465 --0.792494535446 -2.19738471508 --0.792509928346 -2.21464294195 --0.792527735233 -2.23190146684 --0.792547866702 -2.24916064739 --0.792559087277 -2.2683750987 --0.79254899919 -2.28758794069 --0.79252871871 -2.30484694242 --0.792510837316 -2.32210564613 --0.792495280504 -2.3393637538 --0.792482122779 -2.35662162304 --0.792471349239 -2.37387901545 --0.792462930083 -2.39113640785 --0.792456910014 -2.40839338302 --0.79245325923 -2.4256503582 --0.792451992631 -2.44290715456 --0.792453125119 -2.46016412973 --0.792456656694 -2.47742092609 --0.792462542653 -2.49467808008 --0.792470827699 -2.51193529368 --0.792481482029 -2.5291928649 --0.792494535446 -2.54645055533 --0.792509943247 -2.5637088418 --0.792527750134 -2.58096730709 --0.792547866702 -2.59822648763 --0.792559087277 -2.61744099855 --0.79254899919 -2.63665378094 --0.79252871871 -2.65391278267 --0.792510822415 -2.67117148638 --0.792495265603 -2.68842953443 --0.792482107878 -2.70568746328 --0.792471334338 -2.72294491529 --0.792462930083 -2.74020224809 --0.792456910014 -2.75745922327 --0.79245325923 -2.77471625805 --0.792451992631 -2.79197305441 --0.792453125119 -2.80923002958 --0.792456656694 -2.82648688555 --0.792462542653 -2.84374397993 --0.792470812798 -2.86100107432 --0.792481467128 -2.87825864554 --0.792494535446 -2.89551639557 --0.792509943247 -2.91277468204 --0.792527750134 -2.93003320694 --0.792547851801 -2.94729238748 --0.792559072375 -2.96650677919 --0.792548984289 -2.98571956158 --0.792528688908 -3.00297856331 --0.792510807514 -3.02023732662 --0.792495280504 -3.03749549389 --0.792482107877 -3.05475336313 --0.792471304536 -3.07201069593 --0.792462930083 -3.08926802873 --0.792456924915 -3.10652500391 --0.792453274131 -3.12378209829 --0.792452022433 -3.14103892644 --0.792453154922 --3.12488943338 --0.792456686497 --3.10763257742 --0.792462557554 --3.09037548304 --0.792470872402 --3.07311838865 --0.792481556535 --3.05586075783 --0.792494550348 --3.03860300779 --0.792509913445 --3.02134478092 --0.792527735233 --3.00408625603 --0.792547866702 --2.98682707548 --0.792559087277 --2.96761268378 --0.792548984289 --2.94839990139 --0.792528703809 --2.93114089966 --0.792510822415 --2.91388213634 --0.792495250702 --2.89662396908 --0.792482092977 --2.87936609983 --0.792471319437 --2.86210876703 --0.792462930083 --2.84485143423 --0.792456924915 --2.82759439945 --0.79245325923 --2.81033730507 --0.792451992631 --2.79308056832 --0.792453125119 --2.77582365275 --0.792456656694 --2.75856679678 --0.792462557554 --2.74130958319 --0.792470827699 --2.7240524292 --0.792481467128 --2.70679485798 --0.792494535446 --2.68953716755 --0.792509928346 --2.67227894068 --0.792527735233 --2.65502041578 --0.792547851801 --2.63776123524 --0.792559072375 --2.61854678392 --0.79254899919 --2.59933394194 --0.79252871871 --2.5820749402 --0.792510807514 --2.5648162365 --0.792495250702 --2.54755812883 --0.792482107878 --2.53030025959 --0.792471334338 --2.51304280758 --0.792462930083 --2.49578541517 --0.792456910014 --2.4785284996 --0.79245325923 --2.46127152443 --0.792451992631 --2.44401472807 --0.792453125119 --2.4267577529 --0.792456656694 --2.40950095654 --0.792462527752 --2.39224380255 --0.792470797896 --2.37498658895 --0.792481467128 --2.35772901773 --0.792494535446 --2.3404713273 --0.792509943247 --2.32321304083 --0.792527750134 --2.30595457554 --0.792547866702 --2.28869539499 --0.792559072375 --2.26948094368 --0.792548969388 --2.2502681613 --0.792528703809 --2.23300909996 --0.792510822415 --2.21575039625 --0.792495265603 --2.19849234819 --0.792482122779 --2.18123441934 --0.792471349239 --2.16397696734 --0.792462930083 --2.14671963453 --0.792456910014 --2.12946265936 --0.79245325923 --2.11220568418 --0.792451992631 --2.09494888782 --0.792453125119 --2.07769185305 --0.792456656694 --2.06043499708 --0.792462557554 --2.0431779027 --0.7924708426 --2.02592080831 --0.792481482029 --2.00866317749 --0.792494535446 --1.99140545726 --0.792509928346 --1.97414720059 --0.792527735233 --1.95688870549 --0.792547866702 --1.93962958455 --0.792559087277 --1.92041513324 --0.79254899919 --1.90120229125 --0.79252871871 --1.88394328952 --0.792510822415 --1.86668458581 --0.792495265603 --1.84942647815 --0.792482107878 --1.8321685791 --0.792471334338 --1.8149111867 --0.792462930083 --1.79765385389 --0.792456910014 --1.78039684892 --0.79245325923 --1.76313978434 --0.79245197773 --1.74588301778 --0.792453125119 --1.7286260426 --0.792456686497 --1.71136918664 --0.792462557554 --1.69411206245 --0.792470812798 --1.67685493827 --0.792481452227 --1.65959736705 --0.792494505644 --1.64233964681 --0.792509928346 --1.62508139014 --0.792527750134 --1.60782289505 --0.792547866702 --1.59056371451 --0.792559072375 --1.57134926319 --0.792548954487 --1.55213645101 --0.792528659105 --1.53487744928 --0.792510792613 --1.51761871577 --0.792495250702 --1.5003606379 --0.792482107877 --1.48310276866 --0.792471349239 --1.46584534645 --0.792462930083 --1.44858798385 --0.792456924915 --1.43133100867 --0.79245325923 --1.4140740037 --0.79245197773 --1.39681720734 --0.792453125119 --1.37956023216 --0.792456656694 --1.362303406 --0.792462557554 --1.34504622221 --0.7924708426 --1.32778903842 --0.792481482029 --1.3105314672 --0.792494535446 --1.29327377677 --0.792509943247 --1.2760155201 --0.792527750134 --1.258757025 --0.792547851801 --1.24149787426 --0.792559072375 --1.22228339315 --0.79254899919 --1.20307058096 --0.79252871871 --1.18581157923 --0.792510822415 --1.16855287552 --0.792495265603 --1.15129479766 --0.792482107878 --1.13403686881 --0.792471334338 --1.1167794466 --0.792462930083 --1.0995221436 --0.792456910014 --1.08226516843 --0.79245325923 --1.06500810385 --0.792451992631 --1.04775133729 --0.792453125119 --1.03049436211 --0.792456656694 --1.01323750615 --0.792462557554 --0.995980367064 --0.7924708426 --0.978723213077 --0.792481482029 --0.961465626955 --0.792494535446 --0.944207921624 --0.792509928346 --0.92694966495 --0.792527735233 --0.909691140056 --0.792547866702 --0.892431974411 --0.792559087277 --0.873217537999 --0.79254899919 --0.854004710913 --0.79252871871 --0.836745709181 --0.792510837316 --0.819487005472 --0.792495280504 --0.802228927612 --0.792482122779 --0.784971043467 --0.792471349239 --0.76771363616 --0.792462930083 --0.750456288457 --0.792456910014 --0.733199313283 --0.79245325923 --0.715942263603 --0.792451992631 --0.698685467243 --0.792453125119 --0.68142850697 --0.792456656694 --0.664171665907 --0.792462542653 --0.646914511919 --0.792470827699 --0.629657357931 --0.792481482029 --0.61239978671 --0.792494535446 --0.59514208138 --0.792509943247 --0.577883839607 --0.792527750134 --0.560625329614 --0.792547866702 --0.543366149068 --0.792559087277 --0.524151697755 --0.79254899919 --0.50493888557 --0.79252871871 --0.487679876387 --0.792510822415 --0.470421157777 --0.792495265603 --0.453163072467 --0.792482107878 --0.435905180871 --0.792471334338 --0.418647781015 --0.792462930083 --0.401390433311 --0.792456910014 --0.384133450687 --0.79245325923 --0.366876423359 --0.792451992631 --0.34961964935 --0.792453125119 --0.332362666726 --0.792456656694 --0.315105810762 --0.792462542653 --0.297848664224 --0.792470812798 --0.280591517687 --0.792481467128 --0.263333939016 --0.792494535446 --0.246076226235 --0.792509943247 --0.228817977011 --0.792527750134 --0.211559481919 --0.792547851801 --0.194300312549 --0.792559072375 --0.175085861236 --0.772867918015 --0.155866496265 --0.772847980261 --0.138607509434 --0.77283038199 --0.12134882249 --0.7728151232 --0.104090757668 --0.772802203893 --0.0868328846991 --0.772791579366 --0.0695755006746 --0.772783339023 --0.0523181818426 --0.772777453065 --0.0350612350739 --0.772773846984 --0.0178042261396 --0.772772610188 --0.00054746470414 --0.772773742676 -0.016709478572 --0.772777199745 -0.0339662991464 --0.772782951593 -0.0512234224006 --0.772791147232 -0.0684805493802 --0.77280163765 -0.0857381038368 --0.772814422846 -0.102995773777 --0.772829562426 -0.120253998786 --0.77284707129 -0.137512478978 --0.772866860032 -0.154771618545 --0.77287787199 -0.173986300826 --0.772867947817 -0.193199358881 --0.772848010063 -0.210458353162 --0.772830411792 -0.227717030794 --0.7728151232 -0.244975090027 --0.772802203894 -0.262232966721 --0.772791609168 -0.279490344227 --0.772783353925 -0.296747662127 --0.772777438164 -0.3140046224 --0.772773832083 -0.331261627376 --0.772772610188 -0.348518386483 --0.772773727774 -0.365775339305 --0.772777169943 -0.383032150566 --0.772782966494 -0.400289274752 --0.772791132331 -0.417546406388 --0.772801592946 -0.434803955257 --0.772814437747 -0.452061638236 --0.772829577327 -0.469319857657 --0.77284707129 -0.486578322947 --0.772866860032 -0.503837488592 --0.77287787199 -0.523052170873 --0.772867947817 -0.542265206575 --0.772847995162 -0.559524208307 --0.772830396891 -0.576782882213 --0.7728151232 -0.594040930271 --0.772802203894 -0.611298814416 --0.772791609168 -0.628556206823 --0.772783353925 -0.645813524723 --0.772777438164 -0.663070470095 --0.772773832083 -0.680327475071 --0.772772610188 -0.697584241629 --0.772773712873 -0.714841187 --0.772777155042 -0.732098013163 --0.772782936692 -0.749355137348 --0.772791087627 -0.766612246632 --0.772801578045 -0.783869788051 --0.772814437747 -0.801127478481 --0.772829592228 -0.818385720253 --0.772847086191 -0.835644185543 --0.772866860032 -0.852903306484 --0.772877842188 -0.872117981314 --0.772867918014 -0.89133104682 --0.772848010063 -0.908590048552 --0.772830411792 -0.925848722458 --0.7728151232 -0.943106800318 --0.772802203894 -0.960364684462 --0.772791624069 -0.977622032166 --0.772783353925 -0.994879350066 --0.772777423262 -1.01213631034 --0.772773832083 -1.02939334512 --0.772772610188 -1.04665011167 --0.772773727774 -1.06390702724 --0.772777169943 -1.08116385341 --0.772782951593 -1.09842097759 --0.77279111743 -1.11567810178 --0.772801592946 -1.132935673 --0.772814437747 -1.15019333363 --0.772829577327 -1.16745153069 --0.77284707129 -1.18470999599 --0.772866845131 -1.20196914673 --0.772877857089 -1.22118386626 --0.772867947817 -1.24039691686 --0.772848010063 -1.2576558888 --0.772830396891 -1.2749145627 --0.772815108299 -1.29217261076 --0.772802188993 -1.3094305098 --0.772791594267 -1.32668790221 --0.772783339023 -1.34394523501 --0.772777423262 -1.36120218039 --0.772773832083 -1.37845915556 --0.772772625089 -1.39571592211 --0.772773742676 -1.41297289729 --0.772777184844 -1.43022972345 --0.772782951593 -1.44748684764 --0.772791087627 -1.46474397183 --0.772801578045 -1.48200148344 --0.772814422846 -1.49925917387 --0.772829562426 -1.51651743054 --0.772847086191 -1.53377589583 --0.772866889834 -1.55103501677 --0.77287787199 -1.5702496767 --0.772867918014 -1.58946272731 --0.772847995162 -1.60672172904 --0.772830411792 -1.62398043275 --0.772815108299 -1.64123851061 --0.772802174091 -1.65849637985 --0.772791609168 -1.67575377226 --0.772783353925 -1.69301107526 --0.772777438164 -1.71026802063 --0.772773832083 -1.72752505541 --0.772772595287 -1.74478179216 --0.772773712873 -1.76203870773 --0.772777184844 -1.7792955637 --0.772782981395 -1.79655268789 --0.77279111743 -1.81380978227 --0.772801592946 -1.83106735349 --0.772814437747 -1.84832501411 --0.772829592228 -1.86558324098 --0.772847086191 -1.88284176588 --0.772866860032 -1.90010091662 --0.77287787199 -1.91931557655 --0.772867947817 -1.93852862716 --0.772848010063 -1.95578759909 --0.772830411792 -1.97304624319 --0.7728151232 -1.99030432105 --0.772802203894 -2.00756219029 --0.772791609168 -2.0248195529 --0.772783339023 -2.0420768857 --0.772777423262 -2.05933386087 --0.772773832083 -2.07659089565 --0.772772610188 -2.09384763241 --0.772773727774 -2.11110454798 --0.772777199745 -2.12836140394 --0.772782981395 -2.14561855793 --0.772791102528 -2.16287565231 --0.772801578045 -2.18013322353 --0.772814437747 -2.19739091397 --0.772829577327 -2.21464908123 --0.772847056389 -2.23190754652 --0.772866845131 -2.24916672706 --0.77287787199 -2.2683814168 --0.772867947817 -2.28759449721 --0.772848010063 -2.30485349894 --0.772830426693 -2.32211214304 --0.772815138101 -2.3393701911 --0.772802203894 -2.35662806034 --0.772791609168 -2.37388539314 --0.772783339023 -2.39114272594 --0.772777423262 -2.40839970112 --0.772773832083 -2.42565667629 --0.772772610188 -2.44291347265 --0.772773727774 -2.46017044783 --0.772777169943 -2.47742724419 --0.772782936692 -2.49468433857 --0.772791102529 -2.51194149256 --0.772801592946 -2.52919906378 --0.772814437747 -2.54645675421 --0.772829592228 -2.56371498108 --0.772847086191 -2.58097338676 --0.772866860032 -2.59823256731 --0.77287787199 -2.61744725704 --0.772867947817 -2.63666027784 --0.772848010063 -2.65391927958 --0.772830411792 -2.67117792368 --0.7728151232 -2.68843597174 --0.772802203894 -2.70569390059 --0.772791609168 -2.7229513526 --0.772783339023 -2.7402086854 --0.772777423262 -2.75746560097 --0.772773846984 -2.77472257614 --0.772772625089 -2.7919793129 --0.772773727774 -2.80923622847 --0.772777169943 -2.82649308443 --0.772782936692 -2.84375023842 --0.772791087627 -2.8610073328 --0.772801578045 -2.87826484442 --0.772814437747 -2.89552253485 --0.772829592228 -2.91278082132 --0.772847086191 -2.93003934622 --0.772866860032 -2.94729846716 --0.772877857089 -2.96651309729 --0.772867918015 -2.98572611809 --0.772847980261 -3.00298511982 --0.77283038199 -3.02024388313 --0.7728151232 -3.0375019908 --0.772802203893 -3.05475980043 --0.772791579366 -3.07201713324 --0.772783339023 -3.08927446604 --0.772777453065 -3.10653144121 --0.772773846984 -3.12378847599 --0.772772610188 -3.14104524453 --0.772773742676 --3.1248831749 --0.772777199745 --3.10762637854 --0.772782951593 --3.09036922455 --0.772791147232 --3.07311213016 --0.77280163765 --3.05585461855 --0.772814422846 --3.03859692812 --0.772829562426 --3.02133864164 --0.77284707129 --3.00408011675 --0.772866860032 --2.98682099581 --0.77287787199 --2.96760636568 --0.772867947817 --2.94839334488 --0.772848010063 --2.93113434315 --0.772830411792 --2.91387557983 --0.7728151232 --2.89661747217 --0.772802203894 --2.87935966253 --0.772791609168 --2.86210232973 --0.772783353925 --2.84484499693 --0.772777438164 --2.82758802176 --0.772773832083 --2.81033098698 --0.772772610188 --2.79307425022 --0.772773727774 --2.77581733465 --0.772777169943 --2.75856053829 --0.772782966494 --2.74130338431 --0.772791132331 --2.72404623032 --0.772801592946 --2.7067886591 --0.772814437747 --2.68953102827 --0.772829577327 --2.672272861 --0.77284707129 --2.65501433611 --0.772866860032 --2.63775515557 --0.77287787199 --2.61854046583 --0.772867947817 --2.59932738543 --0.772847995162 --2.58206838369 --0.772830396891 --2.56480973959 --0.7728151232 --2.54755169153 --0.772802203894 --2.53029382229 --0.772791609168 --2.51303642988 --0.772783353925 --2.49577909708 --0.772777438164 --2.47852218151 --0.772773832083 --2.46126520634 --0.772772610188 --2.44400840998 --0.772773712873 --2.4267514348 --0.772777155042 --2.40949463844 --0.772782936692 --2.39223754406 --0.772791087627 --2.37498039007 --0.772801578045 --2.35772281885 --0.772814437747 --2.34046512842 --0.772829592228 --2.32320690155 --0.772847086191 --2.30594849587 --0.772866860032 --2.28868937493 --0.772877842188 --2.26947468519 --0.772867918014 --2.25026160478 --0.772848010063 --2.23300260306 --0.772830411792 --2.21574395895 --0.7728151232 --2.19848591089 --0.772802203894 --2.18122798204 --0.772791624069 --2.16397058964 --0.772783353925 --2.14671331644 --0.772777423262 --2.12945634127 --0.772773832083 --2.11219930649 --0.772772610188 --2.09494256973 --0.772773727774 --2.07768565416 --0.772777169943 --2.0604287982 --0.772782951593 --2.04317170382 --0.77279111743 --2.02591460943 --0.772801592946 --2.00865703821 --0.772814437747 --1.99139934778 --0.772829577327 --1.97414109111 --0.77284707129 --1.95688262582 --0.772866845131 --1.93962350488 --0.772877857089 --1.92040881515 --0.772867947817 --1.90119576454 --0.772848010063 --1.88393679261 --0.772830396891 --1.8666780889 --0.772815108299 --1.84942001104 --0.772802188993 --1.8321621418 --0.772791594267 --1.81490474939 --0.772783339023 --1.79764741659 --0.772777423262 --1.78039047122 --0.772773832083 --1.76313346624 --0.772772625089 --1.74587672949 --0.772773742676 --1.72861978411 --0.772777184844 --1.71136292815 --0.772782951593 --1.69410580396 --0.772791087627 --1.67684870958 --0.772801578045 --1.65959116816 --0.772814422846 --1.64233347774 --0.772829562426 --1.62507525086 --0.772847086191 --1.60781675577 --0.772866889834 --1.59055760503 --0.77287787199 --1.5713429451 --0.772867918014 --1.5521298945 --0.772847995162 --1.53487089276 --0.772830411792 --1.51761221886 --0.772815108299 --1.5003541708 --0.772802174091 --1.48309630156 --0.772791609168 --1.46583893895 --0.772783353925 --1.44858160615 --0.772777438164 --1.43132463097 --0.772773832083 --1.4140676558 --0.772772595287 --1.39681088924 --0.772773712873 --1.37955391407 --0.772777184844 --1.36229711771 --0.772782981395 --1.34503999352 --0.77279111743 --1.32778286934 --0.772801592946 --1.31052529812 --0.772814437747 --1.29326760769 --0.772829592228 --1.27600938082 --0.772847086191 --1.25875091553 --0.772866860032 --1.24149179459 --0.77287787199 --1.22227707505 --0.772867947817 --1.20306402445 --0.772848010063 --1.18580505252 --0.772830411792 --1.16854637861 --0.7728151232 --1.15128833055 --0.772802203894 --1.13403043151 --0.772791609168 --1.1167730391 --0.772783339023 --1.0995157361 --0.772777423262 --1.08225879073 --0.772773832083 --1.06500178576 --0.772772610188 --1.0477450192 --0.772773727774 --1.03048807382 --0.772777199745 --1.01323124766 --0.772782981395 --0.995974123479 --0.772791102528 --0.978717014194 --0.772801578045 --0.961459442973 --0.772814437747 --0.944201752543 --0.772829577327 --0.926943540573 --0.772847056389 --0.909685045481 --0.772866845131 --0.892425909638 --0.77287787199 --0.873211234808 --0.772867947817 --0.853998169303 --0.772848010063 --0.836739182472 --0.772830426693 --0.819480493665 --0.772815138101 --0.802222460508 --0.772802203894 --0.784964606166 --0.772791609168 --0.76770721376 --0.772783339023 --0.750449880957 --0.772777423262 --0.733192920685 --0.772773832083 --0.715935915709 --0.772772610188 --0.698679164052 --0.772773727774 --0.681422233582 --0.772777169943 --0.66416540742 --0.772782936692 --0.646908268333 --0.772791102529 --0.629651144147 --0.772801592946 --0.612393602729 --0.772814437747 --0.5951359272 --0.772829592228 --0.577877700329 --0.772847086191 --0.560619220137 --0.772866860032 --0.543360069394 --0.77287787199 --0.524145394563 --0.772867947817 --0.50493234396 --0.772848010063 --0.487673342228 --0.772830411792 --0.470414660871 --0.7728151232 --0.453156605363 --0.772802203894 --0.435898736119 --0.772791609168 --0.418641358614 --0.772783339023 --0.401384033263 --0.772777423262 --0.384127080441 --0.772773846984 --0.366870082915 --0.772772625089 --0.349613338709 --0.772773727774 --0.332356378436 --0.772777169943 --0.315099544823 --0.772782936692 --0.297842420637 --0.772791087627 --0.280585296452 --0.772801578045 --0.263327747583 --0.772814437747 --0.24607006833 --0.772829592228 --0.228811845183 --0.772847086191 --0.211553372443 --0.772866860032 --0.19429422915 --0.772877857089 --0.175079543143 --0.755750209093 --0.155861515552 --0.755730569363 --0.138602554798 --0.755713239312 --0.12134388648 --0.755698204041 --0.104085838422 --0.755685508251 --0.0868279859424 --0.755675077438 --0.0695706224069 --0.755666926503 --0.0523133194074 --0.755661100149 --0.0350563903339 --0.755657583475 --0.0177994037513 --0.755656376481 --0.000542662106455 --0.755657449365 -0.0167142616119 --0.755660861731 -0.0339710619301 --0.755666553974 -0.0512281665578 --0.7556745857 -0.0684852749109 --0.755684897303 -0.0857428051531 --0.755697533488 -0.103000456467 --0.755712464452 -0.120258664712 --0.755729705095 -0.137517120689 --0.755749180913 -0.15477624163 --0.755759999156 -0.173991106451 --0.755750223994 -0.193204339594 --0.755730614066 -0.210463311523 --0.755713284016 -0.227721966803 --0.755698218942 -0.24498000741 --0.755685508251 -0.262237869203 --0.755675077438 -0.279495231807 --0.755666956306 -0.296752534807 --0.755661144853 -0.314009465277 --0.755657613278 -0.331266440451 --0.755656406283 -0.348523169756 --0.755657494068 -0.365780100226 --0.755660876632 -0.383036904037 --0.755666568875 -0.400294013321 --0.755674615503 -0.417551130057 --0.755684912205 -0.434808656573 --0.755697563291 -0.45206630975 --0.755712479353 -0.46932451427 --0.755729705095 -0.486582964659 --0.755749195814 -0.503842107952 --0.755760028959 -0.523056969047 --0.755750238895 -0.542270183563 --0.755730599165 -0.559529155492 --0.755713284016 -0.576787814498 --0.755698248744 -0.594045847654 --0.755685523152 -0.611303701997 --0.755675077438 -0.628561064601 --0.755666956306 -0.645818367601 --0.75566111505 -0.663075298071 --0.755657568574 -0.680332288146 --0.755656376481 -0.697589054704 --0.755657434464 -0.714845985174 --0.755660831928 -0.732102781534 --0.755666553974 -0.749359875917 --0.7556745857 -0.7666169703 --0.755684897303 -0.783874511719 --0.755697563291 -0.801132172346 --0.755712479353 -0.818390369415 --0.755729705095 -0.835648834705 --0.755749195814 -0.852907955647 --0.755760014057 -0.87212279439 --0.755750223994 -0.891336023807 --0.755730614066 -0.908595025539 --0.755713298917 -0.925853684545 --0.755698233843 -0.9431117028 --0.755685508251 -0.960369557142 --0.755675092339 -0.977626919746 --0.755666941404 -0.994884222745 --0.755661085248 -1.01214113832 --0.755657583475 -1.02939814329 --0.755656391382 -1.04665490985 --0.755657479167 -1.06391182542 --0.755660876632 -1.08116865158 --0.755666539073 -1.09842574597 --0.755674570799 -1.11568281055 --0.755684897303 -1.13294035196 --0.755697563291 -1.15019801259 --0.755712479353 -1.16745620966 --0.755729705095 -1.18471467495 --0.755749180913 -1.20197382569 --0.755759999156 -1.22118869424 --0.755750223994 -1.24040192365 --0.755730614066 -1.25766086578 --0.755713284016 -1.27491950989 --0.755698233843 -1.29217755794 --0.755685508251 -1.30943539739 --0.755675062537 -1.32669275999 --0.755666926503 -1.34395009279 --0.755661085248 -1.36120700836 --0.755657568574 -1.37846398354 --0.755656406283 -1.3957207501 --0.755657494068 -1.41297769547 --0.755660861731 -1.43023449183 --0.755666539073 -1.44749158621 --0.755674570799 -1.46474868059 --0.755684897303 -1.48200619221 --0.755697563291 -1.49926385283 --0.755712464452 -1.51652204991 --0.755729705095 -1.5337805152 --0.755749225616 -1.55103963614 --0.75576004386 -1.57025447488 --0.755750253797 -1.5894677043 --0.755730599165 -1.60672670603 --0.755713269114 -1.62398537994 --0.755698248744 -1.64124342799 --0.755685508251 -1.65850129723 --0.755675062537 -1.67575865984 --0.755666926503 -1.69301593304 --0.75566111505 -1.7102728486 --0.755657598377 -1.72752985358 --0.755656391382 -1.74478659034 --0.755657449365 -1.76204350591 --0.755660861731 -1.77930033207 --0.755666568875 -1.79655742645 --0.755674570799 -1.81381452084 --0.755684897303 -1.83107206225 --0.755697563291 -1.84832969308 --0.755712494254 -1.86558791995 --0.755729719997 -1.88284638524 --0.755749195814 -1.90010550618 --0.755760014057 -1.91932037473 --0.755750223994 -1.93853360414 --0.755730614066 -1.95579254627 --0.755713298917 -1.97305119038 --0.755698233843 -1.99030926824 --0.755685508251 -2.00756710768 --0.755675077438 -2.02482444048 --0.755666941404 -2.04208177328 --0.755661129951 -2.05933874845 --0.755657598377 -2.07659572363 --0.755656376481 -2.09385246039 --0.755657479167 -2.11110937596 --0.755660906434 -2.12836617232 --0.755666583776 -2.14562326669 --0.7556745857 -2.16288036108 --0.755684897303 -2.1801379323 --0.755697563291 -2.19739562273 --0.755712479353 -2.21465379 --0.755729690194 -2.23191219568 --0.755749180913 -2.24917131662 --0.755760014057 -2.26838618517 --0.755750223994 -2.28759944439 --0.755730614066 -2.30485844612 --0.755713298917 -2.32211709023 --0.755698233843 -2.33937507868 --0.755685508251 -2.35663294792 --0.755675077438 -2.37389028072 --0.755666926503 -2.39114755392 --0.755661085248 -2.40840452909 --0.755657568574 -2.42566150427 --0.755656391382 -2.44291824102 --0.755657494068 -2.4601752162 --0.755660876632 -2.47743201256 --0.755666553974 -2.49468910694 --0.7556745857 -2.51194620132 --0.755684897303 -2.52920371294 --0.755697563291 -2.54646140337 --0.755712479353 -2.56371957064 --0.755729705095 -2.58097797632 --0.755749195814 -2.59823715687 --0.755760028959 -2.61745202541 --0.755750238895 -2.63666522503 --0.755730614066 -2.65392422676 --0.755713298917 -2.67118287087 --0.755698233843 -2.68844091893 --0.755685508251 -2.70569884777 --0.755675077438 -2.72295624018 --0.755666941404 -2.74021351338 --0.755661129951 -2.75747036934 --0.755657613278 -2.77472740412 --0.755656391382 -2.79198414087 --0.755657449365 -2.80924099684 --0.755660846829 -2.8264978528 --0.755666553974 -2.84375500679 --0.7556745857 -2.86101210117 --0.755684897303 -2.87826961279 --0.755697563291 -2.89552724361 --0.755712479353 -2.91278547048 --0.755729705095 -2.93004399538 --0.755749195814 -2.94730311632 --0.755760014057 -2.96651792526 --0.755750209093 -2.98573112488 --0.755730569363 -3.00299012661 --0.755713239312 -3.02024883032 --0.755698204041 -3.03750687837 --0.755685508251 -3.05476468802 --0.755675077438 -3.07202202082 --0.755666926503 -3.08927935362 --0.755661100149 -3.10653632879 --0.755657583475 -3.12379330396 --0.755656376481 -3.1410500129 --0.755657449365 --3.12487840652 --0.755660861731 --3.10762161016 --0.755666553974 --3.09036445618 --0.7556745857 --3.07310736179 --0.755684897303 --3.05584985018 --0.755697533488 --3.03859221935 --0.755712464452 --3.02133399248 --0.755729705095 --3.00407546759 --0.755749180913 --2.98681634665 --0.755759999156 --2.9676015377 --0.755750223994 --2.94838833809 --0.755730614066 --2.93112933636 --0.755713284016 --2.91387063265 --0.755698218942 --2.89661258459 --0.755685508251 --2.87935477495 --0.755675077438 --2.86209744215 --0.755666956306 --2.84484010935 --0.755661144853 --2.82758313417 --0.755657613278 --2.810326159 --0.755656406283 --2.79306942224 --0.755657494068 --2.77581250667 --0.755660876632 --2.75855576992 --0.755666568875 --2.74129867554 --0.755674615503 --2.72404152155 --0.755684912205 --2.70678395033 --0.755697563291 --2.6895263195 --0.755712479353 --2.67226815224 --0.755729705095 --2.65500968695 --0.755749195814 --2.63775056601 --0.755760028959 --2.61853569746 --0.755750238895 --2.59932243824 --0.755730599165 --2.58206349611 --0.755713284016 --2.56480485201 --0.755698248744 --2.54754680395 --0.755685523152 --2.53028899431 --0.755675077438 --2.51303166151 --0.755666956306 --2.49577432871 --0.75566111505 --2.47851735354 --0.755657568574 --2.46126037836 --0.755656376481 --2.4440036416 --0.755657434464 --2.42674666643 --0.755660831928 --2.40948987007 --0.755666553974 --2.39223277569 --0.7556745857 --2.37497568131 --0.755684897303 --2.35771816969 --0.755697563291 --2.34046047926 --0.755712479353 --2.32320231199 --0.755729705095 --2.30594390631 --0.755749195814 --2.28868478537 --0.755760014057 --2.26946991682 --0.755750223994 --2.2502566576 --0.755730614066 --2.23299765587 --0.755713298917 --2.21573901176 --0.755698233843 --2.19848102331 --0.755685508251 --2.18122309446 --0.755675092339 --2.16396570206 --0.755666941404 --2.14670848847 --0.755661085248 --2.1294515729 --0.755657583475 --2.11219453812 --0.755656391382 --2.09493780136 --0.755657479167 --2.07768088579 --0.755660876632 --2.06042402983 --0.755666539073 --2.04316693544 --0.755674570799 --2.02590984106 --0.755684897303 --2.00865226984 --0.755697563291 --1.99139463902 --0.755712479353 --1.97413647175 --0.755729705095 --1.95687800646 --0.755749180913 --1.93961888552 --0.755759999156 --1.92040401697 --0.755750223994 --1.90119078755 --0.755730614066 --1.88393181563 --0.755713284016 --1.86667311192 --0.755698233843 --1.84941509366 --0.755685508251 --1.83215725422 --0.755675062537 --1.81489986181 --0.755666926503 --1.79764255881 --0.755661085248 --1.78038564324 --0.755657568574 --1.76312866807 --0.755656406283 --1.74587193131 --0.755657494068 --1.72861501574 --0.755660861731 --1.71135818958 --0.755666539073 --1.6941010654 --0.755674570799 --1.67684397102 --0.755684897303 --1.6595864296 --0.755697563291 --1.64232876897 --0.755712464452 --1.6250705719 --0.755729705095 --1.60781210661 --0.755749225616 --1.59055298567 --0.75576004386 --1.57133814693 --0.755750253797 --1.55212491751 --0.755730599165 --1.53486594558 --0.755713269114 --1.51760730148 --0.755698248744 --1.50034925342 --0.755685508251 --1.48309138417 --0.755675062537 --1.46583405137 --0.755666926503 --1.44857674837 --0.75566111505 --1.43131977319 --0.755657598377 --1.41406279802 --0.755656391382 --1.39680609107 --0.755657449365 --1.3795491457 --0.755660861731 --1.36229234934 --0.755666568875 --1.34503525495 --0.755674570799 --1.32777816057 --0.755684897303 --1.31052061916 --0.755697563291 --1.29326292872 --0.755712494254 --1.27600470185 --0.755729719997 --1.25874626636 --0.755749195814 --1.24148717523 --0.755760014057 --1.22227227688 --0.755750223994 --1.20305904746 --0.755730614066 --1.18580010533 --0.755713298917 --1.16854146123 --0.755698233843 --1.15128341317 --0.755685508251 --1.13402554393 --0.755675077438 --1.11676818132 --0.755666941404 --1.09951084852 --0.755661129951 --1.08225393296 --0.755657598377 --1.06499698758 --0.755656376481 --1.04774022102 --0.755657479167 --1.03048327565 --0.755660906434 --1.01322647929 --0.755666583776 --0.99596938491 --0.7556745857 --0.978712290525 --0.755684897303 --0.961454734206 --0.755697563291 --0.944197073579 --0.755712479353 --0.926938891411 --0.755729690194 --0.909680426121 --0.755749180913 --0.892421290278 --0.755760014057 --0.873206421733 --0.755750223994 --0.853993177414 --0.755730614066 --0.836734205484 --0.755713298917 --0.81947556138 --0.755698233843 --0.802217543125 --0.755685508251 --0.784959688783 --0.755675077438 --0.767702326179 --0.755666926503 --0.750445023179 --0.755661085248 --0.733188077807 --0.755657568574 --0.715931087732 --0.755656391382 --0.698674350977 --0.755657494068 --0.681417450309 --0.755660876632 --0.664160653949 --0.755666553974 --0.646903514862 --0.7556745857 --0.629646405578 --0.755684897303 --0.612388893962 --0.755697563291 --0.595131248236 --0.755712479353 --0.577873051167 --0.755729705095 --0.560614585876 --0.755749195814 --0.543355450034 --0.755760028959 --0.52414059639 --0.755750238895 --0.504927366972 --0.755730614066 --0.487668387592 --0.755713298917 --0.470409728587 --0.755698233843 --0.45315169543 --0.755685508251 --0.435893848538 --0.755675077438 --0.418636478483 --0.755666941404 --0.401379168033 --0.755661129951 --0.384122245014 --0.755657613278 --0.366865262389 --0.755656391382 --0.349608525634 --0.755657449365 --0.332351587713 --0.755660846829 --0.315094776452 --0.755666553974 --0.297837674618 --0.7556745857 --0.280580580234 --0.755684897303 --0.263323053718 --0.755697563291 --0.246065389365 --0.755712479353 --0.22880718112 --0.755729705095 --0.211548727006 --0.755749195814 --0.194289606064 --0.755760014057 --0.175074741244 --0.738614454866 --0.155856490135 --0.73859512806 --0.138597540558 --0.73857806623 --0.121338892728 --0.738563284278 --0.104080868885 --0.738550767302 --0.0868230331689 --0.738540500402 --0.0695656891912 --0.738532498479 --0.0523084076121 --0.73852674663 --0.0350514985621 --0.738523289561 --0.0177945317701 --0.73852211237 --0.000537810614333 --0.738523170352 -0.0167190933134 --0.738526538014 -0.0339758726768 --0.738532140851 -0.0512329582125 --0.738540023565 -0.0684900451452 --0.738550171256 -0.0857475567609 --0.738562613726 -0.103005193174 --0.73857729137 -0.120263377204 --0.738594263792 -0.137521814555 --0.738613426686 -0.154780920595 --0.738624081016 -0.173995964229 --0.738614469767 -0.193209376186 --0.738595157862 -0.210468322039 --0.738578096032 -0.227726954967 --0.738563284278 -0.244984980673 --0.738550767302 -0.26224283129 --0.738540500402 -0.279500171542 --0.73853251338 -0.296757444739 --0.738526791334 -0.314014352858 --0.738523334265 -0.331271313131 --0.738522142172 -0.348528034985 --0.738523200154 -0.365784943104 --0.738526538014 -0.383041717112 --0.738532140851 -0.400298804045 --0.738540038466 -0.417555898428 --0.738550186157 -0.434813410044 --0.738562643528 -0.452071048319 --0.738577306271 -0.469329237938 --0.738594263792 -0.486587665975 --0.738613441586 -0.503846764564 --0.738624110818 -0.523061797023 --0.738614484668 -0.542275205255 --0.738595157862 -0.559534162283 --0.738578110934 -0.576792791486 --0.73856331408 -0.594050809741 --0.738550782203 -0.611308664083 --0.738540500402 -0.628566011786 --0.73853251338 -0.645823284984 --0.738526761532 -0.663080185652 --0.738523289561 -0.680337145925 --0.738522097469 -0.697593897581 --0.73852314055 -0.71485081315 --0.738526508212 -0.732107579708 --0.738532140851 -0.74936465919 --0.738540038466 -0.766621738672 --0.738550186157 -0.783879265189 --0.738562643528 -0.801136896014 --0.738577306271 -0.818395078183 --0.738594263792 -0.835653528571 --0.738613441586 -0.852912634611 --0.738624081016 -0.872127667069 --0.738614454866 -0.8913410604 --0.738595157862 -0.90860003233 --0.738578110934 -0.925858676434 --0.738563299179 -0.943116664887 --0.738550767302 -0.960374489427 --0.738540500402 -0.977631852031 --0.738532498479 -0.99488914013 --0.73852674663 -1.0121460259 --0.738523304463 -1.02940300107 --0.73852211237 -1.04665973782 --0.738523170352 -1.0639166534 --0.738526538014 -1.08117344976 --0.73853212595 -1.09843051433 --0.738540023565 -1.11568757892 --0.738550186157 -1.13294509053 --0.738562643528 -1.15020275116 --0.738577306271 -1.16746094823 --0.738594263792 -1.18471938372 --0.738613441586 -1.20197850466 --0.738624095917 -1.22119352222 --0.738614469767 -1.24040693045 --0.738595157862 -1.25766587257 --0.738578110934 -1.27492451668 --0.73856331408 -1.29218256474 --0.738550782203 -1.30944037438 --0.738540500402 -1.32669770718 --0.738532498479 -1.34395501018 --0.73852674663 -1.36121192575 --0.738523289561 -1.37846890092 --0.73852211237 -1.39572560787 --0.738523185253 -1.41298249364 --0.738526538014 -1.43023929 --0.738532140851 -1.44749638438 --0.738540038466 -1.46475344896 --0.738550186157 -1.48201096058 --0.738562643528 -1.4992685914 --0.738577306271 -1.51652675867 --0.738594263792 -1.53378522396 --0.738613441586 -1.5510443151 --0.738624110818 -1.57025933266 --0.738614499569 -1.58947274089 --0.738595142961 -1.60673171282 --0.738578081131 -1.62399035692 --0.73856331408 -1.64124837518 --0.738550782203 -1.65850621462 --0.738540500403 -1.67576354742 --0.738532498479 -1.69302082062 --0.738526791334 -1.71027773619 --0.738523334265 -1.72753471136 --0.73852211237 -1.74479144811 --0.738523155451 -1.76204836368 --0.738526508212 -1.77930513024 --0.73853212595 -1.79656219482 --0.738540038466 -1.81381928921 --0.738550201058 -1.83107680082 --0.738562643528 -1.84833443165 --0.73857730627 -1.86559262872 --0.738594263792 -1.8828510344 --0.738613426685 -1.90011015535 --0.738624051213 -1.91932523251 --0.738614439965 -1.93853864074 --0.738595157862 -1.95579758287 --0.738578110934 -1.97305622697 --0.738563299179 -1.99031424523 --0.738550767302 -2.00757208467 --0.738540500402 -2.02482938767 --0.73853251338 -2.04208666086 --0.738526791334 -2.05934363603 --0.738523319364 -2.07660061121 --0.738522097469 -2.09385734797 --0.738523170352 -2.11111420393 --0.738526538014 -2.12837094068 --0.738532140851 -2.14562803507 --0.738540038466 -2.16288512945 --0.738550186157 -2.18014264107 --0.738562643528 -2.19740027189 --0.738577291369 -2.21465849876 --0.738594248891 -2.23191690445 --0.738613441586 -2.24917596579 --0.738624095917 -2.26839107275 --0.738614469767 -2.28760451079 --0.738595157862 -2.30486345291 --0.738578110934 -2.32212209702 --0.738563299179 -2.33938008547 --0.738550767302 -2.35663795471 --0.738540500402 -2.37389528751 --0.738532498479 -2.39115250111 --0.738526761531 -2.40840941668 --0.738523304462 -2.42566639185 --0.73852211237 -2.4429231286 --0.738523185253 -2.46018004417 --0.738526538014 -2.47743678093 --0.738532140851 -2.49469387531 --0.738540053367 -2.5119509697 --0.738550201058 -2.52920848131 --0.738562658429 -2.54646617174 --0.738577321172 -2.56372433901 --0.738594263792 -2.5809827447 --0.738613441586 -2.59824186563 --0.738624081016 -2.61745691299 --0.738614454866 -2.63667029142 --0.738595157862 -2.65392923355 --0.738578110934 -2.67118787765 --0.738563284278 -2.68844592571 --0.738550752401 -2.70570379496 --0.738540500402 -2.72296112776 --0.73853251338 -2.74021834135 --0.738526791334 -2.75747519732 --0.738523319364 -2.77473223209 --0.738522097469 -2.79198896885 --0.73852314055 -2.80924588442 --0.738526508212 -2.82650268078 --0.738532140851 -2.84375977516 --0.738540053367 -2.86101686955 --0.738550201058 -2.87827438116 --0.738562643528 -2.89553201199 --0.738577291369 -2.91279017925 --0.738594248891 -2.93004864454 --0.738613441586 -2.94730776548 --0.738624081016 -2.96652275324 --0.738614454866 -2.98573613167 --0.73859512806 -3.0029951334 --0.73857806623 -3.0202537775 --0.738563284278 -3.03751176596 --0.738550767302 -3.0547695756 --0.738540500402 -3.0720269084 --0.738532498479 -3.0892842412 --0.73852674663 -3.10654121637 --0.738523289561 -3.12379819155 --0.73852211237 -3.14105484088 --0.738523170352 --3.12487357855 --0.738526538014 --3.10761678219 --0.738532140851 --3.0903596878 --0.738540023565 --3.07310259342 --0.738550171256 --3.05584508181 --0.738562613726 --3.03858745098 --0.73857729137 --3.02132928372 --0.738594263792 --3.00407081843 --0.738613426686 --2.98681169748 --0.738624081016 --2.96759670973 --0.738614469767 --2.9483833313 --0.738595157862 --2.93112432957 --0.738578096032 --2.91386568546 --0.738563284278 --2.89660769701 --0.738550767302 --2.87934988737 --0.738540500402 --2.86209255457 --0.73853251338 --2.84483522177 --0.738526791334 --2.82757824659 --0.738523334265 --2.81032127142 --0.738522142172 --2.79306453467 --0.738523200154 --2.7758076787 --0.738526538014 --2.75855094194 --0.738532140851 --2.74129384756 --0.738540038466 --2.72403675318 --0.738550186157 --2.70677924156 --0.738562643528 --2.68952161074 --0.738577306271 --2.67226338386 --0.738594263792 --2.65500497818 --0.738613441586 --2.63774591684 --0.738624110818 --2.61853086948 --0.738614484668 --2.59931743145 --0.738595157862 --2.58205848932 --0.738578110934 --2.56479990482 --0.73856331408 --2.54754185677 --0.738550782203 --2.53028398752 --0.738540500402 --2.51302665472 --0.73853251338 --2.49576938152 --0.738526761532 --2.47851246596 --0.738523289561 --2.46125549078 --0.738522097469 --2.44399875402 --0.73852314055 --2.42674183846 --0.738526508212 --2.4094851017 --0.738532140851 --2.39222800732 --0.738540038466 --2.37497091293 --0.738550186157 --2.35771340132 --0.738562643528 --2.34045577049 --0.738577306271 --2.32319760323 --0.738594263792 --2.30593913793 --0.738613441586 --2.28868001699 --0.738624081016 --2.26946496963 --0.738614454866 --2.25025159121 --0.738595157862 --2.23299264908 --0.738578110934 --2.21573400497 --0.738563299179 --2.19847601652 --0.738550767302 --2.18121814728 --0.738540500402 --2.16396075487 --0.738532498479 --2.14670354128 --0.73852674663 --2.12944668532 --0.738523304463 --2.11218971014 --0.73852211237 --2.09493297338 --0.738523170352 --2.07767599821 --0.738526538014 --2.06041920185 --0.73853212595 --2.04316210747 --0.738540023565 --2.02590501308 --0.738550186157 --2.00864750147 --0.738562643528 --1.99138990044 --0.738577306271 --1.97413176298 --0.738594263792 --1.95687329769 --0.738613441586 --1.93961417675 --0.738624095917 --1.92039912939 --0.738614469767 --1.90118572116 --0.738595157862 --1.88392677903 --0.738578110934 --1.86666813493 --0.73856331408 --1.84941014647 --0.738550782203 --1.83215230703 --0.738540500402 --1.81489494443 --0.738532498479 --1.79763767123 --0.73852674663 --1.78038075566 --0.738523289561 --1.76312381029 --0.73852211237 --1.74586707354 --0.738523185253 --1.72861015797 --0.738526538014 --1.71135339141 --0.738532140851 --1.69409629703 --0.738540038466 --1.67683920264 --0.738550186157 --1.65958169103 --0.738562643528 --1.6423240602 --0.738577306271 --1.62506586313 --0.738594263792 --1.60780742765 --0.738613441586 --1.5905483365 --0.738624110818 --1.57133328915 --0.738614499569 --1.55211988091 --0.738595142961 --1.53486093879 --0.738578081131 --1.51760229469 --0.73856331408 --1.50034427643 --0.738550782203 --1.48308643699 --0.738540500403 --1.46582910419 --0.738532498479 --1.44857183099 --0.738526791334 --1.43131488561 --0.738523334265 --1.41405791044 --0.73852211237 --1.39680123329 --0.738523155451 --1.37954434752 --0.738526508212 --1.36228755116 --0.73853212595 --1.34503045678 --0.738540038466 --1.3277733624 --0.738550201058 --1.31051585078 --0.738562643528 --1.29325819015 --0.73857730627 --1.27599999309 --0.738594263792 --1.2587415874 --0.738613426685 --1.24148249626 --0.738624051213 --1.2222674489 --0.738614439965 --1.20305404067 --0.738595157862 --1.18579509854 --0.738578110934 --1.16853645444 --0.738563299179 --1.15127840638 --0.738550767302 --1.13402056694 --0.738540500402 --1.11676323414 --0.73853251338 --1.09950593114 --0.738526791334 --1.08224904537 --0.738523319364 --1.0649921298 --0.738522097469 --1.04773539305 --0.738523170352 --1.03047844767 --0.738526538014 --1.01322165132 --0.738532140851 --0.995964586734 --0.738540038466 --0.978707507252 --0.738550186157 --0.961449980736 --0.738562643528 --0.944192364812 --0.738577291369 --0.926934182644 --0.738594248891 --0.909675732255 --0.738613441586 --0.892416611314 --0.738624095917 --0.873201563954 --0.738614469767 --0.853988155723 --0.738595157862 --0.836729213596 --0.738578110934 --0.819470584392 --0.738563299179 --0.802212566137 --0.738550767302 --0.784954726696 --0.738540500402 --0.767697393894 --0.738532498479 --0.750440135598 --0.738526761531 --0.733183205128 --0.738523304462 --0.715926215053 --0.73852211237 --0.698669493199 --0.738523185253 --0.681412607432 --0.738526538014 --0.664155840873 --0.738532140851 --0.646898731589 --0.738540053367 --0.629641652107 --0.738550201058 --0.612384155393 --0.738562658429 --0.595126509667 --0.738577321172 --0.577868327498 --0.738594263792 --0.560609892011 --0.738613441586 --0.543350785971 --0.738624081016 --0.524135753513 --0.738614454866 --0.504922352731 --0.738595157862 --0.487663388252 --0.738578110934 --0.470404744148 --0.738563284278 --0.453146733343 --0.738550752401 --0.435888901353 --0.738540500402 --0.418631538749 --0.73853251338 --0.401374258101 --0.738526791334 --0.384117357433 --0.738523319364 --0.366860382259 --0.738522097469 --0.349603667855 --0.73852314055 --0.332346759736 --0.738526508212 --0.315089978278 --0.738532140851 --0.297832898796 --0.738540053367 --0.280575811863 --0.738550201058 --0.263318300247 --0.738562643528 --0.246060661972 --0.738577291369 --0.228802472353 --0.738594248891 --0.21154403314 --0.738613441586 --0.194284930825 --0.738624081016 --0.175069894641 --0.721458718181 --0.155851412564 --0.7214397192 --0.138592477888 --0.721422940493 --0.12133385241 --0.72140841186 --0.104075852782 --0.721396073699 --0.0868180338293 --0.721385955811 --0.0695607066154 --0.721378102899 --0.0523034473881 --0.72137247026 --0.0350465606898 --0.721369072795 --0.0177896129899 --0.721367910504 --0.000532911624758 --0.721368968487 -0.0167239727452 --0.721372276544 -0.0339807327837 --0.721377760172 -0.0512377964333 --0.721385508776 -0.0684948610142 --0.721395522356 -0.0857523567975 --0.72140775621 -0.103009974584 --0.721422165632 -0.120268139988 --0.721438869834 -0.1375265643 --0.721457734704 -0.154785651714 --0.721468195319 -0.174000866711 --0.721458718181 -0.193214450032 --0.7214397192 -0.210473380983 --0.721422940492 -0.227732002735 --0.721408396959 -0.244990002364 --0.721396073699 -0.262247815729 --0.721385955811 -0.279505133629 --0.721378087998 -0.296762391925 --0.721372440457 -0.314019285143 --0.721369057894 -0.331276237965 --0.721367910504 -0.348532944918 --0.721368953586 -0.365789830685 --0.721372246742 -0.383046582341 --0.721377760172 -0.400303646922 --0.721385538578 -0.417560711503 --0.721395537257 -0.434818200767 --0.721407771111 -0.452075824142 --0.721422195435 -0.469333998859 --0.721438869834 -0.486592411995 --0.721457719803 -0.503851488233 --0.721468195319 -0.523066699505 --0.721458718181 -0.542280286551 --0.7214397192 -0.559539213777 --0.721422955394 -0.576797828078 --0.721408382058 -0.594055846334 --0.721396043897 -0.611313670874 --0.721385970712 -0.628570973873 --0.721378102899 -0.645828232169 --0.721372455359 -0.663085132837 --0.721369057894 -0.680342078209 --0.721367880702 -0.697598785162 --0.721368938685 -0.714855670929 --0.721372246742 -0.732112437487 --0.721377760172 -0.749369487166 --0.721385538578 -0.766626536846 --0.721395537257 -0.783884048462 --0.721407771111 -0.801141664386 --0.721422180533 -0.818399831653 --0.721438869834 -0.835658252239 --0.721457734704 -0.852917343378 --0.721468165517 -0.872132584453 --0.72145870328 -0.891346156597 --0.7214397192 -0.908605083823 --0.721422925591 -0.925863713026 --0.721408396959 -0.943121701479 --0.721396073699 -0.960379511118 --0.721385955811 -0.97763684392 --0.721378102899 -0.994894102216 --0.721372455359 -1.01215097308 --0.721369042992 -1.02940791845 --0.721367880702 -1.04666462541 --0.721368938685 -1.06392154098 --0.721372246742 -1.08117830753 --0.721377760172 -1.09843534231 --0.721385538578 -1.1156924069 --0.721395537257 -1.13294988871 --0.721407771111 -1.15020751953 --0.721422180533 -1.1674657166 --0.721438869834 -1.18472412229 --0.721457734704 -1.20198321343 --0.72146821022 -1.22119840979 --0.721458733082 -1.24041199684 --0.7214397192 -1.25767093897 --0.721422940492 -1.27492955327 --0.721408396959 -1.29218757152 --0.7213960886 -1.30944538116 --0.721385970712 -1.32670271397 --0.721378102899 -1.34395998716 --0.721372455359 -1.36121687293 --0.721369042992 -1.3784738183 --0.721367880702 -1.39573049545 --0.721368953586 -1.41298735142 --0.721372261643 -1.43024411798 --0.721377775073 -1.44750121236 --0.721385553479 -1.46475827694 --0.721395537257 -1.48201575875 --0.721407771111 -1.49927335978 --0.721422195435 -1.51653152704 --0.721438884735 -1.53378996253 --0.721457734704 -1.55104902387 --0.72146821022 -1.57026425004 --0.721458733082 -1.58947783709 --0.721439704299 -1.60673674941 --0.721422940493 -1.62399539351 --0.72140841186 -1.64125341177 --0.721396073699 -1.65851122141 --0.721385985613 -1.67576852441 --0.721378132701 -1.6930257678 --0.721372485161 -1.71028268337 --0.721369087696 -1.72753965855 --0.721367880702 -1.7447963655 --0.721368923783 -1.76205325127 --0.721372246742 -1.77930998802 --0.721377760172 -1.7965670228 --0.721385553479 -1.81382411718 --0.721395552158 -1.8310816288 --0.721407771111 -1.84833922982 --0.721422165632 -1.86559736728 --0.721438840032 -1.88285577297 --0.721457704902 -1.90011489392 --0.721468165517 -1.91933014989 --0.721458718181 -1.93854373694 --0.721439734101 -1.95580264926 --0.721422940492 -1.97306126356 --0.721408396959 -1.99031925201 --0.721396073699 -2.00757709145 --0.721385970712 -2.02483439446 --0.7213781178 -2.04209160805 --0.72137247026 -2.05934852362 --0.721369072795 -2.07660549879 --0.721367895603 -2.09386223555 --0.721368938685 -2.11111909151 --0.721372246742 -2.12837582827 --0.721377760172 -2.14563292265 --0.721385538578 -2.16289001703 --0.721395537257 -2.18014746905 --0.721407771111 -2.19740504027 --0.721422180533 -2.21466326714 --0.721438854933 -2.23192167282 --0.721457704902 -2.24918067455 --0.721468195319 -2.26839590073 --0.721458733082 -2.28760957718 --0.721439704299 -2.3048685193 --0.721422940493 -2.32212716341 --0.72140841186 -2.33938515186 --0.7213960886 -2.3566429019 --0.721385970712 -2.3739002347 --0.721378087998 -2.3911575079 --0.72137247026 -2.40841436386 --0.721369087696 -2.42567127943 --0.721367895603 -2.44292801619 --0.721368938685 -2.46018493176 --0.721372261643 -2.47744166851 --0.721377775073 -2.49469870329 --0.721385553479 -2.51195579767 --0.721395552158 -2.52921330929 --0.721407786012 -2.54647094011 --0.721422195434 -2.56372910738 --0.721438869834 -2.58098751307 --0.721457719803 -2.59824663401 --0.721468165517 -2.61746186018 --0.721458703279 -2.63667541742 --0.721439704299 -2.65393429994 --0.721422940493 -2.67119294405 --0.721408396959 -2.68845099211 --0.721396073699 -2.70570880175 --0.721385985613 -2.72296613455 --0.7213781178 -2.74022334814 --0.72137247026 -2.75748020411 --0.721369072795 -2.77473717928 --0.721367880702 -2.79199385643 --0.721368923783 -2.809250772 --0.721372246742 -2.82650750876 --0.721377760172 -2.84376454353 --0.721385553479 -2.86102163792 --0.721395552158 -2.87827914953 --0.721407771111 -2.89553678036 --0.721422165632 -2.91279494762 --0.721438854933 -2.93005335331 --0.721457734704 -2.94731241465 --0.721468180418 -2.96652764082 --0.721458718181 -2.98574119806 --0.7214397192 -3.00300014019 --0.721422940493 -3.02025878429 --0.72140841186 -3.03751677274 --0.721396073699 -3.05477458238 --0.721385955811 -3.07203191519 --0.721378102899 -3.08928918838 --0.72137247026 -3.10654610395 --0.721369072795 -3.12380307913 --0.721367910504 -3.14105972846 --0.721368968487 --3.12486869097 --0.721372276544 --3.10761195421 --0.721377760172 --3.09035491943 --0.721385508776 --3.07309782505 --0.721395522356 --3.05584031343 --0.72140775621 --3.03858268261 --0.721422165632 --3.02132451534 --0.721438869834 --3.00406610966 --0.721457734704 --2.98680704832 --0.721468195319 --2.96759182215 --0.721458718181 --2.94837826491 --0.7214397192 --2.93111932278 --0.721422940492 --2.91386067867 --0.721408396959 --2.89660269022 --0.721396073699 --2.87934488058 --0.721385955811 --2.86208754778 --0.721378087998 --2.84483027458 --0.721372440457 --2.82757335901 --0.721369057894 --2.81031638384 --0.721367910504 --2.79305964708 --0.721368953586 --2.77580279112 --0.721372246742 --2.75854605436 --0.721377760172 --2.74128895998 --0.721385538578 --2.7240319252 --0.721395537257 --2.70677447319 --0.721407771111 --2.68951684237 --0.721422195435 --2.6722586155 --0.721438869834 --2.65500020981 --0.721457719803 --2.63774114847 --0.721468195319 --2.6185259819 --0.721458718181 --2.59931236506 --0.7214397192 --2.58205336332 --0.721422955394 --2.56479483843 --0.721408382058 --2.54753684997 --0.721396043897 --2.53027898073 --0.721385970712 --2.51302164793 --0.721378102899 --2.49576437473 --0.721372455359 --2.47850751877 --0.721369057894 --2.4612506032 --0.721367880702 --2.44399386644 --0.721368938685 --2.42673701048 --0.721372246742 --2.40948027372 --0.721377760172 --2.39222317934 --0.721385538578 --2.37496608496 --0.721395537257 --2.35770857334 --0.721407771111 --2.34045100212 --0.721422180533 --2.32319283485 --0.721438869834 --2.30593436957 --0.721457734704 --2.28867524863 --0.721468165517 --2.26946002245 --0.72145870328 --2.25024646521 --0.7214397192 --2.23298758268 --0.721422925591 --2.21572893858 --0.721408396959 --2.19847089052 --0.721396073699 --2.18121308088 --0.721385955811 --2.16395574808 --0.721378102899 --2.14669853449 --0.721372455359 --2.12944167853 --0.721369042992 --2.11218476296 --0.721367880702 --2.0949280858 --0.721368938685 --2.07767111063 --0.721372246742 --2.06041437387 --0.721377760172 --2.04315733909 --0.721385538578 --2.02590024471 --0.721395537257 --2.0086427331 --0.721407771111 --1.99138510227 --0.721422180533 --1.97412696481 --0.721438869834 --1.95686852932 --0.721457734704 --1.93960943818 --0.72146821022 --1.92039424181 --0.721458733082 --1.90118065476 --0.7214397192 --1.88392171264 --0.721422940492 --1.86666309834 --0.721408396959 --1.84940510988 --0.7213960886 --1.83214727044 --0.721385970712 --1.81488996744 --0.721378102899 --1.79763272405 --0.721372455359 --1.78037580848 --0.721369042992 --1.7631188631 --0.721367880702 --1.74586215615 --0.721368953586 --1.72860527039 --0.721372261643 --1.71134853363 --0.721377775073 --1.69409146905 --0.721385553479 --1.67683437467 --0.721395537257 --1.65957689285 --0.721407771111 --1.64231929183 --0.721422195435 --1.62506109476 --0.721438884735 --1.60780268908 --0.721457734704 --1.59054362774 --0.72146821022 --1.57132837176 --0.721458733082 --1.55211478472 --0.721439704299 --1.53485587239 --0.721422940493 --1.51759725809 --0.72140841186 --1.50033926964 --0.721396073699 --1.48308146 --0.721385985613 --1.4658241272 --0.721378132701 --1.448566854 --0.721372485161 --1.43130996823 --0.721369087696 --1.41405302286 --0.721367880702 --1.39679634571 --0.721368923783 --1.37953948975 --0.721372246742 --1.36228269339 --0.721377760172 --1.345025599 --0.721385553479 --1.32776853442 --0.721395552158 --1.31051105261 --0.721407771111 --1.29325342178 --0.721422165632 --1.27599525452 --0.721438840032 --1.25873684883 --0.721457704902 --1.24147772789 --0.721468165517 --1.22226253152 --0.721458718181 --1.20304897427 --0.721439734101 --1.18579003215 --0.721422940492 --1.16853138804 --0.721408396959 --1.15127336979 --0.721396073699 --1.13401556015 --0.721385970712 --1.11675822735 --0.7213781178 --1.09950098395 --0.72137247026 --1.08224412799 --0.721369072795 --1.06498718262 --0.721367895603 --1.04773047566 --0.721368938685 --1.0304735899 --0.721372246742 --1.01321682334 --0.721377760172 --0.995959758759 --0.721385538578 --0.978702679276 --0.721395537257 --0.961445182562 --0.721407771111 --0.944187581539 --0.721422180533 --0.926929399371 --0.721438854933 --0.909670978785 --0.721457704902 --0.892411917448 --0.721468195319 --0.873196706176 --0.721458733082 --0.853983104229 --0.721439704299 --0.836724191904 --0.721422940493 --0.8194655478 --0.72140841186 --0.802207529545 --0.7213960886 --0.784949734807 --0.721385970712 --0.767692416906 --0.721378087998 --0.750435173512 --0.72137247026 --0.733178272844 --0.721369087696 --0.71592131257 --0.721367895603 --0.698664620519 --0.721368938685 --0.681407734752 --0.721372261643 --0.664150968194 --0.721377775073 --0.646893888712 --0.721385553479 --0.629636824131 --0.721395552158 --0.612379357219 --0.721407786012 --0.595121726394 --0.721422195434 --0.577863544226 --0.721438869834 --0.56060513854 --0.721457719803 --0.543346062303 --0.721468165517 --0.524130851031 --0.721458703279 --0.504917263985 --0.721439704299 --0.487658321858 --0.721422940493 --0.470399707556 --0.721408396959 --0.453141711652 --0.721396073699 --0.435883887112 --0.721385985613 --0.41862655431 --0.7213781178 --0.401369303465 --0.72137247026 --0.384112410247 --0.721369072795 --0.366855457425 --0.721367880702 --0.349598772824 --0.721368923783 --0.332341887057 --0.721372246742 --0.315085120499 --0.721377760172 --0.297828063369 --0.721385553479 --0.280570998788 --0.721395552158 --0.263313494623 --0.721407771111 --0.246055882424 --0.721422165632 --0.228797722608 --0.721438854933 --0.211539298296 --0.721457734704 --0.194280210882 --0.721468180418 --0.175064995885 --0.704306840896 --0.155845291912 --0.704288139939 --0.138586383313 --0.704271659255 --0.12132778205 --0.704257398844 --0.104069806636 --0.704245269298 --0.0868120137602 --0.704235315323 --0.0695547107607 --0.704227596521 --0.0522974748165 --0.704222068191 --0.0350406127982 --0.704218715429 --0.0177836886141 --0.70421756804 --0.000527010764928 --0.704218611121 -0.0167298486922 --0.704221859574 -0.0339865852148 --0.704227253795 -0.0512436255813 --0.704234883189 -0.0685006668791 --0.704244732857 -0.0857581365854 --0.704256743193 -0.103015726432 --0.704270899296 -0.120273869485 --0.704287305474 -0.13753226772 --0.70430585742 -0.154791332781 --0.704316139221 -0.174006767571 --0.704306811094 -0.193220563233 --0.704288139939 -0.210479468107 --0.704271659255 -0.227738063782 --0.704257383942 -0.244996037334 --0.704245269298 -0.262253828347 --0.704235315323 -0.279511131346 --0.70422758162 -0.296768374741 --0.704222038388 -0.314025238157 --0.704218715429 -0.331282161176 --0.70421756804 -0.348538838327 --0.70421859622 -0.365795694291 --0.704221859575 -0.383052431047 --0.704227268696 -0.400309480726 --0.704234912992 -0.417566522956 --0.704244747758 -0.434823982418 --0.704256758094 -0.452081568539 --0.704270929098 -0.469339713454 --0.704287320376 -0.486598111689 --0.70430585742 -0.503857180476 --0.70431612432 -0.523072615266 --0.704306796193 -0.542286410928 --0.704288154841 -0.559545308352 --0.704271689058 -0.576803922653 --0.70425735414 -0.594061911106 --0.704245224595 -0.611319676042 --0.704235330224 -0.62857696414 --0.704227596521 -0.645834222436 --0.704222038388 -0.663091093302 --0.704218685627 -0.680348023772 --0.704217538237 -0.697604700923 --0.70421859622 -0.714861541986 --0.704221844673 -0.732118293643 --0.704227253795 -0.749375328422 --0.704234912992 -0.766632348299 --0.704244747758 -0.783889830113 --0.704256758094 -0.801147431135 --0.704270914197 -0.818405568599 --0.704287320376 -0.835663959384 --0.704305872321 -0.852923020721 --0.704316139221 -0.872138485313 --0.704306825995 -0.891352280974 --0.704288154841 -0.908611178398 --0.704271659255 -0.925869777799 --0.704257369041 -0.94312773645 --0.704245269298 -0.960385546089 --0.704235330224 -0.977642849088 --0.704227596521 -0.994900062681 --0.704222053289 -1.01215690375 --0.704218685627 -1.02941381931 --0.704217553139 -1.04667052626 --0.704218611121 -1.06392741203 --0.704221844673 -1.08118414879 --0.704227253795 -1.09844118357 --0.704234912992 -1.11569821835 --0.704244732857 -1.13295567036 --0.704256743193 -1.15021327138 --0.704270914197 -1.16747143865 --0.704287320376 -1.18472981453 --0.704305872321 -1.20198887587 --0.704316139221 -1.22120431066 --0.704306811094 -1.24041810632 --0.704288154841 -1.25767704845 --0.704271674156 -1.27493563295 --0.704257369041 -1.2921935916 --0.704245269299 -1.30945140124 --0.704235330224 -1.32670870424 --0.704227596521 -1.34396594763 --0.704222053289 -1.36122280359 --0.704218685627 -1.37847971916 --0.704217538237 -1.39573639631 --0.704218626022 -1.41299325228 --0.704221889377 -1.43024995923 --0.704227268696 -1.44750699401 --0.704234912992 -1.46476405859 --0.704244747758 -1.4820215404 --0.704256772995 -1.49927914143 --0.704270943999 -1.51653727889 --0.704287335277 -1.53379565478 --0.704305872321 -1.55105471611 --0.704316154122 -1.5702701807 --0.704306811094 -1.58948397636 --0.704288125038 -1.60674285889 --0.704271674156 -1.62400147319 --0.704257383943 -1.64125949145 --0.704245254397 -1.65851727128 --0.704235330224 -1.67577454448 --0.704227611422 -1.69303175807 --0.70422205329 -1.71028864384 --0.704218700528 -1.72754558921 --0.704217538237 -1.74480223656 --0.704218581319 -1.76205909252 --0.704221844673 -1.77931582928 --0.704227253795 -1.79657286406 --0.704234912992 -1.81382992864 --0.704244747758 -1.83108741045 --0.704256772995 -1.84834498167 --0.704270929098 -1.86560308933 --0.704287305474 -1.88286149502 --0.70430585742 -1.90012058616 --0.704316154122 -1.91933602094 --0.704306840896 -1.93854981661 --0.704288169742 -1.95580872894 --0.704271674156 -1.97306731344 --0.704257369041 -1.99032527208 --0.704245269298 -2.00758308172 --0.704235345125 -2.02484041452 --0.704227611422 -2.04209762812 --0.70422205329 -2.05935448408 --0.704218715429 -2.07661139965 --0.70421756804 -2.0938680768 --0.70421859622 -2.11112493277 --0.704221844673 -2.12838166952 --0.704227253795 -2.1456387639 --0.704234898091 -2.16289579868 --0.704244732857 -2.1801532507 --0.704256758094 -2.19741082192 --0.704270929098 -2.21466898918 --0.704287320376 -2.23192739487 --0.704305842519 -2.2491863966 --0.70431612432 -2.26840180159 --0.704306811094 -2.28761565685 --0.704288139939 -2.30487459898 --0.704271674156 -2.32213318348 --0.704257383943 -2.33939111232 --0.704245269299 -2.35664886236 --0.704235330224 -2.37390619517 --0.70422758162 -2.39116346836 --0.704222038388 -2.40842032433 --0.704218715429 -2.4256772399 --0.70421756804 -2.44293391705 --0.70421859622 -2.46019083262 --0.704221859574 -2.47744756937 --0.704227268696 -2.49470454454 --0.704234912992 -2.51196163893 --0.704244732857 -2.52921909094 --0.704256743193 -2.54647666216 --0.704270914197 -2.56373482942 --0.704287320376 -2.58099323511 --0.70430585742 -2.59825229645 --0.704316139221 -2.61746770144 --0.704306825995 -2.6366814971 --0.704288125038 -2.65394037962 --0.704271659255 -2.67119902372 --0.704257383943 -2.68845707178 --0.704245269299 -2.70571488142 --0.704235345125 -2.72297215462 --0.704227611422 -2.74022936821 --0.704222068191 -2.75748622418 --0.704218715429 -2.77474313974 --0.704217553139 -2.7919998169 --0.70421859622 -2.80925667286 --0.704221844673 -2.82651335001 --0.704227253795 -2.84377032518 --0.704234898091 -2.86102741957 --0.704244732857 -2.87828493118 --0.704256758094 -2.8955425024 --0.704270914197 -2.91280066967 --0.704287320376 -2.93005907535 --0.704305872321 -2.94731813669 --0.704316154122 -2.96653360128 --0.704306840896 -2.98574739695 --0.704288139939 -3.00300627947 --0.704271659255 -3.02026486397 --0.704257398844 -3.03752285242 --0.704245269298 -3.05478066206 --0.704235315323 -3.07203799486 --0.704227596521 -3.08929520845 --0.704222068191 -3.10655200481 --0.704218715429 -3.12380892038 --0.70421756804 -3.14106562932 --0.704218611121 --3.12486279011 --0.704221859574 --3.10760611296 --0.704227253795 --3.09034913778 --0.704234883189 --3.0730920434 --0.704244732857 --3.05583453178 --0.704256743193 --3.03857696056 --0.704270899296 --3.02131879329 --0.704287305474 --3.00406038761 --0.70430585742 --2.98680132628 --0.704316139221 --2.96758586169 --0.704306811094 --2.94837206602 --0.704288139939 --2.9311131835 --0.704271659255 --2.913854599 --0.704257383942 --2.89659661055 --0.704245269298 --2.8793388009 --0.704235315323 --2.8620814681 --0.70422758162 --2.84482425451 --0.704222038388 --2.82756745815 --0.704218715429 --2.81031054258 --0.70421756804 --2.79305380583 --0.70421859622 --2.77579694986 --0.704221859575 --2.75854021311 --0.704227268696 --2.74128311872 --0.704234912992 --2.72402614355 --0.704244747758 --2.70676869154 --0.704256758094 --2.68951106071 --0.704270929098 --2.67225295305 --0.704287320376 --2.65499454737 --0.70430585742 --2.63773542643 --0.70431612432 --2.61852002144 --0.704306796193 --2.59930622578 --0.704288154841 --2.58204728365 --0.704271689058 --2.56478869915 --0.70425735414 --2.5475307703 --0.704245224595 --2.53027302027 --0.704235330224 --2.51301568746 --0.704227596521 --2.49575841427 --0.704222038388 --2.4785015583 --0.704218685627 --2.46124464273 --0.704217538237 --2.44398796558 --0.70421859622 --2.42673110962 --0.704221844673 --2.40947437286 --0.704227253795 --2.39221733808 --0.704234912992 --2.37496030331 --0.704244747758 --2.3577028513 --0.704256758094 --2.34044522047 --0.704270914197 --2.32318705321 --0.704287320376 --2.30592870713 --0.704305872321 --2.28866964579 --0.704316139221 --2.26945418119 --0.704306825995 --2.25024038553 --0.704288154841 --2.23298150301 --0.704271659255 --2.2157228589 --0.704257369041 --2.19846487045 --0.704245269298 --2.18120706081 --0.704235330224 --2.16394972801 --0.704227596521 --2.14669257402 --0.704222053289 --2.12943571806 --0.704218685627 --2.11217880249 --0.704217553139 --2.09492218494 --0.704218611121 --2.07766526937 --0.704221844673 --2.06040853262 --0.704227253795 --2.04315155745 --0.704234912992 --2.02589446306 --0.704244732857 --2.00863695145 --0.704256743193 --1.99137935042 --0.704270914197 --1.97412121296 --0.704287320376 --1.95686283708 --0.704305872321 --1.93960377574 --0.704316139221 --1.92038834095 --0.704306811094 --1.90117454529 --0.704288154841 --1.88391563296 --0.704271674156 --1.86665701866 --0.704257369041 --1.84939903021 --0.704245269299 --1.83214125037 --0.704235330224 --1.81488397718 --0.704227596521 --1.79762673378 --0.704222053289 --1.78036984801 --0.704218685627 --1.76311290264 --0.704217538237 --1.74585622549 --0.704218626022 --1.72859939933 --0.704221889377 --1.71134269237 --0.704227268696 --1.6940856576 --0.704234912992 --1.67682859302 --0.704244747758 --1.6595711112 --0.704256772995 --1.64231353998 --0.704270943999 --1.62505537272 --0.704287335277 --1.60779696703 --0.704305872321 --1.59053793549 --0.704316154122 --1.5713224709 --0.704306811094 --1.55210864544 --0.704288125038 --1.53484976291 --0.704271674156 --1.51759117842 --0.704257383943 --1.50033321977 --0.704245254397 --1.48307543993 --0.704235330224 --1.46581813693 --0.704227611422 --1.44856089354 --0.70422205329 --1.43130403757 --0.704218700528 --1.414047122 --0.704217538237 --1.39679044485 --0.704218581319 --1.37953358889 --0.704221844673 --1.36227682233 --0.704227253795 --1.34501975775 --0.704234912992 --1.32776272297 --0.704244747758 --1.31050527096 --0.704256772995 --1.29324766993 --0.704270929098 --1.27598953247 --0.704287305474 --1.25873112678 --0.70430585742 --1.24147203565 --0.704316154122 --1.22225663066 --0.704306840896 --1.2030428648 --0.704288169742 --1.18578395247 --0.704271674156 --1.16852533817 --0.704257369041 --1.15126734972 --0.704245269298 --1.13400954008 --0.704235345125 --1.11675223708 --0.704227611422 --1.09949502349 --0.70422205329 --1.08223816752 --0.704218715429 --1.06498122215 --0.70421756804 --1.047724545 --0.70421859622 --1.03046771884 --0.704221844673 --1.01321098208 --0.704227253795 --0.995953932405 --0.704234898091 --0.978696882725 --0.704244732857 --0.961439415813 --0.704256758094 --0.944181829691 --0.704270929098 --0.926923662424 --0.704287320376 --0.90966527164 --0.704305842519 --0.892406225205 --0.70431612432 --0.873190805316 --0.704306811094 --0.853977009654 --0.704288139939 --0.836718112231 --0.704271674156 --0.819459497929 --0.704257383943 --0.802201494574 --0.704245269299 --0.784943714738 --0.704235330224 --0.767686426639 --0.70422758162 --0.750429183245 --0.704222038388 --0.733172312379 --0.704218715429 --0.715915381908 --0.70421756804 --0.698658719659 --0.70421859622 --0.681401848793 --0.704221859574 --0.664145112037 --0.704227268696 --0.646888077259 --0.704234912992 --0.629631012678 --0.704244732857 --0.612373560667 --0.704256743193 --0.595115959644 --0.704270914197 --0.577857807279 --0.704287320376 --0.560599416495 --0.70430585742 --0.543340370059 --0.704316139221 --0.524124935269 --0.704306825995 --0.504911124706 --0.704288125038 --0.487652227283 --0.704271659255 --0.470393627882 --0.704257383943 --0.453135646879 --0.704245269299 --0.435877852142 --0.704235345125 --0.418620556593 --0.704227611422 --0.401363328099 --0.704222068191 --0.384106464684 --0.704218715429 --0.366849541664 --0.704217553139 --0.349592871964 --0.70421859622 --0.332336008548 --0.704221844673 --0.315079256892 --0.704227253795 --0.297822214663 --0.704234898091 --0.280565187335 --0.704244732857 --0.263307712972 --0.704256758094 --0.246050115675 --0.704270914197 --0.228791981935 --0.704287320376 --0.211533587426 --0.704305872321 --0.194274526089 --0.704316154122 --0.1750590913 --0.687192499637 --0.155838996172 --0.687174156308 --0.13858011365 --0.687157973647 --0.121321542189 --0.687143936753 --0.104063589126 --0.687132030726 --0.0868058223277 --0.687122285366 --0.0695485463366 --0.687114685774 --0.0522913327441 --0.68710924685 --0.0350344940089 --0.687105938792 --0.0177775952034 --0.687104806304 --0.000520942732692 --0.687105834484 -0.0167358918115 --0.687109023333 -0.0339926024899 --0.687114343047 -0.051249618642 --0.687121838331 -0.0685066366568 --0.687131494284 -0.0857640802861 --0.687143296003 -0.103021645919 --0.687157213688 -0.120279759169 --0.687173321843 -0.137538127601 --0.687191531062 -0.154797170311 --0.687201634049 -0.174012832344 --0.687192469835 -0.193226855248 --0.687174126506 -0.21048573032 --0.687157943845 -0.227744296193 --0.687143906951 -0.245002247393 --0.687132030726 -0.26226002723 --0.687122285366 -0.279517315328 --0.687114685774 -0.296774528921 --0.68710924685 -0.314031362534 --0.687105953693 -0.331288255751 --0.687104806304 -0.348544903099 --0.687105849385 -0.365801736712 --0.687109068036 -0.383058443666 --0.687114357948 -0.400315463543 --0.687121838331 -0.417572490871 --0.687131494284 -0.434829927981 --0.687143296003 -0.452087499201 --0.687157213688 -0.469345614314 --0.687173336744 -0.486603975296 --0.687191545964 -0.503863029182 --0.687201619148 -0.52307869494 --0.687192454934 -0.542292699218 --0.687174141407 -0.559551566839 --0.687157988548 -0.57681016624 --0.687143921852 -0.59406812489 --0.687132015825 -0.611325860023 --0.687122285366 -0.628583148122 --0.687114685774 -0.645840391517 --0.687109231949 -0.66309723258 --0.687105923891 -0.680354133248 --0.687104791403 -0.697610780596 --0.687105819583 -0.714867591858 --0.687109023333 -0.732124298811 --0.687114343047 -0.74938133359 --0.687121838331 -0.766638338566 --0.687131494284 -0.783895775676 --0.687143296003 -0.801153361797 --0.687157213688 -0.818411484361 --0.687173336744 -0.835669845342 --0.687191545964 -0.852928876877 --0.687201634049 -0.872144550085 --0.687192499637 -0.891358569265 --0.687174171209 -0.908617451787 --0.687157988548 -0.925876021385 --0.687143921852 -0.943133950234 --0.687132030726 -0.960391730071 --0.687122270465 -0.977649003268 --0.687114655971 -0.994906187059 --0.68710924685 -1.01216301322 --0.687105938792 -1.02941992879 --0.687104806304 -1.04667660594 --0.687105834484 -1.0639334321 --0.687109023333 -1.08119013906 --0.687114343047 -1.09844717383 --0.687121838331 -1.11570420861 --0.687131479382 -1.13296166062 --0.687143281102 -1.15021920204 --0.687157213688 -1.1674773097 --0.687173336744 -1.18473568559 --0.687191545964 -1.20199471712 --0.687201619148 -1.22121036053 --0.687192484736 -1.2404243648 --0.687174171209 -1.25768327713 --0.687157958746 -1.27494186163 --0.68714389205 -1.29219982028 --0.687132015825 -1.30945760012 --0.687122285366 -1.32671484351 --0.687114685774 -1.3439720571 --0.68710924685 -1.36122891307 --0.687105938792 -1.37848579883 --0.687104791403 -1.39574244618 --0.687105834484 -1.41299930215 --0.687109053135 -1.4302560091 --0.687114387751 -1.44751298427 --0.687121868133 -1.46476998925 --0.687131494284 -1.48202747107 --0.687143340707 -1.49928507209 --0.687157258391 -1.51654317975 --0.687173336744 -1.53380152583 --0.687191545964 -1.55106058717 --0.687201634049 -1.57027626038 --0.687192484736 -1.58949026465 --0.687174156308 -1.60674914717 --0.687157988548 -1.62400773167 --0.687143921852 -1.64126569033 --0.687132015825 -1.65852344036 --0.687122285366 -1.67578071356 --0.687114655972 -1.69303789735 --0.687109202147 -1.71029475331 --0.687105923891 -1.72755166888 --0.687104791403 -1.74480828643 --0.687105819583 -1.76206511259 --0.687109023333 -1.77932181955 --0.687114372849 -1.79657885432 --0.687121868133 -1.8138358891 --0.687131494284 -1.83109334111 --0.687143310904 -1.84835088253 --0.687157228589 -1.86560899019 --0.687173336744 -1.88286739588 --0.687191545964 -1.90012642741 --0.687201634049 -1.91934207082 --0.687192469835 -1.9385560751 --0.687174141407 -1.95581495762 --0.687157988548 -1.97307354212 --0.687143921852 -1.99033150077 --0.687132030726 -2.00758928061 --0.687122270465 -2.0248465538 --0.687114655971 -2.04210376739 --0.687109231949 -2.05936062336 --0.687105938792 -2.07661747932 --0.687104806304 -2.09387409687 --0.687105819583 -2.11113095283 --0.687109023333 -2.12838768959 --0.687114343047 -2.14564472437 --0.68712182343 -2.16290169954 --0.687131479383 -2.18015915155 --0.687143325806 -2.19741672277 --0.68715724349 -2.21467489004 --0.687173336744 -2.23193329573 --0.687191545964 -2.24919229746 --0.687201619148 -2.26840794086 --0.687192484736 -2.28762197494 --0.687174171209 -2.30488085747 --0.687157958746 -2.32213938236 --0.68714389205 -2.33939731121 --0.687132015825 -2.35665506125 --0.687122285366 -2.37391239405 --0.687114685774 -2.39116960764 --0.687109231949 -2.408426404 --0.687105938792 -2.42568337917 --0.687104806304 -2.44294005632 --0.687105849385 -2.46019685268 --0.687109053135 -2.47745352983 --0.687114372849 -2.49471056461 --0.687121868133 -2.51196759939 --0.687131479382 -2.5292250514 --0.687143281102 -2.54648262262 --0.687157213688 -2.56374073028 --0.687173336744 -2.58099913597 --0.687191545964 -2.5982581377 --0.687201634049 -2.61747372151 --0.687192469835 -2.63668775559 --0.687174126506 -2.65394663811 --0.687157973647 -2.67120522261 --0.687143921852 -2.68846321106 --0.687132015825 -2.7057210207 --0.687122285366 -2.7229782939 --0.687114685774 -2.74023544788 --0.68710924685 -2.75749230385 --0.687105938792 -2.77474921942 --0.687104806304 -2.79200589657 --0.687105864286 -2.80926275253 --0.687109053135 -2.82651942968 --0.687114372849 -2.84377640486 --0.687121853232 -2.86103343964 --0.687131479383 -2.87829089165 --0.687143325806 -2.89554846287 --0.68715724349 -2.91280657053 --0.687173336744 -2.93006491661 --0.687191545964 -2.94732397795 --0.687201634049 -2.96653968096 --0.687192499637 -2.98575371504 --0.687174156308 -3.00301259756 --0.687157973647 -3.02027112246 --0.687143936753 -3.0375290513 --0.687132030726 -3.05478686095 --0.687122285366 -3.07204413414 --0.687114685774 -3.08930134773 --0.68710924685 -3.10655814409 --0.687105938792 -3.12381500006 --0.687104806304 -3.14107170899 --0.687105834484 --3.12485671043 --0.687109023333 --3.10760003328 --0.687114343047 --3.09034305811 --0.687121838331 --3.07308602333 --0.687131494284 --3.05582857132 --0.687143296003 --3.0385710001 --0.687157213688 --3.02131289244 --0.687173321843 --3.00405454635 --0.687191531062 --2.98679548502 --0.687201634049 --2.96757978201 --0.687192469835 --2.94836574793 --0.687174126506 --2.93110686541 --0.687157943845 --2.91384834051 --0.687143906951 --2.89659041166 --0.687132030726 --2.87933260202 --0.687122285366 --2.86207532883 --0.687114685774 --2.84481811523 --0.68710924685 --2.82756131887 --0.687105953693 --2.81030446291 --0.687104806304 --2.79304778576 --0.687105849385 --2.77579092979 --0.687109068036 --2.75853419304 --0.687114357948 --2.74127715826 --0.687121838331 --2.72402018309 --0.687131494284 --2.70676273107 --0.687143296003 --2.68950515985 --0.687157213688 --2.67224705219 --0.687173336744 --2.65498864651 --0.687191545964 --2.63772958517 --0.687201619148 --2.61851394176 --0.687192454934 --2.59929996729 --0.687174141407 --2.58204108477 --0.687157988548 --2.56478244066 --0.687143921852 --2.54752451181 --0.687132015825 --2.53026682138 --0.687122285366 --2.51300948858 --0.687114685774 --2.49575227499 --0.687109231949 --2.47849547863 --0.687105923891 --2.46123850346 --0.687104791403 --2.44398182631 --0.687105819583 --2.42672502995 --0.687109023333 --2.40946835279 --0.687114343047 --2.39221131802 --0.687121838331 --2.37495434284 --0.687131494284 --2.35769695044 --0.687143296003 --2.34043931961 --0.687157213688 --2.32318115235 --0.687173336744 --2.30592280626 --0.687191545964 --2.28866380453 --0.687201634049 --2.26944816113 --0.687192499637 --2.25023412705 --0.687174171209 --2.23297524452 --0.687157988548 --2.21571666002 --0.687143921852 --2.19845873118 --0.687132030726 --2.18120092153 --0.687122270465 --2.16394358873 --0.687114655971 --2.14668643475 --0.68710924685 --2.12942957878 --0.687105938792 --2.11217266321 --0.687104806304 --2.09491604567 --0.687105834484 --2.0776591897 --0.687109023333 --2.06040251255 --0.687114343047 --2.04314553738 --0.687121838331 --2.02588844299 --0.687131479382 --2.00863099098 --0.687143281102 --1.99137344957 --0.687157213688 --1.9741153419 --0.687173336744 --1.95685699582 --0.687191545964 --1.93959793449 --0.687201619148 --1.92038226127 --0.687192484736 --1.901168257 --0.687174171209 --1.88390937447 --0.687157958746 --1.86665078998 --0.68714389205 --1.84939283133 --0.687132015825 --1.83213508129 --0.687122285366 --1.81487780809 --0.687114685774 --1.7976205647 --0.68710924685 --1.78036370873 --0.687105938792 --1.76310682297 --0.687104791403 --1.74585017562 --0.687105834484 --1.72859334946 --0.687109053135 --1.71133667231 --0.687114387751 --1.69407966733 --0.687121868133 --1.67682263255 --0.687131494284 --1.65956518054 --0.687143340707 --1.64230760932 --0.687157258391 --1.62504947185 --0.687173336744 --1.60779109597 --0.687191545964 --1.59053209424 --0.687201634049 --1.57131642103 --0.687192484736 --1.55210235715 --0.687174156308 --1.53484347462 --0.687157988548 --1.51758491993 --0.687143921852 --1.50032699108 --0.687132015825 --1.48306924104 --0.687122285366 --1.46581196785 --0.687114655972 --1.44855475426 --0.687109202147 --1.4312979281 --0.687105923891 --1.41404101253 --0.687104791403 --1.39678433538 --0.687105819583 --1.37952750921 --0.687109023333 --1.36227080226 --0.687114372849 --1.34501376748 --0.687121868133 --1.3277567327 --0.687131494284 --1.31049931049 --0.687143310904 --1.29324176908 --0.687157228589 --1.27598366141 --0.687173336744 --1.25872528553 --0.687191545964 --1.24146622419 --0.687201634049 --1.22225058079 --0.687192469835 --1.20303657651 --0.687174141407 --1.18577769398 --0.687157988548 --1.16851910949 --0.687143921852 --1.15126112104 --0.687132030726 --1.1340033412 --0.687122270465 --1.1167460978 --0.687114655971 --1.09948888421 --0.687109231949 --1.08223202824 --0.687105938792 --1.06497514248 --0.687104806304 --1.04771849513 --0.687105819583 --1.03046166897 --0.687109023333 --1.01320493221 --0.687114343047 --0.995947912335 --0.68712182343 --0.978690907359 --0.687131479383 --0.961433470249 --0.687143325806 --0.94417591393 --0.68715724349 --0.926917776465 --0.687173336744 --0.909659415484 --0.687191545964 --0.892400369048 --0.687201619148 --0.873184710741 --0.687192484736 --0.853970706463 --0.687174171209 --0.83671182394 --0.687157958746 --0.819453254342 --0.68714389205 --0.80219528079 --0.687132015825 --0.784937515855 --0.687122285366 --0.767680257559 --0.687114685774 --0.750423029065 --0.687109231949 --0.733166188002 --0.687105938792 --0.715909287334 --0.687104806304 --0.698652639985 --0.687105849385 --0.681395798922 --0.687109053135 --0.664139106869 --0.687114372849 --0.646882101893 --0.687121868133 --0.629625067115 --0.687131479382 --0.612367615104 --0.687143281102 --0.595110028982 --0.687157213688 --0.57785192132 --0.687173336744 --0.560593545437 --0.687191545964 --0.543334513903 --0.687201634049 --0.524118870497 --0.687192469835 --0.504904843867 --0.687174126506 --0.487645968795 --0.687157973647 --0.470387391746 --0.687143921852 --0.453129425645 --0.687132015825 --0.435871660709 --0.687122285366 --0.418614394963 --0.687114685774 --0.401357188821 --0.68710924685 --0.384100347757 --0.687105938792 --0.366843447089 --0.687104806304 --0.349586799741 --0.687105864286 --0.332329958677 --0.687109053135 --0.315073244274 --0.687114372849 --0.297816224396 --0.687121853232 --0.280559211969 --0.687131479383 --0.263301774859 --0.687143325806 --0.246044203639 --0.68715724349 --0.228786084801 --0.687173336744 --0.211527716368 --0.687191545964 --0.194268677384 --0.687201634049 --0.175053019077 --0.670093148947 --0.15583351627 --0.670075148344 --0.138574648648 --0.670059278607 --0.121316103265 --0.670045495033 --0.104058176279 --0.670033797622 --0.0868004299701 --0.670024245977 --0.069543177262 --0.670016780495 --0.0522859860212 --0.670011430979 --0.0350291682408 --0.670008212328 --0.0177722920198 --0.670007094741 --0.000515661668032 --0.67000810802 -0.0167411516886 --0.670011252165 -0.0339978411794 --0.670016467571 -0.0512548349798 --0.670023813844 -0.0685118287802 --0.670033276081 -0.085769250989 --0.670044869185 -0.103026799858 --0.67005854845 -0.120284890756 --0.670074373484 -0.137543234974 --0.670092225075 -0.154802255332 --0.670102119446 -0.17401811108 --0.670093119144 -0.193232331425 --0.670075118542 -0.210491191596 --0.670059248805 -0.227749738842 --0.670045465231 -0.245007667691 --0.670033827424 -0.26226542145 --0.670024275779 -0.279522679746 --0.670016810298 -0.296779870987 --0.670011460781 -0.314036682248 --0.670008212328 -0.331293560564 --0.670007094741 -0.348550185561 --0.670008122921 -0.365806996823 --0.670011267066 -0.383063688874 --0.670016467571 -0.4003206864 --0.670023813844 -0.417577691376 --0.670033276081 -0.434835106135 --0.670044869185 -0.452092655003 --0.67005854845 -0.469350747764 --0.670074373484 -0.486609086394 --0.670092225075 -0.503868110478 --0.670102119446 -0.523083969951 --0.670093119144 -0.542298182845 --0.670075118542 -0.559557035565 --0.670059278607 -0.576815590262 --0.670045495033 -0.594073519111 --0.670033827424 -0.611331254244 --0.670024275779 -0.628588527441 --0.670016810298 -0.645845741034 --0.670011460781 -0.663102552295 --0.670008212328 -0.680359423161 --0.670007124543 -0.697616055608 --0.670008122921 -0.714872837067 --0.670011237264 -0.732129514218 --0.670016467571 -0.749386534095 --0.670023813844 -0.76664352417 --0.670033276081 -0.783900946378 --0.670044869185 -0.801158502698 --0.67005854845 -0.81841661036 --0.670074373484 -0.835674956441 --0.670092225075 -0.852933973074 --0.670102119446 -0.872149839997 --0.670093148947 -0.891364067793 --0.670075148344 -0.908622920513 --0.670059278607 -0.925881445408 --0.670045495033 -0.943139389157 --0.670033827424 -0.960397124291 --0.670024245977 -0.977654367685 --0.670016780495 -0.994911566377 --0.670011460781 -1.01216837764 --0.670008212328 -1.02942526341 --0.670007124543 -1.04668191076 --0.670008122921 -1.06393870712 --0.670011237264 -1.08119538426 --0.670016467571 -1.09845238924 --0.670023813844 -1.11570939422 --0.670033276081 -1.13296681642 --0.670044869185 -1.15022432804 --0.67005854845 -1.1674824357 --0.670074373484 -1.18474081159 --0.670092225075 -1.20199981332 --0.670102119446 -1.22121563554 --0.670093148947 -1.24042984843 --0.670075148344 -1.25768873096 --0.670059248805 -1.27494728565 --0.670045465231 -1.2922052443 --0.670033827424 -1.30946299434 --0.670024275779 -1.32672020793 --0.670016810298 -1.34397739172 --0.670011460781 -1.36123421788 --0.670008212328 -1.37849110365 --0.670007124543 -1.3957477212 --0.670008122921 -1.41300454736 --0.670011237264 -1.43026125431 --0.670016497373 -1.44751822948 --0.670023873448 -1.46477520466 --0.670033305884 -1.48203262687 --0.670044898987 -1.49929019809 --0.670058578253 -1.51654830575 --0.670074373484 -1.53380665183 --0.670092225075 -1.55106568337 --0.670102119446 -1.57028153539 --0.670093148947 -1.58949574828 --0.670075178146 -1.606754601 --0.670059293508 -1.6240131557 --0.670045480132 -1.64127108455 --0.670033827424 -1.65852883458 --0.670024275779 -1.67578610778 --0.670016780495 -1.69304326177 --0.670011430979 -1.71030008793 --0.670008212328 -1.7275569737 --0.670007124543 -1.74481359124 --0.670008137822 -1.7620703876 --0.670011252165 -1.77932706475 --0.670016497373 -1.79658406973 --0.670023873448 -1.81384107471 --0.670033335686 -1.83109852671 --0.670044898987 -1.84835603833 --0.67005854845 -1.86561411619 --0.670074373484 -1.88287249207 --0.670092225075 -1.90013149381 --0.670102119446 -1.91934737563 --0.670093119144 -1.93856158852 --0.670075148344 -1.95582041144 --0.67005930841 -1.97307896614 --0.670045495033 -1.99033692479 --0.670033827424 -2.00759470463 --0.670024245977 -2.02485191822 --0.670016780495 -2.04210907221 --0.670011460781 -2.05936592818 --0.670008212328 -2.07662278414 --0.670007124543 -2.09387940168 --0.670008122921 -2.11113625765 --0.670011237264 -2.1283929348 --0.670016467571 -2.14564990997 --0.670023813844 -2.16290688515 --0.670033305884 -2.18016433716 --0.670044928789 -2.19742190838 --0.670058578253 -2.21468001604 --0.670074373484 -2.23193836212 --0.670092225075 -2.24919736385 --0.670102119446 -2.26841324568 --0.670093148947 -2.28762745857 --0.670075148344 -2.30488628149 --0.670059248805 -2.32214480638 --0.670045465231 -2.33940273523 --0.670033827424 -2.35666048527 --0.670024275779 -2.37391775847 --0.670016810298 -2.39117497206 --0.670011460781 -2.40843176842 --0.670008212328 -2.42568868399 --0.670007094741 -2.44294536114 --0.670008137822 -2.46020209789 --0.670011281967 -2.47745871544 --0.670016497373 -2.49471575021 --0.670023873448 -2.51197272539 --0.670033305884 -2.5292301774 --0.670044869185 -2.54648774862 --0.67005854845 -2.56374579668 --0.670074373484 -2.58100420237 --0.670092225075 -2.5982632041 --0.670102119446 -2.61747902632 --0.670093119144 -2.63669329882 --0.670075118542 -2.65395212173 --0.670059278607 -2.67121064663 --0.670045495033 -2.68846857548 --0.670033827424 -2.70572632551 --0.670024275779 -2.72298365831 --0.670016810298 -2.7402408123 --0.670011490583 -2.75749760866 --0.670008242131 -2.77475452423 --0.670007094741 -2.79201114178 --0.670008137822 -2.80926799774 --0.670011281967 -2.8265247345 --0.670016497373 -2.84378170967 --0.670023843646 -2.86103868485 --0.670033305884 -2.87829607725 --0.670044928789 -2.89555364847 --0.670058578253 -2.91281175613 --0.670074373484 -2.93007004261 --0.670092225075 -2.94732904434 --0.670102119446 -2.96654492617 --0.670093148947 -2.98575913906 --0.670075148344 -3.00301802158 --0.670059278607 -3.02027654648 --0.670045495033 -3.03753447533 --0.670033797622 -3.05479222536 --0.670024245977 -3.07204943895 --0.670016780495 -3.08930665254 --0.670011430979 -3.10656350851 --0.670008212328 -3.12382036448 --0.670007094741 -3.1410769542 --0.67000810802 --3.12485146522 --0.670011252165 --3.10759472847 --0.670016467571 --3.0903377533 --0.670023813844 --3.07308077812 --0.670033276081 --3.05582338571 --0.670044869185 --3.0385658145 --0.67005854845 --3.02130770683 --0.670074373484 --3.00404942036 --0.670092225075 --2.98679041863 --0.670102119446 --2.9675745368 --0.670093119144 --2.9483603239 --0.670075118542 --2.93110144138 --0.670059248805 --2.91384291649 --0.670045465231 --2.89658498764 --0.670033827424 --2.87932723761 --0.670024275779 --2.86207002401 --0.670016810298 --2.84481281042 --0.670011460781 --2.82755595445 --0.670008212328 --2.81029909849 --0.670007094741 --2.79304248094 --0.670008122921 --2.77578562498 --0.670011267066 --2.75852894783 --0.670016467571 --2.74127197265 --0.670023813844 --2.72401499748 --0.670033276081 --2.70675754547 --0.670044869185 --2.68949997425 --0.67005854845 --2.67224186659 --0.670074373484 --2.65498352051 --0.670092225075 --2.63772451878 --0.670102119446 --2.61850869655 --0.670093119144 --2.59929454326 --0.670075118542 --2.58203566074 --0.670059278607 --2.56477707625 --0.670045495033 --2.5475191474 --0.670033827424 --2.53026139736 --0.670024275779 --2.51300412417 --0.670016810298 --2.49574691057 --0.670011460781 --2.47849011421 --0.670008212328 --2.46123319864 --0.670007124543 --2.44397652149 --0.670008122921 --2.42671978474 --0.670011237264 --2.40946316719 --0.670016467571 --2.39220613241 --0.670023813844 --2.37494915724 --0.670033276081 --2.35769176483 --0.670044869185 --2.34043419361 --0.67005854845 --2.32317608595 --0.670074373484 --2.30591768026 --0.670092225075 --2.28865867853 --0.670102119446 --2.26944285631 --0.670093148947 --2.25022858381 --0.670075148344 --2.2329697609 --0.670059278607 --2.215711236 --0.670045495033 --2.19845324755 --0.670033827424 --2.18119549751 --0.670024245977 --2.16393822432 --0.670016780495 --2.14668101072 --0.670011460781 --2.12942421436 --0.670008212328 --2.1121673584 --0.670007124543 --2.09491074085 --0.670008122921 --2.07765394449 --0.670011237264 --2.06039726734 --0.670016467571 --2.04314029216 --0.670023813844 --2.02588325739 --0.670033276081 --2.00862580538 --0.670044869185 --1.99136829376 --0.67005854845 --1.9741102159 --0.670074373484 --1.95685186982 --0.670092225075 --1.93959283829 --0.670102119446 --1.92037698626 --0.670093148947 --1.90116277337 --0.670075148344 --1.88390392065 --0.670059248805 --1.86664536595 --0.670045465231 --1.8493874371 --0.670033827424 --1.83212968707 --0.670024275779 --1.81487241388 --0.670016810298 --1.79761523008 --0.670011460781 --1.78035840392 --0.670008212328 --1.76310154796 --0.670007124543 --1.74584493041 --0.670008122921 --1.72858810425 --0.670011237264 --1.7113314271 --0.670016497373 --1.69407442212 --0.670023873448 --1.67681741714 --0.670033305884 --1.65955999493 --0.670044898987 --1.64230242372 --0.670058578253 --1.62504431605 --0.670074373484 --1.60778599977 --0.670092225075 --1.59052699805 --0.670102119446 --1.57131111622 --0.670093148947 --1.55209690333 --0.670075178146 --1.5348380506 --0.670059293508 --1.51757949591 --0.670045480132 --1.50032156706 --0.670033827424 --1.48306384682 --0.670024275779 --1.46580660343 --0.670016780495 --1.44854938984 --0.670011430979 --1.43129259348 --0.670008212328 --1.41403570771 --0.670007124543 --1.39677903056 --0.670008137822 --1.3795222342 --0.670011252165 --1.36226555705 --0.670016497373 --1.34500855207 --0.670023873448 --1.3277515471 --0.670033335686 --1.31049412489 --0.670044898987 --1.29323661327 --0.67005854845 --1.27597853541 --0.670074373484 --1.25872018933 --0.670092225075 --1.2414611578 --0.670102119446 --1.22224530578 --0.670093119144 --1.20303109288 --0.670075148344 --1.18577221036 --0.67005930841 --1.16851365566 --0.670045495033 --1.15125572682 --0.670033827424 --1.13399797678 --0.670024245977 --1.11674073338 --0.670016780495 --1.09948354959 --0.670011460781 --1.08222672343 --0.670008212328 --1.06496983767 --0.670007124543 --1.04771322012 --0.670008122921 --1.03045639396 --0.670011237264 --1.013199687 --0.670016467571 --0.995942696928 --0.670023813844 --0.978685691952 --0.670033305884 --0.961428284645 --0.670044928789 --0.944170758128 --0.670058578253 --0.926912665367 --0.670074373484 --0.909654319286 --0.670092225075 --0.892395302653 --0.670102119446 --0.873179450631 --0.670093148947 --0.853965222836 --0.670075148344 --0.836706355214 --0.670059248805 --0.819447815418 --0.670045465231 --0.802189871669 --0.670033827424 --0.784932121634 --0.670024275779 --0.767674878239 --0.670016810298 --0.750417679548 --0.670011460781 --0.733160868287 --0.670008212328 --0.71590398252 --0.670007094741 --0.698647350073 --0.670008137822 --0.681390538812 --0.670011281967 --0.664133861661 --0.670016497373 --0.646876886487 --0.670023873448 --0.629619896412 --0.670033305884 --0.612362444401 --0.670044869185 --0.59510487318 --0.67005854845 --0.577846810222 --0.670074373484 --0.56058844924 --0.670092225075 --0.543329417706 --0.670102119446 --0.524113580585 --0.670093119144 --0.50489936769 --0.670075118542 --0.48764051497 --0.670059278607 --0.470381967723 --0.670045495033 --0.453124031424 --0.670033827424 --0.43586628139 --0.670024275779 --0.418609023094 --0.670016810298 --0.401351846754 --0.670011490583 --0.384095028043 --0.670008242131 --0.366838127375 --0.670007094741 --0.349581502378 --0.670008137822 --0.332324691116 --0.670011281967 --0.315068006515 --0.670016497373 --0.297811016441 --0.670023843646 --0.280554018914 --0.670033305884 --0.263296604156 --0.670044928789 --0.246039055288 --0.670058578253 --0.228780958802 --0.670074373484 --0.211522612721 --0.670092225075 --0.194263588637 --0.670102119446 --0.175047736615 --0.65297627449 --0.155827987939 --0.652958646417 --0.138569146395 --0.652943074703 --0.121310617775 --0.65292955935 --0.104052711278 --0.652918085456 --0.0867949873209 --0.652908682823 --0.0695377569646 --0.652901381254 --0.0522805908695 --0.652896150947 --0.0350237949751 --0.652893006801 --0.0177669394761 --0.652891948819 --0.000510331243278 --0.652892947197 -0.0167464599945 --0.652896001935 -0.0340031282976 --0.652901127934 -0.051260101609 --0.652908354997 -0.068517071195 --0.652917608619 -0.0857744719833 --0.652928963304 -0.103032004088 --0.652942374348 -0.120290080085 --0.652957871556 -0.137548398226 --0.652975395322 -0.154807392508 --0.652985095978 -0.174023445696 --0.65297627449 -0.193237856031 --0.652958646417 -0.210496697575 --0.652943074703 -0.227755226195 --0.65292955935 -0.245013128966 --0.65291814506 -0.262270852923 --0.652908742428 -0.279528088868 --0.652901411057 -0.296785265207 --0.652896180749 -0.314042046666 --0.652893006801 -0.331298902631 --0.652891919017 -0.348555520177 --0.652892902493 -0.365812309086 --0.652895987034 -0.383068978786 --0.652901098132 -0.40032595396 --0.652908325195 -0.417582929134 --0.652917608619 -0.434840328992 --0.652928963304 -0.452097855508 --0.652942374348 -0.469355925917 --0.652957871556 -0.486614242196 --0.652975395322 -0.503873236478 --0.652985095978 -0.523089304566 --0.65297627449 -0.542303726077 --0.652958616614 -0.559562548995 --0.652943044901 -0.576821058989 --0.65292955935 -0.594078958035 --0.652918115258 -0.611336693168 --0.652908712625 -0.628593936562 --0.652901411057 -0.645851105452 --0.652896180749 -0.663107901812 --0.652893006801 -0.680364757776 --0.652891948819 -0.697621375322 --0.652892932296 -0.71487814188 --0.652895987034 -0.73213480413 --0.652901127934 -0.749391794205 --0.652908354997 -0.766648769379 --0.652917608619 -0.783906176686 --0.652928963304 -0.801163703203 --0.652942374348 -0.818421795964 --0.652957871556 -0.835680127144 --0.652975395322 -0.852939113974 --0.652985095978 -0.872155159712 --0.65297627449 -0.891369581223 --0.652958616614 -0.908628404141 --0.652943044901 -0.925886914134 --0.65292955935 -0.943144842982 --0.65291814506 -0.960402563214 --0.652908742428 -0.977659776807 --0.652901411057 -0.994916960596 --0.652896180749 -1.01217380166 --0.652893006801 -1.02943062782 --0.652891948819 -1.04668721556 --0.652892932296 -1.06394401192 --0.652895987034 -1.08120065927 --0.652901127934 -1.09845763445 --0.652908354997 -1.11571460962 --0.652917608619 -1.13297200203 --0.652928963304 -1.15022951364 --0.652942374348 -1.16748759151 --0.652957871556 -1.18474593759 --0.652975395322 -1.20200493932 --0.652985095978 -1.22122097015 --0.65297627449 -1.24043539166 --0.652958646417 -1.25769424439 --0.652943074703 -1.27495276928 --0.65292955935 -1.29221069813 --0.652918115258 -1.30946841836 --0.652908712625 -1.32672563195 --0.652901411057 -1.34398278594 --0.652896180749 -1.3612395823 --0.652893006801 -1.37849646807 --0.652891948819 -1.39575305581 --0.652892932296 -1.41300985217 --0.652895987034 -1.43026652932 --0.652901127934 -1.44752350449 --0.6529083848 -1.46478047967 --0.652917668224 -1.48203787208 --0.652928993106 -1.49929541349 --0.652942374348 -1.51655349135 --0.652957871556 -1.53381180763 --0.652975365519 -1.55107080937 --0.652985066175 -1.57028687 --0.65297627449 -1.58950129151 --0.652958646417 -1.60676011444 --0.652943059802 -1.62401863933 --0.652929544449 -1.64127653837 --0.65291814506 -1.65853425861 --0.652908742428 -1.6757915318 --0.652901411057 -1.69304868579 --0.652896180749 -1.71030545235 --0.652893006801 -1.72756230831 --0.652891948819 -1.74481892586 --0.652892947197 -1.76207572222 --0.652896001935 -1.77933239937 --0.652901098132 -1.79658934474 --0.652908354997 -1.81384631992 --0.652917668223 -1.83110374212 --0.652928993106 -1.84836122394 --0.652942374348 -1.86561927199 --0.652957871556 -1.88287761807 --0.652975395322 -1.90013661981 --0.652985095978 -1.91935271025 --0.65297627449 -1.93856713176 --0.652958676219 -1.95582595467 --0.652943104505 -1.97308447957 --0.65292955935 -1.99034237862 --0.65291814506 -2.00760012865 --0.652908742428 -2.02485734225 --0.652901411057 -2.04211449623 --0.652896180749 -2.05937129259 --0.652893006801 -2.07662814856 --0.652891948819 -2.0938847661 --0.652892932296 -2.11114156246 --0.652895987034 -2.12839823961 --0.652901127934 -2.14565521479 --0.652908354997 -2.16291218996 --0.652917638421 -2.18016958237 --0.652928993106 -2.19742709398 --0.652942374348 -2.21468520165 --0.652957871556 -2.23194348812 --0.652975395322 -2.24920243025 --0.652985095978 -2.26841855049 --0.65297627449 -2.2876329422 --0.652958646417 -2.30489176512 --0.652943074703 -2.32215029001 --0.65292955935 -2.33940815926 --0.652918115258 -2.35666590929 --0.652908712625 -2.37392312288 --0.652901411057 -2.39118033648 --0.652896180749 -2.40843719244 --0.652893006801 -2.42569404841 --0.652891919017 -2.44295066595 --0.652892917395 -2.46020740271 --0.652896001935 -2.47746402025 --0.652901127934 -2.49472099543 --0.6529083848 -2.5119779706 --0.652917638421 -2.52923542261 --0.652928963304 -2.54649293423 --0.652942374348 -2.56375098229 --0.652957871556 -2.58100938797 --0.652975395322 -2.5982683897 --0.652985095978 -2.61748439074 --0.65297627449 -2.63669884205 --0.652958616614 -2.65395766497 --0.652943044901 -2.67121618986 --0.65292955935 -2.68847411871 --0.65291814506 -2.70573180914 --0.652908742428 -2.72298908234 --0.652901411057 -2.74024623633 --0.652896210551 -2.75750297308 --0.652893036604 -2.77475982905 --0.652891919017 -2.79201644659 --0.652892917395 -2.80927330256 --0.652896001935 -2.82652997971 --0.652901127934 -2.84378695488 --0.652908354997 -2.86104393005 --0.652917638421 -2.87830126286 --0.652928993106 -2.89555883408 --0.652942374348 -2.91281694174 --0.652957871556 -2.93007522821 --0.652975395322 -2.94733422995 --0.652985095978 -2.96655029058 --0.65297627449 -2.98576468229 --0.652958646417 -3.00302350521 --0.652943074703 -3.02028203011 --0.65292955935 -3.03753995895 --0.652918085456 -3.05479764938 --0.652908682823 -3.07205486298 --0.652901381254 -3.08931207657 --0.652896150947 -3.10656887293 --0.652893006801 -3.12382572889 --0.652891948819 -3.14108231862 --0.652892947197 --3.12484616041 --0.652896001935 --3.10758948326 --0.652901127934 --3.09033250808 --0.652908354997 --3.07307553291 --0.652917608619 --3.05581820011 --0.652928963304 --3.03856062889 --0.652942374348 --3.02130252123 --0.652957871556 --3.00404423475 --0.652975395322 --2.98678523302 --0.652985095978 --2.96756917238 --0.65297627449 --2.94835478067 --0.652958646417 --2.93109595775 --0.652943074703 --2.91383743286 --0.65292955935 --2.89657950401 --0.65291814506 --2.87932181359 --0.652908742428 --2.86206459999 --0.652901411057 --2.8448073864 --0.652896180749 --2.82755059004 --0.652893006801 --2.81029373407 --0.652891919017 --2.79303711653 --0.652892902493 --2.77578032017 --0.652895987034 --2.75852364302 --0.652901098132 --2.74126666784 --0.652908325195 --2.72400975227 --0.652917608619 --2.70675235987 --0.652928963304 --2.68949478865 --0.652942374348 --2.67223674059 --0.652957871556 --2.65497845411 --0.652975395322 --2.63771945238 --0.652985095978 --2.61850339174 --0.65297627449 --2.59928900003 --0.652958616614 --2.58203017711 --0.652943044901 --2.56477165222 --0.65292955935 --2.54751372338 --0.652918115258 --2.53025597334 --0.652908712625 --2.51299875974 --0.652901411057 --2.49574154615 --0.652896180749 --2.47848469019 --0.652893006801 --2.46122783422 --0.652891948819 --2.44397121668 --0.652892932296 --2.42671447992 --0.652895987034 --2.40945786238 --0.652901127934 --2.3922008872 --0.652908354997 --2.37494391203 --0.652917608619 --2.35768646002 --0.652928963304 --2.3404289484 --0.652942374348 --2.32317090035 --0.652957871556 --2.30591249466 --0.652975395322 --2.28865349293 --0.652985095978 --2.26943749189 --0.65297627449 --2.25022304058 --0.652958616614 --2.23296421767 --0.652943044901 --2.21570569277 --0.65292955935 --2.19844776392 --0.65291814506 --2.18119007349 --0.652908742428 --2.1639328599 --0.652901411057 --2.14667570591 --0.652896180749 --2.12941890955 --0.652893006801 --2.11216205358 --0.652891948819 --2.09490543604 --0.652892932296 --2.07764869928 --0.652895987034 --2.06039202213 --0.652901127934 --2.04313504696 --0.652908354997 --2.02587807178 --0.652917608619 --2.00862061977 --0.652928963304 --1.99136310816 --0.652942374348 --1.9741050303 --0.652957871556 --1.95684671402 --0.652975395322 --1.93958771229 --0.652985095978 --1.92037165165 --0.65297627449 --1.90115723014 --0.652958646417 --1.88389840722 --0.652943074703 --1.86663988233 --0.65292955935 --1.84938195348 --0.652918115258 --1.83212423325 --0.652908712625 --1.81486698985 --0.652901411057 --1.79760983586 --0.652896180749 --1.78035306931 --0.652893006801 --1.76309621334 --0.652891948819 --1.74583959579 --0.652892932296 --1.72858279943 --0.652895987034 --1.71132612228 --0.652901127934 --1.69406914711 --0.6529083848 --1.67681217193 --0.652917668224 --1.65955477953 --0.652928993106 --1.64229723811 --0.652942374348 --1.62503913045 --0.652957871556 --1.60778084398 --0.652975365519 --1.59052187205 --0.652985066175 --1.5713057816 --0.65297627449 --1.55209138989 --0.652958646417 --1.53483256698 --0.652943059802 --1.51757401228 --0.652929544449 --1.50031611324 --0.65291814506 --1.483058393 --0.652908742428 --1.46580117941 --0.652901411057 --1.44854399562 --0.652896180749 --1.43128719926 --0.652893006801 --1.41403034329 --0.652891948819 --1.39677369594 --0.652892947197 --1.37951692939 --0.652896001935 --1.36226028204 --0.652901098132 --1.34500330687 --0.652908354997 --1.32774633169 --0.652917668223 --1.31048890948 --0.652928993106 --1.29323139787 --0.652942374348 --1.27597334981 --0.652957871556 --1.25871500373 --0.652975395322 --1.241456002 --0.652985095978 --1.22223997116 --0.65297627449 --1.20302554965 --0.652958676219 --1.18576669693 --0.652943104505 --1.16850817204 --0.65292955935 --1.15125027299 --0.65291814506 --1.13399255276 --0.652908742428 --1.11673530936 --0.652901411057 --1.09947815537 --0.652896180749 --1.08222138881 --0.652893006801 --1.06496450305 --0.652891948819 --1.0477078855 --0.652892932296 --1.03045108914 --0.652895987034 --1.01319441199 --0.652901127934 --0.995937451719 --0.652908354997 --0.978680461645 --0.652917638421 --0.961423069239 --0.652928993106 --0.944165557623 --0.652942374348 --0.926907479763 --0.652957871556 --0.909649148583 --0.652975395322 --0.892390161753 --0.652985095978 --0.873174116016 --0.65297627449 --0.853959694505 --0.652958646417 --0.836700856685 --0.652943074703 --0.819442331791 --0.65292955935 --0.802184417844 --0.652918115258 --0.784926697612 --0.652908712625 --0.767669469118 --0.652901411057 --0.750412285328 --0.652896180749 --0.733155503869 --0.652893006801 --0.715898647904 --0.652891919017 --0.698642030358 --0.652892917395 --0.681385233999 --0.652896001935 --0.664128571749 --0.652901127934 --0.646871611476 --0.6529083848 --0.629614651203 --0.652917638421 --0.612357228994 --0.652928963304 --0.595099672675 --0.652942374348 --0.577841624618 --0.652957871556 --0.560583293438 --0.652975395322 --0.543324276805 --0.652985095978 --0.524108231068 --0.65297627449 --0.504893839359 --0.652958616614 --0.48763500154 --0.652943044901 --0.470376461744 --0.65292955935 --0.453118555247 --0.65291814506 --0.435860835016 --0.652908742428 --0.418603606522 --0.652901411057 --0.401346445084 --0.652896210551 --0.384089656174 --0.652893036604 --0.366832777858 --0.652891919017 --0.349576167762 --0.652892917395 --0.332319386303 --0.652896001935 --0.315062716603 --0.652901127934 --0.29780574888 --0.652908354997 --0.280548773706 --0.652917638421 --0.263291373849 --0.652928993106 --0.246033847332 --0.652942374348 --0.228775776923 --0.652957871556 --0.211517456919 --0.652975395322 --0.194258458912 --0.652985095978 --0.175042405724 --0.635840222239 --0.15582241118 --0.635822951794 --0.138563595712 --0.635807693005 --0.121305087581 --0.635794460773 --0.104047199711 --0.635783240199 --0.0867894999683 --0.635774016381 --0.0695322938263 --0.635766863823 --0.052275147289 --0.635761752724 --0.0350183723495 --0.635758653283 --0.017761539435 --0.635757610202 --0.000504952855408 --0.635758578777 -0.0167518162634 --0.635761573911 -0.0340084629133 --0.635766640306 -0.0512654148042 --0.635773733258 -0.0685223629698 --0.635782763362 -0.0857797395438 --0.635793879628 -0.103037245572 --0.635807007551 -0.120295304805 --0.635822162032 -0.137553606182 --0.635839357972 -0.154812578112 --0.635848879814 -0.17402882874 --0.635840252041 -0.19324343279 --0.635823011398 -0.210502248258 --0.635807722807 -0.227760754526 --0.635794460773 -0.24501863867 --0.635783270002 -0.262276344001 --0.635774046183 -0.279533557594 --0.635766863823 -0.296790704131 --0.635761752724 -0.314047463238 --0.635758653283 -0.331304296851 --0.635757580399 -0.348560892046 --0.635758548975 -0.365817666054 --0.635761573911 -0.383074313402 --0.635766580701 -0.400331258774 --0.635773673654 -0.417588211596 --0.635782793164 -0.434845596552 --0.635793909431 -0.452103100717 --0.635807037353 -0.469361156225 --0.635822221637 -0.486619450152 --0.635839387774 -0.503878414631 --0.635848879814 -0.523094683885 --0.635840252041 -0.542309299111 --0.635822981596 -0.559568092227 --0.635807693005 -0.576826587319 --0.635794460773 -0.594084486365 --0.635783240199 -0.611342191696 --0.635774016381 -0.628599390388 --0.635766863823 -0.645856544375 --0.635761752724 -0.663113325834 --0.635758653283 -0.680370151997 --0.635757580399 -0.697626754642 --0.635758548975 -0.714883521199 --0.635761603713 -0.732140153646 --0.635766640306 -0.749397113919 --0.635773703456 -0.766654074192 --0.635782793164 -0.783911466598 --0.635793909431 -0.801168978214 --0.635807037353 -0.818427026272 --0.635822221637 -0.835685312748 --0.635839387774 -0.852944284677 --0.635848879814 -0.87216052413 --0.635840252041 -0.891375124455 --0.635822981596 -0.908633947373 --0.635807693005 -0.925892457366 --0.635794460773 -0.943150341511 --0.635783270002 -0.960408046842 --0.635774046183 -0.977665245533 --0.635766863823 -0.99492238462 --0.635761752724 -1.01217919588 --0.635758653283 -1.02943602204 --0.635757580399 -1.04669257998 --0.635758548975 -1.06394934654 --0.635761573911 -1.08120599389 --0.635766610503 -1.09846293926 --0.635773703456 -1.11571988463 --0.635782793164 -1.13297727704 --0.635793909431 -1.15023478866 --0.635807037353 -1.16749283672 --0.635822221637 -1.18475115299 --0.635839387774 -1.20201012492 --0.635848879814 -1.22122636437 --0.635840252041 -1.2404409945 --0.635823011398 -1.25769978762 --0.635807722807 -1.27495828271 --0.635794460773 -1.29221621156 --0.635783240199 -1.30947390199 --0.635774016381 -1.32673108578 --0.635766863823 -1.34398823976 --0.635761752724 -1.36124503612 --0.635758653283 -1.37850186228 --0.635757580399 -1.39575842023 --0.635758548975 -1.41301521659 --0.635761603713 -1.43027186394 --0.635766640306 -1.44752880931 --0.635773703456 -1.46478578448 --0.635782822967 -1.48204317689 --0.635793939233 -1.4993006587 --0.635807007551 -1.51655870676 --0.635822191834 -1.53381699324 --0.635839357972 -1.55107596517 --0.635848850012 -1.57029223442 --0.635840252041 -1.58950683474 --0.635822981596 -1.60676565767 --0.635807693005 -1.62402418256 --0.635794460773 -1.64128205181 --0.635783270002 -1.65853974223 --0.635774046183 -1.67579698563 --0.635766863823 -1.69305410981 --0.635761752724 -1.71031084657 --0.635758653283 -1.72756770253 --0.635757580399 -1.74482432008 --0.635758548975 -1.76208108664 --0.635761603713 -1.77933773398 --0.635766640306 -1.79659467936 --0.635773703456 -1.81385162473 --0.635782793164 -1.83110898733 --0.635793909431 -1.84836646915 --0.635807037353 -1.8656245172 --0.635822221637 -1.88288283348 --0.635839387774 -1.90014183521 --0.635848879814 -1.91935810447 --0.635840222239 -1.93857270479 --0.635822951794 -1.95583152771 --0.635807693005 -1.9730900228 --0.635794460773 -1.99034789205 --0.635783270002 -2.00760558248 --0.635774046183 -2.02486276627 --0.635766863823 -2.04211992025 --0.635761752724 -2.05937665701 --0.635758653283 -2.07663351297 --0.635757580399 -2.09389013052 --0.635758548975 -2.11114686728 --0.635761603713 -2.12840354442 --0.635766640306 -2.1456605196 --0.635773703456 -2.16291749477 --0.635782793164 -2.18017482758 --0.635793909431 -2.19743227959 --0.635807037353 -2.21469038725 --0.635822221637 -2.23194867373 --0.635839387774 -2.24920761585 --0.635848879814 -2.26842391491 --0.635840252041 -2.28763854504 --0.635823011398 -2.30489736796 --0.635807722807 -2.32215583325 --0.635794460773 -2.33941370249 --0.635783240199 -2.35667139292 --0.635774016381 -2.37392860651 --0.635766863823 -2.3911858201 --0.635761752724 -2.40844261646 --0.635758653283 -2.42569941282 --0.635757580399 -2.44295597076 --0.635758548975 -2.46021276712 --0.635761573911 -2.47746938467 --0.635766610503 -2.49472630024 --0.635773703456 -2.51198327541 --0.635782793164 -2.52924072742 --0.635793909431 -2.54649823904 --0.635807037353 -2.5637562871 --0.635822221637 -2.58101463318 --0.635839387774 -2.5982735753 --0.635848879814 -2.61748975515 --0.635840252041 -2.63670438528 --0.635822981596 -2.6539632082 --0.635807693005 -2.67122173309 --0.635794460773 -2.68847966194 --0.635783270002 -2.70573735237 --0.635774046183 -2.72299456596 --0.635766863823 -2.74025166035 --0.635761752724 -2.7575083971 --0.635758653283 -2.77476525307 --0.635757580399 -2.79202187061 --0.635758548975 -2.80927866697 --0.635761603713 -2.82653528452 --0.635766640306 -2.84379225969 --0.635773703456 -2.86104917526 --0.635782793164 -2.87830650806 --0.635793909431 -2.89556407929 --0.635807037353 -2.91282212734 --0.635822221637 -2.93008041382 --0.635839387774 -2.94733941555 --0.635848879814 -2.966555655 --0.635840222239 -2.98577022553 --0.635822951794 -3.00302904845 --0.635807693005 -3.02028757334 --0.635794460773 -3.03754544258 --0.635783240199 -3.05480313301 --0.635774016381 -3.0720603466 --0.635766863823 -3.08931750059 --0.635761752724 -3.10657423735 --0.635758653283 -3.12383109331 --0.635757610202 -3.14108774264 --0.635758578777 --3.124840796 --0.635761573911 --3.10758417845 --0.635766640306 --3.09032720327 --0.635773733258 --3.0730702281 --0.635782763362 --3.0558128953 --0.635793879628 --3.03855538368 --0.635807007551 --3.02129733562 --0.635822162032 --3.00403904915 --0.635839357972 --2.98678004742 --0.635848879814 --2.96756380797 --0.635840252041 --2.94834923744 --0.635823011398 --2.93109041452 --0.635807722807 --2.91383188963 --0.635794460773 --2.89657402038 --0.635783270002 --2.87931632995 --0.635774046183 --2.86205911636 --0.635766863823 --2.84480196238 --0.635761752724 --2.82754522562 --0.635758653283 --2.81028836966 --0.635757580399 --2.79303175211 --0.635758548975 --2.77577501536 --0.635761573911 --2.75851833821 --0.635766580701 --2.74126136303 --0.635773673654 --2.72400444746 --0.635782793164 --2.70674711466 --0.635793909431 --2.68948960304 --0.635807037353 --2.67223155498 --0.635822221637 --2.65497326851 --0.635839387774 --2.63771426678 --0.635848879814 --2.61849796772 --0.635840252041 --2.59928333759 --0.635822981596 --2.58202457428 --0.635807693005 --2.56476610899 --0.635794460773 --2.54750818014 --0.635783240199 --2.53025048971 --0.635774016381 --2.51299333572 --0.635766863823 --2.49573612213 --0.635761752724 --2.47847926617 --0.635758653283 --2.46122246981 --0.635757580399 --2.44396591186 --0.635758548975 --2.42670911551 --0.635761603713 --2.40945249796 --0.635766640306 --2.39219558239 --0.635773703456 --2.37493860722 --0.635782793164 --2.35768115521 --0.635793909431 --2.34042364359 --0.635807037353 --2.32316559553 --0.635822221637 --2.30590730906 --0.635839387774 --2.28864836693 --0.635848879814 --2.26943212748 --0.635840252041 --2.25021749735 --0.635822981596 --2.23295867443 --0.635807693005 --2.21570014954 --0.635794460773 --2.19844228029 --0.635783270002 --2.18118458986 --0.635774046183 --2.16392737627 --0.635766863823 --2.14667028189 --0.635761752724 --2.12941348553 --0.635758653283 --2.11215662956 --0.635757580399 --2.09490001202 --0.635758548975 --2.07764327526 --0.635761573911 --2.06038665772 --0.635766610503 --2.04312968254 --0.635773703456 --2.02587276697 --0.635782793164 --2.00861537457 --0.635793909431 --1.99135783315 --0.635807037353 --1.97409978509 --0.635822221637 --1.95684149861 --0.635839387774 --1.93958252668 --0.635848879814 --1.92036628723 --0.635840252041 --1.90115168691 --0.635823011398 --1.88389286399 --0.635807722807 --1.86663433909 --0.635794460773 --1.84937644005 --0.635783240199 --1.83211874962 --0.635774016381 --1.81486153602 --0.635766863823 --1.79760438204 --0.635761752724 --1.78034764528 --0.635758653283 --1.76309081912 --0.635757580399 --1.74583420158 --0.635758548975 --1.72857743502 --0.635761603713 --1.71132078767 --0.635766640306 --1.6940638423 --0.635773703456 --1.67680689693 --0.635782822967 --1.65954953432 --0.635793939233 --1.6422920227 --0.635807007551 --1.62503394484 --0.635822191834 --1.60777565837 --0.635839357972 --1.59051668644 --0.635848850012 --1.57130041719 --0.635840252041 --1.55208581686 --0.635822981596 --1.53482699394 --0.635807693005 --1.51756846905 --0.635794460773 --1.50031059981 --0.635783270002 --1.48305287957 --0.635774046183 --1.46579566598 --0.635766863823 --1.44853854179 --0.635761752724 --1.43128177523 --0.635758653283 --1.41402491927 --0.635757580399 --1.39676833153 --0.635758548975 --1.37951159477 --0.635761603713 --1.36225494743 --0.635766640306 --1.34499800205 --0.635773703456 --1.32774105668 --0.635782793164 --1.31048366427 --0.635793909431 --1.29322615266 --0.635807037353 --1.2759681046 --0.635822221637 --1.25870978832 --0.635839387774 --1.24145081639 --0.635848879814 --1.22223457694 --0.635840222239 --1.20301994682 --0.635822951794 --1.1857611537 --0.635807693005 --1.16850265861 --0.635794460773 --1.15124475956 --0.635783270002 --1.13398706913 --0.635774046183 --1.11672985554 --0.635766863823 --1.09947270155 --0.635761752724 --1.08221596479 --0.635758653283 --1.06495913863 --0.635757580399 --1.04770252109 --0.635758548975 --1.03044572473 --0.635761603713 --1.01318907738 --0.635766640306 --0.995932146908 --0.635773703456 --0.978675186634 --0.635782793164 --0.961417809129 --0.635793909431 --0.944160297513 --0.635807037353 --0.926902234554 --0.635822221637 --0.909643933177 --0.635839387774 --0.892384976149 --0.635848879814 --0.873168736696 --0.635840252041 --0.85395412147 --0.635823011398 --0.836695298553 --0.635807722807 --0.819436788559 --0.635794460773 --0.802178904414 --0.635783240199 --0.784921213984 --0.635774016381 --0.767664000392 --0.635766863823 --0.750406831503 --0.635761752724 --0.733150064945 --0.635758653283 --0.715893253684 --0.635757580399 --0.69863666594 --0.635758548975 --0.68137986958 --0.635761573911 --0.664123237133 --0.635766610503 --0.646866291762 --0.635773703456 --0.629609331489 --0.635782793164 --0.612351953983 --0.635793909431 --0.595094442367 --0.635807037353 --0.57783639431 --0.635822221637 --0.560578092933 --0.635839387774 --0.543319106102 --0.635848879814 --0.524102851748 --0.635840252041 --0.504888258874 --0.635822981596 --0.487629443407 --0.635807693005 --0.470370925963 --0.635794460773 --0.453113041818 --0.635783270002 --0.435855343938 --0.635774046183 --0.418598145246 --0.635766863823 --0.40134100616 --0.635761752724 --0.384084224701 --0.635758653283 --0.366827376187 --0.635757580399 --0.349570788443 --0.635758548975 --0.332314029336 --0.635761603713 --0.315057389438 --0.635766640306 --0.297800436616 --0.635773703456 --0.280543491244 --0.635782793164 --0.263286113739 --0.635793909431 --0.246028602124 --0.635807037353 --0.228770550341 --0.635822221637 --0.211512252688 --0.635839387774 --0.194253280759 --0.635848879814 --0.175037026405 --0.618704646826 --0.155816007406 --0.618687704206 --0.138557210565 --0.618672788143 --0.121298730373 --0.618659839034 --0.104040872305 --0.61864887178 --0.0867831986398 --0.618639871478 --0.0695260176435 --0.618632867932 --0.0522688962519 --0.618627846241 --0.0350121473893 --0.618624806404 --0.0177553386893 --0.618623748422 --0.000498776789755 --0.618624687195 -0.0167579671834 --0.618627622724 -0.0340145882219 --0.61863258481 -0.0512715140357 --0.618639528751 -0.0685284389183 --0.618648380041 -0.0857857894152 --0.618659287691 -0.103043265641 --0.618672132492 -0.120301296935 --0.618686974049 -0.137559577823 --0.618703827262 -0.154818531126 --0.61871317029 -0.174035008997 --0.61870470643 -0.193249840289 --0.618687793613 -0.21050862968 --0.618672817945 -0.227767109871 --0.618659839034 -0.245024975389 --0.61864887178 -0.262282662094 --0.618639871478 -0.279539845884 --0.618632867932 -0.296796955168 --0.618627846241 -0.314053691924 --0.618624806404 -0.331310503185 --0.618623748422 -0.348567068577 --0.618624687195 -0.365823812783 --0.618627652526 -0.383080430329 --0.61863258481 -0.400337360799 --0.618639498949 -0.41759429127 --0.618648409844 -0.434851638973 --0.618659317494 -0.452109120786 --0.618672162295 -0.469367161393 --0.618687033653 -0.486625425517 --0.618703827262 -0.503884352744 --0.618713140488 -0.523100838065 --0.61870470643 -0.542315676809 --0.61868776381 -0.559574455023 --0.618672788143 -0.576832950115 --0.618659839034 -0.594090819359 --0.61864887178 -0.611348494887 --0.618639871478 -0.628605678678 --0.618632867932 -0.645862817764 --0.618627846241 -0.663119569421 --0.618624806404 -0.68037635088 --0.618623763323 -0.697632923723 --0.618624702096 -0.714889675379 --0.618627682328 -0.732146278024 --0.618632614612 -0.749403193593 --0.618639498949 -0.766660138965 --0.618648409844 -0.78391751647 --0.618659317494 -0.801174998284 --0.618672162295 -0.818433016539 --0.618687033653 -0.835691273212 --0.618703827262 -0.852950230241 --0.618713140488 -0.872166708112 --0.61870470643 -0.891381531954 --0.618687793613 -0.908640339971 --0.618672817945 -0.925898820162 --0.618659839034 -0.943156674505 --0.61864887178 -0.960414350033 --0.618639841676 -0.977671518922 --0.61863283813 -0.994928643109 --0.618627846241 -1.01218539476 --0.618624806404 -1.02944222093 --0.618623748422 -1.04669877887 --0.618624687195 -1.06395548582 --0.618627652526 -1.08121213317 --0.61863258481 -1.09846907854 --0.618639498949 -1.11572599411 --0.618648409844 -1.13298335672 --0.618659317494 -1.15024083853 --0.618672162295 -1.16749885678 --0.618687033653 -1.18475714326 --0.618703857064 -1.20201608538 --0.61871317029 -1.22123256326 --0.61870470643 -1.2404474318 --0.618687793613 -1.25770619511 --0.618672817945 -1.2749646306 --0.618659839034 -1.29222252965 --0.61864887178 -1.30948022008 --0.618639871478 -1.32673737406 --0.618632867932 -1.34399449825 --0.618627846241 -1.36125126481 --0.618624806404 -1.37850806117 --0.618623748422 -1.39576461911 --0.618624716997 -1.41302138567 --0.618627682328 -1.43027797341 --0.61863258481 -1.44753488898 --0.618639528751 -1.46479183435 --0.618648454547 -1.48204919696 --0.618659332395 -1.49930667877 --0.618672132492 -1.51656472683 --0.618687003851 -1.5338229835 --0.618703857064 -1.55108189583 --0.618713140488 -1.5702983737 --0.618704676628 -1.58951321244 --0.618687793613 -1.60677203536 --0.618672817945 -1.62403053045 --0.618659839034 -1.6412883699 --0.61864887178 -1.65854606032 --0.618639841676 -1.67580324411 --0.618632808328 -1.6930603385 --0.618627816438 -1.71031707525 --0.618624806404 -1.72757390141 --0.618623748422 -1.74483048916 --0.618624687195 -1.76208722592 --0.618627652526 -1.77934384346 --0.618632614613 -1.79660078883 --0.618639558554 -1.8138577044 --0.618648439646 -1.83111503721 --0.618659317494 -1.84837251902 --0.618672162295 -1.86563053727 --0.618687033653 -1.88288882375 --0.618703827262 -1.90014779567 --0.618713140488 -1.91936427354 --0.618704676628 -1.93857911229 --0.618687734008 -1.95583790541 --0.618672788143 -1.9730963707 --0.618659839034 -1.99035423994 --0.61864887178 -2.00761190057 --0.618639871478 -2.02486908436 --0.618632867932 -2.04212617874 --0.618627846241 -2.0593829155 --0.618624806404 -2.07663977146 --0.618623748422 -2.09389632941 --0.618624687195 -2.11115306616 --0.618627682328 -2.1284096837 --0.618632614612 -2.14566659927 --0.618639498949 -2.16292351484 --0.618648409844 -2.18018084765 --0.618659317494 -2.19743829966 --0.618672162295 -2.21469634771 --0.618687033653 -2.23195463419 --0.618703827262 -2.24921357632 --0.618713140488 -2.26843011379 --0.61870470643 -2.28764498234 --0.61868776381 -2.30490374565 --0.618672788143 -2.32216221094 --0.618659839034 -2.33942008019 --0.61864887178 -2.35667771101 --0.618639841676 -2.3739349246 --0.61863283813 -2.3911921382 --0.618627846241 -2.40844887495 --0.618624806404 -2.42570561171 --0.618623748422 -2.44296211004 --0.618624687195 -2.4602189064 --0.618627652526 -2.47747552395 --0.61863258481 -2.49473237991 --0.618639528751 -2.51198935509 --0.618648439646 -2.52924674749 --0.618659317494 -2.54650425911 --0.618672162295 -2.56376230717 --0.618687033653 -2.58102053404 --0.618703857064 -2.59827947616 --0.618713140488 -2.61749595403 --0.618704676628 -2.63671076298 --0.61868776381 -2.65396952629 --0.618672788143 -2.67122805119 --0.618659839034 -2.68848592043 --0.61864887178 -2.70574361086 --0.618639871478 -2.72300082445 --0.618632867932 -2.74025791883 --0.618627846241 -2.75751465559 --0.618624806404 -2.77477145195 --0.618623748422 -2.7920280695 --0.618624687195 -2.80928480625 --0.618627682328 -2.8265413642 --0.618632614612 -2.84379833937 --0.618639498949 -2.86105525494 --0.618648409844 -2.87831258774 --0.618659317494 -2.89557009935 --0.618672162295 -2.91282808781 --0.618687033653 -2.93008637428 --0.618703827262 -2.94734537601 --0.618713140488 -2.96656179428 --0.618704646826 -2.98577660322 --0.618687704206 -3.00303542614 --0.618672788143 -3.02029389143 --0.618659839034 -3.03755176067 --0.61864887178 -3.0548094511 --0.618639871478 -3.07206660509 --0.618632867932 -3.08932369947 --0.618627846241 -3.10658043623 --0.618624806404 -3.12383729219 --0.618623748422 -3.14109394153 --0.618624687195 --3.12483465672 --0.618627622724 --3.10757809877 --0.61863258481 --3.0903211236 --0.618639528751 --3.07306414842 --0.618648380041 --3.05580681562 --0.618659287691 --3.03854936361 --0.618672132492 --3.02129137516 --0.618686974049 --3.00403308868 --0.618703827262 --2.98677408696 --0.61871317029 --2.96755766869 --0.61870470643 --2.94834285975 --0.618687793613 --2.93108397722 --0.618672817945 --2.91382551193 --0.618659839034 --2.89656770229 --0.61864887178 --2.87931001186 --0.618639871478 --2.86205285788 --0.618632867932 --2.8447957635 --0.618627846241 --2.82753902674 --0.618624806404 --2.81028217077 --0.618623748422 --2.79302555323 --0.618624687195 --2.77576887607 --0.618627652526 --2.75851225853 --0.61863258481 --2.74125528335 --0.618639498949 --2.72399836778 --0.618648409844 --2.70674103498 --0.618659317494 --2.68948358297 --0.618672162295 --2.67222553491 --0.618687033653 --2.65496724844 --0.618703827262 --2.63770830631 --0.618713140488 --2.61849176884 --0.61870470643 --2.59927690029 --0.61868776381 --2.58201813698 --0.618672788143 --2.56475967169 --0.618659839034 --2.54750180244 --0.61864887178 --2.53024417162 --0.618639871478 --2.51298701763 --0.618632867932 --2.49572980404 --0.618627846241 --2.47847300768 --0.618624806404 --2.46121627093 --0.618623763323 --2.44395977258 --0.618624702096 --2.42670297623 --0.618627682328 --2.40944635868 --0.618632614612 --2.39218950271 --0.618639498949 --2.37493252754 --0.618648409844 --2.35767513514 --0.618659317494 --2.34041768313 --0.618672162295 --2.32315963507 --0.618687033653 --2.3059014082 --0.618703827262 --2.28864246607 --0.618713140488 --2.2694259286 --0.61870470643 --2.25021111965 --0.618687793613 --2.23295235634 --0.618672817945 --2.21569383144 --0.618659839034 --2.1984359622 --0.61864887178 --2.18117827177 --0.618639841676 --2.16392105818 --0.61863283813 --2.1466639638 --0.618627846241 --2.12940722704 --0.618624806404 --2.11215043068 --0.618623748422 --2.09489387274 --0.618624687195 --2.07763713598 --0.618627652526 --2.06038051844 --0.61863258481 --2.04312354326 --0.618639498949 --2.02586662769 --0.618648409844 --2.00860929489 --0.618659317494 --1.99135178327 --0.618672162295 --1.97409376502 --0.618687033653 --1.95683550835 --0.618703857064 --1.93957656622 --0.61871317029 --1.92036011815 --0.61870470643 --1.90114530921 --0.618687793613 --1.88388648629 --0.618672817945 --1.8666279912 --0.618659839034 --1.84937015176 --0.61864887178 --1.83211246132 --0.618639871478 --1.81485524773 --0.618632867932 --1.79759812355 --0.618627846241 --1.78034138679 --0.618624806404 --1.76308459043 --0.618623748422 --1.74582803249 --0.618624716997 --1.72857129574 --0.618627682328 --1.71131467819 --0.61863258481 --1.69405773282 --0.618639528751 --1.67680081725 --0.618648454547 --1.65954348445 --0.618659332395 --1.64228600264 --0.618672132492 --1.62502798438 --0.618687003851 --1.6077696979 --0.618703857064 --1.59051072597 --0.618713140488 --1.57129424811 --0.618704676628 --1.55207940936 --0.618687793613 --1.53482061624 --0.618672817945 --1.51756212115 --0.618659839034 --1.50030425191 --0.61864887178 --1.48304659128 --0.618639841676 --1.46578940749 --0.618632808328 --1.44853228331 --0.618627816438 --1.43127554655 --0.618624806404 --1.41401872039 --0.618623748422 --1.39676216245 --0.618624687195 --1.37950545549 --0.618627652526 --1.36224880814 --0.618632614613 --1.34499189258 --0.618639558554 --1.32773497701 --0.618648439646 --1.3104775846 --0.618659317494 --1.29322010279 --0.618672162295 --1.27596208453 --0.618687033653 --1.25870382786 --0.618703827262 --1.24144488573 --0.618713140488 --1.22222837806 --0.618704676628 --1.20301353931 --0.618687734008 --1.185754776 --0.618672788143 --1.16849628091 --0.618659839034 --1.15123841167 --0.61864887178 --1.13398075104 --0.618639871478 --1.11672356725 --0.618632867932 --1.09946644306 --0.618627846241 --1.08220970631 --0.618624806404 --1.06495290995 --0.618623748422 --1.0476963222 --0.618624687195 --1.03043955565 --0.618627682328 --1.0131829381 --0.618632614612 --0.995926037431 --0.618639498949 --0.978669121862 --0.618648409844 --0.961411759257 --0.618659317494 --0.944154277444 --0.618672162295 --0.926896259188 --0.618687033653 --0.909637987614 --0.618703827262 --0.892379030585 --0.618713140488 --0.873162552714 --0.61870470643 --0.853947713971 --0.61868776381 --0.836688920856 --0.618672788143 --0.819430440664 --0.618659839034 --0.802172586322 --0.61864887178 --0.784914910793 --0.618639841676 --0.767657727003 --0.61863283813 --0.750400587916 --0.618627846241 --0.733143821359 --0.618624806404 --0.715887024999 --0.618623748422 --0.698630467057 --0.618624687195 --0.6813737154 --0.618627652526 --0.664117112756 --0.61863258481 --0.646860197187 --0.618639528751 --0.629603251815 --0.618648439646 --0.612345904112 --0.618659317494 --0.595088437199 --0.618672162295 --0.577830404043 --0.618687033653 --0.560572132468 --0.618703857064 --0.54331317544 --0.618713140488 --0.524096682667 --0.618704676628 --0.504881843924 --0.61868776381 --0.48762306571 --0.618672788143 --0.47036459297 --0.618659839034 --0.453106731177 --0.61864887178 --0.435849048197 --0.618639871478 --0.418591864407 --0.618632867932 --0.401334747672 --0.618627846241 --0.384077988565 --0.618624806404 --0.366821169853 --0.618623748422 --0.349564611912 --0.618624687195 --0.332307875156 --0.618627682328 --0.31505125761 --0.618632614612 --0.29779432714 --0.618639498949 --0.280537411571 --0.618648409844 --0.263280063868 --0.618659317494 --0.246022574604 --0.618672162295 --0.228764545173 --0.618687033653 --0.211506273598 --0.618703827262 --0.19424732402 --0.618713140488 --0.175030846149 --0.601598754525 --0.155809432268 --0.601582214236 --0.13855066523 --0.601567611098 --0.121292209253 --0.60155493021 --0.104034375399 --0.601544201374 --0.0867767259478 --0.601535394788 --0.069519566372 --0.601528540253 --0.0522624738514 --0.60152362287 --0.0350057529286 --0.601520657539 --0.0177489700727 --0.60151964426 --0.000492434715852 --0.601520568132 -0.0167642834131 --0.601523444057 -0.0340208788402 --0.601528257132 -0.0512777781114 --0.60153503716 -0.0685346778482 --0.601543754339 -0.0857920069248 --0.601554438472 -0.103049458936 --0.601567000151 -0.120307458565 --0.601581528783 -0.137565709651 --0.601597994566 -0.154824633151 --0.601607114077 -0.174041345715 --0.60159881413 -0.193256419152 --0.601582244039 -0.210515182465 --0.601567611098 -0.22777363658 --0.60155493021 -0.245031472296 --0.601544201374 -0.262289129198 --0.601535394788 -0.279546290636 --0.601528570056 -0.296803377569 --0.601523652672 -0.314060091973 --0.601520657539 -0.331316880882 --0.60151964426 -0.348573416471 --0.601520568132 -0.365830123425 --0.601523473859 -0.383086718619 --0.601528286934 -0.400343634188 --0.60153503716 -0.417600534856 --0.601543754339 -0.434857845306 --0.601554408669 -0.452115304768 --0.601566970348 -0.469373315573 --0.601581528783 -0.486631557346 --0.601597964764 -0.50389046967 --0.601607084274 -0.52310718596 --0.60159881413 -0.542322263122 --0.601582214236 -0.559581026435 --0.601567581296 -0.576839491725 --0.60155493021 -0.594097316265 --0.601544201374 -0.61135494709 --0.601535394788 -0.628612115979 --0.601528570056 -0.645869240164 --0.601523652672 -0.663125962019 --0.601520657539 -0.680382728577 --0.601519659161 -0.697639256716 --0.601520583033 -0.71489597857 --0.601523473859 -0.732152566314 --0.601528316736 -0.749409452081 --0.601535066962 -0.766666382551 --0.601543754339 -0.783923715353 --0.601554408669 -0.801181152463 --0.601566970348 -0.818439140916 --0.601581528783 -0.83569739759 --0.601597964764 -0.852956354618 --0.601607084274 -0.872173056006 --0.60159881413 -0.891388118267 --0.601582244039 -0.908646896481 --0.601567611098 -0.925905346871 --0.60155493021 -0.943163171411 --0.601544201374 -0.960420817137 --0.601535364985 -0.977677971125 --0.601528540253 -0.994935065508 --0.601523652672 -1.01219180227 --0.601520687341 -1.02944859863 --0.601519674063 -1.04670512676 --0.601520568132 -1.06396180391 --0.601523473859 -1.08121839165 --0.601528316736 -1.09847533703 --0.601535066962 -1.1157322526 --0.601543754339 -1.1329895854 --0.601554438472 -1.15024703741 --0.601567000151 -1.16750502586 --0.601581528783 -1.18476328254 --0.601597994566 -1.20202219486 --0.601607084274 -1.22123891115 --0.601598784327 -1.24045398832 --0.601582244039 -1.25771272182 --0.601567611098 -1.27497115731 --0.60155493021 -1.29222902656 --0.601544201374 -1.30948668718 --0.601535394788 -1.32674384117 --0.601528570056 -1.34400093555 --0.601523652672 -1.36125764251 --0.601520657539 -1.37851443887 --0.60151964426 -1.39577099681 --0.601520597935 -1.41302770376 --0.601523473859 -1.4302842617 --0.601528257132 -1.44754117727 --0.601535066962 -1.46479806304 --0.601543799043 -1.48205536604 --0.601554423571 -1.49931284785 --0.601566970348 -1.51657086611 --0.601581528783 -1.53382909298 --0.601598024368 -1.5510880053 --0.601607084274 -1.57030472159 --0.601598754525 -1.58951979875 --0.601582244039 -1.60677859187 --0.601567611098 -1.62403705716 --0.601554900408 -1.6412948668 --0.601544171572 -1.65855252743 --0.601535364985 -1.67580968142 --0.601528480649 -1.6930667758 --0.601523593068 -1.71032351256 --0.601520657539 -1.72758027911 --0.60151964426 -1.74483680725 --0.601520568132 -1.76209354401 --0.601523414254 -1.77935013175 --0.601528257132 -1.79660701752 --0.601535096765 -1.81386393309 --0.601543784142 -1.83112126589 --0.601554408669 -1.8483787179 --0.601566970348 -1.86563670635 --0.601581528783 -1.88289496303 --0.601597964764 -1.90015387535 --0.601607084274 -1.91937059164 --0.60159881413 -1.9385856986 --0.601582244039 -1.95584446192 --0.601567611098 -1.97310289741 --0.60155493021 -1.99036073685 --0.601544231176 -2.00761839747 --0.60153542459 -2.02487558126 --0.601528570056 -2.04213267565 --0.601523652672 -2.0593894124 --0.601520657539 -2.07664620876 --0.60151964426 -2.0939027071 --0.601520568132 -2.11115944386 --0.601523473859 -2.1284160614 --0.601528286934 -2.14567291737 --0.60153503716 -2.16292977333 --0.601543754339 -2.18018710613 --0.601554438472 -2.19744455814 --0.601567000151 -2.2147025466 --0.601581528783 -2.23196077347 --0.601597964764 -2.2492197156 --0.601607084274 -2.26843649149 --0.60159881413 -2.28765153885 --0.601582214236 -2.30491030216 --0.601567581296 -2.32216876745 --0.60155493021 -2.33942657709 --0.601544201374 -2.35668420792 --0.601535364985 -2.3739413619 --0.601528540253 -2.39119851589 --0.601523652672 -2.40845525265 --0.601520657539 -2.4257119894 --0.60151964426 -2.44296848774 --0.601520568132 -2.4602252245 --0.601523473859 -2.47748184204 --0.601528316736 -2.49473869801 --0.601535096765 -2.51199561358 --0.601543784142 -2.52925294638 --0.601554408669 -2.54651039839 --0.601566970348 -2.56376844645 --0.601581528783 -2.58102661372 --0.601597994566 -2.59828555584 --0.601607054472 -2.61750233173 --0.601598754525 -2.63671731949 --0.601582214236 -2.6539760828 --0.601567581296 -2.6712346077 --0.60155493021 -2.68849241734 --0.601544201374 -2.70575004816 --0.601535394788 -2.72300720215 --0.601528540253 -2.74026429653 --0.60152362287 -2.75752103329 --0.601520657539 -2.77477782965 --0.60151964426 -2.79203438759 --0.601520568132 -2.80929106474 --0.601523473859 -2.82654762268 --0.601528286934 -2.84380459786 --0.60153503716 -2.86106151343 --0.601543754339 -2.87831878662 --0.601554408669 -2.89557623863 --0.601566970348 -2.91283422709 --0.601581528783 -2.93009251356 --0.601597964764 -2.94735145569 --0.601607054472 -2.96656811237 --0.601598754525 -2.98578321934 --0.601582214236 -3.00304198265 --0.601567611098 -3.02030038834 --0.60155493021 -3.03755825758 --0.601544201374 -3.05481594801 --0.601535394788 -3.072073102 --0.601528540253 -3.08933013678 --0.60152362287 -3.10658681393 --0.601520657539 -3.12384366989 --0.60151964426 -3.14110025962 --0.601520568132 --3.12482839823 --0.601523444057 --3.10757184029 --0.601528257132 --3.09031486511 --0.60153503716 --3.07305794954 --0.601543754339 --3.05580067635 --0.601554438472 --3.03854322434 --0.601567000151 --3.02128523588 --0.601581528783 --3.00402694941 --0.601597994566 --2.98676800728 --0.601607114077 --2.96755135059 --0.60159881413 --2.94833624363 --0.601582244039 --2.93107742071 --0.601567611098 --2.91381901503 --0.60155493021 --2.89656120539 --0.601544201374 --2.87930351496 --0.601535394788 --2.86204636097 --0.601528570056 --2.84478932619 --0.601523652672 --2.82753258943 --0.601520657539 --2.81027573347 --0.60151964426 --2.79301917553 --0.601520568132 --2.77576249838 --0.601523473859 --2.75850594044 --0.601528286934 --2.74124902487 --0.60153503716 --2.7239921093 --0.601543754339 --2.7067347765 --0.601554408669 --2.68947732449 --0.601566970348 --2.67221933603 --0.601581528783 --2.65496110916 --0.601597964764 --2.63770222664 --0.601607084274 --2.61848545075 --0.60159881413 --2.59927034378 --0.601582214236 --2.58201158047 --0.601567581296 --2.56475311518 --0.60155493021 --2.54749530554 --0.601544201374 --2.53023767471 --0.601535394788 --2.51298052073 --0.601528570056 --2.49572336674 --0.601523652672 --2.47846662998 --0.601520657539 --2.46120989322 --0.601519659161 --2.44395339489 --0.601520583033 --2.42669665813 --0.601523473859 --2.40944004059 --0.601528316736 --2.39218318462 --0.601535066962 --2.37492626905 --0.601543754339 --2.35766893625 --0.601554408669 --2.34041154385 --0.601566970348 --2.32315355539 --0.601581528783 --2.30589526892 --0.601597964764 --2.28863626719 --0.601607084274 --2.2694195509 --0.60159881413 --2.25020456314 --0.601582244039 --2.23294579983 --0.601567611098 --2.21568727493 --0.60155493021 --2.19842946529 --0.601544201374 --2.18117183447 --0.601535364985 --2.16391468048 --0.601528540253 --2.1466575861 --0.601523652672 --2.12940084934 --0.601520687341 --2.11214411259 --0.601519674063 --2.09488761425 --0.601520568132 --2.07763087749 --0.601523473859 --2.06037425995 --0.601528316736 --2.04311734438 --0.601535066962 --2.02586042881 --0.601543754339 --2.00860309601 --0.601554438472 --1.991345644 --0.601567000151 --1.97408762574 --0.601581528783 --1.95682936907 --0.601597994566 --1.93957045674 --0.601607084274 --1.92035377026 --0.601598784327 --1.9011387229 --0.601582244039 --1.88387992978 --0.601567611098 --1.86662146449 --0.60155493021 --1.84936365485 --0.601544201374 --1.83210599422 --0.601535394788 --1.81484881044 --0.601528570056 --1.79759171605 --0.601523652672 --1.7803349793 --0.601520657539 --1.76307821274 --0.60151964426 --1.7458217144 --0.601520597935 --1.72856497764 --0.601523473859 --1.7113083601 --0.601528257132 --1.69405147433 --0.601535066962 --1.67679458856 --0.601543799043 --1.65953725576 --0.601554423571 --1.64227980375 --0.601566970348 --1.6250218153 --0.601581528783 --1.60776355863 --0.601598024368 --1.5905046165 --0.601607084274 --1.57128790021 --0.601598754525 --1.55207282305 --0.601582244039 --1.53481405973 --0.601567611098 --1.51755562424 --0.601554900408 --1.5002977848 --0.601544171572 --1.48304012417 --0.601535364985 --1.46578297019 --0.601528480649 --1.44852587581 --0.601523593068 --1.43126916886 --0.601520657539 --1.4140123725 --0.60151964426 --1.39675581455 --0.601520568132 --1.3794991374 --0.601523414254 --1.36224254965 --0.601528257132 --1.34498563409 --0.601535096765 --1.32772871852 --0.601543784142 --1.31047135591 --0.601554408669 --1.2932139039 --0.601566970348 --1.27595591545 --0.601581528783 --1.25869768858 --0.601597964764 --1.24143877625 --0.601607084274 --1.22222203016 --0.60159881413 --1.2030069828 --0.601582244039 --1.18574824929 --0.601567611098 --1.1684897542 --0.60155493021 --1.15123188496 --0.601544231176 --1.13397425413 --0.60153542459 --1.11671712995 --0.601528570056 --1.09946003556 --0.601523652672 --1.08220329881 --0.601520657539 --1.06494653225 --0.60151964426 --1.04769000411 --0.601520568132 --1.03043326735 --0.601523473859 --1.01317664981 --0.601528286934 --0.99591976404 --0.60153503716 --0.978662878275 --0.601543754339 --0.961405530572 --0.601554438472 --0.944148093462 --0.601567000151 --0.92689011991 --0.601581528783 --0.909631878138 --0.601597964764 --0.892372921109 --0.601607084274 --0.873156189918 --0.60159881413 --0.853941142559 --0.601582214236 --0.836682379246 --0.601567581296 --0.819423913955 --0.60155493021 --0.802166089415 --0.601544201374 --0.784908428788 --0.601535364985 --0.7676512748 --0.601528540253 --0.750394180417 --0.601523652672 --0.733137443662 --0.601520657539 --0.715880662203 --0.60151964426 --0.698624104262 --0.601520568132 --0.681367397308 --0.601523473859 --0.664110824466 --0.601528316736 --0.646853908897 --0.601535096765 --0.629597008228 --0.601543784142 --0.612339690328 --0.601554408669 --0.595082238317 --0.601566970348 --0.577824234963 --0.601581528783 --0.560566008091 --0.601597994566 --0.543307080865 --0.601607054472 --0.524090334773 --0.601598754525 --0.504875265062 --0.601582214236 --0.4876165241 --0.601567581296 --0.470358073712 --0.60155493021 --0.45310022682 --0.601544201374 --0.435842566192 --0.601535394788 --0.418585412204 --0.601528540253 --0.401328325271 --0.60152362287 --0.384071603417 --0.601520657539 --0.366814814508 --0.60151964426 --0.349558278918 --0.601520568132 --0.332301564515 --0.601523473859 --0.31504496187 --0.601528286934 --0.297788061202 --0.60153503716 --0.280531175435 --0.601543754339 --0.263273850084 --0.601554408669 --0.246016386896 --0.601566970348 --0.228758387268 --0.601581528783 --0.21150014177 --0.601597964764 --0.194241214544 --0.601607054472 --0.17502450198 --0.584503859281 --0.155803464353 --0.584487721324 --0.138544719667 --0.584473446011 --0.121286287904 --0.584461063146 --0.104028480127 --0.584450557828 --0.0867708493024 --0.584441944957 --0.0695137130096 --0.584435239434 --0.0522566447034 --0.584430426359 --0.0349999470636 --0.584427535534 --0.0177431893535 --0.584426537156 --0.000486677046865 --0.584427446127 -0.016770017799 --0.584430277348 -0.0340265906416 --0.584434956312 -0.0512834666297 --0.584441572427 -0.0685403412208 --0.584450095892 -0.0857976470143 --0.584460541606 -0.103055074811 --0.584472835064 -0.120313053951 --0.584487050771 -0.13757128641 --0.584503114223 -0.154830180108 --0.584511980414 -0.174047101289 --0.584503889084 -0.193262390792 --0.584487721324 -0.210521131754 --0.584473416209 -0.227779563516 --0.584461033344 -0.245037376881 --0.584450557828 -0.262295000255 --0.584441915154 -0.279552131891 --0.584435239434 -0.296809203923 --0.584430456161 -0.314065903425 --0.584427535534 -0.331322669983 --0.584426566959 -0.34857917577 --0.58442747593 -0.365835860372 --0.584430277348 -0.383092433214 --0.584434971213 -0.40034931153 --0.584441617131 -0.417606197297 --0.584450125694 -0.434863500297 --0.584460511804 -0.452120929956 --0.584472805262 -0.469378910959 --0.584487050771 -0.48663713038 --0.584503114223 -0.503896027804 --0.584511980414 -0.523112952709 --0.584503889084 -0.542328238487 --0.584487721324 -0.5595869869 --0.584473416209 -0.576845422387 --0.584461033344 -0.594103232026 --0.584450557828 -0.611360833049 --0.584441915154 -0.628617957234 --0.584435239434 -0.645875051618 --0.584430456161 -0.663131773472 --0.584427535534 -0.680388540029 --0.584426537156 -0.697645023465 --0.584427446127 -0.714901715517 --0.584430277348 -0.73215828836 --0.584435001016 -0.749415144324 --0.584441646933 -0.766672030091 --0.584450125694 -0.783929347992 --0.584460511804 -0.801186770201 --0.584472805262 -0.818444728851 --0.584487050771 -0.835702970624 --0.584503114223 -0.85296189785 --0.584511980414 -0.872178822756 --0.584503889084 -0.891394093632 --0.584487721324 -0.908652827144 --0.584473446011 -0.925911262632 --0.584461033344 -0.94316907227 --0.584450528026 -0.960426703095 --0.584441944957 -0.977683842182 --0.584435269236 -0.994940906763 --0.584430456161 -1.01219761372 --0.584427565336 -1.02945438028 --0.584426566958 -1.04671087861 --0.584427446127 -1.06396755576 --0.584430277348 -1.0812241137 --0.584434986114 -1.09848099947 --0.584441632032 -1.11573788523 --0.584450125694 -1.13299518823 --0.584460541606 -1.15025264025 --0.584472835064 -1.1675106287 --0.584487050771 -1.18476885557 --0.584503114223 -1.20202773809 --0.584511950612 -1.221244663 --0.584503859281 -1.24045994878 --0.584487721324 -1.25771865248 --0.584473416209 -1.27497708797 --0.584461033344 -1.29223492742 --0.584450557828 -1.30949255824 --0.584441915154 -1.32674971223 --0.584435239434 -1.34400677681 --0.584430456161 -1.36126345396 --0.584427535534 -1.37852022052 --0.584426537156 -1.39577674866 --0.584427446127 -1.41303342581 --0.584430277348 -1.43028998375 --0.584434971213 -1.44754689932 --0.584441617131 -1.46480375528 --0.584450125694 -1.48206102848 --0.584460511804 -1.49931845069 --0.584472805262 -1.51657643914 --0.584487050771 -1.53383466601 --0.584503144026 -1.55109357834 --0.584511980414 -1.57031050324 --0.584503859281 -1.58952575922 --0.584487721324 -1.60678452253 --0.584473416209 -1.62404298782 --0.584461003542 -1.64130079746 --0.584450528026 -1.65855839848 --0.584441915154 -1.67581552267 --0.584435209632 -1.69307261706 --0.584430426359 -1.71032932401 --0.584427535534 -1.72758606076 --0.584426566959 -1.7448425591 --0.58442747593 -1.76209926605 --0.584430247545 -1.77935582399 --0.584434956312 -1.79661267996 --0.584441632032 -1.81386956572 --0.584450125694 -1.83112689852 --0.584460511804 -1.84838435054 --0.584472820163 -1.86564230919 --0.584487065673 -1.88290053606 --0.584503114223 -1.90015941858 --0.584511980414 -1.91937634348 --0.584503889084 -1.93859165907 --0.584487721324 -1.95585039258 --0.584473416209 -1.97310879826 --0.584461033344 -1.9903666079 --0.58445058763 -2.00762423873 --0.584441944957 -2.02488136291 --0.584435239434 -2.0421384573 --0.584430456161 -2.05939519405 --0.584427535534 -2.07665193081 --0.584426566959 -2.09390842915 --0.58442747593 -2.1111651659 --0.584430277348 -2.12842172384 --0.584434956312 -2.14567857981 --0.584441572427 -2.16293543577 --0.584450095892 -2.18019270897 --0.584460541606 -2.19745016098 --0.584472835064 -2.21470814944 --0.584487050771 -2.23196637631 --0.584503114223 -2.24922531843 --0.584511980414 -2.26844227314 --0.584503889084 -2.28765749931 --0.584487721324 -2.30491620302 --0.584473446011 -2.32217460871 --0.584461063146 -2.33943241835 --0.584450557828 -2.35669010878 --0.584441915154 -2.37394726276 --0.584435239434 -2.39120429754 --0.584430456161 -2.4084609747 --0.584427535534 -2.42571777105 --0.584426537156 -2.44297426939 --0.584427446127 -2.46023094654 --0.584430277348 -2.47748756409 --0.584434986114 -2.49474442005 --0.584441632032 -2.51200127602 --0.584450125694 -2.52925860882 --0.584460511804 -2.54651600122 --0.584472805262 -2.56377398968 --0.584487050771 -2.58103221655 --0.584503114223 -2.59829109907 --0.584511950612 -2.61750805378 --0.584503859281 -2.63672333956 --0.584487721324 -2.65398210287 --0.584473416209 -2.67124056816 --0.584461033344 -2.6884983778 --0.584450557828 -2.70575594902 --0.584441915154 -2.7230130434 --0.584435209632 -2.74027013779 --0.584430426359 -2.75752687454 --0.584427535534 -2.7747836709 --0.584426566959 -2.79204010964 --0.58442747593 -2.80929672718 --0.584430277348 -2.82655334473 --0.584434956312 -2.8438102603 --0.58444160223 -2.86106711626 --0.584450125694 -2.87832438946 --0.584460511804 -2.89558184147 --0.584472805262 -2.91283982992 --0.584487050771 -2.93009805679 --0.584503114223 -2.94735699892 --0.584511950612 -2.96657389402 --0.584503859281 -2.9857891798 --0.584487721324 -3.00304794312 --0.584473446011 -3.0203063488 --0.584461063146 -3.03756415844 --0.584450557828 -3.05482178927 --0.584441944957 -3.07207894325 --0.584435239434 -3.08933597803 --0.584430426359 -3.10659265518 --0.584427535534 -3.12384945154 --0.584426537156 -3.14110598166 --0.584427446127 --3.12482267618 --0.584430277348 --3.10756611824 --0.584434956312 --3.09030914307 --0.584441572427 --3.0730522871 --0.584450095892 --3.05579507351 --0.584460541606 --3.0385376215 --0.584472835064 --3.02127957344 --0.584487050771 --3.00402134657 --0.584503114223 --2.98676246405 --0.584511980414 --2.96754556894 --0.584503889084 --2.94833028316 --0.584487721324 --2.93107151985 --0.584473416209 --2.91381311417 --0.584461033344 --2.89655530453 --0.584450557828 --2.8792976737 --0.584441915154 --2.86204051971 --0.584435239434 --2.84478348493 --0.584430456161 --2.82752674818 --0.584427535534 --2.81026995182 --0.584426566959 --2.79301345348 --0.58442747593 --2.77575671673 --0.584430277348 --2.75850021839 --0.584434971213 --2.74124336243 --0.584441617131 --2.72398644686 --0.584450125694 --2.70672917366 --0.584460511804 --2.68947172165 --0.584472805262 --2.67221373319 --0.584487050771 --2.65495556593 --0.584503114223 --2.63769668341 --0.584511980414 --2.6184796691 --0.584503889084 --2.59926438332 --0.584487721324 --2.58200567961 --0.584473416209 --2.56474727392 --0.584461033344 --2.54748946428 --0.584450557828 --2.53023177385 --0.584441915154 --2.51297467947 --0.584435239434 --2.49571764469 --0.584430456161 --2.47846090793 --0.584427535534 --2.46120411157 --0.584426537156 --2.44394761324 --0.584427446127 --2.42669093609 --0.584430277348 --2.40943431854 --0.584435001016 --2.39217746258 --0.584441646933 --2.37492060661 --0.584450125694 --2.35766327381 --0.584460511804 --2.34040588141 --0.584472805262 --2.32314795255 --0.584487050771 --2.30588966608 --0.584503114223 --2.28863072395 --0.584511980414 --2.26941382885 --0.584503889084 --2.25019860268 --0.584487721324 --2.23293983936 --0.584473446011 --2.21568131447 --0.584461033344 --2.19842350483 --0.584450528026 --2.18116593361 --0.584441944957 --2.16390883923 --0.584435269236 --2.14665174484 --0.584430456161 --2.12939506769 --0.584427565336 --2.11213833094 --0.584426566958 --2.0948818326 --0.584427446127 --2.07762515545 --0.584430277348 --2.0603685379 --0.584434986114 --2.04311168194 --0.584441632032 --2.02585482597 --0.584450125694 --2.00859749317 --0.584460541606 --1.99134007096 --0.584472835064 --1.97408205271 --0.584487050771 --1.95682379603 --0.584503114223 --1.93956491351 --0.584511950612 --1.92034801841 --0.584503859281 --1.90113276243 --0.584487721324 --1.88387399912 --0.584473416209 --1.86661553383 --0.584461033344 --1.84935772419 --0.584450557828 --1.83210009336 --0.584441915154 --1.81484296918 --0.584435239434 --1.7975859046 --0.584430456161 --1.78032919764 --0.584427535534 --1.76307246089 --0.584426537156 --1.74581596255 --0.584427446127 --1.7285592556 --0.584430277348 --1.71130266786 --0.584434971213 --1.69404581189 --0.584441617131 --1.67678892612 --0.584450125694 --1.65953159332 --0.584460511804 --1.64227417111 --0.584472805262 --1.62501621246 --0.584487050771 --1.60775798559 --0.584503144026 --1.59049907327 --0.584511980414 --1.57128214836 --0.584503859281 --1.55206686258 --0.584487721324 --1.53480812907 --0.584473416209 --1.51754972339 --0.584461003542 --1.50029191374 --0.584450528026 --1.48303425312 --0.584441915154 --1.46577709913 --0.584435209632 --1.44852006436 --0.584430426359 --1.43126338721 --0.584427535534 --1.41400659085 --0.584426566959 --1.3967500627 --0.58442747593 --1.37949338555 --0.584430247545 --1.36223682761 --0.584434956312 --1.34497994184 --0.584441632032 --1.32772305607 --0.584450125694 --1.31046575308 --0.584460511804 --1.29320830107 --0.584472820163 --1.27595031262 --0.584487065673 --1.25869211555 --0.584503114223 --1.24143323302 --0.584511980414 --1.22221627831 --0.584503889084 --1.20300099254 --0.584487721324 --1.18574228882 --0.584473416209 --1.16848385334 --0.584461033344 --1.15122601389 --0.58445058763 --1.13396838307 --0.584441944957 --1.11671125889 --0.584435239434 --1.09945419431 --0.584430456161 --1.08219748736 --0.584427535534 --1.0649407506 --0.584426566959 --1.04768425226 --0.58442747593 --1.03042754531 --0.584430277348 --1.01317095756 --0.584434956312 --0.995914056897 --0.584441572427 --0.978657200933 --0.584450095892 --0.961399912834 --0.584460541606 --0.944142490625 --0.584472835064 --0.926884517074 --0.584487050771 --0.909626290202 --0.584503114223 --0.892367377877 --0.584511980414 --0.87315043807 --0.584503889084 --0.853935167193 --0.584487721324 --0.836676433682 --0.584473446011 --0.819417998195 --0.584461063146 --0.802160188555 --0.584450557828 --0.78490254283 --0.584441915154 --0.767645403743 --0.584435239434 --0.750388354063 --0.584430456161 --0.73313164711 --0.584427535534 --0.715874880552 --0.584426537156 --0.698618352413 --0.584427446127 --0.681361660361 --0.584430277348 --0.66410510242 --0.584434986114 --0.646848201752 --0.584441632032 --0.629591345787 --0.584450125694 --0.612334057689 --0.584460511804 --0.595076620579 --0.584472805262 --0.577818647027 --0.584487050771 --0.560560435057 --0.584503114223 --0.543301537633 --0.584511950612 --0.524084582925 --0.584503859281 --0.504869297147 --0.584487721324 --0.487610578537 --0.584473416209 --0.470352143049 --0.584461033344 --0.45309432596 --0.584450557828 --0.435836695135 --0.584441915154 --0.418579563498 --0.584435209632 --0.401322498917 --0.584430426359 --0.384065799415 --0.584427535534 --0.366809047759 --0.584426566959 --0.349552534521 --0.58442747593 --0.332295835018 --0.584430277348 --0.315039254725 --0.584434956312 --0.297782376409 --0.58444160223 --0.280525512993 --0.584450125694 --0.263268202543 --0.584460511804 --0.246010765433 --0.584472805262 --0.228752795607 --0.584487050771 --0.21149457246 --0.584503114223 --0.194235667586 --0.584511950612 --0.175018742681 --0.567391619086 --0.15579744801 --0.567375838756 --0.138538721949 --0.567361906171 --0.121280316263 --0.567349806428 --0.104022534564 --0.567339524627 --0.0867649242282 --0.567331135273 --0.0695078140125 --0.567324623465 --0.0522507699206 --0.567319914698 --0.0349940946326 --0.567317083478 --0.0177373597398 --0.567316114902 --0.000480871181938 --0.567317008972 -0.0167757994495 --0.567319765687 -0.0340323476121 --0.567324340343 -0.0512892007828 --0.567330777645 -0.0685460530221 --0.567339062691 -0.0858033336699 --0.567349284887 -0.103060737252 --0.567361310124 -0.120318695903 --0.567375198006 -0.137576907873 --0.567390903831 -0.154835782945 --0.567399546504 -0.174052916467 --0.567391619086 -0.193268407136 --0.567375838756 -0.210527125746 --0.567361876368 -0.227785538882 --0.567349776626 -0.245043329895 --0.567339554429 -0.262300930918 --0.567331135273 -0.279558032752 --0.567324593663 -0.296815082431 --0.567319914698 -0.314071759581 --0.567317083478 -0.331328488886 --0.567316144705 -0.348584972322 --0.567317038775 -0.365841649473 --0.567319765687 -0.383098192513 --0.567324355245 -0.400355041027 --0.567330852151 -0.417611904442 --0.567339122295 -0.43486918509 --0.567349284887 -0.452126592397 --0.567361310124 -0.469384551048 --0.567375183105 -0.486642748118 --0.56739088893 -0.50390163064 --0.567399546504 -0.523118764162 --0.567391619086 -0.542334243655 --0.567375838756 -0.559592962265 --0.567361876368 -0.576851382852 --0.567349776626 -0.594109177589 --0.567339554429 -0.611366763711 --0.567331135273 -0.628623858094 --0.567324593663 -0.645880922675 --0.567319914698 -0.663137629628 --0.567317083478 -0.680394366383 --0.567316114902 -0.697650834918 --0.567317008972 -0.714907497167 --0.567319765687 -0.732164055109 --0.567324355245 -0.749420896172 --0.567330852151 -0.766677737236 --0.567339122295 -0.783935025334 --0.567349284887 -0.801192432642 --0.567361310124 -0.818450391293 --0.567375198006 -0.835708603263 --0.567390903831 -0.852967485786 --0.567399546504 -0.872184634209 --0.567391619086 -0.891400113702 --0.567375853657 -0.908658802509 --0.567361921072 -0.925917223096 --0.567349776626 -0.943175017834 --0.567339524627 -0.960432633758 --0.567331165075 -0.977689757943 --0.567324623465 -0.994946822525 --0.567319914698 -1.01220348478 --0.567317083478 -1.02946019173 --0.567316114902 -1.04671669006 --0.567317008972 -1.06397336721 --0.567319765687 -1.08122989536 --0.567324340343 -1.09848675132 --0.56733083725 -1.11574360728 --0.567339122295 -1.13300088048 --0.567349284887 -1.15025830269 --0.567361310124 -1.16751626134 --0.567375183105 -1.18477448821 --0.567390859127 -1.20203337074 --0.567399516702 -1.22125047446 --0.567391619086 -1.24046596885 --0.567375838756 -1.25772467255 --0.567361876368 -1.27498307824 --0.567349776626 -1.29224088788 --0.567339554429 -1.3094984889 --0.567331135273 -1.32675561309 --0.567324593663 -1.34401264787 --0.567319914698 -1.36126932502 --0.567317083478 -1.37852606178 --0.567316114902 -1.39578253031 --0.567317008972 -1.41303917765 --0.567319765687 -1.4302957356 --0.567324355245 -1.44755262136 --0.567330852151 -1.46480947733 --0.567339152098 -1.48206675053 --0.567349299789 -1.49932414293 --0.567361295223 -1.51658210159 --0.567375198006 -1.53384029865 --0.567390903831 -1.55109918118 --0.567399531603 -1.57031631469 --0.567391604185 -1.58953177929 --0.567375838756 -1.6067905128 --0.567361876368 -1.62404894829 --0.567349776626 -1.64130672813 --0.567339554429 -1.65856432915 --0.567331135273 -1.67582142353 --0.567324593663 -1.69307848812 --0.567319914698 -1.71033516527 --0.567317083478 -1.72759187222 --0.567316144705 -1.74484837055 --0.567317038775 -1.7621050477 --0.567319765687 -1.77936157584 --0.567324340343 -1.79661843181 --0.56733083725 -1.81387528777 --0.567339152098 -1.83113259077 --0.56734931469 -1.84839001298 --0.567361325026 -1.86564794183 --0.567375212908 -1.8829061389 --0.567390903831 -1.90016502142 --0.567399546504 -1.91938218474 --0.567391619086 -1.93859767914 --0.567375838756 -1.95585635305 --0.567361876368 -1.97311475873 --0.567349776626 -1.99037256837 --0.567339554429 -2.00763016939 --0.567331135273 -2.02488726378 --0.567324593663 -2.04214429856 --0.567319914698 -2.05940097571 --0.567317083478 -2.07665771246 --0.567316144705 -2.0939142108 --0.567317038775 -2.11117088795 --0.567319765687 -2.12842744589 --0.567324340343 -2.14568430185 --0.567330777645 -2.16294109821 --0.567339062691 -2.18019837141 --0.567349284887 -2.19745582342 --0.567361310124 -2.21471381188 --0.567375198006 -2.23197203875 --0.567390903831 -2.24923086166 --0.567399546504 -2.26844799518 --0.567391619086 -2.28766351938 --0.567375838756 -2.30492216349 --0.567361906171 -2.32218056917 --0.567349806428 -2.33943837881 --0.567339554429 -2.35669600964 --0.567331135273 -2.37395316362 --0.567324593663 -2.3912101388 --0.567319914698 -2.40846681595 --0.567317083478 -2.42572361231 --0.567316114902 -2.44298005104 --0.567317008972 -2.46023672819 --0.567319765687 -2.47749334574 --0.567324340343 -2.4947501421 --0.56733083725 -2.51200699806 --0.567339122295 -2.52926433086 --0.567349284887 -2.54652166366 --0.567361310124 -2.56377959251 --0.567375198006 -2.58103781939 --0.567390874028 -2.59829670191 --0.567399516702 -2.61751383543 --0.567391619086 -2.63672935963 --0.567375838756 -2.65398812294 --0.567361876368 -2.67124652863 --0.567349776626 -2.68850433827 --0.567339554429 -2.70576190949 --0.567331135273 -2.72301900387 --0.567324593663 -2.74027609825 --0.567319914698 -2.7575327754 --0.567317083478 -2.77478945255 --0.567316144705 -2.79204589129 --0.567317038775 -2.80930256844 --0.567319765687 -2.82655912638 --0.567324340343 -2.84381598234 --0.56733083725 -2.86107283831 --0.567339122295 -2.8783301115 --0.567349284887 -2.89558750391 --0.567361310124 -2.91284543276 --0.567375198006 -2.93010365963 --0.567390903831 -2.94736260176 --0.567399546504 -2.96657973528 --0.567391619086 -2.98579519987 --0.567375838756 -3.00305390358 --0.567361906171 -3.02031230927 --0.567349806428 -3.03757011891 --0.567339524627 -3.05482769013 --0.567331135273 -3.07208478451 --0.567324623465 -3.08934187889 --0.567319914698 -3.10659855604 --0.567317083478 -3.1238552928 --0.567316114902 -3.14111182292 --0.567317008972 --3.12481683493 --0.567319765687 --3.10756033659 --0.567324340343 --3.09030342102 --0.567330777645 --3.07304656505 --0.567339062691 --3.05578935147 --0.567349284887 --3.03853195906 --0.567361310124 --3.0212739706 --0.567375198006 --3.00401574373 --0.567390903831 --2.98675686121 --0.567399546504 --2.96753972769 --0.567391619086 --2.9483242631 --0.567375838756 --2.93106555939 --0.567361876368 --2.9138071537 --0.567349776626 --2.89654934406 --0.567339554429 --2.87929171324 --0.567331135273 --2.86203461885 --0.567324593663 --2.84477758407 --0.567319914698 --2.82752090692 --0.567317083478 --2.81026417017 --0.567316144705 --2.79300767183 --0.567317038775 --2.77575099468 --0.567319765687 --2.75849449634 --0.567324355245 --2.74123764038 --0.567330852151 --2.72398078442 --0.567339122295 --2.70672357082 --0.567349284887 --2.68946611881 --0.567361310124 --2.67220807075 --0.567375183105 --2.65494990349 --0.56739088893 --2.63769102097 --0.567399546504 --2.61847382784 --0.567391619086 --2.59925836325 --0.567375838756 --2.58199971914 --0.567361876368 --2.56474131346 --0.567349776626 --2.54748350382 --0.567339554429 --2.53022587299 --0.567331135273 --2.51296877861 --0.567324593663 --2.49571180343 --0.567319914698 --2.47845506668 --0.567317083478 --2.46119827032 --0.567316114902 --2.44394183159 --0.567317008972 --2.42668521404 --0.567319765687 --2.4094285965 --0.567324355245 --2.39217174053 --0.567330852151 --2.37491488457 --0.567339122295 --2.35765755177 --0.567349284887 --2.34040021896 --0.567361310124 --2.32314229011 --0.567375198006 --2.30588406324 --0.567390903831 --2.28862518072 --0.567399546504 --2.2694080472 --0.567391619086 --2.25019258261 --0.567375853657 --2.23293381929 --0.567361921072 --2.215675354 --0.567349776626 --2.19841760397 --0.567339524627 --2.18116003275 --0.567331165075 --2.16390287876 --0.567324623465 --2.14664578438 --0.567319914698 --2.12938916683 --0.567317083478 --2.11213243007 --0.567316114902 --2.09487593174 --0.567317008972 --2.07761931419 --0.567319765687 --2.06036275625 --0.567324340343 --2.04310590029 --0.56733083725 --2.02584904432 --0.567339122295 --2.00859177113 --0.567349284887 --1.99133437872 --0.567361310124 --1.97407639027 --0.567375183105 --1.9568181932 --0.567390859127 --1.93955934048 --0.567399516702 --1.92034220696 --0.567391619086 --1.90112671256 --0.567375838756 --1.88386797905 --0.567361876368 --1.86660957336 --0.567349776626 --1.84935179352 --0.567339554429 --1.8320941627 --0.567331135273 --1.81483703852 --0.567324593663 --1.79758000374 --0.567319914698 --1.78032335639 --0.567317083478 --1.76306664943 --0.567316114902 --1.7458101511 --0.567317008972 --1.72855347395 --0.567319765687 --1.71129691601 --0.567324355245 --1.69404006004 --0.567330852151 --1.67678320408 --0.567339152098 --1.65952590108 --0.567349299789 --1.64226850867 --0.567361295223 --1.62501057982 --0.567375198006 --1.60775235295 --0.567390903831 --1.59049347043 --0.567399531603 --1.57127633691 --0.567391604185 --1.55206084251 --0.567375838756 --1.5348021388 --0.567361876368 --1.51754373312 --0.567349776626 --1.50028595328 --0.567339554429 --1.48302835226 --0.567331135273 --1.46577122807 --0.567324593663 --1.4485141933 --0.567319914698 --1.43125751615 --0.567317083478 --1.41400074959 --0.567316144705 --1.39674428105 --0.567317038775 --1.3794876039 --0.567319765687 --1.36223104596 --0.567324340343 --1.34497419 --0.56733083725 --1.32771733403 --0.567339152098 --1.31046009064 --0.56734931469 --1.29320266843 --0.567361325026 --1.27594467997 --0.567375212908 --1.2586865127 --0.567390903831 --1.24142765999 --0.567399546504 --1.22221049667 --0.567391619086 --1.20299497247 --0.567375838756 --1.18573626876 --0.567361876368 --1.16847786307 --0.567349776626 --1.15122005343 --0.567339554429 --1.13396245241 --0.567331135273 --1.11670532823 --0.567324593663 --1.09944829345 --0.567319914698 --1.0821916163 --0.567317083478 --1.06493487954 --0.567316144705 --1.04767841101 --0.567317038775 --1.03042176366 --0.567319765687 --1.01316520572 --0.567324340343 --0.99590831995 --0.567330777645 --0.978651493788 --0.567339062691 --0.961394235492 --0.567349284887 --0.944136828184 --0.567361310124 --0.926878869533 --0.567375198006 --0.909620657563 --0.567390903831 --0.892361789942 --0.567399546504 --0.87314465642 --0.567391619086 --0.853929147124 --0.567375838756 --0.836670443416 --0.567361906171 --0.819412022829 --0.567349806428 --0.802154228091 --0.567339554429 --0.784896627069 --0.567331135273 --0.767639517784 --0.567324593663 --0.750382483006 --0.567319914698 --0.733125790954 --0.567317083478 --0.715869054198 --0.567316114902 --0.698612570763 --0.567317008972 --0.681355893612 --0.567319765687 --0.664099335671 --0.567324340343 --0.646842479706 --0.56733083725 --0.629585653543 --0.567339122295 --0.612328380346 --0.567349284887 --0.595070973039 --0.567361310124 --0.577813014388 --0.567375198006 --0.560554802418 --0.567390874028 --0.543295934797 --0.567399516702 --0.524078786373 --0.567391619086 --0.504863284528 --0.567375838756 --0.487604573369 --0.567361876368 --0.470346160233 --0.567349776626 --0.453088372946 --0.567339554429 --0.435830771923 --0.567331135273 --0.418573662639 --0.567324593663 --0.401316620409 --0.567319914698 --0.384059950709 --0.567317083478 --0.366803221405 --0.567316144705 --0.349546730519 --0.567317038775 --0.332290053368 --0.567319765687 --0.315033495426 --0.567324340343 --0.297776639462 --0.56733083725 --0.280519798398 --0.567339122295 --0.26326251775 --0.567349284887 --0.246005110443 --0.567361310124 --0.228747155517 --0.567375198006 --0.211488950997 --0.567390903831 --0.1942300722 --0.567399546504 --0.175012938679 --0.550260588526 --0.155791386962 --0.550245136022 --0.138532683253 --0.550231531262 --0.121274296195 --0.550219744444 --0.104016533122 --0.550209730864 --0.0867589507252 --0.550201565028 --0.0695018675178 --0.550195202231 --0.0522448467091 --0.550190627575 --0.034988196101 --0.55018787086 --0.0177314840257 --0.550186917186 --0.000475019216537 --0.550187811255 -0.0167816276662 --0.550190508366 -0.034038150683 --0.550194963813 -0.0512949796393 --0.550201237202 -0.0685518076643 --0.550209313631 -0.0858090668916 --0.550219282508 -0.103066449985 --0.550231024623 -0.120324380696 --0.550244554877 -0.137582562864 --0.550259873271 -0.154841415584 --0.550268307328 -0.174058768898 --0.550260558724 -0.193274475634 --0.550245165825 -0.210533164441 --0.550231561065 -0.227791551501 --0.550219744444 -0.245049316436 --0.550209760666 -0.262306891382 --0.55020159483 -0.279563978315 --0.550195202231 -0.296821005643 --0.550190627575 -0.314077652991 --0.55018787086 -0.331334352493 --0.550186917186 -0.348590813577 --0.550187781453 -0.365847468376 --0.550190478563 -0.383103996515 --0.550194963813 -0.400360830128 --0.550201281905 -0.41761765629 --0.550209358334 -0.434874907136 --0.550219282508 -0.452132292092 --0.550231024623 -0.46939022094 --0.550244539976 -0.486648403108 --0.55025985837 -0.50390727073 --0.550268307328 -0.523124620318 --0.550260558724 -0.542340323329 --0.550245165825 -0.559599012136 --0.550231561065 -0.576857402921 --0.550219744444 -0.594115167856 --0.550209760666 -0.611372739077 --0.550201565028 -0.62862983346 --0.550195172429 -0.645886868238 --0.550190597773 -0.663143515586 --0.550187841057 -0.680400207639 --0.550186917186 -0.697656676173 --0.550187811255 -0.714913323521 --0.550190508366 -0.73216985166 --0.550194963813 -0.749426677823 --0.550201281905 -0.766683503986 --0.550209358334 -0.78394074738 --0.550219282508 -0.801198109984 --0.550231024623 -0.818456068635 --0.550244554877 -0.835714265704 --0.550259873271 -0.852973133325 --0.550268307328 -0.872190490365 --0.550260558724 -0.891406178474 --0.550245180726 -0.908664852381 --0.550231575966 -0.925923228264 --0.550219744444 -0.943180993199 --0.550209760666 -0.960438579321 --0.550201565028 -0.977695688605 --0.550195172429 -0.994952723385 --0.550190627575 -1.01220935583 --0.55018787086 -1.02946606279 --0.550186917186 -1.04672253132 --0.550187781453 -1.06397917867 --0.550190478563 -1.08123570681 --0.550194963813 -1.09849253297 --0.550201281905 -1.11574935913 --0.550209358334 -1.13300663233 --0.550219282508 -1.15026402473 --0.550231024623 -1.16752195358 --0.550244539976 -1.18478015065 --0.550259828567 -1.20203900337 --0.550268277526 -1.22125631571 --0.550260528922 -1.24047201872 --0.550245136023 -1.25773072243 --0.550231561065 -1.27498912811 --0.550219744444 -1.29224690795 --0.550209760666 -1.30950447917 --0.55020159483 -1.32676154375 --0.550195202231 -1.34401854873 --0.550190597773 -1.36127522588 --0.550187841057 -1.37853193283 --0.550186917186 -1.39578837156 --0.550187811255 -1.41304501891 --0.550190508366 -1.43030154705 --0.550194963813 -1.44755837322 --0.550201281905 -1.46481522918 --0.550209388137 -1.48207250237 --0.550219297409 -1.49932986498 --0.550231009722 -1.51658776403 --0.550244554877 -1.53384593129 --0.550259873271 -1.55110481381 --0.550268322229 -1.57032218576 --0.550260543823 -1.58953788877 --0.550245136023 -1.60679656267 --0.550231546164 -1.62405493856 --0.550219729543 -1.64131268859 --0.550209760666 -1.65857028961 --0.55020159483 -1.675827384 --0.550195202231 -1.69308441878 --0.550190627575 -1.71034106612 --0.55018787086 -1.72759774328 --0.550186917186 -1.74485424161 --0.550187781453 -1.76211088896 --0.550190478563 -1.7793673873 --0.550194963813 -1.79662424326 --0.550201281905 -1.81388106942 --0.550209388137 -1.83113831282 --0.55021931231 -1.84839570522 --0.550231024623 -1.86565363407 --0.550244554877 -1.88291180134 --0.550259873271 -1.90017065406 --0.550268307328 -1.919388026 --0.550260558724 -1.93860372901 --0.550245165825 -1.95586240292 --0.550231561065 -1.9731208086 --0.550219744444 -1.99037858844 --0.550209760666 -2.00763618946 --0.55020159483 -2.02489328385 --0.550195202231 -2.04215025902 --0.550190627575 -2.05940687657 --0.55018787086 -2.07666361332 --0.550186917186 -2.09392011166 --0.550187811255 -2.1111767292 --0.550190508366 -2.12843328715 --0.550194963813 -2.14569014311 --0.550201252103 -2.16294687987 --0.550209328532 -2.18020415306 --0.550219282508 -2.19746160507 --0.550231024623 -2.21471953392 --0.550244554877 -2.23197770119 --0.550259873271 -2.2492365241 --0.550268307328 -2.26845383644 --0.550260558724 -2.28766953945 --0.550245165825 -2.30492824316 --0.550231561065 -2.32218664885 --0.550219744444 -2.33944439888 --0.550209760666 -2.3567019701 --0.55020159483 -2.37395906449 --0.550195202231 -2.39121603966 --0.550190627575 -2.40847271681 --0.55018787086 -2.42572945357 --0.550186917186 -2.44298589229 --0.550187811255 -2.46024256945 --0.550190508366 -2.47749912739 --0.550194963813 -2.49475592375 --0.550201281905 -2.51201277971 --0.550209358334 -2.52927005291 --0.550219282508 -2.54652738571 --0.550231024623 -2.56378531456 --0.550244554877 -2.58104348183 --0.550259843468 -2.59830236435 --0.550268307328 -2.61751973629 --0.550260558724 -2.6367354393 --0.550245136023 -2.65399414301 --0.550231561065 -2.67125248909 --0.550219744444 -2.68851029873 --0.550209760666 -2.70576786995 --0.55020159483 -2.72302490473 --0.550195202231 -2.74028199911 --0.550190597773 -2.75753867626 --0.550187841057 -2.77479529381 --0.550186917186 -2.79205173254 --0.550187781453 -2.8093084693 --0.550190478563 -2.82656496763 --0.550194963813 -2.84382176399 --0.550201281905 -2.86107861996 --0.550209358334 -2.87833583355 --0.550219282508 -2.89559316635 --0.550231024623 -2.9128510952 --0.550244554877 -2.93010932207 --0.550259873271 -2.94736820459 --0.55026833713 -2.96658557653 --0.550260588526 -2.98580127954 --0.550245136022 -3.00305992365 --0.550231531262 -3.02031832933 --0.550219744444 -3.03757613898 --0.550209730864 -3.0548337102 --0.550201565028 -3.07209080457 --0.550195202231 -3.08934783935 --0.550190627575 -3.1066044569 --0.55018787086 -3.12386119366 --0.550186917186 -3.14111766417 --0.550187811255 --3.12481099367 --0.550190508366 --3.10755449533 --0.550194963813 --3.09029769897 --0.550201237202 --3.07304084301 --0.550209313631 --3.05578356981 --0.550219282508 --3.03852623701 --0.550231024623 --3.02126836777 --0.550244554877 --3.0040101409 --0.550259873271 --2.98675125837 --0.550268307328 --2.96753388643 --0.550260558724 --2.94831818342 --0.550245165825 --2.93105953932 --0.550231561065 --2.91380113363 --0.550219744444 --2.89654332399 --0.550209760666 --2.87928569317 --0.55020159483 --2.86202859878 --0.550195202231 --2.84477162361 --0.550190627575 --2.82751500606 --0.55018787086 --2.81025826931 --0.550186917186 --2.79300183058 --0.550187781453 --2.77574521303 --0.550190478563 --2.75848865509 --0.550194963813 --2.74123179912 --0.550201281905 --2.72397500276 --0.550209358334 --2.70671778917 --0.550219282508 --2.68946033716 --0.550231024623 --2.67220234871 --0.550244539976 --2.65494418144 --0.55025985837 --2.63768535853 --0.550268307328 --2.61846804619 --0.550260558724 --2.59925234318 --0.550245165825 --2.58199363947 --0.550231561065 --2.56473523378 --0.550219744444 --2.54747748375 --0.550209760666 --2.53021991253 --0.550201565028 --2.51296281814 --0.550195172429 --2.49570584297 --0.550190597773 --2.47844916582 --0.550187841057 --2.46119242906 --0.550186917186 --2.44393599033 --0.550187811255 --2.42667937279 --0.550190508366 --2.40942281484 --0.550194963813 --2.39216595888 --0.550201281905 --2.37490910292 --0.550209358334 --2.35765182972 --0.550219282508 --2.34039449692 --0.550231024623 --2.32313656807 --0.550244554877 --2.3058784008 --0.550259873271 --2.28861951828 --0.550268307328 --2.26940214634 --0.550260558724 --2.25018644333 --0.550245180726 --2.23292773962 --0.550231575966 --2.21566939354 --0.550219744444 --2.19841170311 --0.550209760666 --2.18115413189 --0.550201565028 --2.1638969779 --0.550195172429 --2.14663988352 --0.550190627575 --2.12938326597 --0.55018787086 --2.11212658882 --0.550186917186 --2.09487009049 --0.550187781453 --2.07761341333 --0.550190478563 --2.06035691499 --0.550194963813 --2.04310011863 --0.550201281905 --2.02584326267 --0.550209358334 --2.00858601928 --0.550219282508 --1.99132865667 --0.550231024623 --1.97407069802 --0.550244539976 --1.95681253075 --0.550259828567 --1.93955370784 --0.550268277526 --1.9203363359 --0.550260528922 --1.90112060309 --0.550245136023 --1.88386189938 --0.550231561065 --1.8666035533 --0.550219744444 --1.84934583306 --0.550209760666 --1.83208823204 --0.55020159483 --1.81483110785 --0.550195202231 --1.79757407308 --0.550190597773 --1.78031742573 --0.550187841057 --1.76306074858 --0.550186917186 --1.74580428004 --0.550187811255 --1.72854763269 --0.550190508366 --1.71129110455 --0.550194963813 --1.69403424859 --0.550201281905 --1.67677745223 --0.550209388137 --1.65952020884 --0.550219297409 --1.64226281643 --0.550231009722 --1.62500488758 --0.550244554877 --1.60774669051 --0.550259873271 --1.59048783779 --0.550268322229 --1.57127049565 --0.550260543823 --1.55205479264 --0.550245136023 --1.53479608893 --0.550231546164 --1.51753768325 --0.550219729543 --1.50027993321 --0.550209760666 --1.48302236199 --0.55020159483 --1.46576526761 --0.550195202231 --1.44850826264 --0.550190627575 --1.43125161529 --0.55018787086 --1.41399487853 --0.550186917186 --1.3967384398 --0.550187781453 --1.37948179245 --0.550190478563 --1.36222526431 --0.550194963813 --1.34496843815 --0.550201281905 --1.32771158219 --0.550209388137 --1.31045433879 --0.55021931231 --1.29319694638 --0.550231024623 --1.27593898773 --0.550244554877 --1.25868082046 --0.550259873271 --1.24142199755 --0.550268307328 --1.22220465541 --0.550260558724 --1.2029889226 --0.550245165825 --1.18573021889 --0.550231561065 --1.1684718132 --0.550219744444 --1.15121403337 --0.550209760666 --1.13395649195 --0.55020159483 --1.11669942737 --0.550195202231 --1.09944239259 --0.550190627575 --1.08218571544 --0.55018787086 --1.06492900849 --0.550186917186 --1.04767256975 --0.550187811255 --1.0304159224 --0.550190508366 --1.01315939427 --0.550194963813 --0.995902568103 --0.550201252103 --0.978645756841 --0.550209328532 --0.961388498545 --0.550219282508 --0.944131106138 --0.550231024623 --0.926873192191 --0.550244554877 --0.909615010023 --0.550259873271 --0.892356157303 --0.550268307328 --0.873138815165 --0.550260558724 --0.853923097253 --0.550245165825 --0.836664408445 --0.550231561065 --0.819405987859 --0.550219744444 --0.802148222923 --0.550209760666 --0.784890666604 --0.55020159483 --0.767633572221 --0.550195202231 --0.750376552343 --0.550190627575 --0.733119890094 --0.55018787086 --0.715863183141 --0.550186917186 --0.698606729507 --0.550187811255 --0.681350082159 --0.550190508366 --0.664093539119 --0.550194963813 --0.646836712957 --0.550201281905 --0.629579901695 --0.550209358334 --0.612322643399 --0.550219282508 --0.595065250993 --0.550231024623 --0.577807322145 --0.550244554877 --0.560549154878 --0.550259843468 --0.543290302157 --0.550268307328 --0.524072945118 --0.550260558724 --0.504857219756 --0.550245136023 --0.487598516047 --0.550231561065 --0.470340132713 --0.550219744444 --0.453082367777 --0.550209760666 --0.435824789107 --0.55020159483 --0.418567702174 --0.550195202231 --0.401310697198 --0.550190597773 --0.3840540573 --0.550187841057 --0.366797335446 --0.550186917186 --0.349540866911 --0.550187781453 --0.332284219563 --0.550190478563 --0.315027698874 --0.550194963813 --0.297770872712 --0.550201281905 --0.28051404655 --0.550209358334 --0.263256788254 --0.550219282508 --0.245999403298 --0.550231024623 --0.228741466999 --0.550244554877 --0.211483284831 --0.550259873271 --0.194224432111 --0.55026833713 --0.175007089973 --0.533095642924 --0.155785348267 --0.533080592751 --0.13852667436 --0.533067345619 --0.121268311516 --0.533055871725 --0.104010572657 --0.533046141267 --0.0867530182004 --0.533038184047 --0.0694959582761 --0.533031955361 --0.0522389598191 --0.533027485013 --0.0349823324941 --0.533024817705 --0.0177256441675 --0.533023878932 --0.000469203805547 --0.533024728298 -0.0167874193285 --0.533027350903 -0.0340439183638 --0.533031687141 -0.0513007231057 --0.53303784132 -0.0685575269163 --0.533045724034 -0.0858147609979 --0.53305542469 -0.103072123602 --0.533066868782 -0.120330031961 --0.533080041408 -0.137588184327 --0.53309494257 -0.15484701097 --0.53310315311 -0.174064576626 --0.533095613122 -0.193280506879 --0.533080622554 -0.21053917706 --0.533067375422 -0.227797530591 --0.533055871725 -0.245055273175 --0.533046141267 -0.262312822044 --0.533038154244 -0.279569886625 --0.533031925559 -0.296826891601 --0.533027485013 -0.314083516598 --0.533024787903 -0.331340201199 --0.53302384913 -0.348596639931 --0.533024698496 -0.365853264928 --0.533027350902 -0.383109770715 --0.533031731844 -0.400366581976 --0.533037871122 -0.417623378336 --0.533045738936 -0.43488060683 --0.53305542469 -0.452137976885 --0.533066868782 -0.469395875931 --0.533080041408 -0.486654028296 --0.53309494257 -0.503912873566 --0.53310315311 -0.523130446672 --0.533095613122 -0.542346358299 --0.533080622554 -0.559605017304 --0.533067375422 -0.576863393188 --0.533055871725 -0.594121128321 --0.533046141267 -0.61137868464 --0.533038124442 -0.628635764122 --0.533031895757 -0.645892754197 --0.53302745521 -0.663149371743 --0.5330247581 -0.680406063795 --0.53302384913 -0.697662502527 --0.533024728298 -0.714919120073 --0.533027380705 -0.73217561841 --0.533031731844 -0.74943241477 --0.533037871122 -0.76668921113 --0.533045738936 -0.783946454525 --0.53305542469 -0.801203802228 --0.533066868782 -0.818461731076 --0.533080041408 -0.835719898343 --0.53309494257 -0.852978721261 --0.53310315311 -0.872196286917 --0.533095613122 -0.891412183642 --0.533080622554 -0.908670857549 --0.533067375422 -0.925929218531 --0.533055871725 -0.943186953664 --0.533046141267 -0.960444509983 --0.533038124442 -0.977701574564 --0.533031895757 -0.994958579541 --0.533027485013 -1.01221522689 --0.533024817705 -1.02947193384 --0.533023878932 -1.04672834277 --0.533024698496 -1.06398493051 --0.533027350902 -1.08124145866 --0.533031731844 -1.09849825501 --0.533037871122 -1.11575505137 --0.533045738936 -1.13301232457 --0.53305542469 -1.15026968717 --0.533066868782 -1.16752758622 --0.533080041408 -1.18478575349 --0.53309494257 -1.20204457641 --0.53310315311 -1.22126212716 --0.53309558332 -1.24047806859 --0.533080592752 -1.2577367425 --0.533067375422 -1.27499511838 --0.533055871725 -1.29225286841 --0.533046141267 -1.30951040983 --0.533038154244 -1.32676744461 --0.533031925559 -1.34402441979 --0.53302745521 -1.36128106714 --0.5330247581 -1.37853774428 --0.53302384913 -1.39579418302 --0.533024728298 -1.41305083036 --0.533027350903 -1.4303073287 --0.533031687141 -1.44756412506 --0.533037856221 -1.46482095122 --0.533045738936 -1.48207819462 --0.533055394888 -1.49933552742 --0.53306683898 -1.51659342647 --0.533080041408 -1.53385156393 --0.53309494257 -1.55111041665 --0.533103182912 -1.57032799721 --0.533095613122 -1.58954390884 --0.533080592752 -1.60680258274 --0.533067360521 -1.62406092882 --0.533055856824 -1.64131864906 --0.533046141267 -1.65857622028 --0.533038154244 -1.67583331466 --0.533031925559 -1.69309031963 --0.533027485013 -1.71034693718 --0.533024787903 -1.72760361433 --0.53302384913 -1.74486005306 --0.533024698496 -1.76211667061 --0.533027350902 -1.77937316895 --0.533031731844 -1.79662999511 --0.533037871122 -1.81388679147 --0.533045738936 -1.83114400506 --0.533055394888 -1.84840136766 --0.53306683898 -1.86565926671 --0.533080041408 -1.88291743397 --0.53309494257 -1.9001762569 --0.53310315311 -1.91939380765 --0.533095613122 -1.93860974908 --0.533080622554 -1.95586842299 --0.533067375422 -1.97312679887 --0.533055871725 -1.9903845489 --0.533046141267 -2.00764212012 --0.533038154244 -2.0248991847 --0.533031925559 -2.04215615988 --0.533027485013 -2.05941277742 --0.533024787903 -2.07666945458 --0.53302384913 -2.09392589331 --0.533024728298 -2.11118251085 --0.533027350903 -2.12843900919 --0.533031702042 -2.14569586515 --0.533037871122 -2.16295266151 --0.533045738936 -2.18020987511 --0.53305542469 -2.19746726751 --0.533066868782 -2.21472513676 --0.533080041408 -2.23198330402 --0.53309494257 -2.24924218654 --0.53310315311 -2.26845967769 --0.533095613122 -2.28767555952 --0.533080622554 -2.30493426323 --0.533067375422 -2.32219260931 --0.533055871725 -2.33945035935 --0.533046141267 -2.35670793057 --0.533038154244 -2.37396496534 --0.533031925559 -2.39122194052 --0.533027485013 -2.40847855807 --0.533024787903 -2.42573529482 --0.53302384913 -2.44299179316 --0.533024728298 -2.4602483511 --0.533027380705 -2.47750484943 --0.533031716943 -2.4947617054 --0.533037856221 -2.51201850176 --0.533045738936 -2.52927571535 --0.53305542469 -2.54653304816 --0.533066868782 -2.563790977 --0.533080041408 -2.58104914427 --0.53309494257 -2.59830796718 --0.533103182912 -2.61752557754 --0.533095613122 -2.63674151898 --0.533080592752 -2.65400016308 --0.533067375422 -2.67125844956 --0.533055871725 -2.68851619959 --0.533046141267 -2.70577377081 --0.533038184047 -2.72303080559 --0.533031955361 -2.74028784037 --0.53302745521 -2.75754451752 --0.533024787903 -2.77480119467 --0.533023878932 -2.79205757379 --0.533024698496 -2.80931425095 --0.533027350902 -2.82657074928 --0.533031731844 -2.84382748604 --0.533037871122 -2.8610842824 --0.533045738936 -2.87834149599 --0.53305542469 -2.8955988884 --0.533066868782 -2.91285681725 --0.533080041408 -2.93011492491 --0.53309494257 -2.94737374782 --0.533103182912 -2.96659135819 --0.533095642924 -2.98580729961 --0.533080592751 -3.00306594372 --0.533067345619 -3.02032434941 --0.533055871725 -3.03758209944 --0.533046141267 -3.05483967066 --0.533038184047 -3.07209676504 --0.533031955361 -3.08935374021 --0.533027485013 -3.10661035776 --0.533024817705 -3.12386703491 --0.533023878932 -3.14112344582 --0.533024728298 --3.12480521202 --0.533027350903 --3.10754871368 --0.533031687141 --3.09029197693 --0.53303784132 --3.07303518057 --0.533045724034 --3.05577790737 --0.53305542469 --3.03852051497 --0.533066868782 --3.02126264572 --0.533080041408 --3.00400453806 --0.53309494257 --2.98674571514 --0.53310315311 --2.96752810478 --0.533095613122 --2.94831216335 --0.533080622554 --2.93105351925 --0.533067375422 --2.91379511356 --0.533055871725 --2.89653736353 --0.533046141267 --2.87927979231 --0.533038154244 --2.86202269793 --0.533031925559 --2.84476572275 --0.533027485013 --2.8275091052 --0.533024787903 --2.81025242805 --0.53302384913 --2.79299604893 --0.533024698496 --2.77573943138 --0.533027350902 --2.75848287344 --0.533031731844 --2.74122601747 --0.533037871122 --2.72396922111 --0.533045738936 --2.70671200752 --0.53305542469 --2.68945461511 --0.533066868782 --2.67219674587 --0.533080041408 --2.65493857861 --0.53309494257 --2.63767975569 --0.53310315311 --2.61846226454 --0.533095613122 --2.59924638271 --0.533080622554 --2.581987679 --0.533067375422 --2.56472927332 --0.533055871725 --2.54747152328 --0.533046141267 --2.53021395206 --0.533038124442 --2.51295691728 --0.533031895757 --2.49569994211 --0.53302745521 --2.47844332457 --0.5330247581 --2.46118658781 --0.53302384913 --2.44393008947 --0.533024728298 --2.42667353153 --0.533027380705 --2.4094170332 --0.533031731844 --2.39216017723 --0.533037871122 --2.37490338087 --0.533045738936 --2.35764616728 --0.53305542469 --2.34038883448 --0.533066868782 --2.32313090563 --0.533080041408 --2.30587273836 --0.53309494257 --2.28861391545 --0.53310315311 --2.26939636469 --0.533095613122 --2.25018042326 --0.533080622554 --2.23292171955 --0.533067375422 --2.21566343307 --0.533055871725 --2.19840574264 --0.533046141267 --2.18114817142 --0.533038124442 --2.16389113665 --0.533031895757 --2.14663410187 --0.533027485013 --2.12937742472 --0.533024817705 --2.11212074757 --0.533023878932 --2.09486430883 --0.533024698496 --2.07760763168 --0.533027350902 --2.06035113334 --0.533031731844 --2.04309439659 --0.533037871122 --2.02583760023 --0.533045738936 --2.00858035684 --0.53305542469 --1.99132299423 --0.533066868782 --1.97406506538 --0.533080041408 --1.95680689812 --0.53309494257 --1.9395480752 --0.53310315311 --1.92033049464 --0.53309558332 --1.90111458302 --0.533080592752 --1.88385590911 --0.533067375422 --1.86659756303 --0.533055871725 --1.8493398726 --0.533046141267 --1.83208230137 --0.533038154244 --1.81482520699 --0.533031925559 --1.79756820202 --0.53302745521 --1.78031155467 --0.5330247581 --1.76305487752 --0.53302384913 --1.74579846859 --0.533024728298 --1.72854185104 --0.533027350903 --1.71128535271 --0.533031687141 --1.69402852654 --0.533037856221 --1.67677173019 --0.533045738936 --1.6595145166 --0.533055394888 --1.64225712418 --0.53306683898 --1.62499922514 --0.533080041408 --1.60774108768 --0.53309494257 --1.59048226476 --0.533103182912 --1.571264714 --0.533095613122 --1.55204877258 --0.533080592752 --1.53479009867 --0.533067360521 --1.51753172278 --0.533055856824 --1.50027397275 --0.533046141267 --1.48301643133 --0.533038154244 --1.46575936675 --0.533031925559 --1.44850236178 --0.533027485013 --1.43124574423 --0.533024787903 --1.41398903727 --0.53302384913 --1.39673259854 --0.533024698496 --1.379475981 --0.533027350902 --1.36221948266 --0.533031731844 --1.3449626863 --0.533037871122 --1.32770586014 --0.533045738936 --1.31044861675 --0.533055394888 --1.29319125414 --0.53306683898 --1.27593335509 --0.533080041408 --1.25867518783 --0.53309494257 --1.24141636491 --0.53310315311 --1.22219881415 --0.533095613122 --1.20298290253 --0.533080622554 --1.18572422862 --0.533067375422 --1.16846585274 --0.533055871725 --1.1512081027 --0.533046141267 --1.13395056129 --0.533038154244 --1.11669352651 --0.533031925559 --1.09943652153 --0.533027485013 --1.08217987418 --0.533024787903 --1.06492319703 --0.53302384913 --1.0476667583 --0.533024728298 --1.03041011095 --0.533027350903 --1.01315361262 --0.533031702042 --0.995896816255 --0.533037871122 --0.978640034795 --0.533045738936 --0.961382806301 --0.53305542469 --0.944125428796 --0.533066868782 --0.92686752975 --0.533080041408 --0.909609377384 --0.53309494257 --0.892350539565 --0.53310315311 --0.873132973909 --0.533095613122 --0.853917047381 --0.533080622554 --0.836658388376 --0.533067375422 --0.819400012493 --0.533055871725 --0.802142262459 --0.533046141267 --0.78488470614 --0.533038154244 --0.767627641559 --0.533031925559 --0.750370666385 --0.533027485013 --0.733114033937 --0.533024787903 --0.715857326984 --0.53302384913 --0.698600888252 --0.533024728298 --0.681344285607 --0.533027380705 --0.66408778727 --0.533031716943 --0.646830976009 --0.533037856221 --0.629574179649 --0.533045738936 --0.612316936255 --0.53305542469 --0.595059558749 --0.533066868782 --0.577801674604 --0.533080041408 --0.56054353714 --0.53309494257 --0.543284699321 --0.533103182912 --0.524067133665 --0.533095613122 --0.504851192236 --0.533080592752 --0.487592510879 --0.533067375422 --0.470334157348 --0.533055871725 --0.453076414764 --0.533046141267 --0.435818850994 --0.533038184047 --0.418561793864 --0.533031955361 --0.401304803788 --0.53302745521 --0.384048171341 --0.533024787903 --0.36679147929 --0.533023878932 --0.349535048008 --0.533024698496 --0.332278430462 --0.533027350902 --0.315021932125 --0.533031731844 --0.297765128315 --0.533037871122 --0.280508324504 --0.533045738936 --0.26325108856 --0.53305542469 --0.245993729681 --0.533066868782 --0.228735815734 --0.533080041408 --0.211477655918 --0.53309494257 --0.194218832999 --0.533103182912 --0.175001271069 --0.515892714262 --0.155779093504 --0.515878096223 --0.138520453125 --0.515865236521 --0.121262121946 --0.51585406065 --0.104004405439 --0.515844583511 --0.0867468751967 --0.515836820006 --0.0694898376241 --0.515830785036 --0.0522328633815 --0.515826433897 --0.0349762616679 --0.515823811292 --0.0177195982542 --0.515822947025 --0.000463183503597 --0.515823766589 -0.0167934147176 --0.515826299787 -0.0340498886071 --0.515830546618 -0.0513066696003 --0.515836551786 -0.0685634529218 --0.515844210982 -0.0858206581324 --0.515853613615 -0.103077994659 --0.51586471498 -0.120335880667 --0.515877559781 -0.137594006956 --0.515892088413 -0.154852811247 --0.515900075435 -0.174070596695 --0.515892714262 -0.193286750466 --0.515878096223 -0.210545398295 --0.515865236521 -0.227803725749 --0.51585406065 -0.245061445981 --0.515844583511 -0.262318976223 --0.515836805105 -0.279576011002 --0.515830740332 -0.296832986176 --0.515826404094 -0.314089596272 --0.51582378149 -0.33134625107 --0.515822917223 -0.34860266 --0.515823766589 -0.365859270096 --0.515826314688 -0.383115746081 --0.515830546617 -0.40037252754 --0.515836536884 -0.417629301548 --0.515844210982 -0.43488650769 --0.515853613615 -0.452143847942 --0.515864744782 -0.469401724637 --0.515877589583 -0.486659862101 --0.515892088413 -0.503918677569 --0.515900075435 -0.523136466742 --0.515892714262 -0.542352586985 --0.515878096223 -0.559611231088 --0.515865236521 -0.576869592071 --0.51585406065 -0.594127297401 --0.515844583511 -0.611384823918 --0.515836805105 -0.628641873598 --0.515830740332 -0.645898833871 --0.515826418996 -0.663155421615 --0.515823796391 -0.680412113667 --0.515822917223 -0.697668522596 --0.515823766589 -0.71492511034 --0.515826314688 -0.732181593776 --0.515830546617 -0.749438375234 --0.515836536884 -0.766695141792 --0.515844210982 -0.783952355385 --0.515853613615 -0.801209703088 --0.515864744782 -0.818467587233 --0.515877589583 -0.835725709796 --0.515892088413 -0.852984502911 --0.515900075435 -0.872202292084 --0.515892714262 -0.891418427229 --0.515878096223 -0.908677086234 --0.515865206719 -0.925935432315 --0.515854030848 -0.943193137646 --0.515844583511 -0.960450664163 --0.515836790204 -0.977707698941 --0.515830725431 -0.994964689017 --0.515826404094 -1.01222130656 --0.515823811292 -1.02947795391 --0.515822947025 -1.04673436284 --0.515823766589 -1.06399095058 --0.515826314688 -1.08124741912 --0.515830546617 -1.09850418568 --0.515836536884 -1.11576098204 --0.515844225883 -1.13301822543 --0.515853628516 -1.15027555823 --0.515864744782 -1.16753342748 --0.515877589583 -1.18479156494 --0.515892058611 -1.20205038786 --0.515900045633 -1.22126817703 --0.515892714262 -1.24048432708 --0.515878096223 -1.25774294138 --0.515865236521 -1.27500128746 --0.51585406065 -1.2922590375 --0.515844583511 -1.30951654911 --0.515836805105 -1.32677358389 --0.515830740332 -1.34403052926 --0.515826404094 -1.36128711701 --0.51582378149 -1.37854379416 --0.51582288742 -1.39580020309 --0.515823736787 -1.41305679083 --0.515826284885 -1.43031328916 --0.515830501914 -1.44757008552 --0.515836521983 -1.46482685208 --0.515844210982 -1.48208406568 --0.515853583813 -1.49934139848 --0.51586471498 -1.51659929752 --0.515877589583 -1.53385740518 --0.515892088413 -1.5511161983 --0.515900075435 -1.57033398747 --0.515892714262 -1.58955013752 --0.515878096223 -1.60680881143 --0.515865236521 -1.62406712771 --0.51585406065 -1.64132481814 --0.515844583511 -1.65858235955 --0.515836805105 -1.67583942413 --0.515830740332 -1.6930963993 --0.515826404094 -1.71035301685 --0.51582378149 -1.727609694 --0.515822917223 -1.74486607313 --0.515823766589 -1.76212266087 --0.515826314688 -1.77937912941 --0.515830546617 -1.79663592577 --0.515836536884 -1.81389272213 --0.515844210982 -1.83114990592 --0.515853583813 -1.84840723872 --0.515864685177 -1.86566510796 --0.515877559781 -1.88292324543 --0.515892088413 -1.90018206835 --0.515900075435 -1.91939985752 --0.515892714262 -1.93861600757 --0.515878096223 -1.95587465167 --0.515865236521 -1.97313299775 --0.51585406065 -1.99039071798 --0.515844583511 -2.0076482594 --0.515836805105 -2.02490526438 --0.515830740332 -2.04216223955 --0.515826404094 -2.0594188571 --0.51582378149 -2.07667547464 --0.515822917223 -2.09393185377 --0.515823736787 -2.11118847132 --0.515826255083 -2.12844496965 --0.515830516815 -2.14570176601 --0.515836536884 -2.16295856237 --0.515844210982 -2.18021577596 --0.515853613615 -2.19747310877 --0.515864744782 -2.21473091841 --0.515877589583 -2.23198908567 --0.515892088413 -2.2492479682 --0.515900075435 -2.26846569777 --0.515892714262 -2.28768181801 --0.515878096223 -2.30494046211 --0.515865206719 -2.32219880819 --0.515854030848 -2.33945655823 --0.515844583511 -2.35671406984 --0.515836805105 -2.37397110462 --0.515830740332 -2.39122807979 --0.515826404094 -2.40848463774 --0.51582378149 -2.42574131489 --0.515822917223 -2.44299781323 --0.515823736787 -2.46025437117 --0.515826284885 -2.4775108099 --0.515830531716 -2.49476760626 --0.515836521983 -2.51202434301 --0.515844210982 -2.5292815566 --0.515853613615 -2.54653888941 --0.515864744782 -2.56379681826 --0.515877589583 -2.58105498552 --0.515892088413 -2.59831374884 --0.515900075435 -2.61753153801 --0.515892714262 -2.63674771786 --0.515878096223 -2.65400636196 --0.515865206719 -2.67126464844 --0.515854030848 -2.68852233886 --0.515844583511 -2.70577991008 --0.515836834907 -2.72303700447 --0.515830770135 -2.74029392004 --0.515826404094 -2.75755053758 --0.515823811292 -2.77480727434 --0.515822947025 -2.79206365347 --0.515823766589 -2.80932021141 --0.515826314688 -2.82657670975 --0.515830546617 -2.84383350611 --0.515836507082 -2.86109024286 --0.51584418118 -2.87834745646 --0.515853613615 -2.89560484887 --0.515864744782 -2.91286271811 --0.515877589583 -2.93012076616 --0.515892088413 -2.94737952948 --0.515900075435 -2.96659737825 --0.515892714262 -2.9858135581 --0.515878096223 -3.00307220221 --0.515865236521 -3.02033054829 --0.51585406065 -3.03758823872 --0.515844583511 -3.05484580994 --0.515836820006 -3.07210284472 --0.515830785036 -3.08935981989 --0.515826433897 -3.10661643743 --0.515823811292 -3.12387305498 --0.515822947025 -3.14112946589 --0.515823766589 --3.12479925156 --0.515826299787 --3.10754275322 --0.515830546618 --3.09028595686 --0.515836551786 --3.07302922011 --0.515844210982 --3.05577200651 --0.515853613615 --3.0385146141 --0.51586471498 --3.02125674486 --0.515877559781 --3.00399869681 --0.515892088413 --2.98673993349 --0.515900075435 --2.96752208471 --0.515892714262 --2.94830590487 --0.515878096223 --2.93104726076 --0.515865236521 --2.91378891468 --0.51585406065 --2.89653122425 --0.515844583511 --2.87927365303 --0.515836805105 --2.86201661825 --0.515830740332 --2.84475964308 --0.515826404094 --2.82750302553 --0.51582378149 --2.81024640798 --0.515822917223 --2.79299002886 --0.515823766589 --2.77573341131 --0.515826314688 --2.75847691298 --0.515830546617 --2.74122011662 --0.515836536884 --2.72396332026 --0.515844210982 --2.70670610667 --0.515853613615 --2.68944877386 --0.515864744782 --2.67219096422 --0.515877589583 --2.65493279696 --0.515892088413 --2.63767391443 --0.515900075435 --2.61845618486 --0.515892714262 --2.59924012423 --0.515878096223 --2.58198148012 --0.515865236521 --2.56472307444 --0.51585406065 --2.5474653244 --0.515844583511 --2.53020781279 --0.515836805105 --2.51295077801 --0.515830740332 --2.49569380283 --0.515826418996 --2.47843724489 --0.515823796391 --2.46118056774 --0.515822917223 --2.44392412901 --0.515823766589 --2.42666757107 --0.515826314688 --2.40941107273 --0.515830546617 --2.39215427637 --0.515836536884 --2.37489753962 --0.515844210982 --2.35764032602 --0.515853613615 --2.34038299322 --0.515864744782 --2.32312506437 --0.515877589583 --2.30586689711 --0.515892088413 --2.28860813379 --0.515900075435 --2.26939040422 --0.515892714262 --2.25017422437 --0.515878096223 --2.23291552067 --0.515865206719 --2.21565723419 --0.515854030848 --2.19839954376 --0.515844583511 --2.18114203214 --0.515836790204 --2.16388499737 --0.515830725431 --2.1466280222 --0.515826404094 --2.12937134505 --0.515823811292 --2.11211460829 --0.515822947025 --2.09485822916 --0.515823766589 --2.07760167122 --0.515826314688 --2.06034523249 --0.515830546617 --2.04308849573 --0.515836536884 --2.02583169937 --0.515844225883 --2.00857445598 --0.515853628516 --1.99131712317 --0.515864744782 --1.97405922413 --0.515877589583 --1.95680105686 --0.515892058611 --1.93954223394 --0.515900045633 --1.92032447457 --0.515892714262 --1.90110835433 --0.515878096223 --1.88384971023 --0.515865236521 --1.86659139395 --0.51585406065 --1.84933370352 --0.515844583511 --1.8320761323 --0.515836805105 --1.81481906772 --0.515830740332 --1.79756212235 --0.515826404094 --1.7803055048 --0.51582378149 --1.76304882765 --0.51582288742 --1.74579244852 --0.515823736787 --1.72853586078 --0.515826284885 --1.71127936244 --0.515830501914 --1.69402256608 --0.515836521983 --1.67676579952 --0.515844210982 --1.65950861574 --0.515853583813 --1.64225125313 --0.51586471498 --1.62499338388 --0.515877589583 --1.60773527622 --0.515892088413 --1.5904764533 --0.515900075435 --1.57125866413 --0.515892714262 --1.55204251409 --0.515878096223 --1.53478386998 --0.515865236521 --1.5175255239 --0.51585406065 --1.50026780367 --0.515844583511 --1.48301029205 --0.515836805105 --1.46575325727 --0.515830740332 --1.4484962523 --0.515826404094 --1.43123966456 --0.51582378149 --1.41398301721 --0.515822917223 --1.39672657847 --0.515823766589 --1.37946996092 --0.515826314688 --1.36221349239 --0.515830546617 --1.34495672584 --0.515836536884 --1.32769992948 --0.515844210982 --1.31044271588 --0.515853583813 --1.29318538308 --0.515864685177 --1.27592751384 --0.515877559781 --1.25866937637 --0.515892088413 --1.24141055345 --0.515900075435 --1.22219279408 --0.515892714262 --1.20297667384 --0.515878096223 --1.18571802974 --0.515865236521 --1.16845968366 --0.51585406065 --1.15120196343 --0.515844583511 --1.13394442201 --0.515836805105 --1.11668738723 --0.515830740332 --1.09943044186 --0.515826404094 --1.08217382431 --0.51582378149 --1.06491714716 --0.515822917223 --1.04766073823 --0.515823736787 --1.03040412068 --0.515826255083 --1.01314762235 --0.515830516815 --0.995890855789 --0.515836536884 --0.978634104133 --0.515844210982 --0.961376905442 --0.515853613615 --0.944119557738 --0.515864744782 --0.926861673594 --0.515877589583 --0.90960355103 --0.515892088413 --0.892344743014 --0.515900075435 --0.87312695384 --0.515892714262 --0.853910803795 --0.515878096223 --0.836652159691 --0.515865206719 --0.81939381361 --0.515854030848 --0.802136093378 --0.515844583511 --0.784878566861 --0.515836805105 --0.767621532082 --0.515830740332 --0.75036457181 --0.515826404094 --0.733107969165 --0.51582378149 --0.715851292014 --0.515822917223 --0.698594868183 --0.515823736787 --0.681338280439 --0.515826284885 --0.664081826806 --0.515830531716 --0.646825045347 --0.515836521983 --0.629568263888 --0.515844210982 --0.612311050296 --0.515853613615 --0.595053702593 --0.515864744782 --0.577795818448 --0.515877589583 --0.560537680983 --0.515892088413 --0.543278872967 --0.515900075435 --0.524061098695 --0.515892714262 --0.50484496355 --0.515878096223 --0.487586311996 --0.515865206719 --0.470327973366 --0.515854030848 --0.453070260584 --0.515844583511 --0.435812726617 --0.515836834907 --0.418555691838 --0.515830770135 --0.401298716664 --0.515826404094 --0.384042099118 --0.515823811292 --0.366785429418 --0.515822947025 --0.349529027939 --0.515823766589 --0.332272440195 --0.515826314688 --0.31501595676 --0.515830546617 --0.297759175301 --0.515836507082 --0.280502408743 --0.51584418118 --0.26324519515 --0.515853613615 --0.245987854898 --0.515864744782 --0.228729974479 --0.515877589583 --0.211471840739 --0.515892088413 --0.194213043898 --0.515900075435 --0.174995251 --0.498667411506 --0.155772559345 --0.498653195798 --0.138513941318 --0.498640708625 --0.121255636215 --0.498629838228 --0.103997945786 --0.498620614409 --0.086740437895 --0.498613066971 --0.0694834236055 --0.498607210815 --0.0522264773026 --0.498603008688 --0.0349699035287 --0.498600453138 --0.0177132664249 --0.498599626124 --0.000456877285615 --0.498600430786 -0.016799695557 --0.498602896929 -0.0340561447665 --0.4986070171 -0.051312899217 --0.498612836003 -0.0685696555301 --0.498620301485 -0.085826838389 --0.498629420996 -0.103084148839 --0.498640179634 -0.120342006907 --0.498652681708 -0.137600108981 --0.49866681546 -0.154858887196 --0.498674571514 -0.174076907337 --0.498667411506 -0.19329328835 --0.498653195798 -0.210551906377 --0.498640686274 -0.227810211479 --0.498629815876 -0.245067905635 --0.498620614409 -0.262325413525 --0.498613104224 -0.279582418501 --0.498607218265 -0.296839363873 --0.498602978885 -0.314095944166 --0.498600453138 -0.331352576613 --0.498599626124 -0.348608970642 --0.498600430786 -0.365865550935 --0.498602882027 -0.383121989667 --0.498606994748 -0.400378748775 --0.498612828553 -0.417635507882 --0.498620301485 -0.434892691672 --0.498629420996 -0.452150002122 --0.498640209436 -0.469407856465 --0.498652711511 -0.486665971578 --0.49866681546 -0.503924749792 --0.498674571514 -0.523142755031 --0.498667411506 -0.542359113693 --0.498653195798 -0.559617742896 --0.498640708625 -0.576876074076 --0.498629838228 -0.594133764505 --0.498620614409 -0.61139126122 --0.498613104224 -0.628648266197 --0.498607218265 -0.645905211568 --0.498602993787 -0.663161784411 --0.498600468039 -0.680418431759 --0.498599626124 -0.697674825787 --0.498600430786 -0.71493139863 --0.498602882027 -0.732187837362 --0.498606994748 -0.749444589019 --0.498612828553 -0.766701340675 --0.498620301485 -0.783958524466 --0.498629420996 -0.801215842366 --0.498640209436 -0.818473696709 --0.498652711511 -0.835731804371 --0.49866681546 -0.852990582585 --0.498674571514 -0.872208610177 --0.498667411506 -0.891424998641 --0.498653195798 -0.908683612942 --0.498640678823 -0.925941929221 --0.498629808426 -0.943199619651 --0.498620614409 -0.960457101464 --0.498613089323 -0.97771410644 --0.498607203364 -0.994971081615 --0.498602978885 -1.01222765446 --0.498600453138 -1.029484272 --0.498599626124 -1.04674068093 --0.498600430786 -1.06399726868 --0.498602882027 -1.08125370741 --0.498606994748 -1.09851044416 --0.498612828553 -1.11576721072 --0.498620316386 -1.13302439451 --0.498629435897 -1.15028169751 --0.498640209436 -1.16753956675 --0.498652711511 -1.18479767441 --0.498666785658 -1.20205646753 --0.498674541712 -1.22127449513 --0.498667411506 -1.24049085379 --0.498653195798 -1.25774943828 --0.498640708625 -1.27500775456 --0.498629838228 -1.2922654748 --0.498620614409 -1.30952298641 --0.498613104224 -1.32677999139 --0.498607218265 -1.34403690696 --0.498602978885 -1.3612934649 --0.498600453138 -1.37855011225 --0.498599596322 -1.39580649138 --0.498600400984 -1.41306304932 --0.498602882027 -1.43031951785 --0.498606994748 -1.44757628441 --0.498612828553 -1.46483305097 --0.498620301485 -1.48209026456 --0.498629420996 -1.49934756756 --0.498640231788 -1.516605407 --0.498652711511 -1.53386351466 --0.498666793108 -1.55112227797 --0.498674571514 -1.57034027577 --0.498667411506 -1.58955669403 --0.498653195798 -1.60681533814 --0.498640708625 -1.62407362461 --0.498629838228 -1.64133131504 --0.498620614409 -1.65858879685 --0.498613081872 -1.67584580183 --0.498607195914 -1.693102777 --0.498602978885 -1.71035936474 --0.498600453138 -1.72761601209 --0.498599626124 -1.74487239122 --0.498600430786 -1.76212894917 --0.498602882027 -1.7793853879 --0.498606994748 -1.79664215445 --0.498612828553 -1.81389892101 --0.498620301485 -1.831156075 --0.498629420996 -1.848413378 --0.498640201985 -1.86567124724 --0.49865270406 -1.8829293549 --0.49866681546 -1.90018814802 --0.498674571514 -1.91940617561 --0.498667411506 -1.93862253428 --0.498653195798 -1.95588114858 --0.498640708625 -1.97313946485 --0.498629838228 -1.99039715528 --0.498620614409 -2.0076546967 --0.498613104224 -2.02491170168 --0.498607218265 -2.04216861725 --0.498602978885 -2.05942517519 --0.498600453138 -2.07668179273 --0.498599626124 -2.09393817186 --0.498600400984 -2.11119478941 --0.498602852225 -2.12845128774 --0.498606994748 -2.1457080245 --0.498612828553 -2.16296476126 --0.498620301485 -2.18022191524 --0.498629420996 -2.19747924805 --0.498640231788 -2.21473711729 --0.498652733862 -2.23199522495 --0.49866681546 -2.24925404787 --0.498674571514 -2.26847201586 --0.498667411506 -2.28768831492 --0.498653195798 -2.30494695902 --0.498640678823 -2.3222053051 --0.498629808426 -2.33946299553 --0.498620614409 -2.35672050714 --0.498613081872 -2.37397754192 --0.498607195914 -2.39123445749 --0.498602978885 -2.40849101543 --0.498600453138 -2.42574769258 --0.498599626124 -2.44300413132 --0.498600400984 -2.46026068926 --0.498602852225 -2.47751706839 --0.498606994748 -2.49477380514 --0.498612828553 -2.51203054189 --0.498620301485 -2.52928775549 --0.498629420996 -2.54654508829 --0.498640231788 -2.56380295754 --0.498652733862 -2.5810610652 --0.49866681546 -2.59831982851 --0.498674571514 -2.6175378561 --0.498667411506 -2.63675427437 --0.498653195798 -2.65401285887 --0.498640678823 -2.67127114534 --0.498629808426 -2.68852883577 --0.498620614409 -2.70578634739 --0.498613081872 -2.72304338217 --0.498607195914 -2.74030029774 --0.498602978885 -2.75755691528 --0.498600453138 -2.77481359243 --0.498599626124 -2.79206997156 --0.498600430786 -2.8093264699 --0.498602882027 -2.82658290863 --0.498606994748 -2.84383970499 --0.498612798751 -2.86109644174 --0.498620271683 -2.87835365534 --0.498629420996 -2.89561098814 --0.498640209436 -2.91286879778 --0.498652711511 -2.93012684584 --0.49866681546 -2.94738560915 --0.498674571514 -2.96660369634 --0.498667411506 -2.98582011461 --0.498653195798 -3.00307875871 --0.498640708625 -3.02033704519 --0.498629838228 -3.03759467602 --0.498620614409 -3.05485218763 --0.498613066971 -3.07210922241 --0.498607210815 -3.08936619759 --0.498603008688 -3.10662275553 --0.498600453138 -3.12387937307 --0.498599626124 -3.14113578399 --0.498600430786 --3.12479299307 --0.498602896929 --3.10753655434 --0.4986070171 --3.09027975798 --0.498612836003 --3.07302302122 --0.498620301485 --3.05576580763 --0.498629420996 --3.03850847483 --0.498640179634 --3.02125066519 --0.498652681708 --3.00399261713 --0.49866681546 --2.98673385382 --0.498674571514 --2.96751576662 --0.498667411506 --2.94829934835 --0.498653195798 --2.93104070425 --0.498640686274 --2.91378241777 --0.498629815876 --2.89652478695 --0.498620614409 --2.87926727534 --0.498613104224 --2.86201024056 --0.498607218265 --2.84475326538 --0.498602978885 --2.82749670744 --0.498600453138 --2.81024008989 --0.498599626124 --2.79298371076 --0.498600430786 --2.77572709322 --0.498602882027 --2.75847059488 --0.498606994748 --2.74121385813 --0.498612828553 --2.72395712137 --0.498620301485 --2.70669996739 --0.498629420996 --2.68944269419 --0.498640209436 --2.67218482494 --0.498652711511 --2.65492665768 --0.49866681546 --2.63766783476 --0.498674571514 --2.61844986677 --0.498667411506 --2.59923356772 --0.498653195798 --2.58197492361 --0.498640708625 --2.56471657753 --0.498629838228 --2.5474588871 --0.498620614409 --2.53020137548 --0.498613104224 --2.5129443407 --0.498607218265 --2.49568742514 --0.498602993787 --2.4784308672 --0.498600468039 --2.46117424965 --0.498599626124 --2.44391787052 --0.498600430786 --2.42666125298 --0.498602882027 --2.40940481425 --0.498606994748 --2.39214807749 --0.498612828553 --2.37489134073 --0.498620301485 --2.35763412714 --0.498629420996 --2.34037679434 --0.498640209436 --2.32311892509 --0.498652711511 --2.30586081743 --0.49866681546 --2.28860205412 --0.498674571514 --2.26938402653 --0.498667411506 --2.25016760826 --0.498653195798 --2.23290902376 --0.498640678823 --2.21565073729 --0.498629808426 --2.19839304686 --0.498620614409 --2.18113559484 --0.498613089323 --2.16387856007 --0.498607203364 --2.14662158489 --0.498602978885 --2.12936496735 --0.498600453138 --2.1121082902 --0.498599626124 --2.09485191107 --0.498600430786 --2.07759541273 --0.498602882027 --2.06033903361 --0.498606994748 --2.04308229685 --0.498612828553 --2.02582550049 --0.498620316386 --2.0085682571 --0.498629435897 --1.99131095409 --0.498640209436 --1.97405311465 --0.498652711511 --1.95679497719 --0.498666785658 --1.93953615427 --0.498674541712 --1.92031815648 --0.498667411506 --1.90110179782 --0.498653195798 --1.88384318352 --0.498640708625 --1.86658489704 --0.498629838228 --1.84932720661 --0.498620614409 --1.83206966519 --0.498613104224 --1.81481266022 --0.498607218265 --1.79755574465 --0.498602978885 --1.7802991569 --0.498600453138 --1.76304250956 --0.498599596322 --1.74578613043 --0.498600400984 --1.72852957248 --0.498602882027 --1.71127310395 --0.498606994748 --1.69401633739 --0.498612828553 --1.67675960064 --0.498620301485 --1.65950244665 --0.498629420996 --1.64224511385 --0.498640231788 --1.6249872446 --0.498652711511 --1.60772916674 --0.498666793108 --1.59047037363 --0.498674571514 --1.57125234604 --0.498667411506 --1.55203598738 --0.498653195798 --1.53477737308 --0.498640708625 --1.5175190568 --0.498629838228 --1.50026136637 --0.498620614409 --1.48300385475 --0.498613081872 --1.46574681997 --0.498607195914 --1.4484898746 --0.498602978885 --1.43123331666 --0.498600453138 --1.41397666931 --0.498599626124 --1.39672026038 --0.498600430786 --1.37946367264 --0.498602882027 --1.3622072339 --0.498606994748 --1.34495049715 --0.498612828553 --1.32769373059 --0.498620301485 --1.3104365468 --0.498629420996 --1.29317924381 --0.498640201985 --1.27592137456 --0.49865270406 --1.25866326689 --0.49866681546 --1.24140450359 --0.498674571514 --1.2221865058 --0.498667411506 --1.20297011733 --0.498653195798 --1.18571150303 --0.498640708625 --1.16845318675 --0.498629838228 --1.15119549632 --0.498620614409 --1.1339379847 --0.498613104224 --1.11668097973 --0.498607218265 --1.09942406416 --0.498602978885 --1.08216744661 --0.498600453138 --1.06491079926 --0.498599626124 --1.04765444994 --0.498600400984 --1.0303978622 --0.498602852225 --1.01314139366 --0.498606994748 --0.995884642005 --0.498612828553 --0.978627890349 --0.498620301485 --0.96137072146 --0.498629420996 --0.94411341846 --0.498640231788 --0.926855564117 --0.498652733862 --0.909597456455 --0.49866681546 --0.892338678241 --0.498674571514 --0.87312066555 --0.498667411506 --0.853904277086 --0.498653195798 --0.836645632982 --0.498640678823 --0.819387316704 --0.498629808426 --0.802129656076 --0.498620614409 --0.784872174263 --0.498613081872 --0.767615139484 --0.498607195914 --0.750358179211 --0.498602978885 --0.733101606369 --0.498600453138 --0.715844959021 --0.498599626124 --0.698588564992 --0.498600400984 --0.681332007051 --0.498602852225 --0.664075568319 --0.498606994748 --0.646818801761 --0.498612828553 --0.629562050104 --0.498620301485 --0.612304881215 --0.498629420996 --0.595047563315 --0.498640231788 --0.577789679169 --0.498652733862 --0.560531571507 --0.49866681546 --0.543272793293 --0.498674571514 --0.524054780602 --0.498667411506 --0.50483842194 --0.498653195798 --0.487579800188 --0.498640678823 --0.47032148391 --0.498629808426 --0.453063800931 --0.498620614409 --0.435806304216 --0.498613081872 --0.418549291789 --0.498607195914 --0.401292338967 --0.498602978885 --0.384035751223 --0.498600453138 --0.366779111326 --0.498599626124 --0.349522724748 --0.498600430786 --0.332266159356 --0.498602882027 --0.315009705722 --0.498606994748 --0.297752946615 --0.498612798751 --0.280496202409 --0.498620271683 --0.263239018619 --0.498629420996 --0.245981704444 --0.498640209436 --0.228723846376 --0.498652711511 --0.211465742439 --0.49866681546 --0.19420696795 --0.498674571514 --0.174988944084 --0.481424294412 --0.155765976757 --0.481410525739 --0.138507384807 --0.481398396194 --0.121249103919 --0.481387853622 --0.103991439566 --0.481378912926 --0.0867339577526 --0.481371581554 --0.0694769695401 --0.481365889311 --0.0522200483829 --0.481361806393 --0.034963499289 --0.481359347701 --0.0177068889607 --0.481358513236 --0.000450526131315 --0.481359258294 -0.0168060199357 --0.481361664832 -0.0340624446981 --0.481365665794 -0.0513191726059 --0.481371305883 -0.0685759019106 --0.4813785851 -0.0858330633491 --0.481387466192 -0.10309034586 --0.481397911906 -0.120348175988 --0.4814100191 -0.137606251985 --0.481423713267 -0.154865004122 --0.481431238353 -0.174083262682 --0.481424294412 -0.193299874663 --0.481410525739 -0.210558470339 --0.481398373842 -0.227816749364 --0.481387801468 -0.245074413717 --0.481378883123 -0.26233189553 --0.481371581554 -0.279588870704 --0.481365866959 -0.296845793724 --0.481361784041 -0.314102336764 --0.481359347701 -0.33135894686 --0.481358513236 -0.348615325987 --0.481359280646 -0.365871876478 --0.481361687184 -0.383128292859 --0.481365688146 -0.400385029614 --0.481371328235 -0.417641766369 --0.4813785851 -0.434898920357 --0.481387466192 -0.452156201005 --0.481397911906 -0.469414025545 --0.4814100191 -0.486672110856 --0.481423713267 -0.503930866718 --0.481431238353 -0.523149102926 --0.481424294412 -0.542365700006 --0.481410525739 -0.559624314308 --0.481398396194 -0.576882615686 --0.48138782382 -0.594140276313 --0.481378883123 -0.611397743225 --0.481371603906 -0.628654718399 --0.481365889311 -0.64591164887 --0.481361784041 -0.663168206811 --0.481359347701 -0.680424809456 --0.481358513236 -0.697681173682 --0.481359280646 -0.714937716722 --0.481361687184 -0.732194125652 --0.481365688146 -0.749450862408 --0.481371328235 -0.766707584262 --0.4813785851 -0.78396473825 --0.481387466192 -0.801222026348 --0.481397911906 -0.818479865789 --0.4814100191 -0.83573795855 --0.481423713267 -0.852996706962 --0.481431238353 -0.872214972973 --0.481424294412 -0.891431584954 --0.481410503388 -0.908690154552 --0.481398373842 -0.92594845593 --0.48138782382 -0.943206131458 --0.481378883123 -0.960463583469 --0.481371603906 -0.977720558643 --0.481365889311 -0.994977518917 --0.481361784041 -1.01223409176 --0.481359347701 -1.0294906795 --0.481358513236 -1.04674702883 --0.481359280646 -1.06400358677 --0.481361687184 -1.0812600255 --0.481365688146 -1.09851673245 --0.481371328235 -1.1157734394 --0.481378562748 -1.13303059339 --0.48138744384 -1.15028786659 --0.481397911906 -1.16754570603 --0.4814100191 -1.18480381369 --0.481423713267 -1.20206257701 --0.481431238353 -1.22128081322 --0.481424294412 -1.2404974103 --0.481410525739 -1.2577559948 --0.481398396194 -1.27501428127 --0.48138782382 -1.2922719717 --0.481378883123 -1.30952945351 --0.481371603906 -1.32678642869 --0.481365911662 -1.34404334426 --0.481361806393 -1.3612998724 --0.481359347701 -1.37855648994 --0.481358513236 -1.39581286907 --0.481359280646 -1.41306939721 --0.481361687184 -1.43032580614 --0.481365688146 -1.44758254289 --0.481371328235 -1.46483930945 --0.481378562748 -1.48209649324 --0.48138744384 -1.49935376644 --0.481397934258 -1.51661157608 --0.4814100191 -1.53386965394 --0.481423690915 -1.55112841725 --0.481431238353 -1.57034665346 --0.481424294412 -1.58956328034 --0.481410503388 -1.60682189464 --0.481398373842 -1.62408018112 --0.48138782382 -1.64133784175 --0.481378883123 -1.65859529376 --0.481371559203 -1.67585226893 --0.481365866959 -1.6931092143 --0.481361806393 -1.71036577225 --0.481359347701 -1.72762235999 --0.481358513236 -1.74487870932 --0.481359280646 -1.76213526726 --0.481361687184 -1.77939170599 --0.481365688146 -1.79664844275 --0.481371328235 -1.8139051795 --0.4813785851 -1.83116233349 --0.481387466192 -1.84841957689 --0.481397934258 -1.86567741633 --0.481410041452 -1.88293552399 --0.481423713267 -1.90019425749 --0.481431238353 -1.9194124937 --0.481424294412 -1.93862909078 --0.481410503388 -1.95588767529 --0.481398373842 -1.97314596176 --0.48138782382 -1.99040365219 --0.481378883123 -2.00766116381 --0.481371603906 -2.02491813898 --0.481365911662 -2.04217505455 --0.481361806393 -2.05943161249 --0.481359347701 -2.07668823004 --0.481358513236 -2.09394454956 --0.481359280646 -2.1112011075 --0.481361687184 -2.12845760584 --0.481365688146 -2.14571434259 --0.481371328235 -2.16297107935 --0.4813785851 -2.18022817373 --0.481387466192 -2.19748544693 --0.481397934258 -2.21474331617 --0.481410041452 -2.23200136423 --0.481423713267 -2.24926012754 --0.481431238353 -2.26847833395 --0.481424294412 -2.28769487142 --0.481410525739 -2.30495351553 --0.481398396194 -2.322211802 --0.48138782382 -2.33946949244 --0.481378883123 -2.35672706366 --0.481371559203 -2.37398403883 --0.481365844607 -2.39124089479 --0.481361784041 -2.40849745273 --0.481359347701 -2.42575412989 --0.481358513236 -2.44301050902 --0.481359280646 -2.46026700735 --0.481361687184 -2.47752338648 --0.481365688146 -2.49478012323 --0.481371328235 -2.51203685999 --0.481378562748 -2.52929401398 --0.48138744384 -2.54655128718 --0.481397934258 -2.56380909682 --0.481410041452 -2.58106720448 --0.481423713267 -2.59832596779 --0.481431238353 -2.6175442338 --0.481424294412 -2.63676089048 --0.481410503388 -2.65401941538 --0.481398373842 -2.67127770185 --0.48138782382 -2.68853539228 --0.481378883123 -2.70579284429 --0.481371581554 -2.72304981947 --0.481365866959 -2.74030673504 --0.481361761689 -2.75756329298 --0.481359325349 -2.77481991053 --0.481358513236 -2.79207628966 --0.481359280646 -2.80933278799 --0.481361687184 -2.82658916712 --0.481365688146 -2.84384590387 --0.481371328235 -2.86110264063 --0.481378562748 -2.87835985422 --0.48138744384 -2.89561718702 --0.481397911906 -2.91287499666 --0.4814100191 -2.93013304472 --0.481423713267 -2.94739180803 --0.481431238353 -2.96661007404 --0.481424294412 -2.98582667112 --0.481410525739 -3.00308531523 --0.481398396194 -3.02034360171 --0.481387853622 -3.03760117293 --0.481378912926 -3.05485862494 --0.481371581554 -3.07211565972 --0.481365889311 -3.08937263489 --0.481361806393 -3.10662919283 --0.481359347701 -3.12388575077 --0.481358513236 -3.14114210208 --0.481359258294 --3.12478667498 --0.481361664832 --3.10753029585 --0.481365665794 --3.09027355909 --0.481371305883 --3.07301682234 --0.4813785851 --3.05575960875 --0.481387466192 --3.03850227594 --0.481397911906 --3.0212444663 --0.4814100191 --3.00398641825 --0.481423713267 --2.98672765494 --0.481431238353 --2.96750938893 --0.481424294412 --2.94829279184 --0.481410525739 --2.93103414774 --0.481398373842 --2.91377586126 --0.481387801468 --2.89651829004 --0.481378883123 --2.87926083803 --0.481371581554 --2.86200380325 --0.481365866959 --2.84474682808 --0.481361784041 --2.82749027014 --0.481359347701 --2.8102337122 --0.481358513236 --2.79297739267 --0.481359280646 --2.77572077513 --0.481361687184 --2.75846427679 --0.481365688146 --2.74120754004 --0.481371328235 --2.72395086289 --0.4813785851 --2.7066937685 --0.481387466192 --2.6894364953 --0.481397911906 --2.67217862606 --0.4814100191 --2.6549205184 --0.481423713267 --2.63766175509 --0.481431238353 --2.61844354868 --0.481424294412 --2.5992270112 --0.481410525739 --2.5819683671 --0.481398396194 --2.56471008063 --0.48138782382 --2.5474523902 --0.481378883123 --2.53019487858 --0.481371603906 --2.5129379034 --0.481365889311 --2.49568098784 --0.481361784041 --2.4784244299 --0.481359347701 --2.46116781235 --0.481358513236 --2.44391143322 --0.481359280646 --2.42665487528 --0.481361687184 --2.40939849615 --0.481365688146 --2.3921417594 --0.481371328235 --2.37488502264 --0.4813785851 --2.35762786865 --0.481387466192 --2.34037059545 --0.481397911906 --2.32311278582 --0.4814100191 --2.30585473776 --0.481423713267 --2.28859597445 --0.481431238353 --2.26937764883 --0.481424294412 --2.25016099215 --0.481410503388 --2.23290246725 --0.481398373842 --2.21564418078 --0.48138782382 --2.19838649034 --0.481378883123 --2.18112903833 --0.481371603906 --2.16387206316 --0.481365889311 --2.14661514759 --0.481361784041 --2.12935858965 --0.481359347701 --2.1121019721 --0.481358513236 --2.09484559297 --0.481359280646 --2.07758909464 --0.481361687184 --2.06033271551 --0.481365688146 --2.04307597876 --0.481371328235 --2.025819242 --0.481378562748 --2.00856205821 --0.48138744384 --1.99130475521 --0.481397911906 --1.97404694557 --0.4814100191 --1.95678883791 --0.481423713267 --1.9395300448 --0.481431238353 --1.92031180859 --0.481424294412 --1.90109521151 --0.481410525739 --1.88383662701 --0.481398396194 --1.86657834053 --0.48138782382 --1.8493206799 --0.481378883123 --1.83206319809 --0.481371603906 --1.81480622292 --0.481365911662 --1.79754930734 --0.481361806393 --1.78029274941 --0.481359347701 --1.76303613186 --0.481358513236 --1.74577975273 --0.481359280646 --1.72852322459 --0.481361687184 --1.71126681566 --0.481365688146 --1.69401007891 --0.481371328235 --1.67675334215 --0.481378562748 --1.65949618816 --0.48138744384 --1.64223888517 --0.481397934258 --1.62498104573 --0.4814100191 --1.60772299767 --0.481423690915 --1.59046426415 --0.481431238353 --1.57124599814 --0.481424294412 --1.55202937126 --0.481410503388 --1.53477078676 --0.481398373842 --1.51751253009 --0.48138782382 --1.50025486946 --0.481378883123 --1.48299735784 --0.481371559203 --1.46574035287 --0.481365866959 --1.4484834373 --0.481361806393 --1.43122687936 --0.481359347701 --1.41397026181 --0.481358513236 --1.39671391249 --0.481359280646 --1.37945735454 --0.481361687184 --1.36220091581 --0.481365688146 --1.34494420886 --0.481371328235 --1.32768750191 --0.4813785851 --1.31043034792 --0.481387466192 --1.29317307472 --0.481397934258 --1.27591523528 --0.481410041452 --1.25865715742 --0.481423713267 --1.24139842391 --0.481431238353 --1.2221801579 --0.481424294412 --1.20296353102 --0.481410503388 --1.18570494652 --0.481398373842 --1.16844666004 --0.48138782382 --1.15118896961 --0.481378883123 --1.1339314878 --0.481371603906 --1.11667451262 --0.481365911662 --1.09941759705 --0.481361806393 --1.08216103911 --0.481359347701 --1.06490442157 --0.481358513236 --1.04764807224 --0.481359280646 --1.03039154411 --0.481361687184 --1.01313513517 --0.481365688146 --0.995878383516 --0.481371328235 --0.978621646762 --0.4813785851 --0.961364507675 --0.481387466192 --0.944107234478 --0.481397934258 --0.926849395037 --0.481410041452 --0.909591302276 --0.481423713267 --0.892332553864 --0.481431238353 --0.873114317655 --0.481424294412 --0.853897705674 --0.481410525739 --0.836639076471 --0.481398396194 --0.819380789995 --0.48138782382 --0.80212315917 --0.481378883123 --0.784865677357 --0.481371559203 --0.767608672381 --0.481365844607 --0.750351756811 --0.481361784041 --0.733095213771 --0.481359347701 --0.715838581323 --0.481358513236 --0.698582217097 --0.481359280646 --0.681325703859 --0.481361687184 --0.664069265127 --0.481365688146 --0.64681251347 --0.481371328235 --0.629555791616 --0.481378562748 --0.612298637629 --0.48138744384 --0.59504134953 --0.481397934258 --0.577783510089 --0.481410041452 --0.560525432229 --0.481423713267 --0.543266683817 --0.481431238353 --0.524048432708 --0.481424294412 --0.504831820727 --0.481410503388 --0.487573236227 --0.481398373842 --0.470314957201 --0.48138782382 --0.453057289123 --0.481378883123 --0.435799814761 --0.481371581554 --0.418542839587 --0.481365866959 --0.401285909116 --0.481361761689 --0.384029351175 --0.481359325349 --0.366772741079 --0.481358513236 --0.349516376853 --0.481359280646 --0.332259833813 --0.481361687184 --0.315003409982 --0.481365688146 --0.297746680677 --0.481371328235 --0.280489951372 --0.481378562748 --0.263232797384 --0.48138744384 --0.245975513011 --0.481397911906 --0.228717669845 --0.4814100191 --0.211459591985 --0.481423713267 --0.194200839848 --0.481431238353 --0.174982585013 --0.464162230492 --0.15575933829 --0.464148901403 --0.138500779867 --0.464137151837 --0.121242528781 --0.46412691474 --0.10398488678 --0.464118264616 --0.086727431044 --0.464111171663 --0.0694704726339 --0.464105643332 --0.052213575691 --0.464101679623 --0.0349570512772 --0.464099287987 --0.0177004672587 --0.464098468423 --0.000444130972028 --0.46409920603 -0.0168123887852 --0.464101545513 -0.0340687874705 --0.464105427265 -0.0513254897669 --0.46411088109 -0.0685821920633 --0.464117921889 -0.0858393255621 --0.464126557112 -0.103096580133 --0.464136697352 -0.12035438791 --0.464148409665 -0.137612443418 --0.464161664248 -0.154871173203 --0.464168965816 -0.174089666456 --0.464162252843 -0.193306509406 --0.464148901403 -0.210565075278 --0.464137129485 -0.227823331952 --0.464126907289 -0.245080970228 --0.464118257165 -0.262338422239 --0.464111149311 -0.27959536761 --0.464105598628 -0.296852260828 --0.464101657271 -0.314108788967 --0.464099287987 -0.33136536926 --0.464098468423 -0.348621711135 --0.464099228382 -0.365878246724 --0.464101567865 -0.383134640753 --0.464105449617 -0.400391347706 --0.464110925793 -0.417648054659 --0.464117944241 -0.434905171394 --0.464126557112 -0.45216242969 --0.464136697352 -0.469420239329 --0.464148409665 -0.486678294838 --0.4641616866 -0.503937028349 --0.464168988168 -0.523155510426 --0.464162252843 -0.542372345924 --0.464148901403 -0.559630930424 --0.464137129485 -0.576889201999 --0.464126884937 -0.594146832824 --0.464118234813 -0.611404284835 --0.464111171663 -0.628661230207 --0.46410562098 -0.645918115973 --0.464101657271 -0.663174644112 --0.464099287987 -0.680431216955 --0.464098468423 -0.697687551379 --0.464099228382 -0.714944064617 --0.464101567865 -0.732200458646 --0.464105449617 -0.7494571805 --0.464110925793 -0.766713872552 --0.464117944241 -0.783970996737 --0.464126557112 -0.801228269935 --0.464136697352 -0.818486079574 --0.464148409665 -0.835744127631 --0.464161664248 -0.853002846241 --0.464168965816 -0.87222135067 --0.464162252843 -0.89143820107 --0.464148901403 -0.908696755766 --0.464137129485 -0.925955027342 --0.464126907289 -0.943212673068 --0.464118257165 -0.960470110178 --0.464111171663 -0.977727070451 --0.46410562098 -0.994983986021 --0.464101657271 -1.01224052906 --0.464099287987 -1.029497087 --0.464098468423 -1.04675340652 --0.464099228382 -1.06400996447 --0.464101567865 -1.08126637339 --0.464105427265 -1.09852305054 --0.464110903442 -1.11577972769 --0.464117944241 -1.13303685188 --0.464126557112 -1.15029409528 --0.464136697352 -1.16755190492 --0.464148409665 -1.18481001258 --0.464161664248 -1.20206874609 --0.464168965816 -1.22128719091 --0.464162252843 -1.24050402641 --0.464148923754 -1.25776261091 --0.464137151837 -1.27502086759 --0.464126907289 -1.29227849841 --0.464118257165 -1.30953595042 --0.464111171663 -1.3267929256 --0.464105643332 -1.34404984117 --0.464101679623 -1.3613063395 --0.464099287987 -1.37856292724 --0.464098468423 -1.39581927657 --0.464099228382 -1.41307577491 --0.464101567865 -1.43033215404 --0.464105427265 -1.44758886099 --0.464110903442 -1.46484559774 --0.464117944241 -1.48210275173 --0.464126557112 -1.49935999513 --0.464136697352 -1.51661777496 --0.464148409665 -1.53387582302 --0.464161664248 -1.55113458633 --0.464168965816 -1.57035309076 --0.464162252843 -1.58956992626 --0.464148879051 -1.60682848096 --0.464137107134 -1.62408673763 --0.464126884937 -1.64134436846 --0.464118234813 -1.65860182047 --0.464111149311 -1.67585879564 --0.46410562098 -1.69311568141 --0.464101709425 -1.71037220955 --0.464099317789 -1.72762879729 --0.464098468423 -1.74488511682 --0.464099228382 -1.76214164496 --0.464101567865 -1.77939805389 --0.464105427265 -1.79665476084 --0.464110903442 -1.81391146779 --0.464117944241 -1.83116859198 --0.464126557112 -1.84842583537 --0.464136697352 -1.86568364501 --0.464148409665 -1.88294172287 --0.464161664248 -1.90020042658 --0.464168965816 -1.9194188714 --0.464162230492 -1.9386357069 --0.464148856699 -1.9558942914 --0.464137107134 -1.97315257788 --0.464126907289 -1.9904102385 --0.464118257165 -2.00766766071 --0.464111171663 -2.02492457628 --0.464105643332 -2.04218149185 --0.464101679623 -2.05943804979 --0.464099287987 -2.07669466734 --0.464098468423 -2.09395098686 --0.464099228382 -2.1112074852 --0.464101567865 -2.12846392393 --0.464105427265 -2.14572066069 --0.464110903442 -2.16297733784 --0.464117944241 -2.18023443222 --0.464126557112 -2.19749170542 --0.464136697352 -2.21474951505 --0.464148409665 -2.23200756311 --0.4641616866 -2.24926632643 --0.464168988168 -2.26848477125 --0.464162230492 -2.28770154714 --0.464148901403 -2.30496013165 --0.464137151837 -2.32221841812 --0.464126884937 -2.33947610855 --0.464118234813 -2.35673362017 --0.464111149311 -2.37399059534 --0.464105598628 -2.3912474513 --0.464101657271 -2.40850394964 --0.464099287987 -2.42576050759 --0.464098468423 -2.44301682711 --0.464099228382 -2.46027332544 --0.464101567865 -2.47752970457 --0.464105427265 -2.49478644133 --0.464110903442 -2.51204317808 --0.464117944241 -2.52930027246 --0.464126557112 -2.54655748606 --0.464136697352 -2.56381529569 --0.464148409665 -2.58107340336 --0.464161664248 -2.59833216667 --0.464168965816 -2.6175506115 --0.464162252843 -2.63676744699 --0.464148879051 -2.65402603149 --0.464137107134 -2.67128431797 --0.464126884937 -2.6885419488 --0.464118234813 -2.70579940081 --0.464111171663 -2.72305637598 --0.46410562098 -2.74031323195 --0.46410163492 -2.75756973028 --0.464099265635 -2.77482634783 --0.464098468423 -2.79208266735 --0.464099228382 -2.80933916568 --0.464101567865 -2.82659554481 --0.464105427265 -2.84385222197 --0.464110903442 -2.86110895872 --0.464117921889 -2.87836617231 --0.46412653476 -2.89562344551 --0.464136697352 -2.91288119554 --0.464148409665 -2.9301392436 --0.464161664248 -2.94739800692 --0.464168965816 -2.96661651134 --0.464162230492 -2.98583334684 --0.464148901403 -3.00309193134 --0.464137151837 -3.02035015821 --0.46412691474 -3.03760772944 --0.464118264616 -3.05486518145 --0.464111171663 -3.07212215662 --0.464105643332 -3.08937907219 --0.464101679623 -3.10663563013 --0.464099287987 -3.12389218807 --0.464098468423 -3.14114847978 --0.46409920603 --3.12478029728 --0.464101545513 --3.10752391815 --0.464105427265 --3.090267241 --0.46411088109 --3.07301050425 --0.464117921889 --3.05575329065 --0.464126557112 --3.03849601745 --0.464136697352 --3.02123826742 --0.464148409665 --3.00398021937 --0.464161664248 --2.98672145605 --0.464168965816 --2.96750295162 --0.464162252843 --2.94828611612 --0.464148901403 --2.93102753162 --0.464137129485 --2.91376930475 --0.464126907289 --2.89651173353 --0.464118257165 --2.87925428152 --0.464111149311 --2.86199730634 --0.464105598628 --2.84474039078 --0.464101657271 --2.82748383284 --0.464099287987 --2.8102272749 --0.464098468423 --2.79297095537 --0.464099228382 --2.77571439743 --0.464101567865 --2.7584579587 --0.464105449617 --2.74120122194 --0.464110925793 --2.7239446044 --0.464117944241 --2.70668751002 --0.464126557112 --2.68943017721 --0.464136697352 --2.67217236757 --0.464148409665 --2.65491437912 --0.4641616866 --2.63765567541 --0.464168988168 --2.61843717098 --0.464162252843 --2.59922033548 --0.464148901403 --2.58196175099 --0.464137129485 --2.56470346451 --0.464126884937 --2.54744577408 --0.464118234813 --2.53018832207 --0.464111171663 --2.5129314065 --0.46410562098 --2.49567449093 --0.464101657271 --2.47841799259 --0.464099287987 --2.46116143465 --0.464098468423 --2.44390505552 --0.464099228382 --2.42664855718 --0.464101567865 --2.40939217806 --0.464105449617 --2.3921354413 --0.464110925793 --2.37487876415 --0.464117944241 --2.35762166977 --0.464126557112 --2.34036439657 --0.464136697352 --2.32310658693 --0.464148409665 --2.30584853888 --0.464161664248 --2.28858983517 --0.464168965816 --2.26937133074 --0.464162252843 --2.25015443564 --0.464148901403 --2.23289591074 --0.464137129485 --2.21563762426 --0.464126907289 --2.19837993383 --0.464118257165 --2.18112248182 --0.464111171663 --2.16386550665 --0.46410562098 --2.14660865068 --0.464101657271 --2.12935215235 --0.464099287987 --2.1120955944 --0.464098468423 --2.09483927488 --0.464099228382 --2.07758271694 --0.464101567865 --2.06032633781 --0.464105427265 --2.04306966066 --0.464110903442 --2.02581292391 --0.464117944241 --2.00855576992 --0.464126557112 --1.99129852653 --0.464136697352 --1.97404071689 --0.464148409665 --1.95678263903 --0.464161664248 --1.93952390551 --0.464168965816 --1.92030543089 --0.464162252843 --1.90108859539 --0.464148923754 --1.88383004069 --0.464137151837 --1.86657178402 --0.464126907289 --1.84931415319 --0.464118257165 --1.83205670118 --0.464111171663 --1.81479972601 --0.464105643332 --1.79754281044 --0.464101679623 --1.7802862823 --0.464099287987 --1.76302969456 --0.464098468423 --1.74577334523 --0.464099228382 --1.7285168469 --0.464101567865 --1.71126046777 --0.464105427265 --1.69400376081 --0.464110903442 --1.67674705386 --0.464117944241 --1.65948992968 --0.464126557112 --1.64223265648 --0.464136697352 --1.62497484684 --0.464148409665 --1.60771679878 --0.464161664248 --1.59045809507 --0.464168965816 --1.57123962045 --0.464162252843 --1.55202275515 --0.464148879051 --1.53476417065 --0.464137107134 --1.51750591397 --0.464126884937 --1.50024828315 --0.464118234813 --1.48299080133 --0.464111149311 --1.46573385596 --0.46410562098 --1.44847697019 --0.464101709425 --1.43122041225 --0.464099317789 --1.41396385431 --0.464098468423 --1.39670753479 --0.464099228382 --1.37945100665 --0.464101567865 --1.36219459772 --0.464105427265 --1.34493789077 --0.464110903442 --1.32768121362 --0.464117944241 --1.31042408943 --0.464126557112 --1.29316684604 --0.464136697352 --1.2759090364 --0.464148409665 --1.25865098834 --0.464161664248 --1.24139225483 --0.464168965816 --1.2221737504 --0.464162230492 --1.2029569149 --0.464148856699 --1.1856983304 --0.464137107134 --1.16844007373 --0.464126907289 --1.1511824429 --0.464118257165 --1.13392499089 --0.464111171663 --1.11666801572 --0.464105643332 --1.09941110015 --0.464101679623 --1.08215460181 --0.464099287987 --1.06489801407 --0.464098468423 --1.04764166474 --0.464099228382 --1.03038516641 --0.464101567865 --1.01312878728 --0.464105427265 --0.995872080325 --0.464110903442 --0.978615373373 --0.464117944241 --0.961358249187 --0.464126557112 --0.944100990892 --0.464136697352 --0.926843181253 --0.464148409665 --0.909585118294 --0.4641616866 --0.892326369882 --0.464168988168 --0.873107895255 --0.464162230492 --0.853891074658 --0.464148901403 --0.836632475257 --0.464137151837 --0.819374203682 --0.464126884937 --0.802116587758 --0.464118234813 --0.784859120846 --0.464111149311 --0.767602145672 --0.464105598628 --0.750345274806 --0.464101657271 --0.733088761568 --0.464099287987 --0.715832173824 --0.464098468423 --0.6985758394 --0.464099228382 --0.681319326163 --0.464101567865 --0.664062932134 --0.464105427265 --0.646806225181 --0.464110903442 --0.629549518228 --0.464117944241 --0.612292379141 --0.464126557112 --0.595035120845 --0.464136697352 --0.577777311206 --0.464148409665 --0.560519248247 --0.464161664248 --0.543260529637 --0.464168965816 --0.52404204011 --0.464162252843 --0.504825182259 --0.464148879051 --0.487566627562 --0.464137107134 --0.470308378339 --0.464126884937 --0.453050732612 --0.464118234813 --0.435793288052 --0.464111171663 --0.41853634268 --0.46410562098 --0.401279434562 --0.46410163492 --0.384022898972 --0.464099265635 --0.366766303778 --0.464098468423 --0.349509969354 --0.464099228382 --0.332253456116 --0.464101567865 --0.314997062087 --0.464105427265 --0.297740362584 --0.464110903442 --0.280483648181 --0.464117921889 --0.263226516545 --0.46412653476 --0.245969265699 --0.464136697352 --0.228711456061 --0.464148409665 --0.211453404278 --0.464161664248 --0.194194678217 --0.464168965816 --0.174976184964 --0.444510489702 --0.155752532184 --0.444497652352 --0.138493999839 --0.44448634237 --0.12123577483 --0.444476462901 --0.103978158906 --0.44446811825 --0.0867207311094 --0.444461300969 --0.0694637997076 --0.444455973804 --0.0522069288418 --0.444452166558 --0.0349504328333 --0.444449864328 --0.017693876056 --0.444449074567 --0.0004375660792 --0.444449797273 -0.0168189264368 --0.444452047348 -0.0340752960183 --0.444455787539 -0.0513319727033 --0.444461047649 -0.068588649854 --0.444467812776 -0.0858457535505 --0.444476135075 -0.103102982044 --0.444485917687 -0.120360763744 --0.444497197866 -0.137618795038 --0.444509960711 -0.154877498746 --0.444516979158 -0.174096226692 --0.444510512054 -0.193313311786 --0.44449763 -0.210571851582 --0.444486275315 -0.227830082178 --0.444476462901 -0.245087690651 --0.444468140602 -0.26234511286 --0.444461300969 -0.27960203588 --0.444455973804 -0.296858906746 --0.444452166558 -0.314115419984 --0.444449864328 -0.331371977925 --0.444449074567 -0.348628282547 --0.444449797273 -0.365884780884 --0.444452047348 -0.38314114511 --0.444455809891 -0.400397822261 --0.444461092353 -0.417654499412 --0.444467835128 -0.434911593795 --0.444476112723 -0.452168829739 --0.444485895335 -0.469426624477 --0.444497197866 -0.486684657633 --0.444509983063 -0.503943353891 --0.44451700151 -0.523162081838 --0.444510512054 -0.542379170656 --0.44449763 -0.559637710452 --0.444486275315 -0.576895937324 --0.444476440549 -0.594153553247 --0.44446811825 -0.611410990357 --0.444461300969 -0.628667905927 --0.444455973804 -0.64592474699 --0.444452166558 -0.663181245327 --0.444449864328 -0.680437818169 --0.444449074567 -0.697694137692 --0.444449819625 -0.714950606227 --0.4444520697 -0.732206970453 --0.444455809891 -0.749463662505 --0.444461092353 -0.766720324755 --0.444467835128 -0.783977434039 --0.444476112723 -0.801234692336 --0.444485895335 -0.818492472172 --0.444497197866 -0.835750490427 --0.444509960711 -0.853009194136 --0.444516979158 -0.872227922082 --0.444510512054 -0.8914450109 --0.444497652351 -0.908703550696 --0.444486320019 -0.925961792469 --0.444476485252 -0.943219423294 --0.444468140602 -0.960476830601 --0.444461300969 -0.977733746171 --0.444455973804 -0.994990617036 --0.444452166558 -1.01224711537 --0.444449864328 -1.02950367331 --0.444449074567 -1.04675999284 --0.444449819625 -1.06401649118 --0.4444520697 -1.0812728405 --0.444455787539 -1.09852951765 --0.444461070001 -1.1157861948 --0.44446785748 -1.13304328918 --0.444476157427 -1.15030050278 --0.444485917687 -1.16755831241 --0.444497197866 -1.18481639027 --0.444509960711 -1.20207506418 --0.444516979158 -1.22129377723 --0.444510512054 -1.24051088095 --0.444497674703 -1.25776943564 --0.44448634237 -1.27502763271 --0.444476485252 -1.29228520393 --0.444468140602 -1.30954265595 --0.444461300969 -1.32679960132 --0.444455973804 -1.34405648709 --0.444452166558 -1.36131298542 --0.444449864328 -1.37856951356 --0.444449074567 -1.39582580328 --0.444449819625 -1.41308230162 --0.4444520697 -1.43033868075 --0.444455787539 -1.4475953579 --0.444461070001 -1.46485206485 --0.44446785748 -1.48210918903 --0.444476135075 -1.49936640262 --0.444485895335 -1.51662415266 --0.444497197866 -1.53388217091 --0.444509960711 -1.55114090442 --0.444516979158 -1.57035964728 --0.444510512054 -1.58957672119 --0.44449763 -1.60683524609 --0.444486297667 -1.62409347296 --0.444476462901 -1.64135110378 --0.44446811825 -1.65860852599 --0.444461300969 -1.67586547136 --0.444455973804 -1.69312232733 --0.44445219636 -1.71037879586 --0.444449894131 -1.72763538361 --0.444449074567 -1.74489170313 --0.444449797273 -1.76214817167 --0.444452047348 -1.77940455079 --0.444455787539 -1.79666122794 --0.444461070001 -1.81391787529 --0.444467835128 -1.83117496967 --0.444476112723 -1.84843221307 --0.444485895335 -1.86569002271 --0.444497197866 -1.88294807076 --0.444509960711 -1.90020674467 --0.444516979158 -1.91942545772 --0.444510489702 -1.93864256144 --0.444497607648 -1.95590111614 --0.444486297667 -1.97315934301 --0.444476485252 -1.99041694403 --0.444468140602 -2.00767436624 --0.444461300969 -2.02493131161 --0.444455973804 -2.04218816757 --0.444452166558 -2.05944466591 --0.444449864328 -2.07670122385 --0.444449074567 -2.09395754337 --0.444449797273 -2.11121404171 --0.444452047348 -2.12847042084 --0.444455787539 -2.14572709799 --0.444461070001 -2.16298371553 --0.444467835128 -2.18024080991 --0.444476135075 -2.19749808311 --0.444485917687 -2.21475589275 --0.444497197866 -2.23201394081 --0.444509983063 -2.24927264452 --0.44451700151 -2.26849132777 --0.444510489702 -2.28770840168 --0.444497652352 -2.30496692658 --0.44448634237 -2.32222515345 --0.444476462901 -2.33948284388 --0.44446811825 -2.35674029589 --0.444461300969 -2.37399721145 --0.444455973804 -2.39125406742 --0.444452166558 -2.40851056576 --0.444449864328 -2.42576706409 --0.444449074567 -2.44302332401 --0.444449819625 -2.46027988195 --0.4444520697 -2.47753626108 --0.444455787539 -2.49479293823 --0.444461070001 -2.51204961539 --0.44446785748 -2.52930670977 --0.444476135075 -2.54656392336 --0.444485895335 -2.56382167339 --0.444497197866 -2.58107972145 --0.444509960711 -2.59833848476 --0.444516979158 -2.61755716801 --0.444510512054 -2.63677418232 --0.444497652351 -2.65403282642 --0.444486297667 -2.6712911129 --0.444476440549 -2.68854868412 --0.44446811825 -2.70580607653 --0.444461300969 -2.7230629921 --0.444455973804 -2.74031984806 --0.444452166558 -2.7575763464 --0.444449864328 -2.77483296395 --0.444449074567 -2.79208922386 --0.444449819625 -2.80934572219 --0.4444520697 -2.82660210132 --0.444455787539 -2.84385871887 --0.444461070001 -2.86111545563 --0.444467835128 -2.87837260961 --0.444476112723 -2.89562982321 --0.444485895335 -2.91288757324 --0.444497197866 -2.93014556169 --0.444509960711 -2.9474042654 --0.444516979158 -2.96662306786 --0.444510489702 -2.98584020138 --0.444497652352 -3.00309872627 --0.44448634237 -3.02035689354 --0.444476462901 -3.03761446476 --0.44446811825 -3.05487191677 --0.444461300969 -3.07212889195 --0.444455973804 -3.08938574791 --0.444452166558 -3.10664218665 --0.444449864328 -3.12389874458 --0.444449074567 -3.14115503629 --0.444449797273 --3.12477374077 --0.444452047348 --3.10751736164 --0.444455787539 --3.0902607441 --0.444461047649 --3.07300400734 --0.444467812776 --3.05574685335 --0.444476135075 --3.03848963976 --0.444485917687 --3.02123188973 --0.444497197866 --3.00397390128 --0.444509960711 --2.98671519757 --0.444516979158 --2.96749639511 --0.444510512054 --2.94827926159 --0.44449763 --2.93102073669 --0.444486275315 --2.91376256942 --0.444476462901 --2.8965049982 --0.444468140602 --2.87924754619 --0.444461300969 --2.86199057102 --0.444455973804 --2.84473371505 --0.444452166558 --2.82747721672 --0.444449864328 --2.81022065878 --0.444449074567 --2.79296433926 --0.444449797273 --2.77570784092 --0.444452047348 --2.7584515214 --0.444455809891 --2.74119484424 --0.444461092353 --2.7239381671 --0.444467835128 --2.70668107271 --0.444476112723 --2.68942379951 --0.444485895335 --2.67216598987 --0.444497197866 --2.65490800142 --0.444509983063 --2.63764935732 --0.44451700151 --2.61843061447 --0.444510512054 --2.59921348095 --0.44449763 --2.58195495606 --0.444486275315 --2.56469672918 --0.444476440549 --2.54743909835 --0.44446811825 --2.53018164634 --0.444461300969 --2.51292473078 --0.444455973804 --2.49566787481 --0.444452166558 --2.47841137647 --0.444449864328 --2.46115487814 --0.444449074567 --2.44389855862 --0.444449819625 --2.42664206028 --0.4444520697 --2.40938568115 --0.444455809891 --2.3921289444 --0.444461092353 --2.37487232685 --0.444467835128 --2.35761523247 --0.444476112723 --2.34035795927 --0.444485895335 --2.32310020924 --0.444497197866 --2.30584216118 --0.444509960711 --2.28858345747 --0.444516979158 --2.26936477423 --0.444510512054 --2.25014770031 --0.444497652351 --2.23288917541 --0.444486320019 --2.21563088893 --0.444476485252 --2.19837319851 --0.444468140602 --2.1811158061 --0.444461300969 --2.16385889054 --0.444455973804 --2.14660203457 --0.444452166558 --2.12934553623 --0.444449864328 --2.11208897829 --0.444449074567 --2.09483271838 --0.444449819625 --2.07757622004 --0.4444520697 --2.06031984091 --0.444455787539 --2.04306316376 --0.444461070001 --2.025806427 --0.44446785748 --2.00854930282 --0.444476157427 --1.99129211903 --0.444485917687 --1.97403433919 --0.444497197866 --1.95677632093 --0.444509960711 --1.93951761722 --0.444516979158 --1.92029887438 --0.444510512054 --1.90108180046 --0.444497674703 --1.88382327557 --0.44448634237 --1.8665650487 --0.444476485252 --1.84930741787 --0.444468140602 --1.83204999566 --0.444461300969 --1.81479305029 --0.444455973804 --1.79753616452 --0.444452166558 --1.78027966618 --0.444449864328 --1.76302310824 --0.444449074567 --1.74576681852 --0.444449819625 --1.72851032019 --0.4444520697 --1.71125394106 --0.444455787539 --1.69399726391 --0.444461070001 --1.67674058676 --0.44446785748 --1.65948352218 --0.444476135075 --1.64222627878 --0.444485895335 --1.62496846915 --0.444497197866 --1.60771045089 --0.444509960711 --1.59045177698 --0.444516979158 --1.57123306394 --0.444510512054 --1.55201596022 --0.44449763 --1.53475740552 --0.444486297667 --1.51749914885 --0.444476462901 --1.50024154782 --0.44446811825 --1.48298412561 --0.444461300969 --1.46572721004 --0.444455973804 --1.44847035408 --0.44445219636 --1.43121382594 --0.444449894131 --1.413957268 --0.444449074567 --1.39670094848 --0.444449797273 --1.37944447994 --0.444452047348 --1.36218810081 --0.444455787539 --1.34493139386 --0.444461070001 --1.32767474652 --0.444467835128 --1.31041765213 --0.444476112723 --1.29316043854 --0.444485895335 --1.2759026587 --0.444497197866 --1.25864461064 --0.444509960711 --1.24138590693 --0.444516979158 --1.22216716409 --0.444510489702 --1.20295009017 --0.444497607648 --1.18569156528 --0.444486297667 --1.16843333841 --0.444476485252 --1.15117573739 --0.444468140602 --1.13391831517 --0.444461300969 --1.1166613698 --0.444455973804 --1.09940445423 --0.444452166558 --1.08214795589 --0.444449864328 --1.06489142775 --0.444449074567 --1.04763510823 --0.444449797273 --1.0303786099 --0.444452047348 --1.01312226057 --0.444455787539 --0.995865598319 --0.444461070001 --0.978608906269 --0.444467835128 --0.961351796985 --0.444476135075 --0.944094568491 --0.444485917687 --0.926836773753 --0.444497197866 --0.909578740597 --0.444509983063 --0.892320036888 --0.44451700151 --0.873101323843 --0.444510489702 --0.853884249926 --0.444497652352 --0.836625695229 --0.44448634237 --0.819367468357 --0.444476462901 --0.802109852433 --0.44446811825 --0.784852415323 --0.444461300969 --0.767595484853 --0.444455973804 --0.750338628888 --0.444452166558 --0.733082130551 --0.444449864328 --0.715825587511 --0.444449074567 --0.698569282889 --0.444449819625 --0.68131275475 --0.4444520697 --0.664056405425 --0.444455787539 --0.646799743176 --0.444461070001 --0.629543051124 --0.44446785748 --0.612285941839 --0.444476135075 --0.595028713346 --0.444485895335 --0.577770933509 --0.444497197866 --0.560512900353 --0.444509960711 --0.543254211545 --0.444516979158 --0.524035483599 --0.444510512054 --0.50481838733 --0.444497652351 --0.487559847534 --0.444486297667 --0.470301613211 --0.444476440549 --0.453043997288 --0.44446811825 --0.43578658998 --0.444461300969 --0.41852966696 --0.444455973804 --0.401272781193 --0.444452166558 --0.384016275406 --0.444449864328 --0.366759710014 --0.444449074567 --0.349503405392 --0.444449819625 --0.332246921956 --0.4444520697 --0.31499055773 --0.444455787539 --0.297733873129 --0.444461070001 --0.280477181077 --0.444467835128 --0.263220086694 --0.444476112723 --0.245962865651 --0.444485895335 --0.228705082089 --0.444497197866 --0.211447056383 --0.444509960711 --0.194188356399 --0.444516979158 --0.174969621003 --0.424822583795 --0.155745543539 --0.424810253083 --0.138487033546 --0.424799382686 --0.121228832752 --0.424789920449 --0.103971244767 --0.424781903624 --0.0867138467729 --0.424775339663 --0.0694569414482 --0.424770206213 --0.0522000975907 --0.424766562879 --0.0349436304532 --0.424764379859 --0.0176871011499 --0.4247636199 --0.000430818181485 --0.424764297903 -0.0168256463949 --0.42476644367 -0.0340819871053 --0.424770049751 -0.0513386363164 --0.424775116146 -0.0685952883214 --0.424781605601 -0.0858523659408 --0.424789577722 -0.103109566495 --0.424798972905 -0.120367318392 --0.424809828401 -0.13762531802 --0.424822106958 -0.154883991927 --0.424828827381 -0.174102969468 --0.424822583795 -0.193320304156 --0.424810230732 -0.210578817875 --0.424799315631 -0.227837022394 --0.424789875746 -0.245094608516 --0.424781881273 -0.262351997197 --0.424775317311 -0.279608897865 --0.424770228564 -0.296865753829 --0.424766585231 -0.314122229814 --0.424764357508 -0.331378757954 --0.424763575196 -0.348635032773 --0.424764275551 -0.365891493857 --0.42476644367 -0.383147835732 --0.424770049751 -0.40040449053 --0.424775116146 -0.417661137879 --0.424781605601 -0.43491820991 --0.424789555371 -0.452175416052 --0.424798950553 -0.469433180988 --0.424809828401 -0.486691191792 --0.424822106958 -0.503949858248 --0.424828827381 -0.523168832063 --0.424822583795 -0.542386159301 --0.424810230732 -0.559644669294 --0.424799315631 -0.576902866364 --0.424789875746 -0.594160452485 --0.424781881273 -0.611417844891 --0.424775317311 -0.62867474556 --0.424770206213 -0.645931586623 --0.424766562879 -0.663188055158 --0.424764379859 -0.680444613099 --0.424763597548 -0.69770090282 --0.424764297903 -0.714957341552 --0.424766466021 -0.732213675976 --0.424770049751 -0.749470338225 --0.424775116146 -0.766726985574 --0.424781605601 -0.783984065056 --0.424789555371 -0.801241278648 --0.424798950553 -0.818499028683 --0.424809828401 -0.835757032037 --0.424822106958 -0.853015720844 --0.424828827381 -0.87223470211 --0.424822583795 -0.891452029348 --0.424810230732 -0.90871052444 --0.424799337983 -0.925968721509 --0.424789898098 -0.943226337433 --0.424781881273 -0.960483729839 --0.424775317311 -0.977740615606 --0.424770228564 -0.994997456669 --0.424766585231 -1.0122539103 --0.424764357508 -1.02951043844 --0.424763575196 -1.04676672816 --0.424764297903 -1.0640231967 --0.424766466021 -1.08127951622 --0.424770049751 -1.09853616357 --0.424775116146 -1.11579284072 --0.424781605601 -1.1330499351 --0.424789577722 -1.15030711889 --0.424798972905 -1.16756486893 --0.424809828401 -1.18482288718 --0.424822106958 -1.20208156109 --0.424828827381 -1.22130054235 --0.424822583795 -1.24051788449 --0.424810253083 -1.25777640939 --0.424799360335 -1.27503457665 --0.424789875746 -1.29229214788 --0.424781881273 -1.30954957008 --0.424775339663 -1.32680645585 --0.424770206213 -1.34406331181 --0.424766562879 -1.36131981015 --0.424764357508 -1.37857630849 --0.424763575196 -1.39583256841 --0.424764275551 -1.41308903694 --0.42476644367 -1.43034538627 --0.424770049751 -1.44760206342 --0.424775116146 -1.46485871077 --0.424781605601 -1.48211577535 --0.424789555371 -1.49937298894 --0.424798950553 -1.51663073898 --0.424809828401 -1.53388872742 --0.424822106958 -1.55114740133 --0.424828849733 -1.5703663826 --0.424822606147 -1.58958372474 --0.424810230732 -1.60684221983 --0.424799360335 -1.6241004169 --0.424789898098 -1.64135801792 --0.424781881273 -1.65861541033 --0.424775339663 -1.6758723259 --0.424770228564 -1.69312915206 --0.424766562879 -1.71038559079 --0.424764357508 -1.72764214873 --0.424763597548 -1.74489843845 --0.424764253199 -1.76215487719 --0.424766421318 -1.77941122651 --0.424770049751 -1.79666787386 --0.424775116146 -1.81392452121 --0.424781605601 -1.83118161559 --0.424789555371 -1.84843879938 --0.424798950553 -1.86569654942 --0.424809828401 -1.88295456767 --0.424822106958 -1.90021324158 --0.424828827381 -1.91943222284 --0.424822583795 -1.93864956498 --0.424810230732 -1.95590808988 --0.424799360335 -1.97316625715 --0.424789920449 -1.99042382836 --0.424781881273 -2.00768128037 --0.424775317311 -2.02493822575 --0.424770206213 -2.04219502211 --0.424766562879 -2.05945146084 --0.424764357508 -2.07670801878 --0.424763575196 -2.0939642787 --0.424764275551 -2.11122071743 --0.42476644367 -2.12847709656 --0.424770049751 -2.1457337141 --0.424775116146 -2.16299033165 --0.424781605601 -2.18024742603 --0.424789577722 -2.19750463962 --0.424798972905 -2.21476244926 --0.424809828401 -2.23202043772 --0.424822106958 -2.24927908182 --0.424828827381 -2.26849806309 --0.424822583795 -2.28771537542 --0.424810253083 -2.30497390032 --0.424799382686 -2.32223212719 --0.424789898098 -2.33948975802 --0.424781881273 -2.35674715042 --0.424775339663 -2.37400400639 --0.424770206213 -2.39126086235 --0.424766540527 -2.40851736069 --0.424764357508 -2.42577385902 --0.424763597548 -2.44303011894 --0.424764297903 -2.46028661728 --0.424766466021 -2.4775429368 --0.424770049751 -2.49479961396 --0.424775116146 -2.5120562315 --0.424781605601 -2.52931326628 --0.424789555371 -2.54657047987 --0.424798950553 -2.5638282299 --0.424809828401 -2.58108627796 --0.424822106958 -2.59834498167 --0.424828827381 -2.61756390333 --0.424822583795 -2.63678121567 --0.424810253083 -2.65403980017 --0.424799360335 -2.67129802704 --0.424789898098 -2.68855559826 --0.424781881273 -2.70581293106 --0.424775317311 -2.72306978703 --0.424770206213 -2.74032664299 --0.424766562879 -2.75758314133 --0.424764357508 -2.77483969927 --0.424763575196 -2.79209595919 --0.424764297903 -2.80935245752 --0.424766466021 -2.82660883665 --0.424770049751 -2.8438654542 --0.424775116146 -2.86112213135 --0.424781605601 -2.87837922573 --0.424789555371 -2.89563643932 --0.424798950553 -2.91289418935 --0.424809828401 -2.93015211821 --0.424822106958 -2.94741076231 --0.424828827381 -2.96662980318 --0.424822583795 -2.98584717512 --0.424810253083 -3.00310564041 --0.424799382686 -3.02036380768 --0.424789920449 -3.0376213789 --0.424781903624 -3.05487883091 --0.424775339663 -3.07213580608 --0.424770206213 -3.08939260244 --0.424766562879 -3.10664898157 --0.424764379859 -3.12390547991 --0.4247636199 -3.14116177161 --0.424764297903 --3.12476700544 --0.42476644367 --3.10751062632 --0.424770049751 --3.09025400877 --0.424775116146 --3.07299733162 --0.424781605601 --3.05574023723 --0.424789577722 --3.03848302364 --0.424798972905 --3.02122527361 --0.424809828401 --3.00396734476 --0.424822106958 --2.98670870066 --0.424828827381 --2.96748965979 --0.424822583795 --2.94827228785 --0.424810230732 --2.93101382256 --0.424799315631 --2.91375565529 --0.424789875746 --2.89649808407 --0.424781881273 --2.87924069166 --0.424775317311 --2.86198371649 --0.424770228564 --2.84472686052 --0.424766585231 --2.82747042179 --0.424764357508 --2.81021386385 --0.424763575196 --2.79295760393 --0.424764275551 --2.7757011652 --0.42476644367 --2.75844484568 --0.424770049751 --2.74118822813 --0.424775116146 --2.72393155098 --0.424781605601 --2.7066744566 --0.424789555371 --2.689417243 --0.424798950553 --2.67215949297 --0.424809828401 --2.65490150452 --0.424822106958 --2.63764280081 --0.424828827381 --2.61842381954 --0.424822583795 --2.59920650721 --0.424810230732 --2.58194798231 --0.424799315631 --2.56468981504 --0.424789875746 --2.54743224382 --0.424781881273 --2.53017479181 --0.424775317311 --2.51291787624 --0.424770206213 --2.49566102028 --0.424766562879 --2.47840452194 --0.424764379859 --2.46114802361 --0.424763597548 --2.44389176369 --0.424764297903 --2.42663532495 --0.424766466021 --2.40937900543 --0.424770049751 --2.39212226868 --0.424775116146 --2.37486565113 --0.424781605601 --2.35760861635 --0.424789555371 --2.34035140276 --0.424798950553 --2.32309365273 --0.424809828401 --2.30583560467 --0.424822106958 --2.28857690096 --0.424828827381 --2.2693579793 --0.424822583795 --2.25014066696 --0.424810230732 --2.23288214207 --0.424799337983 --2.21562391519 --0.424789898098 --2.19836628437 --0.424781881273 --2.18110895157 --0.424775317311 --2.1638520956 --0.424770228564 --2.14659523964 --0.424766585231 --2.1293387413 --0.424764357508 --2.11208218336 --0.424763575196 --2.09482592345 --0.424764297903 --2.07756948471 --0.424766466021 --2.06031316518 --0.424770049751 --2.04305648803 --0.424775116146 --2.02579975128 --0.424781605601 --2.0085426867 --0.424789577722 --1.99128553271 --0.424798972905 --1.97402778268 --0.424809828401 --1.95676979422 --0.424822106958 --1.93951112032 --0.424828827381 --1.92029213905 --0.424822583795 --1.90107479692 --0.424810253083 --1.88381630183 --0.424799360335 --1.86655810475 --0.424789875746 --1.84930047393 --0.424781881273 --1.83204308152 --0.424775339663 --1.81478619575 --0.424770206213 --1.79752936959 --0.424766562879 --1.78027290106 --0.424764357508 --1.76301634312 --0.424763575196 --1.7457600832 --0.424764275551 --1.72850361467 --0.42476644367 --1.71124726534 --0.424770049751 --1.69399061799 --0.424775116146 --1.67673394084 --0.424781605601 --1.65947687626 --0.424789555371 --1.64221969247 --0.424798950553 --1.62496191264 --0.424809828401 --1.60770392418 --0.424822106958 --1.59044528008 --0.424828849733 --1.57122629881 --0.424822606147 --1.55200895667 --0.424810230732 --1.53475043178 --0.424799360335 --1.5174922049 --0.424789898098 --1.50023463369 --0.424781881273 --1.48297724128 --0.424775339663 --1.46572032571 --0.424770228564 --1.44846349955 --0.424766562879 --1.43120703101 --0.424764357508 --1.41395050287 --0.424763597548 --1.39669421315 --0.424764253199 --1.37943777442 --0.424766421318 --1.36218142509 --0.424770049751 --1.34492474794 --0.424775116146 --1.3276681304 --0.424781605601 --1.31041106581 --0.424789555371 --1.29315385222 --0.424798950553 --1.27589610219 --0.424809828401 --1.25863808393 --0.424822106958 --1.24137941003 --0.424828827381 --1.22216042876 --0.424822583795 --1.20294308662 --0.424810230732 --1.18568459153 --0.424799360335 --1.16842639446 --0.424789920449 --1.15116879344 --0.424781881273 --1.13391140103 --0.424775317311 --1.11665451527 --0.424770206213 --1.0993976593 --0.424766562879 --1.08214119077 --0.424764357508 --1.06488466263 --0.424763575196 --1.0476283431 --0.424764275551 --1.03037187457 --0.42476644367 --1.01311555505 --0.424770049751 --0.9958589077 --0.424775116146 --0.97860224545 --0.424781605601 --0.961345165968 --0.424789577722 --0.944087982178 --0.424798972905 --0.926830202341 --0.424809828401 --0.909572213888 --0.424822106958 --0.892313569784 --0.424828827381 --0.873094588518 --0.424822583795 --0.85387724638 --0.424810253083 --0.836618736387 --0.424799382686 --0.819360539317 --0.424789898098 --0.802102938294 --0.424781881273 --0.784845545888 --0.424775339663 --0.767588660121 --0.424770206213 --0.750331833959 --0.424766540527 --0.733075350523 --0.424764357508 --0.715818807483 --0.424763597548 --0.698562517762 --0.424764297903 --0.681306034327 --0.424766466021 --0.664049714804 --0.424770049751 --0.646793067456 --0.424775116146 --0.629536405206 --0.424781605601 --0.612279325724 --0.424789555371 --0.595022127033 --0.424798950553 --0.577764391899 --0.424809828401 --0.560506388545 --0.424822106958 --0.543247714639 --0.424828827381 --0.524028733372 --0.424822583795 --0.504811391234 --0.424810253083 --0.487552881241 --0.424799360335 --0.470294676721 --0.424789898098 --0.4530370906 --0.424781881273 --0.435779698193 --0.424775317311 --0.418522797525 --0.424770206213 --0.401265949011 --0.424766562879 --0.384009480476 --0.424764357508 --0.366752944887 --0.424763575196 --0.349496670067 --0.424764297903 --0.332240216434 --0.424766466021 --0.314983867109 --0.424770049751 --0.29772721231 --0.424775116146 --0.280470564962 --0.424781605601 --0.26321349293 --0.424789555371 --0.245956286788 --0.424798950553 --0.228698529303 --0.424809828401 --0.211440529674 --0.424822106958 --0.194181852042 --0.424828827381 --0.174962874501 --0.407470025122 --0.15573849529 --0.407458133996 --0.138480007648 --0.407447651029 --0.121221827343 --0.407438546419 --0.103964271024 --0.407430820167 --0.0867069009691 --0.407424487173 --0.0694500254467 --0.407419562339 --0.0521932132542 --0.407416045666 --0.0349367726594 --0.407413944602 --0.017680269666 --0.407413244247 --0.000424014870077 --0.407413907349 -0.0168324224651 --0.407415948808 -0.0340887359343 --0.407419405878 -0.0513453576714 --0.407424293459 -0.0686019798741 --0.407430537045 -0.0858590286225 --0.407438218593 -0.1031162031 --0.407447271049 -0.120373928919 --0.407457731664 -0.137631896883 --0.407469570637 -0.154890544713 --0.407476045191 -0.174109779298 --0.407470025122 -0.193327359855 --0.407458133996 -0.210585843772 --0.407447628677 -0.227844022214 --0.407438524067 -0.245101582259 --0.407430820167 -0.262358948589 --0.407424487173 -0.279615819454 --0.407419584691 -0.296872638166 --0.407416068017 -0.314129084349 --0.40741392225 -0.331385582686 --0.407413199544 -0.348641827703 --0.407413884997 -0.365898266435 --0.40741597116 -0.383154593408 --0.40741942823 -0.400411225855 --0.407424293459 -0.417667835951 --0.407430559397 -0.434924870729 --0.407438240945 -0.452182047069 --0.407447271049 -0.469439774752 --0.407457731664 -0.486697755754 --0.407469570637 -0.503956422209 --0.407476045191 -0.523175641894 --0.407470025122 -0.542393192649 --0.407458133996 -0.55965167284 --0.407447628677 -0.576909869909 --0.407438524067 -0.594167441129 --0.407430820167 -0.611424788833 --0.407424487173 -0.628681659699 --0.407419562339 -0.645938500762 --0.407416045666 -0.663194939494 --0.407413944602 -0.68045142293 --0.407413221896 -0.697707682848 --0.407413884997 -0.71496412158 --0.407415948808 -0.732220426202 --0.407419405878 -0.749477058649 --0.407424293459 -0.766733691096 --0.407430559397 -0.783990740776 --0.407438240945 -0.801247909665 --0.407447271049 -0.818505614996 --0.407457731664 -0.835763588548 --0.407469570637 -0.853022247553 --0.407476045191 -0.87224149704 --0.407470025122 -0.891459092498 --0.407458133996 -0.908717557788 --0.407447628677 -0.925975710153 --0.407438524067 -0.943233281374 --0.407430797815 -0.960490658879 --0.407424464822 -0.977747529745 --0.407419584691 -0.995004355905 --0.407416068017 -1.01226079464 --0.40741392225 -1.02951729298 --0.407413199544 -1.04677355289 --0.407413884997 -1.06402999163 --0.407415948808 -1.08128628135 --0.407419405878 -1.09854289889 --0.407424293459 -1.11579954624 --0.407430537045 -1.13305661082 --0.407438218593 -1.15031376481 --0.407447271049 -1.16757148504 --0.407457731664 -1.1848294735 --0.407469570637 -1.2020881176 --0.407476045191 -1.22130733729 --0.407470025122 -1.24052491784 --0.407458133996 -1.25778341293 --0.407447628677 -1.2750415802 --0.407438501716 -1.29229915142 --0.407430797815 -1.30955651402 --0.407424487173 -1.32681336999 --0.407419562339 -1.34407019615 --0.407416045666 -1.36132666468 --0.40741392225 -1.37858316303 --0.407413177192 -1.39583939314 --0.407413817942 -1.41309583187 --0.407415904105 -1.43035215139 --0.407419405878 -1.44760879874 --0.407424293459 -1.46486541629 --0.407430559397 -1.48212245107 --0.407438218593 -1.49937963486 --0.407447248697 -1.51663735509 --0.407457731664 -1.53389531374 --0.407469570637 -1.55115395784 --0.407476067543 -1.57037320733 --0.407470047474 -1.58959078789 --0.407458133996 -1.60684925318 --0.407447651029 -1.62410742045 --0.407438524067 -1.64136496186 --0.407430820167 -1.65862235427 --0.407424509525 -1.67587924003 --0.407419584691 -1.6931360364 --0.407416068017 -1.71039247513 --0.407413944602 -1.72764900327 --0.407413199544 -1.74490526318 --0.407413817942 -1.76216167211 --0.407415926456 -1.77941796184 --0.40741942823 -1.79667457938 --0.407424293459 -1.81393122673 --0.407430559397 -1.83118829131 --0.407438240945 -1.8484454453 --0.407447293401 -1.86570316553 --0.407457754016 -1.88296115398 --0.407469570637 -1.90021979809 --0.407476045191 -1.91943901777 --0.407470025122 -1.93865659833 --0.407458133996 -1.95591509342 --0.407447651029 -1.97317326069 --0.407438546419 -1.99043083191 --0.407430797815 -2.00768825412 --0.407424464822 -2.02494513989 --0.407419562339 -2.04220187664 --0.407416068017 -2.05945825577 --0.407413944602 -2.07671481371 --0.407413199544 -2.09397107363 --0.407413884997 -2.11122751236 --0.407415948808 -2.12848383188 --0.407419405878 -2.14574038982 --0.407424293459 -2.16299706697 --0.407430559397 -2.18025416136 --0.407438240945 -2.19751131534 --0.407447271049 -2.21476906538 --0.407457731664 -2.23202699423 --0.407469570637 -2.24928563833 --0.407476045191 -2.26850491762 --0.407470025122 -2.28772246837 --0.407458133996 -2.30498093367 --0.407447651029 -2.32223916054 --0.407438524067 -2.33949673176 --0.407430820167 -2.35675406456 --0.407424509525 -2.37401092052 --0.407419562339 -2.39126777649 --0.407416023314 -2.40852427482 --0.40741392225 -2.42578071356 --0.407413199544 -2.44303691387 --0.407413862646 -2.4602933526 --0.407415948808 -2.47754967213 --0.407419405878 -2.49480634928 --0.407424293459 -2.51206296682 --0.407430559397 -2.529319942 --0.407438240945 -2.54657709599 --0.407447271049 -2.56383484602 --0.407457731664 -2.58109283447 --0.407469570637 -2.59835147858 --0.407476045191 -2.61757069826 --0.407470025122 -2.63678830862 --0.407458133996 -2.65404683351 --0.407447651029 -2.67130500078 --0.407438546419 -2.6885625124 --0.407430820167 -2.7058198452 --0.407424487173 -2.72307670117 --0.407419562339 -2.74033355713 --0.407416045666 -2.75759005547 --0.40741392225 -2.7748465538 --0.407413199544 -2.79210281372 --0.407413884997 -2.80935925245 --0.40741597116 -2.82661557198 --0.40741942823 -2.84387218952 --0.407424293459 -2.86112880707 --0.407430559397 -2.87838590145 --0.407438240945 -2.89564305544 --0.407447271049 -2.91290074587 --0.407457731664 -2.93015873432 --0.407469570637 -2.94741737843 --0.407476045191 -2.96663659811 --0.407470025122 -2.98585414886 --0.407458133996 -3.00311261415 --0.407447651029 -3.02037078142 --0.407438546419 -3.03762835264 --0.407430820167 -3.05488580465 --0.407424487173 -3.07214272022 --0.407419562339 -3.08939945698 --0.407416045666 -3.10665583611 --0.407413944602 -3.12391233444 --0.407413244247 -3.14116862614 --0.407413907349 --3.12476021051 --0.407415948808 --3.10750389099 --0.407419405878 --3.09024727344 --0.407424293459 --3.0729906559 --0.407430537045 --3.05573362112 --0.407438218593 --3.03847640753 --0.407447271049 --3.02121865749 --0.407457731664 --3.00396072864 --0.407469570637 --2.98670208454 --0.407476045191 --2.96748286486 --0.407470025122 --2.9482653141 --0.407458133996 --2.93100684881 --0.407447628677 --2.91374868154 --0.407438524067 --2.89649111032 --0.407430820167 --2.87923371792 --0.407424487173 --2.86197680235 --0.407419584691 --2.84472000599 --0.407416068017 --2.82746362686 --0.40741392225 --2.81020706892 --0.407413199544 --2.792950809 --0.407413884997 --2.77569442988 --0.40741597116 --2.75843811035 --0.40741942823 --2.74118149281 --0.407424293459 --2.72392487526 --0.407430559397 --2.70666778087 --0.407438240945 --2.68941056728 --0.407447271049 --2.67215287685 --0.407457731664 --2.654894948 --0.407469570637 --2.6376362443 --0.407476045191 --2.61841696501 --0.407470025122 --2.59919941425 --0.407458133996 --2.58194094896 --0.407447628677 --2.56468278169 --0.407438524067 --2.54742521047 --0.407430820167 --2.53016781807 --0.407424487173 --2.5129109621 --0.407419562339 --2.49565410614 --0.407416045666 --2.47839766741 --0.407413944602 --2.46114122868 --0.407413221896 --2.44388496876 --0.407413884997 --2.42662853002 --0.407415948808 --2.4093722105 --0.407419405878 --2.39211553335 --0.407424293459 --2.3748589158 --0.407430559397 --2.35760194063 --0.407438240945 --2.34034478665 --0.407447271049 --2.32308703661 --0.407457731664 --2.30582904816 --0.407469570637 --2.28857040405 --0.407476045191 --2.26935118437 --0.407470025122 --2.25013357401 --0.407458133996 --2.23287504912 --0.407447628677 --2.21561688185 --0.407438524067 --2.19835937023 --0.407430797815 --2.18110203743 --0.407424464822 --2.16384518146 --0.407419584691 --2.1465883255 --0.407416068017 --2.12933182717 --0.40741392225 --2.11207532883 --0.407413199544 --2.09481906891 --0.407413884997 --2.07756263018 --0.407415948808 --2.06030637026 --0.407419405878 --2.04304975271 --0.407424293459 --2.02579307556 --0.407430537045 --2.00853604078 --0.407438218593 --1.99127888679 --0.407447271049 --1.97402116656 --0.407457731664 --1.95676320791 --0.407469570637 --1.93950456381 --0.407476045191 --1.92028531432 --0.407470025122 --1.90106770396 --0.407458133996 --1.88380923867 --0.407447628677 --1.8665510714 --0.407438501716 --1.84929350018 --0.407430797815 --1.83203613758 --0.407424487173 --1.81477928161 --0.407419562339 --1.79752248526 --0.407416045666 --1.78026604652 --0.40741392225 --1.76300951839 --0.407413177192 --1.74575325847 --0.407413817942 --1.72849681973 --0.407415904105 --1.71124050021 --0.407419405878 --1.69398391247 --0.407424293459 --1.67672729492 --0.407430559397 --1.65947023034 --0.407438218593 --1.64221307635 --0.407447248697 --1.62495532632 --0.407457731664 --1.60769733786 --0.407469570637 --1.59043869376 --0.407476067543 --1.57121947408 --0.407470047474 --1.55200192332 --0.407458133996 --1.53474342823 --0.407447651029 --1.51748523116 --0.407438524067 --1.50022765994 --0.407430820167 --1.48297026754 --0.407424509525 --1.46571338177 --0.407419584691 --1.44845658541 --0.407416068017 --1.43120014667 --0.407413944602 --1.41394367814 --0.407413199544 --1.39668744803 --0.407413817942 --1.37943100929 --0.407415926456 --1.36217468977 --0.40741942823 --1.34491804242 --0.407424293459 --1.32766142488 --0.407430559397 --1.31040439009 --0.407438240945 --1.29314720631 --0.407447293401 --1.27588948608 --0.407457754016 --1.25863152742 --0.407469570637 --1.24137288332 --0.407476045191 --1.22215363383 --0.407470025122 --1.20293602347 --0.407458133996 --1.18567752838 --0.407447651029 --1.16841936111 --0.407438546419 --1.15116181969 --0.407430797815 --1.13390445709 --0.407424464822 --1.11664757132 --0.407419562339 --1.09939077496 --0.407416068017 --1.08213436604 --0.407413944602 --1.0648778379 --0.407413199544 --1.04762154818 --0.407413884997 --1.03036510944 --0.407415948808 --1.01310878992 --0.407419405878 --0.995852187277 --0.407424293459 --0.978595554829 --0.407430559397 --0.961338490248 --0.407438240945 --0.944081351161 --0.407447271049 --0.926823630929 --0.407457731664 --0.909565657377 --0.407469570637 --0.892307013273 --0.407476045191 --0.873087793588 --0.407470025122 --0.853870198131 --0.407458133996 --0.836611703038 --0.407447651029 --0.819353535772 --0.407438524067 --0.802095964551 --0.407430820167 --0.784838601947 --0.407424509525 --0.767581745982 --0.407419562339 --0.750324949622 --0.407416023314 --0.733068495989 --0.40741392225 --0.71581196785 --0.407413199544 --0.698555707932 --0.407413862646 --0.681299269199 --0.407415948808 --0.664042979479 --0.407419405878 --0.646786361933 --0.407424293459 --0.629529729486 --0.407430559397 --0.612272664905 --0.407438240945 --0.595015496016 --0.407447271049 --0.577757790685 --0.407457731664 --0.560499817133 --0.407469570637 --0.543241173029 --0.407476045191 --0.524021923542 --0.407470025122 --0.504804328084 --0.407458133996 --0.487545855343 --0.407447651029 --0.470287680626 --0.407438546419 --0.453030116856 --0.407430820167 --0.435772746801 --0.407424487173 --0.418515883386 --0.407419562339 --0.401259064674 --0.407416045666 --0.384002618492 --0.40741392225 --0.366746112704 --0.407413199544 --0.349489867687 --0.407413884997 --0.332233443856 --0.40741597116 --0.314977116883 --0.40741942823 --0.297720499337 --0.407424293459 --0.28046388179 --0.407430559397 --0.26320682466 --0.407438240945 --0.245949648321 --0.407447271049 --0.228691920638 --0.407457731664 --0.211433947086 --0.407469570637 --0.194175299257 --0.407476045191 --0.174956072121 --0.390100173652 --0.155731402337 --0.390088751912 --0.138472940773 --0.390078656375 --0.121214784682 --0.390069887042 --0.103957260027 --0.390062443912 --0.0866999141872 --0.390056371689 --0.0694430666044 --0.390051662922 --0.0521862860769 --0.390048250556 --0.0349298720248 --0.390046201646 --0.0176733972039 --0.390045538544 --0.000417170813305 --0.390046194196 -0.0168392383493 --0.39004817605 -0.0340955238789 --0.39005150646 -0.0513521190733 --0.390056200326 -0.068608712405 --0.390062205494 -0.0858657322824 --0.39006960392 -0.103122880682 --0.390078321099 -0.120380578563 --0.390088379383 -0.137638520449 --0.390099734068 -0.154897142201 --0.390105940402 -0.174116626382 --0.390100151301 -0.193334460259 --0.390088707209 -0.210592914372 --0.390078634024 -0.227851059287 --0.390069887042 -0.245108585805 --0.390062466264 -0.262365929783 --0.390056371689 -0.279622770846 --0.39005164057 -0.296879559755 --0.390048250556 -0.314135983586 --0.390046201646 -0.331392452121 --0.390045538544 -0.348648682237 --0.390046194196 -0.365905098617 --0.390048198402 -0.383161388338 --0.390051528812 -0.400417983532 --0.390056200326 -0.417674563825 --0.390062227845 -0.434931568801 --0.390069626272 -0.452188715339 --0.390078298747 -0.469446413219 --0.390088334679 -0.486704356968 --0.390099734068 -0.503962993621 --0.390105962754 -0.523182466626 --0.390100173652 -0.542400285602 --0.390088751912 -0.559658750892 --0.390078656375 -0.576916918158 --0.390069887042 -0.594174459576 --0.390062481165 -0.611431792378 --0.39005638659 -0.628688633442 --0.39005164057 -0.645945429802 --0.390048250556 -0.663201838732 --0.390046201646 -0.680458292365 --0.390045538544 -0.697714537382 --0.390046194196 -0.714970946312 --0.39004817605 -0.732227221131 --0.39005150646 -0.749483808875 --0.390056200326 -0.76674041152 --0.390062227845 -0.783997446299 --0.390069626272 -0.801254570484 --0.390078298747 -0.818512260914 --0.390088357031 -0.835770219565 --0.39009975642 -0.853028833866 --0.390105962754 -0.872248306871 --0.390100173652 -0.891466140747 --0.390088751912 -0.908724606037 --0.390078656375 -0.925982758403 --0.390069887042 -0.94324028492 --0.390062443912 -0.960497632623 --0.390056349337 -0.977754473686 --0.39005164057 -0.995011284947 --0.390048250556 -1.01226770878 --0.390046201646 -1.02952417731 --0.390045538544 -1.04678040743 --0.390046194196 -1.06403678656 --0.39004817605 -1.08129304647 --0.39005150646 -1.09854966402 --0.390056200326 -1.11580628157 --0.390062205494 -1.13306328654 --0.39006960392 -1.15032041073 --0.390078298747 -1.16757813096 --0.390088357031 -1.18483608961 --0.39009975642 -1.20209467411 --0.390105962754 -1.22131416201 --0.390100173652 -1.24053201079 --0.390088751912 -1.25779047609 --0.390078656375 -1.27504861355 --0.390069887042 -1.29230615497 --0.390062443912 -1.30956351757 --0.390056349337 -1.32682034373 --0.39005164057 -1.34407711029 --0.390048250556 -1.36133354902 --0.390046201646 -1.37859001756 --0.390045516193 -1.39584621787 --0.390046149492 -1.4131026566 --0.390048131347 -1.43035894632 --0.390051461756 -1.44761553407 --0.390056177974 -1.46487212181 --0.390062227845 -1.48212915659 --0.39006960392 -1.49938631058 --0.390078298747 -1.516644001 --0.390088357031 -1.53390192985 --0.390099734068 -1.55116054416 --0.390105962754 -1.57038006187 --0.390100151301 -1.58959788084 --0.390088729561 -1.60685631633 --0.390078656375 -1.62411445379 --0.390069887042 -1.64137196541 --0.390062466264 -1.65862932801 --0.39005639404 -1.67588618398 --0.390051662922 -1.69314298034 --0.390048272908 -1.71039938927 --0.390046223998 -1.7276558578 --0.390045516193 -1.74491208792 --0.390046149492 -1.76216846704 --0.39004817605 -1.77942475676 --0.390051528812 -1.79668137431 --0.390056200326 -1.81393796206 --0.390062227845 -1.83119496703 --0.390069626272 -1.84845209121 --0.390078321099 -1.86570981145 --0.390088379383 -1.8829677999 --0.39009975642 -1.90022641421 --0.390105962754 -1.91944587231 --0.390100173652 -1.93866372109 --0.390088729561 -1.95592218638 --0.390078634024 -1.97318032384 --0.390069887042 -1.99043786526 --0.390062443912 -2.00769522786 --0.390056349337 -2.02495205402 --0.39005164057 -2.04220879078 --0.390048272908 -2.0594651699 --0.390046223998 -2.07672166824 --0.390045538544 -2.09397792816 --0.390046194196 -2.11123436689 --0.39004817605 -2.12849062681 --0.39005150646 -2.14574718475 --0.390056200326 -2.1630038619 --0.390062227845 -2.18026089668 --0.390069626272 -2.19751799106 --0.390078298747 -2.21477568149 --0.390088357031 -2.23203361034 --0.39009975642 -2.24929225445 --0.390105962754 -2.26851177216 --0.390100173652 -2.28772962093 --0.390088751912 -2.30498802662 --0.390078656375 -2.32224613428 --0.390069887042 -2.3395037055 --0.390062466264 -2.3567610383 --0.39005639404 -2.37401789427 --0.390051662922 -2.39127469063 --0.390048250556 -2.40853112936 --0.390046201646 -2.4257875681 --0.390045516193 -2.4430437088 --0.390046171844 -2.46030014753 --0.39004817605 -2.47755646705 --0.39005150646 -2.4948130846 --0.390056200326 -2.51206970215 --0.390062227845 -2.52932667732 --0.390069626272 -2.5465837717 --0.390078298747 -2.56384146213 --0.390088357031 -2.58109939098 --0.39009975642 -2.59835803509 --0.390105962754 -2.61757755279 --0.390100173652 -2.63679540157 --0.390088751912 -2.65405386686 --0.390078656375 -2.67131197453 --0.390069887042 -2.68856948614 --0.390062466264 -2.70582681894 --0.39005639404 -2.72308367491 --0.390051662922 -2.74034053087 --0.390048250556 -2.75759696961 --0.390046201646 -2.77485340834 --0.390045538544 -2.79210966826 --0.390046194196 -2.80936610699 --0.390048198402 -2.82662236691 --0.390051528812 -2.84387892484 --0.390056200326 -2.86113548278 --0.390062227845 -2.87839257717 --0.390069626272 -2.89564973116 --0.390078298747 -2.91290736198 --0.390088357031 -2.93016535044 --0.39009975642 -2.94742399454 --0.390105962754 -2.96664339304 --0.390100173652 -2.98586118221 --0.390088751912 -3.00311970711 --0.390078656375 -3.02037787438 --0.390069887042 -3.03763538599 --0.390062443912 -3.0548927784 --0.390056371689 -3.07214963436 --0.390051662922 -3.08940637111 --0.390048250556 -3.10666275024 --0.390046201646 -3.12391924858 --0.390045538544 -3.14117554028 --0.390046194196 --3.12475335598 --0.39004817605 --3.10749709606 --0.39005150646 --3.09024053812 --0.390056200326 --3.07298398018 --0.390062205494 --3.0557269454 --0.39006960392 --3.03846973181 --0.390078321099 --3.02121204138 --0.390088379383 --3.00395411253 --0.390099734068 --2.98669546843 --0.390105940402 --2.96747606993 --0.390100151301 --2.94825828075 --0.390088707209 --2.93099975586 --0.390078634024 --2.91374158859 --0.390069887042 --2.89648407698 --0.390062466264 --2.87922668457 --0.390056371689 --2.86196982861 --0.39005164057 --2.84471309185 --0.390048250556 --2.82745671272 --0.390046201646 --2.81020021439 --0.390045538544 --2.79294395447 --0.390046194196 --2.77568757534 --0.390048198402 --2.75843131542 --0.390051528812 --2.74117469788 --0.390056200326 --2.72391808033 --0.390062227845 --2.70666104555 --0.390069626272 --2.68940389157 --0.390078298747 --2.67214620113 --0.390088334679 --2.65488827229 --0.390099734068 --2.63762968779 --0.390105962754 --2.61841017008 --0.390100173652 --2.5991923213 --0.390088751912 --2.58193391561 --0.390078656375 --2.56467574835 --0.390069887042 --2.54741817713 --0.390062481165 --2.53016084433 --0.39005638659 --2.51290404797 --0.39005164057 --2.4956472516 --0.390048250556 --2.47839081287 --0.390046201646 --2.46113437414 --0.390045538544 --2.44387817383 --0.390046194196 --2.4266217351 --0.39004817605 --2.40936541557 --0.39005150646 --2.39210879803 --0.390056200326 --2.37485218048 --0.390062227845 --2.35759520531 --0.390069626272 --2.34033811092 --0.390078298747 --2.32308042049 --0.390088357031 --2.30582249164 --0.39009975642 --2.28856384754 --0.390105962754 --2.26934432983 --0.390100173652 --2.25012654066 --0.390088751912 --2.23286807537 --0.390078656375 --2.2156099081 --0.390069887042 --2.19835239649 --0.390062443912 --2.18109506369 --0.390056349337 --2.16383820772 --0.39005164057 --2.14658135176 --0.390048250556 --2.12932491303 --0.390046201646 --2.11206847429 --0.390045538544 --2.09481221437 --0.390046194196 --2.07755577564 --0.39004817605 --2.06029951573 --0.39005150646 --2.04304295778 --0.390056200326 --2.02578639984 --0.390062205494 --2.00852936506 --0.39006960392 --1.99127221108 --0.390078298747 --1.97401452064 --0.390088357031 --1.9567565918 --0.39009975642 --1.93949797749 --0.390105962754 --1.92027845979 --0.390100173652 --1.90106061101 --0.390088751912 --1.88380217553 --0.390078656375 --1.86654403806 --0.390069887042 --1.84928652644 --0.390062443912 --1.83202919364 --0.390056349337 --1.81477233768 --0.39005164057 --1.79751554132 --0.390048250556 --1.78025913238 --0.390046201646 --1.76300266385 --0.390045516193 --1.74574640393 --0.390046149492 --1.7284899652 --0.390048131347 --1.71123367548 --0.390051461756 --1.69397711754 --0.390056177974 --1.6767205596 --0.390062227845 --1.65946355462 --0.39006960392 --1.64220640063 --0.390078298747 --1.6249486804 --0.390088357031 --1.60769072175 --0.390099734068 --1.59043207765 --0.390105962754 --1.57121261954 --0.390100151301 --1.55199480057 --0.390088729561 --1.53473633528 --0.390078656375 --1.51747819781 --0.390069887042 --1.5002206564 --0.390062466264 --1.48296329379 --0.39005639404 --1.46570643783 --0.390051662922 --1.44844967127 --0.390048272908 --1.43119326234 --0.390046223998 --1.41393679381 --0.390045516193 --1.39668059349 --0.390046149492 --1.37942418456 --0.39004817605 --1.36216789484 --0.390051528812 --1.3449113071 --0.390056200326 --1.32765468955 --0.390062227845 --1.31039765477 --0.390069626272 --1.29314053059 --0.390078321099 --1.27588284015 --0.390088379383 --1.25862491131 --0.39009975642 --1.241366297 --0.390105962754 --1.2221467793 --0.390100173652 --1.20292893052 --0.390088729561 --1.18567049504 --0.390078634024 --1.16841232777 --0.390069887042 --1.15115481615 --0.390062443912 --1.13389748335 --0.390056349337 --1.11664059758 --0.39005164057 --1.09938383102 --0.390048272908 --1.0821274519 --0.390046223998 --1.06487098336 --0.390045538544 --1.04761472344 --0.390046194196 --1.03035828471 --0.39004817605 --1.01310199499 --0.39005150646 --0.995845437049 --0.390056200326 --0.978588834405 --0.390062227845 --0.961331799626 --0.390069626272 --0.944074675441 --0.390078298747 --0.926816985011 --0.390088357031 --0.909559026361 --0.39009975642 --0.892300412059 --0.390105962754 --0.873080953956 --0.390100173652 --0.853863090277 --0.390088751912 --0.836604639888 --0.390078656375 --0.819346517325 --0.390069887042 --0.802088961005 --0.390062466264 --0.784831613302 --0.39005639404 --0.767574772239 --0.390051662922 --0.75031799078 --0.390048250556 --0.73306158185 --0.390046201646 --0.715805098414 --0.390045516193 --0.698548868298 --0.390046171844 --0.681292459369 --0.39004817605 --0.664036184549 --0.39005150646 --0.646779596806 --0.390056200326 --0.629522994161 --0.390062227845 --0.612265944481 --0.390069626272 --0.595008805394 --0.390078298747 --0.577751129866 --0.390088357031 --0.560493186116 --0.39009975642 --0.543234571814 --0.390105962754 --0.524015083909 --0.390100173652 --0.504797250032 --0.390088751912 --0.487538792193 --0.390078656375 --0.470280632376 --0.390069887042 --0.453023098409 --0.390062466264 --0.435765758157 --0.39005639404 --0.418508924544 --0.390051662922 --0.401252135634 --0.390048250556 --0.383995711804 --0.390046201646 --0.366739243269 --0.390045538544 --0.349483020604 --0.390046194196 --0.332226611674 --0.390048198402 --0.314970329404 --0.390051528812 --0.29771373421 --0.390056200326 --0.280457139015 --0.390062227845 --0.263200119138 --0.390069626272 --0.245942972601 --0.390078298747 --0.22868527472 --0.390088357031 --0.211427327245 --0.39009975642 --0.194168709218 --0.390105962754 --0.174949228763 --0.372712209821 --0.155724260956 --0.372701242566 --0.138465832919 --0.372691556812 --0.121207708493 --0.372683137656 --0.103950209915 --0.372675999999 --0.0866928901523 --0.372670181095 --0.0694360677153 --0.372665636241 --0.0521793151274 --0.372662365436 --0.034922930412 --0.372660413385 --0.0176664849278 --0.372659765184 --0.000410287408155 --0.372660398483 -0.0168460933492 --0.372662328184 -0.0341023514048 --0.372665531933 -0.0513589186594 --0.372670032084 -0.0686154849827 --0.372675806284 -0.0858724787831 --0.372682884336 -0.103129595518 --0.372691251338 -0.120387267321 --0.372700899839 -0.137645192444 --0.372711762786 -0.154903780669 --0.372717730701 -0.174123510718 --0.372712187469 -0.193341597915 --0.372701197863 -0.210600018501 --0.37269153446 -0.227858137339 --0.372683137656 -0.245115637779 --0.372675999999 -0.26237295568 --0.372670158744 -0.279629774392 --0.37266561389 -0.296886533499 --0.372662365436 -0.314142920077 --0.372660413385 -0.331399358809 --0.372659765184 -0.348655566573 --0.372660398483 -0.365911960602 --0.372662328184 -0.383168213069 --0.372665531933 -0.400424771011 --0.372670009732 -0.417681328952 --0.372675783932 -0.434938311577 --0.372682884336 -0.452195443213 --0.372691206634 -0.469453126192 --0.372700832784 -0.486711025238 --0.372711762786 -0.503969602287 --0.372717738152 -0.523189336061 --0.372712172568 -0.542407438159 --0.372701220214 -0.559665888548 --0.372691556812 -0.57692399621 --0.372683137656 -0.594181492925 --0.372676014901 -0.611438825726 --0.372670173645 -0.628695636987 --0.37266561389 -0.645952373743 --0.372662365436 -0.663208752871 --0.372660413385 -0.680465221405 --0.372659765184 -0.69772143662 --0.372660398483 -0.714977800846 --0.372662328184 -0.732234045863 --0.372665531933 -0.749490603804 --0.372670009732 -0.766747191548 --0.372675783932 -0.784004196524 --0.372682884336 -0.801261290908 --0.372691206634 -0.818518966437 --0.372700855136 -0.835776895284 --0.372711785138 -0.853035464883 --0.372717738152 -0.872255176306 --0.37271219492 -0.891473263502 --0.372701242566 -0.908731713891 --0.37269153446 -0.925989851356 --0.372683115304 -0.94324734807 --0.372675999999 -0.960504665971 --0.372670158744 -0.977761477232 --0.372665636241 -0.995018243791 --0.372662387788 -1.01227462292 --0.372660413385 -1.02953106165 --0.372659765184 -1.04678726196 --0.372660398483 -1.06404364109 --0.372662328184 -1.08129990101 --0.372665531933 -1.09855645895 --0.372670009732 -1.11581304669 --0.372675783932 -1.13307005167 --0.372682884336 -1.15032714605 --0.372691206634 -1.16758480668 --0.372700855136 -1.18484273553 --0.372711785138 -1.20210132003 --0.372717738152 -1.22132104635 --0.37271219492 -1.24053913355 --0.372701242566 -1.25779759884 --0.372691556812 -1.2750557065 --0.372683137656 -1.29231318831 --0.372675999999 -1.30957052112 --0.372670158744 -1.32682731748 --0.372665636241 -1.34408405423 --0.372662387788 -1.36134046316 --0.372660413385 -1.37859690189 --0.372659765184 -1.39585310221 --0.372660398483 -1.41310951114 --0.372662305832 -1.43036574125 --0.372665487229 -1.44762229919 --0.37266998738 -1.46487885713 --0.372675783932 -1.48213586211 --0.372682884336 -1.4993930161 --0.372691228986 -1.51665070653 --0.372700855136 -1.53390860557 --0.372711762786 -1.55116716027 --0.372717738152 -1.5703869164 --0.372712172568 -1.5896050334 --0.372701220214 -1.60686343909 --0.37269153446 -1.62412151694 --0.372683115304 -1.64137902856 --0.372675999999 -1.65863636136 --0.372670181095 -1.67589318752 --0.372665658593 -1.69314995408 --0.372662387788 -1.71040633321 --0.372660413385 -1.72766277194 --0.372659765184 -1.74491894245 --0.372660398483 -1.76217532158 --0.372662328184 -1.7794316113 --0.372665531933 -1.79668819905 --0.372670032084 -1.81394475699 --0.372675806284 -1.83120170236 --0.372682884336 -1.84845879674 --0.372691206634 -1.86571648717 --0.372700855136 -1.88297444582 --0.372711785138 -1.90023306012 --0.372717753053 -1.91945278644 --0.372712209821 -1.93867087364 --0.372701220214 -1.95592930913 --0.37269153446 -1.97318741679 --0.372683137656 -1.9904448986 --0.372675999999 -2.0077022016 --0.372670158744 -2.02495902777 --0.372665636241 -2.04221576452 --0.372662387788 -2.05947214365 --0.372660413385 -2.07672864199 --0.372659765184 -2.0939848423 --0.372660398483 -2.11124122143 --0.372662328184 -2.12849748135 --0.372665531933 -2.14575403929 --0.372670009732 -2.16301059723 --0.372675783932 -2.1802675724 --0.372682884336 -2.19752466679 --0.372691206634 -2.21478235722 --0.372700855136 -2.23204028606 --0.372711785138 -2.24929887057 --0.372717753053 -2.26851862669 --0.372712209821 -2.28773671388 --0.372701242566 -2.30499511957 --0.372691556812 -2.32225322723 --0.372683137656 -2.33951073885 --0.372675999999 -2.35676801205 --0.372670181095 -2.37402486801 --0.372665658593 -2.39128160477 --0.372662387788 -2.4085379839 --0.372660413385 -2.42579448223 --0.372659765184 -2.44305062294 --0.372660398483 -2.46030700206 --0.372662328184 -2.47756326198 --0.372665531933 -2.49481981993 --0.372670032084 -2.51207643747 --0.372675806284 -2.52933341265 --0.372682884336 -2.54659050703 --0.372691206634 -2.56384819746 --0.372700855136 -2.58110612631 --0.372711785138 -2.59836471081 --0.372717738152 -2.61758440733 --0.37271219492 -2.63680255413 --0.372701242566 -2.65406095981 --0.372691556812 -2.67131900787 --0.372683137656 -2.6885765791 --0.372675999999 -2.7058339119 --0.372670181095 -2.72309070825 --0.372665636241 -2.74034750461 --0.372662365436 -2.75760388374 --0.372660413385 -2.77486026287 --0.372659765184 -2.79211652279 --0.372660398483 -2.80937296152 --0.372662328184 -2.82662916184 --0.372665531933 -2.84388571978 --0.372670009732 -2.86114227772 --0.372675783932 -2.87839931249 --0.372682884336 -2.89565646648 --0.372691206634 -2.9129140377 --0.372700855136 -2.93017196655 --0.37271180749 -2.94743061066 --0.372717775405 -2.96665030718 --0.372712209821 -2.98586839437 --0.372701242566 -3.00312685966 --0.372691556812 -3.02038496733 --0.372683137656 -3.03764241934 --0.372675999999 -3.05489975214 --0.372670181095 -3.0721566081 --0.372665636241 -3.08941334486 --0.372662365436 -3.10666966438 --0.372660413385 -3.12392616272 --0.372659765184 -3.14118245442 --0.372660398483 --3.12474650145 --0.372662328184 --3.10749030113 --0.372665531933 --3.09023374319 --0.372670032084 --3.07297718525 --0.372675806284 --3.05572015047 --0.372682884336 --3.03846299648 --0.372691251338 --3.02120542526 --0.372700899839 --3.00394749641 --0.372711762786 --2.98668885231 --0.372717730701 --2.96746915579 --0.372712187469 --2.94825106859 --0.372701197863 --2.9309926033 --0.37269153446 --2.91373449564 --0.372683137656 --2.89647704363 --0.372675999999 --2.87921971083 --0.372670158744 --2.86196285486 --0.37266561389 --2.8447061181 --0.372662365436 --2.82744973898 --0.372660413385 --2.81019324064 --0.372659765184 --2.79293704033 --0.372660398483 --2.7756806612 --0.372662328184 --2.75842440128 --0.372665531933 --2.74116784334 --0.372670009732 --2.7239112854 --0.372675783932 --2.70665431023 --0.372682884336 --2.68939721584 --0.372691206634 --2.67213952541 --0.372700832784 --2.65488159656 --0.372711762786 --2.63762307167 --0.372717738152 --2.61840331554 --0.372712172568 --2.59918522835 --0.372701220214 --2.58192682266 --0.372691556812 --2.5646686554 --0.372683137656 --2.54741114378 --0.372676014901 --2.53015381098 --0.372670173645 --2.51289701462 --0.37266561389 --2.49564033746 --0.372662365436 --2.47838389873 --0.372660413385 --2.4611274004 --0.372659765184 --2.44387125969 --0.372660398483 --2.42661488056 --0.372662328184 --2.40935862064 --0.372665531933 --2.3921020627 --0.372670009732 --2.37484544516 --0.372675783932 --2.35758846998 --0.372682884336 --2.3403313756 --0.372691206634 --2.32307368517 --0.372700855136 --2.30581581592 --0.372711785138 --2.28855723143 --0.372717738152 --2.2693374753 --0.37271219492 --2.2501193881 --0.372701242566 --2.23286098242 --0.37269153446 --2.21560287476 --0.372683115304 --2.19834530354 --0.372675999999 --2.18108797074 --0.372670158744 --2.16383117437 --0.372665636241 --2.14657437801 --0.372662387788 --2.12931799889 --0.372660413385 --2.11206161976 --0.372659765184 --2.09480535984 --0.372660398483 --2.07754892111 --0.372662328184 --2.0602927208 --0.372665531933 --2.04303616285 --0.372670009732 --2.02577960491 --0.372675783932 --2.00852262974 --0.372682884336 --1.99126550555 --0.372691206634 --1.97400781512 --0.372700855136 --1.95674991608 --0.372711785138 --1.93949133158 --0.372717738152 --1.92027157545 --0.37271219492 --1.90105348826 --0.372701242566 --1.88379508257 --0.372691556812 --1.86653697491 --0.372683137656 --1.84927946329 --0.372675999999 --1.83202216029 --0.372670158744 --1.81476533413 --0.372665636241 --1.79750856757 --0.372662387788 --1.78025218844 --0.372660413385 --1.76299574971 --0.372659765184 --1.7457395494 --0.372660398483 --1.72848314047 --0.372662305832 --1.71122688055 --0.372665487229 --1.69397032261 --0.37266998738 --1.67671376467 --0.372675783932 --1.6594567895 --0.372682884336 --1.64219966531 --0.372691228986 --1.62494200468 --0.372700855136 --1.60768407583 --0.372711762786 --1.59042546153 --0.372717738152 --1.57120573521 --0.372712172568 --1.55198764801 --0.372701220214 --1.53472921253 --0.37269153446 --1.51747110486 --0.372683115304 --1.50021362305 --0.372675999999 --1.48295629024 --0.372670181095 --1.46569943428 --0.372665658593 --1.44844269753 --0.372662387788 --1.4311863482 --0.372660413385 --1.41392987966 --0.372659765184 --1.39667367935 --0.372660398483 --1.37941733003 --0.372662328184 --1.36216107011 --0.372665531933 --1.34490451217 --0.372670032084 --1.32764792442 --0.372675806284 --1.31039091945 --0.372682884336 --1.29313382506 --0.372691206634 --1.27587613464 --0.372700855136 --1.25861820579 --0.372711785138 --1.24135962129 --0.372717753053 --1.22213989496 --0.372712209821 --1.20292180777 --0.372701220214 --1.18566340208 --0.37269153446 --1.16840526462 --0.372683137656 --1.151147753 --0.372675999999 --1.13389045 --0.372670158744 --1.11663362384 --0.372665636241 --1.09937688709 --0.372662387788 --1.08212050796 --0.372660413385 --1.06486406922 --0.372659765184 --1.0476078391 --0.372660398483 --1.03035143018 --0.372662328184 --1.01309520006 --0.372665531933 --0.995838627219 --0.372670009732 --0.978582039476 --0.372675783932 --0.961325064301 --0.372682884336 --0.944067955017 --0.372691206634 --0.926810279489 --0.372700855136 --0.90955235064 --0.372711785138 --0.892293766141 --0.372717753053 --0.873074054718 --0.372712209821 --0.853855952621 --0.372701242566 --0.836597532034 --0.372691556812 --0.819339439273 --0.372683137656 --0.802081927657 --0.372675999999 --0.784824609757 --0.372670181095 --0.767567768693 --0.372665658593 --0.750311017037 --0.372662387788 --0.733054637909 --0.372660413385 --0.715798169375 --0.372659765184 --0.698541983962 --0.372660398483 --0.681285604834 --0.372662328184 --0.664029330015 --0.372665531933 --0.646772786975 --0.372670032084 --0.629516229034 --0.372675806284 --0.612259209156 --0.372682884336 --0.595002099871 --0.372691206634 --0.577744439244 --0.372700855136 --0.560486510396 --0.372711785138 --0.543227925897 --0.372717738152 --0.524008199572 --0.37271219492 --0.504790119827 --0.372701242566 --0.48753169179 --0.372691556812 --0.470273561776 --0.372683137656 --0.453016057611 --0.372675999999 --0.43575873971 --0.372670181095 --0.418501935899 --0.372665636241 --0.401245169342 --0.372662365436 --0.383988767863 --0.372660413385 --0.366732336581 --0.372659765184 --0.349476136267 --0.372660398483 --0.332219742238 --0.372662328184 --0.314963489771 --0.372665531933 --0.297706924379 --0.372670009732 --0.280450366437 --0.372675783932 --0.263193376362 --0.372682884336 --0.245936255902 --0.372691206634 --0.228678587824 --0.372700855136 --0.211420666426 --0.37271180749 --0.194162078202 --0.372717775405 --0.174942344427 --0.355329342187 --0.155716568231 --0.355318836868 --0.138458169996 --0.355309568345 --0.12120007351 --0.355301506818 --0.103942602873 --0.355294682086 --0.0866853184998 --0.355289109051 --0.0694285277277 --0.355284750462 --0.0521718058735 --0.355281628668 --0.0349154528231 --0.355279780925 --0.0176590364426 --0.355279162526 --0.00040286965668 --0.355279736221 -0.0168534805998 --0.355281569064 -0.0341097088531 --0.355284631252 -0.0513662444428 --0.355288945138 -0.0686227818951 --0.355294495821 -0.0858797468245 --0.3553012833 -0.103136831895 --0.355309270322 -0.120394472033 --0.355318494141 -0.137652371079 --0.355328932405 -0.154910929501 --0.355334654451 -0.174130927771 --0.355329342187 -0.193349286914 --0.355318836868 -0.210607681424 --0.355309568345 -0.227865770459 --0.355301506818 -0.245123241097 --0.355294682086 -0.262380532921 --0.355289109051 -0.279637329281 --0.355284750462 -0.296894051135 --0.355281628668 -0.314150393009 --0.355279780925 -0.33140680939 --0.355279162526 -0.348662987351 --0.355279736221 -0.365919344127 --0.355281569064 -0.383175566793 --0.355284653604 -0.400432094932 --0.355288945138 -0.417688630522 --0.355294473469 -0.434945590794 --0.355301260948 -0.452202685177 --0.355309225619 -0.469460345805 --0.355318471789 -0.48671822995 --0.355328917503 -0.503976769745 --0.355334624648 -0.523196771741 --0.355329304934 -0.542415142059 --0.355318814516 -0.559673547744 --0.355309568345 -0.576931625604 --0.355301506818 -0.594189092517 --0.355294682086 -0.611446395517 --0.355289109051 -0.628703191877 --0.355284750462 -0.64595989883 --0.355281628668 -0.663216233253 --0.355279780925 -0.680472671985 --0.355279162526 -0.697728842497 --0.355279758573 -0.714985176921 --0.355281591415 -0.732241407037 --0.355284653604 -0.749497935176 --0.355288945138 -0.766754493117 --0.355294473469 -0.78401145339 --0.3553012833 -0.801268517971 --0.355309247971 -0.818526178599 --0.355318471789 -0.835784062743 --0.355328932405 -0.853042602539 --0.355334639549 -0.872262611985 --0.355329327285 -0.891480982304 --0.355318836868 -0.908739387989 --0.355309545994 -0.92599748075 --0.355301484466 -0.943254962564 --0.355294682086 -0.960512250662 --0.355289109051 -0.97776901722 --0.355284772813 -0.995025739074 --0.35528165102 -1.0122820735 --0.355279780925 -1.02953848243 --0.355279162526 -1.04679468274 --0.355279736221 -1.06405106187 --0.355281569064 -1.08130729198 --0.355284653604 -1.09856379032 --0.355288945138 -1.11582031846 --0.355294473469 -1.13307729363 --0.3553012833 -1.15033438802 --0.355309247971 -1.16759201884 --0.355318471789 -1.18484991789 --0.355328932405 -1.20210847258 --0.355334639549 -1.22132846713 --0.355329327285 -1.24054682255 --0.355318836868 -1.25780522824 --0.355309568345 -1.2750633359 --0.355301506818 -1.29232078791 --0.355294682086 -1.3095780611 --0.355289109051 -1.32683485746 --0.355284772813 -1.34409156442 --0.35528165102 -1.36134791374 --0.355279780925 -1.37860435247 --0.355279162526 -1.39586052299 --0.355279758573 -1.41311687231 --0.355281591415 -1.43037310243 --0.355284653604 -1.44762963057 --0.355288945138 -1.4648861587 --0.355294473469 -1.48214313388 --0.3553012833 -1.49940025806 --0.355309247971 -1.51665791869 --0.355318471789 -1.53391578794 --0.355328932405 -1.55117431283 --0.355334639549 -1.57039430738 --0.355329327285 -1.5896126926 --0.355318814516 -1.60687109828 --0.355309523642 -1.62412917614 --0.355301484466 -1.64138665795 --0.355294682086 -1.65864396096 --0.355289109051 -1.67590072751 --0.355284772813 -1.69315743447 --0.35528165102 -1.71041381359 --0.355279780925 -1.72767025232 --0.355279162526 -1.74492639303 --0.355279736221 -1.76218274236 --0.355281569064 -1.77943897247 --0.355284653604 -1.79669550061 --0.35528896749 -1.81395202875 --0.355294495821 -1.83120897412 --0.3553012833 -1.84846606851 --0.355309247971 -1.86572369933 --0.355318471789 -1.88298159838 --0.355328917503 -1.90024018288 --0.355334639549 -1.91946020722 --0.355329342187 -1.93867856264 --0.355318836868 -1.95593693853 --0.355309568345 -1.97319501639 --0.355301506818 -1.9904524684 --0.355294682086 -2.00770974159 --0.355289109051 -2.02496653796 --0.355284772813 -2.04222327471 --0.35528165102 -2.05947965383 --0.355279780925 -2.07673609257 --0.355279162526 -2.09399223327 --0.355279758573 -2.1112486124 --0.355281591415 -2.12850487232 --0.355284631252 -2.14576137066 --0.355288922786 -2.16301786899 --0.355294473469 -2.18027478456 --0.3553012833 -2.19753187895 --0.355309247971 -2.21478956938 --0.355318471789 -2.23204743862 --0.355328917503 -2.24930596352 --0.355334639549 -2.26852601766 --0.355329342187 -2.28774440289 --0.355318836868 -2.30500274897 --0.355309568345 -2.32226085663 --0.355301506818 -2.33951830864 --0.355294682086 -2.35677552223 --0.355289109051 -2.3740323782 --0.355284772813 -2.39128911495 --0.35528165102 -2.40854543447 --0.355279780925 -2.4258018732 --0.355279162526 -2.44305807352 --0.355279736221 -2.46031445265 --0.355281569064 -2.47757065296 --0.355284653604 -2.4948271513 --0.35528896749 -2.51208370924 --0.355294495821 -2.52934068442 --0.355301260948 -2.5465977788 --0.355309225619 -2.56385540962 --0.355318471789 -2.58111333847 --0.355328932405 -2.59837192297 --0.355334639549 -2.61759185791 --0.355329327285 -2.63681024313 --0.355318836868 -2.65406864881 --0.355309568345 -2.67132669687 --0.355301506818 -2.68858420849 --0.355294682086 -2.70584154129 --0.355289109051 -2.72309827805 --0.355284750462 -2.7403549552 --0.355281628668 -2.75761133432 --0.355279780925 -2.77486777305 --0.355279162526 -2.79212397337 --0.355279736221 -2.80938029289 --0.355281569064 -2.8266364336 --0.355284653604 -2.84389299155 --0.355288945138 -2.86114960909 --0.355294473469 -2.87840658426 --0.3553012833 -2.89566361904 --0.355309247971 -2.91292124987 --0.355318471789 -2.93017917871 --0.355328939855 -2.94743776321 --0.355334661901 -2.96665775776 --0.355329342187 -2.98587608337 --0.355318836868 -3.00313448906 --0.355309568345 -3.02039259672 --0.355301506818 -3.03765004873 --0.355294682086 -3.05490732193 --0.355289109051 -3.07216411829 --0.355284750462 -3.08942085504 --0.355281628668 -3.10667717457 --0.355279780925 -3.1239336133 --0.355279162526 -3.1411898454 --0.355279736221 --3.12473917008 --0.355281569064 --3.10748302936 --0.355284631252 --3.09022647142 --0.355288945138 --3.07296985388 --0.355294495821 --3.05571287871 --0.3553012833 --3.03845584393 --0.355309270322 --3.0211982131 --0.355318494141 --3.00394028425 --0.355328932405 --2.98668169975 --0.355334654451 --2.96746170521 --0.355329342187 --2.94824337959 --0.355318836868 --2.9309849739 --0.355309568345 --2.91372692585 --0.355301506818 --2.89646947384 --0.355294682086 --2.87921214104 --0.355289109051 --2.86195534468 --0.355284750462 --2.84469860792 --0.355281628668 --2.82744222879 --0.355279780925 --2.81018579006 --0.355279162526 --2.79292964935 --0.355279736221 --2.77567327022 --0.355281569064 --2.75841701031 --0.355284653604 --2.74116051197 --0.355288945138 --2.72390401363 --0.355294473469 --2.70664709806 --0.355301260948 --2.68939000368 --0.355309225619 --2.67213231325 --0.355318471789 --2.65487444401 --0.355328917503 --2.63761591911 --0.355334624648 --2.61839586496 --0.355329304934 --2.59917747974 --0.355318814516 --2.58191913366 --0.355309568345 --2.564661026 --0.355301506818 --2.54740357399 --0.355294682086 --2.53014630079 --0.355289109051 --2.51288944483 --0.355284750462 --2.49563276767 --0.355281628668 --2.47837644815 --0.355279780925 --2.46112000942 --0.355279162526 --2.44386386871 --0.355279758573 --2.42660748958 --0.355281591415 --2.40935122966 --0.355284653604 --2.39209473133 --0.355288945138 --2.37483817339 --0.355294473469 --2.35758119822 --0.3553012833 --2.34032410383 --0.355309247971 --2.32306647301 --0.355318471789 --2.30580866337 --0.355328932405 --2.28855013847 --0.355334639549 --2.26933008433 --0.355329327285 --2.2501116395 --0.355318836868 --2.23285323381 --0.355309545994 --2.21559518576 --0.355301484466 --2.19833767414 --0.355294682086 --2.18108034134 --0.355289109051 --2.16382360458 --0.355284772813 --2.14656692743 --0.35528165102 --2.12931054831 --0.355279780925 --2.11205416918 --0.355279162526 --2.09479796887 --0.355279736221 --2.07754158974 --0.355281569064 --2.06028544903 --0.355284653604 --2.04302889109 --0.355288945138 --2.02577227354 --0.355294473469 --2.00851532817 --0.3553012833 --1.99125826359 --0.355309247971 --1.97400060296 --0.355318471789 --1.95674273372 --0.355328932405 --1.93948417902 --0.355334639549 --1.92026415467 --0.355329327285 --1.90104579926 --0.355318836868 --1.88378742337 --0.355309568345 --1.86652931571 --0.355301506818 --1.8492718339 --0.355294682086 --1.8320145607 --0.355289109051 --1.81475776434 --0.355284772813 --1.79750105739 --0.35528165102 --1.78024470806 --0.355279780925 --1.76298826933 --0.355279162526 --1.74573212862 --0.355279758573 --1.7284757793 --0.355281591415 --1.71121954918 --0.355284653604 --1.69396302104 --0.355288945138 --1.6767064631 --0.355294473469 --1.65944948792 --0.3553012833 --1.64219242335 --0.355309247971 --1.62493479252 --0.355318471789 --1.60767689348 --0.355328932405 --1.59041833878 --0.355334639549 --1.57119831443 --0.355329327285 --1.55197995901 --0.355318814516 --1.53472155333 --0.355309523642 --1.51746347547 --0.355301484466 --1.50020602346 --0.355294682086 --1.48294872046 --0.355289109051 --1.46569192409 --0.355284772813 --1.44843518734 --0.35528165102 --1.43117886782 --0.355279780925 --1.41392245889 --0.355279162526 --1.39666625857 --0.355279736221 --1.37940993905 --0.355281569064 --1.36215370893 --0.355284653604 --1.34489715099 --0.35528896749 --1.32764062285 --0.355294495821 --1.31038367748 --0.3553012833 --1.2931265831 --0.355309247971 --1.27586892247 --0.355318471789 --1.25861102343 --0.355328917503 --1.24135243893 --0.355334639549 --1.22213247418 --0.355329342187 --1.20291411877 --0.355318836868 --1.18565571308 --0.355309568345 --1.16839763522 --0.355301506818 --1.15114015341 --0.355294682086 --1.13388288021 --0.355289109051 --1.11662608385 --0.355284772813 --1.0993693769 --0.35528165102 --1.08211302757 --0.355279780925 --1.06485658884 --0.355279162526 --1.04760041833 --0.355279758573 --1.030344069 --0.355281591415 --1.01308783889 --0.355284631252 --0.995831280949 --0.355288922786 --0.978574737906 --0.355294473469 --0.961317807436 --0.3553012833 --0.944060727954 --0.355309247971 --0.926803067327 --0.355318471789 --0.909545168281 --0.355328917503 --0.892286613583 --0.355334639549 --0.87306663394 --0.355329342187 --0.853848278522 --0.355318836868 --0.836589872837 --0.355309568345 --0.819331794977 --0.355301506818 --0.802074328065 --0.355294682086 --0.784817054868 --0.355289109051 --0.767560243607 --0.355284772813 --0.750303506851 --0.35528165102 --0.733047157526 --0.355279780925 --0.715790718794 --0.355279162526 --0.698534563184 --0.355279736221 --0.681278213859 --0.355281569064 --0.664021968842 --0.355284653604 --0.646765455604 --0.35528896749 --0.629508927465 --0.355294495821 --0.612251952291 --0.355301260948 --0.594994872808 --0.355309225619 --0.577737227082 --0.355318471789 --0.560479328036 --0.355328932405 --0.543220788241 --0.355334639549 --0.524000793696 --0.355329327285 --0.504782423377 --0.355318836868 --0.487524025142 --0.355309568345 --0.470265939832 --0.355301506818 --0.453008458018 --0.355294682086 --0.43575116992 --0.355289109051 --0.418494403362 --0.355284750462 --0.401237666607 --0.355281628668 --0.38398129493 --0.355279780925 --0.366724886 --0.355279162526 --0.34946872294 --0.355279736221 --0.332212366164 --0.355281569064 --0.314956136048 --0.355284653604 --0.297699607909 --0.355288945138 --0.28044307977 --0.355294473469 --0.263186112046 --0.3553012833 --0.245929017663 --0.355309247971 --0.228671375662 --0.355318471789 --0.211413487792 --0.355328939855 --0.19415492937 --0.355334661901 --0.174934923649 --0.337982997298 --0.155708745122 --0.337972976267 --0.138450380415 --0.337964139879 --0.121192319318 --0.33795645088 --0.103934878483 --0.337949946523 --0.0866776257753 --0.337944619357 --0.0694208685309 --0.337940461934 --0.052164176479 --0.337937474251 --0.0349078532309 --0.337935678661 --0.0176514668856 --0.337935090065 --0.00039533060044 --0.337935648859 -0.0168609891552 --0.337937384844 -0.034117186442 --0.337940312922 -0.0513736903667 --0.337944433093 -0.0686301942915 --0.337949745357 -0.0858871284872 --0.337956242264 -0.103144185618 --0.337963841856 -0.120401792228 --0.337972663343 -0.137659657746 --0.337982669473 -0.154918193817 --0.337988108397 -0.174138471484 --0.337982997298 -0.193357106298 --0.337972976267 -0.210615474731 --0.337964139879 -0.227873526514 --0.33795645088 -0.245130967349 --0.337949946523 -0.262388221919 --0.337944619357 -0.279644981027 --0.337940461934 -0.296901673079 --0.337937474251 -0.314157985151 --0.337935701013 -0.33141437918 --0.337935112417 -0.348670527339 --0.337935648859 -0.365926854312 --0.337937384844 -0.383183047176 --0.337940335274 -0.400439545512 --0.337944455445 -0.4176960513 --0.337949723005 -0.43495298177 --0.33795619756 -0.4522100389 --0.337963819504 -0.469467654824 --0.337972663343 -0.486725524068 --0.33798263222 -0.503984041512 --0.337988071144 -0.523204311728 --0.33798301965 -0.542422965169 --0.337972998619 -0.559681341052 --0.337964139879 -0.576939389109 --0.33795645088 -0.59419682622 --0.337949946523 -0.611454084516 --0.337944619357 -0.628710836172 --0.337940461934 -0.645967528224 --0.337937474251 -0.663223847747 --0.337935701013 -0.680480241776 --0.337935112417 -0.697736382484 --0.33793567121 -0.714992687106 --0.337937407196 -0.73224888742 --0.337940335274 -0.749505385757 --0.337944455445 -0.766761898994 --0.337949723005 -0.784018844366 --0.337956219912 -0.801275879145 --0.337963841856 -0.818533495068 --0.337972663343 -0.835791364312 --0.337982647121 -0.853049889207 --0.337988086045 -0.872270166874 --0.33798301965 -0.891488805413 --0.337972998619 -0.908747166395 --0.337964139879 -0.926005229354 --0.33795645088 -0.943262696266 --0.337949946523 -0.960519939661 --0.337944619357 -0.977776676416 --0.337940461934 -0.995033383369 --0.337937474251 -1.01228970289 --0.337935701013 -1.02954608202 --0.337935112417 -1.04680225253 --0.337935648859 -1.06405857205 --0.337937384844 -1.08131474257 --0.337940335274 -1.0985712409 --0.337944455445 -1.11582773924 --0.337949723005 -1.13308465481 --0.337956219912 -1.15034171939 --0.337963841856 -1.16759932041 --0.337972663343 -1.18485715985 --0.337982669473 -1.20211568475 --0.337988108397 -1.22133600712 --0.337982997298 -1.24055466056 --0.337972976267 -1.25781300664 --0.337964139879 -1.2750710845 --0.33795645088 -1.29232850671 --0.337949946523 -1.3095857501 --0.337944619357 -1.32684254646 --0.337940461934 -1.34409922361 --0.337937474251 -1.36135551333 --0.337935701013 -1.37861192226 --0.337935112417 -1.39586806297 --0.33793567121 -1.41312438249 --0.337937407196 -1.43038061261 --0.337940335274 -1.44763711095 --0.337944455445 -1.46489360929 --0.337949723005 -1.48215055466 --0.337956219912 -1.49940761924 --0.337963864207 -1.51666522026 --0.337972685695 -1.5339230597 --0.337982647121 -1.5511815846 --0.337988086045 -1.57040184736 --0.337982997298 -1.589620471 --0.337972953915 -1.60687884688 --0.337964117527 -1.62413692474 --0.33795645088 -1.64139437675 --0.337949946523 -1.65865164995 --0.337944619357 -1.67590838671 --0.337940461934 -1.69316506386 --0.337937474251 -1.71042141318 --0.337935678661 -1.72767782211 --0.337935090065 -1.74493396282 --0.337935648859 -1.76219025254 --0.337937384844 -1.77944642305 --0.337940335274 -1.79670292139 --0.337944455445 -1.81395941973 --0.337949723005 -1.8312163651 --0.337956219912 -1.84847342968 --0.337963841856 -1.8657310307 --0.337972663343 -1.88298889994 --0.33798263222 -1.90024745464 --0.337988071144 -1.91946774721 --0.33798301965 -1.93868637085 --0.337972998619 -1.95594471693 --0.337964139879 -1.97320276499 --0.33795645088 -1.990460217 --0.337949946523 -2.0077174902 --0.337944619357 -2.02497422695 --0.337940461934 -2.0422309041 --0.337937474251 -2.05948722363 --0.337935701013 -2.07674360275 --0.337935112417 -2.09399974346 --0.33793567121 -2.11125606298 --0.337937407196 -2.1285123229 --0.337940312922 -2.14576882124 --0.337944433093 -2.16302531957 --0.337949723005 -2.18028223514 --0.337956219912 -2.19753926992 --0.337963841856 -2.21479690075 --0.337972663343 -2.23205471039 --0.33798263222 -2.24931323528 --0.337988071144 -2.26853358745 --0.337982997298 -2.2877522707 --0.337972976267 -2.30501055718 --0.337964139879 -2.32226860523 --0.33795645088 -2.33952605724 --0.337949946523 -2.35678327084 --0.337944619357 -2.3740400672 --0.337940461934 -2.39129680395 --0.337937474251 -2.40855312347 --0.337935701013 -2.42580944299 --0.337935112417 -2.44306558371 --0.337935648859 -2.46032196284 --0.337937384844 -2.47757816315 --0.337940335274 -2.49483466148 --0.337944455445 -2.51209115982 --0.337949723005 -2.52934807539 --0.33795619756 -2.54660511017 --0.337963819504 -2.56386268139 --0.337972663343 -2.58112055063 --0.337982669473 -2.59837913513 --0.337988108397 -2.6175994277 --0.33798301965 -2.63681805134 --0.337972998619 -2.65407645702 --0.337964139879 -2.67133450508 --0.33795645088 -2.68859189749 --0.337949946523 -2.70584917069 --0.337944619357 -2.72310590744 --0.337940461934 -2.74036258459 --0.337937474251 -2.75761896372 --0.337935701013 -2.77487540245 --0.337935112417 -2.79213154316 --0.337935648859 -2.80938780308 --0.337937384844 -2.82664394379 --0.337940335274 -2.84390044212 --0.337944455445 -2.86115700006 --0.337949723005 -2.87841397524 --0.337956219912 -2.89567101002 --0.337963841856 -2.91292864084 --0.337972663343 -2.93018651008 --0.337982654572 -2.94744503498 --0.337988093495 -2.96666526795 --0.337982997298 -2.98588383198 --0.337972976267 -3.00314223766 --0.337964139879 -3.02040034532 --0.33795645088 -3.03765779734 --0.337949946523 -3.05491507054 --0.337944619357 -3.07217180729 --0.337940461934 -3.08942848444 --0.337937474251 -3.10668480396 --0.337935678661 -3.12394118309 --0.337935090065 -3.14119735558 --0.337935648859 --3.12473165989 --0.337937384844 --3.10747551918 --0.337940312922 --3.09021902084 --0.337944433093 --3.0729624629 --0.337949745357 --3.05570548773 --0.337956242264 --3.03844845295 --0.337963841856 --3.02119082213 --0.337972663343 --3.00393295288 --0.337982669473 --2.98667442799 --0.337988108397 --2.96745419502 --0.337982997298 --2.94823563099 --0.337972976267 --2.9309772253 --0.337964139879 --2.91371917724 --0.33795645088 --2.89646172524 --0.337949946523 --2.87920445204 --0.337944619357 --2.86194771528 --0.337940461934 --2.84469097853 --0.337937474251 --2.82743465901 --0.337935701013 --2.81017827988 --0.337935112417 --2.79292213917 --0.337935648859 --2.77566581964 --0.337937384844 --2.75840961933 --0.337940335274 --2.74115312099 --0.337944455445 --2.72389662266 --0.337949723005 --2.70663970709 --0.33795619756 --2.68938261271 --0.337963819504 --2.67212498188 --0.337972663343 --2.65486717224 --0.33798263222 --2.63760864735 --0.337988071144 --2.61838829517 --0.33798301965 --2.59916961193 --0.337972998619 --2.58191132545 --0.337964139879 --2.564653337 --0.33795645088 --2.54739588499 --0.337949946523 --2.53013861179 --0.337944619357 --2.51288181543 --0.337940461934 --2.49562513828 --0.337937474251 --2.47836887836 --0.337935701013 --2.46111249924 --0.337935112417 --2.44385635853 --0.33793567121 --2.4265999794 --0.337937407196 --2.40934371948 --0.337940335274 --2.39208722115 --0.337944455445 --2.37483072281 --0.337949723005 --2.35757380724 --0.337956219912 --2.34031677246 --0.337963841856 --2.32305920124 --0.337972663343 --2.305801332 --0.337982647121 --2.2885428071 --0.337988086045 --2.26932251454 --0.33798301965 --2.25010383129 --0.337972998619 --2.23284548521 --0.337964139879 --2.21558743715 --0.33795645088 --2.19832998514 --0.337949946523 --2.18107271194 --0.337944619357 --2.16381597519 --0.337940461934 --2.14655929804 --0.337937474251 --2.12930291891 --0.337935701013 --2.11204653979 --0.337935112417 --2.09479039908 --0.337935648859 --2.07753407955 --0.337937384844 --2.06027793884 --0.337940335274 --2.04302144051 --0.337944455445 --2.02576488256 --0.337949723005 --2.00850793719 --0.337956219912 --1.99125090242 --0.337963841856 --1.97399330139 --0.337972663343 --1.95673546195 --0.337982669473 --1.93947693706 --0.337988108397 --1.92025664449 --0.337982997298 --1.90103802085 --0.337972976267 --1.88377964497 --0.337964139879 --1.86652153731 --0.33795645088 --1.84926411509 --0.337949946523 --1.8320068717 --0.337944619357 --1.81475010514 --0.337940461934 --1.79749342799 --0.337937474251 --1.78023710847 --0.337935701013 --1.76298069954 --0.337935112417 --1.74572455883 --0.33793567121 --1.72846826911 --0.337937407196 --1.7112120986 --0.337940335274 --1.69395560026 --0.337944455445 --1.67669907212 --0.337949723005 --1.65944212675 --0.337956219912 --1.64218509197 --0.337963864207 --1.62492746115 --0.337972685695 --1.6076695919 --0.337982647121 --1.59041106701 --0.337988086045 --1.57119077444 --0.337982997298 --1.5519721508 --0.337972953915 --1.53471377492 --0.337964117527 --1.51745572686 --0.33795645088 --1.50019827485 --0.337949946523 --1.48294103146 --0.337944619357 --1.4656842947 --0.337940461934 --1.44842755794 --0.337937474251 --1.43117123842 --0.337935678661 --1.4139148891 --0.337935090065 --1.39665874839 --0.337935648859 --1.37940242886 --0.337937384844 --1.36214622855 --0.337940335274 --1.34488970041 --0.337944455445 --1.32763320208 --0.337949723005 --1.31037628651 --0.337956219912 --1.29311922193 --0.337963841856 --1.2758616209 --0.337972663343 --1.25860375166 --0.33798263222 --1.24134519696 --0.337988071144 --1.2221249342 --0.33798301965 --1.20290628076 --0.337972998619 --1.18564790487 --0.337964139879 --1.16838985681 --0.33795645088 --1.15113243461 --0.337949946523 --1.13387519121 --0.337944619357 --1.11661842465 --0.337940461934 --1.0993617475 --0.337937474251 --1.08210542798 --0.337935701013 --1.06484901905 --0.337935112417 --1.04759287834 --0.33793567121 --1.03033655882 --0.337937407196 --1.0130803287 --0.337940312922 --0.995823830367 --0.337944433093 --0.978567332029 --0.337949723005 --0.96131041646 --0.337956219912 --0.944053381681 --0.337963841856 --0.926795750857 --0.337972663343 --0.909537896514 --0.33798263222 --0.892279371619 --0.337988071144 --0.873059093952 --0.337982997298 --0.853840455413 --0.337972976267 --0.836582094431 --0.337964139879 --0.819324031472 --0.33795645088 --0.802066594362 --0.337949946523 --0.784809365869 --0.337944619357 --0.767552599311 --0.337940461934 --0.750295877457 --0.337937474251 --0.733039543033 --0.337935701013 --0.715783163905 --0.337935112417 --0.698527023196 --0.337935648859 --0.681270703673 --0.337937384844 --0.66401450336 --0.337940335274 --0.646758005023 --0.337944455445 --0.629501506686 --0.337949723005 --0.612244576216 --0.33795619756 --0.594987511635 --0.337963819504 --0.577729895711 --0.337972663343 --0.56047205627 --0.337982669473 --0.543213531375 --0.337988108397 --0.523993253708 --0.33798301965 --0.504774615168 --0.337972998619 --0.487516239285 --0.337964139879 --0.470258183777 --0.33795645088 --0.453000731766 --0.337949946523 --0.43574347347 --0.337944619357 --0.418486721813 --0.337940461934 --0.401230029762 --0.337937474251 --0.383973702788 --0.337935701013 --0.36671731621 --0.337935112417 --0.349461190403 --0.337935648859 --0.332204863429 --0.337937384844 --0.314948663116 --0.337940335274 --0.297692164779 --0.337944455445 --0.280435666442 --0.337949723005 --0.263178728521 --0.337956219912 --0.245921660214 --0.337963841856 --0.228664055467 --0.337972663343 --0.211406201124 --0.337982654572 --0.194147668779 --0.337988093495 --0.174927379936 --0.320650339126 --0.155701313168 --0.320640780032 --0.138442974538 --0.320632383227 --0.121184952557 --0.320625074208 --0.10392754525 --0.320618882775 --0.0866703204811 --0.32061380893 --0.0694135930389 --0.320609852672 --0.0521569270641 --0.320606999099 --0.0349006312899 --0.320605270565 --0.0176442759112 --0.320604711771 --0.000388169428333 --0.320605263114 -0.0168681212235 --0.320606924593 -0.0341242891736 --0.32060970366 -0.0513807637617 --0.320613630116 -0.0686372388155 --0.32061868161 -0.0858941413462 --0.320624865591 -0.103151166812 --0.320632115006 -0.120408749208 --0.320640519261 -0.137666586787 --0.320650048554 -0.154925093055 --0.320655226707 -0.174145635217 --0.320650361478 -0.193364534527 --0.320640802384 -0.210622873158 --0.320632383227 -0.227880895138 --0.320625074208 -0.245138306171 --0.320618867874 -0.262395530939 --0.320613794029 -0.279652260244 --0.320609852672 -0.296908922494 --0.320607014001 -0.314165212214 --0.320605307817 -0.33142156899 --0.320604734123 -0.348677679897 --0.320605263114 -0.365933977068 --0.320606924593 -0.383190147579 --0.320609726012 -0.400446623564 --0.320613652468 -0.417703092098 --0.320618659258 -0.434959992766 --0.32062484324 -0.452217034996 --0.320632115006 -0.469474613667 --0.320640519261 -0.486732438207 --0.320650026202 -0.503990925849 --0.320655204355 -0.523211464286 --0.32065038383 -0.542430385947 --0.320640824735 -0.559688732028 --0.320632383227 -0.576946750283 --0.320625074208 -0.594204172492 --0.320618882775 -0.611461400985 --0.320613786578 -0.628718093038 --0.32060983032 -0.645974770189 --0.320607014001 -0.66323107481 --0.320605307817 -0.680487424135 --0.320604734123 -0.697743549943 --0.320605263114 -0.714999824763 --0.320606924593 -0.732255980372 --0.320609726012 -0.749512463808 --0.320613652468 -0.766768947244 --0.320618659258 -0.784025862813 --0.32062484324 -0.80128288269 --0.320632115006 -0.81854043901 --0.320640519261 -0.835798278451 --0.320650026202 -0.853056803345 --0.320655204355 -0.872277334332 --0.320650361478 -0.891496241093 --0.320640802384 -0.908754572272 --0.320632383227 -0.926012590528 --0.320625074208 -0.943270027638 --0.320618867874 -0.96052724123 --0.320613771677 -0.977783948183 --0.32060983032 -0.995040640234 --0.320607014001 -1.01229694486 --0.320605307817 -1.02955329418 --0.320604734123 -1.04680940509 --0.320605263114 -1.064065665 --0.320606924593 -1.08132180572 --0.320609726012 -1.09857830406 --0.320613652468 -1.11583480239 --0.320618659258 -1.13309168816 --0.32062484324 -1.15034872294 --0.320632115006 -1.16760629416 --0.320640519261 -1.1848641038 --0.320650048554 -1.20212262869 --0.320655226707 -1.22134318948 --0.320650339126 -1.24056208134 --0.320640780032 -1.25782042742 --0.320632383227 -1.27507847547 --0.320625074208 -1.29233586788 --0.320618867874 -1.30959308148 --0.320613771677 -1.32684981823 --0.32060983032 -1.34410646558 --0.320607014001 -1.3613627553 --0.320605307817 -1.37861913443 --0.320604734123 -1.39587524534 --0.320605263114 -1.41313153505 --0.320606924593 -1.43038770556 --0.320609726012 -1.4476441741 --0.320613652468 -1.46490064263 --0.320618659258 -1.4821575582 --0.32062484324 -1.49941459298 --0.320632137358 -1.5166721642 --0.320640541613 -1.53392997384 --0.320650026202 -1.55118846893 --0.320655204355 -1.57040902972 --0.320650339126 -1.58962792158 --0.320640780032 -1.60688623786 --0.320632383227 -1.62414425611 --0.320625074208 -1.64140167832 --0.320618867874 -1.65865892172 --0.320613771677 -1.67591565848 --0.32060983032 -1.69317233562 --0.320607014001 -1.71042862535 --0.320605285466 -1.72768497467 --0.320604711771 -1.74494108558 --0.320605263114 -1.76219734549 --0.320606924593 -1.77945351601 --0.320609726012 -1.79671001435 --0.320613652468 -1.81396648288 --0.320618659258 -1.83122336864 --0.320624820888 -1.84848040342 --0.320632092654 -1.86573800445 --0.320640519261 -1.88299584389 --0.320650026202 -1.90025436878 --0.320655204355 -1.91947489977 --0.32065038383 -1.93869379163 --0.320640824735 -1.95595213771 --0.320632383227 -1.97321015596 --0.320625074208 -1.99046757817 --0.320618867874 -2.00772479176 --0.320613794029 -2.02498149872 --0.320609852672 -2.04223817587 --0.320607014001 -2.05949443579 --0.320605307817 -2.07675075531 --0.320604734123 -2.09400689602 --0.320605263114 -2.11126321554 --0.320606924593 -2.12851941586 --0.320609726012 -2.14577585459 --0.320613652468 -2.16303235292 --0.320618659258 -2.18028926849 --0.320624820888 -2.19754624367 --0.320632092654 -2.21480381489 --0.320640519261 -2.23206162453 --0.320650026202 -2.24932014942 --0.320655204355 -2.26854074001 --0.320650361478 -2.28775966168 --0.320640802384 -2.30501794815 --0.320632383227 -2.32227599621 --0.320625074208 -2.33953344822 --0.320618867874 -2.35679066181 --0.320613771677 -2.37404739857 --0.32060983032 -2.39130407572 --0.320607014001 -2.40856039524 --0.320605307817 -2.42581671476 --0.320604734123 -2.44307273626 --0.320605263114 -2.46032905579 --0.320606924593 -2.47758531571 --0.320609726012 -2.49484175443 --0.320613652468 -2.51209819317 --0.320618659258 -2.52935510874 --0.320624820888 -2.54661208391 --0.320632092654 -2.56386965513 --0.320640519261 -2.58112746477 --0.320650048554 -2.59838593006 --0.320655226707 -2.61760652065 --0.320650361478 -2.63682544232 --0.320640802384 -2.6540837884 --0.320632383227 -2.67134183645 --0.320625074208 -2.68859922886 --0.320618867874 -2.70585644245 --0.320613771677 -2.72311317921 --0.32060983032 -2.74036985636 --0.320607014001 -2.75762617588 --0.320605307817 -2.77488255501 --0.320604734123 -2.79213869571 --0.320605263114 -2.80939495563 --0.320606924593 -2.82665109635 --0.320609726012 -2.84390759468 --0.320613652468 -2.86116403341 --0.320618659258 -2.87842094898 --0.32062484324 -2.89567804336 --0.320632115006 -2.91293561458 --0.320640519261 -2.93019342423 --0.320650048554 -2.94745194912 --0.320655226707 -2.96667248011 --0.320650339126 -2.98589134216 --0.320640780032 -3.00314968824 --0.320632383227 -3.0204076767 --0.320625074208 -3.0376650691 --0.320618882775 -3.0549223423 --0.32061380893 -3.07217907906 --0.320609852672 -3.08943575621 --0.320606999099 -3.10669201613 --0.320605270565 -3.12394833565 --0.320604711771 -3.14120450814 --0.320605263114 --3.12472450733 --0.320606924593 --3.10746836663 --0.32060970366 --3.09021186828 --0.320613630116 --3.07295542955 --0.32061868161 --3.05569851398 --0.320624865591 --3.0384414196 --0.320632115006 --3.02118384838 --0.320640519261 --3.00392603874 --0.320650048554 --2.98666751385 --0.320655226707 --2.96744698286 --0.320650361478 --2.9482281208 --0.320640802384 --2.93096977472 --0.320632383227 --2.91371178627 --0.320625074208 --2.89645439387 --0.320618867874 --2.87919718027 --0.320613794029 --2.86194044351 --0.320609852672 --2.84468370676 --0.320607014001 --2.82742744684 --0.320605307817 --2.81017112732 --0.320604734123 --2.79291498661 --0.320605263114 --2.77565872669 --0.320606924593 --2.75840258599 --0.320609726012 --2.74114608765 --0.320613652468 --2.72388958931 --0.320618659258 --2.70663267374 --0.32062484324 --2.68937563897 --0.320632115006 --2.67211806774 --0.320640519261 --2.6548602581 --0.320650026202 --2.63760173321 --0.320655204355 --2.61838114262 --0.32065038383 --2.59916222095 --0.320640824735 --2.58190393448 --0.320632383227 --2.56464594603 --0.320625074208 --2.54738849402 --0.320618882775 --2.53013122082 --0.320613786578 --2.51287454367 --0.32060983032 --2.49561792612 --0.320607014001 --2.4783616066 --0.320605307817 --2.46110522747 --0.320604734123 --2.44384914637 --0.320605263114 --2.42659282684 --0.320606924593 --2.40933662653 --0.320609726012 --2.3920801878 --0.320613652468 --2.37482368946 --0.320618659258 --2.35756677389 --0.32062484324 --2.34030979872 --0.320632115006 --2.3230522871 --0.320640519261 --2.30579441786 --0.320650026202 --2.28853589297 --0.320655204355 --2.26931536198 --0.320650361478 --2.25009644031 --0.320640802384 --2.23283815384 --0.320632383227 --2.21558010578 --0.320625074208 --2.19832265377 --0.320618867874 --2.18106544018 --0.320613771677 --2.16380870342 --0.32060983032 --2.14655202627 --0.320607014001 --2.12929570675 --0.320605307817 --2.11203932762 --0.320604734123 --2.09478318692 --0.320605263114 --2.07752692699 --0.320606924593 --2.06027078628 --0.320609726012 --2.04301428795 --0.320613652468 --2.02575784922 --0.320618659258 --2.00850096345 --0.32062484324 --1.99124392867 --0.320632115006 --1.97398635745 --0.320640519261 --1.95672854781 --0.320650048554 --1.93947005272 --0.320655226707 --1.92024949193 --0.320650339126 --1.90103060007 --0.320640780032 --1.88377222418 --0.320632383227 --1.86651414633 --0.320625074208 --1.84925675392 --0.320618867874 --1.83199957013 --0.320613771677 --1.81474286318 --0.32060983032 --1.79748618603 --0.320607014001 --1.7802298665 --0.320605307817 --1.76297351718 --0.320604734123 --1.74571740627 --0.320605263114 --1.72846111655 --0.320606924593 --1.71120497584 --0.320609726012 --1.69394850731 --0.320613652468 --1.67669203878 --0.320618659258 --1.65943515301 --0.32062484324 --1.64217811823 --0.320632137358 --1.62492051721 --0.320640541613 --1.60766267777 --0.320650026202 --1.59040415287 --0.320655204355 --1.57118362188 --0.320650339126 --1.55196473002 --0.320640780032 --1.53470638394 --0.320632383227 --1.51744836569 --0.320625074208 --1.50019094348 --0.320618867874 --1.48293372989 --0.320613771677 --1.46567699313 --0.32060983032 --1.44842028618 --0.320607014001 --1.43116399646 --0.320605285466 --1.41390767694 --0.320604711771 --1.39665159583 --0.320605263114 --1.37939530611 --0.320606924593 --1.3621391058 --0.320609726012 --1.34488260746 --0.320613652468 --1.32762613893 --0.320618659258 --1.31036925316 --0.320624820888 --1.29311224818 --0.320632092654 --1.27585467696 --0.320640519261 --1.25859680772 --0.320650026202 --1.24133831263 --0.320655204355 --1.22211778164 --0.32065038383 --1.20289885998 --0.320640824735 --1.1856405139 --0.320632383227 --1.16838246584 --0.320625074208 --1.15112507343 --0.320618867874 --1.13386785984 --0.320613794029 --1.11661115289 --0.320609852672 --1.09935450554 --0.320607014001 --1.08209818602 --0.320605307817 --1.06484183669 --0.320604734123 --1.04758572578 --0.320605263114 --1.03032940626 --0.320606924593 --1.01307323575 --0.320609726012 --0.995816782118 --0.320613652468 --0.978560298681 --0.320618659258 --0.961303398013 --0.320624820888 --0.944046393037 --0.320632092654 --0.926788806915 --0.320640519261 --0.909530982376 --0.320650026202 --0.892272472382 --0.320655204355 --0.873051926494 --0.320650361478 --0.853833034635 --0.320640802384 --0.836574703455 --0.320632383227 --0.819316655397 --0.320625074208 --0.802059233188 --0.320618867874 --0.784802019596 --0.320613771677 --0.767545297742 --0.32060983032 --0.750288635493 --0.320607014001 --0.73303231597 --0.320605307817 --0.715775966644 --0.320604734123 --0.69851988554 --0.320605263114 --0.681263580918 --0.320606924593 --0.664007380605 --0.320609726012 --0.646750926971 --0.320613652468 --0.629494473338 --0.320618659258 --0.61223757267 --0.320624820888 --0.594980537891 --0.320632092654 --0.577722936869 --0.320640519261 --0.56046512723 --0.320650048554 --0.543206632137 --0.320655226707 --0.523986086249 --0.320650361478 --0.50476718694 --0.320640802384 --0.487508840859 --0.320632383227 --0.470250815153 --0.320625074208 --0.452993385494 --0.320618867874 --0.435736164451 --0.320613771677 --0.418479442596 --0.32060983032 --0.401222772896 --0.320607014001 --0.383966490627 --0.320605307817 --0.366710133851 --0.320604734123 --0.349454022944 --0.320605263114 --0.332197725773 --0.320606924593 --0.314941555262 --0.320609726012 --0.297685086727 --0.320613652468 --0.280428618193 --0.320618659258 --0.263171710074 --0.32062484324 --0.245914675295 --0.320632115006 --0.22865710035 --0.320640519261 --0.21139927581 --0.320650048554 --0.194140773267 --0.320655226707 --0.174920219928 --0.303300336003 --0.155693851411 --0.303291246295 --0.138435538858 --0.303283259273 --0.121177550405 --0.303276315332 --0.103920176625 --0.303270436824 --0.0866629779339 --0.303265631199 --0.0694062784314 --0.303261876106 --0.0521496413276 --0.303259178996 --0.0348933753558 --0.30325756967 --0.0176370511763 --0.303257040679 --0.000380974728613 --0.303257539869 -0.0168752861209 --0.303259111941 -0.0341314245016 --0.303261756897 -0.0513878678903 --0.303265489638 -0.0686443150044 --0.303270272911 -0.0859011895954 --0.303276129067 -0.103158187121 --0.303283035755 -0.120415743441 --0.303291007876 -0.137673545629 --0.303300030529 -0.15493201837 --0.303304962814 -0.174152828753 --0.303300358355 -0.193371992558 --0.303291268647 -0.210630297661 --0.303283259273 -0.22788829729 --0.303276315332 -0.245145682245 --0.303270421922 -0.262402877212 --0.303265616298 -0.279659584165 --0.303261876106 -0.296916216612 --0.303259193897 -0.31417247653 --0.303257584572 -0.331428803504 --0.303257040679 -0.348684884608 --0.303257539869 -0.365941144526 --0.303259111941 -0.383197277784 --0.303261779249 -0.400453723967 --0.30326551199 -0.41771017015 --0.303270272911 -0.434967041015 --0.303276129067 -0.452224053443 --0.303283035755 -0.469481609762 --0.303291007876 -0.486739389598 --0.303300030529 -0.503997862339 --0.303304962814 -0.523218676448 --0.303300358355 -0.542437836528 --0.303291268647 -0.559696152807 --0.303283259273 -0.576954156161 --0.303276315332 -0.594211533666 --0.303270436824 -0.611468732357 --0.303265608847 -0.628725409508 --0.303261853754 -0.645982056856 --0.303259193897 -0.663238331675 --0.303257584572 -0.680494651198 --0.303257018328 -0.697750747204 --0.303257517517 -0.715006992221 --0.303259111941 -0.732263118029 --0.303261779249 -0.749519556761 --0.30326551199 -0.766776010394 --0.303270272911 -0.784032896161 --0.303276129067 -0.801289901138 --0.303283035755 -0.818547442556 --0.303291007876 -0.835805237293 --0.303300030529 -0.853063717484 --0.303304962814 -0.872284531593 --0.303300336003 -0.891503706574 --0.303291246295 -0.90876199305 --0.303283259273 -0.926019981503 --0.303276315332 -0.943277388811 --0.303270421922 -0.960534587502 --0.303265593946 -0.977791264653 --0.303261853754 -0.995047912001 --0.303259193897 -1.01230418682 --0.303257584572 -1.02956050635 --0.303257040679 -1.04681655765 --0.303257539869 -1.06407278776 --0.303259111941 -1.08132892847 --0.303261779249 -1.09858539701 --0.30326551199 -1.11584186554 --0.303270272911 -1.1330987215 --0.303276129067 -1.15035572648 --0.303283035755 -1.1676132977 --0.303291007876 -1.18487110734 --0.303300030529 -1.20212960244 --0.303304962814 -1.22135040164 --0.303300336003 -1.24056953192 --0.303291246295 -1.2578278482 --0.303283259273 -1.27508586645 --0.303276315332 -1.29234322906 --0.303270421922 -1.30960044265 --0.303265593946 -1.3268571496 --0.303261853754 -1.34411376715 --0.303259193897 -1.36137002706 --0.303257584572 -1.37862634659 --0.303257040679 -1.39588242769 --0.303257539869 -1.41313868761 --0.303259111941 -1.43039482832 --0.303261779249 -1.44765126705 --0.303265489638 -1.46490770578 --0.303270250559 -1.48216459155 --0.303276129067 -1.49942159653 --0.303283035755 -1.51667916775 --0.303291007876 -1.53393694758 --0.303300030529 -1.55119538307 --0.303304962814 -1.57041621208 --0.303300336003 -1.58963540196 --0.303291246295 -1.60689368844 --0.303283259273 -1.62415167689 --0.303276315332 -1.6414090693 --0.303270421922 -1.65866625309 --0.303265593946 -1.67592296004 --0.303261853754 -1.69317960739 --0.303259193897 -1.71043586731 --0.303257584572 -1.72769218683 --0.303257018328 -1.74494826794 --0.303257517517 -1.76220452786 --0.303259111941 -1.77946066856 --0.303261779249 -1.7967171371 --0.30326551199 -1.81397357583 --0.303270272911 -1.83123043179 --0.303276106715 -1.84848743677 --0.303283013403 -1.86574497819 --0.303291007876 -1.88300278783 --0.303300030529 -1.90026128292 --0.303304962814 -1.91948208213 --0.303300358355 -1.93870124221 --0.303291268647 -1.95595955849 --0.303283259273 -1.97321754694 --0.303276315332 -1.99047493934 --0.303270421922 -2.00773209334 --0.303265616298 -2.02498877049 --0.303261876106 -2.04224544764 --0.303259193897 -2.05950170755 --0.303257584572 -2.07675802707 --0.303257040679 -2.09401410818 --0.303257539869 -2.1112704277 --0.303259111941 -2.12852656841 --0.303261779249 -2.14578294754 --0.30326551199 -2.16303938627 --0.303270272911 -2.18029624224 --0.303276106715 -2.19755321741 --0.303283013403 -2.21481078863 --0.303291007876 -2.23206859827 --0.303300030529 -2.24932706356 --0.303304962814 -2.26854789257 --0.303300358355 -2.28776705265 --0.303291268647 -2.30502533912 --0.303283259273 -2.32228338718 --0.303276315332 -2.33954077959 --0.303270421922 -2.35679799318 --0.303265593946 -2.37405472994 --0.303261853754 -2.39131134748 --0.303259193897 -2.40856760741 --0.303257584572 -2.42582392693 --0.303257018328 -2.44307994842 --0.303257517517 -2.46033620834 --0.303259111941 -2.47759240866 --0.303261779249 -2.49484878778 --0.30326551199 -2.51210522651 --0.303270272911 -2.52936214208 --0.303276106715 -2.54661911726 --0.303283013403 -2.56387668848 --0.303291007876 -2.58113449812 --0.303300030529 -2.59839296341 --0.303304962814 -2.61761379242 --0.303300336003 -2.6368329525 --0.303291246295 -2.65409123897 --0.303283259273 -2.67134922743 --0.303276315332 -2.68860661984 --0.303270421922 -2.70586383343 --0.303265593946 -2.72312051058 --0.303261853754 -2.74037712813 --0.303259193897 -2.75763338804 --0.303257584572 -2.77488970756 --0.303257018328 -2.79214584827 --0.303257517517 -2.80940210819 --0.303259111941 -2.8266582489 --0.303261779249 -2.84391474724 --0.30326551199 -2.86117112636 --0.303270272911 -2.87842798233 --0.303276129067 -2.89568501711 --0.303283035755 -2.91294252872 --0.303291007876 -2.93020033836 --0.303300030529 -2.94745886326 --0.303304962814 -2.96667969227 --0.303300336003 -2.98589885235 --0.303291246295 -3.00315713882 --0.303283259273 -3.02041506767 --0.303276315332 -3.03767240047 --0.303270436824 -3.05492961407 --0.303265631199 -3.07218635082 --0.303261876106 -3.08944302797 --0.303259178996 -3.10669928789 --0.30325756967 -3.12395560741 --0.303257040679 -3.1412117203 --0.303257539869 --3.12471735478 --0.303259111941 --3.10746121407 --0.303261756897 --3.09020471573 --0.303265489638 --3.0729483366 --0.303270272911 --3.05569148063 --0.303276129067 --3.03843444585 --0.303283035755 --3.02117693424 --0.303291007876 --3.0039191246 --0.303300030529 --2.98666059971 --0.303304962814 --2.9674397707 --0.303300358355 --2.94822061062 --0.303291268647 --2.93096232414 --0.303283259273 --2.91370433569 --0.303276315332 --2.89644700289 --0.303270421922 --2.8791898489 --0.303265616298 --2.86193311214 --0.303261876106 --2.84467643499 --0.303259193897 --2.82742017508 --0.303257584572 --2.81016385555 --0.303257040679 --2.79290777445 --0.303257539869 --2.77565151453 --0.303259111941 --2.75839537382 --0.303261779249 --2.74113893509 --0.30326551199 --2.72388249635 --0.303270272911 --2.70662564039 --0.303276129067 --2.68936866522 --0.303283035755 --2.67211109399 --0.303291007876 --2.65485328436 --0.303300030529 --2.63759481907 --0.303304962814 --2.61837399006 --0.303300358355 --2.59915482998 --0.303291268647 --2.5818965435 --0.303283259273 --2.56463849545 --0.303276315332 --2.54738110304 --0.303270436824 --2.53012388944 --0.303265608847 --2.51286721229 --0.303261853754 --2.49561059475 --0.303259193897 --2.47835427523 --0.303257584572 --2.46109795571 --0.303257018328 --2.4438419342 --0.303257517517 --2.42658567428 --0.303259111941 --2.40932953358 --0.303261779249 --2.39207315445 --0.30326551199 --2.37481665611 --0.303270272911 --2.35755974054 --0.303276129067 --2.34030276537 --0.303283035755 --2.32304525375 --0.303291007876 --2.30578744411 --0.303300030529 --2.28852897883 --0.303304962814 --2.26930814982 --0.303300336003 --2.25008893013 --0.303291246295 --2.23283070326 --0.303283259273 --2.21557271481 --0.303276315332 --2.1983152628 --0.303270421922 --2.1810580492 --0.303265593946 --2.16380137205 --0.303261853754 --2.1465447545 --0.303259193897 --2.12928849458 --0.303257584572 --2.11203217506 --0.303257040679 --2.09477603436 --0.303257539869 --2.07751977444 --0.303259111941 --2.06026369333 --0.303261779249 --2.043007195 --0.30326551199 --2.02575075626 --0.303270272911 --2.0084939301 --0.303276129067 --1.99123692513 --0.303283035755 --1.97397935391 --0.303291007876 --1.95672157407 --0.303300030529 --1.93946310878 --0.303304962814 --1.92024227977 --0.303300336003 --1.90102311969 --0.303291246295 --1.88376477361 --0.303283259273 --1.86650675535 --0.303276315332 --1.84924939275 --0.303270421922 --1.83199223876 --0.303265593946 --1.81473556161 --0.303261853754 --1.79747891426 --0.303259193897 --1.78022262454 --0.303257584572 --1.76296630502 --0.303257040679 --1.74571022392 --0.303257539869 --1.72845393419 --0.303259111941 --1.71119782329 --0.303261779249 --1.69394138455 --0.303265489638 --1.67668494582 --0.303270250559 --1.65942808986 --0.303276129067 --1.64217105508 --0.303283035755 --1.62491351366 --0.303291007876 --1.60765573382 --0.303300030529 --1.59039723873 --0.303304962814 --1.57117643952 --0.303300336003 --1.55195727944 --0.303291246295 --1.53469896317 --0.303283259273 --1.51744097471 --0.303276315332 --1.50018358231 --0.303270421922 --1.48292636871 --0.303265593946 --1.46566966176 --0.303261853754 --1.44841301441 --0.303259193897 --1.43115675449 --0.303257584572 --1.41390043497 --0.303257018328 --1.39664438367 --0.303257517517 --1.37938812375 --0.303259111941 --1.36213195324 --0.303261779249 --1.34487551451 --0.30326551199 --1.32761907578 --0.303270272911 --1.31036219001 --0.303276106715 --1.29310521484 --0.303283013403 --1.27584767342 --0.303291007876 --1.25858983398 --0.303300030529 --1.24133136869 --0.303304962814 --1.22211056948 --0.303300358355 --1.2028914094 --0.303291268647 --1.18563309312 --0.303283259273 --1.16837507486 --0.303276315332 --1.15111771226 --0.303270421922 --1.13386052847 --0.303265616298 --1.11660385132 --0.303261876106 --1.09934720397 --0.303259193897 --1.08209091425 --0.303257584572 --1.06483459473 --0.303257040679 --1.04757851362 --0.303257539869 --1.0303222537 --0.303259111941 --1.013066113 --0.303261779249 --0.995809674264 --0.30326551199 --0.978553235531 --0.303270272911 --0.961296364665 --0.303276106715 --0.94403937459 --0.303283013403 --0.926781818271 --0.303291007876 --0.909524023533 --0.303300030529 --0.892265543342 --0.303304962814 --0.873044729233 --0.303300358355 --0.853825584054 --0.303291268647 --0.836567267776 --0.303283259273 --0.81930924952 --0.303276315332 --0.802051872015 --0.303270421922 --0.784794673324 --0.303265593946 --0.76753796637 --0.303261853754 --0.750281348825 --0.303259193897 --0.733025088906 --0.303257584572 --0.715768754482 --0.303257018328 --0.698512688279 --0.303257517517 --0.681256428361 --0.303259111941 --0.664000272751 --0.303261779249 --0.646743834019 --0.30326551199 --0.629487395287 --0.303270272911 --0.612230524421 --0.303276106715 --0.594973519444 --0.303283013403 --0.577715963125 --0.303291007876 --0.560458168387 --0.303300030529 --0.543199688196 --0.303304962814 --0.523978874087 --0.303300336003 --0.504759714007 --0.303291246295 --0.48750140518 --0.303283259273 --0.470243409276 --0.303276315332 --0.45298601687 --0.303270421922 --0.435728825629 --0.303265593946 --0.418472141027 --0.303261853754 --0.401215501129 --0.303259193897 --0.383959241211 --0.303257584572 --0.366702899337 --0.303257018328 --0.349446810782 --0.303257517517 --0.332190558314 --0.303259111941 --0.314934417605 --0.303261779249 --0.297677978873 --0.30326551199 --0.280421540141 --0.303270272911 --0.263164661825 --0.303276129067 --0.245907660574 --0.303283035755 --0.22865010798 --0.303291007876 --0.211392305792 --0.303300030529 --0.194133833051 --0.303304962814 --0.174913022667 --0.285932347178 --0.155686363578 --0.285923779011 --0.138428084552 --0.285916186869 --0.121170118451 --0.285909593106 --0.103912772611 --0.285904042423 --0.0866556037218 --0.285899505019 --0.0693989312276 --0.285895965993 --0.05214232672 --0.285893425345 --0.0348860924132 --0.285891905427 --0.0176297959406 --0.285891391337 --0.000373748363925 --0.285891868174 -0.0168824829161 --0.28589335829 -0.0341385914944 --0.285895869136 -0.0513950055465 --0.285899393261 -0.0686514209956 --0.285903900862 -0.0859082657844 --0.285909436643 -0.103165237233 --0.285915985703 -0.12042276375 --0.285923525691 -0.137680530548 --0.285932034254 -0.154938977212 --0.285936698318 -0.174160055816 --0.285932332277 -0.193379480391 --0.285923741758 -0.210637755692 --0.285916186869 -0.227895725519 --0.285909615457 -0.245153084397 --0.285904042423 -0.262410253286 --0.285899505019 -0.279666930437 --0.285895965993 -0.296923533082 --0.285893425345 -0.314179763198 --0.285891905427 -0.331436060369 --0.285891391337 -0.348692111671 --0.285891868174 -0.365948341786 --0.28589335829 -0.383204437792 --0.285895869136 -0.400460854173 --0.285899393261 -0.417717270553 --0.285903900862 -0.434974111617 --0.285909436643 -0.452231094241 --0.285915985703 -0.469488620758 --0.285923525691 -0.486746378243 --0.285932034254 -0.504004836083 --0.285936698318 -0.523225918412 --0.285932332277 -0.542445346713 --0.285923741758 -0.559703618288 --0.285916164518 -0.576961576939 --0.285909593106 -0.594218924641 --0.285904042423 -0.61147609353 --0.285899505019 -0.62873275578 --0.285895965993 -0.645989358425 --0.285893425345 -0.663245618343 --0.285891905427 -0.680501922965 --0.285891368985 -0.697757959366 --0.285891845822 -0.715014174581 --0.28589335829 -0.732270270586 --0.285895869136 -0.749526679516 --0.285899393261 -0.766783103347 --0.285903900862 -0.784039974212 --0.285909436643 -0.801296964288 --0.285915963352 -0.818554475904 --0.285923503339 -0.83581225574 --0.285932034254 -0.853070691228 --0.285936698318 -0.872291758656 --0.285932332277 -0.891511201858 --0.285923741758 -0.908769458532 --0.285916186869 -0.926027432084 --0.285909615457 -0.943284794688 --0.285904042423 -0.960541948676 --0.285899505019 -0.977798610925 --0.285895951092 -0.995055228472 --0.285893410444 -1.01231148839 --0.285891905427 -1.02956777811 --0.285891391337 -1.04682379961 --0.285891868174 -1.06407999992 --0.28589335829 -1.08133611083 --0.285895869136 -1.09859254956 --0.285899393261 -1.11584895849 --0.285903900862 -1.13310578466 --0.285909436643 -1.15036275983 --0.285915985703 -1.16762030125 --0.285923525691 -1.18487808109 --0.285932034254 -1.20213654638 --0.285936698318 -1.2213576436 --0.285932332277 -1.2405770421 --0.285923741758 -1.25783529878 --0.285916186869 -1.27509328723 --0.285909615457 -1.29235062003 --0.285904042423 -1.30960780382 --0.285899505019 -1.32686451078 --0.285895965993 -1.34412109852 --0.285893425345 -1.36137729883 --0.285891905427 -1.37863358855 --0.285891391337 -1.39588963986 --0.285891868174 -1.41314586997 --0.28589335829 -1.43040201068 --0.285895869136 -1.44765841961 --0.285899370909 -1.46491482854 --0.28590387851 -1.4821716845 --0.285909436643 -1.49942865968 --0.285915985703 -1.5166862011 --0.285923548043 -1.53394395113 --0.285932056606 -1.55120235681 --0.285936698318 -1.57042342424 --0.285932347178 -1.58964288235 --0.285923756659 -1.60690116883 --0.285916186869 -1.62415912748 --0.285909615457 -1.64141649008 --0.285904042423 -1.65867364407 --0.285899505019 -1.67593032122 --0.285895965993 -1.69318693876 --0.285893425345 -1.71044316888 --0.285891905427 -1.7276994586 --0.285891368985 -1.7449555099 --0.285891845822 -1.76221174002 --0.28589335829 -1.77946782112 --0.285895869136 -1.79672425985 --0.285899393261 -1.81398066878 --0.285903900862 -1.83123749495 --0.285909436643 -1.84849447012 --0.285915963352 -1.86575198174 --0.285923503339 -1.88300976157 --0.285932034254 -1.90026822686 --0.285936698318 -1.91948932409 --0.285932332277 -1.93870872259 --0.285923741758 -1.95596700907 --0.285916164518 -1.97322499752 --0.285909593106 -1.99048233032 --0.285904042423 -2.00773945451 --0.285899505019 -2.02499610186 --0.285895951092 -2.0422527194 --0.285893410444 -2.05950897932 --0.285891905427 -2.07676529884 --0.285891391337 -2.09402132034 --0.285891868174 -2.11127758026 --0.28589335829 -2.12853372097 --0.285895869136 -2.1457901001 --0.285899393261 -2.16304647923 --0.285903900862 -2.18030333519 --0.285909436643 -2.19756031036 --0.285915963352 -2.21481782198 --0.285923503339 -2.23207557201 --0.285932034254 -2.2493340373 --0.285936698318 -2.26855516434 --0.285932332277 -2.28777456283 --0.285923741758 -2.30503284931 --0.285916164518 -2.32229083776 --0.285909593106 -2.33954811096 --0.285904042423 -2.35680532455 --0.285899505019 -2.37406206131 --0.285895965993 -2.39131867886 --0.285893425345 -2.40857493878 --0.285891905427 -2.42583119869 --0.285891368985 -2.44308722019 --0.285891845822 -2.46034342051 --0.28589335829 -2.47759950161 --0.285895869136 -2.49485594034 --0.285899393261 -2.51211237907 --0.285903900862 -2.52936917543 --0.285909436643 -2.54662615061 --0.285915963352 -2.56388372183 --0.285923503339 -2.58114153147 --0.285932034254 -2.59839999676 --0.285936698318 -2.61762106419 --0.285932332277 -2.63684046268 --0.285923741758 -2.65409874916 --0.285916164518 -2.67135667801 --0.285909593106 -2.68861401081 --0.285904042423 -2.7058712244 --0.285899505019 -2.72312784195 --0.285895965993 -2.7403844595 --0.285893425345 -2.75764071941 --0.285891905427 -2.77489697933 --0.285891368985 -2.79215306044 --0.285891845822 -2.80940932035 --0.28589335829 -2.82666546106 --0.285895869136 -2.84392189979 --0.285899393261 -2.86117827892 --0.285903900862 -2.87843513489 --0.285909436643 -2.89569205045 --0.285915963352 -2.91294950247 --0.285923503339 -2.9302073121 --0.285932034254 -2.9474657774 --0.285936698318 -2.96668684483 --0.285932347178 -2.98590630293 --0.285923779011 -3.00316458941 --0.285916186869 -3.02042251826 --0.285909593106 -3.03767985106 --0.285904042423 -3.05493700504 --0.285899505019 -3.07219368219 --0.285895965993 -3.08945029974 --0.285893425345 -3.10670655966 --0.285891905427 -3.12396287918 --0.285891391337 -3.14121893247 --0.285891868174 --3.12471014261 --0.28589335829 --3.10745400191 --0.285895869136 --3.09019756317 --0.285899393261 --3.07294118404 --0.285903900862 --3.05568432808 --0.285909436643 --3.0384273529 --0.285915985703 --3.02116990089 --0.285923525691 --3.00391215086 --0.285932034254 --2.98665368557 --0.285936698318 --2.96743261814 --0.285932332277 --2.94821316004 --0.285923741758 --2.93095487356 --0.285916186869 --2.91369688511 --0.285909615457 --2.89643955231 --0.285904042423 --2.87918245792 --0.285899505019 --2.86192578077 --0.285895965993 --2.84466916323 --0.285893425345 --2.82741290331 --0.285891905427 --2.81015658379 --0.285891391337 --2.79290056229 --0.285891868174 --2.77564430237 --0.28589335829 --2.75838816166 --0.285895869136 --2.74113178253 --0.285899393261 --2.7238754034 --0.285903900862 --2.70661854744 --0.285909436643 --2.68936157226 --0.285915985703 --2.67210406065 --0.285923525691 --2.65484631061 --0.285932034254 --2.63758784533 --0.285936698318 --2.61836671829 --0.285932332277 --2.59914731979 --0.285923741758 --2.58188909292 --0.285916164518 --2.56463110447 --0.285909593106 --2.54737377167 --0.285904042423 --2.53011655808 --0.285899505019 --2.51285982132 --0.285895965993 --2.49560326338 --0.285893425345 --2.47834700346 --0.285891905427 --2.46109068394 --0.285891368985 --2.44383472204 --0.285891845822 --2.42657852173 --0.28589335829 --2.40932238102 --0.285895869136 --2.39206600189 --0.285899393261 --2.37480956316 --0.285903900862 --2.35755270719 --0.285909436643 --2.34029573202 --0.285915963352 --2.3230381608 --0.285923503339 --2.30578035116 --0.285932034254 --2.28852194547 --0.285936698318 --2.26930087805 --0.285932332277 --2.25008141995 --0.285923741758 --2.23282319308 --0.285916186869 --2.21556520462 --0.285909615457 --2.19830781221 --0.285904042423 --2.18105065823 --0.285899505019 --2.16379404068 --0.285895951092 --2.14653742313 --0.285893410444 --2.12928116321 --0.285891905427 --2.1120249033 --0.285891391337 --2.09476882219 --0.285891868174 --2.07751256227 --0.28589335829 --2.06025654077 --0.285895869136 --2.04300010204 --0.285899393261 --2.02574360371 --0.285903900862 --2.00848680735 --0.285909436643 --1.99122986198 --0.285915985703 --1.97397232056 --0.285923525691 --1.95671457052 --0.285932034254 --1.93945613503 --0.285936698318 --1.92023506761 --0.285932332277 --1.90101563931 --0.285923741758 --1.88375732303 --0.285916186869 --1.86649936438 --0.285909615457 --1.84924203157 --0.285904042423 --1.83198487759 --0.285899505019 --1.81472820044 --0.285895965993 --1.79747158289 --0.285893425345 --1.78021535277 --0.285891905427 --1.76295906306 --0.285891391337 --1.74570301175 --0.285891868174 --1.72844675183 --0.28589335829 --1.71119067073 --0.285895869136 --1.6939342618 --0.285899370909 --1.67667782307 --0.28590387851 --1.65942099691 --0.285909436643 --1.64216402173 --0.285915985703 --1.62490651012 --0.285923548043 --1.60764876008 --0.285932056606 --1.59039029479 --0.285936698318 --1.57116919756 --0.285932347178 --1.55194976926 --0.285923756659 --1.53469148279 --0.285916186869 --1.51743352413 --0.285909615457 --1.50017616152 --0.285904042423 --1.48291897774 --0.285899505019 --1.46566233039 --0.285895965993 --1.44840571284 --0.285893425345 --1.43114945292 --0.285891905427 --1.41389316321 --0.285891368985 --1.39663714171 --0.285891845822 --1.37938091159 --0.28589335829 --1.36212480068 --0.285895869136 --1.34486842156 --0.285899393261 --1.32761201263 --0.285903900862 --1.31035512686 --0.285909436643 --1.29309815168 --0.285915963352 --1.27584064007 --0.285923503339 --1.25858286023 --0.285932034254 --1.24132442474 --0.285936698318 --1.22210335732 --0.285932332277 --1.20288392901 --0.285923741758 --1.18562564254 --0.285916164518 --1.16836765408 --0.285909593106 --1.15111032128 --0.285904042423 --1.1338531971 --0.285899505019 --1.11659651995 --0.285895951092 --1.0993398726 --0.285893410444 --1.08208364248 --0.285891905427 --1.06482735276 --0.285891391337 --1.04757130146 --0.285891868174 --1.03031510115 --0.28589335829 --1.01305896044 --0.285895869136 --0.995802506805 --0.285899393261 --0.978546112776 --0.285903900862 --0.961289286614 --0.285909436643 --0.944032326341 --0.285915963352 --0.926774799824 --0.285923503339 --0.909517034888 --0.285932034254 --0.892258584499 --0.285936698318 --0.87303750217 --0.285932332277 --0.853818073869 --0.285923741758 --0.836559772492 --0.285916164518 --0.81930179894 --0.285909593106 --0.802044481039 --0.285904042423 --0.784787327052 --0.285899505019 --0.767530634999 --0.285895965993 --0.750274017453 --0.285893425345 --0.733017787337 --0.285891905427 --0.715761497617 --0.285891368985 --0.698505446315 --0.285891845822 --0.6812492311 --0.28589335829 --0.663993135094 --0.285895869136 --0.646736696362 --0.285899393261 --0.629480287433 --0.285903900862 --0.612223446369 --0.285909436643 --0.594966456294 --0.285915963352 --0.577708959579 --0.285923503339 --0.560451194644 --0.285932034254 --0.543192729354 --0.285936698318 --0.523971647024 --0.285932332277 --0.504752226174 --0.285923741758 --0.487493947149 --0.285916164518 --0.470235973597 --0.285909593106 --0.452978618443 --0.285904042423 --0.435721457005 --0.285899505019 --0.418464802205 --0.285895965993 --0.40120819211 --0.285893425345 --0.383951947093 --0.285891905427 --0.366695635021 --0.285891368985 --0.34943959117 --0.285891845822 --0.332183368504 --0.28589335829 --0.314927242696 --0.285895869136 --0.297670833766 --0.285899393261 --0.280414432287 --0.285903900862 --0.263157576323 --0.285909436643 --0.245900604874 --0.285915963352 --0.228643089533 --0.285923503339 --0.211385313422 --0.285932034254 --0.194126866758 --0.285936698318 --0.174905791879 --0.268565833569 --0.155678510666 --0.268557786942 --0.138420257717 --0.268550634384 --0.121162317694 --0.268544405699 --0.103905001655 --0.268539182842 --0.0866478681564 --0.26853492111 --0.0693912282586 --0.268531583249 --0.0521346544847 --0.268529176712 --0.0348784504458 --0.26852773875 --0.0176221856382 --0.268527254462 --0.000366169493642 --0.268527701497 -0.0168900310528 --0.268529109657 -0.0341461091302 --0.26853146404 -0.05140249338 --0.26853479445 -0.0686588771641 --0.268539048731 -0.0859156921506 --0.268544256687 -0.103172631934 --0.268550418317 -0.120430123061 --0.268557533622 -0.137687858194 --0.268565565348 -0.154946275055 --0.268569931388 -0.174167636782 --0.268565818667 -0.193387340754 --0.268557749688 -0.210645586252 --0.268550634384 -0.227903522551 --0.268544450402 -0.245160840452 --0.268539205193 -0.262417979538 --0.26853492111 -0.279674626887 --0.268531583249 -0.296931199729 --0.268529176712 -0.314187400043 --0.26852773875 -0.331443667412 --0.268527254462 -0.348699681461 --0.268527701497 -0.365955874324 --0.268529109657 -0.383211947978 --0.268531486392 -0.400468334556 --0.26853479445 -0.417724713683 --0.26853902638 -0.434981532395 --0.268544256687 -0.452238485217 --0.268550440669 -0.469495974481 --0.268557555974 -0.486753717065 --0.268565565348 -0.504012130201 --0.268569931388 -0.523233488202 --0.268565818667 -0.542453214526 --0.268557749688 -0.559711456299 --0.268550612032 -0.576969385147 --0.268544405699 -0.594226703048 --0.268539182842 -0.611483827233 --0.26853492111 -0.628740459681 --0.268531583249 -0.645997032523 --0.268529176712 -0.663253262639 --0.26852773875 -0.680509537458 --0.268527254462 -0.697765529156 --0.268527701497 -0.715021729469 --0.268529109657 -0.732277795672 --0.26853146404 -0.7495341748 --0.268534772098 -0.766790568828 --0.26853902638 -0.784047394991 --0.268544256687 -0.801304340362 --0.268550418317 -0.818561822176 --0.268557533622 -0.835819587112 --0.268565565348 -0.853078007698 --0.268569931388 -0.872299343348 --0.268565818667 -0.89151905477 --0.268557749688 -0.908777296543 --0.268550634384 -0.926035240293 --0.268544450402 -0.943292558193 --0.268539205193 -0.960549682379 --0.26853492111 -0.977806314826 --0.268531568349 -0.995062902569 --0.268529161811 -1.01231914758 --0.26852773875 -1.0295754075 --0.268527254462 -1.0468313992 --0.268527701497 -1.06408756971 --0.268529109657 -1.08134365082 --0.26853146404 -1.09860005975 --0.268534772098 -1.11585643888 --0.26853902638 -1.13311323523 --0.268544256687 -1.1503701806 --0.268550440669 -1.16762769222 --0.268557555974 -1.18488544225 --0.268565565348 -1.20214384794 --0.268569931388 -1.22136518359 --0.268565818667 -1.24058488011 --0.268557749688 -1.25784313679 --0.268550634384 -1.27510109544 --0.268544428051 -1.29235839843 --0.268539182842 -1.30961552262 --0.26853492111 -1.32687216997 --0.268531583249 -1.34412872791 --0.268529176712 -1.36138492822 --0.26852773875 -1.37864121795 --0.268527254462 -1.39589723944 --0.268527701497 -1.41315343976 --0.268529109657 -1.43040952087 --0.268531486392 -1.44766589999 --0.26853479445 -1.46492227912 --0.26853902638 -1.48217910528 --0.268544256687 -1.49943605065 --0.268550418317 -1.51669353247 --0.268557555973 -1.5339512825 --0.2685655877 -1.55120968819 --0.268569931388 -1.57043102384 --0.268565833569 -1.58965075016 --0.26855776459 -1.60690900684 --0.268550634384 -1.62416693568 --0.268544450402 -1.64142426848 --0.268539205193 -1.65868139267 --0.26853492111 -1.67593804002 --0.268531583249 -1.69319462776 --0.268529176712 -1.71045082808 --0.26852773875 -1.72770708799 --0.268527254462 -1.74496307969 --0.268527701497 -1.7622192502 --0.268529109657 -1.77947533131 --0.26853146404 -1.79673174024 --0.268534772098 -1.81398811936 --0.26853902638 -1.83124491572 --0.268544256687 -1.84850186109 --0.268550418317 -1.86575937271 --0.268557533622 -1.88301709294 --0.268565565348 -1.90027552843 --0.268569931388 -1.91949692368 --0.268565818667 -1.9387165904 --0.268557749688 -1.95597484708 --0.268550612032 -1.97323280573 --0.26854442805 -1.99049007892 --0.268539205193 -2.00774720311 --0.26853492111 -2.02500385046 --0.268531568349 -2.0422604084 --0.268529161811 -2.05951660871 --0.26852773875 -2.07677286863 --0.268527254462 -2.09402889013 --0.268527701497 -2.11128509045 --0.268529109657 -2.12854117155 --0.26853146404 -2.14579755068 --0.268534772098 -2.16305392981 --0.26853902638 -2.18031078577 --0.268544256687 -2.19756776094 --0.268550418317 -2.21482521296 --0.268557533622 -2.23208290338 --0.268565565348 -2.24934136867 --0.268569931388 -2.26856279373 --0.268565818667 -2.28778249025 --0.268557749688 -2.30504071713 --0.268550612032 -2.32229864598 --0.268544405699 -2.33955591917 --0.268539182842 -2.35681307316 --0.26853492111 -2.37406975031 --0.268531583249 -2.39132630825 --0.268529176712 -2.40858250856 --0.26852773875 -2.42583876848 --0.268527254462 -2.44309478998 --0.268527701497 -2.46035099029 --0.268529109657 -2.4776070118 --0.268531486392 -2.49486345053 --0.268534816802 -2.51211988926 --0.268539048731 -2.52937662601 --0.268544256687 -2.54663354158 --0.268550418317 -2.5638910532 --0.268557533622 -2.58114880324 --0.268565565348 -2.59840720892 --0.268569931388 -2.61762857437 --0.268565818667 -2.63684827089 --0.268557749688 -2.65410649776 --0.268550612032 -2.67136442661 --0.26854442805 -2.68862175941 --0.268539205193 -2.7058789134 --0.26853492111 -2.72313553095 --0.268531583249 -2.7403921485 --0.268529176712 -2.75764840842 --0.26852773875 -2.77490466833 --0.268527254462 -2.79216063023 --0.268527701497 -2.80941683054 --0.268529109657 -2.82667297125 --0.26853146404 -2.84392935038 --0.268534772098 -2.8611857295 --0.26853902638 -2.87844252586 --0.268544256687 -2.89569938183 --0.268550418317 -2.91295689344 --0.268557533622 -2.93021470308 --0.268565565348 -2.94747310877 --0.268569931388 -2.96669441462 --0.268565833569 -2.98591417074 --0.268557786942 -3.00317245722 --0.268550634384 -3.02043032646 --0.268544405699 -3.03768765926 --0.268539182842 -3.05494481325 --0.26853492111 -3.0722014308 --0.268531583249 -3.08945798874 --0.268529176712 -3.10671418906 --0.26852773875 -3.12397044897 --0.268527254462 -3.14122650226 --0.268527701497 --3.12470257282 --0.268529109657 --3.10744649172 --0.26853146404 --3.09019011259 --0.26853479445 --3.07293373347 --0.268539048731 --3.0556768775 --0.268544256687 --3.03841996193 --0.268550418317 --3.02116250992 --0.268557533622 --3.00390475988 --0.268565565348 --2.9866463542 --0.268569931388 --2.96742504835 --0.268565818667 --2.94820535183 --0.268557749688 --2.93094706535 --0.268550634384 --2.9136891365 --0.268544450402 --2.89643180371 --0.268539205193 --2.87917464971 --0.26853492111 --2.86191803217 --0.268531583249 --2.84466147423 --0.268529176712 --2.82740527391 --0.26852773875 --2.810149014 --0.268527254462 --2.7928929925 --0.268527701497 --2.77563679218 --0.268529109657 --2.75838071108 --0.268531486392 --2.74112433195 --0.26853479445 --2.72386795283 --0.26853902638 --2.70661109686 --0.268544256687 --2.68935412169 --0.268550440669 --2.67209666968 --0.268557555974 --2.65483897925 --0.268565565348 --2.63758051396 --0.268569931388 --2.6183590889 --0.268565818667 --2.59913939238 --0.268557749688 --2.58188122511 --0.268550612032 --2.56462329626 --0.268544405699 --2.54736596346 --0.268539182842 --2.53010880947 --0.26853492111 --2.51285213232 --0.268531583249 --2.49559563399 --0.268529176712 --2.47833943367 --0.26852773875 --2.46108311415 --0.268527254462 --2.44382715225 --0.268527701497 --2.42657095194 --0.268529109657 --2.40931487083 --0.26853146404 --2.3920584917 --0.268534772098 --2.37480211258 --0.26853902638 --2.35754531622 --0.268544256687 --2.34028834104 --0.268550418317 --2.32303082943 --0.268557533622 --2.3057730794 --0.268565565348 --2.28851467371 --0.268569931388 --2.26929330826 --0.268565818667 --2.25007361174 --0.268557749688 --2.23281538486 --0.268550634384 --2.21555739641 --0.268544450402 --2.19830006361 --0.268539205193 --2.18104296923 --0.26853492111 --2.16378635168 --0.268531568349 --2.14652973414 --0.268529161811 --2.12927347422 --0.26852773875 --2.1120172143 --0.268527254462 --2.0947612524 --0.268527701497 --2.07750505209 --0.268529109657 --2.06024897099 --0.26853146404 --2.04299259186 --0.268534772098 --2.02573615313 --0.26853902638 --2.00847935677 --0.268544256687 --1.991222471 --0.268550440669 --1.97396498918 --0.268557555974 --1.95670723915 --0.268565565348 --1.93944883346 --0.268569931388 --1.92022749782 --0.268565818667 --1.90100777149 --0.268557749688 --1.88374951482 --0.268550634384 --1.86649158597 --0.268544428051 --1.84923425317 --0.268539182842 --1.83197712898 --0.26853492111 --1.81472048163 --0.268531583249 --1.79746389389 --0.268529176712 --1.78020769357 --0.26852773875 --1.76295143366 --0.268527254462 --1.74569544196 --0.268527701497 --1.72843921185 --0.268529109657 --1.71118313074 --0.268531486392 --1.69392678142 --0.26853479445 --1.67667037249 --0.26853902638 --1.65941357613 --0.268544256687 --1.64215666056 --0.268550418317 --1.62489914894 --0.268557555973 --1.60764139891 --0.2685655877 --1.59038296342 --0.268569931388 --1.57116159797 --0.268565833569 --1.55194190145 --0.26855776459 --1.53468364477 --0.268550634384 --1.51742571592 --0.268544450402 --1.50016841292 --0.268539205193 --1.48291125894 --0.26853492111 --1.46565461159 --0.268531583249 --1.44839802385 --0.268529176712 --1.43114182353 --0.26852773875 --1.41388556361 --0.268527254462 --1.39662954211 --0.268527701497 --1.3793733716 --0.268529109657 --1.3621172905 --0.26853146404 --1.34486091137 --0.268534772098 --1.32760456204 --0.26853902638 --1.31034773588 --0.268544256687 --1.29309076071 --0.268550418317 --1.27583324909 --0.268557533622 --1.25857552886 --0.268565565348 --1.24131715298 --0.268569931388 --1.22209578753 --0.268565818667 --1.2028760612 --0.268557749688 --1.18561780453 --0.268550612032 --1.16835984588 --0.26854442805 --1.15110254287 --0.268539205193 --1.13384544849 --0.26853492111 --1.11658880115 --0.268531568349 --1.0993322134 --0.268529161811 --1.08207601309 --0.26852773875 --1.06481975317 --0.268527254462 --1.04756373167 --0.268527701497 --1.03030753135 --0.268529109657 --1.01305145025 --0.26853146404 --0.995795041322 --0.268534772098 --0.978538662195 --0.26853902638 --0.961281865835 --0.268544256687 --0.944024920464 --0.268550418317 --0.92676743865 --0.268557533622 --0.909509718418 --0.268565565348 --0.892251282931 --0.268569931388 --0.873029902578 --0.268565818667 --0.853810191154 --0.268557749688 --0.836551949382 --0.268550612032 --0.819294005632 --0.268544405699 --0.802036702633 --0.268539182842 --0.784779578448 --0.26853492111 --0.767522931099 --0.268531583249 --0.750266358257 --0.268529176712 --0.733010143042 --0.26852773875 --0.715753883123 --0.268527254462 --0.698497876525 --0.268527701497 --0.681241691112 --0.268529109657 --0.663985624909 --0.268531486392 --0.646729215979 --0.268534816802 --0.629472821951 --0.268539048731 --0.61221601069 --0.268544256687 --0.594959080219 --0.268550418317 --0.577701598406 --0.268557533622 --0.560443848371 --0.268565565348 --0.543185427785 --0.268569931388 --0.523964077234 --0.268565818667 --0.504744365811 --0.268557749688 --0.487486109138 --0.268550612032 --0.470228180289 --0.26854442805 --0.452970862389 --0.268539205193 --0.435713723302 --0.26853492111 --0.418457090855 --0.268531583249 --0.401200510561 --0.268529176712 --0.383944302797 --0.26852773875 --0.366688035428 --0.268527254462 --0.34943202883 --0.268527701497 --0.332175828516 --0.268529109657 --0.314919732511 --0.26853146404 --0.297663353384 --0.268534772098 --0.280406974256 --0.26853902638 --0.263150155544 --0.268544256687 --0.245893217623 --0.268550418317 --0.228635732085 --0.268557533622 --0.211377985775 --0.268565565348 --0.194119565189 --0.268569931388 --0.174898214638 --0.251228310168 --0.155670553446 --0.251220740378 --0.138412334025 --0.251214038581 --0.121154425666 --0.251208208501 --0.10389713943 --0.251203298569 --0.0866400375962 --0.251199297607 --0.069383431226 --0.251196175814 --0.0521268872544 --0.251193910837 --0.0348707139492 --0.251192551106 --0.0176144812722 --0.251192111522 --0.000358497025445 --0.251192528754 -0.016897671856 --0.251193851232 -0.0341537185013 --0.251196056604 -0.0514100715518 --0.251199182123 -0.0686664246023 --0.251203190535 -0.0859232079238 --0.251208078116 -0.103180117905 --0.25121384114 -0.120437579229 --0.251220524311 -0.137695282698 --0.251228075475 -0.154953666031 --0.251232162118 -0.17417531088 --0.251228310168 -0.193395297974 --0.251220740378 -0.21065351367 --0.251214057207 -0.227911420167 --0.251208249479 -0.245168700814 --0.251203320921 -0.262425802648 --0.251199278981 -0.279682420194 --0.251196138561 -0.296938963235 --0.251193892211 -0.314195126295 --0.251192551106 -0.331451363862 --0.251192111522 -0.348707348108 --0.251192528754 -0.365963511169 --0.251193851232 -0.383219562471 --0.251196078956 -0.400475919247 --0.251199182123 -0.417732268572 --0.251203168184 -0.434989057481 --0.251208078116 -0.4522459656 --0.251213863492 -0.469503417611 --0.251220546663 -0.486761137843 --0.251228075475 -0.504019513727 --0.251232162118 -0.523241147399 --0.251228310168 -0.542461156845 --0.251220740378 -0.559719383717 --0.251214038581 -0.576977297664 --0.251208208501 -0.594234570861 --0.251203298569 -0.611491650343 --0.251199297607 -0.628748252988 --0.251196157187 -0.646004810929 --0.251193910837 -0.663260996342 --0.251192569733 -0.680517226457 --0.251192111522 -0.697773203254 --0.251192528754 -0.715029373765 --0.251193851232 -0.732285425067 --0.251196056604 -0.749541774392 --0.251199159771 -0.766798123718 --0.251203168184 -0.784054905176 --0.251208078116 -0.801311820746 --0.251213863492 -0.818569287658 --0.251220546663 -0.83582700789 --0.251228075475 -0.853085398674 --0.251232162118 -0.872307017445 --0.251228310168 -0.891526997089 --0.251220740378 -0.908785223961 --0.251214038581 -0.926043137908 --0.251208230853 -0.943300411105 --0.251203320921 -0.960557505489 --0.251199297607 -0.977814123035 --0.251196175814 -0.995070666073 --0.251193910837 -1.01232683659 --0.251192551106 -1.0295830965 --0.251192111522 -1.0468390882 --0.251192528754 -1.06409522891 --0.251193851232 -1.08135128021 --0.251196056604 -1.09860762954 --0.251199159771 -1.11586397886 --0.251203168184 -1.13312077522 --0.251208078116 -1.15037769079 --0.251213863492 -1.1676351428 --0.251220546663 -1.18489286303 --0.251228075475 -1.20215123892 --0.251232162118 -1.22137284279 --0.251228310168 -1.24059283734 --0.251220740378 -1.25785106421 --0.251214038581 -1.27510896325 --0.251208208501 -1.29236623644 --0.251203298569 -1.30962333083 --0.251199297607 -1.32687994838 --0.251196157187 -1.34413650632 --0.251193892211 -1.36139267683 --0.251192551106 -1.37864890695 --0.251192111522 -1.39590489864 --0.251192528754 -1.41316106916 --0.251193851232 -1.43041709066 --0.251196078956 -1.44767346978 --0.251199182123 -1.46492984891 --0.251203168184 -1.48218661547 --0.251208078116 -1.49944350123 --0.25121384114 -1.51670095324 --0.251220505684 -1.53395867347 --0.251228056848 -1.55121704936 --0.251232162118 -1.57043868303 --0.251228310168 -1.58965870738 --0.251220740378 -1.60691693425 --0.251214057207 -1.6241748333 --0.251208249479 -1.6414321363 --0.251203320921 -1.65868923068 --0.251199297607 -1.67594581842 --0.251196175814 -1.69320234656 --0.251193910837 -1.71045854687 --0.251192551106 -1.72771480679 --0.251192111522 -1.74497076869 --0.251192528754 -1.7622269094 --0.251193851232 -1.7794829607 --0.251196056604 -1.79673931002 --0.251199159771 -1.81399565935 --0.251203168184 -1.83125245571 --0.251208078116 -1.84850937128 --0.251213863492 -1.86576685309 --0.251220546663 -1.88302454352 --0.251228075475 -1.90028291941 --0.251232162118 -1.91950458288 --0.251228310168 -1.93872454763 --0.251220740378 -1.9559827745 --0.251214038581 -1.97324070334 --0.251208230853 -1.99049794674 --0.251203320921 -2.00775507093 --0.251199297607 -2.02501171828 --0.251196175814 -2.04226821661 --0.251193910837 -2.05952435732 --0.251192551106 -2.07678061724 --0.251192111522 -2.09403663874 --0.251192528754 -2.11129277945 --0.251193851232 -2.12854880094 --0.251196056604 -2.14580512047 --0.251199159771 -2.16306143999 --0.251203168184 -2.18031829595 --0.251208078116 -2.19757527113 --0.251213863492 -2.21483272314 --0.251220546663 -2.23209041357 --0.251228075475 -2.24934875965 --0.251232162118 -2.26857042312 --0.251228310168 -2.28779041767 --0.251220740378 -2.30504858494 --0.251214038581 -2.32230651379 --0.251208208501 -2.33956384659 --0.251203298569 -2.35682094097 --0.251199297607 -2.37407749892 --0.251196157187 -2.39133399725 --0.251193892211 -2.40859013796 --0.251192551106 -2.42584639788 --0.251192111522 -2.44310241938 --0.251192528754 -2.46035861969 --0.251193851232 -2.47761464119 --0.251196078956 -2.49487102032 --0.251199204475 -2.51212745905 --0.251203190535 -2.52938419581 --0.251208078116 -2.54664105177 --0.251213863492 -2.56389850378 --0.251220546663 -2.58115619421 --0.251228075475 -2.59841459989 --0.251232162118 -2.61763626337 --0.251228310168 -2.63685625791 --0.251220740378 -2.65411442518 --0.251214038581 -2.67137229443 --0.251208230853 -2.68862962723 --0.251203320921 -2.70588672161 --0.251199278981 -2.72314333916 --0.251196157187 -2.7403999567 --0.251193910837 -2.75765615702 --0.251192551106 -2.77491235733 --0.251192111522 -2.79216825962 --0.251192528754 -2.80942440033 --0.251193851232 -2.82668048143 --0.251196056604 -2.84393686056 --0.251199159771 -2.86119323969 --0.251203168184 -2.87844997644 --0.251208078116 -2.89570683241 --0.251213863492 -2.91296434403 --0.251220546663 -2.93022209406 --0.251228075475 -2.94748049975 --0.251232162118 -2.96670210361 --0.251228310168 -2.98592209816 --0.251220740378 -3.00318038463 --0.251214038581 -3.02043825388 --0.251208208501 -3.03769552708 --0.251203298569 -3.05495268107 --0.251199297607 -3.07220929861 --0.251196175814 -3.08946579695 --0.251193910837 -3.10672193766 --0.251192551106 -3.12397819758 --0.251192111522 -3.14123419126 --0.251192528754 --3.12469500303 --0.251193851232 --3.10743898153 --0.251196056604 --3.09018260241 --0.251199182123 --3.07292622328 --0.251203190535 --3.05566942692 --0.251208078116 --3.03841257095 --0.25121384114 --3.02115511894 --0.251220524311 --3.00389736891 --0.251228075475 --2.98663896322 --0.251232162118 --2.96741735935 --0.251228310168 --2.94819742441 --0.251220740378 --2.93093913793 --0.251214057207 --2.91368120909 --0.251208249479 --2.89642393589 --0.251203320921 --2.8791667819 --0.251199278981 --2.86191016436 --0.251196138561 --2.84465366602 --0.251193892211 --2.82739752531 --0.251192551106 --2.81014126539 --0.251192111522 --2.79288524389 --0.251192528754 --2.77562910319 --0.251193851232 --2.75837308168 --0.251196078956 --2.74111676216 --0.251199182123 --2.72386044264 --0.251203168184 --2.70660358668 --0.251208078116 --2.6893466115 --0.251213863492 --2.67208915949 --0.251220546663 --2.65483146906 --0.251228075475 --2.63757312298 --0.251232162118 --2.6183514595 --0.251228310168 --2.59913146496 --0.251220740378 --2.58187329769 --0.251214038581 --2.56461536884 --0.251208208501 --2.54735809565 --0.251203298569 --2.53010100126 --0.251199297607 --2.51284438372 --0.251196157187 --2.49558788538 --0.251193910837 --2.47833174467 --0.251192569733 --2.46107548475 --0.251192111522 --2.44381946325 --0.251192528754 --2.42656326294 --0.251193851232 --2.40930724144 --0.251196056604 --2.39205086231 --0.251199159771 --2.37479448319 --0.251203168184 --2.35753774643 --0.251208078116 --2.34028083086 --0.251213863492 --2.32302337885 --0.251220546663 --2.30576568842 --0.251228075475 --2.28850728273 --0.251232162118 --2.26928561926 --0.251228310168 --2.25006562471 --0.251220740378 --2.23280745745 --0.251214038581 --2.2155495882 --0.251208230853 --2.1982922554 --0.251203320921 --2.18103516102 --0.251199297607 --2.16377854347 --0.251196175814 --2.14652192593 --0.251193910837 --2.12926572561 --0.251192551106 --2.1120095253 --0.251192111522 --2.09475362301 --0.251192528754 --2.0774974823 --0.251193851232 --2.0602414012 --0.251196056604 --2.04298502207 --0.251199159771 --2.02572864294 --0.251203168184 --2.00847187638 --0.251208078116 --1.99121499062 --0.251213863492 --1.97395753861 --0.251220546663 --1.95669981837 --0.251228075475 --1.93944141269 --0.251232162118 --1.92021980882 --0.251228310168 --1.90099981427 --0.251220740378 --1.8837415874 --0.251214038581 --1.86648368835 --0.251208208501 --1.84922638536 --0.251203298569 --1.83196929097 --0.251199297607 --1.81471267343 --0.251196157187 --1.79745611549 --0.251193892211 --1.78019994497 --0.251192551106 --1.76294371486 --0.251192111522 --1.74568775296 --0.251192528754 --1.72843158245 --0.251193851232 --1.71117553115 --0.251196078956 --1.69391921162 --0.251199182123 --1.6766628325 --0.251203168184 --1.65940603614 --0.251208078116 --1.64214915037 --0.25121384114 --1.62489166856 --0.251220505684 --1.60763394833 --0.251228056848 --1.59037557245 --0.251232162118 --1.57115393877 --0.251228310168 --1.55193397403 --0.251220740378 --1.53467574716 --0.251214057207 --1.51741781831 --0.251208249479 --1.50016054511 --0.251203320921 --1.48290342093 --0.251199297607 --1.46564680338 --0.251196175814 --1.44839027524 --0.251193910837 --1.43113410473 --0.251192551106 --1.41387787461 --0.251192111522 --1.39662188291 --0.251192528754 --1.37936571241 --0.251193851232 --1.3621096611 --0.251196056604 --1.34485331178 --0.251199159771 --1.32759699225 --0.251203168184 --1.31034019589 --0.251208078116 --1.29308325052 --0.251213863492 --1.27582579851 --0.251220546663 --1.25856810808 --0.251228075475 --1.2413097322 --0.251232162118 --1.22208806872 --0.251228310168 --1.20286807418 --0.251220740378 --1.18560987711 --0.251214038581 --1.16835197806 --0.251208230853 --1.15109470486 --0.251203320921 --1.13383761048 --0.251199297607 --1.11658099294 --0.251196175814 --1.09932443499 --0.251193910837 --1.08206826448 --0.251192551106 --1.06481203437 --0.251192111522 --1.04755604267 --0.251192528754 --1.03029987216 --0.251193851232 --1.01304382086 --0.251196056604 --0.995787471531 --0.251199159771 --0.978531137108 --0.251203168184 --0.96127435565 --0.251208078116 --0.94401744008 --0.251213863492 --0.926759988069 --0.251220546663 --0.909502282739 --0.251228075475 --0.892243877053 --0.251232162118 --0.873022213578 --0.251228310168 --0.853802248836 --0.251220740378 --0.836544051767 --0.251214038581 --0.819286122918 --0.251208208501 --0.80202883482 --0.251203298569 --0.784771725536 --0.251199297607 --0.76751512289 --0.251196157187 --0.750258594751 --0.251193892211 --0.73300242424 --0.251192551106 --0.715746194124 --0.251192111522 --0.698490217328 --0.251192528754 --0.681234046817 --0.251193851232 --0.663977995515 --0.251196078956 --0.64672164619 --0.251199204475 --0.629465267062 --0.251203190535 --0.612208470702 --0.251208078116 --0.594951584935 --0.251213863492 --0.577694132924 --0.251220546663 --0.560436397791 --0.251228075475 --0.543178007006 --0.251232162118 --0.523956403136 --0.251228310168 --0.504736408591 --0.251220740378 --0.48747818172 --0.251214038581 --0.470220290124 --0.251208230853 --0.452963009477 --0.251203320921 --0.435705900192 --0.251199278981 --0.418449275196 --0.251196157187 --0.401192732155 --0.251193910837 --0.383936569095 --0.251192551106 --0.366680331528 --0.251192111522 --0.349424347282 --0.251192528754 --0.332168176771 --0.251193851232 --0.314912132919 --0.251196056604 --0.297655783593 --0.251199159771 --0.280399419367 --0.251203168184 --0.263142630458 --0.251208078116 --0.24588572979 --0.251213863492 --0.228628281504 --0.251220546663 --0.211370568722 --0.251228075475 --0.194112181663 --0.251232162118 --0.174890544265 --0.233900364488 --0.155662834644 --0.233893282711 --0.138404652476 --0.233887013048 --0.12114677392 --0.2338815853 --0.103889517486 --0.233877006918 --0.0866324491799 --0.233873259276 --0.0693758716807 --0.233870342374 --0.0521193556487 --0.233868233859 --0.0348632130772 --0.233866970986 --0.0176070106681 --0.233866557479 --0.000351056456568 --0.23386695236 -0.0169050816912 --0.233868192881 -0.0341610978357 --0.233870245516 -0.0514174206182 --0.233873147517 -0.068673742935 --0.233876895159 -0.0859304927289 --0.233881473541 -0.103187371046 --0.233886860311 -0.120444806293 --0.233893092721 -0.137702487409 --0.233900137246 -0.15496084094 --0.233903963119 -0.17418275401 --0.233900364488 -0.193403013051 --0.233893282711 -0.210661198944 --0.233887031674 -0.227919075638 --0.233881603926 -0.245176330209 --0.233877006918 -0.26243340224 --0.23387324065 -0.279689989984 --0.233870305121 -0.296946503222 --0.233868215233 -0.31420262903 --0.233866970986 -0.331458829343 --0.233866557479 -0.348714783788 --0.23386695236 -0.365970924497 --0.233868192881 -0.383226945996 --0.233870245516 -0.400483280421 --0.233873147517 -0.417739599943 --0.233876895159 -0.434996344149 --0.233881473541 -0.452253229916 --0.233886860311 -0.469510659576 --0.233893092721 -0.486768327653 --0.233900137246 -0.504026666284 --0.233903963119 -0.523248583079 --0.233900364488 -0.542468860745 --0.233893282711 -0.559727042913 --0.233887013048 -0.576984927058 --0.2338815853 -0.594242185354 --0.233877006918 -0.611499235034 --0.233873259276 -0.628755807876 --0.233870323747 -0.646012336016 --0.233868233859 -0.663268476724 --0.233866989612 -0.680524691939 --0.233866557479 -0.697780653834 --0.23386695236 -0.715036779642 --0.233868192881 -0.732292801141 --0.233870245516 -0.749549120664 --0.233873147517 -0.766805425286 --0.233876895159 -0.784062176943 --0.233881473541 -0.801319077611 --0.233886860311 -0.818576529622 --0.233893092721 -0.835834205151 --0.233900137246 -0.853092551231 --0.233903963119 -0.872314468026 --0.233900364488 -0.891534730792 --0.233893282711 -0.90879291296 --0.233887013048 -0.926050782204 --0.2338815853 -0.943308025599 --0.233877006918 -0.96056509018 --0.233873259276 -0.977821677923 --0.233870342374 -0.995078191161 --0.233868233859 -1.01233431697 --0.233866970986 -1.02959054709 --0.233866557479 -1.04684650898 --0.23386695236 -1.06410261989 --0.233868192881 -1.08135864139 --0.233870264143 -1.09861496091 --0.233873166144 -1.11587128043 --0.233876895159 -1.13312804699 --0.233881473541 -1.15038493276 --0.233886860311 -1.16764235496 --0.233893092721 -1.18490004539 --0.233900137246 -1.20215839148 --0.233903963119 -1.22138029337 --0.233900364488 -1.24060055613 --0.233893282711 -1.2578587234 --0.233887013048 -1.27511659264 --0.2338815853 -1.29237386584 --0.233877006918 -1.30963096023 --0.233873259276 -1.32688754797 --0.233870323747 -1.34414407611 --0.233868215233 -1.36140018702 --0.233866970986 -1.37865635753 --0.233866557479 -1.39591231942 --0.23386695236 -1.41316846013 --0.233868192881 -1.43042448163 --0.233870245516 -1.44768083095 --0.233873147517 -1.46493718028 --0.233876895159 -1.48219391704 --0.233881473541 -1.499450773 --0.233886860311 -1.51670819521 --0.233893074095 -1.53396585584 --0.233900118619 -1.55122420192 --0.233903963119 -1.57044613361 --0.233900364488 -1.58966642618 --0.233893282711 -1.60692462325 --0.233887031674 -1.62418249249 --0.233881603926 -1.64143973589 --0.233877006918 -1.65869680047 --0.233873259276 -1.67595335841 --0.233870342374 -1.69320985675 --0.233868233859 -1.71046602726 --0.233866970986 -1.72772225738 --0.233866557479 -1.74497821927 --0.23386695236 -1.76223435998 --0.233868192881 -1.77949035168 --0.233870245516 -1.7967466414 --0.233873147517 -1.81400296092 --0.233876895159 -1.83125972748 --0.233881473541 -1.84851661325 --0.233886860311 -1.86577406526 --0.233893092721 -1.88303175569 --0.233900137246 -1.90029010177 --0.233903963119 -1.91951200366 --0.233900364488 -1.93873226643 --0.233893282711 -1.9559904635 --0.233887013048 -1.97324833274 --0.2338815853 -1.99050557614 --0.233877006918 -2.00776267052 --0.233873259276 -2.02501922846 --0.233870342374 -2.0422757268 --0.233868233859 -2.05953186751 --0.233866970986 -2.07678806782 --0.233866557479 -2.09404408932 --0.23386695236 -2.11130023003 --0.233868192881 -2.12855619192 --0.233870245516 -2.14581245184 --0.233873147517 -2.16306877136 --0.233876895159 -2.18032556772 --0.233881473541 -2.19758248329 --0.233886860311 -2.2148399353 --0.233893092721 -2.23209762573 --0.233900137246 -2.24935597181 --0.233903963119 -2.2685778737 --0.233900364488 -2.28779810667 --0.233893282711 -2.30505627394 --0.233887013048 -2.32231414318 --0.2338815853 -2.33957141638 --0.233877006918 -2.35682851076 --0.233873259276 -2.3740850687 --0.233870323747 -2.39134156704 --0.233868215233 -2.40859770775 --0.233866970986 -2.42585390806 --0.233866557479 -2.44310986996 --0.23386695236 -2.46036601067 --0.233868192881 -2.47762203216 --0.233870264143 -2.49487841129 --0.233873166144 -2.51213473082 --0.233876895159 -2.52939146757 --0.233881473541 -2.54664832354 --0.233886860311 -2.56390571594 --0.233893092721 -2.58116340637 --0.233900137246 -2.59842181206 --0.233903963119 -2.61764371395 --0.233900364488 -2.63686394691 --0.233893282711 -2.65412211418 --0.233887013048 -2.67137998343 --0.2338815853 -2.68863731622 --0.233877006918 -2.705894351 --0.23387324065 -2.72315090895 --0.233870323747 -2.74040746689 --0.233868233859 -2.7576636076 --0.233866970986 -2.77491980791 --0.233866557479 -2.7921757102 --0.23386695236 -2.80943185091 --0.233868192881 -2.82668787241 --0.233870245516 -2.84394419193 --0.233873147517 -2.86120051146 --0.233876895159 -2.87845724821 --0.233881473541 -2.89571416378 --0.233886860311 -2.91297161579 --0.233893092721 -2.93022924662 --0.233900137246 -2.9474875927 --0.233903963119 -2.96670955419 --0.233900364488 -2.98592984676 --0.233893282711 -3.00318807364 --0.233887013048 -3.02044594288 --0.2338815853 -3.03770315647 --0.233877006918 -3.05496025085 --0.233873259276 -3.07221680879 --0.233870342374 -3.08947330713 --0.233868233859 -3.10672944784 --0.233866970986 -3.12398564815 --0.233866557479 -3.14124158223 --0.23386695236 --3.12468761205 --0.233868192881 --3.10743159056 --0.233870245516 --3.09017527104 --0.233873147517 --3.07291895151 --0.233876895159 --3.05566221476 --0.233881473541 --3.03840529919 --0.233886860311 --3.02114784718 --0.233893092721 --3.00389021635 --0.233900137246 --2.98663187027 --0.233903963119 --2.96740990877 --0.233900364488 --2.9481896162 --0.233893282711 --2.93093138933 --0.233887031674 --2.91367352009 --0.233881603926 --2.8964163065 --0.233877006918 --2.87915921211 --0.23387324065 --2.86190265417 --0.233870305121 --2.84464615583 --0.233868215233 --2.82739001513 --0.233866970986 --2.81013381481 --0.233866557479 --2.79287779331 --0.23386695236 --2.7756216526 --0.233868192881 --2.75836569071 --0.233870245516 --2.74110943079 --0.233873147517 --2.72385311127 --0.233876895159 --2.70659631491 --0.233881473541 --2.68933939934 --0.233886860311 --2.67208194733 --0.233893092721 --2.6548242569 --0.233900137246 --2.63756597042 --0.233903963119 --2.61834406853 --0.233900364488 --2.59912377596 --0.233893282711 --2.58186560869 --0.233887013048 --2.56460773945 --0.2338815853 --2.54735052586 --0.233877006918 --2.53009343147 --0.233873259276 --2.51283681392 --0.233870323747 --2.49558031559 --0.233868233859 --2.47832423449 --0.233866989612 --2.46106797457 --0.233866557479 --2.44381195307 --0.23386695236 --2.42655587196 --0.233868192881 --2.40929985047 --0.233870245516 --2.39204347134 --0.233873147517 --2.37478715181 --0.233876895159 --2.35753041506 --0.233881473541 --2.34027355909 --0.233886860311 --2.32301610708 --0.233893092721 --2.30575841665 --0.233900137246 --2.28850007057 --0.233903963119 --2.26927816868 --0.233900364488 --2.25005793571 --0.233893282711 --2.23279976845 --0.233887013048 --2.2155418992 --0.2338815853 --2.198284626 --0.233877006918 --2.18102759123 --0.233873259276 --2.16377097368 --0.233870342374 --2.14651441574 --0.233868233859 --2.12925827503 --0.233866970986 --2.11200207472 --0.233866557479 --2.09474617243 --0.23386695236 --2.07749003172 --0.233868192881 --2.06023401022 --0.233870264143 --2.0429776907 --0.233873166144 --2.02572137117 --0.233876895159 --2.00846463442 --0.233881473541 --1.99120771885 --0.233886860311 --1.97395029664 --0.233893092721 --1.95669263602 --0.233900137246 --1.93943426013 --0.233903963119 --1.92021235824 --0.233900364488 --1.90099209547 --0.233893282711 --1.8837338984 --0.233887013048 --1.86647602916 --0.2338815853 --1.84921875596 --0.233877006918 --1.83196169138 --0.233873259276 --1.81470513344 --0.233870323747 --1.7974486053 --0.233868215233 --1.78019246459 --0.233866970986 --1.76293626428 --0.233866557479 --1.74568030239 --0.23386695236 --1.72842416168 --0.233868192881 --1.71116816998 --0.233870245516 --1.69391185045 --0.233873147517 --1.67665550112 --0.233876895159 --1.65939873457 --0.233881473541 --1.6421418786 --0.233886860311 --1.6248844564 --0.233893074095 --1.60762676597 --0.233900118619 --1.59036841989 --0.233903963119 --1.57114648819 --0.233900364488 --1.55192622542 --0.233893282711 --1.53466802835 --0.233887031674 --1.51741015911 --0.233881603926 --1.50015291572 --0.233877006918 --1.48289582134 --0.233873259276 --1.46563926339 --0.233870342374 --1.44838276506 --0.233868233859 --1.43112659455 --0.233866970986 --1.41387039423 --0.233866557479 --1.39661446214 --0.23386695236 --1.37935832143 --0.233868192881 --1.36210229993 --0.233870245516 --1.34484598041 --0.233873147517 --1.32758966088 --0.233876895159 --1.31033289432 --0.233881473541 --1.29307600856 --0.233886860311 --1.27581858635 --0.233893092721 --1.25856089592 --0.233900137246 --1.24130254984 --0.233903963119 --1.22208064795 --0.233900364488 --1.20286038518 --0.233893282711 --1.18560221791 --0.233887013048 --1.16834434867 --0.2338815853 --1.15108707547 --0.233877006918 --1.13383001089 --0.233873259276 --1.11657342315 --0.233870342374 --1.09931689501 --0.233868233859 --1.0820607841 --0.233866970986 --1.06480458379 --0.233866557479 --1.04754862189 --0.23386695236 --1.03029248119 --0.233868192881 --1.01303645968 --0.233870245516 --0.995780140162 --0.233873147517 --0.978523820639 --0.233876895159 --0.961267068982 --0.233881473541 --0.944010198116 --0.233886860311 --0.926752761006 --0.233893092721 --0.909495070576 --0.233900137246 --0.892236709595 --0.233903963119 --0.8730147928 --0.233900364488 --0.853794559836 --0.233893282711 --0.836536377668 --0.233887013048 --0.819278478622 --0.2338815853 --0.802021220326 --0.233877006918 --0.784764140844 --0.233873259276 --0.767507568002 --0.233870323747 --0.750251054764 --0.233868215233 --0.732994914055 --0.233866970986 --0.715738728642 --0.233866557479 --0.698482781648 --0.23386695236 --0.681226626038 --0.233868192881 --0.663970589638 --0.233870264143 --0.646714270115 --0.233873166144 --0.629457950592 --0.233876895159 --0.612201184034 --0.233881473541 --0.594944313168 --0.233886860311 --0.577686905861 --0.233893092721 --0.560429215431 --0.233900137246 --0.543170854449 --0.233903963119 --0.523948952555 --0.233900364488 --0.50472868979 --0.233893282711 --0.487470507622 --0.233887013048 --0.470212630928 --0.2338815853 --0.452955372632 --0.233877006918 --0.435698308051 --0.23387324065 --0.418441720307 --0.233870323747 --0.401185207069 --0.233868233859 --0.383929073811 --0.233866970986 --0.366672866047 --0.233866557479 --0.349416911602 --0.23386695236 --0.332160763443 --0.233868192881 --0.314904741943 --0.233870245516 --0.29764842242 --0.233873147517 --0.280392102897 --0.233876895159 --0.263135351241 --0.233881473541 --0.245878469199 --0.233886860311 --0.228621050716 --0.233893092721 --0.211363375187 --0.233900137246 --0.19410501793 --0.233903963119 --0.174883101135 --0.216554630548 --0.155655093491 --0.216548059136 --0.138396944851 --0.216542247683 --0.121139101684 --0.21653721109 --0.103881871328 --0.216532953084 --0.0866248328239 --0.216529455036 --0.0693682841956 --0.216526735574 --0.0521117970347 --0.216524813324 --0.0348556856625 --0.216523647308 --0.0175995151512 --0.216523237526 --0.000343591906132 --0.21652360633 -0.0169125166722 --0.216524772346 -0.0341685027815 --0.216526698321 -0.051424793899 --0.216529384256 -0.0686810845509 --0.21653284505 -0.0859378054738 --0.216537080705 -0.103194652125 --0.216542080045 -0.120452053845 --0.216547876596 -0.137709707022 --0.216554429382 -0.154968027025 --0.216557983309 -0.174190212041 --0.216554630548 -0.193410750479 --0.216548059136 -0.210668906569 --0.216542247683 -0.227926753461 --0.21653721109 -0.245183981955 --0.216532953084 -0.262441024184 --0.216529473662 -0.279697574675 --0.216526754201 -0.296954058111 --0.216524813324 -0.314210169017 --0.216523647308 -0.331466339528 --0.216523237526 -0.34872224927 --0.21652360633 -0.365978360176 --0.21652475372 -0.383234351873 --0.216526679695 -0.400490649045 --0.216529384256 -0.417746946216 --0.21653284505 -0.435003660619 --0.216537080705 -0.452260516584 --0.216542080045 -0.469517916441 --0.216547876596 -0.486775539816 --0.216554429382 -0.504033848643 --0.216557983309 -0.523256063461 --0.216554630548 -0.542476609349 --0.216548059136 -0.559734746814 --0.216542247683 -0.576992601156 --0.21653721109 -0.59424982965 --0.216532953084 -0.611506849527 --0.216529473662 -0.628763392568 --0.216526754201 -0.646019890905 --0.216524813324 -0.663276001811 --0.216523647308 -0.680532187223 --0.216523237526 -0.697788119316 --0.21652360633 -0.715044215321 --0.21652475372 -0.732300192118 --0.216526679695 -0.749556481838 --0.216529384256 -0.766812771559 --0.21653284505 -0.784069493413 --0.216537080705 -0.801326349378 --0.216542080045 -0.818583786488 --0.216547876596 -0.835841432214 --0.216554429382 -0.853099733591 --0.216557983309 -0.872321933508 --0.216554630548 -0.891542464495 --0.216548059136 -0.908800601959 --0.216542247683 -0.926058441401 --0.21653721109 -0.943315684795 --0.216532953084 -0.960572734475 --0.216529455036 -0.977829262614 --0.216526735574 -0.995085746051 --0.216524813324 -1.01234185696 --0.216523647308 -1.02959802747 --0.216523237526 -1.04685395956 --0.21652360633 -1.06411004066 --0.216524772346 -1.08136603236 --0.216526716948 -1.09862235189 --0.216529402882 -1.11587864161 --0.21653284505 -1.13313534856 --0.216537080705 -1.15039217472 --0.216542080045 -1.16764959693 --0.216547876596 -1.18490728736 --0.216554429382 -1.20216557384 --0.216557983309 -1.22138774395 --0.216554630548 -1.24060830474 --0.216548059136 -1.2578664422 --0.216542247683 -1.27512428164 --0.21653721109 -1.29238152504 --0.216532953084 -1.30963858962 --0.216529455036 -1.32689514756 --0.216526735574 -1.3441516161 --0.216524813324 -1.3614076972 --0.216523647308 -1.37866386771 --0.216523237526 -1.39591979981 --0.21652360633 -1.41317591071 --0.21652475372 -1.43043190241 --0.216526661068 -1.44768819213 --0.216529365629 -1.46494451165 --0.21653284505 -1.48220124841 --0.216537080705 -1.49945807457 --0.216542098671 -1.51671546698 --0.216547895223 -1.5339730978 --0.216554429382 -1.55123141408 --0.216557983309 -1.57045361399 --0.216554630548 -1.58967414499 --0.216548059136 -1.60693231225 --0.216542247683 -1.62419018149 --0.21653721109 -1.64144739509 --0.216532953084 -1.65870442986 --0.216529473662 -1.675960958 --0.216526754201 -1.69321742654 --0.216524813324 -1.71047356725 --0.216523647308 -1.72772973776 --0.216523237526 -1.74498566985 --0.21652360633 -1.76224181056 --0.216524772346 -1.77949777246 --0.216526698321 -1.79675403237 --0.216529384256 -1.8140103221 --0.21653284505 -1.83126702905 --0.216537080705 -1.84852388501 --0.216542080045 -1.86578130722 --0.216547876596 -1.88303896785 --0.216554429382 -1.90029731393 --0.216557983309 -1.91951948404 --0.216554630548 -1.93874001503 --0.216548059136 -1.9559981525 --0.216542247683 -1.97325596213 --0.21653721109 -1.99051320553 --0.216532953084 -2.00777027011 --0.216529473662 -2.02502679825 --0.216526754201 -2.04228329658 --0.216524813324 -2.0595394373 --0.216523647308 -2.076795578 --0.216523237526 -2.0940515399 --0.21652360633 -2.111307621 --0.21652475372 -2.12856352329 --0.216526679695 -2.14581984282 --0.216529384256 -2.16307616234 --0.21653284505 -2.1803328991 --0.216537080705 -2.19758975506 --0.216542080045 -2.21484714746 --0.216547876596 -2.23210483789 --0.216554429382 -2.24936318397 --0.216557983309 -2.26858532429 --0.216554630548 -2.28780585527 --0.216548059136 -2.30506402254 --0.216542247683 -2.32232183218 --0.21653721109 -2.33957904577 --0.216532953084 -2.35683608055 --0.216529473662 -2.37409263849 --0.216526754201 -2.39134913683 --0.216524813324 -2.40860527754 --0.216523647308 -2.42586141824 --0.216523237526 -2.44311732054 --0.21652360633 -2.46037346125 --0.216524772346 -2.47762948275 --0.216526698321 -2.49488580227 --0.216529384256 -2.51214206219 --0.21653284505 -2.52939879894 --0.216537099332 -2.5466555953 --0.216542098671 -2.5639129281 --0.216547876596 -2.58117061853 --0.216554429382 -2.59842902422 --0.216557983309 -2.61765116453 --0.216554630548 -2.63687163591 --0.216548059136 -2.65412980318 --0.216542247683 -2.67138767242 --0.21653721109 -2.68864494562 --0.216532953084 -2.7059019804 --0.216529473662 -2.72315853834 --0.216526754201 -2.74041497707 --0.216524813324 -2.75767105818 --0.216523647308 -2.7749273181 --0.216523237526 -2.79218322039 --0.21652360633 -2.80943930149 --0.21652475372 -2.82669532299 --0.216526679695 -2.84395158291 --0.216529384256 -2.86120784283 --0.21653284505 -2.87846457958 --0.216537080705 -2.89572149515 --0.216542080045 -2.91297888756 --0.216547876596 -2.93023645878 --0.216554429382 -2.94749480486 --0.216557983309 -2.96671706438 --0.216554630548 -2.98593759537 --0.216548059136 -3.00319576264 --0.216542247683 -3.02045357227 --0.21653721109 -3.03771078586 --0.216532953084 -3.05496788025 --0.216529455036 -3.07222437859 --0.216526735574 -3.08948087692 --0.216524813324 -3.10673695802 --0.216523647308 -3.12399309874 --0.216523237526 -3.14124903281 --0.21652360633 --3.12468016148 --0.216524772346 --3.10742413998 --0.216526698321 --3.09016788006 --0.216529384256 --3.07291162014 --0.21653284505 --3.05565488338 --0.216537080705 --3.03839796781 --0.216542080045 --3.0211405158 --0.216547876596 --3.00388294458 --0.216554429382 --2.98662465811 --0.216557983309 --2.96740239858 --0.216554630548 --2.9481818676 --0.216548059136 --2.93092370033 --0.216542247683 --2.91366583109 --0.21653721109 --2.8964086175 --0.216532953084 --2.87915158272 --0.216529473662 --2.86189508438 --0.216526754201 --2.84463858604 --0.216524813324 --2.82738244534 --0.216523647308 --2.81012630463 --0.216523237526 --2.79287034273 --0.21652360633 --2.77561426163 --0.21652475372 --2.75835835934 --0.216526679695 --2.74110203981 --0.216529384256 --2.72384572029 --0.21653284505 --2.70658904314 --0.216537080705 --2.68933218718 --0.216542080045 --2.67207473517 --0.216547876596 --2.65481704474 --0.216554429382 --2.63755875826 --0.216557983309 --2.61833661795 --0.216554630548 --2.59911602735 --0.216548059136 --2.58185786009 --0.216542247683 --2.56460005045 --0.21653721109 --2.54734283685 --0.216532953084 --2.53008580208 --0.216529473662 --2.51282924414 --0.216526754201 --2.4955727458 --0.216524813324 --2.47831666469 --0.216523647308 --2.46106046438 --0.216523237526 --2.44380450249 --0.21652360633 --2.42654842138 --0.21652475372 --2.40929245949 --0.216526679695 --2.39203613996 --0.216529384256 --2.37477982044 --0.21653284505 --2.35752308369 --0.216537080705 --2.34026628732 --0.216542080045 --2.32300889492 --0.216547876596 --2.30575120449 --0.216554429382 --2.28849291802 --0.216557983309 --2.2692707777 --0.216554630548 --2.25005024672 --0.216548059136 --2.23279207945 --0.216542247683 --2.2155342102 --0.21653721109 --2.19827699661 --0.216532953084 --2.18101996183 --0.216529455036 --2.16376340389 --0.216526735574 --2.14650696516 --0.216524813324 --2.12925082445 --0.216523647308 --2.11199456453 --0.216523237526 --2.09473866224 --0.21652360633 --2.07748258114 --0.216524772346 --2.06022655964 --0.216526716948 --2.04297029972 --0.216529402882 --2.0257140398 --0.21653284505 --2.00845730305 --0.216537080705 --1.99120044708 --0.216542080045 --1.97394305468 --0.216547876596 --1.95668542385 --0.216554429382 --1.93942710758 --0.216557983309 --1.92020490766 --0.216554630548 --1.90098437667 --0.216548059136 --1.8837262094 --0.216542247683 --1.86646834016 --0.21653721109 --1.84921109676 --0.216532953084 --1.83195406198 --0.216529455036 --1.81469753384 --0.216526735574 --1.79744106531 --0.216524813324 --1.78018495441 --0.216523647308 --1.76292875409 --0.216523237526 --1.745672822 --0.21652360633 --1.72841671109 --0.21652475372 --1.7111607492 --0.216526661068 --1.69390445948 --0.216529365629 --1.67664816975 --0.21653284505 --1.6593914628 --0.216537080705 --1.64213460684 --0.216542098671 --1.62487721443 --0.216547895223 --1.60761955381 --0.216554429382 --1.59036120773 --0.216557983309 --1.57113900781 --0.216554630548 --1.55191847682 --0.216548059136 --1.53466030955 --0.216542247683 --1.51740249991 --0.21653721109 --1.50014528632 --0.216532953084 --1.48288822174 --0.216529473662 --1.4656316936 --0.216526754201 --1.44837519526 --0.216524813324 --1.43111908436 --0.216523647308 --1.41386291385 --0.216523237526 --1.39660701156 --0.21652360633 --1.37935093045 --0.216524772346 --1.36209490895 --0.216526698321 --1.34483858943 --0.216529384256 --1.32758229971 --0.21653284505 --1.31032559275 --0.216537080705 --1.29306876659 --0.216542080045 --1.27581134439 --0.216547876596 --1.25855365395 --0.216554429382 --1.24129536748 --0.216557983309 --1.22207319737 --0.216554630548 --1.20285263658 --0.216548059136 --1.18559449911 --0.216542247683 --1.16833665967 --0.21653721109 --1.15107941628 --0.216532953084 --1.1338223815 --0.216529473662 --1.11656582356 --0.216526754201 --1.09930935502 --0.216524813324 --1.08205327392 --0.216523647308 --1.0647970736 --0.216523237526 --1.04754114151 --0.21652360633 --1.0302850306 --0.21652475372 --1.01302906871 --0.216526679695 --0.995772793889 --0.216529384256 --0.978516489267 --0.21653284505 --0.961259752512 --0.216537080705 --0.944002896547 --0.216542080045 --0.926745504141 --0.216547876596 --0.909487858414 --0.216554429382 --0.892229527235 --0.216557983309 --0.873007327318 --0.216554630548 --0.853786796331 --0.216548059136 --0.836528643965 --0.216542247683 --0.819270804524 --0.21653721109 --0.802013590932 --0.216532953084 --0.784756541252 --0.216529473662 --0.767499983311 --0.216526754201 --0.750243514777 --0.216524813324 --0.73298740387 --0.216523647308 --0.715731218457 --0.216523237526 --0.698475301266 --0.21652360633 --0.681219190359 --0.216524772346 --0.663963183761 --0.216526698321 --0.64670689404 --0.216529384256 --0.629450619221 --0.21653284505 --0.612193897366 --0.216537099332 --0.594937056303 --0.216542098671 --0.577679663897 --0.216547876596 --0.56042201817 --0.216554429382 --0.54316367209 --0.216557983309 --0.523941472172 --0.216554630548 --0.504720956087 --0.216548059136 --0.487462796271 --0.216542247683 --0.470204941929 --0.21653721109 --0.452947720886 --0.216532953084 --0.435690686107 --0.216529473662 --0.418434143067 --0.216526754201 --0.401177659631 --0.216524813324 --0.383921541273 --0.216523647308 --0.366665363312 --0.216523237526 --0.349409453571 --0.21652360633 --0.332153342664 --0.21652475372 --0.314897343517 --0.216526679695 --0.297641053796 --0.216529384256 --0.280384764075 --0.21653284505 --0.263128049672 --0.216537080705 --0.245871197432 --0.216542080045 --0.22861379385 --0.216547876596 --0.211356148124 --0.216554429382 --0.194097820669 --0.216557983309 --0.174875631929 --0.199190735817 --0.155647333712 --0.19918467477 --0.138389218599 --0.199179325253 --0.121131405234 --0.199174687267 --0.103874200955 --0.199170757085 --0.0866171903908 --0.199167519808 --0.0693606734276 --0.199165012688 --0.0521042188629 --0.1991632469 --0.0348481382243 --0.19916215539 --0.0175919979811 --0.199161771685 --0.000336105702447 --0.199162133038 -0.0169199726079 --0.199163209647 -0.0341759282164 --0.19916497916 -0.051432187669 --0.199167452753 -0.0686884475872 --0.199170634151 -0.085945142433 --0.19917454198 -0.103201959282 --0.19917916134 -0.120459327474 --0.199184514582 -0.137716948986 --0.199190553278 -0.154975239188 --0.199193827808 -0.174197696149 --0.199190735817 -0.193418510258 --0.19918467477 -0.210676640272 --0.199179325253 -0.227934453637 --0.199174687267 -0.245191644877 --0.199170757085 -0.262448661029 --0.199167538434 -0.279705181718 --0.199165031314 -0.296961635351 --0.1991632469 -0.314217723906 --0.19916215539 -0.331473864615 --0.199161771685 -0.348729744554 --0.199162114412 -0.365985818207 --0.199163172394 -0.383241780102 --0.199164975434 -0.40049804002 --0.199167467654 -0.417754307389 --0.199170634151 -0.435011006892 --0.19917454198 -0.452267818153 --0.19917916134 -0.469525173307 --0.199184514582 -0.48678278178 --0.199190553278 -0.504041068256 --0.199193827808 -0.523263558746 --0.199190735817 -0.542484387756 --0.19918467477 -0.559742495418 --0.199179325253 -0.577000305057 --0.199174687267 -0.594257488846 --0.199170757085 -0.611514493823 --0.199167538434 -0.628771007061 --0.199165031314 -0.646027475596 --0.1991632469 -0.663283571601 --0.19916215539 -0.680539697408 --0.199161771685 -0.697795584798 --0.199162114412 -0.715051665902 --0.199163172394 -0.732307612896 --0.199164975434 -0.749563872814 --0.199167467654 -0.766820147633 --0.199170634151 -0.784076839685 --0.19917454198 -0.801333650947 --0.19917916134 -0.818591043353 --0.199184514582 -0.835848674178 --0.199190553278 -0.853106960654 --0.199193827808 -0.872329413891 --0.199190735817 -0.891550213099 --0.19918467477 -0.908808335662 --0.199179325253 -0.926066160202 --0.199174687267 -0.943323373794 --0.199170738459 -0.960580378771 --0.199167501182 -0.977836877108 --0.199165012688 -0.995093330741 --0.1991632469 -1.01234939694 --0.19916215539 -1.02960553765 --0.199161771685 -1.04686146974 --0.199162114412 -1.06411755085 --0.199163191021 -1.08137348294 --0.199164994061 -1.09862974286 --0.199167467654 -1.11588600278 --0.199170634151 -1.13314267993 --0.19917454198 -1.15039947629 --0.19917916134 -1.16765686869 --0.199184514582 -1.18491452932 --0.199190553278 -1.202172786 --0.199193827808 -1.22139522433 --0.199190735817 -1.24061605334 --0.19918467477 -1.2578741908 --0.199179325253 -1.27513200044 --0.199174687267 -1.29238918423 --0.199170757085 -1.30964621902 --0.199167519808 -1.32690274715 --0.199165012688 -1.34415918589 --0.1991632469 -1.36141526699 --0.19916215539 -1.3786714077 --0.199161771685 -1.39592728019 --0.199162114412 -1.41318336129 --0.199163172394 -1.43043932318 --0.199164941907 -1.44769558311 --0.199167434127 -1.46495187283 --0.199170634151 -1.48220857978 --0.19917454198 -1.49946537614 --0.199179179967 -1.51672273874 --0.199184533209 -1.53398033977 --0.199190553278 -1.55123862624 --0.199193827808 -1.57046109438 --0.199190735817 -1.58968189359 --0.19918467477 -1.60694003105 --0.199179325253 -1.62419787049 --0.199174687267 -1.64145508408 --0.199170738459 -1.65871208906 --0.199167519808 -1.6759685874 --0.199165031314 -1.69322502613 --0.1991632469 -1.71048110724 --0.19916215539 -1.72773724794 --0.199161771685 -1.74499315023 --0.199162133038 -1.76224926114 --0.199163209647 -1.77950522304 --0.199164994061 -1.79676145315 --0.199167467654 -1.81401768327 --0.199170634151 -1.83127436042 --0.19917454198 -1.84853118658 --0.19917916134 -1.86578857899 --0.199184514582 -1.88304620981 --0.199190553278 -1.90030452609 --0.199193827808 -1.91952699423 --0.199190735817 -1.93874779344 --0.19918467477 -1.9560059011 --0.199179325253 -1.97326368093 --0.199174687267 -1.99052086472 --0.199170738459 -2.0077778697 --0.199167519808 -2.02503436804 --0.199165031314 -2.04229086637 --0.1991632469 -2.05954700708 --0.19916215539 -2.07680314779 --0.199161771685 -2.09405905008 --0.199162114412 -2.11131507158 --0.199163172394 -2.12857097387 --0.199164975434 -2.1458272934 --0.199167467654 -2.16308355332 --0.199170634151 -2.18034029007 --0.19917454198 -2.19759714604 --0.19917916134 -2.21485447884 --0.199184514582 -2.23211210966 --0.199190553278 -2.24937039614 --0.199193827808 -2.26859283447 --0.199190735817 -2.28781366348 --0.19918467477 -2.30507177114 --0.199179325253 -2.32232952118 --0.199174687267 -2.33958673477 --0.199170738459 -2.35684376955 --0.199167519808 -2.37410026789 --0.199165031314 -2.39135670662 --0.1991632469 -2.40861278772 --0.19916215539 -2.42586892843 --0.199161771685 -2.44312483072 --0.199162133038 -2.46038091183 --0.199163209647 -2.47763687372 --0.199164975435 -2.49489313364 --0.199167449027 -2.51214939356 --0.199170634151 -2.52940613032 --0.199174560607 -2.54666292668 --0.199179179967 -2.56392025948 --0.199184514582 -2.5811778903 --0.199190553278 -2.59843623638 --0.199193827808 -2.61765867472 --0.199190735817 -2.63687944412 --0.19918467477 -2.65413755178 --0.199179325253 -2.67139536142 --0.199174687267 -2.68865257502 --0.199170757085 -2.7059096098 --0.199167538434 -2.72316616774 --0.199165031314 -2.74042260647 --0.1991632469 -2.75767862797 --0.19916215539 -2.77493476868 --0.199161771685 -2.79219067097 --0.199162114412 -2.80944675207 --0.199163172394 -2.82670277357 --0.199164960533 -2.84395903349 --0.199167452753 -2.8612152338 --0.199170634151 -2.87847191095 --0.19917454198 -2.89572876692 --0.19917916134 -2.91298609972 --0.199184514582 -2.93024367094 --0.199190553278 -2.94750201702 --0.199193827808 -2.96672451496 --0.199190735817 -2.98594528437 --0.19918467477 -3.00320345163 --0.199179325253 -3.02046126127 --0.199174687267 -3.03771841526 --0.199170757085 -3.05497545004 --0.199167519808 -3.07223194838 --0.199165012688 -3.08948844671 --0.1991632469 -3.10674452782 --0.19916215539 -3.12400066853 --0.199161771685 -3.141256543 --0.199162133038 --3.1246727109 --0.199163209647 --3.1074166894 --0.19916497916 --3.09016042948 --0.199167452753 --3.07290416956 --0.199170634151 --3.05564749241 --0.19917454198 --3.03839069605 --0.19917916134 --3.02113330364 --0.199184514582 --3.00387573242 --0.199190553278 --2.98661744595 --0.199193827808 --2.96739494801 --0.199190735817 --2.9481741786 --0.19918467477 --2.93091601133 --0.199179325253 --2.91365814209 --0.199174687267 --2.8964009881 --0.199170757085 --2.87914401293 --0.199167538434 --2.86188745499 --0.199165031314 --2.84463095665 --0.1991632469 --2.82737487555 --0.19916215539 --2.81011873484 --0.199161771685 --2.79286283255 --0.199162114412 --2.77560681105 --0.199163172394 --2.75835090876 --0.199164975434 --2.74109458923 --0.199167467654 --2.72383832931 --0.199170634151 --2.70658171177 --0.19917454198 --2.68932491541 --0.19917916134 --2.6720674634 --0.199184514582 --2.65480977297 --0.199190553278 --2.6375515461 --0.199193827808 --2.61832910776 --0.199190735817 --2.59910821915 --0.19918467477 --2.58185011149 --0.199179325253 --2.56459236145 --0.199174687267 --2.54733514786 --0.199170757085 --2.53007811308 --0.199167538434 --2.51282161474 --0.199165031314 --2.49556517601 --0.1991632469 --2.47830909491 --0.19916215539 --2.4610529542 --0.199161771685 --2.44379705191 --0.199162114412 --2.4265409708 --0.199163172394 --2.40928506851 --0.199164975434 --2.39202880859 --0.199167467654 --2.37477248907 --0.199170634151 --2.35751575231 --0.19917454198 --2.34025895595 --0.19917916134 --2.32300162315 --0.199184514582 --2.30574399233 --0.199190553278 --2.28848570585 --0.199193827808 --2.26926326752 --0.199190735817 --2.25004243851 --0.19918467477 --2.23278433085 --0.199179325253 --2.21552652121 --0.199174687267 --2.19826930761 --0.199170738459 --2.18101227283 --0.199167501182 --2.1637557745 --0.199165012688 --2.14649939537 --0.1991632469 --2.12924331427 --0.19916215539 --2.11198711395 --0.199161771685 --2.09473121166 --0.199162114412 --2.07747513056 --0.199163191021 --2.06021916866 --0.199164994061 --2.04296296835 --0.199167467654 --2.02570670843 --0.199170634151 --2.00844997167 --0.19917454198 --1.99119314551 --0.19917916134 --1.97393578291 --0.199184514582 --1.95667815209 --0.199190553278 --1.93941986561 --0.199193827808 --1.92019742727 --0.199190735817 --1.90097662807 --0.19918467477 --1.8837184906 --0.199179325253 --1.86646065116 --0.199174687267 --1.84920343756 --0.199170757085 --1.83194643259 --0.199167519808 --1.81468990445 --0.199165012688 --1.79743346572 --0.1991632469 --1.78017741442 --0.19916215539 --1.7629212439 --0.199161771685 --1.74566534161 --0.199162114412 --1.72840926051 --0.199163172394 --1.71115329861 --0.199164941907 --1.6938970387 --0.199167434127 --1.67664080858 --0.199170634151 --1.65938413143 --0.19917454198 --1.64212730527 --0.199179179967 --1.62486994267 --0.199184533209 --1.60761231184 --0.199190553278 --1.59035399556 --0.199193827808 --1.57113152742 --0.199190735817 --1.55191072821 --0.19918467477 --1.53465259075 --0.199179325253 --1.51739478111 --0.199174687267 --1.50013759732 --0.199170738459 --1.48288059234 --0.199167519808 --1.46562409401 --0.199165031314 --1.44836762547 --0.1991632469 --1.43111154437 --0.19916215539 --1.41385540366 --0.199161771685 --1.39659950137 --0.199162133038 --1.37934342027 --0.199163209647 --1.36208745837 --0.199164994061 --1.34483119846 --0.199167467654 --1.32757493854 --0.199170634151 --1.31031826138 --0.19917454198 --1.29306146503 --0.19917916134 --1.27580410242 --0.199184514582 --1.25854644179 --0.199190553278 --1.24128815532 --0.199193827808 --1.22206571698 --0.199190735817 --1.20284488797 --0.19918467477 --1.18558678031 --0.199179325253 --1.16832897067 --0.199174687267 --1.15107175708 --0.199170738459 --1.1338147223 --0.199167519808 --1.11655819416 --0.199165031314 --1.09930175543 --0.1991632469 --1.08204567432 --0.19916215539 --1.06478953361 --0.199161771685 --1.04753366112 --0.199162114412 --1.03027758002 --0.199163172394 --1.01302161812 --0.199164975434 --0.99576537311 --0.199167467654 --0.978509128094 --0.199170634151 --0.96125240624 --0.19917454198 --0.943995565176 --0.19917916134 --0.926738217473 --0.199184514582 --0.909480601549 --0.199190553278 --0.892222300172 --0.199193827808 --0.872999832034 --0.199190735817 --0.853779017925 --0.19918467477 --0.836520895362 --0.199179325253 --0.819263100624 --0.199174687267 --0.802005931735 --0.199170738459 --0.784748911857 --0.199167519808 --0.767492368817 --0.199165031314 --0.750235930085 --0.1991632469 --0.732979863882 --0.19916215539 --0.715723708272 --0.199161771685 --0.698467805982 --0.199162133038 --0.681211724877 --0.199163209647 --0.663955777884 --0.199164975435 --0.646699532866 --0.199167449027 --0.629443272948 --0.199170634151 --0.612186565995 --0.199174560607 --0.594929754734 --0.199179179967 --0.57767239213 --0.199184514582 --0.560414761305 --0.199190553278 --0.543156445026 --0.199193827808 --0.523933991789 --0.199190735817 --0.504713200032 --0.19918467477 --0.487455062568 --0.199179325253 --0.470197238028 --0.199174687267 --0.452940046787 --0.199170757085 --0.435683049262 --0.199167538434 --0.418426536024 --0.199165031314 --0.40117007494 --0.1991632469 --0.383913986385 --0.19916215539 --0.366657838226 --0.199161771685 --0.349401958287 --0.199162114412 --0.332145884633 --0.199163172394 --0.314889930189 --0.199164960533 --0.29763367027 --0.199167452753 --0.280377395451 --0.199170634151 --0.26312071085 --0.19917454198 --0.245863899589 --0.19917916134 --0.228606522083 --0.199184514582 --0.211348902434 --0.199190553278 --0.194090612233 --0.199193827808 --0.17486814782 --0.181828394532 --0.155639346689 --0.181822847575 --0.138381261378 --0.181817945093 --0.121123475954 --0.181813709438 --0.103866308927 --0.181810133159 --0.0866093300283 --0.18180718273 --0.0693528456613 --0.181804876775 --0.0520964227617 --0.181803248823 --0.0348403728567 --0.181802269071 --0.0175842635799 --0.18180193007 --0.000328402500603 --0.181802250445 -0.0169276439119 --0.18180321902 -0.0341835664585 --0.181804828346 -0.0514397956431 --0.181807097048 -0.0686960266903 --0.181810010225 -0.0859526898712 --0.181813586503 -0.103209473193 --0.181817822159 -0.120466811582 --0.181822720915 -0.137724403292 --0.181828226895 -0.154982663691 --0.181831214577 -0.1742054075 --0.181828394532 -0.193426501006 --0.181822847575 -0.210684597492 --0.181817945093 -0.227942381054 --0.181813709438 -0.245199538767 --0.181810133159 -0.262456521392 --0.18180718273 -0.279713012278 --0.181804876775 -0.296969436109 --0.181803248823 -0.314225487411 --0.181802269071 -0.331481598318 --0.18180193007 -0.348737448454 --0.181802231818 -0.365993477404 --0.181803200394 -0.383249409497 --0.181804843247 -0.400505647063 --0.181807111949 -0.417761877179 --0.181810010225 -0.435018546879 --0.181813601404 -0.452275335789 --0.181817837059 -0.46953266114 --0.181822720915 -0.486790239811 --0.181828226895 -0.504048496485 --0.181831214577 -0.523271262646 --0.181828394532 -0.542492374778 --0.181822847575 -0.559750452638 --0.181817945093 -0.577008232474 --0.181813709438 -0.594265386462 --0.181810133159 -0.611522361636 --0.18180718273 -0.628778845072 --0.181804876775 -0.646035268903 --0.181803248823 -0.663291320205 --0.181802269071 -0.68054741621 --0.18180193007 -0.697803273797 --0.181802231818 -0.71505934 --0.181803200394 -0.732315272093 --0.181804843247 -0.749571487308 --0.181807111949 -0.766827717423 --0.181810010225 -0.784084379673 --0.181813601404 -0.801341176033 --0.181817837059 -0.818598508835 --0.181822720915 -0.835856094956 --0.181828226895 -0.853114366531 --0.181831214577 -0.87233710289 --0.181828394532 -0.891558200121 --0.181822847575 -0.908816307783 --0.181817945093 -0.926074102521 --0.181813709438 -0.943331256509 --0.181810114533 -0.960588216782 --0.181807164103 -0.977844700217 --0.181804876775 -0.995101138949 --0.181803248823 -1.01235720515 --0.181802269071 -1.02961331606 --0.18180193007 -1.04686915875 --0.181802231818 -1.06412521005 --0.181803200394 -1.08138114214 --0.181804843247 -1.09863734245 --0.181807111949 -1.11589357257 --0.181810010225 -1.13315024972 --0.181813601404 -1.15040701628 --0.181817837059 -1.16766437888 --0.181822720915 -1.1849219799 --0.181828226895 -1.20218020678 --0.181831214577 -1.22140294313 --0.181828394532 -1.24062404036 --0.181822847575 -1.25788214802 --0.181817963719 -1.27513992786 --0.181813728064 -1.29239708185 --0.181810133159 -1.30965408683 --0.18180718273 -1.32691058516 --0.181804876775 -1.34416699409 --0.181803248823 -1.36142304539 --0.181802269071 -1.3786791265 --0.18180193007 -1.39593496918 --0.181802231818 -1.41319102049 --0.181803200394 -1.43044695258 --0.181804828346 -1.4477032125 --0.181807097048 -1.46495944262 --0.181810010225 -1.48221608996 --0.181813601404 -1.49947288632 --0.181817837059 -1.51673021913 --0.181822720915 -1.53398779035 --0.181828226895 -1.55124604702 --0.181831214577 -1.57046878338 --0.181828394532 -1.58968988061 --0.181822847575 -1.60694798827 --0.181817963719 -1.62420579791 --0.181813728064 -1.6414629817 --0.181810114533 -1.65871992707 --0.181807164103 -1.67597639561 --0.181804876775 -1.69323283434 --0.181803248823 -1.71048888564 --0.181802269071 -1.72774499655 --0.18180193007 -1.74500086904 --0.181802250445 -1.76225692034 --0.18180321902 -1.77951285243 --0.181804843247 -1.79676905274 --0.181807111949 -1.81402525306 --0.181810010225 -1.83128193021 --0.181813601404 -1.84853872657 --0.181817837059 -1.86579608917 --0.181822720915 -1.88305366039 --0.181828226895 -1.90031191707 --0.181831214577 -1.91953468323 --0.181828394532 -1.93875578046 --0.181822847575 -1.95601385832 --0.181817945093 -1.97327160835 --0.181813709438 -1.99052876234 --0.181810114533 -2.00778570771 --0.181807164103 -2.02504217624 --0.181804876775 -2.04229867458 --0.181803248823 -2.05955475569 --0.181802269071 -2.07681083679 --0.18180193007 -2.09406673908 --0.181802231818 -2.11132276058 --0.181803200394 -2.12857866287 --0.181804843247 -2.14583492279 --0.181807111949 -2.16309112311 --0.181810010225 -2.18034780026 --0.181813601404 -2.19760459662 --0.181817837059 -2.21486192942 --0.181822720915 -2.23211950064 --0.181828226895 -2.24937778711 --0.181831214577 -2.26860058308 --0.181828394532 -2.28782165051 --0.181822847575 -2.30507969856 --0.181817963719 -2.3223374486 --0.181813728064 -2.33959466219 --0.181810114533 -2.35685169697 --0.181807164103 -2.3741081357 --0.181804876775 -2.39136451483 --0.181803248823 -2.40862053633 --0.181802269071 -2.42587667704 --0.18180193007 -2.44313257932 --0.181802250445 -2.46038860083 --0.18180321902 -2.47764450312 --0.181804843247 -2.49490070343 --0.181807111949 -2.51215696335 --0.181810010225 -2.5294137001 --0.181813601404 -2.54667049646 --0.181817837059 -2.56392776966 --0.181822720915 -2.58118534088 --0.181828226895 -2.59844362736 --0.181831214577 -2.61766636372 --0.181828394532 -2.63688743115 --0.181822847575 -2.6541454792 --0.181817963719 -2.67140328884 --0.181813728064 -2.68866050243 --0.181810133159 -2.70591747761 --0.18180718273 -2.72317397594 --0.181804876775 -2.74043041468 --0.181803248823 -2.75768643618 --0.181802269071 -2.77494251728 --0.18180193007 -2.79219835996 --0.181802231818 -2.80945444107 --0.181803200394 -2.82671040297 --0.181804828346 -2.84396660328 --0.181807097048 -2.86122280359 --0.181810010225 -2.87847948074 --0.181813601404 -2.89573627711 --0.181817837059 -2.91299360991 --0.181822720915 -2.93025118112 --0.181828226895 -2.947509408 --0.181831214577 -2.96673214436 --0.181828394532 -2.98595327139 --0.181822847575 -3.00321143866 --0.181817945093 -3.02046918869 --0.181813709438 -3.03772628308 --0.181810133159 -3.05498325825 --0.18180718273 -3.07223975658 --0.181804876775 -3.08949625492 --0.181803248823 -3.10675233603 --0.181802269071 -3.12400841713 --0.18180193007 -3.14126423199 --0.181802250445 --3.1246650219 --0.18180321902 --3.10740906 --0.181804828346 --3.09015280008 --0.181807097048 --3.07289654016 --0.181810010225 --3.05563992262 --0.181813586503 --3.03838318586 --0.181817822159 --3.02112585306 --0.181822720915 --3.00386828184 --0.181828226895 --2.98661005497 --0.181831214577 --2.96738731861 --0.181828394532 --2.94816619158 --0.181822847575 --2.93090802431 --0.181817945093 --2.91365027428 --0.181813709438 --2.89639317989 --0.181810133159 --2.87913620472 --0.18180718273 --2.86187964678 --0.181804876775 --2.84462314844 --0.181803248823 --2.82736712694 --0.181802269071 --2.81011104584 --0.18180193007 --2.79285520315 --0.181802231818 --2.77559918165 --0.181803200394 --2.75834327936 --0.181804843247 --2.74108701944 --0.181807111949 --2.72383075952 --0.181810010225 --2.70657414198 --0.181813601404 --2.68931740523 --0.181817837059 --2.67206001282 --0.181822720915 --2.65480238199 --0.181828226895 --2.63754415512 --0.181831214577 --2.61832135916 --0.181828394532 --2.59910023212 --0.181822847575 --2.58184218407 --0.181817945093 --2.56458443403 --0.181813709438 --2.54732728004 --0.181810133159 --2.53007024526 --0.18180718273 --2.51281374693 --0.181804876775 --2.4955573678 --0.181803248823 --2.4783013463 --0.181802269071 --2.4610452652 --0.18180193007 --2.44378936291 --0.181802231818 --2.4265332818 --0.181803200394 --2.40927737952 --0.181804843247 --2.3920211792 --0.181807111949 --2.37476497889 --0.181810010225 --2.35750830173 --0.181813601404 --2.34025144577 --0.181817837059 --2.32299411297 --0.181822720915 --2.30573654175 --0.181828226895 --2.28847825527 --0.181831214577 --2.26925551891 --0.181828394532 --2.25003445148 --0.181822847575 --2.23277640343 --0.181817945093 --2.21551859379 --0.181813709438 --2.19826138019 --0.181810114533 --2.18100440502 --0.181807164103 --2.16374796629 --0.181804876775 --2.14649158716 --0.181803248823 --2.12923550606 --0.181802269071 --2.11197936535 --0.18180193007 --2.09472352267 --0.181802231818 --2.07746744156 --0.181803200394 --2.06021153927 --0.181804843247 --2.04295539856 --0.181807111949 --2.02569913864 --0.181810010225 --2.00844243169 --0.181813601404 --1.99118563533 --0.181817837059 --1.97392830253 --0.181822720915 --1.9566707015 --0.181828226895 --1.93941241503 --0.181831214577 --1.92018970847 --0.181828394532 --1.90096864104 --0.181822847575 --1.88371053338 --0.181817963719 --1.86645272374 --0.181813728064 --1.84919553995 --0.181810133159 --1.83193856477 --0.18180718273 --1.81468206644 --0.181804876775 --1.79742565751 --0.181803248823 --1.78016963601 --0.181802269071 --1.7629135251 --0.18180193007 --1.74565765262 --0.181802231818 --1.72840160131 --0.181803200394 --1.71114566922 --0.181804828346 --1.69388943911 --0.181807097048 --1.67663323879 --0.181810010225 --1.65937656164 --0.181813601404 --1.64211976528 --0.181817837059 --1.62486243248 --0.181822720915 --1.60760483145 --0.181828226895 --1.59034657478 --0.181831214577 --1.57112383842 --0.181828394532 --1.55190274119 --0.181822847575 --1.53464463353 --0.181817963719 --1.5173868537 --0.181813728064 --1.5001296997 --0.181810114533 --1.48287272453 --0.181807164103 --1.465616256 --0.181804876775 --1.44835984707 --0.181803248823 --1.43110379577 --0.181802269071 --1.41384765506 --0.18180193007 --1.39659178257 --0.181802250445 --1.37933573127 --0.18180321902 --1.36207982898 --0.181804843247 --1.34482362866 --0.181807111949 --1.32756736875 --0.181810010225 --1.3103106916 --0.181813601404 --1.29305392504 --0.181817837059 --1.27579662204 --0.181822720915 --1.25853902102 --0.181828226895 --1.24128073454 --0.181831214577 --1.22205799818 --0.181828394532 --1.20283693075 --0.181822847575 --1.18557885289 --0.181817945093 --1.16832104325 --0.181813709438 --1.15106385946 --0.181810114533 --1.13380685448 --0.181807164103 --1.11655035615 --0.181804876775 --1.09929394722 --0.181803248823 --1.08203789592 --0.181802269071 --1.06478181481 --0.18180193007 --1.04752597213 --0.181802231818 --1.03026992082 --0.181803200394 --1.01301398873 --0.181804843247 --0.995757743716 --0.181807111949 --0.9785015136 --0.181810010225 --0.961244851351 --0.181813601404 --0.943988069892 --0.181817837059 --0.92673073709 --0.181822720915 --0.909473150969 --0.181828226895 --0.892214879394 --0.181831214577 --0.872992128134 --0.181828394532 --0.853771045804 --0.181822847575 --0.836512953043 --0.181817963719 --0.819255173206 --0.181813728064 --0.801998019218 --0.181810114533 --0.784741029143 --0.181807164103 --0.767484545707 --0.181804876775 --0.750228121877 --0.181803248823 --0.732972070575 --0.181802269071 --0.715715974569 --0.18180193007 --0.698460102082 --0.181802250445 --0.681204050779 --0.18180321902 --0.663948148489 --0.181804843247 --0.646691918373 --0.181807111949 --0.629435673356 --0.181810010225 --0.612178996205 --0.181813601404 --0.594922229648 --0.181817837059 --0.577664911747 --0.181822720915 --0.560407295823 --0.181828226895 --0.543149024248 --0.181831214577 --0.523926287889 --0.181828394532 --0.50470520556 --0.181822847575 --0.487447120249 --0.181817963719 --0.470189325512 --0.181813728064 --0.452932156623 --0.181810133159 --0.435675188899 --0.18180718273 --0.418418705464 --0.181804876775 --0.401162274182 --0.181803248823 --0.38390622288 --0.181802269071 --0.366650111974 --0.18180193007 --0.349394254387 --0.181802231818 --0.332138210535 --0.181803200394 --0.314882285893 --0.181804828346 --0.297626055777 --0.181807097048 --0.280369825661 --0.181810010225 --0.263113163411 --0.181813601404 --0.245856378228 --0.181817837059 --0.228599045426 --0.181822720915 --0.211341455579 --0.181828226895 --0.194083191454 --0.181831214577 --0.174860440194 --0.164495110512 --0.155631296336 --0.164490085095 --0.138373240828 --0.164485640824 --0.121115490794 --0.164481792599 --0.103858361021 --0.164478555322 --0.0866014137864 --0.164475884289 --0.0693449564278 --0.164473794401 --0.0520885661244 --0.164472319186 --0.0348325511441 --0.164471443743 --0.0175764726009 --0.164471141994 --0.000320642488077 --0.164471421391 -0.0169353717938 --0.164472304284 -0.03419126058 --0.164473779499 -0.0514474594965 --0.164475832134 -0.0687036588788 --0.16447846964 -0.0859602876008 --0.164481721818 -0.103217044845 --0.164485551417 -0.120474353433 --0.164489977062 -0.137731906027 --0.164494965226 -0.154990132898 --0.164497673511 -0.17421316728 --0.164495110512 -0.193434547633 --0.164490085095 -0.210692610592 --0.164485640824 -0.227950364351 --0.164481792599 -0.245207495987 --0.164478555322 -0.26246444881 --0.164475884289 -0.279720902443 --0.164473794401 -0.29697728157 --0.164472319186 -0.31423330307 --0.164471443743 -0.331489384174 --0.164471141994 -0.348745204508 --0.164471421391 -0.366001211107 --0.164472304284 -0.383257105946 --0.164473779499 -0.40051330626 --0.164475832134 -0.417769499123 --0.16447846964 -0.43502613157 --0.164481721818 -0.452282890677 --0.164485551417 -0.469540201128 --0.164489977062 -0.486797757447 --0.164494965226 -0.504055976867 --0.164497673511 -0.523279011249 --0.164495110512 -0.542500391602 --0.164490085095 -0.55975843966 --0.164485640824 -0.577016204596 --0.164481792599 -0.594273358584 --0.164478555322 -0.611530318856 --0.164475884289 -0.628786757589 --0.164473794401 -0.646043136716 --0.164472319186 -0.663299143315 --0.164471443743 -0.680555209518 --0.164471141994 -0.697811037302 --0.164471421391 -0.715067058802 --0.164472304284 -0.732322961092 --0.164473779499 -0.749579161406 --0.164475832134 -0.766835361719 --0.16447846964 -0.784091994166 --0.164481721818 -0.801348760724 --0.164485551417 -0.818606048822 --0.164489977062 -0.835863590241 --0.164494965226 -0.853121832013 --0.164497673511 -0.872344866395 --0.164495110512 -0.891566231847 --0.164490085095 -0.908824309707 --0.164485640824 -0.926082074642 --0.164481792599 -0.943339183926 --0.164478555322 -0.960596129298 --0.164475884289 -0.977852582932 --0.164473794401 -0.995108991863 --0.164472319186 -1.01236504316 --0.164471443743 -1.02962109446 --0.164471141994 -1.04687687755 --0.164471421391 -1.06413289905 --0.164472304284 -1.08138883114 --0.164473779499 -1.09864503145 --0.164475832134 -1.11590123177 --0.16447846964 -1.13315787912 --0.164481721818 -1.15041461587 --0.164485551417 -1.16767191887 --0.164489977062 -1.18492946029 --0.164494965226 -1.20218768716 --0.164497673511 -1.22141072154 --0.164495110512 -1.24063208699 --0.164490085095 -1.25789013505 --0.16448565945 -1.27514788508 --0.164481811225 -1.29240503907 --0.164478555322 -1.30966198444 --0.164475884289 -1.32691845298 --0.164473794401 -1.3441748321 --0.164472319186 -1.3614308238 --0.164471443743 -1.37868690491 --0.164471141994 -1.39594274759 --0.164471421391 -1.41319876909 --0.164472304284 -1.43045464158 --0.164473779499 -1.44771084189 --0.164475832134 -1.46496704221 --0.16447846964 -1.48222365975 --0.164481721818 -1.49948042631 --0.164485551417 -1.51673775911 --0.164489977062 -1.53399533034 --0.164494965226 -1.55125355721 --0.164497673511 -1.57047656179 --0.164495110512 -1.58969792724 --0.164490085095 -1.6069560051 --0.16448565945 -1.62421378493 --0.164481811225 -1.64147090912 --0.164478555322 -1.65872782469 --0.164475884289 -1.67598426342 --0.164473794401 -1.69324067235 --0.164472319186 -1.71049672365 --0.164471443743 -1.72775280476 --0.164471141994 -1.74500864744 --0.164471402764 -1.76226463914 --0.164472285658 -1.77952051163 --0.164473779499 -1.79677671194 --0.164475832134 -1.81403291225 --0.16447846964 -1.8312895596 --0.164481721818 -1.84854632616 --0.164485551417 -1.86580362916 --0.164489977062 -1.88306114078 --0.164494965226 -1.90031936765 --0.164497673511 -1.91954243183 --0.164495110512 -1.93876382709 --0.164490085095 -1.95602187514 --0.164485640824 -1.97327959537 --0.164481792599 -1.99053671956 --0.164478555322 -2.00779363513 --0.164475884289 -2.02505010366 --0.164473794401 -2.04230654239 --0.164472319186 -2.0595625639 --0.164471443743 -2.076818645 --0.164471141994 -2.09407448769 --0.164471421391 -2.11133044958 --0.164472304284 -2.12858635187 --0.164473779499 -2.14584261179 --0.164475832134 -2.1630987525 --0.16447846964 -2.18035537004 --0.164481721818 -2.1976121068 --0.164485551417 -2.2148694396 --0.164489977062 -2.23212701082 --0.164494965226 -2.24938523769 --0.164497673511 -2.26860833168 --0.164495110512 -2.28782969713 --0.164490085095 -2.30508774519 --0.16448565945 -2.32234549522 --0.164481811225 -2.33960264921 --0.164478555322 -2.35685962439 --0.164475884289 -2.37411600351 --0.164473794401 -2.39137238264 --0.164472319186 -2.40862840414 --0.164471443743 -2.42588448524 --0.164471141994 -2.44314032793 --0.164471421391 -2.46039634943 --0.164472304284 -2.47765225172 --0.164473779499 -2.49490839243 --0.164475832134 -2.51216465235 --0.16447846964 -2.5294213295 --0.164481721818 -2.54667806625 --0.164485551417 -2.56393533945 --0.164489977062 -2.58119285107 --0.164494965226 -2.59845107794 --0.164497673511 -2.61767411232 --0.164495110512 -2.63689547777 --0.164490085095 -2.65415352583 --0.16448565945 -2.67141127586 --0.164481811225 -2.68866842985 --0.164478555322 -2.70592540503 --0.164475884289 -2.72318184376 --0.164473794401 -2.74043822288 --0.164472319186 -2.75769424439 --0.164471443743 -2.77495032549 --0.164471141994 -2.79220616817 --0.164471421391 -2.80946218967 --0.164472304284 -2.82671803236 --0.164473779499 -2.84397417307 --0.164475832134 -2.86123043299 --0.16447846964 -2.87848711014 --0.164481721818 -2.89574384689 --0.164485551417 -2.91300117969 --0.164489977062 -2.93025869131 --0.164494965226 -2.94751685858 --0.164497673511 -2.96673989296 --0.164495110512 -2.98596131802 --0.164490085095 -3.00321942568 --0.164485640824 -3.02047717571 --0.164481792599 -3.0377342701 --0.164478555322 -3.05499118567 --0.164475884289 -3.072247684 --0.164473794401 -3.08950412273 --0.164472319186 -3.10676014423 --0.164471443743 -3.12401622534 --0.164471141994 -3.1412720402 --0.164471421391 --3.12465727329 --0.164472304284 --3.1074014306 --0.164473779499 --3.09014523029 --0.164475832134 --3.07288897038 --0.16447846964 --3.05563235283 --0.164481721818 --3.03837561607 --0.164485551417 --3.02111828327 --0.164489977062 --3.00386071205 --0.164494965226 --2.98660254479 --0.164497673511 --2.96737957001 --0.164495110512 --2.94815814495 --0.164490085095 --2.93090003729 --0.164485640824 --2.91364228726 --0.164481792599 --2.89638519287 --0.164478555322 --2.8791282773 --0.164475884289 --2.86187177897 --0.164473794401 --2.84461534023 --0.164472319186 --2.82735931874 --0.164471443743 --2.81010323763 --0.164471141994 --2.79284745455 --0.164471421391 --2.77559149265 --0.164472304284 --2.75833559036 --0.164473779499 --2.74107933044 --0.164475832134 --2.72382313013 --0.16447846964 --2.70656651259 --0.164481721818 --2.68930977583 --0.164485551417 --2.67205250263 --0.164489977062 --2.65479493141 --0.164494965226 --2.63753664493 --0.164497673511 --2.61831361055 --0.164495110512 --2.5990923047 --0.164490085095 --2.58183425665 --0.164485640824 --2.56457644701 --0.164481792599 --2.54731929302 --0.164478555322 --2.53006231785 --0.164475884289 --2.51280587912 --0.164473794401 --2.49554949999 --0.164472319186 --2.47829347849 --0.164471443743 --2.46103745699 --0.164471141994 --2.4437816143 --0.164471421391 --2.4265255332 --0.164472304284 --2.40926963091 --0.164473779499 --2.3920134902 --0.164475832134 --2.37475734949 --0.16447846964 --2.35750073195 --0.164481721818 --2.34024393559 --0.164485551417 --2.32298660278 --0.164489977062 --2.30572903156 --0.164494965226 --2.28847080469 --0.164497673511 --2.26924777031 --0.164495110512 --2.25002640486 --0.164490085095 --2.2327683568 --0.164485640824 --2.21551060677 --0.164481792599 --2.19825345278 --0.164478555322 --2.1809964776 --0.164475884289 --2.16374009848 --0.164473794401 --2.14648371935 --0.164472319186 --2.12922763825 --0.164471443743 --2.11197155714 --0.164471141994 --2.09471577406 --0.164471421391 --2.07745975256 --0.164472304284 --2.06020385027 --0.164473779499 --2.04294770956 --0.164475832134 --2.02569144964 --0.16447846964 --2.0084348023 --0.164481721818 --1.99117809534 --0.164485551417 --1.97392076254 --0.164489977062 --1.95666319132 --0.164494965226 --1.93940493465 --0.164497673511 --1.92018193006 --0.164495110512 --1.90096059441 --0.164490085095 --1.88370251656 --0.16448565945 --1.86644473672 --0.164481811225 --1.84918761253 --0.164478555322 --1.83193066716 --0.164475884289 --1.81467419863 --0.164473794401 --1.7974178195 --0.164472319186 --1.780161798 --0.164471443743 --1.7629057169 --0.164471141994 --1.74564987421 --0.164471421391 --1.72839388252 --0.164472304284 --1.71113801003 --0.164473779499 --1.69388180971 --0.164475832134 --1.6766256094 --0.16447846964 --1.65936896205 --0.164481721818 --1.64211219549 --0.164485551417 --1.62485489249 --0.164489977062 --1.60759735107 --0.164494965226 --1.5903391242 --0.164497673511 --1.57111608982 --0.164495110512 --1.55189469457 --0.164490085095 --1.53463661671 --0.16448565945 --1.51737886667 --0.164481811225 --1.50012174248 --0.164478555322 --1.48286479711 --0.164475884289 --1.46560835838 --0.164473794401 --1.44835197926 --0.164472319186 --1.43109595776 --0.164471443743 --1.41383987665 --0.164471141994 --1.39658406377 --0.164471402764 --1.37932804227 --0.164472285658 --1.36207213998 --0.164473779499 --1.34481593967 --0.164475832134 --1.32755973935 --0.16447846964 --1.310303092 --0.164481721818 --1.29304635525 --0.164485551417 --1.27578908205 --0.164489977062 --1.25853151083 --0.164494965226 --1.24127325415 --0.164497673511 --1.22205018997 --0.164495110512 --1.20282885432 --0.164490085095 --1.18557083607 --0.164485640824 --1.16831305623 --0.164481792599 --1.15105590224 --0.164478555322 --1.13379895687 --0.164475884289 --1.11654248833 --0.164473794401 --1.09928610921 --0.164472319186 --1.08203011751 --0.164471443743 --1.06477403641 --0.164471141994 --1.04751819372 --0.164471421391 --1.03026217222 --0.164472304284 --1.01300629974 --0.164473779499 --0.99575008452 --0.164475832134 --0.978493869304 --0.16447846964 --0.961237251758 --0.164481721818 --0.943980515003 --0.164485551417 --0.926723197103 --0.164489977062 --0.909465625882 --0.164494965226 --0.892207399011 --0.164497673511 --0.872984364629 --0.164495110512 --0.853762999177 --0.164490085095 --0.836504936218 --0.16448565945 --0.819247186184 --0.164481811225 --0.801990047097 --0.164478555322 --0.784733086824 --0.164475884289 --0.767476662993 --0.164473794401 --0.750220268965 --0.164472319186 --0.732964232564 --0.164471443743 --0.715708166361 --0.164471141994 --0.698452338577 --0.164471421391 --0.681196331978 --0.164472304284 --0.663940444588 --0.164473779499 --0.646684229374 --0.164475832134 --0.629428014159 --0.16447846964 --0.612171381712 --0.164481721818 --0.594914659858 --0.164485551417 --0.57765737176 --0.164489977062 --0.560399800539 --0.164494965226 --0.543141558766 --0.164497673511 --0.523918524384 --0.164495110512 --0.504697158933 --0.164490085095 --0.487439103425 --0.16448565945 --0.470181338489 --0.164481811225 --0.452924199403 --0.164478555322 --0.435667254031 --0.164475884289 --0.418410815298 --0.164473794401 --0.401154428721 --0.164472319186 --0.38389839977 --0.164471443743 --0.366642318666 --0.164471141994 --0.349386490881 --0.164471421391 --0.332130484283 --0.164472304284 --0.314874589443 --0.164473779499 --0.29761838913 --0.164475832134 --0.280362196266 --0.16447846964 --0.263105556369 --0.164481721818 --0.245848800987 --0.164485551417 --0.228591505438 --0.164489977062 --0.211333949119 --0.164494965226 --0.194075711071 --0.164497673511 --0.174852672964 --0.147171076387 --0.155623398721 --0.147166572511 --0.13836536929 --0.147162601352 --0.121107650921 --0.147159144282 --0.103850554675 --0.147156242281 --0.0865936391056 --0.147153861821 --0.0693372124806 --0.147151980549 --0.0520808538422 --0.147150650621 --0.0348248714581 --0.147149857134 --0.0175688241143 --0.147149577737 --0.000313024735077 --0.147149834782 -0.0169429574162 --0.147150631994 -0.0341988145374 --0.147151961922 -0.0514549827203 --0.147153805941 -0.0687111495063 --0.1471561715 -0.0859677474946 --0.147159092128 -0.103224476799 --0.147162511945 -0.120481755584 --0.147166483105 -0.137739274651 --0.147170972079 -0.15499747172 --0.147173389792 -0.174220789224 --0.147171076387 -0.193442448973 --0.147166572511 -0.210700478405 --0.147162601352 -0.227958198637 --0.147159144282 -0.245215304196 --0.147156242281 -0.262472227216 --0.147153861821 -0.279728651047 --0.147151980549 -0.296985000372 --0.147150650621 -0.314240984619 --0.147149857134 -0.331497035921 --0.147149577737 -0.348752833903 --0.147149834782 -0.36600881815 --0.147150631994 -0.383264675736 --0.147151961922 -0.400520838797 --0.147153805941 -0.417776994407 --0.1471561715 -0.435033589601 --0.147159077227 -0.452290318906 --0.147162497043 -0.469547607005 --0.147166483105 -0.486805140972 --0.147170972079 -0.50406332314 --0.147173389792 -0.523286610842 --0.147171076387 -0.542508274317 --0.147166572511 -0.559766322374 --0.147162601352 -0.577024042606 --0.147159144282 -0.594281151891 --0.147156242281 -0.611538082361 --0.147153861821 -0.628794506192 --0.147151980549 -0.646050855517 --0.147150650621 -0.663306817412 --0.147149857134 -0.680562868715 --0.147149577737 -0.697818666697 --0.147149834782 -0.715074643493 --0.147150631994 -0.732330515981 --0.147151943296 -0.749586686492 --0.147153787315 -0.766842857003 --0.1471561715 -0.784099459648 --0.147159077227 -0.801356181502 --0.147162497043 -0.8186134547 --0.147166483105 -0.835870981216 --0.147170972079 -0.853129178285 --0.147173389792 -0.872352510691 --0.147171076387 -0.891574159265 --0.147166572511 -0.90883217752 --0.147162601352 -0.926089897752 --0.147159144282 -0.943346992135 --0.147156223655 -0.960603907704 --0.147153843195 -0.977860331536 --0.147151980549 -0.995116695763 --0.147150650621 -1.01237267256 --0.147149857134 -1.02962869406 --0.147149596364 -1.04688447714 --0.147149853409 -1.06414046884 --0.147150631994 -1.08139634132 --0.147151961922 -1.09865254164 --0.147153805941 -1.11590874195 --0.1471561715 -1.1331653297 --0.147159077227 -1.15042203665 --0.147162497043 -1.16767930985 --0.147166483105 -1.18493682146 --0.147170972079 -1.20219501853 --0.147173389792 -1.22141832113 --0.147171076387 -1.24063995481 --0.147166572511 -1.25789800286 --0.147162601352 -1.2751557529 --0.147159144282 -1.29241284728 --0.147156242281 -1.30966976285 --0.147153861821 -1.32692620158 --0.147151980549 -1.34418255091 --0.147150650621 -1.3614385128 --0.147149857134 -1.3786945641 --0.147149577737 -1.39595037699 --0.147149834782 -1.41320636869 --0.147150631994 -1.43046221137 --0.147151961922 -1.44771835208 --0.147153805941 -1.46497452259 --0.1471561715 -1.48223114014 --0.147159077227 -1.49948787689 --0.147162497043 -1.51674517989 --0.147166483105 -1.53400272131 --0.147170972079 -1.55126091838 --0.147173389792 -1.57048422098 --0.147171076387 -1.58970585466 --0.147166572511 -1.60696387291 --0.147162601352 -1.62422159314 --0.147159144282 -1.64147868753 --0.147156223655 -1.65873560309 --0.147153843195 -1.67599201203 --0.147151980549 -1.69324836135 --0.147150650621 -1.71050438285 --0.147149857134 -1.72776046395 --0.147149577737 -1.74501624704 --0.147149816155 -1.76227220893 --0.147150613367 -1.77952808142 --0.147151943296 -1.79678425193 --0.147153787315 -1.81404042244 --0.1471561715 -1.83129701018 --0.147159077227 -1.84855371714 --0.147162497043 -1.86581099033 --0.147166483105 -1.88306850195 --0.147170972079 -1.90032669902 --0.147173389792 -1.91955006123 --0.147171076387 -1.9387717247 --0.147166572511 -1.95602974295 --0.147162601352 -1.97328746319 --0.147159144282 -1.99054455757 --0.147156223655 -2.00780144334 --0.147153843195 -2.02505785227 --0.147151980549 -2.0423142314 --0.147150650621 -2.05957025289 --0.147149857134 -2.076826334 --0.147149596364 -2.09408211708 --0.147149853409 -2.11133807898 --0.147150631994 -2.12859392166 --0.147151943296 -2.14585012198 --0.147153787315 -2.16310626268 --0.1471561715 -2.18036282063 --0.147159077227 -2.19761955738 --0.147162497043 -2.21487689018 --0.147166483105 -2.2321344018 --0.147170972079 -2.24939256907 --0.147173389792 -2.26861590147 --0.147171076387 -2.28783756495 --0.147166572511 -2.305095613 --0.147162601352 -2.32235330343 --0.147159144282 -2.33961039782 --0.147156223655 -2.35686737299 --0.147153843195 -2.37412375212 --0.147151980549 -2.39138007164 --0.147150650621 -2.40863609314 --0.147149857134 -2.42589211464 --0.147149577737 -2.44314789772 --0.147149834782 -2.46040391922 --0.147150631994 -2.47765976191 --0.147151961922 -2.49491590262 --0.147153805941 -2.51217216254 --0.1471561715 -2.52942878008 --0.147159077227 -2.54668545723 --0.147162497043 -2.56394273042 --0.147166483105 -2.58120024204 --0.147170972079 -2.59845840931 --0.147173389792 -2.61768174172 --0.147171076387 -2.63690340519 --0.147166572511 -2.65416139364 --0.147162601352 -2.67141908407 --0.147159144282 -2.68867617846 --0.147156223655 -2.70593315363 --0.147153843195 -2.72318959236 --0.147151980549 -2.74044597149 --0.147150650621 -2.75770193338 --0.147149857134 -2.77495795488 --0.147149577737 -2.79221379757 --0.147149834782 -2.80946975946 --0.147150631994 -2.82672560215 --0.147151961922 -2.84398174286 --0.147153805941 -2.86123794317 --0.1471561715 -2.87849456072 --0.147159077227 -2.89575123787 --0.147162497043 -2.91300851106 --0.147166483105 -2.93026602268 --0.147170972079 -2.94752424955 --0.147173389792 -2.96674758196 --0.147171076387 -2.98596924543 --0.147166572511 -3.00322729349 --0.147162601352 -3.02048504353 --0.147159144282 -3.03774213791 --0.147156242281 -3.05499899387 --0.147153861821 -3.07225543261 --0.147151980549 -3.08951181173 --0.147150650621 -3.10676777363 --0.147149857134 -3.12402385473 --0.147149577737 -3.1412796696 --0.147149834782 --3.1246497035 --0.147150631994 --3.10739386082 --0.147151961922 --3.09013772011 --0.147153805941 --3.07288151979 --0.1471561715 --3.05562490225 --0.147159092128 --3.03836816549 --0.147162511945 --3.02111083269 --0.147166483105 --3.00385332107 --0.147170972079 --2.98659515381 --0.147173389792 --2.96737188101 --0.147171076387 --2.94815021753 --0.147166572511 --2.93089216948 --0.147162601352 --2.91363441944 --0.147159144282 --2.89637732506 --0.147156242281 --2.87912046909 --0.147153861821 --2.86186403036 --0.147151980549 --2.84460765124 --0.147150650621 --2.82735168934 --0.147149857134 --2.81009560824 --0.147149577737 --2.79283982515 --0.147149834782 --2.77558386326 --0.147150631994 --2.75832796097 --0.147151961922 --2.74107176065 --0.147153805941 --2.72381561994 --0.1471561715 --2.706559062 --0.147159077227 --2.68930232525 --0.147162497043 --2.67204505205 --0.147166483105 --2.65478754043 --0.147170972079 --2.63752931356 --0.147173389792 --2.61830604076 --0.147171076387 --2.59908443689 --0.147166572511 --2.58182638884 --0.147162601352 --2.5645686388 --0.147159144282 --2.54731148481 --0.147156242281 --2.53005456924 --0.147153861821 --2.51279819012 --0.147151980549 --2.49554181099 --0.147150650621 --2.47828578949 --0.147149857134 --2.46102976799 --0.147149577737 --2.44377398491 --0.147149834782 --2.42651796341 --0.147150631994 --2.40926212072 --0.147151943296 --2.39200598001 --0.147153787315 --2.37474983931 --0.1471561715 --2.35749322176 --0.147159077227 --2.340236485 --0.147162497043 --2.32297921181 --0.147166483105 --2.30572164059 --0.147170972079 --2.28846347332 --0.147173389792 --2.26924014091 --0.147171076387 --2.25001847744 --0.147166572511 --2.23276048899 --0.147162601352 --2.21550279856 --0.147159144282 --2.19824570417 --0.147156223655 --2.180988729 --0.147153843195 --2.16373234987 --0.147151980549 --2.14647597075 --0.147150650621 --2.12921994925 --0.147149857134 --2.11196392775 --0.147149596364 --2.09470814466 --0.147149853409 --2.07745218277 --0.147150631994 --2.06019628048 --0.147151961922 --2.04294013977 --0.147153805941 --2.02568393945 --0.1471561715 --2.00842732191 --0.147159077227 --1.99117064476 --0.147162497043 --1.97391334176 --0.147166483105 --1.95665580035 --0.147170972079 --1.93939760327 --0.147173389792 --1.92017430067 --0.147171076387 --1.900952667 --0.147166572511 --1.88369464875 --0.147162601352 --1.86643689871 --0.147159144282 --1.84917980432 --0.147156242281 --1.83192291856 --0.147153861821 --1.81466647983 --0.147151980549 --1.7974101007 --0.147150650621 --1.780154109 --0.147149857134 --1.7628980577 --0.147149577737 --1.74564224481 --0.147149834782 --1.72838628292 --0.147150631994 --1.71113044024 --0.147151961922 --1.69387426972 --0.147153805941 --1.67661809921 --0.1471561715 --1.65936151147 --0.147159077227 --1.64210480452 --0.147162497043 --1.62484753132 --0.147166483105 --1.6075900197 --0.147170972079 --1.59033179283 --0.147173389792 --1.57110846042 --0.147171076387 --1.55188679695 --0.147166572511 --1.53462874889 --0.147162601352 --1.51737102866 --0.147159144282 --1.50011393428 --0.147156223655 --1.48285701871 --0.147153843195 --1.46560060978 --0.147151980549 --1.44834426046 --0.147150650621 --1.43108826876 --0.147149857134 --1.41383224726 --0.147149577737 --1.39657646418 --0.147149816155 --1.37932044268 --0.147150613367 --1.36206457019 --0.147151943296 --1.34480839968 --0.147153787315 --1.32755225897 --0.1471561715 --1.31029567123 --0.147159077227 --1.29303893447 --0.147162497043 --1.27578166127 --0.147166483105 --1.25852411985 --0.147170972079 --1.24126592279 --0.147173389792 --1.22204259038 --0.147171076387 --1.20282095671 --0.147166572511 --1.18556296826 --0.147162601352 --1.16830524802 --0.147159144282 --1.15104812383 --0.147156223655 --1.13379120826 --0.147153843195 --1.11653476953 --0.147151980549 --1.09927839041 --0.147150650621 --1.08202242851 --0.147149857134 --1.06476637721 --0.147149596364 --1.04751056433 --0.147149853409 --1.03025457263 --0.147150631994 --1.01299872994 --0.147151943296 --0.995742574334 --0.147153787315 --0.978486418724 --0.1471561715 --0.961229816079 --0.147159077227 --0.943973079324 --0.147162497043 --0.926715806126 --0.147166483105 --0.909458264708 --0.147170972079 --0.89220006764 --0.147173389792 --0.872976765037 --0.147171076387 --0.853755101561 --0.147166572511 --0.836497053504 --0.147162601352 --0.819239348173 --0.147159144282 --0.80198225379 --0.147156223655 --0.784725323319 --0.147153843195 --0.767468929291 --0.147151980549 --0.750212565064 --0.147150650621 --0.732956573367 --0.147149857134 --0.715700536966 --0.147149577737 --0.698444724083 --0.147149834782 --0.681188747287 --0.147150631994 --0.6639328897 --0.147151961922 --0.646676704287 --0.147153805941 --0.629420518875 --0.1471561715 --0.612163931131 --0.147159077227 --0.59490723908 --0.147162497043 --0.577649965882 --0.147166483105 --0.560392439365 --0.147170972079 --0.543134227395 --0.147173389792 --0.523910909891 --0.147171076387 --0.504689268768 --0.147166572511 --0.487431235612 --0.147162601352 --0.470173500478 --0.147159144282 --0.452916391194 --0.147156223655 --0.435659475625 --0.147153843195 --0.418403074145 --0.147151980549 --0.40114672482 --0.147150650621 --0.383890725672 --0.147149857134 --0.36663466692 --0.147149577737 --0.349378868938 --0.147149834782 --0.332122899592 --0.147150631994 --0.314867042005 --0.147151961922 --0.297610871494 --0.147153805941 --0.280354708433 --0.1471561715 --0.263098105788 --0.147159077227 --0.245841380209 --0.147162497043 --0.228584107012 --0.147166483105 --0.211326576769 --0.147170972079 --0.19406837225 --0.147173389792 --0.174845058471 --0.129828754813 --0.15561548993 --0.129824783653 --0.138357490301 --0.129821285605 --0.121099799871 --0.129818229005 --0.103842733428 --0.129815651104 --0.0865858476609 --0.129813548177 --0.0693294573576 --0.129811884836 --0.0520731313154 --0.129810713232 --0.0348171773367 --0.129810016602 --0.0175611616578 --0.12980976142 --0.000305393477902 --0.129809981212 -0.0169505570084 --0.129810675978 -0.034206383396 --0.129811847582 -0.0514625217766 --0.129813494161 -0.0687186568975 --0.129815597087 -0.0859752222895 --0.12981816195 -0.103231918067 --0.12982118316 -0.120489167049 --0.129824712873 -0.137746661901 --0.129828687758 -0.155004829168 --0.12983080931 -0.174228422344 --0.129828754813 -0.193450357765 --0.129824783653 -0.210708361119 --0.129821285605 -0.227966051549 --0.129818229005 -0.245223127305 --0.129815651104 -0.262480020523 --0.129813548177 -0.279736407101 --0.129811884836 -0.296992734075 --0.129810713232 -0.314248673618 --0.129810016602 -0.331504687667 --0.12980976142 -0.348760470748 --0.129809981212 -0.366016417742 --0.129810675978 -0.383272238075 --0.129811847582 -0.400528378784 --0.129813494161 -0.417784512043 --0.129815597087 -0.435041077435 --0.12981816195 -0.452297769487 --0.12982118316 -0.469555020332 --0.129824712873 -0.486812524498 --0.129828687758 -0.504070684314 --0.12983080931 -0.523294255137 --0.129828754813 -0.542516186834 --0.129824783653 -0.559774205089 --0.129821285605 -0.577031895518 --0.129818229005 -0.594288975 --0.129815651104 -0.611545860767 --0.129813548177 -0.628802254796 --0.129811884836 -0.64605858922 --0.129810713232 -0.663314536214 --0.129810016602 -0.680570557713 --0.12980976142 -0.697826310992 --0.129809981212 -0.715082257986 --0.129810675978 -0.732338100672 --0.129811828956 -0.74959422648 --0.129813475534 -0.766850352287 --0.129815597087 -0.78410692513 --0.12981816195 -0.801363632083 --0.12982118316 -0.818620875478 --0.129824712873 -0.835878357291 --0.129828687758 -0.853136524558 --0.12983080931 -0.872360140085 --0.129828754813 -0.891582071781 --0.129824783653 -0.908840045333 --0.129821285605 -0.926097735763 --0.129818229005 -0.943354815244 --0.129815632478 -0.960611686111 --0.129813529551 -0.977868080139 --0.129811884836 -0.995124429464 --0.129810713232 -1.01238036156 --0.129810016602 -1.02963638306 --0.129809780047 -1.04689213633 --0.129809999839 -1.06414806843 --0.129810675978 -1.08140391111 --0.129811847582 -1.09866008163 --0.129813494161 -1.11591625214 --0.129815597087 -1.13317281008 --0.12981816195 -1.15042948723 --0.12982118316 -1.16768673062 --0.129824712873 -1.18494421244 --0.129828687758 -1.20220237971 --0.12983080931 -1.22142598033 --0.129828754813 -1.24064791203 --0.129824783653 -1.25790593028 --0.129821285605 -1.27516362071 --0.129818229005 -1.29242065549 --0.129815651104 -1.30967757106 --0.129813548177 -1.32693397999 --0.129811884836 -1.34419026971 --0.129810713232 -1.36144623161 --0.129810016602 -1.3787022531 --0.12980976142 -1.39595800638 --0.129809981212 -1.41321396828 --0.129810675978 -1.43046981096 --0.129811847582 -1.44772592187 --0.129813494161 -1.46498203278 --0.129815597087 -1.48223862052 --0.12981816195 -1.49949532747 --0.12982118316 -1.51675257087 --0.129824712873 -1.53401008248 --0.129828687758 -1.55126824975 --0.12983080931 -1.57049182058 --0.129828754813 -1.58971375227 --0.129824783653 -1.60697174072 --0.129821285605 -1.62422943116 --0.129818229005 -1.64148652553 --0.129815632478 -1.6587434113 --0.129813529551 -1.67599976063 --0.129811884836 -1.69325608015 --0.129810713232 -1.71051207185 --0.129810016602 -1.72776812315 --0.12980976142 -1.74502387643 --0.129809981212 -1.76227980852 --0.129810675978 -1.77953565121 --0.129811828956 -1.79679179192 --0.129813475534 -1.81404793263 --0.129815597087 -1.83130449057 --0.12981816195 -1.84856116772 --0.12982118316 -1.86581841111 --0.129824712873 -1.88307589292 --0.129828687758 -1.90033406019 --0.12983080931 -1.91955769062 --0.129828754813 -1.93877962232 --0.129824783653 -1.95603761077 --0.129821285605 -1.9732953012 --0.129818229005 -1.99055236578 --0.129815632478 -2.00780922174 --0.129813529551 -2.02506560087 --0.129811884836 -2.04232198 --0.129810713232 -2.0595779419 --0.129810016602 -2.07683396339 --0.129809780047 -2.09408974648 --0.129809999839 -2.11134570837 --0.129810692742 -2.12860149145 --0.129811845719 -2.14585763216 --0.129813475534 -2.16311377287 --0.129815597087 -2.18037027121 --0.12981816195 -2.19762700796 --0.12982118316 -2.21488428116 --0.129824712873 -2.23214173317 --0.129828687758 -2.24939990044 --0.12983080931 -2.26862347126 --0.129828754813 -2.28784543276 --0.129824783653 -2.30510348082 --0.129821285605 -2.32236111164 --0.129818229005 -2.33961814642 --0.129815632478 -2.35687512159 --0.129813529551 -2.37413150072 --0.129811884836 -2.39138776064 --0.129810713232 -2.40864378214 --0.129810016602 -2.42589980364 --0.12980976142 -2.44315552712 --0.129809981212 -2.46041148901 --0.129810675978 -2.4776673317 --0.129811847582 -2.49492347241 --0.129813494161 -2.51217967272 --0.129815597087 -2.52943623066 --0.12981816195 -2.54669284821 --0.12982118316 -2.5639501214 --0.129824712873 -2.58120763302 --0.129828687758 -2.59846574068 --0.12983080931 -2.61768937111 --0.129828754813 -2.63691133261 --0.129824783653 -2.65416926146 --0.129821285605 -2.67142695188 --0.129818229005 -2.68868404627 --0.129815632478 -2.70594096184 --0.129813529551 -2.72319740057 --0.129811884836 -2.74045372009 --0.129810713232 -2.75770962238 --0.129810016602 -2.77496564388 --0.12980976142 -2.79222142696 --0.129809981212 -2.80947738886 --0.129810692742 -2.82673323155 --0.129811864346 -2.84398931265 --0.129813494161 -2.86124545336 --0.129815597087 -2.8785020709 --0.12981816195 -2.89575868845 --0.12982118316 -2.91301590204 --0.129824712873 -2.93027341366 --0.129828687758 -2.94753164053 --0.12983080931 -2.96675527096 --0.129828754813 -2.98597717285 --0.129824783653 -3.0032351613 --0.129821285605 -3.02049285173 --0.129818229005 -3.03774994612 --0.129815651104 -3.05500680208 --0.129813548177 -3.07226318121 --0.129811884836 -3.08951956033 --0.129810713232 -3.10677546263 --0.129810016602 -3.12403142452 --0.12980976142 -3.14128723939 --0.129809981212 --3.12464213371 --0.129810675978 --3.10738629103 --0.129811847582 --3.09013015032 --0.129813494161 --3.07287400961 --0.129815597087 --3.05561739206 --0.12981816195 --3.03836071491 --0.12982118316 --3.02110344172 --0.129824712873 --3.0038459301 --0.129828687758 --2.98658776283 --0.12983080931 --2.96736419201 --0.129828754813 --2.94814229012 --0.129824783653 --2.93088430166 --0.129821285605 --2.91362661123 --0.129818229005 --2.89636951685 --0.129815651104 --2.87911266089 --0.129813548177 --2.86185628176 --0.129811884836 --2.84459990263 --0.129810713232 --2.82734400034 --0.129810016602 --2.81008803844 --0.12980976142 --2.79283225536 --0.129809981212 --2.77557623386 --0.129810675978 --2.75832039118 --0.129811847582 --2.74106425047 --0.129813494161 --2.72380810976 --0.129815597087 --2.70655161142 --0.12981816195 --2.68929487467 --0.12982118316 --2.67203760147 --0.129824712873 --2.65478014946 --0.129828687758 --2.63752198219 --0.12983080931 --2.61829841137 --0.129828754813 --2.59907650948 --0.129824783653 --2.58181846142 --0.129821285605 --2.56456077099 --0.129818229005 --2.5473036766 --0.129815651104 --2.53004676104 --0.129813548177 --2.51279044151 --0.129811884836 --2.49553412199 --0.129810713232 --2.47827810049 --0.129810016602 --2.46102207899 --0.12980976142 --2.44376635551 --0.129809981212 --2.42651039362 --0.129810675978 --2.40925455093 --0.129811828956 --2.39199841022 --0.129813475534 --2.37474232912 --0.129815597087 --2.35748577118 --0.12981816195 --2.34022903442 --0.12982118316 --2.32297182083 --0.129824712873 --2.30571430922 --0.129828687758 --2.28845614195 --0.12983080931 --2.26923257112 --0.129828754813 --2.25001060962 --0.129824783653 --2.23275262117 --0.129821285605 --2.21549493074 --0.129818229005 --2.19823789596 --0.129815632478 --2.1809809804 --0.129813529551 --2.16372454166 --0.129811884836 --2.14646822214 --0.129810713232 --2.12921226025 --0.129810016602 --2.11195623875 --0.129809780047 --2.09470045566 --0.129809999839 --2.07744455337 --0.129810675978 --2.06018871069 --0.129811847582 --2.04293256998 --0.129813494161 --2.02567642927 --0.129815597087 --2.00841984152 --0.12981816195 --1.99116319418 --0.12982118316 --1.97390592098 --0.129824712873 --1.95664840937 --0.129828687758 --1.9393902719 --0.12983080931 --1.92016667128 --0.129828754813 --1.90094473958 --0.129824783653 --1.88368675113 --0.129821285605 --1.8664290309 --0.129818229005 --1.84917196632 --0.129815651104 --1.83191511035 --0.129813548177 --1.81465870142 --0.129811884836 --1.79740235209 --0.129810713232 --1.78014642 --0.129810016602 --1.7628903985 --0.12980976142 --1.74563461542 --0.129809981212 --1.72837868333 --0.129810675978 --1.71112287044 --0.129811847582 --1.69386672974 --0.129813494161 --1.67661058903 --0.129815597087 --1.65935403108 --0.12981816195 --1.64209735393 --0.12982118316 --1.62484011054 --0.129824712873 --1.60758262873 --0.129828687758 --1.59032443166 --0.12983080931 --1.57110083103 --0.129828754813 --1.55187889934 --0.129824783653 --1.53462088108 --0.129821285605 --1.51736319065 --0.129818229005 --1.50010612607 --0.129815632478 --1.4828492403 --0.129813529551 --1.46559286117 --0.129811884836 --1.44833654165 --0.129810713232 --1.43108057976 --0.129810016602 --1.41382458806 --0.12980976142 --1.39656883478 --0.129809981212 --1.37931284308 --0.129810675978 --1.3620570004 --0.129811828956 --1.34480085969 --0.129813475534 --1.32754474878 --0.129815597087 --1.31028822064 --0.12981816195 --1.29303148389 --0.12982118316 --1.27577421069 --0.129824712873 --1.25851672888 --0.129828687758 --1.24125856161 --0.12983080931 --1.22203496098 --0.129828754813 --1.20281305909 --0.129824783653 --1.18555507064 --0.129821285605 --1.16829738021 --0.129818229005 --1.15104031563 --0.129815632478 --1.13378340006 --0.129813529551 --1.11652699113 --0.129811884836 --1.09927067161 --0.129810713232 --1.08201473951 --0.129810016602 --1.06475871801 --0.129809780047 --1.04750293493 --0.129809999839 --1.03024700284 --0.129810692742 --1.01299116015 --0.129811845719 --0.995735019444 --0.129813475534 --0.97847892344 --0.129815597087 --0.961222335696 --0.12981816195 --0.943965613842 --0.12982118316 --0.926708385348 --0.129824712873 --0.909450903535 --0.129828687758 --0.892192721367 --0.12983080931 --0.872969120741 --0.129828754813 --0.853747189045 --0.129824783653 --0.83648917079 --0.129821285605 --0.819231495261 --0.129818229005 --0.801974445581 --0.129815632478 --0.784717544913 --0.129813529551 --0.767461165786 --0.129811884836 --0.750204831362 --0.129810713232 --0.732948884368 --0.129810016602 --0.715692877769 --0.12980976142 --0.698437094688 --0.129809981212 --0.681181147694 --0.129810675978 --0.66392531991 --0.129811847582 --0.646669179201 --0.129813494161 --0.629413023591 --0.129815597087 --0.612156465649 --0.12981816195 --0.594899788499 --0.12982118316 --0.577642530203 --0.129824712873 --0.560385048389 --0.129828687758 --0.543126881122 --0.12983080931 --0.523903280497 --0.129828754813 --0.504681348801 --0.129824783653 --0.487423352897 --0.129821285605 --0.470165662468 --0.129818229005 --0.452908582986 --0.129815632478 --0.435651689768 --0.129813529551 --0.41839531064 --0.129811884836 --0.401138991117 --0.129810713232 --0.383883029223 --0.129810016602 --0.366627007723 --0.12980976142 --0.349371246994 --0.129809981212 --0.332115292549 --0.129810692742 --0.314859464764 --0.129811864346 --0.297603338957 --0.129813494161 --0.280347205699 --0.129815597087 --0.263090632856 --0.12981816195 --0.245833937078 --0.12982118316 --0.228576693684 --0.129824712873 --0.211319193244 --0.129828687758 --0.194061022252 --0.12983080931 --0.174837429077 --0.112467927858 --0.155607566237 --0.112464489415 --0.138349600136 --0.112461453304 --0.121091941372 --0.11245880276 --0.103834901005 --0.112456567586 --0.0865780487657 --0.112454731017 --0.0693216910586 --0.112453296781 --0.0520653966814 --0.112452279776 --0.034809473902 --0.112451661378 --0.0175534880255 --0.112451443449 --0.000297751044855 --0.112451642752 -0.0169581677765 --0.112452242523 -0.0342139634304 --0.112453244626 -0.051470070146 --0.112454680726 -0.068726176396 --0.112456515432 -0.0859827101231 --0.112458733842 -0.103239372373 --0.112461369485 -0.120496589691 --0.112464424223 -0.137754052877 --0.112467862666 -0.155012190342 --0.112469714135 -0.174236066639 --0.112467927858 -0.193458281457 --0.112464489415 -0.210716255009 --0.112461453304 -0.227973915636 --0.11245880276 -0.245230950415 --0.112456567586 -0.26248781383 --0.112454731017 -0.279744170606 --0.112453296781 -0.297000460327 --0.112452279776 -0.314256370067 --0.112451661378 -0.331512346864 --0.112451443449 -0.348768092692 --0.112451642752 -0.366024009883 --0.112452242523 -0.383279807865 --0.112453244626 -0.400535918772 --0.112454680726 -0.417792022228 --0.112456515432 -0.435048557818 --0.112458733842 -0.452305227518 --0.112461369485 -0.469562448561 --0.112464424223 -0.486819908023 --0.112467862666 -0.504078045488 --0.112469714135 -0.523301914335 --0.112467927858 -0.542524114252 --0.112464489415 -0.559782087803 --0.112461453304 -0.577039763331 --0.11245880276 -0.594296827912 --0.112456550822 -0.611553683877 --0.112454714254 -0.628810018301 --0.112453296781 -0.646066308022 --0.112452279776 -0.663322240114 --0.112451678142 -0.680578231811 --0.112451460213 -0.697833955288 --0.112451642752 -0.715089887381 --0.112452242523 -0.732345685363 --0.112453244626 -0.749601781368 --0.112454680726 -0.766857877374 --0.112456515432 -0.784114405513 --0.112458733842 -0.801371097565 --0.112461369485 -0.818628296256 --0.112464424223 -0.835885748267 --0.112467862666 -0.853143900633 --0.112469714135 -0.87236776948 --0.112467927858 -0.891589969396 --0.112464489415 -0.908847928047 --0.112461453304 -0.926105603576 --0.11245880276 -0.943362638354 --0.112456550822 -0.960619479418 --0.112454714254 -0.977875858545 --0.112453296781 -0.995132192969 --0.112452279776 -1.01238811016 --0.112451661378 -1.02964407205 --0.112451443449 -1.04689979553 --0.112451642752 -1.06415572762 --0.112452242523 -1.08141154051 --0.112453244626 -1.09866765142 --0.112454680726 -1.11592376232 --0.112456515432 -1.13318029046 --0.112458733842 -1.15043693781 --0.112461369485 -1.1676941514 --0.112464424223 -1.18495160341 --0.112467862666 -1.20220974088 --0.112469714135 -1.22143363953 --0.112467927858 -1.24065586924 --0.112464489415 -1.2579138279 --0.112461453304 -1.27517145872 --0.11245880276 -1.2924284935 --0.112456567586 -1.30968537927 --0.112454731017 -1.32694172859 --0.112453296781 -1.34419798851 --0.112452279776 -1.3614539206 --0.112451661378 -1.3787099123 --0.112451443449 -1.39596563578 --0.112451642752 -1.41322156787 --0.112452242523 -1.43047738075 --0.112453244626 -1.44773346186 --0.112454680726 -1.46498954296 --0.112456515432 -1.4822461009 --0.112458733842 -1.49950277806 --0.112461369485 -1.51675996184 --0.112464424223 -1.53401744365 --0.112467862666 -1.55127561092 --0.112469714135 -1.57049944997 --0.112467927858 -1.58972164988 --0.112464489415 -1.60697963834 --0.112461453304 -1.62423732877 --0.11245880276 -1.64149436355 --0.112456567586 -1.65875118971 --0.112454731017 -1.67600753903 --0.112453296781 -1.69326385856 --0.112452279776 -1.71051979065 --0.112451678142 -1.72777578235 --0.112451460213 -1.74503153562 --0.112451642752 -1.76228743791 --0.112452242523 -1.77954322099 --0.112453244626 -1.7967993319 --0.112454680726 -1.81405544281 --0.112456515432 -1.83131197095 --0.112458733842 -1.8485686481 --0.112461369485 -1.86582586169 --0.112464424223 -1.8830832839 --0.112467862666 -1.90034142136 --0.112469714135 -1.91956532002 --0.112467927858 -1.93878754974 --0.112464489415 -1.95604550839 --0.112461453304 -1.97330313921 --0.11245880276 -1.99056017399 --0.112456550822 -2.00781700015 --0.112454714254 -2.02507334948 --0.112453296781 -2.0423297286 --0.112452279776 -2.0595856309 --0.112451678142 -2.07684159279 --0.112451460213 -2.09409737587 --0.112451642752 -2.11135327816 --0.112452259287 -2.12860906124 --0.11245326139 -2.14586520195 --0.112454680726 -2.16312128305 --0.112456515432 -2.18037778139 --0.112458733842 -2.19763445854 --0.112461369485 -2.21489167213 --0.112464424223 -2.23214918375 --0.112467862666 -2.24940729141 --0.112469714135 -2.26863110065 --0.112467927858 -2.28785336018 --0.112464489415 -2.30511134863 --0.112461453304 -2.32236897946 --0.11245880276 -2.33962601423 --0.112456567586 -2.3568829298 --0.112454731017 -2.37413930893 --0.112453296781 -2.39139556885 --0.112452279776 -2.40865153074 --0.112451661378 -2.42590755224 --0.112451443449 -2.44316321611 --0.112451642752 -2.4604190588 --0.112452242523 -2.47767490148 --0.112453244626 -2.49493104219 --0.112454680726 -2.5121871829 --0.112456515432 -2.52944368124 --0.112458733842 -2.54670029878 --0.112461369485 -2.56395757198 --0.112464424223 -2.581215024 --0.112467862666 -2.59847313166 --0.112469714135 -2.61769706011 --0.112467927858 -2.63691931963 --0.112464489415 -2.65417724847 --0.112461453304 -2.6714348793 --0.11245880276 -2.68869191408 --0.112456567586 -2.70594877005 --0.112454731017 -2.72320514918 --0.112453296781 -2.74046140909 --0.112452279776 -2.75771731138 --0.112451661378 -2.77497333288 --0.112451443449 -2.79222905636 --0.112451642752 -2.80948501825 --0.112452259287 -2.82674080133 --0.11245326139 -2.84399682283 --0.112454680726 -2.86125296354 --0.112456515432 -2.87850958109 --0.112458733842 -2.89576619863 --0.112461369485 -2.91302335262 --0.112464424223 -2.93028080463 --0.112467862666 -2.9475389719 --0.112469714135 -2.96676290035 --0.112467927858 -2.98598510027 --0.112464489415 -3.00324302912 --0.112461453304 -3.02050065994 --0.11245880276 -3.03775769472 --0.112456567586 -3.05501455069 --0.112454731017 -3.07227092981 --0.112453296781 -3.08952724934 --0.112452279776 -3.10678315163 --0.112451661378 -3.12403911352 --0.112451443449 -3.14129486878 --0.112451642752 --3.12463450432 --0.112452242523 --3.10737872124 --0.112453244626 --3.09012264013 --0.112454680726 --3.07286649943 --0.112456515432 --3.05560988188 --0.112458733842 --3.03835326433 --0.112461369485 --3.02109611035 --0.112464424223 --3.00383859873 --0.112467862666 --2.98658043146 --0.112469714135 --2.96735656261 --0.112467927858 --2.9481343627 --0.112464489415 --2.93087643385 --0.112461453304 --2.91361874342 --0.11245880276 --2.89636170864 --0.112456567586 --2.87910491228 --0.112454731017 --2.86184853315 --0.112453296781 --2.84459221363 --0.112452279776 --2.82733631134 --0.112451661378 --2.81008034945 --0.112451443449 --2.79282456636 --0.112451642752 --2.77556860447 --0.112452242523 --2.75831282139 --0.112453244626 --2.74105668068 --0.112454680726 --2.72380059958 --0.112456515432 --2.70654410124 --0.112458733842 --2.68928736448 --0.112461369485 --2.67203015089 --0.112464424223 --2.65477275849 --0.112467862666 --2.63751465082 --0.112469714135 --2.61829078197 --0.112467927858 --2.59906858206 --0.112464489415 --2.5818105936 --0.112461453304 --2.56455290318 --0.11245880276 --2.54729580879 --0.112456550822 --2.53003889322 --0.112454714254 --2.5127826333 --0.112453296781 --2.49552637339 --0.112452279776 --2.47827041149 --0.112451678142 --2.46101444959 --0.112451460213 --2.44375872612 --0.112451642752 --2.42650276422 --0.112452242523 --2.40924692154 --0.112453244626 --2.39199084044 --0.112454680726 --2.37473481894 --0.112456515432 --2.3574783206 --0.112458733842 --2.34022158385 --0.112461369485 --2.32296437025 --0.112464424223 --2.30570691824 --0.112467862666 --2.28844875097 --0.112469714135 --2.26922494173 --0.112467927858 --2.25000274181 --0.112464489415 --2.23274469376 --0.112461453304 --2.21548700333 --0.11245880276 --2.19823002815 --0.112456550822 --2.18097317219 --0.112454714254 --2.16371673345 --0.112453296781 --2.14646047353 --0.112452279776 --2.12920457125 --0.112451661378 --2.11194854975 --0.112451443449 --2.09469282627 --0.112451642752 --2.07743692398 --0.112452242523 --2.0601811409 --0.112453244626 --2.0429250598 --0.112454680726 --2.02566891909 --0.112456515432 --2.00841236114 --0.112458733842 --1.9911557436 --0.112461369485 --1.97389850021 --0.112464424223 --1.95664101839 --0.112467862666 --1.93938291073 --0.112469714135 --1.92015901208 --0.112467927858 --1.90093678236 --0.112464489415 --1.88367882371 --0.112461453304 --1.86642116309 --0.11245880276 --1.8491641283 --0.112456567586 --1.83190727234 --0.112454731017 --1.81465092301 --0.112453296781 --1.79739463329 --0.112452279776 --1.780138731 --0.112451661378 --1.76288273931 --0.112451443449 --1.74562698603 --0.112451642752 --1.72837108374 --0.112452242523 --1.71111530066 --0.112453244626 --1.69385918975 --0.112454680726 --1.67660307884 --0.112456515432 --1.6593465507 --0.112458733842 --1.64208987355 --0.112461369485 --1.62483265996 --0.112464424223 --1.60757523775 --0.112467862666 --1.59031710029 --0.112469714135 --1.57109320164 --0.112467927858 --1.55187097192 --0.112464489415 --1.53461301327 --0.112461453304 --1.51735535264 --0.11245880276 --1.50009831786 --0.112456567586 --1.4828414619 --0.112454731017 --1.46558511257 --0.112453296781 --1.44832882285 --0.112452279776 --1.43107286096 --0.112451678142 --1.41381686926 --0.112451460213 --1.39656114578 --0.112451642752 --1.37930521369 --0.112452242523 --1.36204940081 --0.112453244626 --1.3447932899 --0.112454680726 --1.3275372088 --0.112456515432 --1.31028071046 --0.112458733842 --1.29302403331 --0.112461369485 --1.27576678991 --0.112464424223 --1.2585093379 --0.112467862666 --1.24125120044 --0.112469714135 --1.22202730179 --0.112467927858 --1.20280510187 --0.112464489415 --1.18554714322 --0.112461453304 --1.1682894826 --0.11245880276 --1.15103244782 --0.112456550822 --1.13377556205 --0.112454714254 --1.11651921272 --0.112453296781 --1.0992629528 --0.112452279776 --1.08200705051 --0.112451678142 --1.06475105882 --0.112451460213 --1.04749530554 --0.112451642752 --1.03023940325 --0.112452259287 --1.01298359036 --0.11245326139 --0.995727464556 --0.112454680726 --0.978471368551 --0.112456515432 --0.96121481061 --0.112458733842 --0.94395814836 --0.112461369485 --0.926700949669 --0.112464424223 --0.909443482756 --0.112467862666 --0.892185345292 --0.112469714135 --0.872961461544 --0.112467927858 --0.853739246726 --0.112464489415 --0.836481288075 --0.112461453304 --0.819223642349 --0.11245880276 --0.801966607571 --0.112456567586 --0.784709751606 --0.112454731017 --0.76745338738 --0.112453296781 --0.750197067857 --0.112452279776 --0.732941150665 --0.112451661378 --0.715685173869 --0.112451443449 --0.698429435491 --0.112451642752 --0.681173533201 --0.112452242523 --0.66391775012 --0.112453244626 --0.646661654115 --0.112454680726 --0.629405528307 --0.112456515432 --0.612148970366 --0.112458733842 --0.594892308116 --0.112461369485 --0.577635094523 --0.112464424223 --0.560377657413 --0.112467862666 --0.543119519949 --0.112469714135 --0.5238956213 --0.112467927858 --0.504673406482 --0.112464489415 --0.487415447831 --0.112461453304 --0.470157787204 --0.11245880276 --0.452900744975 --0.112456567586 --0.43564388901 --0.112454731017 --0.418387539684 --0.112453296781 --0.401131249964 --0.112452279776 --0.383875325322 --0.112451661378 --0.366619333625 --0.112451443449 --0.349363602698 --0.112451642752 --0.332107678056 --0.112452259287 --0.314851880074 --0.11245326139 --0.297595791519 --0.112454680726 --0.280339680612 --0.112456515432 --0.263083137572 --0.112458733842 --0.245826475322 --0.112461369485 --0.228569258004 --0.112464424223 --0.211311794818 --0.112467862666 --0.194053661078 --0.112469714135 --0.174829788506 --0.0948094967752 --0.155602190644 --0.0948065780102 --0.138344243169 --0.0948040038348 --0.12108660303 --0.0948017761112 --0.103829585016 --0.0947998911141 --0.0865727551281 --0.0947983488439 --0.0693164188415 --0.0947971530258 --0.0520601449534 --0.0947962850332 --0.0348042435944 --0.0947957430034 --0.0175482786726 --0.0947955604643 --0.000292564043775 --0.0947957392783 -0.0169633342885 --0.0947962477802 -0.0342191094533 --0.0947971027344 -0.0514751924202 --0.0947983153164 -0.0687312800437 --0.0947998538612 -0.0859877932817 --0.0948017239571 -0.103244433179 --0.0948039554059 -0.120501630008 --0.0948065295814 -0.137759067118 --0.0948094315826 -0.155017185956 --0.0948110055179 -0.174241259694 --0.0948094967752 -0.193463664502 --0.0948065780102 -0.210721608251 --0.0948040038348 -0.227979246527 --0.0948017761112 -0.245236262679 --0.0947998911141 -0.262493103743 --0.0947983488439 -0.279749438167 --0.0947971530258 -0.297005705535 --0.0947962850332 -0.314261607826 --0.0947957430034 -0.33151756227 --0.0947955604643 -0.348773270845 --0.0947957392783 -0.366029165685 --0.0947962477802 -0.383284948766 --0.0947971027344 -0.400541044771 --0.0947983153164 -0.417797118425 --0.0947998538612 -0.435053631663 --0.0948017239571 -0.452310293913 --0.0948039554059 -0.469567492604 --0.0948065295814 -0.486824929714 --0.0948094315826 -0.504083044827 --0.0948110055179 -0.523307099938 --0.0948094967752 -0.542529508472 --0.0948065780102 -0.559787467122 --0.0948040038348 -0.577045112848 --0.0948017761112 -0.594302132726 --0.0947998743504 -0.611558958888 --0.0947983320802 -0.628815293312 --0.0947971530258 -0.64607155323 --0.0947962850332 -0.663327440619 --0.0947957597674 -0.680583417415 --0.0947955772283 -0.697839140892 --0.0947957392783 -0.715095058083 --0.0947962477802 -0.732350826263 --0.0947971027344 -0.749606892466 --0.0947983153164 -0.766862973571 --0.0947998538612 -0.784119471908 --0.0948017239571 -0.801376134157 --0.0948039554059 -0.818633332848 --0.0948065295814 -0.835890769958 --0.0948094315826 -0.853148907423 --0.0948110055179 -0.872372955084 --0.0948094967752 -0.891595348716 --0.0948065780102 -0.908853307366 --0.0948040038348 -0.926110953093 --0.0948017761112 -0.943367958069 --0.0947998743504 -0.960624799132 --0.0947983320802 -0.977881148458 --0.0947971530258 -0.995137438177 --0.0947962850332 -1.01239335537 --0.0947957430034 -1.02964925766 --0.0947955604643 -1.04690495133 --0.0947957392783 -1.06416088343 --0.0947962477802 -1.08141666651 --0.0947971027344 -1.09867274761 --0.0947983153164 -1.11592882871 --0.0947998538612 -1.13318535685 --0.0948017239571 -1.1504419744 --0.0948039554059 -1.16769915819 --0.0948065295814 -1.1849566102 --0.0948094315826 -1.20221471787 --0.0948110055179 -1.22143879533 --0.0948094967752 -1.24066123366 --0.0948065780102 -1.25791919232 --0.0948040038348 -1.27517682314 --0.0948017761112 -1.29243382812 --0.0947998911141 -1.30969065428 --0.0947983488439 -1.3269469738 --0.0947971530258 -1.34420323372 --0.0947962850332 -1.36145913601 --0.0947957430034 -1.3787150979 --0.0947955604643 -1.39597082138 --0.0947957392783 -1.41322672367 --0.0947962477802 -1.43048250675 --0.0947971027344 -1.44773858786 --0.0947983153164 -1.46499466896 --0.0947998538612 -1.4822511971 --0.0948017239571 -1.49950784445 --0.0948039554059 -1.51676502824 --0.0948065295814 -1.53402248025 --0.0948094315826 -1.55128061771 --0.0948110055179 -1.57050466538 --0.0948094967752 -1.5897270441 --0.0948065780102 -1.60698500276 --0.0948040038348 -1.62424266339 --0.0948017761112 -1.64149966836 --0.0947998911141 -1.65875649452 --0.0947983488439 -1.67601284385 --0.0947971530258 -1.69326913357 --0.0947962850332 -1.71052503586 --0.0947957597674 -1.72778099775 --0.0947955772283 -1.74503672123 --0.0947957392783 -1.76229262352 --0.0947962477802 -1.7795483768 --0.0947971027344 -1.7968044579 --0.0947983153164 -1.81406053901 --0.0947998538612 -1.83131703734 --0.0948017239571 -1.84857368469 --0.0948039554059 -1.86583086848 --0.0948065295814 -1.88308829069 --0.0948094315826 -1.90034642815 --0.0948110055179 -1.91957053542 --0.0948094967752 -1.93879294396 --0.0948065780102 -1.95605087281 --0.0948040038348 -1.97330850363 --0.0948017761112 -1.9905655086 --0.0947998743504 -2.00782233477 --0.0947983320802 -2.02507865429 --0.0947971530258 -2.04233497381 --0.0947962850332 -2.0595908761 --0.0947957597674 -2.07684677839 --0.0947955772283 -2.09410250187 --0.0947957392783 -2.11135840416 --0.0947962477802 -2.12861418724 --0.0947971027344 -2.14587032795 --0.0947983153164 -2.16312640905 --0.0947998538612 -2.18038290739 --0.0948017239571 -2.19763952494 --0.0948039554059 -2.21489667893 --0.0948065295814 -2.23215419054 --0.0948094315826 -2.2494122982 --0.0948110055179 -2.26863634586 --0.0948094967752 -2.2878587842 --0.0948065780102 -2.30511671305 --0.0948040038348 -2.32237434387 --0.0948017761112 -2.33963137865 --0.0947998911141 -2.35688823461 --0.0947983488439 -2.37414461374 --0.0947971530258 -2.39140087366 --0.0947962850332 -2.40865671635 --0.0947957430034 -2.42591273785 --0.0947955604643 -2.44316846132 --0.0947957392783 -2.46042430401 --0.0947962477802 -2.47768008709 --0.0947971027344 -2.4949361682 --0.0947983153164 -2.5121922493 --0.0947998538612 -2.52944874763 --0.0948017239571 -2.54670536518 --0.0948039554059 -2.56396257877 --0.0948065295814 -2.58122003079 --0.0948094315826 -2.59847813845 --0.0948110055179 -2.61770224571 --0.0948094967752 -2.63692468405 --0.0948065780102 -2.6541826129 --0.0948040038348 -2.67144018412 --0.0948017761112 -2.68869715929 --0.0947998911141 -2.70595401525 --0.0947983488439 -2.72321039438 --0.0947971530258 -2.7404666543 --0.0947962850332 -2.75772255659 --0.0947957430034 -2.77497857809 --0.0947955604643 -2.79223424196 --0.0947957392783 -2.80949014425 --0.0947962477802 -2.82674592733 --0.0947971027344 -2.84400194883 --0.0947983153164 -2.86125808954 --0.0947998538612 -2.87851464748 --0.0948017239571 -2.89577126503 --0.0948039554059 -2.91302841902 --0.0948065295814 -2.93028587103 --0.0948094315826 -2.9475440383 --0.0948110055179 -2.96676808596 --0.0948094967752 -2.98599046469 --0.0948065780102 -3.00324839353 --0.0948040038348 -3.02050602436 --0.0948017761112 -3.03776305914 --0.0947998911141 -3.0550199151 --0.0947983488439 -3.07227623463 --0.0947971530258 -3.08953249455 --0.0947962850332 -3.10678839684 --0.0947957430034 -3.12404435873 --0.0947955604643 -3.14130005439 --0.0947957392783 --3.12462931871 --0.0947962477802 --3.10737353563 --0.0947971027344 --3.09011751413 --0.0947983153164 --3.07286137342 --0.0947998538612 --3.05560481548 --0.0948017239571 --3.03834819793 --0.0948039554059 --3.02109104395 --0.0948065295814 --3.00383359194 --0.0948094315826 --2.98657542467 --0.0948110055179 --2.96735137701 --0.0948094967752 --2.94812899828 --0.0948065780102 --2.93087106943 --0.0948040038348 --2.913613379 --0.0948017761112 --2.89635634422 --0.0947998911141 --2.87909954786 --0.0947983488439 --2.86184322834 --0.0947971530258 --2.84458696842 --0.0947962850332 --2.82733106613 --0.0947957430034 --2.81007510424 --0.0947955604643 --2.79281932116 --0.0947957392783 --2.77556341887 --0.0947962477802 --2.75830769539 --0.0947971027344 --2.74105155468 --0.0947983153164 --2.72379547358 --0.0947998538612 --2.70653897524 --0.0948017239571 --2.68928229809 --0.0948039554059 --2.6720251441 --0.0948065295814 --2.65476775169 --0.0948094315826 --2.63750964403 --0.0948110055179 --2.61828559637 --0.0948094967752 --2.59906315804 --0.0948065780102 --2.58180516958 --0.0948040038348 --2.56454753875 --0.0948017761112 --2.54729050398 --0.0947998743504 --2.53003364802 --0.0947983320802 --2.51277732849 --0.0947971530258 --2.49552106857 --0.0947962850332 --2.47826522589 --0.0947957597674 --2.4610093236 --0.0947955772283 --2.44375354052 --0.0947957392783 --2.42649757862 --0.0947962477802 --2.40924179554 --0.0947971027344 --2.39198571444 --0.0947983153164 --2.37472969294 --0.0947998538612 --2.3574731946 --0.0948017239571 --2.34021651745 --0.0948039554059 --2.32295930385 --0.0948065295814 --2.30570185184 --0.0948094315826 --2.28844374418 --0.0948110055179 --2.26921969652 --0.0948094967752 --2.24999731779 --0.0948065780102 --2.23273932934 --0.0948040038348 --2.21548169851 --0.0948017761112 --2.19822472334 --0.0947998743504 --2.18096786738 --0.0947983320802 --2.16371148825 --0.0947971530258 --2.14645522833 --0.0947962850332 --2.12919932604 --0.0947957430034 --2.11194336414 --0.0947955604643 --2.09468770027 --0.0947957392783 --2.07743173838 --0.0947962477802 --2.0601759553 --0.0947971027344 --2.04291993379 --0.0947983153164 --2.02566379309 --0.0947998538612 --2.00840726495 --0.0948017239571 --1.9911506772 --0.0948039554059 --1.97389346361 --0.0948065295814 --1.9566360116 --0.0948094315826 --1.93937790394 --0.0948110055179 --1.92015382647 --0.0948094967752 --1.90093141794 --0.0948065780102 --1.88367348909 --0.0948040038348 --1.86641585827 --0.0948017761112 --1.84915882349 --0.0947998911141 --1.83190196753 --0.0947983488439 --1.814645648 --0.0947971530258 --1.79738938808 --0.0947962850332 --1.78013348579 --0.0947957430034 --1.7628775239 --0.0947955604643 --1.74562180042 --0.0947957392783 --1.72836589813 --0.0947962477802 --1.71111014485 --0.0947971027344 --1.69385406375 --0.0947983153164 --1.67659798265 --0.0947998538612 --1.65934148431 --0.0948017239571 --1.64208480716 --0.0948039554059 --1.62482762337 --0.0948065295814 --1.60757020116 --0.0948094315826 --1.59031206369 --0.0948110055179 --1.57108798623 --0.0948094967752 --1.5518655777 --0.0948065780102 --1.53460764885 --0.0948040038348 --1.51735001803 --0.0948017761112 --1.50009301305 --0.0947998911141 --1.48283618689 --0.0947983488439 --1.46557983756 --0.0947971530258 --1.44832354784 --0.0947962850332 --1.43106761575 --0.0947957597674 --1.41381165385 --0.0947955772283 --1.39655596018 --0.0947957392783 --1.37930005789 --0.0947962477802 --1.36204427481 --0.0947971027344 --1.3447881937 --0.0947983153164 --1.3275321126 --0.0947998538612 --1.31027561426 --0.0948017239571 --1.29301899672 --0.0948039554059 --1.27576178313 --0.0948065295814 --1.25850433111 --0.0948094315826 --1.24124622345 --0.0948110055179 --1.22202214599 --0.0948094967752 --1.20279970765 --0.0948065780102 --1.18554177881 --0.0948040038348 --1.16828414798 --0.0948017761112 --1.1510271132 --0.0947998743504 --1.13377028704 --0.0947983320802 --1.11651396751 --0.0947971530258 --1.0992577076 --0.0947962850332 --1.08200180531 --0.0947957597674 --1.06474584341 --0.0947955772283 --1.04749011993 --0.0947957392783 --1.03023421764 --0.0947962477802 --1.01297846437 --0.0947971027344 --0.995722383262 --0.0947983153164 --0.978466272354 --0.0947998538612 --0.961209729314 --0.0948017239571 --0.943953096866 --0.0948039554059 --0.926695927977 --0.0948065295814 --0.909438461065 --0.0948094315826 --0.892180338502 --0.0948110055179 --0.87295627594 --0.0948094967752 --0.853733867407 --0.0948065780102 --0.836475938559 --0.0948040038348 --0.819218307734 --0.0948017761112 --0.801961287856 --0.0947998911141 --0.784704461694 --0.0947983488439 --0.767448112369 --0.0947971530258 --0.750191807747 --0.0947962850332 --0.732935920358 --0.0947957430034 --0.715679958463 --0.0947955604643 --0.698424234986 --0.0947957392783 --0.681168347597 --0.0947962477802 --0.663912594318 --0.0947971027344 --0.646656528115 --0.0947983153164 --0.62940043211 --0.0947998538612 --0.61214388907 --0.0948017239571 --0.594887241721 --0.0948039554059 --0.577630057931 --0.0948065295814 --0.560372620821 --0.0948094315826 --0.543114498258 --0.0948110055179 --0.523890420794 --0.0948094967752 --0.504668027163 --0.0948065780102 --0.487410083413 --0.0948040038348 --0.470152445137 --0.0948017761112 --0.45289543271 --0.0947998911141 --0.435638599098 --0.0947983488439 --0.418382264674 --0.0947971530258 --0.401125997304 --0.0947962850332 --0.383870102465 --0.0947957430034 --0.366614125669 --0.0947955604643 --0.349358409643 --0.0947957392783 --0.332102514804 --0.0947962477802 --0.314846731722 --0.0947971027344 --0.297590658069 --0.0947983153164 --0.280334576964 --0.0947998538612 --0.263078056276 --0.0948017239571 --0.245821412653 --0.0948039554059 --0.228564213962 --0.0948065295814 --0.211306773126 --0.0948094315826 --0.194048661739 --0.0948110055179 --0.174824599177 --0.0765866730362 --0.155598782003 --0.0765843056142 --0.138340849429 --0.0765822269023 --0.12108322233 --0.0765804238617 --0.103826219216 --0.0765788778663 --0.0865694005042 --0.0765776205808 --0.0693130781874 --0.0765766557306 --0.0520568164066 --0.0765759646893 --0.0348009290174 --0.0765755455941 --0.0175449801609 --0.0765753984451 --0.000289279036223 --0.0765755418688 -0.0169666064903 --0.076575960964 -0.0342223681509 --0.0765766557306 -0.0514784362167 --0.0765776373446 -0.0687345098704 --0.076578874141 -0.0859910119325 --0.0765803884715 -0.103247640654 --0.0765821933746 -0.120504824445 --0.076584270224 -0.137762248516 --0.076586605981 -0.155020352453 --0.0765878800303 -0.174244541675 --0.0765866730362 -0.193467069417 --0.0765843056142 -0.210725001991 --0.0765822269023 -0.227982629091 --0.0765804238617 -0.245239637792 --0.0765788778663 -0.262496456504 --0.0765776205808 -0.279752776027 --0.0765766706317 -0.297009035945 --0.0765759795904 -0.314264923334 --0.0765755455941 -0.331520870328 --0.0765753984451 -0.348776571452 --0.0765755418688 -0.366032451391 --0.076575960964 -0.38328821212 --0.0765766557306 -0.400544293225 --0.0765776205808 -0.417800359428 --0.0765788573772 -0.435056857765 --0.0765803884715 -0.452313482761 --0.0765821933746 -0.469570666552 --0.076584270224 -0.486828111112 --0.076586605981 -0.504086211324 --0.0765878800303 -0.523310378194 --0.0765866730362 -0.542532920838 --0.0765843056142 -0.559790864587 --0.0765822269023 -0.57704846561 --0.0765804238617 -0.594305470586 --0.0765788778663 -0.611562296748 --0.0765776205808 -0.628818616271 --0.0765766557306 -0.646074876189 --0.0765759646893 -0.663330763578 --0.0765755455941 -0.680586710572 --0.0765753984451 -0.697842419147 --0.0765755418688 -0.715098321438 --0.076575960964 -0.732354089618 --0.0765766557306 -0.749610140919 --0.0765776205808 -0.766866207123 --0.0765788573772 -0.78412270546 --0.0765803884715 -0.801379337907 --0.0765821933746 -0.818636536598 --0.076584270224 -0.835893943906 --0.076586605981 -0.853152051568 --0.0765878800303 -0.87237624824 --0.0765866730362 -0.891598775983 --0.0765843056142 -0.908856704831 --0.0765822269023 -0.926114320755 --0.0765804238617 -0.943371325731 --0.0765788778663 -0.960628151894 --0.0765776205808 -0.977884471417 --0.0765766706317 -0.995140746235 --0.0765759795904 -1.01239666343 --0.0765755455941 -1.02965256572 --0.0765753984451 -1.04690822959 --0.0765755418688 -1.06416413188 --0.076575960964 -1.08141991496 --0.0765766557306 -1.09867596626 --0.0765776205808 -1.11593204737 --0.0765788573772 -1.13318860531 --0.0765803884715 -1.15044519305 --0.0765821933746 -1.16770234704 --0.076584270224 -1.18495979905 --0.076586605981 -1.20221790671 --0.0765878800303 -1.22144210339 --0.0765866730362 -1.24066463113 --0.0765843056142 -1.25792255998 --0.0765822269023 -1.2751801908 --0.0765804238617 -1.29243719578 --0.0765788778663 -1.30969399214 --0.0765776205808 -1.32695031166 --0.0765766557306 -1.34420657158 --0.0765759646893 -1.36146244407 --0.0765755455941 -1.37871840596 --0.0765753984451 -1.39597412944 --0.0765755418688 -1.41323000193 --0.076575960964 -1.4304857552 --0.0765766557306 -1.44774183631 --0.0765776205808 -1.46499791742 --0.0765788573772 -1.48225441575 --0.0765803884715 -1.4995110333 --0.0765821933746 -1.51676821709 --0.076584270224 -1.53402563929 --0.076586605981 -1.55128374696 --0.0765878800303 -1.57050794363 --0.0765866730362 -1.58973047137 --0.0765843056142 -1.60698840022 --0.0765822269023 -1.62424603104 --0.0765804238617 -1.64150303602 --0.0765788778663 -1.65875986219 --0.0765776205808 -1.67601618171 --0.0765766557306 -1.69327244163 --0.0765759646893 -1.71052834392 --0.0765755455941 -1.72778427601 --0.0765753984451 -1.74503996968 --0.0765755418688 -1.76229587197 --0.076575960964 -1.77955162525 --0.0765766557306 -1.79680770636 --0.0765776205808 -1.81406378746 --0.0765788573772 -1.8313202858 --0.0765803884715 -1.84857687354 --0.0765821933746 -1.86583402753 --0.076584270224 -1.88309147954 --0.076586605981 -1.900349617 --0.0765878800303 -1.91957384348 --0.0765866730362 -1.93879637122 --0.0765843056142 -1.95605430007 --0.0765822269023 -1.97331190109 --0.0765804238617 -1.99056887627 --0.0765788778663 -2.00782573223 --0.0765776205808 -2.02508205175 --0.0765766706317 -2.04233831167 --0.0765759795904 -2.05959421396 --0.0765755455941 -2.07685011625 --0.0765753984451 -2.09410578012 --0.0765755418688 -2.11136168241 --0.076575960964 -2.1286174655 --0.0765766557306 -2.1458735466 --0.0765776205808 -2.16312962771 --0.0765788573772 -2.18038612604 --0.0765803884715 -2.19764274359 --0.0765821933746 -2.21489989758 --0.076584270224 -2.23215734959 --0.076586605981 -2.24941545725 --0.0765878800303 -2.26863968372 --0.0765866730362 -2.28786224127 --0.0765843056142 -2.30512017012 --0.0765822269023 -2.32237780094 --0.0765804238617 -2.33963477611 --0.0765788778663 -2.35689157247 --0.0765776205808 -2.374147892 --0.0765766557306 -2.39140415192 --0.0765759646893 -2.4086599946 --0.0765755455941 -2.4259159565 --0.0765753984451 -2.44317167997 --0.0765755418688 -2.46042758226 --0.076575960964 -2.47768336535 --0.0765766557306 -2.49493938685 --0.0765776205808 -2.51219540834 --0.0765788573772 -2.52945190668 --0.0765803884715 -2.54670852423 --0.0765821933746 -2.56396573782 --0.076584270224 -2.58122318983 --0.076586605981 -2.59848129749 --0.0765878800303 -2.61770552397 --0.0765866730362 -2.63692802191 --0.0765843056142 -2.65418595076 --0.0765822269023 -2.67144358158 --0.0765804238617 -2.68870055675 --0.0765788778663 -2.70595735311 --0.0765776205808 -2.72321367264 --0.0765766557306 -2.74046993256 --0.0765759646893 -2.75772583485 --0.0765755455941 -2.77498185635 --0.0765753984451 -2.79223757982 --0.0765755418688 -2.80949342251 --0.076575960964 -2.82674914599 --0.0765766557306 -2.84400522709 --0.0765776205808 -2.8612613678 --0.0765788573772 -2.87851786613 --0.0765803884715 -2.89577448368 --0.0765821933746 -2.91303163767 --0.076584270224 -2.93028903007 --0.076586605981 -2.94754719734 --0.0765878800303 -2.96677136421 --0.0765866730362 -2.98599386215 --0.0765843056142 -3.003251791 --0.0765822269023 -3.02050942183 --0.0765804238617 -3.0377664566 --0.0765788778663 -3.05502331257 --0.0765776205808 -3.07227963209 --0.0765766557306 -3.08953589201 --0.0765759646893 -3.1067917943 --0.0765755455941 -3.12404769659 --0.0765753984451 -3.14130339225 --0.0765755418688 --3.12462604046 --0.076575960964 --3.10737031698 --0.0765766557306 --3.09011423588 --0.0765776373446 --3.07285809517 --0.076578874141 --3.05560159683 --0.0765803884715 --3.03834497929 --0.0765821933746 --3.0210878253 --0.076584270224 --3.00383043289 --0.076586605981 --2.98657226562 --0.0765878800303 --2.96734809876 --0.0765866730362 --2.94812560082 --0.0765843056142 --2.93086767197 --0.0765822269023 --2.91361004114 --0.0765804238617 --2.89635300636 --0.0765788778663 --2.8790961504 --0.0765776205808 --2.86183983088 --0.0765766706317 --2.84458357096 --0.0765759795904 --2.82732766867 --0.0765755455941 --2.81007176638 --0.0765753984451 --2.7928160429 --0.0765755418688 --2.77556014061 --0.076575960964 --2.75830441713 --0.0765766557306 --2.74104833603 --0.0765776205808 --2.72379225492 --0.0765788573772 --2.70653575658 --0.0765803884715 --2.68927913904 --0.0765821933746 --2.67202198505 --0.076584270224 --2.65476453304 --0.076586605981 --2.63750642538 --0.0765878800303 --2.61828231811 --0.0765866730362 --2.59905976057 --0.0765843056142 --2.58180177212 --0.0765822269023 --2.5645442009 --0.0765804238617 --2.54728716612 --0.0765788778663 --2.53003031016 --0.0765776205808 --2.51277399063 --0.0765766557306 --2.49551773071 --0.0765759646893 --2.47826188803 --0.0765755455941 --2.46100598574 --0.0765753984451 --2.44375026226 --0.0765755418688 --2.42649435997 --0.076575960964 --2.40923857689 --0.0765766557306 --2.39198249578 --0.0765776205808 --2.37472647428 --0.0765788573772 --2.35746997595 --0.0765803884715 --2.3402133584 --0.0765821933746 --2.32295614481 --0.076584270224 --2.3056986928 --0.076586605981 --2.28844064474 --0.0765878800303 --2.26921641827 --0.0765866730362 --2.24999386072 --0.0765843056142 --2.23273593187 --0.0765822269023 --2.21547830105 --0.0765804238617 --2.19822132588 --0.0765788778663 --2.18096452952 --0.0765776205808 --2.16370820999 --0.0765766706317 --2.14645195007 --0.0765759795904 --2.12919604778 --0.0765755455941 --2.11194008589 --0.0765753984451 --2.09468442202 --0.0765755418688 --2.07742851973 --0.076575960964 --2.06017273664 --0.0765766557306 --2.04291665554 --0.0765776205808 --2.02566051483 --0.0765788573772 --2.0084040463 --0.0765803884715 --1.99114748835 --0.0765821933746 --1.97389027476 --0.076584270224 --1.95663282275 --0.076586605981 --1.93937474489 --0.0765878800303 --1.92015057802 --0.0765866730362 --1.90092805028 --0.0765843056142 --1.88367012143 --0.0765822269023 --1.8664124906 --0.0765804238617 --1.84915548563 --0.0765788778663 --1.83189865947 --0.0765776205808 --1.81464233995 --0.0765766557306 --1.79738608002 --0.0765759646893 --1.78013017773 --0.0765755455941 --1.76287421584 --0.0765753984451 --1.74561852217 --0.0765755418688 --1.72836264968 --0.076575960964 --1.7111068964 --0.0765766557306 --1.69385081529 --0.0765776205808 --1.67659473419 --0.0765788573772 --1.65933823586 --0.0765803884715 --1.6420815885 --0.0765821933746 --1.62482443452 --0.076584270224 --1.60756701231 --0.076586605981 --1.59030887484 --0.0765878800303 --1.57108467817 --0.0765866730362 --1.55186215043 --0.0765843056142 --1.53460422158 --0.0765822269023 --1.51734662056 --0.0765804238617 --1.50008964539 --0.0765788778663 --1.48283281922 --0.0765776205808 --1.4655764699 --0.0765766557306 --1.44832018018 --0.0765759646893 --1.43106427789 --0.0765755455941 --1.41380837559 --0.0765753984451 --1.39655271173 --0.0765755418688 --1.37929680943 --0.076575960964 --1.36204102636 --0.0765766557306 --1.34478494525 --0.0765776205808 --1.32752889395 --0.0765788573772 --1.31027242541 --0.0765803884715 --1.29301580787 --0.0765821933746 --1.27575859428 --0.076584270224 --1.25850114226 --0.076586605981 --1.2412430346 --0.0765878800303 --1.22201886773 --0.0765866730362 --1.20279633999 --0.0765843056142 --1.18553841114 --0.0765822269023 --1.16828078032 --0.0765804238617 --1.15102374554 --0.0765788778663 --1.13376694918 --0.0765776205808 --1.11651062965 --0.0765766706317 --1.09925436974 --0.0765759795904 --1.08199849725 --0.0765755455941 --1.06474253535 --0.0765753984451 --1.04748681188 --0.0765755418688 --1.03023093939 --0.076575960964 --1.01297521591 --0.0765766557306 --0.995719149711 --0.0765776205808 --0.978463068604 --0.0765788573772 --0.961206540465 --0.0765803884715 --0.943949908018 --0.0765821933746 --0.926692739129 --0.076584270224 --0.909435287118 --0.076586605981 --0.892177179456 --0.0765878800303 --0.872952997685 --0.0765866730362 --0.853730484843 --0.0765843056142 --0.836472555995 --0.0765822269023 --0.819214910269 --0.0765804238617 --0.801957920194 --0.0765788778663 --0.784701108933 --0.0765776205808 --0.767444774509 --0.0765766557306 --0.750188499689 --0.0765759646893 --0.7329326123 --0.0765755455941 --0.715676680207 --0.0765753984451 --0.698420986533 --0.0765755418688 --0.681165084243 --0.076575960964 --0.663909316063 --0.0765766557306 --0.646653264761 --0.0765776205808 --0.629397198558 --0.0765788573772 --0.61214068532 --0.0765803884715 --0.594884067774 --0.0765821933746 --0.577626898885 --0.076584270224 --0.560369446874 --0.076586605981 --0.543111324311 --0.0765878800303 --0.523887142539 --0.0765866730362 --0.504664614797 --0.0765843056142 --0.487406678498 --0.0765822269023 --0.470149077475 --0.0765804238617 --0.452892079949 --0.0765788778663 --0.435635246336 --0.0765776205808 --0.418378919363 --0.0765766557306 --0.401122659444 --0.0765759646893 --0.383866772056 --0.0765755455941 --0.366610825062 --0.0765753984451 --0.349355131388 --0.0765755418688 --0.332099243999 --0.076575960964 --0.314843468368 --0.0765766557306 --0.297587402165 --0.0765776205808 --0.280331335962 --0.0765788573772 --0.263074830175 --0.0765803884715 --0.245818208903 --0.0765821933746 --0.228561028838 --0.076584270224 --0.211303599179 --0.076586605981 --0.194045498968 --0.0765878800303 --0.174821309745 --0.0580773456022 --0.155594792217 --0.0580755583942 --0.13833687827 --0.0580739928409 --0.121079271659 --0.0580726172775 --0.103822279722 --0.058071446605 --0.0865654759109 --0.0580704808235 --0.0693091703579 --0.0580697376281 --0.0520529244095 --0.0580692170188 --0.0347970542498 --0.0580689013004 --0.0175411212258 --0.0580687886104 --0.000285435467957 --0.0580688985065 -0.0169704342261 --0.0580692319199 -0.0342261800543 --0.0580697543919 -0.0514822322875 --0.0580704817548 -0.0687382891774 --0.0580714130774 -0.085994778201 --0.0580725669861 -0.103251390159 --0.0580739434809 -0.120508559048 --0.0580755248666 -0.137765970081 --0.0580772962421 -0.155024055392 --0.0580782620236 -0.174248386175 --0.0580773456022 -0.193471055478 --0.0580755583942 -0.21072897315 --0.0580739928409 -0.227986585349 --0.0580726172775 -0.245243575424 --0.058071446605 -0.262500375509 --0.0580704808235 -0.279756687582 --0.0580697525293 -0.297012925148 --0.05806923192 -0.314268790185 --0.0580689013004 -0.331524737179 --0.0580687886104 -0.348780423403 --0.0580688985065 -0.36603628844 --0.0580692319199 -0.383292026817 --0.0580697543919 -0.40054808557 --0.058070464991 -0.417804151773 --0.0580713963136 -0.435060627758 --0.0580725669861 -0.452317222953 --0.0580739434809 -0.469574391842 --0.0580755248666 -0.486831814051 --0.0580772962421 -0.504089906812 --0.0580782620236 -0.523314237594 --0.0580773456022 -0.542536899447 --0.0580755583942 -0.559794813395 --0.0580739928409 -0.577052414417 --0.0580726172775 -0.594309419394 --0.058071446605 -0.611566230654 --0.0580704808235 -0.628822520375 --0.0580697376281 -0.646078765392 --0.0580692170188 -0.66333463788 --0.0580689013004 -0.680590569973 --0.0580687886104 -0.697846248746 --0.0580688985065 -0.715102136135 --0.0580692319199 -0.732357904315 --0.0580697543919 -0.749613955617 --0.058070464991 -0.766870006919 --0.0580713963136 -0.784126475453 --0.0580725669861 -0.801383078098 --0.0580739434809 -0.818640261889 --0.0580755248666 -0.835897669196 --0.0580772962421 -0.853155747056 --0.0580782620236 -0.872380077839 --0.0580773456022 -0.891602754593 --0.0580755583942 -0.908860683441 --0.0580739928409 -0.926118299365 --0.0580726172775 -0.943375274539 --0.058071446605 -0.960632055998 --0.0580704808235 -0.977888375521 --0.0580697525293 -0.99514465034 --0.05806923192 -1.01240053773 --0.0580689013004 -1.02965644002 --0.0580687886104 -1.04691210389 --0.0580688985065 -1.06416797638 --0.0580692319199 -1.08142372966 --0.0580697543919 -1.09867978096 --0.058070464991 -1.11593583226 --0.0580713963136 -1.1331923604 --0.0580725669861 -1.15044894814 --0.0580739434809 -1.16770610213 --0.0580755248666 -1.18496355414 --0.0580772962421 -1.202221632 --0.0580782620236 -1.22144597769 --0.0580773456022 -1.24066862464 --0.0580755583942 -1.25792649389 --0.0580739928409 -1.27518412471 --0.0580726172775 -1.29244112969 --0.058071446605 -1.30969792605 --0.0580704808235 -1.32695424557 --0.0580697376281 -1.34421047568 --0.0580692170188 -1.36146631837 --0.0580689013004 -1.37872228026 --0.0580687886104 -1.39597797394 --0.0580688985065 -1.41323381663 --0.0580692319199 -1.4304895699 --0.0580697543919 -1.44774565101 --0.058070464991 -1.46500170231 --0.0580713963136 -1.48225817085 --0.0580725669861 -1.49951478839 --0.0580739434809 -1.51677194238 --0.0580755248666 -1.53402933478 --0.0580772962421 -1.55128744245 --0.0580782620236 -1.57051178813 --0.0580773456022 -1.58973446488 --0.0580755583942 -1.60699239373 --0.0580739928409 -1.62424999475 --0.0580726172775 -1.64150696993 --0.058071446605 -1.65876376629 --0.0580704808235 -1.67602005601 --0.0580697376281 -1.69327631592 --0.0580692170188 -1.71053221822 --0.0580689013004 -1.72778812051 --0.0580687886104 -1.74504378438 --0.0580688985065 -1.76229968667 --0.0580692319199 -1.77955543995 --0.0580697543919 -1.79681149125 --0.058070464991 -1.81406757235 --0.0580713963136 -1.83132407069 --0.0580725669861 -1.84858065843 --0.0580739434809 -1.86583781242 --0.0580755248666 -1.88309523463 --0.0580772962421 -1.90035331249 --0.0580782620236 -1.91957765817 --0.0580773456022 -1.93880033493 --0.0580755583942 -1.95605823398 --0.0580739928409 -1.973315835 --0.0580726172775 -1.99057281017 --0.058071446605 -2.00782963634 --0.0580704808235 -2.02508598566 --0.0580697525293 -2.04234224558 --0.05806923192 -2.05959808826 --0.0580689013004 -2.07685399055 --0.0580687886104 -2.09410965442 --0.0580688985065 -2.11136555672 --0.0580692319199 -2.1286213398 --0.0580697543919 -2.1458773613 --0.058070464991 -2.1631333828 --0.0580713963136 -2.18038988113 --0.0580725669861 -2.19764649868 --0.0580739434809 -2.21490365267 --0.0580755248666 -2.23216110468 --0.0580772962421 -2.24941915274 --0.0580782620236 -2.26864349842 --0.0580773456022 -2.28786617518 --0.0580755583942 -2.30512404442 --0.0580739928409 -2.32238173485 --0.0580726172775 -2.33963871002 --0.058071446605 -2.35689544678 --0.0580704808235 -2.3741517663 --0.0580697376281 -2.39140802622 --0.0580692170188 -2.4086638689 --0.0580689013004 -2.42591977119 --0.0580687886104 -2.44317549467 --0.0580688985065 -2.46043139696 --0.0580692319199 -2.47768712044 --0.0580697543919 -2.49494314194 --0.058070464991 -2.51219916344 --0.0580713963136 -2.52945566178 --0.0580725669861 -2.54671227932 --0.0580739434809 -2.56396943331 --0.0580755248666 -2.58122688532 --0.0580772962421 -2.59848505258 --0.0580782620236 -2.61770939827 --0.0580773456022 -2.63693201542 --0.0580755583942 -2.65418994427 --0.0580739928409 -2.67144757509 --0.0580726172775 -2.68870455027 --0.058071446605 -2.70596134662 --0.0580704808235 -2.72321760654 --0.0580697376281 -2.74047380686 --0.0580692170188 -2.75772970915 --0.0580689013004 -2.77498567104 --0.0580687886104 -2.79224139452 --0.0580688985065 -2.8094972372 --0.0580692319199 -2.82675296068 --0.0580697543919 -2.84400904179 --0.058070464991 -2.86126512289 --0.0580713963136 -2.87852162123 --0.0580725669861 -2.89577823878 --0.0580739434809 -2.91303539276 --0.0580755248666 -2.93029272556 --0.0580772962421 -2.94755083322 --0.0580782620236 -2.96677517891 --0.0580773456022 -2.98599785566 --0.0580755583942 -3.00325578451 --0.0580739928409 -3.02051335573 --0.0580726172775 -3.0377703309 --0.058071446605 -3.05502718687 --0.0580704808235 -3.07228350639 --0.0580697376281 -3.08953976631 --0.0580692170188 -3.1067956686 --0.0580689013004 -3.12405157089 --0.0580687886104 -3.14130726655 --0.0580688985065 --3.12462222576 --0.0580692319199 --3.10736650229 --0.0580697543919 --3.09011042118 --0.0580704817548 --3.07285434008 --0.0580714130774 --3.05559784174 --0.0580725669861 --3.03834122419 --0.0580739434809 --3.02108407021 --0.0580755248666 --3.00382673741 --0.0580772962421 --2.98656862974 --0.0580782620236 --2.96734428406 --0.0580773456022 --2.94812160731 --0.0580755583942 --2.93086367846 --0.0580739928409 --2.91360610723 --0.0580726172775 --2.89634913206 --0.058071446605 --2.8790922761 --0.0580704808235 --2.86183595658 --0.0580697525293 --2.84457969666 --0.05806923192 --2.82732379437 --0.0580689013004 --2.81006789208 --0.0580687886104 --2.7928122282 --0.0580688985065 --2.77555632591 --0.0580692319199 --2.75830054283 --0.0580697543919 --2.74104452133 --0.058070464991 --2.72378849983 --0.0580713963136 --2.7065320611 --0.0580725669861 --2.68927544355 --0.0580739434809 --2.67201822996 --0.0580755248666 --2.65476077795 --0.0580772962421 --2.63750272989 --0.0580782620236 --2.61827844381 --0.0580773456022 --2.59905576706 --0.0580755583942 --2.58179789782 --0.0580739928409 --2.56454026699 --0.0580726172775 --2.54728317261 --0.058071446605 --2.53002637625 --0.0580704808235 --2.51277011633 --0.0580697376281 --2.49551385641 --0.0580692170188 --2.47825801373 --0.0580689013004 --2.46100211144 --0.0580687886104 --2.44374644756 --0.0580688985065 --2.42649054527 --0.0580692319199 --2.40923476219 --0.0580697543919 --2.39197874069 --0.058070464991 --2.37472271919 --0.0580713963136 --2.35746622085 --0.0580725669861 --2.34020960331 --0.0580739434809 --2.32295244932 --0.0580755248666 --2.30569499731 --0.0580772962421 --2.28843688965 --0.0580782620236 --2.26921254396 --0.0580773456022 --2.24998986721 --0.0580755583942 --2.23273193836 --0.0580739928409 --2.21547430754 --0.0580726172775 --2.19821733237 --0.058071446605 --2.18096059561 --0.0580704808235 --2.16370433569 --0.0580697525293 --2.14644807577 --0.05806923192 --2.12919217348 --0.0580689013004 --2.11193621159 --0.0580687886104 --2.09468054771 --0.0580688985065 --2.07742470503 --0.0580692319199 --2.06016898155 --0.0580697543919 --2.04291290045 --0.058070464991 --2.02565675974 --0.0580713963136 --2.00840029121 --0.0580725669861 --1.99114373326 --0.0580739434809 --1.97388654947 --0.0580755248666 --1.95662912727 --0.0580772962421 --1.93937104941 --0.0580782620236 --1.92014673352 --0.0580773456022 --1.90092405677 --0.0580755583942 --1.88366612792 --0.0580739928409 --1.86640852689 --0.0580726172775 --1.84915155172 --0.058071446605 --1.83189475537 --0.0580704808235 --1.81463843584 --0.0580697376281 --1.79738217592 --0.0580692170188 --1.78012630343 --0.0580689013004 --1.76287037134 --0.0580687886104 --1.74561470747 --0.0580688985065 --1.72835883498 --0.0580692319199 --1.7111030817 --0.0580697543919 --1.6938470304 --0.058070464991 --1.6765909493 --0.0580713963136 --1.65933445096 --0.0580725669861 --1.64207783341 --0.0580739434809 --1.62482067942 --0.0580755248666 --1.60756328702 --0.0580772962421 --1.59030520916 --0.0580782620236 --1.57108086347 --0.0580773456022 --1.55185818672 --0.0580755583942 --1.53460028768 --0.0580739928409 --1.51734268665 --0.0580726172775 --1.50008571148 --0.058071446605 --1.48282888532 --0.0580704808235 --1.4655725658 --0.0580697376281 --1.44831630587 --0.0580692170188 --1.43106040359 --0.0580689013004 --1.4138045013 --0.0580687886104 --1.39654883743 --0.0580688985065 --1.37929296494 --0.0580692319199 --1.36203721166 --0.0580697543919 --1.34478113055 --0.058070464991 --1.32752510905 --0.0580713963136 --1.31026867032 --0.0580725669861 --1.29301205277 --0.0580739434809 --1.27575486898 --0.0580755248666 --1.25849744677 --0.0580772962421 --1.24123933911 --0.0580782620236 --1.22201499343 --0.0580773456022 --1.20279234648 --0.0580755583942 --1.18553444744 --0.0580739928409 --1.16827681661 --0.0580726172775 --1.15101981163 --0.058071446605 --1.13376301527 --0.0580704808235 --1.11650669575 --0.0580697525293 --1.09925046563 --0.05806923192 --1.08199462294 --0.0580689013004 --1.06473869085 --0.0580687886104 --1.04748299718 --0.0580688985065 --1.03022712469 --0.0580692319199 --1.01297137141 --0.0580697543919 --0.995715305209 --0.058070464991 --0.978459268808 --0.0580713963136 --0.961202785373 --0.0580725669861 --0.943946167826 --0.0580739434809 --0.926688998937 --0.0580755248666 --0.909431576728 --0.0580772962421 --0.892173498869 --0.0580782620236 --0.872949168086 --0.0580773456022 --0.853726506233 --0.0580755583942 --0.836468592286 --0.0580739928409 --0.819210961461 --0.0580726172775 --0.801953986287 --0.058071446605 --0.784697175026 --0.0580704808235 --0.767440855503 --0.0580697376281 --0.750184610486 --0.0580692170188 --0.732928737998 --0.0580689013004 --0.715672820806 --0.0580687886104 --0.698417142034 --0.0580688985065 --0.681161269546 --0.0580692319199 --0.663905516267 --0.0580697543919 --0.646649464965 --0.058070464991 --0.629393413663 --0.0580713963136 --0.612136930227 --0.0580725669861 --0.594880327582 --0.0580739434809 --0.577623173594 --0.0580755248666 --0.560365736485 --0.0580772962421 --0.543107628822 --0.0580782620236 --0.523883312941 --0.0580773456022 --0.504660636187 --0.0580755583942 --0.487402714789 --0.0580739928409 --0.470145128667 --0.0580726172775 --0.452888146043 --0.058071446605 --0.435631327331 --0.0580704808235 --0.418375015259 --0.0580697376281 --0.401118770242 --0.0580692170188 --0.383862890303 --0.0580689013004 --0.36660695821 --0.0580687886104 --0.349351286888 --0.0580688985065 --0.332095421851 --0.0580692319199 --0.314839668572 --0.0580697543919 --0.29758361727 --0.058070464991 --0.280327558517 --0.0580713963136 --0.263071067631 --0.0580725669861 --0.245814464987 --0.0580739434809 --0.228557296097 --0.0580755248666 --0.211299881339 --0.0580772962421 --0.194041796029 --0.0580782620236 --0.174817465246 --0.0395497288555 --0.155590806156 --0.0395485167392 --0.13833290711 --0.0395474452525 --0.121075313538 --0.0395464980975 --0.103818336502 --0.039545705542 --0.0865615531802 --0.0395450526848 --0.069305264391 --0.0395445558242 --0.0520490324124 --0.0395441986621 --0.0347931785509 --0.0395439658314 --0.0175372611266 --0.0395439034328 --0.00028159096837 --0.0395439807326 -0.016974263126 --0.0395441986621 -0.0342299924232 --0.0395445553586 -0.051486030221 --0.0395450368524 -0.0687420703471 --0.039545673877 -0.0859985426068 --0.0395464664325 -0.103255139664 --0.0395473991521 -0.120512291789 --0.0395484860055 -0.137769691646 --0.0395496971906 -0.155027762056 --0.0395503500477 -0.174252230674 --0.0395497288555 -0.193475041538 --0.0395485167392 -0.21073294431 --0.0395474452525 -0.227990537882 --0.0395464980975 -0.24524750933 --0.039545705542 -0.262504301965 --0.0395450526848 -0.279760599137 --0.0395445558242 -0.297016814351 --0.0395441986621 -0.314272657037 --0.0395439658314 -0.331528581679 --0.0395439034328 -0.348784253001 --0.0395439807326 -0.366040110588 --0.0395441986621 -0.383295834064 --0.0395445553586 -0.400551877916 --0.0395450368524 -0.417807936668 --0.039545673877 -0.435064397752 --0.0395464664325 -0.452320985496 --0.0395473991521 -0.469578132034 --0.0395484860055 -0.48683552444 --0.0395496971906 -0.50409360975 --0.0395503500477 -0.523318096995 --0.0395497288555 -0.542540878058 --0.0395485167392 -0.559798762202 --0.0395474452525 -0.577056378126 --0.0395465134643 -0.594313368201 --0.0395457209088 -0.61157014966 --0.0395450526848 -0.628826439381 --0.0395445558242 -0.646082669497 --0.0395441986621 -0.663338512182 --0.0395439658314 -0.680594429374 --0.0395439034328 -0.697850078344 --0.0395439807326 -0.715105950832 --0.0395441986621 -0.732361719012 --0.0395445553586 -0.749617755413 --0.0395450368524 -0.766873776913 --0.039545673877 -0.784130215645 --0.0395464664325 -0.801386803388 --0.0395473991521 -0.818643972278 --0.0395484860055 -0.835901379585 --0.0395496971906 -0.853159442544 --0.0395503500477 -0.872383907437 --0.0395497288555 -0.891606733203 --0.0395485167392 -0.908864662051 --0.0395474452525 -0.926122263074 --0.0395465134643 -0.943379208445 --0.0395457209088 -0.960635989904 --0.0395450526848 -0.977892294526 --0.0395445558242 -0.995148539545 --0.0395441986621 -1.01240441203 --0.0395439658314 -1.02966031432 --0.0395439034328 -1.04691597819 --0.0395439807326 -1.06417182088 --0.0395441986621 -1.08142754435 --0.0395445553586 -1.09868359566 --0.0395450368524 -1.11593961716 --0.039545673877 -1.13319608569 --0.0395464664325 -1.15045267343 --0.0395473991521 -1.16770982742 --0.0395484860055 -1.18496724963 --0.0395496971906 -1.20222529769 --0.0395503500477 -1.22144979239 --0.0395497288555 -1.24067261815 --0.0395485167392 -1.25793048739 --0.0395474452525 -1.27518808842 --0.0395465134643 -1.29244506359 --0.0395457209088 -1.30970185995 --0.0395450526848 -1.32695814967 --0.0395445558242 -1.34421434999 --0.0395441986621 -1.36147019267 --0.0395439658314 -1.37872612477 --0.0395439034328 -1.39598178864 --0.0395439807326 -1.41323763132 --0.0395441986621 -1.4304933846 --0.0395445553586 -1.44774946571 --0.0395450368524 -1.46500548721 --0.039545673877 -1.48226192594 --0.0395464664325 -1.49951854348 --0.0395473991521 -1.51677569747 --0.0395484860055 -1.53403308988 --0.0395496971906 -1.55129116774 --0.0395503500477 -1.57051563263 --0.0395497288555 -1.5897384584 --0.0395485167392 -1.60699638725 --0.0395474452525 -1.62425395847 --0.0395465134643 -1.64151090384 --0.0395457209088 -1.6587677002 --0.0395450526848 -1.67602398992 --0.0395445558242 -1.69328022003 --0.0395441986621 -1.71053609252 --0.0395439658314 -1.72779199481 --0.0395439034328 -1.74504765868 --0.0395439807326 -1.76230353117 --0.0395441986621 -1.77955925465 --0.0395445553586 -1.79681527614 --0.0395450368524 -1.81407132745 --0.039545673877 -1.83132782579 --0.0395464664325 -1.84858441353 --0.0395473991521 -1.86584153771 --0.0395484860055 -1.88309895992 --0.0395496971906 -1.90035703778 --0.0395503500477 -1.91958150267 --0.0395497288555 -1.93880429864 --0.0395485167392 -1.95606216788 --0.0395474452525 -1.97331976891 --0.0395464980975 -1.99057674408 --0.039545705542 -2.00783354044 --0.0395450526848 -2.02508985996 --0.0395445558242 -2.04234611988 --0.0395441986621 -2.05960196256 --0.0395439658314 -2.07685786486 --0.0395439034328 -2.09411352873 --0.0395439807326 -2.11136943102 --0.0395441986621 -2.1286251545 --0.0395445553586 -2.14588111639 --0.0395450368524 -2.16313713789 --0.039545673877 -2.18039363623 --0.0395464664325 -2.19765025377 --0.0395473991521 -2.21490734816 --0.0395484860055 -2.23216480017 --0.0395496971906 -2.24942290783 --0.0395503500477 -2.26864731312 --0.0395497288555 -2.28787010908 --0.0395485167392 -2.30512797833 --0.0395474452525 -2.32238560915 --0.0395464980975 -2.33964258433 --0.039545705542 -2.35689938069 --0.0395450526848 -2.37415570021 --0.0395445558242 -2.39141190052 --0.0395441986621 -2.40866774321 --0.0395439658314 -2.4259236455 --0.0395439034328 -2.44317936897 --0.0395439807326 -2.46043527126 --0.0395441986621 -2.47769093513 --0.0395445553586 -2.49494695663 --0.0395450368524 -2.51220303774 --0.039545673877 -2.52945947647 --0.0395464664325 -2.54671603441 --0.0395473991521 -2.5639731884 --0.0395484860055 -2.58123064041 --0.0395496971906 -2.59848874807 --0.0395503500477 -2.61771321297 --0.0395497288555 -2.63693600893 --0.0395485167392 -2.65419393778 --0.0395474452525 -2.671451509 --0.0395464980975 -2.68870848417 --0.039545705542 -2.70596534014 --0.0395450526848 -2.72322160006 --0.0395445558242 -2.74047774076 --0.0395441986621 -2.75773358345 --0.0395439658314 -2.77498948574 --0.0395439034328 -2.79224514961 --0.0395439807326 -2.8095010519 --0.0395441986621 -2.82675683498 --0.0395445553586 -2.84401285649 --0.0395450368524 -2.86126887799 --0.039545673877 -2.87852537632 --0.0395464664325 -2.89578199387 --0.0395473991521 -2.91303914785 --0.0395484860055 -2.93029648066 --0.0395496971906 -2.94755452871 --0.0395503500477 -2.96677899361 --0.0395497288555 -2.98600178957 --0.0395485167392 -3.00325971842 --0.0395474452525 -3.02051734924 --0.0395464980975 -3.03777432441 --0.039545705542 -3.05503112077 --0.0395450526848 -3.0722873807 --0.0395445558242 -3.08954364061 --0.0395441986621 -3.1067995429 --0.0395439658314 -3.12405544519 --0.0395439034328 -3.14131108125 --0.0395439807326 --3.12461841106 --0.0395441986621 --3.10736262798 --0.0395445553586 --3.09010660648 --0.0395450368524 --3.07285058498 --0.039545673877 --3.05559408665 --0.0395464664325 --3.0383374691 --0.0395473991521 --3.02108031512 --0.0395484860055 --3.00382298231 --0.0395496971906 --2.98656493426 --0.0395503500477 --2.96734046936 --0.0395497288555 --2.9481176734 --0.0395485167392 --2.93085974455 --0.0395474452525 --2.91360211372 --0.0395464980975 --2.89634513855 --0.039545705542 --2.87908834219 --0.0395450526848 --2.86183208227 --0.0395445558242 --2.84457582235 --0.0395441986621 --2.82731992006 --0.0395439658314 --2.81006401777 --0.0395439034328 --2.7928084135 --0.0395439807326 --2.77555257082 --0.0395441986621 --2.75829678774 --0.0395445553586 --2.74104076624 --0.0395450368524 --2.72378474474 --0.039545673877 --2.70652830601 --0.0395464664325 --2.68927168846 --0.0395473991521 --2.67201453448 --0.0395484860055 --2.65475714207 --0.0395496971906 --2.6374990344 --0.0395503500477 --2.61827450991 --0.0395497288555 --2.59905171394 --0.0395485167392 --2.5817939043 --0.0395474452525 --2.56453627348 --0.0395465134643 --2.5472792387 --0.0395457209088 --2.53002250195 --0.0395450526848 --2.51276624203 --0.0395445558242 --2.49550998211 --0.0395441986621 --2.47825413943 --0.0395439658314 --2.46099823714 --0.0395439034328 --2.44374257326 --0.0395439807326 --2.42648667097 --0.0395441986621 --2.40923094749 --0.0395445553586 --2.391974926 --0.0395450368524 --2.3747189045 --0.039545673877 --2.35746246576 --0.0395464664325 --2.34020584822 --0.0395473991521 --2.32294869423 --0.0395484860055 --2.30569124222 --0.0395496971906 --2.28843313456 --0.0395503500477 --2.26920866966 --0.0395497288555 --2.2499858737 --0.0395485167392 --2.23272794485 --0.0395474452525 --2.21547037363 --0.0395465134643 --2.19821345806 --0.0395457209088 --2.1809566617 --0.0395450526848 --2.16370034218 --0.0395445558242 --2.14644414186 --0.0395441986621 --2.12918829918 --0.0395439658314 --2.11193239689 --0.0395439034328 --2.09467673302 --0.0395439807326 --2.07742083072 --0.0395441986621 --2.06016510725 --0.0395445553586 --2.04290908575 --0.0395450368524 --2.02565300465 --0.039545673877 --2.00839653611 --0.0395464664325 --1.99113997817 --0.0395473991521 --1.97388282418 --0.0395484860055 --1.95662543178 --0.0395496971906 --1.93936735392 --0.0395503500477 --1.92014288902 --0.0395497288555 --1.90092006326 --0.0395485167392 --1.88366213441 --0.0395474452525 --1.86640456319 --0.0395465134643 --1.84914758802 --0.0395457209088 --1.83189079166 --0.0395450526848 --1.81463450193 --0.0395445558242 --1.79737827182 --0.0395441986621 --1.78012242913 --0.0395439658314 --1.76286652684 --0.0395439034328 --1.74561086297 --0.0395439807326 --1.72835499048 --0.0395441986621 --1.71109926701 --0.0395445553586 --1.69384324551 --0.0395450368524 --1.6765871942 --0.039545673877 --1.65933069587 --0.0395464664325 --1.64207407832 --0.0395473991521 --1.62481692433 --0.0395484860055 --1.60755953193 --0.0395496971906 --1.59030148387 --0.0395503500477 --1.57107701898 --0.0395497288555 --1.55185422301 --0.0395485167392 --1.53459635377 --0.0395474452525 --1.51733872294 --0.0395465134643 --1.50008174777 --0.0395457209088 --1.48282498121 --0.0395450526848 --1.46556869149 --0.0395445558242 --1.44831243158 --0.0395441986621 --1.43105652928 --0.0395439658314 --1.413800627 --0.0395439034328 --1.39654499293 --0.0395439807326 --1.37928915024 --0.0395441986621 --1.36203342676 --0.0395445553586 --1.34477737546 --0.0395450368524 --1.32752132415 --0.039545673877 --1.31026488542 --0.0395464664325 --1.29300829768 --0.0395473991521 --1.27575114369 --0.0395484860055 --1.25849375129 --0.0395496971906 --1.24123567343 --0.0395503500477 --1.22201114893 --0.0395497288555 --1.20278832316 --0.0395485167392 --1.18553045392 --0.0395474452525 --1.1682728529 --0.0395464980975 --1.15101587772 --0.039545705542 --1.13375908137 --0.0395450526848 --1.11650279164 --0.0395445558242 --1.09924659133 --0.0395441986621 --1.08199074865 --0.0395439658314 --1.06473484635 --0.0395439034328 --1.04747918249 --0.0395439807326 --1.03022328019 --0.0395441986621 --1.01296752691 --0.0395445553586 --0.995711505411 --0.0395450368524 --0.978455469012 --0.039545673877 --0.961199000478 --0.0395464664325 --0.943942412734 --0.0395473991521 --0.926685273647 --0.0395484860055 --0.909427866339 --0.0395496971906 --0.89216978848 --0.0395503500477 --0.872945338488 --0.0395497288555 --0.853722527623 --0.0395485167392 --0.836464613676 --0.0395474452525 --0.819207027555 --0.0395464980975 --0.801950067282 --0.039545705542 --0.78469324112 --0.0395450526848 --0.767436936498 --0.0395445558242 --0.750180721283 --0.0395441986621 --0.732924863696 --0.0395439658314 --0.715668961406 --0.0395439034328 --0.698413282633 --0.0395439807326 --0.681157425046 --0.0395441986621 --0.663901716471 --0.0395445553586 --0.64664568007 --0.0395450368524 --0.629389628768 --0.039545673877 --0.612133175135 --0.0395464664325 --0.59487657249 --0.0395473991521 --0.577619403601 --0.0395484860055 --0.560361996293 --0.0395496971906 --0.543103933334 --0.0395503500477 --0.523879468441 --0.0395497288555 --0.504656650126 --0.0395485167392 --0.487398758531 --0.0395474452525 --0.470141172409 --0.0395464980975 --0.452884197235 --0.039545705542 --0.435627408326 --0.0395450526848 --0.418371126056 --0.0395445558242 --0.401114888489 --0.0395441986621 --0.383859023452 --0.0395439658314 --0.36660310626 --0.0395439034328 --0.349347442389 --0.0395439807326 --0.332091592252 --0.0395441986621 --0.314835861325 --0.0395445553586 --0.297579824924 --0.0395450368524 --0.280323788524 --0.039545673877 --0.263067312539 --0.0395464664325 --0.245810709894 --0.0395473991521 --0.228553559631 --0.0395484860055 --0.211296163499 --0.0395496971906 --0.19403809309 --0.0395503500477 --0.174813620746 --0.0210088826716 --0.155586820096 --0.0210082412232 --0.138328932226 --0.0210076605435 --0.121071353555 --0.0210071562324 --0.103814397007 --0.0210067431908 --0.0865576323122 --0.0210063916165 --0.0693013593555 --0.021006132476 --0.0520451404154 --0.0210059490055 --0.034789301455 --0.0210058114026 --0.0175333998632 --0.0210057813675 --0.0002777450718 --0.021005827235 -0.0169780936558 --0.0210059338715 -0.0342338075861 --0.0210061320104 -0.0514898290858 --0.0210063916165 -0.0687458505854 --0.0210067280568 -0.0860023088753 --0.0210071562323 -0.103258894756 --0.0210076451767 -0.120516028255 --0.0210082102567 -0.137773413211 --0.0210088517051 -0.155031468719 --0.0210092030466 -0.174256075174 --0.0210088826716 -0.193479027599 --0.0210082412232 -0.210736915469 --0.0210076605435 -0.22799449414 --0.0210071562324 -0.245251446962 --0.0210067431908 -0.26250822097 --0.0210063916165 -0.27976450324 --0.021006132476 -0.297020711005 --0.0210059490055 -0.314276538789 --0.0210058114026 -0.331532433629 --0.0210057813675 -0.34878809005 --0.021005827235 -0.366043940186 --0.0210059338715 -0.383299656212 --0.0210061320104 -0.400555677712 --0.0210063916165 -0.417811706662 --0.0210067280568 -0.435068160295 --0.0210071562323 -0.452324748039 --0.0210076451767 -0.469581879676 --0.0210082102567 -0.48683924973 --0.0210088517051 -0.504097320139 --0.0210092030466 -0.523321926593 --0.0210088826716 -0.542544871568 --0.0210082412232 -0.559802755713 --0.0210076605435 -0.577060326934 --0.0210071715992 -0.594317302108 --0.0210067585576 -0.611574068666 --0.0210063916165 -0.628830343485 --0.021006132476 -0.6460865587 --0.0210059490055 -0.663342386484 --0.0210058114026 -0.680598288774 --0.0210057813675 -0.697853922844 --0.021005827235 -0.71510976553 --0.0210059338715 -0.732365518808 --0.0210061320104 -0.749621540308 --0.0210063916165 -0.766877546906 --0.0210067280568 -0.784133985639 --0.0210071562323 -0.801390558481 --0.0210076451767 -0.818647697568 --0.0210082102567 -0.835905089974 --0.0210088517051 -0.853163152933 --0.0210092030466 -0.872387766838 --0.0210088826716 -0.891610726714 --0.0210082412232 -0.908868610859 --0.0210076605435 -0.92612618208 --0.0210071715992 -0.943383127451 --0.0210067585576 -0.960639923811 --0.0210063916165 -0.977896213532 --0.021006132476 -0.995152428746 --0.0210059490055 -1.01240828633 --0.0210058114026 -1.02966415882 --0.0210057813675 -1.04691979289 --0.021005827235 -1.06417563557 --0.0210059338715 -1.08143135905 --0.0210061320104 -1.09868738055 --0.0210063916165 -1.11594340205 --0.0210067280568 -1.13319984078 --0.0210071562323 -1.15045639872 --0.0210076451767 -1.16771355271 --0.0210082102567 -1.18497094512 --0.0210088517051 -1.20222899318 --0.0210092030466 -1.22145363689 --0.0210088826716 -1.24067661166 --0.0210082412232 -1.2579344809 --0.0210076605435 -1.27519205212 --0.0210071715992 -1.2924489975 --0.0210067585576 -1.30970576405 --0.0210063916165 -1.32696202397 --0.021006132476 -1.34421822429 --0.0210059490055 -1.36147406698 --0.0210058114026 -1.37872996926 --0.0210057813675 -1.39598563314 --0.021005827235 -1.41324147582 --0.0210059338715 -1.43049719929 --0.0210061320104 -1.4477532506 --0.0210063916165 -1.4650092721 --0.0210067280568 -1.48226571083 --0.0210071562323 -1.49952229857 --0.0210076451767 -1.51677945256 --0.0210082102567 -1.53403684497 --0.0210088517051 -1.55129489303 --0.0210092030466 -1.57051947713 --0.0210088826716 -1.5897424221 --0.0210082412232 -1.60700032115 --0.0210076605435 -1.62425789237 --0.0210071715992 -1.64151483774 --0.0210067585576 -1.6587716341 --0.0210063916165 -1.67602792382 --0.021006132476 -1.69328412414 --0.0210059490055 -1.71053996682 --0.0210058114026 -1.72779586911 --0.0210057813675 -1.74505153298 --0.021005827235 -1.76230734587 --0.0210059338715 -1.77956303954 --0.0210061320104 -1.79681906104 --0.0210063916165 -1.81407508254 --0.0210067280568 -1.83133155107 --0.0210071562323 -1.84858813882 --0.0210076451767 -1.865845263 --0.0210082102567 -1.88310265541 --0.0210088517051 -1.90036073327 --0.0210092030466 -1.91958534717 --0.0210088826716 -1.93880829215 --0.0210082412232 -1.95606616139 --0.0210076605435 -1.97332373261 --0.0210071562324 -1.99058070779 --0.0210067431908 -2.00783747435 --0.0210063916165 -2.02509373426 --0.021006132476 -2.04234999418 --0.0210059490055 -2.05960583687 --0.0210058114026 -2.07686173916 --0.0210057813675 -2.09411740303 --0.021005827235 -2.11137324572 --0.0210059338715 -2.12862890959 --0.0210061320104 -2.14588487148 --0.0210063916165 -2.16314089298 --0.0210067280568 -2.18039739132 --0.0210071562323 -2.19765400886 --0.0210076451767 -2.21491110325 --0.0210082102567 -2.23216849566 --0.0210088517051 -2.24942660332 --0.0210092030466 -2.26865118742 --0.0210088826716 -2.28787410259 --0.0210082412232 -2.30513197184 --0.0210076605435 -2.32238954306 --0.0210071562324 -2.33964651823 --0.0210067431908 -2.3569033742 --0.0210063916165 -2.37415963411 --0.021006132476 -2.39141577482 --0.0210059490055 -2.40867167711 --0.0210058114026 -2.4259275794 --0.0210057813675 -2.44318318367 --0.021005827235 -2.46043902636 --0.0210059338715 -2.47769474983 --0.0210061320104 -2.49495077133 --0.0210063916165 -2.51220685244 --0.0210067280568 -2.52946329117 --0.0210071562323 -2.5467197895 --0.0210076451767 -2.56397694349 --0.0210082102567 -2.5812343955 --0.0210088517051 -2.59849244356 --0.0210092030466 -2.61771702766 --0.0210088826716 -2.63694000244 --0.0210082412232 -2.65419787169 --0.0210076605435 -2.67145544291 --0.0210071562324 -2.68871241808 --0.0210067431908 -2.70596921444 --0.0210063916165 -2.72322547436 --0.021006132476 -2.74048161507 --0.0210059490055 -2.75773745775 --0.0210058114026 -2.77499336004 --0.0210057813675 -2.79224902392 --0.021005827235 -2.80950492621 --0.0210059338715 -2.82676064968 --0.0210061320104 -2.84401667118 --0.0210063916165 -2.86127269268 --0.0210067280568 -2.87852913141 --0.0210071562323 -2.89578574896 --0.0210076451767 -2.91304284334 --0.0210082102567 -2.93030017614 --0.0210088517051 -2.9475582242 --0.0210092030466 -2.96678280831 --0.0210088826716 -2.98600578308 --0.0210082412232 -3.00326371193 --0.0210076605435 -3.02052134276 --0.0210071562324 -3.03777831793 --0.0210067431908 -3.05503505468 --0.0210063916165 -3.0722913146 --0.021006132476 -3.08954757452 --0.0210059490055 -3.10680341721 --0.0210058114026 -3.1240593195 --0.0210057813675 -3.14131495555 --0.021005827235 --3.12461453676 --0.0210059338715 --3.10735881329 --0.0210061320104 --3.09010279179 --0.0210063916165 --3.07284677029 --0.0210067280568 --3.05559033155 --0.0210071562323 --3.03833371401 --0.0210076451767 --3.02107661963 --0.0210082102567 --3.00381928682 --0.0210088517051 --2.98656123876 --0.0210092030466 --2.96733665466 --0.0210088826716 --2.94811367989 --0.0210082412232 --2.93085575104 --0.0210076605435 --2.91359812021 --0.0210071562324 --2.89634114504 --0.0210067431908 --2.87908440828 --0.0210063916165 --2.86182814837 --0.021006132476 --2.84457188845 --0.0210059490055 --2.82731604576 --0.0210058114026 --2.81006020307 --0.0210057813675 --2.79280459881 --0.021005827235 --2.77554875612 --0.0210059338715 --2.75829303265 --0.0210061320104 --2.74103701115 --0.0210063916165 --2.72378098965 --0.0210067280568 --2.70652455091 --0.0210071562323 --2.68926793337 --0.0210076451767 --2.67201077938 --0.0210082102567 --2.65475344658 --0.0210088517051 --2.63749533891 --0.0210092030466 --2.61827069521 --0.0210088826716 --2.59904778004 --0.0210082412232 --2.58178991079 --0.0210076605435 --2.56453233957 --0.0210071715992 --2.5472753644 --0.0210067585576 --2.53001862764 --0.0210063916165 --2.51276236773 --0.021006132476 --2.49550610781 --0.0210059490055 --2.47825026512 --0.0210058114026 --2.46099436283 --0.0210057813675 --2.44373869896 --0.021005827235 --2.42648285627 --0.0210059338715 --2.4092271328 --0.0210061320104 --2.3919711113 --0.0210063916165 --2.3747151494 --0.0210067280568 --2.35745871067 --0.0210071562323 --2.34020209312 --0.0210076451767 --2.32294493914 --0.0210082102567 --2.30568748712 --0.0210088517051 --2.28842943907 --0.0210092030466 --2.26920485497 --0.0210088826716 --2.24998193979 --0.0210082412232 --2.23272407055 --0.0210076605435 --2.21546649933 --0.0210071715992 --2.19820958376 --0.0210067585576 --2.18095272779 --0.0210063916165 --2.16369640827 --0.021006132476 --2.14644026756 --0.0210059490055 --2.12918442488 --0.0210058114026 --2.11192852259 --0.0210057813675 --2.09467285871 --0.021005827235 --2.07741695642 --0.0210059338715 --2.06016123295 --0.0210061320104 --2.04290527105 --0.0210063916165 --2.02564924955 --0.0210067280568 --2.00839278102 --0.0210071562323 --1.99113622308 --0.0210076451767 --1.97387906909 --0.0210082102567 --1.95662167668 --0.0210088517051 --1.93936362863 --0.0210092030466 --1.92013904452 --0.0210088826716 --1.90091606975 --0.0210082412232 --1.8836581707 --0.0210076605435 --1.86640062928 --0.0210071715992 --1.84914365411 --0.0210067585576 --1.83188685775 --0.0210063916165 --1.81463059783 --0.021006132476 --1.79737439752 --0.0210059490055 --1.78011855483 --0.0210058114026 --1.76286265254 --0.0210057813675 --1.74560698867 --0.021005827235 --1.72835114598 --0.0210059338715 --1.71109545231 --0.0210061320104 --1.69383943081 --0.0210063916165 --1.67658340931 --0.0210067280568 --1.65932694077 --0.0210071562323 --1.64207032323 --0.0210076451767 --1.62481319904 --0.0210082102567 --1.60755583644 --0.0210088517051 --1.59029778838 --0.0210092030466 --1.57107317447 --0.0210088826716 --1.5518502295 --0.0210082412232 --1.53459236026 --0.0210076605435 --1.51733475923 --0.0210071715992 --1.50007778406 --0.0210067585576 --1.48282101751 --0.0210063916165 --1.46556475759 --0.021006132476 --1.44830852747 --0.0210059490055 --1.43105265498 --0.0210058114026 --1.41379678249 --0.0210057813675 --1.39654117822 --0.021005827235 --1.37928533554 --0.0210059338715 --1.36202961206 --0.0210061320104 --1.34477359056 --0.0210063916165 --1.32751753926 --0.0210067280568 --1.31026110053 --0.0210071562323 --1.29300454259 --0.0210076451767 --1.2757473886 --0.0210082102567 --1.2584899962 --0.0210088517051 --1.24123194814 --0.0210092030466 --1.22200730443 --0.0210088826716 --1.20278432965 --0.0210082412232 --1.18552646041 --0.0210076605435 --1.16826888919 --0.0210071562324 --1.15101194382 --0.0210067431908 --1.13375517726 --0.0210063916165 --1.11649891734 --0.021006132476 --1.09924271703 --0.0210059490055 --1.08198687434 --0.0210058114026 --1.06473097205 --0.0210057813675 --1.04747530818 --0.021005827235 --1.03021943569 --0.0210059338715 --1.01296374201 --0.0210061320104 --0.995707750319 --0.0210063916165 --0.978451699018 --0.0210067280568 --0.961195230484 --0.0210071562323 --0.943938672543 --0.0210076451767 --0.926681548357 --0.0210082102567 --0.90942414105 --0.0210088517051 --0.892166078091 --0.0210092030466 --0.872941493988 --0.0210088826716 --0.853718534112 --0.0210082412232 --0.836460620165 --0.0210076605435 --0.819203063846 --0.0210071562324 --0.801946118474 --0.0210067431908 --0.784689307213 --0.0210063916165 --0.767433032394 --0.021006132476 --0.75017683208 --0.0210059490055 --0.732920974493 --0.0210058114026 --0.715665087104 --0.0210057813675 --0.698409438133 --0.021005827235 --0.681153595447 --0.0210059338715 --0.663897901773 --0.0210061320104 --0.646641895175 --0.0210063916165 --0.629385858774 --0.0210067280568 --0.612129405141 --0.0210071562323 --0.594872817397 --0.0210076451767 --0.577615663409 --0.0210082102567 --0.560358285904 --0.0210088517051 --0.543100237846 --0.0210092030466 --0.52387560904 --0.0210088826716 --0.504652649164 --0.0210082412232 --0.487394787371 --0.0210076605435 --0.470137216151 --0.0210071562324 --0.452880255878 --0.0210067431908 --0.43562348932 --0.0210063916165 --0.418367221952 --0.021006132476 --0.401110991835 --0.0210059490055 --0.383855141699 --0.0210058114026 --0.366599246859 --0.0210057813675 --0.349343597889 --0.021005827235 --0.332087762654 --0.0210059338715 --0.314832046628 --0.0210061320104 --0.297576017677 --0.0210063916165 --0.280320003628 --0.0210067280568 --0.263063542545 --0.0210071562323 --0.245806947351 --0.0210076451767 --0.228549823165 --0.0210082102567 --0.211292441934 --0.0210088517051 --0.194034386426 --0.0210092030466 --0.174809776247 --2.16532499999e-08 --0.155419073999 --1.74623000001e-08 --0.138161104172 -1.16414999992e-09 --0.12090362981 -1.88592750002e-08 --0.103646596894 -6.75207500024e-09 --0.0863899346441 --5.35509999972e-09 --0.069133576937 --1.862645e-08 --0.0518774632364 --2.79400000011e-09 --0.0346215399913 -1.32713250003e-08 --0.0173657382838 --1.16414999992e-09 --0.000110000139105 --1.62981250002e-08 -0.0171457391698 --1.69966250002e-08 -0.0344015406445 --1.83936250003e-08 -0.0516574624926 --5.35510000016e-09 -0.0689135706052 -2.18860749996e-08 -0.086169930175 -1.88592749997e-08 -0.103426605463 -1.16415000036e-09 -0.120683643967 --2.09550000008e-09 -0.137941110879 --6.28642500035e-09 -0.155199073255 --2.35158749999e-08 -0.174422927201 --2.16532499999e-08 -0.193646781146 --1.74623000001e-08 -0.210904743522 -1.16414999992e-09 -0.228162210435 -1.88592750002e-08 -0.245419248938 -6.75207500024e-09 -0.262675926089 --5.35509999972e-09 -0.279932282865 --1.862645e-08 -0.297188386321 --2.79400000011e-09 -0.314444310963 -1.32713250003e-08 -0.331700101495 --1.16414999992e-09 -0.348955839872 --1.62981250002e-08 -0.366211593151 --1.69966250002e-08 -0.383467391133 --1.83936250003e-08 -0.400723308325 --5.35510000016e-09 -0.417979419232 -2.18860749996e-08 -0.435235776007 -1.88592749997e-08 -0.452492453158 -1.16415000036e-09 -0.469749495387 --2.09550000008e-09 -0.487006954849 --6.28642500035e-09 -0.504264928401 --2.35158749999e-08 -0.523488774895 --2.16532499999e-08 -0.54271261394 --1.74623000001e-08 -0.559970587492 -1.16414999992e-09 -0.577228054404 -1.88592750002e-08 -0.594485104084 -6.75207500024e-09 -0.611741781235 --5.35509999972e-09 -0.62899813056 --1.862645e-08 -0.646254241467 --2.79400000011e-09 -0.663510143757 -1.32713250003e-08 -0.68076595664 --1.16414999992e-09 -0.698021709919 --1.62981250002e-08 -0.715277418494 --1.69966250002e-08 -0.732533216476 --1.83936250003e-08 -0.749789148569 --5.35510000016e-09 -0.767045259475 -2.18860749996e-08 -0.784301608801 -1.88592749997e-08 -0.801558285952 -1.16415000036e-09 -0.818815335631 --2.09550000008e-09 -0.836072802544 --6.28642500035e-09 -0.853330776096 --2.35158749999e-08 -0.872554630041 --2.16532499999e-08 -0.891778469086 --1.74623000001e-08 -0.909036427737 -1.16414999992e-09 -0.926293894649 -1.88592750002e-08 -0.943550929427 -6.75207500024e-09 -0.960807621479 --5.35509999972e-09 -0.978064000607 --1.862645e-08 -0.995320111512 --2.79400000011e-09 -1.0125760138 -1.32713250003e-08 -1.02983179689 --1.16414999992e-09 -1.04708752036 --1.62981250002e-08 -1.06434324384 --1.69966250002e-08 -1.08159905672 --1.83936250003e-08 -1.09885498881 --5.35510000016e-09 -1.11611112952 -2.18860749996e-08 -1.13336747885 -1.88592749997e-08 -1.1506241262 -1.16415000036e-09 -1.16788119078 --2.09550000008e-09 -1.18513867259 --6.28642500035e-09 -1.20239663124 --2.35158749999e-08 -1.22162050009 --2.16532499999e-08 -1.24084436893 --1.74623000001e-08 -1.25810232759 -1.16414999992e-09 -1.2753597796 -1.88592750002e-08 -1.29261678457 -6.75207500024e-09 -1.30987346172 --5.35509999972e-09 -1.32712981104 --1.862645e-08 -1.34438592195 --2.79400000011e-09 -1.36164185405 -1.32713250003e-08 -1.37889763713 --1.16414999992e-09 -1.39615339041 --1.62981250002e-08 -1.41340914369 --1.69966250002e-08 -1.43066495657 --1.83936250003e-08 -1.44792088866 --5.35510000016e-09 -1.46517699957 -2.18860749996e-08 -1.48243334889 -1.88592749997e-08 -1.49968999624 -1.16415000036e-09 -1.51694703102 --2.09550000008e-09 -1.53420451284 --6.28642500035e-09 -1.55146250129 --2.35158749999e-08 -1.57068634033 --2.16532499999e-08 -1.58991014958 --1.74623000001e-08 -1.60716810823 -1.16414999992e-09 -1.62442559004 -1.88592750002e-08 -1.64168265462 -6.75207500024e-09 -1.65893933177 --5.35509999972e-09 -1.67619568109 --1.862645e-08 -1.693451792 --2.79400000011e-09 -1.71070772409 -1.32713250003e-08 -1.72796353697 --1.16414999992e-09 -1.74521929026 --1.62981250002e-08 -1.76247498393 --1.69966250002e-08 -1.77973073721 --1.83936250003e-08 -1.7969866693 --5.35510000016e-09 -1.81424278021 -2.18860749996e-08 -1.83149912954 -1.88592749997e-08 -1.84875583649 -1.16415000036e-09 -1.86601290106 --2.09550000008e-09 -1.88327035308 --6.28642500035e-09 -1.90052831173 --2.35158749999e-08 -1.91975218058 --2.16532499999e-08 -1.93897604942 --1.74623000001e-08 -1.95623400808 -1.16414999992e-09 -1.97349148989 -1.88592750002e-08 -1.99074852467 -6.75207500024e-09 -2.00800514221 --5.35509999972e-09 -2.02526152134 --1.862645e-08 -2.04251766205 --2.79400000011e-09 -2.05977356434 -1.32713250003e-08 -2.07702940702 --1.16414999992e-09 -2.0942851305 --1.62981250002e-08 -2.11154085398 --1.69966250002e-08 -2.12879663706 --1.83936250003e-08 -2.14605253935 --5.35510000016e-09 -2.16330868006 -2.18860749996e-08 -2.18056505918 -1.88592749997e-08 -2.19782173634 -1.16415000036e-09 -2.21507877111 --2.09550000008e-09 -2.23233622312 --6.28642500035e-09 -2.24959415197 --2.35158749999e-08 -2.26881802082 --2.16532499999e-08 -2.28804188967 --1.74623000001e-08 -2.30529981851 -1.16414999992e-09 -2.32255727053 -1.88592750002e-08 -2.33981430531 -6.75207500024e-09 -2.35707104206 --5.35509999972e-09 -2.37432742119 --1.862645e-08 -2.39158350229 --2.79400000011e-09 -2.40883946419 -1.32713250003e-08 -2.42609524727 --1.16414999992e-09 -2.44335091114 --1.62981250002e-08 -2.46060663462 --1.69966250002e-08 -2.4778624773 --1.83936250003e-08 -2.49511837959 --5.35510000016e-09 -2.5123745203 -2.18860749996e-08 -2.52963089943 -1.88592749997e-08 -2.54688751698 -1.16415000036e-09 -2.56414455175 --2.09550000008e-09 -2.58140206337 --6.28642500035e-09 -2.59866005182 --2.35158749999e-08 -2.61788386107 --2.16532499999e-08 -2.63710772991 --1.74623000001e-08 -2.65436565876 -1.16414999992e-09 -2.67162311077 -1.88592750002e-08 -2.68888020515 -6.75207500024e-09 -2.70613688231 --5.35509999972e-09 -2.72339320183 --1.862645e-08 -2.74064928293 --2.79400000011e-09 -2.75790524483 -1.32713250003e-08 -2.77516102791 --1.16414999992e-09 -2.79241681099 --1.62981250002e-08 -2.80967259407 --1.69966250002e-08 -2.82692837715 --1.83936250003e-08 -2.84418433905 --5.35510000016e-09 -2.86144042015 -2.18860749996e-08 -2.87869673967 -1.88592749997e-08 -2.89595341682 -1.16415000036e-09 -2.913210392 --2.09550000008e-09 -2.93046784401 --6.28642500035e-09 -2.94772583246 --2.35158749999e-08 -2.96694970131 --2.16532499999e-08 -2.98617357016 --1.74623000001e-08 -3.00343155861 -1.16414999992e-09 -3.02068907023 -1.88592750002e-08 -3.037946105 -6.75207500024e-09 -3.05520272255 --5.35509999972e-09 -3.07245910168 --1.862645e-08 -3.08971524239 --2.79400000011e-09 -3.10697114468 -1.32713250003e-08 -3.12422698736 --1.16414999992e-09 -3.14148274262 --1.62981250002e-08 --3.1244468689 --1.69966250002e-08 --3.10719108582 --1.83936250003e-08 --3.08993512392 --5.35510000016e-09 --3.07267904282 -2.18860749996e-08 --3.05542272329 -1.88592749997e-08 --3.03816604614 -1.16415000036e-09 --3.02090907097 --2.09550000008e-09 --3.00365161896 --6.28642500035e-09 --2.9863936305 --2.35158749999e-08 --2.96716976166 --2.16532499999e-08 --2.94794589281 --1.74623000001e-08 --2.93068790436 -1.16414999992e-09 --2.91343039274 -1.88592750002e-08 --2.89617335796 -6.75207500024e-09 --2.87891674042 --5.35509999972e-09 --2.86166036129 --1.862645e-08 --2.84440422058 --2.79400000011e-09 --2.82714831829 -1.32713250003e-08 --2.80989253521 --1.16414999992e-09 --2.79263681174 --1.62981250002e-08 --2.77538108826 --1.69966250002e-08 --2.75812530518 --1.83936250003e-08 --2.74086934328 --5.35510000016e-09 --2.72361326218 -2.18860749996e-08 --2.70635694265 -1.88592749997e-08 --2.6891002059 -1.16415000036e-09 --2.67184311152 --2.09550000008e-09 --2.6545856595 --6.28642500035e-09 --2.63732773066 --2.35158749999e-08 --2.61810392141 --2.16532499999e-08 --2.59888011217 --1.74623000001e-08 --2.58162212372 -1.16414999992e-09 --2.5643646121 -1.88592750002e-08 --2.54710757732 -6.75207500024e-09 --2.52985090017 --5.35509999972e-09 --2.51259452105 --1.862645e-08 --2.49533838034 --2.79400000011e-09 --2.47808247805 -1.32713250003e-08 --2.46082669497 --1.16414999992e-09 --2.44357097149 --1.62981250002e-08 --2.42631524801 --1.69966250002e-08 --2.40905940533 --1.83936250003e-08 --2.39180350304 --5.35510000016e-09 --2.37454742193 -2.18860749996e-08 --2.3572910428 -1.88592749997e-08 --2.34003436565 -1.16415000036e-09 --2.32277733088 --2.09550000008e-09 --2.30551981926 --6.28642500035e-09 --2.28826183081 --2.35158749999e-08 --2.26903802156 --2.16532499999e-08 --2.24981421232 --1.74623000001e-08 --2.23255628348 -1.16414999992e-09 --2.21529883146 -1.88592750002e-08 --2.19804173708 -6.75207500024e-09 --2.18078500032 --5.35509999972e-09 --2.1635286808 --1.862645e-08 --2.1462725997 --2.79400000011e-09 --2.1290166378 -1.32713250003e-08 --2.11176085472 --1.16414999992e-09 --2.09450507164 --1.62981250002e-08 --2.07724928856 --1.69966250002e-08 --2.05999350548 --1.83936250003e-08 --2.04273766279 --5.35510000016e-09 --2.02548158169 -2.18860749996e-08 --2.00822517276 -1.88592749997e-08 --1.99096849561 -1.16415000036e-09 --1.97371146083 --2.09550000008e-09 --1.95645397901 --6.28642500035e-09 --1.93919599056 --2.35158749999e-08 --1.91997218132 --2.16532499999e-08 --1.90074834228 --1.74623000001e-08 --1.88349038362 -1.16414999992e-09 --1.86623293161 -1.88592750002e-08 --1.84897586703 -6.75207500024e-09 --1.83171918988 --5.35509999972e-09 --1.81446284056 --1.862645e-08 --1.79720672965 --2.79400000011e-09 --1.77995079756 -1.32713250003e-08 --1.76269498467 --1.16414999992e-09 --1.74543923139 --1.62981250002e-08 --1.72818347811 --1.69966250002e-08 --1.71092769503 --1.83936250003e-08 --1.69367176294 --5.35510000016e-09 --1.67641565204 -2.18860749996e-08 --1.65915930271 -1.88592749997e-08 --1.64190262556 -1.16415000036e-09 --1.62464562058 --2.09550000008e-09 --1.60738816857 --6.28642500035e-09 --1.59013020992 --2.35158749999e-08 --1.57090634107 --2.16532499999e-08 --1.55168247223 --1.74623000001e-08 --1.53442451358 -1.16414999992e-09 --1.51716703176 -1.88592750002e-08 --1.49990996719 -6.75207500024e-09 --1.48265329004 --5.35509999972e-09 --1.46539694071 --1.862645e-08 --1.4481408298 --2.79400000011e-09 --1.43088489771 -1.32713250003e-08 --1.41362911463 --1.16414999992e-09 --1.39637342095 --1.62981250002e-08 --1.37911769747 --1.69966250002e-08 --1.36186188459 --1.83936250003e-08 --1.3446059525 --5.35510000016e-09 --1.32734984159 -2.18860749996e-08 --1.31009349227 -1.88592749997e-08 --1.29283681512 -1.16415000036e-09 --1.27557975054 --2.09550000008e-09 --1.25832226873 --6.28642500035e-09 --1.24106431008 --2.35158749999e-08 --1.22184047103 --2.16532499999e-08 --1.20261663199 --1.74623000001e-08 --1.18535864353 -1.16414999992e-09 --1.16810116172 -1.88592750002e-08 --1.15084415674 -6.75207500024e-09 --1.13358747959 --5.35509999972e-09 --1.11633113026 --1.862645e-08 --1.09907504916 --2.79400000011e-09 --1.08181911707 -1.32713250003e-08 --1.06456330419 --1.16414999992e-09 --1.04730755091 --1.62981250002e-08 --1.03005179763 --1.69966250002e-08 --1.01279601455 --1.83936250003e-08 --0.995540112256 --5.35510000016e-09 --0.978283986449 -2.18860749996e-08 --0.961027622223 -1.88592749997e-08 --0.943770959973 -1.16415000036e-09 --0.926513910294 --2.09550000008e-09 --0.909256443382 --6.28642500035e-09 --0.891998484731 --2.35158749999e-08 --0.872774630785 --2.16532499999e-08 --0.853550761938 --1.74623000001e-08 --0.836292788386 -1.16414999992e-09 --0.819035336375 -1.88592750002e-08 --0.801778301597 -6.75207500024e-09 --0.784521624446 --5.35509999972e-09 --0.767265275121 --1.862645e-08 --0.750009164214 --2.79400000011e-09 --0.732753232122 -1.32713250003e-08 --0.715497434139 --1.16414999992e-09 --0.698241695762 --1.62981250002e-08 --0.680985957384 --1.69966250002e-08 --0.663730159402 --1.83936250003e-08 --0.646474257112 --5.35510000016e-09 --0.629218146205 -2.18860749996e-08 --0.611961767077 -1.88592749997e-08 --0.594705089927 -1.16415000036e-09 --0.577448055148 --2.09550000008e-09 --0.560190603137 --6.28642500035e-09 --0.542932644487 --2.35158749999e-08 --0.52370877564 --2.16532499999e-08 --0.504484906793 --1.74623000001e-08 --0.487226948142 -1.16414999992e-09 --0.469969496131 -1.88592750002e-08 --0.452712461352 -6.75207500024e-09 --0.435455784202 --5.35509999972e-09 --0.418199427426 --1.862645e-08 --0.400943316519 --2.79400000011e-09 --0.383687384426 -1.32713250003e-08 --0.366431586444 --1.16414999992e-09 --0.349175848067 --1.62981250002e-08 --0.33192010969 --1.69966250002e-08 --0.314664319158 --1.83936250003e-08 --0.297408387065 --5.35510000016e-09 --0.280152276158 -2.18860749996e-08 --0.262895919382 -1.88592749997e-08 --0.245639242232 -1.16415000036e-09 --0.228382207454 --2.09550000008e-09 --0.211124733091 --6.28642500035e-09 --0.19386677444 --2.35158749999e-08 --0.174642927945 -0.0210088647436 --0.155251465738 -0.0210081967525 --0.137993406504 -0.0210076449439 --0.120736021548 -0.0210071802139 --0.103478889912 -0.021006744355 --0.0862223114819 -0.021006395109 --0.0689658559859 -0.0210061334073 --0.0517098326236 -0.02100595925 --0.0344538092613 -0.0210058428347 --0.0171980927698 -0.0210057843942 -5.77452592525e-05 -0.0210058137309 -0.0173133988865 -0.021005930379 -0.0345693011768 -0.0210061047692 -0.0518251415342 -0.021006395109 -0.0690813558176 -0.021006773226 -0.086337627843 -0.0210071802139 -0.103594401851 -0.0210076449439 -0.120851365849 -0.0210081969853 -0.138108938932 -0.0210088649765 -0.155366819352 -0.021009213524 -0.174589771778 -0.0210088647436 -0.193814389408 -0.0210081967525 -0.211072444916 -0.0210076449439 -0.228329818696 -0.0210071802139 -0.245586961508 -0.021006744355 -0.262843556702 -0.021006395109 -0.280100002885 -0.0210061334073 -0.297356024385 -0.02100595925 -0.314612053335 -0.0210058428347 -0.331867754459 -0.0210057843942 -0.349123589694 -0.0210058137309 -0.366379246116 -0.021005930379 -0.383635148406 -0.0210061047692 -0.400890991092 -0.021006395109 -0.418147206307 -0.021006773226 -0.435403481126 -0.0210071802139 -0.452660255134 -0.0210076449439 -0.469917215407 -0.0210081969853 -0.487174786628 -0.0210088649765 -0.504432678223 -0.021009213524 -0.523655638099 -0.0210088647436 -0.542880237102 -0.0210081967525 -0.56013828516 -0.0210076449439 -0.577395677566 -0.0210071802139 -0.594652816653 -0.021006744355 -0.611909389496 -0.021006395109 -0.629165843129 -0.0210061334073 -0.646421864629 -0.02100595925 -0.663677856326 -0.0210058428347 -0.680933594704 -0.0210057843942 -0.698189467192 -0.0210058137309 -0.71544508636 -0.021005930379 -0.73270097375 -0.0210061047692 -0.749956816435 -0.021006395109 -0.767213031649 -0.021006773226 -0.784469306469 -0.0210071802139 -0.801726102829 -0.0210076449439 -0.818983078003 -0.0210081969853 -0.836240634322 -0.0210088649765 -0.853498518467 -0.021009213524 -0.872721478343 -0.0210088647436 -0.891946092248 -0.0210081967525 -0.909204140306 -0.0210076449439 -0.926461517811 -0.0210071802139 -0.943718656898 -0.021006744355 -0.96097522974 -0.021006395109 -0.978231698275 -0.0210061334073 -0.995487749575 -0.02100595925 -1.01274374127 -0.0210058428347 -1.02999943495 -0.0210057843942 -1.04725527763 -0.0210058137309 -1.0645109117 -0.021005930379 -1.08176681399 -0.0210061047692 -1.09902265668 -0.021006395109 -1.1162789166 -0.021006773226 -1.13353520632 -0.0210071802139 -1.15079194307 -0.0210076449439 -1.16804891825 -0.0210081969853 -1.18530651927 -0.0210088649765 -1.20256438851 -0.021009213524 -1.22178733349 -0.0210088647436 -1.24101194739 -0.0210081967525 -1.25826999545 -0.0210076449439 -1.27552735805 -0.0210071802139 -1.29278448224 -0.021006744355 -1.31004109979 -0.021006395109 -1.32729756832 -0.0210061334073 -1.34455358982 -0.02100595925 -1.36180961132 -0.0210058428347 -1.379065305 -0.0210057843942 -1.39632114768 -0.0210058137309 -1.41357681155 -0.021005930379 -1.43083271384 -0.0210061047692 -1.44808855653 -0.021006395109 -1.46534475684 -0.021006773226 -1.48260101676 -0.0210071802139 -1.49985778332 -0.0210076449439 -1.51711472869 -0.0210081969853 -1.53437229991 -0.0210088649765 -1.55163022876 -0.021009213524 -1.57085320354 -0.0210088647436 -1.59007778764 -0.0210081967525 -1.6073358357 -0.0210076449439 -1.6245932281 -0.0210071802139 -1.64185038209 -0.021006744355 -1.65910694003 -0.021006395109 -1.67636337876 -0.0210061334073 -1.69361943007 -0.02100595925 -1.71087545156 -0.0210058428347 -1.72813117504 -0.0210057843942 -1.74538701773 -0.0210058137309 -1.76264262199 -0.021005930379 -1.77989849448 -0.0210061047692 -1.79715436697 -0.021006395109 -1.81441059708 -0.021006773226 -1.83166685701 -0.0210071802139 -1.84892362356 -0.0210076449439 -1.86618059873 -0.0210081969853 -1.88343819976 -0.0210088649765 -1.900696069 -0.021009213524 -1.91991901398 -0.0210088647436 -1.93914362789 -0.0210081967525 -1.95640167594 -0.0210076449439 -1.97365909815 -0.0210071802139 -1.99091622234 -0.021006744355 -2.00817272067 -0.021006395109 -2.0254291892 -0.0210061334073 -2.04268527031 -0.02100595925 -2.05994129181 -0.0210058428347 -2.07719701528 -0.0210057843942 -2.09445285797 -0.0210058137309 -2.11170852184 -0.021005930379 -2.12896442413 -0.0210061047692 -2.14622026682 -0.021006395109 -2.16347652674 -0.021006773226 -2.18073278666 -0.0210071802139 -2.19798952341 -0.0210076449439 -2.21524649858 -0.0210081969853 -2.2325040698 -0.0210088649765 -2.24976187944 -0.021009213524 -2.26898479462 -0.0210088647436 -2.28820949793 -0.0210081967525 -2.30546760559 -0.0210076449439 -2.32272493839 -0.0210071802139 -2.33998203278 -0.021006744355 -2.35723865032 -0.021006395109 -2.37449514866 -0.0210061334073 -2.39175117016 -0.02100595925 -2.40900719166 -0.0210058428347 -2.42626285553 -0.0210057843942 -2.44351863861 -0.0210058137309 -2.46077430248 -0.021005930379 -2.47803020478 -0.0210061047692 -2.49528604746 -0.021006395109 -2.51254230738 -0.021006773226 -2.5297985673 -0.0210071802139 -2.54705530405 -0.0210076449439 -2.56431227922 -0.0210081969853 -2.58156991005 -0.0210088649765 -2.5988278389 -0.021009213524 -2.61805075407 -0.0210088647436 -2.63727533817 -0.0210081967525 -2.65453338623 -0.0210076449439 -2.67179071903 -0.0210071802139 -2.68904787302 -0.021006744355 -2.70630449056 -0.021006395109 -2.7235609293 -0.0210061334073 -2.7408169508 -0.02100595925 -2.7580729723 -0.0210058428347 -2.77532869577 -0.0210057843942 -2.79258459806 -0.0210058137309 -2.80984026194 -0.021005930379 -2.82709616423 -0.0210061047692 -2.84435200691 -0.021006395109 -2.86160814762 -0.021006773226 -2.87886440754 -0.0210071802139 -2.8961212039 -0.0210076449439 -2.91337811947 -0.0210081969853 -2.93063569069 -0.0210088649765 -2.94789361954 -0.021009213524 -2.96711659431 -0.0210088647436 -2.98634117842 -0.0210081967525 -3.00359922647 -0.0210076449439 -3.02085667849 -0.0210071802139 -3.03811383248 -0.021006744355 -3.05537033081 -0.021006395109 -3.07262676954 -0.0210061334073 -3.08988279104 -0.02100595925 -3.10713881254 -0.0210058428347 -3.12439459562 -0.0210057843942 --3.14153483708 -0.0210058137309 --3.12427920103 -0.021005930379 --3.10702329874 -0.0210061047692 --3.08976745606 -0.021006395109 --3.07251131535 -0.021006773226 --3.05525505543 -0.0210071802139 --3.03799825907 -0.0210076449439 --3.0207413435 -0.0210081969853 --3.00348377228 -0.0210088649765 --2.98622584343 -0.021009213524 --2.96700286865 -0.0210088647436 --2.94777828455 -0.0210081967525 --2.93052023649 -0.0210076449439 --2.91326278448 -0.0210071802139 --2.89600563049 -0.021006744355 --2.87874913216 -0.021006395109 --2.86149269343 -0.0210061334073 --2.84423661232 -0.02100595925 --2.82698059082 -0.0210058428347 --2.80972486734 -0.0210057843942 --2.79246902466 -0.0210058137309 --2.77521342039 -0.021005930379 --2.7579575181 -0.0210061047692 --2.74070167541 -0.021006395109 --2.7234454751 -0.021006773226 --2.70618915558 -0.0210071802139 --2.68893235922 -0.0210076449439 --2.67167538405 -0.0210081969853 --2.65441781283 -0.0210088649765 --2.63716000319 -0.021009213524 --2.61793708801 -0.0210088647436 --2.5987124443 -0.0210081967525 --2.58145439625 -0.0210076449439 --2.56419700384 -0.0210071802139 --2.54693984985 -0.021006744355 --2.52968323231 -0.021006395109 --2.51242673397 -0.0210061334073 --2.49517071247 -0.02100595925 --2.47791475058 -0.0210058428347 --2.46065908671 -0.0210057843942 --2.44340324402 -0.0210058137309 --2.42614758015 -0.021005930379 --2.40889167786 -0.0210061047692 --2.39163583517 -0.021006395109 --2.37437957525 -0.021006773226 --2.35712331533 -0.0210071802139 --2.33986657858 -0.0210076449439 --2.32260960341 -0.0210081969853 --2.30535203219 -0.0210088649765 --2.28809416294 -0.021009213524 --2.26887118816 -0.0210088647436 --2.24964654446 -0.0210081967525 --2.2323884964 -0.0210076449439 --2.2151311636 -0.0210071802139 --2.19787400961 -0.021006744355 --2.18061739206 -0.021006395109 --2.16336095333 -0.0210061334073 --2.14610493183 -0.02100595925 --2.12884891033 -0.0210058428347 --2.11159318686 -0.0210057843942 --2.09433734417 -0.0210058137309 --2.0770816803 -0.021005930379 --2.0598257184 -0.0210061047692 --2.04256993532 -0.021006395109 --2.02531379461 -0.021006773226 --2.00805750489 -0.0210071802139 --1.99080070853 -0.0210076449439 --1.97354376316 -0.0210081969853 --1.95628619194 -0.0210088649765 --1.93902826309 -0.021009213524 --1.91980531812 -0.0210088647436 --1.90058073402 -0.0210081967525 --1.88332268596 -0.0210076449439 --1.86606529355 -0.0210071802139 --1.84880813956 -0.021006744355 --1.83155155182 -0.021006395109 --1.81429511309 -0.0210061334073 --1.79703909159 -0.02100595925 --1.77978307009 -0.0210058428347 --1.76252734661 -0.0210057843942 --1.74527147412 -0.0210058137309 --1.72801581025 -0.021005930379 --1.71075990796 -0.0210061047692 --1.69350406527 -0.021006395109 --1.67624786496 -0.021006773226 --1.65899160504 -0.0210071802139 --1.64173483849 -0.0210076449439 --1.62447789311 -0.0210081969853 --1.60722032189 -0.0210088649765 --1.58996245265 -0.021009213524 --1.57073950767 -0.0210088647436 --1.55151486397 -0.0210081967525 --1.53425678611 -0.0210076449439 --1.5169993937 -0.0210071802139 --1.49974226952 -0.021006744355 --1.48248571157 -0.021006395109 --1.46522924304 -0.0210061334073 --1.44797322154 -0.02100595925 --1.43071720004 -0.0210058428347 --1.41346147657 -0.0210057843942 --1.39620566368 -0.0210058137309 --1.37895002961 -0.021005930379 --1.36169412732 -0.0210061047692 --1.34443828464 -0.021006395109 --1.32718205452 -0.021006773226 --1.3099257648 -0.0210071802139 --1.29266899824 -0.0210076449439 --1.27541205287 -0.0210081969853 --1.25815448165 -0.0210088649765 --1.2408965826 -0.021009213524 --1.22167363763 -0.0210088647436 --1.20244905353 -0.0210081967525 --1.18519097567 -0.0210076449439 --1.16793358326 -0.0210071802139 --1.15067645907 -0.021006744355 --1.13341984153 -0.021006395109 --1.1161634028 -0.0210061334073 --1.0989074111 -0.02100595925 --1.08165135979 -0.0210058428347 --1.06439563632 -0.0210057843942 --1.04713979363 -0.0210058137309 --1.02988412976 -0.021005930379 --1.01262822747 -0.0210061047692 --0.995372399688 -0.021006395109 --0.978116184473 -0.021006773226 --0.960859909653 -0.0210071802139 --0.943603143096 -0.0210076449439 --0.926346182823 -0.0210081969853 --0.909088641405 -0.0210088649765 --0.89183075726 -0.021009213524 --0.872607797384 -0.0210088647436 --0.853383168578 -0.0210081967525 --0.836125090718 -0.0210076449439 --0.818867728114 -0.0210071802139 --0.801610603929 -0.021006744355 --0.784354031086 -0.021006395109 --0.767097577453 -0.0210061334073 --0.749841541052 -0.02100595925 --0.732585519552 -0.0210058428347 --0.715329810977 -0.0210057843942 --0.69807395339 -0.0210058137309 --0.680818289518 -0.021005930379 --0.663562387228 -0.0210061047692 --0.646306559444 -0.021006395109 --0.62905035913 -0.021006773226 --0.611794069409 -0.0210071802139 --0.59453728795 -0.0210076449439 --0.577280342579 -0.0210081969853 --0.560022771358 -0.0210088649765 --0.542764872313 -0.021009213524 --0.523541912436 -0.0210088647436 --0.504317298531 -0.0210081967525 --0.487059243023 -0.0210076449439 --0.469801872968 -0.0210071802139 --0.452544748783 -0.021006744355 --0.43528816104 -0.021006395109 --0.418031699955 -0.0210061334073 --0.400775685907 -0.02100595925 --0.383519664407 -0.0210058428347 --0.36626394093 -0.0210057843942 --0.349008098245 -0.0210058137309 --0.331752449274 -0.021005930379 --0.314496554434 -0.0210061047692 --0.297240711749 -0.021006395109 --0.279984496534 -0.021006773226 --0.262728221714 -0.0210071802139 --0.245471443981 -0.0210076449439 --0.228214483708 -0.0210081969853 --0.210956908763 -0.0210088649765 --0.193699028343 -0.021009213524 --0.174476075918 -0.0395497037098 --0.155247755349 -0.0395484748297 --0.13798968494 -0.0395474173129 --0.120732286945 -0.0395465022884 --0.103475136683 -0.0395457018167 --0.086218541488 -0.0395450736396 --0.0689620720223 -0.0395445884205 --0.0517060337588 -0.0395442163572 --0.0344499950297 -0.0395439867861 --0.0171942634043 -0.0395439011045 -6.15911558275e-05 -0.0395439872518 -0.017317259917 -0.0395442158915 -0.034573177807 -0.0395445306786 -0.0518290335313 -0.0395450456999 -0.0690852627158 -0.039545731619 -0.0863415524363 -0.0395465032197 -0.103598339483 -0.0395474173129 -0.120855314657 -0.0395485027693 -0.138112906366 -0.0395497325808 -0.155370805412 -0.0395503616892 -0.174593616277 -0.0395497037098 -0.193818092346 -0.0395484748297 -0.211076166481 -0.0395474173129 -0.228333558887 -0.0395465022884 -0.2455907166 -0.0395457018167 -0.262847326696 -0.0395450736396 -0.28010379523 -0.0395445884205 -0.297359824181 -0.0395442163572 -0.314615860582 -0.0395439867861 -0.331871591508 -0.0395439011045 -0.349127449095 -0.0395439872518 -0.366383105516 -0.0395442158915 -0.383639022708 -0.0395445306786 -0.400894887745 -0.0395450456999 -0.41815111041 -0.039545731619 -0.435407407582 -0.0395465032197 -0.452664196491 -0.0395474173129 -0.469921164215 -0.0395485027693 -0.487178757787 -0.0395497325808 -0.504436664284 -0.0395503616892 -0.523659467697 -0.0395497037098 -0.542883947491 -0.0395484748297 -0.560142025351 -0.0395474173129 -0.577399417758 -0.0395465022884 -0.594656571746 -0.0395457018167 -0.611913159489 -0.0395450736396 -0.629169628024 -0.0395445884205 -0.646425649523 -0.0395442163572 -0.663681671023 -0.0395439867861 -0.680937424302 -0.0395439011045 -0.69819329679 -0.0395439872518 -0.715448960662 -0.0395442158915 -0.732704877853 -0.0395445306786 -0.749960720539 -0.0395450456999 -0.767216950655 -0.039545731619 -0.784473255277 -0.0395465032197 -0.801730036735 -0.0395474173129 -0.818986997008 -0.0395485027693 -0.83624458313 -0.0395497325808 -0.853502497077 -0.0395503616892 -0.872725322843 -0.0395497037098 -0.891949802637 -0.0395484748297 -0.909207865596 -0.0395474173129 -0.926465258002 -0.0395465022884 -0.94372241199 -0.0395457018167 -0.960978999734 -0.0395450736396 -0.97823548317 -0.0395445884205 -0.995491549373 -0.0395442163572 -1.01274758578 -0.0395439867861 -1.03000327945 -0.0395439011045 -1.04725912213 -0.0395439872518 -1.064514786 -0.0395442158915 -1.0817706883 -0.0395445306786 -1.09902656078 -0.0395450456999 -1.1162828207 -0.039545731619 -1.13353911042 -0.0395465032197 -1.15079587698 -0.0395474173129 -1.16805285216 -0.0395485027693 -1.18531045318 -0.0395497325808 -1.20256835222 -0.0395503616892 -1.22179117799 -0.0395497037098 -1.24101564288 -0.0395484748297 -1.25827369094 -0.0395474173129 -1.27553108334 -0.0395465022884 -1.29278823733 -0.0395457018167 -1.31004485488 -0.0395450736396 -1.32730135322 -0.0395445884205 -1.34455737472 -0.0395442163572 -1.36181339622 -0.0395439867861 -1.3790691495 -0.0395439011045 -1.39632502199 -0.0395439872518 -1.41358068585 -0.0395442158915 -1.43083658815 -0.0395445306786 -1.44809243083 -0.0395450456999 -1.46534863114 -0.039545731619 -1.48260492087 -0.0395465032197 -1.49986174703 -0.0395474173129 -1.5171187222 -0.0395485027693 -1.53437629342 -0.0395497325808 -1.55163422227 -0.0395503616892 -1.57085704803 -0.0395497037098 -1.59008151293 -0.0395484748297 -1.60733959079 -0.0395474173129 -1.6245969832 -0.0395465022884 -1.64185413718 -0.0395457018167 -1.65911072492 -0.0395450736396 -1.67636716366 -0.0395445884205 -1.69362321496 -0.0395442163572 -1.71087926626 -0.0395439867861 -1.72813498974 -0.0395439011045 -1.74539083243 -0.0395439872518 -1.7626464665 -0.0395442158915 -1.77990236878 -0.0395445306786 -1.79715827108 -0.0395450456999 -1.81441453099 -0.039545731619 -1.83167082071 -0.0395465032197 -1.84892758727 -0.0395474173129 -1.86618456244 -0.0395485027693 -1.88344219327 -0.0395497325808 -1.90070006251 -0.0395503616892 -1.91992285848 -0.0395497037098 -1.93914732337 -0.0395484748297 -1.95640537143 -0.0395474173129 -1.97366279363 -0.0395465022884 -1.99091994762 -0.0395457018167 -2.00817653537 -0.0395450736396 -2.0254330039 -0.0395445884205 -2.04268908501 -0.0395442163572 -2.05994510651 -0.0395439867861 -2.07720077038 -0.0395439011045 -2.09445667267 -0.0395439872518 -2.11171239615 -0.0395442158915 -2.12896829844 -0.0395445306786 -2.14622414112 -0.0395450456999 -2.16348040104 -0.039545731619 -2.18073666096 -0.0395465032197 -2.19799339771 -0.0395474173129 -2.21525043249 -0.0395485027693 -2.23250800371 -0.0395497325808 -2.24976581335 -0.0395503616892 -2.26898866892 -0.0395497037098 -2.28821319342 -0.0395484748297 -2.30547130108 -0.0395474173129 -2.32272869348 -0.0395465022884 -2.33998584747 -0.0395457018167 -2.35724246502 -0.0395450736396 -2.37449890375 -0.0395445884205 -2.39175492525 -0.0395442163572 -2.40901100636 -0.0395439867861 -2.42626672983 -0.0395439011045 -2.44352251291 -0.0395439872518 -2.46077817678 -0.0395442158915 -2.47803407908 -0.0395445306786 -2.49528992176 -0.0395450456999 -2.51254618168 -0.039545731619 -2.5298025012 -0.0395465032197 -2.54705929756 -0.0395474173129 -2.56431627273 -0.0395485027693 -2.58157390356 -0.0395497325808 -2.59883183241 -0.0395503616892 -2.61805462837 -0.0395497037098 -2.63727909327 -0.0395484748297 -2.65453714133 -0.0395474173129 -2.67179447412 -0.0395465022884 -2.68905162811 -0.0395457018167 -2.70630824566 -0.0395450736396 -2.723564744 -0.0395445884205 -2.7408207655 -0.0395442163572 -2.75807678699 -0.0395439867861 -2.77533257007 -0.0395439011045 -2.79258841276 -0.0395439872518 -2.80984407664 -0.0395442158915 -2.82710003853 -0.0395445306786 -2.84435588121 -0.0395450456999 -2.86161202192 -0.039545731619 -2.87886828184 -0.0395465032197 -2.8961251378 -0.0395474173129 -2.91338211298 -0.0395485027693 -2.9306396842 -0.0395497325808 -2.94789761305 -0.0395503616892 -2.96712040901 -0.0395497037098 -2.98634487391 -0.0395484748297 -3.00360298157 -0.0395474173129 -3.02086043358 -0.0395465022884 -3.03811758757 -0.0395457018167 -3.0553740859 -0.0395450736396 -3.07263052464 -0.0395445884205 -3.08988660574 -0.0395442163572 -3.10714262724 -0.0395439867861 -3.12439835071 -0.0395439011045 --3.14153108199 -0.0395439872518 --3.12427538633 -0.0395442158915 --3.10701942444 -0.0395445306786 --3.08976358175 -0.0395450456999 --3.07250744104 -0.039545731619 --3.05525118113 -0.0395465032197 --3.03799432516 -0.0395474173129 --3.02073734998 -0.0395485027693 --3.00347977877 -0.0395497325808 --2.98622184992 -0.0395503616892 --2.96699905396 -0.0395497037098 --2.94777458906 -0.0395484748297 --2.9305164814 -0.0395474173129 --2.91325902939 -0.0395465022884 --2.8960018754 -0.0395457018167 --2.87874531746 -0.0395450736396 --2.86148887873 -0.0395445884205 --2.84423279762 -0.0395442163572 --2.82697677612 -0.0395439867861 --2.80972111225 -0.0395439011045 --2.79246520996 -0.0395439872518 --2.77520954609 -0.0395442158915 --2.7579536438 -0.0395445306786 --2.74069780111 -0.0395450456999 --2.7234415412 -0.039545731619 --2.70618516207 -0.0395465032197 --2.68892842531 -0.0395474173129 --2.67167145014 -0.0395485027693 --2.65441381931 -0.0395497325808 --2.63715600967 -0.0395503616892 --2.61793327332 -0.0395497037098 --2.59870874882 -0.0395484748297 --2.58145064115 -0.0395474173129 --2.56419324875 -0.0395465022884 --2.54693609476 -0.0395457018167 --2.52967947722 -0.0395450736396 --2.51242297888 -0.0395445884205 --2.49516695738 -0.0395442163572 --2.47791099548 -0.0395439867861 --2.460655272 -0.0395439011045 --2.44339936972 -0.0395439872518 --2.42614370584 -0.0395442158915 --2.40888780355 -0.0395445306786 --2.39163196087 -0.0395450456999 --2.37437570095 -0.039545731619 --2.35711938142 -0.0395465032197 --2.33986264467 -0.0395474173129 --2.3226056695 -0.0395485027693 --2.30534803867 -0.0395497325808 --2.28809016943 -0.0395503616892 --2.26886731386 -0.0395497037098 --2.24964278936 -0.0395484748297 --2.23238474131 -0.0395474173129 --2.21512740851 -0.0395465022884 --2.19787025452 -0.0395457018167 --2.18061363697 -0.0395450736396 --2.16335713863 -0.0395445884205 --2.14610111714 -0.0395442163572 --2.12884509564 -0.0395439867861 --2.11158931256 -0.0395439011045 --2.09433352947 -0.0395439872518 --2.0770778656 -0.0395442158915 --2.0598218441 -0.0395445306786 --2.04256600141 -0.0395450456999 --2.02530986071 -0.039545731619 --2.00805360079 -0.0395465032197 --1.99079677463 -0.0395474173129 --1.97353979946 -0.0395485027693 --1.95628222824 -0.0395497325808 --1.93902429938 -0.0395503616892 --1.91980144381 -0.0395497037098 --1.90057697892 -0.0395484748297 --1.88331893086 -0.0395474173129 --1.86606153846 -0.0395465022884 --1.84880438447 -0.0395457018167 --1.83154776692 -0.0395450736396 --1.81429129839 -0.0395445884205 --1.79703527689 -0.0395442163572 --1.77977925539 -0.0395439867861 --1.76252353192 -0.0395439011045 --1.74526765943 -0.0395439872518 --1.72801196575 -0.0395442158915 --1.71075603366 -0.0395445306786 --1.69350019097 -0.0395450456999 --1.67624399066 -0.039545731619 --1.65898770094 -0.0395465032197 --1.64173090458 -0.0395474173129 --1.62447392941 -0.0395485027693 --1.60721632838 -0.0395497325808 --1.58995845914 -0.0395503616892 --1.57073566318 -0.0395497037098 --1.55151116848 -0.0395484748297 --1.53425309062 -0.0395474173129 --1.51699566841 -0.0395465022884 --1.49973854422 -0.0395457018167 --1.48248198629 -0.0395450736396 --1.46522548795 -0.0395445884205 --1.44796943664 -0.0395442163572 --1.43071338535 -0.0395439867861 --1.41345766187 -0.0395439011045 --1.39620181918 -0.0395439872518 --1.37894615531 -0.0395442158915 --1.36169025302 -0.0395445306786 --1.34443438053 -0.0395450456999 --1.32717812061 -0.039545731619 --1.3099218309 -0.0395465032197 --1.29266506434 -0.0395474173129 --1.27540811897 -0.0395485027693 --1.25815054775 -0.0395497325808 --1.2408926189 -0.0395503616892 --1.22166979313 -0.0395497037098 --1.20244532824 -0.0395484748297 --1.18518725038 -0.0395474173129 --1.16792985797 -0.0395465022884 --1.15067270398 -0.0395457018167 --1.13341608644 -0.0395450736396 --1.1161596179 -0.0395445884205 --1.0989035964 -0.0395442163572 --1.0816475451 -0.0395439867861 --1.06439179182 -0.0395439011045 --1.04713594914 -0.0395439872518 --1.02988028526 -0.0395442158915 --1.01262435317 -0.0395445306786 --0.995368510484 -0.0395450456999 --0.978112280369 -0.039545731619 --0.960855990648 -0.0395465032197 --0.94359920919 -0.0395474173129 --0.926342219114 -0.0395485027693 --0.909084662795 -0.0395497325808 --0.89182677865 -0.0395503616892 --0.872603952884 -0.0395497037098 --0.85337947309 -0.0395484748297 --0.83612138033 -0.0395474173129 --0.818864002824 -0.0395465022884 --0.801606863737 -0.0395457018167 --0.784350261092 -0.0395450736396 --0.767093792558 -0.0395445884205 --0.749837741256 -0.0395442163572 --0.732581689954 -0.0395439867861 --0.715325966477 -0.0395439011045 --0.698070108891 -0.0395439872518 --0.680814445019 -0.0395442158915 --0.663558527828 -0.0395445306786 --0.646302670241 -0.0395450456999 --0.629046455025 -0.039545731619 --0.611790135503 -0.0395465032197 --0.594533339143 -0.0395474173129 --0.577276393771 -0.0395485027693 --0.56001880765 -0.0395497325808 --0.542760878801 -0.0395503616892 --0.523538053036 -0.0395497037098 --0.504313603043 -0.0395484748297 --0.487055540085 -0.0395474173129 --0.469798140227 -0.0395465022884 --0.45254099369 -0.0395457018167 --0.435284398496 -0.0395450736396 --0.418027922511 -0.0395445884205 --0.40077188611 -0.0395442163572 --0.38351584971 -0.0395439867861 --0.366260111332 -0.0395439011045 --0.349004261195 -0.0395439872518 --0.331748597324 -0.0395442158915 --0.314492672681 -0.0395445306786 --0.297236815095 -0.0395450456999 --0.27998059243 -0.039545731619 --0.262724302709 -0.0395465032197 --0.245467506349 -0.0395474173129 --0.228210531175 -0.0395485027693 --0.210952941328 -0.0395497325808 --0.193695042282 -0.0395503616892 --0.174472227692 -0.0580772683024 --0.15524405241 -0.0580755006522 --0.1379859671 -0.058073955588 --0.120728552341 -0.058072607033 --0.103471387178 -0.0580714559182 --0.0862147789448 -0.058070502244 --0.0689582899213 -0.0580697450787 --0.0517022339627 -0.0580692104995 --0.0344461817294 -0.0580689003691 --0.0171904347371 -0.0580687876791 -6.54358882475e-05 -0.0580689003691 -0.0173211209476 -0.0580692375079 -0.0345770549029 -0.0580697441474 -0.0518329255283 -0.0580704743043 -0.0690891677514 -0.0580714568496 -0.0863454733044 -0.0580726079643 -0.103602278978 -0.058073955588 -0.12085926719 -0.0580755565315 -0.138116873801 -0.0580773251131 -0.155374795199 -0.0580782229081 -0.174597468227 -0.0580772962421 -0.19382179901 -0.0580755285919 -0.211079891771 -0.058073955588 -0.228337302804 -0.058072607033 -0.245594471693 -0.0580714559182 -0.26285109669 -0.058070502244 -0.280107580126 -0.0580697450787 -0.297363609075 -0.0580692104995 -0.314619660377 -0.0580689003691 -0.331875413656 -0.0580687876791 -0.349131293595 -0.0580689003691 -0.366386979818 -0.0580692375079 -0.383642904461 -0.0580697441474 -0.400898776949 -0.0580704743043 -0.418155021965 -0.0580714568496 -0.435411334038 -0.0580726079643 -0.452668130398 -0.058073955588 -0.469925113022 -0.0580755565315 -0.487182721496 -0.0580773251131 -0.504440642893 -0.0580782229081 -0.523663312197 -0.0580772962421 -0.54288764298 -0.0580755285919 -0.56014573574 -0.058073955588 -0.577403157949 -0.058072607033 -0.594660326839 -0.0580714559182 -0.611916929484 -0.058070502244 -0.629173412919 -0.0580697450787 -0.64642944932 -0.0580692104995 -0.663685500622 -0.0580689003691 -0.680941268802 -0.0580687876791 -0.69819714129 -0.0580689003691 -0.715452834964 -0.0580692375079 -0.732708781957 -0.0580697441474 -0.749964639545 -0.0580704743043 -0.767220884562 -0.0580714568496 -0.784477189183 -0.0580726079643 -0.801733970642 -0.058073955588 -0.818990945816 -0.0580755565315 -0.836248546839 -0.0580773251131 -0.853506475687 -0.0580782229081 -0.872729167342 -0.0580772683024 -0.891953498125 -0.0580755006522 -0.909211575985 -0.058073955588 -0.926468983293 -0.058072607033 -0.943726152182 -0.0580714559182 -0.960982769728 -0.058070502244 -0.978239268065 -0.0580697450787 -0.995495319369 -0.0580692104995 -1.01275137067 -0.0580689003691 -1.03000712395 -0.0580687876791 -1.04726299643 -0.0580689003691 -1.06451866031 -0.0580692375079 -1.0817745626 -0.0580697441474 -1.09903046489 -0.0580704743043 -1.11628672481 -0.0580714568496 -1.13354301453 -0.0580726079643 -1.15079981089 -0.058073955588 -1.16805678606 -0.0580755565315 -1.18531438709 -0.0580773251131 -1.20257231593 -0.0580782229081 -1.22179502249 -0.0580772962421 -1.24101936817 -0.0580755285919 -1.25827744603 -0.058073955588 -1.27553483844 -0.058072607033 -1.29279199243 -0.0580714559182 -1.31004860997 -0.058070502244 -1.32730510831 -0.0580697450787 -1.34456115961 -0.0580692104995 -1.36181721091 -0.0580689003691 -1.37907296419 -0.0580687876791 -1.39632883668 -0.0580689003691 -1.41358453035 -0.0580692375079 -1.43084046244 -0.0580697441474 -1.44809633493 -0.0580704743043 -1.46535256505 -0.0580714568496 -1.48260885477 -0.0580726079643 -1.49986568094 -0.058073955588 -1.51712268591 -0.0580755565315 -1.53438028694 -0.0580773251131 -1.55163821578 -0.0580782229081 -1.57086089253 -0.0580772962421 -1.59008520842 -0.0580755285919 -1.60734328627 -0.058073955588 -1.62460070848 -0.058072607033 -1.64185789227 -0.0580714559182 -1.65911450982 -0.058070502244 -1.67637097836 -0.0580697450787 -1.69362702966 -0.0580692104995 -1.71088308096 -0.0580689003691 -1.72813880444 -0.0580687876791 -1.74539467693 -0.0580689003691 -1.7626503706 -0.0580692375079 -1.77990627289 -0.0580697441474 -1.79716214537 -0.0580704743043 -1.8144184053 -0.0580714568496 -1.83167472482 -0.0580726079643 -1.84893155098 -0.058073955588 -1.86618852615 -0.0580755565315 -1.88344612718 -0.0580773251131 -1.90070402622 -0.0580782229081 -1.91992670298 -0.0580772683024 -1.93915104866 -0.0580755006522 -1.95640912652 -0.058073955588 -1.97366654873 -0.058072607033 -1.99092370271 -0.0580714559182 -2.00818035006 -0.058070502244 -2.02543687821 -0.0580697450787 -2.0426928997 -0.0580692104995 -2.0599489212 -0.0580689003691 -2.07720464468 -0.0580687876791 -2.09446054697 -0.0580689003691 -2.11171627045 -0.0580692375079 -2.12897217274 -0.0580697441474 -2.14622801542 -0.0580704743043 -2.16348427534 -0.0580714568496 -2.18074053526 -0.0580726079643 -2.19799733162 -0.058073955588 -2.2152543664 -0.0580755565315 -2.23251193762 -0.0580773251131 -2.24976986647 -0.0580782229081 -2.26899260283 -0.0580772683024 -2.2882168889 -0.0580755006522 -2.30547493696 -0.058073955588 -2.32273238897 -0.058072607033 -2.33998960257 -0.0580714559182 -2.35724622011 -0.058070502244 -2.37450265884 -0.0580697450787 -2.39175868034 -0.0580692104995 -2.40901476145 -0.0580689003691 -2.42627054453 -0.0580687876791 -2.44352638721 -0.0580689003691 -2.46078205109 -0.0580692375079 -2.47803795338 -0.0580697441474 -2.49529379606 -0.0580704743043 -2.51255005598 -0.0580714568496 -2.52980643511 -0.0580726079643 -2.54706329108 -0.058073955588 -2.56432026624 -0.0580755565315 -2.58157783746 -0.0580773251131 -2.59883576632 -0.0580782229081 -2.61805844307 -0.0580772962421 -2.63728278875 -0.0580755285919 -2.65454089642 -0.058073955588 -2.67179822922 -0.058072607033 -2.6890553832 -0.0580714559182 -2.70631200075 -0.058070502244 -2.72356849909 -0.0580697450787 -2.74082458019 -0.0580692104995 -2.75808066129 -0.0580689003691 -2.77533638477 -0.0580687876791 -2.79259216786 -0.0580689003691 -2.80984789133 -0.0580692375079 -2.82710391283 -0.0580697441474 -2.84435975552 -0.0580704743043 -2.86161595583 -0.0580714568496 -2.87887227536 -0.0580726079643 -2.89612907171 -0.058073955588 -2.91338604688 -0.0580755565315 -2.93064367771 -0.0580773251131 -2.94790160656 -0.0580782229081 -2.96712422371 -0.0580772683024 -2.9863485694 -0.0580755006522 -3.00360673666 -0.058073955588 -3.02086418867 -0.058072607033 -3.03812128306 -0.0580714559182 -3.05537784099 -0.058070502244 -3.07263433933 -0.0580697450787 -3.08989042044 -0.0580692104995 -3.10714650154 -0.0580689003691 -3.12440222502 -0.0580687876791 --3.1415272673 -0.0580689003691 --3.12427157164 -0.0580692375079 --3.10701555014 -0.0580697441474 --3.08975970745 -0.0580704743043 --3.07250350714 -0.0580714568496 --3.05524718761 -0.0580726079643 --3.03799039125 -0.058073955588 --3.02073341608 -0.0580755565315 --3.00347578525 -0.0580773251131 --2.98621785641 -0.0580782229081 --2.96699523926 -0.0580772962421 --2.94777089357 -0.0580755285919 --2.93051272631 -0.058073955588 --2.9132552743 -0.058072607033 --2.89599812031 -0.0580714559182 --2.87874150276 -0.058070502244 --2.86148500442 -0.0580697450787 --2.84422898293 -0.0580692104995 --2.82697296142 -0.0580689003691 --2.80971723795 -0.0580687876791 --2.79246133566 -0.0580689003691 --2.77520567179 -0.0580692375079 --2.7579497695 -0.0580697441474 --2.74069386721 -0.0580704743043 --2.72343760729 -0.0580714568496 --2.70618128776 -0.0580726079643 --2.68892455101 -0.058073955588 --2.67166757584 -0.0580755565315 --2.65440988541 -0.0580773251131 --2.63715201616 -0.0580782229081 --2.61792939901 -0.0580772962421 --2.59870505333 -0.0580755285919 --2.58144694567 -0.058073955588 --2.56418949366 -0.058072607033 --2.54693233967 -0.0580714559182 --2.52967572212 -0.058070502244 --2.51241922378 -0.0580697450787 --2.49516320229 -0.0580692104995 --2.47790718079 -0.0580689003691 --2.4606513977 -0.0580687876791 --2.44339549541 -0.0580689003691 --2.42613983154 -0.0580692375079 --2.40888392925 -0.0580697441474 --2.39162808657 -0.0580704743043 --2.37437182665 -0.0580714568496 --2.35711550712 -0.0580726079643 --2.33985871076 -0.058073955588 --2.32260167599 -0.0580755565315 --2.30534404516 -0.0580773251131 --2.28808611631 -0.0580782229081 --2.26886343956 -0.0580772683024 --2.24963915348 -0.0580755006522 --2.23238110542 -0.058073955588 --2.21512371302 -0.058072607033 --2.19786649942 -0.0580714559182 --2.18060988188 -0.058070502244 --2.16335338354 -0.0580697450787 --2.14609730244 -0.0580692104995 --2.12884128094 -0.0580689003691 --2.11158555746 -0.0580687876791 --2.09432971478 -0.0580689003691 --2.0770739913 -0.0580692375079 --2.0598179698 -0.0580697441474 --2.04256212711 -0.0580704743043 --2.0253059864 -0.0580714568496 --2.00804966688 -0.0580726079643 --1.99079281091 -0.058073955588 --1.97353583574 -0.0580755565315 --1.95627823472 -0.0580773251131 --1.93902030587 -0.0580782229081 --1.91979759932 -0.0580772962421 --1.90057328343 -0.0580755285919 --1.88331520557 -0.058073955588 --1.86605778337 -0.058072607033 --1.84880062938 -0.0580714559182 --1.83154401183 -0.058070502244 --1.8142875135 -0.0580697450787 --1.79703146219 -0.0580692104995 --1.77977544069 -0.0580689003691 --1.76251971722 -0.0580687876791 --1.74526384473 -0.0580689003691 --1.72800812125 -0.0580692375079 --1.71075215936 -0.0580697441474 --1.69349631667 -0.0580704743043 --1.67624008656 -0.0580714568496 --1.65898376703 -0.0580726079643 --1.64172697067 -0.058073955588 --1.6244699657 -0.0580755565315 --1.60721233487 -0.0580773251131 --1.58995446563 -0.0580782229081 --1.57073181867 -0.0580772962421 --1.55150747299 -0.0580755285919 --1.53424939513 -0.058073955588 --1.51699194312 -0.058072607033 --1.49973478913 -0.0580714559182 --1.48247820139 -0.058070502244 --1.46522170305 -0.0580697450787 --1.44796565175 -0.0580692104995 --1.43070957065 -0.0580689003691 --1.41345381737 -0.0580687876791 --1.39619794488 -0.0580689003691 --1.37894228101 -0.0580692375079 --1.36168637871 -0.0580697441474 --1.34443047642 -0.0580704743043 --1.32717421651 -0.0580714568496 --1.30991792679 -0.0580726079643 --1.29266113043 -0.058073955588 --1.27540415525 -0.0580755565315 --1.25814655423 -0.0580773251131 --1.24088862538 -0.0580782229081 --1.22166594863 -0.0580772683024 --1.20244163275 -0.0580755006522 --1.18518352508 -0.058073955588 --1.16792610288 -0.058072607033 --1.15066894889 -0.0580714559182 --1.13341233135 -0.058070502244 --1.11615583301 -0.0580697450787 --1.09889978171 -0.0580692104995 --1.0816437304 -0.0580689003691 --1.06438797712 -0.0580687876791 --1.04713213444 -0.0580689003691 --1.02987644076 -0.0580692375079 --1.01262047887 -0.0580697441474 --0.99536462128 -0.0580704743043 --0.978108376264 -0.0580714568496 --0.960852071643 -0.0580726079643 --0.943595275283 -0.058073955588 --0.926338270306 -0.0580755565315 --0.909080684185 -0.0580773251131 --0.891822770238 -0.0580782229081 --0.872600078582 -0.0580772683024 --0.8533757478 -0.0580755006522 --0.83611766994 -0.058073955588 --0.818860277534 -0.058072607033 --0.801603108645 -0.0580714559182 --0.784346476197 -0.058070502244 --0.767089992762 -0.0580697450787 --0.74983394146 -0.0580692104995 --0.732577875257 -0.0580689003691 --0.715322136879 -0.0580687876791 --0.698066264391 -0.0580689003691 --0.680810585618 -0.0580692375079 --0.663554653526 -0.0580697441474 --0.646298781038 -0.0580704743043 --0.62904253602 -0.0580714568496 --0.611786201596 -0.0580726079643 --0.594529405236 -0.058073955588 --0.577272430063 -0.0580755565315 --0.56001482904 -0.0580773251131 --0.542756900191 -0.0580782229081 --0.523534223437 -0.0580772962421 --0.504309915006 -0.0580755285919 --0.487051829695 -0.058073955588 --0.469794414937 -0.058072607033 --0.452537246048 -0.0580714559182 --0.435280628502 -0.058070502244 --0.418024145066 -0.0580697450787 --0.400768093765 -0.0580692104995 --0.383512035012 -0.0580689003691 --0.366256281733 -0.0580687876791 --0.349000409245 -0.0580689003691 --0.331744737923 -0.0580692375079 --0.31448880583 -0.0580697441474 --0.297232925892 -0.0580704743043 --0.279976680875 -0.0580714568496 --0.262720368802 -0.0580726079643 --0.245463564992 -0.058073955588 --0.228206582367 -0.0580755565315 --0.210948970169 -0.0580773251131 --0.193691052496 -0.0580782229081 --0.174468383193 -0.0765865892172 --0.155240356922 -0.0765842460096 --0.137982252985 -0.0765821766108 --0.120724821463 -0.0765803847462 --0.103467641398 -0.0765788685531 --0.0862110164016 -0.0765776280314 --0.0689545106143 -0.0765766352415 --0.0516984378919 -0.0765759442002 --0.0344423688948 -0.0765755586326 --0.0171866058372 -0.0765754207969 -6.92796893425e-05 -0.076575530693 -0.0173249803483 -0.0765759721398 -0.0345809292048 -0.0765766911208 -0.0518368156627 -0.0765776559711 -0.0690930746496 -0.0765788964927 -0.0863493960351 -0.0765804126859 -0.103606216609 -0.0765822045505 -0.120863221586 -0.0765842739492 -0.138120848686 -0.0765866432339 -0.15537878871 -0.0765878558159 -0.174601316452 -0.0765866171569 -0.193825501949 -0.0765842739493 -0.211083609611 -0.0765821766108 -0.228341035545 -0.0765803847462 -0.24559821561 -0.0765788685531 -0.262854851782 -0.0765776280314 -0.280111350119 -0.0765766352415 -0.297367408872 -0.0765759442002 -0.314623475075 -0.0765755586326 -0.331879235804 -0.0765754207969 -0.349135130644 -0.076575530693 -0.366390839219 -0.0765759721398 -0.383646786213 -0.0765766911208 -0.400902673602 -0.0765776559711 -0.41815893352 -0.0765788964927 -0.435415253043 -0.0765804126859 -0.452672064305 -0.0765822045505 -0.46992906928 -0.0765842739492 -0.487186692655 -0.0765866432339 -0.504444621504 -0.0765878558159 -0.523667156696 -0.0765866171569 -0.542891338468 -0.0765842739493 -0.56014944613 -0.0765821766108 -0.577406898141 -0.0765803847462 -0.594664081931 -0.0765788685531 -0.611920684576 -0.0765776280314 -0.629177182913 -0.0765766352415 -0.646433249116 -0.0765759442002 -0.663689300418 -0.0765755586326 -0.680945083499 -0.0765754207969 -0.698200970888 -0.076575530693 -0.715456679464 -0.0765759721398 -0.732712656259 -0.0765766911208 -0.749968543648 -0.0765776559711 -0.767224803567 -0.0765788964927 -0.784481108189 -0.0765804126859 -0.80173791945 -0.0765822045505 -0.818994924426 -0.0765842739492 -0.836252555251 -0.0765866432339 -0.853510484099 -0.0765878558159 -0.87273299694 -0.0765865892172 -0.891957193613 -0.0765842460096 -0.909215286374 -0.0765821766108 -0.926472708583 -0.0765803847462 -0.943729907274 -0.0765788685531 -0.960986539722 -0.0765776280314 -0.97824305296 -0.0765766352415 -0.995499119164 -0.0765759442002 -1.01275518537 -0.0765755586326 -1.03001093864 -0.0765754207969 -1.04726681113 -0.076575530693 -1.06452253461 -0.0765759721398 -1.0817784667 -0.0765766911208 -1.09903433919 -0.0765776559711 -1.11629059911 -0.0765788964927 -1.13354694843 -0.0765804126859 -1.15080377459 -0.0765822045505 -1.16806074977 -0.0765842739492 -1.1853183806 -0.0765866432339 -1.20257630944 -0.0765878558159 -1.22179883718 -0.0765866171569 -1.24102303385 -0.0765842739493 -1.25828114152 -0.0765821766108 -1.27553856373 -0.0765803847462 -1.29279574752 -0.0765788685531 -1.31005236507 -0.0765776280314 -1.3273088634 -0.0765766352415 -1.34456497431 -0.0765759442002 -1.36182105542 -0.0765755586326 -1.37907677889 -0.0765754207969 -1.39633265138 -0.076575530693 -1.41358837485 -0.0765759721398 -1.43084433675 -0.0765766911208 -1.44810023904 -0.0765776559711 -1.46535649895 -0.0765788964927 -1.48261278868 -0.0765804126859 -1.49986961484 -0.0765822045505 -1.51712664962 -0.0765842739492 -1.53438428045 -0.0765866432339 -1.55164220929 -0.0765878558159 -1.57086473703 -0.0765866171569 -1.5900889039 -0.0765842739493 -1.60734698176 -0.0765821766108 -1.62460443378 -0.0765803847462 -1.64186164737 -0.0765788685531 -1.65911826492 -0.0765776280314 -1.67637476325 -0.0765766352415 -1.69363084435 -0.0765759442002 -1.71088689565 -0.0765755586326 -1.72814264894 -0.0765754207969 -1.74539855123 -0.076575530693 -1.7626542747 -0.0765759721398 -1.77991020679 -0.0765766911208 -1.79716604948 -0.0765776559711 -1.8144223094 -0.0765788964927 -1.83167865873 -0.0765804126859 -1.84893548489 -0.0765822045505 -1.86619246006 -0.0765842739492 -1.88345006109 -0.0765866432339 -1.90070798993 -0.0765878558159 -1.91993051767 -0.0765865892172 -1.93915471434 -0.0765842460096 -1.95641285181 -0.0765821766108 -1.97367030382 -0.0765803847462 -1.99092745781 -0.0765788685531 -2.00818410516 -0.0765776280314 -2.0254406333 -0.0765766352415 -2.0426966548 -0.0765759442002 -2.0599527359 -0.0765755586326 -2.07720851898 -0.0765754207969 -2.09446442127 -0.076575530693 -2.11172014475 -0.0765759721398 -2.12897604704 -0.0765766911208 -2.14623188972 -0.0765776559711 -2.16348814964 -0.0765788964927 -2.18074446917 -0.0765804126859 -2.19800132513 -0.0765822045505 -2.21525830031 -0.0765842739492 -2.23251587153 -0.0765866432339 -2.24977385998 -0.0765878558159 -2.26899641752 -0.0765865892172 -2.28822058439 -0.0765842460096 -2.30547869205 -0.0765821766108 -2.32273614406 -0.0765803847462 -2.33999329805 -0.0765788685531 -2.3572499156 -0.0765776280314 -2.37450647354 -0.0765766352415 -2.39176255464 -0.0765759442002 -2.40901857614 -0.0765755586326 -2.42627429962 -0.0765754207969 -2.44353020191 -0.076575530693 -2.46078592539 -0.0765759721398 -2.47804182768 -0.0765766911208 -2.49529772997 -0.0765776559711 -2.51255404949 -0.0765788964927 -2.52981042862 -0.0765804126859 -2.54706722498 -0.0765822045505 -2.56432420015 -0.0765842739492 -2.58158183098 -0.0765866432339 -2.59883975983 -0.0765878558159 -2.61806225777 -0.0765866171569 -2.63728642464 -0.0765842739493 -2.6545445919 -0.0765821766108 -2.67180198431 -0.0765803847462 -2.6890591383 -0.0765788685531 -2.70631575584 -0.0765776280314 -2.72357225418 -0.0765766352415 -2.74082839489 -0.0765759442002 -2.75808447599 -0.0765755586326 -2.77534019947 -0.0765754207969 -2.79259604216 -0.076575530693 -2.80985176563 -0.0765759721398 -2.82710778713 -0.0765766911208 -2.84436362982 -0.0765776559711 -2.86161988974 -0.0765788964927 -2.87887626887 -0.0765804126859 -2.89613300562 -0.0765822045505 -2.91338998079 -0.0765842739492 -2.93064767122 -0.0765866432339 -2.94790560007 -0.0765878558159 -2.96712809801 -0.0765865892172 -2.98635232449 -0.0765842460096 -3.00361043215 -0.0765821766108 -3.02086788416 -0.0765803847462 -3.03812503815 -0.0765788685531 -3.05538165569 -0.0765776280314 -3.07263815403 -0.0765766352415 -3.08989417553 -0.0765759442002 -3.10715031624 -0.0765755586326 -3.12440609932 -0.0765754207969 --3.14152339299 -0.076575530693 --3.12426769734 -0.0765759721398 --3.10701167584 -0.0765766911208 --3.08975583315 -0.0765776559711 --3.07249957323 -0.0765788964927 --3.0552431941 -0.0765804126859 --3.03798645735 -0.0765822045505 --3.02072948217 -0.0765842739492 --3.00347179174 -0.0765866432339 --2.9862138629 -0.0765878558159 --2.96699136496 -0.0765866171569 --2.94776713848 -0.0765842739493 --2.93050903082 -0.0765821766108 --2.91325157881 -0.0765803847462 --2.89599436521 -0.0765788685531 --2.87873774767 -0.0765776280314 --2.86148124933 -0.0765766352415 --2.84422522783 -0.0765759442002 --2.82696914673 -0.0765755586326 --2.80971336365 -0.0765754207969 --2.79245746136 -0.076575530693 --2.77520179749 -0.0765759721398 --2.7579458952 -0.0765766911208 --2.7406899929 -0.0765776559711 --2.72343373299 -0.0765788964927 --2.70617741346 -0.0765804126859 --2.6889206171 -0.0765822045505 --2.67166364193 -0.0765842739492 --2.6544060111 -0.0765866432339 --2.63714808226 -0.0765878558159 --2.61792552471 -0.0765866171569 --2.59870129824 -0.0765842739493 --2.58144319058 -0.0765821766108 --2.56418573857 -0.0765803847462 --2.54692858458 -0.0765788685531 --2.52967196703 -0.0765776280314 --2.51241546869 -0.0765766352415 --2.49515944719 -0.0765759442002 --2.47790336609 -0.0765755586326 --2.46064758301 -0.0765754207969 --2.44339168072 -0.076575530693 --2.42613595724 -0.0765759721398 --2.40888005495 -0.0765766911208 --2.39162415266 -0.0765776559711 --2.37436789274 -0.0765788964927 --2.35711163282 -0.0765804126859 --2.33985477686 -0.0765822045505 --2.32259768248 -0.0765842739492 --2.30534005165 -0.0765866432339 --2.2880821228 -0.0765878558159 --2.26885962486 -0.0765865892172 --2.2496355176 -0.0765842460096 --2.23237740994 -0.0765821766108 --2.21511995793 -0.0765803847462 --2.19786274433 -0.0765788685531 --2.18060612678 -0.0765776280314 --2.16334962845 -0.0765766352415 --2.14609348774 -0.0765759442002 --2.12883746624 -0.0765755586326 --2.11158174276 -0.0765754207969 --2.09432584047 -0.076575530693 --2.077070117 -0.0765759721398 --2.0598140955 -0.0765766911208 --2.04255825281 -0.0765776559711 --2.0253020525 -0.0765788964927 --2.00804570317 -0.0765804126859 --1.99078887701 -0.0765822045505 --1.97353187204 -0.0765842739492 --1.95627424121 -0.0765866432339 --1.93901631236 -0.0765878558159 --1.91979378462 -0.0765866171569 --1.90056961775 -0.0765842739493 --1.88331151009 -0.0765821766108 --1.86605405808 -0.0765803847462 --1.84879687429 -0.0765788685531 --1.83154025674 -0.0765776280314 --1.8142837584 -0.0765766352415 --1.7970276773 -0.0765759442002 --1.779771626 -0.0765755586326 --1.76251587271 -0.0765754207969 --1.74525997043 -0.076575530693 --1.72800424695 -0.0765759721398 --1.71074828506 -0.0765766911208 --1.69349241257 -0.0765776559711 --1.67623615265 -0.0765788964927 --1.65897983312 -0.0765804126859 --1.64172303676 -0.0765822045505 --1.62446603179 -0.0765842739492 --1.60720840097 -0.0765866432339 --1.58995047211 -0.0765878558159 --1.57072794437 -0.0765866171569 --1.5515037477 -0.0765842739493 --1.53424564004 -0.0765821766108 --1.51698821783 -0.0765803847462 --1.49973106384 -0.0765788685531 --1.4824744165 -0.0765776280314 --1.46521788836 -0.0765766352415 --1.44796183706 -0.0765759442002 --1.43070575595 -0.0765755586326 --1.41344997287 -0.0765754207969 --1.39619410038 -0.076575530693 --1.37893843651 -0.0765759721398 --1.36168250442 -0.0765766911208 --1.34442660212 -0.0765776559711 --1.32717034221 -0.0765788964927 --1.30991402268 -0.0765804126859 --1.29265719652 -0.0765822045505 --1.27540019154 -0.0765842739492 --1.25814256072 -0.0765866432339 --1.24088463187 -0.0765878558159 --1.22166210413 -0.0765865892172 --1.20243793726 -0.0765842460096 --1.1851798296 -0.0765821766108 --1.16792237759 -0.0765803847462 --1.1506651938 -0.0765788685531 --1.13340857625 -0.0765776280314 --1.11615207792 -0.0765766352415 --1.09889599681 -0.0765759442002 --1.08163991571 -0.0765755586326 --1.06438416243 -0.0765754207969 --1.04712828994 -0.076575530693 --1.02987256646 -0.0765759721398 --1.01261660457 -0.0765766911208 --0.995360732078 -0.0765776559711 --0.97810447216 -0.0765788964927 --0.960848137736 -0.0765804126859 --0.943591326475 -0.0765822045505 --0.9263343364 -0.0765842739492 --0.909076735377 -0.0765866432339 --0.891818791628 -0.0765878558159 --0.872596234083 -0.0765865892172 --0.85337203741 -0.0765842460096 --0.83611394465 -0.0765821766108 --0.818856537342 -0.0765803847462 --0.801599353552 -0.0765788685531 --0.784342721104 -0.0765776280314 --0.767086207867 -0.0765766352415 --0.749830126763 -0.0765759442002 --0.732574060559 -0.0765755586326 --0.715318307281 -0.0765754207969 --0.698062419891 -0.076575530693 --0.680806726217 -0.0765759721398 --0.663550794125 -0.0765766911208 --0.646294891834 -0.0765776559711 --0.629038602114 -0.0765788964927 --0.611782282591 -0.0765804126859 --0.594525486231 -0.0765822045505 --0.577268481254 -0.0765842739492 --0.56001085043 -0.0765866432339 --0.54275290668 -0.0765878558159 --0.523530378938 -0.0765866171569 --0.504306212067 -0.0765842739493 --0.487048111856 -0.0765821766108 --0.469790682197 -0.0765803847462 --0.452533505857 -0.0765788685531 --0.435276858509 -0.0765776280314 --0.418020345271 -0.0765766352415 --0.400764286518 -0.0765759442002 --0.383508212864 -0.0765755586326 --0.366252444684 -0.0765754207969 --0.348996564746 -0.076575530693 --0.331740871072 -0.0765759721398 --0.314484924078 -0.0765766911208 --0.297229036689 -0.0765776559711 --0.27997276932 -0.0765788964927 --0.262716434896 -0.0765804126859 --0.245459619909 -0.0765822045505 --0.228202629835 -0.0765842739492 --0.21094500646 -0.0765866432339 --0.193687070161 -0.0765878558159 --0.174464542419 -0.0948094446212 --0.155237190425 -0.0948065463454 --0.137979071587 -0.0948039442302 --0.120721627027 -0.0948017239571 --0.103464432061 -0.0947998557241 --0.0862077958882 -0.0947983115913 --0.0689512798562 -0.0947970934213 --0.051695193164 -0.0947962533685 --0.0344391111284 -0.0947957653552 --0.0171833345666 -0.0947956033051 -7.2564464065e-05 -0.0947957653553 -0.0173282786272 -0.0947962794452 -0.0345842400566 -0.0947971474378 -0.0518401404843 -0.0947983674704 -0.0690964153037 -0.0947999116035 -0.0863527543843 -0.0948017798365 -0.103609587997 -0.0948040001094 -0.120866600424 -0.0948065463452 -0.1381242387 -0.094809470698 -0.1553821899 -0.0948109868913 -0.174604598433 -0.0948094446212 -0.19382866472 -0.0948065463454 -0.211086783558 -0.0948039442302 -0.228344224393 -0.0948017239571 -0.245601423085 -0.0947998557241 -0.262858062983 -0.0947983115913 -0.28011456877 -0.0947970934213 -0.297370657325 -0.0947962533685 -0.314626738429 -0.0947957653552 -0.331882506609 -0.0947956033051 -0.349138408899 -0.0947957653553 -0.366394132376 -0.0947962794452 -0.383650094271 -0.0947971474378 -0.400906004012 -0.0947983674704 -0.418162278831 -0.0947999116035 -0.435418598354 -0.0948017798365 -0.452675424517 -0.0948040001094 -0.469932444394 -0.0948065724224 -0.48719009012 -0.0948094967752 -0.504448026419 -0.0948109868913 -0.523670434952 -0.0948094446212 -0.542894497514 -0.0948065463454 -0.560152605176 -0.0948039442302 -0.577410072088 -0.0948017239571 -0.594667270779 -0.0947998557241 -0.611923888326 -0.0947983115913 -0.629180416465 -0.0947970934213 -0.64643651247 -0.0947962533685 -0.663692578673 -0.0947957653552 -0.680948361755 -0.0947956033051 -0.698204264045 -0.0947957653553 -0.71545997262 -0.0947962794452 -0.732715949416 -0.0947971474378 -0.749971866608 -0.0947983674704 -0.767228141427 -0.0947999116035 -0.78448446095 -0.0948017798365 -0.801741287112 -0.0948040001094 -0.818998292088 -0.0948065463452 -0.836255937815 -0.094809470698 -0.853513881564 -0.0948109868913 -0.872736275196 -0.0948094446212 -0.891960352659 -0.0948065463454 -0.909218475223 -0.0948039442302 -0.926475912333 -0.0948017239571 -0.943733096123 -0.0947998557241 -0.960989743471 -0.0947983115913 -0.978246286512 -0.0947970934213 -0.995502397419 -0.0947962533685 -1.01275846362 -0.0947957653552 -1.0300142169 -0.0947956033051 -1.04727008939 -0.0947957653553 -1.06452581286 -0.0947962794452 -1.08178180456 -0.0947971474378 -1.09903770685 -0.0947983674704 -1.11629396677 -0.0947999116035 -1.1335503161 -0.0948017798365 -1.15080717206 -0.0948040001094 -1.16806414723 -0.0948065463452 -1.18532177806 -0.094809470698 -1.20257973671 -0.0948109868913 -1.22180214524 -0.0948094446212 -1.2410261929 -0.0948065463454 -1.25828430057 -0.0948039442302 -1.27554175258 -0.0948017239571 -1.29279893637 -0.0947998557241 -1.31005558372 -0.0947983115913 -1.32731211185 -0.0947970934213 -1.34456822276 -0.0947962533685 -1.36182430387 -0.0947957653552 -1.37908005714 -0.0947956033051 -1.39633595943 -0.0947957653553 -1.41359168291 -0.0947962794452 -1.43084764481 -0.0947971474378 -1.4481035471 -0.0947983674704 -1.46535980701 -0.0947999116035 -1.48261612654 -0.0948017798365 -1.4998729825 -0.0948040001094 -1.51713001728 -0.0948065463452 -1.53438764811 -0.094809470698 -1.55164560675 -0.0948109868913 -1.57086801529 -0.0948094446212 -1.59009206295 -0.0948065463454 -1.60735017061 -0.0948039442302 -1.62460762262 -0.0948017239571 -1.64186483622 -0.0947998557241 -1.65912145376 -0.0947983115913 -1.6763779521 -0.0947970934213 -1.69363406301 -0.0947962533685 -1.71089017391 -0.0947957653552 -1.72814595699 -0.0947956033051 -1.74540185928 -0.0947957392783 -1.76265755296 -0.0947962533682 -1.77991351485 -0.0947971474378 -1.79716941714 -0.0947983674704 -1.81442567706 -0.0947999116035 -1.83168202639 -0.0948017798365 -1.84893885255 -0.0948040001094 -1.86619585753 -0.0948065463452 -1.88345348835 -0.094809470698 -1.9007114172 -0.0948109868913 -1.91993382573 -0.0948094166815 -1.93915787339 -0.0948065184057 -1.95641601086 -0.0948039442302 -1.97367349267 -0.0948017239571 -1.99093067646 -0.0947998557241 -2.00818735361 -0.0947983115913 -2.02544385195 -0.0947970934213 -2.04269987345 -0.0947962533685 -2.05995601416 -0.0947957653552 -2.07721179724 -0.0947956033051 -2.09446769953 -0.0947957653553 -2.11172348261 -0.0947962794452 -2.1289793849 -0.0947971474378 -2.14623522758 -0.0947983674704 -2.1634914875 -0.0947999116035 -2.18074780703 -0.0948017798365 -2.19800466299 -0.0948040001094 -2.21526169777 -0.0948065463452 -2.2325193286 -0.094809470698 -2.24977725744 -0.0948109868913 -2.26899969578 -0.0948094166815 -2.28822380304 -0.0948065184057 -2.3054819107 -0.0948039442302 -2.32273936272 -0.0948017239571 -2.3399965167 -0.0947998557241 -2.35725313425 -0.0947983115913 -2.37450969219 -0.0947970934213 -2.39176577329 -0.0947962533685 -2.4090218544 -0.0947957653552 -2.42627757788 -0.0947956033051 -2.44353348017 -0.0947957653553 -2.46078926325 -0.0947962794452 -2.47804522514 -0.0947971474378 -2.49530112743 -0.0947983674704 -2.51255744696 -0.0947999116035 -2.52981382609 -0.0948017798365 -2.54707056284 -0.0948040001094 -2.56432753802 -0.0948065463452 -2.58158522844 -0.094809470698 -2.59884315729 -0.0948109868913 -2.61806553602 -0.0948094446212 -2.63728958368 -0.0948065463454 -2.65454775095 -0.0948039442302 -2.67180520296 -0.0948017239571 -2.68906235695 -0.0947998557241 -2.7063189745 -0.0947983115913 -2.72357553244 -0.0947970934213 -2.74083167315 -0.0947962533685 -2.75808769464 -0.0947957653552 -2.77534347773 -0.0947956033051 -2.79259938002 -0.0947957653553 -2.80985504389 -0.0947962794452 -2.82711106539 -0.0947971474378 -2.84436696768 -0.0947983674704 -2.86162322759 -0.0947999116035 -2.87887960672 -0.0948017798365 -2.89613640309 -0.0948040001094 -2.91339337825 -0.0948065463452 -2.93065100908 -0.094809470698 -2.94790893793 -0.0948109868913 -2.96713137627 -0.0948094446212 -2.98635548353 -0.0948065463454 -3.00361359119 -0.0948039442302 -3.02087104321 -0.0948017239571 -3.0381282568 -0.0947998557241 -3.05538487434 -0.0947983115913 -3.07264137268 -0.0947970934213 -3.08989745379 -0.0947962533685 -3.10715353489 -0.0947957653552 -3.12440931797 -0.0947956033051 --3.14152011473 -0.0947957653553 --3.12426441908 -0.0947962794452 --3.10700839758 -0.0947971474378 --3.08975249529 -0.0947983674704 --3.07249623537 -0.0947999116035 --3.05523985624 -0.0948017798365 --3.03798305988 -0.0948040001094 --3.02072608471 -0.0948065463452 --3.00346845388 -0.094809470698 --2.98621052504 -0.0948109868913 --2.9669880867 -0.0948094446212 --2.94776397943 -0.0948065463454 --2.93050587177 -0.0948039442302 --2.91324841976 -0.0948017239571 --2.89599120617 -0.0947998557241 --2.87873458862 -0.0947983115913 --2.86147809028 -0.0947970934213 --2.84422200918 -0.0947962533685 --2.82696592808 -0.0947957653552 --2.809710145 -0.0947956033051 --2.79245424271 -0.0947957653553 --2.77519857884 -0.0947962794452 --2.75794261694 -0.0947971474378 --2.74068665505 -0.0947983674704 --2.72343039513 -0.0947999116035 --2.7061740756 -0.0948017798365 --2.68891721964 -0.0948040001094 --2.67166024446 -0.0948065724224 --2.65440261364 -0.0948094967752 --2.63714462519 -0.0948109868913 --2.61792218685 -0.0948094446212 --2.59869813919 -0.0948065463454 --2.58144003153 -0.0948039442302 --2.56418251991 -0.0948017239571 --2.54692536592 -0.0947998557241 --2.52966874838 -0.0947983115913 --2.51241225004 -0.0947970934213 --2.49515622854 -0.0947962533685 --2.47790008783 -0.0947957653552 --2.46064430475 -0.0947956033051 --2.44338840246 -0.0947957653553 --2.42613261938 -0.0947962794452 --2.40887671709 -0.0947971474378 --2.3916208148 -0.0947983674704 --2.37436449528 -0.0947999116035 --2.35710823536 -0.0948017798365 --2.339851439 -0.0948040001094 --2.32259434462 -0.0948065463452 --2.30533665419 -0.094809470698 --2.28807872534 -0.0948109868913 --2.26885634661 -0.0948094446212 --2.24963229895 -0.0948065463454 --2.23237419129 -0.0948039442302 --2.21511673927 -0.0948017239571 --2.19785952568 -0.0947998557241 --2.18060290813 -0.0947983115913 --2.16334635019 -0.0947970934213 --2.14609020949 -0.0947962533685 --2.12883418798 -0.0947957653552 --2.1115784049 -0.0947956033051 --2.09432250261 -0.0947957653553 --2.07706683874 -0.0947962794452 --2.05981081724 -0.0947971474378 --2.04255491495 -0.0947983674704 --2.02529865503 -0.0947999116035 --2.00804230571 -0.0948017798365 --1.99078550935 -0.0948040001094 --1.97352850437 -0.0948065463452 --1.95627084375 -0.094809470698 --1.93901288509 -0.0948109868913 --1.91979050636 -0.0948094446212 --1.9005664587 -0.0948065463454 --1.88330835104 -0.0948039442302 --1.86605089903 -0.0948017239571 --1.84879368544 -0.0947998557241 --1.83153703809 -0.0947983115913 --1.81428050995 -0.0947970934213 --1.79702442884 -0.0947962533685 --1.77976834774 -0.0947957653552 --1.76251256466 -0.0947956033051 --1.74525666237 -0.0947957653553 --1.72800093889 -0.0947962794452 --1.710744977 -0.0947971474378 --1.69348907471 -0.0947983674704 --1.67623281479 -0.0947999116035 --1.65897649527 -0.0948017798365 --1.6417196691 -0.0948040001094 --1.62446266413 -0.0948065463452 --1.60720503331 -0.094809470698 --1.58994707465 -0.0948109868913 --1.57072463632 -0.0948094446212 --1.55150055885 -0.0948065463454 --1.53424245119 -0.0948039442302 --1.51698502898 -0.0948017239571 --1.49972784519 -0.0947998557241 --1.48247119784 -0.0947983115913 --1.4652146697 -0.0947970934213 --1.4479585886 -0.0947962533685 --1.43070250749 -0.0947957653552 --1.41344672441 -0.0947956033051 --1.39619085193 -0.0947957392783 --1.37893515825 -0.0947962533682 --1.36167916656 -0.0947971474378 --1.34442326427 -0.0947983674704 --1.32716700435 -0.0947999116035 --1.30991065502 -0.0948017798365 --1.29265382886 -0.0948040001094 --1.27539682388 -0.0948065463452 --1.25813916326 -0.094809470698 --1.2408812046 -0.0948109868913 --1.22165882587 -0.0948094166815 --1.20243477821 -0.0948065184057 --1.18517664075 -0.0948039442302 --1.16791918874 -0.0948017239571 --1.15066200495 -0.0947998557241 --1.1334053576 -0.0947983115913 --1.11614882946 -0.0947970934213 --1.09889274836 -0.0947962533685 --1.08163666725 -0.0947957653552 --1.06438088417 -0.0947956033051 --1.04712498188 -0.0947957653553 --1.0298692584 -0.0947962794452 --1.01261329651 -0.0947971474378 --0.995357409119 -0.0947983674704 --0.9781011343 -0.0947999116035 --0.960844784975 -0.0948017798365 --0.943587958813 -0.0948040001094 --0.926330953837 -0.0948065463452 --0.909073323011 -0.094809470698 --0.891815379262 -0.0948109868913 --0.872592955828 -0.0948094166815 --0.853368878364 -0.0948065184057 --0.836110755801 -0.0948039442302 --0.818853318692 -0.0948017239571 --0.801596134901 -0.0947998557241 --0.784339517355 -0.0947983115913 --0.767082989216 -0.0947970934213 --0.749826878309 -0.0947962533685 --0.732570797205 -0.0947957653552 --0.715315029025 -0.0947956033051 --0.698059141636 -0.0947957653553 --0.680803433061 -0.0947962794452 --0.663547471166 -0.0947971474378 --0.646291553974 -0.0947983674704 --0.629035264254 -0.0947999116035 --0.61177892983 -0.0948017798365 --0.594522118568 -0.0948040001094 --0.577265098691 -0.0948065463452 --0.560007452964 -0.094809470698 --0.542749509215 -0.0948109868913 --0.523527100682 -0.0948094446212 --0.504303045571 -0.0948065463454 --0.487044930458 -0.0948039442302 --0.469787485898 -0.0948017239571 --0.452530294657 -0.0947998557241 --0.435273639858 -0.0947983115913 --0.418017111719 -0.0947970934213 --0.400761038065 -0.0947962533685 --0.383504964411 -0.0947957653552 --0.36624918133 -0.0947956033051 --0.34899328649 -0.0947957653553 --0.331737570465 -0.0947962794452 --0.314481601119 -0.0947971474378 --0.297225706279 -0.0947983674704 --0.27996943146 -0.0947999116035 --0.262713097036 -0.0948017798365 --0.245456263423 -0.0948040001094 --0.228199247271 -0.0948065463452 --0.21094161272 -0.094809470698 --0.193683668971 -0.0948109868913 --0.174461260438 -0.11246787943 --0.15523218736 -0.112464446574 --0.137974049896 -0.112461384386 --0.120716586709 -0.112458748743 --0.103459369391 -0.112456513569 --0.0862027127296 -0.112454677001 --0.0689461780712 -0.112453240901 --0.0516900708899 -0.112452255562 --0.0344339660369 -0.112451668829 --0.0171781692188 -0.112451482564 -7.77512323125e-05 -0.112451696769 -0.0173334870488 -0.112452283501 -0.0345894703641 -0.112453293055 -0.0518453931436 -0.112454731018 -0.0691016893834 -0.112456569448 -0.0863580498845 -0.112458804622 -0.103614905849 -0.112461438403 -0.120871940628 -0.112464472652 -0.138129595667 -0.112467905507 -0.155387561768 -0.112469688058 -0.174609784037 -0.11246787943 -0.19383366406 -0.112464446574 -0.211091801524 -0.112461384386 -0.228349264711 -0.112458748743 -0.245606493205 -0.112456513569 -0.262863151729 -0.112454677001 -0.280119672418 -0.112453240901 -0.297375783324 -0.112452255562 -0.314631886781 -0.112451668829 -0.331887669861 -0.112451482564 -0.349143594503 -0.112451696769 -0.366399340331 -0.112452283501 -0.383655317128 -0.112453293055 -0.40091124922 -0.112454731018 -0.418167546391 -0.112456569448 -0.435423895717 -0.112458804622 -0.452680744231 -0.112461438403 -0.469937779009 -0.112464498729 -0.487195454538 -0.112467959523 -0.504453413189 -0.112469715997 -0.523675635457 -0.11246787943 -0.542899519205 -0.112464446574 -0.560157626867 -0.112461384386 -0.577415093779 -0.112458748743 -0.594672307372 -0.112456513569 -0.611928954721 -0.112454677001 -0.629185527563 -0.112453240901 -0.646441653371 -0.112452255562 -0.663697749376 -0.112451668829 -0.68095356226 -0.112451482564 -0.698209479451 -0.112451696769 -0.715465188026 -0.112452283501 -0.732721164823 -0.112453293055 -0.749977096915 -0.112454731018 -0.767233386636 -0.112456569448 -0.78448972106 -0.112458804622 -0.801746577025 -0.112461438403 -0.819003611803 -0.112464472652 -0.836261257529 -0.112467905507 -0.853519231081 -0.112469688058 -0.872741475701 -0.11246787943 -0.891965344548 -0.112464446574 -0.909223496914 -0.112461384386 -0.926480978727 -0.112458748743 -0.943738162517 -0.112456513569 -0.960994809866 -0.112454677001 -0.978251352907 -0.112453240901 -0.995507493615 -0.112452255562 -1.01276358962 -0.112451668829 -1.0300193727 -0.112451482564 -1.04727530479 -0.112451696769 -1.06453102827 -0.112452283501 -1.08178701997 -0.112453293055 -1.09904298186 -0.112454731018 -1.11629927158 -0.112456569448 -1.13355562091 -0.112458804622 -1.15081247687 -0.112461438403 -1.16806948185 -0.112464472652 -1.18532714248 -0.112467933446 -1.20258513093 -0.112469715997 -1.22180736065 -0.11246787943 -1.2410311997 -0.112464446574 -1.25828933716 -0.112461384386 -1.27554681897 -0.112458748743 -1.29280400276 -0.112456513569 -1.31006067991 -0.112454677001 -1.32731723785 -0.112453240901 -1.34457334876 -0.112452255562 -1.36182945967 -0.112451668829 -1.37908524275 -0.112451482564 -1.39634114504 -0.112451696769 -1.41359689832 -0.112452283501 -1.43085289001 -0.112453293055 -1.44810879231 -0.112454731018 -1.46536508202 -0.112456569448 -1.48262143135 -0.112458804622 -1.49987828732 -0.112461438403 -1.5171353221 -0.112464472652 -1.53439298272 -0.112467933446 -1.55165097117 -0.112469715997 -1.57087320089 -0.11246787943 -1.59009706974 -0.112464446574 -1.6073551774 -0.112461384386 -1.62461265921 -0.112458748743 -1.64186990261 -0.112456513569 -1.65912654996 -0.112454677001 -1.67638304829 -0.112453240901 -1.6936391592 -0.112452255562 -1.71089529991 -0.112451668829 -1.72815111279 -0.112451482564 -1.74540704489 -0.112451670691 -1.76266273856 -0.112452257424 -1.77991870046 -0.112453293055 -1.79717466235 -0.112454731018 -1.81443095207 -0.112456569448 -1.8316873014 -0.112458804622 -1.84894415736 -0.112461438403 -1.86620119214 -0.112464472652 -1.88345885277 -0.112467905507 -1.90071681142 -0.112469688058 -1.91993904114 -0.11246785149 -1.93916290999 -0.112464418635 -1.95642104745 -0.112461384386 -1.97367852926 -0.112458748743 -1.99093574286 -0.112456513569 -2.00819244981 -0.112454677001 -2.02544897795 -0.112453240901 -2.04270499945 -0.112452255562 -2.05996114016 -0.112451668829 -2.07721698284 -0.112451482564 -2.09447288513 -0.112451696769 -2.11172860861 -0.112452283501 -2.1289845705 -0.112453293055 -2.1462405324 -0.112454731018 -2.16349685192 -0.112456569448 -2.18075317144 -0.112458804622 -2.19801002741 -0.112461438403 -2.21526706219 -0.112464472652 -2.23252469301 -0.112467933446 -2.24978268146 -0.112469715997 -2.26900494099 -0.11246785149 -2.28822880984 -0.112464418635 -2.3054869175 -0.112461384386 -2.32274436951 -0.112458748743 -2.3400015831 -0.112456513569 -2.35725826025 -0.112454677001 -2.37451475859 -0.112453240901 -2.39177083969 -0.112452255562 -2.4090269804 -0.112451668829 -2.42628276348 -0.112451482564 -2.44353866577 -0.112451696769 -2.46079444885 -0.112452283501 -2.47805047035 -0.112453293055 -2.49530637264 -0.112454731018 -2.51256269216 -0.112456569448 -2.52981907129 -0.112458804622 -2.54707586765 -0.112461438403 -2.56433290243 -0.112464472652 -2.58159059286 -0.112467933446 -2.59884852171 -0.112469715997 -2.61807072163 -0.11246787943 -2.63729459047 -0.112464446574 -2.65455275774 -0.112461384386 -2.67181026936 -0.112458748743 -2.68906742335 -0.112456513569 -2.70632404089 -0.112454677001 -2.72358065844 -0.112453240901 -2.74083679915 -0.112452255562 -2.75809282065 -0.112451668829 -2.77534860373 -0.112451482564 -2.79260456562 -0.112451696769 -2.80986028909 -0.112452283501 -2.8271163106 -0.112453293055 -2.84437221289 -0.112454731018 -2.8616284728 -0.112456569448 -2.87888485193 -0.112458804622 -2.8961417079 -0.112461438403 -2.91339874268 -0.112464472652 -2.9306563735 -0.112467905507 -2.94791430235 -0.112469688058 -2.96713650227 -0.11246787943 -2.98636043072 -0.112464446574 -3.00361859799 -0.112461384386 -3.02087605 -0.112458748743 -3.03813326359 -0.112456513569 -3.05538988113 -0.112454677001 -3.07264643908 -0.112453240901 -3.08990257979 -0.112452255562 -3.10715866089 -0.112451668829 -3.12441450358 -0.112451482564 --3.14151486953 -0.112451696769 --3.12425917387 -0.112452283501 --3.10700315237 -0.112453293055 --3.08974725008 -0.112454731018 --3.07249099016 -0.112456569448 --3.05523461103 -0.112458804622 --3.03797775507 -0.112461438403 --3.02072072029 -0.112464472652 --3.00346308946 -0.112467905507 --2.98620516062 -0.112469688058 --2.9669829011 -0.11246787943 --2.94775897264 -0.112464446574 --2.93050086498 -0.112461384386 --2.91324341297 -0.112458748743 --2.89598613977 -0.112456513569 --2.87872946262 -0.112454677001 --2.86147296429 -0.112453240901 --2.84421688318 -0.112452255562 --2.82696080208 -0.112451668829 --2.80970495939 -0.112451482564 --2.7924490571 -0.112451696769 --2.77519339323 -0.112452283501 --2.75793737173 -0.112453293055 --2.74068135023 -0.112454731018 --2.72342509032 -0.112456569448 --2.70616877079 -0.112458804622 --2.68891191482 -0.112461438403 --2.67165493965 -0.112464498729 --2.65439724922 -0.112467959523 --2.63713920116 -0.112469715997 --2.61791694164 -0.11246787943 --2.5986931324 -0.112464446574 --2.58143502474 -0.112461384386 --2.56417751312 -0.112458748743 --2.54692029953 -0.112456513569 --2.52966362238 -0.112454677001 --2.51240712404 -0.112453240901 --2.49515104294 -0.112452255562 --2.47789490223 -0.112451668829 --2.46063911915 -0.112451482564 --2.44338321686 -0.112451696769 --2.42612743378 -0.112452283501 --2.40887147188 -0.112453293055 --2.39161556959 -0.112454731018 --2.37435925007 -0.112456569448 --2.35710293054 -0.112458804622 --2.33984607458 -0.112461438403 --2.3225890398 -0.112464472652 --2.30533140898 -0.112467905507 --2.28807342053 -0.112469688058 --2.268851161 -0.11246787943 --2.24962729216 -0.112464446574 --2.23236918449 -0.112461384386 --2.21511167288 -0.112458748743 --2.19785445928 -0.112456513569 --2.18059784174 -0.112454677001 --2.1633412838 -0.112453240901 --2.14608514309 -0.112452255562 --2.12882906198 -0.112451668829 --2.1115732789 -0.112451482564 --2.09431731701 -0.112451696769 --2.07706159353 -0.112452283501 --2.05980563164 -0.112453293055 --2.04254972935 -0.112454731018 --2.02529340983 -0.112456569448 --2.0080370307 -0.112458804622 --1.99078020454 -0.112461438403 --1.97352319956 -0.112464472652 --1.95626550913 -0.112467933446 --1.93900752068 -0.112469715997 --1.91978532076 -0.11246787943 --1.90056145191 -0.112464446574 --1.88330334425 -0.112461384386 --1.86604586244 -0.112458748743 --1.84878861904 -0.112456513569 --1.83153194189 -0.112454677001 --1.81427538395 -0.112453240901 --1.79701930284 -0.112452255562 --1.77976322174 -0.112451668829 --1.76250740886 -0.112451482564 --1.74525147677 -0.112451696769 --1.72799575329 -0.112452283501 --1.71073976159 -0.112453293055 --1.6934838295 -0.112454731018 --1.67622756958 -0.112456569448 --1.65897122026 -0.112458804622 --1.64171433449 -0.112461438403 --1.62445729971 -0.112464472652 --1.60719966888 -0.112467933446 --1.58994171023 -0.112469715997 --1.57071948051 -0.11246787943 --1.55149558186 -0.112464446574 --1.5342374444 -0.112461384386 --1.51697999239 -0.112458748743 --1.4997227788 -0.112456513569 --1.48246613145 -0.112454677001 --1.46520960331 -0.112453240901 --1.4479534924 -0.112452255562 --1.43069738149 -0.112451668829 --1.41344159841 -0.112451482564 --1.39618566632 -0.112451670691 --1.37892991304 -0.112452257424 --1.36167392135 -0.112453293055 --1.34441801906 -0.112454731018 --1.32716172934 -0.112456569448 --1.30990535021 -0.112458804622 --1.29264852405 -0.112461438403 --1.27539148927 -0.112464472652 --1.25813379884 -0.112467905507 --1.24087581038 -0.112469688058 --1.22165361047 -0.11246785149 --1.20242977142 -0.112464418635 --1.18517160416 -0.112461384386 --1.16791412234 -0.112458748743 --1.15065693856 -0.112456513569 --1.1334002614 -0.112454677001 --1.11614370346 -0.112453240901 --1.09888759256 -0.112452255562 --1.08163151145 -0.112451668829 --1.06437572837 -0.112451482564 --1.04711979628 -0.112451696769 --1.0298640728 -0.112452283501 --1.0126080811 -0.112453293055 --0.99535214901 -0.112454731018 --0.978095844388 -0.112456569448 --0.960839480162 -0.112458804622 --0.943582639098 -0.112461438403 --0.926325604319 -0.112464472652 --0.909067943692 -0.112467933446 --0.891809970141 -0.112469715997 --0.872587755323 -0.11246785149 --0.853363886475 -0.112464418635 --0.836105749011 -0.112461384386 --0.818848282099 -0.112458748743 --0.801591068506 -0.112456513569 --0.784334421158 -0.112454677001 --0.767077878118 -0.112453240901 --0.749821767211 -0.112452255562 --0.732565671206 -0.112451668829 --0.715309873224 -0.112451482564 --0.698053956032 -0.112451696769 --0.680798217654 -0.112452283501 --0.663542211056 -0.112453293055 --0.646286278963 -0.112454731018 --0.629030004144 -0.112456569448 --0.611773654818 -0.112458804622 --0.594516813755 -0.112461438403 --0.577259764075 -0.112464472652 --0.560002073646 -0.112467933446 --0.542744114995 -0.112469715997 --0.523521915078 -0.11246787943 --0.504298046231 -0.112464446574 --0.487039901316 -0.112461384386 --0.469782434404 -0.112458748743 --0.452525220811 -0.112456513569 --0.435268558562 -0.112454677001 --0.418012015522 -0.112453240901 --0.400755912066 -0.112452255562 --0.383499830961 -0.112451668829 --0.366244018078 -0.112451482564 --0.348988093436 -0.112451696769 --0.33173237741 -0.112452283501 --0.314476385713 -0.112453293055 --0.29722046107 -0.112454731018 --0.279964163899 -0.112456569448 --0.262707814574 -0.112458804622 --0.245450962335 -0.112461438403 --0.228193912655 -0.112464472652 --0.210936252028 -0.112467905507 --0.193678285926 -0.112469688058 --0.174456067383 -0.129828693345 --0.155224822461 -0.129824718461 --0.13796665892 -0.129821188748 --0.120709164068 -0.129818152636 --0.103451915085 -0.129815589636 --0.0861952286214 -0.129813499749 --0.068938662298 -0.129811851308 --0.0516825225204 -0.129810700193 --0.0344263850711 -0.129810018465 --0.0171705577523 -0.129809807986 -8.53934325275e-05 -0.129810044542 -0.0173411606811 -0.129810724407 -0.0345971756615 -0.129811899736 -0.0518531296402 -0.129813548178 -0.069109457545 -0.129815643653 -0.0863658487797 -0.12981823273 -0.103622732684 -0.129821293056 -0.120879802853 -0.129824800417 -0.138137493283 -0.129828775302 -0.155395489186 -0.129830813036 -0.174617428332 -0.129828693345 -0.193841025233 -0.129824718461 -0.2110991925 -0.129821214825 -0.228356685489 -0.129818178713 -0.24561394006 -0.129815589636 -0.262870639563 -0.129813499749 -0.280127197504 -0.129811851308 -0.297383330763 -0.129810700193 -0.314639464021 -0.129810018465 -0.331895276904 -0.129809781909 -0.349151238799 -0.129810018465 -0.36640701443 -0.129810724407 -0.383663021028 -0.129811899736 -0.400918975472 -0.129813548178 -0.418175302446 -0.129815643653 -0.435431696475 -0.12981823273 -0.452688582241 -0.129821293056 -0.469945646823 -0.129824800417 -0.487203344703 -0.129828803242 -0.504461348057 -0.129830840975 -0.523683294654 -0.129828693345 -0.54290689528 -0.129824718461 -0.560165047646 -0.129821214825 -0.577422529459 -0.129818178713 -0.594679772854 -0.129815589636 -0.611936464906 -0.129813499749 -0.629193037748 -0.129811851308 -0.646449193358 -0.129810700193 -0.663705319166 -0.129810018465 -0.680961146951 -0.129809781909 -0.698217108846 -0.129810018465 -0.715472862124 -0.129810724407 -0.732728883624 -0.129811899736 -0.749984845519 -0.129813548178 -0.767241150141 -0.129815643653 -0.784497514367 -0.12981823273 -0.801754415035 -0.129821293056 -0.819011494517 -0.129824800417 -0.836269170046 -0.129828775302 -0.853527158499 -0.129830813036 -0.872749105096 -0.129828693345 -0.891972705722 -0.129824718461 -0.90923088789 -0.129821214825 -0.926488384605 -0.129818178713 -0.943745627999 -0.129815589636 -0.961002320051 -0.129813499749 -0.978258863092 -0.129811851308 -0.9955149889 -0.129810700193 -1.01277112961 -0.129810018465 -1.03002697229 -0.129809781909 -1.04728296399 -0.129810018465 -1.06453874707 -0.129810724407 -1.08179473877 -0.129811899736 -1.09905070066 -0.129813548178 -1.11630702019 -0.129815643653 -1.13356339931 -0.12981823273 -1.15082028508 -0.129821293056 -1.16807734966 -0.129824800417 -1.18533504009 -0.129828803242 -1.20259305834 -0.129830840975 -1.22181501984 -0.129828693345 -1.24103859067 -0.129824718461 -1.25829675793 -0.129821214825 -1.27555423975 -0.129818178713 -1.29281145334 -0.129815589636 -1.31006816029 -0.129813499749 -1.32732474804 -0.129811851308 -1.34458088875 -0.129810700193 -1.36183702945 -0.129810018465 -1.37909284234 -0.129809781909 -1.39634877443 -0.129810018465 -1.41360455752 -0.129810724407 -1.43086057901 -0.129811899736 -1.44811651111 -0.129813548178 -1.46537286043 -0.129815643653 -1.48262926936 -0.12981823273 -1.49988612533 -0.129821293056 -1.51714318991 -0.129824800417 -1.53440091014 -0.129828803242 -1.55165889859 -0.129830840975 -1.57088083029 -0.129828693345 -1.59010443092 -0.129824718461 -1.60736256838 -0.129821214825 -1.62462007999 -0.129818178713 -1.64187735319 -0.129815589636 -1.65913406014 -0.129813499749 -1.67639058828 -0.129811851308 -1.69364669919 -0.129810700193 -1.7109028697 -0.129810018465 -1.72815871238 -0.129809781909 -1.74541467428 -0.129810018465 -1.76267042756 -0.129810724407 -1.77992641926 -0.129811899736 -1.79718238115 -0.129813548178 -1.81443870068 -0.129815643653 -1.83169510961 -0.12981823273 -1.84895199537 -0.129821293056 -1.86620903015 -0.129824800417 -1.88346672058 -0.129828775302 -1.90072470903 -0.129830813036 -1.91994667053 -0.129828693345 -1.93917030096 -0.129824718461 -1.95642846823 -0.129821214825 -1.97368595004 -0.129818178713 -1.99094319343 -0.129815589636 -2.00819993019 -0.129813499749 -2.02545648813 -0.129811851308 -2.04271256924 -0.129810700193 -2.05996870995 -0.129810018465 -2.07722455263 -0.129809781909 -2.09448051452 -0.129810018465 -2.111736238 -0.129810724407 -2.1289922595 -0.129811899736 -2.146248281 -0.129813548178 -2.16350460053 -0.129815643653 -2.18076097965 -0.12981823273 -2.19801789522 -0.129821293056 -2.21527493 -0.129824800417 -2.23253256083 -0.129828803242 -2.24979060888 -0.129830840975 -2.26901257038 -0.129828693345 -2.28823614121 -0.129824718461 -2.30549430847 -0.129821214825 -2.32275176048 -0.129818178713 -2.34000903368 -0.129815589636 -2.35726577043 -0.129813499749 -2.37452226877 -0.129811851308 -2.39177840948 -0.129810700193 -2.40903455019 -0.129810018465 -2.42629039287 -0.129809781909 -2.44354635477 -0.129810018465 -2.46080207825 -0.129810724407 -2.47805809975 -0.129811899736 -2.49531406164 -0.129813548178 -2.51257044077 -0.129815643653 -2.5298268199 -0.12981823273 -2.54708367586 -0.129821293056 -2.56434077025 -0.129824800417 -2.58159846068 -0.129828803242 -2.59885644913 -0.129830840975 -2.61807835102 -0.129828693345 -2.63730192184 -0.129824718461 -2.65456014872 -0.129821214825 -2.67181766033 -0.129818178713 -2.68907487392 -0.129815589636 -2.70633155107 -0.129813499749 -2.72358816862 -0.129811851308 -2.74084430933 -0.129810700193 -2.75810039043 -0.129810018465 -2.77535623312 -0.129809781909 -2.79261219501 -0.129810018465 -2.80986797809 -0.129810724407 -2.82712399959 -0.129811899736 -2.84437990189 -0.129813548178 -2.86163622141 -0.129815643653 -2.87889260054 -0.12981823273 -2.8961494565 -0.129821293056 -2.91340655089 -0.129824800417 -2.93066430092 -0.129828775302 -2.94792228937 -0.129830813036 -2.96714419126 -0.129828693345 -2.98636782169 -0.129824718461 -3.00362598896 -0.129821188748 -3.02088350058 -0.129818152636 -3.03814071417 -0.129815589636 -3.05539733171 -0.129813499749 -3.07265394926 -0.129811851308 -3.08991014958 -0.129810700193 -3.10716629028 -0.129810018465 -3.12442213297 -0.129809807986 --3.14150724013 -0.129810044542 --3.12425148487 -0.129810724407 --3.10699546337 -0.129811899736 --3.08973956108 -0.129813548178 --3.07248324156 -0.129815643653 --3.05522680283 -0.12981823273 --3.03796994686 -0.129821293056 --3.02071285248 -0.129824800417 --3.00345510244 -0.129828775302 --2.9861971736 -0.129830813036 --2.9669752121 -0.129828693345 --2.94775158167 -0.129824718461 --2.93049347401 -0.129821214825 --2.91323596239 -0.129818178713 --2.8959786892 -0.129815589636 --2.87872195244 -0.129813499749 --2.8614653945 -0.129811851308 --2.84420931339 -0.129810700193 --2.82695317269 -0.129810018465 --2.80969733 -0.129809781909 --2.7924413681 -0.129810018465 --2.77518564463 -0.129810724407 --2.75792962312 -0.129811899736 --2.74067360163 -0.129813548178 --2.72341734171 -0.129815643653 --2.70616096258 -0.12981823273 --2.68890404701 -0.129821293056 --2.67164701223 -0.129824800417 --2.6543893218 -0.129828803242 --2.63713127375 -0.129830840975 --2.61790931225 -0.129828693345 --2.59868574142 -0.129824718461 --2.58142757416 -0.129821214825 --2.56417012215 -0.129818178713 --2.54691284895 -0.129815589636 --2.5296561122 -0.129813499749 --2.51239961386 -0.129811851308 --2.49514347315 -0.129810700193 --2.47788733244 -0.129810018465 --2.46063154936 -0.129809781909 --2.44337558746 -0.129810018465 --2.42611980438 -0.129810724407 --2.40886378288 -0.129811899736 --2.39160782099 -0.129813548178 --2.37435150147 -0.129815643653 --2.35709512234 -0.12981823273 --2.33983820677 -0.129821293056 --2.32258117199 -0.129824800417 --2.30532354116 -0.129828775302 --2.28806549311 -0.129830813036 --2.26884353161 -0.129828693345 --2.24961996079 -0.129824718461 --2.23236179352 -0.129821214825 --2.2151042819 -0.129818178713 --2.19784700871 -0.129815589636 --2.18059033156 -0.129813499749 --2.16333383322 -0.129811851308 --2.14607769251 -0.129810700193 --2.1288214922 -0.129810018465 --2.11156564951 -0.129809781909 --2.09430968762 -0.129810018465 --2.07705390453 -0.129810724407 --2.05979794264 -0.129811899736 --2.04254204035 -0.129813548178 --2.02528566122 -0.129815643653 --2.00802925229 -0.12981823273 --1.99077236652 -0.129821293056 --1.97351530194 -0.129824800417 --1.95625761151 -0.129828803242 --1.93899962306 -0.129830840975 --1.91977769137 -0.129828693345 --1.90055409074 -0.129824718461 --1.88329595327 -0.129821214825 --1.86603844166 -0.129818178713 --1.84878116846 -0.129815589636 --1.83152446151 -0.129813499749 --1.81426787376 -0.129811851308 --1.79701176286 -0.129810700193 --1.77975565195 -0.129810018465 --1.76249980927 -0.129809781909 --1.74524384737 -0.129810018465 --1.7279880941 -0.129810724407 --1.7107320726 -0.129811899736 --1.6934761107 -0.129813548178 --1.67621982098 -0.129815643653 --1.65896341204 -0.12981823273 --1.64170649647 -0.129821293056 --1.6244494617 -0.129824800417 --1.60719180107 -0.129828803242 --1.58993378282 -0.129830840975 --1.57071182132 -0.129828693345 --1.55148822069 -0.129824718461 --1.53423005342 -0.129821214825 --1.51697257161 -0.129818178713 --1.49971532822 -0.129815589636 --1.48245865107 -0.129813499749 --1.46520209313 -0.129811851308 --1.44794592261 -0.129810700193 --1.4306897819 -0.129810018465 --1.41343396902 -0.129809781909 --1.39617800713 -0.129810018465 --1.37892222405 -0.129810724407 --1.36166620255 -0.129811899736 --1.34441027046 -0.129813548178 --1.32715395093 -0.129815643653 --1.3098975718 -0.12981823273 --1.29264068604 -0.129821293056 --1.27538359165 -0.129824800417 --1.25812590122 -0.129828775302 --1.24086791277 -0.129830813036 --1.22164598107 -0.129828693345 --1.20242241025 -0.129824718461 --1.18516421318 -0.129821214825 --1.16790667176 -0.129818178713 --1.15064945817 -0.129815589636 --1.13339278102 -0.129813499749 --1.11613619328 -0.129811851308 --1.09888005257 -0.129810700193 --1.08162394166 -0.129810018465 --1.06436812878 -0.129809781909 --1.04711216688 -0.129810018465 --1.02985641361 -0.129810724407 --1.0126003921 -0.129811899736 --0.995344430209 -0.129813548178 --0.978088095784 -0.129815643653 --0.960831686854 -0.12981823273 --0.943574801087 -0.129821293056 --0.926317736507 -0.129824800417 --0.909060060978 -0.129828803242 --0.891802057624 -0.129830840975 --0.872580096125 -0.129828693345 --0.853356510401 -0.129824718461 --0.836098372936 -0.129821214825 --0.81884086132 -0.129818178713 --0.801583588123 -0.129815589636 --0.784326910973 -0.129813499749 --0.767070367933 -0.129811851308 --0.749814227223 -0.129810700193 --0.732558086514 -0.129810018465 --0.71530225873 -0.129809781909 --0.698046311736 -0.129810018465 --0.680790558457 -0.129810724407 --0.663534536957 -0.129811899736 --0.646278560161 -0.129813548178 --0.629022240639 -0.129815643653 --0.611765861511 -0.12981823273 --0.594508975744 -0.129821293056 --0.577251911163 -0.129824800417 --0.559994190931 -0.129828803242 --0.542736187577 -0.129830840975 --0.523514270783 -0.129828693345 --0.504290677607 -0.129824718461 --0.48703250289 -0.129821214825 --0.469775013626 -0.129818178713 --0.452517770231 -0.129815589636 --0.435261078179 -0.129813499749 --0.418004505336 -0.129811851308 --0.400748364627 -0.129810700193 --0.38349224627 -0.129810018465 --0.366236411035 -0.129809781909 --0.348980456591 -0.129810018465 --0.331724695861 -0.129810724407 --0.314468681812 -0.129811899736 --0.297212734819 -0.129813548178 --0.279956392944 -0.129815643653 --0.262700006366 -0.12981823273 --0.245443131775 -0.129821293056 --0.228186052293 -0.129824800417 --0.210928361863 -0.129828775302 --0.193670362234 -0.129830813036 --0.174448419362 -0.147170990706 --0.155217468739 -0.147166490555 --0.13795927912 -0.147162508219 --0.120701752603 -0.147159062326 --0.103444473818 -0.147156156599 --0.0861877519638 -0.147153794766 --0.0689311530441 -0.147151943296 --0.0516749834642 -0.147150631994 --0.0344188166782 -0.147149834782 --0.0171629583929 -0.147149577737 -9.3024922535e-05 -0.147149860859 -0.0173488226719 -0.147150654346 -0.0346048683859 -0.147151991725 -0.051860854961 -0.147153869271 -0.0691172145307 -0.147156234831 -0.0863736346364 -0.147159140557 -0.103630550206 -0.147162612527 -0.120887650177 -0.147166598588 -0.138145372272 -0.147171098739 -0.155403401702 -0.147173412144 -0.174625057727 -0.147170990706 -0.19384836778 -0.147166490555 -0.211106568575 -0.147162534297 -0.228364098817 -0.147159088403 -0.245621375739 -0.147156156599 -0.262878105044 -0.147153794766 -0.280134700239 -0.147151943296 -0.297390863299 -0.147150631994 -0.314647033811 -0.147149834782 -0.331902883947 -0.147149577737 -0.349158860743 -0.147149860859 -0.366414666176 -0.147150654346 -0.383670717478 -0.147151991725 -0.400926701725 -0.147153869271 -0.418183065951 -0.147156234831 -0.435439482331 -0.147159140557 -0.452696397901 -0.147162612527 -0.469953499734 -0.147166598588 -0.487211219966 -0.147171098739 -0.504469260573 -0.147173412144 -0.523690924048 -0.147170990706 -0.542914241552 -0.147166490555 -0.56017242372 -0.147162534297 -0.577429950237 -0.147159088403 -0.594687238335 -0.147156156599 -0.611943945289 -0.147153794766 -0.629200533032 -0.147151943296 -0.646456718445 -0.147150631994 -0.663712888956 -0.147149834782 -0.680968731642 -0.14714955166 -0.698224708438 -0.147149834782 -0.715480521321 -0.147150654346 -0.732736587524 -0.147151991725 -0.749992579222 -0.147153869271 -0.767248928547 -0.147156234831 -0.784505322575 -0.147159140557 -0.801762238145 -0.147162612527 -0.819019347429 -0.147166598588 -0.836277067661 -0.147171098739 -0.853535085917 -0.147173412144 -0.872756749392 -0.147170990706 -0.891980066896 -0.147166490555 -0.909238263965 -0.147162534297 -0.926495790482 -0.147159088403 -0.943753063679 -0.147156156599 -0.961009800434 -0.147153794766 -0.978266388178 -0.147151943296 -0.995522528889 -0.147150631994 -1.0127786994 -0.147149834782 -1.03003460169 -0.14714955166 -1.04729062319 -0.147149834782 -1.06454640627 -0.147150654346 -1.08180242777 -0.147151991725 -1.09905841946 -0.147153869271 -1.11631476879 -0.147156234831 -1.13357117772 -0.147159140557 -1.15082809329 -0.147162612527 -1.16808518767 -0.147166598588 -1.1853429079 -0.147171098739 -1.20260095596 -0.147173412144 -1.22182264924 -0.147170990706 -1.24104595184 -0.147166490555 -1.25830411911 -0.147162534297 -1.27556163073 -0.147159088403 -1.29281890392 -0.147156156599 -1.31007564068 -0.147153794766 -1.32733225823 -0.147151943296 -1.34458842874 -0.147150631994 -1.36184456944 -0.147149834782 -1.37910041213 -0.147149577737 -1.39635640383 -0.147149860859 -1.41361221671 -0.147150654346 -1.43086826801 -0.147151991725 -1.44812422991 -0.147153869271 -1.46538060904 -0.147156234831 -1.48263704777 -0.147159140557 -1.49989393353 -0.147162612527 -1.51715105772 -0.147166598588 -1.53440880775 -0.147171098739 -1.55166682601 -0.147173412144 -1.57088845968 -0.147170990706 -1.59011176229 -0.147166490555 -1.60736995935 -0.147162534297 -1.62462750077 -0.147159088403 -1.64188477397 -0.147156156599 -1.65914151073 -0.147153794766 -1.67639809847 -0.147151943296 -1.69365423918 -0.147150631994 -1.71091043949 -0.147149834782 -1.72816631198 -0.147149577737 -1.74542230367 -0.147149860859 -1.76267808676 -0.147150654346 -1.77993410826 -0.147151991725 -1.79719009996 -0.147153869271 -1.81444644928 -0.147156234831 -1.83170288801 -0.147159140557 -1.84895983338 -0.147162612527 -1.86621689797 -0.147166598588 -1.88347458839 -0.147171098739 -1.90073260665 -0.147173412144 -1.91995429992 -0.147170990706 -1.93917766213 -0.147166490555 -1.9564358592 -0.147162534297 -1.97369337082 -0.147159088403 -1.99095064402 -0.147156156599 -2.00820741057 -0.147153794766 -2.02546399832 -0.147151943296 -2.04272013903 -0.147150631994 -2.05997627973 -0.147149834782 -2.07723212242 -0.147149577737 -2.09448814392 -0.147149860859 -2.111743927 -0.147150654346 -2.12900000811 -0.147151991725 -2.14625602961 -0.147153869271 -2.16351228953 -0.147156234831 -2.18076866865 -0.147159140557 -2.19802564382 -0.147162612527 -2.21528273821 -0.147166598588 -2.23254042864 -0.147171098739 -2.2497985363 -0.147173412144 -2.26902019977 -0.147170990706 -2.28824347258 -0.147166490555 -2.30550169945 -0.147162534297 -2.32275921106 -0.147159088403 -2.34001648426 -0.147156156599 -2.35727322102 -0.147153794766 -2.37452977896 -0.147151943296 -2.39178591967 -0.147150631994 -2.40904211998 -0.147149834782 -2.42629802227 -0.14714955166 -2.44355404377 -0.147149834782 -2.46080976725 -0.147150654346 -2.47806578875 -0.147151991725 -2.49532181025 -0.147153869271 -2.51257818938 -0.147156234831 -2.52983462811 -0.147159140557 -2.54709148407 -0.147162612527 -2.56434857846 -0.147166598588 -2.58160632849 -0.147171098739 -2.59886437654 -0.147173412144 -2.61808604002 -0.147170990706 -2.63730931282 -0.147166490555 -2.65456753969 -0.147162534297 -2.67182505131 -0.147159088403 -2.6890823245 -0.147156156599 -2.70633906126 -0.147153794766 -2.72359567881 -0.147151943296 -2.74085181951 -0.147150631994 -2.75810796022 -0.147149834782 -2.77536386251 -0.147149577737 -2.79261982441 -0.147149860859 -2.8098756671 -0.147150654346 -2.8271316886 -0.147151991725 -2.84438759089 -0.147153869271 -2.86164397001 -0.147156234831 -2.87890040874 -0.147159140557 -2.89615732431 -0.147162612527 -2.9134144187 -0.147166598588 -2.93067216873 -0.147171098739 -2.94793021679 -0.147173412144 -2.96715188026 -0.147170990706 -2.98637521267 -0.147166490555 -3.00363337994 -0.147162508219 -3.02089089155 -0.147159062326 -3.03814816475 -0.147156156599 -3.0554048419 -0.147153794766 -3.07266145945 -0.147151943296 -3.08991771936 -0.147150631994 -3.10717386007 -0.147149834782 -3.12442970276 -0.147149577737 --3.14149961074 -0.147149860859 --3.12424379587 -0.147150654346 --3.10698777437 -0.147151991725 --3.08973187208 -0.147153869271 --3.07247549295 -0.147156234831 --3.05521899462 -0.147159140557 --3.03796207905 -0.147162612527 --3.02070498467 -0.147166598588 --3.00344723463 -0.147171098739 --2.98618924618 -0.147173412144 --2.9669675827 -0.147170990706 --2.9477442503 -0.147166490555 --2.93048608303 -0.147162534297 --2.91322857141 -0.147159088403 --2.89597129822 -0.147156156599 --2.87871450186 -0.147153794766 --2.86145788431 -0.147151943296 --2.8442017436 -0.147150631994 --2.82694560289 -0.147149834782 --2.80968976021 -0.147149577737 --2.79243373871 -0.147149860859 --2.77517795563 -0.147150654346 --2.75792193413 -0.147151991725 --2.74066591263 -0.147153869271 --2.7234095931 -0.147156234831 --2.70615321398 -0.147159140557 --2.6888962388 -0.147162612527 --2.67163914442 -0.147166598588 --2.65438145399 -0.147171098739 --2.63712340594 -0.147173412144 --2.61790174246 -0.147170990706 --2.59867841005 -0.147166490555 --2.58142024278 -0.147162534297 --2.56416273117 -0.147159088403 --2.54690539837 -0.147156156599 --2.52964866162 -0.147153794766 --2.51239210367 -0.147151943296 --2.49513596296 -0.147150631994 --2.47787982225 -0.147149834782 --2.46062397957 -0.14714955166 --2.44336795807 -0.147149834782 --2.42611217499 -0.147150654346 --2.40885609388 -0.147151991725 --2.39160007238 -0.147153869271 --2.37434369325 -0.147156234831 --2.35708731413 -0.147159140557 --2.33983045816 -0.147162612527 --2.32257330418 -0.147166598588 --2.30531555414 -0.147171098739 --2.28805750608 -0.147173412144 --2.26883584261 -0.147170990706 --2.24961256981 -0.147166490555 --2.23235440254 -0.147162534297 --2.21509689092 -0.147159088403 --2.19783961773 -0.147156156599 --2.18058288097 -0.147153794766 --2.16332632303 -0.147151943296 --2.14607018232 -0.147150631994 --2.12881392241 -0.147149834782 --2.11155802011 -0.14714955166 --2.09430205822 -0.147149834782 --2.07704621553 -0.147150654346 --2.05979019403 -0.147151991725 --2.04253429174 -0.147153869271 --2.02527791262 -0.147156234831 --2.00802144408 -0.147159140557 --1.99076452851 -0.147162612527 --1.97350743413 -0.147166598588 --1.9562497139 -0.147171098739 --1.93899169564 -0.147173412144 --1.91977006197 -0.147170990706 --1.90054675937 -0.147166490555 --1.8832885623 -0.147162534297 --1.86603102088 -0.147159088403 --1.84877371788 -0.147156156599 --1.83151698113 -0.147153794766 --1.81426039338 -0.147151943296 --1.79700425268 -0.147150631994 --1.77974808216 -0.147149834782 --1.76249220967 -0.147149577737 --1.74523621798 -0.147149860859 --1.72798040509 -0.147150654346 --1.71072438359 -0.147151991725 --1.6934684217 -0.147153869271 --1.67621207237 -0.147156234831 --1.65895563364 -0.147159140557 --1.64169868827 -0.147162612527 --1.62444159388 -0.147166598588 --1.60718390345 -0.147171098739 --1.5899258852 -0.147173412144 --1.57070419192 -0.147170990706 --1.55148085952 -0.147166490555 --1.53422266245 -0.147162534297 --1.51696515083 -0.147159088403 --1.49970787764 -0.147156156599 --1.48245117068 -0.147153794766 --1.46519458294 -0.147151943296 --1.44793838263 -0.147150631994 --1.43068221212 -0.147149834782 --1.41342633963 -0.147149577737 --1.39617037773 -0.147149860859 --1.37891459465 -0.147150654346 --1.36165851355 -0.147151991725 --1.34440252185 -0.147153869271 --1.32714617252 -0.147156234831 --1.30988976359 -0.147159140557 --1.29263284803 -0.147162612527 --1.27537575364 -0.147166598588 --1.25811803341 -0.147171098739 --1.24086001515 -0.147173412144 --1.22163838148 -0.147170990706 --1.20241507888 -0.147166490555 --1.18515685201 -0.147162534297 --1.16789928079 -0.147159088403 --1.15064203739 -0.147156156599 --1.13338533044 -0.147153794766 --1.11612868309 -0.147151943296 --1.09887251258 -0.147150631994 --1.08161637187 -0.147149834782 --1.06436052919 -0.147149577737 --1.04710453749 -0.147149860859 --1.02984872461 -0.147150654346 --1.0125926733 -0.147151991725 --0.995336696504 -0.147153869271 --0.97808034718 -0.147156234831 --0.960823908448 -0.147159140557 --0.943566992879 -0.147162612527 --0.926309913397 -0.147166598588 --0.909052193165 -0.147171098739 --0.891794145107 -0.147173412144 --0.872572466731 -0.147170990706 --0.853349164128 -0.147166490555 --0.83609098196 -0.147162534297 --0.818833440542 -0.147159088403 --0.801576137543 -0.147156156599 --0.78431943059 -0.147153794766 --0.767062872649 -0.147151943296 --0.749806702137 -0.147150631994 --0.732550516724 -0.147149834782 --0.715294659138 -0.14714955166 --0.69803866744 -0.147149834782 --0.680782884359 -0.147150654346 --0.66352686286 -0.147151991725 --0.64627084136 -0.147153869271 --0.629014477134 -0.147156234831 --0.611758068204 -0.147159140557 --0.594501152634 -0.147162612527 --0.577244058251 -0.147166598588 --0.559986323118 -0.147171098739 --0.542728304863 -0.147173412144 --0.523506641388 -0.147170990706 --0.504283316433 -0.147166490555 --0.487025126815 -0.147162534297 --0.469767600298 -0.147159088403 --0.452510327101 -0.147156156599 --0.435253612697 -0.147153794766 --0.417997002602 -0.147151943296 --0.40074083209 -0.147150631994 --0.38348467648 -0.147149834782 --0.366228811443 -0.147149577737 --0.348972819745 -0.147149860859 --0.331717014313 -0.147150654346 --0.314460977912 -0.147151991725 --0.297205001116 -0.147153869271 --0.27994863689 -0.147156234831 --0.262692220509 -0.147159140557 --0.245435301215 -0.147162612527 --0.228178195656 -0.147166598588 --0.210920479149 -0.147171098739 --0.193662449717 -0.147173412144 --0.174440782517 -0.164495002478 --0.155210133642 -0.164489995688 --0.137951906771 -0.164485577494 --0.120694350451 -0.16448173672 --0.103437045589 -0.164478473365 --0.0861802902073 -0.164475820958 --0.068923660554 -0.164473749697 --0.0516674593091 -0.164472285658 --0.0344112613238 -0.164471402764 --0.0171553723048 -0.16447109729 -0.000100642442703 -0.164471399039 -0.017356471857 -0.16447230801 -0.0346125499345 -0.164473801851 -0.0518685663119 -0.164475873113 -0.0691249566153 -0.164478525519 -0.0863814074546 -0.164481788874 -0.103638354689 -0.164485655725 -0.1208954826 -0.164490099996 -0.138153232634 -0.164495129139 -0.155411299318 -0.164497710765 -0.174632675946 -0.164495002478 -0.193855706602 -0.164489995688 -0.21111394465 -0.164485577494 -0.228371500969 -0.16448173672 -0.245628803968 -0.164478473365 -0.262885563076 -0.164475820958 -0.280142188073 -0.164473749697 -0.297398380935 -0.164472285658 -0.3146545887 -0.164471402764 -0.331910476088 -0.164471123367 -0.349166475236 -0.164471425116 -0.366422310472 -0.16447230801 -0.383678399027 -0.164473801851 -0.400934420526 -0.164475873113 -0.418190807104 -0.164478525519 -0.435447245836 -0.164481788874 -0.452704198658 -0.164485655725 -0.469961337745 -0.164490099996 -0.48721909523 -0.164495103062 -0.504477143287 -0.164497684688 -0.523698508739 -0.164495002478 -0.542921572924 -0.164489995688 -0.560179799795 -0.164485577494 -0.577437341213 -0.164481710643 -0.594694644212 -0.164478447288 -0.611951380968 -0.164475820958 -0.629208013415 -0.164473749697 -0.64646422863 -0.164472285658 -0.663720443845 -0.164471402764 -0.680976331234 -0.16447109729 -0.698232322931 -0.164471399039 -0.715488180518 -0.16447230801 -0.732744261622 -0.164473801851 -0.75000025332 -0.164475873113 -0.767256647349 -0.164478525519 -0.784513086081 -0.164481788874 -0.801770031452 -0.164485655725 -0.819027170539 -0.164490099996 -0.836284920573 -0.164495129139 -0.853542983532 -0.164497710765 -0.872764393688 -0.164495002478 -0.891987413168 -0.164489995688 -0.909245625138 -0.164485577494 -0.92650321126 -0.164481710643 -0.943760514259 -0.164478447288 -0.961017265916 -0.164475820958 -0.978273883462 -0.164473749697 -0.995530083776 -0.164472285658 -1.01278629899 -0.164471402764 -1.03004220128 -0.16447109729 -1.04729822278 -0.164471399039 -1.06455403566 -0.16447230801 -1.08181008697 -0.164473801851 -1.09906610846 -0.164475873113 -1.11632251739 -0.164478525519 -1.13357898593 -0.164481788874 -1.1508359313 -0.164485655725 -1.16809302568 -0.164490099996 -1.18535077572 -0.164495129139 -1.20260885358 -0.164497710765 -1.22183024883 -0.164495002478 -1.24105325341 -0.164489995688 -1.25831145048 -0.164485577494 -1.2755690217 -0.164481710643 -1.2928263545 -0.164478447288 -1.31008312106 -0.164475820958 -1.3273397386 -0.164473749697 -1.34459593892 -0.164472285658 -1.36185213924 -0.164471402764 -1.37910801172 -0.164471123367 -1.39636403322 -0.164471425116 -1.41361987591 -0.16447230801 -1.43087595701 -0.164473801851 -1.44813194871 -0.164475873113 -1.46538832784 -0.164478525519 -1.48264479637 -0.164481788874 -1.49990174174 -0.164485655725 -1.51715889573 -0.164490099996 -1.53441667557 -0.164495129139 -1.55167472362 -0.164497710765 -1.57089605927 -0.164495002478 -1.59011909365 -0.164489995688 -1.60737735033 -0.164485577494 -1.62463492155 -0.164481710643 -1.64189222455 -0.164478447288 -1.65914896131 -0.164475820958 -1.67640557885 -0.164473749697 -1.69366177917 -0.164472285658 -1.71091797948 -0.164471402764 -1.72817388177 -0.164471123367 -1.74542990327 -0.164471425116 -1.76268571615 -0.16447230801 -1.77994179726 -0.164473801851 -1.79719781876 -0.164475873113 -1.81445419788 -0.164478525519 -1.83171066642 -0.164481788874 -1.84896764159 -0.164485655725 -1.86622473597 -0.164490099996 -1.88348245621 -0.164495129139 -1.90074053407 -0.164497710765 -1.91996192932 -0.164495002478 -1.9391849637 -0.164489995688 -1.95644319058 -0.164485577494 -1.9737007618 -0.16448173672 -1.9909580648 -0.164478473365 -2.00821486115 -0.164475820958 -2.0254715085 -0.164473749697 -2.04272764921 -0.164472285658 -2.05998378992 -0.164471402764 -2.07723969221 -0.164471123367 -2.09449577332 -0.164471425116 -2.111751616 -0.16447230801 -2.12900769711 -0.164473801851 -2.14626371861 -0.164475873113 -2.16352003813 -0.164478525519 -2.18077647686 -0.164481788874 -2.19803345203 -0.164485655725 -2.21529054642 -0.164490099996 -2.23254829645 -0.164495103062 -2.24980640411 -0.164497684688 -2.26902776956 -0.164495002478 -2.28825080395 -0.164489995688 -2.30550909043 -0.164485577494 -2.32276666165 -0.164481710643 -2.34002393484 -0.164478447288 -2.3572806716 -0.164475820958 -2.37453728914 -0.164473749697 -2.39179342985 -0.164472285658 -2.40904968977 -0.164471402764 -2.42630565167 -0.16447109729 -2.44356167317 -0.164471399039 -2.46081745625 -0.16447230801 -2.47807347775 -0.164473801851 -2.49532949925 -0.164475873113 -2.51258593798 -0.164478525519 -2.52984243631 -0.164481788874 -2.54709929228 -0.164485655725 -2.56435638666 -0.164490099996 -2.5816141963 -0.164495129139 -2.59887230396 -0.164497710765 -2.61809372902 -0.164495002478 -2.6373167038 -0.164489995688 -2.65457487106 -0.164485577494 -2.67183244228 -0.164481710643 -2.68908977509 -0.164478447288 -2.70634651184 -0.164475820958 -2.72360312939 -0.164473749697 -2.7408593297 -0.164472285658 -2.75811553001 -0.164471402764 -2.77537143231 -0.164471123367 -2.79262745381 -0.164471425116 -2.80988329649 -0.16447230801 -2.8271393776 -0.164473801851 -2.84439533949 -0.164475873113 -2.86165171862 -0.164478525519 -2.87890821695 -0.164481788874 -2.89616519213 -0.164485655725 -2.91342234612 -0.164490099996 -2.93068003655 -0.164495103062 -2.9479380846 -0.164497684688 -2.96715950966 -0.164495002478 -2.98638254404 -0.164489995688 -3.00364077091 -0.164485577494 -3.02089828253 -0.16448173672 -3.03815555573 -0.164478473365 -3.05541229248 -0.164475820958 -3.07266896963 -0.164473749697 -3.08992522955 -0.164472285658 -3.10718137026 -0.164471402764 -3.12443727255 -0.16447109729 --3.14149198134 -0.164471399039 --3.12423616648 -0.16447230801 --3.10698008537 -0.164473801851 --3.08972412348 -0.164475873113 --3.07246774435 -0.164478525519 --3.05521124601 -0.164481788874 --3.03795427084 -0.164485655725 --3.02069711685 -0.164490099996 --3.00343942642 -0.164495129139 --2.98618137836 -0.164497710765 --2.96695995331 -0.164495002478 --2.94773691893 -0.164489995688 --2.93047869205 -0.164485577494 --2.91322118044 -0.16448173672 --2.89596384764 -0.164478473365 --2.87870705128 -0.164475820958 --2.86145043373 -0.164473749697 --2.84419423342 -0.164472285658 --2.82693809271 -0.164471402764 --2.80968219042 -0.164471123367 --2.79242616892 -0.164471425116 --2.77517032623 -0.16447230801 --2.75791424513 -0.164473801851 --2.74065822363 -0.164475873113 --2.7234018445 -0.164478525519 --2.70614546538 -0.164481788874 --2.6888884902 -0.164485655725 --2.67163133621 -0.164490099996 --2.65437358618 -0.164495103062 --2.63711553812 -0.164497684688 --2.61789417267 -0.164495002478 --2.59867107868 -0.164489995688 --2.58141285181 -0.164485577494 --2.56415534019 -0.164481710643 --2.54689800739 -0.164478447288 --2.52964121103 -0.164475820958 --2.51238459349 -0.164473749697 --2.49512845278 -0.164472285658 --2.47787225246 -0.164471402764 --2.46061635017 -0.16447109729 --2.44336032867 -0.164471399039 --2.42610448599 -0.16447230801 --2.40884840488 -0.164473801851 --2.39159238338 -0.164475873113 --2.37433600426 -0.164478525519 --2.35707956553 -0.164481788874 --2.33982264996 -0.164485655725 --2.32256549597 -0.164490099996 --2.30530768633 -0.164495129139 --2.28804963827 -0.164497710765 --2.26882821322 -0.164495002478 --2.24960517883 -0.164489995688 --2.23234701156 -0.164485577494 --2.21508944034 -0.164481710643 --2.19783216715 -0.164478447288 --2.18057543039 -0.164475820958 --2.16331881285 -0.164473749697 --2.14606261253 -0.164472285658 --2.12880635261 -0.164471402764 --2.11155045032 -0.16447109729 --2.09429442882 -0.164471399039 --2.07703858614 -0.16447230801 --2.05978250503 -0.164473801851 --2.04252654314 -0.164475873113 --2.02527016401 -0.164478525519 --2.00801366568 -0.164481788874 --1.99075675011 -0.164485655725 --1.97349962592 -0.164490099996 --1.95624184608 -0.164495129139 --1.93898379803 -0.164497710765 --1.91976246238 -0.164495002478 --1.900539428 -0.164489995688 --1.88328117132 -0.164485577494 --1.8660236001 -0.164481710643 --1.8487662673 -0.164478447288 --1.83150950074 -0.164475820958 --1.814252913 -0.164473749697 --1.79699674249 -0.164472285658 --1.77974054217 -0.164471402764 --1.76248463988 -0.164471123367 --1.74522861838 -0.164471425116 --1.72797277569 -0.16447230801 --1.71071669459 -0.164473801851 --1.69346070289 -0.164475873113 --1.67620432377 -0.164478525519 --1.65894785524 -0.164481788874 --1.64169088006 -0.164485655725 --1.62443372607 -0.164490099996 --1.60717600584 -0.164495129139 --1.58991798759 -0.164497710765 --1.57069659233 -0.164495002478 --1.55147352815 -0.164489995688 --1.53421530128 -0.164485577494 --1.51695775986 -0.164481710643 --1.49970045685 -0.164478447288 --1.4824437201 -0.164475820958 --1.46518707275 -0.164473749697 --1.44793087244 -0.164472285658 --1.43067467212 -0.164471402764 --1.41341876983 -0.164471123367 --1.39616277814 -0.164471425116 --1.37890693545 -0.16447230801 --1.36165085435 -0.164473801851 --1.34439483285 -0.164475873113 --1.32713842392 -0.164478525519 --1.30988198519 -0.164481788874 --1.29262506962 -0.164485655725 --1.27536794543 -0.164490099996 --1.25811016559 -0.164495129139 --1.24085208774 -0.164497710765 --1.22163072229 -0.164495002478 --1.20240771771 -0.164489995688 --1.18514949083 -0.164485577494 --1.16789191961 -0.16448173672 --1.15063461661 -0.164478473365 --1.13337785005 -0.164475820958 --1.11612120271 -0.164473749697 --1.09886500239 -0.164472285658 --1.08160883188 -0.164471402764 --1.06435295939 -0.164471123367 --1.04709690809 -0.164471425116 --1.02984106541 -0.16447230801 --1.0125849843 -0.164473801851 --0.995328962802 -0.164475873113 --0.978072598576 -0.164478525519 --0.960816144943 -0.164481788874 --0.943559199572 -0.164485655725 --0.926302090288 -0.164490099996 --0.909044325352 -0.164495103062 --0.891786247492 -0.164497684688 --0.872564867139 -0.164495002478 --0.853341832757 -0.164489995688 --0.836083605886 -0.164485577494 --0.818826049566 -0.164481710643 --0.801568731666 -0.164478447288 --0.784311980009 -0.164475820958 --0.767055362463 -0.164473749697 --0.749799177051 -0.164472285658 --0.732542976737 -0.164471402764 --0.715287074447 -0.16447109729 --0.698031038046 -0.164471399039 --0.680775225162 -0.16447230801 --0.66351917386 -0.164473801851 --0.64626313746 -0.164475873113 --0.629006743431 -0.164478525519 --0.611750289798 -0.164481788874 --0.594493359327 -0.164485655725 --0.577236220241 -0.164490099996 --0.559978455305 -0.164495129139 --0.542720407248 -0.164497710765 --0.523499011993 -0.164495002478 --0.504275985062 -0.164489995688 --0.487017765641 -0.164485577494 --0.469760194421 -0.164481710643 --0.452502891422 -0.164478447288 --0.435246147215 -0.164475820958 --0.417989499867 -0.164473749697 --0.400733299554 -0.164472285658 --0.383477121592 -0.164471402764 --0.366221226752 -0.164471123367 --0.348965205252 -0.164471425116 --0.331709377468 -0.16447230801 --0.314453303814 -0.164473801851 --0.297197274864 -0.164475873113 --0.279940888286 -0.164478525519 --0.262684457004 -0.164481788874 --0.245427500457 -0.164485655725 --0.228170357644 -0.164490099996 --0.21091260761 -0.164495103062 --0.193654544652 -0.164497684688 --0.174433160573 -0.181828252971 --0.155202664435 -0.181822739541 --0.137944396585 -0.181817848235 --0.120686808601 -0.181813623756 --0.103429475799 -0.181810043752 --0.0861726906151 -0.181807111949 --0.0689160292968 -0.181804828346 --0.0516597954556 -0.18180321902 --0.0344035653397 -0.181802250445 --0.0171476437245 -0.181801922619 -0.000108402222395 -0.18180224672 -0.0173642637674 -0.181803241372 -0.0346203744411 -0.1818048805 -0.0518764220178 -0.181807164103 -0.0691328430548 -0.181810095906 -0.0863893274218 -0.181813701987 -0.103646304458 -0.181817974895 -0.120903465897 -0.181822866201 -0.138161249459 -0.181828401983 -0.15541934222 -0.181831233203 -0.174640435726 -0.181828252971 -0.193863186985 -0.181822739541 -0.211121454835 -0.181817848235 -0.228379037231 -0.181813623756 -0.245636377484 -0.181810043752 -0.262893170118 -0.181807111949 -0.280149817467 -0.181804828346 -0.297406040132 -0.18180321902 -0.314662277699 -0.181802250445 -0.33191819489 -0.181801922619 -0.349174246192 -0.18180224672 -0.36643011123 -0.181803241372 -0.383686222136 -0.1818048805 -0.400942273438 -0.181807164103 -0.418198682368 -0.181810095906 -0.435455165804 -0.181813701987 -0.452712155878 -0.181817974895 -0.469969324767 -0.181822866201 -0.487227104604 -0.181828375906 -0.504485182464 -0.181831207126 -0.523706272244 -0.181828252971 -0.542929053306 -0.181822739541 -0.56018730998 -0.181817848235 -0.577444881201 -0.181813597679 -0.594702214003 -0.181810017675 -0.611958995462 -0.181807111949 -0.629215657711 -0.181804828346 -0.646471887827 -0.18180321902 -0.663728132844 -0.181802250445 -0.680984050035 -0.181801922619 -0.698240101337 -0.18180224672 -0.715495988726 -0.181803241372 -0.732752084732 -0.1818048805 -0.750008106232 -0.181807164103 -0.767264515162 -0.181810095906 -0.784521013499 -0.181813701987 -0.801778018475 -0.181817974895 -0.819035172462 -0.181822866201 -0.836292937398 -0.181828401983 -0.853551015258 -0.181831233203 -0.87277212739 -0.181828252971 -0.891994893551 -0.181822739541 -0.909253150225 -0.181817848235 -0.926510751247 -0.181813597679 -0.943768084049 -0.181810017675 -0.961024865508 -0.181807111949 -0.978281527758 -0.181804828346 -0.995537772774 -0.18180321902 -1.01279401779 -0.181802250445 -1.03004992008 -0.181801922619 -1.04730594158 -0.18180224672 -1.06456181407 -0.181803241372 -1.08181792498 -0.1818048805 -1.09907397628 -0.181807164103 -1.11633041501 -0.181810095906 -1.13358691335 -0.181813701987 -1.15084388852 -0.181817974895 -1.1681010127 -0.181822866201 -1.18535879254 -0.181828401983 -1.20261690021 -0.181831233203 -1.22183799744 -0.181828252971 -1.24106073379 -0.181822739541 -1.25831899047 -0.181817848235 -1.27557656169 -0.181813597679 -1.29283389449 -0.181810017675 -1.31009072065 -0.181807111949 -1.327347368 -0.181804828346 -1.34460356832 -0.18180321902 -1.36185982823 -0.181802250445 -1.37911576032 -0.181801922619 -1.39637181163 -0.18180224672 -1.41362768411 -0.181803241372 -1.43088379502 -0.1818048805 -1.44813981652 -0.181807164103 -1.46539622545 -0.181810095906 -1.48265272379 -0.181813701987 -1.49990969896 -0.181817974895 -1.51716688275 -0.181822866201 -1.53442469239 -0.181828401983 -1.55168277025 -0.181831233203 -1.57090383768 -0.181828252971 -1.59012657404 -0.181822739541 -1.60738486052 -0.181817848235 -1.62464246154 -0.181813597679 -1.64189979434 -0.181810017675 -1.6591565609 -0.181807111949 -1.67641320825 -0.181804828346 -1.69366946816 -0.18180321902 -1.71092569828 -0.181802250445 -1.72818163037 -0.181801922619 -1.74543765187 -0.18180224672 -1.76269349456 -0.181803241372 -1.77994963527 -0.1818048805 -1.79720568657 -0.181807164103 -1.8144620955 -0.181810095906 -1.83171859384 -0.181813701987 -1.84897556901 -0.181817974895 -1.86623269319 -0.181822866201 -1.88349047303 -0.181828401983 -1.90074858069 -0.181831233203 -1.91996967792 -0.181828252971 -1.93919241428 -0.181822739541 -1.95645067096 -0.181817848235 -1.97370830178 -0.181813623756 -1.99096566439 -0.181810043752 -2.00822246075 -0.181807111949 -2.0254791379 -0.181804828346 -2.04273533821 -0.18180321902 -2.05999153852 -0.181802250445 -2.07724744082 -0.181801922619 -2.09450352192 -0.18180224672 -2.11175942421 -0.181803241372 -2.12901550531 -0.1818048805 -2.14627152682 -0.181807164103 -2.16352790594 -0.181810095906 -2.18078440428 -0.181813701987 -2.19804137945 -0.181817974895 -2.21529853344 -0.181822866201 -2.23255634308 -0.181828375906 -2.24981445074 -0.181831207126 -2.26903551817 -0.181828252971 -2.28825825453 -0.181822739541 -2.305516541 -0.181817848235 -2.32277411222 -0.181813597679 -2.34003150463 -0.181810017675 -2.35728830099 -0.181807111949 -2.37454491854 -0.181804828346 -2.39180111885 -0.18180321902 -2.40905737877 -0.181802250445 -2.42631334066 -0.181801922619 -2.44356936216 -0.18180224672 -2.46082520485 -0.181803241372 -2.47808128595 -0.1818048805 -2.49533736706 -0.181807164103 -2.51259386539 -0.181810095906 -2.52985030413 -0.181813701987 -2.54710721969 -0.181817974895 -2.56436437368 -0.181822866201 -2.58162218332 -0.181828401983 -2.59888035059 -0.181831233203 -2.61810147762 -0.181828252971 -2.63732421398 -0.181822739541 -2.65458244085 -0.181817848235 -2.67184001207 -0.181813597679 -2.68909734487 -0.181810017675 -2.70635408163 -0.181807111949 -2.72361069918 -0.181804828346 -2.7408669591 -0.18180321902 -2.75812321901 -0.181802250445 -2.77537918091 -0.181801922619 -2.79263526201 -0.18180224672 -2.8098910451 -0.181803241372 -2.8271471262 -0.1818048805 -2.8444032073 -0.181807164103 -2.86165964604 -0.181810095906 -2.87891614437 -0.181813701987 -2.89617311954 -0.181817974895 -2.91343033314 -0.181822866201 -2.93068808318 -0.181828375906 -2.94794613123 -0.181831207126 -2.96716725826 -0.181828252971 -2.98638999462 -0.181822739541 -3.0036482811 -0.181817848235 -3.02090585232 -0.181813623756 -3.03816312552 -0.181810043752 -3.05541992188 -0.181807111949 -3.07267665863 -0.181804828346 -3.08993291855 -0.18180321902 -3.10718911887 -0.181802250445 -3.12444502116 -0.181801922619 --3.14148423274 -0.18180224672 --3.12422841787 -0.181803241372 --3.10697233677 -0.1818048805 --3.08971625566 -0.181807164103 --3.07245981693 -0.181810095906 --3.05520331859 -0.181813701987 --3.03794634342 -0.181817974895 --3.02068912983 -0.181822866201 --3.00343137979 -0.181828401983 --2.98617333174 -0.181831233203 --2.96695220471 -0.181828252971 --2.94772946835 -0.181822739541 --2.93047118187 -0.181817848235 --2.91321361065 -0.181813623756 --2.89595627785 -0.181810043752 --2.87869948149 -0.181807111949 --2.86144280434 -0.181804828346 --2.84418654442 -0.18180321902 --2.8269303441 -0.181802250445 --2.80967444181 -0.181801922619 --2.79241842032 -0.18180224672 --2.77516251802 -0.181803241372 --2.75790637731 -0.1818048805 --2.74065035582 -0.181807164103 --2.72339397669 -0.181810095906 --2.70613753796 -0.181813701987 --2.68888056279 -0.181817974895 --2.67162334919 -0.181822866201 --2.65436553955 -0.181828375906 --2.6371074915 -0.181831207126 --2.61788642407 -0.181828252971 --2.5986636281 -0.181822739541 --2.58140534163 -0.181817848235 --2.56414777041 -0.181813597679 --2.5468904376 -0.181810017675 --2.52963364124 -0.181807111949 --2.51237696409 -0.181804828346 --2.49512076378 -0.18180321902 --2.47786450386 -0.181802250445 --2.46060860157 -0.181801922619 --2.44335258007 -0.18180224672 --2.42609667778 -0.181803241372 --2.40884059667 -0.1818048805 --2.39158457518 -0.181807164103 --2.37432819605 -0.181810095906 --2.35707163811 -0.181813701987 --2.33981460333 -0.181817974895 --2.32255750894 -0.181822866201 --2.30529969931 -0.181828401983 --2.28804165125 -0.181831233203 --2.26882052422 -0.181828252971 --2.24959766865 -0.181822739541 --2.23233944178 -0.181817848235 --2.21508187056 -0.181813597679 --2.19782453776 -0.181810017675 --2.180567801 -0.181807111949 --2.16331118345 -0.181804828346 --2.14605492353 -0.18180321902 --2.12879866362 -0.181802250445 --2.11154276132 -0.181801922619 --2.09428668022 -0.18180224672 --2.07703083754 -0.181803241372 --2.05977475643 -0.1818048805 --2.04251867533 -0.181807164103 --2.0252622366 -0.181810095906 --2.00800576806 -0.181813701987 --1.99074882269 -0.181817974895 --1.9734916389 -0.181822866201 --1.95623382926 -0.181828401983 --1.9389757514 -0.181831233203 --1.91975468397 -0.181828252971 --1.90053191781 -0.181822739541 --1.88327363134 -0.181817848235 --1.86601606011 -0.181813597679 --1.84875872731 -0.181810017675 --1.83150193095 -0.181807111949 --1.8142452836 -0.181804828346 --1.79698905348 -0.18180321902 --1.77973282337 -0.181802250445 --1.76247689128 -0.181801922619 --1.74522086978 -0.18180224672 --1.72796502709 -0.181803241372 --1.71070888639 -0.1818048805 --1.69345283508 -0.181807164103 --1.67619642615 -0.181810095906 --1.65893992782 -0.181813701987 --1.64168292284 -0.181817974895 --1.62442576885 -0.181822866201 --1.60716801881 -0.181828401983 --1.58990994096 -0.181831233203 --1.57068884373 -0.181828252971 --1.55146607757 -0.181822739541 --1.53420782089 -0.181817848235 --1.51695021987 -0.181813597679 --1.49969285726 -0.181810017675 --1.48243609071 -0.181807111949 --1.46517941356 -0.181804828346 --1.44792318344 -0.18180321902 --1.43066698313 -0.181802250445 --1.41341108083 -0.181801922619 --1.39615502954 -0.18180224672 --1.37889912724 -0.181803241372 --1.36164301634 -0.1818048805 --1.34438696503 -0.181807164103 --1.3271305263 -0.181810095906 --1.30987408757 -0.181813701987 --1.2926171422 -0.181817974895 --1.27535995841 -0.181822866201 --1.25810214877 -0.181828401983 --1.24084404111 -0.181831233203 --1.22162294388 -0.181828252971 --1.20240020752 -0.181822739541 --1.18514195085 -0.181817848235 --1.16788437963 -0.181813623756 --1.15062704682 -0.181810043752 --1.13337025046 -0.181807111949 --1.11611360312 -0.181804828346 --1.098857373 -0.18180321902 --1.08160114288 -0.181802250445 --1.06434521079 -0.181801922619 --1.04708912969 -0.18180224672 --1.029833287 -0.181803241372 --1.01257717609 -0.1818048805 --0.995321109891 -0.181807164103 --0.978064715862 -0.181810095906 --0.960808232427 -0.181813701987 --0.943551257253 -0.181817974895 --0.926294103265 -0.181822866201 --0.909036308527 -0.181828375906 --0.891778200865 -0.181831207126 --0.872557103634 -0.181828252971 --0.853334352374 -0.181822739541 --0.836076095701 -0.181817848235 --0.81881852448 -0.181813597679 --0.801561176777 -0.181810017675 --0.784304380417 -0.181807111949 --0.767047718167 -0.181804828346 --0.749791488051 -0.18180321902 --0.732535287738 -0.181802250445 --0.715279355645 -0.181801922619 --0.698023274541 -0.18180224672 --0.680767431855 -0.181803241372 --0.66351133585 -0.1818048805 --0.646255284548 -0.181807164103 --0.628998860717 -0.181810095906 --0.611742377282 -0.181813701987 --0.594485402108 -0.181817974895 --0.577228233218 -0.181822866201 --0.55997043848 -0.181828401983 --0.542712345719 -0.181831233203 --0.52349126339 -0.181828252971 --0.504268527031 -0.181822739541 --0.487010262907 -0.181817848235 --0.469752661884 -0.181813597679 --0.452495321632 -0.181810017675 --0.435238532722 -0.181807111949 --0.417981863022 -0.181804828346 --0.400725640357 -0.18180321902 --0.383469425142 -0.181802250445 --0.3662135005 -0.181801922619 --0.348957449198 -0.18180224672 --0.331701591611 -0.181803241372 --0.314445480704 -0.1818048805 --0.297189414501 -0.181807164103 --0.27993299067 -0.181810095906 --0.262676529587 -0.181813701987 --0.245419558138 -0.181817974895 --0.228162381798 -0.181822866201 --0.210904594511 -0.181828375906 --0.19364650175 -0.181831207126 --0.174425408244 -0.199190545827 --0.155195247382 -0.199184518308 --0.13793694973 -0.199179172516 --0.120679328218 -0.199174553156 --0.103421960026 -0.199170645327 --0.0861651431769 -0.199167449027 --0.0689084492624 -0.199164982885 --0.0516521884128 -0.199163228273 --0.034395926632 -0.199162129313 --0.0171399717219 -0.19916178286 -0.00011610542424 -0.199162151664 -0.0173719979357 -0.199163228273 -0.0346281398088 -0.199165035039 -0.0518842218444 -0.19916754961 -0.0691406745463 -0.199170745909 -0.086397189647 -0.199174653739 -0.103654198349 -0.199179317802 -0.120911391452 -0.199184689671 -0.138169206679 -0.199190739542 -0.155427329242 -0.199193812907 -0.174648139626 -0.199190545827 -0.193870607764 -0.199184518308 -0.21112890169 -0.199179172516 -0.228386521339 -0.199174553156 -0.245643898844 -0.199170645327 -0.262900710106 -0.199167449027 -0.280157394707 -0.199164960533 -0.297413654626 -0.199163205922 -0.314669914544 -0.199162129313 -0.331925868988 -0.19916178286 -0.349181957543 -0.199162151664 -0.366437852383 -0.199163228273 -0.383693985641 -0.199165035039 -0.400950066745 -0.19916754961 -0.418206520379 -0.199170745909 -0.435463041067 -0.199174653739 -0.452720053494 -0.199179317802 -0.469977244735 -0.199184663594 -0.487235054374 -0.199190713465 -0.504493191839 -0.199193812907 -0.523714005947 -0.199190545827 -0.542936459183 -0.199184518308 -0.56019474566 -0.199179172516 -0.577452361584 -0.199174553156 -0.594709739089 -0.199170645327 -0.611966565251 -0.199167449027 -0.629223257303 -0.199164960533 -0.64647950232 -0.199163205922 -0.663735762238 -0.19916215539 -0.680991724133 -0.199161808937 -0.698247805238 -0.199162151664 -0.715503707528 -0.199163228273 -0.732759848237 -0.199165035039 -0.75001591444 -0.19916754961 -0.767272353172 -0.199170745909 -0.784528881312 -0.199174653739 -0.80178591609 -0.199179317802 -0.819043114782 -0.199184663594 -0.836300909519 -0.199190713465 -0.853559017181 -0.199193812907 -0.87277983129 -0.199190545827 -0.892002299428 -0.199184518308 -0.909260600805 -0.199179172516 -0.92651823163 -0.199174553156 -0.943775594235 -0.199170645327 -0.961032405496 -0.199167449027 -0.978289112449 -0.199164960533 -0.995545372368 -0.199163205922 -1.01280164719 -0.199162129313 -1.03005760908 -0.19916178286 -1.04731366038 -0.199162151664 -1.06456956267 -0.199163228273 -1.08182570338 -0.199165035039 -1.09908178449 -0.19916754961 -1.11633822322 -0.199170745909 -1.13359472155 -0.199174653739 -1.15085172653 -0.199179317802 -1.16810891032 -0.199184663594 -1.18536674976 -0.199190713465 -1.20262488723 -0.199193812907 -1.22184568644 -0.199190545827 -1.24106815457 -0.199184518308 -1.25832647085 -0.199179172516 -1.27558407187 -0.199174553156 -1.29284143448 -0.199170645327 -1.31009829045 -0.199167449027 -1.3273549676 -0.199164960533 -1.34461119771 -0.199163205922 -1.36186745762 -0.19916215539 -1.37912341952 -0.199161808937 -1.39637950062 -0.199162151664 -1.41363540292 -0.199163228273 -1.43089157343 -0.199165035039 -1.44814762473 -0.19916754961 -1.46540406346 -0.199170745909 -1.4826605916 -0.199174676091 -1.49991759658 -0.199179340154 -1.51717481017 -0.199184663594 -1.53443261981 -0.199190713465 -1.55169072747 -0.199193812907 -1.57091155648 -0.199190545827 -1.59013402462 -0.199184518308 -1.60739231109 -0.199179172516 -1.62464994192 -0.199174553156 -1.64190730453 -0.199170645327 -1.65916410088 -0.199167449027 -1.67642080784 -0.199164960533 -1.69367706776 -0.199163205922 -1.71093332767 -0.199162129313 -1.72818931937 -0.19916178286 -1.74544537067 -0.199162151664 -1.76270124316 -0.199163228273 -1.77995738387 -0.199165035039 -1.79721346498 -0.19916754961 -1.81446993351 -0.199170745909 -1.83172643185 -0.199174653739 -1.84898343682 -0.199179317802 -1.86624065041 -0.199184663594 -1.88349846005 -0.199190713465 -1.90075656772 -0.199193812907 -1.91997736692 -0.199190545827 -1.93919983506 -0.199184518308 -1.95645815134 -0.199179172516 -1.97371578217 -0.199174553156 -1.99097317457 -0.199170645327 -2.00822997093 -0.199167449027 -2.02548664809 -0.199164960533 -2.04274296761 -0.199163205922 -2.05999922752 -0.19916215539 -2.07725512981 -0.199161808937 -2.09451121092 -0.199162151664 -2.11176711321 -0.199163228273 -2.12902325392 -0.199165035039 -2.14627933502 -0.19916754961 -2.16353577375 -0.199170745909 -2.18079227209 -0.199174653739 -2.19804924726 -0.199179317802 -2.21530646086 -0.199184663594 -2.2325642705 -0.199190713465 -2.24982243776 -0.199193812907 -2.26904326677 -0.199190545827 -2.2882656455 -0.199184518308 -2.30552393198 -0.199179172516 -2.3227815628 -0.199174553156 -2.34003901481 -0.199170645327 -2.35729587078 -0.199167449027 -2.37455248833 -0.199164960533 -2.39180874824 -0.199163205922 -2.40906506777 -0.199162129313 -2.42632097006 -0.19916178286 -2.44357699156 -0.199162151664 -2.46083289385 -0.199163228273 -2.47808903456 -0.199165035039 -2.49534517527 -0.19916754961 -2.5126016736 -0.199170745909 -2.52985811233 -0.199174653739 -2.54711508751 -0.199179317802 -2.5643723011 -0.199184663594 -2.58163017034 -0.199190713465 -2.59888833761 -0.199193812907 -2.61810910702 -0.199190545827 -2.63733160496 -0.199184518308 -2.65458995104 -0.199179172516 -2.67184752226 -0.199174553156 -2.68910485506 -0.199170645327 -2.70636165142 -0.199167449027 -2.72361832857 -0.199164960533 -2.74087458849 -0.199163205922 -2.75813084841 -0.199162129313 -2.77538686991 -0.19916178286 -2.79264295101 -0.199162151664 -2.8098987937 -0.199163228273 -2.8271548748 -0.199165035039 -2.84441095591 -0.19916754961 -2.86166745424 -0.199170745909 -2.87892401218 -0.199174653739 -2.89618104696 -0.199179317802 -2.91343826056 -0.199184689671 -2.9306960702 -0.199190739542 -2.94795411825 -0.199193812907 -2.96717494726 -0.199190545827 -2.9863974452 -0.199184518308 -3.00365573168 -0.199179172516 -3.0209133625 -0.199174553156 -3.0381706953 -0.199170645327 -3.05542749166 -0.199167449027 -3.07268422842 -0.199164982885 -3.08994048834 -0.199163228273 -3.10719674826 -0.199162129313 -3.12445271015 -0.19916178286 --3.14147654374 -0.199162151664 --3.12422066927 -0.199163228273 --3.10696452856 -0.199165035039 --3.08970844746 -0.19916754961 --3.07245200873 -0.199170745909 --3.05519545078 -0.199174653739 --3.037938416 -0.199179317802 --3.02068120241 -0.199184689671 --3.00342339277 -0.199190739542 --2.98616534471 -0.199193812907 --2.9669445157 -0.199190545827 --2.94772201776 -0.199184518308 --2.93046373129 -0.199179172516 --2.91320610046 -0.199174553156 --2.89594876766 -0.199170645327 --2.8786919713 -0.199167449027 --2.86143523455 -0.199164960533 --2.84417897463 -0.199163205922 --2.82692271471 -0.199162129313 --2.80966675282 -0.19916178286 --2.79241067171 -0.199162151664 --2.77515476942 -0.199163228273 --2.75789862871 -0.199165035039 --2.74064254761 -0.19916754961 --2.72338610888 -0.199170745909 --2.70612961054 -0.199174653739 --2.68887263537 -0.199179317802 --2.67161542177 -0.199184663594 --2.65435761213 -0.199190713465 --2.63709950447 -0.199193812907 --2.61787867546 -0.199190545827 --2.59865623712 -0.199184518308 --2.58139795065 -0.199179172516 --2.56414026022 -0.199174553156 --2.54688286781 -0.199170645327 --2.52962607145 -0.199167449027 --2.5123693943 -0.199164960533 --2.49511313438 -0.199163205922 --2.47785687447 -0.19916215539 --2.46060097218 -0.199161808937 --2.44334489107 -0.199162151664 --2.42608898878 -0.199163228273 --2.40883284807 -0.199165035039 --2.39157676697 -0.19916754961 --2.37432032824 -0.199170745909 --2.35706377029 -0.199174653739 --2.33980673551 -0.199179317802 --2.32254958153 -0.199184663594 --2.30529177189 -0.199190713465 --2.28803366423 -0.199193812907 --2.26881283522 -0.199190545827 --2.24959033728 -0.199184518308 --2.2323320508 -0.199179172516 --2.21507441998 -0.199174553156 --2.19781702757 -0.199170645327 --2.18056023121 -0.199167449027 --2.16330355406 -0.199164960533 --2.14604729414 -0.199163205922 --2.12879103422 -0.199162129313 --2.11153507233 -0.19916178286 --2.09427899122 -0.199162151664 --2.07702308893 -0.199163228273 --2.05976700783 -0.199165035039 --2.04251092672 -0.19916754961 --2.02525442839 -0.199170745909 --2.00799793005 -0.199174653739 --1.99074092508 -0.199179317802 --1.97348371148 -0.199184663594 --1.95622587204 -0.199190713465 --1.93896773458 -0.199193812907 --1.91974693537 -0.199190545827 --1.90052446723 -0.199184518308 --1.88326618076 -0.199179172516 --1.86600857973 -0.199174553156 --1.84875121713 -0.199170645327 --1.83149442077 -0.199167449027 --1.81423771381 -0.199164960533 --1.79698142409 -0.199163205922 --1.77972516418 -0.19916215539 --1.76246920228 -0.199161808937 --1.74521315098 -0.199162151664 --1.72795727849 -0.199163228273 --1.71070113778 -0.199165035039 --1.69344505668 -0.19916754961 --1.67618858814 -0.199170745909 --1.65893206 -0.199174676091 --1.64167502522 -0.199179340154 --1.62441784143 -0.199184663594 --1.6071600616 -0.199190713465 --1.58990195394 -0.199193812907 --1.57068112492 -0.199190545827 --1.55145865679 -0.199184518308 --1.53420037031 -0.199179172516 --1.51694273949 -0.199174553156 --1.49968534708 -0.199170645327 --1.48242852092 -0.199167449027 --1.46517184377 -0.199164960533 --1.44791558385 -0.199163205922 --1.43065932393 -0.199162129313 --1.41340339184 -0.19916178286 --1.39614731073 -0.199162151664 --1.37889140844 -0.199163228273 --1.36163526773 -0.199165035039 --1.34437915683 -0.19916754961 --1.32712268829 -0.199170745909 --1.30986621976 -0.199174653739 --1.29260924458 -0.199179317802 --1.27535203099 -0.199184663594 --1.25809419155 -0.199190713465 --1.24083605409 -0.199193812907 --1.22161525488 -0.199190545827 --1.20239278674 -0.199184518308 --1.18513450027 -0.199179172516 --1.16787689924 -0.199174553156 --1.15061953664 -0.199170645327 --1.13336271048 -0.199167449027 --1.11610600353 -0.199164960533 --1.0988497436 -0.199163205922 --1.08159348368 -0.19916215539 --1.06433752179 -0.199161808937 --1.04708144068 -0.199162151664 --1.0298255682 -0.199163228273 --1.01256939769 -0.199165035039 --0.995313301683 -0.19916754961 --0.978056877852 -0.199170745909 --0.960800364613 -0.199174653739 --0.943543374538 -0.199179317802 --0.926286175847 -0.199184663594 --0.909028336406 -0.199190713465 --0.891770198941 -0.199193812907 --0.872549399733 -0.199190545827 --0.853326946497 -0.199184518308 --0.83606864512 -0.199179172516 --0.818811044097 -0.199174553156 --0.801553666592 -0.199170645327 --0.784296840429 -0.199167449027 --0.767040148377 -0.199164960533 --0.749783873558 -0.199163205922 --0.732527643442 -0.199162129313 --0.715271696448 -0.19916178286 --0.698015585542 -0.199162151664 --0.680759698153 -0.199163228273 --0.663503557444 -0.199165035039 --0.646247461438 -0.19916754961 --0.628991022706 -0.199170745909 --0.611734524369 -0.199174653739 --0.594477504492 -0.199179317802 --0.5772203058 -0.199184663594 --0.55996248126 -0.199190713465 --0.542704358697 -0.199193812907 --0.523483559489 -0.199190545827 --0.504261098802 -0.199184518308 --0.487002804875 -0.199179172516 --0.46974517405 -0.199174553156 --0.452487803996 -0.199170645327 --0.435230985284 -0.199167449027 --0.417974293232 -0.199164960533 --0.400718040765 -0.199163205922 --0.383461773395 -0.199162129313 --0.366205811501 -0.19916178286 --0.348949737847 -0.199162151664 --0.331693850458 -0.199163228273 --0.314437709749 -0.199165035039 --0.297181621194 -0.19916754961 --0.279925167561 -0.199170745909 --0.262668661773 -0.199174653739 --0.245411656797 -0.199179317802 --0.228154458106 -0.199184689671 --0.210896644741 -0.199190739542 --0.193638522178 -0.199193812907 --0.174417711794 -0.216554418206 --0.15518803522 -0.216547891498 --0.137929715216 -0.216542087495 --0.120672060177 -0.216537069529 --0.103414652869 -0.216532848776 --0.0861578080803 -0.216529395431 --0.0689010852948 -0.216526705772 --0.0516447927803 -0.216524787247 --0.0343885011971 -0.216523610055 --0.0171325162519 -0.216523222625 -0.000123591860755 -0.21652360633 -0.017379514873 -0.216524783522 -0.0346356881782 -0.216526754201 -0.0518918000161 -0.216529466212 -0.0691482806578 -0.216532941908 -0.086404826492 -0.216537188739 -0.103661868721 -0.216542229056 -0.12091909349 -0.216548059136 -0.138176940381 -0.216554630548 -0.155435100198 -0.216557968408 -0.17465563491 -0.216554418206 -0.193877819926 -0.216547891498 -0.21113614738 -0.216542087495 -0.228393796831 -0.216537069529 -0.245651192963 -0.216532848776 -0.262908034027 -0.216529395431 -0.280164763331 -0.21652668342 -0.297421060503 -0.216524764895 -0.314677357674 -0.216523610055 -0.331933341921 -0.216523244977 -0.349189437926 -0.216523628682 -0.366445370019 -0.216524783522 -0.38370154053 -0.216526754201 -0.400957651436 -0.216529466212 -0.418214134872 -0.216532941908 -0.435470685363 -0.21653721109 -0.452727727592 -0.216542251408 -0.469984941185 -0.216548033059 -0.487242795527 -0.216554604471 -0.504500970245 -0.216557968408 -0.523721501231 -0.216554418206 -0.542943671346 -0.216547865421 -0.560201987624 -0.21654208377 -0.57745963335 -0.216537091881 -0.594717055559 -0.216532848776 -0.611973911524 -0.216529395431 -0.629230618477 -0.21652668342 -0.646486908197 -0.216524764895 -0.663743197918 -0.216523636132 -0.680999189615 -0.216523271054 -0.698255300522 -0.216523628682 -0.715511217713 -0.216524783522 -0.732767388224 -0.216526754201 -0.75002348423 -0.216529466212 -0.767279967665 -0.216532941908 -0.784536525607 -0.21653721109 -0.801793575287 -0.216542251408 -0.819050818682 -0.216548033059 -0.836308643222 -0.216554604471 -0.853566795588 -0.216557968408 -0.872787356377 -0.216554418206 -0.89200951159 -0.216547865421 -0.909267827868 -0.21654208377 -0.926525488496 -0.216537091881 -0.943782895803 -0.216532848776 -0.961039751768 -0.216529395431 -0.978296458721 -0.21652668342 -0.995552718641 -0.216524764895 -1.01280903816 -0.216523610055 -1.03006505966 -0.216523244977 -1.04732114076 -0.216523628682 -1.06457707286 -0.216524783522 -1.08183324337 -0.216526754201 -1.09908935428 -0.216529488563 -1.11634582281 -0.216532964259 -1.13360235095 -0.216537188739 -1.15085938573 -0.216542229056 -1.16811659932 -0.216548033059 -1.18537446857 -0.216554604471 -1.20263263583 -0.216557968408 -1.22185316682 -0.216554418206 -1.24107536674 -0.216547865421 -1.25833371282 -0.21654208377 -1.27559134364 -0.216537091881 -1.29284873605 -0.216532848776 -1.31010562182 -0.216529395431 -1.32736232877 -0.21652668342 -1.34461858869 -0.216524764895 -1.36187487841 -0.216523636132 -1.3791308701 -0.216523271054 -1.39638698101 -0.216523628682 -1.4136429131 -0.216524783522 -1.43089911342 -0.216526754201 -1.44815519452 -0.216529488563 -1.46541166306 -0.216532964259 -1.482668221 -0.21653721109 -1.49992525578 -0.216542251408 -1.51718249917 -0.216548033059 -1.53444033861 -0.216554604471 -1.55169847608 -0.216557968408 -1.57091903687 -0.216554418206 -1.59014126658 -0.216547865421 -1.60739958286 -0.21654208377 -1.62465721369 -0.216537091881 -1.64191460609 -0.216532848776 -1.65917143225 -0.216529395431 -1.67642816901 -0.21652668342 -1.69368445873 -0.216524764895 -1.71094074845 -0.216523610055 -1.72819676995 -0.216523244977 -1.74545285106 -0.216523628682 -1.76270875335 -0.216524783522 -1.77996492386 -0.216526754201 -1.79722103476 -0.216529488563 -1.8144775331 -0.216532964259 -1.83173406124 -0.21653721109 -1.84899112583 -0.216542251408 -1.86624839902 -0.216548033059 -1.88350620866 -0.216554626823 -1.90076434612 -0.21655799076 -1.91998487711 -0.216554418206 -1.93920704723 -0.216547865421 -1.95646539331 -0.21654208377 -1.97372305393 -0.216537091881 -1.99098047614 -0.216532848776 -2.0082373023 -0.216529395431 -2.02549397946 -0.21652668342 -2.04275029898 -0.216524764895 -2.0600066185 -0.216523636132 -2.07726258039 -0.216523271054 -2.09451872111 -0.216523628682 -2.1117746234 -0.216524783522 -2.1290307641 -0.216526754201 -2.14628690481 -0.216529466212 -2.16354340315 -0.216532941908 -2.18079996109 -0.216537188739 -2.19805699587 -0.216542229056 -2.21531420946 -0.216548033059 -2.2325720191 -0.216554604471 -2.24983018637 -0.216557968408 -2.26905077696 -0.216554418206 -2.28827291727 -0.216547865421 -2.30553120375 -0.21654208377 -2.32278889418 -0.216537091881 -2.34004634619 -0.216532848776 -2.35730320215 -0.216529395431 -2.3745598793 -0.21652668342 -2.39181619882 -0.216524764895 -2.40907251835 -0.216523610055 -2.42632842064 -0.216523244977 -2.44358450174 -0.216523628682 -2.46084046364 -0.216524783522 -2.47809660434 -0.216526754201 -2.49535274505 -0.216529466212 -2.51260924339 -0.216532941908 -2.52986574173 -0.21653721109 -2.54712277651 -0.216542251408 -2.5643799901 -0.216548033059 -2.58163785934 -0.216554626823 -2.59889602661 -0.21655799076 -2.6181165576 -0.216554418206 -2.63733881712 -0.216547865421 -2.6545971632 -0.21654208377 -2.67185473442 -0.216537091881 -2.68911212683 -0.216532848776 -2.70636898279 -0.216529395431 -2.72362571955 -0.21652668342 -2.74088203907 -0.216524764895 -2.75813829899 -0.216523610055 -2.77539432049 -0.216523244977 -2.79265040159 -0.216523628682 -2.80990630388 -0.216524783522 -2.82716250419 -0.216526754201 -2.8444185853 -0.216529466212 -2.86167508364 -0.216532941908 -2.87893164158 -0.21653721109 -2.89618867636 -0.216542251408 -2.91344594956 -0.216548059136 -2.9307038188 -0.216554630548 -2.94796192646 -0.216557968408 -2.96718245745 -0.216554418206 -2.98640465737 -0.216547891498 -3.00366294384 -0.216542087495 -3.02092063427 -0.216537069529 -3.03817802667 -0.216532848776 -3.05543482304 -0.216529395431 -3.07269155979 -0.216526705772 -3.08994781971 -0.216524787247 -3.10720413923 -0.216523610055 -3.12446016073 -0.216523222625 --3.14146909316 -0.21652360633 --3.12421315909 -0.216524783522 --3.10695689917 -0.216526754201 --3.08970081806 -0.216529466212 --3.07244443893 -0.216532941908 --3.05518788099 -0.216537188739 --3.03793078661 -0.216542229056 --3.02067351341 -0.216548059136 --3.00341564417 -0.216554630548 --2.9861575365 -0.216557968408 --2.96693700552 -0.216554418206 --2.9477148056 -0.216547891498 --2.93045645952 -0.216542087495 --2.91319876909 -0.216537069529 --2.89594143629 -0.216532848776 --2.87868463993 -0.216529395431 --2.86142790318 -0.21652668342 --2.84417164326 -0.216524764895 --2.82691532373 -0.216523610055 --2.80965930224 -0.216523244977 --2.79240322113 -0.216523628682 --2.77514731884 -0.216524783522 --2.75789111853 -0.216526754201 --2.74063497782 -0.216529466212 --2.72337847948 -0.216532941908 --2.70612192154 -0.21653721109 --2.68886488676 -0.216542251408 --2.67160767317 -0.216548033059 --2.65434986353 -0.216554604471 --2.63709169626 -0.216557968408 --2.61787116527 -0.216554418206 --2.59864902496 -0.216547865421 --2.58139067888 -0.21654208377 --2.56413298845 -0.216537091881 --2.54687553644 -0.216532848776 --2.52961868048 -0.216529395431 --2.51236206293 -0.21652668342 --2.49510574341 -0.216524764895 --2.47784942388 -0.216523636132 --2.4605935216 -0.216523271054 --2.44333738089 -0.216523628682 --2.42608141899 -0.216524783522 --2.40882527828 -0.216526754201 --2.39156919718 -0.216529466212 --2.37431269884 -0.216532941908 --2.3570561409 -0.21653721109 --2.33979910612 -0.216542251408 --2.32254189253 -0.216548033059 --2.30528408289 -0.216554604471 --2.28802591562 -0.216557968408 --2.26880532503 -0.216554418206 --2.24958318472 -0.216547865421 --2.23232489824 -0.21654208377 --2.21506720781 -0.216537091881 --2.1978097558 -0.216532848776 --2.18055289984 -0.216529395431 --2.16329616308 -0.21652668342 --2.14603984356 -0.216524764895 --2.12878358364 -0.216523610055 --2.11152756214 -0.216523244977 --2.09427148104 -0.216523628682 --2.07701557875 -0.216524783522 --2.05975943804 -0.216526754201 --2.04250335693 -0.216529488563 --2.0252468586 -0.216532964259 --2.00799030065 -0.216537188739 --1.99073323608 -0.216542229056 --1.97347602248 -0.216548033059 --1.95621815324 -0.216554604471 --1.93895998597 -0.216557968408 --1.91973945498 -0.216554418206 --1.90051725507 -0.216547865421 --1.88325893879 -0.21654208377 --1.86600130796 -0.216537091881 --1.84874391556 -0.216532848776 --1.83148708939 -0.216529395431 --1.81423035264 -0.21652668342 --1.79697403312 -0.216524764895 --1.7797177434 -0.216523636132 --1.7624617517 -0.216523271054 --1.74520564079 -0.216523628682 --1.7279497385 -0.216524783522 --1.71069359779 -0.216526754201 --1.69343748689 -0.216529488563 --1.67618098855 -0.216532964259 --1.65892443061 -0.21653721109 --1.64166736603 -0.216542251408 --1.62441012263 -0.216548033059 --1.60715228319 -0.216554604471 --1.58989414573 -0.216557968408 --1.57067361474 -0.216554418206 --1.55145144463 -0.216547865421 --1.53419312835 -0.21654208377 --1.51693546772 -0.216537091881 --1.49967804551 -0.216532848776 --1.48242118955 -0.216529395431 --1.4651644826 -0.21652668342 --1.44790819287 -0.216524764895 --1.43065190315 -0.216523610055 --1.41339594126 -0.216523244977 --1.39613983035 -0.216523628682 --1.37888389826 -0.216524783522 --1.36162772775 -0.216526754201 --1.34437158704 -0.216529488563 --1.3271150887 -0.216532964259 --1.30985856056 -0.21653721109 --1.29260155559 -0.216542251408 --1.27534434199 -0.216548033059 --1.25808647275 -0.216554626823 --1.24082830549 -0.21655799076 --1.22160777449 -0.216554418206 --1.20238557458 -0.216547865421 --1.1851272583 -0.21654208377 --1.16786962748 -0.216537091881 --1.15061223507 -0.216532848776 --1.1333553493 -0.216529395431 --1.11609861255 -0.21652668342 --1.09884235263 -0.216524764895 --1.08158606291 -0.216523636132 --1.06433007121 -0.216523271054 --1.04707396031 -0.216523628682 --1.02981802821 -0.216524783522 --1.0125618279 -0.216526754201 --0.995305716993 -0.216529466212 --0.978049263358 -0.216532941908 --0.960792720318 -0.216537188739 --0.943535685539 -0.216542229056 --0.926278457046 -0.216548033059 --0.909020587802 -0.216554604471 --0.891762435436 -0.216557968408 --0.872541904449 -0.216554418206 --0.853319719434 -0.216547865421 --0.836061403155 -0.21654208377 --0.818803757429 -0.216537091881 --0.801546350121 -0.216532848776 --0.784289509058 -0.216529395431 --0.767032787204 -0.21652668342 --0.749776482582 -0.216524764895 --0.732520207762 -0.216523610055 --0.715264230966 -0.216523244977 --0.69800812006 -0.216523628682 --0.680752202869 -0.216524783522 --0.663496017456 -0.216526754201 --0.646239891648 -0.216529466212 --0.628983423113 -0.216532941908 --0.611726880073 -0.21653721109 --0.594469830394 -0.216542251408 --0.5772126019 -0.216548033059 --0.559954747558 -0.216554626823 --0.542696595192 -0.21655799076 --0.523476064205 -0.216554418206 --0.50425387919 -0.216547865421 --0.48699555546 -0.21654208377 --0.469737902283 -0.216537091881 --0.452480502427 -0.216532848776 --0.435223661363 -0.216529395431 --0.417966939509 -0.21652668342 --0.400710642338 -0.216524764895 --0.383454345167 -0.216523610055 --0.36619835347 -0.216523244977 --0.348942250013 -0.216523628682 --0.331686332822 -0.216524783522 --0.314430162311 -0.216526754201 --0.297174051404 -0.216529466212 --0.279917567968 -0.216532941908 --0.262661024928 -0.21653721109 --0.245403982699 -0.216542251408 --0.228146754205 -0.216548059136 --0.210888914764 -0.216554630548 --0.193630758673 -0.216557968408 --0.174410220235 -0.23390013352 --0.155180841684 -0.233893107623 --0.137922488153 -0.233886860311 --0.120664805174 -0.233881436288 --0.103407371789 -0.233876887709 --0.0861504953355 -0.233873184771 --0.0688937427476 -0.233870260418 --0.0516374185681 -0.233868185431 --0.0343810971826 -0.233866956085 --0.0171250824351 -0.233866531402 -0.000131056411192 -0.233866933733 -0.0173870101571 -0.233868207783 -0.0346432123333 -0.233870331198 -0.0518993530422 -0.233873255551 -0.0691558653489 -0.233877003193 -0.0864124428481 -0.233881577849 -0.103669516742 -0.233887001872 -0.120926775038 -0.233893271536 -0.138184655458 -0.233900342137 -0.155442841351 -0.233903951943 -0.174663104117 -0.23390013352 -0.193885017186 -0.233893107623 -0.211143370718 -0.233886860311 -0.228401042521 -0.233881436288 -0.24565846473 -0.233876887709 -0.262915343046 -0.233873184771 -0.280172102154 -0.233870260418 -0.297428436577 -0.233868185431 -0.314684771001 -0.233866956085 -0.3319407776 -0.233866553753 -0.349196903407 -0.233866956085 -0.366452865302 -0.233868207783 -0.383709065616 -0.233870331198 -0.400965206325 -0.233873255551 -0.418221719563 -0.233877003193 -0.435478299856 -0.233881622553 -0.452735379338 -0.233887046576 -0.469992630184 -0.233893271536 -0.487250499428 -0.233900342137 -0.504508689046 -0.233903951943 -0.523728951812 -0.23390013352 -0.542950868607 -0.233893081546 -0.560209214687 -0.233886856586 -0.577466890216 -0.23388145864 -0.594724342227 -0.233876887709 -0.611981227994 -0.233873184771 -0.629237964749 -0.233870282769 -0.646494284272 -0.233868207782 -0.663750618696 -0.233866956085 -0.681006640196 -0.233866553753 -0.698262795806 -0.233866956085 -0.7155187428 -0.233868207783 -0.732774913311 -0.233870331198 -0.750031039119 -0.233873255551 -0.767287552357 -0.233877003193 -0.7845441401 -0.233881600201 -0.801801219582 -0.233887024224 -0.819058477878 -0.233893271536 -0.836316347122 -0.233900342137 -0.85357452929 -0.233903951943 -0.872794821858 -0.23390013352 -0.892016723752 -0.233893081546 -0.909275069833 -0.233886856586 -0.926532745361 -0.23388145864 -0.94379016757 -0.233876887709 -0.961047053337 -0.233873184771 -0.978303790093 -0.233870260418 -0.995560094714 -0.233868185431 -1.01281642914 -0.233866956085 -1.03007245064 -0.233866553753 -1.04732856155 -0.233866956085 -1.06458455324 -0.233868207783 -1.08184078336 -0.233870331198 -1.09909692407 -0.233873277902 -1.11635342241 -0.233877025544 -1.13360998035 -0.233881600201 -1.15086704493 -0.233887024224 -1.16812428832 -0.233893271536 -1.18538218737 -0.233900342137 -1.20264038444 -0.233903951943 -1.2218606472 -0.23390013352 -1.2410825789 -0.233893081546 -1.25834092498 -0.233886856586 -1.27559858561 -0.23388145864 -1.29285600781 -0.233876887709 -1.31011289358 -0.233873184771 -1.32736963034 -0.233870260418 -1.34462594986 -0.233868185431 -1.36188229918 -0.233866956085 -1.37913832069 -0.233866553753 -1.39639446139 -0.233866956085 -1.41365042329 -0.233868207783 -1.4309066236 -0.233870331198 -1.44816273451 -0.233873277902 -1.46541926265 -0.233877025544 -1.48267585039 -0.233881577849 -1.49993291497 -0.233887001872 -1.51719018817 -0.233893271536 -1.53444805741 -0.233900342137 -1.55170622468 -0.233903951943 -1.57092648745 -0.23390013352 -1.59014841914 -0.233893081546 -1.60740679502 -0.233886856586 -1.62466445565 -0.23388145864 -1.64192187786 -0.233876887709 -1.65917876362 -0.233873184771 -1.67643550038 -0.233870260418 -1.69369181991 -0.233868185431 -1.71094813943 -0.233866956085 -1.72820416093 -0.233866553753 -1.74546030164 -0.233866956085 -1.76271626353 -0.233868207783 -1.77997246385 -0.233870331198 -1.79722860455 -0.233873277902 -1.8144851327 -0.233877025544 -1.83174169064 -0.233881622553 -1.84899875522 -0.233887046576 -1.86625602841 -0.233893271536 -1.88351389765 -0.233900364488 -1.90077209473 -0.233903974295 -1.91999235749 -0.23390013352 -1.93921425939 -0.233893081546 -1.95647260547 -0.233886856586 -1.9737302959 -0.23388145864 -1.99098774791 -0.233876887709 -2.00824460387 -0.233873184771 -2.02550131082 -0.233870282769 -2.04275763035 -0.233868207782 -2.06001400948 -0.233866956085 -2.07727003098 -0.233866553753 -2.09452617169 -0.233866956085 -2.11178213358 -0.233868207783 -2.12903833389 -0.233870331198 -2.1462944746 -0.233873255551 -2.16355097294 -0.233877003193 -2.18080759049 -0.233881577849 -2.19806468487 -0.233887001872 -2.21532189846 -0.233893271536 -2.2325797677 -0.233900342137 -2.24983793497 -0.233903951943 -2.26905822754 -0.23390013352 -2.28828012943 -0.233893081546 -2.30553841591 -0.233886856586 -2.32279610634 -0.23388145864 -2.34005355835 -0.233876887709 -2.35731047392 -0.233873184771 -2.37456727028 -0.233870282769 -2.3918235898 -0.233868207782 -2.40907984972 -0.233866956085 -2.42633581162 -0.233866553753 -2.44359195233 -0.233866956085 -2.46084797382 -0.233868207783 -2.47810417413 -0.233870331198 -2.49536031484 -0.233873255551 -2.51261681318 -0.233877003193 -2.52987337113 -0.233881622553 -2.54713046551 -0.233887046576 -2.5643876791 -0.233893271536 -2.58164554834 -0.233900364488 -2.59890377521 -0.233903974295 -2.61812406778 -0.23390013352 -2.63734602928 -0.233893081546 -2.65460437536 -0.233886856586 -2.67186200619 -0.23388145864 -2.6891194582 -0.233876887709 -2.70637631416 -0.233873184771 -2.72363305092 -0.233870260418 -2.74088943004 -0.233868185431 -2.75814574957 -0.233866956085 -2.77540177107 -0.233866553753 -2.79265791178 -0.233866956085 -2.80991381407 -0.233868207783 -2.82717001438 -0.233870331198 -2.84442615509 -0.233873255551 -2.86168271303 -0.233877003193 -2.87893927097 -0.233881600201 -2.89619630575 -0.233887024224 -2.91345363855 -0.233893271536 -2.9307115078 -0.233900342137 -2.94796967506 -0.233903951943 -2.96718990803 -0.23390013352 -2.98641180992 -0.233893107623 -3.003670156 -0.233886860311 -3.02092784643 -0.233881436288 -3.03818529844 -0.233876887709 -3.05544215441 -0.233873184771 -3.07269889116 -0.233870260418 -3.08995521068 -0.233868185431 -3.10721158981 -0.233866956085 -3.12446761132 -0.233866531402 --3.14146158297 -0.233866933733 --3.1242056489 -0.233868207783 --3.10694944859 -0.233870331198 --3.08969330787 -0.233873255551 --3.07243680954 -0.233877003193 --3.0551802516 -0.233881577849 --3.03792315722 -0.233887001872 --3.02066582441 -0.233893271536 --3.00340795517 -0.233900342137 --2.9861497879 -0.233903951943 --2.96692955494 -0.23390013352 --2.94770765305 -0.233893107623 --2.93044924736 -0.233886860311 --2.91319155693 -0.233881436288 --2.89593416452 -0.233876887709 --2.87867730856 -0.233873184771 --2.86142057181 -0.233870260418 --2.84416425228 -0.233868185431 --2.82690787315 -0.233866956085 --2.80965185165 -0.233866553753 --2.79239577055 -0.233866956085 --2.77513986826 -0.233868207783 --2.75788360834 -0.233870331198 --2.74062740803 -0.233873255551 --2.72337090969 -0.233877003193 --2.70611435175 -0.233881622553 --2.68885725737 -0.233887046576 --2.67159998417 -0.233893271536 --2.65434217453 -0.233900342137 --2.63708400726 -0.233903951943 --2.61786371469 -0.23390013352 --2.5986418128 -0.233893081546 --2.58138346672 -0.233886856586 --2.56412577629 -0.23388145864 --2.54686832428 -0.233876887709 --2.52961140871 -0.233873184771 --2.51235467196 -0.233870282769 --2.49509835243 -0.233868207782 --2.47784203291 -0.233866956085 --2.46058607101 -0.233866553753 --2.4433298707 -0.233866956085 --2.4260738492 -0.233868207783 --2.40881770849 -0.233870331198 --2.39156162739 -0.233873255551 --2.37430512905 -0.233877003193 --2.3570485115 -0.233881600201 --2.33979141712 -0.233887024224 --2.32253420353 -0.233893271536 --2.30527633429 -0.233900342137 --2.28801816702 -0.233903951943 --2.26879787445 -0.23390013352 --2.24957597256 -0.233893081546 --2.23231762647 -0.233886856586 --2.21505993604 -0.23388145864 --2.19780248403 -0.233876887709 --2.18054556847 -0.233873184771 --2.16328883171 -0.233870260418 --2.14603251219 -0.233868185431 --2.12877619266 -0.233866956085 --2.11152011156 -0.233866553753 --2.09426397085 -0.233866956085 --2.07700806856 -0.233868207783 --2.05975192786 -0.233870331198 --2.04249578714 -0.233873277902 --2.0252392292 -0.233877025544 --2.00798264146 -0.233881600201 --1.99072557688 -0.233887024224 --1.97346833349 -0.233893271536 --1.95621046424 -0.233900342137 --1.93895229697 -0.233903951943 --1.9197320044 -0.23390013352 --1.90051007271 -0.233893081546 --1.88325172663 -0.233886856586 --1.865994066 -0.23388145864 --1.84873664379 -0.233876887709 --1.83147975802 -0.233873184771 --1.81422302127 -0.233870260418 --1.79696670175 -0.233868185431 --1.77971035242 -0.233866956085 --1.76245430112 -0.233866553753 --1.74519816041 -0.233866956085 --1.72794222832 -0.233868207783 --1.71068605781 -0.233870331198 --1.6934299171 -0.233873277902 --1.67617338896 -0.233877025544 --1.65891680121 -0.233881577849 --1.64165970683 -0.233887001872 --1.62440243364 -0.233893271536 --1.60714456439 -0.233900342137 --1.58988639712 -0.233903951943 --1.57066616416 -0.23390013352 --1.55144426226 -0.233893081546 --1.53418591618 -0.233886856586 --1.51692822576 -0.23388145864 --1.49967077375 -0.233876887709 --1.48241388798 -0.233873184771 --1.46515712142 -0.233870260418 --1.4479008019 -0.233868185431 --1.43064451217 -0.233866956085 --1.41338852048 -0.233866553753 --1.39613237977 -0.233866956085 --1.37887641787 -0.233868207783 --1.36162018776 -0.233870331198 --1.34436401725 -0.233873277902 --1.32710751891 -0.233877025544 --1.30985096097 -0.233881622553 --1.29259389639 -0.233887046576 --1.27533665299 -0.233893271536 --1.25807878375 -0.233900364488 --1.24082058668 -0.233903974295 --1.22160029411 -0.23390013352 --1.20237836242 -0.233893081546 --1.18512001633 -0.233886856586 --1.16786235571 -0.23388145864 --1.1506049335 -0.233876887709 --1.13334804773 -0.233873184771 --1.11609131098 -0.233870282769 --1.09883499145 -0.233868207782 --1.08157864213 -0.233866956085 --1.06432262063 -0.233866553753 --1.04706647992 -0.233866956085 --1.02981051803 -0.233868207783 --1.01255431771 -0.233870331198 --0.995298191905 -0.233873255551 --0.978041678667 -0.233877003193 --0.960785090924 -0.233881577849 --0.943528026342 -0.233887001872 --0.926270768047 -0.233893271536 --0.909012883902 -0.233900342137 --0.891754716635 -0.233903951943 --0.872534453869 -0.23390013352 --0.853312537074 -0.233893081546 --0.836054190993 -0.233886856586 --0.818796500564 -0.23388145864 --0.801539063454 -0.233876887709 --0.784282192588 -0.233873184771 --0.767025440931 -0.233870282769 --0.749769106507 -0.233868207782 --0.732512786984 -0.233866956085 --0.715256780386 -0.233866553753 --0.698000654578 -0.233866956085 --0.680744707584 -0.233868207783 --0.663488507271 -0.233870331198 --0.646232351661 -0.233873255551 --0.628975823522 -0.233877003193 --0.611719250679 -0.233881622553 --0.594462186098 -0.233887046576 --0.577204927802 -0.233893271536 --0.559947043658 -0.233900364488 --0.54268886149 -0.233903974295 --0.523468613625 -0.23390013352 --0.50424670428 -0.233893081546 --0.486988335848 -0.233886856586 --0.469730660319 -0.23388145864 --0.45247323066 -0.233876887709 --0.435216344893 -0.233873184771 --0.417959585786 -0.233870260418 --0.400703258812 -0.233868185431 --0.38344693929 -0.233866956085 --0.366190932691 -0.233866553753 --0.348934791982 -0.233866956085 --0.331678837538 -0.233868207783 --0.314422644675 -0.233870331198 --0.297166496515 -0.233873255551 --0.279909975827 -0.233877003193 --0.262653410435 -0.233881600201 --0.245396338403 -0.233887024224 --0.228139076382 -0.233893271536 --0.210881203413 -0.233900342137 --0.19362301752 -0.233903951943 --0.174402754753 -0.2512280792 --0.155173674226 -0.251220520586 --0.137915279716 -0.251213844865 --0.120657572523 -0.251208052039 --0.103400120512 -0.251203164458 --0.0861432105303 -0.251199204475 --0.0688864244148 -0.251196075231 --0.0516300713643 -0.251193843782 --0.0343737192452 -0.251192517579 --0.017117672367 -0.251192077994 -0.00013849674724 -0.251192543656 -0.0173944816925 -0.251193914563 -0.0346507141366 -0.251196168363 -0.0519068855792 -0.251199297607 -0.0691634314135 -0.251203324646 -0.0864200424403 -0.251208234579 -0.103677146137 -0.251214027405 -0.120934432372 -0.251220725477 -0.138192340732 -0.251228306442 -0.155450552702 -0.251232180745 -0.174670539796 -0.2512280792 -0.193892184645 -0.251220520586 -0.211150560528 -0.251213844865 -0.228408265859 -0.251208052039 -0.245665732771 -0.251203164458 -0.262922637164 -0.251199204475 -0.280179418623 -0.251196075231 -0.297435775399 -0.251193843782 -0.314692139626 -0.251192517579 -0.331948183477 -0.251192077994 -0.349204353988 -0.251192543656 -0.366460338235 -0.251193914563 -0.383716553449 -0.251196168363 -0.400972723961 -0.251199297607 -0.418229274452 -0.251203324646 -0.435485884547 -0.25120825693 -0.452742993831 -0.251214049757 -0.47000028193 -0.251220725477 -0.487258180976 -0.251228306442 -0.504516400397 -0.251232158393 -0.52373637259 -0.251228056848 -0.542958006263 -0.251220520586 -0.560216411948 -0.251213844865 -0.577474117279 -0.251208052039 -0.594731584191 -0.251203164458 -0.611988514662 -0.251199204475 -0.62924529612 -0.251196097582 -0.646501630544 -0.251193866134 -0.66375797987 -0.251192517579 -0.681014031172 -0.251192077994 -0.698270216584 -0.251192543656 -0.715526223183 -0.251193914563 -0.732782423496 -0.251196168363 -0.750038579106 -0.251199297607 -0.767295122147 -0.251203302294 -0.784551724791 -0.251208212227 -0.801808834076 -0.251214027405 -0.819066122174 -0.251220725477 -0.836324036121 -0.251228306442 -0.853582248092 -0.251232180745 -0.872802257538 -0.2512280792 -0.89202389121 -0.251220520586 -0.909282267094 -0.251213844865 -0.926540002227 -0.251208052039 -0.943797454238 -0.251203164458 -0.961054340005 -0.251199204475 -0.978311121464 -0.251196075231 -0.99556747079 -0.251193843782 -1.01282382012 -0.251192517579 -1.03007987142 -0.251192077994 -1.04733601213 -0.251192543656 -1.06459203362 -0.251193914563 -1.08184829354 -0.251196168363 -1.09910443425 -0.251199297607 -1.11636096239 -0.251203302294 -1.13361757994 -0.251208234579 -1.15087470412 -0.251214049757 -1.16813197732 -0.251220725477 -1.18538990617 -0.251228306442 -1.20264813304 -0.251232180745 -1.22186809778 -0.2512280792 -1.24108973145 -0.251220520586 -1.25834810734 -0.251213844865 -1.27560582757 -0.251208052039 -1.29286327958 -0.251203164458 -1.31012016535 -0.251199204475 -1.3273769319 -0.251196075231 -1.34463331103 -0.251193843782 -1.36188969016 -0.251192517579 -1.37914571166 -0.251192077994 -1.39640188217 -0.251192543656 -1.41365787387 -0.251193914563 -1.43091410398 -0.251196168363 -1.44817027449 -0.251199297607 -1.46542683244 -0.251203324646 -1.48268344998 -0.251208234579 -1.49994054436 -0.251214027405 -1.51719784736 -0.251220725477 -1.53445574641 -0.251228328794 -1.55171394348 -0.251232180745 -1.57093393803 -0.251228056848 -1.5901555717 -0.251220520586 -1.60741397739 -0.251213844865 -1.62467169762 -0.251208052039 -1.64192914963 -0.251203164458 -1.6591860652 -0.251199204475 -1.67644283175 -0.251196075231 -1.69369915128 -0.251193843782 -1.7109555006 -0.251192517579 -1.72821155191 -0.251192077994 -1.74546775222 -0.251192543656 -1.76272377372 -0.251193914563 -1.77997997403 -0.251196168363 -1.79723614454 -0.251199297607 -1.81449273229 -0.251203324646 -1.83174932003 -0.25120825693 -1.84900638461 -0.251214049757 -1.86626365781 -0.251220725477 -1.88352158666 -0.251228306442 -1.90077981353 -0.251232180745 -1.91999977827 -0.2512280792 -1.93922141195 -0.251220520586 -1.95647978783 -0.251213844865 -1.97373750806 -0.251208052039 -1.99099498987 -0.251203164458 -2.00825190544 -0.251199204475 -2.0255086422 -0.251196097582 -2.04276496172 -0.251193866134 -2.06002134085 -0.251192517579 -2.07727742195 -0.251192077994 -2.09453362227 -0.251192543656 -2.11178964376 -0.251193914563 -2.12904590368 -0.251196168363 -2.14630204439 -0.251199297607 -2.16355854273 -0.251203302294 -2.18081516027 -0.251208212227 -2.19807225466 -0.251214027405 -2.21532952785 -0.251220725477 -2.2325874567 -0.251228306442 -2.24984562397 -0.251232180745 -2.26906561852 -0.2512280792 -2.28828728199 -0.251220520586 -2.30554562807 -0.251213844865 -2.3228033185 -0.251208052039 -2.34006077051 -0.251203164458 -2.35731774569 -0.251199204475 -2.37457460165 -0.251196097582 -2.39183092117 -0.251193866134 -2.40908724069 -0.251192517579 -2.42634326219 -0.251192077994 -2.4435994029 -0.251192543656 -2.46085542441 -0.251193914563 -2.47811168432 -0.251196168363 -2.49536782503 -0.251199297607 -2.51262432337 -0.251203324646 -2.52988100052 -0.251208234579 -2.5471380949 -0.251214027405 -2.56439530849 -0.251220725477 -2.58165329694 -0.251228306442 -2.59891158343 -0.251232180745 -2.61813151837 -0.2512280792 -2.63735312223 -0.251220520586 -2.65461152792 -0.251213844865 -2.67186927795 -0.251208052039 -2.68912672996 -0.251203164458 -2.70638358593 -0.251199204475 -2.72364038229 -0.251196075231 -2.74089676142 -0.251193843782 -2.75815314054 -0.251192517579 -2.77540916204 -0.251192077994 -2.79266530275 -0.251192543656 -2.80992126465 -0.251193914563 -2.82717746496 -0.251196168363 -2.84443366528 -0.251199297607 -2.86169028282 -0.251203324646 -2.87894690037 -0.251208234579 -2.89620399475 -0.251214027405 -2.91346126795 -0.251220725477 -2.93071913719 -0.251228306442 -2.94797736406 -0.251232180745 -2.96719735861 -0.2512280792 -2.98641902209 -0.251220520586 -3.00367742777 -0.251213844865 -3.0209351182 -0.251208052039 -3.03819257021 -0.251203164458 -3.05544942618 -0.251199204475 -3.07270616293 -0.251196075231 -3.08996254206 -0.251193843782 -3.10721892118 -0.251192517579 -3.12447500229 -0.251192077994 --3.14145413239 -0.251192543656 --3.12419819832 -0.251193914563 --3.10694199801 -0.251196168363 --3.08968579769 -0.251199297607 --3.07242918014 -0.251203324646 --3.0551725626 -0.251208234579 --3.03791546822 -0.251214027405 --3.02065819502 -0.251220725477 --3.00340032577 -0.251228306442 --2.9861420989 -0.251232180745 --2.96692210436 -0.2512280792 --2.94770044088 -0.251220520586 --2.9304420948 -0.251213844865 --2.91318440437 -0.251208052039 --2.89592689276 -0.251203164458 --2.87866997719 -0.251199204475 --2.86141324043 -0.251196075231 --2.84415692091 -0.251193843782 --2.82690054178 -0.251192517579 --2.80964446068 -0.251192077994 --2.79238826037 -0.251192543656 --2.77513229847 -0.251193914563 --2.75787609816 -0.251196168363 --2.74061989784 -0.251199297607 --2.7233633399 -0.251203324646 --2.70610678196 -0.25120825693 --2.68884968758 -0.251214049757 --2.67159235478 -0.251220725477 --2.65433448553 -0.251228306442 --2.63707631826 -0.251232158393 --2.61785626411 -0.251228056848 --2.59863460064 -0.251220520586 --2.58137625456 -0.251213844865 --2.56411856413 -0.251208052039 --2.54686111212 -0.251203164458 --2.52960413695 -0.251199204475 --2.51234728098 -0.251196097582 --2.49509096146 -0.251193866134 --2.47783470154 -0.251192517579 --2.46057868004 -0.251192077994 --2.44332242012 -0.251192543656 --2.42606639862 -0.251193914563 --2.40881019831 -0.251196168363 --2.3915540576 -0.251199297607 --2.37429755926 -0.251203302294 --2.35704094172 -0.251208212227 --2.33978384733 -0.251214027405 --2.32252657414 -0.251220725477 --2.30526864529 -0.251228306442 --2.28801041841 -0.251232180745 --2.26879042387 -0.2512280792 --2.24956882 -0.251220520586 --2.23231041431 -0.251213844865 --2.21505266428 -0.251208052039 --2.19779521227 -0.251203164458 --2.1805382967 -0.251199204475 --2.16328150034 -0.251196075231 --2.14602518082 -0.251193843782 --2.12876880169 -0.251192517579 --2.11151272058 -0.251192077994 --2.09425657988 -0.251192543656 --2.07700061798 -0.251193914563 --2.05974441767 -0.251196168363 --2.04248827696 -0.251199297607 --2.02523165941 -0.251203302294 --2.00797501207 -0.251208234579 --1.99071797729 -0.251214049757 --1.97346067429 -0.251220725477 --1.95620277524 -0.251228306442 --1.93894457817 -0.251232180745 --1.91972455382 -0.2512280792 --1.90050292015 -0.251220520586 --1.88324454427 -0.251213844865 --1.86598682404 -0.251208052039 --1.84872937202 -0.251203164458 --1.83147245646 -0.251199204475 --1.8142156899 -0.251196075231 --1.79695934057 -0.251193843782 --1.77970296144 -0.251192517579 --1.76244691014 -0.251192077994 --1.74519073963 -0.251192543656 --1.72793474794 -0.251193914563 --1.71067851782 -0.251196168363 --1.69342234731 -0.251199297607 --1.67616578937 -0.251203324646 --1.65890917182 -0.251208234579 --1.64165207743 -0.251214027405 --1.62439480424 -0.251220725477 --1.60713690519 -0.251228328794 --1.58987870813 -0.251232180745 --1.57065871358 -0.251228056848 --1.5514370501 -0.251220520586 --1.53417870402 -0.251213844865 --1.51692101359 -0.251208052039 --1.49966353178 -0.251203164458 --1.48240661621 -0.251199204475 --1.46514981985 -0.251196075231 --1.44789347052 -0.251193843782 --1.4306371212 -0.251192517579 --1.4133810699 -0.251192077994 --1.39612492919 -0.251192543656 --1.37886893749 -0.251193914563 --1.36161267757 -0.251196168363 --1.34435650706 -0.251199297607 --1.32709997892 -0.251203324646 --1.30984339118 -0.25120825693 --1.2925862968 -0.251214049757 --1.2753289938 -0.251220725477 --1.25807109475 -0.251228306442 --1.24081286788 -0.251232180745 --1.22159284353 -0.2512280792 --1.20237120986 -0.251220520586 --1.18511283397 -0.251213844865 --1.16785511374 -0.251208052039 --1.15059766173 -0.251203164458 --1.13334077597 -0.251199204475 --1.11608397961 -0.251196097582 --1.09882760048 -0.251193866134 --1.08157125116 -0.251192517579 --1.06431522966 -0.251192077994 --1.04705905914 -0.251192543656 --1.02980306745 -0.251193914563 --1.01254683733 -0.251196168363 --0.995290681719 -0.251199297607 --0.978034123778 -0.251203302294 --0.960777506233 -0.251208212227 --0.94352042675 -0.251214027405 --0.926263123751 -0.251220725477 --0.909005209803 -0.251228306442 --0.891747012734 -0.251232180745 --0.87252703309 -0.2512280792 --0.853305399418 -0.251220520586 --0.836047008634 -0.251213844865 --0.818789273501 -0.251208052039 --0.801531806588 -0.251203164458 --0.78427490592 -0.251199204475 --0.767018124461 -0.251196097582 --0.749761775136 -0.251193866134 --0.73250542581 -0.251192517579 --0.715249374509 -0.251192077994 --0.697993203998 -0.251192543656 --0.680737227201 -0.251193914563 --0.663480997086 -0.251196168363 --0.646224811673 -0.251199297607 --0.628968253732 -0.251203324646 --0.611711636185 -0.251208234579 --0.594454556703 -0.251214027405 --0.577197283506 -0.251220725477 --0.559939354658 -0.251228306442 --0.542681142688 -0.251232180745 --0.523461163044 -0.2512280792 --0.504239529371 -0.251220520586 --0.486981146037 -0.251213844865 --0.469723440706 -0.251208052039 --0.452465981245 -0.251203164458 --0.435209050775 -0.251199204475 --0.417952261865 -0.251196075231 --0.40069591999 -0.251193843782 --0.383439563215 -0.251192517579 --0.366183519363 -0.251192077994 --0.348927348852 -0.251192543656 --0.331671364606 -0.251193914563 --0.31441514194 -0.251196168363 --0.297158963978 -0.251199297607 --0.279902413488 -0.251203324646 --0.262645818293 -0.251208234579 --0.24538871646 -0.251214027405 --0.228131420911 -0.251220725477 --0.210873510689 -0.251228306442 --0.193615294993 -0.251232180745 --0.174395315349 -0.2685655877 --0.155166279524 -0.268557541072 --0.137907858938 -0.268550403416 --0.12065012008 -0.268544249236 --0.103392634541 -0.268539041281 --0.0861356966197 -0.268534786999 --0.0688788797706 -0.268531478941 --0.0516224950552 -0.268529102206 --0.0343661108054 -0.268527686596 --0.0171100317966 -0.268527232111 -0.00014616874978 -0.268527716398 -0.0174021848943 -0.268529176712 -0.0346584497019 -0.268531568348 -0.0519146537408 -0.268534898758 -0.06917123124 -0.268539197743 -0.0864278748631 -0.268544450402 -0.103685010225 -0.268550649285 -0.120942329988 -0.26855776459 -0.138200268149 -0.268565833569 -0.155458509922 -0.26856996119 -0.174678210169 -0.2685655877 -0.193899564445 -0.268557541072 -0.211157973856 -0.268550425768 -0.228415720165 -0.268544249236 -0.24567322433 -0.268539018929 -0.262930162251 -0.268534786999 -0.280186973512 -0.268531478941 -0.29744336009 -0.268529102206 -0.314699754119 -0.268527664244 -0.331955827773 -0.268527209759 -0.349212028086 -0.26852773875 -0.366468042135 -0.268529199064 -0.383724294603 -0.268531568348 -0.400980502367 -0.268534898758 -0.41823707521 -0.268539197743 -0.435493715107 -0.268544450402 -0.452750854194 -0.268550626934 -0.470008179545 -0.268557742238 -0.487266123295 -0.268565833569 -0.504524372518 -0.268569938838 -0.52374406159 -0.268565565348 -0.54296541214 -0.268557541072 -0.560223847627 -0.268550425768 -0.577481582761 -0.268544249236 -0.594739079476 -0.268539018929 -0.611996039748 -0.268534786999 -0.629252851009 -0.268531478941 -0.646509215236 -0.268529102206 -0.663765594363 -0.268527664244 -0.681021660566 -0.268527209759 -0.698277845979 -0.268527716398 -0.715533897281 -0.268529176712 -0.732790157199 -0.268531568348 -0.750046357513 -0.268534898758 -0.767302945256 -0.268539175391 -0.784559562802 -0.26854442805 -0.801816701889 -0.268550626934 -0.819074034691 -0.268557742238 -0.83633197844 -0.268565833569 -0.853590220213 -0.26856996119 -0.872809931636 -0.2685655877 -0.892031267285 -0.268557541072 -0.90928965807 -0.268550403416 -0.926547437906 -0.268544226885 -0.943804949522 -0.268539018929 -0.961061879992 -0.268534786999 -0.978318691254 -0.268531478941 -0.995575055482 -0.268529102206 -1.01283144951 -0.268527664244 -1.03008753061 -0.268527209759 -1.04734370112 -0.268527716398 -1.06459972262 -0.268529176712 -1.08185598254 -0.268531568348 -1.09911218285 -0.268534898758 -1.1163687706 -0.268539175391 -1.13362541795 -0.26854442805 -1.15088257193 -0.268550626934 -1.16813987494 -0.268557742238 -1.18539780378 -0.268565833569 -1.20265606046 -0.26856996119 -1.22187575698 -0.2685655877 -1.24109709263 -0.268557541072 -1.25835549831 -0.268550425768 -1.27561327815 -0.268544249236 -1.29287075996 -0.268539018929 -1.31012767553 -0.268534786999 -1.32738450169 -0.268531478941 -1.34464091062 -0.268529102206 -1.36189728975 -0.268527664244 -1.37915334105 -0.268527209759 -1.39640957117 -0.268527716398 -1.41366559267 -0.268529176712 -1.43092185259 -0.268531568348 -1.4481780529 -0.268534898758 -1.46543464064 -0.268539197743 -1.48269128799 -0.268544450402 -1.49994841218 -0.268550626934 -1.51720574498 -0.268557742238 -1.53446367383 -0.26856585592 -1.5517219305 -0.26856996119 -1.57094165683 -0.268565565348 -1.59016299248 -0.268557541072 -1.60742139816 -0.268550403416 -1.6246791482 -0.268544226885 -1.64193663001 -0.268539041281 -1.65919357538 -0.268534809351 -1.67645040154 -0.268531478941 -1.69370675087 -0.268529102206 -1.71096313 -0.268527664244 -1.7282192111 -0.268527209759 -1.74547541141 -0.268527716398 -1.76273143291 -0.268529176712 -1.77998769283 -0.268531568348 -1.79724392295 -0.268534898758 -1.81450051069 -0.268539197743 -1.83175715804 -0.268544450402 -1.84901428222 -0.268550626934 -1.86627155543 -0.268557742238 -1.88352951408 -0.268565833569 -1.90078777075 -0.26856996119 -1.92000743747 -0.2685655877 -1.93922877312 -0.268557541072 -1.9564871788 -0.268550403416 -1.97374495864 -0.268544226885 -1.99100247025 -0.268539018929 -2.00825944543 -0.268534786999 -2.02551627159 -0.268531478941 -2.04277259111 -0.268529124558 -2.06002897024 -0.268527686596 -2.07728505135 -0.268527209759 -2.09454125166 -0.268527716398 -2.11179733276 -0.268529176712 -2.12905365229 -0.268531568348 -2.14630979299 -0.268534898758 -2.16356629133 -0.268539175391 -2.18082290888 -0.26854442805 -2.19808006287 -0.268550626934 -2.21533745527 -0.268557742238 -2.23259538412 -0.268565833569 -2.24985355139 -0.26856996119 -2.26907330751 -0.2685655877 -2.28829473257 -0.268557541072 -2.30555313826 -0.268550425768 -2.32281082868 -0.268544249236 -2.3400682807 -0.268539018929 -2.35732525587 -0.268534786999 -2.37458211184 -0.268531478941 -2.39183849096 -0.268529102206 -2.40909487009 -0.268527664244 -2.42635095119 -0.268527209759 -2.44360715151 -0.268527716398 -2.46086317301 -0.268529176712 -2.47811943293 -0.268531568348 -2.49537563324 -0.268534898758 -2.51263219118 -0.268539197743 -2.52988886833 -0.26854442805 -2.54714596271 -0.268550604582 -2.56440323591 -0.268557742238 -2.58166122436 -0.268565833569 -2.59891951084 -0.26856996119 -2.61813920737 -0.2685655877 -2.63736051321 -0.268557541072 -2.6546189189 -0.268550425768 -2.67187666893 -0.268544271588 -2.68913412094 -0.268539041281 -2.70639103651 -0.268534786999 -2.72364789248 -0.268531478941 -2.7409042716 -0.268529124558 -2.75816065073 -0.268527686596 -2.77541673183 -0.268527209759 -2.79267293215 -0.26852773875 -2.80992895365 -0.268529199064 -2.82718521356 -0.268531568348 -2.84444147349 -0.268534898758 -2.86169809103 -0.268539197743 -2.87895470858 -0.268544450402 -2.89621180296 -0.268550626934 -2.91346907615 -0.268557742238 -2.93072706461 -0.268565833569 -2.94798535109 -0.26856996119 -2.96720504761 -0.2685655877 -2.98642641306 -0.268557541072 -3.00368481874 -0.268550403416 -3.02094256878 -0.268544249236 -3.03820008039 -0.268539041281 -3.05545699596 -0.268534786999 -3.07271373272 -0.268531478941 -3.08997011185 -0.268529102206 -3.10722655058 -0.268527686596 -3.12448263168 -0.268527232111 --3.141446503 -0.268527716398 --3.12419050932 -0.268529176712 --3.1069342494 -0.268531568348 --3.08967798948 -0.268534898758 --3.07242137194 -0.268539197743 --3.05516475439 -0.268544450402 --3.03790766001 -0.268550649285 --3.02065038681 -0.26855776459 --3.00339239836 -0.268565833569 --2.98613411188 -0.26856996119 --2.96691441536 -0.2685655877 --2.94769304991 -0.268557541072 --2.93043470383 -0.268550425768 --2.91317695379 -0.268544249236 --2.89591938257 -0.268539018929 --2.8786624074 -0.268534786999 --2.86140567064 -0.268531478941 --2.84414935112 -0.268529102206 --2.82689291239 -0.268527664244 --2.80963683129 -0.268527209759 --2.79238063097 -0.26852773875 --2.77512460947 -0.268529199064 --2.75786840916 -0.268531568348 --2.74061220884 -0.268534898758 --2.7233555913 -0.268539197743 --2.70609897375 -0.268544450402 --2.68884181976 -0.268550626934 --2.67158442736 -0.268557742238 --2.65432649851 -0.268565833569 --2.63706833124 -0.268569938838 --2.61784863472 -0.268565565348 --2.59862726927 -0.268557541072 --2.58136880398 -0.268550425768 --2.56411105395 -0.268544249236 --2.54685360193 -0.268539018929 --2.52959662676 -0.268534786999 --2.51233977079 -0.268531478941 --2.49508339167 -0.268529102206 --2.47782707214 -0.268527664244 --2.46057099104 -0.268527209759 --2.44331479073 -0.268527716398 --2.42605876923 -0.268529176712 --2.40880244971 -0.268531568348 --2.39154624939 -0.268534898758 --2.37428969145 -0.268539175391 --2.3570330739 -0.26854442805 --2.33977597952 -0.268550626934 --2.32251864672 -0.268557742238 --2.30526071787 -0.268565833569 --2.28800243139 -0.26856996119 --2.26878267527 -0.2685655877 --2.24956136942 -0.268557541072 --2.23230296374 -0.268550403416 --2.2150452137 -0.268544226885 --2.19778776169 -0.268539018929 --2.18053084612 -0.268534786999 --2.16327399015 -0.268531478941 --2.14601761103 -0.268529102206 --2.1287612319 -0.268527664244 --2.11150515079 -0.268527209759 --2.09424895048 -0.268527716398 --2.07699292898 -0.268529176712 --2.05973666906 -0.268531568348 --2.04248046875 -0.268534898758 --2.0252238512 -0.268539175391 --2.00796720386 -0.26854442805 --1.99071010947 -0.268550626934 --1.97345277667 -0.268557742238 --1.95619484782 -0.268565833569 --1.93893659115 -0.26856996119 --1.91971686482 -0.2685655877 --1.90049552918 -0.268557541072 --1.88323712349 -0.268550425768 --1.86597937346 -0.268544249236 --1.84872189164 -0.268539018929 --1.83146494627 -0.268534786999 --1.81420812011 -0.268531478941 --1.79695174098 -0.268529102206 --1.77969536185 -0.268527664244 --1.76243931055 -0.268527209759 --1.74518311024 -0.268527716398 --1.72792705893 -0.268529176712 --1.71067076921 -0.268531568348 --1.6934145689 -0.268534898758 --1.67615801096 -0.268539197743 --1.65890136361 -0.268544450402 --1.64164423943 -0.268550626934 --1.62438693643 -0.268557742238 --1.60712897778 -0.26856585592 --1.5898707509 -0.26856996119 --1.57065105438 -0.268565565348 --1.55142965913 -0.268557541072 --1.53417125344 -0.268550403416 --1.51691353321 -0.268544226885 --1.49965602159 -0.268539041281 --1.48239907622 -0.268534809351 --1.46514227986 -0.268531478941 --1.44788590074 -0.268529102206 --1.43062949181 -0.268527664244 --1.4133734107 -0.268527209759 --1.39611724019 -0.268527716398 --1.37886121869 -0.268529176712 --1.36160495877 -0.268531568348 --1.34434875846 -0.268534898758 --1.32709217071 -0.268539197743 --1.30983555317 -0.268544450402 --1.29257842898 -0.268550626934 --1.27532109618 -0.268557742238 --1.25806316734 -0.268565833569 --1.24080491066 -0.26856996119 --1.22158518433 -0.2685655877 --1.20236384869 -0.268557541072 --1.185105443 -0.268550403416 --1.16784769297 -0.268544226885 --1.15059021115 -0.268539018929 --1.13333326578 -0.268534786999 --1.11607640982 -0.268531478941 --1.09882003069 -0.268529124558 --1.08156368137 -0.268527686596 --1.06430763006 -0.268527209759 --1.04705139995 -0.268527716398 --1.02979534864 -0.268529176712 --1.01253908872 -0.268531568348 --0.995282903313 -0.268534898758 --0.978026330471 -0.268539175391 --0.960769698024 -0.26854442805 --0.943512573838 -0.268550626934 --0.926255226135 -0.268557742238 --0.908997282386 -0.268565833569 --0.891739040613 -0.26856996119 --0.87251932919 -0.2685655877 --0.85329797864 -0.268557541072 --0.836039572954 -0.268550425768 --0.81878182292 -0.268544249236 --0.801524326205 -0.268539018929 --0.784267395735 -0.268534786999 --0.767010599375 -0.268531478941 --0.749754205346 -0.268529102206 --0.732497826219 -0.268527664244 --0.715241760016 -0.268527209759 --0.697985544801 -0.268527716398 --0.680729523301 -0.268529176712 --0.663473248482 -0.268531568348 --0.646217033267 -0.268534898758 --0.628960460425 -0.268539197743 --0.611703813076 -0.26854442805 --0.59444668889 -0.268550604582 --0.577189385891 -0.268557742238 --0.559931427241 -0.268565833569 --0.542673185468 -0.26856996119 --0.523453488946 -0.2685655877 --0.504232130944 -0.268557541072 --0.486973725259 -0.268550425768 --0.469715990126 -0.268544271588 --0.452458500862 -0.268539041281 --0.43520154804 -0.268534786999 --0.417944729328 -0.268531478941 --0.400688357651 -0.268529124558 --0.383431963622 -0.268527686596 --0.366175867617 -0.268527209759 --0.348919674754 -0.26852773875 --0.331663668156 -0.268529199064 --0.314407400787 -0.268531568348 --0.297151200473 -0.268534898758 --0.279894627631 -0.268539197743 --0.262637995184 -0.268544450402 --0.245380856097 -0.268550626934 --0.228123523295 -0.268557742238 --0.210865583271 -0.268565833569 --0.193607337773 -0.26856996119 --0.174387637525 -0.285932064056 --0.15515897423 -0.285923555493 --0.137900535017 -0.285915963352 --0.120642760769 -0.285909421742 --0.103385236114 -0.285903900862 --0.0861282683909 -0.285899378359 --0.0688714236021 -0.285895876586 --0.0516150090844 -0.285893343389 --0.0343585931696 -0.285891845822 --0.01710248366 -0.285891383886 -0.000153748085722 -0.285891883075 -0.0174097951967 -0.285893425345 -0.0346660902724 -0.285895973444 -0.0519223259762 -0.28589951247 -0.0691789351404 -0.285904049873 -0.0864356067032 -0.285909622907 -0.103692770004 -0.285916209221 -0.120950123295 -0.285923756659 -0.13820809871 -0.285932332277 -0.15546637401 -0.285936698318 -0.174685798585 -0.285932041704 -0.193906869739 -0.28592351079 -0.211165305227 -0.285915985704 -0.228423081338 -0.285909444094 -0.245680619031 -0.28590387851 -0.262937597931 -0.285899356007 -0.280194438994 -0.285895854234 -0.297450855374 -0.285893343389 -0.314707271755 -0.285891823471 -0.331963367761 -0.285891361535 -0.349219597876 -0.285891905427 -0.366475649178 -0.285893447697 -0.383731946349 -0.285895973444 -0.400988191366 -0.28589951247 -0.418244794011 -0.285904049873 -0.435501456261 -0.285909622907 -0.45275862515 -0.285916186869 -0.470015987754 -0.285923734307 -0.487273953855 -0.285932332277 -0.50453223288 -0.285936698318 -0.523751661182 -0.285932064056 -0.54297272861 -0.285923533141 -0.560231178999 -0.285915985704 -0.577488943934 -0.285909444094 -0.594746470451 -0.28590387851 -0.612003460527 -0.285899356007 -0.62926030159 -0.285895854234 -0.64651671052 -0.285893343389 -0.663773134351 -0.285891823471 -0.681029230356 -0.285891361535 -0.69828543067 -0.285891883075 -0.715541496873 -0.285893402994 -0.732797801495 -0.285895951092 -0.750054031611 -0.28589951247 -0.767310664058 -0.285904049873 -0.784567311406 -0.285909622907 -0.801824465394 -0.285916186869 -0.819081827998 -0.285923734307 -0.83633980155 -0.285932332277 -0.853598088026 -0.285936698318 -0.872817501426 -0.285932041704 -0.892038553953 -0.28592351079 -0.909297004342 -0.285915963352 -0.92655479908 -0.285909421742 -0.943812325597 -0.28590387851 -0.961069300771 -0.285899356007 -0.978326141834 -0.285895854234 -0.995582550765 -0.285893343389 -1.01283895969 -0.285891823471 -1.0300950706 -0.285891361535 -1.04735130072 -0.285891883075 -1.06460732222 -0.285893425345 -1.08186361194 -0.285895973444 -1.09911987185 -0.28589951247 -1.1163764894 -0.285904049873 -1.13363313675 -0.285909622907 -1.15089032054 -0.285916209221 -1.16814768314 -0.285923756659 -1.1854056418 -0.285932332277 -1.20266392827 -0.285936698318 -1.22188335657 -0.285932041704 -1.241104424 -0.28592351079 -1.25836285949 -0.285915963352 -1.27562063933 -0.285909421742 -1.29287815094 -0.28590387851 -1.31013512612 -0.285899356007 -1.32739198208 -0.285895854234 -1.34464839101 -0.285893343389 -1.36190479994 -0.285891823471 -1.37916091084 -0.285891361535 -1.39641717076 -0.285891883075 -1.41367322206 -0.285893402994 -1.43092951179 -0.285895951092 -1.4481857419 -0.28589951247 -1.46544235945 -0.285904049873 -1.4826990366 -0.285909622907 -1.49995619059 -0.285916186869 -1.51721352339 -0.285923734307 -1.53447148204 -0.285932332277 -1.55172976851 -0.285936698318 -1.57094919682 -0.285932064056 -1.59017026424 -0.285923533141 -1.60742869973 -0.285915941 -1.62468647957 -0.28590939939 -1.64194402099 -0.285903900862 -1.65920099616 -0.285899378359 -1.67645785213 -0.285895854234 -1.69371426106 -0.285893343389 -1.71097066999 -0.285891823471 -1.72822678089 -0.285891361535 -1.74548298121 -0.285891883075 -1.76273900271 -0.285893425345 -1.77999532223 -0.285895973444 -1.79725158214 -0.28589951247 -1.81450816989 -0.285904049873 -1.83176484704 -0.285909622907 -1.84902203083 -0.285916186869 -1.86627936363 -0.285923734307 -1.88353735209 -0.285932332277 -1.90079563856 -0.285936698318 -1.92001503706 -0.285932041704 -1.93923610449 -0.28592351079 -1.95649453998 -0.285915963352 -1.97375231981 -0.285909421742 -1.99100983143 -0.28590387851 -2.00826680661 -0.285899356007 -2.02552372217 -0.285895854234 -2.04278016091 -0.285893365741 -2.06003654003 -0.285891845822 -2.07729262113 -0.285891361535 -2.09454882145 -0.285891883075 -2.11180490256 -0.285893425345 -2.12906122208 -0.285895973444 -2.14631742239 -0.28589951247 -2.16357403993 -0.285904049873 -2.18083065748 -0.285909622907 -2.19808781147 -0.285916209221 -2.21534526348 -0.285923756659 -2.23260325194 -0.285932332277 -2.24986147881 -0.285936698318 -2.26908093691 -0.285932041704 -2.28830206394 -0.28592351079 -2.30556046963 -0.285915985704 -2.32281816006 -0.285909444094 -2.34007567167 -0.28590387851 -2.35733270645 -0.285899356007 -2.37458956242 -0.285895854234 -2.39184594155 -0.285893343389 -2.40910232067 -0.285891823471 -2.42635846138 -0.285891361535 -2.4436147213 -0.285891883075 -2.4608707428 -0.285893425345 -2.47812706232 -0.285895973444 -2.49538332224 -0.28589951247 -2.51263993979 -0.285904049873 -2.52989661694 -0.285909622907 -2.54715377092 -0.285916186869 -2.56441110372 -0.285923734307 -2.58166903257 -0.285932332277 -2.59892731905 -0.285936698318 -2.61814677715 -0.285932041704 -2.63736784458 -0.28592351079 -2.65462625027 -0.285915963352 -2.6718840003 -0.285909444094 -2.68914151192 -0.285903900862 -2.70639848709 -0.285899356007 -2.72365534306 -0.285895854234 -2.74091172218 -0.285893365741 -2.75816816091 -0.285891845822 -2.77542430163 -0.285891361535 -2.79268056155 -0.285891905427 -2.80993664265 -0.285893425345 -2.82719290256 -0.285895951092 -2.84444916248 -0.28589951247 -2.86170578003 -0.285904049873 -2.87896239757 -0.285909622907 -2.89621955156 -0.285916186869 -2.91347688437 -0.285923734307 -2.93073487282 -0.285932332277 -2.9479931593 -0.285936698318 -2.96721255779 -0.285932064056 -2.98643362522 -0.285923555493 -3.00369209051 -0.285915963352 -3.02094990015 -0.285909421742 -3.03820741176 -0.285903900862 -3.05546438694 -0.285899378359 -3.0727212429 -0.285895876586 -3.08997768164 -0.285893343389 -3.10723412037 -0.285891845822 -3.12449020147 -0.285891383886 --3.14143887361 -0.285891883075 --3.12418282032 -0.285893425345 --3.1069265604 -0.285895973444 --3.08967030048 -0.28589951247 --3.07241368294 -0.285904049873 --3.05515706539 -0.285909622907 --3.0378999114 -0.285916209221 --3.0206425786 -0.285923756659 --3.00338459015 -0.285932332277 --2.98612630367 -0.285936698318 --2.96690690517 -0.285932041704 --2.94768583775 -0.28592351079 --2.93042737246 -0.285915985704 --2.91316956281 -0.285909444094 --2.89591199159 -0.28590387851 --2.87865501642 -0.285899356007 --2.86139822006 -0.285895854234 --2.84414178133 -0.285893343389 --2.8268853426 -0.285891823471 --2.8096292615 -0.285891361535 --2.79237306118 -0.285891905427 --2.77511703968 -0.285893447697 --2.75786077976 -0.285895973444 --2.74060451984 -0.28589951247 --2.7233479023 -0.285904049873 --2.70609128475 -0.285909622907 --2.68883407116 -0.285916186869 --2.67157661915 -0.285923734307 --2.6543186903 -0.285932332277 --2.63706046343 -0.285936698318 --2.61784100532 -0.285932064056 --2.5986199379 -0.285923533141 --2.58136147261 -0.285915985704 --2.56410372257 -0.285909444094 --2.54684621096 -0.28590387851 --2.52958917618 -0.285899356007 --2.51233232021 -0.285895854234 --2.49507594109 -0.285893343389 --2.47781956196 -0.285891823471 --2.46056342125 -0.285891361535 --2.44330722093 -0.285891883075 --2.42605119943 -0.285893402994 --2.40879482031 -0.285895951092 --2.39153856039 -0.28589951247 --2.37428194284 -0.285904049873 --2.35702526569 -0.285909622907 --2.33976817131 -0.285916186869 --2.32251083851 -0.285923734307 --2.30525285006 -0.285932332277 --2.28799456358 -0.285936698318 --2.26877510548 -0.285932041704 --2.24955403805 -0.28592351079 --2.23229557276 -0.285915963352 --2.21503782272 -0.285909421742 --2.19778037071 -0.28590387851 --2.18052339554 -0.285899356007 --2.16326653957 -0.285895854234 --2.14601016044 -0.285893343389 --2.12875372172 -0.285891823471 --2.11149758101 -0.285891361535 --2.09424132109 -0.285891883075 --2.07698523998 -0.285893425345 --2.05972898007 -0.285895973444 --2.04247277975 -0.28589951247 --2.02521616221 -0.285904049873 --2.00795948505 -0.285909622907 --1.99070233107 -0.285916209221 --1.97344499826 -0.285923756659 --1.95618703961 -0.285932332277 --1.93892875313 -0.285936698318 --1.91970932484 -0.285932041704 --1.90048825741 -0.28592351079 --1.88322982192 -0.285915963352 --1.86597204208 -0.285909421742 --1.84871450066 -0.28590387851 --1.83145752549 -0.285899356007 --1.81420066953 -0.285895854234 --1.7969442606 -0.285893343389 --1.77968785167 -0.285891823471 --1.76243174076 -0.285891361535 --1.74517554045 -0.285891883075 --1.72791945934 -0.285893402994 --1.71066313982 -0.285895951092 --1.69340693951 -0.28589951247 --1.67615035176 -0.285904049873 --1.65889367461 -0.285909622907 --1.64163649082 -0.285916186869 --1.62437912822 -0.285923734307 --1.60712113976 -0.285932332277 --1.58986288309 -0.285936698318 --1.57064348459 -0.285932064056 --1.55142238736 -0.285923533141 --1.53416392207 -0.285915941 --1.51690614224 -0.28590939939 --1.49964863062 -0.285903900862 --1.48239165545 -0.285899378359 --1.46513482928 -0.285895854234 --1.44787842035 -0.285893343389 --1.43062198162 -0.285891823471 --1.41336587071 -0.285891361535 --1.3961096406 -0.285891883075 --1.3788536191 -0.285893425345 --1.36159732938 -0.285895973444 --1.34434106946 -0.28589951247 --1.32708445192 -0.285904049873 --1.30982780457 -0.285909622907 --1.29257065058 -0.285916186869 --1.27531328797 -0.285923734307 --1.25805532932 -0.285932332277 --1.24079704285 -0.285936698318 --1.22157758474 -0.285932041704 --1.20235651731 -0.28592351079 --1.18509808183 -0.285915963352 --1.16784033179 -0.285909421742 --1.15058282018 -0.28590387851 --1.1333258152 -0.285899356007 --1.11606895924 -0.285895854234 --1.09881258011 -0.285893365741 --1.08155617118 -0.285891845822 --1.06430006027 -0.285891361535 --1.04704380036 -0.285891883075 --1.02978774906 -0.285893425345 --1.01253148913 -0.285895973444 --0.995275244117 -0.28589951247 --0.978018611669 -0.285904049873 --0.96076194942 -0.285909622907 --0.943504795432 -0.285916209221 --0.926247432828 -0.285923756659 --0.908989459276 -0.285932332277 --0.891731187701 -0.285936698318 --0.8725117594 -0.285932041704 --0.853290677071 -0.28592351079 --0.836032241583 -0.285915985704 --0.818774476647 -0.285909444094 --0.801516950131 -0.28590387851 --0.784259960055 -0.285899356007 --0.767003133893 -0.285895854234 --0.749746710062 -0.285893343389 --0.732490286231 -0.285891823471 --0.715234205127 -0.285891361535 --0.69797796011 -0.285891883075 --0.680721893907 -0.285893425345 --0.663465604186 -0.285895973444 --0.64620937407 -0.28589951247 --0.628952756524 -0.285904049873 --0.611696094275 -0.285909622907 --0.594438925386 -0.285916186869 --0.577181562782 -0.285923734307 --0.559923604131 -0.285932332277 --0.542665332556 -0.285936698318 --0.523445919156 -0.285932041704 --0.504224836826 -0.28592351079 --0.486966386437 -0.285915963352 --0.469708621502 -0.285909444094 --0.452451102436 -0.285903900862 --0.435194127262 -0.285899356007 --0.417937271297 -0.285895854234 --0.400680854916 -0.285893365741 --0.383424438536 -0.285891845822 --0.36616833508 -0.285891361535 --0.348912112415 -0.285891905427 --0.331656061113 -0.285893425345 --0.314399756491 -0.285895951092 --0.297143526376 -0.28589951247 --0.279886923731 -0.285904049873 --0.262630261481 -0.285909622907 --0.245373088866 -0.285916186869 --0.228115726262 -0.285923734307 --0.210857756436 -0.285932332277 --0.193599481136 -0.285936698318 --0.174380052835 -0.303300023079 --0.155152011663 -0.303291022777 --0.137893546373 -0.303283020854 --0.120635742322 -0.303276106715 --0.103378187865 -0.303270258009 --0.0861211884767 -0.303265489638 --0.0688643129543 -0.303261786699 --0.0516078695655 -0.303259119391 --0.0343514252454 -0.303257517516 --0.017095286632 -0.303257018328 -0.00016097491607 -0.30325756967 -0.0174170520622 -0.303259193897 -0.0346733774058 -0.303261876106 -0.051929641515 -0.303265616298 -0.0691862767562 -0.303270429373 -0.0864429753274 -0.303276330233 -0.103700168431 -0.303283259272 -0.120957547799 -0.303291238844 -0.138215556741 -0.303300328552 -0.155473865569 -0.303304933012 -0.174693025648 -0.303300000727 -0.193913839757 -0.303290978074 -0.211172308773 -0.303283020854 -0.228430107236 -0.303276129067 -0.24568766728 -0.303270258009 -0.262944675982 -0.303265467286 -0.280201546848 -0.303261764348 -0.29745798558 -0.303259119391 -0.314714431763 -0.303257517516 -0.331970565021 -0.303257018328 -0.349226817489 -0.30325756967 -0.366482891142 -0.303259193897 -0.383739218116 -0.303261898458 -0.400995492935 -0.303265638649 -0.418252125383 -0.303270429373 -0.435508824885 -0.303276330233 -0.452766031027 -0.303283259272 -0.470023415982 -0.303291238844 -0.487281404435 -0.303300328552 -0.504539720714 -0.303304933012 -0.523758888245 -0.303300023079 -0.542979672551 -0.303291000426 -0.560238152742 -0.303283020854 -0.577495962381 -0.303276129067 -0.5947535187 -0.303270258009 -0.612010523677 -0.303265467286 -0.629267394543 -0.303261764348 -0.646523848176 -0.303259119391 -0.663780286908 -0.303257517516 -0.681036412716 -0.303257018328 -0.698292672634 -0.30325756967 -0.715548768639 -0.303259171545 -0.732805103064 -0.303261876107 -0.750061348081 -0.303265638649 -0.767317980528 -0.303270429373 -0.784574687481 -0.303276330233 -0.801831886172 -0.303283259272 -0.819089263678 -0.303291238844 -0.83634725213 -0.303300328552 -0.853605553508 -0.303304933012 -0.872824713588 -0.303300000727 -0.892045527697 -0.303290978074 -0.909304007888 -0.303283020854 -0.926561817527 -0.303276129067 -0.943819373846 -0.303270258009 -0.961076378822 -0.303265467286 -0.978333249688 -0.303261764348 -0.995589703322 -0.303259119391 -1.01284614205 -0.303257517516 -1.03010228276 -0.303257018328 -1.04735854268 -0.30325756967 -1.06461459398 -0.303259193897 -1.08187091351 -0.303261876106 -1.09912717342 -0.303265616298 -1.11638382077 -0.303270429373 -1.13364052773 -0.303276330233 -1.15089774132 -0.303283281624 -1.16815513372 -0.303291261196 -1.18541312218 -0.303300328552 -1.20267140865 -0.303304933012 -1.22189056873 -0.303300000727 -1.24111139774 -0.303290978074 -1.25836986303 -0.303282998502 -1.27562764287 -0.303276106715 -1.29288518429 -0.303270258009 -1.31014221907 -0.303265467286 -1.32739910484 -0.303261764348 -1.34465551377 -0.303259119391 -1.3619119525 -0.303257517516 -1.3791680932 -0.303257018328 -1.39642438293 -0.30325756967 -1.41368046403 -0.303259171545 -1.43093678355 -0.303261853755 -1.44819307327 -0.303265616298 -1.46544972062 -0.303270429373 -1.48270639777 -0.303276330233 -1.49996355176 -0.303283259272 -1.51722091436 -0.303291238844 -1.53447893262 -0.303300328552 -1.5517372489 -0.303304933012 -1.57095640898 -0.303300023079 -1.59017723799 -0.303291000426 -1.60743570328 -0.303282998502 -1.62469351292 -0.303276106715 -1.64195108414 -0.303270258009 -1.65920805931 -0.303265467286 -1.67646494508 -0.303261764348 -1.69372141361 -0.303259119391 -1.71097785234 -0.303257517516 -1.72823399305 -0.303257018328 -1.74549022317 -0.30325756967 -1.76274627447 -0.303259193897 -1.78000262379 -0.303261876106 -1.79725888371 -0.303265616298 -1.81451550126 -0.303270429373 -1.83177220821 -0.303276330233 -1.84902942181 -0.303283259272 -1.86628681421 -0.303291238844 -1.88354480267 -0.303300328552 -1.90080311894 -0.303304933012 -1.92002227902 -0.303300000727 -1.93924307823 -0.303290978074 -1.95650157332 -0.303283020854 -1.97375935316 -0.303276129067 -1.99101689458 -0.303270258009 -2.00827389956 -0.303265467286 -2.02553081513 -0.303261764348 -2.04278731346 -0.303259119391 -2.06004369259 -0.303257517516 -2.0772998333 -0.303257018328 -2.09455609322 -0.30325756967 -2.11181211472 -0.303259193897 -2.12906843424 -0.303261876106 -2.14632475376 -0.303265616298 -2.16358143091 -0.303270429373 -2.18083804846 -0.303276330233 -2.19809520244 -0.303283281624 -2.21535265446 -0.303291261196 -2.23261070252 -0.303300328552 -2.24986898899 -0.303304933012 -2.26908814907 -0.303300000727 -2.28830897808 -0.303290978074 -2.30556744337 -0.303283020854 -2.32282519341 -0.303276129067 -2.34008276463 -0.303270258009 -2.35733979941 -0.303265467286 -2.37459665537 -0.303261764348 -2.3918530941 -0.303259119391 -2.40910953283 -0.303257517516 -2.42636567354 -0.303257018328 -2.44362193346 -0.30325756967 -2.46087801457 -0.303259193897 -2.47813433409 -0.303261876106 -2.495390594 -0.303265616298 -2.51264727116 -0.303270429373 -2.52990400791 -0.303276330233 -2.54716122151 -0.303283259272 -2.56441855431 -0.303291238844 -2.58167648316 -0.303300328552 -2.59893476963 -0.303304933012 -2.61815392971 -0.303300000727 -2.63737475872 -0.303290978074 -2.65463322401 -0.303282998502 -2.67189103365 -0.303276106715 -2.68914860487 -0.303270258009 -2.70640563965 -0.303265467286 -2.72366249562 -0.303261764348 -2.74091887474 -0.303259119391 -2.75817537308 -0.303257517516 -2.77543151379 -0.303257018328 -2.79268777371 -0.30325756967 -2.80994391442 -0.303259171545 -2.82720023394 -0.303261876107 -2.84445649385 -0.303265638649 -2.8617131114 -0.303270429373 -2.87896978855 -0.303276330233 -2.89622700215 -0.303283259272 -2.91348433495 -0.303291238844 -2.9307423234 -0.303300328552 -2.94800066948 -0.303304933012 -2.96721982956 -0.303300023079 -2.98644059896 -0.303291022777 -3.00369906426 -0.303283020854 -3.02095687389 -0.303276106715 -3.03821438551 -0.303270258009 -3.05547142029 -0.303265489638 -3.07272833586 -0.303261786699 -3.08998477459 -0.303259119391 -3.10724121332 -0.303257517516 -3.12449741363 -0.303257018328 --3.14143160184 -0.30325756967 --3.12417554855 -0.303259193897 --3.10691922903 -0.303261876106 --3.08966296911 -0.303265616298 --3.07240635157 -0.303270429373 --3.05514967441 -0.303276330233 --3.03789246082 -0.303283259272 --3.02063512802 -0.303291238844 --3.00337713957 -0.303300328552 --2.98611879349 -0.303304933012 --2.96689963341 -0.303300000727 --2.947678864 -0.303290978074 --2.93042039871 -0.303283020854 --2.91316258907 -0.303276129067 --2.89590501785 -0.303270258009 --2.87864798307 -0.303265467286 --2.8613910675 -0.303261764348 --2.84413462877 -0.303259119391 --2.82687824965 -0.303257517516 --2.80962204933 -0.303257018328 --2.79236578941 -0.30325756967 --2.77510976791 -0.303259193897 --2.75785344839 -0.303261898458 --2.74059718847 -0.303265638649 --2.72334057093 -0.303270429373 --2.70608389377 -0.303276330233 --2.68882668018 -0.303283259272 --2.67156922817 -0.303291238844 --2.65431123972 -0.303300328552 --2.63705295324 -0.303304933012 --2.61783373356 -0.303300023079 --2.59861290455 -0.303291000426 --2.58135443926 -0.303283020854 --2.56409668922 -0.303276129067 --2.546839118 -0.303270258009 --2.52958208322 -0.303265467286 --2.51232522726 -0.303261764348 --2.49506878853 -0.303259119391 --2.4778124094 -0.303257517516 --2.46055626869 -0.303257018328 --2.44329994917 -0.30325756967 --2.42604386806 -0.303259171545 --2.40878754854 -0.303261876107 --2.39153128862 -0.303265638649 --2.37427467107 -0.303270429373 --2.35701793432 -0.303276330233 --2.33976072073 -0.303283259272 --2.32250338793 -0.303291238844 --2.30524539947 -0.303300328552 --2.287987113 -0.303304933012 --2.26876795292 -0.303300000727 --2.24954712391 -0.303290978074 --2.23228859901 -0.303283020854 --2.21503078938 -0.303276129067 --2.19777327776 -0.303270258009 --2.18051624298 -0.303265467286 --2.16325938702 -0.303261764348 --2.14600300789 -0.303259119391 --2.12874650955 -0.303257517516 --2.11149036884 -0.303257018328 --2.09423410892 -0.30325756967 --2.07697796822 -0.303259193897 --2.0597216487 -0.303261876106 --2.04246544838 -0.303265616298 --2.02520883084 -0.303270429373 --2.00795209408 -0.303276330233 --1.99069494009 -0.303283281624 --1.97343760729 -0.303291261196 --1.95617958903 -0.303300328552 --1.93892127276 -0.303304933012 --1.91970211268 -0.303300000727 --1.90048128367 -0.303290978074 --1.88322281837 -0.303282998502 --1.86596500873 -0.303276106715 --1.84870743751 -0.303270258009 --1.83145046234 -0.303265467286 --1.81419357657 -0.303261764348 --1.79693710804 -0.303259119391 --1.77968066931 -0.303257517516 --1.7624245286 -0.303257018328 --1.74516829848 -0.30325756967 --1.72791221738 -0.303259171545 --1.71065586805 -0.303261853755 --1.69339960814 -0.303265616298 --1.67614299059 -0.303270429373 --1.65888631344 -0.303276330233 --1.64162909985 -0.303283259272 --1.62437170744 -0.303291238844 --1.60711368918 -0.303300328552 --1.58985537291 -0.303304933012 --1.57063624263 -0.303300023079 --1.55141544342 -0.303291000426 --1.53415694833 -0.303282998502 --1.51689913869 -0.303276106715 --1.49964159727 -0.303270258009 --1.48238459229 -0.303265467286 --1.46512773633 -0.303261764348 --1.4478712976 -0.303259119391 --1.43061482906 -0.303257517516 --1.41335865855 -0.303257018328 --1.39610239863 -0.30325756967 --1.37884634733 -0.303259193897 --1.36159002781 -0.303261876106 --1.34433376789 -0.303265616298 --1.32707712054 -0.303270429373 --1.30982041359 -0.303276330233 --1.2925632298 -0.303283259272 --1.27530583739 -0.303291238844 --1.25804784894 -0.303300328552 --1.24078956246 -0.303304933012 --1.22157037258 -0.303300000727 --1.20234954357 -0.303290978074 --1.18509107828 -0.303283020854 --1.16783329845 -0.303276129067 --1.15057575703 -0.303270258009 --1.13331872225 -0.303265467286 --1.11606183648 -0.303261764348 --1.09880542755 -0.303259119391 --1.08154898882 -0.303257517516 --1.06429284811 -0.303257018328 --1.04703655839 -0.30325756967 --1.02978050709 -0.303259193897 --1.01252421737 -0.303261876106 --0.995267912745 -0.303265616298 --0.978011250496 -0.303270429373 --0.960754558444 -0.303276330233 --0.943497389555 -0.303283281624 --0.92624001205 -0.303291261196 --0.908981993795 -0.303300328552 --0.891723707318 -0.303304933012 --0.87250456214 -0.303300000727 --0.853283748031 -0.303290978074 --0.836025267839 -0.303283020854 --0.818767443299 -0.303276129067 --0.80150988698 -0.303270258009 --0.784252882004 -0.303265467286 --0.766996011138 -0.303261764348 --0.749739572406 -0.303259119391 --0.732483118773 -0.303257517516 --0.715226978064 -0.303257018328 --0.697970718145 -0.30325756967 --0.680714637041 -0.303259193897 --0.663458317518 -0.303261876106 --0.6462020576 -0.303265616298 --0.628945410251 -0.303270429373 --0.6116887182 -0.303276330233 --0.594431519508 -0.303283259272 --0.577174142003 -0.303291238844 --0.559916168451 -0.303300328552 --0.542657852173 -0.303304933012 --0.523438692093 -0.303300000727 --0.504217885435 -0.303290978074 --0.486959405243 -0.303282998502 --0.469701595604 -0.303276106715 --0.452444039285 -0.303270258009 --0.435187041759 -0.303265467286 --0.417930163443 -0.303261764348 --0.40067370981 -0.303259119391 --0.383417271078 -0.303257517516 --0.36616115272 -0.303257018328 --0.348904892802 -0.30325756967 --0.331648804247 -0.303259171545 --0.314392462373 -0.303261876107 --0.297136202455 -0.303265638649 --0.279879570007 -0.303270429373 --0.262622870505 -0.303276330233 --0.245365679264 -0.303283259272 --0.228108298034 -0.303291238844 --0.210850294679 -0.303300328552 --0.193591985851 -0.303304933012 --0.174372822046 -0.32065000385 --0.155145078898 -0.320640526712 --0.13788658753 -0.320632122457 --0.120628757402 -0.320624858141 --0.103371173143 -0.320618674159 --0.0861141420901 -0.320613637566 --0.0688572367653 -0.320609740913 --0.0516007626429 -0.320606946945 --0.0343442889862 -0.320605240762 --0.0170881215017 -0.32060470432 -0.000168169848622 -0.320605292916 -0.0174242763315 -0.320606999099 -0.0346806319431 -0.32060982287 -0.0519369253889 -0.320613756776 -0.0691935885697 -0.320618845522 -0.0864503160119 -0.320625051856 -0.103707538918 -0.320632353425 -0.120964948088 -0.320640787482 -0.13822298497 -0.320650368929 -0.155481319875 -0.320655219257 -0.174700215459 -0.320650026202 -0.193920768798 -0.320640526712 -0.211179278791 -0.320632122457 -0.228437107056 -0.320624858141 -0.245694682002 -0.320618674159 -0.262951716781 -0.320613637566 -0.280208617449 -0.320609740913 -0.297465085983 -0.320606946945 -0.314721561968 -0.320605240762 -0.331977732479 -0.32060470432 -0.3492340222 -0.320605292916 -0.366490118205 -0.320606999099 -0.383746467531 -0.320609845221 -0.401002772153 -0.320613779128 -0.418259434402 -0.320618845522 -0.435516163707 -0.320625051856 -0.452773399651 -0.320632353425 -0.470030806958 -0.320640787482 -0.487288825214 -0.320650368929 -0.504547163844 -0.320655219257 -0.523766070604 -0.320650026202 -0.542986616492 -0.320640526712 -0.560245126486 -0.320632122457 -0.577502965927 -0.320624858141 -0.594760552048 -0.320618674159 -0.612017586827 -0.320613615215 -0.629274487496 -0.320609718561 -0.64653095603 -0.320606946945 -0.663787424564 -0.320605263114 -0.681043580174 -0.320604726672 -0.698299869895 -0.320605292916 -0.715555980801 -0.320606999099 -0.732812330127 -0.320609845221 -0.750068619847 -0.320613779128 -0.767325282097 -0.320618845522 -0.784582033753 -0.320625051856 -0.801839262247 -0.320632353425 -0.819096654654 -0.320640787482 -0.83635468781 -0.320650368929 -0.85361301899 -0.320655219257 -0.872831910849 -0.320650026202 -0.892052471638 -0.320640526712 -0.90931096673 -0.320632122457 -0.92656879127 -0.320624858141 -0.943826377392 -0.320618674159 -0.96108341217 -0.320613637566 -0.978340327739 -0.320609740913 -0.995596811176 -0.320606946945 -1.01285329461 -0.320605263114 -1.03010946512 -0.320604726672 -1.04736575484 -0.320605292916 -1.06462183595 -0.320606999099 -1.08187815547 -0.32060982287 -1.09913444519 -0.320613756776 -1.11639112234 -0.320618845522 -1.1336478591 -0.320625051856 -1.15090510249 -0.320632353425 -1.1681625247 -0.320640787482 -1.18542054296 -0.320650368929 -1.20267885923 -0.320655219257 -1.22189775109 -0.320650026202 -1.24111831188 -0.320640526712 -1.25837680698 -0.320632122457 -1.27563464642 -0.320624858141 -1.29289221763 -0.320618674159 -1.31014925242 -0.320613637566 -1.32740619779 -0.320609740913 -1.34466263652 -0.320606946945 -1.36191907525 -0.320605263114 -1.37917524576 -0.320604726672 -1.39643156528 -0.320605292916 -1.41368767619 -0.320606999099 -1.43094402552 -0.32060982287 -1.44820034504 -0.320613756776 -1.46545702219 -0.320618845522 -1.48271372914 -0.320625051856 -1.49997091293 -0.320632353425 -1.51722830534 -0.320640787482 -1.5344863534 -0.320650368929 -1.55174469948 -0.320655219257 -1.57096362114 -0.320650026202 -1.59018421173 -0.320640526712 -1.60744270683 -0.320632122457 -1.62470051646 -0.320624858141 -1.64195808768 -0.320618674159 -1.65921509266 -0.320613637566 -1.67647200823 -0.320609740913 -1.69372850657 -0.320606946945 -1.7109849751 -0.320605263114 -1.72824114561 -0.320604726672 -1.74549743533 -0.320605292916 -1.76275351644 -0.320606999099 -1.78000989556 -0.32060982287 -1.79726618528 -0.320613756776 -1.81452283263 -0.320618845522 -1.83177956939 -0.320625051856 -1.84903678298 -0.320632353425 -1.86629420519 -0.320640787482 -1.88355222344 -0.320650368929 -1.90081056952 -0.320655219257 -1.92002946138 -0.320650026202 -1.93924999237 -0.320640526712 -1.95650851727 -0.320632122457 -1.97376635671 -0.320624858141 -1.99102395773 -0.320618674159 -2.00828096271 -0.320613637566 -2.02553784848 -0.320609740913 -2.04279434681 -0.320606946945 -2.06005078554 -0.320605263114 -2.07730698586 -0.320604726672 -2.09456330538 -0.320605292916 -2.11181932688 -0.320606999099 -2.129075706 -0.32060982287 -2.14633208513 -0.320613756776 -2.16358870268 -0.320618845522 -2.18084537983 -0.320625051856 -2.19810259342 -0.320632353425 -2.21536004543 -0.320640787482 -2.23261809349 -0.320650368929 -2.24987637997 -0.320655219257 -2.26909530163 -0.320650026202 -2.28831589222 -0.320640526712 -2.30557441712 -0.320632122457 -2.32283222675 -0.320624858141 -2.34008979797 -0.320618674159 -2.35734683275 -0.320613637566 -2.37460374832 -0.320609740913 -2.39186024666 -0.320606946945 -2.40911674499 -0.320605263114 -2.4263728857 -0.320604726672 -2.44362914562 -0.320605292916 -2.46088528633 -0.320606999099 -2.47814160585 -0.32060982287 -2.49539786577 -0.320613756776 -2.51265454292 -0.320618845522 -2.52991127968 -0.320625051856 -2.54716855288 -0.320632353425 -2.56442594528 -0.320640787482 -2.58168393373 -0.320650368929 -2.59894222021 -0.320655219257 -2.61816108227 -0.320650026202 -2.63738167286 -0.320640526712 -2.65464019775 -0.320632122457 -2.67189800739 -0.320624858141 -2.68915557861 -0.320618674159 -2.706412673 -0.320613637566 -2.72366958857 -0.320609740913 -2.7409260273 -0.320606946945 -2.75818252564 -0.320605263114 -2.77543866634 -0.320604726672 -2.79269492626 -0.320605292916 -2.80995106697 -0.320606999099 -2.8272074461 -0.320609845221 -2.84446376562 -0.320613779128 -2.86172044277 -0.320618845522 -2.87897717953 -0.320625051856 -2.89623439312 -0.320632353425 -2.91349172592 -0.320640787482 -2.93074977398 -0.320650368929 -2.94800817966 -0.320655196905 -2.96722710132 -0.32065000385 -2.98644757271 -0.320640526712 -3.00370597839 -0.320632122457 -3.02096384764 -0.320624858141 -3.03822147847 -0.320618674159 -3.05547851324 -0.320613637566 -3.07273536921 -0.320609740913 -3.08999180794 -0.320606946945 -3.10724830628 -0.320605240762 -3.12450456619 -0.32060470432 --3.14142444928 -0.320605292916 --3.124168396 -0.320606999099 --3.10691201687 -0.32060982287 --3.08965569735 -0.320613756776 --3.07239902019 -0.320618845522 --3.05514228344 -0.320625051856 --3.03788506985 -0.320632353425 --3.02062773705 -0.320640787482 --3.00336968899 -0.320650368929 --2.9861112833 -0.320655219257 --2.96689236164 -0.320650026202 --2.94767189026 -0.320640526712 --2.93041342497 -0.320632122457 --2.91315555572 -0.320624858141 --2.8958979845 -0.320618674159 --2.87864094972 -0.320613637566 --2.86138403415 -0.320609740913 --2.84412759542 -0.320606946945 --2.82687115669 -0.320605240762 --2.80961489677 -0.32060470432 --2.79235857725 -0.320605292916 --2.77510255575 -0.320606999099 --2.75784623623 -0.320609845221 --2.74058991671 -0.320613779128 --2.72333323956 -0.320618845522 --2.7060765028 -0.320625051856 --2.68881928921 -0.320632353425 --2.6715618372 -0.320640787482 --2.65430378914 -0.320650368929 --2.63704550266 -0.320655219257 --2.617826581 -0.320650026202 --2.59860599041 -0.320640526712 --2.58134746551 -0.320632122457 --2.56408965587 -0.320624858141 --2.54683208465 -0.320618674159 --2.52957504988 -0.320613615215 --2.51231813431 -0.320609718561 --2.49506163597 -0.320606946945 --2.47780519724 -0.320605263114 --2.46054905653 -0.320604726672 --2.443292737 -0.320605292916 --2.4260365963 -0.320606999099 --2.40878027678 -0.320609845221 --2.39152401686 -0.320613779128 --2.37426739931 -0.320618845522 --2.35701066256 -0.320625051856 --2.33975338936 -0.320632353425 --2.32249599695 -0.320640787482 --2.30523794889 -0.320650368929 --2.28797960281 -0.320655219257 --2.26876074076 -0.320650026202 --2.24954020977 -0.320640526712 --2.23228168487 -0.320632122457 --2.21502387523 -0.320624858141 --2.19776630401 -0.320618674159 --2.18050920963 -0.320613637566 --2.16325229406 -0.320609740913 --2.14599585533 -0.320606946945 --2.128739357 -0.320605263114 --2.11148321629 -0.320604726672 --2.09422695636 -0.320605292916 --2.07697081566 -0.320606999099 --2.05971443653 -0.32060982287 --2.04245817661 -0.320613756776 --2.02520149946 -0.320618845522 --2.0079447329 -0.320625051856 --1.99068754911 -0.320632353425 --1.97343015671 -0.320640787482 --1.95617210865 -0.320650368929 --1.93891376257 -0.320655219257 --1.91969487071 -0.320650026202 --1.90047430992 -0.320640526712 --1.88321581483 -0.320632122457 --1.86595800519 -0.320624858141 --1.84870043397 -0.320618674159 --1.83144342899 -0.320613637566 --1.81418651342 -0.320609740913 --1.79693001509 -0.320606946945 --1.77967354655 -0.320605263114 --1.76241737604 -0.320604726672 --1.74516108632 -0.320605292916 --1.72790497541 -0.320606999099 --1.71064859629 -0.32060982287 --1.69339230657 -0.320613756776 --1.67613565922 -0.320618845522 --1.65887892246 -0.320625051856 --1.64162170887 -0.320632353425 --1.62436431646 -0.320640787482 --1.60710626841 -0.320650368929 --1.58984792233 -0.320655219257 --1.57062903046 -0.320650026202 --1.55140849948 -0.320640526712 --1.53415000439 -0.320632122457 --1.51689216495 -0.320624858141 --1.49963456392 -0.320618674159 --1.48237752914 -0.320613637566 --1.46512064338 -0.320609740913 --1.44786417484 -0.320606946945 --1.4306076765 -0.320605263114 --1.41335147619 -0.320604726672 --1.39609521627 -0.320605292916 --1.37883913517 -0.320606999099 --1.36158278585 -0.32060982287 --1.34432649612 -0.320613756776 --1.32706981898 -0.320618845522 --1.30981308222 -0.320625051856 --1.29255583882 -0.320632353425 --1.27529844642 -0.320640787482 --1.25804042816 -0.320650368929 --1.24078208208 -0.320655219257 --1.22156319022 -0.320650026202 --1.20234262943 -0.320640526712 --1.18508413434 -0.320632122457 --1.1678263247 -0.320624858141 --1.15056875348 -0.320618674159 --1.1333116889 -0.320613637566 --1.11605474353 -0.320609740913 --1.0987983048 -0.320606946945 --1.08154186606 -0.320605263114 --1.06428569555 -0.320604726672 --1.04702937603 -0.320605292916 --1.02977326513 -0.320606999099 --1.0125169158 -0.32060982287 --0.995260611176 -0.320613756776 --0.978003948927 -0.320618845522 --0.960747212171 -0.320625051856 --0.94349001348 -0.320632353425 --0.926232606173 -0.320640787482 --0.908974543214 -0.320650368929 --0.891716226935 -0.320655219257 --0.872497349977 -0.320650026202 --0.85327680409 -0.320640526712 --0.836018294096 -0.320632122457 --0.818760439753 -0.320624858141 --0.801502853632 -0.320618674159 --0.784245848656 -0.320613637566 --0.766988947988 -0.320609740913 --0.749732464552 -0.320606946945 --0.732475981116 -0.320605263114 --0.715219795704 -0.320604726672 --0.697963520884 -0.320605292916 --0.680707424879 -0.320606999099 --0.663451060653 -0.32060982287 --0.646194770932 -0.320613756776 --0.628938108683 -0.320618845522 --0.611681386829 -0.320625051856 --0.594424158335 -0.320632353425 --0.577166751027 -0.320640787482 --0.559908732772 -0.320650368929 --0.542650401592 -0.320655219257 --0.523431509733 -0.320650026202 --0.504210956395 -0.320640526712 --0.48695243895 -0.320632122457 --0.469694599509 -0.320624858141 --0.452437020838 -0.320618674159 --0.43517998606 -0.320613637566 --0.417923085392 -0.320609740913 --0.400666616857 -0.320606946945 --0.383410148323 -0.320605263114 --0.366153985262 -0.320604726672 --0.348897688091 -0.320605292916 --0.331641577184 -0.320606999099 --0.314385205507 -0.320609845221 --0.297128915787 -0.320613779128 --0.279872260988 -0.320618845522 --0.262615524233 -0.320625051856 --0.245358299464 -0.320632353425 --0.228100895882 -0.320640787482 --0.210842870176 -0.320650368929 --0.193584531546 -0.320655196905 --0.174365624785 -0.33798263967 --0.15513817966 -0.337972693146 --0.137879654765 -0.337963856757 --0.12062179856 -0.337956205011 --0.103364186362 -0.337949723005 --0.0861071273685 -0.337944447994 --0.0688501950354 -0.337940350175 --0.0515936901793 -0.337937414646 --0.0343371867202 -0.337935648859 --0.0170809898991 -0.337935082615 -0.000175330787898 -0.337935678661 -0.0174314666074 -0.337937481702 -0.0346878515556 -0.337940454483 -0.0519441757351 -0.337944597006 -0.069200870581 -0.337949939072 -0.0864576287568 -0.337956443429 -0.103714881465 -0.337964124978 -0.120972320437 -0.337972968817 -0.138230383396 -0.337983004749 -0.155488748103 -0.337988108396 -0.174707382917 -0.337982662022 -0.193927668035 -0.337972693146 -0.211186204105 -0.337963856757 -0.228444062173 -0.337956205011 -0.245701666921 -0.337949723005 -0.262958727777 -0.337944447994 -0.280215658247 -0.337940350175 -0.297472164035 -0.337937414646 -0.314728669822 -0.337935626507 -0.331984862685 -0.337935060263 -0.349241182208 -0.337935678661 -0.366497308016 -0.337937481702 -0.383753687143 -0.337940454483 -0.401010029018 -0.337944597006 -0.41826672852 -0.337949939072 -0.435523480177 -0.337956443429 -0.452780731023 -0.337964124978 -0.470038168132 -0.337972968817 -0.487296223641 -0.337983004749 -0.504554592073 -0.337988108396 -0.523773223161 -0.337982662022 -0.54299351573 -0.337972693146 -0.560252070427 -0.337963879109 -0.57750992477 -0.337956227362 -0.594767540693 -0.337949723005 -0.612024605274 -0.337944425642 -0.629281520844 -0.337940327823 -0.646538019181 -0.337937414646 -0.663794532418 -0.337935648859 -0.681050732732 -0.337935082615 -0.698307052255 -0.337935678661 -0.715563163161 -0.337937481702 -0.732819527388 -0.337940454483 -0.750075861811 -0.337944597006 -0.767332568764 -0.337949939072 -0.784589350223 -0.337956443429 -0.801846593618 -0.337964124978 -0.819104000926 -0.337972991168 -0.836362078786 -0.3379830271 -0.85362046957 -0.337988108396 -0.872839078307 -0.337982662022 -0.892059355975 -0.337972693146 -0.909317910671 -0.337963879109 -0.926575765014 -0.337956227362 -0.943833351135 -0.337949723005 -0.961090400815 -0.337944447994 -0.978347346186 -0.337940350175 -0.995603859425 -0.337937414646 -1.01286038756 -0.337935648859 -1.03011658788 -0.337935082615 -1.0473729074 -0.337935678661 -1.06462901831 -0.337937481702 -1.08188536763 -0.337940454483 -1.09914171696 -0.337944597006 -1.11639842391 -0.337949939072 -1.13365516067 -0.337956443429 -1.15091240406 -0.337964110077 -1.16816985607 -0.337972953916 -1.18542793393 -0.337983004749 -1.20268630982 -0.337988108396 -1.22190493345 -0.337982662022 -1.24112522602 -0.337972693146 -1.25838375091 -0.337963856757 -1.27564162016 -0.337956205011 -1.29289922118 -0.337949723005 -1.31015625596 -0.337944447994 -1.32741323113 -0.337940350175 -1.34466972947 -0.337937414646 -1.361926198 -0.33793567121 -1.37918239832 -0.337935104966 -1.39643871784 -0.337935678661 -1.41369485855 -0.337937481702 -1.43095126748 -0.337940454483 -1.448207587 -0.337944574654 -1.46546426416 -0.33794991672 -1.48272103072 -0.337956443429 -1.49997827411 -0.337964110077 -1.51723569632 -0.337972976268 -1.53449377418 -0.3379830271 -1.55175215006 -0.337988108396 -1.5709708035 -0.337982662022 -1.59019109607 -0.337972693146 -1.60744962096 -0.337963856757 -1.6247074604 -0.337956227362 -1.64196506143 -0.337949745357 -1.65922212601 -0.337944447994 -1.67647904158 -0.337940350175 -1.69373553991 -0.337937414646 -1.71099206805 -0.337935648859 -1.72824826837 -0.337935082615 -1.74550458789 -0.337935678661 -1.7627607286 -0.337937481702 -1.78001710772 -0.337940454483 -1.79727342724 -0.337944597006 -1.8145301342 -0.337949939072 -1.83178690076 -0.337956443429 -1.84904414415 -0.337964124978 -1.86630159617 -0.337972968817 -1.88355964422 -0.337983004749 -1.9008179903 -0.337988108396 -1.92003661394 -0.337982662022 -1.93925690651 -0.337972693146 -1.95651546121 -0.337963856757 -1.97377333045 -0.337956205011 -1.99103093147 -0.337949723005 -2.00828796625 -0.337944447994 -2.02554488182 -0.337940350175 -2.04280138016 -0.337937414646 -2.06005787849 -0.337935648859 -2.07731407881 -0.337935082615 -2.09457045794 -0.337935678661 -2.11182659864 -0.337937481702 -2.12908297777 -0.337940454483 -2.14633929729 -0.337944597006 -2.16359597444 -0.337949939072 -2.1808527708 -0.337956443429 -2.1981099844 -0.337964124978 -2.21536743641 -0.337972968817 -2.23262548446 -0.337983004749 -2.24988377094 -0.337988108396 -2.26910245419 -0.337982662022 -2.28832280636 -0.337972693146 -2.30558133125 -0.337963856757 -2.32283914089 -0.337956205011 -2.34009671211 -0.337949723005 -2.35735380649 -0.337944447994 -2.37461078167 -0.337940350175 -2.39186728001 -0.337937414646 -2.40912377834 -0.33793567121 -2.42637997866 -0.337935104966 -2.44363629818 -0.337935678661 -2.46089243889 -0.337937481702 -2.47814881801 -0.337940454483 -2.49540513754 -0.337944597006 -2.51266181469 -0.337949939072 -2.52991855144 -0.337956421077 -2.54717582464 -0.337964087725 -2.56443327665 -0.337972953916 -2.58169138432 -0.337983004749 -2.59894967079 -0.337988108396 -2.61816823483 -0.337982662022 -2.637388587 -0.337972693146 -2.65464711189 -0.337963856757 -2.67190498114 -0.337956205011 -2.68916261196 -0.337949723005 -2.70641964674 -0.337944447994 -2.72367662192 -0.337940350175 -2.74093312025 -0.337937414646 -2.75818961859 -0.33793567121 -2.7754458189 -0.337935104966 -2.79270207882 -0.337935678661 -2.80995821953 -0.337937481702 -2.82721459865 -0.337940454483 -2.84447097778 -0.337944597006 -2.86172771454 -0.337949939072 -2.87898445129 -0.337956443429 -2.89624172449 -0.337964110077 -2.9134991169 -0.337972953916 -2.93075716496 -0.337983004749 -2.94801557064 -0.337988086044 -2.96723419428 -0.33798263967 -2.98645442724 -0.337972693146 -3.00371295214 -0.337963856757 -3.02097088099 -0.337956205011 -3.03822851181 -0.337949723005 -3.05548554659 -0.337944447994 -3.07274246216 -0.337940350175 -3.0899989605 -0.337937414646 -3.10725545883 -0.337935648859 -3.12451165914 -0.337935082615 --3.14141735633 -0.337935678661 --3.12416124344 -0.337937481702 --3.10690480471 -0.337940454483 --3.08964842558 -0.337944597006 --3.07239174843 -0.337949939072 --3.05513501167 -0.337956443429 --3.03787773847 -0.337964124978 --3.02062034607 -0.337972968817 --3.00336229801 -0.337983004749 --2.98610389233 -0.337988108396 --2.96688520908 -0.337982662022 --2.94766497612 -0.337972693146 --2.93040645123 -0.337963856757 --2.91314852238 -0.337956205011 --2.89589095116 -0.337949723005 --2.87863391638 -0.337944447994 --2.86137700081 -0.337940350175 --2.84412050247 -0.337937414646 --2.82686400414 -0.337935626507 --2.80960780382 -0.337935060263 --2.79235142469 -0.337935678661 --2.77509534359 -0.337937481702 --2.75783902407 -0.337940454483 --2.74058264494 -0.337944597006 --2.72332590819 -0.337949939072 --2.70606917143 -0.337956443429 --2.68881195784 -0.337964124978 --2.67155450582 -0.337972968817 --2.65429645777 -0.337983004749 --2.63703811169 -0.337988108396 --2.61781942844 -0.337982662022 --2.59859907627 -0.337972693146 --2.58134055137 -0.337963879109 --2.56408274174 -0.337956227362 --2.54682517052 -0.337949723005 --2.52956807613 -0.337944425642 --2.51231110096 -0.337940327823 --2.49505460262 -0.337937414646 --2.47779810429 -0.337935648859 --2.46054190397 -0.337935082615 --2.44328558445 -0.337935678661 --2.42602944374 -0.337937481702 --2.40877306462 -0.337940454483 --2.3915168047 -0.337944597006 --2.37426012755 -0.337949939072 --2.35700333119 -0.337956443429 --2.33974611759 -0.337964124978 --2.32248866558 -0.337972991168 --2.30523049832 -0.3379830271 --2.28797209263 -0.337988108396 --2.2687535286 -0.337982662022 --2.24953329563 -0.337972693146 --2.23227477073 -0.337963879109 --2.2150169611 -0.337956227362 --2.19775933027 -0.337949723005 --2.18050223589 -0.337944447994 --2.16324532032 -0.337940350175 --2.14598882198 -0.337937414646 --2.12873226404 -0.337935648859 --2.11147606373 -0.337935082615 --2.09421980381 -0.337935678661 --2.0769636631 -0.337937481702 --2.05970728398 -0.337940454483 --2.04245096445 -0.337944597006 --2.0251942277 -0.337949939072 --2.00793746114 -0.337956443429 --1.99068021774 -0.337964110077 --1.97342276573 -0.337972953916 --1.95616468787 -0.337983004749 --1.93890631199 -0.337988108396 --1.91968768835 -0.337982662022 --1.90046742558 -0.337972693146 --1.88320890069 -0.337963856757 --1.86595103145 -0.337956205011 --1.84869343042 -0.337949723005 --1.83143639564 -0.337944447994 --1.81417948007 -0.337940350175 --1.79692298174 -0.337937414646 --1.7796664536 -0.33793567121 --1.76241022348 -0.337935104966 --1.74515390396 -0.337935678661 --1.72789776325 -0.337937481702 --1.71064138412 -0.337940454483 --1.6933850944 -0.337944574654 --1.67612838745 -0.33794991672 --1.65887159109 -0.337956443429 --1.6416143477 -0.337964110077 --1.62435692549 -0.337972976268 --1.60709887743 -0.3379830271 --1.58984053135 -0.337988108396 --1.57062187791 -0.337982662022 --1.55140158534 -0.337972693146 --1.53414306044 -0.337963856757 --1.5168851912 -0.337956227362 --1.49962756038 -0.337949745357 --1.4823704958 -0.337944447994 --1.46511358022 -0.337940350175 --1.44785708189 -0.337937414646 --1.43060058355 -0.337935648859 --1.41334438324 -0.337935082615 --1.39608806372 -0.337935678661 --1.37883195281 -0.337937481702 --1.36157557368 -0.337940454483 --1.34431922436 -0.337944597006 --1.32706254721 -0.337949939072 --1.30980581045 -0.337956443429 --1.29254853725 -0.337964124978 --1.27529111504 -0.337972968817 --1.25803303719 -0.337983004749 --1.2407746315 -0.337988108396 --1.22155600786 -0.337982662022 --1.20233571529 -0.337972693146 --1.1850771904 -0.337963856757 --1.16781935095 -0.337956205011 --1.15056174993 -0.337949723005 --1.13330468535 -0.337944447994 --1.11604771018 -0.337940350175 --1.09879124165 -0.337937414646 --1.08153477311 -0.337935648859 --1.06427854299 -0.337935082615 --1.04702219367 -0.337935678661 --1.02976605296 -0.337937481702 --1.01250970363 -0.337940454483 --0.995253384113 -0.337944597006 --0.97799667716 -0.337949939072 --0.960739910603 -0.337956443429 --0.943482652307 -0.337964124978 --0.926225215197 -0.337972968817 --0.908967152238 -0.337983004749 --0.891708791256 -0.337988108396 --0.872490167618 -0.337982662022 --0.853269889951 -0.337972693146 --0.836011350155 -0.337963856757 --0.818753495813 -0.337956205011 --0.80149589479 -0.337949723005 --0.784238830209 -0.337944447994 --0.766981899738 -0.337940350175 --0.7497253865 -0.337937414646 --0.732468873262 -0.33793567121 --0.715212672949 -0.337935104966 --0.697956353426 -0.337935678661 --0.680700227618 -0.337937481702 --0.663443848491 -0.337940454483 --0.646187528968 -0.337944597006 --0.628930822015 -0.337949939072 --0.611674070358 -0.337956421077 --0.594416826963 -0.337964087725 --0.577159374952 -0.337972953916 --0.559901311994 -0.337983004749 --0.542642980814 -0.337988108396 --0.523424357176 -0.337982662022 --0.504204049707 -0.337972693146 --0.48694550246 -0.337963856757 --0.469687633216 -0.337956205011 --0.452430039644 -0.337949723005 --0.435172975063 -0.337944447994 --0.417916037142 -0.337940350175 --0.400659546256 -0.337937414646 --0.383403047919 -0.33793567121 --0.366146847606 -0.337935104966 --0.348890513182 -0.337935678661 --0.331634379923 -0.337937481702 --0.314377993345 -0.337940454483 --0.297121673822 -0.337944597006 --0.279864989221 -0.337949939072 --0.262608222664 -0.337956443429 --0.245350964368 -0.337964110077 --0.228093527258 -0.337972953916 --0.21083547175 -0.337983004749 --0.193577107042 -0.337988086044 --0.174358464777 -0.355328932404 --0.155130922794 -0.355318494141 --0.137872356922 -0.35530924052 --0.120614465326 -0.355301231146 --0.103356825188 -0.355294466019 --0.0860997401178 -0.355288952589 --0.0688427779824 -0.355284638703 --0.051586243324 -0.355281569064 --0.0343297086656 -0.355279751122 --0.0170734813437 -0.355279147625 -0.000182869145648 -0.355279766023 -0.0174390363973 -0.355281665921 -0.0346954525448 -0.355284757912 -0.0519518069923 -0.355289101601 -0.0692085344344 -0.355294704437 -0.0864653233439 -0.355301514268 -0.103722605854 -0.355309568345 -0.120980072766 -0.355318821966 -0.138238161802 -0.355329312384 -0.155496560037 -0.355334639549 -0.174714922905 -0.355328932404 -0.193934932351 -0.355318494141 -0.211193490773 -0.35530924052 -0.228451378643 -0.355301231146 -0.245709016919 -0.355294466019 -0.262966103852 -0.355288952589 -0.280223071575 -0.355284638703 -0.297479614615 -0.355281569064 -0.314736157656 -0.35527972877 -0.33199237287 -0.355279125273 -0.349248714745 -0.355279766023 -0.366504877806 -0.355281665921 -0.383761286736 -0.355284757912 -0.401017650962 -0.355289101601 -0.418274372816 -0.355294704437 -0.435531161725 -0.355301514268 -0.452788449824 -0.355309568345 -0.470045924187 -0.355318821966 -0.487304016948 -0.355329312384 -0.504562415183 -0.355334639549 -0.523780763149 -0.355328932404 -0.543000772595 -0.355318494141 -0.560259357095 -0.355309262872 -0.577517241239 -0.355301253498 -0.594774886966 -0.355294466019 -0.612031966448 -0.355288952589 -0.629288911819 -0.355284638703 -0.64654545486 -0.355281569064 -0.6638019979 -0.35527972877 -0.681058242917 -0.355279125273 -0.698314607143 -0.355279766023 -0.715570747852 -0.355281665921 -0.732827141881 -0.355284780264 -0.750083506107 -0.355289123952 -0.767340242863 -0.355294704437 -0.784597039223 -0.355301514268 -0.80185431242 -0.355309568345 -0.819111764431 -0.355318844318 -0.836369857192 -0.355329357088 -0.853628277779 -0.355334661901 -0.872846633196 -0.355328932404 -0.892066627741 -0.355318494141 -0.90932521224 -0.355309262872 -0.926583096385 -0.355301253498 -0.943840712309 -0.355294466019 -0.961097806692 -0.355288952589 -0.978354766965 -0.355284638703 -0.995611295105 -0.355281569064 -1.01286786795 -0.35527972877 -1.03012409806 -0.355279125273 -1.04738041758 -0.355279766023 -1.06463658809 -0.355281665921 -1.08189299702 -0.355284780264 -1.09914934635 -0.355289123952 -1.11640611291 -0.355294704437 -1.13366287947 -0.355301514268 -1.15092012286 -0.355309553444 -1.16817760468 -0.355318807066 -1.18543571234 -0.355329312384 -1.20269411802 -0.355334639549 -1.22191247344 -0.355328932404 -1.24113249779 -0.355318494141 -1.25839105248 -0.35530924052 -1.27564895153 -0.355301231146 -1.29290658236 -0.355294466019 -1.31016364693 -0.355288952589 -1.32742062211 -0.355284638703 -1.34467718005 -0.355281569064 -1.36193370819 -0.355279751122 -1.3791899085 -0.355279147625 -1.39644625783 -0.355279766023 -1.41370242834 -0.355281665921 -1.43095886707 -0.355284780264 -1.4482152164 -0.355289101601 -1.46547192335 -0.355294682086 -1.48272871971 -0.355301514268 -1.49998599291 -0.355309553444 -1.51724347472 -0.355318829417 -1.53450158238 -0.355329357088 -1.55175998807 -0.355334661901 -1.57097834349 -0.355328932404 -1.59019833803 -0.355318494141 -1.60745689273 -0.355309262872 -1.62471476197 -0.355301275849 -1.6419724226 -0.355294488371 -1.65922951698 -0.355288952589 -1.67648646235 -0.355284638703 -1.69374299049 -0.355281569064 -1.71099954844 -0.35527972877 -1.72825577855 -0.355279125273 -1.74551209807 -0.355279766023 -1.76276829839 -0.355281665921 -1.78002470732 -0.355284780264 -1.79728105664 -0.355289123952 -1.8145377934 -0.355294704437 -1.83179458976 -0.355301514268 -1.84905189276 -0.355309568345 -1.86630934477 -0.355318821966 -1.88356742263 -0.355329312384 -1.90082582831 -0.355334639549 -1.92004418373 -0.355328932404 -1.93926417828 -0.355318494141 -1.95652276278 -0.35530924052 -1.97378066182 -0.355301231146 -1.99103826284 -0.355294466019 -2.00829532742 -0.355288952589 -2.0255523324 -0.355284638703 -2.04280889034 -0.355281569064 -2.06006538868 -0.35527972877 -2.07732158899 -0.355279125273 -2.09457796812 -0.355279766023 -2.11183416844 -0.355281665921 -2.12909054756 -0.355284757912 -2.14634686708 -0.355289101601 -2.16360366344 -0.355294704437 -2.18086051941 -0.355301514268 -2.198117733 -0.355309568345 -2.21537518502 -0.355318821966 -2.23263329268 -0.355329312384 -2.24989163875 -0.355334639549 -2.26911002398 -0.355328932404 -2.28833007813 -0.355318494141 -2.30558860302 -0.35530924052 -2.32284647227 -0.355301231146 -2.34010410309 -0.355294466019 -2.35736119747 -0.355288952589 -2.37461817264 -0.355284661055 -2.39187467098 -0.355281591415 -2.40913116932 -0.355279751122 -2.42638742924 -0.355279147625 -2.44364380837 -0.355279766023 -2.46089994908 -0.355281665921 -2.47815638781 -0.355284780264 -2.49541276693 -0.355289123952 -2.51266950369 -0.355294704437 -2.52992630005 -0.355301491916 -2.54718351364 -0.355309531093 -2.56444096566 -0.355318807066 -2.58169913292 -0.355329334736 -2.598957479 -0.355334661901 -2.61817580462 -0.355328932404 -2.63739585877 -0.355318494141 -2.65465438366 -0.35530924052 -2.6719123125 -0.355301231146 -2.68917000294 -0.355294466019 -2.70642703772 -0.355288930237 -2.72368401289 -0.355284638703 -2.74094057083 -0.355281591415 -2.75819712877 -0.355279751122 -2.77545332908 -0.355279147625 -2.79270964861 -0.355279766023 -2.80996584892 -0.355281665921 -2.82722222805 -0.355284757912 -2.84447860717 -0.355289101601 -2.86173534393 -0.355294704437 -2.87899208069 -0.355301514268 -2.89624941349 -0.355309553444 -2.91350686551 -0.355318807066 -2.93076491356 -0.355329312384 -2.94802337885 -0.355334639549 -2.96724170447 -0.355328932404 -2.9864616394 -0.355318494141 -3.00372028351 -0.35530924052 -3.02097821235 -0.355301231146 -3.03823584318 -0.355294466019 -3.05549293756 -0.355288952589 -3.07274991274 -0.355284638703 -3.09000647068 -0.355281569064 -3.10726296901 -0.355279751122 -3.12451916933 -0.355279147625 --3.14140978654 -0.355279766023 --3.12415361405 -0.355281665921 --3.10689717531 -0.355284757912 --3.08964079618 -0.355289101601 --3.07238411903 -0.355294704437 --3.05512738227 -0.355301514268 --3.03787004947 -0.355309568345 --3.02061253786 -0.355318821966 --3.0033544898 -0.355329312384 --2.98609608412 -0.355334639549 --2.9668776989 -0.355328932404 --2.94765776396 -0.355318494141 --2.93039917946 -0.35530924052 --2.91314125061 -0.355301231146 --2.89588361978 -0.355294466019 --2.8786265254 -0.355288952589 --2.86136955023 -0.355284638703 --2.84411299229 -0.355281569064 --2.82685649395 -0.35527972877 --2.80960029364 -0.355279125273 --2.79234391451 -0.355279766023 --2.7750877738 -0.355281665921 --2.75783139467 -0.355284757912 --2.74057501554 -0.355289101601 --2.72331827879 -0.355294704437 --2.70606154203 -0.355301514268 --2.68880426883 -0.355309568345 --2.67154675722 -0.355318821966 --2.65428864956 -0.355329312384 --2.63703024387 -0.355334639549 --2.61781185865 -0.355328932404 --2.5985918045 -0.355318494141 --2.58133327961 -0.355309262872 --2.56407541037 -0.355301253498 --2.54681777954 -0.355294466019 --2.52956068516 -0.355288952589 --2.51230370999 -0.355284638703 --2.49504721165 -0.355281569064 --2.47779071331 -0.35527972877 --2.46053445339 -0.355279125273 --2.44327807427 -0.355279766023 --2.42602193355 -0.355281665921 --2.40876549482 -0.355284780264 --2.3915091753 -0.355289123952 --2.37425243854 -0.355294704437 --2.35699558258 -0.355301514268 --2.33973836899 -0.355309568345 --2.32248091698 -0.355318844318 --2.30522274971 -0.355329357088 --2.28796434402 -0.355334661901 --2.26874601841 -0.355328932404 --2.24952602386 -0.355318494141 --2.23226743937 -0.355309262872 --2.21500957012 -0.355301253498 --2.1977519393 -0.355294466019 --2.18049484492 -0.355288952589 --2.16323792935 -0.355284638703 --2.14598143101 -0.355281569064 --2.12872481346 -0.35527972877 --2.11146855354 -0.355279125273 --2.09421229363 -0.355279766023 --2.07695609331 -0.355281665921 --2.05969965458 -0.355284780264 --2.04244327545 -0.355289123952 --2.0251865387 -0.355294704437 --2.00792980194 -0.355301514268 --1.99067252875 -0.355309553444 --1.97341504693 -0.355318807066 --1.95615690946 -0.355329312384 --1.93889850378 -0.355334639549 --1.91968014836 -0.355328932404 --1.90046015381 -0.355318494141 --1.88320159912 -0.35530924052 --1.86594370007 -0.355301231146 --1.84868606925 -0.355294466019 --1.83142897487 -0.355288952589 --1.81417202949 -0.355284638703 --1.79691553116 -0.355281569064 --1.77965897322 -0.355279751122 --1.7624027133 -0.355279147625 --1.74514636397 -0.355279766023 --1.72789019346 -0.355281665921 --1.71063381433 -0.355284780264 --1.69337746501 -0.355289101601 --1.67612069846 -0.355294682086 --1.6588639021 -0.355301514268 --1.64160662889 -0.355309553444 --1.62434917688 -0.355318829417 --1.60709109902 -0.355329357088 --1.58983269334 -0.355334661901 --1.57061433792 -0.355328932404 --1.55139434338 -0.355318494141 --1.53413575888 -0.355309262872 --1.51687785983 -0.355301275849 --1.49962022901 -0.355294488371 --1.48236313462 -0.355288952589 --1.46510615945 -0.355284638703 --1.44784963131 -0.355281569064 --1.43059313297 -0.35527972877 --1.41333690286 -0.355279125273 --1.39608052373 -0.355279766023 --1.37882438302 -0.355281665921 --1.36156797409 -0.355284780264 --1.34431159497 -0.355289123952 --1.32705488801 -0.355294704437 --1.30979812146 -0.355301514268 --1.29254081845 -0.355309568345 --1.27528333664 -0.355318821966 --1.25802522898 -0.355329312384 --1.24076682329 -0.355334639549 --1.22154846787 -0.355328932404 --1.20232844353 -0.355318494141 --1.18506988883 -0.35530924052 --1.16781198979 -0.355301231146 --1.15055435896 -0.355294466019 --1.13329729438 -0.355288952589 --1.1160403192 -0.355284638703 --1.09878379106 -0.355281569064 --1.08152726293 -0.35527972877 --1.06427103281 -0.355279125273 --1.04701465368 -0.355279766023 --1.02975848317 -0.355281665921 --1.01250210404 -0.355284757912 --0.995245739818 -0.355289101601 --0.977989003062 -0.355294704437 --0.960732221604 -0.355301514268 --0.943474933505 -0.355309568345 --0.926217466593 -0.355318821966 --0.908959373832 -0.355329312384 --0.891700983048 -0.355334639549 --0.872482642531 -0.355328932404 --0.853262647986 -0.355318494141 --0.836004063487 -0.35530924052 --0.818746164441 -0.355301231146 --0.801488548517 -0.355294466019 --0.784231439233 -0.355288952589 --0.76697447896 -0.355284661055 --0.749717935919 -0.355281591415 --0.732461392879 -0.355279751122 --0.715205192566 -0.355279147625 --0.69794884324 -0.355279766023 --0.680692672729 -0.355281665921 --0.663436248898 -0.355284780264 --0.646179899573 -0.355289123952 --0.628923177719 -0.355294704437 --0.611666381359 -0.355301491916 --0.594409108162 -0.355309531093 --0.577151626349 -0.355318807066 --0.559893518686 -0.355329334736 --0.542635142803 -0.355334661901 --0.523416787386 -0.355328932404 --0.50419677049 -0.355318494141 --0.486938208341 -0.35530924052 --0.469680309295 -0.355301231146 --0.45242267102 -0.355294466019 --0.435165584087 -0.355288930237 --0.417908623815 -0.355284638703 --0.400652095675 -0.355281591415 --0.383395560086 -0.355279751122 --0.36613932997 -0.355279147625 --0.348882973194 -0.355279766023 --0.331626817584 -0.355281665921 --0.314370401204 -0.355284757912 --0.297114044428 -0.355289101601 --0.279857322574 -0.355294704437 --0.262600526213 -0.355301514268 --0.24534324184 -0.355309553444 --0.228085771203 -0.355318807066 --0.210827678442 -0.355329312384 --0.193569283933 -0.355334639549 --0.174350932241 -0.372711770237 --0.155123777688 -0.372700847685 --0.137865182012 -0.372691199183 --0.120607260615 -0.372682847082 --0.103349588811 -0.372675769031 --0.0860924720764 -0.372670017183 --0.0688354801387 -0.372665524483 --0.0515789166093 -0.372662305832 --0.0343223512173 -0.372660376132 --0.0170660938602 -0.372659757734 -0.000190287362785 -0.372660435736 -0.0174464860465 -0.37266241014 -0.0347029319964 -0.372665651142 -0.0519593171775 -0.372670181095 -0.0692160762846 -0.3726760149 -0.0864728931338 -0.372683122754 -0.103730203584 -0.372691534459 -0.120987702161 -0.372701220214 -0.138245820999 -0.372712180018 -0.155504249036 -0.372717745602 -0.174722339958 -0.372711770237 -0.193942077458 -0.372700847685 -0.211200665682 -0.372691199183 -0.228458583355 -0.372682861984 -0.245716251433 -0.372675806284 -0.262973368168 -0.372670017183 -0.280230365694 -0.372665502131 -0.297486938536 -0.372662305832 -0.314743511379 -0.372660376132 -0.331999763846 -0.372659757734 -0.349256142974 -0.372660435736 -0.366512335837 -0.37266241014 -0.383768774569 -0.372665651142 -0.401025161147 -0.372670181095 -0.418281905353 -0.3726760149 -0.435538724065 -0.372683122754 -0.452796049416 -0.372691534459 -0.470053561032 -0.372701220214 -0.487311676144 -0.372712180018 -0.504570096731 -0.372717723251 -0.523788183928 -0.372711747885 -0.543007910252 -0.372700847685 -0.560266509652 -0.372691199183 -0.577524453402 -0.372682847082 -0.59478212893 -0.372675791383 -0.612039223314 -0.372670017183 -0.629296213389 -0.372665502131 -0.646552786231 -0.372662305832 -0.663809359073 -0.372660398484 -0.681065618992 -0.372659780085 -0.698321998119 -0.372660435736 -0.715578198433 -0.37266241014 -0.732834637165 -0.372665673494 -0.750091031194 -0.372670203447 -0.767347797751 -0.3726760149 -0.784604609013 -0.372683122754 -0.801861912012 -0.372691534459 -0.819119393825 -0.372701220214 -0.836377501488 -0.37271220237 -0.853635951877 -0.372717745602 -0.872854068875 -0.372711770236 -0.892073795199 -0.372700870037 -0.9093323946 -0.372691199183 -0.926590308547 -0.372682847082 -0.943847954274 -0.372675791383 -0.961105078459 -0.372670039535 -0.978362068534 -0.372665524483 -0.995618641376 -0.372662305832 -1.01287522912 -0.372660398484 -1.03013148904 -0.372659780085 -1.04738783836 -0.372660435736 -1.06464403868 -0.37266241014 -1.08190047741 -0.372665673494 -1.09915682674 -0.372670203447 -1.11641362309 -0.3726760149 -1.13367044926 -0.372683122754 -1.15092775226 -0.372691534459 -1.16818526387 -0.372701220214 -1.18544340134 -0.372712180018 -1.20270183683 -0.372717745602 -1.22191989422 -0.372711770237 -1.24113962054 -0.372700847685 -1.25839823485 -0.372691199183 -1.27565616369 -0.372682847082 -1.29291382432 -0.372675791383 -1.3101709485 -0.372670039535 -1.32742792368 -0.372665524483 -1.34468448162 -0.372662305832 -1.36194103956 -0.372660376132 -1.37919726968 -0.372659757734 -1.3964536786 -0.372660435736 -1.41370987892 -0.37266241014 -1.43096631766 -0.372665673494 -1.44822272659 -0.372670203447 -1.46547949314 -0.3726760149 -1.48273631931 -0.372683122754 -1.4999936223 -0.372691534459 -1.51725113392 -0.372701220214 -1.53450924158 -0.37271220237 -1.55176764727 -0.372717767954 -1.57098573446 -0.372711792588 -1.59020549059 -0.372700870037 -1.60746407509 -0.372691221535 -1.62472197413 -0.372682884336 -1.64197966456 -0.372675783933 -1.65923675895 -0.372670017183 -1.67649376392 -0.372665524483 -1.69375035167 -0.372662305832 -1.71100690961 -0.372660376132 -1.72826316953 -0.372659757734 -1.74551951885 -0.372660435736 -1.76277571916 -0.37266241014 -1.7800321877 -0.372665673494 -1.79728856683 -0.372670203447 -1.81454530358 -0.3726760149 -1.83180212975 -0.372683122754 -1.84905946255 -0.372691534459 -1.86631694436 -0.372701220214 -1.88357505203 -0.372712180018 -1.90083351731 -0.372717723251 -1.92005163431 -0.372711747885 -1.93927133084 -0.372700847685 -1.95652991533 -0.372691199183 -1.97378784418 -0.372682847082 -1.99104550481 -0.372675791383 -2.00830259919 -0.372670039535 -2.02555960417 -0.372665524483 -2.04281622172 -0.372662305832 -2.06007277966 -0.372660376132 -2.07732903957 -0.372659757734 -2.0945854187 -0.372660435736 -2.11184155941 -0.37266241014 -2.12909799815 -0.372665651142 -2.14635443688 -0.372670181095 -2.16361123324 -0.3726760149 -2.1808680296 -0.372683122754 -2.19812530279 -0.372691534459 -2.21538281441 -0.372701220214 -2.23264098167 -0.372712180018 -2.24989938736 -0.372717723251 -2.26911747456 -0.372711747885 -2.28833723069 -0.372700847685 -2.30559575558 -0.372691199183 -2.32285368443 -0.372682847082 -2.34011137485 -0.372675791383 -2.35736846924 -0.372670039535 -2.37462544441 -0.372665546834 -2.39188200236 -0.372662328184 -2.4091385603 -0.372660376132 -2.42639482022 -0.372659757734 -2.44365119934 -0.372660435736 -2.46090739965 -0.37266241014 -2.47816389799 -0.372665673494 -2.49542027712 -0.372670203447 -2.51267701387 -0.3726760149 -2.52993386984 -0.372683122754 -2.54719114304 -0.372691534459 -2.56444859505 -0.372701220214 -2.58170676231 -0.37271220237 -2.598965168 -0.372717745602 -2.6181832552 -0.372711747885 -2.63740301132 -0.372700847685 -2.65466153622 -0.372691199183 -2.67191946506 -0.372682847082 -2.6891772151 -0.372675791383 -2.70643436909 -0.372669994831 -2.72369134426 -0.372665502131 -2.7409479022 -0.372662328184 -2.75820446014 -0.372660398484 -2.77546066046 -0.372659780085 -2.79271703958 -0.372660435736 -2.8099732995 -0.37266241014 -2.82722973824 -0.372665651142 -2.84448611736 -0.372670181095 -2.86174291373 -0.3726760149 -2.87899971008 -0.372683122754 -2.89625698328 -0.372691534459 -2.91351443529 -0.372701220214 -2.93077254295 -0.372712180018 -2.94803106785 -0.372717745602 -2.96724915505 -0.372711770237 -2.98646885157 -0.372700847685 -3.00372749567 -0.372691199183 -3.02098542452 -0.372682847082 -3.03824311495 -0.372675769031 -3.05550020933 -0.372670017183 -3.0727571845 -0.372665524483 -3.09001380205 -0.372662305832 -3.10727035999 -0.372660376132 -3.12452661991 -0.372659757734 --3.14140227635 -0.372660435736 --3.12414610386 -0.37266241014 --3.10688972473 -0.372665651142 --3.0896333456 -0.372670181095 --3.07237654924 -0.3726760149 --3.05511975288 -0.372683122754 --3.03786247969 -0.372691534459 --3.02060490847 -0.372701220214 --3.0033468008 -0.372712180018 --2.98608839512 -0.372717745602 --2.96687030792 -0.372711770237 --2.9476506114 -0.372700847685 --2.93039196729 -0.372691199183 --2.91313403845 -0.372682861984 --2.89587634802 -0.372675806284 --2.87861925363 -0.372670017183 --2.86136227846 -0.372665502131 --2.84410566091 -0.372662305832 --2.82684910297 -0.372660376132 --2.80959284305 -0.372659757734 --2.79233646393 -0.372660435736 --2.77508032322 -0.37266241014 --2.75782394409 -0.372665651142 --2.74056750536 -0.372670181095 --2.723310709 -0.3726760149 --2.70605397224 -0.372683122754 --2.68879663944 -0.372691534459 --2.67153906822 -0.372701220214 --2.65428096056 -0.372712180018 --2.63702255487 -0.372717723251 --2.61780446768 -0.372711747885 --2.59858471155 -0.372700847685 --2.58132612705 -0.372691199183 --2.5640681982 -0.372682847082 --2.54681050777 -0.372675791383 --2.52955341339 -0.372670017183 --2.51229643822 -0.372665502131 --2.49503988027 -0.372662305832 --2.47778332233 -0.372660398484 --2.46052706242 -0.372659780085 --2.44327068329 -0.372660435736 --2.42601448298 -0.37266241014 --2.40875798464 -0.372665673494 --2.39150160551 -0.372670203447 --2.37424486875 -0.3726760149 --2.35698801279 -0.372683122754 --2.3397307396 -0.372691534459 --2.32247328758 -0.372701220214 --2.30521512031 -0.37271220237 --2.28795671463 -0.372717745602 --2.26873862743 -0.372711770236 --2.2495188713 -0.372700870037 --2.2322602272 -0.372691199183 --2.21500229836 -0.372682847082 --2.19774472714 -0.372675791383 --2.18048763275 -0.372670039535 --2.16323059797 -0.372665524483 --2.14597404003 -0.372662305832 --2.12871748209 -0.372660398484 --2.11146122217 -0.372659780085 --2.09420490265 -0.372660435736 --2.07694864273 -0.37266241014 --2.05969214439 -0.372665673494 --2.04243576527 -0.372670203447 --2.02517902851 -0.3726760149 --2.00792226195 -0.372683122754 --1.99066492915 -0.372691534459 --1.97340738773 -0.372701220214 --1.95614925027 -0.372712180018 --1.93889084458 -0.372717745602 --1.91967275738 -0.372711770237 --1.90045300126 -0.372700847685 --1.88319441676 -0.372691199183 --1.86593651772 -0.372682847082 --1.84867885709 -0.372675791383 --1.8314217031 -0.372670039535 --1.81416469812 -0.372665524483 --1.79690816999 -0.372662305832 --1.77965161204 -0.372660376132 --1.76239535212 -0.372659757734 --1.745138973 -0.372660435736 --1.72788277269 -0.37266241014 --1.71062633395 -0.372665673494 --1.69336992502 -0.372670203447 --1.67611315846 -0.3726760149 --1.65885636211 -0.372683122754 --1.64159905911 -0.372691534459 --1.62434157729 -0.372701220214 --1.60708343983 -0.37271220237 --1.58982497454 -0.372717767954 --1.57060688734 -0.372711792588 --1.55138719082 -0.372700870037 --1.53412860632 -0.372691221535 --1.51687067747 -0.372682884336 --1.49961301684 -0.372675783933 --1.48235589266 -0.372670017183 --1.46509888768 -0.372665524483 --1.44784229994 -0.372662305832 --1.430585742 -0.372660376132 --1.41332948208 -0.372659757734 --1.39607310295 -0.372660435736 --1.37881693244 -0.37266241014 --1.36156049371 -0.372665673494 --1.34430411458 -0.372670203447 --1.32704734802 -0.3726760149 --1.30979052186 -0.372683122754 --1.29253318906 -0.372691534459 --1.27527567744 -0.372701220214 --1.25801756978 -0.372712180018 --1.24075913429 -0.372717723251 --1.22154104709 -0.372711747885 --1.20232132077 -0.372700847685 --1.18506273627 -0.372691199183 --1.16780480743 -0.372682847082 --1.1505471468 -0.372675791383 --1.13329002261 -0.372670039535 --1.11603301763 -0.372665524483 --1.09877645969 -0.372662305832 --1.08151990175 -0.372660376132 --1.06426367164 -0.372659757734 --1.04700729251 -0.372660435736 --1.02975106239 -0.37266241014 --1.01249459386 -0.372665651142 --0.995238214733 -0.372670181095 --0.977981463075 -0.3726760149 --0.960724651813 -0.372683122754 --0.943467348814 -0.372691534459 --0.926209852099 -0.372701220214 --0.908951714635 -0.372712180018 --0.891693294049 -0.372717723251 --0.872475221754 -0.372711747885 --0.853255495429 -0.372700847685 --0.835996896029 -0.372691199183 --0.81873896718 -0.372682847082 --0.801481306553 -0.372675791383 --0.784224182367 -0.372670039535 --0.766967192292 -0.372665546834 --0.749710604548 -0.372662328184 --0.732454031705 -0.372660376132 --0.71519780159 -0.372659757734 --0.697941437364 -0.372660435736 --0.68068523705 -0.37266241014 --0.663428753614 -0.372665673494 --0.646172374487 -0.372670203447 --0.628915652633 -0.3726760149 --0.611658841371 -0.372683122754 --0.59440150857 -0.372691534459 --0.577143982053 -0.372701220214 --0.559885859489 -0.37271220237 --0.542627438903 -0.372717745602 --0.523409351706 -0.372711747885 --0.504189610481 -0.372700847685 --0.486931025982 -0.372691199183 --0.469673119485 -0.372682847082 --0.452415436506 -0.372675791383 --0.435158312321 -0.372669994831 --0.417901329696 -0.372665502131 --0.400644756854 -0.372662328184 --0.383388191462 -0.372660398484 --0.366131946444 -0.372659780085 --0.348875567317 -0.372660435736 --0.331619367004 -0.37266241014 --0.314362920821 -0.372665651142 --0.297106534243 -0.372670181095 --0.279849775136 -0.3726760149 --0.262592948973 -0.372683122754 --0.245335634798 -0.372691534459 --0.228078141809 -0.372701220214 --0.210820019245 -0.372712180018 --0.193561591208 -0.372717745602 --0.174343515188 -0.390099748969 --0.155117146671 -0.390088364482 --0.137858524919 -0.390078298747 --0.120600573719 -0.390069589019 --0.103342873976 -0.390062205494 --0.0860857311636 -0.390056185424 --0.0688287112862 -0.39005150646 --0.0515721179545 -0.390048183501 --0.0343155255542 -0.390046164393 --0.0170592395589 -0.390045516193 -0.000197171000765 -0.390046231449 -0.0174533987884 -0.390048272908 -0.034709871281 -0.390051655471 -0.051966285333 -0.390056394041 -0.0692230733112 -0.390062466264 -0.0864799171686 -0.39006985724 -0.103737255558 -0.390078634024 -0.1209947858 -0.39008872956 -0.138252936303 -0.39010014385 -0.155511394143 -0.390105962754 -0.174729228019 -0.390099748969 -0.193948708474 -0.390088364482 -0.211207330227 -0.390078298747 -0.228465273976 -0.39006960392 -0.245722968132 -0.390062242747 -0.262980118394 -0.390056185424 -0.280237138271 -0.390051484108 -0.297493733466 -0.390048161149 -0.314750336111 -0.390046142042 -0.332006618381 -0.390045516193 -0.34926301986 -0.390046231449 -0.366519242525 -0.390048272908 -0.38377571851 -0.390051655471 -0.40103213489 -0.390056394041 -0.418288908899 -0.390062466264 -0.435545749962 -0.390069872141 -0.452803105116 -0.390078648925 -0.470060646534 -0.39008872956 -0.487318791449 -0.39010014385 -0.504577241838 -0.39010591805 -0.523795083165 -0.390099704266 -0.54301455617 -0.390088364482 -0.560273170471 -0.390078298747 -0.577531144023 -0.390069589019 -0.594788864255 -0.390062227845 -0.61204598844 -0.390056185424 -0.629302993417 -0.390051484108 -0.646559581161 -0.390048183501 -0.663816183806 -0.390046186745 -0.681072473526 -0.390045538545 -0.698328867554 -0.390046231449 -0.71558509767 -0.390048272908 -0.732841581106 -0.390051655471 -0.750098019838 -0.390056394041 -0.767354801297 -0.390062466264 -0.78461162746 -0.390069872141 -0.801868975162 -0.390078648925 -0.819126486778 -0.39008872956 -0.836384609342 -0.39010014385 -0.853643089533 -0.39010591805 -0.872860953212 -0.390099704266 -0.892080426216 -0.390088364482 -0.909339040518 -0.390078298747 -0.926596969366 -0.390069589019 -0.943854659796 -0.390062227845 -0.961111813784 -0.390056207776 -0.978368833661 -0.39005150646 -0.995625451206 -0.390048161149 -1.01288205385 -0.390046164393 -1.03013831377 -0.390045538545 -1.0473947227 -0.390046231449 -1.06465095282 -0.390048272908 -1.08190739155 -0.390051655471 -1.09916380048 -0.390056394041 -1.11642062664 -0.390062466264 -1.13367748261 -0.390069872141 -1.1509348154 -0.390078648925 -1.16819235682 -0.39008872956 -1.18545052409 -0.39010014385 -1.20270898938 -0.390105940402 -1.22192677856 -0.390099704266 -1.24114623666 -0.39008834213 -1.25840488076 -0.390078298747 -1.27566280961 -0.390069589019 -1.29292052984 -0.390062227845 -1.31017771363 -0.390056207776 -1.32743471861 -0.39005150646 -1.34469127655 -0.390048161149 -1.36194783449 -0.390046142042 -1.37920412421 -0.390045516193 -1.39646056294 -0.390046231449 -1.41371679306 -0.390048272908 -1.4309732616 -0.390051655471 -1.44822970033 -0.390056394041 -1.46548649669 -0.390062466264 -1.48274335265 -0.390069872141 -1.50000068545 -0.390078648925 -1.51725819707 -0.39008872956 -1.53451633454 -0.390100158751 -1.55177477002 -0.390105955303 -1.5709926188 -0.390099748969 -1.5902121365 -0.390088386834 -1.60747075081 -0.390078298747 -1.62472867966 -0.39006960392 -1.64198637009 -0.390062220395 -1.65924349427 -0.390056185424 -1.67650052905 -0.39005150646 -1.6937571466 -0.390048161149 -1.71101373434 -0.390046142042 -1.72827002406 -0.390045516193 -1.74552643299 -0.390046231449 -1.76278263331 -0.390048272908 -1.78003913164 -0.390051655471 -1.79729554057 -0.390056394041 -1.81455230713 -0.390062466264 -1.83180916309 -0.390069872141 -1.84906649589 -0.390078648925 -1.86632403731 -0.39008872956 -1.88358217478 -0.39010014385 -1.90084064007 -0.39010591805 -1.92005851865 -0.390099681914 -1.93927797675 -0.39008834213 -1.95653659105 -0.390078298747 -1.9737945497 -0.390069589019 -1.99105224013 -0.390062227845 -2.00830936432 -0.390056207776 -2.0255663395 -0.39005150646 -2.04282295704 -0.390048161149 -2.06007957459 -0.390046142042 -2.07733589411 -0.390045516193 -2.09459233284 -0.390046231449 -2.11184847355 -0.390048272908 -2.12910491228 -0.390051655471 -2.14636141062 -0.390056394041 -2.16361820698 -0.390062466264 -2.18087500334 -0.390069872141 -2.19813233614 -0.390078648925 -2.21538990736 -0.39008872956 -2.23264807463 -0.39010014385 -2.24990648031 -0.39010591805 -2.26912432909 -0.390099704266 -2.2883438468 -0.390088364482 -2.3056024313 -0.390078298747 -2.32286036014 -0.390069589019 -2.34011805058 -0.390062227845 -2.35737520456 -0.390056207776 -2.37463223934 -0.39005150646 -2.39188885689 -0.390048161149 -2.40914547444 -0.390046142042 -2.42640173435 -0.390045516193 -2.44365811348 -0.390046231449 -2.4609143734 -0.390048272908 -2.47817087174 -0.390051655471 -2.49542725086 -0.390056394041 -2.51268398762 -0.390062466264 -2.52994084358 -0.390069872141 -2.54719823599 -0.390078648925 -2.56445574761 -0.39008872956 -2.58171385527 -0.39010014385 -2.59897232055 -0.39010591805 -2.61819016933 -0.390099681914 -2.63740962744 -0.39008834213 -2.65466821194 -0.390078298747 -2.67192614078 -0.390069589019 -2.68918389082 -0.390062227845 -2.70644110441 -0.390056185424 -2.72369813919 -0.390051484108 -2.74095469713 -0.390048161149 -2.75821125507 -0.390046164393 -2.77546751499 -0.390045538545 -2.79272389412 -0.390046231449 -2.80998015404 -0.390048272908 -2.82723665238 -0.390051655471 -2.8444930315 -0.390056394041 -2.86174988747 -0.390062466264 -2.87900674343 -0.390069872141 -2.89626401663 -0.390078648925 -2.91352152824 -0.39008872956 -2.93077969551 -0.39010014385 -2.9480382204 -0.390105962754 -2.96725606918 -0.390099748969 -2.98647552729 -0.390088364482 -3.00373417139 -0.390078298747 -3.02099215985 -0.390069589019 -3.03824985028 -0.390062205494 -3.05550694466 -0.390056185424 -3.07276391983 -0.39005150646 -3.09002053738 -0.390048183501 -3.10727715492 -0.390046164393 -3.12453347445 -0.390045516193 --3.14139542182 -0.390046231449 --3.12413924933 -0.390048272908 --3.10688281059 -0.390051655471 --3.08962637186 -0.390056394041 --3.0723695159 -0.390062466264 --3.05511265993 -0.39006985724 --3.03785538673 -0.390078634024 --3.02059787512 -0.39008872956 --3.00333970785 -0.39010014385 --2.98608124256 -0.390105962754 --2.96686339379 -0.390099748969 --2.94764393568 -0.390088364482 --2.93038529157 -0.390078298747 --2.91312730313 -0.39006960392 --2.89586961269 -0.390062242747 --2.87861251831 -0.390056185424 --2.86135554313 -0.390051484108 --2.84409892559 -0.390048161149 --2.82684230805 -0.390046142042 --2.80958604812 -0.390045516193 --2.79232960939 -0.390046231449 --2.77507340908 -0.390048272908 --2.75781697035 -0.390051655471 --2.74056047201 -0.390056394041 --2.72330367565 -0.390062466264 --2.70604687929 -0.390069872141 --2.68878954649 -0.390078648925 --2.67153197527 -0.39008872956 --2.65427386761 -0.39010014385 --2.63701546192 -0.39010591805 --2.61779761315 -0.390099704266 --2.59857809544 -0.390088364482 --2.58131945133 -0.390078298747 --2.56406152248 -0.390069589019 --2.54680383206 -0.390062227845 --2.52954667806 -0.390056185424 --2.51228970289 -0.390051484108 --2.49503314495 -0.390048183501 --2.4777764678 -0.390046186745 --2.46052014828 -0.390045538545 --2.44326376915 -0.390046231449 --2.42600750923 -0.390048272908 --2.4087510109 -0.390051655471 --2.39149463177 -0.390056394041 --2.37423789501 -0.390062466264 --2.35698103905 -0.390069872141 --2.33972364664 -0.390078648925 --2.32246613502 -0.39008872956 --2.30520802736 -0.39010014385 --2.28794962168 -0.39010591805 --2.2687317729 -0.390099704266 --2.24951225519 -0.390088364482 --2.23225361109 -0.390078298747 --2.21499568224 -0.390069589019 --2.19773805142 -0.390062227845 --2.18048089743 -0.390056207776 --2.16322380304 -0.39005150646 --2.1459671855 -0.390048161149 --2.12871062755 -0.390046164393 --2.11145436764 -0.390045538545 --2.09419798851 -0.390046231449 --2.0769417286 -0.390048272908 --2.05968523025 -0.390051655471 --2.04242885112 -0.390056394041 --2.02517205477 -0.390062466264 --2.0079151988 -0.390069872141 --1.9906578362 -0.390078648925 --1.97340029478 -0.39008872956 --1.95614218712 -0.39010014385 --1.93888375163 -0.390105940402 --1.91966590285 -0.390099704266 --1.90044638514 -0.39008834213 --1.88318777084 -0.390078298747 --1.865929842 -0.390069589019 --1.84867215157 -0.390062227845 --1.83141499758 -0.390056207776 --1.8141579628 -0.39005150646 --1.79690137506 -0.390048161149 --1.77964478731 -0.390046142042 --1.76238849759 -0.390045516193 --1.74513208866 -0.390046231449 --1.72787588835 -0.390048272908 --1.71061939001 -0.390051655471 --1.69336295128 -0.390056394041 --1.67610618472 -0.390062466264 --1.65884935856 -0.390069872141 --1.64159202576 -0.390078648925 --1.62433448434 -0.39008872956 --1.60707631707 -0.390100158751 --1.58981785178 -0.390105955303 --1.57060000301 -0.390099748969 --1.5513805449 -0.390088386834 --1.5341219306 -0.390078298747 --1.51686397195 -0.39006960392 --1.49960628152 -0.390062220395 --1.48234912753 -0.390056185424 --1.46509212255 -0.39005150646 --1.44783550501 -0.390048161149 --1.43057888746 -0.390046142042 --1.41332259774 -0.390045516193 --1.39606618881 -0.390046231449 --1.3788099885 -0.390048272908 --1.36155354976 -0.390051655471 --1.34429714083 -0.390056394041 --1.32704034448 -0.390062466264 --1.30978348851 -0.390069872141 --1.29252612591 -0.390078648925 --1.27526861429 -0.39008872956 --1.25801047683 -0.39010014385 --1.24075201154 -0.39010591805 --1.22153419256 -0.390099681914 --1.20231470466 -0.39008834213 --1.18505609036 -0.390078298747 --1.1677981615 -0.390069589019 --1.15054047108 -0.390062227845 --1.13328328729 -0.390056207776 --1.11602625251 -0.39005150646 --1.09876969457 -0.390048161149 --1.08151310682 -0.390046142042 --1.0642568171 -0.390045516193 --1.04700040817 -0.390046231449 --1.02974414825 -0.390048272908 --1.01248764992 -0.390051655471 --0.995231255889 -0.390056394041 --0.97797447443 -0.390062466264 --0.960717633366 -0.390069872141 --0.943460300565 -0.390078648925 --0.926202774048 -0.39008872956 --0.908944606781 -0.39010014385 --0.891686141491 -0.39010591805 --0.872468307615 -0.390099704266 --0.85324883461 -0.390088364482 --0.83599023521 -0.390078298747 --0.81873229146 -0.390069589019 --0.801474586129 -0.390062227845 --0.784217447042 -0.390056207776 --0.766960412264 -0.39005150646 --0.749703794718 -0.390048161149 --0.732447206974 -0.390046142042 --0.715190932155 -0.390045516193 --0.697934538126 -0.390046231449 --0.68067830801 -0.390048272908 --0.663421809674 -0.390051655471 --0.646165400744 -0.390056394041 --0.628908634186 -0.390062466264 --0.611651793122 -0.390069872141 --0.594394430518 -0.390078648925 --0.577136904001 -0.39008872956 --0.559878781438 -0.39010014385 --0.542620316148 -0.39010591805 --0.52340246737 -0.390099681914 --0.504182986915 -0.39008834213 --0.486924372613 -0.390078298747 --0.469666436315 -0.390069589019 --0.452408738434 -0.390062227845 --0.435151591897 -0.390056185424 --0.417894557118 -0.390051484108 --0.400637947023 -0.390048161149 --0.38338136673 -0.390046164393 --0.366125099361 -0.390045538545 --0.348868690431 -0.390046231449 --0.331612445414 -0.390048272908 --0.31435597688 -0.390051655471 --0.29709956795 -0.390056394041 --0.27984277159 -0.390062466264 --0.262585923075 -0.390069872141 --0.245328586548 -0.390078648925 --0.228071063757 -0.39008872956 --0.210812915116 -0.39010014385 --0.193554457277 -0.390105962754 --0.174336627126 -0.407469578087 --0.155110552907 -0.407457761466 --0.137851905078 -0.407447293401 --0.120593924075 -0.407438233495 --0.103336198255 -0.407430559397 --0.0860790275037 -0.407424286008 --0.068821977824 -0.407419405878 --0.0515653574839 -0.407415963709 --0.0343087371439 -0.407413884997 --0.0170524229761 -0.407413206995 -0.000204015290365 -0.407413944602 -0.0174602712505 -0.407416068018 -0.0347167719156 -0.40741956979 -0.0519732125104 -0.407424509525 -0.0692300284281 -0.407430812716 -0.0864869020879 -0.407438486815 -0.10374427028 -0.407447628677 -0.121001826599 -0.407458133996 -0.138260003179 -0.407470010221 -0.155518487096 -0.407476037741 -0.174736071378 -0.407469578087 -0.193955302238 -0.407457761466 -0.211213950068 -0.407447293401 -0.22847192362 -0.407438233495 -0.245729647577 -0.407430559397 -0.262986823916 -0.407424286008 -0.280243873596 -0.407419405878 -0.297500498593 -0.407415941358 -0.314757123589 -0.407413862646 -0.332013428211 -0.407413206995 -0.349269859493 -0.407413944602 -0.366526119411 -0.407416068018 -0.383782625198 -0.40741956979 -0.40103906393 -0.407424487173 -0.418295867741 -0.407430812716 -0.435552738607 -0.407438524067 -0.452810116112 -0.407447643578 -0.470067687333 -0.407458133996 -0.4873258695 -0.407470010221 -0.504584349692 -0.407476015389 -0.523801937699 -0.407469555736 -0.543021172285 -0.407457761466 -0.560279816389 -0.407447293401 -0.577537775039 -0.407438233495 -0.594795510173 -0.407430559397 -0.612052708864 -0.407424286008 -0.629309728742 -0.407419405878 -0.646566331387 -0.407415963709 -0.663822978735 -0.407413884997 -0.681079283357 -0.407413206995 -0.698335707188 -0.40741392225 -0.715591967106 -0.407416045666 -0.732848480344 -0.40741956979 -0.750104948878 -0.407424509525 -0.76736176014 -0.407430835068 -0.784618601203 -0.407438524067 -0.801875978708 -0.407447643578 -0.819133549929 -0.407458133996 -0.836391702294 -0.407470010221 -0.853650197387 -0.407476015389 -0.872867792845 -0.407469548285 -0.892087012529 -0.407457754016 -0.909345641732 -0.407447293401 -0.926603600383 -0.407438233495 -0.943861335516 -0.407430559397 -0.961118504405 -0.407424286008 -0.978375554085 -0.407419405878 -0.995632201434 -0.407415941358 -1.01288881898 -0.407413862646 -1.0301451087 -0.407413206995 -1.04740157724 -0.40741392225 -1.06465783715 -0.407416045666 -1.08191430569 -0.40741956979 -1.09917074442 -0.407424509525 -1.11642757058 -0.407430835068 -1.13368445635 -0.407438524067 -1.15094181895 -0.407447643578 -1.16819939017 -0.407458133996 -1.18545758724 -0.407470010221 -1.20271608234 -0.407476015389 -1.22193363309 -0.407469533384 -1.24115285277 -0.407457716763 -1.25841149688 -0.407447271049 -1.27566945553 -0.407438233495 -1.29292720556 -0.407430559397 -1.31018438935 -0.407424286008 -1.32744145393 -0.407419405878 -1.34469807148 -0.407415941358 -1.36195465922 -0.407413862646 -1.37921097875 -0.407413206995 -1.39646741748 -0.40741392225 -1.4137236774 -0.407416045666 -1.43098017573 -0.40741956979 -1.44823661446 -0.407424487173 -1.46549344063 -0.407430812716 -1.48275032639 -0.407438546419 -1.500007689 -0.407447665929 -1.51726523042 -0.407458133996 -1.53452339768 -0.407470025123 -1.55178186297 -0.40747603029 -1.57099947333 -0.407469570637 -1.59021872282 -0.407457776368 -1.60747736692 -0.407447293401 -1.62473532558 -0.407438233495 -1.64199304581 -0.407430559397 -1.6592502296 -0.407424286008 -1.67650726438 -0.407419405878 -1.69376388192 -0.407415941358 -1.71102049947 -0.407413862646 -1.72827681899 -0.407413206995 -1.74553328753 -0.407413944602 -1.76278951764 -0.407416068018 -1.78004601598 -0.40741956979 -1.79730248451 -0.407424487173 -1.81455928087 -0.407430812716 -1.83181613684 -0.407438524067 -1.84907349944 -0.407447643578 -1.86633107066 -0.407458133996 -1.88358926773 -0.407470010221 -1.90084776283 -0.407476015389 -1.92006534338 -0.407469533384 -1.93928456306 -0.407457739115 -1.95654323697 -0.407447293401 -1.97380122542 -0.407438233495 -1.99105891585 -0.407430559397 -2.00831606984 -0.407424286008 -2.02557307482 -0.407419405878 -2.04282969236 -0.407415941358 -2.06008636951 -0.407413862646 -2.07734268903 -0.407413206995 -2.09459912777 -0.407413944602 -2.11185532808 -0.407416068018 -2.12911176681 -0.40741956979 -2.14636826515 -0.407424487173 -2.16362512112 -0.407430812716 -2.18088203669 -0.407438524067 -2.19813942909 -0.407447643578 -2.21539694071 -0.407458133996 -2.23265510798 -0.407470010221 -2.24991357327 -0.407476015389 -2.26913118363 -0.407469555736 -2.28835046291 -0.407457761466 -2.30560910701 -0.407447293401 -2.32286703587 -0.407438233495 -2.3401247263 -0.407430559397 -2.35738193989 -0.407424286008 -2.37463903427 -0.407419405878 -2.39189565182 -0.407415941358 -2.40915226936 -0.407413862646 -2.42640858888 -0.407413206995 -2.44366496801 -0.40741392225 -2.46092122793 -0.407416045666 -2.47817778588 -0.40741956979 -2.495434165 -0.407424487173 -2.51269090176 -0.407430812716 -2.52994781733 -0.407438524067 -2.54720526934 -0.407447643578 -2.56446284056 -0.407458133996 -2.58172094822 -0.407470010221 -2.59897941351 -0.407476015389 -2.61819702387 -0.407469533384 -2.63741624355 -0.407457739115 -2.65467488766 -0.407447293401 -2.67193281651 -0.407438233495 -2.68919050694 -0.407430559397 -2.70644772053 -0.407424286008 -2.72370481491 -0.407419405878 -2.74096143246 -0.407415941358 -2.75821805 -0.407413862646 -2.77547436952 -0.407413206995 -2.79273080826 -0.407413944602 -2.80998706818 -0.407416068018 -2.82724356651 -0.40741956979 -2.84450000525 -0.407424487173 -2.86175686121 -0.407430812716 -2.87901371717 -0.407438524067 -2.89627104997 -0.407447643578 -2.91352862119 -0.407458133996 -2.93078678846 -0.407470010221 -2.94804531336 -0.407476037741 -2.96726292372 -0.407469578087 -2.9864820838 -0.407457761466 -3.0037407279 -0.407447293401 -3.02099877596 -0.407438233495 -3.038256526 -0.407430559397 -3.05551367998 -0.407424286008 -3.07277065515 -0.407419405878 -3.0900272727 -0.407415963709 -3.10728389025 -0.407413884997 -3.12454020977 -0.407413206995 --3.14138862689 -0.407413944602 --3.12413239479 -0.407416068018 --3.10687589645 -0.40741956979 --3.08961939812 -0.407424509525 --3.07236254215 -0.407430812716 --3.05510568619 -0.407438486815 --3.03784835338 -0.407447628677 --3.02059084177 -0.407458133996 --3.0033326745 -0.407470010221 --2.98607414961 -0.407476037741 --2.96685653925 -0.407469578087 --2.94763737917 -0.407457761466 --2.93037873507 -0.407447293401 --2.91312068701 -0.407438233495 --2.89586293697 -0.407430559397 --2.87860578299 -0.407424286008 --2.86134880781 -0.407419405878 --2.84409219027 -0.407415941358 --2.82683551312 -0.407413862646 --2.8095792532 -0.407413206995 --2.79232281446 -0.407413944602 --2.77506655454 -0.407416068018 --2.75781005621 -0.40741956979 --2.74055355787 -0.407424487173 --2.72329676151 -0.407430812716 --2.70603990555 -0.407438524067 --2.68878257275 -0.407447643578 --2.67152500153 -0.407458133996 --2.65426677465 -0.407470010221 --2.63700830936 -0.407476015389 --2.61779075861 -0.407469555736 --2.59857147932 -0.407457761466 --2.58131277561 -0.407447293401 --2.56405484676 -0.407438233495 --2.54679715634 -0.407430559397 --2.52953994274 -0.407424286008 --2.51228296757 -0.407419405878 --2.49502640963 -0.407415963709 --2.47776967287 -0.407413884997 --2.46051335335 -0.407413206995 --2.44325697422 -0.40741392225 --2.42600065469 -0.407416045666 --2.40874409676 -0.40741956979 --2.39148771763 -0.407424509525 --2.37423098087 -0.407430835068 --2.35697412491 -0.407438524067 --2.3397166729 -0.407447643578 --2.32245904207 -0.407458133996 --2.30520093441 -0.407470010221 --2.28794252872 -0.407476015389 --2.26872491836 -0.407469548285 --2.24950563908 -0.407457754016 --2.23224699498 -0.407447293401 --2.21498906612 -0.407438233495 --2.1977313757 -0.407430559397 --2.1804741621 -0.407424286008 --2.16321706772 -0.407419405878 --2.14596045017 -0.407415941358 --2.12870383263 -0.407413862646 --2.1114475131 -0.407413206995 --2.09419107437 -0.40741392225 --2.07693481445 -0.407416045666 --2.05967831611 -0.40741956979 --2.04242187738 -0.407424509525 --2.02516508102 -0.407430835068 --2.00790819526 -0.407438524067 --1.99065080285 -0.407447643578 --1.97339326143 -0.407458133996 --1.95613512397 -0.407470010221 --1.93887665867 -0.407476015389 --1.91965904832 -0.407469533384 --1.90043979883 -0.407457716763 --1.88318115473 -0.407447271049 --1.86592319608 -0.407438233495 --1.84866547584 -0.407430559397 --1.83140829206 -0.407424286008 --1.81415125728 -0.407419405878 --1.79689463973 -0.407415941358 --1.77963799238 -0.407413862646 --1.76238167286 -0.407413206995 --1.74512523413 -0.40741392225 --1.72786900401 -0.407416045666 --1.71061250567 -0.40741956979 --1.69335603714 -0.407424487173 --1.67609921098 -0.407430812716 --1.65884235501 -0.407438546419 --1.64158499241 -0.407447665929 --1.62432742119 -0.407458133996 --1.60706925392 -0.407470025123 --1.58981075883 -0.40747603029 --1.57059317827 -0.407469570637 --1.55137395859 -0.407457776368 --1.53411528468 -0.407447293401 --1.51685729623 -0.407438233495 --1.4995996058 -0.407430559397 --1.48234245181 -0.407424286008 --1.46508538723 -0.407419405878 --1.44782873988 -0.407415941358 --1.43057212234 -0.407413862646 --1.41331580281 -0.407413206995 --1.39605933428 -0.407413944602 --1.37880310416 -0.407416068018 --1.36154663563 -0.40741956979 --1.3442901969 -0.407424487173 --1.32703340053 -0.407430812716 --1.30977651477 -0.407438524067 --1.29251912236 -0.407447643578 --1.27526158095 -0.407458133996 --1.25800338388 -0.407470010221 --1.24074491859 -0.407476015389 --1.22152736783 -0.407469533384 --1.20230808854 -0.407457739115 --1.18504944444 -0.407447293401 --1.16779151559 -0.407438233495 --1.15053379536 -0.407430559397 --1.13327658176 -0.407424286008 --1.11601954699 -0.407419405878 --1.09876295924 -0.407415941358 --1.08150631189 -0.407413862646 --1.06424999237 -0.407413206995 --1.04699355364 -0.407413944602 --1.02973726392 -0.407416068018 --1.01248076558 -0.40741956979 --0.99522435665 -0.407424487173 --0.977967530489 -0.407430812716 --0.960710629821 -0.407438524067 --0.943453267217 -0.407447643578 --0.926195725798 -0.407458133996 --0.908937528729 -0.407470010221 --0.891679033637 -0.407476015389 --0.87246145308 -0.407469555736 --0.853242233396 -0.407457761466 --0.835983604193 -0.407447293401 --0.818725630641 -0.407438233495 --0.801467895508 -0.407430559397 --0.784210726619 -0.407424286008 --0.766953676939 -0.407419405878 --0.749697044492 -0.407415941358 --0.732440426946 -0.407413862646 --0.715184122324 -0.407413206995 --0.697927698493 -0.40741392225 --0.680671438575 -0.407416045666 --0.663414925337 -0.40741956979 --0.646158486605 -0.407424487173 --0.628901675344 -0.407430812716 --0.611644789577 -0.407438524067 --0.594387426972 -0.407447643578 --0.577129885554 -0.407458133996 --0.559871718287 -0.407470010221 --0.542613223195 -0.407476015389 --0.523395612836 -0.407469533384 --0.504176393151 -0.407457739115 --0.486917763948 -0.407447293401 --0.469659782946 -0.407438233495 --0.452402055263 -0.407430559397 --0.435144893825 -0.407424286008 --0.417887829244 -0.407419405878 --0.400631196797 -0.407415941358 --0.383374586701 -0.407413862646 --0.366118274629 -0.407413206995 --0.348861835897 -0.407413944602 --0.331605575979 -0.407416068018 --0.314349077642 -0.40741956979 --0.29709263891 -0.407424487173 --0.279835812748 -0.407430812716 --0.262578934431 -0.407438524067 --0.245321571827 -0.407447643578 --0.228064019233 -0.407458133996 --0.210805840791 -0.407470010221 --0.193547356874 -0.407476037741 --0.174329780042 -0.424822069704 --0.155103992671 -0.42480982095 --0.13784532249 -0.424798995256 --0.120587322861 -0.424789585173 --0.103329565376 -0.4247815907 --0.0860723629594 -0.424775116146 --0.0688152862712 -0.424770072103 --0.0515586361289 -0.424766466022 --0.0343019878491 -0.424764305353 --0.0170456466731 -0.42476362735 -0.00021081860177 -0.42476438731 -0.0174671020359 -0.424766585231 -0.034723631572 -0.424770228565 -0.0519800987095 -0.424775339663 -0.0692369416356 -0.424781881273 -0.086493846029 -0.424789868295 -0.103751244024 -0.424799337983 -0.121008824557 -0.424810230732 -0.138267025352 -0.424822583795 -0.15552553907 -0.42482881248 -0.174742873758 -0.424822069704 -0.193961851299 -0.42480982095 -0.211220525205 -0.424798972904 -0.228478532284 -0.424789577723 -0.245736289769 -0.424781605602 -0.262993492186 -0.424775116146 -0.280250564217 -0.424770072103 -0.297507211566 -0.424766466022 -0.314763866365 -0.424764305353 -0.332020208239 -0.42476362735 -0.349276669323 -0.42476438731 -0.366532951594 -0.424766585231 -0.383789487183 -0.424770228565 -0.401045955717 -0.424775332213 -0.41830278933 -0.424781896174 -0.435559689998 -0.424789890647 -0.452817089856 -0.424799337983 -0.470074683428 -0.424810230732 -0.487332887947 -0.424822583795 -0.50459139049 -0.42482881248 -0.523808732629 -0.424822069704 -0.543027713895 -0.42480982095 -0.5602863729 -0.424798972904 -0.577544361353 -0.424789577723 -0.594802126288 -0.424781627953 -0.612059369683 -0.424775138497 -0.629316419363 -0.424770072103 -0.64657305181 -0.424766466022 -0.663829743862 -0.424764305353 -0.681086048484 -0.42476362735 -0.698342487216 -0.424764364958 -0.715598791838 -0.424766562879 -0.732855319977 -0.424770228565 -0.750111788511 -0.424775339663 -0.767368644476 -0.424781903625 -0.784625545144 -0.424789890647 -0.801882952451 -0.424799337983 -0.819140553474 -0.424810230732 -0.836398735643 -0.424822583795 -0.853657245636 -0.42482881248 -0.872874572873 -0.424822084606 -0.892093539238 -0.424809835851 -0.909352213144 -0.424798972904 -0.926610216499 -0.424789577723 -0.943867981434 -0.424781605602 -0.961125165224 -0.424775093794 -0.978382244706 -0.424770049751 -0.995638936758 -0.424766466022 -1.01289555431 -0.424764305353 -1.03015187383 -0.42476362735 -1.04740837216 -0.424764364958 -1.06466466189 -0.424766562879 -1.08192119003 -0.424770228565 -1.09917762876 -0.424775339663 -1.11643445492 -0.424781903625 -1.13369140029 -0.424789890647 -1.1509487927 -0.424799337983 -1.16820636392 -0.424810230732 -1.18546459079 -0.424822583795 -1.20272311568 -0.42482881248 -1.22194042802 -0.424822069704 -1.24115940928 -0.424809798598 -1.25841808319 -0.424798950553 -1.27567607164 -0.424789577723 -1.29293382168 -0.424781627953 -1.31019100547 -0.424775138497 -1.32744809985 -0.424770072103 -1.344704777 -0.424766466022 -1.36196142435 -0.424764305353 -1.37921777368 -0.42476362735 -1.39647424221 -0.424764364958 -1.41373050213 -0.424766562879 -1.43098703026 -0.424770228565 -1.4482434988 -0.424775317311 -1.46550035477 -0.424781881273 -1.48275727034 -0.4247899279 -1.50001466274 -0.424799375236 -1.51727226377 -0.424810230732 -1.53453046084 -0.424822583795 -1.55178895593 -0.42482881248 -1.57100629806 -0.424822084606 -1.59022524953 -0.424809835851 -1.60748392344 -0.424798972904 -1.62474194169 -0.424789562821 -1.64199969173 -0.424781613052 -1.65925690532 -0.424775116146 -1.6765139699 -0.424770049751 -1.69377061725 -0.424766466022 -1.7110272646 -0.424764305353 -1.72828358412 -0.424763604998 -1.74554005265 -0.424764364958 -1.76279634237 -0.424766585231 -1.78005287051 -0.424770228565 -1.79730936885 -0.424775317311 -1.81456619501 -0.424781881273 -1.83182308078 -0.424789890647 -1.84908050299 -0.424799337983 -1.86633807421 -0.424810230732 -1.88359627128 -0.424822583795 -1.90085479617 -0.42482881248 -1.92007213831 -0.424822069704 -1.93929111957 -0.42480982095 -1.95654979348 -0.424798972904 -1.97380781174 -0.424789577723 -1.99106556177 -0.424781605602 -2.00832277536 -0.424775116146 -2.02557981014 -0.424770072103 -2.04283642769 -0.424766466022 -2.06009316444 -0.424764305353 -2.07734948397 -0.42476362735 -2.0946059227 -0.42476438731 -2.11186218262 -0.424766585231 -2.12911868095 -0.424770228565 -2.14637517929 -0.424775317311 -2.16363203526 -0.424781881273 -2.18088901043 -0.424789890647 -2.19814646244 -0.424799337983 -2.21540397406 -0.424810230732 -2.23266214133 -0.424822561443 -2.24992066622 -0.424828790128 -2.26913803816 -0.424822069704 -2.28835701942 -0.42480982095 -2.30561566353 -0.424798972904 -2.32287365198 -0.424789577723 -2.34013140201 -0.424781605602 -2.35738861561 -0.424775116146 -2.37464570999 -0.424770072103 -2.39190232753 -0.424766466022 -2.40915894508 -0.424764305353 -2.42641532421 -0.42476362735 -2.44367176294 -0.424764364958 -2.46092802286 -0.424766562879 -2.4781845808 -0.424770228565 -2.49544101953 -0.424775332213 -2.51269781589 -0.424781896174 -2.52995479107 -0.424789890647 -2.54721224308 -0.424799337983 -2.5644698143 -0.424810230732 -2.58172798157 -0.424822561443 -2.59898644686 -0.424828790128 -2.6182038188 -0.424822069704 -2.63742285967 -0.42480982095 -2.65468150377 -0.424798972904 -2.67193943262 -0.424789577723 -2.68919718266 -0.424781605602 -2.70645439625 -0.424775116146 -2.72371149063 -0.424770072103 -2.74096816778 -0.424766466022 -2.75822478533 -0.424764305353 -2.77548116445 -0.42476362735 -2.79273766279 -0.42476438731 -2.80999392271 -0.424766585231 -2.82725042105 -0.424770228565 -2.84450691938 -0.424775317311 -2.86176377535 -0.424781881273 -2.87902063131 -0.424789890647 -2.89627802372 -0.424799337983 -2.91353559494 -0.424810230732 -2.93079382182 -0.424822583795 -2.94805234671 -0.42482881248 -2.96726965904 -0.424822069704 -2.98648864031 -0.42480982095 -3.00374734402 -0.424798995256 -3.02100539207 -0.424789585173 -3.03826314211 -0.4247815907 -3.0555203557 -0.424775116146 -3.07277739048 -0.424770072103 -3.09003400803 -0.424766466022 -3.10729068518 -0.424764305353 -3.1245470047 -0.42476362735 --3.14138183196 -0.42476438731 --3.12412554026 -0.424766585231 --3.10686904192 -0.424770228565 --3.08961254358 -0.424775339663 --3.07235568762 -0.424781881273 --3.05509883166 -0.424789868295 --3.03784143925 -0.424799337983 --3.02058386803 -0.424810230732 --3.00332564116 -0.424822583795 --2.98606711626 -0.42482881248 --2.96684980393 -0.424822069704 --2.94763082266 -0.42480982095 --2.93037211895 -0.424798972904 --2.91311407089 -0.424789577723 --2.89585632086 -0.424781605602 --2.87859910727 -0.424775116146 --2.86134207249 -0.424770072103 --2.84408545494 -0.424766466022 --2.82682871819 -0.424764305353 --2.80957239866 -0.42476362735 --2.79231601953 -0.42476438731 --2.77505975962 -0.424766585231 --2.75780320168 -0.424770228565 --2.74054670334 -0.424775332213 --2.72328984737 -0.424781896174 --2.7060329318 -0.424789890647 --2.688775599 -0.424799337983 --2.67151802778 -0.424810230732 --2.65425974131 -0.424822583795 --2.63700121641 -0.42482881248 --2.61778390407 -0.424822069704 --2.59856492281 -0.42480982095 --2.5813062191 -0.424798972904 --2.56404823064 -0.424789577723 --2.54679048061 -0.424781627953 --2.52953326702 -0.424775138497 --2.51227629185 -0.424770072103 --2.4950196743 -0.424766466022 --2.47776293755 -0.424764305353 --2.46050661802 -0.42476362735 --2.44325017929 -0.424764364958 --2.42599385977 -0.424766562879 --2.40873730183 -0.424770228565 --2.3914808631 -0.424775339663 --2.37422406674 -0.424781903625 --2.35696715116 -0.424789890647 --2.33970969915 -0.424799337983 --2.32245206833 -0.424810230732 --2.30519390106 -0.424822583795 --2.28793543577 -0.42482881248 --2.26871806383 -0.424822084606 --2.24949908257 -0.424809835851 --2.23224043846 -0.424798972904 --2.21498245001 -0.424789577723 --2.19772469997 -0.424781605602 --2.18046748638 -0.424775093794 --2.163210392 -0.424770049751 --2.14595371485 -0.424766466022 --2.1286970973 -0.424764305353 --2.11144077778 -0.42476362735 --2.09418427944 -0.424764364958 --2.07692795992 -0.424766562879 --2.05967146158 -0.424770228565 --2.04241496325 -0.424775339663 --2.02515816688 -0.424781903625 --2.00790131092 -0.424789890647 --1.99064385891 -0.424799337983 --1.97338625789 -0.424810230732 --1.95612806082 -0.424822583795 --1.93886956573 -0.42482881248 --1.91965222359 -0.424822069704 --1.90043324232 -0.424809798598 --1.88317456841 -0.424798950553 --1.86591657996 -0.424789577723 --1.84865882993 -0.424781627953 --1.83140161633 -0.424775138497 --1.81414455176 -0.424770072103 --1.79688790441 -0.424766466022 --1.77963122726 -0.424764305353 --1.76237490773 -0.42476362735 --1.745118469 -0.424764364958 --1.72786217928 -0.424766562879 --1.71060565114 -0.424770228565 --1.6933491528 -0.424775317311 --1.67609229684 -0.424781881273 --1.65883541107 -0.4247899279 --1.64157798886 -0.424799375236 --1.62432041765 -0.424810230732 --1.60706225038 -0.424822583795 --1.58980372548 -0.42482881248 --1.57058638334 -0.424822084606 --1.55136740208 -0.424809835851 --1.53410872817 -0.424798972904 --1.51685070991 -0.424789562821 --1.49959295988 -0.424781613052 --1.48233577609 -0.424775116146 --1.46507868171 -0.424770049751 --1.44782203436 -0.424766466022 --1.43056541681 -0.424764305353 --1.41330906749 -0.424763604998 --1.39605256915 -0.424764364958 --1.37879627943 -0.424766585231 --1.36153975129 -0.424770228565 --1.34428331256 -0.424775317311 --1.3270264864 -0.424781881273 --1.30976957083 -0.424789890647 --1.29251217842 -0.424799337983 --1.2752545774 -0.424810230732 --1.25799635053 -0.424822583795 --1.24073785543 -0.42482881248 --1.2215205431 -0.424822069704 --1.20230153203 -0.42480982095 --1.18504285812 -0.424798972904 --1.16778489947 -0.424789577723 --1.15052714944 -0.424781605602 --1.13326993585 -0.424775116146 --1.11601287127 -0.424770072103 --1.09875622392 -0.424766466022 --1.08149954677 -0.424764305353 --1.06424319744 -0.42476362735 --1.04698672891 -0.42476438731 --1.02973043919 -0.424766585231 --1.01247394085 -0.424770228565 --0.995217502117 -0.424775317311 --0.977960631251 -0.424781881273 --0.96070368588 -0.424789890647 --0.943446278572 -0.424799337983 --0.926188707352 -0.424810230732 --0.908930510282 -0.424822561443 --0.891672000289 -0.424828790128 --0.872454658151 -0.424822069704 --0.853235691786 -0.42480982095 --0.835977017879 -0.424798972904 --0.818719014525 -0.424789577723 --0.801461264491 -0.424781605602 --0.784204065799 -0.424775116146 --0.766947001219 -0.424770072103 --0.749690338969 -0.424766466022 --0.73243367672 -0.424764305353 --0.715177342296 -0.42476362735 --0.697920903564 -0.424764364958 --0.680664628744 -0.424766562879 --0.663408085704 -0.424770228565 --0.646151602268 -0.424775332213 --0.628894761205 -0.424781896174 --0.611637875438 -0.424789890647 --0.594380483031 -0.424799337983 --0.577122882008 -0.424810230732 --0.559864670038 -0.424822561443 --0.542606160044 -0.424828790128 --0.523388817906 -0.424822069704 --0.504169844091 -0.42480982095 --0.486911185086 -0.424798972904 --0.469653174281 -0.424789577723 --0.452395416796 -0.424781605602 --0.435138218104 -0.424775116146 --0.417881146073 -0.424770072103 --0.400624483824 -0.424766466022 --0.383367821574 -0.424764305353 --0.36611148715 -0.42476362735 --0.348855033517 -0.42476438731 --0.331598758697 -0.424766585231 --0.314342230558 -0.424770228565 --0.297085754573 -0.424775317311 --0.279828906059 -0.424781881273 --0.262572005391 -0.424789890647 --0.245314601809 -0.424799337983 --0.228057015687 -0.424810230732 --0.210798814893 -0.424822583795 --0.193540304899 -0.42482881248 --0.174322973937 -0.444509960711 --0.155097495765 -0.444497182965 --0.137838795781 -0.444485902786 --0.120580768212 -0.444476120174 --0.103322982788 -0.444467805326 --0.0860657524317 -0.444461084903 --0.0688086515292 -0.444455839694 --0.0515519725159 -0.444452084601 --0.0342952972278 -0.444449827075 --0.0170389276464 -0.444449111819 -0.000217566033825 -0.444449901581 -0.0174738764763 -0.444452188909 -0.0347304334864 -0.444455966353 -0.0519869280979 -0.444461278617 -0.0692437980324 -0.444468133152 -0.0865007322282 -0.444476462901 -0.103758158162 -0.444486305117 -0.121015768498 -0.44449763 -0.13827399537 -0.444510474801 -0.155532538891 -0.444516971708 -0.174749627709 -0.44450994581 -0.19396835193 -0.444497190416 -0.211227055639 -0.444485902786 -0.228485088796 -0.444476135075 -0.245742868632 -0.444467842579 -0.263000100851 -0.444461084903 -0.280257202685 -0.444455817342 -0.297513872385 -0.444452062249 -0.314770556986 -0.444449827075 -0.332026936114 -0.444449111819 -0.34928341955 -0.444449901581 -0.366539724171 -0.444452188909 -0.383796297014 -0.444455988705 -0.40105279535 -0.44446131587 -0.418309651315 -0.444468148053 -0.435566581786 -0.444476462901 -0.452824011445 -0.444486305117 -0.470081619918 -0.444497652352 -0.487339839339 -0.444510497153 -0.504598379135 -0.444516971708 -0.523815482855 -0.44450994581 -0.543034210801 -0.444497168064 -0.560292899608 -0.444485880434 -0.577550932765 -0.444476135075 -0.594808727503 -0.444467864931 -0.612065970898 -0.444461107254 -0.629323065281 -0.444455817342 -0.64657972753 -0.444452062249 -0.663836419582 -0.444449827075 -0.681092768908 -0.444449111819 -0.698349237442 -0.444449901581 -0.715605556965 -0.444452188909 -0.732862114906 -0.444455988705 -0.750118613243 -0.444461300969 -0.76737549901 -0.444468133152 -0.784632429481 -0.444476462901 -0.801889851689 -0.444486305117 -0.819147467613 -0.444497652352 -0.836405694485 -0.444510497153 -0.85366423428 -0.444516971708 -0.872881308198 -0.44450994581 -0.892100036144 -0.444497190416 -0.909358754754 -0.444485902786 -0.926616787911 -0.444476135075 -0.943874567747 -0.444467842579 -0.961131796241 -0.444461062551 -0.978388890624 -0.444455817342 -0.995645582674 -0.444452084601 -1.01290225982 -0.444449827075 -1.03015860915 -0.444449111819 -1.04741510749 -0.444449901581 -1.06467142701 -0.444452188909 -1.08192798496 -0.444455988705 -1.09918448329 -0.444461300969 -1.11644133926 -0.4444681108 -1.13369828463 -0.444476440549 -1.15095570684 -0.444486282766 -1.16821330786 -0.44449763 -1.18547153473 -0.444510497153 -1.20273005962 -0.444516971708 -1.22194716334 -0.44450994581 -1.24116590619 -0.444497190416 -1.2584246099 -0.444485902786 -1.27568262815 -0.444476135075 -1.29294037819 -0.444467864931 -1.31019762158 -0.444461107254 -1.32745474577 -0.444455817342 -1.34471142292 -0.444452062249 -1.36196810007 -0.444449827075 -1.3792244792 -0.444449111819 -1.39648097754 -0.444449901581 -1.41373726725 -0.444452188909 -1.430993855 -0.444455988705 -1.44825035333 -0.444461300969 -1.4655072093 -0.4444681108 -1.48276415467 -0.44447645545 -1.50002157689 -0.444486320019 -1.51727920771 -0.444497652352 -1.53453743458 -0.444510497153 -1.55179595948 -0.444516971708 -1.57101303339 -0.44450994581 -1.59023174643 -0.444497190416 -1.60749045014 -0.444485887885 -1.6247484982 -0.444476082921 -1.64200627804 -0.444467827678 -1.65926349163 -0.444461084902 -1.67652058601 -0.444455817342 -1.69377726316 -0.444452084601 -1.71103397012 -0.444449827075 -1.72829031944 -0.444449089468 -1.74554678798 -0.444449879229 -1.7628031075 -0.444452188909 -1.78005966544 -0.444455988705 -1.79731619358 -0.444461300969 -1.81457307935 -0.4444681108 -1.83182999492 -0.444476440549 -1.84908741713 -0.444486305117 -1.86634501815 -0.44449763 -1.88360324502 -0.444510474801 -1.90086179972 -0.444516971708 -1.92007890343 -0.44450994581 -1.93929761648 -0.444497190416 -1.95655629039 -0.444485902786 -1.97381433844 -0.444476135075 -1.99107214808 -0.444467842579 -2.00832936168 -0.444461084903 -2.02558642626 -0.444455817342 -2.04284310341 -0.444452062249 -2.06009984016 -0.444449827075 -2.07735621929 -0.444449111819 -2.09461271763 -0.444449901581 -2.11186903715 -0.444452188909 -2.12912553549 -0.444455988705 -2.14638203383 -0.444461300969 -2.1636389494 -0.444468133152 -2.18089586496 -0.444476462901 -2.19815331697 -0.444486305117 -2.2154109478 -0.444497652352 -2.23266911507 -0.444510474801 -2.24992763996 -0.444516949356 -2.26914471388 -0.44450994581 -2.28836345672 -0.444497168064 -2.30562216044 -0.444485880434 -2.32288014889 -0.444476135075 -2.34013795853 -0.444467842579 -2.35739523172 -0.444461084903 -2.37465232611 -0.444455817342 -2.39190894365 -0.444452062249 -2.40916562081 -0.444449827075 -2.42642199994 -0.444449111819 -2.44367849827 -0.444449901581 -2.46093481779 -0.444452188909 -2.47819137573 -0.444455988705 -2.49544787407 -0.44446131587 -2.51270473004 -0.444468125701 -2.52996170521 -0.444476440549 -2.54721915722 -0.444486282766 -2.56447672844 -0.44449763 -2.58173489571 -0.444510474801 -2.5989934206 -0.444516949356 -2.61821055412 -0.44450994581 -2.63742935657 -0.444497190416 -2.65468806028 -0.444485902786 -2.67194604873 -0.444476135075 -2.68920379877 -0.444467842579 -2.70646101237 -0.444461084903 -2.72371816635 -0.444455817342 -2.7409749031 -0.444452062249 -2.75823152065 -0.444449827075 -2.77548789978 -0.444449111819 -2.79274439812 -0.444449901581 -2.81000065804 -0.444452188909 -2.82725721598 -0.444455988705 -2.84451371431 -0.444461300969 -2.86177057028 -0.444468133152 -2.87902748585 -0.444476462901 -2.89628493785 -0.444486305117 -2.91354250908 -0.444497652352 -2.93080079556 -0.444510497153 -2.94805938005 -0.444516971708 -2.96727639436 -0.444509960711 -2.98649513721 -0.444497182965 -3.00375390053 -0.444485902786 -3.02101194858 -0.444476120174 -3.03826969862 -0.444467805326 -3.05552691221 -0.444461084903 -3.07278400659 -0.444455839694 -3.09004068374 -0.444452084601 -3.1072974205 -0.444449827075 -3.12455379963 -0.444449111819 --3.14137509664 -0.444449901581 --3.12411880493 -0.444452188909 --3.10686224699 -0.444455966353 --3.08960574865 -0.444461278617 --3.07234889269 -0.444468133152 --3.05509197712 -0.444476462901 --3.03783452511 -0.444486305117 --3.02057695389 -0.44449763 --3.00331866741 -0.444510474801 --2.98606008291 -0.444516971708 --2.9668430686 -0.44450994581 --2.94762432575 -0.444497190416 --2.93036556244 -0.444485902786 --2.91310751438 -0.444476135075 --2.89584976434 -0.444467842579 --2.87859255076 -0.444461084903 --2.86133545637 -0.444455817342 --2.84407877922 -0.444452062249 --2.82682204246 -0.444449827075 --2.80956566333 -0.444449111819 --2.7923092246 -0.444449901581 --2.77505296469 -0.444452188909 --2.75779640675 -0.444455988705 --2.74053984881 -0.44446131587 --2.72328299284 -0.444468148053 --2.70602607727 -0.444476462901 --2.68876868486 -0.444486305117 --2.67151105404 -0.444497652352 --2.65425276756 -0.444510497153 --2.63699424267 -0.444516971708 --2.61777716875 -0.44450994581 --2.59855848551 -0.444497168064 --2.5812997818 -0.444485880434 --2.56404173374 -0.444476135075 --2.5467839241 -0.444467864931 --2.5295266509 -0.444461107254 --2.51226961612 -0.444455817342 --2.49501299858 -0.444452062249 --2.47775626183 -0.444449827075 --2.4604998827 -0.444449111819 --2.44324338436 -0.444449901581 --2.42598706484 -0.444452188909 --2.4087305069 -0.444455988705 --2.39147400856 -0.444461300969 --2.37421715259 -0.444468133152 --2.35696023703 -0.444476462901 --2.33970278501 -0.444486305117 --2.32244515419 -0.444497652352 --2.30518698692 -0.444510497153 --2.28792846203 -0.444516971708 --2.26871132851 -0.44450994581 --2.24949258566 -0.444497190416 --2.23223388195 -0.444485902786 --2.21497583389 -0.444476135075 --2.19771808386 -0.444467842579 --2.18046087027 -0.444461062551 --2.16320377588 -0.444455817342 --2.14594703913 -0.444452084601 --2.12869036197 -0.444449827075 --2.11143410206 -0.444449111819 --2.09417760372 -0.444449901581 --2.07692122459 -0.444452188909 --2.05966466665 -0.444455988705 --2.04240816831 -0.444461300969 --2.02515131235 -0.4444681108 --2.00789439678 -0.444476440549 --1.99063694477 -0.444486282766 --1.97337931395 -0.44449763 --1.95612108708 -0.444510497153 --1.93886256218 -0.444516971708 --1.91964548827 -0.44450994581 --1.90042674541 -0.444497190416 --1.8831680417 -0.444485902786 --1.86591002345 -0.444476135075 --1.84865224361 -0.444467864931 --1.83139503002 -0.444461107254 --1.81413790584 -0.444455817342 --1.79688119888 -0.444452062249 --1.77962452173 -0.444449827075 --1.7623681724 -0.444449111819 --1.74511170387 -0.444449901581 --1.72785538435 -0.444452188909 --1.71059882641 -0.444455988705 --1.69334232807 -0.444461300969 --1.67608544231 -0.4444681108 --1.65882852674 -0.44447645545 --1.64157107473 -0.444486320019 --1.62431347371 -0.444497652352 --1.60705527663 -0.444510497153 --1.58979672193 -0.444516971708 --1.57057961822 -0.44450994581 --1.55136090517 -0.444497190416 --1.53410223126 -0.444485887885 --1.51684418321 -0.444476082921 --1.49958637357 -0.444467827678 --1.48232913017 -0.444461084902 --1.46507203579 -0.444455817342 --1.44781538844 -0.444452084601 --1.4305587411 -0.444449827075 --1.41330236197 -0.444449089468 --1.39604583383 -0.444449879229 --1.3787895143 -0.444452188909 --1.36153295636 -0.444455988705 --1.34427648783 -0.444461300969 --1.32701963186 -0.4444681108 --1.30976268649 -0.444476440549 --1.29250526428 -0.444486305117 --1.27524763346 -0.44449763 --1.25798940659 -0.444510474801 --1.24073088169 -0.444516971708 --1.22151380778 -0.44450994581 --1.20229506492 -0.444497190416 --1.18503633141 -0.444485902786 --1.16777831316 -0.444476135075 --1.15052056312 -0.444467842579 --1.13326334953 -0.444461084903 --1.11600622535 -0.444455817342 --1.0987495184 -0.444452062249 --1.08149284125 -0.444449827075 --1.06423646212 -0.444449111819 --1.04697996378 -0.444449901581 --1.02972367406 -0.444452188909 --1.01246711612 -0.444455988705 --0.995210632682 -0.444461300969 --0.977953776717 -0.444468133152 --0.960696846247 -0.444476462901 --0.943439394236 -0.444486305117 --0.926181763411 -0.444497652352 --0.908923566341 -0.444510474801 --0.891665026545 -0.444516949356 --0.872447937727 -0.44450994581 --0.853229209781 -0.444497168064 --0.83597047627 -0.444485880434 --0.818712458014 -0.444476135075 --0.801454678178 -0.444467842579 --0.784197449684 -0.444461084903 --0.766940355301 -0.444455817342 --0.74968367815 -0.444452062249 --0.732426986098 -0.444449827075 --0.715170621872 -0.444449111819 --0.697914168239 -0.444449901581 --0.680657848716 -0.444452188909 --0.663401275873 -0.444455988705 --0.646144777536 -0.44446131587 --0.62888790667 -0.444468125701 --0.611630991101 -0.444476440549 --0.594373568892 -0.444486282766 --0.577115938067 -0.44449763 --0.559857711196 -0.444510474801 --0.5425991714 -0.444516949356 --0.523382082581 -0.44450994581 --0.504163354635 -0.444497190416 --0.486904650926 -0.444485902786 --0.469646625221 -0.444476135075 --0.452388845384 -0.444467842579 --0.435131601989 -0.444461084903 --0.417874507606 -0.444455817342 --0.400617830456 -0.444452062249 --0.383361130953 -0.444449827075 --0.366104774177 -0.444449111819 --0.348848298192 -0.444449901581 --0.331591978669 -0.444452188909 --0.314335420728 -0.444455988705 --0.297078922391 -0.444461300969 --0.279822051525 -0.444468133152 --0.262565128505 -0.444476462901 --0.245307695121 -0.444486305117 --0.228050079196 -0.444497652352 --0.210791852325 -0.444510497153 --0.193533316255 -0.444516971708 --0.174316227436 -0.46416169405 --0.155091173947 -0.464148424566 --0.137832444161 -0.464136682451 --0.120574388653 -0.464126527309 --0.103316580877 -0.464117929339 --0.0860593244433 -0.464110948146 --0.0688021965325 -0.464105479419 --0.0515454914421 -0.464101575315 --0.0342887877487 -0.464099228382 --0.0170323899947 -0.464098483324 -0.000224130926655 -0.464099295437 -0.0174804681447 -0.464101649821 -0.0347370505333 -0.464105576277 -0.0519935721531 -0.464111119508 -0.0692504700273 -0.464118257165 -0.0865074321628 -0.46412691474 -0.103764886036 -0.464137129485 -0.12102252245 -0.464148893952 -0.138280779124 -0.464162223041 -0.155539348721 -0.464168958366 -0.174756191671 -0.464161679149 -0.193974677473 -0.464148432016 -0.211233410984 -0.464136704802 -0.228491462767 -0.464126549661 -0.245749264956 -0.464117951691 -0.263006523252 -0.464110925794 -0.280263654888 -0.464105434716 -0.297520361841 -0.464101552964 -0.314777068793 -0.464099228382 -0.332033462823 -0.464098483324 -0.34928997606 -0.464099317789 -0.366546317935 -0.464101694525 -0.383802913129 -0.464105643332 -0.401059433818 -0.464111164212 -0.418316319585 -0.464118257165 -0.435573279858 -0.464126899839 -0.452830731869 -0.464137114584 -0.470088362694 -0.464148901403 -0.487346611917 -0.464162230492 -0.504605188966 -0.464168958366 -0.523822039366 -0.464161679149 -0.543040513992 -0.464148409665 -0.560299247503 -0.464136682451 -0.577557325363 -0.464126549661 -0.594815135002 -0.464117951691 -0.612072393298 -0.464110948146 -0.629329532385 -0.464105457068 -0.646586209535 -0.464101552964 -0.663842901588 -0.464099228382 -0.681099310517 -0.464098483324 -0.698355838656 -0.464099295437 -0.71561217308 -0.464101672173 -0.732868745923 -0.464105643332 -0.750125274062 -0.464111164212 -0.76738217473 -0.464118257165 -0.784639120102 -0.46412691474 -0.801896572113 -0.464137129485 -0.819154217839 -0.464148901403 -0.836412474513 -0.464162230492 -0.85367102921 -0.464168958366 -0.87288787961 -0.464161679149 -0.892106369138 -0.464148432016 -0.909365102649 -0.464136704802 -0.926623165607 -0.464126549661 -0.943880975246 -0.464117951691 -0.961138248443 -0.464110925794 -0.978395342827 -0.464105457068 -0.995652049778 -0.464101575315 -1.01290878653 -0.464099228382 -1.03016516566 -0.464098483324 -1.0474216938 -0.464099317789 -1.06467801333 -0.464101694525 -1.08193457127 -0.46410562098 -1.09919112921 -0.46411114186 -1.11644801498 -0.464118234813 -1.13370496035 -0.464126892388 -1.15096244216 -0.464137107133 -1.16822007298 -0.464148879051 -1.18547829985 -0.464162230492 -1.20273685455 -0.464168958366 -1.22195371986 -0.464161679149 -1.24117222428 -0.464148432016 -1.25843095779 -0.464136704802 -1.27568900585 -0.464126549661 -1.29294678569 -0.46411792934 -1.31020405889 -0.464110903442 -1.32746121287 -0.464105434716 -1.34471791983 -0.464101552964 -1.36197462678 -0.464099228382 -1.37923100591 -0.464098483324 -1.39648750425 -0.464099317789 -1.41374385357 -0.464101694525 -1.43100047111 -0.464105643332 -1.44825699925 -0.464111164212 -1.46551388502 -0.464118234813 -1.4827708602 -0.464126892388 -1.50002831221 -0.464137129485 -1.51728594303 -0.464148916304 -1.53454419971 -0.464162245393 -1.5518027544 -0.464168958366 -1.5710195899 -0.464161679149 -1.59023809433 -0.464148432016 -1.60749682784 -0.464136689901 -1.6247548759 -0.464126512408 -1.64201268554 -0.464117929339 -1.65926992893 -0.464110948146 -1.67652705312 -0.464105479419 -1.69378376007 -0.464101575315 -1.71104046702 -0.464099228382 -1.72829684615 -0.464098460972 -1.74555337429 -0.464099273086 -1.76280972361 -0.464101672173 -1.78006631136 -0.46410562098 -1.7973228395 -0.46411114186 -1.81457972527 -0.464118234813 -1.83183667064 -0.464126892388 -1.84909412265 -0.464137129485 -1.86635178328 -0.464148879051 -1.88361003995 -0.46416220814 -1.90086859465 -0.464168958366 -1.92008545995 -0.464161679149 -1.93930393457 -0.464148432016 -1.95656263828 -0.464136704802 -1.97382068634 -0.464126549661 -1.99107849598 -0.464117951691 -2.00833573938 -0.464110925794 -2.02559286356 -0.464105434716 -2.04284960031 -0.464101552964 -2.06010633707 -0.464099228382 -2.0773627162 -0.464098460972 -2.09461921454 -0.464099273086 -2.11187559366 -0.464101672173 -2.1291321516 -0.464105643332 -2.14638864994 -0.464111164212 -2.16364556551 -0.464118257165 -2.18090248108 -0.46412691474 -2.19815999269 -0.464137129485 -2.21541768312 -0.464148901403 -2.23267590999 -0.464162230492 -2.24993443489 -0.464168958366 -2.26915121078 -0.464161679149 -2.28836977482 -0.464148409665 -2.30562853813 -0.464136682451 -2.32288652659 -0.464126564562 -2.34014433622 -0.464117944241 -2.35740166903 -0.464110903442 -2.37465876341 -0.464105434716 -2.39191538096 -0.464101552964 -2.40917211771 -0.464099228382 -2.42642849684 -0.464098483324 -2.44368505478 -0.464099317789 -2.4609414339 -0.464101694525 -2.47819799185 -0.464105643332 -2.49545454979 -0.464111164212 -2.51271146536 -0.464118234813 -2.52996844053 -0.464126892388 -2.54722589254 -0.464137107133 -2.56448346376 -0.464148879051 -2.58174169063 -0.464162230492 -2.59900027514 -0.464168958366 -2.61821711063 -0.464161679149 -2.63743561506 -0.464148432016 -2.65469437838 -0.464136704802 -2.67195242643 -0.464126549661 -2.68921017647 -0.46411792934 -2.70646744967 -0.464110903442 -2.72372466326 -0.464105434716 -2.74098140001 -0.464101552964 -2.75823801756 -0.464099228382 -2.77549439669 -0.464098483324 -2.79275095463 -0.464099317789 -2.81000727415 -0.464101694525 -2.8272638917 -0.464105643332 -2.84452039004 -0.464111164212 -2.861777246 -0.464118257165 -2.87903422117 -0.464126899839 -2.89629167318 -0.464137114584 -2.91354930401 -0.464148901403 -2.93080759049 -0.464162230492 -2.94806617498 -0.464168958366 -2.96728301048 -0.46416169405 -2.98650145531 -0.464148424566 -3.00376021862 -0.464136682451 -3.02101832628 -0.464126527309 -3.03827613592 -0.464117929339 -3.05553334951 -0.464110948146 -3.0727904439 -0.464105479419 -3.09004718065 -0.464101575315 -3.10730391741 -0.464099228382 -3.12456029653 -0.464098483324 --3.14136854013 -0.464099295437 --3.12411218882 -0.464101649821 --3.10685557127 -0.464105576277 --3.08959907293 -0.464111119508 --3.07234221697 -0.464118257165 --3.0550852418 -0.46412691474 --3.03782778978 -0.464137129485 --3.02057015896 -0.464148893952 --3.00331187248 -0.464162223041 --2.98605328798 -0.464168958366 --2.96683645248 -0.464161679149 --2.94761794805 -0.464148432016 --2.93035918474 -0.464136704802 --2.91310113668 -0.464126549661 --2.89584332704 -0.464117951691 --2.87858611345 -0.464110925794 --2.86132901907 -0.464105434716 --2.84407228231 -0.464101552964 --2.82681554556 -0.464099228382 --2.80955916643 -0.464098483324 --2.79230266809 -0.464099317789 --2.77504634857 -0.464101694525 --2.75778979063 -0.464105643332 --2.74053323269 -0.464111164212 --2.72327637672 -0.464118257165 --2.70601946115 -0.464126899839 --2.68876200914 -0.464137114584 --2.67150431871 -0.464148901403 --2.65424603224 -0.464162230492 --2.63698750735 -0.464168958366 --2.61777067185 -0.464161679149 --2.59855216742 -0.464148409665 --2.5812934041 -0.464136682451 --2.56403535604 -0.464126549661 --2.5467775464 -0.464117951691 --2.5295202136 -0.464110948146 --2.51226311922 -0.464105457068 --2.49500650168 -0.464101552964 --2.47774976492 -0.464099228382 --2.46049332619 -0.464098483324 --2.44323682785 -0.464099295437 --2.42598050833 -0.464101672173 --2.40872389078 -0.464105643332 --2.39146733284 -0.464111164212 --2.37421041727 -0.464118257165 --2.3569535017 -0.46412691474 --2.33969604969 -0.464137129485 --2.32243841887 -0.464148901403 --2.30518019199 -0.464162230492 --2.28792160749 -0.464168958366 --2.268704772 -0.464161679149 --2.24948626757 -0.464148432016 --2.23222750425 -0.464136704802 --2.21496945619 -0.464126549661 --2.19771170616 -0.464117951691 --2.18045443296 -0.464110925794 --2.16319733858 -0.464105457068 --2.14594060183 -0.464101575315 --2.12868386507 -0.464099228382 --2.11142754555 -0.464098483324 --2.09417098761 -0.464099317789 --2.07691460848 -0.464101694525 --2.05965805054 -0.46410562098 --2.0424015522 -0.46411114186 --2.02514463663 -0.464118234813 --2.00788766146 -0.464126892388 --1.99063020945 -0.464137107133 --1.97337257862 -0.464148879051 --1.95611432195 -0.464162230492 --1.93885576725 -0.464168958366 --1.91963893175 -0.464161679149 --1.90042042732 -0.464148432016 --1.88316169381 -0.464136704802 --1.86590364576 -0.464126549661 --1.84864583612 -0.46411792934 --1.83138859272 -0.464110903442 --1.81413143873 -0.464105434716 --1.79687470198 -0.464101552964 --1.77961802482 -0.464099228382 --1.7623616457 -0.464098483324 --1.74510511756 -0.464099317789 --1.72784876823 -0.464101694525 --1.71059218049 -0.464105643332 --1.69333568215 -0.464111164212 --1.67607876659 -0.464118234813 --1.65882182121 -0.464126892388 --1.6415643692 -0.464137129485 --1.62430670858 -0.464148916304 --1.6070484519 -0.464162245393 --1.5897898674 -0.464168958366 --1.5705730319 -0.464161679149 --1.55135458708 -0.464148432016 --1.53409588337 -0.464136689901 --1.51683780551 -0.464126512408 --1.49957996607 -0.464117929339 --1.48232269287 -0.464110948146 --1.46506559849 -0.464105479419 --1.44780892134 -0.464101575315 --1.43055221439 -0.464099228382 --1.41329580546 -0.464098460972 --1.39603924751 -0.464099273086 --1.37878292799 -0.464101672173 --1.36152637005 -0.46410562098 --1.34426984191 -0.46411114186 --1.32701295614 -0.464118234813 --1.30975598097 -0.464126892388 --1.29249852896 -0.464137129485 --1.27524089813 -0.464148879051 --1.25798264146 -0.46416220814 --1.24072408676 -0.464168958366 --1.22150725126 -0.464161679149 --1.20228874683 -0.464148432016 --1.18502998352 -0.464136704802 --1.16777193546 -0.464126549661 --1.15051415563 -0.464117951691 --1.13325691223 -0.464110925794 --1.11599975824 -0.464105434716 --1.09874302149 -0.464101552964 --1.08148631453 -0.464099228382 --1.06422990561 -0.464098460972 --1.04697340727 -0.464099273086 --1.02971708774 -0.464101672173 --1.0124604702 -0.464105643332 --0.995203956963 -0.464111164212 --0.977947100997 -0.464118257165 --0.960690170527 -0.46412691474 --0.943432673812 -0.464137129485 --0.926174998283 -0.464148901403 --0.908916771412 -0.464162230492 --0.891658216715 -0.464168958366 --0.872441381216 -0.464161679149 --0.853222891688 -0.464148409665 --0.835964143276 -0.464136682451 --0.818706080317 -0.464126564562 --0.801448255777 -0.464117944241 --0.784190997482 -0.464110903442 --0.766933888197 -0.464105434716 --0.749677196145 -0.464101552964 --0.732420489192 -0.464099228382 --0.715164110064 -0.464098483324 --0.697907596827 -0.464099317789 --0.6806512326 -0.464101694525 --0.663394659758 -0.464105643332 --0.64613814652 -0.464111164212 --0.62888123095 -0.464118234813 --0.611624255777 -0.464126892388 --0.594366818666 -0.464137107133 --0.577109187841 -0.464148879051 --0.559850931167 -0.464162230492 --0.542592361569 -0.464168958366 --0.523375511169 -0.464161679149 --0.504157021642 -0.464148432016 --0.486898288131 -0.464136704802 --0.469640247524 -0.464126549661 --0.452382437884 -0.46411792934 --0.435125172138 -0.464110903442 --0.417868047953 -0.464105434716 --0.400611348451 -0.464101552964 --0.383354641497 -0.464099228382 --0.366098247469 -0.464098483324 --0.34884172678 -0.464099317789 --0.331585377455 -0.464101694525 --0.314328789711 -0.464105643332 --0.297072276473 -0.464111164212 --0.279815390706 -0.464118257165 --0.262558422983 -0.464126899839 --0.245300963521 -0.464137114584 --0.228043328971 -0.464148901403 --0.210785068571 -0.464162230492 --0.193526506424 -0.464168958366 --0.174309663475 -0.481423720718 --0.155085012317 -0.481410048902 --0.137826256454 -0.481397941708 --0.120568176731 -0.481387466192 --0.103310342878 -0.4813785851 --0.0860530603677 -0.481371350586 --0.0687959035858 -0.481365703047 --0.0515391724184 -0.481361687184 --0.0342824435793 -0.481359288097 --0.0170260209125 -0.481358513236 -0.000230525853113 -0.481359325349 -0.017486889381 -0.481361754239 -0.0347434980795 -0.481365837157 -0.0520000467077 -0.481371581554 -0.0692569706589 -0.481378912926 -0.0865139570087 -0.48138782382 -0.103771436959 -0.481398373842 -0.12102909945 -0.48141053319 -0.138287387789 -0.481424301863 -0.155545983464 -0.481431230903 -0.174762584269 -0.481423720718 -0.193980839104 -0.481410034001 -0.211239598691 -0.481397926807 -0.228497672826 -0.481387451291 -0.245755501092 -0.481378570199 -0.263012781739 -0.481371328235 -0.280269935727 -0.481365680695 -0.297526679933 -0.481361687184 -0.314783416688 -0.481359273195 -0.332039825618 -0.481358498335 -0.349296368659 -0.481359362602 -0.366552740335 -0.481361828745 -0.383809357882 -0.481365896761 -0.401065900922 -0.481371581554 -0.418322816491 -0.481378905475 -0.435579806566 -0.481387846172 -0.45283728838 -0.481398381293 -0.470094949007 -0.481410518289 -0.487353228033 -0.481424286962 -0.504611834884 -0.481431230903 -0.523828431964 -0.481423720718 -0.543046668172 -0.481410048902 -0.560305431485 -0.481397941708 -0.577563524246 -0.481387451291 -0.594821363687 -0.481378570199 -0.612078651786 -0.481371350586 -0.629335820675 -0.481365703047 -0.646592527628 -0.481361687184 -0.663849234581 -0.481359273195 -0.681105673313 -0.481358498335 -0.698362246156 -0.481359325349 -0.715618610382 -0.481361791492 -0.732875183224 -0.481365896761 -0.750131741166 -0.481371581554 -0.767388671637 -0.481378905475 -0.784645646811 -0.481387838721 -0.801903128624 -0.481398373842 -0.819160804153 -0.481410518289 -0.83641910553 -0.481424286962 -0.853677675128 -0.481431230903 -0.87289428711 -0.481423705816 -0.892112538219 -0.481410034001 -0.90937128663 -0.481397941708 -0.926629379392 -0.481387466192 -0.943887218833 -0.4813785851 -0.961144506931 -0.481371328235 -0.978401646018 -0.481365680695 -0.995658382772 -0.481361687184 -1.01291513443 -0.481359273195 -1.03017154336 -0.481358498335 -1.0474281013 -0.481359347701 -1.06468445062 -0.481361813844 -1.08194100857 -0.48136587441 -1.09919756651 -0.481371559203 -1.11645451188 -0.481378890574 -1.13371151686 -0.48138782382 -1.15096899867 -0.481398373842 -1.1682266295 -0.481410518289 -1.18548491597 -0.481424286962 -1.20274353027 -0.481431230903 -1.22196012735 -0.481423720718 -1.24117839336 -0.481410048902 -1.25843715668 -0.481397941708 -1.27569520474 -0.481387451291 -1.29295304418 -0.481378547847 -1.31021034717 -0.481371305883 -1.32746750116 -0.481365680695 -1.34472423792 -0.481361687184 -1.36198097467 -0.481359273195 -1.37923738361 -0.481358498335 -1.39649391174 -0.481359362602 -1.41375029087 -0.481361828745 -1.43100690841 -0.481365896761 -1.44826346636 -0.481371581554 -1.46552038193 -0.481378905475 -1.4827773571 -0.481387838721 -1.50003483891 -0.481398373842 -1.51729249954 -0.481410548091 -1.53455078602 -0.481424316764 -1.55180937052 -0.481431230903 -1.5710259676 -0.481423720718 -1.59024423361 -0.481410034001 -1.60750302672 -0.481397926807 -1.62476110459 -0.481387466192 -1.64201891422 -0.4813785851 -1.65927618742 -0.481371365487 -1.67653334141 -0.481365717948 -1.69379007816 -0.481361687184 -1.71104681492 -0.481359273195 -1.72830322385 -0.481358475983 -1.74555978179 -0.481359317899 -1.76281616092 -0.481361806393 -1.78007277846 -0.48136587441 -1.7973293066 -0.481371559203 -1.81458619237 -0.481378905475 -1.83184319735 -0.481387838721 -1.84910070896 -0.481398373842 -1.86635839939 -0.481410518289 -1.88361665607 -0.481424286962 -1.90087521076 -0.481431230903 -1.92009183765 -0.481423720718 -1.93931010366 -0.481410048902 -1.95656883717 -0.481397941708 -1.97382688523 -0.481387466192 -1.99108472467 -0.4813785851 -2.00834202766 -0.481371328235 -2.02559918165 -0.481365680695 -2.04285591841 -0.481361687184 -2.06011265516 -0.481359273195 -2.07736903429 -0.481358475983 -2.09462559223 -0.481359317899 -2.11188203096 -0.481361806393 -2.12913864851 -0.481365896761 -2.14639514685 -0.481371581554 -2.16365200281 -0.481378905475 -2.18090897799 -0.481387861073 -2.19816654921 -0.481398396194 -2.21542423963 -0.481410518289 -2.23268252611 -0.481424286962 -2.24994111061 -0.481431230903 -2.26915764809 -0.481423720718 -2.2883759141 -0.481410048902 -2.30563467741 -0.481397941708 -2.32289278507 -0.481387481094 -2.34015065431 -0.481378577649 -2.35740792751 -0.481371305883 -2.3746650219 -0.481365680695 -2.39192169905 -0.481361687184 -2.40917849541 -0.481359273195 -2.42643493414 -0.481358498335 -2.44369149208 -0.481359362602 -2.46094787121 -0.481361828745 -2.47820442915 -0.481365896761 -2.49546098709 -0.481371581554 -2.51271796226 -0.481378905475 -2.52997499705 -0.481387838721 -2.54723244906 -0.481398373842 -2.56449002028 -0.481410518289 -2.58174830675 -0.481424286962 -2.59900695086 -0.481431230903 -2.61822354794 -0.481423705816 -2.63744175434 -0.481410034001 -2.65470051766 -0.481397941708 -2.67195862531 -0.481387451291 -2.68921643495 -0.481378547847 -2.70647376776 -0.481371305883 -2.72373098135 -0.481365680695 -2.74098771811 -0.481361687184 -2.75824439526 -0.481359273195 -2.77550077438 -0.481358498335 -2.79275733232 -0.481359347701 -2.81001371145 -0.481361813844 -2.827270329 -0.481365896761 -2.84452688694 -0.481371581554 -2.86178380251 -0.481378905475 -2.87904077769 -0.48138782382 -2.8962982297 -0.481398358941 -2.91355592012 -0.481410518289 -2.9308142066 -0.481424286962 -2.9480727315 -0.481431230903 -2.96728938818 -0.481423720718 -2.98650765419 -0.481410048902 -3.0037664175 -0.481397941708 -3.02102452516 -0.481387466192 -3.0382823348 -0.4813785851 -3.055539608 -0.481371350586 -3.07279676199 -0.481365703047 -3.09005349875 -0.481361687184 -3.1073102355 -0.481359288097 -3.12456661463 -0.481358513236 --3.14136216243 -0.481359325349 --3.12410575152 -0.481361754239 --3.10684913397 -0.481365837157 --3.08959257603 -0.481371581554 --3.07233566046 -0.481378912926 --3.05507868528 -0.48138782382 --3.03782123327 -0.481398373842 --3.02056354285 -0.48141053319 --3.00330525637 -0.481424301863 --2.98604673147 -0.481431230903 --2.96683007479 -0.481423720718 --2.94761174917 -0.481410034001 --2.93035298586 -0.481397926807 --2.9130949378 -0.481387451291 --2.89583712816 -0.481378570199 --2.87857985496 -0.481371328235 --2.86132270098 -0.481365680695 --2.84406596422 -0.481361687184 --2.82680922747 -0.481359273195 --2.80955284834 -0.481358498335 --2.79229635 -0.481359362602 --2.77503997087 -0.481361828745 --2.75778329373 -0.481365896761 --2.74052673578 -0.481371581554 --2.72326987982 -0.481378905475 --2.70601290465 -0.481387846172 --2.68875539303 -0.481398381293 --2.6714977026 -0.481410518289 --2.65423941612 -0.481424286962 --2.63698083162 -0.481431230903 --2.61776423454 -0.481423720718 --2.59854596853 -0.481410048902 --2.58128720522 -0.481397941708 --2.56402915716 -0.481387451291 --2.54677128791 -0.481378570199 --2.52951395512 -0.481371350586 --2.51225686073 -0.481365703047 --2.49500018358 -0.481361687184 --2.47774344683 -0.481359273195 --2.46048694849 -0.481358498335 --2.44323039055 -0.481359325349 --2.42597407103 -0.481361791492 --2.40871745348 -0.481365896761 --2.39146089554 -0.481371581554 --2.37420397997 -0.481378905475 --2.3569470048 -0.481387838721 --2.33968949318 -0.481398373842 --2.32243186236 -0.481410518289 --2.30517357588 -0.481424286962 --2.28791493177 -0.481431230903 --2.26869833469 -0.481423705816 --2.24948012829 -0.481410034001 --2.23222136498 -0.481397941708 --2.21496325731 -0.481387466192 --2.19770544768 -0.4813785851 --2.18044817448 -0.481371328235 --2.16319102049 -0.481365680695 --2.14593428373 -0.481361687184 --2.12867754698 -0.481359273195 --2.11142110825 -0.481358498335 --2.09416455031 -0.481359347701 --2.07690817118 -0.481361813844 --2.05965161324 -0.48136587441 --2.0423950553 -0.481371559203 --2.02513808012 -0.481378890574 --2.00788113475 -0.48138782382 --1.99062368274 -0.481398373842 --1.97336602211 -0.481410518289 --1.95610770583 -0.481424286962 --1.93884912133 -0.481431230903 --1.91963252425 -0.481423720718 --1.90041425824 -0.481410048902 --1.88315549493 -0.481397941708 --1.86589741707 -0.481387451291 --1.84863960743 -0.481378547847 --1.83138230443 -0.481371305883 --1.81412512064 -0.481365680695 --1.79686841368 -0.481361687184 --1.77961170673 -0.481359273195 --1.7623552978 -0.481358498335 --1.74509873986 -0.481359362602 --1.72784236073 -0.481361828745 --1.71058574319 -0.481365896761 --1.69332918525 -0.481371581554 --1.67607226968 -0.481378905475 --1.65881529451 -0.481387838721 --1.64155781269 -0.481398373842 --1.62430012226 -0.481410548091 --1.60704183579 -0.481424316764 --1.58978325129 -0.481431230903 --1.5705666542 -0.481423720718 --1.55134841799 -0.481410034001 --1.53408968449 -0.481397926807 --1.51683157683 -0.481387466192 --1.49957370758 -0.4813785851 --1.48231643438 -0.481371365487 --1.4650593102 -0.481365717948 --1.44780260324 -0.481361687184 --1.43054586649 -0.481359273195 --1.41328942776 -0.481358475983 --1.39603286982 -0.481359317899 --1.37877652049 -0.481361806393 --1.36151993275 -0.48136587441 --1.3442633748 -0.481371559203 --1.32700642943 -0.481378905475 --1.30974945426 -0.481387838721 --1.29249197245 -0.481398373842 --1.27523431182 -0.481410518289 --1.25797605514 -0.481424286962 --1.24071744084 -0.481431230903 --1.22150081396 -0.481423720718 --1.20228257775 -0.481410048902 --1.18502381444 -0.481397941708 --1.16776573658 -0.481387466192 --1.15050789714 -0.4813785851 --1.13325059414 -0.481371328235 --1.11599344015 -0.481365680695 --1.09873670339 -0.481361687184 --1.08147996664 -0.481359273195 --1.06422352791 -0.481358475983 --1.04696699977 -0.481359317899 --1.02971065044 -0.481361806393 --1.0124540329 -0.481365896761 --0.99519750476 -0.481371581554 --0.977940604091 -0.481378905475 --0.960683628917 -0.481387861073 --0.943426117301 -0.481398396194 --0.92616841197 -0.481410518289 --0.908910140395 -0.481424286962 --0.891651570797 -0.481431230903 --0.872434973717 -0.481423720718 --0.853216737509 -0.481410048902 --0.835957974195 -0.481397941708 --0.818699866533 -0.481387481094 --0.801442027092 -0.481378577649 --0.784184738994 -0.481371305883 --0.766927585006 -0.481365680695 --0.749670878053 -0.481361687184 --0.732414141298 -0.481359273195 --0.715157717467 -0.481358498335 --0.697901174426 -0.481359362602 --0.6806448102 -0.481361828745 --0.663388222456 -0.481365896761 --0.646131679416 -0.481371581554 --0.628874734045 -0.481378905475 --0.611617714167 -0.481387838721 --0.594360247254 -0.481398373842 --0.577102601528 -0.481410518289 --0.559844315052 -0.481424286962 --0.542585715651 -0.481431230903 --0.52336910367 -0.481423705816 --0.504150852561 -0.481410034001 --0.486892096698 -0.481397941708 --0.46963403374 -0.481387451291 --0.452376194298 -0.481378547847 --0.4351189062 -0.481371305883 --0.417861752212 -0.481365680695 --0.400605015457 -0.481361687184 --0.383348286152 -0.481359273195 --0.366091862321 -0.481358498335 --0.348835319281 -0.481359347701 --0.331578962505 -0.481361813844 --0.314322344959 -0.481365896761 --0.297065794468 -0.481371581554 --0.279808886349 -0.481378905475 --0.262551903725 -0.48138782382 --0.245294418186 -0.481398358941 --0.228036750108 -0.481410518289 --0.210778463632 -0.481424286962 --0.193519871682 -0.481431230903 --0.174303267151 -0.498666793108 --0.155078891665 -0.498652696609 --0.137820106 -0.498640216887 --0.1205620002 -0.498629435897 --0.103304145858 -0.498620271683 --0.0860468354076 -0.49861279875 --0.0687896506861 -0.498607002199 --0.0515328971669 -0.498602874577 --0.0342761436477 -0.498600415886 --0.0170196953695 -0.498599626124 -0.000236877007407 -0.498600460589 -0.0174932661466 -0.498602971435 -0.0347499018535 -0.498607181013 -0.0520064774901 -0.498613111675 -0.0692634284496 -0.498620666564 -0.0865204408765 -0.498629823327 -0.103777945042 -0.498640686274 -0.121035635471 -0.498653210699 -0.138293948025 -0.498667396605 -0.155552569777 -0.498674541712 -0.174768939614 -0.498666793108 -0.193986959756 -0.49865269661 -0.211245741695 -0.498640216887 -0.228503841907 -0.498629420996 -0.245761699974 -0.498620286583 -0.263019002974 -0.498612828552 -0.280276186764 -0.498607002199 -0.297532953322 -0.498602874577 -0.314789712429 -0.498600400985 -0.332046158612 -0.498599611223 -0.349302731454 -0.49860047549 -0.366559118032 -0.498603001237 -0.38381575793 -0.498607210815 -0.401072330773 -0.498613074422 -0.418329283595 -0.498620629311 -0.435586303473 -0.498629875481 -0.452843800187 -0.498640723527 -0.470101483166 -0.498653210699 -0.487359791994 -0.498667396605 -0.504618436098 -0.498674541712 -0.523834809661 -0.498666793108 -0.54305280745 -0.498652696609 -0.560311585665 -0.498640216887 -0.577569693327 -0.498629420996 -0.59482756257 -0.498620286583 -0.61208486557 -0.498612828552 -0.629342064261 -0.498607002199 -0.646598815918 -0.498602874577 -0.663855537772 -0.498600400985 -0.681111991405 -0.498599596321 -0.698368579149 -0.498600445688 -0.715624973178 -0.498602986336 -0.732881590724 -0.498607210815 -0.750138178468 -0.498613074422 -0.76739512384 -0.498620629311 -0.784652128816 -0.498629853129 -0.80190962553 -0.498640701175 -0.81916731596 -0.498653210699 -0.836425662041 -0.498667396605 -0.853684276342 -0.498674541712 -0.872900649905 -0.498666778207 -0.892118662596 -0.498652681708 -0.909377425909 -0.498640216887 -0.926635548472 -0.498629435897 -0.943893417716 -0.498620271683 -0.961150720716 -0.49861279875 -0.978407904506 -0.498607002199 -0.995664656161 -0.498602874577 -1.01292142272 -0.498600400985 -1.03017786145 -0.498599596321 -1.0474344492 -0.498600460589 -1.06469085812 -0.498603001237 -1.08194744587 -0.498607195914 -1.09920400381 -0.498613059521 -1.11646097898 -0.49862061441 -1.13371801376 -0.498629838228 -1.15097549558 -0.498640701175 -1.1682331562 -0.498653210699 -1.18549150229 -0.498667396605 -1.20275014639 -0.498674541712 -1.22196650505 -0.498666793108 -1.24118453264 -0.498652696609 -1.25844332576 -0.498640216887 -1.27570140362 -0.498629420996 -1.29295924306 -0.498620286583 -1.31021657586 -0.498612828552 -1.32747375965 -0.498607002199 -1.34473049641 -0.498602874577 -1.36198726297 -0.498600400985 -1.3792437315 -0.498599596321 -1.39650028944 -0.49860047549 -1.41375666857 -0.49860304594 -1.43101331592 -0.498607240617 -1.44826990366 -0.498613074422 -1.46552681923 -0.498620629311 -1.4827837944 -0.498629838228 -1.50004133582 -0.498640686274 -1.51729905605 -0.498653240502 -1.53455734253 -0.498667426408 -1.55181592703 -0.498674541712 -1.5710323155 -0.498666793108 -1.59025034309 -0.498652681708 -1.6075091362 -0.498640201986 -1.62476727366 -0.498629420996 -1.64202511311 -0.498620286584 -1.6592824161 -0.498612843454 -1.67653959989 -0.4986070171 -1.69379633665 -0.498602874577 -1.71105310321 -0.498600400985 -1.72830954194 -0.498599596321 -1.74556612969 -0.49860047549 -1.76282253862 -0.498603016138 -1.78007915616 -0.498607195914 -1.7973357141 -0.498613059521 -1.81459265947 -0.498620629311 -1.83184969425 -0.498629853129 -1.84910720587 -0.498640701175 -1.8663648963 -0.498653210699 -1.88362321258 -0.498667411506 -1.90088182688 -0.498674556613 -1.92009818554 -0.498666793108 -1.93931621313 -0.498652696609 -1.95657497644 -0.498640216887 -1.9738330543 -0.498629435897 -1.99109095335 -0.498620301485 -2.00834825635 -0.498612828552 -2.02560544014 -0.498607002199 -2.0428622365 -0.498602874577 -2.06011897325 -0.498600400985 -2.07737535238 -0.498599596321 -2.09463196993 -0.49860047549 -2.11188846827 -0.498603016138 -2.12914508581 -0.498607210815 -2.14640158415 -0.498613104224 -2.16365849972 -0.498620659113 -2.1809155345 -0.49862986058 -2.19817304611 -0.498640708625 -2.21543073654 -0.498653210699 -2.23268908262 -0.498667396605 -2.24994772672 -0.498674541712 -2.26916402578 -0.498666793108 -2.28838199377 -0.498652711511 -2.30564081669 -0.498640231788 -2.32289898395 -0.498629435897 -2.3401568532 -0.498620301485 -2.3574141264 -0.498612828552 -2.37467128039 -0.498607002199 -2.39192801714 -0.498602874577 -2.4091848135 -0.498600400985 -2.42644131184 -0.498599596321 -2.44369786978 -0.49860047549 -2.46095424891 -0.498603016138 -2.47821086645 -0.498607195914 -2.49546742439 -0.498613059521 -2.51272439957 -0.498620629311 -2.52998143435 -0.498629838228 -2.54723894596 -0.498640686274 -2.56449657679 -0.498653210699 -2.58175486326 -0.498667411506 -2.59901350737 -0.498674556613 -2.61822992563 -0.498666778207 -2.63744795323 -0.498652681708 -2.65470671654 -0.498640216887 -2.6719648242 -0.498629420996 -2.68922263384 -0.498620286583 -2.70647996664 -0.498612828552 -2.72373718024 -0.498607002199 -2.74099391699 -0.498602874577 -2.75825071335 -0.498600400985 -2.77550715208 -0.498599596321 -2.79276365042 -0.498600460589 -2.81002002955 -0.498603001237 -2.8272767067 -0.498607210815 -2.84453332424 -0.498613074422 -2.86179023981 -0.498620629311 -2.87904721499 -0.498629853129 -2.8963047266 -0.498640701175 -2.91356241703 -0.498653210699 -2.93082070351 -0.498667396605 -2.94807928801 -0.498674541712 -2.96729570627 -0.498666793108 -2.98651379347 -0.498652696609 -3.00377255678 -0.498640216887 -3.02103060484 -0.498629435897 -3.03828847408 -0.498620271683 -3.05554580689 -0.49861279875 -3.07280302048 -0.498607002199 -3.09005981684 -0.498602874577 -3.1073165536 -0.498600415886 -3.12457293272 -0.498599626124 --3.14135584434 -0.498600460589 --3.12409943342 -0.498602971435 --3.10684275627 -0.498607181013 --3.08958613873 -0.498613111675 --3.07232922316 -0.498620666564 --3.05507224798 -0.498629823327 --3.03781473637 -0.498640686274 --3.02055698633 -0.498653210699 --3.00329869985 -0.498667396605 --2.98604017496 -0.498674541712 --2.96682375669 -0.498666793108 --2.9476056695 -0.49865269661 --2.93034690619 -0.498640216887 --2.91308885813 -0.498629420996 --2.89583098888 -0.498620286583 --2.87857365608 -0.498612828552 --2.86131644249 -0.498607002199 --2.84405964613 -0.498602874577 --2.82680290938 -0.498600400985 --2.80954653025 -0.498599611223 --2.7922899723 -0.49860047549 --2.77503353357 -0.498603001237 --2.75777685642 -0.498607210815 --2.74052029848 -0.498613074422 --2.72326338291 -0.498620629311 --2.70600634813 -0.498629875481 --2.68874883652 -0.498640723527 --2.67149114609 -0.498653210699 --2.65423280001 -0.498667396605 --2.6369741559 -0.498674541712 --2.61775785684 -0.498666793108 --2.59853988886 -0.498652696609 --2.58128112555 -0.498640216887 --2.56402301788 -0.498629420996 --2.54676508903 -0.498620286583 --2.52950775623 -0.498612828552 --2.51225060224 -0.498607002199 --2.49499386549 -0.498602874577 --2.47773712874 -0.498600400985 --2.4604806304 -0.498599596321 --2.44322401285 -0.498600445688 --2.42596763372 -0.498602986336 --2.40871101618 -0.498607210815 --2.39145445824 -0.498613074422 --2.37419754267 -0.498620629311 --2.35694056749 -0.498629853129 --2.33968305588 -0.498640701175 --2.32242536545 -0.498653210699 --2.30516701937 -0.498667396605 --2.28790837526 -0.498674541712 --2.268691957 -0.498666778207 --2.24947398901 -0.498652681708 --2.2322152257 -0.498640216887 --2.21495705843 -0.498629435897 --2.19769924879 -0.498620271683 --2.18044197559 -0.49861279875 --2.163184762 -0.498607002199 --2.14592802524 -0.498602874577 --2.12867128849 -0.498600400985 --2.11141479015 -0.498599596321 --2.09415823221 -0.498600460589 --2.07690185308 -0.498603001237 --2.05964523554 -0.498607195914 --2.04238861799 -0.498613059521 --2.02513164282 -0.49862061441 --2.00787466764 -0.498629838228 --1.99061715603 -0.498640701175 --1.9733594656 -0.498653210699 --1.95610114932 -0.498667396605 --1.93884253502 -0.498674541712 --1.91962614655 -0.498666793108 --1.90040811896 -0.498652696609 --1.88314935565 -0.498640216887 --1.86589124799 -0.498629420996 --1.84863340855 -0.498620286583 --1.83137607574 -0.498612828552 --1.81411886215 -0.498607002199 --1.7968621552 -0.498602874577 --1.77960541844 -0.498600400985 --1.76234897971 -0.498599596321 --1.74509239197 -0.49860047549 --1.72783598304 -0.49860304594 --1.71057936549 -0.498607240617 --1.69332277775 -0.498613074422 --1.67606583237 -0.498620629311 --1.6588088274 -0.498629838228 --1.64155131578 -0.498640686274 --1.62429362535 -0.498653240502 --1.60703530908 -0.498667426408 --1.58977669478 -0.498674541712 --1.57056033611 -0.498666793108 --1.55134230852 -0.498652681708 --1.5340835154 -0.498640201986 --1.51682540774 -0.498629420996 --1.4995675385 -0.498620286584 --1.4823102355 -0.498612843454 --1.46505305171 -0.4986070171 --1.44779628515 -0.498602874577 --1.4305395484 -0.498600400985 --1.41328310967 -0.498599596321 --1.39602655172 -0.49860047549 --1.37877017259 -0.498603016138 --1.36151352524 -0.498607195914 --1.3442569375 -0.498613059521 --1.32699996233 -0.498620629311 --1.30974295735 -0.498629853129 --1.29248544573 -0.498640701175 --1.27522775531 -0.498653210699 --1.25796946883 -0.498667411506 --1.24071082473 -0.498674556613 --1.22149443626 -0.498666793108 --1.20227643847 -0.498652696609 --1.18501767516 -0.498640216887 --1.1677595675 -0.498629435897 --1.15050169826 -0.498620301485 --1.13324439525 -0.498612828552 --1.11598721147 -0.498607002199 --1.09873044491 -0.498602874577 --1.08147367835 -0.498600400985 --1.06421723962 -0.498599596321 --1.04696068168 -0.49860047549 --1.02970427275 -0.498603016138 --1.0124476552 -0.498607210815 --0.995191097258 -0.498613104224 --0.977934136987 -0.498620659113 --0.960677132011 -0.49862986058 --0.943419620395 -0.498640708625 --0.926161900162 -0.498653210699 --0.908903598785 -0.498667396605 --0.891644999385 -0.498674541712 --0.872428625822 -0.498666793108 --0.85321059823 -0.498652711511 --0.835951805115 -0.498640231788 --0.818693697453 -0.498629435897 --0.801435858011 -0.498620301485 --0.78417854011 -0.498612828552 --0.766921326518 -0.498607002199 --0.749664604664 -0.498602874577 --0.732407838106 -0.498600400985 --0.715151369572 -0.498599596321 --0.697894826532 -0.49860047549 --0.680638447404 -0.498603016138 --0.663381800055 -0.498607195914 --0.646125227213 -0.498613059521 --0.628868281842 -0.498620629311 --0.611611247062 -0.498629838228 --0.594353750348 -0.498640686274 --0.57709607482 -0.498653210699 --0.559837758541 -0.498667411506 --0.542579144239 -0.498674556613 --0.523362770677 -0.498666778207 --0.504144743085 -0.498652681708 --0.48688596487 -0.498640216887 --0.469627864659 -0.498629420996 --0.452370002866 -0.498620286583 --0.435112684965 -0.498612828552 --0.417855508626 -0.498607002199 --0.400598749518 -0.498602874577 --0.38334197551 -0.498600400985 --0.366085521877 -0.498599596321 --0.348828963936 -0.498600460589 --0.331572584808 -0.498603001237 --0.31431594491 -0.498607210815 --0.297059364617 -0.498613074422 --0.279802411795 -0.498620629311 --0.262545414269 -0.498629853129 --0.24528792128 -0.498640701175 --0.228030223399 -0.498653210699 --0.210771907121 -0.498667396605 --0.193513285369 -0.498674541712 --0.174296911806 -0.515892058611 --0.155072815716 -0.515877559781 --0.1378140077 -0.51586471498 --0.120555872098 -0.515853613615 --0.103297991678 -0.51584418118 --0.086040655151 -0.515836492181 --0.0687834462151 -0.515830531716 --0.0515266675502 -0.515826284885 --0.0342698874883 -0.515823751688 --0.0170134142972 -0.515822961927 -0.000243183458222 -0.515823841095 -0.0174995984417 -0.515826404094 -0.0347562595271 -0.515830725431 -0.052012860775 -0.515836805105 -0.0692698368802 -0.515844583511 -0.0865268744528 -0.515854030848 -0.103784404695 -0.515865206719 -0.121042117476 -0.515878096223 -0.138300452381 -0.515892699361 -0.155559107661 -0.515900045633 -0.174775250256 -0.515892058611 -0.193993031979 -0.515877574682 -0.211251839996 -0.515864729881 -0.228509973734 -0.515853613615 -0.245767861605 -0.515844210982 -0.263025186956 -0.515836521983 -0.280282385647 -0.515830531716 -0.297539174557 -0.515826284885 -0.314795963466 -0.515823736787 -0.332052432001 -0.515822947025 -0.349309034646 -0.515823841095 -0.366565443575 -0.515826418996 -0.383822105825 -0.515830770135 -0.401078715921 -0.515836805105 -0.418335683644 -0.515844553709 -0.435592718423 -0.51585406065 -0.45285025239 -0.515865236521 -0.470107972622 -0.515878096223 -0.487366311252 -0.515892699361 -0.504624962807 -0.515900045633 -0.523841112852 -0.515892058611 -0.543058887124 -0.515877559781 -0.560317665339 -0.51586471498 -0.577575817705 -0.515853613615 -0.594833731651 -0.515844225883 -0.612091049552 -0.515836536884 -0.629348263144 -0.515830546618 -0.646605044603 -0.515826299787 -0.663861811161 -0.515823736787 -0.681118294597 -0.515822902322 -0.69837488234 -0.515823796391 -0.71563129127 -0.515826418996 -0.73288795352 -0.515830755234 -0.750144556165 -0.515836790204 -0.767401531339 -0.51584456861 -0.784658581018 -0.51585406065 -0.801916107535 -0.51586522162 -0.819173812866 -0.515878096223 -0.836432158947 -0.515892699361 -0.853690803051 -0.515900045633 -0.872906953097 -0.515892058611 -0.892124727368 -0.515877559781 -0.909383520484 -0.51586471498 -0.92664167285 -0.515853613615 -0.943899556995 -0.51584418118 -0.961156889796 -0.515836492181 -0.978414103389 -0.515830546618 -0.995670884847 -0.515826299787 -1.01292765141 -0.515823736787 -1.03018411994 -0.515822932124 -1.04744073749 -0.515823841095 -1.06469717622 -0.515826433897 -1.08195382357 -0.515830740333 -1.09921041131 -0.515836775303 -1.11646738648 -0.51584456861 -1.13372442126 -0.515854075551 -1.15098196268 -0.515865236521 -1.16823965311 -0.515878096223 -1.18549799919 -0.515892699361 -1.2027566731 -0.515900045633 -1.22197279334 -0.515892058611 -1.24119058251 -0.515877559781 -1.25844940543 -0.51586471498 -1.27570751309 -0.515853613615 -1.29296538234 -0.515844225883 -1.31022274494 -0.515836536884 -1.32747995854 -0.515830546618 -1.34473672509 -0.515826299787 -1.36199352145 -0.515823736787 -1.37924998998 -0.515822932124 -1.39650657773 -0.515823841095 -1.41376298666 -0.515826463699 -1.43101966381 -0.515830799937 -1.44827628136 -0.515836805105 -1.46553322673 -0.51584456861 -1.48279023171 -0.51585406065 -1.50004780293 -0.515865221619 -1.51730555296 -0.515878111124 -1.53456386924 -0.515892714262 -1.55182248354 -0.515900045633 -1.57103863358 -0.515892073512 -1.59025642276 -0.515877574682 -1.60751521587 -0.51586471498 -1.62477338314 -0.515853598714 -1.64203128219 -0.515844210982 -1.65928861499 -0.515836536884 -1.67654582858 -0.515830546618 -1.69380259514 -0.515826299787 -1.7110593617 -0.515823736787 -1.72831583023 -0.515822902322 -1.74557244777 -0.515823811292 -1.76282888651 -0.515826433897 -1.78008550406 -0.515830740333 -1.7973420918 -0.515836790204 -1.81459909677 -0.51584456861 -1.83185613155 -0.51585406065 -1.84911364317 -0.515865236521 -1.8663713634 -0.515878096223 -1.88362970948 -0.515892714262 -1.90088835359 -0.515900060534 -1.92010450363 -0.515892058611 -1.93932229281 -0.515877559781 -1.95658108592 -0.51586471498 -1.97383922338 -0.515853613615 -1.99109712243 -0.515844225883 -2.00835442543 -0.515836536884 -2.02561163902 -0.515830546618 -2.04286843538 -0.515826299787 -2.06012523174 -0.515823736787 -2.07738167047 -0.515822932124 -2.09463828802 -0.515823841095 -2.11189478636 -0.515826418996 -2.1291514039 -0.515830740332 -2.14640796185 -0.515836820006 -2.16366493702 -0.515844598412 -2.1809219718 -0.51585406065 -2.19817948342 -0.515865221619 -2.21543723345 -0.515878096223 -2.23269557953 -0.515892699361 -2.24995422363 -0.515900045633 -2.26917034387 -0.515892058611 -2.28838807344 -0.515877574682 -2.30564695597 -0.515864729881 -2.32290512323 -0.515853613615 -2.34016293287 -0.515844225883 -2.35742026568 -0.515836536884 -2.37467747927 -0.515830546618 -2.39193427563 -0.515826299787 -2.40919107199 -0.515823736787 -2.42644751072 -0.515822932124 -2.44370412826 -0.515823841095 -2.460960567 -0.515826433897 -2.47821718455 -0.515830740333 -2.49547380209 -0.515836775303 -2.51273077727 -0.515844553709 -2.52998775244 -0.515854045749 -2.54724532366 -0.515865221619 -2.56450307369 -0.515878096223 -2.58176141977 -0.515892714262 -2.59902006387 -0.515900060534 -2.61823618412 -0.515892058611 -2.6374540329 -0.515877559781 -2.65471285582 -0.51586471498 -2.67197090387 -0.515853613615 -2.68922877312 -0.515844210982 -2.70648610592 -0.515836521983 -2.72374331951 -0.515830546618 -2.74100011587 -0.515826299787 -2.75825691223 -0.515823736787 -2.77551341057 -0.515822932124 -2.79276996851 -0.515823841095 -2.81002634764 -0.515826433897 -2.82728308439 -0.515830770135 -2.84453970194 -0.515836805105 -2.86179661751 -0.51584456861 -2.87905365229 -0.515854075551 -2.8963111639 -0.515865236521 -2.91356885433 -0.515878096223 -2.93082720041 -0.515892699361 -2.94808584451 -0.515900045633 -2.96730202436 -0.515892058611 -2.98651987314 -0.515877559781 -3.00377863646 -0.51586471498 -3.02103674412 -0.515853613615 -3.03829467296 -0.51584418118 -3.05555200577 -0.515836492181 -3.07280921936 -0.515830531716 -3.09006601572 -0.515826284885 -3.10732275248 -0.515823751688 -3.12457919121 -0.515822961927 --3.14134952624 -0.515823841095 --3.12409311533 -0.515826404094 --3.10683637857 -0.515830725431 --3.08957976103 -0.515836805105 --3.07232284546 -0.515844583511 --3.05506581068 -0.515854030848 --3.03780829906 -0.515865206719 --3.02055054903 -0.515878096223 --3.00329220295 -0.515892699361 --2.98603361845 -0.515900045633 --2.9668174386 -0.515892058611 --2.94759958983 -0.515877574682 --2.93034082651 -0.515864729881 --2.91308271885 -0.515853613615 --2.89582479 -0.515844210982 --2.8785674572 -0.515836521983 --2.86131024361 -0.515830531716 --2.84405344725 -0.515826284885 --2.82679665089 -0.515823736787 --2.80954021216 -0.515822947025 --2.79228365421 -0.515823841095 --2.77502715587 -0.515826418996 --2.75777047872 -0.515830770135 --2.74051392079 -0.515836805105 --2.72325694561 -0.515844553709 --2.70599991083 -0.51585406065 --2.68874239922 -0.515865236521 --2.67148464918 -0.515878096223 --2.6542263031 -0.515892699361 --2.636967659 -0.515900045633 --2.61775153875 -0.515892058611 --2.59853380919 -0.515877559781 --2.58127504587 -0.51586471498 --2.56401687861 -0.515853613615 --2.54675894976 -0.515844225883 --2.52950161695 -0.515836536884 --2.51224440336 -0.515830546618 --2.494987607 -0.515826299787 --2.47773081064 -0.515823736787 --2.46047431231 -0.515822902322 --2.44321769476 -0.515823796391 --2.42596131563 -0.515826418996 --2.40870469809 -0.515830755234 --2.39144808054 -0.515836790204 --2.37419110536 -0.51584456861 --2.35693407059 -0.51585406065 --2.33967655897 -0.51586522162 --2.32241886854 -0.515878096223 --2.30516046286 -0.515892699361 --2.28790181875 -0.515900045633 --2.26868569851 -0.515892058611 --2.24946796894 -0.515877559781 --2.23220914602 -0.51586471498 --2.21495097876 -0.515853613615 --2.19769316912 -0.51584418118 --2.18043583631 -0.515836492181 --2.16317856312 -0.515830546618 --2.14592176676 -0.515826299787 --2.12866503 -0.515823736787 --2.11140853167 -0.515822932124 --2.09415191412 -0.515823841095 --2.07689553499 -0.515826433897 --2.05963885784 -0.515830740333 --2.04238224029 -0.515836775303 --2.02512526512 -0.51584456861 --2.00786823034 -0.515854075551 --1.99061068892 -0.515865236521 --1.97335296869 -0.515878096223 --1.95609465242 -0.515892699361 --1.93883600831 -0.515900045633 --1.91961985827 -0.515892058611 --1.90040203929 -0.515877559781 --1.88314324617 -0.51586471498 --1.86588513851 -0.515853613615 --1.84862723947 -0.515844225883 --1.83136990666 -0.515836536884 --1.81411269307 -0.515830546618 --1.79685592651 -0.515826299787 --1.77959915996 -0.515823736787 --1.76234269142 -0.515822932124 --1.74508607388 -0.515823841095 --1.72782963514 -0.515826463699 --1.71057298779 -0.515830799937 --1.69331640005 -0.515836805105 --1.67605942488 -0.51584456861 --1.6588023901 -0.51585406065 --1.64154487848 -0.515865221619 --1.62428715825 -0.515878111124 --1.60702881217 -0.515892714262 --1.58977016807 -0.515900045633 --1.57055401802 -0.515892073512 --1.55133622885 -0.515877574682 --1.53407740593 -0.51586471498 --1.51681926846 -0.515853598714 --1.49956139922 -0.515844210982 --1.48230406642 -0.515836536884 --1.46504685283 -0.515830546618 --1.44779005646 -0.515826299787 --1.43053328991 -0.515823736787 --1.41327682137 -0.515822902322 --1.39602023363 -0.515823811292 --1.3787638247 -0.515826433897 --1.36150714755 -0.515830740333 --1.34425053 -0.515836790204 --1.32699352503 -0.51584456861 --1.30973649025 -0.51585406065 --1.29247897863 -0.515865236521 --1.27522128821 -0.515878096223 --1.25796294212 -0.515892714262 --1.24070426822 -0.515900060534 --1.22148814797 -0.515892058611 --1.2022703588 -0.515877559781 --1.18501156568 -0.51586471498 --1.16775345802 -0.515853613615 --1.15049555898 -0.515844225883 --1.13323825598 -0.515836536884 --1.11598104238 -0.515830546618 --1.09872421622 -0.515826299787 --1.08146741986 -0.515823736787 --1.06421098113 -0.515822932124 --1.04695439339 -0.515823841095 --1.02969795466 -0.515826418996 --1.01244130731 -0.515830740332 --0.995184704661 -0.515836820006 --0.977927714586 -0.515844598412 --0.960670679808 -0.51585406065 --0.943413153291 -0.515865221619 --0.926155418158 -0.515878096223 --0.908897086978 -0.515892699361 --0.891638457775 -0.515900045633 --0.87242230773 -0.515892058611 --0.853204518557 -0.515877574682 --0.83594571054 -0.515864729881 --0.818687573075 -0.515853613615 --0.801429703832 -0.515844225883 --0.784172356129 -0.515836536884 --0.766915127635 -0.515830546618 --0.749658361077 -0.515826299787 --0.732401579619 -0.515823736787 --0.715145125985 -0.515822932124 --0.697888538241 -0.515823841095 --0.680632099509 -0.515826433897 --0.66337543726 -0.515830740333 --0.646118834615 -0.515836775303 --0.628861859441 -0.515844553709 --0.611604839563 -0.515854045749 --0.594347313047 -0.515865221619 --0.577089592815 -0.515878096223 --0.559831246733 -0.515892714262 --0.54257260263 -0.515900060534 --0.523356467486 -0.515892058611 --0.504138678312 -0.515877559781 --0.486879870295 -0.51586471498 --0.469621740281 -0.515853613615 --0.452363848686 -0.515844210982 --0.435106508434 -0.515836521983 --0.417849317193 -0.515830546618 --0.400592528284 -0.515826299787 --0.383335731924 -0.515823736787 --0.366079255939 -0.515822932124 --0.348822660744 -0.515823841095 --0.331566244364 -0.515826433897 --0.314309582114 -0.515830770135 --0.29705298692 -0.515836805105 --0.279796011746 -0.51584456861 --0.262538984418 -0.515854075551 --0.245281461626 -0.515865236521 --0.228023737669 -0.515878096223 --0.210765395313 -0.515892699361 --0.193506747484 -0.515900045633 --0.174290601164 -0.533094927668 --0.155067019165 -0.533080026507 --0.137808188796 -0.53306683898 --0.12055002898 -0.53305542469 --0.103292118758 -0.533045738935 --0.0860347598791 -0.533037856221 --0.0687775267288 -0.533031716943 --0.0515207219869 -0.533027350903 --0.0342639167793 -0.533024728298 --0.0170074182097 -0.533023893833 -0.000249203993007 -0.533024802804 -0.017505642958 -0.53302745521 -0.034762328025 -0.533031910658 -0.0520189544186 -0.533038124442 -0.0692759538069 -0.533046111464 -0.0865330155939 -0.533055856824 -0.103790573776 -0.533067360521 -0.121048312634 -0.533080607653 -0.138306673616 -0.533095598221 -0.155565351248 -0.533103138208 -0.174781270325 -0.533094927668 -0.193998832256 -0.533080026507 -0.211257666349 -0.53306683898 -0.228515826166 -0.53305542469 -0.245773732662 -0.533045738935 -0.263031080365 -0.533037856221 -0.280288308859 -0.533031716943 -0.29754512012 -0.533027350903 -0.314801931381 -0.533024728298 -0.332058429718 -0.533023893833 -0.349315054714 -0.533024802804 -0.366571485996 -0.533027470112 -0.383828170598 -0.533031955361 -0.401084810496 -0.533038154244 -0.41834179312 -0.533046111464 -0.43559885025 -0.533055871725 -0.452856428922 -0.533067375422 -0.470114178956 -0.533080607653 -0.487372539937 -0.533095628023 -0.504631206393 -0.533103168011 -0.52384711802 -0.533094927668 -0.543064668775 -0.533080026507 -0.560323506594 -0.53306683898 -0.577581688762 -0.53305542469 -0.594839602709 -0.533045753836 -0.612096950412 -0.533037871123 -0.629354164004 -0.533031731844 -0.646610960364 -0.533027365804 -0.663867786527 -0.533024728298 -0.681124299765 -0.533023864031 -0.69838090241 -0.533024773001 -0.715637326241 -0.533027470112 -0.732894018293 -0.53303194046 -0.75015065074 -0.533038139343 -0.767407655716 -0.533046126366 -0.784664720297 -0.533055871725 -0.801922276616 -0.533067360521 -0.819180011749 -0.533080607653 -0.836438372731 -0.533095598221 -0.853697046638 -0.533103138208 -0.872912973166 -0.533094927668 -0.89213052392 -0.533080041408 -0.909389346838 -0.533066853881 -0.926647529006 -0.53305542469 -0.943905428052 -0.533045738935 -0.961162775755 -0.533037856221 -0.97842001915 -0.533031731844 -0.995676845313 -0.533027365804 -1.01293364167 -0.533024713397 -1.03019014001 -0.533023878932 -1.04744675755 -0.533024832606 -1.06470319629 -0.533027499914 -1.08195987344 -0.53303194046 -1.09921649098 -0.533038154244 -1.11647349596 -0.533046141267 -1.13373056054 -0.533055886626 -1.15098813176 -0.533067375422 -1.168245852 -0.533080607653 -1.18550419807 -0.533095598221 -1.20276290178 -0.533103138208 -1.22197884321 -0.533094927668 -1.24119639397 -0.533080026507 -1.25845521688 -0.53306683898 -1.27571335435 -0.53305542469 -1.2929712832 -0.533045753836 -1.31022867561 -0.533037871123 -1.3274858892 -0.533031731844 -1.34474268556 -0.533027365804 -1.36199951172 -0.533024728298 -1.37925598025 -0.533023893833 -1.3965125978 -0.533024802804 -1.41376903653 -0.533027470112 -1.43102571368 -0.533031955361 -1.44828236103 -0.533038154244 -1.46553936601 -0.533046126366 -1.48279640078 -0.533055886626 -1.500053972 -0.533067375422 -1.51731172204 -0.533080607653 -1.53457006812 -0.533095598221 -1.55182874203 -0.533103138208 -1.57104465365 -0.533094942569 -1.59026223421 -0.533080041408 -1.60752105713 -0.53306683898 -1.6247792244 -0.53305542469 -1.64203715324 -0.533045753836 -1.65929448605 -0.53303784132 -1.67655172944 -0.533031716943 -1.6938085556 -0.533027380705 -1.71106535197 -0.533024713397 -1.7283218503 -0.53302384913 -1.74557846784 -0.533024802804 -1.76283490658 -0.533027499914 -1.78009158373 -0.533031925559 -1.79734820128 -0.533038154245 -1.81460520625 -0.533046141267 -1.83186227083 -0.533055871725 -1.84911981225 -0.533067375422 -1.86637756228 -0.533080607653 -1.88363593817 -0.533095598221 -1.90089461208 -0.533103138208 -1.9201105237 -0.533094927668 -1.93932807446 -0.533080026507 -1.95658692718 -0.53306683898 -1.97384509444 -0.53305542469 -1.99110299349 -0.533045753836 -2.00836032629 -0.533037871123 -2.02561753988 -0.533031731844 -2.04287433624 -0.533027365804 -2.06013119221 -0.533024728298 -2.07738769054 -0.533023893833 -2.09464430809 -0.533024802804 -2.11190080643 -0.53302745521 -2.12915748358 -0.533031925559 -2.14641410112 -0.533038139343 -2.1636710763 -0.533046126366 -2.18092811108 -0.533055886626 -2.1981856823 -0.533067375422 -2.21544343233 -0.533080607653 -2.23270177841 -0.533095628023 -2.24996048212 -0.533103168011 -2.26917642355 -0.533094927668 -2.2883939147 -0.533080026507 -2.30565273762 -0.53306683898 -2.32291090488 -0.53305542469 -2.34016877413 -0.533045753836 -2.35742616654 -0.533037871123 -2.37468338013 -0.533031731844 -2.39194017649 -0.533027365804 -2.40919703245 -0.533024728298 -2.42645347118 -0.533023893833 -2.44371008873 -0.533024802804 -2.46096658707 -0.533027470112 -2.47822326422 -0.533031925559 -2.49547988177 -0.533038139343 -2.51273685694 -0.533046126366 -2.52999389172 -0.533055871725 -2.54725146294 -0.533067375422 -2.56450927258 -0.533080607653 -2.58176767826 -0.533095598221 -2.59902632236 -0.533103138208 -2.61824220419 -0.533094927668 -2.63745981455 -0.533080041408 -2.65471869707 -0.533066853881 -2.67197680473 -0.53305542469 -2.68923473358 -0.533045738935 -2.70649206638 -0.533037856221 -2.72374927998 -0.533031731844 -2.74100613594 -0.533027365804 -2.7582628727 -0.533024728298 -2.77551937103 -0.533023893833 -2.79277604818 -0.533024832606 -2.81003242731 -0.533027499914 -2.82728910446 -0.53303194046 -2.84454578161 -0.533038154244 -2.86180275678 -0.533046141267 -2.87905979156 -0.533055886626 -2.89631736278 -0.533067375422 -2.91357511282 -0.533080607653 -2.9308334589 -0.533095598221 -2.94809210301 -0.533103138208 -2.96730804443 -0.533094927668 -2.98652565479 -0.533080026507 -3.00378447771 -0.53306683898 -3.02104264498 -0.53305542469 -3.03830057382 -0.533045738935 -3.05555790663 -0.533037856221 -3.07281512022 -0.533031716943 -3.09007191658 -0.533027350903 -3.10732871294 -0.533024728298 -3.12458521128 -0.533023893833 --3.14134344657 -0.533024802804 --3.12408703566 -0.53302745521 --3.1068303585 -0.533031910658 --3.08957368135 -0.533038124442 --3.07231664658 -0.533046111464 --3.0550596118 -0.533055856824 --3.03780210018 -0.533067360521 --3.02054435015 -0.533080607653 --3.00328600407 -0.533095598221 --2.98602735996 -0.533103138208 --2.96681141854 -0.533094927668 --2.94759380818 -0.533080026507 --2.93033498526 -0.53306683898 --2.91307681799 -0.53305542469 --2.89581888914 -0.533045738935 --2.87856155634 -0.533037856221 --2.86130434275 -0.533031716943 --2.84404754639 -0.533027350903 --2.82679069042 -0.533024728298 --2.80953419209 -0.533023893833 --2.79227763414 -0.533024802804 --2.77502113581 -0.533027470112 --2.75776445866 -0.533031955361 --2.74050784111 -0.533038154244 --2.72325080633 -0.533046111464 --2.70599377155 -0.533055871725 --2.68873620033 -0.533067375422 --2.6714784503 -0.533080607653 --2.65422010422 -0.533095628023 --2.63696140051 -0.533103168011 --2.61774551869 -0.533094927668 --2.59852802754 -0.533080026507 --2.58126920462 -0.53306683898 --2.56401103735 -0.53305542469 --2.5467531085 -0.533045753836 --2.52949571609 -0.533037871123 --2.5122385025 -0.533031731844 --2.49498170614 -0.533027365804 --2.47772485018 -0.533024728298 --2.46046835184 -0.533023864031 --2.4432117343 -0.533024773001 --2.42595529556 -0.533027470112 --2.40869861841 -0.53303194046 --2.39144200087 -0.533038139343 --2.37418502569 -0.533046126366 --2.35692793131 -0.533055871725 --2.33967036009 -0.533067360521 --2.32241266966 -0.533080607653 --2.30515426398 -0.533095598221 --2.28789556026 -0.533103138208 --2.26867967844 -0.533094927668 --2.24946218729 -0.533080041408 --2.23220336437 -0.533066853881 --2.2149451375 -0.53305542469 --2.19768726826 -0.533045738935 --2.18042993545 -0.533037856221 --2.16317260265 -0.533031731844 --2.14591574669 -0.533027365804 --2.12865900994 -0.533024713397 --2.1114025116 -0.533023878932 --2.09414589405 -0.533024832606 --2.07688951492 -0.533027499914 --2.05963277817 -0.53303194046 --2.04237616062 -0.533038154244 --2.02511918545 -0.533046141267 --2.00786209107 -0.533055886626 --1.99060451984 -0.533067375422 --1.97334679961 -0.533080607653 --1.95608845353 -0.533095598221 --1.93882977963 -0.533103138208 --1.919613868 -0.533094927668 --1.90039625764 -0.533080026507 --1.88313740492 -0.53306683898 --1.86587926745 -0.53305542469 --1.84862136841 -0.533045753836 --1.83136403561 -0.533037871123 --1.81410679221 -0.533031731844 --1.79684996605 -0.533027365804 --1.77959316969 -0.533024728298 --1.76233667135 -0.533023893833 --1.745080024 -0.533024802804 --1.72782358527 -0.533027470112 --1.71056690812 -0.533031955361 --1.69331029057 -0.533038154244 --1.6760533154 -0.533046126366 --1.65879625082 -0.533055886626 --1.64153870941 -0.533067375422 --1.62428095937 -0.533080607653 --1.60702258349 -0.533095598221 --1.58976390958 -0.533103138208 --1.57054796815 -0.533094942569 --1.55133041739 -0.533080041408 --1.53407159447 -0.53306683898 --1.51681342721 -0.53305542469 --1.49955552817 -0.533045753836 --1.48229816556 -0.53303784132 --1.46504095197 -0.533031716943 --1.44778415561 -0.533027380705 --1.43052732945 -0.533024713397 --1.41327083111 -0.53302384913 --1.39601421356 -0.533024802804 --1.37875774503 -0.533027499914 --1.36150103808 -0.533031925559 --1.34424442053 -0.533038154245 --1.32698741555 -0.533046141267 --1.30973035097 -0.533055871725 --1.29247280955 -0.533067375422 --1.27521508932 -0.533080607653 --1.25795674324 -0.533095598221 --1.24069806933 -0.533103138208 --1.22148215771 -0.533094927668 --1.20226457715 -0.533080026507 --1.18500572443 -0.53306683898 --1.16774758697 -0.53305542469 --1.15048965812 -0.533045753836 --1.13323229551 -0.533037871123 --1.11597508192 -0.533031731844 --1.09871825576 -0.533027365804 --1.0814614594 -0.533024728298 --1.06420499086 -0.533023893833 --1.04694834351 -0.533024802804 --1.02969190478 -0.53302745521 --1.01243522764 -0.533031925559 --0.995178580285 -0.533038139343 --0.977921575308 -0.533046126366 --0.960664525628 -0.533055886626 --0.94340698421 -0.533067375422 --0.926149219275 -0.533080607653 --0.908890843391 -0.533095628023 --0.891632184386 -0.533103168011 --0.872416272759 -0.533094927668 --0.853198722005 -0.533080026507 --0.835939899087 -0.53306683898 --0.81868173182 -0.53305542469 --0.801423817873 -0.533045753836 --0.784166440368 -0.533037871123 --0.766909211874 -0.533031731844 --0.749652415514 -0.533027365804 --0.732395589352 -0.533024728298 --0.715139120817 -0.533023893833 --0.697882503271 -0.533024802804 --0.680626034737 -0.533027470112 --0.663369372487 -0.533031925559 --0.64611274004 -0.533038139343 --0.628855735064 -0.533046126366 --0.611598715186 -0.533055871725 --0.594341143966 -0.533067375422 --0.577083393932 -0.533080607653 --0.559825047851 -0.533095598221 --0.542566359043 -0.533103138208 --0.523350432515 -0.533094927668 --0.50413287431 -0.533080041408 --0.486874036491 -0.533066853881 --0.469615884125 -0.53305542469 --0.452357970178 -0.533045738935 --0.435100607574 -0.533037856221 --0.417843386531 -0.533031731844 --0.400586567819 -0.533027365804 --0.383329771459 -0.533024728298 --0.366073280573 -0.533023893833 --0.348816648126 -0.533024832606 --0.331560209394 -0.533027499914 --0.314303517341 -0.53303194046 --0.297046892345 -0.533038154244 --0.27978990227 -0.533046141267 --0.262532845139 -0.533055886626 --0.245275285095 -0.533067375422 --0.228017538786 -0.533080607653 --0.210759174079 -0.533095598221 --0.193500503898 -0.533103138208 --0.17428458482 -0.550259843468 --0.155061420053 -0.550244554877 --0.137802563608 -0.550231024623 --0.12054438144 -0.550219297409 --0.103286448866 -0.550209358335 --0.0860290676356 -0.550201281905 --0.0687718093395 -0.550194978714 --0.0515149794519 -0.550190493464 --0.0342581500299 -0.550187796354 --0.0170016260818 -0.550186932087 -0.000255020102485 -0.55018787086 -0.0175114825833 -0.550190612674 -0.0347681911662 -0.550195172429 -0.0520248413086 -0.550201550126 -0.0692818667739 -0.550209760666 -0.0865389537066 -0.550219774246 -0.103796536103 -0.550231575966 -0.121054301039 -0.550245165825 -0.138312686235 -0.550260543823 -0.155571378768 -0.550268262625 -0.174787081778 -0.550259828567 -0.194004435092 -0.550244539976 -0.211263291538 -0.550231039524 -0.228521473706 -0.55021931231 -0.24577940628 -0.550209358335 -0.26303678751 -0.550201281905 -0.280294045806 -0.550194963813 -0.297550864518 -0.550190478563 -0.31480769813 -0.550187811255 -0.33206423372 -0.550186932087 -0.349320873618 -0.550187855959 -0.366577334702 -0.550190612674 -0.383834034205 -0.55019518733 -0.401090681553 -0.550201565027 -0.418347708881 -0.550209760666 -0.435604795814 -0.550219759345 -0.452862381935 -0.550231575966 -0.470120154321 -0.550245165825 -0.487378545105 -0.550260573625 -0.504637233913 -0.550268307328 -0.523852929473 -0.550259843468 -0.543070271611 -0.550244554877 -0.560329139233 -0.550231024623 -0.577587336302 -0.550219297409 -0.59484526515 -0.550209358335 -0.612102642655 -0.550201281905 -0.62935988605 -0.550194978714 -0.646616697311 -0.550190493464 -0.663873538375 -0.550187811255 -0.681130081415 -0.550186932087 -0.698386728764 -0.550187855959 -0.715643182397 -0.550190612674 -0.73289988935 -0.55019518733 -0.750156536699 -0.550201550126 -0.767413556576 -0.550209745765 -0.784670650959 -0.550219774246 -0.80192823708 -0.550231590867 -0.819185987115 -0.550245165825 -0.836444377899 -0.550260528922 -0.853703096509 -0.550268262625 -0.87291879952 -0.550259843468 -0.892136126757 -0.550244539976 -0.909394979477 -0.550231009722 -0.926653191447 -0.550219297409 -0.943911120295 -0.550209358335 -0.961168482899 -0.550201281905 -0.978425741196 -0.550194978714 -0.995682597161 -0.550190493464 -1.01293942332 -0.550187796354 -1.03019592166 -0.550186917186 -1.04745256901 -0.55018787086 -1.06470903755 -0.550190627575 -1.0819657445 -0.55019518733 -1.09922239185 -0.550201565027 -1.11647942662 -0.550209760666 -1.133736521 -0.550219759345 -1.15099409222 -0.550231561065 -1.16825184226 -0.550245150924 -1.18551021814 -0.550260528922 -1.20276892185 -0.550268262625 -1.22198465466 -0.550259843468 -1.2412019968 -0.550244554877 -1.25846084952 -0.550231024623 -1.27571904659 -0.550219297409 -1.29297697544 -0.550209358335 -1.31023436785 -0.550201281905 -1.32749161124 -0.550194978714 -1.34474840761 -0.550190493464 -1.36200526357 -0.550187811255 -1.37926179171 -0.550186932087 -1.39651840925 -0.550187841057 -1.41377487779 -0.550190597772 -1.43103158474 -0.55019518733 -1.44828823209 -0.550201565027 -1.46554526687 -0.550209760666 -1.48280233145 -0.550219759345 -1.50005993247 -0.550231575966 -1.51731771231 -0.550245180726 -1.53457605839 -0.550260543823 -1.5518347621 -0.550268262625 -1.57105049491 -0.550259828567 -1.59026786685 -0.550244510174 -1.60752668977 -0.55023099482 -1.62478485703 -0.550219282508 -1.64204281568 -0.550209343433 -1.65930017829 -0.550201252103 -1.67655745149 -0.550194948912 -1.69381430745 -0.550190493464 -1.71107110381 -0.550187796354 -1.72832763195 -0.550186917186 -1.7455842793 -0.550187885761 -1.76284071803 -0.550190642476 -1.78009745479 -0.55019518733 -1.79735410214 -0.550201579929 -1.81461110711 -0.550209775567 -1.83186820149 -0.550219774246 -1.84912577271 -0.550231575966 -1.86638355255 -0.550245150924 -1.88364195824 -0.550260543823 -1.90090063214 -0.550268277526 -1.92011630535 -0.550259843468 -1.93933364749 -0.550244525075 -1.95659253001 -0.55023099482 -1.97385072708 -0.550219297409 -1.99110865593 -0.550209358335 -2.00836598873 -0.550201281905 -2.02562326193 -0.550194963813 -2.04288011789 -0.550190478563 -2.06013691425 -0.550187811255 -2.07739347219 -0.550186932087 -2.09465014935 -0.550187855959 -2.11190664768 -0.550190612674 -2.12916338444 -0.550195202231 -2.14642000199 -0.550201579928 -2.16367697716 -0.550209760666 -2.18093407154 -0.550219774246 -2.19819170236 -0.550231590867 -2.2154494524 -0.550245165825 -2.23270779848 -0.550260573625 -2.24996650219 -0.550268307328 -2.26918226481 -0.550259828567 -2.28839957714 -0.550244539976 -2.30565834045 -0.550231024623 -2.32291650772 -0.550219297409 -2.34017449617 -0.550209358335 -2.35743194819 -0.550201281905 -2.37468916178 -0.550194978714 -2.39194589853 -0.550190493464 -2.4092027545 -0.550187811255 -2.42645931244 -0.550186932087 -2.44371592999 -0.550187855959 -2.46097242832 -0.550190612674 -2.47822916508 -0.55019518733 -2.49548578263 -0.550201579929 -2.5127427578 -0.550209775567 -2.52999985218 -0.550219774246 -2.54725748301 -0.550231590867 -2.56451529264 -0.550245165825 -2.58177369833 -0.550260528922 -2.59903234243 -0.550268262625 -2.61824804545 -0.550259828567 -2.63746541739 -0.550244554877 -2.65472429991 -0.550231039524 -2.67198246717 -0.550219297409 -2.68924039602 -0.550209358335 -2.70649778843 -0.550201281905 -2.72375500202 -0.550194978714 -2.74101185798 -0.550190493464 -2.75826865435 -0.550187811255 -2.77552515268 -0.550186932087 -2.79278182983 -0.550187885761 -2.81003826856 -0.550190642476 -2.82729494572 -0.55019518733 -2.84455162287 -0.550201579929 -2.86180865764 -0.550209775567 -2.87906569242 -0.550219759345 -2.89632332325 -0.550231575966 -2.91358113289 -0.550245165825 -2.93083947897 -0.550260528922 -2.94809818268 -0.550268262625 -2.96731388569 -0.550259843468 -2.98653125763 -0.550244554877 -3.00379014015 -0.550231024623 -3.02104830742 -0.550219297409 -3.03830623627 -0.550209358335 -3.05556356907 -0.550201281905 -3.07282078266 -0.550194978714 -3.09007763862 -0.550190493464 -3.10733449459 -0.550187796354 -3.12459099293 -0.550186932087 --3.14133766492 -0.55018787086 --3.1240811944 -0.550190612674 --3.10682451725 -0.550195172429 --3.0895678401 -0.550201550126 --3.07231074571 -0.550209760666 --3.05505371094 -0.550219774246 --3.03779613972 -0.550231575966 --3.02053833008 -0.550245165825 --3.003279984 -0.550260543823 --2.98602128029 -0.550268262625 --2.96680557728 -0.550259828567 --2.94758820534 -0.550244539976 --2.93032932282 -0.550231039524 --2.91307115555 -0.55021931231 --2.8958132267 -0.550209358335 --2.8785558939 -0.550201281905 --2.8612986803 -0.550194963813 --2.84404182434 -0.550190478563 --2.82678496838 -0.550187811255 --2.80952841044 -0.550186932087 --2.79227173328 -0.550187855959 --2.77501529455 -0.550190612674 --2.7577586174 -0.55019518733 --2.74050194025 -0.550201565027 --2.72324490547 -0.550209760666 --2.70598781109 -0.550219759345 --2.68873023987 -0.550231575966 --2.67147254944 -0.550245165825 --2.65421414375 -0.550260573625 --2.63695538044 -0.550268307328 --2.61773973703 -0.550259843468 --2.5985224247 -0.550244554877 --2.58126354218 -0.550231024623 --2.56400537491 -0.550219297409 --2.54674744606 -0.550209358335 --2.52948999405 -0.550201281905 --2.51223272085 -0.550194978714 --2.4949759841 -0.550190493464 --2.47771912813 -0.550187811255 --2.46046257019 -0.550186932087 --2.44320595264 -0.550187855959 --2.42594945431 -0.550190612674 --2.40869271755 -0.55019518733 --2.3914361 -0.550201550126 --2.37417912483 -0.550209745765 --2.35692203045 -0.550219774246 --2.33966439962 -0.550231590867 --2.32240664959 -0.550245165825 --2.30514824391 -0.550260528922 --2.2878895402 -0.550268262625 --2.26867383718 -0.550259843468 --2.24945652485 -0.550244539976 --2.23219770193 -0.550231009722 --2.21493941546 -0.550219297409 --2.19768148661 -0.550209358335 --2.1804241538 -0.550201281905 --2.16316688061 -0.550194978714 --2.14591002465 -0.550190493464 --2.12865322829 -0.550187796354 --2.11139672995 -0.550186917186 --2.0941401124 -0.55018787086 --2.07688367367 -0.550190627575 --2.05962693691 -0.55019518733 --2.04237031936 -0.550201565027 --2.02511328459 -0.550209760666 --2.0078561306 -0.550219759345 --1.99059852958 -0.550231561065 --1.97334080935 -0.550245150924 --1.95608243346 -0.550260528922 --1.93882372975 -0.550268262625 --1.91960802674 -0.550259843468 --1.9003906548 -0.550244554877 --1.88313177228 -0.550231024623 --1.86587360501 -0.550219297409 --1.84861570597 -0.550209358335 --1.83135834336 -0.550201281905 --1.81410107016 -0.550194978714 --1.7968442142 -0.550190493464 --1.77958738804 -0.550187811255 --1.7623308599 -0.550186932087 --1.74507421255 -0.550187841057 --1.72781777382 -0.550190597772 --1.71056106687 -0.55019518733 --1.69330441952 -0.550201565027 --1.67604741455 -0.550209760666 --1.65879032016 -0.550219759345 --1.64153274894 -0.550231575966 --1.6242749691 -0.550245180726 --1.60701656341 -0.550260543823 --1.5897578597 -0.550268262625 --1.57054215669 -0.550259828567 --1.55132484436 -0.550244510174 --1.53406599164 -0.55023099482 --1.51680779457 -0.550219282508 --1.49954986572 -0.550209343433 --1.48229247332 -0.550201252103 --1.46503522992 -0.550194948912 --1.44777840376 -0.550190493464 --1.4305215478 -0.550187796354 --1.41326504946 -0.550186917186 --1.39600840211 -0.550187885761 --1.37875190378 -0.550190642476 --1.36149516702 -0.55019518733 --1.34423851967 -0.550201579929 --1.3269815445 -0.550209775567 --1.30972445011 -0.550219774246 --1.29246684909 -0.550231575966 --1.27520909906 -0.550245150924 --1.25795072317 -0.550260543823 --1.24069204926 -0.550268277526 --1.22147634625 -0.550259843468 --1.20225897431 -0.550244525075 --1.18500009179 -0.55023099482 --1.16774192453 -0.550219297409 --1.15048399568 -0.550209358335 --1.13322660327 -0.550201281905 --1.11596935988 -0.550194963813 --1.09871253372 -0.550190478563 --1.08145570755 -0.550187811255 --1.06419917941 -0.550186932087 --1.04694250226 -0.550187855959 --1.02968603373 -0.550190612674 --1.01242935658 -0.550195202231 --0.995172709229 -0.550201579928 --0.977915674448 -0.550209760666 --0.960658594966 -0.550219774246 --0.943401008844 -0.550231590867 --0.926143229008 -0.550245165825 --0.908884838223 -0.550260573625 --0.891626164317 -0.550268307328 --0.872410461307 -0.550259828567 --0.853193089366 -0.550244539976 --0.835934251547 -0.550231024623 --0.81867608428 -0.550219297409 --0.801418140531 -0.550209358335 --0.784160748124 -0.550201281905 --0.76690350473 -0.550194978714 --0.749646693468 -0.550190493464 --0.732389837504 -0.550187811255 --0.715133309364 -0.550186932087 --0.697876676917 -0.550187855959 --0.680620208382 -0.550190612674 --0.663363501429 -0.55019518733 --0.64610683918 -0.550201579929 --0.628849834204 -0.550209775567 --0.611592784524 -0.550219774246 --0.5943351686 -0.550231590867 --0.577077388764 -0.550245165825 --0.559819027782 -0.550260528922 --0.542560338974 -0.550268262625 --0.523344621062 -0.550259828567 --0.504127249122 -0.550244554877 --0.486868403852 -0.550231039524 --0.469610229134 -0.550219297409 --0.452352292835 -0.550209358335 --0.43509490788 -0.550201281905 --0.417837649584 -0.550194978714 --0.400580823421 -0.550190493464 --0.38332401216 -0.550187811255 --0.366067491472 -0.550186932087 --0.348810829223 -0.550187885761 --0.331554375589 -0.550190642476 --0.314297668636 -0.55019518733 --0.297041006386 -0.550201579929 --0.279783986509 -0.550209775567 --0.262526899576 -0.550219759345 --0.245269313454 -0.550231575966 --0.228011552244 -0.550245165825 --0.210753168911 -0.550260528922 --0.193494472653 -0.550268262625 --0.174278769642 -0.567390888929 --0.155055779964 -0.567375212908 --0.137796901167 -0.567361339927 --0.12053869851 -0.567349299789 --0.103280739859 -0.567339122295 --0.0860233344138 -0.567330822349 --0.0687660509721 -0.567324355245 --0.0515091978013 -0.567319780588 --0.0342523474246 -0.567317023874 --0.0169957997277 -0.567316129804 -0.00026087113656 -0.567317098379 -0.0175173582975 -0.567319914698 -0.0347740920261 -0.567324578762 -0.0520307663828 -0.567331135273 -0.0692878169939 -0.567339554429 -0.0865449290722 -0.567349791527 -0.103802530095 -0.567361876368 -0.121060311794 -0.567375823855 -0.13831871748 -0.567391604185 -0.155577439815 -0.567399531603 -0.174792937935 -0.567390888929 -0.194010071456 -0.567375212908 -0.211268946528 -0.567361354828 -0.228527154773 -0.56734931469 -0.245785109699 -0.567339122295 -0.263042517007 -0.567330822349 -0.280299797655 -0.567324325442 -0.297556646168 -0.567319750786 -0.314813509583 -0.567317023874 -0.332070060074 -0.567316114903 -0.349326722324 -0.567317083478 -0.36658321321 -0.567319914698 -0.383839942515 -0.567324578762 -0.401096604764 -0.567331135273 -0.418353654444 -0.567339539528 -0.435610763728 -0.567349761725 -0.452868364751 -0.567361876368 -0.470126159489 -0.567375823855 -0.487384572625 -0.567391604185 -0.504643283784 -0.567399546504 -0.523858770728 -0.567390888929 -0.543075919151 -0.567375212908 -0.560334801674 -0.567361339927 -0.577593013644 -0.567349299789 -0.594850972295 -0.567339092493 -0.612108364701 -0.567330792546 -0.629365652799 -0.567324340344 -0.646622508764 -0.567319765687 -0.663879349828 -0.567317023874 -0.681135892868 -0.567316114903 -0.698392570019 -0.567317083478 -0.715649068356 -0.567319914698 -0.73290579021 -0.567324578762 -0.750162452459 -0.567331120372 -0.767419502139 -0.567339524627 -0.784676626325 -0.567349791527 -0.801934242249 -0.567361906171 -0.819192007184 -0.567375823855 -0.836450412869 -0.567391589284 -0.853709161281 -0.567399531603 -0.872924655676 -0.56739090383 -0.892141774297 -0.567375198007 -0.909400656819 -0.567361310124 -0.92665886879 -0.567349299789 -0.943916812539 -0.567339092493 -0.961174204945 -0.567330807447 -0.978431493044 -0.567324355245 -0.995688363909 -0.567319750786 -1.01294520498 -0.567317008972 -1.03020173311 -0.567316114903 -1.04745841026 -0.567317068577 -1.0647149086 -0.567319899797 -1.08197164536 -0.567324563861 -1.09922832251 -0.567331105471 -1.11648538709 -0.567339539528 -1.13374248147 -0.567349791527 -1.15100008249 -0.567361876368 -1.16825786233 -0.567375808954 -1.18551626802 -0.567391589284 -1.20277500153 -0.567399516702 -1.22199046612 -0.567390874028 -1.24120759964 -0.567375212908 -1.25846648217 -0.567361339927 -1.27572470904 -0.567349299789 -1.29298266769 -0.567339122295 -1.31024006009 -0.56733083725 -1.32749736309 -0.567324355245 -1.34475421906 -0.567319765687 -1.36201107502 -0.567317023874 -1.37926760316 -0.567316114903 -1.39652425051 -0.567317068577 -1.41378077865 -0.567319899797 -1.4310375154 -0.567324578762 -1.44829416275 -0.567331135273 -1.46555119753 -0.567339539528 -1.48280829191 -0.567349761725 -1.50006592273 -0.567361876368 -1.51732373237 -0.567375853657 -1.53458210826 -0.567391619086 -1.55184081197 -0.567399531603 -1.57105633617 -0.567390888929 -1.59027349949 -0.567375183106 -1.60753235221 -0.567361310124 -1.62479051947 -0.567349284887 -1.64204850793 -0.567339077592 -1.65930593014 -0.567330792546 -1.67656320334 -0.567324325442 -1.6938200593 -0.567319735885 -1.71107688546 -0.567317008972 -1.7283334434 -0.567316114903 -1.74559012055 -0.567317083478 -1.76284658909 -0.567319914698 -1.78010332585 -0.567324593663 -1.797360003 -0.567331150174 -1.81461706757 -0.567339539528 -1.83187419176 -0.567349776626 -1.84913179278 -0.567361876368 -1.86638960242 -0.567375823855 -1.88364800811 -0.567391619086 -1.90090668202 -0.567399546504 -1.92012214661 -0.56739090383 -1.93933928013 -0.567375198007 -1.95659819245 -0.567361310124 -1.97385641932 -0.567349299789 -1.99111437798 -0.567339122295 -2.00837174058 -0.56733083725 -2.02562904358 -0.567324340343 -2.04288589954 -0.567319750786 -2.0601426959 -0.567317023874 -2.07739931345 -0.567316114903 -2.0946559906 -0.567317083478 -2.11191248894 -0.567319914698 -2.1291692257 -0.567324593663 -2.14642584324 -0.567331150174 -2.16368287802 -0.567339539528 -2.1809399724 -0.567349776626 -2.19819766283 -0.567361891269 -2.21545553207 -0.567375823855 -2.23271387816 -0.567391619086 -2.24997252226 -0.567399561405 -2.26918804646 -0.567390888929 -2.28840517998 -0.567375212908 -2.30566400289 -0.567361339927 -2.32292222977 -0.567349299789 -2.34018021822 -0.567339122295 -2.35743767023 -0.567330822349 -2.37469494343 -0.567324340344 -2.39195173979 -0.567319765687 -2.40920859575 -0.567317023874 -2.42646515369 -0.567316114903 -2.44372183084 -0.567317083478 -2.46097832918 -0.567319914698 -2.47823506593 -0.567324593663 -2.49549174309 -0.567331150174 -2.51274877787 -0.567339539528 -2.53000587225 -0.567349776626 -2.54726350307 -0.567361891269 -2.56452131271 -0.567375823855 -2.5817797184 -0.567391589284 -2.59903842211 -0.567399531603 -2.6182538867 -0.567390874028 -2.63747102022 -0.567375198007 -2.65472990274 -0.567361339927 -2.67198807001 -0.567349299789 -2.68924605846 -0.567339122295 -2.70650351048 -0.567330822349 -2.72376072407 -0.567324340344 -2.74101758003 -0.567319750786 -2.758274436 -0.567317008972 -2.77553093433 -0.567316114903 -2.79278761148 -0.567317083478 -2.81004410982 -0.5673199296 -2.82730084658 -0.567324608564 -2.84455752373 -0.567331150174 -2.86181461811 -0.567339539528 -2.87907171249 -0.567349761725 -2.89632928371 -0.567361876368 -2.91358709335 -0.567375823855 -2.93084549904 -0.567391589284 -2.94810426235 -0.567399531603 -2.96731978655 -0.567390888929 -2.98653692007 -0.567375212908 -3.00379580259 -0.567361339927 -3.02105396986 -0.567349299789 -3.03831189871 -0.567339122295 -3.05556929112 -0.567330822349 -3.07282656431 -0.567324355245 -3.09008342028 -0.567319780588 -3.10734027624 -0.567317023874 -3.12459683418 -0.567316129804 --3.14133182366 -0.567317098379 --3.12407535314 -0.567319914698 --3.10681861639 -0.567324578762 --3.08956193924 -0.567331135273 --3.07230484486 -0.567339554429 --3.05504775048 -0.567349791527 --3.03779017925 -0.567361876368 --3.02053236961 -0.567375823855 --3.00327396393 -0.567391604185 --2.98601520061 -0.567399531603 --2.96679967642 -0.567390888929 --2.9475825429 -0.567375212908 --2.93032366038 -0.567361354828 --2.91306549311 -0.56734931469 --2.89580756426 -0.567339122295 --2.87855017185 -0.567330822349 --2.86129289865 -0.567324325442 --2.84403604269 -0.567319750786 --2.82677918673 -0.567317023874 --2.80952256918 -0.567316114903 --2.79226589203 -0.567317083478 --2.77500945329 -0.567319914698 --2.75775271654 -0.567324578762 --2.74049603939 -0.567331135273 --2.72323900461 -0.567339539528 --2.70598185063 -0.567349761725 --2.6887242198 -0.567361876368 --2.67146652937 -0.567375823855 --2.65420812369 -0.567391604185 --2.63694936037 -0.567399546504 --2.61773389578 -0.567390888929 --2.59851676226 -0.567375212908 --2.58125787974 -0.567361339927 --2.56399965286 -0.567349299789 --2.54674172401 -0.567339092493 --2.52948433161 -0.567330792546 --2.51222699881 -0.567324340344 --2.49497014284 -0.567319765687 --2.47771328688 -0.567317023874 --2.46045672894 -0.567316114903 --2.44320005179 -0.567317083478 --2.42594355345 -0.567319914698 --2.40868681669 -0.567324578762 --2.39143013954 -0.567331120372 --2.37417316437 -0.567339524627 --2.35691606999 -0.567349791527 --2.33965837956 -0.567361906171 --2.32240056992 -0.567375823855 --2.30514216423 -0.567391589284 --2.28788346052 -0.567399531603 --2.26866799593 -0.56739090383 --2.24945086241 -0.567375198007 --2.23219197989 -0.567361310124 --2.21493375301 -0.567349299789 --2.19767576456 -0.567339092493 --2.18041837215 -0.567330807447 --2.16316115856 -0.567324355245 --2.1459043026 -0.567319750786 --2.12864738703 -0.567317008972 --2.11139088869 -0.567316114903 --2.09413427115 -0.567317068577 --2.07687777281 -0.567319899797 --2.05962103605 -0.567324563861 --2.0423643589 -0.567331105471 --2.02510726452 -0.567339539528 --2.00785014033 -0.567349791527 --1.99059256911 -0.567361876368 --1.97333478928 -0.567375808954 --1.95607638359 -0.567391589284 --1.93881765008 -0.567399516702 --1.91960215568 -0.567390874028 --1.90038502216 -0.567375212908 --1.88312613964 -0.567361339927 --1.86586794257 -0.567349299789 --1.84860998392 -0.567339122295 --1.83135259151 -0.56733083725 --1.81409531832 -0.567324355245 --1.79683846235 -0.567319765687 --1.77958160639 -0.567317023874 --1.76232504845 -0.567316114903 --1.7450684011 -0.567317068577 --1.72781193257 -0.567319899797 --1.71055516601 -0.567324578762 --1.69329848886 -0.567331135273 --1.67604145408 -0.567339539528 --1.65878432989 -0.567349761725 --1.64152672887 -0.567361876368 --1.62426891923 -0.567375853657 --1.60701051355 -0.567391619086 --1.58975180984 -0.567399531603 --1.57053631544 -0.567390888929 --1.55131921172 -0.567375183106 --1.5340603292 -0.567361310124 --1.51680210233 -0.567349284887 --1.49954417348 -0.567339077592 --1.48228675127 -0.567330792546 --1.46502944827 -0.567324325442 --1.44777259231 -0.567319735885 --1.43051573634 -0.567317008972 --1.4132592082 -0.567316114903 --1.39600253105 -0.567317083478 --1.37874603272 -0.567319914698 --1.36148929596 -0.567324593663 --1.34423261881 -0.567331150174 --1.32697558403 -0.567339539528 --1.30971848965 -0.567349776626 --1.29246088862 -0.567361876368 --1.27520310879 -0.567375823855 --1.2579446733 -0.567391619086 --1.24068593979 -0.567399546504 --1.22147047519 -0.56739090383 --1.20225334167 -0.567375198007 --1.18499445915 -0.567361310124 --1.16773626209 -0.567349299789 --1.15047830343 -0.567339122295 --1.13322091102 -0.56733083725 --1.11596363783 -0.567324340343 --1.09870678187 -0.567319750786 --1.0814498961 -0.567317023874 --1.06419333815 -0.567316114903 --1.04693669081 -0.567317083478 --1.02968019247 -0.567319914698 --1.01242345572 -0.567324593663 --0.995166793467 -0.567331150174 --0.977909743786 -0.567339539528 --0.960652634501 -0.567349776626 --0.943395018578 -0.567361891269 --0.926137208939 -0.567375823855 --0.908878803253 -0.567391619086 --0.891620114446 -0.567399561405 --0.872404620051 -0.567390888929 --0.853187456727 -0.567375212908 --0.835928589105 -0.567361339927 --0.818670406938 -0.567349299789 --0.801412448287 -0.567339122295 --0.784155026078 -0.567330822349 --0.766897752881 -0.567324340344 --0.749640911818 -0.567319765687 --0.732384040952 -0.567317023874 --0.715127468109 -0.567316114903 --0.69787082076 -0.567317083478 --0.680614352226 -0.567319914698 --0.663357600569 -0.567324593663 --0.646100908518 -0.567331150174 --0.628843873739 -0.567339539528 --0.611586779356 -0.567349776626 --0.594329163432 -0.567361891269 --0.577071368694 -0.567375823855 --0.559812963009 -0.567391589284 --0.542554244399 -0.567399531603 --0.523338750005 -0.567390874028 --0.504121609032 -0.567375198007 --0.486862748861 -0.567361339927 --0.469604559243 -0.567349299789 --0.452346585691 -0.567339122295 --0.435089178383 -0.567330822349 --0.417831897736 -0.567324340344 --0.400575049222 -0.567319750786 --0.383318208158 -0.567317008972 --0.366061650216 -0.567316114903 --0.348804965615 -0.567317083478 --0.33154848963 -0.5673199296 --0.314291767776 -0.567324608564 --0.297035083175 -0.567331150174 --0.279778033495 -0.567339539528 --0.26252092421 -0.567349761725 --0.245263319462 -0.567361876368 --0.228005535901 -0.567375823855 --0.210747130215 -0.567391589284 --0.19348840788 -0.567399531603 --0.174272917211 -0.584503129124 --0.155050184577 -0.584487050772 --0.137791287154 -0.584472835064 --0.120533062145 -0.584460526705 --0.103275077418 -0.584450110793 --0.0860176458955 -0.584441587329 --0.0687603391707 -0.584434956312 --0.0515034617856 -0.584430277348 --0.0342465881258 -0.584427446127 --0.0169900178444 -0.584426522255 -0.000266676302998 -0.584427520633 -0.0175231874455 -0.584430426359 -0.0347799472511 -0.584435224533 -0.0520366458223 -0.584441944957 -0.0692937178537 -0.584450572729 -0.0865508541465 -0.584461048245 -0.103808477521 -0.584473416209 -0.121066285297 -0.584487691521 -0.138324715197 -0.584503859281 -0.155583459884 -0.584511995316 -0.174798749387 -0.584503144026 -0.194015666842 -0.584487080574 -0.211274560541 -0.584472849965 -0.228532794863 -0.584460526705 -0.245790775865 -0.584450125694 -0.2630482018 -0.584441617131 -0.28030551225 -0.584434956312 -0.297562390566 -0.584430262447 -0.314819261432 -0.584427446127 -0.332075826824 -0.584426537156 -0.349332526326 -0.584427535534 -0.366589047015 -0.584430411458 -0.383845798671 -0.584435209632 -0.401102490723 -0.584441930056 -0.418359562755 -0.584450528026 -0.435616694391 -0.584461003542 -0.452874317765 -0.584473416209 -0.470132134855 -0.584487706423 -0.487390562892 -0.584503859281 -0.504649303854 -0.584511995316 -0.523864597082 -0.584503129124 -0.543081521988 -0.584487050772 -0.560340419412 -0.584472835064 -0.577598661184 -0.584460526705 -0.594856649637 -0.584450095892 -0.612114056945 -0.584441587329 -0.629371345043 -0.584434956312 -0.646628245712 -0.584430262447 -0.663885131478 -0.584427461028 -0.681141674518 -0.584426552058 -0.69839836657 -0.584427535534 -0.715654894709 -0.584430411458 -0.732911646366 -0.584435209632 -0.750168338418 -0.584441944957 -0.7674254179 -0.584450542927 -0.784682556987 -0.584461033344 -0.801940187812 -0.58447343111 -0.81919798255 -0.584487691521 -0.836456403136 -0.584503859281 -0.853715166449 -0.584511995316 -0.872930452227 -0.584503144026 -0.892147362232 -0.584487080574 -0.909406259656 -0.584472849965 -0.926664486527 -0.584460526705 -0.94392247498 -0.584450095892 -0.961179897189 -0.58444160223 -0.978437200189 -0.584434971213 -0.995694100856 -0.584430262447 -1.01295095682 -0.584427446127 -1.03020751477 -0.584426522255 -1.04746422172 -0.584427520633 -1.06472074986 -0.584430426359 -1.08197751641 -0.584435209632 -1.09923419357 -0.584441915154 -1.11649125814 -0.584450557828 -1.13374838233 -0.584461063147 -1.15100601315 -0.584473446011 -1.16826382279 -0.584487706423 -1.18552225828 -0.584503859281 -1.20278102159 -0.584511980414 -1.22199627757 -0.584503099322 -1.24121320248 -0.584487050772 -1.2584721148 -0.584472849965 -1.27573034168 -0.584460526705 -1.29298833013 -0.584450125694 -1.31024575233 -0.584441632032 -1.32750308514 -0.584434971213 -1.3447599709 -0.584430277348 -1.36201682686 -0.584427461028 -1.3792733848 -0.584426537156 -1.39653009176 -0.584427535534 -1.4137866199 -0.584430426359 -1.43104335666 -0.584435224533 -1.44830006361 -0.584441930056 -1.46555712819 -0.584450542927 -1.48281422257 -0.584461033344 -1.5000718534 -0.584473416209 -1.51732969284 -0.584487706422 -1.53458812833 -0.584503874182 -1.55184686184 -0.584511995316 -1.57106214762 -0.584503144026 -1.59027907252 -0.584487065673 -1.60753795505 -0.584472835064 -1.62479615212 -0.584460541606 -1.64205414057 -0.584450110793 -1.65931159258 -0.584441587329 -1.67656889558 -0.584434956312 -1.69382578135 -0.584430247545 -1.71108266711 -0.584427431226 -1.72833922505 -0.584426537156 -1.74559590221 -0.584427535534 -1.76285243035 -0.584430411458 -1.78010919691 -0.584435209632 -1.79736587406 -0.584441930056 -1.81462293863 -0.584450542927 -1.83188009262 -0.584461033344 -1.84913775324 -0.584473416209 -1.86639556289 -0.584487706422 -1.88365396857 -0.584503874182 -1.90091270208 -0.584511995316 -1.92012795806 -0.584503144026 -1.93934488296 -0.584487065673 -1.95660382509 -0.584472835064 -1.97386205196 -0.584460526705 -1.99112004042 -0.584450110793 -2.00837746262 -0.584441617131 -2.02563476562 -0.584434971213 -2.04289162159 -0.584430262447 -2.06014847755 -0.584427461028 -2.0774050951 -0.584426552058 -2.09466177225 -0.584427535534 -2.11191827059 -0.584430426359 -2.12917500735 -0.584435239434 -2.14643168449 -0.584441959858 -2.16368877888 -0.584450542927 -2.18094587326 -0.584461018443 -2.19820356369 -0.584473416209 -2.21546143293 -0.584487691521 -2.23271983862 -0.584503874183 -2.24997854233 -0.584512010217 -2.2691937685 -0.584503144026 -2.28841072321 -0.584487080574 -2.30566966533 -0.584472849965 -2.32292789221 -0.584460526705 -2.34018582106 -0.584450125694 -2.35744327307 -0.584441617131 -2.37470060587 -0.584434956312 -2.39195746183 -0.584430262447 -2.4092143774 -0.584427461028 -2.42647093534 -0.584426552058 -2.44372761249 -0.584427535534 -2.46098411083 -0.584430411458 -2.47824084758 -0.584435209632 -2.49549758434 -0.584441944957 -2.51275467873 -0.584450542927 -2.53001183271 -0.584461018443 -2.54726946354 -0.58447343111 -2.56452727318 -0.584487706423 -2.58178567886 -0.584503859281 -2.59904444218 -0.584511995316 -2.61825972796 -0.584503129124 -2.63747662306 -0.584487050772 -2.65473550558 -0.584472835064 -2.67199373245 -0.584460526705 -2.68925178051 -0.584450125694 -2.70650923252 -0.584441617131 -2.72376650572 -0.584434956312 -2.74102336168 -0.584430247545 -2.75828021765 -0.584427431226 -2.77553677559 -0.584426522255 -2.79279345274 -0.584427520633 -2.81004995107 -0.584430426359 -2.82730674743 -0.584435239434 -2.84456348419 -0.584441944957 -2.86182057858 -0.584450542927 -2.87907767296 -0.584461018443 -2.89633524418 -0.584473416209 -2.91359305382 -0.584487706423 -2.93085151911 -0.584503859281 -2.94811028242 -0.584511995316 -2.9673255682 -0.584503129124 -2.9865424633 -0.584487050772 -3.00380134582 -0.584472835064 -3.0210595727 -0.584460526705 -3.03831756115 -0.584450110793 -3.05557501316 -0.584441587329 -3.07283234596 -0.584434956312 -3.09008920193 -0.584430277348 -3.10734605789 -0.584427446127 -3.12460267544 -0.584426522255 --3.14132598241 -0.584427520633 --3.12406951189 -0.584430426359 --3.10681271553 -0.584435224533 --3.08955597877 -0.584441944957 --3.07229888439 -0.584450572729 --3.05504179001 -0.584461048245 --3.03778421879 -0.584473416209 --3.02052640915 -0.584487691521 --3.00326794386 -0.584503859281 --2.98600918054 -0.584511995316 --2.96679389477 -0.584503144026 --2.94757699967 -0.584487080574 --2.93031811714 -0.584472849965 --2.91305989027 -0.584460526705 --2.89580190182 -0.584450125694 --2.87854444981 -0.584441617131 --2.86128711701 -0.584434956312 --2.84403026104 -0.584430262447 --2.82677340508 -0.584427446127 --2.80951678753 -0.584426537156 --2.79226011038 -0.584427535534 --2.77500361204 -0.584430411458 --2.75774687528 -0.584435209632 --2.74049019813 -0.584441930056 --2.72323310375 -0.584450528026 --2.70597594977 -0.584461003542 --2.68871831894 -0.584473416209 --2.67146056891 -0.584487706423 --2.65420210362 -0.584503859281 --2.6369433403 -0.584511995316 --2.61772805452 -0.584503129124 --2.59851109982 -0.584487050772 --2.58125221729 -0.584472835064 --2.56399399042 -0.584460526705 --2.54673606157 -0.584450095892 --2.52947866917 -0.584441587329 --2.51222133637 -0.584434956312 --2.49496436119 -0.584430262447 --2.47770750523 -0.584427461028 --2.46045100689 -0.584426552058 --2.44319427014 -0.584427535534 --2.4259377718 -0.584430411458 --2.40868103504 -0.584435209632 --2.39142429828 -0.584441944957 --2.37416726351 -0.584450542927 --2.35691010952 -0.584461033344 --2.33965241909 -0.58447343111 --2.32239460945 -0.584487691521 --2.30513620377 -0.584503859281 --2.28787744045 -0.584511995316 --2.26866215467 -0.584503144026 --2.24944525957 -0.584487080574 --2.23218637705 -0.584472849965 --2.21492815018 -0.584460526705 --2.19767010212 -0.584450095892 --2.18041270971 -0.58444160223 --2.16315549612 -0.584434971213 --2.14589858055 -0.584430262447 --2.12864160538 -0.584427446127 --2.11138510704 -0.584426522255 --2.0941284895 -0.584427520633 --2.07687193155 -0.584430426359 --2.05961513519 -0.584435209632 --2.04235845804 -0.584441915154 --2.02510136366 -0.584450557828 --2.00784420967 -0.584461063147 --1.99058663845 -0.584473446011 --1.97332882881 -0.584487706423 --1.95607039332 -0.584503859281 --1.93881163001 -0.584511980414 --1.91959634423 -0.584503099322 --1.90037944913 -0.584487050772 --1.88312056661 -0.584472849965 --1.86586230993 -0.584460526705 --1.84860429168 -0.584450125694 --1.83134689927 -0.584441632032 --1.81408962607 -0.584434971213 --1.79683274031 -0.584430277348 --1.77957585454 -0.584427461028 --1.7623192966 -0.584426537156 --1.74506261945 -0.584427535534 --1.72780609131 -0.584430426359 --1.71054929495 -0.584435224533 --1.693292588 -0.584441930056 --1.67603552341 -0.584450542927 --1.65877839923 -0.584461033344 --1.6415207684 -0.584473416209 --1.62426292896 -0.584487706422 --1.60700452328 -0.584503874182 --1.58974581957 -0.584511995316 --1.57053050398 -0.584503144026 --1.55131357908 -0.584487065673 --1.53405469656 -0.584472835064 --1.51679646969 -0.584460541606 --1.49953851104 -0.584450110793 --1.48228105902 -0.584441587329 --1.46502372623 -0.584434956312 --1.44776687026 -0.584430247545 --1.4305100143 -0.584427431226 --1.41325342655 -0.584426537156 --1.3959967196 -0.584427535534 --1.37874022126 -0.584430411458 --1.36148348451 -0.584435209632 --1.34422677755 -0.584441930056 --1.32696968317 -0.584450542927 --1.30971255899 -0.584461033344 --1.29245495796 -0.584473416209 --1.27519714832 -0.584487706422 --1.25793868303 -0.584503874182 --1.24067991972 -0.584511995316 --1.22146466374 -0.584503144026 --1.20224773884 -0.584487065673 --1.18498882652 -0.584472835064 --1.16773059964 -0.584460526705 --1.15047261119 -0.584450110793 --1.13321521878 -0.584441617131 --1.11595794558 -0.584434971213 --1.09870105982 -0.584430262447 --1.08144414425 -0.584427461028 --1.0641875565 -0.584426552058 --1.04693087936 -0.584427535534 --1.02967438102 -0.584430426359 --1.01241761446 -0.584435239434 --0.995160907508 -0.584441959858 --0.977903842926 -0.584450542927 --0.960646718741 -0.584461018443 --0.943389087916 -0.584473416209 --0.926131263375 -0.584487691521 --0.908872812987 -0.584503874183 --0.891614079476 -0.584512010217 --0.8723988235 -0.584503144026 --0.853181898594 -0.584487080574 --0.83592300117 -0.584472849965 --0.818664774298 -0.584460526705 --0.801406785845 -0.584450125694 --0.784149348736 -0.584441617131 --0.766892045736 -0.584434956312 --0.749635174871 -0.584430262447 --0.732378274203 -0.584427461028 --0.715121686458 -0.584426552058 --0.697865024209 -0.584427535534 --0.680608525872 -0.584430411458 --0.663351759314 -0.584435209632 --0.646095052361 -0.584441944957 --0.628837972879 -0.584450542927 --0.611580833793 -0.584461018443 --0.594323217869 -0.58447343111 --0.57706540823 -0.584487706423 --0.559806972742 -0.584503859281 --0.542548209429 -0.584511995316 --0.523332923651 -0.584503129124 --0.504116028547 -0.584487050772 --0.486857138574 -0.584472835064 --0.469598919153 -0.584460526705 --0.45234092325 -0.584450125694 --0.43508349359 -0.584441617131 --0.417826190591 -0.584434956312 --0.400569312274 -0.584430247545 --0.383312448859 -0.584427431226 --0.366055868566 -0.584426522255 --0.348799169064 -0.584427520633 --0.331542670727 -0.584430426359 --0.31428591162 -0.584435239434 --0.297029204666 -0.584441944957 --0.279772132635 -0.584450542927 --0.262515000999 -0.584461018443 --0.245257377625 -0.584473416209 --0.227999567986 -0.584487706423 --0.210741132498 -0.584503859281 --0.193482384086 -0.584511995316 --0.174267105758 -0.601597994566 --0.15504463762 -0.601581543684 --0.137785717845 -0.601567000151 --0.120527468622 -0.60155442357 --0.103269465268 -0.601543754339 --0.0860120076686 -0.60153503716 --0.0687546767295 -0.601528257131 --0.0514977741986 -0.601523444057 --0.0342408758588 -0.601520553231 --0.0169842829928 -0.601519614458 -0.000272434204815 -0.601520642638 -0.0175289693288 -0.601523637772 -0.0347857521847 -0.601528540253 -0.0520424740389 -0.601535409689 -0.0692995702848 -0.601544231176 -0.0865567289293 -0.601554960012 -0.103814376518 -0.601567625999 -0.121072214097 -0.601582229137 -0.138330668211 -0.601598784328 -0.155589431524 -0.601607084274 -0.174804508686 -0.601598009467 -0.194021217525 -0.601581588387 -0.2112801373 -0.601567029953 -0.228538393974 -0.60155442357 -0.245796401054 -0.60154376924 -0.26305384934 -0.601535066962 -0.280311182141 -0.601528272033 -0.29756808281 -0.601523458958 -0.314824968577 -0.601520568132 -0.33208155632 -0.60151964426 -0.349338278174 -0.60152065754 -0.366594821214 -0.601523593068 -0.383851595223 -0.601528510451 -0.401108317077 -0.601535394788 -0.418365426362 -0.601544201374 -0.435622572899 -0.60155493021 -0.452880218625 -0.601567625999 -0.470138072967 -0.601582244038 -0.487396515906 -0.601598784328 -0.50465528667 -0.601607084274 -0.523870378733 -0.601597994566 -0.543087080121 -0.601581558585 -0.560345992446 -0.601567015052 -0.57760424912 -0.60155442357 -0.594862267375 -0.60154376924 -0.612119704485 -0.601535081863 -0.629377007484 -0.601528286934 -0.646633923054 -0.601523458958 -0.663890838623 -0.601520583034 -0.681147411466 -0.601519659162 -0.69840413332 -0.60152065754 -0.715660691261 -0.601523593068 -0.73291747272 -0.601528510451 -0.750174179673 -0.601535409689 -0.767431274057 -0.601544216275 -0.784688442945 -0.601554945111 -0.801946088671 -0.601567625999 -0.819203898311 -0.601582229137 -0.836462348699 -0.601598784328 -0.853721126914 -0.601607084274 -0.872936189175 -0.601597994566 -0.892152905464 -0.601581573486 -0.90941183269 -0.601567029953 -0.926670089364 -0.60155442357 -0.94392810762 -0.60154376924 -0.961185544729 -0.601535066962 -0.97844286263 -0.601528272033 -0.9956997782 -0.601523473859 -1.01295664907 -0.601520583034 -1.03021323681 -0.601519629359 -1.04746997357 -0.601520642638 -1.06472653151 -0.601523622871 -1.08198332787 -0.601528540253 -1.09924003482 -0.601535394788 -1.1164970994 -0.601544216275 -1.13375425339 -0.601554960012 -1.15101191402 -0.6015676409 -1.16826975345 -0.601582244038 -1.18552821874 -0.601598784328 -1.20278698206 -0.601607084274 -1.22200205922 -0.601597979665 -1.24121877551 -0.601581558585 -1.25847771764 -0.601567029953 -1.27573597431 -0.60155442357 -1.29299396276 -0.60154376924 -1.31025141478 -0.601535066962 -1.32750874758 -0.601528272033 -1.34476563334 -0.601523473859 -1.36202251911 -0.601520583034 -1.37927913666 -0.60151964426 -1.39653587341 -0.60152065754 -1.41379237175 -0.601523622871 -1.43104913831 -0.601528525353 -1.44830587506 -0.601535379886 -1.46556296945 -0.601544216275 -1.48282012344 -0.601554960012 -1.50007778406 -0.601567625999 -1.5173356235 -0.601582244038 -1.53459408879 -0.601598784327 -1.55185285211 -0.601607069373 -1.57106789947 -0.601597994566 -1.59028461575 -0.601581543684 -1.60754352808 -0.601567000151 -1.62480175495 -0.601554438472 -1.6420597732 -0.60154376924 -1.65931722522 -0.601535066962 -1.67657455802 -0.601528272033 -1.69383147359 -0.601523444057 -1.71108838915 -0.601520568132 -1.7283449769 -0.60151964426 -1.74560168386 -0.601520672441 -1.7628582418 -0.60152362287 -1.78011503816 -0.601528525352 -1.79737174511 -0.601535394788 -1.81462880969 -0.601544216275 -1.83188596368 -0.601554960012 -1.8491436243 -0.601567625999 -1.86640146374 -0.601582229137 -1.88365989923 -0.601598784328 -1.90091866255 -0.601607084274 -1.92013373971 -0.601597994566 -1.939350456 -0.601581543684 -1.95660939813 -0.601567000151 -1.9738676548 -0.60155442357 -1.99112564325 -0.601543754339 -2.00838306546 -0.601535052061 -2.02564042806 -0.601528272033 -2.04289734363 -0.601523458958 -2.0601541996 -0.601520583034 -2.07741081714 -0.601519659162 -2.0946675539 -0.601520672441 -2.11192405224 -0.601523637772 -2.1291808486 -0.601528555155 -2.14643758535 -0.60153542459 -2.16369467974 -0.601544216275 -2.18095183372 -0.601554945111 -2.19820952415 -0.601567625999 -2.21546733379 -0.601582229137 -2.23272573948 -0.601598784328 -2.24998450279 -0.601607084274 -2.26919955015 -0.601597994566 -2.28841632605 -0.601581558585 -2.30567526817 -0.601567015052 -2.32293349505 -0.60155442357 -2.3401914835 -0.60154376924 -2.35744893551 -0.601535066962 -2.37470626831 -0.601528272033 -2.39196312427 -0.601523458958 -2.40922003984 -0.601520583034 -2.42647665739 -0.601519659162 -2.44373333454 -0.601520672441 -2.46098989248 -0.60152362287 -2.47824668884 -0.601528525352 -2.4955034256 -0.601535409689 -2.51276051998 -0.601544216275 -2.53001767397 -0.601554945111 -2.5472753644 -0.6015676409 -2.56453323364 -0.601582244038 -2.58179163933 -0.601598784328 -2.59905040264 -0.601607084274 -2.61826550961 -0.601597994566 -2.63748216629 -0.601581558585 -2.65474104881 -0.601567015052 -2.67199933529 -0.60155442357 -2.68925738335 -0.60154376924 -2.70651483536 -0.601535066962 -2.72377216816 -0.601528272033 -2.74102908373 -0.601523458958 -2.7582859993 -0.601520568132 -2.77554255724 -0.601519629359 -2.79279923439 -0.601520657539 -2.81005579233 -0.60152362287 -2.82731258869 -0.601528540253 -2.84456932545 -0.601535409689 -2.86182641983 -0.601544216275 -2.87908351421 -0.601554945111 -2.89634114504 -0.601567625999 -2.91359901428 -0.601582244038 -2.93085747957 -0.601598784328 -2.94811624289 -0.601607084274 -2.96733129025 -0.601597994566 -2.98654794693 -0.601581543684 -3.00380688906 -0.601567000151 -3.02106517553 -0.60155442357 -3.03832316399 -0.601543754339 -3.055580616 -0.60153503716 -3.0728380084 -0.601528257131 -3.09009492397 -0.601523444057 -3.10735177994 -0.601520553231 -3.12460839748 -0.601519614458 --3.14132020076 -0.601520642638 --3.12406367063 -0.601523637772 --3.10680687427 -0.601528540253 --3.08955013752 -0.601535409689 --3.07229304314 -0.601544231176 --3.05503594876 -0.601554960012 --3.03777831793 -0.601567625999 --3.02052044869 -0.601582229137 --3.00326192379 -0.601598784328 --2.98600316048 -0.601607084274 --2.96678817272 -0.601598009467 --2.94757151604 -0.601581588387 --2.93031257391 -0.601567029953 --2.91305428743 -0.60155442357 --2.89579623938 -0.60154376924 --2.87853878737 -0.601535066962 --2.86128145456 -0.601528272033 --2.84402453899 -0.601523458958 --2.82676768303 -0.601520568132 --2.80951106549 -0.60151964426 --2.79225432873 -0.60152065754 --2.77499783039 -0.601523593068 --2.75774109363 -0.601528510451 --2.74048435688 -0.601535394788 --2.72322720289 -0.601544201374 --2.70597004891 -0.60155493021 --2.68871247769 -0.601567625999 --2.67145466805 -0.601582244038 --2.65419614315 -0.601598784328 --2.63693737984 -0.601607084274 --2.61772227287 -0.601597994566 --2.59850549698 -0.601581558585 --2.58124661445 -0.601567015052 --2.56398838759 -0.60155442357 --2.54673039913 -0.60154376924 --2.52947294712 -0.601535081863 --2.51221561432 -0.601528286934 --2.49495869875 -0.601523458958 --2.47770184279 -0.601520583034 --2.46044528485 -0.601519659162 --2.44318854809 -0.60152065754 --2.42593199015 -0.601523593068 --2.40867519379 -0.601528510451 --2.39141851664 -0.601535409689 --2.37416142225 -0.601544216275 --2.35690420866 -0.601554945111 --2.33964651823 -0.601567625999 --2.32238870859 -0.601582229137 --2.30513030291 -0.601598784328 --2.28787153959 -0.601607084274 --2.26865643263 -0.601597994566 --2.24943971634 -0.601581573486 --2.23218083381 -0.601567029953 --2.21492254734 -0.60155442357 --2.19766449928 -0.60154376924 --2.18040710688 -0.601535066962 --2.16314983368 -0.601528272033 --2.14589291811 -0.601523473859 --2.12863594294 -0.601520583034 --2.111379385 -0.601519629359 --2.09412270785 -0.601520642638 --2.0768660903 -0.601523622871 --2.05960929394 -0.601528540253 --2.04235261679 -0.601535394788 --2.0250955224 -0.601544216275 --2.00783833862 -0.601554960012 --1.99058070779 -0.6015676409 --1.97332289815 -0.601582244038 --1.95606443286 -0.601598784328 --1.93880563974 -0.601607084274 --1.91959056258 -0.601597979665 --1.90037387609 -0.601581558585 --1.88311499357 -0.601567029953 --1.8658567369 -0.60155442357 --1.84859868884 -0.60154376924 --1.83134126663 -0.601535066962 --1.81408396363 -0.601528272033 --1.79682704806 -0.601523473859 --1.77957013249 -0.601520583034 --1.76231354475 -0.60151964426 --1.7450568378 -0.60152065754 --1.72780027986 -0.601523622871 --1.7105434835 -0.601528525353 --1.69328674674 -0.601535379886 --1.67602965236 -0.601544216275 --1.65877252817 -0.601554960012 --1.64151489735 -0.601567625999 --1.6242570281 -0.601582244038 --1.60699859262 -0.601598784327 --1.5897398591 -0.601607069373 --1.57052475214 -0.601597994566 --1.55130803585 -0.601581543684 --1.53404912353 -0.601567000151 --1.51679086685 -0.601554438472 --1.4995328784 -0.60154376924 --1.48227542639 -0.601535066962 --1.46501809359 -0.601528272033 --1.44776120782 -0.601523444057 --1.43050432205 -0.601520568132 --1.41324770451 -0.60151964426 --1.39599096775 -0.601520672441 --1.37873443961 -0.60152362287 --1.36147767306 -0.601528525352 --1.3442209363 -0.601535394788 --1.32696384191 -0.601544216275 --1.30970668793 -0.601554960012 --1.2924490273 -0.601567625999 --1.27519121766 -0.601582229137 --1.25793275237 -0.601598784328 --1.24067395925 -0.601607084274 --1.22145888209 -0.601597994566 --1.2022421658 -0.601581543684 --1.18498322368 -0.601567000151 --1.16772499681 -0.60155442357 --1.15046700835 -0.601543754339 --1.13320958614 -0.601535052061 --1.11595228314 -0.601528272033 --1.09869533777 -0.601523458958 --1.0814384222 -0.601520583034 --1.06418183446 -0.601519659162 --1.0469250977 -0.601520672441 --1.02966856957 -0.601523637772 --1.01241180301 -0.601528555155 --0.995155081154 -0.60153542459 --0.977898001671 -0.601544216275 --0.960640832782 -0.601554945111 --0.943383157254 -0.601567625999 --0.926125332713 -0.601582229137 --0.908866867423 -0.601598784328 --0.89160810411 -0.601607084274 --0.872393071651 -0.601597994566 --0.853176355362 -0.601581558585 --0.835917428136 -0.601567015052 --0.818659171462 -0.60155442357 --0.801401153207 -0.60154376924 --0.784143716097 -0.601535066962 --0.766886398196 -0.601528272033 --0.749629482627 -0.601523458958 --0.732372567057 -0.601520583034 --0.715115979314 -0.601519659162 --0.697859272361 -0.601520672441 --0.680602729321 -0.60152362287 --0.663345947862 -0.601528525352 --0.646089226007 -0.601535409689 --0.628832131624 -0.601544216275 --0.611574962735 -0.601554945111 --0.594317317009 -0.6015676409 --0.577059477567 -0.601582244038 --0.559801027179 -0.601598784328 --0.542542263865 -0.601607084274 --0.523327171802 -0.601597994566 --0.504110477865 -0.601581558585 --0.48685157299 -0.601567015052 --0.469593316316 -0.60155442357 --0.452335298061 -0.60154376924 --0.43507784605 -0.601535066962 --0.417820520699 -0.601528272033 --0.400563627481 -0.601523458958 --0.383306741714 -0.601520568132 --0.36605014652 -0.601519629359 --0.348793424666 -0.601520657539 --0.331536889076 -0.60152362287 --0.314280100167 -0.601528540253 --0.297023378312 -0.601535409689 --0.27976629138 -0.601544216275 --0.262509129941 -0.601554945111 --0.24525147304 -0.601567625999 --0.227993641049 -0.601582244038 --0.210735183209 -0.601598784328 --0.193476412445 -0.601607084274 --0.174261342734 -0.618703827262 --0.155038524419 -0.618687048554 --0.137779582292 -0.618672177195 --0.120521306991 -0.618659302592 --0.10326327756 -0.618648409844 --0.0860057957471 -0.618639528751 --0.0687484377995 -0.61863258481 --0.0514915119857 -0.618627652526 --0.0342345880345 -0.618624702096 --0.0169779674616 -0.618623748422 -0.00027877674438 -0.618624806404 -0.0175353381783 -0.618627861142 -0.0347921466455 -0.618632867932 -0.0520488945768 -0.618639871478 -0.069306017831 -0.618648871779 -0.0865631997585 -0.618659853935 -0.103820871562 -0.618672803044 -0.121078733355 -0.618687734008 -0.138337213546 -0.618704676628 -0.155596010387 -0.618713140488 -0.174810852856 -0.618703842163 -0.194027327001 -0.618687048554 -0.211286276579 -0.618672177195 -0.228544551879 -0.618659302592 -0.245802577585 -0.618648394942 -0.263060055673 -0.61863951385 -0.280317410827 -0.61863258481 -0.297574333847 -0.618627652526 -0.314831256867 -0.618624702096 -0.332087874412 -0.618623763323 -0.349344611167 -0.618624791503 -0.36660117656 -0.618627816439 -0.383857995271 -0.618632853031 -0.401114746928 -0.618639871478 -0.418371863663 -0.61864888668 -0.435629040003 -0.618659868836 -0.452886722982 -0.618672832846 -0.470144592226 -0.61868776381 -0.487403064966 -0.618704676628 -0.504661858082 -0.618713140488 -0.523876696825 -0.618703842163 -0.543093174696 -0.618687048554 -0.560352131724 -0.618672192096 -0.577610403299 -0.618659317493 -0.594868436456 -0.618648394942 -0.612125918269 -0.618639528751 -0.629383251071 -0.618632599711 -0.64664016664 -0.618627667427 -0.663897112012 -0.618624731898 -0.681153729558 -0.618623763323 -0.698410481214 -0.618624776602 -0.715667068958 -0.618627816439 -0.732923865318 -0.618632853031 -0.750180587172 -0.618639871478 -0.767437711358 -0.61864888668 -0.784694910049 -0.618659868836 -0.801952600479 -0.618672832846 -0.819210439921 -0.61868776381 -0.83646889031 -0.618704676628 -0.853727698327 -0.618713140488 -0.87294253707 -0.618703842163 -0.89215901494 -0.618687048554 -0.909417971969 -0.618672192096 -0.926676258445 -0.618659317493 -0.943934291601 -0.618648394942 -0.961191743612 -0.61863951385 -0.978449091315 -0.61863258481 -0.995706021788 -0.618627667427 -1.01296293736 -0.618624731898 -1.0302195847 -0.618623763323 -1.04747632146 -0.618624776602 -1.0647328794 -0.61862783134 -1.08198970556 -0.618632867932 -1.09924644232 -0.618639871478 -1.1165035367 -0.61864888668 -1.13376072049 -0.618659868836 -1.15101841092 -0.618672803044 -1.16827628016 -0.618687734008 -1.18553477525 -0.618704676628 -1.20279356837 -0.618713140488 -1.22200840712 -0.618703842163 -1.24122488499 -0.618687048554 -1.25848385691 -0.618672192096 -1.27574214339 -0.618659317493 -1.29300013184 -0.618648394942 -1.31025761366 -0.61863951385 -1.32751497627 -0.61863258481 -1.34477189183 -0.618627667427 -1.36202883721 -0.618624716997 -1.37928545475 -0.618623763323 -1.39654219151 -0.618624791503 -1.41379871964 -0.61862783134 -1.43105551601 -0.618632853031 -1.44831228256 -0.618639856577 -1.46556940675 -0.61864888668 -1.48282662034 -0.618659853935 -1.50008431077 -0.618672788143 -1.51734215021 -0.618687748909 -1.5346006453 -0.618704676628 -1.55185940862 -0.618713125587 -1.57107421756 -0.618703842163 -1.59029072523 -0.618687033653 -1.60754966736 -0.618672162294 -1.62480792403 -0.618659302592 -1.64206597209 -0.618648380041 -1.6593234539 -0.618639498949 -1.67658081651 -0.618632569909 -1.69383773208 -0.618627637625 -1.71109464764 -0.618624702096 -1.72835129499 -0.618623748422 -1.74560803175 -0.618624791503 -1.76286458969 -0.618627846241 -1.78012141585 -0.618632867932 -1.79737818241 -0.618639871478 -1.8146353066 -0.61864888668 -1.83189246059 -0.618659868836 -1.84915012122 -0.618672803044 -1.86640799045 -0.618687734008 -1.88366645574 -0.618704676628 -1.90092524886 -0.618713140488 -1.92014008761 -0.618703842163 -1.93935656548 -0.618687033653 -1.9566155374 -0.618672177195 -1.97387382388 -0.618659317493 -1.99113184214 -0.618648394942 -2.00838929415 -0.61863951385 -2.02564668655 -0.61863258481 -2.04290360212 -0.618627667427 -2.06016045809 -0.618624716997 -2.07741713524 -0.618623763323 -2.0946739316 -0.618624806404 -2.11193042993 -0.618627846241 -2.1291872263 -0.618632867932 -2.14644402266 -0.618639886379 -2.16370117664 -0.618648901582 -2.18095833063 -0.618659868836 -2.19821596146 -0.618672832846 -2.2154738307 -0.61868776381 -2.23273229599 -0.618704676628 -2.2499910593 -0.618713140488 -2.26920592785 -0.618703842163 -2.28842246532 -0.618687033653 -2.30568140745 -0.618672162294 -2.32293969393 -0.618659302592 -2.34019774198 -0.618648394942 -2.357455194 -0.61863951385 -2.3747125268 -0.61863258481 -2.39196944237 -0.618627652526 -2.40922635794 -0.618624716997 -2.42648297548 -0.618623763323 -2.44373971224 -0.618624791503 -2.46099632978 -0.618627846241 -2.47825318575 -0.618632867932 -2.4955099225 -0.618639871478 -2.51276701689 -0.61864888668 -2.53002417087 -0.618659868836 -2.5472818613 -0.618672803044 -2.56453973055 -0.618687734008 -2.58179819584 -0.618704676628 -2.59905701876 -0.618713140488 -2.6182718277 -0.618703842163 -2.63748824596 -0.618687048554 -2.65474718809 -0.618672192096 -2.67200547457 -0.618659317493 -2.68926352263 -0.618648394942 -2.70652097464 -0.61863951385 -2.72377830744 -0.61863258481 -2.74103528261 -0.618627667427 -2.75829225778 -0.618624716997 -2.77554881573 -0.618623748422 -2.79280555248 -0.618624791503 -2.81006217003 -0.618627846241 -2.82731896639 -0.618632867932 -2.84457570314 -0.618639871478 -2.86183279753 -0.61864888668 -2.87908995151 -0.618659868836 -2.89634764194 -0.618672832846 -2.91360557079 -0.61868776381 -2.93086403608 -0.618704676628 -2.9481227994 -0.618713125587 -2.96733766794 -0.618703827262 -2.98655408621 -0.618687048554 -3.00381302834 -0.618672177195 -3.02107131481 -0.618659302592 -3.03832930326 -0.618648409844 -3.05558681488 -0.618639528751 -3.07284426689 -0.61863258481 -3.09010118246 -0.618627652526 -3.10735803842 -0.618624702096 -3.12461471557 -0.618623748422 --3.14131382306 -0.618624806404 --3.12405729294 -0.618627861142 --3.10680049658 -0.618632867932 --3.08954375982 -0.618639871478 --3.07228666544 -0.618648871779 --3.05502951145 -0.618659853935 --3.03777182102 -0.618672803044 --3.02051389218 -0.618687734008 --3.00325536728 -0.618704676628 --2.98599660396 -0.618713140488 --2.96678179503 -0.618703842163 --2.94756537676 -0.618687048554 --2.93030643463 -0.618672177195 --2.91304814816 -0.618659302592 --2.8957901001 -0.618648394942 --2.87853258848 -0.61863951385 --2.86127519607 -0.61863258481 --2.8440182805 -0.618627652526 --2.82676142454 -0.618624702096 --2.80950474739 -0.618623763323 --2.79224801063 -0.618624791503 --2.7749915123 -0.618627816439 --2.75773471594 -0.618632853031 --2.74047797918 -0.618639871478 --2.72322082519 -0.61864888668 --2.7059636116 -0.618659868836 --2.68870592117 -0.618672832846 --2.67144805193 -0.61868776381 --2.65418958664 -0.618704676628 --2.63693082333 -0.618713140488 --2.61771595478 -0.618703842163 --2.5984994173 -0.618687048554 --2.58124047518 -0.618672192096 --2.5639821887 -0.618659317493 --2.54672414064 -0.618648394942 --2.52946668863 -0.618639528751 --2.51220935583 -0.618632599711 --2.49495244027 -0.618627667427 --2.4776955247 -0.618624731898 --2.46043890714 -0.618623763323 --2.44318217039 -0.618624776602 --2.42592555285 -0.618627816439 --2.40866875649 -0.618632853031 --2.39141207933 -0.618639871478 --2.37415492535 -0.61864888668 --2.35689771176 -0.618659868836 --2.33964002133 -0.618672832846 --2.32238221169 -0.61868776381 --2.305123806 -0.618704676628 --2.28786498308 -0.618713140488 --2.26865011453 -0.618703842163 --2.24943363666 -0.618687048554 --2.23217469454 -0.618672192096 --2.21491640806 -0.618659317493 --2.19765836001 -0.618648394942 --2.18040090799 -0.61863951385 --2.16314357519 -0.61863258481 --2.14588665962 -0.618627667427 --2.12862968445 -0.618624731898 --2.1113730669 -0.618623763323 --2.09411633015 -0.618624776602 --2.0768597126 -0.61862783134 --2.05960291624 -0.618632867932 --2.04234617948 -0.618639871478 --2.0250890851 -0.61864888668 --2.00783190131 -0.618659868836 --1.99057421088 -0.618672803044 --1.97331637144 -0.618687734008 --1.95605787635 -0.618704676628 --1.93879905343 -0.618713140488 --1.91958421468 -0.618703842163 --1.90036776662 -0.618687048554 --1.8831088543 -0.618672192096 --1.86585059762 -0.618659317493 --1.84859254956 -0.618648394942 --1.83133506775 -0.61863951385 --1.81407770514 -0.61863258481 --1.79682075978 -0.618627667427 --1.7795638442 -0.618624716997 --1.76230722666 -0.618623763323 --1.7450504601 -0.618624791503 --1.72779390216 -0.61862783134 --1.7105371058 -0.618632853031 --1.69328033924 -0.618639856577 --1.67602321506 -0.61864888668 --1.65876606107 -0.618659853935 --1.64150840044 -0.618672788143 --1.62425050139 -0.618687748909 --1.6069920361 -0.618704676628 --1.58973327279 -0.618713125587 --1.57051840424 -0.618703842163 --1.55130192637 -0.618687033653 --1.53404298425 -0.618672162294 --1.51678469777 -0.618659302592 --1.49952667951 -0.618648380041 --1.4822691977 -0.618639498949 --1.4650118649 -0.618632569909 --1.44775494933 -0.618627637625 --1.43049800396 -0.618624702096 --1.41324138641 -0.618623748422 --1.39598464966 -0.618624791503 --1.37872806191 -0.618627846241 --1.36147123575 -0.618632867932 --1.344214499 -0.618639871478 --1.32695740461 -0.61864888668 --1.30970022082 -0.618659868836 --1.2924425304 -0.618672803044 --1.27518469095 -0.618687734008 --1.25792619586 -0.618704676628 --1.24066737294 -0.618713140488 --1.22145253419 -0.618703842163 --1.20223608613 -0.618687033653 --1.1849771142 -0.618672177195 --1.16771882772 -0.618659317493 --1.15046083927 -0.618648394942 --1.13320338726 -0.61863951385 --1.11594602466 -0.61863258481 --1.09868904948 -0.618627667427 --1.08143210411 -0.618624716997 --1.06417551637 -0.618623763323 --1.04691877961 -0.618624806404 --1.02966219186 -0.618627846241 --1.01240539551 -0.618632867932 --0.995148658752 -0.618639886379 --0.977891519666 -0.618648901582 --0.960634335876 -0.618659868836 --0.943376675248 -0.618672832846 --0.926118820906 -0.61868776381 --0.908860325813 -0.618704676628 --0.891601532698 -0.618713140488 --0.872386708856 -0.618703842163 --0.853170230984 -0.618687033653 --0.835911273956 -0.618672162294 --0.81865298748 -0.618659302592 --0.801394969225 -0.618648394942 --0.784137517214 -0.61863951385 --0.766880169511 -0.61863258481 --0.749623209238 -0.618627652526 --0.732366278767 -0.618624716997 --0.715109661221 -0.618623763323 --0.697852909565 -0.618624791503 --0.680596351623 -0.618627846241 --0.663339540362 -0.618632867932 --0.646082788706 -0.618639871478 --0.628825679422 -0.61864888668 --0.61156848073 -0.618659868836 --0.594310805202 -0.618672803044 --0.577052950859 -0.618687734008 --0.559794470668 -0.618704676628 --0.542535692453 -0.618713140488 --0.523320838809 -0.618703842163 --0.504104368389 -0.618687048554 --0.486845433712 -0.618672192096 --0.469587154686 -0.618659317493 --0.45232912153 -0.618648394942 --0.435071639717 -0.61863951385 --0.417814284563 -0.61863258481 --0.400557361543 -0.618627667427 --0.383300438523 -0.618624716997 --0.366043813527 -0.618623748422 --0.348787069321 -0.618624791503 --0.331530511379 -0.618627846241 --0.314273700118 -0.618632867932 --0.297016955912 -0.618639871478 --0.279759846628 -0.61864888668 --0.262502655387 -0.618659868836 --0.245244968683 -0.618672832846 --0.227987110615 -0.61868776381 --0.210728630424 -0.618704676628 --0.193469837308 -0.618713125587 --0.174254998564 -0.635839372873 --0.155032571405 -0.635822236538 --0.137773603201 -0.635807037354 --0.120515301823 -0.635793894529 --0.103257248178 -0.635782763362 --0.085999744013 -0.635773703456 --0.068742364645 -0.635766625404 --0.0514854146168 -0.635761573911 --0.0342284636572 -0.635758548975 --0.0169718163088 -0.635757595301 -0.000284953508525 -0.635758683085 -0.0175415407866 -0.635761782527 -0.0347983748652 -0.635766908527 -0.0520551484078 -0.635774061084 -0.0693122930825 -0.635783240199 -0.0865694992244 -0.635794460773 -0.103827198967 -0.635807693005 -0.121085086837 -0.635822936893 -0.138343594968 -0.635840237141 -0.155602414161 -0.635848894715 -0.174817025661 -0.635839372873 -0.19403327629 -0.635822191834 -0.211292251945 -0.635807022452 -0.228550549597 -0.635793894529 -0.24580860138 -0.635782748461 -0.263066105544 -0.635773673654 -0.28032348305 -0.635766610503 -0.297580428422 -0.635761573911 -0.314837381244 -0.635758548975 -0.332094028592 -0.635757595301 -0.349350787699 -0.635758653283 -0.366607382894 -0.635761752725 -0.383864238858 -0.635766908527 -0.401121012866 -0.635774061084 -0.418378137052 -0.6357832551 -0.435635343194 -0.635794475674 -0.452893055976 -0.635807722807 -0.470150947571 -0.635822981596 -0.487409450114 -0.635840252042 -0.50466825068 -0.635848879814 -0.523882865906 -0.635839387774 -0.543099120259 -0.635822221637 -0.560358092189 -0.635807037353 -0.577616408467 -0.635793924332 -0.594874456525 -0.635782763362 -0.61213196814 -0.635773673654 -0.629389345646 -0.635766610503 -0.646646276116 -0.635761588812 -0.663903236389 -0.635758593678 -0.681159883737 -0.635757610202 -0.698416665196 -0.635758638382 -0.71567325294 -0.635761752725 -0.732930064201 -0.635766893625 -0.75018684566 -0.635774046183 -0.767444014549 -0.6357832551 -0.784701213241 -0.635794475674 -0.801958918571 -0.635807722807 -0.819216802716 -0.635822966695 -0.836475282908 -0.635840237141 -0.853734120727 -0.635848879814 -0.872948721051 -0.635839372874 -0.892164945603 -0.635822221637 -0.909423932433 -0.635807052254 -0.926682248712 -0.635793924332 -0.943940296769 -0.635782763362 -0.961197793484 -0.635773673654 -0.97845518589 -0.635766610503 -0.995712116361 -0.635761588812 -1.01296907663 -0.635758593678 -1.03022575378 -0.635757610202 -1.04748252034 -0.635758653283 -1.06473910808 -0.635761767626 -1.08199593425 -0.635766893625 -1.0992527008 -0.635774046183 -1.11650982499 -0.6357832551 -1.13376703859 -0.635794475674 -1.15102475882 -0.635807693005 -1.16828262806 -0.635822936893 -1.18554115295 -0.635840237141 -1.20279997587 -0.635848894715 -1.22201454639 -0.635839387774 -1.24123081565 -0.635822221637 -1.25848981738 -0.635807052254 -1.27574810386 -0.635793924332 -1.29300612211 -0.635782763362 -1.31026363373 -0.635773673654 -1.32752105594 -0.635766610503 -1.34477800131 -0.635761588812 -1.36203494668 -0.635758563876 -1.37929159403 -0.635757595301 -1.39654836058 -0.635758668184 -1.41380491852 -0.635761767626 -1.43106174469 -0.635766893625 -1.44831854105 -0.635774046183 -1.46557569504 -0.6357832551 -1.48283290863 -0.635794460773 -1.50009059906 -0.635807678104 -1.51734849811 -0.635822951794 -1.534607023 -0.635840252042 -1.55186581612 -0.635848894715 -1.57108041644 -0.635839402675 -1.59029665589 -0.635822236538 -1.60755562782 -0.635807022452 -1.6248139441 -0.635793894529 -1.64207199216 -0.635782763362 -1.65932950377 -0.635773673654 -1.67658689618 -0.635766595602 -1.69384384155 -0.635761544108 -1.71110078692 -0.635758534074 -1.72835743427 -0.635757580399 -1.74561420083 -0.635758653283 -1.76287078857 -0.635761767626 -1.78012761474 -0.635766893625 -1.79738441109 -0.635774046183 -1.81464156509 -0.6357832551 -1.83189874888 -0.635794475674 -1.84915646911 -0.635807693005 -1.86641433835 -0.635822951794 -1.88367283344 -0.635840252042 -1.90093168616 -0.635848894715 -1.92014628649 -0.635839387774 -1.93936252594 -0.635822206736 -1.95662149787 -0.635807037353 -1.97387978435 -0.635793924332 -1.99113786221 -0.635782763362 -2.00839537382 -0.635773673654 -2.02565276623 -0.635766610503 -2.0429096818 -0.635761588812 -2.06016659737 -0.635758578777 -2.07742327452 -0.635757610202 -2.09468007088 -0.635758653283 -2.11193662882 -0.635761752725 -2.12919342518 -0.635766893625 -2.14645028114 -0.635774061084 -2.16370749474 -0.635783284903 -2.18096464873 -0.635794490575 -2.19822227955 -0.635807722807 -2.2154802084 -0.635822966695 -2.23273873329 -0.635840237141 -2.24999749661 -0.635848894715 -2.26921212673 -0.635839387774 -2.28842842579 -0.635822206736 -2.30568736792 -0.635807022452 -2.32294565439 -0.63579390943 -2.34020376206 -0.635782763362 -2.35746127367 -0.635773673654 -2.37471860647 -0.635766595602 -2.39197552204 -0.63576155901 -2.40923249722 -0.635758578777 -2.42648917437 -0.635757610202 -2.44374591112 -0.635758653283 -2.46100252867 -0.635761767626 -2.47825938463 -0.635766893625 -2.49551612139 -0.635774046183 -2.51277327538 -0.6357832551 -2.53003048897 -0.635794475674 -2.5472881794 -0.635807693005 -2.56454604864 -0.635822936893 -2.58180457353 -0.635840237141 -2.59906339645 -0.635848879814 -2.61827796698 -0.635839372874 -2.63749420643 -0.635822221637 -2.65475320816 -0.635807052254 -2.67201149463 -0.63579390943 -2.6892695427 -0.635782748461 -2.70652705431 -0.635773673654 -2.72378438711 -0.635766610503 -2.74104136229 -0.635761588812 -2.75829833746 -0.635758563876 -2.77555495501 -0.635757580399 -2.79281175137 -0.635758653283 -2.81006836891 -0.635761767626 -2.82732522488 -0.635766893625 -2.84458196163 -0.635774046183 -2.86183905602 -0.6357832551 -2.87909626961 -0.635794475674 -2.89635396004 -0.635807722807 -2.91361188888 -0.635822981596 -2.93087041378 -0.635840252042 -2.9481292367 -0.635848864913 -2.96734386683 -0.635839372873 -2.98656004667 -0.635822236538 -3.0038189888 -0.635807037354 -3.02107733488 -0.635793894529 -3.03833538294 -0.635782763362 -3.05559289456 -0.635773703456 -3.07285034657 -0.635766625404 -3.09010726214 -0.635761573911 -3.10736417771 -0.635758548975 -3.12462085486 -0.635757595301 --3.14130768378 -0.635758683085 --3.12405109406 -0.635761782527 --3.10679423809 -0.635766908527 --3.08953750134 -0.635774061084 --3.07228040695 -0.635783240199 --3.05502319336 -0.635794460773 --3.03776550293 -0.635807693005 --3.02050757408 -0.635822936893 --3.00324904919 -0.635840237141 --2.98599022627 -0.635848894715 --2.96677559614 -0.635839372873 --2.9475594163 -0.635822191834 --2.93030047417 -0.635807022452 --2.91304212809 -0.635793894529 --2.89578408003 -0.635782748461 --2.87852656841 -0.635773673654 --2.8612691164 -0.635766610503 --2.84401220083 -0.635761573911 --2.82675528526 -0.635758548975 --2.80949860811 -0.635757595301 --2.79224187136 -0.635758653283 --2.77498531342 -0.635761752725 --2.75772845745 -0.635766908527 --2.74047166109 -0.635774061084 --2.72321456671 -0.6357832551 --2.70595735311 -0.635794475674 --2.68869954347 -0.635807722807 --2.67144167423 -0.635822981596 --2.65418320894 -0.635840252042 --2.63692438602 -0.635848879814 --2.6177097559 -0.635839387774 --2.59849345684 -0.635822221637 --2.58123451471 -0.635807037353 --2.56397622824 -0.635793924332 --2.54671818018 -0.635782763362 --2.52946066856 -0.635773673654 --2.51220327616 -0.635766610503 --2.49494636059 -0.635761588812 --2.47768938542 -0.635758593678 --2.46043270826 -0.635757610202 --2.44317597151 -0.635758638382 --2.42591941357 -0.635761752725 --2.40866261721 -0.635766893625 --2.39140582085 -0.635774046183 --2.37414860725 -0.6357832551 --2.35689139366 -0.635794475674 --2.33963370323 -0.635807722807 --2.32237583399 -0.635822966695 --2.3051173687 -0.635840237141 --2.28785854578 -0.635848879814 --2.26864391565 -0.635839372874 --2.2494276762 -0.635822221637 --2.23216867447 -0.635807052254 --2.21491038799 -0.635793924332 --2.19765233993 -0.635782763362 --2.18039482832 -0.635773673654 --2.16313749552 -0.635766610503 --2.14588052034 -0.635761588812 --2.12862354517 -0.635758593678 --2.11136692762 -0.635757610202 --2.09411013126 -0.635758653283 --2.07685351372 -0.635761767626 --2.05959665775 -0.635766893625 --2.042339921 -0.635774046183 --2.02508282661 -0.6357832551 --2.00782561302 -0.635794475674 --1.99056792259 -0.635807693005 --1.97331002355 -0.635822936893 --1.95605149865 -0.635840237141 --1.93879267573 -0.635848894715 --1.91957807541 -0.635839387774 --1.90036183595 -0.635822221637 --1.88310286403 -0.635807052254 --1.86584457755 -0.635793924332 --1.84858652949 -0.635782763362 --1.83132901787 -0.635773673654 --1.81407162547 -0.635766610503 --1.7968146503 -0.635761588812 --1.77955770492 -0.635758563876 --1.76230108738 -0.635757595301 --1.74504429102 -0.635758668184 --1.72778770327 -0.635761767626 --1.71053087711 -0.635766893625 --1.69327408075 -0.635774046183 --1.67601692677 -0.6357832551 --1.65875974298 -0.635794460773 --1.64150205255 -0.635807678104 --1.6242441237 -0.635822951794 --1.60698562861 -0.635840252042 --1.58972683549 -0.635848894715 --1.57051220536 -0.635839402675 --1.55129596591 -0.635822236538 --1.53403699398 -0.635807022452 --1.5167786777 -0.635793894529 --1.49952062964 -0.635782763362 --1.48226311803 -0.635773673654 --1.46500575543 -0.635766595602 --1.44774883986 -0.635761544108 --1.43049189448 -0.635758534074 --1.41323524713 -0.635757580399 --1.39597848058 -0.635758653283 --1.37872186303 -0.635761767626 --1.36146500707 -0.635766893625 --1.34420824051 -0.635774046183 --1.32695111633 -0.6357832551 --1.30969390273 -0.635794475674 --1.2924361825 -0.635807693005 --1.27517831326 -0.635822951794 --1.25791981816 -0.635840252042 --1.24066099524 -0.635848894715 --1.22144639492 -0.635839387774 --1.20223015547 -0.635822206736 --1.18497115374 -0.635807037353 --1.16771283746 -0.635793924332 --1.1504548192 -0.635782763362 --1.13319733739 -0.635773673654 --1.11593994498 -0.635766610503 --1.09868296981 -0.635761588812 --1.08142599463 -0.635758578777 --1.06416934729 -0.635757610202 --1.04691258073 -0.635758653283 --1.02965599298 -0.635761752725 --1.01239919662 -0.635766893625 --0.995142430066 -0.635774061084 --0.977885231375 -0.635783284903 --0.960628017783 -0.635794490575 --0.943370357156 -0.635807722807 --0.926112473011 -0.635822966695 --0.908853948116 -0.635840237141 --0.891595140099 -0.635848894715 --0.872380524874 -0.635839387774 --0.853164285421 -0.635822206736 --0.835905313492 -0.635807022452 --0.818646997213 -0.63579390943 --0.801388949156 -0.635782763362 --0.784131452441 -0.635773673654 --0.766874074936 -0.635766595602 --0.749617114663 -0.63576155901 --0.73236015439 -0.635758578777 --0.715103507042 -0.635757610202 --0.697846740484 -0.635758653283 --0.68059015274 -0.635761767626 --0.663333311677 -0.635766893625 --0.646076545119 -0.635774046183 --0.628819406033 -0.6357832551 --0.611562162638 -0.635794475674 --0.594304472208 -0.635807693005 --0.577046602965 -0.635822936893 --0.559788092971 -0.635840237141 --0.542529284954 -0.635848879814 --0.523314669728 -0.635839372874 --0.504098422825 -0.635822221637 --0.486839450896 -0.635807052254 --0.469581156969 -0.63579390943 --0.452323101461 -0.635782748461 --0.435065589845 -0.635773673654 --0.41780821234 -0.635766610503 --0.400551259518 -0.635761588812 --0.383294306696 -0.635758563876 --0.366037651897 -0.635757580399 --0.348780885339 -0.635758653283 --0.331524312496 -0.635761767626 --0.314267478883 -0.635766893625 --0.297010704875 -0.635774046183 --0.279753565788 -0.6357832551 --0.262496359646 -0.635794475674 --0.24523865059 -0.635807722807 --0.22798075527 -0.635822981596 --0.210722249001 -0.635840252042 --0.193463437259 -0.635848864913 --0.174248822033 -0.652975395322 --0.155027389526 -0.652957856655 --0.13776839152 -0.652942359448 --0.120510069653 -0.652928978205 --0.103252001107 -0.652917608619 --0.0859944764525 -0.652908354998 --0.0687370756641 -0.652901142836 --0.0514801032841 -0.652896001935 --0.0342231295072 -0.652892902494 --0.016966459807 -0.652891919017 -0.000290331663563 -0.652893036604 -0.0175469408277 -0.652896210551 -0.0348037965596 -0.65290145576 -0.0520605929196 -0.652908757329 -0.0693177580834 -0.652918115258 -0.0865749884397 -0.65292955935 -0.10383271426 -0.652943074703 -0.121090622619 -0.652958646417 -0.138349153102 -0.652976289391 -0.155607987196 -0.652985110879 -0.174822401255 -0.652975395322 -0.194038458168 -0.652957871556 -0.211297456175 -0.65294238925 -0.228555776179 -0.652928978205 -0.245813846588 -0.652917608619 -0.263071380555 -0.652908340097 -0.280328787863 -0.652901113033 -0.297585755587 -0.652896001935 -0.31484273076 -0.652892932296 -0.332099400461 -0.652891933918 -0.349356174469 -0.652893006801 -0.366612777114 -0.652896165848 -0.383869647979 -0.652901425958 -0.40112645179 -0.652908742428 -0.418383613229 -0.652918100357 -0.435640834272 -0.652929544449 -0.452898554504 -0.652943074703 -0.470156475902 -0.652958661318 -0.487415000797 -0.652976304292 -0.504673838615 -0.652985095978 -0.523888275027 -0.652975395322 -0.543104320764 -0.652957871556 -0.560363307595 -0.652942374348 -0.577621638775 -0.652929008007 -0.594879701734 -0.652917638421 -0.61213722825 -0.652908340097 -0.629394635558 -0.652901127935 -0.646651610732 -0.652896016836 -0.663908571005 -0.652892932296 -0.681165233254 -0.652891948819 -0.698422044516 -0.652893021702 -0.715678647161 -0.652896165848 -0.732935503125 -0.652901411057 -0.750192329288 -0.652908727527 -0.767449498177 -0.652918100357 -0.784706696868 -0.652929544449 -0.8019644171 -0.652943089604 -0.819222316146 -0.652958661318 -0.836480841041 -0.652976289391 -0.853739693761 -0.652985095978 -0.87295410037 -0.652975380421 -0.892170146108 -0.652957871556 -0.90942914784 -0.652942404151 -0.926687479019 -0.652929022908 -0.943945541978 -0.652917638421 -0.961203068495 -0.652908340097 -0.978460475802 -0.652901127935 -0.995717421175 -0.652896016836 -1.01297441125 -0.652892947197 -1.0302310884 -0.652891948819 -1.04748788476 -0.652893021703 -1.06474453211 -0.652896180749 -1.08200135827 -0.652901411057 -1.09925815463 -0.652908727527 -1.11651533842 -0.652918100357 -1.13377255201 -0.652929544449 -1.15103027224 -0.652943074703 -1.16828817129 -0.652958646417 -1.18554672599 -0.65297627449 -1.20280554891 -0.652985110879 -1.22201991081 -0.652975410223 -1.24123600125 -0.652957886457 -1.25849500299 -0.652942404151 -1.27575328946 -0.652929008007 -1.29301136732 -0.652917638421 -1.31026890874 -0.652908340097 -1.32752633095 -0.652901127935 -1.34478330612 -0.652896016836 -1.3620402813 -0.652892932296 -1.37929695845 -0.652891933918 -1.39655375481 -0.652893036604 -1.41381034255 -0.65289619565 -1.43106719851 -0.652901425958 -1.44832399487 -0.652908742428 -1.46558114886 -0.652918115258 -1.48283839226 -0.652929544449 -1.50009611249 -0.652943074703 -1.51735401154 -0.652958676219 -1.53461253643 -0.652976304292 -1.55187138915 -0.652985110879 -1.57108581066 -0.652975410223 -1.5903018415 -0.652957901358 -1.60756084323 -0.652942404151 -1.62481918931 -0.652928993106 -1.64207726717 -0.65291762352 -1.65933477878 -0.652908354998 -1.67659217119 -0.652901127934 -1.69384917617 -0.652895987034 -1.71110615134 -0.652892917395 -1.72836276889 -0.652891933918 -1.74561956525 -0.652893021703 -1.7628762126 -0.652896180749 -1.78013303876 -0.652901411057 -1.79738983512 -0.652908727527 -1.81464701891 -0.652918100357 -1.8319042325 -0.652929544449 -1.84916195273 -0.652943074703 -1.86641985178 -0.652958661318 -1.88367840648 -0.652976289391 -1.900937289 -0.652985095977 -1.92015171051 -0.652975395322 -1.93936774135 -0.652957871556 -1.95662671328 -0.65294238925 -1.97388499975 -0.652929008007 -1.99114307761 -0.652917638421 -2.00840058923 -0.652908340097 -2.02565801144 -0.652901127935 -2.04291498661 -0.652896016836 -2.06017196178 -0.652892947197 -2.07742863893 -0.65289196372 -2.09468537569 -0.652893021702 -2.11194199323 -0.652896165848 -2.1291988492 -0.652901411057 -2.14645570516 -0.652908727527 -2.16371291876 -0.652918115258 -2.18097013235 -0.65292955935 -2.19822782278 -0.652943074703 -2.21548575163 -0.652958646417 -2.23274433613 -0.652976289391 -2.25000315905 -0.652985110879 -2.26921755075 -0.652975395322 -2.28843361139 -0.652957856655 -2.30569255352 -0.652942374348 -2.32295084 -0.652928993106 -2.34020894766 -0.65291762352 -2.35746651888 -0.652908340097 -2.37472391128 -0.652901113033 -2.39198082685 -0.652896001935 -2.40923780203 -0.652892947197 -2.42649447918 -0.652891948819 -2.44375127554 -0.652893021703 -2.46100789309 -0.652896180749 -2.47826474905 -0.652901411057 -2.49552154541 -0.652908727527 -2.51277875901 -0.652918100357 -2.5300359726 -0.652929544449 -2.54729366303 -0.652943074703 -2.56455159187 -0.652958646417 -2.58181011677 -0.65297627449 -2.59906893968 -0.652985081076 -2.61828333139 -0.652975380421 -2.63749939203 -0.652957871556 -2.65475839377 -0.65294238925 -2.67201668024 -0.652928993106 -2.6892747879 -0.65291762352 -2.70653235912 -0.652908340097 -2.72378969192 -0.652901127935 -2.7410466671 -0.652896016836 -2.75830364227 -0.652892917395 -2.77556031942 -0.652891919017 -2.79281717539 -0.652893021703 -2.81007379293 -0.652896180749 -2.8273306489 -0.652901411057 -2.84458738565 -0.652908727527 -2.86184453964 -0.652918100357 -2.87910175324 -0.652929544449 -2.89635944367 -0.652943074703 -2.91361737251 -0.652958661318 -2.93087589741 -0.652976304292 -2.94813477993 -0.652985095978 -2.96734923124 -0.652975395322 -2.98656523228 -0.652957856655 -3.00382423401 -0.652942359448 -3.02108263969 -0.652928978205 -3.03834068775 -0.652917608619 -3.05559813976 -0.652908354998 -3.07285559177 -0.652901142836 -3.09011256695 -0.652896001935 -3.10736954212 -0.652892902494 -3.12462621927 -0.652891919017 --3.14130231936 -0.652893036604 --3.12404567003 -0.652896210551 --3.10678881407 -0.65290145576 --3.08953207731 -0.652908757329 --3.07227492332 -0.652918115258 --3.05501765013 -0.65292955935 --3.0377599597 -0.652943074703 --3.02050209045 -0.652958646417 --3.00324356556 -0.652976289391 --2.98598468304 -0.652985110879 --2.96677023172 -0.652975395322 --2.94755423069 -0.652957871556 --2.93029522896 -0.65294238925 --2.91303682327 -0.652928978205 --2.89577877522 -0.652917608619 --2.8785213232 -0.652908340097 --2.86126387119 -0.652901113033 --2.84400689602 -0.652896001935 --2.82674992085 -0.652892932296 --2.8094932437 -0.652891933918 --2.79223650694 -0.652893006801 --2.77497988939 -0.652896165848 --2.75772303343 -0.652901425958 --2.74046617746 -0.652908742428 --2.72320902348 -0.652918100357 --2.70595180988 -0.652929544449 --2.68869405985 -0.652943074703 --2.6714361906 -0.652958661318 --2.6541776061 -0.652976304292 --2.63691872358 -0.652985095978 --2.61770433188 -0.652975395322 --2.59848827123 -0.652957871556 --2.58122932911 -0.652942374348 --2.56397104263 -0.652929008007 --2.54671299458 -0.652917638421 --2.52945542336 -0.652908340097 --2.51219797134 -0.652901127935 --2.49494105577 -0.652896016836 --2.4776840806 -0.652892932296 --2.46042740345 -0.652891948819 --2.44317060709 -0.652893021702 --2.42591404915 -0.652896165848 --2.40865719319 -0.652901411057 --2.39140033722 -0.652908727527 --2.37414318323 -0.652918100357 --2.35688596964 -0.652929544449 --2.3396282196 -0.652943089604 --2.32237029075 -0.652958661318 --2.30511176586 -0.652976289391 --2.28785294294 -0.652985095978 --2.26863855124 -0.652975380421 --2.24942249059 -0.652957871556 --2.23216348886 -0.652942404151 --2.21490520239 -0.652929022908 --2.19764709473 -0.652917638421 --2.18038952351 -0.652908340097 --2.16313219071 -0.652901127935 --2.14587521553 -0.652896016836 --2.12861824036 -0.652892947197 --2.11136156321 -0.652891948819 --2.09410470724 -0.652893021703 --2.0768480897 -0.652896180749 --2.05959123373 -0.652901411057 --2.04233449698 -0.652908727527 --2.02507734298 -0.652918100357 --2.00782009959 -0.652929544449 --1.99056240916 -0.652943074703 --1.97330448031 -0.652958646417 --1.95604595542 -0.65297627449 --1.9387871325 -0.652985110879 --1.91957271099 -0.652975410223 --1.90035665035 -0.652957886457 --1.88309764862 -0.652942404151 --1.86583933234 -0.652929008007 --1.84858125448 -0.652917638421 --1.83132371307 -0.652908340097 --1.81406632066 -0.652901127935 --1.79680934548 -0.652896016836 --1.77955237031 -0.652892932296 --1.76229572296 -0.652891933918 --1.7450389266 -0.652893036604 --1.72778230906 -0.65289619565 --1.71052542329 -0.652901425958 --1.69326862693 -0.652908742428 --1.67601147294 -0.652918115258 --1.65875425934 -0.652929544449 --1.64149653912 -0.652943074703 --1.62423861027 -0.652958676219 --1.60698008537 -0.652976304292 --1.58972123265 -0.652985110879 --1.57050681114 -0.652975410223 --1.55129078031 -0.652957901358 --1.53403177857 -0.652942404151 --1.51677343249 -0.652928993106 --1.49951538443 -0.65291762352 --1.48225787282 -0.652908354998 --1.46500045061 -0.652901127934 --1.44774350524 -0.652895987034 --1.43048655987 -0.652892917395 --1.41322988272 -0.652891933918 --1.39597308636 -0.652893021703 --1.37871646881 -0.652896180749 --1.36145961285 -0.652901411057 --1.34420278668 -0.652908727527 --1.3269456327 -0.652918100357 --1.3096884191 -0.652929544449 --1.29243066907 -0.652943074703 --1.27517277002 -0.652958661318 --1.25791427493 -0.652976289391 --1.24065545201 -0.652985095977 --1.2214410305 -0.652975395322 --1.20222494006 -0.652957871556 --1.18496593833 -0.65294238925 --1.16770765185 -0.652929008007 --1.15044957399 -0.652917638421 --1.13319203258 -0.652908340097 --1.11593464017 -0.652901127935 --1.098677665 -0.652896016836 --1.08142068982 -0.652892947197 --1.06416401267 -0.65289196372 --1.04690721631 -0.652893021702 --1.02965062857 -0.652896165848 --1.01239380241 -0.652901411057 --0.995137006044 -0.652908727527 --0.977879777551 -0.652918115258 --0.960622534156 -0.65292955935 --0.943364843726 -0.652943074703 --0.926106929779 -0.652958646417 --0.908848389983 -0.652976289391 --0.891589567065 -0.652985110879 --0.872375145554 -0.652975395322 --0.853159099817 -0.652957856655 --0.835900112987 -0.652942374348 --0.818641781807 -0.652928993106 --0.801383703947 -0.65291762352 --0.784126162529 -0.652908340097 --0.766868755221 -0.652901113033 --0.749611794948 -0.652896001935 --0.732354819774 -0.652892947197 --0.715098157525 -0.652891948819 --0.697841376066 -0.652893021703 --0.68058475852 -0.652896180749 --0.663327887654 -0.652901411057 --0.646071106196 -0.652908727527 --0.628813937306 -0.652918100357 --0.61155667901 -0.652929544449 --0.594298973679 -0.652943074703 --0.577041074634 -0.652958646417 --0.559782549739 -0.65297627449 --0.54252371192 -0.652985081076 --0.523309290409 -0.652975380421 --0.504093244672 -0.652957871556 --0.48683425039 -0.65294238925 --0.469575926661 -0.652928993106 --0.452317848802 -0.65291762352 --0.435060322285 -0.652908340097 --0.417802929878 -0.652901127935 --0.400545947254 -0.652896016836 --0.38328896463 -0.652892917395 --0.366032294929 -0.652891919017 --0.34877550602 -0.652893021703 --0.331518910826 -0.652896180749 --0.314262054861 -0.652901411057 --0.2970052585 -0.652908727527 --0.279748097062 -0.652918100357 --0.262490876019 -0.652929544449 --0.245233148337 -0.652943074703 --0.227975223214 -0.652958661318 --0.210716694594 -0.652976304292 --0.193457864225 -0.652985095978 --0.17424344644 -0.670092210173 --0.155022252351 -0.67007432878 --0.137763239443 -0.67005854845 --0.120504895225 -0.670044898987 --0.103246804327 -0.670033305884 --0.0859892591834 -0.670023843646 --0.0687318332493 -0.670016482472 --0.051474836655 -0.670011281967 --0.0342178423889 -0.670008122921 --0.0169611515012 -0.670007094741 -0.00029566162266 -0.670008227229 -0.0175522919744 -0.670011490583 -0.0348091698252 -0.6700168401 -0.0520659880713 -0.670024245977 -0.0693231737241 -0.670033812523 -0.0865804273635 -0.670045509934 -0.103838181123 -0.670059263707 -0.121096109971 -0.670075133443 -0.138354655355 -0.670093134046 -0.155613515526 -0.670102119446 -0.174827732146 -0.670092210173 -0.194043584168 -0.670074358582 -0.211302608252 -0.670058563351 -0.228560950607 -0.670044884086 -0.245819039642 -0.670033290982 -0.263076595962 -0.670023828745 -0.280334033072 -0.670016467571 -0.297591030598 -0.670011267066 -0.314848020673 -0.670008137822 -0.332104712725 -0.670007109642 -0.349361516535 -0.670008212328 -0.366618134081 -0.67001144588 -0.383875019848 -0.670016780496 -0.40113183856 -0.670024231076 -0.418389029801 -0.670033797622 -0.435646280646 -0.670045465231 -0.45290401578 -0.670059248805 -0.470161952079 -0.670075133443 -0.487420499325 -0.670093134046 -0.504679374397 -0.670102134347 -0.523893609643 -0.670092225074 -0.543109446764 -0.670074343681 -0.560368463397 -0.670058563351 -0.577626809478 -0.670044913888 -0.594884902239 -0.670033320785 -0.612142458558 -0.670023843646 -0.629399865866 -0.670016482472 -0.646656870842 -0.670011281967 -0.663913860917 -0.670008122921 -0.681170552969 -0.670007124543 -0.698427379131 -0.67000824213 -0.715683996677 -0.67001144588 -0.732940882444 -0.670016780496 -0.750197708607 -0.670024231076 -0.767454892397 -0.670033797622 -0.784712135792 -0.670045465231 -0.801969885826 -0.670059263706 -0.819227814675 -0.670075163245 -0.83648635447 -0.670093148947 -0.85374520719 -0.670102119446 -0.872959434986 -0.670092210173 -0.892175287008 -0.670074343681 -0.909434303641 -0.670058563351 -0.926692664623 -0.670044913888 -0.943950757384 -0.670033320785 -0.961208298802 -0.670023858547 -0.978465721011 -0.670016482472 -0.995722711088 -0.670011267066 -1.01297971606 -0.670008137822 -1.03023639322 -0.670007109642 -1.04749318957 -0.670008212328 -1.06474986673 -0.67001144588 -1.08200675249 -0.670016780496 -1.09926354885 -0.670024231076 -1.11652073264 -0.670033797622 -1.13377797603 -0.670045480132 -1.15103572607 -0.670059263707 -1.16829365492 -0.670075148344 -1.18555220961 -0.670093134046 -1.20281106234 -0.670102119446 -1.22202527523 -0.670092225075 -1.24124115705 -0.670074358582 -1.25850015878 -0.670058578253 -1.27575847506 -0.670044913888 -1.29301658273 -0.670033305883 -1.31027415395 -0.670023828745 -1.32753157616 -0.670016482472 -1.34478855133 -0.670011281967 -1.36204555631 -0.670008137822 -1.37930226326 -0.670007124543 -1.39655908942 -0.670008242131 -1.41381570697 -0.670011460781 -1.43107256293 -0.670016795397 -1.44832938909 -0.670024245977 -1.46558657288 -0.670033812523 -1.48284384608 -0.670045465231 -1.50010159611 -0.670059263706 -1.51735949516 -0.670075178146 -1.53461804986 -0.670093134046 -1.55187693238 -0.670102104544 -1.57109114528 -0.670092210173 -1.5903069973 -0.670074373483 -1.60756602883 -0.670058593154 -1.62482437491 -0.670044913888 -1.64208248258 -0.670033320785 -1.659340024 -0.670023858547 -1.6765974164 -0.670016482472 -1.69385442138 -0.670011267066 -1.71111142636 -0.670008137822 -1.72836807371 -0.670007124543 -1.74562487007 -0.670008227229 -1.76288154722 -0.67001144588 -1.78013843298 -0.670016780496 -1.79739522934 -0.670024231076 -1.81465244293 -0.670033782721 -1.83190968632 -0.670045465231 -1.84916740656 -0.670059263707 -1.86642536521 -0.670075148344 -1.88368391991 -0.670093134046 -1.90094277263 -0.670102104544 -1.92015701533 -0.670092210173 -1.93937286735 -0.670074358582 -1.95663186908 -0.670058578253 -1.97389018536 -0.670044913888 -1.99114826322 -0.670033305883 -2.00840577483 -0.670023843646 -2.02566325665 -0.670016482472 -2.04292029142 -0.670011267066 -2.0601772666 -0.670008137822 -2.07743400335 -0.670007139444 -2.09469079971 -0.670008227229 -2.11194741726 -0.670011430979 -2.12920427322 -0.670016795397 -2.14646106958 -0.670024245977 -2.16371828318 -0.670033797622 -2.18097555637 -0.670045465231 -2.1982332468 -0.670059248805 -2.21549117565 -0.670075133443 -2.23274976015 -0.670093134046 -2.25000864267 -0.670102134347 -2.26922285557 -0.670092225074 -2.28843867779 -0.670074343681 -2.30569773912 -0.670058563351 -2.3229560852 -0.670044898987 -2.34021413326 -0.670033305884 -2.35747170448 -0.670023843646 -2.37472915649 -0.670016467571 -2.39198613167 -0.670011267066 -2.40924310684 -0.670008137822 -2.42649978399 -0.670007124543 -2.44375663996 -0.670008227229 -2.4610132575 -0.670011460781 -2.47827011347 -0.670016795397 -2.49552696943 -0.670024231076 -2.51278418303 -0.670033797622 -2.53004139662 -0.670045480132 -2.54729908705 -0.670059263707 -2.5645570159 -0.670075133443 -2.5818156004 -0.670093104243 -2.59907448292 -0.670102089643 -2.61828869581 -0.670092210173 -2.63750457764 -0.670074343681 -2.65476357937 -0.67005854845 -2.67202186585 -0.670044898987 -2.68927997351 -0.670033320785 -2.70653754473 -0.670023858547 -2.72379493714 -0.670016497373 -2.74105191231 -0.670011281967 -2.75830888748 -0.670008122921 -2.77556562424 -0.670007109642 -2.7928224802 -0.670008227229 -2.81007909775 -0.67001144588 -2.82733595371 -0.670016780496 -2.84459275007 -0.670024231076 -2.86184996367 -0.670033797622 -2.87910717726 -0.670045465231 -2.89636492729 -0.670059248805 -2.91362291575 -0.670075148344 -2.93088144064 -0.670093148947 -2.94814026356 -0.670102119446 -2.96735453606 -0.670092210173 -2.98657041788 -0.67007432878 -3.00382941961 -0.67005854845 -3.0210877657 -0.670044898987 -3.03834581375 -0.670033305884 -3.05560332537 -0.670023843646 -3.07286077738 -0.670016482472 -3.09011781215 -0.670011281967 -3.10737484693 -0.670008122921 -3.12463152409 -0.670007094741 --3.14129701455 -0.670008227229 --3.12404036522 -0.670011490583 --3.10678350925 -0.6700168401 --3.08952671289 -0.670024245977 --3.0722694993 -0.670033812523 --3.0550121665 -0.670045509934 --3.03775441647 -0.670059263707 --3.02049654722 -0.670075133443 --3.00323802233 -0.670093134046 --2.9859791398 -0.670102119446 --2.96676486731 -0.670092210173 --2.94754904509 -0.670074358582 --2.93029004335 -0.670058563351 --2.91303163767 -0.670044884086 --2.89577353001 -0.670033290982 --2.878516078 -0.670023828745 --2.86125868559 -0.670016467571 --2.84400165081 -0.670011267066 --2.82674461603 -0.670008137822 --2.80948793888 -0.670007109642 --2.79223120212 -0.670008212328 --2.77497452497 -0.67001144588 --2.7577176094 -0.670016780496 --2.74046081304 -0.670024231076 --2.72320359945 -0.670033797622 --2.70594632626 -0.670045465231 --2.68868863583 -0.670059248805 --2.67143070698 -0.670075133443 --2.65417212248 -0.670093134046 --2.63691323996 -0.670102134347 --2.61769902706 -0.670092225074 --2.59848320484 -0.670074343681 --2.58122420311 -0.670058563351 --2.56396585703 -0.670044913888 --2.54670774937 -0.670033320785 --2.52945017815 -0.670023843646 --2.51219272613 -0.670016482472 --2.49493575096 -0.670011281967 --2.47767877579 -0.670008122921 --2.46042209864 -0.670007124543 --2.44316524267 -0.67000824213 --2.42590862513 -0.67001144588 --2.40865176916 -0.670016780496 --2.3913949132 -0.670024231076 --2.37413775921 -0.670033797622 --2.35688054562 -0.670045465231 --2.33962279558 -0.670059263706 --2.32236486673 -0.670075163245 --2.30510628223 -0.670093148947 --2.28784739971 -0.670102119446 --2.26863324642 -0.670092210173 --2.2494174242 -0.670074343681 --2.23215836286 -0.670058563351 --2.21490001679 -0.670044913888 --2.19764190912 -0.670033320785 --2.1803843379 -0.670023858547 --2.1631269455 -0.670016482472 --2.14586997032 -0.670011267066 --2.12861299515 -0.670008137822 --2.11135625839 -0.670007109642 --2.09409940243 -0.670008212328 --2.07684278488 -0.67001144588 --2.05958592892 -0.670016780496 --2.04232913256 -0.670024231076 --2.02507191896 -0.670033797622 --2.00781464577 -0.670045480132 --1.99055692553 -0.670059263707 --1.97329899669 -0.670075148344 --1.95604044199 -0.670093134046 --1.93878158927 -0.670102119446 --1.91956737638 -0.670092225075 --1.90035152435 -0.670074358582 --1.88309249282 -0.670058578253 --1.86583414674 -0.670044913888 --1.84857603907 -0.670033305883 --1.83131846786 -0.670023828745 --1.81406104564 -0.670016482472 --1.79680407047 -0.670011281967 --1.7795470953 -0.670008137822 --1.76229038835 -0.670007124543 --1.74503359198 -0.670008242131 --1.72777697444 -0.670011460781 --1.71052005887 -0.670016795397 --1.69326326251 -0.670024245977 --1.67600607872 -0.670033812523 --1.65874883532 -0.670045465231 --1.64149108529 -0.670059263706 --1.62423312664 -0.670075178146 --1.60697457194 -0.670093134046 --1.58971571922 -0.670102104544 --1.57050150633 -0.670092210173 --1.55128565431 -0.670074373483 --1.53402665258 -0.670058593154 --1.51676830649 -0.670044913888 --1.49951022863 -0.670033320785 --1.48225268721 -0.670023858547 --1.4649952352 -0.670016482472 --1.44773823023 -0.670011267066 --1.43048125505 -0.670008137822 --1.4132245779 -0.670007124543 --1.39596775174 -0.670008227229 --1.37871110439 -0.67001144588 --1.36145421863 -0.670016780496 --1.34419739246 -0.670024231076 --1.32694023847 -0.670033782721 --1.30968299508 -0.670045465231 --1.29242521524 -0.670059263707 --1.27516728639 -0.670075148344 --1.2579087615 -0.670093134046 --1.24064990878 -0.670102104544 --1.22143566609 -0.670092210173 --1.20221978426 -0.670074358582 --1.18496078253 -0.670058578253 --1.16770246625 -0.670044913888 --1.15044435859 -0.670033305883 --1.13318678737 -0.670023843646 --1.11592936516 -0.670016482472 --1.09867238998 -0.670011267066 --1.08141541481 -0.670008137822 --1.06415870786 -0.670007139444 --1.0469018817 -0.670008227229 --1.02964526415 -0.670011430979 --1.01238840819 -0.670016795397 --0.995131596924 -0.670024245977 --0.977874353528 -0.670033797622 --0.960617095232 -0.670045465231 --0.943359389901 -0.670059248805 --0.926101446152 -0.670075133443 --0.908842891455 -0.670093134046 --0.891584038734 -0.670102134347 --0.872369796037 -0.670092225074 --0.853153944015 -0.670074343681 --0.835894927383 -0.670058563351 --0.818636581302 -0.670044898987 --0.801378503442 -0.670033305884 --0.784120962024 -0.670023843646 --0.766863539815 -0.670016467571 --0.749606534838 -0.670011267066 --0.732349529862 -0.670008137822 --0.71509283781 -0.670007124543 --0.697836026549 -0.670008227229 --0.680579409003 -0.670011460781 --0.663322523236 -0.670016795397 --0.646065711975 -0.670024231076 --0.628808528185 -0.670033797622 --0.611551269889 -0.670045480132 --0.594293534756 -0.670059263707 --0.577035605908 -0.670075133443 --0.559777066112 -0.670093104243 --0.54251819849 -0.670102089643 --0.523303955793 -0.670092210173 --0.504088103771 -0.670074343681 --0.486829102039 -0.67005854845 --0.469570741057 -0.670044898987 --0.452312648297 -0.670033320785 --0.43505512178 -0.670023858547 --0.417797699571 -0.670016497373 --0.400540687144 -0.670011281967 --0.383283682168 -0.670008122921 --0.366026990115 -0.670007109642 --0.348770178855 -0.670008227229 --0.331513568759 -0.67001144588 --0.314256682992 -0.670016780496 --0.29699985683 -0.670024231076 --0.27974268049 -0.670033797622 --0.262485429645 -0.670045465231 --0.245227675885 -0.670059248805 --0.227969739586 -0.670075148344 --0.21071119234 -0.670093148947 --0.193452335894 -0.670102119446 --0.174238111824 -0.68719150126 --0.15501716733 -0.687173336744 --0.137758132071 -0.687157273292 --0.120499767363 -0.687143325805 --0.103241654113 -0.687131494284 --0.0859840847552 -0.68712182343 --0.0687266364694 -0.687114328146 --0.0514696175232 -0.687109038234 --0.0342126018368 -0.687105849385 --0.0169558916241 -0.687104821205 -0.00030094292015 -0.687105953693 -0.0175575949252 -0.687109276652 -0.0348144951277 -0.687114730478 -0.0520713357255 -0.687122255564 -0.0693285418674 -0.687132000923 -0.0865858159959 -0.687143951655 -0.103843592107 -0.687157958746 -0.12110154517 -0.687174111605 -0.13836010918 -0.687192469835 -0.155618991703 -0.687201619148 -0.174833014608 -0.68719150126 -0.194048672915 -0.687173336744 -0.21130771935 -0.687157258391 -0.228566080332 -0.687143310904 -0.245824187994 -0.687131509185 -0.263081759214 -0.687121868134 -0.280339211225 -0.687114357948 -0.297596231103 -0.687109038234 -0.31485324353 -0.687105849385 -0.332109957934 -0.687104821205 -0.349366798997 -0.687105953693 -0.366623446345 -0.687109261751 -0.383880354464 -0.687114670873 -0.401137188077 -0.687122255563 -0.418394394219 -0.687132030725 -0.435651667416 -0.68714389205 -0.452909424901 -0.687157914042 -0.470167391002 -0.687174111605 -0.487425968051 -0.687192469835 -0.504684843123 -0.687201634049 -0.523898854852 -0.687191516161 -0.543114513159 -0.687173306942 -0.560373559594 -0.68715724349 -0.577631935477 -0.687143325805 -0.594890058041 -0.687131524086 -0.612147629261 -0.687121883035 -0.629405081272 -0.687114357948 -0.646662086248 -0.687109038234 -0.663919106126 -0.687105849385 -0.68117582798 -0.687104836106 -0.698432654142 -0.687105968595 -0.715689301491 -0.687109261751 -0.732946187258 -0.687114670873 -0.750203028321 -0.687122255563 -0.767460256815 -0.687132030725 -0.784717530012 -0.68714389205 -0.801975294948 -0.687157914042 -0.819233253598 -0.687174126506 -0.836491808295 -0.687192484736 -0.853750690818 -0.687201619148 -0.872964724898 -0.68719150126 -0.892180368304 -0.687173306942 -0.909439399838 -0.687157228589 -0.926697775722 -0.687143310904 -0.943955913186 -0.687131494284 -0.961213499308 -0.687121868134 -0.978470936417 -0.687114357949 -0.995727941393 -0.687109023333 -1.01298496127 -0.687105849385 -1.03024166822 -0.687104821205 -1.04749849439 -0.687105953693 -1.06475514174 -0.687109261751 -1.08201205731 -0.687114670873 -1.09926891327 -0.687122255563 -1.11652609706 -0.687132030725 -1.13378337026 -0.687143906951 -1.15104115009 -0.687157928944 -1.16829907894 -0.687174126506 -1.18555763364 -0.687192484736 -1.20281651616 -0.687201619148 -1.22203058004 -0.68719150126 -1.24124625325 -0.687173306942 -1.25850525498 -0.68715724349 -1.27576363086 -0.687143325805 -1.29302176833 -0.687131479383 -1.31027933955 -0.687121838331 -1.32753679156 -0.687114357948 -1.34479379654 -0.687109038234 -1.36205080152 -0.687105849385 -1.37930750847 -0.687104836106 -1.39656433463 -0.687105968595 -1.41382098198 -0.687109261751 -1.43107786775 -0.687114670873 -1.44833472371 -0.687122225761 -1.4655919671 -0.687132000923 -1.4828492403 -0.687143921852 -1.50010699033 -0.687157988548 -1.51736494899 -0.687174171209 -1.53462353349 -0.687192469835 -1.55188241601 -0.687201604247 -1.57109642029 -0.68719150126 -1.5903120935 -0.687173321843 -1.60757115483 -0.68715724349 -1.62482950091 -0.687143325806 -1.64208760857 -0.687131509185 -1.65934517979 -0.687121868134 -1.676602602 -0.687114357949 -1.69385960698 -0.687109023333 -1.71111664176 -0.687105849385 -1.72837334871 -0.687104836106 -1.74563017488 -0.687105968595 -1.76288685203 -0.687109261751 -1.7801437676 -0.687114670873 -1.79740059376 -0.687122255563 -1.81465780735 -0.687132015824 -1.83191508055 -0.68714389205 -1.84917286038 -0.687157928944 -1.86643084883 -0.687174126506 -1.88368940353 -0.687192484736 -1.90094825625 -0.687201619148 -1.92016229033 -0.68719150126 -1.93937793374 -0.687173306942 -1.95663693547 -0.68715724349 -1.97389531135 -0.687143325805 -1.99115344882 -0.687131479383 -2.00841096044 -0.687121853233 -2.02566844225 -0.687114357949 -2.04292553663 -0.687109023333 -2.06018251181 -0.687105849385 -2.07743924856 -0.687104836106 -2.09469610453 -0.687105953693 -2.11195272207 -0.68710924685 -2.12920963764 -0.687114685774 -2.146466434 -0.687122270464 -2.16372364759 -0.687132030725 -2.1809809804 -0.68714389205 -2.19823867082 -0.687157914042 -2.21549659967 -0.687174111605 -2.23275518417 -0.687192440033 -2.2500140667 -0.687201604247 -2.26922810078 -0.687191516161 -2.28844374418 -0.687173306942 -2.30570286512 -0.68715724349 -2.32296127081 -0.687143325805 -2.34021931887 -0.687131524086 -2.35747689009 -0.687121883035 -2.3747343421 -0.687114343047 -2.39199131727 -0.687109023333 -2.40924835205 -0.687105849385 -2.42650508881 -0.687104836106 -2.44376188517 -0.687105968595 -2.46101850271 -0.687109276652 -2.47827541828 -0.687114685774 -2.49553233385 -0.687122255563 -2.51278954744 -0.687132030725 -2.53004676103 -0.687143936753 -2.54730451107 -0.687157958746 -2.56456243992 -0.687174111605 -2.58182102442 -0.687192454934 -2.59907996654 -0.687201604247 -2.61829400062 -0.68719150126 -2.63750964403 -0.687173306942 -2.65476870537 -0.687157228589 -2.67202705145 -0.687143310904 -2.68928515911 -0.687131494284 -2.70654273033 -0.687121868134 -2.72380012274 -0.68711437285 -2.74105709791 -0.687109038234 -2.75831413269 -0.687105849385 -2.77557092905 -0.687104836106 -2.79282778502 -0.687105968595 -2.81008440256 -0.687109261751 -2.82734125853 -0.687114670873 -2.84459811449 -0.687122255563 -2.86185532808 -0.687132030725 -2.87911254168 -0.68714389205 -2.89637035132 -0.687157914042 -2.91362839937 -0.687174126506 -2.93088698387 -0.687192484736 -2.94814580679 -0.687201619148 -2.96735984087 -0.68719150126 -2.98657548427 -0.687173336744 -3.00383448601 -0.687157273292 -3.02109283209 -0.687143325805 -3.03835093975 -0.687131494284 -3.05560851097 -0.68712182343 -3.07286596298 -0.687114328146 -3.09012305737 -0.687109038234 -3.10738009214 -0.687105849385 -3.12463676929 -0.687104821205 --3.14129170974 -0.687105953693 --3.12403506041 -0.687109276652 --3.10677820444 -0.687114730478 --3.08952134848 -0.687122255564 --3.07226413488 -0.687132000923 --3.05500686169 -0.687143951655 --3.03774905205 -0.687157958746 --3.0204910636 -0.687174111605 --3.0032324791 -0.687192469835 --2.98597359657 -0.687201619148 --2.96675956249 -0.68719150126 --2.94754391909 -0.687173336744 --2.93028491735 -0.687157258391 --2.91302657128 -0.687143310904 --2.89576840401 -0.687131509185 --2.87851089239 -0.687121868134 --2.86125349999 -0.687114357948 --2.8439964056 -0.687109038234 --2.82673937082 -0.687105849385 --2.80948269367 -0.687104821205 --2.79222589731 -0.687105953693 --2.77496922016 -0.687109261751 --2.75771224499 -0.687114670873 --2.74045544863 -0.687122255563 --2.72319823504 -0.687132030725 --2.70594090224 -0.68714389205 --2.6886832118 -0.687157914042 --2.67142528296 -0.687174111605 --2.65416669846 -0.687192469835 --2.63690781593 -0.687201634049 --2.61769378185 -0.687191516161 --2.59847813845 -0.687173306942 --2.58121913672 -0.68715724349 --2.56396073103 -0.687143325805 --2.54670256376 -0.687131524086 --2.52944499254 -0.687121883035 --2.51218754053 -0.687114357948 --2.49493056536 -0.687109038234 --2.47767353058 -0.687105849385 --2.46041679382 -0.687104836106 --2.44315993786 -0.687105968595 --2.42590332031 -0.687109261751 --2.40864646435 -0.687114670873 --2.39138960838 -0.687122255563 --2.37413239479 -0.687132030725 --2.35687512159 -0.68714389205 --2.33961737156 -0.687157914042 --2.32235944271 -0.687174126506 --2.30510085821 -0.687192484736 --2.28784197569 -0.687201619148 --2.26862800121 -0.68719150126 --2.24941235781 -0.687173306942 --2.23215323686 -0.687157228589 --2.21489483118 -0.687143310904 --2.19763672352 -0.687131494284 --2.1803791523 -0.687121868134 --2.16312175989 -0.687114357949 --2.14586478472 -0.687109023333 --2.12860774994 -0.687105849385 --2.11135101318 -0.687104821205 --2.09409415722 -0.687105953693 --2.07683748007 -0.687109261751 --2.0595806241 -0.687114670873 --2.04232376814 -0.687122255563 --2.02506655455 -0.687132030725 --2.00780931115 -0.687143906951 --1.99055153131 -0.687157928944 --1.97329357266 -0.687174126506 --1.95603498816 -0.687192484736 --1.93877610564 -0.687201619148 --1.91956210136 -0.68719150126 --1.90034642816 -0.687173306942 --1.88308736682 -0.68715724349 --1.86582902074 -0.687143325805 --1.84857091308 -0.687131479383 --1.83131334186 -0.687121838331 --1.81405588985 -0.687114357948 --1.79679888487 -0.687109038234 --1.77954187989 -0.687105849385 --1.76228514313 -0.687104836106 --1.74502831697 -0.687105968595 --1.72777166963 -0.687109261751 --1.71051475406 -0.687114670873 --1.69325792789 -0.687122225761 --1.6760007143 -0.687132000923 --1.6587434411 -0.687143921852 --1.64148566127 -0.687157988548 --1.62422767282 -0.687174171209 --1.60696908832 -0.687192469835 --1.5897102356 -0.687201604247 --1.57049623132 -0.68719150126 --1.55128058791 -0.687173321843 --1.53402155638 -0.68715724349 --1.51676318049 -0.687143325806 --1.49950507283 -0.687131509185 --1.48224750161 -0.687121868134 --1.4649900496 -0.687114357949 --1.44773301482 -0.687109023333 --1.43047600985 -0.687105849385 --1.41321930289 -0.687104836106 --1.39596244693 -0.687105968595 --1.37870579958 -0.687109261751 --1.36144888401 -0.687114670873 --1.34419205785 -0.687122255563 --1.32693487406 -0.687132015824 --1.30967757106 -0.68714389205 --1.29241979122 -0.687157928944 --1.27516186237 -0.687174126506 --1.25790330767 -0.687192484736 --1.24064442515 -0.687201619148 --1.22143039107 -0.68719150126 --1.20221471787 -0.687173306942 --1.18495568633 -0.68715724349 --1.16769731045 -0.687143325805 --1.15043917299 -0.687131479383 --1.13318160176 -0.687121853233 --1.11592414975 -0.687114357949 --1.09866717458 -0.687109023333 --1.08141019941 -0.687105849385 --1.06415346265 -0.687104836106 --1.04689660668 -0.687105953693 --1.02963995933 -0.68710924685 --1.01238307357 -0.687114685774 --0.995126232505 -0.687122270464 --0.97786898911 -0.687132030725 --0.960611715913 -0.68714389205 --0.943353980779 -0.687157914042 --0.926096007228 -0.687174111605 --0.908837422728 -0.687192440033 --0.891578555107 -0.687201604247 --0.872364521026 -0.687191516161 --0.853148862719 -0.687173306942 --0.835889816284 -0.68715724349 --0.818631440401 -0.687143325805 --0.801373332739 -0.687131524086 --0.784115791321 -0.687121883035 --0.766858369112 -0.687114343047 --0.749601334333 -0.687109023333 --0.732344299555 -0.687105849385 --0.715087577701 -0.687104836106 --0.697830751538 -0.687105968595 --0.680574119091 -0.687109276652 --0.663317218423 -0.687114685774 --0.646060362458 -0.687122255563 --0.628803148866 -0.687132030725 --0.611545875669 -0.687143936753 --0.594288110733 -0.687157958746 --0.577030166984 -0.687174111605 --0.559771612287 -0.687192454934 --0.542512714863 -0.687201604247 --0.523298665881 -0.68719150126 --0.504083022475 -0.687173306942 --0.486823998391 -0.687157228589 --0.469565622508 -0.687143310904 --0.452307499945 -0.687131494284 --0.435049936175 -0.687121868134 --0.417792491615 -0.68711437285 --0.400535471737 -0.687109038234 --0.38327845186 -0.687105849385 --0.366021730006 -0.687104836106 --0.348764896393 -0.687105968595 --0.331508271396 -0.687109261751 --0.314251363277 -0.687114670873 --0.296994507312 -0.687122255563 --0.279737308621 -0.687132030725 --0.262480035424 -0.68714389205 --0.245222255587 -0.687157914042 --0.227964304388 -0.687174126506 --0.21070574224 -0.687192484736 --0.193446863443 -0.687201619148 --0.174232833087 -0.704305842519 --0.155011326074 -0.704287335276 --0.137752261013 -0.7042709589 --0.120493872091 -0.704256787896 --0.103235736489 -0.704244732857 --0.0859781373292 -0.704234868288 --0.0687206638977 -0.704227253795 --0.0514636253938 -0.704221844673 --0.0342065840959 -0.704218581319 --0.0169498482719 -0.70421756804 -0.000307010719552 -0.70421873033 -0.0175636874046 -0.704222068191 -0.0348206120543 -0.704227626324 -0.0520774787292 -0.704235345125 -0.0693347118795 -0.704245239496 -0.0865920111537 -0.704257383942 -0.103849809617 -0.704271674156 -0.121107788756 -0.704288125038 -0.138366378844 -0.704306811094 -0.155625283718 -0.70431612432 -0.174839086831 -0.704305842519 -0.194054525345 -0.704287335276 -0.211313594133 -0.7042709589 -0.228571981192 -0.704256758094 -0.245830111206 -0.704244732857 -0.263087704777 -0.704234927893 -0.28034517169 -0.704227253795 -0.297602213919 -0.704221814871 -0.314859263599 -0.704218581319 -0.332116000355 -0.70421756804 -0.349372863769 -0.70421873033 -0.36662954092 -0.704222068191 -0.383886471391 -0.704227596521 -0.401143342257 -0.704235345125 -0.418400578201 -0.704245269299 -0.435657858849 -0.70425735414 -0.452915631235 -0.704271644354 -0.470173627138 -0.704288125038 -0.487432233989 -0.704306811094 -0.504691123963 -0.70431612432 -0.523904919625 -0.704305842519 -0.543120369315 -0.704287305474 -0.560379430652 -0.704270929098 -0.577637821436 -0.704256758094 -0.594895973802 -0.704244732857 -0.612153559923 -0.704234927893 -0.629411041737 -0.704227253795 -0.646668076515 -0.704221814871 -0.663925111294 -0.704218611121 -0.681181848049 -0.704217597842 -0.698438704014 -0.70421873033 -0.715695396066 -0.704222068191 -0.732952311635 -0.704227596521 -0.750209182501 -0.704235345125 -0.767466425896 -0.704245269299 -0.784723713994 -0.70425735414 -0.801981508732 -0.704271644354 -0.819239497185 -0.704288125038 -0.836498081684 -0.704306811094 -0.853756994009 -0.70431612432 -0.872970804572 -0.704305842519 -0.892186224461 -0.704287305474 -0.909445270896 -0.704270929098 -0.92670366168 -0.704256758094 -0.943961828947 -0.704244703055 -0.961219444871 -0.70423489809 -0.978476896882 -0.704227253795 -0.995733916759 -0.704221844673 -1.01299095154 -0.704218611121 -1.03024768829 -0.70421756804 -1.04750457406 -0.70421873033 -1.06476125121 -0.704222068191 -1.08201816678 -0.704227596521 -1.09927505255 -0.704235345125 -1.11653229594 -0.704245269299 -1.13378959894 -0.70425735414 -1.15104737878 -0.704271644354 -1.16830533743 -0.704288125038 -1.18556392193 -0.704306811094 -1.20282280445 -0.70431612432 -1.22203662991 -0.704305842519 -1.24125209451 -0.704287305474 -1.25851112604 -0.704270929098 -1.27576953172 -0.704256787896 -1.29302769899 -0.704244732857 -1.31028527021 -0.70423489809 -1.32754275203 -0.704227253795 -1.34479981661 -0.704221814871 -1.36205685139 -0.704218581319 -1.37931355834 -0.704217538237 -1.3965703845 -0.704218700528 -1.41382706166 -0.704222068191 -1.43108400702 -0.704227596521 -1.44834089279 -0.704235315323 -1.46559813619 -0.704245239496 -1.48285540938 -0.704257383942 -1.50011318922 -0.704271703958 -1.51737117767 -0.70428815484 -1.53462979198 -0.704306840896 -1.5518887043 -0.704316154122 -1.57110249996 -0.704305842519 -1.59031793475 -0.704287305474 -1.60757699609 -0.704270899296 -1.62483537197 -0.704256728291 -1.64209350943 -0.704244703055 -1.65935111046 -0.70423489809 -1.67660856247 -0.704227253795 -1.69386559725 -0.704221814871 -1.71112266183 -0.704218581319 -1.72837942839 -0.70421756804 -1.74563628435 -0.70421873033 -1.7628929615 -0.704222097993 -1.78014987707 -0.704227626324 -1.79740673303 -0.704235345125 -1.81466397643 -0.704245269299 -1.83192127943 -0.70425735414 -1.84917908907 -0.704271644354 -1.86643707752 -0.704288125038 -1.88369566202 -0.704306811094 -1.90095457435 -0.70431612432 -1.92016837001 -0.704305842519 -1.939383775 -0.704287305474 -1.95664280653 -0.704270929098 -1.97390121221 -0.704256758094 -1.99115937948 -0.704244703055 -2.0084169209 -0.70423489809 -2.02567440271 -0.704227253795 -2.0429314971 -0.704221844673 -2.06018853188 -0.704218611121 -2.07744526863 -0.704217538237 -2.09470212459 -0.704218700528 -2.11195880174 -0.704222068191 -2.12921571731 -0.704227596521 -2.14647257328 -0.704235345125 -2.16372984648 -0.704245269299 -2.18098717928 -0.70425735414 -2.19824492931 -0.704271644354 -2.21550285816 -0.704288125038 -2.23276144266 -0.704306781292 -2.25002032518 -0.704316094518 -2.26923412084 -0.704305842519 -2.28844958544 -0.704287305474 -2.30570870638 -0.704270929098 -2.32296711207 -0.704256758094 -2.34022521973 -0.704244732857 -2.35748285055 -0.704234927893 -2.37474030256 -0.704227253795 -2.39199727774 -0.704221844673 -2.40925437212 -0.704218611121 -2.42651110888 -0.704217538237 -2.44376790524 -0.704218700528 -2.46102458238 -0.704222068191 -2.47828155756 -0.704227596521 -2.49553847313 -0.704235345125 -2.51279568672 -0.704245269299 -2.53005295992 -0.704257383942 -2.54731076956 -0.704271674156 -2.56456869841 -0.704288125038 -2.5818272829 -0.704306811094 -2.59908628464 -0.70431612432 -2.6183000803 -0.704305842519 -2.63751548529 -0.704287305474 -2.65477454663 -0.704270929098 -2.67203295231 -0.704256758094 -2.68929111958 -0.704244703055 -2.7065486908 -0.70423489809 -2.7238060832 -0.704227253795 -2.74106311798 -0.704221844673 -2.75832021236 -0.704218611121 -2.77557700872 -0.70421756804 -2.79283386469 -0.70421873033 -2.81009048224 -0.704222068191 -2.82734739781 -0.704227596521 -2.84460425377 -0.704235345125 -2.86186146736 -0.704245269299 -2.87911874056 -0.70425735414 -2.8963765502 -0.704271644354 -2.91363459825 -0.704288125038 -2.93089324236 -0.704306811094 -2.94815212488 -0.70431612432 -2.96736592055 -0.704305842519 -2.98658132553 -0.704287335276 -3.00384038687 -0.7042709589 -3.02109879255 -0.704256787896 -3.03835690021 -0.704244732857 -3.05561447143 -0.704234868288 -3.07287198305 -0.704227253795 -3.09012907743 -0.704221844673 -3.10738605261 -0.704218581319 -3.12464278936 -0.70421756804 --3.14128563006 -0.70421873033 --3.12402898073 -0.704222068191 --3.10677206516 -0.704227626324 --3.0895152092 -0.704235345125 --3.07225799561 -0.704245239496 --3.05500072241 -0.704257383942 --3.03774291277 -0.704271674156 --3.02048486471 -0.704288125038 --3.00322622061 -0.704306811094 --2.98596733809 -0.70431612432 --2.96675354242 -0.704305842519 --2.94753807783 -0.704287335276 --2.93027901649 -0.7042709589 --2.91302067041 -0.704256758094 --2.89576250315 -0.704244732857 --2.87850493193 -0.704234927893 --2.86124747992 -0.704227253795 --2.84399038553 -0.704221814871 --2.82673335075 -0.704218581319 --2.809476614 -0.70421756804 --2.79221975803 -0.70421873033 --2.77496308088 -0.704222068191 --2.75770616531 -0.704227596521 --2.74044930935 -0.704235345125 --2.72319203615 -0.704245269299 --2.70593470335 -0.70425735414 --2.68867695332 -0.704271644354 --2.67141902447 -0.704288125038 --2.65416043997 -0.704306811094 --2.63690155745 -0.70431612432 --2.61768776179 -0.704305842519 --2.59847229719 -0.704287305474 --2.58121323586 -0.704270929098 --2.56395483017 -0.704256758094 --2.5466966629 -0.704244732857 --2.52943909168 -0.704234927893 --2.51218163967 -0.704227253795 --2.49492460489 -0.704221814871 --2.47766751051 -0.704218611121 --2.46041077376 -0.704217597842 --2.44315391779 -0.70421873033 --2.42589724064 -0.704222068191 --2.40864032507 -0.704227596521 --2.39138346911 -0.704235345125 --2.37412625551 -0.704245269299 --2.35686892271 -0.70425735414 --2.33961111307 -0.704271644354 --2.32235312462 -0.704288125038 --2.30509454012 -0.704306811094 --2.2878356576 -0.70431612432 --2.26862186194 -0.704305842519 --2.24940645695 -0.704287305474 --2.23214739561 -0.704270929098 --2.21488898992 -0.704256758094 --2.19763082266 -0.704244703055 --2.18037319183 -0.70423489809 --2.16311579943 -0.704227253795 --2.14585882425 -0.704221844673 --2.12860172987 -0.704218611121 --2.11134499311 -0.70421756804 --2.09408813715 -0.70421873033 --2.0768314004 -0.704222068191 --2.05957448483 -0.704227596521 --2.04231762886 -0.704235345125 --2.02506041527 -0.704245269299 --2.00780314207 -0.70425735414 --1.99054533243 -0.704271644354 --1.97328734398 -0.704288125038 --1.95602872968 -0.704306811094 --1.93876981735 -0.70431612432 --1.91955602169 -0.704305842519 --1.9003405869 -0.704287305474 --1.88308152556 -0.704270929098 --1.86582314968 -0.704256787896 --1.84856501222 -0.704244732857 --1.83130741119 -0.70423489809 --1.81404995918 -0.704227253795 --1.79679292441 -0.704221814871 --1.77953585983 -0.704218581319 --1.76227909327 -0.704217538237 --1.7450222373 -0.704218700528 --1.72776556015 -0.704222068191 --1.71050864458 -0.704227596521 --1.69325178862 -0.704235315323 --1.67599454522 -0.704245239496 --1.65873724222 -0.704257383942 --1.64147943258 -0.704271703958 --1.62422144413 -0.70428815484 --1.60696285963 -0.704306840896 --1.5897039473 -0.704316154122 --1.57049015164 -0.704305842519 --1.55127474666 -0.704287305474 --1.53401565552 -0.704270899296 --1.51675724983 -0.704256728291 --1.49949914217 -0.704244703055 --1.48224154115 -0.70423489809 --1.46498405933 -0.704227253795 --1.44772702456 -0.704221814871 --1.43046998978 -0.704218581319 --1.41321325302 -0.70421756804 --1.39595636726 -0.70421873033 --1.3786997199 -0.704222097993 --1.36144280433 -0.704227626324 --1.34418591857 -0.704235345125 --1.32692867518 -0.704245269299 --1.30967134237 -0.70425735414 --1.29241356254 -0.704271644354 --1.27515560389 -0.704288125038 --1.25789701939 -0.704306811094 --1.24063813686 -0.70431612432 --1.2214243412 -0.704305842519 --1.20220887661 -0.704287305474 --1.18494981527 -0.704270929098 --1.16769140959 -0.704256758094 --1.15043324232 -0.704244703055 --1.1331756711 -0.70423489809 --1.11591821909 -0.704227253795 --1.09866118431 -0.704221844673 --1.08140414953 -0.704218611121 --1.06414741278 -0.704217538237 --1.04689055681 -0.704218700528 --1.02963387966 -0.704222068191 --1.01237693429 -0.704227596521 --0.995120078324 -0.704235345125 --0.97786283493 -0.704245269299 --0.960605531931 -0.70425735414 --0.943347752094 -0.704271644354 --0.92608974874 -0.704288125038 --0.90883114934 -0.704306781292 --0.891572266817 -0.704316094518 --0.872358486056 -0.704305842519 --0.853143036365 -0.704287305474 --0.835883945227 -0.704270929098 --0.818625554442 -0.704256758094 --0.801367402077 -0.704244732857 --0.784109815955 -0.704234927893 --0.766852378845 -0.704227253795 --0.749595344066 -0.704221844673 --0.732338294387 -0.704218611121 --0.71508154273 -0.704217538237 --0.697824701667 -0.704218700528 --0.680568039417 -0.704222068191 --0.663311108947 -0.704227596521 --0.64605422318 -0.704235345125 --0.628796964884 -0.704245269299 --0.611539676786 -0.704257383942 --0.594281882048 -0.704271674156 --0.577023908496 -0.704288125038 --0.559765338898 -0.704306811094 --0.542506426573 -0.70431612432 --0.52329261601 -0.704305842519 --0.504077188671 -0.704287305474 --0.486818127334 -0.704270929098 --0.46955973655 -0.704256758094 --0.452301584184 -0.704244703055 --0.435043983162 -0.70423489809 --0.417786516249 -0.704227253795 --0.400529466569 -0.704221844673 --0.38327242434 -0.704218611121 --0.366015687585 -0.70421756804 --0.34875882417 -0.70421873033 --0.33150216192 -0.704222068191 --0.3142452389 -0.704227596521 --0.296988360584 -0.704235345125 --0.279731124639 -0.704245269299 --0.262473829091 -0.70425735414 --0.245216034353 -0.704271644354 --0.227958064526 -0.704288125038 --0.210699480027 -0.704306811094 --0.193440571427 -0.70431612432 --0.174226764589 -0.721457719803 --0.155005641282 -0.721438854933 --0.137746550143 -0.721422210336 --0.120488140732 -0.721407815814 --0.103229979053 -0.721395537257 --0.0859723538161 -0.721385493875 --0.0687148580328 -0.721377745271 --0.0514577981084 -0.72137221694 --0.0342007325962 -0.721368923783 --0.0169439713936 -0.721367910504 -0.000312911346555 -0.721369072795 -0.0175696124788 -0.721372455358 -0.0348265599459 -0.721378102899 -0.0520834485069 -0.721385985613 -0.0693407095969 -0.721396058798 -0.0865980368107 -0.721408382058 -0.103855855763 -0.721422940492 -0.121113857254 -0.7214397192 -0.138372477144 -0.72145870328 -0.15563140437 -0.721468180418 -0.17484498769 -0.721457719803 -0.194060206413 -0.721438854933 -0.211319293827 -0.721422210336 -0.228577710688 -0.721407786012 -0.24583587423 -0.721395522356 -0.263093493879 -0.721385508776 -0.280350990593 -0.721377715469 -0.297608062625 -0.72137221694 -0.314865127206 -0.721368923783 -0.332121878862 -0.721367880702 -0.349378757178 -0.721369072795 -0.366635464132 -0.721372455358 -0.383892416954 -0.721378102899 -0.401149310172 -0.721385985613 -0.418406575918 -0.721396058798 -0.435663886368 -0.721408382058 -0.452921688557 -0.721422940492 -0.470179699362 -0.721439689398 -0.487438321114 -0.721458673477 -0.504697240889 -0.721468180418 -0.523910835385 -0.721457719803 -0.543126061559 -0.721438854933 -0.560385137796 -0.721422210336 -0.577643558383 -0.721407786012 -0.594901740551 -0.721395522356 -0.612159341574 -0.721385508776 -0.629416838288 -0.721377715469 -0.64667391777 -0.72137221694 -0.66393096745 -0.721368953585 -0.681187719107 -0.721367910504 -0.698444604874 -0.721369072795 -0.715701311827 -0.721372455358 -0.732958257198 -0.721378102899 -0.750215142965 -0.721385985613 -0.767472401261 -0.721396058798 -0.784729719162 -0.721408382058 -0.801987543702 -0.721422940492 -0.819245576858 -0.721439689398 -0.836504191161 -0.721458673477 -0.853763103485 -0.721468180418 -0.872976705432 -0.721457749605 -0.892191916704 -0.721438884735 -0.909450978041 -0.721422210336 -0.926709383726 -0.721407786012 -0.943967565894 -0.721395522356 -0.961225211621 -0.721385508776 -0.978482693434 -0.721377745271 -0.995739743113 -0.721372276544 -1.01299679279 -0.721368983388 -1.03025355935 -0.721367910504 -1.04751047492 -0.721369072795 -1.06476718188 -0.721372455358 -1.08202412725 -0.721378102899 -1.09928101301 -0.721385985613 -1.11653828621 -0.7213960886 -1.13379561901 -0.72140841186 -1.15105342865 -0.721422940492 -1.1683114171 -0.721439689398 -1.1855700314 -0.72145870328 -1.20282894373 -0.721468210221 -1.22204253078 -0.721457749605 -1.24125778675 -0.721438884735 -1.25851684809 -0.721422210336 -1.27577525377 -0.721407815814 -1.29303342104 -0.721395552159 -1.31029102206 -0.721385508776 -1.32754853368 -0.721377715469 -1.34480562806 -0.72137221694 -1.36206269264 -0.721368953585 -1.3793194294 -0.721367880702 -1.39657631516 -0.721369042993 -1.41383302212 -0.721372455358 -1.43108996749 -0.721378102899 -1.44834685325 -0.721385985613 -1.46560409665 -0.721396058798 -1.48286139965 -0.721408382058 -1.50011923909 -0.721422940492 -1.51737725735 -0.721439689398 -1.53463587165 -0.721458733082 -1.55189481378 -0.72146821022 -1.57110840082 -0.72145769 -1.59032359719 -0.721438854933 -1.60758268833 -0.721422150731 -1.62484109402 -0.721407696605 -1.64209926128 -0.721395492554 -1.65935689211 -0.721385508776 -1.67661437393 -0.721377715469 -1.6938714385 -0.72137221694 -1.71112853289 -0.721368953585 -1.72838532925 -0.721367910504 -1.74564218521 -0.721369072795 -1.76289886236 -0.721372485161 -1.78015580773 -0.721378132701 -1.7974126935 -0.721385985613 -1.8146699667 -0.721396058798 -1.8319272995 -0.721408382058 -1.84918510914 -0.721422940492 -1.86644312739 -0.721439689398 -1.88370174169 -0.721458673477 -1.90096065402 -0.721468180418 -1.92017424107 -0.721457749605 -1.93938946724 -0.721438884735 -1.95664852858 -0.721422210336 -1.97390693426 -0.721407786012 -1.99116513133 -0.721395522356 -2.00842273235 -0.721385508776 -2.02568024397 -0.721377745271 -2.04293733835 -0.721372276544 -2.06019443273 -0.721368953585 -2.07745116949 -0.7213678509 -2.09470802546 -0.721369042993 -2.11196476221 -0.721372455358 -2.12922167778 -0.721378102899 -2.14647853374 -0.721385985613 -2.16373580694 -0.721396058798 -2.18099313974 -0.721408382058 -2.19825100899 -0.721422940492 -2.21550899744 -0.721439689398 -2.23276752234 -0.721458673477 -2.25002646446 -0.721468180418 -2.26924008131 -0.721457719803 -2.28845530749 -0.721438854933 -2.30571442842 -0.721422210336 -2.32297283411 -0.721407786012 -2.34023100138 -0.721395522356 -2.3574886322 -0.721385508776 -2.37474608421 -0.721377745271 -2.39200311899 -0.721372246742 -2.40926021337 -0.721368953585 -2.42651700973 -0.721367880702 -2.4437738657 -0.721369042993 -2.46103054285 -0.721372455358 -2.47828751803 -0.721378102899 -2.4955444336 -0.721385985613 -2.51280164719 -0.7213960886 -2.53005897999 -0.72140841186 -2.54731684923 -0.721422940492 -2.56457477808 -0.721439689398 -2.58183336258 -0.721458673477 -2.59909236431 -0.721468180418 -2.61830598116 -0.721457749605 -2.63752120734 -0.721438884735 -2.65478026867 -0.721422210336 -2.67203867435 -0.721407786012 -2.68929684162 -0.721395522356 -2.70655447245 -0.721385538578 -2.72381192446 -0.721377745271 -2.74106901884 -0.721372246742 -2.75832611322 -0.721368953585 -2.77558284998 -0.721367880702 -2.79283976555 -0.721369072795 -2.81009638309 -0.721372455358 -2.82735329866 -0.721378102899 -2.84461021423 -0.721385985613 -2.86186748743 -0.721396058798 -2.87912482023 -0.721408382058 -2.89638262987 -0.721422940492 -2.91364067793 -0.721439689398 -2.93089932203 -0.72145870328 -2.94815820455 -0.721468210221 -2.9673717618 -0.721457719803 -2.98658698797 -0.721438854933 -3.00384610891 -0.721422210336 -3.0211045146 -0.721407815814 -3.03836262226 -0.721395537257 -3.05562025309 -0.721385493875 -3.07287782431 -0.721377745271 -3.09013491869 -0.72137221694 -3.10739189386 -0.721368923783 -3.12464863062 -0.721367910504 --3.1412797292 -0.721369072795 --3.12402302027 -0.721372455358 --3.1067661047 -0.721378102899 --3.08950924874 -0.721385985613 --3.07225197554 -0.721396058798 --3.05499464274 -0.721408382058 --3.03773683309 -0.721422940492 --3.02047878504 -0.7214397192 --3.00322014093 -0.72145870328 --2.98596125841 -0.721468180418 --2.96674770117 -0.721457719803 --2.94753247499 -0.721438854933 --2.93027335405 -0.721422210336 --2.91301494837 -0.721407786012 --2.8957567811 -0.721395522356 --2.87849915028 -0.721385508776 --2.86124163866 -0.721377715469 --2.84398454428 -0.72137221694 --2.8267275095 -0.721368923783 --2.80947077274 -0.721367880702 --2.79221385717 -0.721369072795 --2.77495712042 -0.721372455358 --2.75770020485 -0.721378102899 --2.74044334888 -0.721385985613 --2.72318607569 -0.721396058798 --2.70592874289 -0.721408382058 --2.68867093325 -0.721422940492 --2.67141294479 -0.721439689398 --2.6541543603 -0.721458673477 --2.63689547777 -0.721468180418 --2.61768186092 -0.721457719803 --2.59846657515 -0.721438854933 --2.58120751381 -0.721422210336 --2.56394910812 -0.721407786012 --2.54669088125 -0.721395522356 --2.52943331003 -0.721385508776 --2.51217585802 -0.721377715469 --2.49491876364 -0.72137221694 --2.47766166926 -0.721368953585 --2.4604049325 -0.721367910504 --2.44314807653 -0.721369072795 --2.42589133978 -0.721372455358 --2.40863436461 -0.721378102899 --2.39137750864 -0.721385985613 --2.37412029505 -0.721396058798 --2.35686296225 -0.721408382058 --2.339605093 -0.721422940492 --2.32234704494 -0.721439689398 --2.30508846044 -0.721458673477 --2.28782951832 -0.721468180418 --2.26861590147 -0.721457749605 --2.2494007349 -0.721438884735 --2.23214167357 -0.721422210336 --2.21488326788 -0.721407786012 --2.19762510061 -0.721395522356 --2.18036741018 -0.721385508776 --2.16310995817 -0.721377745271 --2.145852983 -0.721372276544 --2.12859588862 -0.721368983388 --2.11133909226 -0.721367910504 --2.09408223629 -0.721369072795 --2.07682555914 -0.721372455358 --2.05956858396 -0.721378102899 --2.0423116684 -0.721385985613 --2.0250543952 -0.7213960886 --2.0077970624 -0.72140841186 --1.99053925276 -0.721422940492 --1.9732812643 -0.721439689398 --1.9560226202 -0.72145870328 --1.93876367807 -0.721468210221 --1.91955009103 -0.721457749605 --1.90033489466 -0.721438884735 --1.88307583332 -0.721422210336 --1.86581739783 -0.721407815814 --1.84855923057 -0.721395552159 --1.83130159974 -0.721385508776 --1.81404411793 -0.721377715469 --1.79678708315 -0.72137221694 --1.77952998877 -0.721368953585 --1.76227319241 -0.721367880702 --1.74501633644 -0.721369042993 --1.72775965929 -0.721372455358 --1.71050271392 -0.721378102899 --1.69324582815 -0.721385985613 --1.67598855495 -0.721396058798 --1.65873122215 -0.721408382058 --1.64147341252 -0.721422940492 --1.62421539426 -0.721439689398 --1.60695677996 -0.721458733082 --1.58969783783 -0.72146821022 --1.57048425078 -0.72145769 --1.55126905442 -0.721438854933 --1.53400993347 -0.721422150731 --1.51675152778 -0.721407696605 --1.49949339032 -0.721395492554 --1.4822357595 -0.721385508776 --1.46497824788 -0.721377715469 --1.4477211833 -0.72137221694 --1.43046414852 -0.721368953585 --1.41320741177 -0.721367910504 --1.3959504962 -0.721369072795 --1.37869378924 -0.721372485161 --1.36143684387 -0.721378132701 --1.3441799283 -0.721385985613 --1.32692265511 -0.721396058798 --1.3096653223 -0.721408382058 --1.29240751267 -0.721422940492 --1.27514952421 -0.721439689398 --1.25789090991 -0.721458673477 --1.24063199758 -0.721468180418 --1.22141841054 -0.721457749605 --1.20220315457 -0.721438884735 --1.18494409323 -0.721422210336 --1.16768568754 -0.721407786012 --1.15042752028 -0.721395522356 --1.13316991925 -0.721385508776 --1.11591243744 -0.721377745271 --1.09865537286 -0.721372276544 --1.08139827848 -0.721368953585 --1.06414151192 -0.7213678509 --1.04688462615 -0.721369042993 --1.029627949 -0.721372455358 --1.01237100363 -0.721378102899 --0.995114102958 -0.721385985613 --0.977856829762 -0.721396058798 --0.960599496961 -0.721408382058 --0.943341672421 -0.721422940492 --0.926083654165 -0.721439689398 --0.908825054765 -0.721458673477 --0.89156614244 -0.721468180418 --0.872352585196 -0.721457719803 --0.853137359023 -0.721438854933 --0.835878238082 -0.721422210336 --0.818619832396 -0.721407786012 --0.80136166513 -0.721395522356 --0.784104034305 -0.721385508776 --0.766846552491 -0.721377745271 --0.749589502811 -0.721372246742 --0.73233243823 -0.721368953585 --0.715075656772 -0.721367880702 --0.697818785906 -0.721369042993 --0.680562093854 -0.721372455358 --0.663305133581 -0.721378102899 --0.646048247814 -0.721385985613 --0.628790989518 -0.7213960886 --0.611533671618 -0.72140841186 --0.594275847078 -0.721422940492 --0.577017858625 -0.721439689398 --0.559759259224 -0.721458673477 --0.542500331998 -0.721468180418 --0.523286744952 -0.721457749605 --0.504071511329 -0.721438884735 --0.486812420189 -0.721422210336 --0.469553999603 -0.721407786012 --0.452295824886 -0.721395522356 --0.435038216412 -0.721385538578 --0.417780719697 -0.721377745271 --0.400523632765 -0.721372246742 --0.383266568184 -0.721368953585 --0.366009816527 -0.721367880702 --0.34875293076 -0.721369072795 --0.331496231258 -0.721372455358 --0.314239285886 -0.721378102899 --0.296982392669 -0.721385985613 --0.279725134373 -0.721396058798 --0.262467816472 -0.721408382058 --0.245209999383 -0.721422940492 --0.227951999754 -0.721439689398 --0.210693378002 -0.72145870328 --0.19343444705 -0.721468210221 --0.174220867455 -0.738613426686 --0.155000925064 -0.738594263792 --0.137741815299 -0.738577336073 --0.120483381673 -0.738562658429 --0.103225193918 -0.738550201058 --0.0859675537795 -0.738540023565 --0.0687100421637 -0.738532111049 --0.0514529589564 -0.738526508212 --0.0341958724894 -0.738523200154 --0.0169390928931 -0.738522127271 -0.000317810336127 -0.738523289561 -0.0175745317247 -0.738526746631 -0.0348315001466 -0.738532468677 -0.0520884068683 -0.7385404706 -0.0693456884474 -0.7385507375 -0.0866030361503 -0.738563284278 -0.103860871866 -0.738578081131 -0.121118893847 -0.738595172763 -0.138377539813 -0.738614484668 -0.155636489391 -0.738624081016 -0.174849890172 -0.738613426686 -0.194064926356 -0.738594263792 -0.211324028671 -0.738577336073 -0.228582467884 -0.738562658429 -0.245840661228 -0.73855021596 -0.263098299503 -0.738540038467 -0.280355811119 -0.738532111049 -0.297612898052 -0.738526538015 -0.314869977534 -0.738523200154 -0.332126751542 -0.738522127271 -0.349383659661 -0.738523319364 -0.366640388966 -0.738526746631 -0.383897356689 -0.738532468677 -0.401154257357 -0.7385404706 -0.418411538005 -0.7385507375 -0.435668885708 -0.738563284278 -0.452926710248 -0.738578081131 -0.470184743405 -0.738595113158 -0.487443387508 -0.738614425063 -0.504702322185 -0.738624081016 -0.523915737868 -0.738613426686 -0.543130785227 -0.738594263792 -0.560389876365 -0.738577336073 -0.577648326754 -0.738562658429 -0.594906523824 -0.73855021596 -0.612164139748 -0.738540038467 -0.629421666265 -0.738532111049 -0.646678760648 -0.738526538015 -0.66393584013 -0.738523200154 -0.681192621589 -0.738522127271 -0.698449522257 -0.738523319364 -0.71570622921 -0.738526776433 -0.732963189483 -0.738532528281 -0.750220090151 -0.738540500403 -0.767477378249 -0.7385507375 -0.784734740853 -0.738563284278 -0.801992580294 -0.738578081131 -0.819250613451 -0.738595113158 -0.836509242654 -0.738614425063 -0.85376816988 -0.738624081016 -0.872981593013 -0.738613456488 -0.892196640372 -0.738594293594 -0.90945571661 -0.738577336073 -0.926714152098 -0.738562658429 -0.943972349167 -0.73855021596 -0.961229994893 -0.738540038467 -0.978487506509 -0.738532140851 -0.995744600891 -0.738526567817 -1.01300168037 -0.738523229956 -1.03025844693 -0.738522157073 -1.0475153625 -0.738523319364 -1.06477206946 -0.738526746631 -1.08202904463 -0.738532498479 -1.0992859602 -0.738540500403 -1.11654323339 -0.738550767303 -1.133800596 -0.73856331408 -1.15105843544 -0.738578081131 -1.16831645369 -0.738595113158 -1.1855750978 -0.738614454866 -1.20283403993 -0.738624110818 -1.22204744816 -0.738613456488 -1.24126249552 -0.738594293594 -1.25852158666 -0.738577336073 -1.27578002214 -0.738562658429 -1.29303818941 -0.73855021596 -1.31029582023 -0.738540038467 -1.32755336165 -0.738532111049 -1.34481045604 -0.738526538015 -1.36206755042 -0.738523229956 -1.37932431698 -0.738522157073 -1.39658123255 -0.738523319364 -1.4138379693 -0.738526746631 -1.43109491468 -0.738532498479 -1.44835180044 -0.738540500403 -1.46560907364 -0.7385507375 -1.48286640644 -0.738563284278 -1.50012427568 -0.738578110934 -1.51738232374 -0.738595142961 -1.53464093804 -0.738614454866 -1.55189988017 -0.738624081015 -1.5711132884 -0.738613396883 -1.59032833576 -0.738594263792 -1.6075874567 -0.738577306271 -1.62484586239 -0.738562598824 -1.64210402966 -0.738550186157 -1.65936169028 -0.738540038467 -1.6766192019 -0.738532111049 -1.69387629628 -0.738526508212 -1.71113339066 -0.738523200154 -1.72839018703 -0.738522157073 -1.74564707279 -0.738523319364 -1.76290377975 -0.738526776433 -1.78016075492 -0.738532528281 -1.79741767049 -0.738540500403 -1.81467497349 -0.7385507375 -1.83193230629 -0.738563284278 -1.84919011593 -0.738578081131 -1.86644816399 -0.738595113158 -1.88370680809 -0.738614425063 -1.90096572041 -0.738624081016 -1.92017912865 -0.738613456488 -1.939394176 -0.738594293594 -1.95665326715 -0.738577336073 -1.97391170263 -0.738562658429 -1.9911699295 -0.73855021596 -2.00842759013 -0.738540038467 -2.02568507194 -0.738532140851 -2.04294216633 -0.738526567817 -2.06019926071 -0.738523200154 -2.07745599747 -0.738522097468 -2.09471291304 -0.738523289561 -2.11196964979 -0.738526776433 -2.12922662496 -0.738532528281 -2.14648354053 -0.738540500403 -2.16374081373 -0.7385507375 -2.18099814653 -0.738563284278 -2.19825601578 -0.738578110934 -2.21551406384 -0.738595142961 -2.23277264833 -0.738614425063 -2.25003159046 -0.738624081016 -2.26924502849 -0.738613426686 -2.28846007586 -0.738594263792 -2.3057191968 -0.738577336073 -2.32297760248 -0.738562658429 -2.34023576975 -0.73855021596 -2.35749340057 -0.738540038467 -2.37475091219 -0.738532140851 -2.39200800657 -0.738526538015 -2.40926510096 -0.738523200154 -2.42652189732 -0.738522157073 -2.44377875328 -0.738523319364 -2.46103543043 -0.738526746631 -2.4782924056 -0.738532498479 -2.49554938078 -0.738540500403 -2.51280665398 -0.738550767303 -2.53006398678 -0.73856331408 -2.54732185602 -0.738578081131 -2.56457984447 -0.738595113158 -2.58183842897 -0.738614425063 -2.5990973711 -0.738624081016 -2.61831080914 -0.738613456488 -2.63752585649 -0.738594293594 -2.65478497743 -0.738577336073 -2.67204344272 -0.738562658429 -2.68930160999 -0.73855021596 -2.70655924082 -0.738540068269 -2.72381675243 -0.738532140851 -2.74107384682 -0.738526538015 -2.7583309412 -0.738523200154 -2.77558773756 -0.738522097468 -2.79284465313 -0.738523289561 -2.81010133028 -0.738526746631 -2.82735830546 -0.738532498479 -2.84461522103 -0.738540500403 -2.86187249422 -0.7385507375 -2.87912982702 -0.738563284278 -2.89638763666 -0.738578081131 -2.91364568472 -0.738595113158 -2.93090432882 -0.738614454866 -2.94816327095 -0.738624110818 -2.96737664938 -0.738613426686 -2.98659163713 -0.738594263792 -3.00385075808 -0.738577336073 -3.02110922336 -0.738562658429 -3.03836745024 -0.738550201058 -3.05562514067 -0.738540023565 -3.07288265228 -0.738532111049 -3.09013974666 -0.738526508212 -3.10739678144 -0.738523200154 -3.1246535182 -0.738522127271 --3.14127484162 -0.738523289561 --3.12401807308 -0.738526746631 --3.10676109791 -0.738532468677 --3.08950424194 -0.7385404706 --3.07224696875 -0.7385507375 --3.05498963594 -0.738563284278 --3.0377318263 -0.738578081131 --3.02047377825 -0.738595172763 --3.00321507454 -0.738614484668 --2.98595613241 -0.738624081016 --2.96674281359 -0.738613426686 --2.94752776622 -0.738594263792 --2.93026864528 -0.738577336073 --2.9130102396 -0.738562658429 --2.89575201273 -0.73855021596 --2.8784943819 -0.738540038467 --2.86123687029 -0.738532111049 --2.8439797163 -0.738526538015 --2.82672268152 -0.738523200154 --2.80946594477 -0.738522127271 --2.79220896959 -0.738523319364 --2.77495223284 -0.738526746631 --2.75769525767 -0.738532468677 --2.7404384017 -0.7385404706 --2.72318118811 -0.7385507375 --2.7059237957 -0.738563284278 --2.68866592646 -0.738578081131 --2.6714078784 -0.738595113158 --2.65414923429 -0.738614425063 --2.63689035177 -0.738624081016 --2.61767691374 -0.738613426686 --2.59846180678 -0.738594263792 --2.58120274544 -0.738577336073 --2.56394433975 -0.738562658429 --2.54668611288 -0.73855021596 --2.52942848206 -0.738540038467 --2.51217097044 -0.738532111049 --2.49491387606 -0.738526538015 --2.47765684128 -0.738523200154 --2.46040010452 -0.738522127271 --2.44314318895 -0.738523319364 --2.4258864522 -0.738526776433 --2.40862947703 -0.738532528281 --2.39137256146 -0.738540500403 --2.37411528826 -0.7385507375 --2.35685795546 -0.738563284278 --2.33960008621 -0.738578081131 --2.32234203815 -0.738595113158 --2.30508345366 -0.738614425063 --2.28782451153 -0.738624081016 --2.2686110735 -0.738613456488 --2.24939602613 -0.738594293594 --2.23213690519 -0.738577336073 --2.2148784399 -0.738562658429 --2.19762027264 -0.73855021596 --2.18036264181 -0.738540038467 --2.1631051302 -0.738532140851 --2.14584809542 -0.738526567817 --2.12859100103 -0.738523229956 --2.11133414507 -0.738522157073 --2.0940772891 -0.738523319364 --2.07682061195 -0.738526746631 --2.05956363678 -0.738532498479 --2.04230672121 -0.738540500403 --2.02504938841 -0.738550767303 --2.00779205561 -0.73856331408 --1.99053421617 -0.738578081131 --1.97327619791 -0.738595113158 --1.9560175538 -0.738614454866 --1.93875858188 -0.738624110818 --1.91954517365 -0.738613456488 --1.90033015609 -0.738594293594 --1.88307106495 -0.738577336073 --1.86581259966 -0.738562658429 --1.84855443239 -0.73855021596 --1.83129680157 -0.738540038467 --1.81403928995 -0.738532111049 --1.79678222537 -0.738526538015 --1.77952513098 -0.738523229956 --1.76226833462 -0.738522157073 --1.74501144886 -0.738523319364 --1.72775474191 -0.738526746631 --1.71049776673 -0.738532498479 --1.69324085116 -0.738540500403 --1.67598354816 -0.7385507375 --1.65872621536 -0.738563284278 --1.64146840572 -0.738578110934 --1.62421035767 -0.738595142961 --1.60695171356 -0.738614454866 --1.58969277143 -0.738624081015 --1.57047936321 -0.738613396883 --1.55126434565 -0.738594263792 --1.53400522471 -0.738577306271 --1.51674678922 -0.738562598824 --1.49948859215 -0.738550186157 --1.48223096132 -0.738540038467 --1.46497344971 -0.738532111049 --1.44771635532 -0.738526508212 --1.43045929074 -0.738523200154 --1.41320252418 -0.738522157073 --1.39594560861 -0.738523319364 --1.37868887186 -0.738526776433 --1.36143189669 -0.738532528281 --1.34417498112 -0.738540500403 --1.32691770792 -0.7385507375 --1.30966034531 -0.738563284278 --1.29240250588 -0.738578081131 --1.27514451742 -0.738595113158 --1.25788587332 -0.738614425063 --1.24062690139 -0.738624081016 --1.22141349316 -0.738613456488 --1.2021984458 -0.738594293594 --1.18493935466 -0.738577336073 --1.16768091917 -0.738562658429 --1.1504227519 -0.73855021596 --1.13316512108 -0.738540038467 --1.11590760946 -0.738532140851 --1.09865054488 -0.738526567817 --1.0813934505 -0.738523200154 --1.06413665414 -0.738522097468 --1.04687970877 -0.738523289561 --1.02962300181 -0.738526776433 --1.01236605644 -0.738532528281 --0.995109125971 -0.738540500403 --0.977851837873 -0.7385507375 --0.960594490171 -0.738563284278 --0.943336650729 -0.738578110934 --0.926078632474 -0.738595142961 --0.908820003271 -0.738614425063 --0.891561046243 -0.738624081016 --0.872347652912 -0.738613426686 --0.853132620454 -0.738594263792 --0.835873499513 -0.738577336073 --0.818615064025 -0.738562658429 --0.801356881857 -0.73855021596 --0.784099251032 -0.738540038467 --0.766841739416 -0.738532140851 --0.749584659934 -0.738526538015 --0.732327580452 -0.738523200154 --0.715070784092 -0.738522157073 --0.697813883424 -0.738523319364 --0.680557161569 -0.738526746631 --0.663300186395 -0.738532498479 --0.646043285728 -0.738540500403 --0.628786027432 -0.738550767303 --0.61152869463 -0.73856331408 --0.594270840287 -0.738578081131 --0.577012822032 -0.738595113158 --0.559754192829 -0.738614425063 --0.542495250702 -0.738624081016 --0.52328184247 -0.738613456488 --0.50406678021 -0.738594293594 --0.486807666719 -0.738577336073 --0.469549231231 -0.738562658429 --0.452291049063 -0.73855021596 --0.435033418238 -0.738540068269 --0.417775891721 -0.738532140851 --0.400518797338 -0.738526538015 --0.383261710406 -0.738523200154 --0.366004936397 -0.738522097468 --0.34874804318 -0.738523289561 --0.331491321325 -0.738526746631 --0.314234346151 -0.738532498479 --0.296977438033 -0.738540500403 --0.279720164836 -0.7385507375 --0.262462824583 -0.738563284278 --0.245204985142 -0.738578081131 --0.227946959436 -0.738595113158 --0.210688311607 -0.738614454866 --0.193429365754 -0.738624110818 --0.174215972423 -0.755749195814 --0.154996257275 -0.755729719996 --0.137737132609 -0.755712479353 --0.120478669181 -0.755697563291 --0.103220460936 -0.755684927106 --0.085962805897 -0.755674630404 --0.0687052737921 -0.755666583776 --0.0514481673017 -0.755660876632 --0.0341910603456 -0.755657494068 --0.0169342618901 -0.755656376481 -0.000322661362588 -0.755657553673 -0.0175794025418 -0.755661070347 -0.0348363919184 -0.755666926503 -0.0520933205262 -0.755675077438 -0.0693506207317 -0.755685478449 -0.0866079833359 -0.755698218942 -0.103865839541 -0.755713269114 -0.121123885736 -0.755730599165 -0.138382550329 -0.755750223994 -0.155641518534 -0.755759999156 -0.174854744226 -0.755749195814 -0.194069601595 -0.755729719996 -0.211328718811 -0.755712479353 -0.228587180376 -0.755697548389 -0.245845392346 -0.755684912205 -0.263103045523 -0.755674600601 -0.28036057204 -0.755666583776 -0.297617681324 -0.755660906434 -0.314874790609 -0.755657494068 -0.332131586969 -0.755656406283 -0.349388509989 -0.755657583475 -0.366645254195 -0.755661070347 -0.383902251721 -0.755666896701 -0.40115917474 -0.755675047636 -0.418416470289 -0.75568549335 -0.435673840344 -0.755698233843 -0.452931687236 -0.755713269114 -0.470189735293 -0.755730569363 -0.487448394298 -0.755750223994 -0.504707358778 -0.755760028958 -0.523920595646 -0.755749195814 -0.54313544929 -0.755729719996 -0.56039455533 -0.755712479353 -0.577653035521 -0.755697548389 -0.594911247492 -0.755684912205 -0.612168893218 -0.755674600601 -0.629426434636 -0.755666583776 -0.646683514118 -0.755660906434 -0.663940608501 -0.755657494068 -0.681197434664 -0.755656406283 -0.698454365135 -0.755657613278 -0.715711086989 -0.755661129952 -0.732968077064 -0.755666956306 -0.750225007534 -0.755675077439 -0.767482310534 -0.75568549335 -0.784739688039 -0.755698233843 -0.801997557282 -0.755713269114 -0.81925560534 -0.755730569363 -0.836514249444 -0.755750223994 -0.853773206472 -0.755760028958 -0.87298643589 -0.755749195814 -0.892201289534 -0.755729719996 -0.909460395574 -0.755712479353 -0.926718875766 -0.755697548389 -0.943977102637 -0.755684927106 -0.961234733462 -0.755674615503 -0.97849227488 -0.755666583776 -0.995749413968 -0.755660906434 -1.01300650835 -0.755657494068 -1.03026327491 -0.755656406283 -1.04752019048 -0.755657613278 -1.06477692723 -0.755661100149 -1.08203393221 -0.755666926503 -1.09929087758 -0.755675077439 -1.11654815078 -0.75568549335 -1.13380551338 -0.755698233843 -1.15106338263 -0.755713269114 -1.16832143068 -0.755730569363 -1.18558010459 -0.755750194192 -1.20283907652 -0.755759999156 -1.22205230594 -0.755749195814 -1.24126714468 -0.755729719996 -1.25852626562 -0.755712479353 -1.27578476071 -0.755697563291 -1.29304295778 -0.755684927106 -1.31030058861 -0.755674600601 -1.32755813002 -0.755666553974 -1.34481522441 -0.755660876632 -1.3620723486 -0.755657494068 -1.37932917476 -0.755656406283 -1.39658609033 -0.755657583475 -1.41384282708 -0.755661070347 -1.43109980226 -0.755666926503 -1.44835671782 -0.755675047636 -1.46561402082 -0.755685463548 -1.48287138343 -0.755698233843 -1.50012925267 -0.755713298917 -1.51738730073 -0.755730599165 -1.53464594483 -0.755750223994 -1.55190491676 -0.755759999156 -1.57111814618 -0.755749166012 -1.59033301473 -0.755729719996 -1.60759216547 -0.755712479353 -1.62485060096 -0.755697548389 -1.64210876822 -0.755684912205 -1.65936645866 -0.755674600601 -1.67662400007 -0.755666553974 -1.69388109446 -0.755660846829 -1.71113818884 -0.755657464266 -1.7283949852 -0.755656406283 -1.74565193057 -0.755657583475 -1.76290866733 -0.755661100149 -1.7801656425 -0.755666956306 -1.79742258787 -0.755675077439 -1.81467992067 -0.75568549335 -1.83193725348 -0.755698233843 -1.84919509292 -0.755713269114 -1.86645314098 -0.755730569363 -1.88371178508 -0.755750223994 -1.90097075701 -0.755760028958 -1.92018398643 -0.755749195814 -1.93939885497 -0.755729719996 -1.95665797591 -0.755712479353 -1.9739164114 -0.755697563291 -1.99117463827 -0.755684942007 -2.0084323287 -0.755674615503 -2.02568984032 -0.755666583776 -2.0429469347 -0.755660906434 -2.06020402908 -0.755657494068 -2.07746082544 -0.755656376481 -2.09471780062 -0.755657583475 -2.11197453737 -0.755661129952 -2.12923151255 -0.755666956306 -2.14648848772 -0.755675047636 -2.16374582052 -0.755685463548 -2.18100315333 -0.755698233843 -2.19826096297 -0.755713298917 -2.21551901102 -0.755730599165 -2.23277765513 -0.755750223994 -2.25003659725 -0.755760028958 -2.26924985647 -0.755749195814 -2.28846472502 -0.755729719996 -2.30572384596 -0.755712479353 -2.32298225164 -0.755697548389 -2.34024041891 -0.755684912205 -2.35749810934 -0.755674600601 -2.37475568056 -0.755666553974 -2.39201277494 -0.755660876632 -2.40926986933 -0.755657494068 -2.42652666569 -0.755656406283 -2.44378358126 -0.755657613278 -2.46104031801 -0.755661100149 -2.47829729319 -0.755666956305 -2.49555426836 -0.755675107241 -2.51281160116 -0.75568549335 -2.53006893397 -0.755698233843 -2.5473267436 -0.755713269114 -2.56458479166 -0.755730569363 -2.58184349537 -0.755750194192 -2.59910243749 -0.755759999156 -2.61831563711 -0.755749195814 -2.63753050566 -0.755729719996 -2.6547896266 -0.755712479353 -2.67204815149 -0.755697563291 -2.68930631876 -0.755684927106 -2.70656394959 -0.755674600601 -2.72382152081 -0.755666583776 -2.74107861519 -0.755660906434 -2.75833576918 -0.755657494068 -2.77559256554 -0.755656376481 -2.7928494215 -0.755657583475 -2.81010621786 -0.755661100149 -2.82736325264 -0.755666926503 -2.84462010861 -0.755675077439 -2.8618773818 -0.75568549335 -2.87913477421 -0.755698233843 -2.89639264345 -0.755713269114 -2.91365069151 -0.755730569363 -2.93090933561 -0.755750223994 -2.94816827774 -0.755760028958 -2.96738147735 -0.755749195814 -2.9865963459 -0.755729719996 -3.00385546684 -0.755712479353 -3.02111393213 -0.755697563291 -3.03837221861 -0.755684927106 -3.05562990904 -0.755674630404 -3.07288742065 -0.755666583776 -3.09014451503 -0.755660876632 -3.10740160942 -0.755657494068 -3.12465840578 -0.755656376481 --3.14127001365 -0.755657553673 --3.12401324511 -0.755661070347 --3.10675621033 -0.755666926503 --3.08949935436 -0.755675077438 --3.07224208116 -0.755685478449 --3.05498468876 -0.755698218942 --3.03772681952 -0.755713269114 --3.02046877146 -0.755730599165 --3.00321006775 -0.755750223994 --2.98595112562 -0.755759999156 --2.96673798561 -0.755749195814 --2.94752305746 -0.755729719996 --2.93026393652 -0.755712479353 --2.91300553084 -0.755697548389 --2.89574724436 -0.755684912205 --2.87848961353 -0.755674600601 --2.86123210192 -0.755666583776 --2.84397494793 -0.755660906434 --2.82671785355 -0.755657494068 --2.80946105719 -0.755656406283 --2.79220414162 -0.755657583475 --2.77494740486 -0.755661070347 --2.75769037009 -0.755666896701 --2.74043345452 -0.755675047636 --2.72317618132 -0.75568549335 --2.70591878891 -0.755698233843 --2.68866091966 -0.755713269114 --2.67140287161 -0.755730569363 --2.6541442275 -0.755750223994 --2.63688528538 -0.755760028958 --2.61767202616 -0.755749195814 --2.59845715761 -0.755729719996 --2.58119803667 -0.755712479353 --2.56393957138 -0.755697548389 --2.54668140411 -0.755684912205 --2.52942377329 -0.755674600601 --2.51216620207 -0.755666583776 --2.49490910769 -0.755660906434 --2.47765207291 -0.755657494068 --2.46039527655 -0.755656406283 --2.44313830137 -0.755657613278 --2.42588156462 -0.755661129952 --2.40862458945 -0.755666956306 --2.39136761427 -0.755675077439 --2.37411028147 -0.75568549335 --2.35685294866 -0.755698233843 --2.33959513903 -0.755713269114 --2.32233709097 -0.755730569363 --2.30507844687 -0.755750223994 --2.28781950474 -0.755760028958 --2.26860624552 -0.755749195814 --2.24939137697 -0.755729719996 --2.23213225603 -0.755712479353 --2.21487373113 -0.755697548389 --2.19761550426 -0.755684927106 --2.18035793304 -0.755674615503 --2.16310042143 -0.755666583776 --2.14584326744 -0.755660906434 --2.12858617306 -0.755657494068 --2.1113293767 -0.755656406283 --2.09407246113 -0.755657613278 --2.07681572437 -0.755661100149 --2.0595587492 -0.755666926503 --2.04230183363 -0.755675077439 --2.02504450083 -0.75568549335 --2.00778713822 -0.755698233843 --1.99052926898 -0.755713269114 --1.97327122092 -0.755730569363 --1.95601254702 -0.755750194192 --1.93875354528 -0.755759999156 --1.91954034567 -0.755749195814 --1.90032550693 -0.755729719996 --1.88306635618 -0.755712479353 --1.86580789089 -0.755697563291 --1.84854972362 -0.755684927106 --1.83129206299 -0.755674600601 --1.81403452158 -0.755666553974 --1.79677742719 -0.755660876632 --1.77952030301 -0.755657494068 --1.76226350665 -0.755656406283 --1.74500659108 -0.755657583475 --1.72774982453 -0.755661070347 --1.71049284935 -0.755666926503 --1.69323593378 -0.755675047636 --1.67597860098 -0.755685463548 --1.65872123838 -0.755698233843 --1.64146339894 -0.755713298917 --1.62420535088 -0.755730599165 --1.60694670677 -0.755750223994 --1.58968776464 -0.755759999156 --1.57047453523 -0.755749166012 --1.55125966668 -0.755729719996 --1.53400054574 -0.755712479353 --1.51674208045 -0.755697548389 --1.49948385358 -0.755684912205 --1.48222622275 -0.755674600601 --1.46496868133 -0.755666553974 --1.44771155715 -0.755660846829 --1.43045446277 -0.755657464266 --1.41319766641 -0.755656406283 --1.39594075084 -0.755657583475 --1.37868401408 -0.755661100149 --1.3614270091 -0.755666956306 --1.34417006374 -0.755675077439 --1.32691279054 -0.75568549335 --1.30965542793 -0.755698233843 --1.29239755869 -0.755713269114 --1.27513954044 -0.755730569363 --1.25788086653 -0.755750223994 --1.2406218648 -0.755760028958 --1.22140863538 -0.755749195814 --1.20219379663 -0.755729719996 --1.18493467569 -0.755712479353 --1.1676762104 -0.755697563291 --1.15041801333 -0.755684942007 --1.13316035271 -0.755674615503 --1.11590284109 -0.755666583776 --1.09864574671 -0.755660906434 --1.08138862253 -0.755657494068 --1.06413182617 -0.755656376481 --1.04687488079 -0.755657583475 --1.02961814404 -0.755661129952 --1.01236116886 -0.755666956306 --0.995104223489 -0.755675047636 --0.97784692049 -0.755685463548 --0.960589542985 -0.755698233843 --0.943331688643 -0.755713298917 --0.926073655486 -0.755730599165 --0.908815011382 -0.755750223994 --0.891556054354 -0.755760028958 --0.872342824936 -0.755749195814 --0.853127941489 -0.755729719996 --0.835868805647 -0.755712479353 --0.818610370159 -0.755697548389 --0.80135217309 -0.755684912205 --0.784094512462 -0.755674600601 --0.766836971044 -0.755666553974 --0.749579876661 -0.755660876632 --0.732322767377 -0.755657494068 --0.715065956116 -0.755656406283 --0.697809040547 -0.755657613278 --0.680552303791 -0.755661100149 --0.663295313716 -0.755666956305 --0.646038383246 -0.755675107241 --0.628781095147 -0.75568549335 --0.611523747444 -0.755698233843 --0.594265878201 -0.755713269114 --0.577007830143 -0.755730569363 --0.559749171138 -0.755750194192 --0.542490199208 -0.755759999156 --0.52327696979 -0.755749195814 --0.504062086344 -0.755729719996 --0.486802965403 -0.755712479353 --0.469544515014 -0.755697563291 --0.452286317945 -0.755684927106 --0.435028664768 -0.755674600601 --0.417771115899 -0.755666583776 --0.400514006615 -0.755660906434 --0.383256904781 -0.755657494068 --0.366000108421 -0.755656376481 --0.348743192852 -0.755657583475 --0.331486448646 -0.755661100149 --0.31422945112 -0.755666926503 --0.2969725281 -0.755675077439 --0.279715232551 -0.75568549335 --0.262457862496 -0.755698233843 --0.245200004428 -0.755713269114 --0.227941967547 -0.755730569363 --0.210683304817 -0.755750223994 --0.193424340338 -0.755760028958 --0.17421111837 -0.772866845131 --0.15499162674 -0.77284707129 --0.137732483447 -0.772829577327 --0.120474001393 -0.772814452648 --0.103215776384 -0.772801607847 --0.0859580989927 -0.772791147232 --0.0687005463988 -0.772782996297 --0.0514434231445 -0.772777184844 --0.034186297562 -0.772773742676 --0.0169294788502 -0.772772625089 -0.000327464193107 -0.77277380228 -0.0175842251629 -0.772777408361 -0.0348412347957 -0.772783368826 -0.0520981838927 -0.772791624069 -0.0693555017933 -0.772802218795 -0.0866128839552 -0.772815153003 -0.103870760649 -0.772830411792 -0.121128825471 -0.77284796536 -0.13838750869 -0.772867918014 -0.155646495521 -0.772877886891 -0.174859546125 -0.772866874933 -0.194074228406 -0.77284707129 -0.211333364249 -0.772829577327 -0.228591840715 -0.772814437747 -0.245850075036 -0.772801592946 -0.26310775429 -0.772791102528 -0.280365303159 -0.772782966495 -0.297622434795 -0.772777199745 -0.314879566431 -0.772773712873 -0.332136385143 -0.772772595287 -0.349393315613 -0.77277380228 -0.36665007472 -0.772777408361 -0.383907094598 -0.772783339023 -0.401164039969 -0.772791594267 -0.41842135787 -0.772802203894 -0.435678742826 -0.772815138102 -0.45293661207 -0.772830411792 -0.470194675028 -0.77284796536 -0.487453348935 -0.772867918014 -0.504712335765 -0.772877886891 -0.52392539382 -0.772866874933 -0.54314006865 -0.77284707129 -0.560399204493 -0.772829577327 -0.577657699585 -0.772814437747 -0.594915926457 -0.772801592946 -0.612173601985 -0.772791102528 -0.629431158305 -0.772782966495 -0.646688252687 -0.772777199745 -0.663945361972 -0.772773712873 -0.681202203035 -0.772772625089 -0.698459163308 -0.772773861885 -0.715715914965 -0.772777408361 -0.732972919941 -0.772783309221 -0.750229880214 -0.772791594267 -0.767487198115 -0.772802203894 -0.78474457562 -0.772815108299 -0.802002459764 -0.772830381989 -0.819260537624 -0.772847995162 -0.836519211531 -0.772867977619 -0.853778198362 -0.772877916694 -0.872991248965 -0.772866874933 -0.892205923796 -0.77284707129 -0.909465074539 -0.772829577327 -0.92672355473 -0.772814437747 -0.943981796503 -0.772801607847 -0.961239442229 -0.772791132331 -0.978496983647 -0.772782996297 -0.995754122734 -0.772777214646 -1.01301124692 -0.772773742676 -1.03026807308 -0.772772625089 -1.04752498865 -0.772773832083 -1.06478175521 -0.772777408361 -1.08203878999 -0.772783309221 -1.09929573536 -0.772791594267 -1.11655303836 -0.772802203894 -1.13381040096 -0.772815138102 -1.15106827021 -0.772830411792 -1.16832634806 -0.77284796536 -1.18558505177 -0.772867918014 -1.20284405351 -0.772877886891 -1.22205710411 -0.772866874933 -1.24127176404 -0.77284707129 -1.25853091478 -0.772829577327 -1.27578943968 -0.772814452648 -1.29304766655 -0.772801607847 -1.31030532718 -0.772791117429 -1.3275628686 -0.772782951593 -1.34481996298 -0.772777169943 -1.36207708716 -0.772773712873 -1.37933394313 -0.772772595287 -1.3965908885 -0.77277380228 -1.41384762526 -0.772777378559 -1.43110463023 -0.772783309221 -1.4483615756 -0.772791564465 -1.46561890841 -0.772802174091 -1.48287630081 -0.772815138102 -1.50013417005 -0.772830411792 -1.51739221811 -0.772847995162 -1.53465089202 -0.772867977619 -1.55190989375 -0.772877857089 -1.57112294435 -0.772866815328 -1.59033763409 -0.77284707129 -1.60759678483 -0.772829577327 -1.62485525012 -0.772814437747 -1.64211344719 -0.772801592946 -1.65937113762 -0.772791102528 -1.67662870884 -0.772782936692 -1.69388583302 -0.772777169943 -1.71114295721 -0.772773712873 -1.72839975357 -0.772772595287 -1.74565672874 -0.77277380228 -1.7629134953 -0.772777378559 -1.78017047048 -0.772783309221 -1.79742744565 -0.772791594267 -1.81468477845 -0.772802203894 -1.83194214106 -0.772815138102 -1.8492000103 -0.772830411792 -1.86645805836 -0.77284796536 -1.88371673226 -0.772867918014 -1.900975734 -0.772877886891 -1.9201887846 -0.772866874933 -1.93940347433 -0.77284707129 -1.95666262507 -0.772829577327 -1.97392109036 -0.772814452648 -1.99117931724 -0.772801622748 -2.00843697787 -0.772791132331 -2.02569454909 -0.772782981396 -2.04295170307 -0.772777199745 -2.06020879745 -0.772773712873 -2.07746559381 -0.772772595287 -2.09472256899 -0.772773832083 -2.11197936535 -0.772777408361 -2.12923634052 -0.772783309221 -2.1464933157 -0.772791564465 -2.1637506485 -0.772802174091 -2.1810079813 -0.772815138102 -2.19826585054 -0.772830441594 -2.2155238986 -0.772848024965 -2.23278254271 -0.772867977619 -2.25004154444 -0.772877916694 -2.26925462484 -0.772866874933 -2.28846931457 -0.77284707129 -2.30572849512 -0.772829577327 -2.32298696041 -0.772814437747 -2.34024512768 -0.772801592946 -2.35750281811 -0.772791102528 -2.37476038933 -0.772782951594 -2.39201748371 -0.772777184844 -2.40927457809 -0.772773712873 -2.42653143406 -0.772772595287 -2.44378840923 -0.772773832083 -2.46104514599 -0.772777408361 -2.47830218077 -0.772783339023 -2.49555915594 -0.772791624069 -2.51281648874 -0.772802203894 -2.53007382154 -0.772815138102 -2.54733163119 -0.772830411792 -2.56458973885 -0.772847995162 -2.58184850216 -0.772867947817 -2.59910750389 -0.772877857089 -2.61832052469 -0.772866845131 -2.63753515482 -0.77284707129 -2.65479427576 -0.772829577327 -2.67205280065 -0.772814452648 -2.68931102753 -0.772801607847 -2.70656871796 -0.772791117429 -2.72382628918 -0.772782981396 -2.74108338356 -0.772777199745 -2.75834053755 -0.772773742676 -2.77559733391 -0.772772625089 -2.79285424948 -0.772773832083 -2.81011104584 -0.772777408361 -2.82736802101 -0.772783309221 -2.84462493658 -0.772791594267 -2.86188226938 -0.772802203894 -2.87913972139 -0.772815138102 -2.89639765024 -0.772830411792 -2.9136556983 -0.77284796536 -2.9309143424 -0.772867947817 -2.94817328453 -0.772877886891 -2.96738630533 -0.772866845131 -2.98660105467 -0.77284707129 -3.00386017561 -0.772829577327 -3.0211185813 -0.772814452648 -3.03837686777 -0.772801607847 -3.0556345582 -0.772791147232 -3.07289212942 -0.772782996297 -3.09014928341 -0.772777184844 -3.10740637779 -0.772773742676 -3.12466317415 -0.772772625089 --3.14126518567 -0.77277380228 --3.12400841713 -0.772777408361 --3.10675144195 -0.772783368826 --3.08949452639 -0.772791624069 --3.07223719358 -0.772802218795 --3.05497974157 -0.772815153003 --3.03772181273 -0.772830411792 --3.02046376467 -0.77284796536 --3.00320512056 -0.772867918014 --2.98594617843 -0.772877886891 --2.96673315763 -0.772866874933 --2.9475184083 -0.77284707129 --2.93025928736 -0.772829577327 --2.91300088167 -0.772814437747 --2.8957425952 -0.772801592946 --2.87848490477 -0.772791102528 --2.86122733354 -0.772782966495 --2.84397017956 -0.772777199745 --2.82671308518 -0.772773712873 --2.80945628882 -0.772772595287 --2.79219937325 -0.77277380228 --2.77494257689 -0.772777408361 --2.75768554211 -0.772783339023 --2.74042862654 -0.772791594267 --2.72317129374 -0.772802203894 --2.70591390133 -0.772815138102 --2.68865603208 -0.772830411792 --2.67139798403 -0.77284796536 --2.65413933992 -0.772867918014 --2.63688033819 -0.772877886891 --2.61766725778 -0.772866874933 --2.59845256805 -0.77284707129 --2.58119338751 -0.772829577327 --2.56393486262 -0.772814437747 --2.54667669535 -0.772801592946 --2.52941906452 -0.772791102528 --2.5121614933 -0.772782966495 --2.49490439892 -0.772777199745 --2.47764730454 -0.772773712873 --2.46039044857 -0.772772625089 --2.4431334734 -0.772773861885 --2.42587673664 -0.772777408361 --2.40861970186 -0.772783309221 --2.39136272669 -0.772791594267 --2.37410539389 -0.772802203894 --2.35684806109 -0.772815108299 --2.33959025145 -0.772830381989 --2.32233214378 -0.772847995162 --2.30507344008 -0.772867977619 --2.28781443835 -0.772877916694 --2.26860135794 -0.772866874933 --2.24938672781 -0.77284707129 --2.23212760687 -0.772829577327 --2.21486908198 -0.772814437747 --2.1976107955 -0.772801607847 --2.18035316467 -0.772791132331 --2.16309571266 -0.772782996297 --2.14583855867 -0.772777214646 --2.12858140469 -0.772773742676 --2.11132460833 -0.772772625089 --2.09406763315 -0.772773832083 --2.0768108964 -0.772777408361 --2.05955392122 -0.772783309221 --2.04229694605 -0.772791594267 --2.02503961325 -0.772802203894 --2.00778222084 -0.772815138102 --1.99052435159 -0.772830411792 --1.97326627373 -0.77284796536 --1.95600757003 -0.772867918014 --1.9387485683 -0.772877886891 --1.91953554749 -0.772866874933 --1.90032088756 -0.77284707129 --1.88306173682 -0.772829577327 --1.86580327153 -0.772814452648 --1.84854507446 -0.772801607847 --1.83128738403 -0.772791117429 --1.81402981281 -0.772782951593 --1.79677268863 -0.772777169943 --1.77951553464 -0.772773712873 --1.76225873828 -0.772772595287 --1.74500179291 -0.77277380228 --1.72774499655 -0.772777378559 --1.71048802137 -0.772783309221 --1.693231076 -0.772791564465 --1.6759737432 -0.772802174091 --1.6587163508 -0.772815138102 --1.64145845175 -0.772830411792 --1.62420040369 -0.772847995162 --1.60694175959 -0.772867977619 --1.58968278766 -0.772877857089 --1.57046973705 -0.772866815328 --1.55125501752 -0.77284707129 --1.53399586677 -0.772829577327 --1.51673740148 -0.772814437747 --1.49947917461 -0.772801592946 --1.48222151399 -0.772791102528 --1.46496394277 -0.772782936692 --1.44770681858 -0.772777169943 --1.4304496944 -0.772773712873 --1.41319286823 -0.772772595287 --1.39593595266 -0.77277380228 --1.3786791861 -0.772777378559 --1.36142215133 -0.772783309221 --1.34416520595 -0.772791594267 --1.32690790295 -0.772802203894 --1.30965054035 -0.772815138102 --1.29239267111 -0.772830411792 --1.27513459325 -0.77284796536 --1.25787588954 -0.772867918014 --1.24061688781 -0.772877886891 --1.2214038372 -0.772866874933 --1.20218917727 -0.77284707129 --1.18493005633 -0.772829577327 --1.16767156124 -0.772814452648 --1.15041330457 -0.772801622748 --1.13315564394 -0.772791132331 --1.11589813233 -0.772782981396 --1.09864100814 -0.772777199745 --1.08138385415 -0.772773712873 --1.06412702799 -0.772772595287 --1.04687008261 -0.772773832083 --1.02961334586 -0.772777408361 --1.01235634089 -0.772783309221 --0.995099365711 -0.772791564465 --0.97784204781 -0.772802174091 --0.960584655404 -0.772815138102 --0.943326771259 -0.772830441594 --0.926068708301 -0.772848024965 --0.908810049296 -0.772867977619 --0.891551077366 -0.772877916694 --0.872338026762 -0.772866874933 --0.85312333703 -0.77284707129 --0.835864171385 -0.772829577327 --0.818605706096 -0.772814437747 --0.801347494125 -0.772801592946 --0.784089803696 -0.772791102528 --0.766832232475 -0.772782951594 --0.749575123191 -0.772777184844 --0.732318013906 -0.772773712873 --0.715061187744 -0.772772595287 --0.697804257274 -0.772773832083 --0.680547490716 -0.772777408361 --0.663290455937 -0.772783339023 --0.646033510566 -0.772791624069 --0.628776207566 -0.772802203894 --0.611518830061 -0.772815138102 --0.594260945916 -0.772830411792 --0.577002882958 -0.772847995162 --0.559744209051 -0.772867947817 --0.542485207319 -0.772877857089 --0.523272141814 -0.772866845131 --0.504057459533 -0.77284707129 --0.486798331142 -0.772829577327 --0.469539858401 -0.772814452648 --0.45228163898 -0.772801607847 --0.435023963451 -0.772791117429 --0.417766399681 -0.772782981396 --0.400509268046 -0.772777199745 --0.38325214386 -0.772773742676 --0.365995325148 -0.772772625089 --0.348738394678 -0.772773832083 --0.33148163557 -0.772777408361 --0.314224608242 -0.772783309221 --0.296967662871 -0.772791594267 --0.279710352421 -0.772802203894 --0.262452960015 -0.772815138102 --0.24519508332 -0.772830411792 --0.227937027812 -0.77284796536 --0.210678346455 -0.772867947817 --0.19341936335 -0.772877886891 --0.174206312746 -0.792547866702 --0.154985539615 -0.792527735233 --0.137726370245 -0.792509928346 --0.120467867703 -0.792494550348 --0.103209614754 -0.79248149693 --0.0859519094229 -0.792470827698 --0.0686943344772 -0.792462572455 --0.0514371879399 -0.792456686497 --0.034180036746 -0.792453154922 --0.0169231905602 -0.792452037335 -0.000333779025825 -0.792453244328 -0.0175905656069 -0.792456910014 -0.0348476013168 -0.792462930083 -0.0521045764908 -0.792471289634 -0.0693619186059 -0.79248213768 -0.0866193305701 -0.792495310307 -0.103877235204 -0.792510792613 -0.121135320514 -0.792528688908 -0.138394027948 -0.79254899919 -0.155653048307 -0.792559087276 -0.174865867943 -0.792547866702 -0.194080311805 -0.792527735233 -0.21133947745 -0.792509928346 -0.228597979993 -0.792494520545 -0.245856236666 -0.792481467128 -0.263113938272 -0.792470812797 -0.280371509493 -0.79246251285 -0.29762866348 -0.792456641793 -0.314885817468 -0.792453125119 -0.332142665982 -0.792452007532 -0.349399633705 -0.792453244328 -0.366656422615 -0.792456895113 -0.383913457394 -0.792462915182 -0.401170425117 -0.792471289634 -0.41842777282 -0.792482078075 -0.435685180128 -0.792495250702 -0.452943071723 -0.792510792613 -0.470201157033 -0.792528688908 -0.487459868193 -0.792548969388 -0.504718877375 -0.792559057474 -0.523931711912 -0.792547866702 -0.543146178126 -0.792527735233 -0.56040532887 -0.792509928346 -0.577663823962 -0.792494550348 -0.594922080636 -0.79248149693 -0.612179785967 -0.792470812797 -0.629437357188 -0.792462542653 -0.646694496274 -0.792456671596 -0.663951650262 -0.792453125119 -0.681208506226 -0.792452037334 -0.6984654814 -0.792453274131 -0.715722262859 -0.792456865311 -0.732979297638 -0.79246288538 -0.750236287713 -0.792471289634 -0.767493620515 -0.792482078075 -0.784751012921 -0.7924952209 -0.802008911967 -0.792510762811 -0.819267019629 -0.79252871871 -0.836525723338 -0.792549028993 -0.853784739971 -0.792559087276 -0.872997567058 -0.792547866702 -0.892212018371 -0.792527735233 -0.909471198916 -0.792509928346 -0.926729679107 -0.792494550348 -0.94398792088 -0.79248149693 -0.961245626211 -0.792470827698 -0.978503212333 -0.792462542653 -0.995760336516 -0.792456656694 -1.01301750541 -0.792453154922 -1.03027439117 -0.792452007532 -1.04753133655 -0.792453244328 -1.0647881031 -0.792456910014 -1.08204513788 -0.792462900281 -1.09930211305 -0.792471289634 -1.11655944586 -0.792482078075 -1.13381683826 -0.792495250702 -1.15107473731 -0.792510822415 -1.16833284497 -0.79252871871 -1.18559157848 -0.79254899919 -1.20285061002 -0.792559087276 -1.2220634222 -0.792547866702 -1.24127784372 -0.792527735233 -1.25853702426 -0.792509928346 -1.27579554915 -0.792494550348 -1.29305380583 -0.79248149693 -1.31031152606 -0.792470827698 -1.32756909728 -0.792462527751 -1.34482622146 -0.792456641793 -1.36208334565 -0.792453125119 -1.37934020161 -0.79245197773 -1.39659717679 -0.792453244328 -1.41385394335 -0.792456895113 -1.43111100793 -0.792462915182 -1.4483679831 -0.792471319437 -1.46562531591 -0.792482107878 -1.48288273811 -0.792495280504 -1.50014063716 -0.792510792613 -1.51739871502 -0.792528688908 -1.53465741873 -0.79254899919 -1.55191642046 -0.792559087276 -1.57112923265 -0.792547866702 -1.59034371376 -0.792527735233 -1.60760286451 -0.792509928346 -1.6248613596 -0.792494520545 -1.64211961627 -0.792481467128 -1.6593773067 -0.792470812797 -1.67663487792 -0.79246251285 -1.69389206171 -0.792456641793 -1.7111492455 -0.792453125119 -1.72840607166 -0.792452007532 -1.74566304684 -0.792453274131 -1.7629198432 -0.792456895113 -1.78017684817 -0.79246288538 -1.79743382335 -0.792471289634 -1.81469118595 -0.792482078075 -1.83194857836 -0.792495250702 -1.8492064476 -0.792510792613 -1.86646455526 -0.792528688908 -1.88372328878 -0.792548969388 -1.90098229051 -0.792559057474 -1.92019510269 -0.792547866702 -1.93940955401 -0.792527735233 -1.95666873455 -0.792509928346 -1.97392725944 -0.792494550348 -1.99118551612 -0.79248149693 -2.00844317675 -0.792470827698 -2.02570074797 -0.792462527751 -2.04295796156 -0.792456641793 -2.06021511555 -0.792453125119 -2.07747191191 -0.79245197773 -2.09472888708 -0.792453244328 -2.11198568344 -0.792456895113 -2.12924265862 -0.792462915182 -2.14649963379 -0.792471349239 -2.16375702619 -0.792482107878 -2.1810144186 -0.792495250702 -2.19827228785 -0.792510822415 -2.21553039551 -0.79252871871 -2.23278909922 -0.79254899919 -2.25004810095 -0.792559087276 -2.26926094294 -0.792547866702 -2.28847539425 -0.792527735233 -2.3057345748 -0.792509928346 -2.32299309969 -0.792494550348 -2.34025132656 -0.79248149693 -2.35750901699 -0.792470812797 -2.37476664782 -0.792462557554 -2.3920238018 -0.792456686497 -2.40928089619 -0.792453125119 -2.42653775215 -0.792452007532 -2.44379472733 -0.792453244328 -2.46105146408 -0.792456865311 -2.47830855846 -0.79246288538 -2.49556559324 -0.792471289634 -2.51282292605 -0.792482078075 -2.53008025884 -0.792495250702 -2.54733812809 -0.792510792613 -2.56459629536 -0.79252871871 -2.58185499906 -0.792549028993 -2.5991140008 -0.792559057474 -2.61832684279 -0.7925478369 -2.63754123449 -0.792527735233 -2.65480041504 -0.792509928346 -2.67205893993 -0.792494550348 -2.6893171668 -0.79248149693 -2.70657491684 -0.792470827698 -2.72383254766 -0.792462527751 -2.74108964205 -0.792456641793 -2.75834673643 -0.792453154922 -2.7756035924 -0.792452037335 -2.79286056757 -0.792453244328 -2.81011736393 -0.792456865311 -2.82737439871 -0.79246288538 -2.84463137388 -0.792471289634 -2.86188870668 -0.792482078075 -2.87914615869 -0.792495250702 -2.89640408754 -0.792510822415 -2.9136621356 -0.79252871871 -2.93092083931 -0.79254899919 -2.94817984104 -0.792559087276 -2.96739262343 -0.792547866702 -2.98660713434 -0.792527735233 -3.00386631489 -0.792509928346 -3.02112478018 -0.792494550348 -3.03838306665 -0.79248149693 -3.05564075708 -0.792470827698 -3.0728983283 -0.792462572455 -3.09015548229 -0.792456686497 -3.10741263628 -0.792453154922 -3.12466949224 -0.792452037335 --3.14125886758 -0.792453244328 --3.12400209904 -0.792456910014 --3.10674506426 -0.792462930083 --3.08948808909 -0.792471289634 --3.07223075628 -0.79248213768 --3.05497330427 -0.792495310307 --3.03771537542 -0.792510792613 --3.02045732736 -0.792528688908 --3.00319862365 -0.79254899919 --2.98593962193 -0.792559087276 --2.96672683954 -0.792547866702 --2.94751232862 -0.792527735233 --2.93025314808 -0.792509928346 --2.91299468279 -0.792494520545 --2.89573639631 -0.792481467128 --2.87847870588 -0.792470812797 --2.86122113466 -0.79246251285 --2.84396392107 -0.792456641793 --2.82670676708 -0.792453125119 --2.80944997072 -0.792452007532 --2.79219299555 -0.792453244328 --2.77493619919 -0.792456895113 --2.75767922401 -0.792462915182 --2.74042230844 -0.792471289634 --2.72316491604 -0.792482078075 --2.70590746403 -0.792495250702 --2.68864959478 -0.792510792613 --2.67139154672 -0.792528688908 --2.65413284301 -0.792548969388 --2.63687378168 -0.792559057474 --2.61766093969 -0.792547866702 --2.59844648838 -0.792527735233 --2.58118730783 -0.792509928346 --2.56392878294 -0.792494550348 --2.54667055607 -0.79248149693 --2.52941286564 -0.792470812797 --2.51215529442 -0.792462542653 --2.49489814043 -0.792456671596 --2.47764098644 -0.792453125119 --2.46038413048 -0.792452037334 --2.4431271553 -0.792453274131 --2.42587041855 -0.792456865311 --2.40861332416 -0.79246288538 --2.39135628939 -0.792471289634 --2.37409895658 -0.792482078075 --2.35684162378 -0.7924952209 --2.33958375454 -0.792510762811 --2.32232558727 -0.79252871871 --2.30506688356 -0.792549028993 --2.28780788183 -0.792559087276 --2.26859503984 -0.792547866702 --2.24938064813 -0.792527735233 --2.23212152719 -0.792509928346 --2.2148630023 -0.792494550348 --2.19760471583 -0.79248149693 --2.18034696579 -0.792470827698 --2.16308939457 -0.792462542653 --2.14583230019 -0.792456656694 --2.1285751462 -0.792453154922 --2.11131829023 -0.792452007532 --2.09406131506 -0.792453244328 --2.0768045187 -0.792456910014 --2.05954748392 -0.792462900281 --2.04229050875 -0.792471289634 --2.02503317594 -0.792482078075 --2.00777578354 -0.792495250702 --1.99051788449 -0.792510822415 --1.97325977683 -0.79252871871 --1.95600107312 -0.79254899919 --1.93874204159 -0.792559087276 --1.9195291996 -0.792547866702 --1.90031477809 -0.792527735233 --1.88305562735 -0.792509928346 --1.86579713225 -0.792494550348 --1.84853890538 -0.79248149693 --1.83128121495 -0.792470827698 --1.81402361393 -0.792462527751 --1.79676643014 -0.792456641793 --1.77950927615 -0.792453125119 --1.76225244999 -0.79245197773 --1.74499547482 -0.792453244328 --1.72773867846 -0.792456895113 --1.71048167348 -0.792462915182 --1.6932246983 -0.792471319437 --1.6759673357 -0.792482107878 --1.65870991349 -0.792495280504 --1.64145198464 -0.792510792613 --1.62419390678 -0.792528688908 --1.60693523288 -0.79254899919 --1.58967623115 -0.792559087276 --1.57046341896 -0.792547866702 --1.55124893785 -0.792527735233 --1.5339897573 -0.792509928346 --1.51673126221 -0.792494520545 --1.49947300554 -0.792481467128 --1.48221531511 -0.792470812797 --1.46495774389 -0.79246251285 --1.4477006197 -0.792456641793 --1.43044343591 -0.792453125119 --1.41318657994 -0.792452007532 --1.39592963457 -0.792453274131 --1.37867280841 -0.792456895113 --1.36141577363 -0.79246288538 --1.34415882826 -0.792471289634 --1.32690149546 -0.792482078075 --1.30964410305 -0.792495250702 --1.29238620401 -0.792510792613 --1.27512809635 -0.792528688908 --1.25786939263 -0.792548969388 --1.2406103611 -0.792559057474 --1.22139751911 -0.792547866702 --1.2021830976 -0.792527735233 --1.18492394686 -0.792509928346 --1.16766542196 -0.792494550348 --1.15040716529 -0.79248149693 --1.13314947486 -0.792470827698 --1.11589190364 -0.792462527751 --1.09863474965 -0.792456641793 --1.08137759566 -0.792453125119 --1.0641207397 -0.79245197773 --1.04686376452 -0.792453244328 --1.02960699796 -0.792456895113 --1.01234993338 -0.792462915182 --0.995092943311 -0.792471349239 --0.97783562541 -0.792482107878 --0.960578218103 -0.792495250702 --0.943320319057 -0.792510822415 --0.926062226295 -0.79252871871 --0.908803522587 -0.79254899919 --0.891544505954 -0.792559087276 --0.872331678867 -0.792547866702 --0.853117242456 -0.792527735233 --0.835858076811 -0.792509928346 --0.818599566817 -0.792494550348 --0.801341310144 -0.79248149693 --0.784083604813 -0.792470812797 --0.76682600379 -0.792462557554 --0.749568864703 -0.792456686497 --0.732311755419 -0.792453125119 --0.715054914355 -0.792452007532 --0.697797954082 -0.792453244328 --0.680541157722 -0.792456865311 --0.66328407824 -0.79246288538 --0.646027103067 -0.792471289634 --0.628769770265 -0.792482078075 --0.611512362957 -0.792495250702 --0.594254463911 -0.792510792613 --0.576996386052 -0.79252871871 --0.559737697244 -0.792549028993 --0.542478665709 -0.792559057474 --0.523265823722 -0.7925478369 --0.504051372409 -0.792527735233 --0.486792214215 -0.792509928346 --0.469533719122 -0.792494550348 --0.45227547735 -0.79248149693 --0.435017779469 -0.792470827698 --0.417760193348 -0.792462527751 --0.40050303936 -0.792456641793 --0.383245892823 -0.792453154922 --0.365989036858 -0.792452037335 --0.348732069135 -0.792453244328 --0.331475295126 -0.792456865311 --0.314218245447 -0.79246288538 --0.296961262822 -0.792471289634 --0.27970393002 -0.792482078075 --0.262446515262 -0.792495250702 --0.245188612491 -0.792510822415 --0.227930534631 -0.79252871871 --0.210671827197 -0.79254899919 --0.193412814289 -0.792559087276 --0.174199994654 -0.812275022268 --0.154979597777 -0.812254533172 --0.137720398605 -0.81223641336 --0.120461871847 -0.812220796943 --0.103203596547 -0.81220754981 --0.0859458707273 -0.812196701765 --0.0686882687733 -0.81218829751 --0.0514310933649 -0.812182307244 --0.034173917491 -0.812178701162 --0.0169170461595 -0.812177583575 -0.000339948805047 -0.812178820371 -0.0175967605319 -0.812182486057 -0.0348538197577 -0.812188625336 -0.0521108210087 -0.812197178602 -0.0693681910634 -0.812208175659 -0.0866256263107 -0.812221556902 -0.103883558884 -0.812237337232 -0.121141668409 -0.812255561352 -0.138400398195 -0.812276169658 -0.155659448355 -0.812286376953 -0.174872040748 -0.812274992466 -0.194086253643 -0.812254548073 -0.21134544909 -0.812236428261 -0.22860397771 -0.812220737338 -0.245862249285 -0.812207460404 -0.263119973242 -0.81219664216 -0.280377574265 -0.812188208103 -0.297634758055 -0.812182247639 -0.314891934395 -0.812178701162 -0.33214879036 -0.812177583575 -0.349405780435 -0.812178820371 -0.366662606597 -0.812182500958 -0.383919671178 -0.812188640237 -0.401176668703 -0.812197178602 -0.418434046209 -0.812208145857 -0.435691490769 -0.812221497298 -0.452949412167 -0.812237307429 -0.470207504928 -0.812255561352 -0.487466238439 -0.812276169658 -0.504725284874 -0.812286376953 -0.523937895894 -0.812274992466 -0.543152138591 -0.812254548073 -0.560411304236 -0.812236428261 -0.577669814229 -0.81222076714 -0.594928100705 -0.812207520008 -0.612185820937 -0.812196671963 -0.62944342196 -0.812188267708 -0.646700590849 -0.812182307244 -0.663957774639 -0.812178701162 -0.681214675307 -0.812177583575 -0.698471650481 -0.812178820371 -0.715728446841 -0.812182500958 -0.732985526323 -0.812188640237 -0.7502425313 -0.812197178602 -0.767499879003 -0.812208130956 -0.784757301211 -0.812221482396 -0.802015244961 -0.812237307429 -0.819273382425 -0.812255561352 -0.836532101035 -0.812276169658 -0.853791132569 -0.812286376953 -0.873003721237 -0.812274992466 -0.892217949033 -0.812254548073 -0.90947714448 -0.812236428261 -0.926735654473 -0.81222076714 -0.943993926048 -0.812207490206 -0.961251676083 -0.812196671963 -0.978509306908 -0.812188267707 -0.995766475796 -0.812182277441 -1.01302364469 -0.812178701162 -1.03028053045 -0.812177553773 -1.04753753543 -0.812178820371 -1.06479430199 -0.812182545662 -1.08205133676 -0.812188655138 -1.09930837154 -0.812197178602 -1.11656573415 -0.812208130956 -1.13382315636 -0.812221482396 -1.1510810852 -0.812237337232 -1.16833919286 -0.812255591154 -1.18559795618 -0.812276169658 -1.20285701752 -0.812286376953 -1.22206959128 -0.812274992466 -1.24128377438 -0.812254548073 -1.25854298473 -0.812236428261 -1.27580153942 -0.81222076714 -1.2930598259 -0.812207520008 -1.31031754613 -0.812196671963 -1.32757511735 -0.812188237905 -1.34483230114 -0.812182277441 -1.36208948493 -0.812178701162 -1.3793463409 -0.812177553773 -1.39660331607 -0.812178820371 -1.41386014223 -0.812182530761 -1.43111723661 -0.81218867004 -1.44837421179 -0.812197208405 -1.46563157439 -0.812208160758 -1.4828890264 -0.812221512199 -1.50014695525 -0.812237307429 -1.51740506291 -0.812255531549 -1.53466379643 -0.812276124954 -1.55192282796 -0.812286391854 -1.57113540173 -0.812274992466 -1.59034964443 -0.812254503369 -1.60760882497 -0.81223641336 -1.62486734987 -0.812220737338 -1.64212563634 -0.812207490206 -1.65938335657 -0.812196671963 -1.67664095759 -0.812188208103 -1.69389814138 -0.812182247639 -1.71115535498 -0.812178701162 -1.72841224074 -0.812177583575 -1.74566921592 -0.812178879976 -1.76292601228 -0.812182560563 -1.78018307686 -0.812188640237 -1.79744008184 -0.812197178602 -1.81469744444 -0.812208130956 -1.83195486665 -0.812221482396 -1.84921276569 -0.812237307429 -1.86647090316 -0.812255531549 -1.88372966647 -0.812276139855 -1.90098869801 -0.812286376953 -1.92020130158 -0.812274992466 -1.93941554428 -0.812254548073 -1.95667472482 -0.812236428261 -1.97393324971 -0.81222076714 -1.99119153619 -0.812207490206 -2.00844922662 -0.81219664216 -2.02570682764 -0.812188237905 -2.04296404123 -0.812182277441 -2.06022119522 -0.812178701162 -2.07747805119 -0.812177553773 -2.09473508596 -0.812178820371 -2.11199188232 -0.812182530761 -2.1292489171 -0.81218867004 -2.14650589228 -0.812197238207 -2.16376328468 -0.812208160758 -2.18102073669 -0.812221482396 -2.19827860594 -0.812237307429 -2.2155367732 -0.812255531549 -2.23279553652 -0.812276139855 -2.25005453825 -0.812286376953 -2.26926714182 -0.812274962663 -2.28848135471 -0.81225451827 -2.30574053526 -0.812236428261 -2.32299906015 -0.81222076714 -2.34025734663 -0.812207490206 -2.35751509666 -0.81219664216 -2.37477272749 -0.812188267708 -2.39202988148 -0.812182307244 -2.40928703547 -0.812178701162 -2.42654389143 -0.812177583575 -2.4438008666 -0.812178820371 -2.46105766296 -0.812182500958 -2.47831475735 -0.812188640237 -2.49557179213 -0.812197178602 -2.51282912493 -0.812208145857 -2.53008651733 -0.812221497298 -2.54734450579 -0.812237277627 -2.56460267305 -0.812255531549 -2.58186131716 -0.812276154756 -2.59912037849 -0.812286362052 -2.61833298207 -0.812274992466 -2.63754713535 -0.812254548073 -2.65480637551 -0.812236443162 -2.6720649004 -0.812220782042 -2.68932312727 -0.812207490206 -2.70658093691 -0.812196671963 -2.72383856773 -0.812188237905 -2.74109572172 -0.812182247639 -2.75835287571 -0.812178701162 -2.77560973168 -0.812177583575 -2.79286670685 -0.812178820371 -2.81012356281 -0.812182500958 -2.8273806572 -0.812188640237 -2.84463763237 -0.812197178602 -2.86189502477 -0.812208130956 -2.87915247679 -0.812221482396 -2.89641040564 -0.812237337232 -2.91366845369 -0.812255591154 -2.9309271574 -0.812276169658 -2.94818621874 -0.812286406755 -2.96739882231 -0.812275022268 -2.9866130948 -0.812254533172 -3.00387227535 -0.81223641336 -3.02113080025 -0.812220796943 -3.03838908672 -0.81220754981 -3.05564677715 -0.812196701765 -3.07290440798 -0.81218829751 -3.09016156197 -0.812182307244 -3.10741871595 -0.812178701162 -3.12467563152 -0.812177583575 --3.1412527283 -0.812178820371 --3.12399590015 -0.812182486057 --3.10673880577 -0.812188625336 --3.0894818306 -0.812197178602 --3.07222443819 -0.812208175659 --3.05496698618 -0.812221556902 --3.03770905733 -0.812237337232 --3.02045100927 -0.812255561352 --3.00319230557 -0.812276169658 --2.98593324423 -0.812286376953 --2.96672064066 -0.812274992466 --2.94750636816 -0.812254548073 --2.93024718761 -0.812236428261 --2.91298866272 -0.812220737338 --2.89573037624 -0.812207460404 --2.87847268581 -0.81219664216 --2.86121505499 -0.812188208103 --2.8439578414 -0.812182247639 --2.82670068741 -0.812178701162 --2.80944383144 -0.812177583575 --2.79218679667 -0.812178820371 --2.77493000031 -0.812182500958 --2.75767302513 -0.812188640237 --2.74041604996 -0.812197178602 --2.72315859794 -0.812208145857 --2.70590114593 -0.812221497298 --2.68864327669 -0.812237307429 --2.67138516903 -0.812255561352 --2.65412640572 -0.812276169658 --2.63686734438 -0.812286376953 --2.61765474081 -0.812274992466 --2.59844052791 -0.812254548073 --2.58118134737 -0.812236428261 --2.56392282247 -0.81222076714 --2.546664536 -0.812207520008 --2.52940684557 -0.812196671963 --2.51214927435 -0.812188267708 --2.49489206076 -0.812182307244 --2.47763484716 -0.812178701162 --2.46037793159 -0.812177583575 --2.44312095642 -0.812178820371 --2.42586421967 -0.812182500958 --2.40860712528 -0.812188640237 --2.3913500905 -0.812197178602 --2.3740927577 -0.812208130956 --2.3568353653 -0.812221482396 --2.33957743645 -0.812237307429 --2.32231926918 -0.812255561352 --2.30506056547 -0.812276169658 --2.28780156374 -0.812286376953 --2.26858896017 -0.812274992466 --2.24937474727 -0.812254548073 --2.23211556673 -0.812236428261 --2.21485704183 -0.81222076714 --2.19759875536 -0.812207490206 --2.18034094572 -0.812196671963 --2.1630833149 -0.812188267707 --2.14582616091 -0.812182277441 --2.12856900692 -0.812178701162 --2.11131215095 -0.812177553773 --2.09405517578 -0.812178820371 --2.07679837942 -0.812182545662 --2.05954128504 -0.812188655138 --2.04228425026 -0.812197178602 --2.02502685785 -0.812208130956 --2.00776946545 -0.812221482396 --1.9905115664 -0.812237337232 --1.97325342894 -0.812255591154 --1.95599469543 -0.812276169658 --1.93873566389 -0.812286376953 --1.91952306032 -0.812274992466 --1.90030884742 -0.812254548073 --1.88304963708 -0.812236428261 --1.86579111219 -0.81222076714 --1.84853285551 -0.812207520008 --1.83127513528 -0.812196671963 --1.81401753426 -0.812188237905 --1.79676032066 -0.812182277441 --1.77950313687 -0.812178701162 --1.76224628091 -0.812177553773 --1.74498930573 -0.812178820371 --1.72773250938 -0.812182530761 --1.71047544479 -0.81218867004 --1.69321843982 -0.812197208405 --1.67596107721 -0.812208160758 --1.6587036252 -0.812221512199 --1.64144566655 -0.812237307429 --1.62418755889 -0.812255531549 --1.60692885518 -0.812276124954 --1.58966982364 -0.812286391854 --1.57045722008 -0.812274992466 --1.55124297738 -0.812254503369 --1.53398379684 -0.81223641336 --1.51672527194 -0.812220737338 --1.49946698546 -0.812207490206 --1.48220926523 -0.812196671963 --1.46495166421 -0.812188208103 --1.44769451022 -0.812182247639 --1.43043732643 -0.812178701162 --1.41318044067 -0.812177583575 --1.39592343569 -0.812178879976 --1.37866660952 -0.812182560563 --1.36140957474 -0.812188640237 --1.34415259957 -0.812197178602 --1.32689523697 -0.812208130956 --1.30963781476 -0.812221482396 --1.29237988591 -0.812237307429 --1.27512174845 -0.812255531549 --1.25786301494 -0.812276139855 --1.2406039536 -0.812286376953 --1.22139135003 -0.812274992466 --1.20217716694 -0.812254548073 --1.18491795659 -0.812236428261 --1.1676594317 -0.81222076714 --1.15040117502 -0.812207490206 --1.13314342499 -0.81219664216 --1.11588582397 -0.812188237905 --1.09862864017 -0.812182277441 --1.08137145638 -0.812178701162 --1.06411460042 -0.812177553773 --1.04685759544 -0.812178820371 --1.02960076928 -0.812182530761 --1.0123437047 -0.81218867004 --0.995086714625 -0.812197238207 --0.977829366922 -0.812208160758 --0.960571929812 -0.812221482396 --0.943314000964 -0.812237307429 --0.926055878401 -0.812255531549 --0.90879714489 -0.812276139855 --0.891538098455 -0.812286376953 --0.872325509787 -0.812274962663 --0.853111296892 -0.81225451827 --0.835852116346 -0.812236428261 --0.81859357655 -0.81222076714 --0.801335290074 -0.812207490206 --0.784077569842 -0.81219664216 --0.766819939017 -0.812188267708 --0.749562785029 -0.812182307244 --0.732305631041 -0.812178701162 --0.715048760176 -0.812177583575 --0.6977917701 -0.812178820371 --0.680534958839 -0.812182500958 --0.663277879357 -0.812188640237 --0.646020874381 -0.812197178602 --0.628763496876 -0.812208145857 --0.611506059766 -0.812221497298 --0.594248145819 -0.812237277627 --0.576990038157 -0.812255531549 --0.559731319547 -0.812276154756 --0.54247225821 -0.812286362052 --0.523259654641 -0.812274992466 --0.504045434296 -0.812254548073 --0.486786238849 -0.812236443162 --0.469527721405 -0.812220782042 --0.45226944983 -0.812207490206 --0.435011722148 -0.812196671963 --0.417754121125 -0.812188237905 --0.400496944785 -0.812182247639 --0.383239775896 -0.812178701162 --0.365982890129 -0.812177583575 --0.348725885153 -0.812178820371 --0.331469081342 -0.812182500958 --0.314212016762 -0.812188640237 --0.296955019236 -0.812197178602 --0.279697664082 -0.812208130956 --0.262440226972 -0.812221482396 --0.245182294398 -0.812237337232 --0.227924186737 -0.812255591154 --0.210665453226 -0.812276169658 --0.193406410515 -0.812286406755 --0.174193821847 -0.829465314746 --0.154975291341 -0.829444557429 --0.137716077268 -0.829426214099 --0.120457531884 -0.829410359263 --0.103199237957 -0.829396888614 --0.0859414935112 -0.829385921359 --0.0686838729307 -0.829377397895 --0.0514266798273 -0.829371318221 --0.0341694867238 -0.829367667437 --0.0169125979301 -0.829366520047 -0.000344414496793 -0.829367801547 -0.0176012450829 -0.829371541738 -0.034858321771 -0.829377785325 -0.0521153416485 -0.829386472702 -0.0693727321923 -0.829397588968 -0.0866301842034 -0.829411134124 -0.103888133541 -0.829427137971 -0.121146265417 -0.829445585609 -0.138405010104 -0.829466462135 -0.155664071441 -0.829476848245 -0.174876503647 -0.829465314746 -0.194090560079 -0.82944457233 -0.211349770427 -0.829426199198 -0.228608310222 -0.829410329461 -0.245866604149 -0.829396888614 -0.263124346733 -0.829385891557 -0.280381962657 -0.82937733829 -0.297639161348 -0.829371288419 -0.31489636004 -0.829367667437 -0.332153245807 -0.829366520047 -0.349410250783 -0.829367801547 -0.366667084396 -0.829371541739 -0.383924171329 -0.829377755523 -0.401181191206 -0.8293864429 -0.418438583612 -0.829397588968 -0.435696057975 -0.829411104322 -0.452954001725 -0.829427108169 -0.470212109387 -0.829445585609 -0.487470850348 -0.829466462135 -0.504729904234 -0.829476848245 -0.523942351341 -0.829465314746 -0.543156430125 -0.82944457233 -0.560415625572 -0.829426199198 -0.577674165368 -0.829410329461 -0.594932466746 -0.829396918416 -0.612190201878 -0.829385921359 -0.629447832704 -0.829377368093 -0.646705016494 -0.829371318221 -0.663962200284 -0.829367667437 -0.681219115853 -0.829366534948 -0.69847612083 -0.829367816448 -0.715732946992 -0.829371571541 -0.732990026474 -0.829377785325 -0.750247031451 -0.8293864429 -0.767504408956 -0.829397574067 -0.784761860967 -0.82941108942 -0.802019834518 -0.829427108169 -0.819277986884 -0.829445615411 -0.836536735296 -0.829466491938 -0.853795781732 -0.829476848245 -0.873008191586 -0.829465314746 -0.892222240567 -0.82944457233 -0.909481450916 -0.829426199198 -0.926740005612 -0.829410329461 -0.943998306989 -0.829396888614 -0.961256057024 -0.829385921359 -0.978513687849 -0.829377397895 -0.995770901441 -0.829371318221 -1.01302808523 -0.829367667437 -1.0302849412 -0.829366520047 -1.04754194617 -0.829367801547 -1.06479877234 -0.829371541739 -1.08205583691 -0.829377755523 -1.0993128717 -0.8293864429 -1.1165702939 -0.829397544265 -1.13382774591 -0.829411059618 -1.15108567476 -0.829427108169 -1.16834381223 -0.829445615411 -1.18560257554 -0.829466491938 -1.20286163688 -0.829476848245 -1.22207406163 -0.829465314746 -1.24128809571 -0.82944457233 -1.25854730606 -0.829426229 -1.27580586076 -0.829410359264 -1.29306414723 -0.829396888614 -1.31032189727 -0.829385891557 -1.32757952809 -0.829377368093 -1.34483671188 -0.829371318221 -1.36209389568 -0.829367667437 -1.37935078144 -0.829366520047 -1.39660778642 -0.829367801547 -1.41386464238 -0.829371571541 -1.43112173676 -0.829377815127 -1.44837874174 -0.8293864429 -1.46563613415 -0.829397544265 -1.48289358616 -0.829411119222 -1.50015151501 -0.829427152872 -1.51740962267 -0.829445630312 -1.53466838598 -0.829466477036 -1.55192747712 -0.829476833344 -1.57113990188 -0.829465284944 -1.59035396576 -0.829444527626 -1.60761317611 -0.829426184297 -1.624871701 -0.829410299659 -1.64212998748 -0.829396888614 -1.65938773751 -0.829385921359 -1.67664536833 -0.82937733829 -1.69390255213 -0.829371288419 -1.71115976572 -0.829367667437 -1.72841668129 -0.829366520047 -1.74567368626 -0.829367831349 -1.76293048262 -0.829371571541 -1.78018754721 -0.829377755523 -1.79744458199 -0.8293864429 -1.81470197439 -0.829397544265 -1.8319594264 -0.829411059618 -1.84921735525 -0.829427108169 -1.86647549272 -0.829445555806 -1.88373425603 -0.829466462135 -1.90099331737 -0.829476878047 -1.92020577192 -0.829465314746 -1.93941983581 -0.82944457233 -1.95667901635 -0.829426199198 -1.97393757105 -0.829410329461 -1.99119588732 -0.829396888614 -2.00845357776 -0.829385891557 -2.02571117878 -0.829377368093 -2.04296839237 -0.829371318221 -2.06022554636 -0.829367667437 -2.07748246193 -0.829366520047 -2.09473955631 -0.829367801547 -2.11199641228 -0.829371541739 -2.12925350666 -0.829377755523 -2.14651048184 -0.8293864429 -2.16376781463 -0.829397544265 -2.18102526665 -0.829411059618 -2.1982831955 -0.829427108169 -2.21554136276 -0.829445615411 -2.23280012608 -0.829466491938 -2.25005912781 -0.829476848245 -2.26927155256 -0.829465255141 -2.28848564625 -0.829444512725 -2.3057448864 -0.829426229 -2.32300341129 -0.829410359264 -2.34026169777 -0.829396888614 -2.35751950741 -0.829385891557 -2.37477713823 -0.829377368093 -2.39203429222 -0.829371318221 -2.40929150581 -0.829367667437 -2.42654836178 -0.829366520047 -2.44380533695 -0.829367801547 -2.46106219292 -0.829371571541 -2.4783192873 -0.829377785325 -2.49557626247 -0.8293864429 -2.51283365488 -0.829397588968 -2.53009110689 -0.829411104322 -2.54734909534 -0.829427078366 -2.56460726261 -0.829445555806 -2.58186596632 -0.829466477036 -2.59912508726 -0.829476863146 -2.61833745241 -0.829465314746 -2.63755142689 -0.82944457233 -2.65481066704 -0.829426214099 -2.67206925154 -0.829410344363 -2.68932753801 -0.829396888614 -2.70658528805 -0.829385921359 -2.72384291887 -0.829377368093 -2.74110013247 -0.829371288419 -2.75835734606 -0.829367667437 -2.77561420202 -0.829366520047 -2.7928711772 -0.829367801547 -2.81012803316 -0.829371571541 -2.82738512754 -0.829377785325 -2.84464216232 -0.8293864429 -2.86189961433 -0.829397544265 -2.87915706634 -0.829411059618 -2.8964149952 -0.829427108169 -2.91367304325 -0.829445585609 -2.93093174696 -0.829466491938 -2.9481908679 -0.829476878047 -2.96740335226 -0.829465314746 -2.98661738634 -0.829444557429 -3.00387656689 -0.829426214099 -3.02113515139 -0.829410359263 -3.03839343786 -0.829396888614 -3.05565112829 -0.829385921359 -3.07290875912 -0.829377397895 -3.09016597271 -0.829371318221 -3.1074231267 -0.829367667437 -3.12468004227 -0.829366520047 --3.14124825795 -0.829367801547 --3.12399142981 -0.829371541738 --3.10673433542 -0.829377785325 --3.08947730065 -0.829386472702 --3.07221984864 -0.829397588968 --3.05496239662 -0.829411134124 --3.03770446777 -0.829427137971 --3.02044636011 -0.829445585609 --3.0031876564 -0.829466462135 --2.98592859506 -0.829476848245 --2.96671611071 -0.829465314746 --2.94750201702 -0.82944457233 --2.93024283648 -0.829426199198 --2.91298431158 -0.829410329461 --2.89572602511 -0.829396888614 --2.87846833468 -0.829385891557 --2.86121070385 -0.82937733829 --2.84395349026 -0.829371288419 --2.82669633627 -0.829367667437 --2.8094394207 -0.829366520047 --2.79218238592 -0.829367801547 --2.77492558956 -0.829371541739 --2.75766855478 -0.829377755523 --2.74041152 -0.8293864429 --2.72315406799 -0.829397588968 --2.70589661598 -0.829411104322 --2.68863868713 -0.829427108169 --2.67138051987 -0.829445585609 --2.65412175655 -0.829466462135 --2.63686275482 -0.829476848245 --2.61765033007 -0.829465314746 --2.59843623638 -0.82944457233 --2.58117699623 -0.829426199198 --2.56391847134 -0.829410329461 --2.54666018486 -0.829396918416 --2.52940243483 -0.829385921359 --2.512144804 -0.829377368093 --2.49488765001 -0.829371318221 --2.47763049602 -0.829367667437 --2.46037352085 -0.829366534948 --2.44311648607 -0.829367816448 --2.42585968971 -0.829371571541 --2.40860259533 -0.829377785325 --2.39134562016 -0.8293864429 --2.37408828736 -0.829397574067 --2.35683083534 -0.82941108942 --2.33957284689 -0.829427108169 --2.32231467962 -0.829445615411 --2.30505591631 -0.829466491938 --2.28779685497 -0.829476848245 --2.26858448982 -0.829465314746 --2.24937045574 -0.82944457233 --2.23211121559 -0.829426199198 --2.2148526907 -0.829410329461 --2.19759440422 -0.829396888614 --2.18033659458 -0.829385921359 --2.16307896376 -0.829377397895 --2.14582175016 -0.829371318221 --2.12856453657 -0.829367667437 --2.1113076806 -0.829366520047 --2.09405070543 -0.829367801547 --2.07679390908 -0.829371541739 --2.05953681469 -0.829377755523 --2.04227977991 -0.8293864429 --2.0250223279 -0.829397544265 --2.00776487589 -0.829411059618 --1.99050697684 -0.829427108169 --1.97324880958 -0.829445615411 --1.95599007606 -0.829466491938 --1.93873104453 -0.829476848245 --1.91951861978 -0.829465314746 --1.90030455589 -0.82944457233 --1.88304531574 -0.829426229 --1.86578679085 -0.829410359264 --1.84852850437 -0.829396888614 --1.83127075434 -0.829385891557 --1.81401315331 -0.829377368093 --1.79675593972 -0.829371318221 --1.77949872613 -0.829367667437 --1.76224184037 -0.829366520047 --1.74498483539 -0.829367801547 --1.72772800923 -0.829371571541 --1.71047091484 -0.829377815127 --1.69321390986 -0.8293864429 --1.67595654726 -0.829397544265 --1.65869906545 -0.829411119222 --1.64144110679 -0.829427152872 --1.62418299913 -0.829445630312 --1.60692426562 -0.829466477036 --1.58966520429 -0.829476833344 --1.57045274973 -0.829465284944 --1.55123868585 -0.829444527626 --1.5339794755 -0.829426184297 --1.5167209208 -0.829410299659 --1.49946263432 -0.829396888614 --1.48220488429 -0.829385921359 --1.46494725347 -0.82937733829 --1.44769006967 -0.829371288419 --1.43043288589 -0.829367667437 --1.41317600012 -0.829366520047 --1.39591899514 -0.829367831349 --1.37866216898 -0.829371571541 --1.3614051044 -0.829377755523 --1.34414809942 -0.8293864429 --1.32689070702 -0.829397544265 --1.30963325501 -0.829411059618 --1.29237529635 -0.829427108169 --1.27511712909 -0.829445555806 --1.25785836577 -0.829466462135 --1.24059930444 -0.829476878047 --1.22138690949 -0.829465314746 --1.20217287541 -0.82944457233 --1.18491363525 -0.829426199198 --1.16765508055 -0.829410329461 --1.15039679408 -0.829396888614 --1.13313907385 -0.829385891557 --1.11588147282 -0.829377368093 --1.09862425923 -0.829371318221 --1.08136704564 -0.829367667437 --1.06411015988 -0.829366520047 --1.0468531251 -0.829367801547 --1.02959626913 -0.829371541739 --1.01233920455 -0.829377755523 --0.995082214473 -0.8293864429 --0.977824836969 -0.829397544265 --0.960567370057 -0.829411059618 --0.943309411407 -0.829427108169 --0.926051273942 -0.829445615411 --0.908792540431 -0.829466491938 --0.891533479094 -0.829476848245 --0.87232105434 -0.829465255141 --0.853107005358 -0.829444512725 --0.83584779501 -0.829426229 --0.818589240312 -0.829410359264 --0.801330938935 -0.829396888614 --0.784073188901 -0.829385891557 --0.766815558076 -0.829377368093 --0.749558389187 -0.829371318221 --0.732301190495 -0.829367667437 --0.715044304729 -0.829366520047 --0.697787299752 -0.829367801547 --0.680530458689 -0.829371571541 --0.663273379206 -0.829377785325 --0.646016359329 -0.8293864429 --0.628758952022 -0.829397588968 --0.61150150001 -0.829411104322 --0.594243571162 -0.829427078366 --0.576985433698 -0.829445555806 --0.559726685286 -0.829466477036 --0.542467623949 -0.829476863146 --0.523255199194 -0.829465314746 --0.504041142762 -0.82944457233 --0.486781924963 -0.829426214099 --0.469523385167 -0.829410344363 --0.45226509124 -0.829396888614 --0.435007348656 -0.829385921359 --0.417749732733 -0.829377368093 --0.400492534041 -0.829371288419 --0.38323533535 -0.829367667437 --0.365978434682 -0.829366520047 --0.348721422255 -0.829367801547 --0.331464596093 -0.829371571541 --0.314207516611 -0.829377785325 --0.296950511634 -0.8293864429 --0.279693126678 -0.829397544265 --0.262435659766 -0.829411059618 --0.245177712291 -0.829427108169 --0.227919586003 -0.829445585609 --0.21066083759 -0.829466491938 --0.193401779979 -0.829476878047 --0.174189351499 -0.846634477377 --0.154971029609 -0.846613436937 --0.137711800635 -0.84659487009 --0.120453244075 -0.846578776836 --0.103194927797 -0.846565127373 --0.0859371628612 -0.846554040909 --0.0686795264483 -0.846545383334 --0.0514223147184 -0.846539229155 --0.0341651034541 -0.846535548568 --0.0169081969652 -0.846534356475 -0.00034883362241 -0.846535682678 -0.017605682835 -0.846539527178 -0.0348627790809 -0.84654584527 -0.0521198166534 -0.846554607153 -0.0693772248924 -0.846565872431 -0.0866346973926 -0.8465795964 -0.103892657906 -0.846595793962 -0.121150810272 -0.846614480019 -0.138409581035 -0.846635654569 -0.155668657273 -0.846646204591 -0.174880925566 -0.84663450718 -0.194094818085 -0.84661346674 -0.211354039609 -0.846594840288 -0.228612598032 -0.846578776836 -0.24587091431 -0.846565186978 -0.263128675521 -0.846554070711 -0.280386306345 -0.846545398235 -0.297643519938 -0.846539214254 -0.314900740981 -0.846535533667 -0.33215765655 -0.846534371376 -0.349414683878 -0.846535682678 -0.366671524942 -0.846539497376 -0.383928626776 -0.846545755863 -0.401185669005 -0.846554547548 -0.418443068862 -0.846565842628 -0.435700543225 -0.846579566598 -0.452958509326 -0.846595793962 -0.470216654241 -0.846614480019 -0.487475425005 -0.846635624766 -0.504734493792 -0.846646174789 -0.523946762085 -0.84663450718 -0.543160676957 -0.84661346674 -0.560419902205 -0.846594840288 -0.577678456902 -0.846578776836 -0.594936773181 -0.846565186978 -0.612194523215 -0.846554070711 -0.629452168941 -0.846545398235 -0.646709367633 -0.846539214254 -0.663966566324 -0.846535518766 -0.681223496795 -0.846534371376 -0.698480531573 -0.846535697579 -0.715737387538 -0.846539527178 -0.732994481921 -0.846545815468 -0.7502515167 -0.84655457735 -0.767508909106 -0.846565842628 -0.784766361117 -0.846579566598 -0.80202434957 -0.846595793962 -0.819282516837 -0.846614509821 -0.836541295052 -0.846635654569 -0.853800371289 -0.846646174789 -0.87301261723 -0.846634477377 -0.892226487398 -0.846613451839 -0.909485712647 -0.846594855189 -0.926744312048 -0.846578806639 -0.944002628326 -0.84656521678 -0.961260378361 -0.846554070711 -0.978518024087 -0.846545398235 -0.99577523768 -0.846539214254 -1.01303246617 -0.846535533667 -1.03028935194 -0.846534371376 -1.04754635692 -0.846535682678 -1.06480321288 -0.846539497376 -1.08206030727 -0.846545755863 -1.09931734204 -0.846554547548 -1.11657476425 -0.846565812826 -1.13383224606 -0.846579536796 -1.15109020472 -0.846595793962 -1.16834837198 -0.846614509821 -1.1856071353 -0.846635654569 -1.20286619663 -0.846646174789 -1.22207847238 -0.84663450718 -1.24129235745 -0.84661346674 -1.2585515678 -0.84659487009 -1.27581012249 -0.846578806639 -1.29306843877 -0.846565157175 -1.31032624841 -0.846554040909 -1.32758390903 -0.846545383334 -1.34484109283 -0.846539229155 -1.36209827662 -0.846535548568 -1.37935519219 -0.846534386277 -1.39661222696 -0.846535712481 -1.41386908293 -0.846539527178 -1.43112617731 -0.84654584527 -1.44838321209 -0.846554592252 -1.4656406343 -0.846565827727 -1.48289808631 -0.8465795964 -1.50015604496 -0.846595838666 -1.51741418243 -0.846614524722 -1.53467294574 -0.846635654569 -1.55193206668 -0.846646174789 -1.57114434242 -0.84663450718 -1.59035822749 -0.846613481641 -1.60761746764 -0.846594884992 -1.62487602234 -0.846578806639 -1.64213430881 -0.846565186978 -1.65939205885 -0.846554070711 -1.67664971947 -0.846545383334 -1.69390693307 -0.846539199352 -1.71116414666 -0.846535533667 -1.72842106223 -0.846534371376 -1.74567809701 -0.846535667777 -1.76293492317 -0.846539482474 -1.78019198775 -0.846545755863 -1.79744905233 -0.846554547548 -1.81470647454 -0.846565812826 -1.83196392655 -0.846579536796 -1.8492218852 -0.846595793962 -1.86648005247 -0.846614480019 -1.88373881578 -0.846635654569 -1.90099787712 -0.846646204591 -1.92021018267 -0.846634477377 -1.93942409754 -0.846613436937 -1.95668327808 -0.84659487009 -1.97394183278 -0.846578806639 -1.99120017886 -0.846565186978 -2.00845789909 -0.846554070711 -2.02571552992 -0.846545398235 -2.04297274351 -0.846539244056 -2.06022995711 -0.846535563469 -2.07748693228 -0.846534371376 -2.09474396705 -0.846535667777 -2.11200082302 -0.846539482474 -2.1292579174 -0.846545755863 -2.14651495218 -0.846554547548 -2.16377234459 -0.846565812826 -2.1810297966 -0.846579536796 -2.19828772545 -0.846595793962 -2.21554589272 -0.846614509821 -2.23280465603 -0.846635654569 -2.25006371737 -0.846646174789 -2.26927602291 -0.846634447575 -2.28848993778 -0.846613407135 -2.30574917793 -0.84659487009 -2.32300770283 -0.846578806639 -2.3402659893 -0.846565186978 -2.35752379894 -0.846554070711 -2.37478148937 -0.846545398235 -2.39203870297 -0.846539214254 -2.40929591656 -0.846535533667 -2.42655277252 -0.846534371376 -2.4438098073 -0.846535682678 -2.46106666326 -0.846539527178 -2.47832375765 -0.846545785666 -2.49558079243 -0.846554547548 -2.51283818483 -0.846565842628 -2.53009563684 -0.846579566598 -2.5473536253 -0.846595793962 -2.56461179257 -0.846614480019 -2.58187055588 -0.846635654569 -2.59912967682 -0.846646204591 -2.61834186316 -0.84663450718 -2.63755571842 -0.84661346674 -2.65481495857 -0.846594840288 -2.67207354307 -0.846578776836 -2.68933188915 -0.846565186978 -2.70658963919 -0.846554040909 -2.72384727001 -0.846545368433 -2.74110448361 -0.846539244056 -2.75836169719 -0.846535548568 -2.77561861276 -0.846534356475 -2.79287564754 -0.846535667777 -2.81013250351 -0.846539512277 -2.82738959789 -0.846545785666 -2.84464663267 -0.846554547548 -2.86190408468 -0.846565812826 -2.87916153669 -0.846579536796 -2.89641946554 -0.846595793962 -2.91367757321 -0.846614480019 -2.93093633652 -0.846635654569 -2.94819545746 -0.846646204591 -2.967407763 -0.846634477377 -2.98662161827 -0.846613436937 -3.00388085842 -0.84659487009 -3.02113950253 -0.846578776836 -3.038397789 -0.846565127373 -3.05565547943 -0.846554040909 -3.07291311026 -0.846545383334 -3.09017032385 -0.846539229155 -3.10742753744 -0.846535548568 -3.12468451261 -0.846534356475 --3.14124378761 -0.846535682678 --3.12398695946 -0.846539527178 --3.10672986507 -0.84654584527 --3.0894728303 -0.846554607153 --3.07221537829 -0.846565872431 --3.05495792627 -0.8465795964 --3.03769999743 -0.846595793962 --3.02044183016 -0.846614480019 --3.00318306684 -0.846635654569 --2.98592400551 -0.846646204591 --2.96671169996 -0.84663450718 --2.94749778509 -0.84661346674 --2.93023854494 -0.846594840288 --2.91297996044 -0.846578776836 --2.89572167397 -0.846565186978 --2.87846398354 -0.846554070711 --2.86120635271 -0.846545398235 --2.84394913912 -0.846539214254 --2.82669192552 -0.846535533667 --2.80943495035 -0.846534371376 --2.79217797518 -0.846535682678 --2.77492117882 -0.846539497376 --2.75766408443 -0.846545755863 --2.74040704966 -0.846554547548 --2.72314959765 -0.846565842628 --2.70589208603 -0.846579566598 --2.68863415718 -0.846595793962 --2.67137598991 -0.846614480019 --2.6541172266 -0.846635624766 --2.63685822487 -0.846646174789 --2.61764591932 -0.84663450718 --2.59843200445 -0.84661346674 --2.5811727643 -0.846594840288 --2.5639141798 -0.846578776836 --2.54665589333 -0.846565186978 --2.52939814329 -0.846554070711 --2.51214045286 -0.846545398235 --2.49488329887 -0.846539214254 --2.47762614488 -0.846535518766 --2.46036916971 -0.846534371376 --2.44311213493 -0.846535697579 --2.42585527897 -0.846539527178 --2.40859812498 -0.846545815468 --2.3913410902 -0.84655457735 --2.3740837574 -0.846565842628 --2.35682630539 -0.846579566598 --2.33956825733 -0.846595793962 --2.32231009006 -0.846614509821 --2.30505132675 -0.846635654569 --2.28779220581 -0.846646174789 --2.26858001947 -0.846634477377 --2.24936616421 -0.846613451839 --2.23210692406 -0.846594855189 --2.21484839916 -0.846578806639 --2.19759011269 -0.84656521678 --2.18033230305 -0.846554070711 --2.16307461262 -0.846545398235 --2.14581739902 -0.846539214254 --2.12856018543 -0.846535533667 --2.11130332947 -0.846534371376 --2.09404629469 -0.846535682678 --2.07678943873 -0.846539497376 --2.05953234434 -0.846545755863 --2.04227530956 -0.846554547548 --2.02501785755 -0.846565812826 --2.00776037574 -0.846579536796 --1.99050244689 -0.846595793962 --1.97324427962 -0.846614509821 --1.95598554611 -0.846635654569 --1.93872645497 -0.846646174789 --1.91951417923 -0.84663450718 --1.90030029416 -0.84661346674 --1.88304105401 -0.84659487009 --1.86578249931 -0.846578806639 --1.84852418303 -0.846565157175 --1.831266433 -0.846554040909 --1.81400880218 -0.846545383334 --1.79675158858 -0.846539229155 --1.77949437499 -0.846535548568 --1.76223742962 -0.846534386277 --1.74498039484 -0.846535712481 --1.72772356868 -0.846539527178 --1.71046647429 -0.84654584527 --1.69320943951 -0.846554592252 --1.67595201731 -0.846565827727 --1.6586945355 -0.8465795964 --1.64143660665 -0.846595838666 --1.62417846918 -0.846614524722 --1.60691967606 -0.846635654569 --1.58966061473 -0.846646174789 --1.57044833899 -0.84663450718 --1.55123442412 -0.846613481641 --1.53397518396 -0.846594884992 --1.51671659946 -0.846578806639 --1.49945831299 -0.846565186978 --1.48220056295 -0.846554070711 --1.46494293213 -0.846545383334 --1.44768571854 -0.846539199352 --1.43042850495 -0.846535533667 --1.41317161918 -0.846534371376 --1.3959145844 -0.846535667777 --1.37865772843 -0.846539482474 --1.36140063405 -0.846545755863 --1.34414359927 -0.846554547548 --1.32688620687 -0.846565812826 --1.30962872505 -0.846579536796 --1.2923707366 -0.846595793962 --1.27511256933 -0.846614480019 --1.25785380602 -0.846635654569 --1.24059474468 -0.846646204591 --1.22138249874 -0.846634477377 --1.20216861368 -0.846613436937 --1.18490937352 -0.84659487009 --1.16765078902 -0.846578806639 --1.15039247274 -0.846565186978 --1.13313475251 -0.846554070711 --1.11587712169 -0.846545398235 --1.09861987829 -0.846539244056 --1.0813626647 -0.846535563469 --1.06410574913 -0.846534371376 --1.04684871435 -0.846535667777 --1.02959185839 -0.846539482474 --1.012334764 -0.846545755863 --0.995077744124 -0.846554547548 --0.977820321918 -0.846565812826 --0.960562855005 -0.846579536796 --0.943304896355 -0.846595793962 --0.926046729088 -0.846614509821 --0.908787980676 -0.846635654569 --0.891528904438 -0.846646174789 --0.872316628694 -0.846634447575 --0.853102743626 -0.846613407135 --0.835843518376 -0.84659487009 --0.818584948778 -0.846578806639 --0.801326617599 -0.846565186978 --0.784068852663 -0.846554070711 --0.766811221838 -0.846545398235 --0.749554023147 -0.846539214254 --0.732296794653 -0.846535533667 --0.715039893985 -0.846534371376 --0.697782874108 -0.846535682678 --0.680526018143 -0.846539527178 --0.663268923759 -0.846545785666 --0.64601187408 -0.846554547548 --0.628754451871 -0.846565842628 --0.611496984959 -0.846579566598 --0.594239041209 -0.846595793962 --0.576980888843 -0.846614480019 --0.55972212553 -0.846635654569 --0.542463064194 -0.846646204591 --0.52325078845 -0.84663450718 --0.504036881029 -0.84661346674 --0.48677764833 -0.846594840288 --0.469519086182 -0.846578776836 --0.452260777354 -0.846565186978 --0.43500302732 -0.846554040909 --0.417745389044 -0.846545368433 --0.40048816055 -0.846539244056 --0.383230939507 -0.846535548568 --0.365974031389 -0.846534356475 --0.348717011511 -0.846535667777 --0.331460170448 -0.846539512277 --0.314203076065 -0.846545785666 --0.296946033835 -0.846554547548 --0.279688626528 -0.846565812826 --0.262431152165 -0.846579536796 --0.245173182339 -0.846595793962 --0.227915037423 -0.846614480019 --0.21065627411 -0.846635654569 --0.193397205323 -0.846646204591 --0.17418493703 -0.863784849644 --0.154966823757 -0.863763540983 --0.13770757243 -0.863744735718 --0.120448995382 -0.863728433847 --0.103190666065 -0.863714650273 --0.085932886228 -0.863703429699 --0.0686752311885 -0.863694638014 --0.0514179989696 -0.863688394427 --0.0341607681476 -0.863684669137 --0.016903843265 -0.863683462143 -0.000353204784912 -0.863684803248 -0.0176100714598 -0.863688707352 -0.0348671865649 -0.863695070148 -0.052124241367 -0.863703921437 -0.0693816663697 -0.863715350628 -0.0866391584277 -0.863729283214 -0.10389713943 -0.863745689392 -0.12115530856 -0.863764613867 -0.138414099813 -0.86378608644 -0.155673198402 -0.863796755672 -0.174885299057 -0.863784879446 -0.194099027663 -0.863763570786 -0.211358275265 -0.863744735718 -0.228616852313 -0.863728433847 -0.245875176042 -0.863714650273 -0.263132952153 -0.863703429699 -0.28039060533 -0.863694652915 -0.297647841275 -0.863688379526 -0.31490508467 -0.863684654236 -0.33216201514 -0.863683477044 -0.349419057369 -0.863684788347 -0.366675913334 -0.863688662648 -0.383933030069 -0.863695010543 -0.40119009465 -0.863703906536 -0.418447516859 -0.863715320825 -0.435704998672 -0.86372923851 -0.452962979674 -0.863745689392 -0.470221146941 -0.863764613867 -0.487479940057 -0.863786056638 -0.504739038646 -0.863796725869 -0.523951143027 -0.863784879446 -0.543164879084 -0.863763570786 -0.560424134135 -0.863744735718 -0.577682703733 -0.863728433847 -0.594941005111 -0.863714650273 -0.612198784947 -0.863703429699 -0.629456460476 -0.863694652915 -0.646713674068 -0.863688379526 -0.663970902562 -0.863684624433 -0.681227862835 -0.863683447242 -0.698484912515 -0.863684788347 -0.715741768479 -0.863688662648 -0.732998892665 -0.863695040345 -0.750255957246 -0.863703921437 -0.767513364553 -0.863715305924 -0.784770846367 -0.86372923851 -0.80202883482 -0.863745689392 -0.819287002086 -0.863764613867 -0.836545795202 -0.863786056638 -0.853804901242 -0.863796725869 -0.873016998172 -0.863784849644 -0.892230719328 -0.863763555884 -0.909489974379 -0.863744750619 -0.92674857378 -0.86372846365 -0.94400690496 -0.863714680076 -0.961264669895 -0.863703429699 -0.978522315621 -0.863694652915 -0.995779544116 -0.863688379526 -1.01303678751 -0.863684639335 -1.03029370308 -0.863683462143 -1.04755073786 -0.863684788347 -1.06480762362 -0.863688662648 -1.08206474781 -0.863695010543 -1.09932178259 -0.863703906536 -1.1165792048 -0.863715335726 -1.13383671641 -0.86372923851 -1.15109470486 -0.863745674491 -1.16835287213 -0.863764613867 -1.18561163545 -0.863786056638 -1.20287072659 -0.863796725869 -1.22208285332 -0.863784879446 -1.24129655957 -0.863763570786 -1.25855579972 -0.863744735718 -1.27581441402 -0.863728433847 -1.2930727601 -0.863714650273 -1.31033053994 -0.863703429699 -1.32758817076 -0.863694638014 -1.34484541416 -0.863688394427 -1.36210265756 -0.863684654236 -1.37935957313 -0.863683477044 -1.3966166079 -0.863684818149 -1.41387346387 -0.863688662648 -1.43113055825 -0.863695040345 -1.44838762283 -0.86370395124 -1.46564507484 -0.863715335727 -1.48290252685 -0.863729223609 -1.50016051531 -0.863745674491 -1.51741871238 -0.863764613867 -1.53467750549 -0.863786056638 -1.55193659663 -0.863796725869 -1.57114869356 -0.863784879446 -1.59036242962 -0.863763585687 -1.60762166977 -0.863744780421 -1.62488025427 -0.863728493452 -1.64213857054 -0.863714680076 -1.65939635038 -0.863703429699 -1.67665404081 -0.863694608211 -1.69391125441 -0.863688334822 -1.711168468 -0.863684654236 -1.72842538357 -0.863683477044 -1.74568244815 -0.863684773445 -1.76293933391 -0.863688647747 -1.7801964283 -0.863695010543 -1.79745349288 -0.863703906536 -1.81471091509 -0.863715320825 -1.8319683969 -0.86372923851 -1.84922638536 -0.863745689392 -1.86648455262 -0.863764613867 -1.88374331593 -0.863786056638 -1.90100240707 -0.863796725869 -1.92021456361 -0.863784849644 -1.93942832947 -0.863763540983 -1.95668753982 -0.86374476552 -1.97394609451 -0.863728463649 -1.99120444059 -0.863714650273 -2.00846219063 -0.863703429699 -2.02571988106 -0.863694652915 -2.04297709465 -0.863688409328 -2.06023430824 -0.863684669137 -2.07749128341 -0.863683462143 -2.09474831819 -0.863684773445 -2.11200517416 -0.863688647747 -2.12926226854 -0.863695010543 -2.14651936293 -0.863703906536 -2.16377681494 -0.863715320825 -2.18103426695 -0.863729223609 -2.1982921958 -0.863745674491 -2.21555036306 -0.863764613867 -2.23280918598 -0.863786056638 -2.25006830692 -0.863796725869 -2.26928043366 -0.863784849644 -2.28849416971 -0.863763540983 -2.30575340986 -0.863744735718 -2.32301199436 -0.863728433847 -2.34027028084 -0.863714620471 -2.35752803087 -0.863703399897 -2.3747857213 -0.863694652915 -2.3920429945 -0.863688379526 -2.40930020809 -0.863684639335 -2.42655706405 -0.863683462143 -2.44381415844 -0.863684788347 -2.46107107401 -0.863688662648 -2.47832816839 -0.863695010543 -2.49558520317 -0.863703891635 -2.51284259558 -0.863715305924 -2.53010010719 -0.86372923851 -2.54735815525 -0.863745689392 -2.56461632252 -0.863764613867 -2.58187508583 -0.863786056638 -2.59913414717 -0.863796725869 -2.6183462143 -0.863784879446 -2.63755995035 -0.863763570786 -2.6548191905 -0.863744735718 -2.672077775 -0.863728433847 -2.68933618069 -0.863714650273 -2.70659399033 -0.863703399897 -2.72385156155 -0.863694623113 -2.74110877514 -0.863688409328 -2.75836604833 -0.863684654236 -2.77562302351 -0.863683447242 -2.79288005829 -0.863684773445 -2.81013691425 -0.863688647747 -2.82739400864 -0.863695010543 -2.84465104342 -0.863703906536 -2.86190849543 -0.863715320825 -2.87916594744 -0.863729223609 -2.89642393589 -0.863745674491 -2.91368210316 -0.863764613867 -2.93094086647 -0.863786056638 -2.94819998741 -0.863796725869 -2.96741211415 -0.863784849644 -2.9866258502 -0.863763540983 -3.00388509035 -0.863744735718 -3.02114367485 -0.863728433847 -3.03840202093 -0.863714650273 -3.05565977097 -0.863703429699 -3.0729174614 -0.863694638014 -3.09017467499 -0.863688394427 -3.10743188858 -0.863684669137 -3.12468886375 -0.863683462143 --3.14123943647 -0.863684803248 --3.12398254872 -0.863688707352 --3.10672545433 -0.863695070148 --3.08946841955 -0.863703921437 --3.07221096754 -0.863715350628 --3.05495351553 -0.863729283214 --3.03769552708 -0.863745689392 --3.02043735981 -0.863764613867 --3.00317859649 -0.86378608644 --2.98591947555 -0.863796755672 --2.96670734882 -0.863784879446 --2.94749361277 -0.863763570786 --2.93023437262 -0.863744735718 --2.91297578812 -0.863728433847 --2.89571744204 -0.863714650273 --2.878459692 -0.863703429699 --2.86120200157 -0.863694652915 --2.84394478798 -0.863688379526 --2.82668757438 -0.863684654236 --2.80943059921 -0.863683477044 --2.79217362404 -0.863684788347 --2.77491676808 -0.863688662648 --2.75765961409 -0.863695010543 --2.74040257931 -0.863703906536 --2.7231451273 -0.863715320825 --2.70588761568 -0.86372923851 --2.68862968683 -0.863745689392 --2.67137151956 -0.863764613867 --2.65411275625 -0.863786056638 --2.63685369492 -0.863796725869 --2.61764150858 -0.863784879446 --2.59842777252 -0.863763570786 --2.58116853237 -0.863744735718 --2.56390994787 -0.863728433847 --2.5466516614 -0.863714650273 --2.52939391136 -0.863703429699 --2.51213622093 -0.863694652915 --2.49487900734 -0.863688379526 --2.47762179375 -0.863684624433 --2.46036481858 -0.863683447242 --2.4431077838 -0.863684788347 --2.42585092783 -0.863688662648 --2.40859377384 -0.863695040345 --2.39133667946 -0.863703921437 --2.37407928705 -0.863715305924 --2.35682177544 -0.86372923851 --2.33956378698 -0.863745689392 --2.32230561972 -0.863764613867 --2.3050467968 -0.863786056638 --2.28778767586 -0.863796725869 --2.26857560873 -0.863784849644 --2.24936193228 -0.863763555884 --2.23210269213 -0.863744750619 --2.21484410763 -0.86372846365 --2.19758576155 -0.863714680076 --2.18032795191 -0.863703429699 --2.16307032108 -0.863694652915 --2.14581310749 -0.863688379526 --2.1285558939 -0.863684639335 --2.11129903794 -0.863683462143 --2.09404194355 -0.863684788347 --2.07678502798 -0.863688662648 --2.0595279336 -0.863695010543 --2.04227089882 -0.863703906536 --2.02501344681 -0.863715335726 --2.00775596499 -0.86372923851 --1.99049797654 -0.863745674491 --1.97323977947 -0.863764613867 --1.95598101616 -0.863786056638 --1.93872192502 -0.863796725869 --1.91950982809 -0.863784879446 --1.90029609203 -0.863763570786 --1.88303682208 -0.863744735718 --1.86577823758 -0.863728433847 --1.8485198915 -0.863714650273 --1.83126211166 -0.863703429699 --1.81400448084 -0.863694638014 --1.79674726725 -0.863688394427 --1.77949005366 -0.863684654236 --1.76223307848 -0.863683477044 --1.7449760139 -0.863684818149 --1.72771918774 -0.863688662648 --1.71046209335 -0.863695040345 --1.69320502877 -0.86370395124 --1.67594757676 -0.863715335727 --1.65869009495 -0.863729223609 --1.6414321363 -0.863745674491 --1.62417396903 -0.863764613867 --1.60691514611 -0.863786056638 --1.58965605497 -0.863796725869 --1.57044395804 -0.863784879446 --1.55123019219 -0.863763585687 --1.53397095203 -0.863744780421 --1.51671236753 -0.863728493452 --1.49945405125 -0.863714680076 --1.48219630122 -0.863703429699 --1.46493864059 -0.863694608211 --1.4476813972 -0.863688334822 --1.43042418361 -0.863684654236 --1.41316726804 -0.863683477044 --1.39591020346 -0.863684773445 --1.37865331769 -0.863688647747 --1.3613961935 -0.863695010543 --1.34413915872 -0.863703906536 --1.32688173652 -0.863715320825 --1.3096242249 -0.86372923851 --1.29236623645 -0.863745689392 --1.27510806918 -0.863764613867 --1.25784930587 -0.863786056638 --1.24059021473 -0.863796725869 --1.2213781178 -0.863784849644 --1.20216441155 -0.863763540983 --1.18490514159 -0.86374476552 --1.16764655709 -0.863728463649 --1.15038824081 -0.863714650273 --1.13313046097 -0.863703429699 --1.11587280035 -0.863694652915 --1.09861552715 -0.863688409328 --1.08135828376 -0.863684669137 --1.06410136819 -0.863683462143 --1.04684433341 -0.863684773445 --1.02958747745 -0.863688647747 --1.01233038306 -0.863695010543 --0.995073318479 -0.863703906536 --0.97781586647 -0.863715320825 --0.960558399558 -0.863729223609 --0.943300426006 -0.863745674491 --0.926042243838 -0.863764613867 --0.908783450723 -0.863786056638 --0.891524344683 -0.863796725869 --0.872312247753 -0.863784849644 --0.853098526597 -0.863763540983 --0.835839286447 -0.863744735718 --0.818580701947 -0.863728433847 --0.801322355866 -0.863714620471 --0.784064590931 -0.863703399897 --0.766806945205 -0.863694652915 --0.749549716711 -0.863688379526 --0.732292473316 -0.863684639335 --0.715035542846 -0.863683462143 --0.697778493166 -0.863684788347 --0.6805216223 -0.863688662648 --0.663264513016 -0.863695010543 --0.646007448435 -0.863703891635 --0.628750011325 -0.863715305924 --0.611492529512 -0.86372923851 --0.59423455596 -0.863745689392 --0.576976373792 -0.863764613867 --0.559717595577 -0.863786056638 --0.542458534241 -0.863796725869 --0.52324642241 -0.863784879446 --0.504032671451 -0.863763570786 --0.4867734164 -0.863744735718 --0.469514831901 -0.863728433847 --0.452256508172 -0.863714650273 --0.434998735786 -0.863703399897 --0.417741082609 -0.863694623113 --0.400483839214 -0.863688409328 --0.383226603269 -0.863684654236 --0.3659696877 -0.863683447242 --0.348712652922 -0.863684773445 --0.331455782056 -0.863688647747 --0.314198665321 -0.863695010543 --0.29694160074 -0.863703906536 --0.279684178531 -0.863715320825 --0.262426704169 -0.863729223609 --0.24516871199 -0.863745674491 --0.227910540998 -0.863764613867 --0.210651759058 -0.863786056638 --0.193392667919 -0.863796725869 --0.174180563539 -0.880939468741 --0.154962256551 -0.880917936564 --0.137702986598 -0.880898877978 --0.120444383472 -0.88088235259 --0.103186037391 -0.880868405104 --0.085928240791 -0.880857050419 --0.0686705652624 -0.880848154426 --0.0514133134857 -0.880841836333 --0.0341560635716 -0.880838081241 --0.0168991188984 -0.880836859346 -0.000357948476447 -0.880838185549 -0.0176148335449 -0.880842119455 -0.0348719679751 -0.880848571658 -0.0521290432662 -0.880857542157 -0.0693864868954 -0.880869090557 -0.0866439957171 -0.880883187056 -0.103901999071 -0.880899816752 -0.121160186827 -0.880919024349 -0.138418994844 -0.880940750241 -0.155678108335 -0.880951493978 -0.174890037626 -0.880939468741 -0.194103598594 -0.880917936564 -0.211362868547 -0.880898877978 -0.228621467948 -0.88088235259 -0.245879802853 -0.880868375301 -0.263137593866 -0.880857005715 -0.280395269394 -0.880848139525 -0.29765252024 -0.880841836333 -0.314909785986 -0.880838051439 -0.332166746259 -0.880836829543 -0.349423803389 -0.880838170648 -0.366680674255 -0.880842074752 -0.383937813342 -0.880848541856 -0.401194900274 -0.880857557058 -0.418452337384 -0.880869090557 -0.435709849 -0.880883201957 -0.452967852354 -0.880899846554 -0.470226019621 -0.880918994546 -0.487484820187 -0.880940720439 -0.504743948579 -0.880951523781 -0.523955896497 -0.880939498544 -0.543169438839 -0.880917936564 -0.560428708792 -0.880898877978 -0.577687308192 -0.88088235259 -0.594945639372 -0.880868375301 -0.612203449011 -0.880857005715 -0.629461124539 -0.880848139525 -0.646718367934 -0.880841836333 -0.66397562623 -0.880838036537 -0.681232601404 -0.880836814642 -0.698489680886 -0.880838170648 -0.715746551752 -0.880842104554 -0.733003675938 -0.880848541856 -0.75026075542 -0.880857512355 -0.76751819253 -0.880869075656 -0.784775689244 -0.880883172155 -0.802033692598 -0.880899816752 -0.819291874766 -0.880918994546 -0.836550667882 -0.880940720439 -0.853809803724 -0.880951493978 -0.873021751642 -0.880939468741 -0.892235293984 -0.880917936564 -0.909494563937 -0.88089889288 -0.926753178239 -0.880882397294 -0.944011524319 -0.880868405104 -0.961269319057 -0.880857005715 -0.978526979685 -0.880848139525 -0.995784237983 -0.880841836333 -1.01304149628 -0.880838036537 -1.03029841185 -0.880836814642 -1.04755547642 -0.880838170648 -1.06481239199 -0.880842104554 -1.08206954598 -0.880848541856 -1.09932661057 -0.880857527256 -1.11658406258 -0.880869105458 -1.13384157419 -0.880883201957 -1.15109956265 -0.880899831653 -1.16835772991 -0.880918994546 -1.18561652302 -0.880940720439 -1.20287564397 -0.880951493978 -1.22208759189 -0.880939468741 -1.24130114913 -0.880917936564 -1.25856041908 -0.880898877978 -1.27581903338 -0.880882382393 -1.29307737946 -0.880868405104 -1.3103351593 -0.880857005715 -1.32759281993 -0.880848139525 -1.34485009313 -0.880841836333 -1.36210736633 -0.880838036537 -1.37936431169 -0.880836814642 -1.39662134647 -0.880838170648 -1.41387820244 -0.880842074752 -1.43113532662 -0.880848541856 -1.44839242101 -0.880857557058 -1.46564987302 -0.880869090557 -1.48290735483 -0.880883187056 -1.50016537309 -0.880899831653 -1.51742359996 -0.880919024349 -1.53468239307 -0.880940750241 -1.55194148421 -0.880951523781 -1.57115343213 -0.880939468741 -1.59036701918 -0.880917906761 -1.60762625933 -0.88089889288 -1.62488484383 -0.880882367492 -1.64214318991 -0.880868375301 -1.65940099955 -0.880857005715 -1.67665868998 -0.880848109722 -1.69391593337 -0.880841806531 -1.71117317677 -0.880838081241 -1.72843012214 -0.880836859346 -1.74568721652 -0.880838170648 -1.76294410229 -0.880842074752 -1.78020122647 -0.880848541856 -1.79745829106 -0.880857557058 -1.81471574307 -0.880869090557 -1.83197325468 -0.880883172155 -1.84923124314 -0.880899816752 -1.86648944021 -0.880918994546 -1.88374823332 -0.880940720439 -1.90100735426 -0.880951493978 -1.92021930218 -0.880939468741 -1.93943285942 -0.880917936564 -1.95669212937 -0.880898877978 -1.97395074368 -0.88088235259 -1.99120908975 -0.880868375301 -2.00846683979 -0.880857005715 -2.02572453022 -0.880848139525 -2.04298180342 -0.880841836333 -2.06023901701 -0.880838036537 -2.07749599218 -0.880836814642 -2.09475308656 -0.880838170648 -2.11200994253 -0.880842074752 -2.12926709652 -0.880848512053 -2.14652419091 -0.880857527256 -2.16378164292 -0.880869090557 -2.18103909493 -0.880883187056 -2.19829702377 -0.880899831653 -2.21555525065 -0.880918994546 -2.23281413317 -0.880940720439 -2.25007325411 -0.880951493978 -2.26928514242 -0.880939468741 -2.28849869967 -0.880917936564 -2.30575799942 -0.880898877978 -2.32301664352 -0.880882382393 -2.34027493 -0.880868375301 -2.35753262043 -0.880856975913 -2.37479031086 -0.880848139525 -2.39204764366 -0.880841836333 -2.40930491686 -0.880838036537 -2.42656183243 -0.880836814642 -2.44381886721 -0.880838170648 -2.46107578278 -0.880842104554 -2.47833293676 -0.880848541856 -2.49558997154 -0.880857512355 -2.51284742356 -0.880869075656 -2.53010499478 -0.880883201957 -2.54736304283 -0.880899846554 -2.5646212101 -0.880918994546 -2.58187997341 -0.880940720439 -2.59913903475 -0.880951523781 -2.61835098267 -0.880939498544 -2.63756453991 -0.880917936564 -2.65482378006 -0.880898877978 -2.67208242417 -0.880882382393 -2.68934082985 -0.880868405104 -2.70659863949 -0.880857005715 -2.72385621071 -0.880848139525 -2.7411134243 -0.880841836333 -2.7583707571 -0.880838036537 -2.77562773228 -0.880836814642 -2.79288476706 -0.880838170648 -2.81014162302 -0.880842074752 -2.8273987174 -0.880848541856 -2.84465581179 -0.880857557058 -2.8619132638 -0.880869090557 -2.87917077541 -0.880883157253 -2.89642882347 -0.88089980185 -2.91368699074 -0.880918994546 -2.93094575405 -0.880940720439 -2.94820487499 -0.880951493978 -2.96741682291 -0.880939468741 -2.98663038015 -0.880917936564 -3.00388962031 -0.880898877978 -3.02114820481 -0.88088235259 -3.03840661049 -0.880868405104 -3.05566442013 -0.880857050419 -3.07292211056 -0.880848154426 -3.09017938376 -0.880841836333 -3.10743659734 -0.880838081241 -3.12469351291 -0.880836859346 --3.1412347277 -0.880838185549 --3.12397783995 -0.880842119455 --3.10672074557 -0.880848571658 --3.08946365118 -0.880857542157 --3.07220619917 -0.880869090557 --3.05494868756 -0.880883187056 --3.0376906395 -0.880899816752 --3.02043247223 -0.880919024349 --3.00317370892 -0.880940750241 --2.98591458797 -0.880951493978 --2.96670264005 -0.880939468741 --2.94748908282 -0.880917936564 --2.93022984266 -0.880898877978 --2.91297125816 -0.88088235259 --2.89571285248 -0.880868375301 --2.87845504284 -0.880857005715 --2.86119735241 -0.880848139525 --2.84394013882 -0.880841836333 --2.82668292522 -0.880838051439 --2.80942595005 -0.880836829543 --2.79216891527 -0.880838170648 --2.77491199971 -0.880842074752 --2.75765478611 -0.880848541856 --2.74039769172 -0.880857557058 --2.72314023971 -0.880869090557 --2.7058827877 -0.880883201957 --2.68862485886 -0.880899846554 --2.67136669159 -0.880918994546 --2.65410786867 -0.880940720439 --2.63684868813 -0.880951523781 --2.61763674021 -0.880939498544 --2.59842318296 -0.880917936564 --2.58116388321 -0.880898877978 --2.56390535831 -0.88088235259 --2.54664707184 -0.880868375301 --2.5293892622 -0.880857005715 --2.51213157177 -0.880848139525 --2.49487429857 -0.880841836333 --2.47761702537 -0.880838036537 --2.4603600502 -0.880836814642 --2.44310295582 -0.880838170648 --2.42584609985 -0.880842104554 --2.40858900547 -0.880848541856 --2.39133191108 -0.880857512355 --2.37407445908 -0.880869075656 --2.35681694746 -0.880883172155 --2.33955895901 -0.880899816752 --2.32230073213 -0.880918994546 --2.30504190922 -0.880940720439 --2.28778278828 -0.880951493978 --2.26857084036 -0.880939468741 --2.24935734272 -0.880917936564 --2.23209810257 -0.88089889288 --2.21483945847 -0.880882397294 --2.19758111238 -0.880868405104 --2.18032330274 -0.880857005715 --2.16306567192 -0.880848139525 --2.14580845833 -0.880841836333 --2.12855118514 -0.880838036537 --2.11129426957 -0.880836814642 --2.09403717518 -0.880838170648 --2.07678025961 -0.880842104554 --2.05952316522 -0.880848541856 --2.04226613044 -0.880857527256 --2.02500867843 -0.880869105458 --2.00775113702 -0.880883201957 --1.99049308896 -0.880899831653 --1.97323489189 -0.880918994546 --1.95597609878 -0.880940720439 --1.93871700764 -0.880951493978 --1.91950508952 -0.880939468741 --1.90029150248 -0.880917936564 --1.88303223252 -0.880898877978 --1.86577364802 -0.880882382393 --1.84851527214 -0.880868405104 --1.8312574625 -0.880857005715 --1.81399980187 -0.880848139525 --1.79674255848 -0.880841836333 --1.77948534489 -0.880838036537 --1.76222836971 -0.880836814642 --1.74497127533 -0.880838170648 --1.72771441937 -0.880842074752 --1.71045729518 -0.880848541856 --1.6932002306 -0.880857557058 --1.67594277859 -0.880869090557 --1.65868526697 -0.880883187056 --1.64142727852 -0.880899831653 --1.62416908145 -0.880919024349 --1.60691025853 -0.880940750241 --1.58965113759 -0.880951523781 --1.57043921947 -0.880939468741 --1.55122566223 -0.880917906761 --1.53396639228 -0.88089889288 --1.51670777798 -0.880882367492 --1.4994494319 -0.880868375301 --1.48219165206 -0.880857005715 --1.46493396163 -0.880848109722 --1.44767671824 -0.880841806531 --1.43041947484 -0.880838081241 --1.41316252947 -0.880836859346 --1.39590546489 -0.880838170648 --1.37864854932 -0.880842074752 --1.36139142513 -0.880848541856 --1.34413436055 -0.880857557058 --1.32687690854 -0.880869090557 --1.30961939692 -0.880883172155 --1.29236137867 -0.880899816752 --1.2751032114 -0.880918994546 --1.25784441829 -0.880940720439 --1.24058529735 -0.880951493978 --1.22137337923 -0.880939468741 --1.20215982199 -0.880917936564 --1.18490052223 -0.880898877978 --1.16764193773 -0.88088235259 --1.15038362145 -0.880868375301 --1.13312581181 -0.880857005715 --1.11586812138 -0.880848139525 --1.09861084819 -0.880841836333 --1.08135360479 -0.880838036537 --1.06409665942 -0.880836814642 --1.04683959484 -0.880838170648 --1.02958273888 -0.880842074752 --1.01232561469 -0.880848512053 --0.995068520305 -0.880857527256 --0.977811068296 -0.880869090557 --0.960553556681 -0.880883187056 --0.943295553326 -0.880899831653 --0.926037371159 -0.880918994546 --0.908778548241 -0.880940720439 --0.891519427299 -0.880951493978 --0.872307509184 -0.880939468741 --0.853093966842 -0.880917936564 --0.83583471179 -0.880898877978 --0.818576097488 -0.880882382393 --0.801317736506 -0.880868375301 --0.78405995667 -0.880856975913 --0.766802281142 -0.880848139525 --0.749545007944 -0.880841836333 --0.732287764549 -0.880838036537 --0.715030834079 -0.880836814642 --0.697773769498 -0.880838170648 --0.680516883731 -0.880842104554 --0.663259744644 -0.880848541856 --0.646002650261 -0.880857512355 --0.62874519825 -0.880869075656 --0.611487701535 -0.880883201957 --0.594229698181 -0.880899846554 --0.576971501112 -0.880918994546 --0.559712693095 -0.880940720439 --0.542453601957 -0.880951523781 --0.523241683841 -0.880939498544 --0.504028111696 -0.880917936564 --0.486768826842 -0.880898877978 --0.469510219991 -0.880882382393 --0.452251881361 -0.880868405104 --0.434994086623 -0.880857005715 --0.417736418545 -0.880848139525 --0.400479160249 -0.880841836333 --0.383221909404 -0.880838036537 --0.365964978933 -0.880836814642 --0.348707914353 -0.880838170648 --0.331451013684 -0.880842074752 --0.314193874598 -0.880848541856 --0.296936810017 -0.880857557058 --0.279679365456 -0.880869090557 --0.262421853841 -0.880883157253 --0.245163846761 -0.88089980185 --0.227905660868 -0.880918994546 --0.210646856576 -0.880940720439 --0.193387743085 -0.880951493978 --0.174175813794 -0.898098096251 --0.154957845807 -0.898076340556 --0.137698564678 -0.898057043552 --0.120439950377 -0.898040324449 --0.103181583807 -0.898026198149 --0.0859237648547 -0.898014694452 --0.068666068837 -0.898005709052 --0.0514088002965 -0.897999331355 --0.0341515331529 -0.897995531559 --0.0168945696205 -0.897994279861 -0.00036251707934 -0.897995606065 -0.0176194205414 -0.897999539971 -0.0348765724338 -0.898006111383 -0.0521336663514 -0.898015245795 -0.0693911304697 -0.898026913405 -0.086648657918 -0.898041173816 -0.103906678036 -0.898058012128 -0.121164886281 -0.898077443242 -0.138423711062 -0.898099422455 -0.155682835728 -0.898110300302 -0.174894601107 -0.898098111153 -0.194107994437 -0.898076310754 -0.211367279291 -0.898057028651 -0.228625901043 -0.898040324449 -0.2458842583 -0.898026168346 -0.263142079115 -0.898014649749 -0.280399776995 -0.898005694151 -0.297657035291 -0.897999331355 -0.314914308488 -0.897995501757 -0.332171283662 -0.897994279861 -0.349428370595 -0.897995635867 -0.366685271263 -0.897999569774 -0.383942425251 -0.898006141186 -0.401199527085 -0.898015245795 -0.418456986546 -0.898026913405 -0.435714513064 -0.898041203618 -0.452972531319 -0.89805804193 -0.470230728388 -0.89807741344 -0.487489551306 -0.898099407553 -0.504748694599 -0.898110345006 -0.523960471153 -0.898098155856 -0.543173849583 -0.898076325655 -0.560433119535 -0.898057028651 -0.577691748738 -0.898040324449 -0.594950124621 -0.898026168346 -0.612207934261 -0.898014649749 -0.62946562469 -0.89800567925 -0.646722897887 -0.897999316454 -0.663980171085 -0.897995501757 -0.681237146259 -0.897994250059 -0.698494225741 -0.897995606065 -0.715751111507 -0.897999599576 -0.733008280397 -0.898006141186 -0.750265389681 -0.898015215993 -0.767522841692 -0.898026913405 -0.784780353308 -0.898041173816 -0.802038371563 -0.898058012128 -0.819296568632 -0.89807741344 -0.83655539155 -0.898099392652 -0.853814542294 -0.898110300302 -0.873026311398 -0.898098126054 -0.892239689827 -0.898076325655 -0.90949895978 -0.898057043553 -0.926757588983 -0.898040369153 -0.944015949965 -0.898026198149 -0.961273789406 -0.898014649749 -0.978531479835 -0.898005694151 -0.995788738134 -0.897999331355 -1.01304602623 -0.897995501757 -1.0303029716 -0.897994250059 -1.04756006598 -0.897995606065 -1.06481698155 -0.897999599576 -1.08207413554 -0.898006141186 -1.09933122992 -0.898015215993 -1.11658868194 -0.898026913405 -1.13384622335 -0.898041203618 -1.15110424161 -0.89805804193 -1.16836240888 -0.89807741344 -1.18562123179 -0.898099407553 -1.20288038254 -0.898110315204 -1.22209215164 -0.898098126054 -1.24130555987 -0.898076325655 -1.25856485962 -0.898057028651 -1.27582344412 -0.898040354252 -1.29308179021 -0.898026227951 -1.31033959985 -0.898014679551 -1.32759732008 -0.898005694151 -1.34485462308 -0.897999331355 -1.36211189628 -0.897995501757 -1.37936887145 -0.897994250059 -1.39662593603 -0.897995635867 -1.4138828218 -0.897999599576 -1.43113997579 -0.898006141186 -1.44839707017 -0.898015245795 -1.46565452218 -0.898026913405 -1.48291203379 -0.898041203618 -1.50017008185 -0.89805804193 -1.51742830873 -0.898077473045 -1.53468710184 -0.898099467158 -1.55194622278 -0.898110345006 -1.57115802169 -0.898098126054 -1.59037142992 -0.898076295853 -1.60763067007 -0.898057043553 -1.62488928437 -0.898040339351 -1.64214766026 -0.898026168346 -1.65940546989 -0.898014649749 -1.67666316032 -0.898005694151 -1.69392043352 -0.897999331355 -1.71117770672 -0.897995531559 -1.72843468189 -0.897994279861 -1.74569177627 -0.897995606065 -1.76294866204 -0.897999569774 -1.78020581603 -0.898006141186 -1.79746291041 -0.898015245795 -1.81472039223 -0.898026913405 -1.83197790384 -0.898041173816 -1.8492358923 -0.898058012128 -1.86649414897 -0.89807741344 -1.88375297188 -0.898099392652 -1.90101209282 -0.898110300302 -1.92022386193 -0.898098126054 -1.93943724036 -0.898076325655 -1.95669654012 -0.898057028651 -1.97395518422 -0.898040324449 -1.9912135601 -0.898026198149 -2.00847133994 -0.898014679551 -2.02572900057 -0.89800567925 -2.04298627376 -0.897999316454 -2.06024354696 -0.897995501757 -2.07750052214 -0.897994279861 -2.09475761652 -0.897995635867 -2.11201453209 -0.897999569774 -2.12927168608 -0.898006111383 -2.14652878046 -0.898015215993 -2.16378629208 -0.898026913405 -2.18104380369 -0.898041203618 -2.19830173254 -0.89805804193 -2.21555995941 -0.89807741344 -2.23281884193 -0.898099392652 -2.25007796287 -0.898110300302 -2.26928967237 -0.898098126054 -2.2885030508 -0.898076325655 -2.30576241016 -0.898057028651 -2.32302105427 -0.898040354252 -2.34027934074 -0.898026198149 -2.35753709078 -0.898014649749 -2.37479484081 -0.898005694151 -2.39205217361 -0.897999331355 -2.40930944681 -0.897995501757 -2.42656642199 -0.897994250059 -2.44382345676 -0.897995635867 -2.46108031273 -0.897999629379 -2.47833752632 -0.898006141186 -2.49559462071 -0.898015215993 -2.51285207272 -0.898026913405 -2.53010964394 -0.898041203618 -2.54736769199 -0.89805804193 -2.56462585926 -0.89807741344 -2.58188462257 -0.898099392652 -2.59914380312 -0.898110330105 -2.61835563183 -0.898098155856 -2.63756895065 -0.898076325655 -2.6548281908 -0.898057028651 -2.67208683491 -0.898040354252 -2.68934524059 -0.898026198149 -2.70660305023 -0.898014649749 -2.72386068106 -0.89800567925 -2.74111795425 -0.897999316454 -2.75837522745 -0.897995501757 -2.77563220263 -0.897994250059 -2.79288935661 -0.897995606065 -2.81014627218 -0.897999569774 -2.82740336657 -0.898006141186 -2.84466040135 -0.898015245795 -2.86191785336 -0.898026913405 -2.87917542458 -0.898041173816 -2.89643347264 -0.898058012128 -2.9136916995 -0.89807741344 -2.93095052242 -0.898099392652 -2.94820964336 -0.8981102705 -2.96742141247 -0.898098096251 -2.9866347909 -0.898076340556 -3.00389403105 -0.898057043552 -3.02115267515 -0.898040324449 -3.03841108084 -0.898026198149 -3.05566889048 -0.898014694452 -3.07292658091 -0.898005709052 -3.0901838541 -0.897999331355 -3.1074411273 -0.897995531559 -3.12469804287 -0.897994279861 --3.14123013814 -0.897995606065 --3.12397325039 -0.897999539971 --3.10671615601 -0.898006111383 --3.08945900202 -0.898015245795 --3.07220155001 -0.898026913405 --3.05494403839 -0.898041173816 --3.03768599033 -0.898058012128 --3.02042776346 -0.898077443242 --3.00316894055 -0.898099422455 --2.98590981961 -0.898110300302 --2.9666980505 -0.898098111153 --2.94748467207 -0.898076310754 --2.93022543192 -0.898057028651 --2.91296678782 -0.898040324449 --2.89570838213 -0.898026168346 --2.87845057249 -0.898014649749 --2.86119288206 -0.898005694151 --2.84393566847 -0.897999331355 --2.82667839527 -0.897995501757 --2.8094214201 -0.897994279861 --2.79216432572 -0.897995635867 --2.77490735054 -0.897999569774 --2.75765019655 -0.898006141186 --2.74039310217 -0.898015245795 --2.72313559055 -0.898026913405 --2.70587807894 -0.898041203618 --2.68862015009 -0.89805804193 --2.67136198282 -0.89807741344 --2.6541031003 -0.898099407553 --2.63684391976 -0.898110345006 --2.61763221026 -0.898098155856 --2.59841883183 -0.898076325655 --2.58115947247 -0.898057028651 --2.56390088797 -0.898040324449 --2.54664260149 -0.898026168346 --2.52938479185 -0.898014649749 --2.51212704182 -0.89800567925 --2.49486970902 -0.897999316454 --2.47761243582 -0.897995501757 --2.46035546064 -0.897994250059 --2.44309836626 -0.897995606065 --2.4258415103 -0.897999599576 --2.40858435631 -0.898006141186 --2.39132726192 -0.898015215993 --2.37406980991 -0.898026913405 --2.3568122983 -0.898041173816 --2.33955425024 -0.898058012128 --2.32229602337 -0.89807741344 --2.30503726006 -0.898099392652 --2.28777813912 -0.898110300302 --2.26856631041 -0.898098126054 --2.24935293198 -0.898076325655 --2.23209369183 -0.898057043553 --2.21483504772 -0.898040369153 --2.19757670164 -0.898026198149 --2.1803188324 -0.898014649749 --2.16306114197 -0.898005694151 --2.14580392838 -0.897999331355 --2.12854659558 -0.897995501757 --2.1112896204 -0.897994250059 --2.09403258562 -0.897995606065 --2.07677572966 -0.897999599576 --2.05951857567 -0.898006141186 --2.04226148128 -0.898015215993 --2.02500402927 -0.898026913405 --2.00774645805 -0.898041203618 --1.99048840999 -0.89805804193 --1.97323021292 -0.89807741344 --1.95597139001 -0.898099407553 --1.93871226907 -0.898110315204 --1.91950049997 -0.898098126054 --1.90028709173 -0.898076325655 --1.88302782178 -0.898057028651 --1.86576920748 -0.898040354252 --1.8485108316 -0.898026227951 --1.83125302196 -0.898014679551 --1.81399533153 -0.898005694151 --1.79673805833 -0.897999331355 --1.77948081494 -0.897995501757 --1.76222383976 -0.897994250059 --1.74496674538 -0.897995635867 --1.72770985961 -0.897999599576 --1.71045267582 -0.898006141186 --1.69319558143 -0.898015245795 --1.67593812942 -0.898026913405 --1.65868058801 -0.898041203618 --1.64142259955 -0.89805804193 --1.62416437268 -0.898077473045 --1.60690551996 -0.898099467158 --1.58964639902 -0.898110345006 --1.57043465972 -0.898098126054 --1.55122128129 -0.898076295853 --1.53396198154 -0.898057043553 --1.51670333743 -0.898040339351 --1.49944496155 -0.898026168346 --1.48218715191 -0.898014649749 --1.46492946148 -0.898005694151 --1.44767221808 -0.897999331355 --1.43041494489 -0.897995531559 --1.41315796971 -0.897994279861 --1.39590087533 -0.897995606065 --1.37864395976 -0.897999569774 --1.36138683557 -0.898006141186 --1.34412974119 -0.898015245795 --1.32687228918 -0.898026913405 --1.30961477756 -0.898041173816 --1.29235672951 -0.898058012128 --1.27509853244 -0.89807741344 --1.25783970952 -0.898099392652 --1.24058055878 -0.898110300302 --1.22136878967 -0.898098126054 --1.20215538144 -0.898076325655 --1.18489608169 -0.898057028651 --1.16763749718 -0.898040324449 --1.15037915111 -0.898026198149 --1.13312131166 -0.898014679551 --1.11586362123 -0.89800567925 --1.09860634804 -0.897999316454 --1.08134907484 -0.897995501757 --1.06409209967 -0.897994279861 --1.04683500528 -0.897995635867 --1.02957814932 -0.897999569774 --1.01232102513 -0.898006111383 --0.995063900946 -0.898015215993 --0.977806419134 -0.898026913405 --0.960548892617 -0.898041203618 --0.943290874362 -0.89805804193 --0.926032662392 -0.89807741344 --0.908773839474 -0.898099392652 --0.891514703631 -0.898110300302 --0.872302934527 -0.898098126054 --0.853089556098 -0.898076325655 --0.835830286145 -0.898057028651 --0.818571656942 -0.898040354252 --0.801313281059 -0.898026198149 --0.784055486321 -0.898014649749 --0.76679778099 -0.898005694151 --0.749540492892 -0.897999331355 --0.732283219695 -0.897995501757 --0.715026274323 -0.897994250059 --0.697769194841 -0.897995635867 --0.680512294173 -0.897999629379 --0.663255155087 -0.898006141186 --0.645998030901 -0.898015215993 --0.628740563989 -0.898026913405 --0.611483037472 -0.898041203618 --0.594225019216 -0.89805804193 --0.576966822147 -0.89807741344 --0.559707984328 -0.898099392652 --0.542448848486 -0.898110330105 --0.523237094283 -0.898098155856 --0.504023708403 -0.898076325655 --0.486764408648 -0.898057028651 --0.469505786895 -0.898040354252 --0.452247425914 -0.898026198149 --0.434989608824 -0.898014649749 --0.417731918395 -0.89800567925 --0.400474637747 -0.897999316454 --0.383217372 -0.897995501757 --0.365960434079 -0.897994250059 --0.348703339696 -0.897995606065 --0.331446416676 -0.897999569774 --0.314189262688 -0.898006141186 --0.296932183206 -0.898015245795 --0.279674731195 -0.898026913405 --0.262417197228 -0.898041173816 --0.245159171522 -0.898058012128 --0.227900967002 -0.89807741344 --0.210642140358 -0.898099392652 --0.193383008242 -0.8981102705 --0.174171242863 -0.915236249566 --0.154954019934 -0.915214210748 --0.137694720179 -0.91519472003 --0.120436090976 -0.915177851916 --0.103177711367 -0.915163516998 --0.0859198719263 -0.915151849389 --0.0686621582135 -0.915142804385 --0.0514048757031 -0.915136352181 --0.0341475917958 -0.915132462978 --0.0168906112667 -0.915131226182 -0.00036649219692 -0.915132582188 -0.01762341219 -0.915136560797 -0.0348805799149 -0.915143206716 -0.0521376896649 -0.915152445436 -0.0693951705471 -0.915164262057 -0.0866527166218 -0.915178671479 -0.103910751641 -0.915195688605 -0.121168972924 -0.915215328336 -0.138427812606 -0.915237560868 -0.155686955899 -0.915248587727 -0.174898575991 -0.915236264467 -0.194111820311 -0.915214180946 -0.211371120066 -0.915194675326 -0.228629760444 -0.915177822113 -0.245888143778 -0.915163516998 -0.263145983219 -0.915151849389 -0.280403696001 -0.915142774582 -0.297660969198 -0.915136322379 -0.314918242395 -0.915132462978 -0.332175225019 -0.915131255984 -0.349432341754 -0.915132641792 -0.366689264774 -0.915136620402 -0.383946426213 -0.915143236518 -0.401203542947 -0.915152430535 -0.418461024761 -0.915164247156 -0.435718566179 -0.915178686381 -0.452976599335 -0.915195703507 -0.470234826207 -0.915215328336 -0.487493664026 -0.915237590671 -0.504752799868 -0.91524861753 -0.523964434862 -0.915236279368 -0.543177694082 -0.915214195847 -0.560436978936 -0.915194675326 -0.57769562304 -0.915177822113 -0.594953998923 -0.915163516998 -0.612211823464 -0.915151849389 -0.629469558597 -0.915142759681 -0.646726846695 -0.915136307478 -0.663984134793 -0.915132462978 -0.681241095066 -0.915131226182 -0.698498174548 -0.915132582188 -0.715755090118 -0.9151365906 -0.733012273908 -0.915143236518 -0.750269398094 -0.915152430535 -0.767526865006 -0.915164247156 -0.784784421325 -0.915178686381 -0.802042469383 -0.915195703507 -0.819300681353 -0.915215328336 -0.836559534073 -0.915237575769 -0.853818684817 -0.915248602629 -0.873030290008 -0.915236279368 -0.892243534327 -0.915214195847 -0.909502819181 -0.915194675326 -0.926761433482 -0.915177822113 -0.944019809365 -0.915163516998 -0.961277678609 -0.915151849389 -0.978535398841 -0.915142774582 -0.995792657139 -0.915136322379 -1.01304993034 -0.915132462978 -1.03030693531 -0.915131226182 -1.04756405949 -0.915132582188 -1.06482097506 -0.9151365906 -1.08207812905 -0.915143236518 -1.09933522344 -0.915152430535 -1.11659270525 -0.915164247156 -1.13385027647 -0.915178686381 -1.15110832453 -0.915195733309 -1.16836652159 -0.915215358138 -1.18562534452 -0.915237590671 -1.20288452506 -0.91524861753 -1.22209617495 -0.915236279368 -1.24130940437 -0.915214195847 -1.25856870413 -0.915194675326 -1.27582731843 -0.915177822113 -1.29308566451 -0.915163546801 -1.31034350395 -0.915151879191 -1.32760125399 -0.915142774582 -1.34485855699 -0.915136322379 -1.36211583018 -0.915132462978 -1.37937280536 -0.915131226182 -1.39662989974 -0.91513261199 -1.41388681531 -0.915136620402 -1.4311439991 -0.915143236518 -1.44840112329 -0.915152430535 -1.4656585753 -0.915164247156 -1.48291608691 -0.915178686381 -1.50017413497 -0.915195703507 -1.51743236184 -0.915215358138 -1.53469121456 -0.915237620473 -1.5519503653 -0.91524861753 -1.57116198539 -0.915236279368 -1.59037524462 -0.91521422565 -1.60763451457 -0.915194705129 -1.62489315867 -0.915177822113 -1.64215156436 -0.915163516998 -1.659409374 -0.915151849389 -1.67666709423 -0.915142774582 -1.69392436743 -0.915136322379 -1.71118164062 -0.915132462978 -1.7284386456 -0.915131226182 -1.74569573998 -0.91513261199 -1.76295265555 -0.915136620402 -1.78020980954 -0.915143236518 -1.79746690392 -0.915152430535 -1.81472441554 -0.915164247156 -1.83198195696 -0.915178686381 -1.84923997521 -0.915195703507 -1.86649823189 -0.915215328336 -1.88375708461 -0.915237560868 -1.90101623535 -0.915248587727 -1.92022785544 -0.915236279368 -1.93944108486 -0.915214195847 -1.95670038461 -0.915194675326 -1.97395902872 -0.915177822113 -1.9912174046 -0.915163546801 -2.00847521424 -0.915151879191 -2.02573293448 -0.915142759681 -2.04299020767 -0.915136307478 -2.06024748087 -0.915132462978 -2.07750445604 -0.915131255984 -2.09476155042 -0.915132641792 -2.1120185256 -0.915136620402 -2.12927567959 -0.915143236518 -2.14653277397 -0.915152445436 -2.16379028559 -0.915164262057 -2.18104785681 -0.915178686381 -2.19830584526 -0.915195733309 -2.21556401253 -0.915215358138 -2.23282289505 -0.915237575769 -2.25008207559 -0.915248602629 -2.26929366588 -0.915236279368 -2.2885068655 -0.915214195847 -2.30576622486 -0.915194675326 -2.32302486896 -0.915177822113 -2.34028321504 -0.915163516998 -2.35754108429 -0.915151849389 -2.37479883432 -0.915142774582 -2.39205610752 -0.915136322379 -2.40931338072 -0.915132462978 -2.42657035589 -0.915131226182 -2.44382745028 -0.91513261199 -2.46108436585 -0.915136620402 -2.47834151983 -0.915143221617 -2.49559861422 -0.915152415634 -2.51285612583 -0.915164247156 -2.53011369705 -0.915178686381 -2.54737168551 -0.915195703507 -2.56462991238 -0.915215328336 -2.58188873529 -0.915237575769 -2.59914791584 -0.915248602629 -2.61835956574 -0.915236279368 -2.63757276535 -0.915214195847 -2.6548320651 -0.915194675326 -2.67209070921 -0.915177822113 -2.6893491149 -0.915163516998 -2.70660692454 -0.915151849389 -2.72386461497 -0.915142759681 -2.74112194776 -0.915136307478 -2.75837922096 -0.915132462978 -2.77563619614 -0.915131226182 -2.79289335012 -0.915132582188 -2.81015026569 -0.9151365906 -2.82740741968 -0.915143236518 -2.84466451406 -0.915152445436 -2.86192196607 -0.915164262057 -2.87917947769 -0.915178686381 -2.89643752575 -0.915195733309 -2.91369581223 -0.915215358138 -2.93095469475 -0.915237575769 -2.94821381569 -0.915248572826 -2.96742540598 -0.915236249566 -2.9866386652 -0.915214210748 -3.00389790535 -0.91519472003 -3.02115654945 -0.915177851916 -3.03841495514 -0.915163516998 -3.05567276478 -0.915151849389 -3.07293045521 -0.915142804385 -3.0901877284 -0.915136352181 -3.10744506121 -0.915132462978 -3.12470203638 -0.915131226182 --3.14122614463 -0.915132582188 --3.12396925688 -0.915136560797 --3.10671210289 -0.915143206716 --3.0894548893 -0.915152445436 --3.07219743728 -0.915164262057 --3.05493998527 -0.915178671479 --3.03768193722 -0.915195688605 --3.02042365074 -0.915215328336 --3.00316476822 -0.915237560868 --2.98590564728 -0.915248587727 --2.96669405699 -0.915236264467 --2.94748079777 -0.915214180946 --2.93022155762 -0.915194675326 --2.91296291351 -0.915177822113 --2.89570450783 -0.915163516998 --2.87844669819 -0.915151849389 --2.86118900776 -0.915142774582 --2.84393173456 -0.915136322379 --2.82667440176 -0.915132462978 --2.80941742659 -0.915131255984 --2.7921603322 -0.915132641792 --2.77490335703 -0.915136620402 --2.75764620304 -0.915143236518 --2.74038910866 -0.915152430535 --2.72313159704 -0.915164247156 --2.70587402582 -0.915178686381 --2.68861603737 -0.915195703507 --2.6713578701 -0.915215328336 --2.65409898758 -0.915237590671 --2.63683986664 -0.91524861753 --2.61762827635 -0.915236279368 --2.59841501713 -0.915214195847 --2.58115565777 -0.915194675326 --2.56389701366 -0.915177822113 --2.54663872719 -0.915163516998 --2.52938085794 -0.915151849389 --2.5121230483 -0.915142759681 --2.49486577511 -0.915136307478 --2.47760856152 -0.915132462978 --2.46035158634 -0.915131226182 --2.44309443236 -0.915132582188 --2.42583751679 -0.9151365906 --2.4085803628 -0.915143236518 --2.39132326841 -0.915152430535 --2.3740658164 -0.915164247156 --2.35680824518 -0.915178686381 --2.33955013752 -0.915195703507 --2.32229191065 -0.915215328336 --2.30503314734 -0.915237575769 --2.2877740264 -0.915248602629 --2.2685623765 -0.915236279368 --2.24934911728 -0.915214195847 --2.23208981752 -0.915194675326 --2.21483123302 -0.915177822113 --2.19757282734 -0.915163516998 --2.18031489849 -0.915151849389 --2.16305720806 -0.915142774582 --2.14579993486 -0.915136322379 --2.12854260206 -0.915132462978 --2.11128562689 -0.915131226182 --2.09402859211 -0.915132582188 --2.07677173614 -0.9151365906 --2.05951458216 -0.915143236518 --2.04225748777 -0.915152430535 --2.02499997616 -0.915164247156 --2.00774237513 -0.915178686381 --1.99048432708 -0.915195733309 --1.97322613001 -0.915215358138 --1.95596730709 -0.915237590671 --1.93870815635 -0.91524861753 --1.91949653626 -0.915236279368 --1.90028327704 -0.915214195847 --1.88302397728 -0.915194675326 --1.86576533317 -0.915177822113 --1.84850695729 -0.915163546801 --1.83124914765 -0.915151879191 --1.81399142742 -0.915142774582 --1.79673412442 -0.915136322379 --1.77947685123 -0.915132462978 --1.76221987605 -0.915131226182 --1.74496278167 -0.91513261199 --1.7277058661 -0.915136620402 --1.71044865251 -0.915143236518 --1.69319155812 -0.915152430535 --1.67593410611 -0.915164247156 --1.65867653489 -0.915178686381 --1.64141851663 -0.915195703507 --1.62416028976 -0.915215358138 --1.60690140724 -0.915237620473 --1.5896422565 -0.91524861753 --1.57043066621 -0.915236279368 --1.55121743679 -0.91521422565 --1.53395813704 -0.915194705129 --1.51669949293 -0.915177822113 --1.49944108725 -0.915163516998 --1.48218324781 -0.915151849389 --1.46492555737 -0.915142774582 --1.44766828418 -0.915136322379 --1.43041098118 -0.915132462978 --1.413154006 -0.915131226182 --1.39589691162 -0.91513261199 --1.37863996625 -0.915136620402 --1.36138281226 -0.915143236518 --1.34412571788 -0.915152430535 --1.32686823607 -0.915164247156 --1.30961069465 -0.915178686381 --1.29235264658 -0.915195703507 --1.27509441972 -0.915215328336 --1.2578355968 -0.915237560868 --1.24057644606 -0.915248587727 --1.22136482596 -0.915236279368 --1.20215156675 -0.915214195847 --1.18489223719 -0.915194675326 --1.16763362288 -0.915177822113 --1.1503752768 -0.915163546801 --1.13311743736 -0.915151879191 --1.11585971713 -0.915142759681 --1.09860241413 -0.915136307478 --1.08134511113 -0.915132462978 --1.06408813596 -0.915131255984 --1.04683104157 -0.915132641792 --1.02957415581 -0.915136620402 --1.01231700182 -0.915143236518 --0.995059862732 -0.915152445436 --0.977802366018 -0.915164262057 --0.9605448246 -0.915178686381 --0.943286791444 -0.915195733309 --0.926028564573 -0.915215358138 --0.908769741655 -0.915237575769 --0.891510590911 -0.915248602629 --0.872298955918 -0.915236279368 --0.853085711598 -0.915214195847 --0.835826426744 -0.915194675326 --0.818567812442 -0.915177822113 --0.801309421658 -0.915163516998 --0.784051582217 -0.915151849389 --0.766793861985 -0.915142774582 --0.749536573887 -0.915136322379 --0.732279270888 -0.915132462978 --0.715022295713 -0.915131226182 --0.69776520133 -0.91513261199 --0.680508285761 -0.915136620402 --0.663251131773 -0.915143221617 --0.645994007588 -0.915152415634 --0.628736525774 -0.915164247156 --0.611478984356 -0.915178686381 --0.594220966101 -0.915195703507 --0.576962739229 -0.915215328336 --0.559703871608 -0.915237575769 --0.542444720864 -0.915248602629 --0.523233115673 -0.915236279368 --0.504019871354 -0.915214195847 --0.486760564148 -0.915194675326 --0.469501927495 -0.915177822113 --0.452243551612 -0.915163516998 --0.434985719621 -0.915151849389 --0.417727999389 -0.915142759681 --0.400470711291 -0.915136307478 --0.383213430643 -0.915132462978 --0.36595647037 -0.915131226182 --0.348699361086 -0.915132582188 --0.331442423165 -0.9151365906 --0.314185254276 -0.915143236518 --0.296928152442 -0.915152445436 --0.27967068553 -0.915164262057 --0.262413144111 -0.915178686381 --0.24515510723 -0.915195733309 --0.227896887809 -0.915215358138 --0.210638042539 -0.915237575769 --0.19337888807 -0.915248572826 --0.174167267978 -0.932352662087 --0.154950238764 -0.932330340147 --0.137690920383 -0.932310625911 --0.120432272553 -0.932293593884 --0.103173878044 -0.932279124856 --0.0859160218387 -0.932267323136 --0.0686582913622 -0.932258144021 --0.0514009930193 -0.93225158751 --0.0341436923481 -0.932247698307 --0.0168866966851 -0.932246491313 -0.000370422378182 -0.932247847319 -0.0176273584366 -0.932251870632 -0.0348845431581 -0.932258576155 -0.0521416701376 -0.932267889381 -0.0693991649896 -0.932279840112 -0.0866567250341 -0.932294428348 -0.10391477868 -0.93231163919 -0.121173013002 -0.932331487537 -0.138431869447 -0.93235398829 -0.155691038817 -0.932365134358 -0.174902513623 -0.932352662087 -0.194115608931 -0.932330340147 -0.211374923587 -0.93231061101 -0.228633578867 -0.932293564081 -0.245891973377 -0.932279109955 -0.263149827719 -0.932267323136 -0.280407562852 -0.932258144021 -0.297664865851 -0.932251617312 -0.31492215395 -0.932247728109 -0.332179144025 -0.932246491313 -0.34943626821 -0.932247877121 -0.36669319868 -0.932251900435 -0.383950382471 -0.932258576155 -0.401207521558 -0.932267904282 -0.418465010822 -0.932279855013 -0.435722567141 -0.93229444325 -0.4529806301 -0.932311654091 -0.470238864422 -0.932331517339 -0.487497709692 -0.932354003191 -0.504756860435 -0.932365119457 -0.523968353868 -0.932352662087 -0.543181464076 -0.932330340147 -0.560440763831 -0.93231061101 -0.577699422836 -0.932293578982 -0.594957828522 -0.932279124856 -0.612215667963 -0.932267323136 -0.629473403096 -0.932258144021 -0.646730720997 -0.932251617312 -0.663988023996 -0.932247698307 -0.68124499917 -0.932246461511 -0.698502123356 -0.932247847319 -0.715759068727 -0.932251900435 -0.733016237617 -0.932258605957 -0.750273376703 -0.932267904282 -0.767530873418 -0.932279855013 -0.784788444638 -0.93229444325 -0.802046507597 -0.932311654091 -0.819304734469 -0.932331487537 -0.836563587189 -0.932353973389 -0.853822737933 -0.932365119457 -0.873034209013 -0.932352662087 -0.892247334123 -0.932330340147 -0.909506648779 -0.93231061101 -0.926765263081 -0.932293578982 -0.944023638964 -0.932279124856 -0.961281508207 -0.932267293334 -0.978539273143 -0.932258114218 -0.995796561243 -0.932251617312 -1.01305383444 -0.932247728109 -1.03031086922 -0.932246491313 -1.0475679934 -0.932247847319 -1.06482490897 -0.932251870632 -1.08208209276 -0.932258576155 -1.09933921695 -0.932267904282 -1.11659672857 -0.932279855013 -1.13385429979 -0.93229444325 -1.15111234784 -0.932311698794 -1.16837057471 -0.93233153224 -1.18562942743 -0.932354003191 -1.20288860798 -0.932365149259 -1.22210007906 -0.932352662087 -1.24131315947 -0.932330340147 -1.25857248903 -0.93231061101 -1.27583116293 -0.932293578982 -1.29308953881 -0.932279124856 -1.31034737825 -0.932267323136 -1.32760512829 -0.932258144021 -1.34486243129 -0.932251617312 -1.36211970449 -0.932247698307 -1.37937667966 -0.932246461511 -1.39663380384 -0.932247877121 -1.41389074921 -0.932251930237 -1.43114796281 -0.932258605957 -1.448405087 -0.932267904282 -1.46566253901 -0.932279855013 -1.48292008043 -0.93229444325 -1.50017815828 -0.932311668992 -1.51743641495 -0.932331502438 -1.53469526768 -0.932353973389 -1.55195444822 -0.932365119457 -1.5711659193 -0.932352662087 -1.59037902951 -0.932330369949 -1.60763835907 -0.932310640812 -1.62489700317 -0.932293578982 -1.64215540886 -0.932279139757 -1.6594132483 -0.932267338037 -1.67667096853 -0.932258144021 -1.69392824173 -0.932251617312 -1.71118554473 -0.932247728109 -1.72844257951 -0.932246491313 -1.74569970369 -0.932247877121 -1.76295661926 -0.932251900435 -1.78021377325 -0.932258576155 -1.79747089744 -0.932267904282 -1.81472840905 -0.932279855013 -1.83198598027 -0.93229444325 -1.84924402833 -0.932311668992 -1.8665022552 -0.932331502438 -1.88376113773 -0.93235398829 -1.90102031827 -0.932365134358 -1.92023178935 -0.932352662087 -1.93944486976 -0.932330340147 -1.95670416951 -0.93231061101 -1.97396284342 -0.932293564081 -1.9912212193 -0.932279109955 -2.00847905874 -0.932267293334 -2.02573680878 -0.932258114218 -2.04299408197 -0.932251617312 -2.06025135517 -0.932247698307 -2.07750838995 -0.932246461511 -2.09476554394 -0.932247906923 -2.11202245951 -0.932251930237 -2.1292796135 -0.932258576155 -2.14653676749 -0.932267919183 -2.1637942791 -0.932279869914 -2.18105185032 -0.93229444325 -2.19830989838 -0.932311683893 -2.21556806564 -0.932331517339 -2.23282694817 -0.932353973389 -2.25008618832 -0.932365119457 -2.2692976594 -0.932352662087 -2.2885106802 -0.932330340147 -2.30576997995 -0.93231061101 -2.32302862406 -0.932293578982 -2.34028702974 -0.932279124856 -2.35754495859 -0.932267323136 -2.37480270863 -0.932258144021 -2.39205998182 -0.932251617312 -2.40931731462 -0.932247698307 -2.4265742898 -0.932246461511 -2.44383138418 -0.932247847319 -2.46108835936 -0.932251870632 -2.47834551334 -0.932258561254 -2.49560260773 -0.932267889381 -2.51286011934 -0.932279855013 -2.53011769057 -0.93229444325 -2.54737567902 -0.932311668992 -2.56463396549 -0.932331502438 -2.58189284802 -0.932354003191 -2.59915196896 -0.932365149259 -2.61836344004 -0.932352662087 -2.63757658005 -0.932330340147 -2.65483593941 -0.93231061101 -2.67209458351 -0.932293578982 -2.6893529892 -0.932279124856 -2.70661079884 -0.932267323136 -2.72386848927 -0.932258144021 -2.74112582207 -0.932251617312 -2.75838315487 -0.932247698307 -2.77564013004 -0.932246461511 -2.79289722443 -0.932247877121 -2.81015414 -0.932251900435 -2.82741135359 -0.932258576155 -2.84466850757 -0.932267919183 -2.86192595959 -0.932279869914 -2.8791834712 -0.93229444325 -2.89644157887 -0.932311698794 -2.91369986534 -0.93233153224 -2.93095868826 -0.932353973389 -2.9482178092 -0.932365119457 -2.96742928028 -0.932352662087 -2.98664242029 -0.932330340147 -3.00390172004 -0.932310625911 -3.02116036415 -0.932293593884 -3.03841876984 -0.932279124856 -3.05567663908 -0.932267323136 -3.07293432951 -0.932258144021 -3.09019160271 -0.93225158751 -3.10744893551 -0.932247698307 -3.12470597029 -0.932246491313 --3.14122221072 -0.932247847319 --3.12396532297 -0.932251870632 --3.10670810938 -0.932258576155 --3.08945095539 -0.932267889381 --3.07219350338 -0.932279840112 --3.05493599176 -0.932294428348 --3.0376778841 -0.93231163919 --3.02041959763 -0.932331487537 --3.00316077471 -0.93235398829 --2.98590159416 -0.932365134358 --2.96669012308 -0.932352662087 --2.94747704267 -0.932330340147 --2.93021774292 -0.93231061101 --2.91295909882 -0.932293564081 --2.89570069313 -0.932279109955 --2.87844282389 -0.932267323136 --2.86118513346 -0.932258144021 --2.84392786026 -0.932251617312 --2.82667052746 -0.932247728109 --2.80941349268 -0.932246491313 --2.7921563983 -0.932247877121 --2.77489948273 -0.932251900435 --2.75764226914 -0.932258576155 --2.74038511515 -0.932267904282 --2.72312760353 -0.932279855013 --2.70587003231 -0.93229444325 --2.68861198425 -0.932311654091 --2.67135381699 -0.932331517339 --2.65409493446 -0.932354003191 --2.63683575392 -0.932365119457 --2.61762428284 -0.932352662087 --2.59841120243 -0.932330340147 --2.58115190267 -0.93231061101 --2.56389325857 -0.932293578982 --2.54663491249 -0.932279124856 --2.52937698364 -0.932267323136 --2.512119174 -0.932258144021 --2.49486190081 -0.932251617312 --2.47760468722 -0.932247698307 --2.46034771204 -0.932246461511 --2.44309049845 -0.932247847319 --2.42583352327 -0.932251900435 --2.40857636929 -0.932258605957 --2.3913192749 -0.932267904282 --2.37406182289 -0.932279855013 --2.35680425167 -0.93229444325 --2.33954614401 -0.932311654091 --2.32228785753 -0.932331487537 --2.30502903461 -0.932353973389 --2.28776991367 -0.932365119457 --2.26855844259 -0.932352662087 --2.24934530258 -0.932330340147 --2.23208594322 -0.93231061101 --2.21482735872 -0.932293578982 --2.19756901264 -0.932279124856 --2.1803111434 -0.932267293334 --2.16305339336 -0.932258114218 --2.14579606056 -0.932251617312 --2.12853872776 -0.932247728109 --2.11128175259 -0.932246491313 --2.0940246582 -0.932247847319 --2.07676774263 -0.932251870632 --2.05951058865 -0.932258576155 --2.04225349426 -0.932267904282 --2.02499598265 -0.932279855013 --2.00773835182 -0.93229444325 --1.99048027396 -0.932311698794 --1.97322207689 -0.93233153224 --1.95596325397 -0.932354003191 --1.93870410323 -0.932365149259 --1.91949263215 -0.932352662087 --1.90027949214 -0.932330340147 --1.88302016258 -0.93231061101 --1.86576151848 -0.932293578982 --1.84850311279 -0.932279124856 --1.83124527335 -0.932267323136 --1.81398755312 -0.932258144021 --1.79673022032 -0.932251617312 --1.77947291732 -0.932247698307 --1.76221594215 -0.932246461511 --1.74495881796 -0.932247877121 --1.72770190239 -0.932251930237 --1.7104447186 -0.932258605957 --1.69318759441 -0.932267904282 --1.6759301126 -0.932279855013 --1.65867254138 -0.93229444325 --1.64141449332 -0.932311668992 --1.62415626645 -0.932331502438 --1.60689738393 -0.932353973389 --1.58963820338 -0.932365119457 --1.5704267323 -0.932352662087 --1.5512136519 -0.932330369949 --1.53395435214 -0.932310640812 --1.51669567823 -0.932293578982 --1.49943727255 -0.932279139757 --1.48217943311 -0.932267338037 --1.46492171287 -0.932258144021 --1.44766440988 -0.932251617312 --1.43040707707 -0.932247728109 --1.4131500721 -0.932246491313 --1.39589297771 -0.932247877121 --1.37863603234 -0.932251900435 --1.36137884855 -0.932258576155 --1.34412172437 -0.932267904282 --1.32686421275 -0.932279855013 --1.30960664153 -0.93229444325 --1.29234859347 -0.932311668992 --1.2750903666 -0.932331502438 --1.25783151388 -0.93235398829 --1.24057236314 -0.932365134358 --1.22136092186 -0.932352662087 --1.20214781165 -0.932330340147 --1.18488845229 -0.93231061101 --1.16762980819 -0.932293564081 --1.15037143231 -0.932279109955 --1.13311359286 -0.932267293334 --1.11585584283 -0.932258114218 --1.09859851003 -0.932251617312 --1.08134123683 -0.932247698307 --1.06408426166 -0.932246461511 --1.04682713747 -0.932247906923 --1.0295701921 -0.932251930237 --1.01231300831 -0.932258576155 --0.995055899024 -0.932267919183 --0.977798402309 -0.932279869914 --0.960540831089 -0.93229444325 --0.943282768131 -0.932311683893 --0.926024526358 -0.932331517339 --0.908765688539 -0.932353973389 --0.891506522894 -0.932365119457 --0.872295036912 -0.932352662087 --0.853081941605 -0.932330340147 --0.835822626948 -0.93231061101 --0.818563997745 -0.932293578982 --0.80130559206 -0.932279124856 --0.784047722817 -0.932267323136 --0.766790002585 -0.932258144021 --0.749532684684 -0.932251617312 --0.732275366784 -0.932247698307 --0.715018376708 -0.932246461511 --0.697761267423 -0.932247847319 --0.680504336953 -0.932251870632 --0.663247153163 -0.932258561254 --0.645990028978 -0.932267889381 --0.628732532263 -0.932279855013 --0.611474975943 -0.93229444325 --0.594216927886 -0.932311668992 --0.576958686113 -0.932331502438 --0.559699818492 -0.932354003191 --0.542440652847 -0.932365149259 --0.523229181767 -0.932352662087 --0.504016079008 -0.932330340147 --0.486756764352 -0.93231061101 --0.469498105347 -0.932293578982 --0.452239729464 -0.932279124856 --0.434981882572 -0.932267323136 --0.417724139988 -0.932258144021 --0.400466836989 -0.932251617312 --0.383209533989 -0.932247698307 --0.365952551365 -0.932246461511 --0.34869543463 -0.932247877121 --0.331438489258 -0.932251900435 --0.314181298017 -0.932258576155 --0.296924181282 -0.932267919183 --0.279666692018 -0.932279869914 --0.262409120798 -0.93229444325 --0.245151069015 -0.932311698794 --0.227892838419 -0.93233153224 --0.210633981973 -0.932353973389 --0.193374812603 -0.932365119457 --0.174163337797 -0.949449941516 --0.154946494848 -0.94942741096 --0.13768716529 -0.949407458305 --0.12042850256 -0.949390217662 --0.103170087561 -0.949375614524 --0.0859122183174 -0.949363708496 --0.0686544729396 -0.949354410171 --0.051397155039 -0.949347764253 --0.0341398380697 -0.94934386015 --0.0168828270398 -0.949342638254 -0.000374307390303 -0.949344009161 -0.0176312597468 -0.949348092079 -0.0348884612322 -0.949354842305 -0.0521456031128 -0.949364244938 -0.069403112866 -0.94937634468 -0.086660688743 -0.949391126633 -0.103918761015 -0.949408531189 -0.121177015826 -0.949428573251 -0.138435889035 -0.949451312423 -0.155695073307 -0.949462547898 -0.174906402826 -0.949449926615 -0.194119356573 -0.949427396059 -0.211378682405 -0.949407473206 -0.228637348861 -0.949390217662 -0.245895761997 -0.949375599623 -0.263153634966 -0.949363678694 -0.280411385 -0.949354410171 -0.2976687029 -0.949347823858 -0.31492601335 -0.949343889952 -0.332183025777 -0.949342638254 -0.349440157413 -0.949344009161 -0.366697095334 -0.949348092079 -0.383954301477 -0.949354842305 -0.401211455464 -0.94936427474 -0.41846896708 -0.949376374483 -0.435726538301 -0.949391126633 -0.45298460871 -0.949408531189 -0.470242850482 -0.949428573251 -0.487501718104 -0.949451282621 -0.5047609061 -0.949462518096 -0.523972243071 -0.949449926615 -0.543185189366 -0.949427396059 -0.560444518924 -0.949407473206 -0.577703207731 -0.949390232563 -0.594961628318 -0.949375614524 -0.612219467759 -0.949363678694 -0.629477202892 -0.94935439527 -0.646734550595 -0.949347808957 -0.663991868496 -0.94934386015 -0.681248873472 -0.949342608452 -0.69850602746 -0.949344009161 -0.715762972832 -0.949348121882 -0.733020171523 -0.949354872108 -0.750277325511 -0.94936427474 -0.767534837127 -0.949376374483 -0.784792408347 -0.949391126633 -0.802050471306 -0.949408531189 -0.81930872798 -0.949428573251 -0.836567595601 -0.949451282621 -0.853826761246 -0.949462518096 -0.873038083315 -0.949449926615 -0.892251074314 -0.949427396059 -0.909510418773 -0.949407473206 -0.926769062877 -0.949390232563 -0.944027453661 -0.949375614524 -0.961285322905 -0.949363648892 -0.97854308784 -0.949354380369 -0.995800405742 -0.949347838759 -1.01305770874 -0.949343904853 -1.03031471372 -0.949342638254 -1.0475718677 -0.949344009161 -1.06482881307 -0.949348092079 -1.08208599687 -0.949354872108 -1.09934315085 -0.949364304543 -1.11660066247 -0.949376374483 -1.13385823369 -0.949391126633 -1.15111631155 -0.94940854609 -1.16837456822 -0.94942855835 -1.18563345075 -0.949451282621 -1.20289263129 -0.949462547898 -1.22210392356 -0.949449926615 -1.24131688476 -0.949427396059 -1.25857624412 -0.949407473206 -1.27583491802 -0.949390247464 -1.29309332371 -0.949375629425 -1.31035116315 -0.949363678694 -1.32760891318 -0.949354410171 -1.34486624599 -0.949347838759 -1.36212354899 -0.949343875051 -1.37938055396 -0.949342608452 -1.39663770795 -0.949344038963 -1.41389468312 -0.949348151684 -1.43115189671 -0.949354872108 -1.4484090209 -0.94936427474 -1.46566650271 -0.949376374483 -1.48292407394 -0.949391126633 -1.50018215179 -0.94940854609 -1.51744043827 -0.94942855835 -1.53469929099 -0.949451252818 -1.55195847153 -0.949462518096 -1.5711698234 -0.949449926615 -1.5903827548 -0.949427396059 -1.60764208436 -0.949407473206 -1.62490075827 -0.949390247464 -1.64215919375 -0.949375629425 -1.659417063 -0.949363678694 -1.67667478323 -0.949354410171 -1.69393208623 -0.949347823858 -1.71118941903 -0.949343889952 -1.72844645381 -0.949342638254 -1.74570357799 -0.949344009161 -1.76296049356 -0.949348092079 -1.78021767736 -0.949354842305 -1.79747483134 -0.94936427474 -1.81473234296 -0.949376374483 -1.83198991418 -0.949391126633 -1.84924799204 -0.94940854609 -1.86650624871 -0.949428588152 -1.88376513124 -0.949451312423 -1.90102431178 -0.949462547898 -1.92023563385 -0.949449926615 -1.93944859505 -0.949427396059 -1.9567079246 -0.949407473206 -1.97396659851 -0.949390217662 -1.991225034 -0.949375599623 -2.00848293304 -0.949363648892 -2.02574062347 -0.949354365468 -2.04299789667 -0.949347823858 -2.06025522948 -0.949343875051 -2.07751226425 -0.949342608452 -2.09476941824 -0.949344038963 -2.11202633381 -0.949348121882 -2.1292835474 -0.949354842305 -2.14654070139 -0.94936427474 -2.16379821301 -0.949376374483 -2.18105584383 -0.949391126633 -2.19831389189 -0.949408531189 -2.21557205915 -0.949428543449 -2.23283094168 -0.949451252818 -2.25009018183 -0.949462518096 -2.2693015337 -0.949449926615 -2.28851443529 -0.949427396059 -2.30577373505 -0.949407473206 -2.32303243875 -0.949390232563 -2.34029084444 -0.949375614524 -2.35754871368 -0.949363708496 -2.37480652332 -0.949354439974 -2.39206385612 -0.949347823858 -2.40932112932 -0.94934386015 -2.42657810449 -0.949342608452 -2.44383525848 -0.949344009161 -2.46109223366 -0.949348092079 -2.47834944725 -0.949354872108 -2.49560660124 -0.949364304543 -2.51286405325 -0.949376374483 -2.53012162447 -0.949391126633 -2.54737973213 -0.949408531189 -2.56463801861 -0.949428543449 -2.58189690113 -0.949451282621 -2.59915602207 -0.949462547898 -2.61836731434 -0.949449926615 -2.63758033514 -0.949427396059 -2.6548396945 -0.949407473206 -2.6720983386 -0.949390232563 -2.68935674429 -0.949375614524 -2.70661455393 -0.949363678694 -2.72387230396 -0.949354410171 -2.74112963676 -0.949347838759 -2.75838696957 -0.949343875051 -2.77564400434 -0.949342608452 -2.79290109873 -0.949344038963 -2.8101580739 -0.949348121882 -2.8274152875 -0.949354842305 -2.84467238188 -0.94936427474 -2.8619298935 -0.949376374483 -2.87918746472 -0.949391126633 -2.89644557238 -0.94940854609 -2.91370385885 -0.94942855835 -2.93096268177 -0.949451252818 -2.94822186232 -0.949462518096 -2.96743321419 -0.949449941516 -2.98664617539 -0.94942741096 -3.00390547514 -0.949407458305 -3.02116411924 -0.949390217662 -3.03842258453 -0.949375614524 -3.05568051338 -0.949363708496 -3.07293820381 -0.949354410171 -3.09019547701 -0.949347764253 -3.10745280981 -0.94934386015 -3.12470984459 -0.949342638254 --3.14121833642 -0.949344009161 --3.12396138907 -0.949348092079 --3.10670417547 -0.949354842305 --3.08944708109 -0.949364244938 --3.07218956947 -0.94937634468 --3.05493199825 -0.949391126633 --3.03767389059 -0.949408531189 --3.02041560412 -0.949428573251 --3.0031567812 -0.949451312423 --2.98589754105 -0.949462547898 --2.96668618918 -0.949449926615 --2.94747328758 -0.949427396059 --2.93021398782 -0.949407473206 --2.91295534372 -0.949390217662 --2.89569687844 -0.949375599623 --2.87843894959 -0.949363678694 --2.86118125916 -0.949354410171 --2.84392398596 -0.949347823858 --2.82666665316 -0.949343889952 --2.80940961838 -0.949342638254 --2.792152524 -0.949344009161 --2.77489560843 -0.949348092079 --2.75763839483 -0.949354842305 --2.74038124084 -0.94936427474 --2.72312366962 -0.949376374483 --2.7058660388 -0.949391126633 --2.68860799074 -0.949408531189 --2.67134982348 -0.949428573251 --2.65409094095 -0.949451282621 --2.6368317008 -0.949462518096 --2.61762034893 -0.949449926615 --2.59840744734 -0.949427396059 --2.58114814758 -0.949407473206 --2.56388944388 -0.949390232563 --2.54663103819 -0.949375614524 --2.52937316895 -0.949363678694 --2.51211541891 -0.94935439527 --2.49485808611 -0.949347808957 --2.47760081291 -0.94934386015 --2.46034383774 -0.949342608452 --2.44308662415 -0.949344009161 --2.42582964897 -0.949348121882 --2.40857243538 -0.949354872108 --2.39131528139 -0.94936427474 --2.37405782938 -0.949376374483 --2.35680025816 -0.949391126633 --2.3395421505 -0.949408531189 --2.32228386402 -0.949428573251 --2.3050249815 -0.949451282621 --2.28776586056 -0.949462518096 --2.26855456829 -0.949449926615 --2.24934154749 -0.949427396059 --2.23208218813 -0.949407473206 --2.21482354403 -0.949390232563 --2.19756519795 -0.949375614524 --2.18030738831 -0.949363648892 --2.16304957867 -0.949354380369 --2.14579224587 -0.949347838759 --2.12853491306 -0.949343904853 --2.11127787829 -0.949342638254 --2.0940207839 -0.949344009161 --2.07676386833 -0.949348092079 --2.05950665474 -0.949354872108 --2.04224950075 -0.949364304543 --2.02499204874 -0.949376374483 --2.00773444772 -0.949391126633 --1.99047631025 -0.94940854609 --1.97321805358 -0.94942855835 --1.95595920086 -0.949451282621 --1.93870005012 -0.949462547898 --1.91948872805 -0.949449926615 --1.90027573705 -0.949427396059 --1.88301637769 -0.949407473206 --1.86575773358 -0.949390247464 --1.8484993279 -0.949375629425 --1.83124145866 -0.949363678694 --1.81398373842 -0.949354410171 --1.79672640562 -0.949347838759 --1.77946907282 -0.949343875051 --1.76221206784 -0.949342608452 --1.74495491386 -0.949344038963 --1.72769796848 -0.949348151684 --1.7104408145 -0.949354872108 --1.6931836605 -0.94936427474 --1.67592611909 -0.949376374483 --1.65866854787 -0.949391126633 --1.64141049981 -0.94940854609 --1.62415227294 -0.94942855835 --1.60689339041 -0.949451252818 --1.58963420987 -0.949462518096 --1.570422858 -0.949449926615 --1.5512098968 -0.949427396059 --1.53395059705 -0.949407473206 --1.51669189334 -0.949390247464 --1.49943345785 -0.949375629425 --1.48217561841 -0.949363678694 --1.46491786837 -0.949354410171 --1.44766053557 -0.949347823858 --1.43040323258 -0.949343889952 --1.4131462276 -0.949342638254 --1.39588910341 -0.949344009161 --1.37863215804 -0.949348092079 --1.36137494445 -0.949354842305 --1.34411779046 -0.94936427474 --1.32686027884 -0.949376374483 --1.30960270762 -0.949391126633 --1.29234462976 -0.94940854609 --1.27508637309 -0.949428588152 --1.25782749057 -0.949451312423 --1.24056831002 -0.949462547898 --1.22135701775 -0.949449926615 --1.20214405656 -0.949427396059 --1.1848846972 -0.949407473206 --1.1676260531 -0.949390217662 --1.15036764741 -0.949375599623 --1.13310977817 -0.949363648892 --1.11585202813 -0.949354365468 --1.09859469533 -0.949347823858 --1.08133739233 -0.949343875051 --1.06408038735 -0.949342608452 --1.04682323337 -0.949344038963 --1.02956625819 -0.949348121882 --1.0123090744 -0.949354842305 --0.995051965119 -0.94936427474 --0.977794468403 -0.949376374483 --0.960536882281 -0.949391126633 --0.94327878952 -0.949408531189 --0.926020532846 -0.949428543449 --0.908761680126 -0.949451252818 --0.891502499581 -0.949462518096 --0.872291147709 -0.949449926615 --0.853078201413 -0.949427396059 --0.835818886757 -0.949407473206 --0.818560212851 -0.949390232563 --0.801301777363 -0.949375614524 --0.784043908119 -0.949363708496 --0.766786172986 -0.949354439974 --0.749528855085 -0.949347823858 --0.732271537185 -0.94934386015 --0.715014517307 -0.949342608452 --0.69775737822 -0.949344009161 --0.680500432849 -0.949348092079 --0.663243249059 -0.949354872108 --0.645986109972 -0.949364304543 --0.628728583455 -0.949376374483 --0.611470997333 -0.949391126633 --0.594212919474 -0.949408531189 --0.576954677701 -0.949428543449 --0.559695810079 -0.949451282621 --0.542436614633 -0.949462547898 --0.523225277663 -0.949449926615 --0.504012331367 -0.949427396059 --0.486753009259 -0.949407473206 --0.469494335353 -0.949390232563 --0.452235937118 -0.949375614524 --0.434978075326 -0.949363678694 --0.417720325291 -0.949354410171 --0.40046299994 -0.949347838759 --0.383205682039 -0.949343875051 --0.365948684513 -0.949342608452 --0.348691545427 -0.949344038963 --0.331434585154 -0.949348121882 --0.314177379012 -0.949354842305 --0.296920239925 -0.94936427474 --0.27966273576 -0.949376374483 --0.262405149639 -0.949391126633 --0.24514707923 -0.94940854609 --0.227888833732 -0.94942855835 --0.210629962385 -0.949451252818 --0.193370781839 -0.949462518096 --0.174159452319 -0.966559931636 --0.154941800982 -0.966537177563 --0.137682452798 -0.966517060995 --0.120423771441 -0.966499641538 --0.103165334091 -0.966484859586 --0.0859074462205 -0.96647284925 --0.0686496831476 -0.966463491321 --0.0513923438266 -0.966456800699 --0.0341350068338 -0.966452807188 --0.0168779760133 -0.966451525688 -0.00037917890586 -0.9664529562 -0.0176361519843 -0.966457098722 -0.0348933725618 -0.966463893652 -0.0521505335346 -0.966473415494 -0.0694080665707 -0.966485664248 -0.0866656657308 -0.966500550508 -0.103923751041 -0.966518133879 -0.121182024479 -0.966538399458 -0.138440921903 -0.966561317444 -0.1557001248 -0.966572657227 -0.174911275506 -0.966559916735 -0.194124050439 -0.966537162662 -0.211383394897 -0.966517046094 -0.228642076254 -0.966499626637 -0.245900522917 -0.966484859586 -0.263158418238 -0.966472804547 -0.280416175723 -0.966463446617 -0.297673508525 -0.966456785798 -0.314930841327 -0.966452792287 -0.332187876105 -0.966451525688 -0.349445030093 -0.9664529562 -0.366701997816 -0.966457098722 -0.38395922631 -0.966463893652 -0.401216387749 -0.966473415494 -0.418473921716 -0.966485649347 -0.435731522739 -0.966500550509 -0.452989600599 -0.966518118977 -0.470247864723 -0.966538369656 -0.487506762147 -0.966561347246 -0.504765972495 -0.96657268703 -0.52397711575 -0.966559916735 -0.543189883232 -0.966537162662 -0.560449257493 -0.966517046094 -0.577707961202 -0.966499626637 -0.594966381788 -0.966484859586 -0.612224251032 -0.966472804547 -0.629482015967 -0.966463431716 -0.64673936367 -0.966456770897 -0.663996696472 -0.966452792287 -0.681253731251 -0.966451525688 -0.69851090014 -0.966452926397 -0.715767860412 -0.96645706892 -0.733025074005 -0.966463893652 -0.750282242894 -0.966473415494 -0.767539769411 -0.966485649347 -0.784797355533 -0.966500550509 -0.802055463195 -0.966518118977 -0.819313749671 -0.966538399458 -0.836572632193 -0.966561377048 -0.853831842542 -0.96657268703 -0.873042985797 -0.966559916735 -0.89225576818 -0.966537162662 -0.909515112639 -0.966517046094 -0.926773786545 -0.966499626637 -0.944032222033 -0.966484859586 -0.961290106177 -0.966472804547 -0.978547871113 -0.966463446617 -0.995805218815 -0.966456800699 -1.01306253672 -0.966452807188 -1.03031954169 -0.966451525688 -1.04757675528 -0.966452926397 -1.06483373046 -0.96645706892 -1.08209091425 -0.966463923454 -1.09934809804 -0.966473445296 -1.11660560965 -0.966485649347 -1.13386318088 -0.966500550509 -1.15112128854 -0.966518118977 -1.16837957501 -0.966538339854 -1.18563848734 -0.966561287641 -1.20289769768 -0.966572657227 -1.22210881114 -0.966559946537 -1.24132159352 -0.966537192464 -1.25858098269 -0.966517060995 -1.27583962679 -0.966499656439 -1.29309803248 -0.966484874487 -1.31035593152 -0.966472804547 -1.32761371136 -0.966463446617 -1.34487104416 -0.966456800699 -1.36212837696 -0.966452807188 -1.37938544154 -0.966451525688 -1.39664259553 -0.9664529562 -1.4138995707 -0.966457128525 -1.4311567843 -0.966463923454 -1.44841393828 -0.966473415494 -1.4656714797 -0.966485649347 -1.48292908072 -0.966500550509 -1.50018715858 -0.966518118977 -1.51744544506 -0.966538339854 -1.53470432758 -0.966561287641 -1.55196350813 -0.966572657227 -1.57117468119 -0.966559946537 -1.59038743377 -0.966537207365 -1.60764676333 -0.966517075897 -1.62490546703 -0.966499656439 -1.64216393232 -0.966484859586 -1.65942183137 -0.966472789646 -1.6766795814 -0.966463416815 -1.69393691421 -0.966456755996 -1.71119424701 -0.966452792287 -1.72845128178 -0.966451525688 -1.74570843577 -0.966452926397 -1.76296538114 -0.96645706892 -1.78022259474 -0.966463893652 -1.79747977853 -0.966473415494 -1.81473731994 -0.966485649347 -1.83199489116 -0.966500550509 -1.84925296902 -0.96651814878 -1.8665112555 -0.966538399458 -1.88377013803 -0.966561347246 -1.90102934837 -0.96657268703 -1.92024049163 -0.966559946537 -1.93945327401 -0.966537192464 -1.95671263337 -0.966517060995 -1.97397130728 -0.966499641538 -1.99122977257 -0.966484859586 -2.00848770141 -0.966472804547 -2.02574545145 -0.966463431716 -2.04300278425 -0.966456785798 -2.06026011705 -0.966452807188 -2.07751709223 -0.966451525688 -2.09477424622 -0.9664529562 -2.112031281 -0.966457098722 -2.12928855419 -0.966463893652 -2.14654564858 -0.966473415494 -2.16380316019 -0.966485649347 -2.18106079102 -0.966500550509 -2.19831883907 -0.96651814878 -2.21557706594 -0.966538369656 -2.23283594847 -0.966561287641 -2.25009518862 -0.966572657227 -2.26930636167 -0.966559916735 -2.28851914406 -0.966537162662 -2.30577850342 -0.966517046094 -2.32303720713 -0.966499626637 -2.34029567241 -0.966484859586 -2.35755354166 -0.966472834349 -2.37481129169 -0.96646347642 -2.3920686245 -0.966456785798 -2.4093258977 -0.966452792287 -2.42658293247 -0.966451525688 -2.44384014606 -0.966452926397 -2.46109712124 -0.96645706892 -2.47835433483 -0.966463923454 -2.49561148882 -0.966473445296 -2.51286900043 -0.966485649347 -2.53012663126 -0.966500550509 -2.54738473892 -0.966518104076 -2.5646430254 -0.966538354755 -2.58190190792 -0.966561347246 -2.59916102886 -0.96657268703 -2.61837214232 -0.966559946537 -2.6375849843 -0.966537192464 -2.65484434366 -0.966517046094 -2.67210304737 -0.966499626637 -2.68936151266 -0.966484859586 -2.7066193223 -0.966472804547 -2.72387707234 -0.966463446617 -2.74113440514 -0.966456800699 -2.75839179754 -0.966452807188 -2.77564889192 -0.966451525688 -2.79290598631 -0.966452926397 -2.81016296149 -0.96645706892 -2.82742017508 -0.966463893652 -2.84467732907 -0.966473415494 -2.86193490029 -0.966485649347 -2.8791924715 -0.966500550509 -2.89645057917 -0.966518118977 -2.91370886564 -0.966538339854 -2.93096774817 -0.966561287641 -2.94822698832 -0.966572657227 -2.96743816137 -0.966559931636 -2.98665088415 -0.966537177563 -3.00391018391 -0.966517060995 -3.02116888761 -0.966499641538 -3.0384273529 -0.966484859586 -3.05568528176 -0.96647284925 -3.07294303179 -0.966463491321 -3.09020036459 -0.966456800699 -3.10745769739 -0.966452807188 -3.12471467257 -0.966451525688 --3.14121350844 -0.9664529562 --3.12395650148 -0.966457098722 --3.10669928789 -0.966463893652 --3.0894421339 -0.966473415494 --3.07218456268 -0.966485664248 --3.05492699146 -0.966500550508 --3.0376688838 -0.966518133879 --3.02041059732 -0.966538399458 --3.0031517148 -0.966561317444 --2.98589247465 -0.966572657227 --2.96668130159 -0.966559916735 --2.94746857882 -0.966537162662 --2.93020927906 -0.966517046094 --2.91295057535 -0.966499626637 --2.89569211006 -0.966484859586 --2.87843418121 -0.966472804547 --2.86117643118 -0.966463446617 --2.84391909838 -0.966456785798 --2.82666176557 -0.966452792287 --2.8094047904 -0.966451525688 --2.79214769602 -0.9664529562 --2.77489072085 -0.966457098722 --2.75763344765 -0.966463893652 --2.74037629366 -0.966473415494 --2.72311878205 -0.966485649347 --2.70586115122 -0.966500550509 --2.68860304356 -0.966518118977 --2.67134481669 -0.966538369656 --2.65408593416 -0.966561347246 --2.63682669401 -0.96657268703 --2.61761552095 -0.966559916735 --2.59840273857 -0.966537162662 --2.58114337921 -0.966517046094 --2.56388467551 -0.966499626637 --2.54662626982 -0.966484859586 --2.52936840057 -0.966472804547 --2.51211065054 -0.966463431716 --2.49485331774 -0.966456770897 --2.47759598494 -0.966452792287 --2.46033895016 -0.966451525688 --2.44308173656 -0.966452926397 --2.42582476139 -0.96645706892 --2.4085675478 -0.966463893652 --2.39131039381 -0.966473415494 --2.37405288219 -0.966485649347 --2.35679531097 -0.966500550509 --2.33953720331 -0.966518118977 --2.32227885723 -0.966538399458 --2.30501997471 -0.966561377048 --2.28776079416 -0.96657268703 --2.26854968071 -0.966559916735 --2.24933689833 -0.966537162662 --2.23207753897 -0.966517046094 --2.21481889487 -0.966499626637 --2.19756042958 -0.966484859586 --2.18030256033 -0.966472804547 --2.1630448103 -0.966463446617 --2.14578747749 -0.966456800699 --2.12853014469 -0.966452807188 --2.11127305031 -0.966451525688 --2.09401589632 -0.966452926397 --2.07675898075 -0.96645706892 --2.05950176716 -0.966463923454 --2.04224455356 -0.966473445296 --2.02498704195 -0.966485649347 --2.00772947073 -0.966500550509 --1.99047133326 -0.966518118977 --1.97321304679 -0.966538339854 --1.95595416427 -0.966561287641 --1.93869495392 -0.966572657227 --1.91948381066 -0.966559946537 --1.90027102828 -0.966537192464 --1.88301166892 -0.966517060995 --1.86575302482 -0.966499656439 --1.84849458933 -0.966484874487 --1.83123669028 -0.966472804547 --1.81397894025 -0.966463446617 --1.79672160745 -0.966456800699 --1.77946427465 -0.966452807188 --1.76220723987 -0.966451525688 --1.74495005607 -0.9664529562 --1.7276930809 -0.966457128525 --1.71043589711 -0.966463923454 --1.69317871332 -0.966473415494 --1.6759211421 -0.966485649347 --1.65866357088 -0.966500550509 --1.64140552282 -0.966518118977 --1.62414726615 -0.966538339854 --1.60688835383 -0.966561287641 --1.58962914348 -0.966572657227 --1.57041797042 -0.966559946537 --1.55120518803 -0.966537207365 --1.53394585848 -0.966517075897 --1.51668715477 -0.966499656439 --1.49942871928 -0.966484859586 --1.48217085004 -0.966472789646 --1.4649130702 -0.966463416815 --1.4476557076 -0.966456755996 --1.4303984046 -0.966452792287 --1.41314139962 -0.966451525688 --1.39588424564 -0.966452926397 --1.37862727046 -0.96645706892 --1.36137002706 -0.966463893652 --1.34411287307 -0.966473415494 --1.32685536146 -0.966485649347 --1.30959776044 -0.966500550509 --1.29233965277 -0.96651814878 --1.2750813663 -0.966538399458 --1.25782248378 -0.966561347246 --1.24056327343 -0.96657268703 --1.22135213017 -0.966559946537 --1.20213934779 -0.966537192464 --1.18487998843 -0.966517060995 --1.16762131453 -0.966499641538 --1.15036287904 -0.966484859586 --1.13310500979 -0.966472804547 --1.11584725976 -0.966463431716 --1.09858992696 -0.966456785798 --1.08133256435 -0.966452807188 --1.06407549977 -0.966451525688 --1.04681834578 -0.9664529562 --1.02956137061 -0.966457098722 --1.01230415702 -0.966463893652 --0.995047003032 -0.966473415494 --0.977789476514 -0.966485649347 --0.960531890392 -0.966500550509 --0.94327378273 -0.96651814878 --0.926015511155 -0.966538369656 --0.908756643534 -0.966561287641 --0.891497448087 -0.966572657227 --0.872286275029 -0.966559916735 --0.853073492646 -0.966537162662 --0.835814163089 -0.966517046094 --0.818555474281 -0.966499626637 --0.801297008992 -0.966484859586 --0.784039139748 -0.966472834349 --0.766781389713 -0.96646347642 --0.74952404201 -0.966456785798 --0.732266709209 -0.966452792287 --0.715009659529 -0.966451525688 --0.697752505541 -0.966452926397 --0.680495545268 -0.96645706892 --0.663238331675 -0.966463923454 --0.645981177687 -0.966473445296 --0.628723651171 -0.966485649347 --0.611466035247 -0.966500550509 --0.594207942486 -0.966518104076 --0.576949685812 -0.966538354755 --0.559690788388 -0.966561347246 --0.54243157804 -0.96657268703 --0.523220419884 -0.966559946537 --0.504007644951 -0.966537192464 --0.486748307943 -0.966517046094 --0.469489619136 -0.966499626637 --0.452231176197 -0.966484859586 --0.434973299503 -0.966472804547 --0.417715542019 -0.966463446617 --0.400458194315 -0.966456800699 --0.383200854063 -0.966452807188 --0.365943834185 -0.966451525688 --0.348686680198 -0.966452926397 --0.331429690123 -0.96645706892 --0.314172461629 -0.966463893652 --0.296915307641 -0.966473415494 --0.279657788575 -0.966485649347 --0.262400187552 -0.966500550509 --0.245142091066 -0.966518118977 --0.227883823216 -0.966538339854 --0.210624933243 -0.966561287641 --0.193365730345 -0.966572657227 --0.174154579639 -0.983703359962 --0.154937248677 -0.983680382371 --0.137677885592 -0.983660057187 --0.120419183746 -0.983642473817 --0.103160725906 -0.983627557755 --0.08590281941 -0.983615398407 --0.0686450377107 -0.983605965972 --0.0513876834884 -0.983599245548 --0.0341303283349 -0.983595207334 --0.0168732772581 -0.983593896031 -0.00038389698602 -0.983595356345 -0.0176408898551 -0.983599543571 -0.0348981297575 -0.983606427908 -0.0521553112194 -0.983616054058 -0.0694128638133 -0.98362839222 -0.0866704788059 -0.98364341259 -0.103928584606 -0.983661174774 -0.12118687667 -0.983681634069 -0.138445787132 -0.983704790473 -0.155705012381 -0.983716249466 -0.174915995449 -0.983703374863 -0.194128599018 -0.983680397272 -0.211387969553 -0.983660072088 -0.228646665811 -0.983642488718 -0.245905127376 -0.983627572656 -0.263163037598 -0.983615413308 -0.280420809985 -0.983605965972 -0.297678165138 -0.983599230647 -0.314935520291 -0.983595192433 -0.332192569971 -0.983593910933 -0.349449746311 -0.983595371246 -0.366706736386 -0.98359952867 -0.383963979781 -0.983606413007 -0.401221163571 -0.983616054058 -0.41847871244 -0.983628377319 -0.435736328363 -0.98364341259 -0.452994436025 -0.983661159873 -0.470252737403 -0.983681634068 -0.487511649728 -0.983704835177 -0.504770867526 -0.983716264367 -0.523981839418 -0.983703359962 -0.543194442988 -0.983680382371 -0.56045383215 -0.983660072088 -0.577712535858 -0.983642488718 -0.594970971346 -0.983627572656 -0.612228885293 -0.983615413308 -0.629486680031 -0.983605951071 -0.646744027734 -0.983599200845 -0.664001375437 -0.983595177531 -0.681258425117 -0.983593910933 -0.698515608907 -0.983595341444 -0.715772598982 -0.983599513769 -0.733029827475 -0.983606427908 -0.750287011266 -0.983616054058 -0.767544567585 -0.983628377319 -0.784802183509 -0.983643382788 -0.802060306072 -0.983661130071 -0.81931860745 -0.983681634068 -0.836577504873 -0.983704835177 -0.853836730123 -0.983716264367 -0.873047709465 -0.983703359962 -0.892260298133 -0.983680382371 -0.909519657493 -0.983660072088 -0.926778361201 -0.983642488718 -0.94403681159 -0.983627572656 -0.961294725538 -0.983615398407 -0.978552505374 -0.983605951071 -0.995809853077 -0.983599230647 -1.01306721568 -0.983595192433 -1.03032428026 -0.983593896031 -1.04758146405 -0.983595326543 -1.06483843922 -0.983599498868 -1.08209568262 -0.983606413007 -1.09935289621 -0.983616054058 -1.11661043763 -0.983628377319 -1.13386800885 -0.98364341259 -1.15112611651 -0.983661159873 -1.16838443279 -0.983681604266 -1.18564337492 -0.983704775572 -1.20290261507 -0.983716234565 -1.22211354971 -0.983703389764 -1.24132615328 -0.983680412173 -1.25858554244 -0.98366008699 -1.27584421635 -0.98364250362 -1.29310265183 -0.983627572656 -1.31036055088 -0.983615398407 -1.32761836052 -0.983605951071 -1.34487572312 -0.983599230647 -1.36213305593 -0.983595192433 -1.37939012051 -0.983593910933 -1.3966473043 -0.983595371246 -1.41390430927 -0.983599573374 -1.43116152287 -0.98360645771 -1.44841867685 -0.983616054058 -1.46567624807 -0.983628377319 -1.4829338789 -0.983643382788 -1.50019198656 -0.983661130071 -1.51745027304 -0.983681574464 -1.53470918536 -0.98370474577 -1.55196839571 -0.983716234565 -1.57117938995 -0.983703404665 -1.59039199352 -0.983680441976 -1.60765135289 -0.983660101891 -1.62491005659 -0.98364250362 -1.64216852188 -0.983627572656 -1.65942645073 -0.983615413308 -1.67668423057 -0.983605921268 -1.69394156337 -0.983599171042 -1.71119889617 -0.983595207334 -1.72845596075 -0.983593925834 -1.74571317434 -0.983595326543 -1.76297014952 -0.983599513769 -1.78022736311 -0.983606398106 -1.7974845767 -0.983616024256 -1.81474214792 -0.983628377319 -1.83199974894 -0.98364341259 -1.8492578268 -0.983661189675 -1.86651611328 -0.983681634069 -1.88377502561 -0.983704805375 -1.90103426576 -0.983716264367 -1.9202452302 -0.983703389764 -1.93945780396 -0.983680412173 -1.95671716333 -0.98366008699 -1.97397589683 -0.98364250362 -1.99123439192 -0.983627572656 -2.00849232077 -0.983615413308 -2.02575010061 -0.983605965972 -2.04300743341 -0.983599230647 -2.06026476621 -0.983595192433 -2.077521801 -0.983593910933 -2.09477901459 -0.983595371246 -2.11203604937 -0.98359952867 -2.12929326296 -0.983606383205 -2.14655041694 -0.983616024256 -2.16380798816 -0.983628377319 -2.18106555939 -0.98364341259 -2.19832366705 -0.983661189675 -2.21558195353 -0.983681634069 -2.23284083605 -0.983704775572 -2.2501000762 -0.983716234565 -2.26931107044 -0.983703359962 -2.28852373361 -0.983680382371 -2.30578309298 -0.983660072088 -2.32304173708 -0.983642488718 -2.34030026197 -0.983627572656 -2.35755819082 -0.983615398407 -2.37481588125 -0.983605951071 -2.39207321405 -0.983599215746 -2.40933060646 -0.983595177531 -2.42658770085 -0.983593910933 -2.44384485483 -0.983595341444 -2.46110183001 -0.983599498868 -2.47835910321 -0.983606383205 -2.49561625719 -0.983616024256 -2.51287382841 -0.983628377319 -2.53013145924 -0.98364341259 -2.54738950729 -0.983661159873 -2.56464779377 -0.983681634068 -2.58190667629 -0.983704850078 -2.59916591645 -0.983716279268 -2.61837691069 -0.983703389764 -2.63758951426 -0.983680397272 -2.65484887362 -0.983660057187 -2.67210757732 -0.983642488718 -2.68936610222 -0.983627572656 -2.70662397146 -0.983615413308 -2.7238817215 -0.983605951071 -2.7411391139 -0.983599215746 -2.75839650631 -0.983595192433 -2.77565354109 -0.983593910933 -2.79291069508 -0.983595341444 -2.81016767025 -0.983599498868 -2.82742488385 -0.983606413007 -2.84468209744 -0.983616054058 -2.86193966865 -0.983628377319 -2.87919729948 -0.98364341259 -2.89645540714 -0.983661159873 -2.91371369362 -0.983681604266 -2.93097263574 -0.983704775572 -2.94823187589 -0.983716234565 -2.96744287014 -0.983703359962 -2.98665541411 -0.983680382371 -3.00391477347 -0.983660057187 -3.02117353678 -0.983642473817 -3.03843194246 -0.983627557755 -3.05568987131 -0.983615398407 -3.07294768095 -0.983605965972 -3.09020501375 -0.983599245548 -3.10746234655 -0.983595207334 -3.12471938133 -0.983593896031 --3.14120874007 -0.983595356345 --3.12395173311 -0.983599543571 --3.10669451952 -0.983606427908 --3.08943736553 -0.983616054058 --3.07217979431 -0.98362839222 --3.05492216349 -0.98364341259 --3.03766405583 -0.983661174774 --3.02040576935 -0.983681634069 --3.00314682722 -0.983704790473 --2.98588758707 -0.983716249466 --2.96667659283 -0.983703374863 --2.94746404886 -0.983680397272 --2.9302046895 -0.983660072088 --2.91294592619 -0.983642488718 --2.8956875205 -0.983627572656 --2.87842959166 -0.983615413308 --2.86117178202 -0.983605965972 --2.84391444922 -0.983599230647 --2.82665711641 -0.983595192433 --2.80940008164 -0.983593910933 --2.79214292765 -0.983595371246 --2.77488595247 -0.98359952867 --2.75762867928 -0.983606413007 --2.74037146569 -0.983616054058 --2.72311395407 -0.983628377319 --2.70585638285 -0.98364341259 --2.68859821558 -0.983661159873 --2.6713399291 -0.983681634068 --2.65408104658 -0.983704835177 --2.63682180643 -0.983716264367 --2.61761081219 -0.983703359962 --2.59839814901 -0.983680382371 --2.58113878966 -0.983660072088 --2.56388014555 -0.983642488718 --2.54662173986 -0.983627572656 --2.52936381102 -0.983615413308 --2.51210600138 -0.983605951071 --2.49484866857 -0.983599200845 --2.47759133577 -0.983595177531 --2.46033424139 -0.983593910933 --2.4430770278 -0.983595341444 --2.42582005262 -0.983599513769 --2.40856277942 -0.983606427908 --2.39130562544 -0.983616054058 --2.37404805422 -0.983628377319 --2.356790483 -0.983643382788 --2.33953243494 -0.983661130071 --2.32227402926 -0.983681634068 --2.30501514673 -0.983704835177 --2.28775596619 -0.983716264367 --2.26854497194 -0.983703359962 --2.24933236837 -0.983680382371 --2.23207300902 -0.983660072088 --2.21481436491 -0.983642488718 --2.19755584002 -0.983627572656 --2.18029791117 -0.983615398407 --2.16304022074 -0.983605951071 --2.14578288794 -0.983599230647 --2.12852549553 -0.983595192433 --2.11126840114 -0.983593896031 --2.09401118755 -0.983595326543 --2.07675415277 -0.983599498868 --2.05949693918 -0.983606413007 --2.0422397852 -0.983616054058 --2.02498221398 -0.983628377319 --2.00772461295 -0.98364341259 --1.99046650529 -0.983661159873 --1.97320821881 -0.983681604266 --1.95594933629 -0.983704775572 --1.93869009614 -0.983716234565 --1.91947910189 -0.983703389764 --1.90026649833 -0.983680412173 --1.88300713897 -0.98366008699 --1.86574846506 -0.98364250362 --1.84848999977 -0.983627572656 --1.83123207092 -0.983615398407 --1.81397429109 -0.983605951071 --1.79671692848 -0.983599230647 --1.77945959568 -0.983595192433 --1.7622025609 -0.983593910933 --1.74494534731 -0.983595371246 --1.72768837213 -0.983599573374 --1.71043115854 -0.98360645771 --1.69317394495 -0.983616054058 --1.67591637373 -0.983628377319 --1.65865877271 -0.983643382788 --1.64140069485 -0.983661130071 --1.62414240837 -0.983681574464 --1.60688346625 -0.98370474577 --1.58962422609 -0.983716234565 --1.57041326165 -0.983703404665 --1.55120065808 -0.983680441976 --1.53394126892 -0.983660101891 --1.51668256521 -0.98364250362 --1.49942412972 -0.983627572656 --1.48216623068 -0.983615413308 --1.46490845084 -0.983605921268 --1.44765108824 -0.983599171042 --1.43039372564 -0.983595207334 --1.41313666105 -0.983593925834 --1.39587950706 -0.983595326543 --1.37862253189 -0.983599513769 --1.3613652587 -0.983606398106 --1.34410807491 -0.983616024256 --1.32685053349 -0.983628377319 --1.30959293246 -0.98364341259 --1.2923348248 -0.983661189675 --1.27507650852 -0.983681634069 --1.257817626 -0.983704805375 --1.24055841565 -0.983716264367 --1.22134742141 -0.983703389764 --1.20213481784 -0.983680412173 --1.18487545848 -0.98366008699 --1.16761675477 -0.98364250362 --1.15035828948 -0.983627572656 --1.13310039043 -0.983615413308 --1.1158426106 -0.983605965972 --1.098585248 -0.983599230647 --1.08132785559 -0.983595192433 --1.064070791 -0.983593910933 --1.04681363702 -0.983595371246 --1.02955663204 -0.98359952867 --1.01229941845 -0.983606383205 --0.99504223466 -0.983616024256 --0.977784648538 -0.983628377319 --0.960527062416 -0.98364341259 --0.943268954754 -0.983661189675 --0.926010653377 -0.983681634069 --0.908751755953 -0.983704775572 --0.891492545605 -0.983716234565 --0.872281566262 -0.983703359962 --0.853068947792 -0.983680382371 --0.835809573531 -0.983660072088 --0.818550869823 -0.983642488718 --0.801292404533 -0.983627572656 --0.784034535289 -0.983615398407 --0.766776770354 -0.983605951071 --0.749519392848 -0.983599215746 --0.732262030244 -0.983595177531 --0.715004950762 -0.983593910933 --0.697747796774 -0.983595341444 --0.680490806699 -0.983599498868 --0.663233548403 -0.983606383205 --0.645976379513 -0.983616024256 --0.628718838095 -0.983628377319 --0.611461222172 -0.98364341259 --0.59420311451 -0.983661159873 --0.576944842934 -0.983681634068 --0.55968593061 -0.983704850078 --0.542426690459 -0.983716279268 --0.523215711117 -0.983703389764 --0.504003114999 -0.983680397272 --0.486743748188 -0.983660057187 --0.469485037029 -0.983642488718 --0.452226571739 -0.983627572656 --0.434968672693 -0.983615413308 --0.417710900307 -0.983605951071 --0.400453530252 -0.983599215746 --0.383196167647 -0.983595192433 --0.365939132869 -0.983593910933 --0.34868196398 -0.983595341444 --0.331424959004 -0.983599498868 --0.314167708159 -0.983606413007 --0.296910531819 -0.983616054058 --0.279652997851 -0.983628377319 --0.262395381927 -0.98364341259 --0.245137266815 -0.983661159873 --0.227878972888 -0.983681604266 --0.210620060563 -0.983704775572 --0.193360835314 -0.983716234565 --0.174149852246 -1.00084649026 --0.154933843762 -1.00082330406 --0.137674465775 -1.00080272555 --0.120415745303 -1.00078497827 --0.103157274425 -1.0007699579 --0.0858993586153 -1.00075766444 --0.0686415629461 -1.0007481277 --0.0513841928914 -1.00074133277 --0.034126822371 -1.00073727965 --0.0168697559275 -1.00073596835 -0.000387432286515 -1.00073741376 -0.0176444391254 -1.00074164569 -0.0349016934634 -1.00074860454 -0.0521588893607 -1.00075832009 -0.0694164549932 -1.00077076256 -0.0866740830243 -1.00078594685 -0.103932205588 -1.00080387294 -0.121190516278 -1.00082452595 -0.138449441642 -1.00084795058 -0.155708678067 -1.00085949898 -0.174919530749 -1.00084647536 -0.194132007658 -1.00082328915 -0.21139138937 -1.00080278516 -0.228650104254 -1.00078503788 -0.24590858072 -1.0007699728 -0.263166494667 -1.00075766444 -0.280424281955 -1.0007481128 -0.29768165201 -1.00074133277 -0.314939029515 -1.00073724985 -0.332196101546 -1.00073598325 -0.349453285336 -1.00073745847 -0.366710282862 -1.00074166059 -0.383967533708 -1.00074861944 -0.40122473985 -1.0007583499 -0.41848230362 -1.00077079236 -0.435739934444 -1.00078594685 -0.452998064458 -1.00080387294 -0.470256373286 -1.00082452595 -0.487515293062 -1.00084793567 -0.504774525762 -1.00085948407 -0.523985370994 -1.00084646046 -0.543197855353 -1.00082327425 -0.560457259417 -1.00080278516 -0.577715963125 -1.00078503788 -0.594974413514 -1.0007699728 -0.612232342362 -1.00075766444 -0.629490152001 -1.0007480979 -0.646747529507 -1.00074130297 -0.664004892111 -1.00073723495 -0.681261926889 -1.00073598325 -0.69851911068 -1.00073745847 -0.715776145458 -1.0007416755 -0.733033403754 -1.00074863434 -0.750290587545 -1.00075832009 -0.767548173666 -1.00077076256 -0.784805804491 -1.00078591704 -0.802063912153 -1.00080384314 -0.819322228432 -1.00082452595 -0.836581140757 -1.00084793567 -0.853840366006 -1.00085948407 -0.873051226139 -1.00084649026 -0.892263695597 -1.00082330406 -0.909523069858 -1.00080275536 -0.92678180337 -1.00078500807 -0.944040268659 -1.0007699728 -0.961298197508 -1.00075764954 -0.978555992246 -1.0007480979 -0.995813354851 -1.00074133277 -1.01307076216 -1.00073727965 -1.03032782674 -1.00073599815 -1.04758498072 -1.00073744357 -1.0648419857 -1.00074166059 -1.0820992589 -1.00074861944 -1.09935647249 -1.00075832009 -1.11661404371 -1.00077076256 -1.13387164474 -1.00078594685 -1.1511297524 -1.00080387294 -1.16838806868 -1.00082452595 -1.1856470108 -1.00084793567 -1.20290625095 -1.00085948407 -1.22211706638 -1.00084649026 -1.24132955074 -1.00082330406 -1.25858893991 -1.00080278516 -1.27584764361 -1.00078503788 -1.2931061089 -1.0007699728 -1.31036400795 -1.00075764954 -1.32762181759 -1.0007480979 -1.34487921 -1.00074136257 -1.3621365726 -1.00073730946 -1.37939363718 -1.00073601306 -1.39665085077 -1.00073745847 -1.41390785575 -1.0007416755 -1.43116506934 -1.00074866414 -1.44842225313 -1.0007583797 -1.46567982435 -1.00077079236 -1.48293745518 -1.00078591704 -1.50019559264 -1.00080384314 -1.51745390892 -1.00082449615 -1.53471285105 -1.00084790587 -1.5519720912 -1.00085948407 -1.57118293643 -1.00084647536 -1.59039542079 -1.00082328915 -1.60765480995 -1.00080278516 -1.62491351366 -1.00078503788 -1.64217197895 -1.0007699728 -1.6594299078 -1.00075766444 -1.67668771744 -1.0007480979 -1.69394508004 -1.00074133277 -1.71120241285 -1.00073732436 -1.72845947742 -1.00073602796 -1.74571669102 -1.00073744357 -1.76297369599 -1.0007416755 -1.78023093939 -1.00074860454 -1.79748815298 -1.00075829029 -1.8147457242 -1.00077076256 -1.83200335503 -1.00078594685 -1.84926146269 -1.00080387294 -1.86651974917 -1.00082452595 -1.88377869129 -1.00084793567 -1.90103796125 -1.00085948407 -1.92024880648 -1.00084646046 -1.93946123123 -1.00082327425 -1.95672059059 -1.00080278516 -1.9739793539 -1.00078503788 -1.991237849 -1.0007699728 -2.00849577784 -1.00075766444 -2.02575355768 -1.0007481128 -2.04301089048 -1.00074136257 -2.06026828289 -1.00073730946 -2.07752537727 -1.00073601306 -2.09478253126 -1.00073745847 -2.11203950643 -1.00074166059 -2.12929677963 -1.00074858964 -2.14655399322 -1.00075829029 -2.16381156445 -1.00077076256 -2.18106919527 -1.00078597665 -2.19832736254 -1.00080390275 -2.21558564901 -1.00082452595 -2.23284453154 -1.00084793567 -2.25010377169 -1.00085948407 -2.26931464672 -1.00084646046 -2.28852713108 -1.00082327425 -2.30578649044 -1.00080278516 -2.32304519415 -1.00078503788 -2.34030365944 -1.0007699728 -2.35756158828 -1.00075764954 -2.37481933832 -1.0007480979 -2.39207667112 -1.00074131787 -2.40933412313 -1.00073726475 -2.42659121752 -1.00073601306 -2.44384837151 -1.00073745847 -2.46110540629 -1.00074166059 -2.47836267948 -1.00074858964 -2.49561983347 -1.00075829029 -2.51287740469 -1.00077076256 -2.53013503551 -1.00078594685 -2.54739314318 -1.00080387294 -2.56465142966 -1.00082452595 -2.58191031218 -1.00084795058 -2.59916961193 -1.00085949898 -2.61838048697 -1.00084646046 -2.63759297133 -1.00082325935 -2.65485233069 -1.00080277026 -2.67211097479 -1.00078503788 -2.68936949968 -1.0007699728 -2.70662742853 -1.00075766444 -2.72388523817 -1.0007480979 -2.74114269018 -1.00074131787 -2.75840002298 -1.00073724985 -2.77565705776 -1.00073598325 -2.79291427135 -1.00073745847 -2.81017124653 -1.00074166059 -2.82742846012 -1.00074861944 -2.84468567371 -1.00075832009 -2.86194324493 -1.00077076256 -2.87920087576 -1.00078594685 -2.89645898342 -1.00080387294 -2.91371732951 -1.00082452595 -2.93097627163 -1.00084793567 -2.94823551178 -1.00085948407 -2.96744638682 -1.00084649026 -2.98665881157 -1.00082330406 -3.00391817093 -1.00080272555 -3.02117693424 -1.00078497827 -3.03843539953 -1.0007699579 -3.05569332838 -1.00075766444 -3.07295113802 -1.0007481277 -3.09020847082 -1.00074133277 -3.10746580362 -1.00073727965 -3.12472289801 -1.00073596835 --3.14120516379 -1.00073741376 --3.12394815684 -1.00074164569 --3.10669094324 -1.00074860454 --3.08943378925 -1.00075832009 --3.07217621803 -1.00077076256 --3.05491858721 -1.00078594685 --3.03766047954 -1.00080387294 --3.02040213346 -1.00082452595 --3.00314319134 -1.00084795058 --2.98588395119 -1.00085949898 --2.96667307615 -1.00084647536 --2.9474606514 -1.00082328915 --2.93020129204 -1.00080278516 --2.91294252872 -1.00078503788 --2.89568406343 -1.0007699728 --2.87842613459 -1.00075766444 --2.86116832495 -1.0007481128 --2.84391099215 -1.00074133277 --2.82665365934 -1.00073724985 --2.80939656496 -1.00073598325 --2.79213935137 -1.00073745847 --2.77488237619 -1.00074166059 --2.757625103 -1.00074861944 --2.7403678894 -1.0007583499 --2.72311031818 -1.00077079236 --2.70585268736 -1.00078594685 --2.6885945797 -1.00080387294 --2.67133629322 -1.00082452595 --2.65407735109 -1.00084793567 --2.63681811094 -1.00085948407 --2.61760729551 -1.00084646046 --2.59839481115 -1.00082327425 --2.58113539219 -1.00080278516 --2.56387668848 -1.00078503788 --2.54661828279 -1.0007699728 --2.52936035395 -1.00075766444 --2.51210254431 -1.0007480979 --2.4948452115 -1.00074130297 --2.4775878191 -1.00073723495 --2.46033072472 -1.00073598325 --2.44307357073 -1.00073745847 --2.42581653595 -1.0007416755 --2.40855920315 -1.00074863434 --2.39130204916 -1.00075832009 --2.37404447794 -1.00077076256 --2.35678684711 -1.00078591704 --2.33952873945 -1.00080384314 --2.32227039337 -1.00082452595 --2.30501151085 -1.00084793567 --2.2877523303 -1.00085948407 --2.26854145527 -1.00084649026 --2.2493289113 -1.00082330406 --2.23206955195 -1.00080275536 --2.21481090784 -1.00078500807 --2.19755238295 -1.0007699728 --2.1802944541 -1.00075764954 --2.16303670407 -1.0007480979 --2.14577931166 -1.00074133277 --2.12852191925 -1.00073727965 --2.11126488447 -1.00073599815 --2.09400767088 -1.00073744357 --2.07675057649 -1.00074166059 --2.0594933629 -1.00074861944 --2.04223620891 -1.00075832009 --2.0249786377 -1.00077076256 --2.00772103667 -1.00078594685 --1.99046289921 -1.00080387294 --1.97320458293 -1.00082452595 --1.9559456706 -1.00084793567 --1.93868643045 -1.00085948407 --1.91947558522 -1.00084649026 --1.90026310086 -1.00082330406 --1.8830037117 -1.00080278516 --1.86574500799 -1.00078503788 --1.8484865427 -1.0007699728 --1.83122861386 -1.00075764954 --1.81397080422 -1.0007480979 --1.79671341181 -1.00074136257 --1.7794560492 -1.00073730946 --1.76219901443 -1.00073601306 --1.74494183064 -1.00073745847 --1.72768482566 -1.0007416755 --1.71042758226 -1.00074866414 --1.69317036867 -1.0007583797 --1.67591279745 -1.00077079236 --1.65865516663 -1.00078591704 --1.64139705896 -1.00080384314 --1.62413877249 -1.00082449615 --1.60687983036 -1.00084790587 --1.58962056041 -1.00085948407 --1.57040971517 -1.00084647536 --1.55119726062 -1.00082328915 --1.53393787146 -1.00080278516 --1.51667913794 -1.00078503788 --1.49942067265 -1.0007699728 --1.48216274381 -1.00075766444 --1.46490496397 -1.0007480979 --1.44764763117 -1.00074133277 --1.43039023876 -1.00073732436 --1.41313314438 -1.00073602796 --1.39587596059 -1.00073744357 --1.37861895561 -1.0007416755 --1.36136168242 -1.00074860454 --1.34410449863 -1.00075829029 --1.3268469274 -1.00077076256 --1.30958932638 -1.00078594685 --1.29233121872 -1.00080387294 --1.27507287264 -1.00082452595 --1.25781396032 -1.00084793567 --1.24055474997 -1.00085948407 --1.22134390473 -1.00084646046 --1.20213142037 -1.00082327425 --1.18487203121 -1.00080278516 --1.1676133275 -1.00078503788 --1.15035486221 -1.0007699728 --1.13309693337 -1.00075766444 --1.11583912373 -1.0007481128 --1.09858173132 -1.00074136257 --1.08132433892 -1.00073730946 --1.06406727433 -1.00073601306 --1.04681012034 -1.00073745847 --1.02955311537 -1.00074166059 --1.01229587197 -1.00074858964 --0.995038673282 -1.00075829029 --0.97778108716 -1.00077076256 --0.960523471236 -1.00078597665 --0.943265333772 -1.00080390275 --0.926007017493 -1.00082452595 --0.908748105168 -1.00084793567 --0.891488879919 -1.00085948407 --0.872278034687 -1.00084646046 --0.853065550327 -1.00082327425 --0.835806146264 -1.00080278516 --0.818547412753 -1.00078503788 --0.801288962364 -1.0007699728 --0.784031063318 -1.00075764954 --0.76677326858 -1.0007480979 --0.749515905976 -1.00074131787 --0.732258528471 -1.00073726475 --0.715001448989 -1.00073601306 --0.6977442801 -1.00073745847 --0.680487260223 -1.00074166059 --0.663229987025 -1.00074858964 --0.645972803235 -1.00075829029 --0.628715232014 -1.00077076256 --0.611457601189 -1.00078594685 --0.594199493527 -1.00080387294 --0.576941207052 -1.00082452595 --0.559682279825 -1.00084795058 --0.542423009872 -1.00085949898 --0.52321216464 -1.00084646046 --0.503999710083 -1.00082325935 --0.486740320921 -1.00080277026 --0.469481594861 -1.00078503788 --0.452223114669 -1.0007699728 --0.434965193272 -1.00075766444 --0.417707413435 -1.0007480979 --0.40045003593 -1.00074131787 --0.383192658425 -1.00073724985 --0.365935608745 -1.00073598325 --0.348678424955 -1.00073745847 --0.331421419978 -1.00074166059 --0.314164154232 -1.00074861944 --0.29690695554 -1.00075832009 --0.279649399221 -1.00077076256 --0.262391768396 -1.00078594685 --0.245133645832 -1.00080387294 --0.227875333279 -1.00082452595 --0.210616406054 -1.00084793567 --0.193357169628 -1.00085948407 --0.174146316946 -1.01796683669 --0.154930491 -1.01794338226 --0.137671090662 -1.01792263985 --0.120412355289 -1.01790475845 --0.103153871372 -1.01788958907 --0.0858959387988 -1.01787719131 --0.0686381263658 -1.01786753535 --0.0513807404786 -1.01786062121 --0.0341233559884 -1.0178565383 --0.0168662762735 -1.01785525679 -0.000390926143155 -1.01785671711 -0.0176479467191 -1.01786097884 -0.0349052138627 -1.01786801219 -0.0521624237299 -1.01787781716 -0.0694200061261 -1.01789039373 -0.0866776518524 -1.01790571213 -0.103935785592 -1.01792380214 -0.121194113046 -1.01794463396 -0.138453058899 -1.0179682672 -0.1557123065 -1.01797994971 -0.174923025072 -1.01796677709 -0.19413536787 -1.01794335246 -0.211394760758 -1.01792266965 -0.228653490543 -1.01790475845 -0.245911978185 -1.01788955927 -0.263169907034 -1.0178771615 -0.280427709222 -1.01786750555 -0.297685101628 -1.01786065101 -0.314942501485 -1.0178565681 -0.332199580967 -1.0178552866 -0.349456772208 -1.01785674691 -0.366713784635 -1.01786100864 -0.383971057832 -1.01786804199 -0.401228286326 -1.01787784696 -0.418485864997 -1.01789039374 -0.435743503272 -1.01790568232 -0.453001648188 -1.01792377233 -0.470259964466 -1.01794460416 -0.487518891692 -1.0179682672 -0.504778131843 -1.01797994971 -0.523988842964 -1.01796677709 -0.543201208115 -1.01794335246 -0.560460627079 -1.01792266965 -0.577719345689 -1.01790475845 -0.594977810979 -1.01788955927 -0.612235739827 -1.0178771615 -0.629493564367 -1.01786750555 -0.646750956774 -1.01786065101 -0.664008334279 -1.0178565681 -0.681265413761 -1.0178553164 -0.698522612453 -1.01785677671 -0.715779662132 -1.01786100864 -0.73303693533 -1.01786804199 -0.750294134021 -1.01787778735 -0.767551735043 -1.01789036393 -0.784809365869 -1.01790571213 -0.802067488432 -1.01792377233 -0.81932580471 -1.01794460416 -0.836584731936 -1.0179682672 -0.853843986988 -1.01797994971 -0.873054713011 -1.01796680689 -0.89226706326 -1.01794338226 -0.909526452422 -1.01792263985 -0.926785200834 -1.01790472865 -0.944043695927 -1.01788955927 -0.961301624775 -1.0178771615 -0.978559434414 -1.01786750555 -0.995816811919 -1.01786065101 -1.01307421922 -1.0178565979 -1.03033128381 -1.0178553164 -1.0475884676 -1.01785677671 -1.06484550238 -1.01786103844 -1.08210277557 -1.01786801219 -1.09935998916 -1.01787778735 -1.11661756038 -1.01789036393 -1.13387519121 -1.01790568232 -1.15113332867 -1.01792377233 -1.16839164495 -1.01794460416 -1.18565058708 -1.0179682672 -1.20290982723 -1.01797994971 -1.22212052345 -1.01796680689 -1.2413328886 -1.01794338226 -1.25859230757 -1.01792266965 -1.27585104108 -1.01790475845 -1.29310950637 -1.01788955927 -1.31036743522 -1.0178771615 -1.32762527466 -1.01786750555 -1.34488266706 -1.01786068082 -1.36214005947 -1.0178566277 -1.37939715385 -1.0178553164 -1.39665436745 -1.01785674691 -1.41391137242 -1.01786097884 -1.43116861582 -1.01786801219 -1.44842582941 -1.01787781716 -1.46568340063 -1.01789036393 -1.48294103146 -1.01790568232 -1.50019919872 -1.01792377233 -1.5174575448 -1.01794460416 -1.53471648693 -1.0179682672 -1.55197572708 -1.01797994971 -1.5711864233 -1.01796677709 -1.59039878845 -1.01794338226 -1.60765820742 -1.01792269945 -1.62491691113 -1.01790475845 -1.64217537641 -1.01788955927 -1.65943333507 -1.0178771317 -1.67669114471 -1.01786747575 -1.69394850731 -1.01786068082 -1.71120586991 -1.0178566277 -1.72846293449 -1.0178553164 -1.74572014809 -1.01785674691 -1.76297718287 -1.01786100864 -1.78023445606 -1.01786804199 -1.79749166965 -1.01787781716 -1.81474927068 -1.01789036393 -1.83200693131 -1.01790568232 -1.84926503897 -1.01792377233 -1.86652332544 -1.01794460416 -1.88378226757 -1.0179682672 -1.90104156733 -1.01797994971 -1.92025232315 -1.01796677709 -1.93946462869 -1.01794338226 -1.95672398805 -1.01792269945 -1.97398275137 -1.01790475845 -1.99124124646 -1.01788955927 -2.00849920511 -1.0178771615 -2.02575701475 -1.01786750555 -2.04301434755 -1.01786068082 -2.06027173996 -1.0178566277 -2.07752883434 -1.0178553164 -2.09478598833 -1.01785677671 -2.1120429635 -1.01786103844 -2.12930029631 -1.01786804199 -2.14655756951 -1.01787778735 -2.16381514072 -1.01789033413 -2.18107277155 -1.01790571213 -2.19833093882 -1.01792380214 -2.2155892849 -1.01794460416 -2.23284816742 -1.0179682672 -2.25010740757 -1.01797994971 -2.26931816339 -1.01796677709 -2.28853046894 -1.01794335246 -2.3057898283 -1.01792266965 -2.32304859161 -1.01790475845 -2.3403070569 -1.01788955927 -2.35756498575 -1.0178771615 -2.37482279539 -1.01786753535 -2.39208012819 -1.01786068082 -2.4093375802 -1.0178565979 -2.42659467459 -1.0178553164 -2.44385188818 -1.01785674691 -2.46110898256 -1.01786100864 -2.47836619615 -1.01786804199 -2.49562335014 -1.01787781716 -2.51288092136 -1.01789036393 -2.53013855219 -1.01790568232 -2.54739671946 -1.01792377233 -2.56465506554 -1.01794460416 -2.58191400767 -1.0179682672 -2.59917324782 -1.01797994971 -2.61838394404 -1.01796677709 -2.63759630918 -1.01794335246 -2.65485572815 -1.01792266965 -2.67211443186 -1.01790475845 -2.68937289715 -1.01788955927 -2.706630826 -1.0178771615 -2.72388869524 -1.01786750555 -2.74114614725 -1.01786065101 -2.75840348006 -1.0178565681 -2.77566057444 -1.0178552866 -2.79291778803 -1.01785677671 -2.8101747632 -1.01786103844 -2.82743197679 -1.01786804199 -2.84468919039 -1.01787778735 -2.86194682122 -1.01789033413 -2.87920445204 -1.01790568232 -2.8964625597 -1.01792377233 -2.91372090578 -1.01794460416 -2.93097984791 -1.0179682672 -2.94823908806 -1.01797997951 -2.96744984388 -1.01796683669 -2.98666220903 -1.01794338226 -3.0039215684 -1.01792263985 -3.02118027211 -1.01790475845 -3.038438797 -1.01788958907 -3.05569672585 -1.01787719131 -3.07295453549 -1.01786753535 -3.09021192789 -1.01786062121 -3.10746926069 -1.0178565383 -3.12472635507 -1.01785525679 --3.14120170673 -1.01785671711 --3.12394469976 -1.01786097884 --3.10668742657 -1.01786801219 --3.08943021297 -1.01787781716 --3.07217264175 -1.01789039373 --3.05491501093 -1.01790571213 --3.03765690327 -1.01792380214 --3.02039855719 -1.01794463396 --3.00313961506 -1.0179682672 --2.98588037491 -1.01797994971 --2.96666961909 -1.01796677709 --2.94745725394 -1.01794335246 --2.93019789458 -1.01792266965 --2.91293919086 -1.01790475845 --2.89568066597 -1.01788955927 --2.87842273712 -1.0178771615 --2.86116492748 -1.01786750555 --2.84390753508 -1.01786065101 --2.82665020228 -1.0178565681 --2.80939310789 -1.0178552866 --2.7921358943 -1.01785674691 --2.77487891912 -1.01786100864 --2.75762158632 -1.01786804199 --2.74036437273 -1.01787784696 --2.72310680151 -1.01789039374 --2.70584911108 -1.01790568232 --2.68859100342 -1.01792377233 --2.67133271694 -1.01794460416 --2.65407377482 -1.0179682672 --2.63681453467 -1.01797994971 --2.61760383844 -1.01796677709 --2.59839147329 -1.01794335246 --2.58113205433 -1.01792266965 --2.56387329101 -1.01790475845 --2.54661482572 -1.01788955927 --2.52935689688 -1.0178771615 --2.51209908724 -1.01786750555 --2.49484175443 -1.01786065101 --2.47758430242 -1.0178565681 --2.46032720804 -1.0178553164 --2.44307005405 -1.01785677671 --2.42581295967 -1.01786100864 --2.40855568647 -1.01786804199 --2.39129853249 -1.01787778735 --2.37404096126 -1.01789036393 --2.35678333044 -1.01790571213 --2.33952516317 -1.01792377233 --2.32226681709 -1.01794460416 --2.30500787496 -1.0179682672 --2.28774863481 -1.01797994971 --2.26853793859 -1.01796680689 --2.24932557344 -1.01794338226 --2.23206615448 -1.01792263985 --2.21480745077 -1.01790472865 --2.19754898548 -1.01788955927 --2.18029105663 -1.0178771615 --2.16303324699 -1.01786750555 --2.14577585459 -1.01786065101 --2.12851846218 -1.0178565979 --2.1112614274 -1.0178553164 --2.09400421381 -1.01785677671 --2.07674711943 -1.01786103844 --2.05948990584 -1.01786801219 --2.04223269224 -1.01787778735 --2.02497506142 -1.01789036393 --2.00771746039 -1.01790568232 --1.99045932293 -1.01792377233 --1.97320097685 -1.01794460416 --1.95594203472 -1.0179682672 --1.93868279457 -1.01797994971 --1.91947209835 -1.01796680689 --1.9002597332 -1.01794338226 --1.88300031423 -1.01792266965 --1.86574158072 -1.01790475845 --1.84848311543 -1.01788955927 --1.83122518658 -1.0178771615 --1.81396737695 -1.01786750555 --1.79670998454 -1.01786068082 --1.77945259213 -1.0178566277 --1.76219552755 -1.0178553164 --1.74493834376 -1.01785674691 --1.72768133879 -1.01786097884 --1.71042403579 -1.01786801219 --1.69316679239 -1.01787781716 --1.67590922117 -1.01789036393 --1.65865159035 -1.01790568232 --1.64139348268 -1.01792377233 --1.6241351664 -1.01794460416 --1.60687622428 -1.0179682672 --1.58961695433 -1.01797994971 --1.5704061985 -1.01796677709 --1.55119389295 -1.01794338226 --1.5339345336 -1.01792269945 --1.51667577028 -1.01790475845 --1.49941727519 -1.01788955927 --1.48215934634 -1.0178771317 --1.4649015367 -1.01786747575 --1.4476441741 -1.01786068082 --1.43038678169 -1.0178566277 --1.41312968731 -1.0178553164 --1.39587247371 -1.01785674691 --1.37861543894 -1.01786100864 --1.36135816574 -1.01786804199 --1.34410098195 -1.01787781716 --1.32684341073 -1.01789036393 --1.3095857799 -1.01790568232 --1.29232764244 -1.01792377233 --1.27506929636 -1.01794460416 --1.25781035423 -1.0179682672 --1.24055111408 -1.01797994971 --1.22134041786 -1.01796677709 --1.20212805271 -1.01794338226 --1.18486863375 -1.01792269945 --1.16760990023 -1.01790475845 --1.15035140514 -1.01788955927 --1.1330934763 -1.0178771615 --1.11583566666 -1.01786750555 --1.09857827425 -1.01786068082 --1.08132088184 -1.0178566277 --1.06406378746 -1.0178553164 --1.04680663348 -1.01785677671 --1.0295496285 -1.01786103844 --1.0122923255 -1.01786804199 --0.995035111905 -1.01787778735 --0.977777555585 -1.01789033413 --0.960519939661 -1.01790571213 --0.943261772394 -1.01792380214 --0.926003441214 -1.01794460416 --0.90874452889 -1.0179682672 --0.891485273838 -1.01797994971 --0.872274532914 -1.01796677709 --0.853062167764 -1.01794335246 --0.8358027637 -1.01792266965 --0.818544030189 -1.01790475845 --0.801285564899 -1.01788955927 --0.784027636051 -1.0178771615 --0.766769826412 -1.01786753535 --0.749512448907 -1.01786068082 --0.732255056501 -1.0178565979 --0.714997977018 -1.0178553164 --0.697740778327 -1.01785674691 --0.68048375845 -1.01786100864 --0.663226470351 -1.01786804199 --0.64596927166 -1.01787781716 --0.628711700439 -1.01789036393 --0.611454039812 -1.01790568232 --0.594195917249 -1.01792377233 --0.576937615871 -1.01794460416 --0.559678673744 -1.0179682672 --0.542419403791 -1.01797994971 --0.523208677769 -1.01796677709 --0.50399633497 -1.01794335246 --0.486736938358 -1.01792266965 --0.469478204847 -1.01790475845 --0.452219717205 -1.01788955927 --0.434961780906 -1.0178771615 --0.417703971267 -1.01786750555 --0.400446586311 -1.01786065101 --0.383189201355 -1.0178565681 --0.365932121873 -1.0178552866 --0.348674930632 -1.01785677671 --0.331417918205 -1.01786103844 --0.314160637558 -1.01786804199 --0.296903431416 -1.01787778735 --0.279645852744 -1.01789033413 --0.262388207018 -1.01790568232 --0.245130069554 -1.01792377233 --0.227871734649 -1.01794460416 --0.210612796247 -1.0179682672 --0.193353548646 -1.01797997951 --0.174142833799 -1.03506720066 --0.154927164316 -1.03504350781 --0.137667745352 -1.03502261639 --0.120408998802 -1.03500455618 --0.10315050371 -1.03498923779 --0.0858925562352 -1.03497675061 --0.0686347298324 -1.03496700525 --0.051377329044 -1.03496003151 --0.0341199324466 -1.03495588899 --0.0168628389947 -1.03495463729 -0.000394378323107 -1.0349561274 -0.0176514131017 -1.03496038913 -0.0349086942151 -1.03496748209 -0.0521659180522 -1.03497737646 -0.0694235144183 -1.03499007225 -0.0866811741144 -1.03500553966 -0.10393932648 -1.03502377868 -0.121197661385 -1.03504481911 -0.138456616551 -1.03506866097 -0.155715882778 -1.03508043289 -0.17492647469 -1.03506717086 -0.194138694555 -1.03504350781 -0.211398102343 -1.03502261639 -0.228656843304 -1.03500452638 -0.245915338397 -1.03498920798 -0.263173289597 -1.03497675061 -0.280431114137 -1.03496700525 -0.297688521445 -1.03496006131 -0.314945928752 -1.03495594859 -0.332203008234 -1.03495466709 -0.349460221827 -1.0349561274 -0.366717256606 -1.03496038913 -0.383974544704 -1.03496748209 -0.401231788099 -1.03497737646 -0.41848937422 -1.03499004245 -0.435747012496 -1.03500550985 -0.453005172312 -1.03502374888 -0.470263510943 -1.03504478931 -0.48752245307 -1.03506869077 -0.504781715572 -1.03508046269 -0.523992314935 -1.03506717086 -0.543204545975 -1.03504350781 -0.560463950038 -1.03502261639 -0.57772269845 -1.03500452638 -0.594981193543 -1.03498920798 -0.612239122391 -1.03497675061 -0.629496961832 -1.03496700525 -0.64675436914 -1.03496006131 -0.664011761546 -1.03495594859 -0.681268885731 -1.03495469689 -0.698526084423 -1.0349561572 -0.715783119201 -1.03496038913 -0.733040422201 -1.03496748209 -0.750297635793 -1.03497734666 -0.767555251717 -1.03499004245 -0.784812897444 -1.03500553966 -0.802071034908 -1.03502377868 -0.819329366088 -1.03504481911 -0.836588323116 -1.03506866097 -0.85384760797 -1.03508043289 -0.873058184982 -1.03506717086 -0.892270386219 -1.03504350781 -0.909529805184 -1.03502261639 -0.926788568497 -1.03500452638 -0.944047063589 -1.03498920798 -0.961304992438 -1.03497675061 -0.978562816978 -1.03496700525 -0.995820209384 -1.03496006131 -1.01307761669 -1.03495594859 -1.03033471108 -1.03495466709 -1.04759192467 -1.0349561572 -1.06484895945 -1.03496041894 -1.08210623265 -1.03496745229 -1.09936344623 -1.03497734666 -1.11662104726 -1.03499004245 -1.13387870789 -1.03500550985 -1.15113684535 -1.03502374888 -1.16839519143 -1.03504475951 -1.18565416336 -1.03506866097 -1.20291340351 -1.03508046269 -1.22212398052 -1.03506717086 -1.24133622647 -1.03504350781 -1.25859564543 -1.03502261639 -1.27585440874 -1.03500452638 -1.29311290383 -1.03498920798 -1.31037083268 -1.03497675061 -1.32762867212 -1.03496700525 -1.34488606453 -1.03496006131 -1.36214345694 -1.03495594859 -1.37940058112 -1.03495466709 -1.39665779471 -1.0349561274 -1.41391482949 -1.03496035933 -1.43117213249 -1.03496742249 -1.44842934608 -1.03497731686 -1.46568691731 -1.03499001265 -1.48294457793 -1.03500550985 -1.5002027452 -1.03502374888 -1.51746109128 -1.03504478931 -1.5347200334 -1.03506866097 -1.55197927356 -1.03508043289 -1.57118988037 -1.03506717086 -1.59040212631 -1.03504353762 -1.60766154528 -1.03502264619 -1.62492024899 -1.03500452638 -1.64217871427 -1.03498920798 -1.65943670273 -1.03497672081 -1.67669454217 -1.03496697545 -1.69395190477 -1.03496006131 -1.71120929718 -1.03495597839 -1.72846639156 -1.03495469689 -1.74572360516 -1.0349561274 -1.76298063993 -1.03496038913 -1.78023791313 -1.03496748209 -1.79749515653 -1.03497737646 -1.81475278735 -1.03499004245 -1.83201044798 -1.03500550985 -1.84926858544 -1.03502377868 -1.86652690172 -1.03504481911 -1.88378584385 -1.03506869077 -1.9010451436 -1.03508046269 -1.92025575042 -1.03506717086 -1.93946793676 -1.03504353762 -1.95672732591 -1.03502264619 -1.97398608923 -1.03500452638 -1.99124461412 -1.03498920798 -2.00850257277 -1.03497675061 -2.02576041222 -1.03496700525 -2.04301780462 -1.03496006131 -2.06027513742 -1.03495594859 -2.07753223181 -1.03495466709 -2.0947894454 -1.0349561572 -2.11204648018 -1.03496041894 -2.12930381298 -1.03496748209 -2.14656108618 -1.03497734666 -2.1638186574 -1.03499001265 -2.18107622862 -1.03500550985 -2.19833439589 -1.03502377868 -2.21559280157 -1.03504481911 -2.2328517437 -1.03506869077 -2.25011098385 -1.03508046269 -2.26932156086 -1.03506717086 -2.2885337472 -1.03504350781 -2.30579316616 -1.03502261639 -2.32305192947 -1.03500455618 -2.34031045437 -1.03498923779 -2.35756838322 -1.03497675061 -2.37482619286 -1.03496703505 -2.39208358526 -1.03496009111 -2.40934097767 -1.03495594859 -2.42659807205 -1.03495466709 -2.44385534525 -1.0349561274 -2.46111243963 -1.03496041894 -2.47836965322 -1.03496751189 -2.49562686682 -1.03497737646 -2.51288449764 -1.03499004245 -2.53014212847 -1.03500550985 -2.54740023613 -1.03502377868 -2.56465858221 -1.03504478931 -2.58191758394 -1.03506863117 -2.59917682409 -1.03508043289 -2.6183874011 -1.03506717086 -2.63759964704 -1.03504350781 -2.65485906601 -1.03502261639 -2.67211782932 -1.03500455618 -2.68937629461 -1.03498923779 -2.70663422346 -1.03497675061 -2.7238920927 -1.03496700525 -2.74114948511 -1.03496006131 -2.75840687752 -1.03495594859 -2.77566403151 -1.03495466709 -2.7929212451 -1.0349561572 -2.81017822027 -1.03496041894 -2.82743549347 -1.03496748209 -2.84469270706 -1.03497734666 -2.86195033789 -1.03499001265 -2.87920802832 -1.03500548005 -2.89646613598 -1.03502371907 -2.91372448206 -1.03504478931 -2.93098342419 -1.03506869077 -2.94824266433 -1.0350804925 -2.96745330095 -1.03506720066 -2.98666554689 -1.03504350781 -3.00392496586 -1.03502261639 -3.02118366957 -1.03500455618 -3.03844213486 -1.03498923779 -3.05570006371 -1.03497675061 -3.07295787335 -1.03496700525 -3.09021532535 -1.03496003151 -3.10747271776 -1.03495588899 -3.12472981215 -1.03495463729 --3.14119824966 -1.0349561274 --3.12394124269 -1.03496038913 --3.10668390989 -1.03496748209 --3.0894266963 -1.03497737646 --3.07216912508 -1.03499007225 --3.05491143465 -1.03500553966 --3.03765332699 -1.03502377868 --3.02039504051 -1.03504481911 --3.00313609839 -1.03506866097 --2.98587679863 -1.03508043289 --2.96666616201 -1.03506717086 --2.94745391607 -1.03504350781 --2.93019455671 -1.03502261639 --2.912935853 -1.03500452638 --2.89567732811 -1.03498920798 --2.87841939926 -1.03497675061 --2.86116158962 -1.03496700525 --2.84390413761 -1.03496006131 --2.82664674521 -1.03495594859 --2.80938965082 -1.03495466709 --2.79213243723 -1.0349561274 --2.77487546205 -1.03496038913 --2.75761812925 -1.03496748209 --2.74036085606 -1.03497737646 --2.72310328484 -1.03499004245 --2.70584565401 -1.03500550985 --2.68858748674 -1.03502374888 --2.67132914067 -1.03504478931 --2.65407019854 -1.03506869077 --2.63681095839 -1.03508046269 --2.61760038138 -1.03506717086 --2.59838813543 -1.03504350781 --2.58112871647 -1.03502261639 --2.56386995315 -1.03500452638 --2.54661142826 -1.03498920798 --2.52935349941 -1.03497675061 --2.51209568977 -1.03496700525 --2.49483829737 -1.03496006131 --2.47758090496 -1.03495594859 --2.46032381058 -1.03495469689 --2.44306659699 -1.0349561572 --2.4258095026 -1.03496038913 --2.4085522294 -1.03496748209 --2.39129501581 -1.03497734666 --2.37403738499 -1.03499004245 --2.35677975416 -1.03500553966 --2.3395216465 -1.03502377868 --2.32226330042 -1.03504481911 --2.30500429869 -1.03506866097 --2.28774499893 -1.03508043289 --2.26853442192 -1.03506717086 --2.24932223558 -1.03504350781 --2.23206281662 -1.03502261639 --2.21480405331 -1.03500452638 --2.19754558802 -1.03498920798 --2.18028765917 -1.03497675061 --2.16302984953 -1.03496700525 --2.14577251673 -1.03496006131 --2.12851506472 -1.03495594859 --2.11125797033 -1.03495466709 --2.09400075674 -1.0349561572 --2.07674366236 -1.03496041894 --2.05948644876 -1.03496745229 --2.04222923517 -1.03497734666 --2.02497154474 -1.03499004245 --2.00771388411 -1.03500550985 --1.99045577645 -1.03502374888 --1.97319743037 -1.03504475951 --1.95593848824 -1.03506866097 --1.93867924809 -1.03508046269 --1.91946864128 -1.03506717086 --1.90025639534 -1.03504350781 --1.88299697637 -1.03502261639 --1.86573821306 -1.03500452638 --1.84847974777 -1.03498920798 --1.83122181892 -1.03497675061 --1.81396397948 -1.03496700525 --1.79670658708 -1.03496006131 --1.77944919467 -1.03495594859 --1.76219210029 -1.03495466709 --1.74493488669 -1.0349561274 --1.72767785191 -1.03496035933 --1.71042054891 -1.03496742249 --1.69316330552 -1.03497731686 --1.6759057045 -1.03499001265 --1.65864807367 -1.03500550985 --1.64138993621 -1.03502374888 --1.62413159013 -1.03504478931 --1.606872648 -1.03506866097 --1.58961337805 -1.03508043289 --1.57040277123 -1.03506717086 --1.5511905849 -1.03504353762 --1.53393119574 -1.03502264619 --1.51667243242 -1.03500452638 --1.49941390753 -1.03498920798 --1.48215594888 -1.03497672081 --1.46489813924 -1.03496697545 --1.44764074683 -1.03496006131 --1.43038335442 -1.03495597839 --1.41312626004 -1.03495469689 --1.39586901664 -1.0349561274 --1.37861198187 -1.03496038913 --1.36135470867 -1.03496748209 --1.34409749508 -1.03497737646 --1.32683992386 -1.03499004245 --1.30958226323 -1.03500550985 --1.29232409596 -1.03502377868 --1.27506574988 -1.03504481911 --1.25780677795 -1.03506869077 --1.2405475378 -1.03508046269 --1.22133696079 -1.03506717086 --1.20212471485 -1.03504353762 --1.18486529589 -1.03502264619 --1.16760653258 -1.03500452638 --1.15034803748 -1.03498920798 --1.13309010864 -1.03497675061 --1.11583226919 -1.03496700525 --1.09857487678 -1.03496006131 --1.08131748438 -1.03495594859 --1.0640603602 -1.03495466709 --1.0468031764 -1.0349561572 --1.02954614163 -1.03496041894 --1.01228880883 -1.03496748209 --0.995031595231 -1.03497734666 --0.977774038911 -1.03499001265 --0.960516408086 -1.03500550985 --0.943258240819 -1.03502377868 --0.925999894738 -1.03504481911 --0.908740967512 -1.03506869077 --0.891481697559 -1.03508046269 --0.872271075845 -1.03506717086 --0.853058844805 -1.03504350781 --0.835799455643 -1.03502261639 --0.81854070723 -1.03500455618 --0.801282197237 -1.03498923779 --0.784024268389 -1.03497675061 --0.766766443849 -1.03496703505 --0.749509036541 -1.03496009111 --0.732251644134 -1.03495594859 --0.714994549751 -1.03495466709 --0.697737321258 -1.0349561274 --0.68048030138 -1.03496041894 --0.663222998381 -1.03496751189 --0.645965769887 -1.03497737646 --0.628708183765 -1.03499004245 --0.611450523138 -1.03500550985 --0.594192385673 -1.03502377868 --0.576934054494 -1.03504478931 --0.559675097465 -1.03506863117 --0.542415827513 -1.03508043289 --0.523205235601 -1.03506717086 --0.503993004561 -1.03504350781 --0.486733600498 -1.03502261639 --0.469474866986 -1.03500455618 --0.452216364443 -1.03498923779 --0.434958413243 -1.03497675061 --0.417700581253 -1.03496700525 --0.400443173945 -1.03496006131 --0.383185781539 -1.03495594859 --0.365928687155 -1.03495466709 --0.348671481013 -1.0349561572 --0.331414446235 -1.03496041894 --0.314157150686 -1.03496748209 --0.296899929643 -1.03497734666 --0.27964233607 -1.03499001265 --0.262384682894 -1.03500548005 --0.245126530528 -1.03502371907 --0.227868184448 -1.03504478931 --0.210609231145 -1.03506869077 --0.193349972367 -1.0350804925 --0.17413938418 -1.05218407512 --0.154922623187 -1.05216023326 --0.137663185597 -1.05213916302 --0.120404420421 -1.05212089419 --0.103145906702 -1.05210542679 --0.0858879387379 -1.05209285021 --0.0686300965026 -1.05208304524 --0.0513726798818 -1.0520760715 --0.0341152637266 -1.05207189917 --0.0168581502512 -1.05207058787 -0.000399086857215 -1.05207207799 -0.0176561407279 -1.05207639933 -0.0349134430289 -1.05208352208 -0.0521706864238 -1.05209347606 -0.0694282995537 -1.05210629106 -0.0866859778762 -1.05212190748 -0.103944150731 -1.05214029551 -0.1212025024 -1.05216154456 -0.138461474329 -1.05218559503 -0.155720759183 -1.05219742656 -0.174931179732 -1.05218407512 -0.194143235684 -1.05216023326 -0.211402665824 -1.05213916302 -0.228661421686 -1.05212089419 -0.245919939131 -1.05210545659 -0.263177908957 -1.05209288001 -0.280435755849 -1.05208304524 -0.297693178058 -1.0520760715 -0.314950592816 -1.05207189917 -0.33220769465 -1.05207058787 -0.349464930594 -1.05207207799 -0.366721995175 -1.05207636952 -0.383979298174 -1.05208349228 -0.401236541569 -1.05209347606 -0.418494150043 -1.05210629106 -0.43575181812 -1.05212190748 -0.453009992838 -1.05214029551 -0.47026835382 -1.05216151476 -0.487527325749 -1.05218559504 -0.504786610604 -1.05219745636 -0.523997038603 -1.05218407512 -0.543209090829 -1.05216023326 -0.560468509793 -1.05213916302 -0.577727288007 -1.05212089419 -0.594985812903 -1.05210545659 -0.612243756652 -1.05209288001 -0.629501596093 -1.05208304524 -0.646759033203 -1.0520760417 -0.664016455412 -1.05207186937 -0.681273564696 -1.05207058787 -0.698530763388 -1.05207207799 -0.715787827969 -1.05207636952 -0.73304516077 -1.05208352208 -0.750302389264 -1.05209350586 -0.767560020089 -1.05210629106 -0.784817695618 -1.05212190748 -0.802075847983 -1.05214032531 -0.819334208966 -1.05216154456 -0.836593195796 -1.05218556523 -0.853852495551 -1.05219742656 -0.873062923551 -1.05218407512 -0.892274945974 -1.05216023326 -0.909534364939 -1.05213916302 -0.926793128252 -1.05212089419 -0.944051623344 -1.05210545659 -0.961309581995 -1.05209288001 -0.978567436338 -1.05208304524 -0.995824873448 -1.0520760417 -1.01308229566 -1.05207189917 -1.03033939004 -1.05207061768 -1.04759663343 -1.05207207799 -1.06485369801 -1.05207639933 -1.08211097122 -1.05208355189 -1.09936821461 -1.05209350586 -1.11662587524 -1.05210629106 -1.13388356567 -1.05212190748 -1.15114170313 -1.05214032531 -1.16840004921 -1.05216151476 -1.18565905094 -1.05218556523 -1.20291832089 -1.05219745636 -1.22212871909 -1.05218407512 -1.24134075642 -1.05216023326 -1.25860020519 -1.05213916302 -1.2758589983 -1.05212089419 -1.29311749339 -1.05210545659 -1.31037545204 -1.05209288001 -1.32763329148 -1.05208304524 -1.34489068389 -1.0520760417 -1.3621481061 -1.05207186937 -1.37940526009 -1.05207058787 -1.39666250348 -1.05207207799 -1.41391953826 -1.05207639933 -1.43117684126 -1.05208352208 -1.44843408465 -1.05209347606 -1.46569168568 -1.05210629106 -1.48294937611 -1.05212190748 -1.50020757317 -1.05214032531 -1.51746591926 -1.05216154456 -1.53472486138 -1.05218556523 -1.55198413134 -1.05219742656 -1.57119458914 -1.05218407512 -1.59040665627 -1.05216023326 -1.60766607523 -1.05213916302 -1.62492480874 -1.05212089419 -1.64218330383 -1.05210542679 -1.65944129228 -1.05209285021 -1.67669916153 -1.05208304524 -1.69395658373 -1.0520760417 -1.71121400595 -1.05207192898 -1.72847110033 -1.05207064748 -1.74572831392 -1.05207207799 -1.7629853785 -1.05207636952 -1.7802426815 -1.05208352208 -1.7974999547 -1.05209350586 -1.81475758553 -1.05210629106 -1.83201524615 -1.05212190748 -1.84927341342 -1.05214032531 -1.8665317595 -1.05216154456 -1.88379073143 -1.05218559504 -1.90105003118 -1.05219745636 -1.92026042938 -1.05218407512 -1.93947246671 -1.05216023326 -1.95673191548 -1.05213916302 -1.97399067878 -1.05212089419 -1.99124920368 -1.05210545659 -2.00850713253 -1.05209285021 -2.02576500177 -1.05208301544 -2.04302245378 -1.0520760417 -2.06027984619 -1.05207186937 -2.07753694058 -1.05207058787 -2.09479415417 -1.05207207799 -2.11205124855 -1.05207639933 -2.12930858135 -1.05208352208 -2.14656585455 -1.05209347606 -2.16382342577 -1.05210629106 -2.1810810566 -1.05212190748 -2.19833922386 -1.05214032531 -2.21559756994 -1.05216154456 -2.23285657167 -1.05218559504 -2.25011587143 -1.05219745636 -2.26932626963 -1.05218407512 -2.28853827715 -1.05216023326 -2.30579775572 -1.05213916302 -2.32305651903 -1.052120924 -2.34031504393 -1.05210545659 -2.35757303238 -1.0520928204 -2.37483084202 -1.05208301544 -2.39208829403 -1.0520760715 -2.40934568643 -1.05207192898 -2.42660278082 -1.05207061768 -2.44386005402 -1.05207207799 -2.4611171484 -1.05207639933 -2.47837442159 -1.05208355189 -2.49563163519 -1.05209350586 -2.51288932562 -1.05210629106 -2.53014701605 -1.05212193728 -2.54740512371 -1.05214035511 -2.56466346979 -1.05216151476 -2.58192241192 -1.05218553543 -2.59918165207 -1.05219742656 -2.61839210987 -1.05218407512 -2.6376042366 -1.05216023326 -2.65486365557 -1.05213916302 -2.67212241888 -1.052120924 -2.68938094377 -1.05210545659 -2.70663887262 -1.05209285021 -2.72389668226 -1.05208304524 -2.74115407467 -1.0520760417 -2.75841152668 -1.05207189917 -2.77566868067 -1.05207061768 -2.79292589426 -1.05207207799 -2.81018292904 -1.05207636952 -2.82744026184 -1.05208349228 -2.84469747543 -1.05209347606 -2.86195510626 -1.05210629106 -2.87921279669 -1.05212187767 -2.89647096396 -1.05214026571 -2.91372936964 -1.05216151476 -2.93098831177 -1.05218559504 -2.94824755192 -1.05219745636 -2.96745795011 -1.05218407512 -2.98667001724 -1.05216023326 -3.00392949581 -1.05213916302 -3.02118825913 -1.05212089419 -3.03844672441 -1.05210542679 -3.05570465326 -1.05209285021 -3.07296252251 -1.05208304524 -3.09021997452 -1.0520760715 -3.10747736692 -1.05207189917 -3.12473446131 -1.05207058787 --3.14119354089 -1.05207207799 --3.12393647432 -1.05207639933 --3.10667920112 -1.05208352208 --3.08942198754 -1.05209347606 --3.07216435671 -1.05210629106 --3.05490666628 -1.05212190748 --3.03764849901 -1.05214029551 --3.02039015293 -1.05216154456 --3.0031312108 -1.05218559503 --2.98587191105 -1.05219742656 --2.96666145324 -1.05218407512 --2.94744938612 -1.05216023326 --2.93019002676 -1.05213916302 --2.91293126344 -1.05212089419 --2.89567273855 -1.05210545659 --2.8784148097 -1.05209288001 --2.86115694046 -1.05208304524 --2.84389948845 -1.0520760715 --2.82664203644 -1.05207189917 --2.80938494205 -1.05207058787 --2.79212772846 -1.05207207799 --2.77487069369 -1.05207636952 --2.75761336088 -1.05208349228 --2.74035602808 -1.05209347606 --2.72309845686 -1.05210629106 --2.70584088564 -1.05212190748 --2.68858271837 -1.05214029551 --2.67132431269 -1.05216151476 --2.65406531096 -1.05218559504 --2.6368060112 -1.05219745636 --2.617595613 -1.05218407512 --2.59838360548 -1.05216023326 --2.58112412691 -1.05213916302 --2.5638653636 -1.05212089419 --2.5466068387 -1.05210545659 --2.52934885025 -1.05209288001 --2.51209104061 -1.05208304524 --2.4948335886 -1.0520760417 --2.47757619619 -1.05207186937 --2.46031910181 -1.05207058787 --2.44306188822 -1.05207207799 --2.42580479383 -1.05207636952 --2.40854746103 -1.05208352208 --2.39129024744 -1.05209350586 --2.37403261662 -1.05210629106 --2.35677492619 -1.05212190748 --2.33951681852 -1.05214032531 --2.32225847244 -1.05216154456 --2.30499947071 -1.05218556523 --2.28774017096 -1.05219742656 --2.26852971315 -1.05218407512 --2.24931770563 -1.05216023326 --2.23205828667 -1.05213916302 --2.21479952336 -1.05212089419 --2.19754099846 -1.05210545659 --2.18028301 -1.05209288001 --2.16302520037 -1.05208304524 --2.14576780796 -1.0520760417 --2.12851035595 -1.05207189917 --2.11125326157 -1.05207061768 --2.09399604797 -1.05207207799 --2.07673895359 -1.05207639933 --2.05948168039 -1.05208355189 --2.0422244668 -1.05209350586 --2.02496677637 -1.05210629106 --2.00770908594 -1.05212190748 --1.99045094847 -1.05214032531 --1.97319257259 -1.05216151476 --1.95593363047 -1.05218556523 --1.93867439032 -1.05219745636 --1.91946393252 -1.05218407512 --1.90025186539 -1.05216023326 --1.88299244642 -1.05213916302 --1.86573368311 -1.05212089419 --1.84847518802 -1.05210545659 --1.83121722936 -1.05209288001 --1.81395936012 -1.05208304524 --1.79670193791 -1.0520760417 --1.77944451571 -1.05207186937 --1.76218739152 -1.05207058787 --1.74493017793 -1.05207207799 --1.72767311335 -1.05207639933 --1.71041581035 -1.05208352208 --1.69315856695 -1.05209347606 --1.67590093613 -1.05210629106 --1.6586432755 -1.05212190748 --1.64138510823 -1.05214032531 --1.62412676215 -1.05216154456 --1.60686779022 -1.05218556523 --1.58960849047 -1.05219742656 --1.57039809227 -1.05218407512 --1.55118605495 -1.05216023326 --1.53392660618 -1.05213916302 --1.51666784287 -1.05212089419 --1.49940931797 -1.05210542679 --1.48215132952 -1.05209285021 --1.46489349008 -1.05208304524 --1.44763606787 -1.0520760417 --1.43037867546 -1.05207192898 --1.41312158108 -1.05207064748 --1.39586430788 -1.05207207799 --1.3786072433 -1.05207636952 --1.3613499403 -1.05208352208 --1.34409272671 -1.05209350586 --1.32683515549 -1.05210629106 --1.30957746506 -1.05212190748 --1.29231926798 -1.05214032531 --1.2750608921 -1.05216154456 --1.25780192017 -1.05218559504 --1.24054265022 -1.05219745636 --1.22133222222 -1.05218407512 --1.2021201551 -1.05216023326 --1.18486070633 -1.05213916302 --1.16760194302 -1.05212089419 --1.15034344793 -1.05210545659 --1.13308551907 -1.05209285021 --1.11582767963 -1.05208301544 --1.09857025743 -1.0520760417 --1.08131283522 -1.05207186937 --1.06405568123 -1.05207058787 --1.04679843783 -1.05207207799 --1.02954140306 -1.05207639933 --1.01228410006 -1.05208352208 --0.995026856661 -1.05209347606 --0.977769255638 -1.05210629106 --0.96051158011 -1.05212190748 --0.943253397942 -1.05214032531 --0.92599503696 -1.05216154456 --0.90873606503 -1.05218559504 --0.891476780176 -1.05219745636 --0.872266352177 -1.05218407512 --0.853054314852 -1.05216023326 --0.835794910789 -1.05213916302 --0.818536147475 -1.052120924 --0.801277622581 -1.05210545659 --0.78401966393 -1.0520928204 --0.766761809587 -1.05208301544 --0.749504372478 -1.0520760715 --0.73224696517 -1.05207192898 --0.714989870786 -1.05207061768 --0.697732627392 -1.05207207799 --0.680475562811 -1.05207639933 --0.66321824491 -1.05208355189 --0.645961001516 -1.05209350586 --0.628703385592 -1.05210629106 --0.611445710063 -1.05212193728 --0.594187557697 -1.05214035511 --0.576929196715 -1.05216151476 --0.559670224786 -1.05218553543 --0.542410939932 -1.05219742656 --0.523200526834 -1.05218407512 --0.503988474607 -1.05216023326 --0.486729040742 -1.05213916302 --0.46947029233 -1.052120924 --0.452211767435 -1.05210545659 --0.434953786433 -1.05209285021 --0.417695946991 -1.05208304524 --0.400438524782 -1.0520760417 --0.383181102574 -1.05207189917 --0.36592400074 -1.05207061768 --0.348666772247 -1.05207207799 --0.331409707666 -1.05207636952 --0.314152404666 -1.05208349228 --0.296895161271 -1.05209347606 --0.279637545347 -1.05210629106 --0.262379869819 -1.05212187767 --0.245121695101 -1.05214026571 --0.22786334157 -1.05216151476 --0.210604373366 -1.05218559504 --0.193345095962 -1.05219745636 --0.174134675414 -1.06934329867 --0.154918219894 -1.069319278 --0.137658767402 -1.06929802895 --0.120399985462 -1.06927961111 --0.103141451255 -1.0692640245 --0.0858834628016 -1.06925132871 --0.0686256019399 -1.06924146414 --0.0513681704179 -1.06923446059 --0.0341107351706 -1.06923022866 --0.0168536012061 -1.06922885775 -0.000403654528783 -1.06923034787 -0.017660727026 -1.06923475862 -0.0349180493504 -1.06924194098 -0.0521753113717 -1.06925195456 -0.0694329412654 -1.06926488877 -0.086690640077 -1.06928062439 -0.103948827833 -1.06929919124 -0.121207201854 -1.06932061911 -0.138466201723 -1.06934484839 -0.155725501478 -1.06935673952 -0.174935743213 -1.06934326887 -0.194147624076 -1.069319278 -0.211407080293 -1.06929802895 -0.228665858507 -1.06927961111 -0.245924398303 -1.0692640543 -0.263182379306 -1.06925135851 -0.280440233648 -1.06924143433 -0.297697678208 -1.06923443079 -0.314955115319 -1.06923022866 -0.332212239504 -1.06922885775 -0.34946949035 -1.06923034787 -0.366726577282 -1.06923472881 -0.383983910084 -1.06924194098 -0.40124116838 -1.06925198436 -0.418498799205 -1.06926488877 -0.435756497085 -1.06928062439 -0.453014679253 -1.06929919124 -0.470273062587 -1.0693205595 -0.487532056868 -1.06934478879 -0.504791341722 -1.06935676933 -0.524001598358 -1.06934329867 -0.543213486671 -1.069319278 -0.560472935438 -1.06929802895 -0.577731713652 -1.06927961111 -0.594990238547 -1.0692640543 -0.612248227 -1.06925135851 -0.629506081342 -1.06924143433 -0.646763533354 -1.06923440099 -0.664020985365 -1.06923019886 -0.681278094649 -1.06922885775 -0.698535338044 -1.06923037767 -0.715792417526 -1.06923475862 -0.733049750328 -1.06924197078 -0.750307023525 -1.06925201416 -0.76756465435 -1.06926488877 -0.78482234478 -1.06928062439 -0.802080526948 -1.06929919124 -0.819338902831 -1.0693205595 -0.836597904563 -1.06934478879 -0.853857204318 -1.06935676933 -0.873067468405 -1.06934329867 -0.892279341817 -1.069319278 -0.909538775682 -1.06929802895 -0.926797553897 -1.06927961111 -0.944056078791 -1.0692640543 -0.961314067244 -1.06925135851 -0.978571921587 -1.06924143433 -0.995829358697 -1.06923440099 -1.01308682561 -1.06923022866 -1.0303439498 -1.06922888756 -1.04760119319 -1.06923034787 -1.06485828757 -1.06923475862 -1.08211559057 -1.06924197078 -1.09937286377 -1.06925198436 -1.1166305244 -1.06926488877 -1.13388821483 -1.06928062439 -1.15114638209 -1.06929922104 -1.16840475797 -1.0693205893 -1.18566378951 -1.06934478879 -1.20292308927 -1.06935676933 -1.22213330865 -1.06934329867 -1.24134516716 -1.069319278 -1.25860464573 -1.06929802895 -1.27586343885 -1.06927964092 -1.29312193394 -1.0692640841 -1.31037992239 -1.06925135851 -1.32763779163 -1.06924140453 -1.34489521384 -1.06923437118 -1.36215266586 -1.06923019886 -1.37940981984 -1.06922888756 -1.39666706324 -1.06923037767 -1.41392409802 -1.06923475862 -1.43118143082 -1.06924197078 -1.44843870401 -1.06925198436 -1.46569633484 -1.06926488877 -1.48295405507 -1.06928062439 -1.50021225214 -1.06929922104 -1.51747059822 -1.0693205893 -1.53472957015 -1.06934478879 -1.5519888699 -1.06935676933 -1.57119914889 -1.06934329867 -1.59041103721 -1.069319278 -1.60767045617 -1.06929802895 -1.62492924929 -1.06927961111 -1.64218780398 -1.0692640245 -1.65944579244 -1.06925132871 -1.67670366168 -1.06924143433 -1.69396111369 -1.06923440099 -1.7112185359 -1.06923022866 -1.72847563029 -1.06922888756 -1.74573287368 -1.06923034787 -1.76298996806 -1.06923472881 -1.78024730086 -1.06924194098 -1.79750457406 -1.06925198436 -1.81476220489 -1.06926488877 -1.83201989531 -1.06928062439 -1.84927809238 -1.06929919124 -1.86653646827 -1.0693205595 -1.88379547 -1.06934478879 -1.90105476975 -1.06935676933 -1.92026498914 -1.06934329867 -1.93947687745 -1.069319278 -1.95673635602 -1.06929802895 -1.97399511934 -1.06927961111 -1.99125364423 -1.0692640543 -2.00851160288 -1.06925132871 -2.02576947212 -1.06924140453 -2.04302692413 -1.06923440099 -2.06028437614 -1.06923019886 -2.07754147053 -1.06922885775 -2.09479868412 -1.06923037767 -2.1120557785 -1.06923478842 -2.1293131113 -1.06924197078 -2.1465704441 -1.06925198436 -2.16382807493 -1.06926488877 -2.18108576536 -1.06928062439 -2.19834393263 -1.06929919124 -2.21560227871 -1.0693205595 -2.23286128044 -1.06934478879 -2.25012058019 -1.06935676933 -2.26933085918 -1.06934329867 -2.2885427475 -1.069319278 -2.30580222607 -1.06929802895 -2.32306098938 -1.06927961111 -2.34031951427 -1.0692640245 -2.35757756233 -1.06925129891 -2.37483537197 -1.06924140453 -2.39209276438 -1.06923443079 -2.40935021639 -1.06923025846 -2.42660737038 -1.06922888756 -2.44386464357 -1.06923034787 -2.46112173796 -1.06923472881 -2.47837907076 -1.06924194098 -2.49563628435 -1.06925198436 -2.51289391517 -1.06926488877 -2.5301516056 -1.06928065419 -2.54740977288 -1.06929922104 -2.56466817856 -1.0693205595 -2.58192712069 -1.06934478879 -2.59918636084 -1.06935676933 -2.61839663982 -1.06934329867 -2.63760858774 -1.069319278 -2.65486806631 -1.06929802895 -2.67212682963 -1.06927961111 -2.68938535452 -1.0692640245 -2.70664334297 -1.06925132871 -2.72390121221 -1.06924143433 -2.74115866422 -1.06923440099 -2.75841611624 -1.06923022866 -2.77567321062 -1.06922888756 -2.79293042422 -1.06923034787 -2.8101875186 -1.06923472881 -2.8274448514 -1.06924194098 -2.84470206499 -1.06925198436 -2.86195969581 -1.06926488877 -2.87921738625 -1.06928062439 -2.89647561312 -1.06929919124 -2.9137340188 -1.0693205595 -2.93099302053 -1.06934478879 -2.94825232029 -1.06935676933 -2.96746253967 -1.06934329867 -2.98667442799 -1.069319278 -3.00393384695 -1.06929802895 -3.02119266987 -1.06927961111 -3.03845119476 -1.0692640245 -3.05570912361 -1.06925132871 -3.07296705246 -1.06924146414 -3.09022450447 -1.06923446059 -3.10748189688 -1.06923022866 -3.12473899126 -1.06922885775 --3.14118901093 -1.06923034787 --3.12393188477 -1.06923475862 --3.10667461157 -1.06924194098 --3.08941739798 -1.06925195456 --3.07215976715 -1.06926488877 --3.05490201712 -1.06928062439 --3.03764379025 -1.06929919124 --3.02038544416 -1.06932061911 --3.00312644244 -1.06934484839 --2.98586714268 -1.06935673952 --2.96665692329 -1.06934326887 --2.94744503498 -1.069319278 --2.93018561601 -1.06929802895 --2.9129268527 -1.06927961111 --2.89566832781 -1.0692640543 --2.87841033935 -1.06925135851 --2.86115241051 -1.06924143433 --2.8438949585 -1.06923443079 --2.82663750648 -1.06923022866 --2.8093804121 -1.06922885775 --2.79212319851 -1.06923034787 --2.77486610413 -1.06923472881 --2.75760877132 -1.06924194098 --2.74035143852 -1.06925198436 --2.7230938077 -1.06926488877 --2.70583617687 -1.06928062439 --2.68857800961 -1.06929919124 --2.67131960392 -1.0693205595 --2.65406060219 -1.06934478879 --2.63680130243 -1.06935676933 --2.61759102344 -1.06934329867 --2.59837913513 -1.069319278 --2.58111965656 -1.06929802895 --2.56386089325 -1.06927961111 --2.54660236835 -1.0692640543 --2.5293443799 -1.06925135851 --2.51208657026 -1.06924143433 --2.49482911825 -1.06923440099 --2.47757166624 -1.06923019886 --2.46031451225 -1.06922885775 --2.44305723906 -1.06923037767 --2.42580020428 -1.06923475862 --2.40854287148 -1.06924197078 --2.39128559828 -1.06925201416 --2.37402802706 -1.06926488877 --2.35677033663 -1.06928062439 --2.33951216936 -1.06929919124 --2.32225376367 -1.0693205595 --2.30499476195 -1.06934478879 --2.28773552179 -1.06935676933 --2.26852524281 -1.06934329867 --2.24931335449 -1.069319278 --2.23205387592 -1.06929802895 --2.21479511261 -1.06927961111 --2.19753658771 -1.0692640543 --2.18027853966 -1.06925135851 --2.16302073002 -1.06924143433 --2.14576327801 -1.06923440099 --2.12850576639 -1.06923022866 --2.11124867201 -1.06922888756 --2.09399145842 -1.06923034787 --2.07673436403 -1.06923475862 --2.05947703123 -1.06924197078 --2.04221981764 -1.06925198436 --2.02496218682 -1.06926488877 --2.00770446658 -1.06928062439 --1.99044626951 -1.06929922104 --1.97318789363 -1.0693205893 --1.9559288919 -1.06934478879 --1.93866959214 -1.06935676933 --1.91945934295 -1.06934329867 --1.90024748444 -1.069319278 --1.88298806548 -1.06929802895 --1.86572927236 -1.06927964092 --1.84847074747 -1.0692640841 --1.83121275902 -1.06925135851 --1.81395485997 -1.06924140453 --1.79669740796 -1.06923437118 --1.77943995595 -1.06923019886 --1.76218280196 -1.06922888756 --1.74492558837 -1.06923037767 --1.72766855359 -1.06923475862 --1.71041122079 -1.06924197078 --1.69315394759 -1.06925198436 --1.67589631677 -1.06926488877 --1.65863862634 -1.06928062439 --1.64138042927 -1.06929922104 --1.62412205339 -1.0693205893 --1.60686305165 -1.06934478879 --1.5896037519 -1.06935676933 --1.57039353251 -1.06934329867 --1.5511816442 -1.069319278 --1.53392216563 -1.06929802895 --1.51666340232 -1.06927961111 --1.49940487742 -1.0692640245 --1.48214688897 -1.06925132871 --1.46488901973 -1.06924143433 --1.44763156772 -1.06923440099 --1.43037414551 -1.06923022866 --1.41311702132 -1.06922888756 --1.39585974812 -1.06923034787 --1.37860265374 -1.06923472881 --1.36134532094 -1.06924194098 --1.34408807754 -1.06925198436 --1.32683047652 -1.06926488877 --1.30957278609 -1.06928062439 --1.29231458902 -1.06929919124 --1.27505621314 -1.0693205595 --1.25779724121 -1.06934478879 --1.24053791165 -1.06935676933 --1.22132763266 -1.06934329867 --1.20211574435 -1.069319278 --1.18485626578 -1.06929802895 --1.16759750247 -1.06927961111 --1.15033897758 -1.0692640543 --1.13308101893 -1.06925132871 --1.11582317948 -1.06924140453 --1.09856572747 -1.06923440099 --1.08130827546 -1.06923019886 --1.06405115128 -1.06922885775 --1.04679387808 -1.06923037767 --1.0295368135 -1.06923478842 --1.0122795105 -1.06924197078 --0.9950222224 -1.06925198436 --0.977764591575 -1.06926488877 --0.960506916046 -1.06928062439 --0.943248748779 -1.06929919124 --0.925990357995 -1.0693205595 --0.908731341362 -1.06934478879 --0.891472026706 -1.06935676933 --0.87226177752 -1.06934329867 --0.853049904108 -1.069319278 --0.835790470242 -1.06929802895 --0.818531706929 -1.06927961111 --0.801273182034 -1.0692640245 --0.78401517868 -1.06925129891 --0.766757294536 -1.06924140453 --0.749499857426 -1.06923443079 --0.732242420316 -1.06923025846 --0.71498529613 -1.06922888756 --0.697728052735 -1.06923034787 --0.680470973253 -1.06923472881 --0.663213640451 -1.06924194098 --0.645956397057 -1.06925198436 --0.628698751331 -1.06926488877 --0.611441045999 -1.06928065419 --0.594182878732 -1.06929922104 --0.576924487948 -1.0693205595 --0.559665501118 -1.06934478879 --0.542406216264 -1.06935676933 --0.523195967079 -1.06934329867 --0.503984078765 -1.069319278 --0.486724615097 -1.06929802895 --0.469465844333 -1.06927961111 --0.452207311988 -1.0692640245 --0.434949308634 -1.06925132871 --0.417691446841 -1.06924143433 --0.400434017181 -1.06923440099 --0.383176572621 -1.06923022866 --0.365919448436 -1.06922888756 --0.34866219759 -1.06923034787 --0.331405118108 -1.06923472881 --0.314147800207 -1.06924194098 --0.296890541911 -1.06925198436 --0.279632911086 -1.06926488877 --0.262375205755 -1.06928062439 --0.245117016137 -1.06929919124 --0.227858647704 -1.0693205595 --0.210599660873 -1.06934478879 --0.193340361118 -1.06935676933 --0.174130104482 -1.08650603891 --0.154915194959 -1.08648180962 --0.137655738741 -1.08646038175 --0.120396947488 -1.08644187451 --0.103138398379 -1.08642616868 --0.0858803987503 -1.08641335368 --0.0686225257814 -1.08640342951 --0.0513650793582 -1.08639633656 --0.0341076301411 -1.08639204502 --0.0168504840694 -1.08639070392 -0.000406784238293 -1.08639219403 -0.0176638702396 -1.08639660477 -0.0349212042056 -1.08640387655 -0.0521784787998 -1.08641400934 -0.0694361235946 -1.08642700315 -0.0866938326508 -1.08644282818 -0.103952031583 -1.08646160364 -0.121210422367 -1.08648318052 -0.138469435275 -1.08650755882 -0.155728746206 -1.08651956916 -0.174938872457 -1.0865060091 -0.19415063411 -1.08648183942 -0.211410101503 -1.08646041155 -0.228668902069 -1.08644187451 -0.245927456766 -1.08642616868 -0.263185456395 -1.08641332388 -0.280443318188 -1.0864033699 -0.297700770199 -1.08639630675 -0.31495822221 -1.08639204502 -0.332215353847 -1.08639070392 -0.349472619593 -1.08639222383 -0.366729713976 -1.08639663458 -0.383987061679 -1.08640390635 -0.401244342327 -1.08641403914 -0.418501988053 -1.08642703295 -0.435759693384 -1.08644288778 -0.453017883003 -1.08646160364 -0.470276281238 -1.08648315072 -0.48753529042 -1.08650758862 -0.504794597626 -1.08651965857 -0.524004742503 -1.08650606871 -0.543216511607 -1.08648183942 -0.560475960374 -1.08646041155 -0.577734723687 -1.0864418447 -0.594993263483 -1.08642613888 -0.612251281738 -1.08641332388 -0.629509165883 -1.0864033699 -0.646766632795 -1.08639630675 -0.664024084806 -1.08639204502 -0.681281208992 -1.08639070392 -0.698538482189 -1.08639222383 -0.715795576572 -1.08639663458 -0.733052909374 -1.08640390635 -0.750310197472 -1.08641400933 -0.767567843199 -1.08642697334 -0.78482554853 -1.08644285798 -0.802083745599 -1.08646160364 -0.819342121482 -1.08648315072 -0.836601138115 -1.08650755882 -0.853860452771 -1.08651959896 -0.873070582748 -1.0865060091 -0.892282351851 -1.08648180962 -0.909541800618 -1.08646041155 -0.926800593734 -1.0864418447 -0.944059163332 -1.08642613888 -0.961317151785 -1.08641332388 -0.978575006127 -1.0864033699 -0.995832458138 -1.08639630675 -1.01308995486 -1.08639204502 -1.03034710884 -1.08639070392 -1.04760435224 -1.08639219403 -1.06486144662 -1.08639660477 -1.08211877942 -1.08640387655 -1.09937605262 -1.08641400934 -1.11663368344 -1.08642703295 -1.13389137387 -1.08644288778 -1.15114957094 -1.08646160364 -1.16840797663 -1.08648312092 -1.18566700816 -1.08650752902 -1.20292630792 -1.08651962876 -1.22213640809 -1.08650606871 -1.241348207 -1.08648183942 -1.25860768557 -1.08646041155 -1.27586644888 -1.08644190431 -1.29312500358 -1.08642619848 -1.31038299203 -1.08641332388 -1.32764086127 -1.0864033401 -1.34489831328 -1.08639627695 -1.36215576529 -1.08639204502 -1.37941291928 -1.08639073372 -1.39667016268 -1.08639222383 -1.41392722726 -1.08639660477 -1.43118458986 -1.08640387654 -1.44844189286 -1.08641400933 -1.46569955349 -1.08642700315 -1.48295727372 -1.08644285798 -1.50021544099 -1.08646160364 -1.51747381687 -1.08648315072 -1.5347328186 -1.08650755882 -1.55199211836 -1.08651962876 -1.57120227814 -1.08650603891 -1.59041404724 -1.08648177981 -1.60767349601 -1.08646038175 -1.62493231893 -1.0864418447 -1.64219087362 -1.08642613888 -1.65944886208 -1.08641332388 -1.67670676112 -1.0864033401 -1.69396421313 -1.08639627695 -1.71122163534 -1.08639204502 -1.72847875953 -1.08639070392 -1.74573603272 -1.08639219403 -1.76299312711 -1.08639660477 -1.78025045991 -1.08640387655 -1.79750773311 -1.08641400934 -1.81476536393 -1.08642703295 -1.83202305436 -1.08644288778 -1.84928128123 -1.08646160364 -1.86653968692 -1.08648315072 -1.88379868865 -1.08650755882 -1.90105801821 -1.08651962876 -1.92026814818 -1.08650606871 -1.93947991729 -1.08648183942 -1.95673939586 -1.08646041155 -1.97399815917 -1.08644187451 -1.99125668407 -1.08642616868 -2.00851470232 -1.08641332388 -2.02577257156 -1.0864033699 -2.04303002358 -1.08639630675 -2.06028747559 -1.08639204502 -2.07754456997 -1.08639070392 -2.09480184317 -1.08639222383 -2.11205893755 -1.08639660477 -2.12931627035 -1.08640387654 -2.14657360315 -1.08641403914 -2.16383129358 -1.08642703295 -2.18108898401 -1.08644288778 -2.19834715128 -1.08646160364 -2.21560555697 -1.08648315072 -2.2328645587 -1.08650755882 -2.25012385845 -1.08651962876 -2.26933401823 -1.08650606871 -2.28854578734 -1.08648183942 -2.3058052659 -1.08646041155 -2.32306402921 -1.08644187451 -2.34032255411 -1.08642616868 -2.35758060217 -1.08641332388 -2.37483847141 -1.0864033699 -2.39209586382 -1.08639630675 -2.40935325622 -1.08639204502 -2.42661041021 -1.08639070392 -2.44386774302 -1.08639222383 -2.4611248374 -1.08639663458 -2.4783821702 -1.08640387655 -2.4956394434 -1.08641400934 -2.51289707422 -1.08642703295 -2.53015476465 -1.08644288778 -2.54741293192 -1.08646160364 -2.5646713376 -1.08648315072 -2.58193033934 -1.08650755882 -2.59918963909 -1.08651962876 -2.61839979887 -1.08650606871 -2.63761156798 -1.08648183942 -2.65487104654 -1.08646041155 -2.67212986946 -1.0864418447 -2.68938839435 -1.08642613888 -2.70664638281 -1.08641332388 -2.72390431166 -1.0864033699 -2.74116176367 -1.08639630675 -2.75841921568 -1.08639204502 -2.77567636966 -1.08639070392 -2.79293358326 -1.08639219403 -2.81019067765 -1.08639660477 -2.82744801044 -1.08640390635 -2.84470522404 -1.08641403914 -2.86196285486 -1.08642703295 -2.87922060489 -1.08644288778 -2.89647883177 -1.08646160364 -2.91373717785 -1.08648312092 -2.93099617958 -1.08650752902 -2.94825553894 -1.08651959896 -2.96746569872 -1.08650603891 -2.98667746782 -1.08648180962 -3.00393688679 -1.08646038175 -3.0211957097 -1.08644187451 -3.0384542346 -1.08642616868 -3.05571222305 -1.08641335368 -3.0729701519 -1.08640342951 -3.09022760391 -1.08639633656 -3.10748505592 -1.08639204502 -3.1247421503 -1.08639070392 --3.14118591149 -1.08639219403 --3.12392878532 -1.08639660477 --3.10667145253 -1.08640387655 --3.08941423893 -1.08641400934 --3.0721566081 -1.08642700315 --3.05489879847 -1.08644282818 --3.03764057159 -1.08646160364 --3.02038222551 -1.08648318052 --3.00312322378 -1.08650755882 --2.98586392403 -1.08651956916 --2.96665382385 -1.0865060091 --2.94744205475 -1.08648183942 --2.93018257618 -1.08646041155 --2.91292381287 -1.08644187451 --2.89566528797 -1.08642616868 --2.87840723991 -1.08641332388 --2.86114931107 -1.0864033699 --2.84389185905 -1.08639630675 --2.82663440704 -1.08639204502 --2.80937731266 -1.08639070392 --2.79212003946 -1.08639222383 --2.77486294508 -1.08639663458 --2.75760561228 -1.08640390635 --2.74034827948 -1.08641403914 --2.72309064865 -1.08642703295 --2.70583295822 -1.08644288778 --2.68857473135 -1.08646160364 --2.67131632566 -1.08648315072 --2.65405732393 -1.08650758862 --2.63679802418 -1.08651965857 --2.6175878644 -1.08650606871 --2.59837609529 -1.08648183942 --2.58111667633 -1.08646041155 --2.56385791302 -1.0864418447 --2.54659932852 -1.08642613888 --2.52934134007 -1.08641332388 --2.51208353043 -1.0864033699 --2.49482607842 -1.08639630675 --2.4775686264 -1.08639204502 --2.46031147241 -1.08639070392 --2.44305413961 -1.08639222383 --2.42579704523 -1.08639663458 --2.40853971243 -1.08640390635 --2.39128243923 -1.08641400933 --2.37402480841 -1.08642697334 --2.35676711798 -1.08644285798 --2.33950895071 -1.08646160364 --2.32225054502 -1.08648315072 --2.30499154329 -1.08650755882 --2.28773224354 -1.08651959896 --2.26852208376 -1.0865060091 --2.24931031465 -1.08648180962 --2.23205083608 -1.08646041155 --2.21479201317 -1.0864418447 --2.19753348827 -1.08642613888 --2.18027549982 -1.08641332388 --2.16301763058 -1.0864033699 --2.14576017857 -1.08639630675 --2.12850266695 -1.08639204502 --2.11124551296 -1.08639070392 --2.09398829937 -1.08639219403 --2.07673120499 -1.08639660477 --2.05947387219 -1.08640387655 --2.04221665859 -1.08641400934 --2.02495902777 -1.08642703295 --2.00770127773 -1.08644288778 --1.99044308066 -1.08646160364 --1.97318470478 -1.08648312092 --1.95592564344 -1.08650752902 --1.93866631388 -1.08651962876 --1.91945621371 -1.08650606871 --1.90024447441 -1.08648183942 --1.88298502565 -1.08646041155 --1.86572620273 -1.08644190431 --1.84846764803 -1.08642619848 --1.83120965958 -1.08641332388 --1.81395176053 -1.0864033401 --1.79669430852 -1.08639627695 --1.77943685651 -1.08639204502 --1.76217970252 -1.08639073372 --1.74492245912 -1.08639222383 --1.72766539454 -1.08639660477 --1.71040806174 -1.08640387654 --1.69315078855 -1.08641400933 --1.67589315772 -1.08642700315 --1.65863543749 -1.08644285798 --1.64137721062 -1.08646160364 --1.62411883474 -1.08648315072 --1.606859833 -1.08650755882 --1.58960050344 -1.08651962876 --1.57039037347 -1.08650603891 --1.55117860436 -1.08648177981 --1.5339191258 -1.08646038175 --1.51666036248 -1.0864418447 --1.49940183759 -1.08642613888 --1.48214381933 -1.08641332388 --1.46488595009 -1.0864033401 --1.44762849808 -1.08639627695 --1.43037104607 -1.08639204502 --1.41311389208 -1.08639070392 --1.39585661888 -1.08639219403 --1.3785995245 -1.08639660477 --1.36134216189 -1.08640387655 --1.3440848887 -1.08641400934 --1.32682725787 -1.08642703295 --1.30956956744 -1.08644288778 --1.29231137037 -1.08646160364 --1.27505299449 -1.08648315072 --1.25779399276 -1.08650755882 --1.2405346632 -1.08651962876 --1.22132450342 -1.08650606871 --1.20211273432 -1.08648183942 --1.18485328555 -1.08646041155 --1.16759449244 -1.08644187451 --1.15033593774 -1.08642616868 --1.13307794929 -1.08641332388 --1.11582008004 -1.0864033699 --1.09856262803 -1.08639630675 --1.08130517602 -1.08639204502 --1.06404805183 -1.08639070392 --1.04679077864 -1.08639222383 --1.02953368425 -1.08639660477 --1.01227635145 -1.08640387654 --0.995019063353 -1.08641403914 --0.977761402726 -1.08642703295 --0.960503712296 -1.08644288778 --0.943245559931 -1.08646160364 --0.925987154245 -1.08648315072 --0.908728137612 -1.08650755882 --0.891468808055 -1.08651962876 --0.872258663177 -1.08650606871 --0.853046894074 -1.08648183942 --0.835787430406 -1.08646041155 --0.818528652191 -1.08644187451 --0.801270127296 -1.08642616868 --0.784012109041 -1.08641332388 --0.766754195094 -1.0864033699 --0.749496757984 -1.08639630675 --0.732239320874 -1.08639204502 --0.714982181787 -1.08639070392 --0.697724923491 -1.08639222383 --0.680467844009 -1.08639663458 --0.663210496306 -1.08640387655 --0.645953223109 -1.08641400934 --0.628695577383 -1.08642703295 --0.611437857151 -1.08644288778 --0.594179660082 -1.08646160364 --0.576921269297 -1.08648315072 --0.559662267566 -1.08650755882 --0.542402967811 -1.08651962876 --0.523192837834 -1.08650606871 --0.50398106128 -1.08648183942 --0.486721597612 -1.08646041155 --0.469462804496 -1.0864418447 --0.452204249799 -1.08642613888 --0.434946253896 -1.08641332388 --0.417688377201 -1.0864033699 --0.400430932641 -1.08639630675 --0.38317348063 -1.08639204502 --0.365916326642 -1.08639070392 --0.348659060896 -1.08639219403 --0.331401973963 -1.08639660477 --0.31414463371 -1.08640390635 --0.296887367964 -1.08641403914 --0.279629729688 -1.08642703295 --0.262372016907 -1.08644288778 --0.245113816112 -1.08646160364 --0.227855425328 -1.08648312092 --0.210596427321 -1.08650752902 --0.193337112665 -1.08651959896 --0.174126964063 -1.10364437103 --0.154912214726 -1.10361996293 --0.137652751058 -1.10359838605 --0.120393946767 -1.1035797596 --0.103135382756 -1.10356390476 --0.0858773700893 -1.10355100035 --0.0686194850132 -1.10354098678 --0.0513620264828 -1.10353380442 --0.0341045637615 -1.10352951288 --0.0168474055827 -1.10352820158 -0.000409875530748 -1.1035297215 -0.0176669755019 -1.10353413224 -0.0349243204109 -1.10354146362 -0.0521816080436 -1.10355168581 -0.069439268671 -1.10356476903 -0.086696986109 -1.10358071327 -0.103955198079 -1.10359960795 -0.12121360004 -1.10362136364 -0.138472620398 -1.10364595056 -0.155731949955 -1.1036580503 -0.174941964448 -1.10364437103 -0.194153614342 -1.10361999273 -0.211413096636 -1.10359841585 -0.228671908379 -1.1035797596 -0.245930474251 -1.10356390476 -0.263188488781 -1.10355094075 -0.280446372926 -1.10354092717 -0.297703832388 -1.10353380442 -0.314961284399 -1.10352951288 -0.332218430936 -1.10352817178 -0.349475711584 -1.1035297215 -0.366732820868 -1.10353416204 -0.383990176022 -1.10354146362 -0.40124746412 -1.10355168581 -0.418505124748 -1.10356479883 -0.435762837529 -1.10358077288 -0.453021042049 -1.10359963775 -0.470279447735 -1.10362136364 -0.487538471818 -1.10364598036 -0.504797801375 -1.10365810991 -0.524007827044 -1.10364440083 -0.54321949184 -1.10361999273 -0.560478955507 -1.10359841585 -0.577737733722 -1.1035797298 -0.59499630332 -1.10356387496 -0.612254336476 -1.10355094075 -0.629512235522 -1.10354092717 -0.646769702435 -1.10353380442 -0.664027154445 -1.10352951288 -0.681284293532 -1.10352817178 -0.69854156673 -1.10352969169 -0.715798690915 -1.10353413224 -0.733056038618 -1.10354146362 -0.750313311815 -1.10355165601 -0.767570972442 -1.10356473923 -0.784828692675 -1.10358074307 -0.802086904645 -1.10359963775 -0.81934531033 -1.10362136364 -0.836604326963 -1.10364595056 -0.853863656521 -1.1036580801 -0.87307369709 -1.10364437103 -0.892285332084 -1.10361996293 -0.90954478085 -1.10359841585 -0.926803588867 -1.1035797298 -0.944062173367 -1.10356387496 -0.961320176721 -1.10355097055 -0.978578045964 -1.10354095697 -0.995835527777 -1.10353380442 -1.01309302449 -1.10352951288 -1.03035020828 -1.10352817178 -1.04760748148 -1.10352969169 -1.06486454606 -1.10353413224 -1.08212187886 -1.10354146362 -1.09937918186 -1.10355168581 -1.11663684249 -1.10356479883 -1.13389453292 -1.10358077288 -1.15115275979 -1.10359963775 -1.16841116548 -1.10362133384 -1.18567016721 -1.10364595056 -1.20292949676 -1.10365813971 -1.22213950753 -1.10364443064 -1.24135118723 -1.10361999273 -1.2586106658 -1.10359841585 -1.27586945891 -1.1035797596 -1.29312801361 -1.10356390476 -1.31038600206 -1.10355094075 -1.32764390111 -1.10354092717 -1.34490135312 -1.10353380442 -1.36215880513 -1.10352951288 -1.37941598892 -1.10352817178 -1.39667326212 -1.10352969169 -1.4139303565 -1.10353413224 -1.4311877191 -1.10354143381 -1.44844502211 -1.10355165601 -1.46570268273 -1.10356476903 -1.48296040296 -1.10358074307 -1.50021860004 -1.10359960795 -1.51747700572 -1.10362133384 -1.53473603725 -1.10364595056 -1.55199533701 -1.10365810991 -1.57120534778 -1.10364440083 -1.59041699767 -1.10361993313 -1.60767647624 -1.10359838605 -1.62493529916 -1.1035797298 -1.64219385386 -1.10356387496 -1.65945187211 -1.10355094075 -1.67670977116 -1.10354089737 -1.69396722317 -1.10353377462 -1.71122470498 -1.10352951288 -1.72848185897 -1.10352817178 -1.74573913217 -1.10352969169 -1.76299622655 -1.10353413224 -1.78025355935 -1.10354146362 -1.79751086235 -1.10355168581 -1.81476852298 -1.10356479883 -1.83202624321 -1.10358077288 -1.84928447008 -1.10359963775 -1.86654284596 -1.10362139344 -1.8838018477 -1.10364598036 -1.90106120706 -1.10365810991 -1.92027124763 -1.10364443064 -1.93948289752 -1.10361999273 -1.95674237609 -1.10359841585 -1.9740011692 -1.1035797596 -1.9912597239 -1.10356390476 -2.00851774216 -1.10355094075 -2.0257756114 -1.10354092717 -2.04303306341 -1.10353380442 -2.06029051542 -1.10352951288 -2.07754766941 -1.10352820158 -2.09480500221 -1.1035297215 -2.1120620966 -1.10353410244 -2.1293194294 -1.10354143381 -2.1465767622 -1.10355168581 -2.16383445263 -1.10356479883 -2.18109214306 -1.10358077288 -2.19835031032 -1.10359963775 -2.21560871601 -1.10362136364 -2.23286771775 -1.10364595056 -2.2501270771 -1.10365810991 -2.26933711767 -1.10364443064 -2.28854870796 -1.10361999273 -2.30580818653 -1.10359841585 -2.32306700945 -1.1035797596 -2.34032553434 -1.10356390476 -2.3575835824 -1.10355094075 -2.37484151125 -1.10354092717 -2.39209896326 -1.10353380442 -2.40935635567 -1.10352951288 -2.42661345005 -1.10352817178 -2.44387078285 -1.1035297215 -2.46112787724 -1.10353416204 -2.47838521004 -1.10354146362 -2.49564254284 -1.10355168581 -2.51290023327 -1.10356479883 -2.5301579237 -1.10358077288 -2.54741609097 -1.10359960795 -2.56467449665 -1.10362133384 -2.58193355799 -1.10364595056 -2.59919291735 -1.10365810991 -2.61840295792 -1.10364443064 -2.63761460781 -1.10361999273 -2.65487408638 -1.10359841585 -2.6721329093 -1.10357969999 -2.68939143419 -1.10356384516 -2.70664942264 -1.10355094075 -2.72390735149 -1.10354092717 -2.7411648035 -1.10353380442 -2.75842225551 -1.10352951288 -2.77567946911 -1.10352817178 -2.7929366827 -1.10352969169 -2.81019377709 -1.10353413224 -2.82745116949 -1.10354146362 -2.84470838308 -1.10355168581 -2.86196601391 -1.10356479883 -2.87922382355 -1.10358077288 -2.89648205042 -1.10359963775 -2.9137403965 -1.10362133384 -2.93099939823 -1.10364592076 -2.94825869799 -1.1036580503 -2.96746873856 -1.10364437103 -2.98668044805 -1.10361996293 -3.00393992662 -1.10359838605 -3.02119868994 -1.1035797596 -3.03845721483 -1.10356390476 -3.05571526289 -1.10355100035 -3.07297319174 -1.10354098678 -3.09023064375 -1.10353380442 -3.10748809576 -1.10352951288 -3.12474524975 -1.10352820158 --3.14118281205 -1.1035297215 --3.12392568588 -1.10353413224 --3.10666829348 -1.10354146362 --3.08941107989 -1.10355168581 --3.07215344906 -1.10356476903 --3.05489563942 -1.10358071327 --3.03763741255 -1.10359960795 --3.02037900686 -1.10362136364 --3.00312000513 -1.10364595056 --2.98586076498 -1.1036580503 --2.96665072441 -1.10364437103 --2.94743901491 -1.10361999273 --2.93017953634 -1.10359841585 --2.91292077303 -1.1035797596 --2.89566224814 -1.10356390476 --2.87840420008 -1.10355094075 --2.86114627123 -1.10354092717 --2.84388881922 -1.10353380442 --2.82663136721 -1.10352951288 --2.80937421322 -1.10352817178 --2.79211688042 -1.1035297215 --2.77485978603 -1.10353416204 --2.75760245323 -1.10354146362 --2.74034512043 -1.10355168581 --2.72308748961 -1.10356479883 --2.70582979918 -1.10358077288 --2.68857157231 -1.10359963775 --2.67131316662 -1.10362136364 --2.65405416489 -1.10364598036 --2.63679480552 -1.10365810991 --2.61758476495 -1.10364440083 --2.59837317467 -1.10361999273 --2.5811137557 -1.10359841585 --2.56385493278 -1.1035797298 --2.54659628868 -1.10356387496 --2.52933824063 -1.10355094075 --2.51208043098 -1.10354092717 --2.49482297897 -1.10353380442 --2.47756552696 -1.10352951288 --2.46030843258 -1.10352817178 --2.44305109977 -1.10352969169 --2.42579394579 -1.10353413224 --2.40853661299 -1.10354146362 --2.39127933979 -1.10355165601 --2.37402164936 -1.10356473923 --2.35676395893 -1.10358074307 --2.33950579167 -1.10359963775 --2.32224738598 -1.10362136364 --2.30498838425 -1.10364595056 --2.28772902488 -1.1036580801 --2.26851892471 -1.10364437103 --2.24930733442 -1.10361996293 --2.23204791546 -1.10359841585 --2.21478903294 -1.1035797298 --2.19753044844 -1.10356387496 --2.18027245998 -1.10355097055 --2.16301459074 -1.10354095697 --2.14575713873 -1.10353380442 --2.12849962711 -1.10352951288 --2.11124241352 -1.10352817178 --2.09398519993 -1.10352969169 --2.07672810554 -1.10353413224 --2.05947071314 -1.10354146362 --2.04221349955 -1.10355168581 --2.02495586872 -1.10356479883 --2.00769811869 -1.10358077288 --1.99043992162 -1.10359963775 --1.97318151593 -1.10362133384 --1.9559224546 -1.10364595056 --1.93866312504 -1.10365813971 --1.91945314407 -1.10364443064 --1.90024149418 -1.10361999273 --1.88298201561 -1.10359841585 --1.86572319269 -1.1035797596 --1.84846460819 -1.10356390476 --1.83120661974 -1.10355094075 --1.81394872069 -1.10354092717 --1.79669126868 -1.10353380442 --1.77943381667 -1.10352951288 --1.76217666268 -1.10352817178 --1.74491938949 -1.10352969169 --1.7276622653 -1.10353413224 --1.7104049325 -1.10354143381 --1.6931476593 -1.10355165601 --1.67588999867 -1.10356476903 --1.65863224864 -1.10358074307 --1.64137402177 -1.10359960795 --1.62411564588 -1.10362133384 --1.60685664415 -1.10364595056 --1.58959731459 -1.10365810991 --1.57038727403 -1.10364440083 --1.55117562413 -1.10361993313 --1.53391614556 -1.10359838605 --1.51665735245 -1.1035797298 --1.49939879775 -1.10356387496 --1.48214074969 -1.10355094075 --1.46488288045 -1.10354089737 --1.44762542844 -1.10353377462 --1.43036797643 -1.10352951288 --1.41311082244 -1.10352817178 --1.39585351944 -1.10352969169 --1.37859642506 -1.10353413224 --1.36133906245 -1.10354146362 --1.34408175945 -1.10355168581 --1.32682409882 -1.10356479883 --1.3095664084 -1.10358077288 --1.29230818153 -1.10359963775 --1.27504977584 -1.10362139344 --1.25779077411 -1.10364598036 --1.24053144455 -1.10365810991 --1.22132140398 -1.10364443064 --1.20210975409 -1.10361999273 --1.18485030532 -1.10359841585 --1.1675914824 -1.1035797596 --1.1503328979 -1.10356390476 --1.13307490945 -1.10355094075 --1.1158170402 -1.10354092717 --1.09855958819 -1.10353380442 --1.08130213618 -1.10352951288 --1.06404495239 -1.10352820158 --1.0467876792 -1.1035297215 --1.02953058482 -1.10353410244 --1.01227322221 -1.10354143381 --0.995015949009 -1.10355168581 --0.977758273482 -1.10356479883 --0.960500538349 -1.10358077288 --0.943242371082 -1.10359963775 --0.925983965397 -1.10362136364 --0.908724933862 -1.10364595056 --0.891465619206 -1.10365810991 --0.872255593538 -1.10364443064 --0.853043928743 -1.10361999273 --0.835784435272 -1.10359841585 --0.818525642156 -1.1035797596 --0.801267117262 -1.10356390476 --0.784009084106 -1.10355094075 --0.766751155257 -1.10354092717 --0.749493703246 -1.10353380442 --0.732236281037 -1.10352951288 --0.714979156852 -1.10352817178 --0.697721853853 -1.1035297215 --0.680464729667 -1.10353416204 --0.663207367063 -1.10354146362 --0.645950078964 -1.10355168581 --0.628692433238 -1.10356479883 --0.611434698105 -1.10358077288 --0.594176486135 -1.10359960795 --0.57691809535 -1.10362133384 --0.559659078717 -1.10364595056 --0.54239974916 -1.10365810991 --0.523189723492 -1.10364443064 --0.503978073597 -1.10361999273 --0.486718609929 -1.10359841585 --0.469459801912 -1.10357969999 --0.452201224864 -1.10356384516 --0.434943221509 -1.10355094075 --0.417685344815 -1.10354092717 --0.400427885353 -1.10353380442 --0.383170418441 -1.10352951288 --0.365913249552 -1.10352817178 --0.348655968905 -1.10352969169 --0.331398867071 -1.10353413224 --0.314141519368 -1.10354146362 --0.29688423872 -1.10355168581 --0.279626578093 -1.10356479883 --0.262368857861 -1.10358077288 --0.24511064589 -1.10359963775 --0.22785224393 -1.10362133384 --0.210593231022 -1.10364592076 --0.193333901465 -1.1036580503 --0.174123868346 -1.1207614839 --0.154909286648 -1.12073686719 --0.137649796903 -1.12071511149 --0.120390977711 -1.12069630623 --0.10313240625 -1.12068036199 --0.0858743805438 -1.12066739797 --0.0686164814979 -1.12065729499 --0.0513590117916 -1.12065005303 --0.0341015374288 -1.12064576149 --0.0168443652801 -1.12064445019 -0.000412928173318 -1.1206459701 -0.0176700407173 -1.12065041065 -0.0349273988977 -1.12065777183 -0.0521846981719 -1.12066805363 -0.0694423709065 -1.12068128586 -0.086700104177 -1.12069737911 -0.103958329186 -1.12071633339 -0.121216738597 -1.1207382679 -0.138475771994 -1.12076309323 -0.155735120177 -1.12077525258 -0.174945019186 -1.1207614541 -0.194156553596 -1.12073686719 -0.211416047067 -1.12071511149 -0.228674869985 -1.12069630623 -0.245933450758 -1.12068036199 -0.263191469013 -1.12066736817 -0.280449368059 -1.12065723539 -0.297706849873 -1.12065002322 -0.314964316785 -1.12064573169 -0.332221470773 -1.12064439058 -0.349478758871 -1.1206459403 -0.366735890507 -1.12065041065 -0.383993253112 -1.12065777183 -0.40125054121 -1.12066805363 -0.418508216739 -1.12068125605 -0.435765944421 -1.12069734931 -0.453024163842 -1.12071639299 -0.470282584429 -1.1207382977 -0.487541615963 -1.12076306343 -0.50480094552 -1.12077525258 -0.524010866881 -1.1207614541 -0.543222427368 -1.12073686719 -0.560481905937 -1.12071511149 -0.577740713954 -1.12069630623 -0.594999298453 -1.12068036199 -0.612257346511 -1.12066733837 -0.629515245557 -1.12065720558 -0.646772712469 -1.12065002322 -0.664030194282 -1.12064573169 -0.68128734827 -1.12064439058 -0.698544621467 -1.1206459403 -0.715801730752 -1.12065041065 -0.733059093356 -1.12065777183 -0.750316396355 -1.12066805363 -0.767574071884 -1.12068125605 -0.784831807017 -1.12069734931 -0.802090018987 -1.12071636319 -0.819348439574 -1.1207382679 -0.836607471109 -1.12076306343 -0.853866815567 -1.12077528238 -0.873076751828 -1.1207614839 -0.892288267613 -1.12073686719 -0.90954773128 -1.12071511149 -0.926806554198 -1.12069630623 -0.944065138698 -1.12068036199 -0.961323156953 -1.12066736817 -0.978581055999 -1.12065723539 -0.995838552713 -1.12065002322 -1.01309603453 -1.12064576149 -1.03035321832 -1.12064442038 -1.04761052132 -1.1206459403 -1.0648676157 -1.12065041065 -1.0821249485 -1.12065777183 -1.0993822515 -1.12066805363 -1.11663994193 -1.12068128586 -1.13389766216 -1.12069737911 -1.15115588903 -1.12071639299 -1.16841429472 -1.1207382977 -1.18567332625 -1.12076309323 -1.20293268561 -1.12077531218 -1.22214257717 -1.1207614839 -1.24135410786 -1.12073686719 -1.25861361623 -1.12071514129 -1.27587243915 -1.12069633603 -1.29313099384 -1.12068036199 -1.31038901209 -1.12066736817 -1.32764691114 -1.12065723539 -1.34490436315 -1.12065002322 -1.36216184497 -1.12064573169 -1.37941905856 -1.12064439058 -1.39667633176 -1.1206459403 -1.41393342614 -1.12065041065 -1.43119081855 -1.12065777183 -1.44844812155 -1.12066805363 -1.46570575237 -1.12068125605 -1.48296350241 -1.12069734931 -1.50022175908 -1.12071636319 -1.51748016477 -1.1207382679 -1.5347391963 -1.12076306343 -1.55199852586 -1.12077528238 -1.57120841742 -1.1207614839 -1.5904199481 -1.12073686719 -1.60767942667 -1.12071511149 -1.62493824959 -1.12069633603 -1.64219683408 -1.12068039179 -1.65945485234 -1.12066733837 -1.67671275139 -1.12065720558 -1.6939702332 -1.12065002322 -1.71122771502 -1.12064576149 -1.728484869 -1.12064442038 -1.745742172 -1.1206459403 -1.76299929619 -1.12065041065 -1.78025662899 -1.12065777183 -1.79751393199 -1.12066805363 -1.81477162242 -1.12068128586 -1.83202937245 -1.12069737911 -1.84928759932 -1.12071636319 -1.86654597521 -1.1207382977 -1.88380500674 -1.12076309323 -1.9010643661 -1.12077528238 -1.92027428747 -1.1207614839 -1.93948581815 -1.12073686719 -1.95674529672 -1.12071514129 -1.97400414944 -1.12069633603 -1.99126273393 -1.12068036199 -2.00852069258 -1.12066736817 -2.02577859163 -1.12065723539 -2.04303610325 -1.12065002322 -2.06029355526 -1.12064576149 -2.07755070925 -1.12064445019 -2.09480804205 -1.1206459701 -2.11206519604 -1.12065041065 -2.12932252884 -1.12065777183 -2.14657980204 -1.12066805363 -2.16383749247 -1.12068128586 -2.1810952425 -1.12069737911 -2.19835340977 -1.12071639299 -2.21561181545 -1.1207382977 -2.23287087679 -1.12076306343 -2.25013023615 -1.12077528238 -2.26934015751 -1.1207614839 -2.2885516882 -1.12073686719 -2.30581116676 -1.12071511149 -2.32306998968 -1.12069630623 -2.34032851457 -1.12068036199 -2.35758656263 -1.12066736817 -2.37484449148 -1.12065723539 -2.39210194349 -1.12065002322 -2.4093593955 -1.12064576149 -2.42661654949 -1.12064439058 -2.44387388229 -1.1206459105 -2.46113097668 -1.12065041065 -2.47838830948 -1.12065777183 -2.49564564228 -1.12066805363 -2.51290333271 -1.12068125605 -2.53016102314 -1.12069734931 -2.54741925001 -1.12071636319 -2.5646776557 -1.1207382679 -2.58193671703 -1.12076306343 -2.59919607639 -1.12077528238 -2.61840599775 -1.1207614839 -2.63761758804 -1.12073686719 -2.65487706661 -1.12071511149 -2.67213582992 -1.12069627642 -2.68939441443 -1.12068033218 -2.70665246248 -1.12066733837 -2.72391033173 -1.12065720558 -2.74116778374 -1.12065002322 -2.75842529535 -1.12064576149 -2.77568250895 -1.12064442038 -2.79293972254 -1.1206459403 -2.81019681692 -1.12065041065 -2.82745426893 -1.12065777183 -2.84471154213 -1.12066805363 -2.86196911335 -1.12068128586 -2.87922686339 -1.12069737911 -2.89648514986 -1.12071639299 -2.91374361515 -1.1207382977 -2.93100261688 -1.12076306343 -2.94826185703 -1.12077528238 -2.96747177839 -1.1207614839 -2.98668336868 -1.12073686719 -3.00394284725 -1.12071511149 -3.02120167017 -1.12069630623 -3.03846025467 -1.12068036199 -3.05571824312 -1.12066739797 -3.07297617197 -1.12065729499 -3.09023368359 -1.12065005303 -3.1074911356 -1.12064576149 -3.12474828958 -1.12064445019 --3.14117977221 -1.1206459701 --3.12392264605 -1.12065041065 --3.10666519404 -1.12065777183 --3.08940792084 -1.12066805363 --3.07215034962 -1.12068128586 --3.05489259958 -1.12069737911 --3.03763431311 -1.12071633339 --3.02037584782 -1.1207382679 --3.00311684608 -1.12076309323 --2.98585760593 -1.12077525258 --2.96664768457 -1.1207614541 --2.94743609428 -1.12073686719 --2.93017661572 -1.12071511149 --2.9129177928 -1.12069630623 --2.8956592083 -1.12068036199 --2.87840121985 -1.12066736817 --2.861143291 -1.12065723539 --2.84388577938 -1.12065002322 --2.82662832737 -1.12064573169 --2.80937117338 -1.12064439058 --2.79211384058 -1.1206459403 --2.77485668659 -1.12065041065 --2.75759935379 -1.12065777183 --2.74034208059 -1.12066805363 --2.72308439016 -1.12068125605 --2.70582664013 -1.12069734931 --2.68856847286 -1.12071639299 --2.67131006718 -1.1207382977 --2.65405100584 -1.12076306343 --2.63679164648 -1.12077525258 --2.61758172512 -1.1207614541 --2.59837025404 -1.12073686719 --2.58111077547 -1.12071511149 --2.56385189295 -1.12069630623 --2.54659330845 -1.12068036199 --2.52933526039 -1.12066733837 --2.51207739115 -1.12065720558 --2.49481993914 -1.12065002322 --2.47756248713 -1.12064573169 --2.46030533314 -1.12064439058 --2.44304800033 -1.1206459403 --2.42579090595 -1.12065041065 --2.40853357315 -1.12065777183 --2.39127624035 -1.12066805363 --2.37401854992 -1.12068125605 --2.35676085949 -1.12069734931 --2.33950269222 -1.12071636319 --2.32224428654 -1.1207382679 --2.3049852252 -1.12076306343 --2.28772586584 -1.12077528238 --2.26851588488 -1.1207614839 --2.24930435419 -1.12073686719 --2.23204493523 -1.12071511149 --2.21478611231 -1.12069630623 --2.19752752781 -1.12068036199 --2.18026947975 -1.12066736817 --2.16301161051 -1.12065723539 --2.1457541585 -1.12065002322 --2.12849664688 -1.12064576149 --2.11123943329 -1.12064442038 --2.09398216009 -1.1206459403 --2.07672506571 -1.12065041065 --2.0594676733 -1.12065777183 --2.0422104001 -1.12066805363 --2.02495276928 -1.12068128586 --2.00769501924 -1.12069737911 --1.99043676257 -1.12071639299 --1.97317835689 -1.1207382977 --1.95591932536 -1.12076309323 --1.93865996599 -1.12077531218 --1.91945007444 -1.1207614839 --1.90023854375 -1.12073686719 --1.88297903538 -1.12071514129 --1.86572021246 -1.12069633603 --1.84846165776 -1.12068036199 --1.83120363951 -1.12066736817 --1.81394571066 -1.12065723539 --1.79668825865 -1.12065002322 --1.77943077683 -1.12064573169 --1.76217362285 -1.12064439058 --1.74491634965 -1.1206459403 --1.72765919566 -1.12065041065 --1.71040186286 -1.12065777183 --1.69314458966 -1.12066805363 --1.67588689923 -1.12068125605 --1.6586291492 -1.12069734931 --1.64137092233 -1.12071636319 --1.62411251664 -1.1207382679 --1.60685348511 -1.12076306343 --1.58959415555 -1.12077528238 --1.57038423419 -1.1207614839 --1.55117270351 -1.12073686719 --1.53391322494 -1.12071511149 --1.51665440202 -1.12069633603 --1.49939581752 -1.12068039179 --1.48213776946 -1.12066733837 --1.46487987041 -1.12065720558 --1.4476223886 -1.12065002322 --1.43036493659 -1.12064576149 --1.4131077826 -1.12064442038 --1.3958504498 -1.1206459403 --1.37859335542 -1.12065041065 --1.36133602261 -1.12065777183 --1.34407868981 -1.12066805363 --1.32682099938 -1.12068128586 --1.30956327915 -1.12069737911 --1.29230505228 -1.12071636319 --1.27504664659 -1.1207382977 --1.25778764486 -1.12076309323 --1.2405282855 -1.12077528238 --1.22131836415 -1.1207614839 --1.20210683346 -1.12073686719 --1.18484732509 -1.12071514129 --1.16758850217 -1.12069633603 --1.15032991767 -1.12068036199 --1.13307189941 -1.12066736817 --1.11581403017 -1.12065723539 --1.09855657816 -1.12065002322 --1.08129909634 -1.12064576149 --1.06404188275 -1.12064445019 --1.04678460956 -1.1206459701 --1.02952751518 -1.12065041065 --1.01227012277 -1.12065777183 --0.995012834668 -1.12066805363 --0.977755174041 -1.12068128586 --0.960497424006 -1.12069737911 --0.943239241838 -1.12071639299 --0.925980836153 -1.1207382977 --0.908721774816 -1.12076306343 --0.89146246016 -1.12077528238 --0.872252553702 -1.1207614839 --0.853040978312 -1.12073686719 --0.835781484842 -1.12071511149 --0.818522691727 -1.12069630623 --0.80126413703 -1.12068036199 --0.784006088972 -1.12066736817 --0.766748175025 -1.12065723539 --0.749490708113 -1.12065002322 --0.7322332412 -1.12064576149 --0.714976087212 -1.12064439058 --0.697718784213 -1.1206459105 --0.680461660028 -1.12065041065 --0.663204282522 -1.12065777183 --0.645946979523 -1.12066805363 --0.628689318895 -1.12068125605 --0.611431598664 -1.12069734931 --0.594173371792 -1.12071636319 --0.576914951205 -1.1207382679 --0.559655934572 -1.12076306343 --0.542396590114 -1.12077528238 --0.523186653853 -1.1207614839 --0.503975115716 -1.12073686719 --0.486715652049 -1.12071511149 --0.469456836581 -1.12069627642 --0.452198252082 -1.12068033218 --0.434940226376 -1.12066733837 --0.417682334781 -1.12065720558 --0.400424860418 -1.12065002322 --0.383167386055 -1.12064576149 --0.365910209715 -1.12064442038 --0.348652906716 -1.1206459403 --0.331395797431 -1.12065041065 --0.314138442278 -1.12065777183 --0.296881146729 -1.12066805363 --0.279623478651 -1.12068128586 --0.262365743518 -1.12069737911 --0.245107520372 -1.12071639299 --0.227849107236 -1.1207382977 --0.210590075702 -1.12076306343 --0.193330734968 -1.12077528238 --0.174120824784 -1.14050865173 --0.154904611409 -1.1404838264 --0.137645099312 -1.14046189189 --0.120386263356 -1.14044290781 --0.103127673268 -1.14042684436 --0.0858696270734 -1.14041379094 --0.0686117084697 -1.14040359855 --0.051354217343 -1.14039632678 --0.0340967234224 -1.14039200544 --0.016839531716 -1.14039063454 -0.000417781993747 -1.14039218426 -0.0176749140955 -1.14039668441 -0.0349322929979 -1.14040410519 -0.0521896127612 -1.14041447639 -0.0694473059848 -1.14042779803 -0.0867050606757 -1.14044401049 -0.103963306174 -1.14046314359 -0.121221739799 -1.14048525691 -0.138480789959 -1.14051026106 -0.155740149319 -1.14052253961 -0.17494988069 -1.14050865173 -0.194161243737 -1.1404838562 -0.211420744657 -1.14046189189 -0.228679582476 -1.14044290781 -0.245938185602 -1.14042684436 -0.263196222484 -1.14041376114 -0.280454136431 -1.14040353894 -0.297711640597 -1.14039626717 -0.314969137311 -1.14039194584 -0.332226321101 -1.14039060473 -0.349483624101 -1.14039215446 -0.366740763187 -1.14039665461 -0.383998140693 -1.14040410519 -0.401255458593 -1.14041447639 -0.418513156474 -1.14042776823 -0.435770906508 -1.14044398069 -0.453029148281 -1.14046317339 -0.470287583768 -1.14048528671 -0.487546637654 -1.14051026106 -0.504805974662 -1.14052253961 -0.524015709758 -1.14050865173 -0.543227091432 -1.1404838562 -0.560486599803 -1.14046189189 -0.577745437622 -1.14044290781 -0.595004037023 -1.14042684436 -0.61226208508 -1.14041373134 -0.629519999027 -1.14040350914 -0.646777495742 -1.14039626717 -0.664035007358 -1.14039194584 -0.681292191148 -1.14039060473 -0.698549494147 -1.14039215446 -0.715806618333 -1.14039665461 -0.733063980937 -1.14040407538 -0.750321298837 -1.14041444659 -0.767579004169 -1.14042776823 -0.784836769104 -1.14044398069 -0.802094995976 -1.14046314359 -0.819353431463 -1.14048525691 -0.8366124928 -1.14051029086 -0.85387185216 -1.14052256942 -0.873081594705 -1.14050865173 -0.892292931676 -1.1404838562 -0.909552410245 -1.14046189189 -0.926811262965 -1.14044290781 -0.944069877267 -1.14042684436 -0.961327925325 -1.14041373134 -0.978585854173 -1.14040350914 -0.995843365788 -1.14039626717 -1.0131008327 -1.14039197564 -1.03035798669 -1.14039063454 -1.04761531949 -1.14039215446 -1.06487247348 -1.14039665461 -1.08212983608 -1.14040410519 -1.09938713908 -1.14041447639 -1.11664485932 -1.14042779803 -1.13390263915 -1.1404440403 -1.15116086602 -1.14046320319 -1.16841927171 -1.14048528671 -1.18567833304 -1.14051026106 -1.20293772221 -1.14052253961 -1.22214743495 -1.14050862193 -1.24135878682 -1.1404838264 -1.25861829519 -1.14046192169 -1.27587711811 -1.14044296742 -1.29313573241 -1.14042687416 -1.31039378047 -1.14041376114 -1.32765167952 -1.14040353894 -1.34490916133 -1.14039626717 -1.36216667294 -1.14039194584 -1.37942388654 -1.14039060473 -1.39668118954 -1.14039215446 -1.41393831372 -1.14039665461 -1.43119570613 -1.14040410519 -1.44845303893 -1.14041444659 -1.46571069956 -1.14042773843 -1.48296844959 -1.14044401049 -1.50022673607 -1.14046320319 -1.51748517156 -1.14048528671 -1.53474420309 -1.14051026106 -1.55200356245 -1.14052253961 -1.57121327519 -1.14050865173 -1.59042462706 -1.1404838562 -1.60768413543 -1.14046186209 -1.62494298815 -1.14044290781 -1.64220160246 -1.14042687416 -1.65945962071 -1.14041373134 -1.67671754956 -1.14040350914 -1.69397506118 -1.14039626717 -1.71123254299 -1.14039197564 -1.72848972678 -1.14039063454 -1.74574702978 -1.14039215446 -1.76300418377 -1.14039665461 -1.78026154638 -1.14040410519 -1.79751881957 -1.14041444659 -1.8147765398 -1.14042776823 -1.83203431964 -1.14044401049 -1.84929254651 -1.14046314359 -1.866550982 -1.14048522711 -1.88381004334 -1.14051023126 -1.90106940269 -1.14052253961 -1.92027914524 -1.14050865173 -1.93949049711 -1.1404838562 -1.95675000548 -1.14046192169 -1.9740088582 -1.14044293761 -1.9912674427 -1.14042684436 -2.00852543116 -1.14041376114 -2.02578336 -1.14040353894 -2.04304093122 -1.14039626717 -2.06029844284 -1.14039197564 -2.07755559683 -1.14039063454 -2.09481287003 -1.14039215446 -2.11207002401 -1.14039665461 -2.12932741642 -1.14040410519 -2.14658468962 -1.14041444659 -2.16384238005 -1.14042776823 -2.18110018968 -1.14044401049 -2.19835841656 -1.14046317339 -2.21561682224 -1.14048528671 -2.23287588358 -1.14051026106 -2.25013524294 -1.14052253961 -2.26934498548 -1.14050862193 -2.28855639696 -1.1404838264 -2.30581593514 -1.14046189189 -2.32307469845 -1.14044290781 -2.34033322334 -1.14042684436 -2.35759133101 -1.14041376114 -2.37484925985 -1.14040353894 -2.39210671186 -1.14039626717 -2.40936422348 -1.14039197564 -2.42662143707 -1.14039063454 -2.44387876987 -1.14039215446 -2.46113586426 -1.14039665461 -2.47839319706 -1.14040410519 -2.49565052986 -1.14041447639 -2.51290827989 -1.14042776823 -2.53016602993 -1.14044398069 -2.5474242568 -1.14046317339 -2.56468266249 -1.14048525691 -2.58194172382 -1.14051023126 -2.59920108318 -1.14052253961 -2.61841082573 -1.14050862193 -2.6376222372 -1.1404838264 -2.65488171577 -1.14046189189 -2.67214053869 -1.14044293761 -2.6893991828 -1.14042687416 -2.70665723085 -1.14041373134 -2.7239151001 -1.14040350914 -2.74117255211 -1.14039626717 -2.75843006373 -1.14039197564 -2.77568727732 -1.14039063454 -2.79294455051 -1.14039215446 -2.8102017045 -1.14039665461 -2.82745915651 -1.14040407538 -2.84471648932 -1.14041444659 -2.86197412014 -1.14042779803 -2.87923181057 -1.14044401049 -2.89649009705 -1.14046317339 -2.91374862194 -1.14048525691 -2.93100762367 -1.14051023126 -2.94826692343 -1.14052256942 -2.96747666597 -1.14050865173 -2.98668801785 -1.1404838264 -3.00394749641 -1.14046189189 -3.02120637894 -1.14044290781 -3.03846502304 -1.14042684436 -3.0557230115 -1.14041379094 -3.07298094034 -1.14040359855 -3.09023851156 -1.14039632678 -3.10749596358 -1.14039200544 -3.12475305796 -1.14039063454 --3.14117494424 -1.14039218426 --3.12391775846 -1.14039668441 --3.10666030645 -1.14040410519 --3.08940297365 -1.14041447639 --3.07214534283 -1.14042779803 --3.0548876524 -1.14044401049 --3.03762936592 -1.14046314359 --3.02037084102 -1.14048525691 --3.00311183929 -1.14051026106 --2.98585253954 -1.14052253961 --2.96664279699 -1.14050865173 --2.94743144512 -1.1404838562 --2.93017196656 -1.14046189189 --2.91291308403 -1.14044290781 --2.89565443993 -1.14042684436 --2.87839645148 -1.14041376114 --2.86113852262 -1.14040353894 --2.8438809514 -1.14039626717 --2.82662343979 -1.14039194584 --2.8093662858 -1.14039060473 --2.7921090126 -1.14039215446 --2.77485185862 -1.14039665461 --2.75759446621 -1.14040410519 --2.74033719301 -1.14041447639 --2.72307950258 -1.14042776823 --2.70582169294 -1.14044398069 --2.68856346607 -1.14046317339 --2.67130506039 -1.14048528671 --2.65404599905 -1.14051026106 --2.63678663969 -1.14052253961 --2.61757689714 -1.14050865173 --2.59836554527 -1.1404838562 --2.5811060071 -1.14046189189 --2.56384718418 -1.14044290781 --2.54658865929 -1.14042684436 --2.52933061123 -1.14041373134 --2.51207268238 -1.14040350914 --2.49481517077 -1.14039626717 --2.47755765915 -1.14039194584 --2.46030044556 -1.14039060473 --2.44304311275 -1.14039215446 --2.42578601837 -1.14039665461 --2.40852868557 -1.14040407538 --2.39127135277 -1.14041444659 --2.37401366234 -1.14042776823 --2.35675591231 -1.14044398069 --2.33949768543 -1.14046314359 --2.32223927975 -1.14048525691 --2.3049801588 -1.14051029086 --2.28772079945 -1.14052256942 --2.2685110569 -1.14050865173 --2.24929964543 -1.1404838562 --2.23204016685 -1.14046189189 --2.21478134394 -1.14044290781 --2.19752275944 -1.14042684436 --2.18026471138 -1.14041373134 --2.16300678253 -1.14040350914 --2.14574933052 -1.14039626717 --2.12849187851 -1.14039197564 --2.11123466492 -1.14039063454 --2.09397733212 -1.14039215446 --2.07672017813 -1.14039665461 --2.05946278572 -1.14040410519 --2.04220545292 -1.14041447639 --2.02494776249 -1.14042779803 --2.00769004226 -1.1404440403 --1.99043178559 -1.14046320319 --1.9731733501 -1.14048528671 --1.95591431856 -1.14051026106 --1.9386549592 -1.14052253961 --1.91944521666 -1.14050862193 --1.90023386479 -1.1404838264 --1.88297435641 -1.14046192169 --1.86571550369 -1.14044296742 --1.84845691919 -1.14042687416 --1.83119887114 -1.14041376114 --1.81394094229 -1.14040353894 --1.79668346048 -1.14039626717 --1.77942594886 -1.14039194584 --1.76216876507 -1.14039060473 --1.74491146207 -1.14039215446 --1.72765430808 -1.14039665461 --1.71039694548 -1.14040410519 --1.69313964248 -1.14041444659 --1.67588195205 -1.14042773843 --1.65862420201 -1.14044401049 --1.64136597514 -1.14046320319 --1.62410753965 -1.14048528671 --1.60684847832 -1.14051026106 --1.58958911896 -1.14052253961 --1.57037937641 -1.14050865173 --1.55116802454 -1.1404838562 --1.53390851617 -1.14046186209 --1.51664969325 -1.14044290781 --1.49939110875 -1.14042687416 --1.48213303089 -1.14041373134 --1.46487510204 -1.14040350914 --1.44761759043 -1.14039626717 --1.43036010861 -1.14039197564 --1.41310295463 -1.14039063454 --1.39584562182 -1.14039215446 --1.37858849764 -1.14039665461 --1.36133113503 -1.14040410519 --1.34407380223 -1.14041444659 --1.3268161118 -1.14042776823 --1.30955836177 -1.14044401049 --1.2923001051 -1.14046314359 --1.27504166961 -1.14048522711 --1.25778263807 -1.14051023126 --1.24052327871 -1.14052253961 --1.22131353617 -1.14050865173 --1.20210215449 -1.1404838562 --1.18484261632 -1.14046192169 --1.1675837934 -1.14044293761 --1.1503252089 -1.14042684436 --1.13306716084 -1.14041376114 --1.1158092618 -1.14040353894 --1.09855177999 -1.14039626717 --1.08129426837 -1.14039197564 --1.06403705478 -1.14039063454 --1.04677975178 -1.14039215446 --1.02952262759 -1.14039665461 --1.01226523519 -1.14040410519 --0.995007917286 -1.14041444659 --0.977750241756 -1.14042776823 --0.960492476821 -1.14044401049 --0.943234249949 -1.14046317339 --0.925975829363 -1.14048528671 --0.908716768026 -1.14051026106 --0.891457423568 -1.14052253961 --0.872247695923 -1.14050862193 --0.853036314249 -1.1404838264 --0.835776805878 -1.14046189189 --0.81851798296 -1.14044290781 --0.80125939846 -1.14042684436 --0.784001335502 -1.14041376114 --0.766743406653 -1.14040353894 --0.74948592484 -1.14039626717 --0.732228413225 -1.14039197564 --0.714971229434 -1.14039063454 --0.697713926435 -1.14039215446 --0.680456787348 -1.14039665461 --0.663199394942 -1.14040410519 --0.645942077041 -1.14041447639 --0.628684386611 -1.14042776823 --0.611426651478 -1.14044398069 --0.594168409705 -1.14046317339 --0.576909959316 -1.14048525691 --0.559650912881 -1.14051023126 --0.542391553521 -1.14052253961 --0.523181810975 -1.14050862193 --0.503970444202 -1.1404838264 --0.486710958183 -1.14046189189 --0.469452120364 -1.14044293761 --0.452193520963 -1.14042687416 --0.434935472905 -1.14041373134 --0.417677551508 -1.14040350914 --0.400420062244 -1.14039626717 --0.38316257298 -1.14039197564 --0.365905374289 -1.14039063454 --0.348648048938 -1.14039215446 --0.331390924752 -1.14039665461 --0.314133547247 -1.14040407538 --0.296876229346 -1.14041444659 --0.279618553817 -1.14042779803 --0.262360803783 -1.14044401049 --0.245102550834 -1.14046317339 --0.227844111621 -1.14048525691 --0.21058506146 -1.14051023126 --0.193325702101 -1.14052256942 --0.174115970731 -1.16028192639 --0.154900047928 -1.16025689244 --0.137640517205 -1.16023477912 --0.120381664485 -1.16021567583 --0.103123055771 -1.16019949317 --0.0858649928123 -1.16018629074 --0.0686070546508 -1.16017600894 --0.051349543035 -1.16016873717 --0.0340920295566 -1.16016438603 --0.0168348194566 -1.16016295552 -0.00042251381092 -1.16016453505 -0.0176796657033 -1.1601690948 -0.0349370632321 -1.16017657518 -0.0521944044158 -1.160187006 -0.0694521171972 -1.16020038724 -0.0867098867893 -1.16021674871 -0.103968152776 -1.16023609042 -0.121226606891 -1.16025835276 -0.13848567754 -1.16028353572 -0.155745055527 -1.16029593349 -0.174954611808 -1.16028192639 -0.194165799767 -1.16025692224 -0.211425323039 -1.16023480892 -0.22868418321 -1.16021570563 -0.245942797512 -1.16019949317 -0.263200856745 -1.16018626094 -0.280458793044 -1.16017597914 -0.29771630466 -1.16016867757 -0.314973823726 -1.16016429663 -0.332231044769 -1.16016292572 -0.34948837012 -1.16016450525 -0.366745516658 -1.1601690352 -0.384002909064 -1.16017654538 -0.401260256767 -1.160187006 -0.418517969549 -1.16020041704 -0.435775741935 -1.16021677852 -0.453034006059 -1.16023609042 -0.470292456448 -1.16025835276 -0.487551532686 -1.16028353572 -0.504810899496 -1.16029593349 -0.524020463228 -1.16028192639 -0.543231651187 -1.16025692224 -0.560491189361 -1.16023480892 -0.577750042081 -1.16021570563 -0.595008641481 -1.16019949317 -0.61226670444 -1.16018626094 -0.62952464819 -1.16017597914 -0.646782159806 -1.16016867757 -0.664039671421 -1.16016429663 -0.681296899914 -1.16016292572 -0.698554247617 -1.16016450525 -0.715811386704 -1.1601690352 -0.73306876421 -1.16017651558 -0.750326097011 -1.160187006 -0.767583817243 -1.16020041704 -0.78484159708 -1.16021674871 -0.802099853754 -1.16023609042 -0.819358319044 -1.16025835276 -0.83661738038 -1.16028356552 -0.853876754642 -1.16029596329 -0.873086318374 -1.16028192639 -0.892297491431 -1.16025692224 -0.909556999802 -1.16023477912 -0.926815867424 -1.16021564603 -0.944074496627 -1.16019946337 -0.961332559586 -1.16018626094 -0.978590503335 -1.16017597914 -0.995848029852 -1.16016867757 -1.01310554147 -1.16016432643 -1.03036272526 -1.16016295552 -1.04762005806 -1.16016450525 -1.06487721204 -1.160169065 -1.08213460445 -1.16017657518 -1.09939193726 -1.160187006 -1.11664965749 -1.16020038724 -1.13390746713 -1.16021677852 -1.1511657238 -1.16023612023 -1.16842412949 -1.16025835276 -1.18568319082 -1.16028353572 -1.20294260979 -1.16029593349 -1.22215217352 -1.16028189659 -1.24136334658 -1.16025689244 -1.25862285495 -1.16023480892 -1.27588170767 -1.16021570563 -1.29314035177 -1.16019949317 -1.31039839983 -1.16018626094 -1.32765632868 -1.16017597914 -1.3449138403 -1.16016867757 -1.36217135191 -1.16016429663 -1.3794285655 -1.16016292572 -1.3966858983 -1.16016450525 -1.41394305229 -1.160169065 -1.4312004447 -1.16017657518 -1.44845780731 -1.160187006 -1.46571552753 -1.16020041704 -1.48297327757 -1.16021680832 -1.50023156405 -1.16023615003 -1.51749002934 -1.16025841236 -1.53474909067 -1.16028359533 -1.55200845003 -1.16029596329 -1.57121798396 -1.16028192639 -1.59042918682 -1.16025692224 -1.60768872499 -1.16023477912 -1.62494757771 -1.16021564603 -1.64220619202 -1.16019946337 -1.65946426987 -1.16018626094 -1.67672222853 -1.16017597914 -1.69397974015 -1.16016867757 -1.71123725176 -1.16016429663 -1.72849446535 -1.16016292572 -1.74575176835 -1.16016450525 -1.76300892234 -1.1601690352 -1.78026631475 -1.16017654538 -1.79752361775 -1.16018697619 -1.81478133797 -1.16020038724 -1.83203914761 -1.16021677852 -1.84929740429 -1.16023609042 -1.86655586958 -1.16025832296 -1.88381493092 -1.16028350592 -1.90107429027 -1.16029593349 -1.92028388381 -1.16028192639 -1.93949505687 -1.16025692224 -1.95675459504 -1.16023480892 -1.97401344776 -1.16021567583 -1.99127203226 -1.16019946337 -2.00853011012 -1.16018626094 -2.02578800917 -1.16017597914 -2.04304552078 -1.16016867757 -2.060303092 -1.16016429663 -2.0775603056 -1.16016292572 -2.09481757879 -1.16016450525 -2.11207473278 -1.1601690352 -2.12933218479 -1.16017654538 -2.14658951759 -1.16018697619 -2.16384720802 -1.16020035744 -2.18110501766 -1.16021674871 -2.19836330414 -1.16023609042 -2.21562170983 -1.16025835276 -2.23288071156 -1.16028353572 -2.25014007092 -1.16029593349 -2.26934963464 -1.16028189659 -2.28856086731 -1.16025689244 -2.30582046509 -1.16023477912 -2.32307928801 -1.16021564603 -2.3403378725 -1.16019946337 -2.35759598017 -1.16018626094 -2.37485390902 -1.16017597914 -2.39211142063 -1.16016867757 -2.40936893225 -1.16016432643 -2.42662614584 -1.16016298532 -2.44388353825 -1.16016453505 -2.46114063263 -1.160169065 -2.47839796543 -1.16017657518 -2.49565529823 -1.1601870358 -2.51291304827 -1.16020044685 -2.5301708579 -1.16021677852 -2.54742908478 -1.16023609042 -2.56468749046 -1.16025832296 -2.5819466114 -1.16028350592 -2.59920603037 -1.16029593349 -2.6184155941 -1.16028189659 -2.63762676716 -1.16025689244 -2.65488624573 -1.16023480892 -2.67214512825 -1.16021573544 -2.68940377235 -1.16019952297 -2.70666182041 -1.16018626094 -2.72391974926 -1.16017597914 -2.74117726088 -1.16016867757 -2.75843477249 -1.16016432643 -2.77569198609 -1.16016295552 -2.79294931889 -1.16016450525 -2.81020647287 -1.1601690352 -2.82746386528 -1.16017651558 -2.84472125769 -1.16018697619 -2.86197900772 -1.16020041704 -2.87923669815 -1.16021677852 -2.89649492502 -1.16023609042 -2.91375344992 -1.16025832296 -2.93101251126 -1.16028350592 -2.94827187061 -1.16029596329 -2.96748143435 -1.16028192639 -2.9866926074 -1.16025689244 -3.00395214558 -1.16023477912 -3.02121096849 -1.16021567583 -3.038469553 -1.16019949317 -3.05572766066 -1.16018629074 -3.0729855895 -1.16017600894 -3.09024310112 -1.16016873717 -3.10750061274 -1.16016438603 -3.12475776672 -1.16016295552 --3.14117017587 -1.16016453505 --3.1239129901 -1.1601690948 --3.10665559769 -1.16017657518 --3.08939820528 -1.160187006 --3.07214045525 -1.16020038724 --3.05488276482 -1.16021674871 --3.03762447834 -1.16023609042 --3.02036595344 -1.16025835276 --3.00310695171 -1.16028353572 --2.98584759236 -1.16029593349 --2.96663802862 -1.16028192639 --2.94742685557 -1.16025692224 --2.93016731739 -1.16023480892 --2.91290849447 -1.16021570563 --2.89564990997 -1.16019949317 --2.87839180231 -1.16018626094 --2.86113381386 -1.16017597914 --2.84387630224 -1.16016867757 --2.82661879062 -1.16016429663 --2.80936157703 -1.16016292572 --2.79210430384 -1.16016450525 --2.77484714985 -1.1601690352 --2.75758969784 -1.16017654538 --2.74033236504 -1.160187006 --2.72307467461 -1.16020041704 --2.70581686497 -1.16021677852 --2.68855857849 -1.16023609042 --2.6713001728 -1.16025835276 --2.65404117107 -1.16028353572 --2.63678181172 -1.16029593349 --2.61757218838 -1.16028192639 --2.59836095572 -1.16025692224 --2.58110141754 -1.16023480892 --2.56384259463 -1.16021570563 --2.54658401012 -1.16019949317 --2.52932596207 -1.16018626094 --2.51206803322 -1.16017597914 --2.4948105216 -1.16016867757 --2.47755300999 -1.16016429663 --2.46029573679 -1.16016292572 --2.44303834438 -1.16016450525 --2.42578125 -1.1601690352 --2.4085239172 -1.16017651558 --2.3912665844 -1.160187006 --2.37400889397 -1.16020041704 --2.35675108433 -1.16021674871 --2.33949279785 -1.16023609042 --2.32223439216 -1.16025835276 --2.30497527123 -1.16028356552 --2.28771585226 -1.16029596329 --2.26850628853 -1.16028192639 --2.24929511547 -1.16025692224 --2.2320356369 -1.16023477912 --2.21477675438 -1.16021564603 --2.19751811028 -1.16019946337 --2.18026006222 -1.16018626094 --2.16300213337 -1.16017597914 --2.14574462176 -1.16016867757 --2.12848711014 -1.16016432643 --2.11122989654 -1.16016295552 --2.09397256374 -1.16016450525 --2.07671540976 -1.160169065 --2.05945801735 -1.16017657518 --2.04220068455 -1.160187006 --2.02494293451 -1.16020038724 --2.00768518448 -1.16021677852 --1.99042695761 -1.16023612023 --1.97316849232 -1.16025835276 --1.95590943098 -1.16028353572 --1.93865004182 -1.16029593349 --1.91944047809 -1.16028189659 --1.90022930503 -1.16025689244 --1.88296979666 -1.16023480892 --1.86571091413 -1.16021570563 --1.84845227003 -1.16019949317 --1.83119422197 -1.16018626094 --1.81393629313 -1.16017597914 --1.79667878151 -1.16016867757 --1.77942126989 -1.16016429663 --1.7621640563 -1.16016292572 --1.7449067235 -1.16016450525 --1.72764956951 -1.160169065 --1.71039217711 -1.16017657518 --1.69313484431 -1.160187006 --1.67587712407 -1.16020041704 --1.65861934423 -1.16021680832 --1.64136111737 -1.16023615003 --1.62410265207 -1.16025841236 --1.60684356093 -1.16028359533 --1.58958420157 -1.16029596329 --1.57037463784 -1.16028192639 --1.55116343498 -1.16025692224 --1.53390389681 -1.16023477912 --1.51664507389 -1.16021564603 --1.49938648939 -1.16019946337 --1.48212838173 -1.16018626094 --1.46487045288 -1.16017597914 --1.44761294127 -1.16016867757 --1.43035539984 -1.16016429663 --1.41309821605 -1.16016292572 --1.39584088325 -1.16016450525 --1.37858372927 -1.1601690352 --1.36132633686 -1.16017654538 --1.34406900406 -1.16018697619 --1.32681131363 -1.16020038724 --1.30955353379 -1.16021677852 --1.29229524732 -1.16023609042 --1.27503681183 -1.16025832296 --1.25777775049 -1.16028350592 --1.24051836133 -1.16029593349 --1.2213087976 -1.16028192639 --1.20209759474 -1.16025692224 --1.18483805656 -1.16023480892 --1.16757920384 -1.16021567583 --1.15032058954 -1.16019946337 --1.13306254148 -1.16018626094 --1.11580461264 -1.16017597914 --1.09854710102 -1.16016867757 --1.08128958941 -1.16016429663 --1.06403237582 -1.16016292572 --1.04677504301 -1.16016450525 --1.02951788902 -1.1601690352 --1.01226049662 -1.16017654538 --0.995003148914 -1.16018697619 --0.977745428681 -1.16020035744 --0.960487648845 -1.16021674871 --0.943229392171 -1.16023609042 --0.925970941782 -1.16025835276 --0.908711880445 -1.16028353572 --0.891452521085 -1.16029593349 --0.872242972254 -1.16028189659 --0.853031769395 -1.16025689244 --0.83577221632 -1.16023477912 --0.818513378501 -1.16021564603 --0.801254794001 -1.16019946337 --0.78399670124 -1.16018626094 --0.76673874259 -1.16017597914 --0.749481245875 -1.16016867757 --0.73222373426 -1.16016432643 --0.714966535568 -1.16016298532 --0.697709187865 -1.16016453505 --0.680452018976 -1.160169065 --0.66319462657 -1.16017657518 --0.645937308669 -1.1601870358 --0.628679588437 -1.16020044685 --0.6114218086 -1.16021677852 --0.594163566828 -1.16023609042 --0.576905101538 -1.16025832296 --0.5596460253 -1.16028350592 --0.542386651039 -1.16029593349 --0.523177087307 -1.16028189659 --0.503965891897 -1.16025689244 --0.486706376076 -1.16023480892 --0.469447530806 -1.16021573544 --0.452188916504 -1.16019952297 --0.434930838644 -1.16018626094 --0.417672894895 -1.16017597914 --0.40041539073 -1.16016867757 --0.383157879114 -1.16016432643 --0.365900665521 -1.16016295552 --0.34864333272 -1.16016450525 --0.331386186183 -1.1601690352 --0.314128778875 -1.16017651558 --0.296871438622 -1.16018697619 --0.279613740742 -1.16020041704 --0.262355968356 -1.16021677852 --0.245097696781 -1.16023609042 --0.227839242667 -1.16025832296 --0.210580177605 -1.16028350592 --0.193320799619 -1.16029596329 --0.174111239612 -1.17742794752 --0.154897384345 -1.17740273476 --0.137637838721 -1.17738047242 --0.1203789711 -1.17736124992 --0.10312035121 -1.17734494805 --0.0858622789383 -1.17733165622 --0.0686043296009 -1.17732131481 --0.0513468049467 -1.17731398344 --0.0340892793611 -1.1773096025 --0.0168320580851 -1.17730817199 -0.000425285659732 -1.17730975151 -0.0176824491937 -1.17731434107 -0.0349398585968 -1.17732188106 -0.0521972104907 -1.17733240127 -0.0694549335167 -1.17734587192 -0.0867127142846 -1.17736235261 -0.103970991448 -1.17738181353 -0.121229456738 -1.17740419507 -0.138488538563 -1.17742955685 -0.155747931451 -1.17744204402 -0.174957383424 -1.17742791772 -0.194168463349 -1.17740273476 -0.211428005248 -1.17738050222 -0.22868688032 -1.17736127972 -0.245945498347 -1.17734494805 -0.263203568756 -1.17733162641 -0.280461512506 -1.17732128501 -0.297719031572 -1.17731392384 -0.31497656554 -1.17730951309 -0.332233794034 -1.17730814219 -0.349491134286 -1.17730972171 -0.366748295724 -1.17731428146 -0.384005703032 -1.17732185125 -0.401263058186 -1.17733237147 -0.418520785868 -1.17734587192 -0.435778573155 -1.17736238241 -0.45303684473 -1.17738181353 -0.47029530257 -1.17740419507 -0.487554386258 -1.17742955685 -0.50481377542 -1.17744204402 -0.524023234844 -1.17742791772 -0.543234318495 -1.17740273476 -0.56049387157 -1.17738050222 -0.57775272429 -1.17736127972 -0.59501132369 -1.17734494805 -0.612269416452 -1.17733162641 -0.629527375102 -1.17732128501 -0.646784886718 -1.17731395364 -0.664042413235 -1.1773095429 -0.681299656629 -1.17730814219 -0.698557019233 -1.17730972171 -0.71581415832 -1.17731428146 -0.733071550727 -1.17732185125 -0.750328913331 -1.17733240127 -0.767586648464 -1.17734587192 -0.784844428301 -1.17736232281 -0.802102684974 -1.17738178373 -0.819361165166 -1.17740419507 -0.836620241403 -1.17742955685 -0.853879630566 -1.17744201422 -0.87308908999 -1.17742788792 -0.89230017364 -1.17740273476 -0.909559711814 -1.17738047242 -0.926818564534 -1.17736122012 -0.944077193737 -1.17734491825 -0.961335271597 -1.17733162641 -0.978593215346 -1.17732128501 -0.995850756763 -1.17731395364 -1.01310828328 -1.1773095727 -1.03036549688 -1.17730817199 -1.04762285948 -1.17730975151 -1.06488001346 -1.17731434107 -1.08213740587 -1.17732188106 -1.09939473868 -1.17733237147 -1.11665245891 -1.17734584212 -1.13391026855 -1.17736235261 -1.15116855502 -1.17738181353 -1.16842699051 -1.17740419507 -1.18568605185 -1.17742955685 -1.20294547081 -1.17744204402 -1.22215494514 -1.17742791772 -1.24136599899 -1.17740273476 -1.25862553715 -1.17738050222 -1.27588441968 -1.17736124992 -1.29314303398 -1.17734491825 -1.31040111184 -1.17733162641 -1.32765907049 -1.17732128501 -1.34491658211 -1.17731395364 -1.36217409372 -1.1773095429 -1.37943133712 -1.17730814219 -1.39668866992 -1.17730972171 -1.41394582391 -1.17731431127 -1.43120324612 -1.17732185125 -1.44846060872 -1.17733237147 -1.46571832895 -1.17734590172 -1.48297610879 -1.17736238241 -1.50023439527 -1.17738184333 -1.51749286056 -1.17740422487 -1.53475195169 -1.17742955685 -1.55201134086 -1.17744201422 -1.57122078538 -1.17742788792 -1.59043186903 -1.17740273476 -1.6076914072 -1.17738047242 -1.62495025992 -1.17736122012 -1.64220887423 -1.17734491825 -1.65946698189 -1.17733162641 -1.67672494054 -1.17732128501 -1.69398245215 -1.17731395364 -1.71123999357 -1.1773095429 -1.72849720717 -1.17730814219 -1.74575453997 -1.17730972171 -1.76301169395 -1.17731428146 -1.78026908636 -1.17732182145 -1.79752644897 -1.17733234167 -1.81478416919 -1.17734587192 -1.83204194903 -1.17736238241 -1.84930023551 -1.17738181353 -1.8665587008 -1.17740419507 -1.88381776214 -1.17742955685 -1.9010771513 -1.17744201422 -1.92028665542 -1.17742788792 -1.93949773908 -1.17740273476 -1.95675727725 -1.17738050222 -1.97401615977 -1.17736124992 -1.99127477408 -1.17734491825 -2.00853285194 -1.17733162641 -2.02579075098 -1.17732128501 -2.0430482626 -1.17731395364 -2.06030583382 -1.1773095429 -2.07756304741 -1.17730814219 -2.09482038021 -1.17730975151 -2.1120775938 -1.17731431127 -2.12933498621 -1.17732182145 -2.14659231901 -1.17733234167 -2.16385006904 -1.17734584212 -2.18110787868 -1.17736235261 -2.19836616516 -1.17738181353 -2.21562457085 -1.17740419507 -2.23288357258 -1.17742955685 -2.25014293194 -1.17744201422 -2.26935243606 -1.17742788792 -2.28856354952 -1.17740273476 -2.30582308769 -1.17738047242 -2.32308197021 -1.17736122012 -2.34034061432 -1.17734491825 -2.35759866238 -1.17733162641 -2.37485659123 -1.17732128501 -2.39211416245 -1.17731395364 -2.40937167406 -1.1773095727 -2.42662888766 -1.17730817199 -2.44388628006 -1.17730975151 -2.46114343405 -1.17731434107 -2.47840082645 -1.17732188106 -2.49565815926 -1.17733243108 -2.51291584969 -1.17734593153 -2.53017365932 -1.17736238241 -2.5474319458 -1.17738181353 -2.56469035149 -1.17740419507 -2.58194947243 -1.17742955685 -2.599208951 -1.17744204402 -2.61841839552 -1.17742791772 -2.63762938976 -1.17740273476 -2.65488892794 -1.17738050222 -2.67214781046 -1.17736127972 -2.68940639496 -1.17734494805 -2.70666450262 -1.17733162641 -2.72392249108 -1.17732128501 -2.74118000269 -1.17731392384 -2.75843751431 -1.1773095429 -2.7756947279 -1.17730817199 -2.7929520607 -1.17730972171 -2.81020921469 -1.17731428146 -2.82746660709 -1.17732182145 -2.8447239995 -1.17733234167 -2.86198174953 -1.17734587192 -2.87923949957 -1.17736238241 -2.89649772644 -1.17738181353 -2.91375625134 -1.17740419507 -2.93101537228 -1.17742955685 -2.94827473164 -1.17744207382 -2.96748417616 -1.17742794752 -2.98669528961 -1.17740273476 -3.00395488739 -1.17738047242 -3.02121371031 -1.17736124992 -3.03847229481 -1.17734494805 -3.05573040247 -1.17733165622 -3.07298833132 -1.17732131481 -3.09024584293 -1.17731398344 -3.10750341416 -1.1773096025 -3.12476062775 -1.17730817199 --3.14116737445 -1.17730975151 --3.12391024828 -1.17731434107 --3.10665285587 -1.17732188106 --3.08939546347 -1.17733240127 --3.07213771343 -1.17734587192 --3.0548799634 -1.17736235261 --3.03762167692 -1.17738181353 --3.02036315203 -1.17740419507 --3.00310409069 -1.17742955685 --2.98584473133 -1.17744204402 --2.96663528681 -1.17742791772 --2.94742417335 -1.17740273476 --2.93016457558 -1.17738050222 --2.91290575266 -1.17736127972 --2.89564716816 -1.17734494805 --2.8783890605 -1.17733162641 --2.86113107204 -1.17732128501 --2.84387356043 -1.17731392384 --2.82661604881 -1.17730951309 --2.80935883522 -1.17730814219 --2.79210150242 -1.17730972171 --2.77484434843 -1.17731428146 --2.75758695602 -1.17732185125 --2.74032956362 -1.17733237147 --2.72307181359 -1.17734587192 --2.70581400395 -1.17736238241 --2.68855571747 -1.17738181353 --2.67129731178 -1.17740419507 --2.65403831005 -1.17742955685 --2.63677895069 -1.17744204402 --2.61756944657 -1.17742791772 --2.59835833311 -1.17740273476 --2.58109879494 -1.17738050222 --2.56383991242 -1.17736127972 --2.54658126831 -1.17734494805 --2.52932322025 -1.17733162641 --2.5120652914 -1.17732128501 --2.49480777979 -1.17731395364 --2.47755026817 -1.1773095429 --2.46029299498 -1.17730814219 --2.44303560257 -1.17730972171 --2.42577844858 -1.17731428146 --2.40852105618 -1.17732185125 --2.39126372338 -1.17733240127 --2.37400603295 -1.17734587192 --2.35674822331 -1.17736232281 --2.33948993683 -1.17738178373 --2.32223153114 -1.17740419507 --2.3049724102 -1.17742955685 --2.28771293163 -1.17744201422 --2.26850348711 -1.17742788792 --2.24929249287 -1.17740273476 --2.2320330143 -1.17738047242 --2.21477413178 -1.17736122012 --2.19751548767 -1.17734491825 --2.18025743961 -1.17733162641 --2.16299951076 -1.17732128501 --2.14574193954 -1.17731395364 --2.12848436832 -1.1773095727 --2.11122715473 -1.17730817199 --2.09396982193 -1.17730975151 --2.07671266794 -1.17731434107 --2.05945527554 -1.17732188106 --2.04219794274 -1.17733237147 --2.0249401927 -1.17734584212 --2.00768238306 -1.17736235261 --1.99042412639 -1.17738181353 --1.9731656611 -1.17740419507 --1.95590656996 -1.17742955685 --1.93864715099 -1.17744204402 --1.91943770647 -1.17742791772 --1.90022665262 -1.17740273476 --1.88296711445 -1.17738050222 --1.86570823193 -1.17736124992 --1.84844958782 -1.17734491825 --1.83119150996 -1.17733162641 --1.81393358111 -1.17732128501 --1.7966760695 -1.17731395364 --1.77941852808 -1.1773095429 --1.76216131449 -1.17730814219 --1.74490398169 -1.17730972171 --1.7276467979 -1.17731431127 --1.71038940549 -1.17732185125 --1.69313207269 -1.17733237147 --1.67587432265 -1.17734590172 --1.65861651301 -1.17736238241 --1.64135825634 -1.17738184333 --1.62409979105 -1.17740422487 --1.60684069991 -1.17742955685 --1.58958134055 -1.17744201422 --1.57037186623 -1.17742788792 --1.55116075277 -1.17740273476 --1.5339012146 -1.17738047242 --1.51664236188 -1.17736122012 --1.49938374758 -1.17734491825 --1.48212566972 -1.17733162641 --1.46486774087 -1.17732128501 --1.44761019945 -1.17731395364 --1.43035262823 -1.1773095429 --1.41309541464 -1.17730814219 --1.39583808184 -1.17730972171 --1.37858092785 -1.17731428146 --1.36132353544 -1.17732182145 --1.34406620264 -1.17733234167 --1.32680848241 -1.17734587192 --1.30955067277 -1.17736238241 --1.29229238629 -1.17738181353 --1.27503395081 -1.17740419507 --1.25777488947 -1.17742955685 --1.2405154705 -1.17744201422 --1.22130602598 -1.17742788792 --1.20209497214 -1.17740273476 --1.18483543396 -1.17738050222 --1.16757655144 -1.17736124992 --1.15031790733 -1.17734491825 --1.13305982947 -1.17733162641 --1.11580187082 -1.17732128501 --1.09854435921 -1.17731395364 --1.08128684759 -1.1773095429 --1.0640296042 -1.17730814219 --1.0467722714 -1.17730975151 --1.02951511741 -1.17731431127 --1.012257725 -1.17732182145 --0.995000377298 -1.17733234167 --0.977742627263 -1.17734584212 --0.960484832525 -1.17736235261 --0.94322656095 -1.17738181353 --0.925968110561 -1.17740419507 --0.908709034324 -1.17742955685 --0.891449645161 -1.17744201422 --0.872240200639 -1.17742788792 --0.853029102087 -1.17740273476 --0.83576951921 -1.17738047242 --0.818510666489 -1.17736122012 --0.801252067089 -1.17734491825 --0.783993974328 -1.17733162641 --0.766736030579 -1.17732128501 --0.749478504061 -1.17731395364 --0.732220977545 -1.1773095727 --0.714963763952 -1.17730817199 --0.697706416249 -1.17730975151 --0.680449262261 -1.17731434107 --0.663191854954 -1.17732188106 --0.645934507251 -1.17733243108 --0.628676772118 -1.17734593153 --0.61141897738 -1.17736238241 --0.594160705805 -1.17738181353 --0.576902240515 -1.17740419507 --0.559643164277 -1.17742955685 --0.542383775115 -1.17744204402 --0.523174315691 -1.17742791772 --0.503963232041 -1.17740273476 --0.486703693867 -1.17738050222 --0.469444826245 -1.17736127972 --0.452186204493 -1.17734494805 --0.434928119183 -1.17733162641 --0.417670167983 -1.17732128501 --0.400412648916 -1.17731392384 --0.383155122399 -1.1773095429 --0.365897908807 -1.17730817199 --0.348640568554 -1.17730972171 --0.331383399665 -1.17731428146 --0.314125977457 -1.17732182145 --0.296868629754 -1.17733234167 --0.279610916972 -1.17734587192 --0.262353129685 -1.17736238241 --0.245094854385 -1.17738181353 --0.22783639282 -1.17740419507 --0.210577316582 -1.17742955685 --0.19331792742 -1.17744207382 --0.174108471721 -1.19454851747 --0.15489474684 -1.19452318549 --0.13763519749 -1.19450080395 --0.120376314968 -1.19448143244 --0.10311768204 -1.19446501136 --0.0858595985919 -1.19445163012 --0.0686016371473 -1.19444122911 --0.0513441003859 -1.19443383813 --0.0340865640901 -1.19442942739 --0.0168293321039 -1.19442799688 -0.000428022583947 -1.1944296062 -0.0176851977594 -1.19443422556 -0.0349426181056 -1.19444179535 -0.052199980244 -1.19445240497 -0.0694577144459 -1.19446599483 -0.086715510115 -1.19448256493 -0.103973798454 -1.19450211525 -0.12123227492 -1.19452464581 -0.138491362333 -1.19455018639 -0.155750766397 -1.19456276297 -0.174960125238 -1.19454851747 -0.19417110458 -1.19452318549 -0.211430657655 -1.19450080395 -0.228689536452 -1.19448143244 -0.245948165655 -1.19446501136 -0.263206250965 -1.19445160032 -0.280464202165 -1.1944411993 -0.297721736133 -1.19443380832 -0.314979277551 -1.19442936778 -0.332236513495 -1.19442796707 -0.349493868649 -1.1944295466 -0.366751037538 -1.19443416596 -0.384008459747 -1.19444179535 -0.401265829801 -1.19445237517 -0.418523564935 -1.19446596503 -0.435781367123 -1.19448256493 -0.453039653599 -1.19450211525 -0.470298118889 -1.19452467561 -0.487557224929 -1.19455018639 -0.504816614092 -1.19456273317 -0.524025946855 -1.19454851747 -0.543236956001 -1.19452318549 -0.560496523977 -1.19450080395 -0.577755376697 -1.19448143244 -0.595014005899 -1.19446501136 -0.612272113562 -1.19445163012 -0.629530057311 -1.19444122911 -0.646787583828 -1.19443383813 -0.664045140147 -1.19442939758 -0.681302383542 -1.19442796707 -0.698559746146 -1.1944295466 -0.715816900134 -1.19443416596 -0.733074307442 -1.19444179535 -0.750331684947 -1.19445237517 -0.767589434982 -1.19446596503 -0.784847214818 -1.19448256492 -0.802105486393 -1.19450211525 -0.819363981485 -1.19452467561 -0.836623072624 -1.1945502162 -0.853882476687 -1.19456273317 -0.873091831803 -1.19454848766 -0.892302811146 -1.19452318549 -0.90956236422 -1.19450080395 -0.926821216941 -1.19448143244 -0.944079861045 -1.19446501136 -0.961337953806 -1.19445163012 -0.978595897555 -1.19444122911 -0.995853438974 -1.19443383813 -1.01311096549 -1.19442939758 -1.03036820888 -1.19442796707 -1.04762560129 -1.1944295764 -1.06488275528 -1.19443419576 -1.08214014769 -1.19444179535 -1.09939751029 -1.19445237517 -1.11665526032 -1.19446596503 -1.13391306996 -1.19448256493 -1.15117135644 -1.19450211525 -1.16842982173 -1.19452467561 -1.18568891287 -1.19455018639 -1.20294833183 -1.19456273317 -1.22215768695 -1.19454851747 -1.24136865139 -1.19452318549 -1.25862821937 -1.19450080395 -1.27588710189 -1.19448143244 -1.29314571619 -1.19446501136 -1.31040379405 -1.19445160032 -1.3276617527 -1.1944411993 -1.34491929412 -1.19443383813 -1.36217683554 -1.19442942739 -1.37943407893 -1.19442802668 -1.39669141173 -1.1944295466 -1.41394859552 -1.19443413616 -1.43120604754 -1.19444176555 -1.44846338034 -1.19445234537 -1.46572107077 -1.19446596503 -1.48297888041 -1.19448256493 -1.50023719669 -1.19450211525 -1.51749569178 -1.19452464581 -1.53475478291 -1.19455015659 -1.55201417208 -1.19456270337 -1.57122352719 -1.19454851746 -1.59043449163 -1.19452321529 -1.60769402981 -1.19450080395 -1.62495291233 -1.19448143244 -1.64221155643 -1.19446501136 -1.65946966409 -1.19445160032 -1.67672762275 -1.1944411695 -1.69398516417 -1.19443380832 -1.71124270558 -1.19442942739 -1.72849991917 -1.19442799688 -1.74575728178 -1.1944295466 -1.76301446557 -1.19443416596 -1.78027185798 -1.19444176555 -1.79752922058 -1.19445234537 -1.81478697061 -1.19446596503 -1.83204475045 -1.19448256493 -1.84930303693 -1.19450211525 -1.86656150222 -1.19452467561 -1.88382059336 -1.19455018639 -1.90108001232 -1.19456270337 -1.92028936744 -1.19454848766 -1.93950036168 -1.19452318549 -1.95675992966 -1.19450080395 -1.97401881218 -1.19448143244 -1.99127745628 -1.19446501136 -2.00853550434 -1.19445160032 -2.02579343319 -1.1944411993 -2.04305100441 -1.19443383813 -2.06030857563 -1.19442939758 -2.07756578922 -1.19442796707 -2.09482312202 -1.1944295764 -2.11208033562 -1.19443419576 -2.12933772802 -1.19444176555 -2.14659506083 -1.19445234537 -2.16385281086 -1.19446596503 -2.1811106205 -1.19448256493 -2.19836890698 -1.19450211525 -2.21562737227 -1.19452467561 -2.2328864336 -1.19455018639 -2.25014579296 -1.19456270337 -2.26935517788 -1.19454848766 -2.28856617212 -1.19452318549 -2.3058257103 -1.19450080395 -2.32308459282 -1.19448143244 -2.34034323692 -1.19446501136 -2.35760134458 -1.19445163012 -2.37485927343 -1.19444122911 -2.39211678505 -1.19443383813 -2.40937435627 -1.19442939758 -2.42663162947 -1.19442796707 -2.44388896227 -1.1944295764 -2.46114611625 -1.19443419576 -2.47840356827 -1.19444179535 -2.49566096067 -1.19445240497 -2.5129186511 -1.19446599483 -2.53017640114 -1.19448256493 -2.54743474722 -1.19450211525 -2.56469321251 -1.19452467561 -2.58195227385 -1.1945502162 -2.59921175242 -1.19456276297 -2.61842113733 -1.19454851747 -2.63763207197 -1.19452318549 -2.65489161015 -1.19450080395 -2.67215049267 -1.19448140264 -2.68940913677 -1.19446498156 -2.70666724443 -1.19445160032 -2.72392523289 -1.1944411993 -2.74118274451 -1.19443380832 -2.75844019652 -1.19442936778 -2.77569741011 -1.19442796707 -2.79295480251 -1.1944295466 -2.8102120161 -1.19443416596 -2.82746946811 -1.19444176555 -2.84472680092 -1.19445234537 -2.86198449135 -1.19446596503 -2.87924230099 -1.19448256493 -2.89650058746 -1.19450211525 -2.91375905276 -1.19452467561 -2.9310181737 -1.19455018639 -2.94827759266 -1.19456273317 -2.96748691797 -1.19454851747 -2.98669791221 -1.19452318549 -3.00395750999 -1.19450080395 -3.02121639252 -1.19448143244 -3.03847503662 -1.19446501136 -3.05573308468 -1.19445163012 -3.07299101353 -1.19444122911 -3.09024858475 -1.19443383813 -3.10750615597 -1.19442942739 -3.12476336956 -1.19442799688 --3.14116463264 -1.1944296062 --3.12390744686 -1.19443422556 --3.10664999485 -1.19444179535 --3.08939266205 -1.19445240497 --3.07213497162 -1.19446599483 --3.05487716198 -1.19448256493 --3.0376188755 -1.19450211525 --3.02036035061 -1.19452464581 --3.00310122967 -1.19455018639 --2.98584187031 -1.19456276297 --2.96663254499 -1.19454851747 --2.94742155075 -1.19452318549 --2.93016195297 -1.19450080395 --2.91290307045 -1.19448143244 --2.89564442635 -1.19446501136 --2.87838637829 -1.19445160032 --2.86112844944 -1.1944411993 --2.84387087822 -1.19443380832 --2.826613307 -1.19442936778 --2.80935609341 -1.19442796707 --2.79209876061 -1.1944295466 --2.77484160662 -1.19443416596 --2.75758421421 -1.19444179535 --2.7403268218 -1.19445237517 --2.72306907177 -1.19446596503 --2.70581126213 -1.19448256493 --2.68855297565 -1.19450211525 --2.67129451036 -1.19452467561 --2.65403544903 -1.19455018639 --2.63677608967 -1.19456273317 --2.61756676435 -1.19454851747 --2.59835577011 -1.19452318549 --2.58109617234 -1.19450080395 --2.56383728981 -1.19448143244 --2.54657864571 -1.19446501136 --2.52932053804 -1.19445163012 --2.5120626092 -1.19444122911 --2.49480509758 -1.19443383813 --2.47754752636 -1.19442939758 --2.46029025316 -1.19442796707 --2.44303292036 -1.1944295466 --2.42577576637 -1.19443416596 --2.40851831436 -1.19444179535 --2.39126092196 -1.19445237517 --2.37400317192 -1.19446596503 --2.35674542189 -1.19448256492 --2.33948713541 -1.19450211525 --2.32222867012 -1.19452467561 --2.30496960878 -1.1945502162 --2.28771013022 -1.19456273317 --2.2685007453 -1.19454848766 --2.24928987026 -1.19452318549 --2.23203039169 -1.19450080395 --2.21477150917 -1.19448143244 --2.19751286507 -1.19446501136 --2.1802547574 -1.19445163012 --2.16299676895 -1.19444122911 --2.14573919773 -1.19443383813 --2.12848168612 -1.19442939758 --2.11122447252 -1.19442796707 --2.09396708012 -1.1944295764 --2.07670992613 -1.19443419576 --2.05945253372 -1.19444179535 --2.04219514132 -1.19445237517 --2.02493739128 -1.19446596503 --2.00767961144 -1.19448256493 --1.99042132496 -1.19450211525 --1.97316282987 -1.19452467561 --1.95590373874 -1.19455018639 --1.93864431977 -1.19456273317 --1.91943496466 -1.19454851747 --1.90022400021 -1.19452318549 --1.88296446204 -1.19450080395 --1.86570557952 -1.19448143244 --1.84844693541 -1.19446501136 --1.83118885756 -1.19445160032 --1.81393089891 -1.1944411993 --1.79667335749 -1.19443383813 --1.77941581607 -1.19442942739 --1.76215860248 -1.19442802668 --1.74490123987 -1.1944295466 --1.72764402628 -1.19443413616 --1.71038663388 -1.19444176555 --1.69312930107 -1.19445234537 --1.67587155104 -1.19446596503 --1.6586137414 -1.19448256493 --1.64135545492 -1.19450211525 --1.62409698963 -1.19452464581 --1.60683789849 -1.19455015659 --1.58957850933 -1.19456270337 --1.57036912441 -1.19454851746 --1.55115813017 -1.19452321529 --1.533898592 -1.19450080395 --1.51663970947 -1.19448143244 --1.49938106537 -1.19446501136 --1.48212298751 -1.19445160032 --1.46486505866 -1.1944411695 --1.44760751724 -1.19443380832 --1.43034994602 -1.19442942739 --1.41309270263 -1.19442799688 --1.39583536982 -1.1944295466 --1.37857821584 -1.19443416596 --1.36132079363 -1.19444176555 --1.34406343103 -1.19445234537 --1.32680568099 -1.19446596503 --1.30954790115 -1.19448256493 --1.29228961468 -1.19450211525 --1.27503111959 -1.19452467561 --1.25777202845 -1.19455018639 --1.24051260948 -1.19456270337 --1.22130328417 -1.19454848766 --1.20209231973 -1.19452318549 --1.18483275175 -1.19450080395 --1.16757386923 -1.19448143244 --1.15031525492 -1.19446501136 --1.13305714726 -1.19445160032 --1.11579915881 -1.1944411993 --1.0985416472 -1.19443383813 --1.08128410578 -1.19442939758 --1.06402686238 -1.19442796707 --1.04676952958 -1.1944295764 --1.02951234579 -1.19443419576 --1.01225495339 -1.19444176555 --0.994997605683 -1.19445234537 --0.977739840746 -1.19446596503 --0.960482031107 -1.19448256493 --0.943223744631 -1.19450211525 --0.925965294242 -1.19452467561 --0.908706203103 -1.19455018639 --0.891446784139 -1.19456270337 --0.872237443924 -1.19454848766 --0.853026464581 -1.19452318549 --0.835766881704 -1.19450080395 --0.818507999182 -1.19448143244 --0.801249369979 -1.19446501136 --0.783991292119 -1.19445163012 --0.76673334837 -1.19444122911 --0.749475806952 -1.19443383813 --0.732218265534 -1.19442939758 --0.71496103704 -1.19442796707 --0.697703689337 -1.1944295764 --0.680446520448 -1.19443419576 --0.663189083338 -1.19444179535 --0.645931720734 -1.19445240497 --0.628674000502 -1.19446599483 --0.611416205764 -1.19448256493 --0.594157889485 -1.19450211525 --0.576899409294 -1.19452467561 --0.559640333057 -1.1945502162 --0.542380928993 -1.19456276297 --0.523171588779 -1.19454851747 --0.503960616887 -1.19452318549 --0.486701056361 -1.19450080395 --0.469442158938 -1.19448140264 --0.452183514833 -1.19446498156 --0.434925429523 -1.19445160032 --0.417667478323 -1.1944411993 --0.400409951806 -1.19443380832 --0.383152410388 -1.19442936778 --0.365895181894 -1.19442796707 --0.348637834191 -1.1944295466 --0.331380650401 -1.19443416596 --0.314123220742 -1.19444176555 --0.296865865588 -1.19445234537 --0.279608137905 -1.19446596503 --0.262350343168 -1.19448256493 --0.245092052966 -1.19450211525 --0.2278335765 -1.19452467561 --0.210574489087 -1.19455018639 --0.193315085024 -1.19456273317 --0.174105726182 -1.21164694428 --0.154892139137 -1.2116214633 --0.137632582337 -1.21159893274 --0.120373690501 -1.21157944203 --0.103115046397 -1.21156293154 --0.0858569517732 -1.21154943109 --0.0685989791527 -1.21153897047 --0.0513414321467 -1.21153157949 --0.0340838851407 -1.21152713895 --0.0168266419787 -1.21152570844 -0.000430724350735 -1.21152731776 -0.0176879097708 -1.21153196693 -0.0349453422241 -1.21153959632 -0.0522027155384 -1.21155023575 -0.0694604581222 -1.21156391501 -0.0867182668298 -1.21158060431 -0.103976568207 -1.21160027385 -0.121235053986 -1.21162292361 -0.138494152576 -1.21164861321 -0.15575356409 -1.2116612792 -0.174962822348 -1.21164694428 -0.194173704833 -1.2116214633 -0.211433269084 -1.21159893274 -0.228692159056 -1.21157944203 -0.245950799435 -1.21156293154 -0.263208895921 -1.21154943109 -0.280466869473 -1.21153897047 -0.297724418342 -1.21153154969 -0.31498195976 -1.21152707934 -0.332239203155 -1.21152564883 -0.34949657321 -1.21152725816 -0.366753757 -1.21153193713 -0.384011186659 -1.21153959632 -0.401268564164 -1.21155020595 -0.418526306748 -1.21156388521 -0.435784123838 -1.21158060431 -0.453042425215 -1.21160030365 -0.470300905406 -1.21162298322 -0.487560026348 -1.21164861321 -0.50481942296 -1.2116612494 -0.524028673768 -1.21164697408 -0.543239578605 -1.2116214931 -0.56049913168 -1.21159893274 -0.577757999301 -1.21157944203 -0.595016643405 -1.21156293154 -0.612274751068 -1.21154946089 -0.629532694817 -1.21153900027 -0.646790236235 -1.21153154969 -0.664047822356 -1.21152707934 -0.681305065751 -1.21152567864 -0.698562413454 -1.21152728796 -0.715819597244 -1.21153190732 -0.733077034354 -1.21153956651 -0.750334426761 -1.21155023575 -0.767592176795 -1.21156391501 -0.784849971533 -1.21158063412 -0.802108258009 -1.21160030365 -0.8193667382 -1.21162295342 -0.836625859142 -1.21164864301 -0.853885293007 -1.2116612494 -0.873094543815 -1.21164691448 -0.89230543375 -1.2116214633 -0.909564986825 -1.21159893274 -0.926823854446 -1.21157944203 -0.94408249855 -1.21156293154 -0.96134057641 -1.21154946089 -0.978598549962 -1.21153900027 -0.995856106281 -1.21153154969 -1.0131136477 -1.21152707934 -1.0303709209 -1.21152567864 -1.0476283133 -1.21152728796 -1.06488546729 -1.21153190732 -1.0821428895 -1.21153956651 -1.09940028191 -1.21155023575 -1.11665800214 -1.21156388521 -1.13391581178 -1.21158057451 -1.15117412806 -1.21160030365 -1.16843259334 -1.21162301302 -1.18569171428 -1.21164864301 -1.20295113325 -1.2116612494 -1.22216036916 -1.21164694428 -1.241371274 -1.2116214633 -1.25863084197 -1.21159893274 -1.2758897245 -1.21157944203 -1.2931483686 -1.21156293154 -1.31040644646 -1.21154943109 -1.32766440511 -1.21153897047 -1.34492194652 -1.21153154969 -1.36217951775 -1.21152710914 -1.37943676114 -1.21152573824 -1.39669409394 -1.21152725816 -1.41395130754 -1.21153187752 -1.43120875955 -1.21153959632 -1.44846609235 -1.21155023575 -1.46572381258 -1.21156391501 -1.48298162222 -1.21158060431 -1.5002399683 -1.21160030365 -1.51749849319 -1.21162298322 -1.53475755453 -1.21164864301 -1.55201694369 -1.2116612792 -1.5712262094 -1.21164697408 -1.59043708443 -1.2116214931 -1.60769665241 -1.21159896254 -1.62495553494 -1.21157947183 -1.64221417904 -1.21156293154 -1.6594722867 -1.21154946089 -1.67673027515 -1.21153897047 -1.69398784637 -1.21153154969 -1.71124535799 -1.21152713895 -1.72850260139 -1.21152570844 -1.74575999379 -1.21152728796 -1.76301717758 -1.21153190732 -1.78027459979 -1.21153956651 -1.7975319624 -1.21155023575 -1.81478971243 -1.21156391501 -1.83204752207 -1.21158060431 -1.84930580855 -1.21160027385 -1.86656427383 -1.21162295342 -1.88382339477 -1.21164861321 -1.90108281374 -1.2116612494 -1.92029204965 -1.21164694428 -1.93950295448 -1.2116214633 -1.95676255226 -1.21159893274 -1.97402143479 -1.21157944203 -1.99128007889 -1.21156293154 -2.00853812694 -1.21154943109 -2.02579605579 -1.21153897047 -2.04305362701 -1.21153154969 -2.06031119823 -1.21152707934 -2.07756847143 -1.21152567864 -2.09482580424 -1.21152728796 -2.11208295822 -1.21153190732 -2.12934041023 -1.21153956651 -2.14659780264 -1.21155020595 -2.16385555267 -1.21156388521 -2.18111336232 -1.21158060431 -2.19837164879 -1.21160027385 -2.21563011408 -1.21162295342 -2.23288923502 -1.21164861321 -2.25014865398 -1.2116612494 -2.26935786009 -1.21164694428 -2.28856873512 -1.2116214633 -2.3058283329 -1.21159893274 -2.32308721543 -1.21157944203 -2.34034585953 -1.21156293154 -2.35760402679 -1.21154946089 -2.37486195564 -1.21153900027 -2.39211946726 -1.21153154969 -2.40937703848 -1.21152707934 -2.42663431168 -1.21152567864 -2.44389170408 -1.21152728796 -2.46114885807 -1.21153190732 -2.47840625048 -1.21153956651 -2.49566364288 -1.21155023575 -2.51292139292 -1.21156391501 -2.53017914295 -1.21158060431 -2.54743748904 -1.21160030365 -2.56469601393 -1.21162298322 -2.58195507526 -1.21164864301 -2.59921449423 -1.2116612792 -2.61842381954 -1.21164694428 -2.63763469458 -1.2116214633 -2.65489417315 -1.21159893274 -2.67215311527 -1.21157941222 -2.68941181898 -1.21156290174 -2.70666986704 -1.21154943109 -2.72392785549 -1.21153897047 -2.74118542671 -1.21153154969 -2.75844293833 -1.21152707934 -2.77570015192 -1.21152567864 -2.79295754433 -1.21152728796 -2.81021475792 -1.21153193713 -2.82747220993 -1.21153959632 -2.84472954273 -1.21155023575 -2.86198723316 -1.21156391501 -2.8792450428 -1.21158060431 -2.89650332928 -1.21160027385 -2.91376179457 -1.21162295342 -2.93102091551 -1.21164861321 -2.94828039408 -1.2116612494 -2.96748965979 -1.21164694428 -2.98670053482 -1.2116214633 -3.0039601326 -1.21159893274 -3.02121901512 -1.21157944203 -3.03847765923 -1.21156293154 -3.05573570728 -1.21154943109 -3.07299363613 -1.21153897047 -3.09025120735 -1.21153157949 -3.10750877857 -1.21152713895 -3.12476599216 -1.21152570844 --3.14116195043 -1.21152731776 --3.12390470505 -1.21153196693 --3.10664725303 -1.21153959632 --3.08938992023 -1.21155023575 --3.0721322298 -1.21156391501 --3.05487442016 -1.21158060431 --3.03761613369 -1.21160027385 --3.02035760879 -1.21162292361 --3.00309848785 -1.21164861321 --2.98583906889 -1.2116612792 --2.96662980318 -1.21164694428 --2.94741892815 -1.2116214633 --2.93015933037 -1.21159893274 --2.91290044784 -1.21157944203 --2.89564180374 -1.21156293154 --2.87838375569 -1.21154943109 --2.86112582684 -1.21153897047 --2.84386825561 -1.21153154969 --2.82661068439 -1.21152707934 --2.8093534112 -1.21152564883 --2.79209607839 -1.21152725816 --2.77483892441 -1.21153193713 --2.7575814724 -1.21153959632 --2.74032407999 -1.21155020595 --2.72306632995 -1.21156388521 --2.70580852032 -1.21158060431 --2.68855023384 -1.21160030365 --2.67129176855 -1.21162298322 --2.65403264761 -1.21164861321 --2.63677322865 -1.2116612494 --2.61756402254 -1.21164697408 --2.59835314751 -1.2116214931 --2.58109354973 -1.21159893274 --2.56383466721 -1.21157944203 --2.5465760231 -1.21156293154 --2.52931785584 -1.21154946089 --2.51205992699 -1.21153900027 --2.49480247497 -1.21153154969 --2.47754490375 -1.21152707934 --2.46028757095 -1.21152567864 --2.44303023815 -1.21152728796 --2.42577308416 -1.21153190732 --2.40851563215 -1.21153956651 --2.39125823974 -1.21155023575 --2.37400043011 -1.21156391501 --2.35674268007 -1.21158063412 --2.33948439359 -1.21160030365 --2.3222258687 -1.21162295342 --2.30496680737 -1.21164864301 --2.2877073884 -1.2116612494 --2.26849806309 -1.21164691448 --2.24928718805 -1.2116214633 --2.23202770949 -1.21159893274 --2.21476882696 -1.21157944203 --2.19751018286 -1.21156293154 --2.1802520752 -1.21154946089 --2.16299402714 -1.21153900027 --2.14573645592 -1.21153154969 --2.12847900391 -1.21152707934 --2.11122179031 -1.21152567864 --2.0939643383 -1.21152728796 --2.07670718432 -1.21153190732 --2.05944979191 -1.21153956651 --2.0421923995 -1.21155023575 --2.02493464947 -1.21156388521 --2.00767683983 -1.21158057451 --1.99041852355 -1.21160030365 --1.97316002846 -1.21162301302 --1.95590093732 -1.21164864301 --1.93864151835 -1.2116612494 --1.91943228245 -1.21164694428 --1.90022140741 -1.2116214633 --1.88296183944 -1.21159893274 --1.86570292712 -1.21157944203 --1.84844428301 -1.21156293154 --1.83118620515 -1.21154943109 --1.8139282167 -1.21153897047 --1.79667067528 -1.21153154969 --1.77941313386 -1.21152710914 --1.76215589047 -1.21152573824 --1.74489852786 -1.21152725816 --1.72764134407 -1.21153187752 --1.71038392186 -1.21153959632 --1.69312655926 -1.21155023575 --1.67586880923 -1.21156391501 --1.65861099959 -1.21158060431 --1.64135271311 -1.21160030365 --1.62409421801 -1.21162298322 --1.60683509708 -1.21164864301 --1.58957567811 -1.2116612792 --1.5703664124 -1.21164697408 --1.55115553737 -1.2116214931 --1.53389596939 -1.21159896254 --1.51663708687 -1.21157947183 --1.49937844276 -1.21156293154 --1.4821203351 -1.21154946089 --1.46486237645 -1.21153897047 --1.44760483503 -1.21153154969 --1.43034729362 -1.21152713895 --1.41309005022 -1.21152570844 --1.39583268762 -1.21152728796 --1.37857550383 -1.21153190732 --1.36131805182 -1.21153956651 --1.34406065941 -1.21155023575 --1.32680290938 -1.21156391501 --1.30954512954 -1.21158060431 --1.29228684306 -1.21160027385 --1.27502834797 -1.21162295342 --1.25776922703 -1.21164861321 --1.24050980806 -1.2116612494 --1.22130057216 -1.21164694428 --1.20208966732 -1.2116214633 --1.18483009935 -1.21159893274 --1.16757121682 -1.21157944203 --1.15031260252 -1.21156293154 --1.13305449486 -1.21154943109 --1.1157965064 -1.21153897047 --1.09853899479 -1.21153154969 --1.08128142357 -1.21152707934 --1.06402418017 -1.21152567864 --1.04676681757 -1.21152728796 --1.02950963378 -1.21153190732 --1.01225224138 -1.21153956651 --0.994994848969 -1.21155020595 --0.977737084031 -1.21156388521 --0.960479274392 -1.21158060431 --0.943220973015 -1.21160027385 --0.925962507724 -1.21162295342 --0.908703401685 -1.21164861321 --0.891443982721 -1.2116612494 --0.872234731913 -1.21164694428 --0.853023841977 -1.2116214633 --0.835764288902 -1.21159893274 --0.818505391478 -1.21157944203 --0.801246747375 -1.21156293154 --0.783988654613 -1.21154946089 --0.766730681061 -1.21153900027 --0.749473139643 -1.21153154969 --0.732215583324 -1.21152707934 --0.71495833993 -1.21152567864 --0.697700977325 -1.21152728796 --0.680443778634 -1.21153190732 --0.663186341524 -1.21153956651 --0.64592897892 -1.21155023575 --0.628671243787 -1.21156391501 --0.611413449049 -1.21158060431 --0.594155117869 -1.21160030365 --0.576896622777 -1.21162298322 --0.55963756144 -1.21164864301 --0.542378142476 -1.2116612792 --0.523168876767 -1.21164694428 --0.503958009183 -1.2116214633 --0.486698441207 -1.21159893274 --0.469439536333 -1.21157941222 --0.452180892229 -1.21156290174 --0.434922799468 -1.21154943109 --0.417664825916 -1.21153897047 --0.400407284498 -1.21153154969 --0.383149735629 -1.21152707934 --0.365892492234 -1.21152567864 --0.348635137081 -1.21152728796 --0.331377945841 -1.21153193713 --0.314120508731 -1.21153959632 --0.296863146126 -1.21155023575 --0.279605403542 -1.21156391501 --0.262347593904 -1.21158060431 --0.245089288801 -1.21160027385 --0.227830797434 -1.21162295342 --0.210571698844 -1.21164861321 --0.19331227988 -1.2116612494 --0.174103017897 -1.22875750065 --0.154888287187 -1.22873190046 --0.137628715485 -1.22870922089 --0.120369808748 -1.22868961096 --0.103111147881 -1.22867301106 --0.0858530383557 -1.2286594212 --0.0685950489715 -1.22864890099 --0.051337486133 -1.2286414504 --0.0340799218975 -1.22863695025 --0.016822661506 -1.22863554955 -0.000434721121565 -1.22863715887 -0.0176919214428 -1.22864180803 -0.0349493697286 -1.22864952683 -0.052206759341 -1.22866025567 -0.0694645196199 -1.22867402435 -0.0867223460227 -1.22869080305 -0.103980664164 -1.2287105918 -0.12123916857 -1.22873342037 -0.138498287648 -1.22875922918 -0.155757706612 -1.22877192497 -0.174966815859 -1.22875753045 -0.194177553058 -1.22873187065 -0.211437128484 -1.22870922089 -0.228696040809 -1.22868964076 -0.245954692364 -1.22867301106 -0.263212807476 -1.22865945101 -0.28047081083 -1.22864890099 -0.2977283746 -1.2286413908 -0.31498593092 -1.22863692045 -0.332243181765 -1.22863551975 -0.349500566721 -1.22863712907 -0.366757780313 -1.22864180803 -0.384015232325 -1.22864952683 -0.401272617281 -1.22866022587 -0.418530374765 -1.22867396474 -0.435788206756 -1.22869077325 -0.453046523034 -1.22871062159 -0.470305018127 -1.22873342037 -0.487564139068 -1.22875922918 -0.504823565483 -1.22877195478 -0.524032682181 -1.22875756025 -0.543243423104 -1.22873193026 -0.56050299108 -1.22870922089 -0.577761888504 -1.22868961096 -0.595020547509 -1.22867301106 -0.612278670073 -1.2286594212 -0.629536643625 -1.22864887118 -0.646794185043 -1.2286413908 -0.664051771164 -1.22863695025 -0.68130902946 -1.22863557935 -0.698566392064 -1.22863715887 -0.715823620558 -1.22864180803 -0.73308108747 -1.22864952683 -0.750338464975 -1.22866025567 -0.76759621501 -1.22867399454 -0.78485403955 -1.22869077325 -0.802112340927 -1.2287105918 -0.81937083602 -1.22873339057 -0.836629986763 -1.22875919938 -0.85388943553 -1.22877189517 -0.873098537326 -1.22875750065 -0.89230927825 -1.22873187065 -0.909568846226 -1.22870922089 -0.92682774365 -1.22868964076 -0.944086402654 -1.22867301106 -0.961344510317 -1.2286594212 -0.97860249877 -1.22864887118 -0.995860055089 -1.2286413908 -1.01311761141 -1.22863695025 -1.03037488461 -1.22863557935 -1.04763227701 -1.22863715887 -1.0648894608 -1.22864180803 -1.08214691281 -1.22864952683 -1.09940430522 -1.22866025567 -1.11666202545 -1.22867396474 -1.13391986489 -1.22869074345 -1.15117821097 -1.22871062159 -1.16843670607 -1.22873345017 -1.18569585681 -1.22875925899 -1.20295527577 -1.22877195478 -1.22216436267 -1.22875753045 -1.24137511849 -1.22873187065 -1.25863468647 -1.22870922089 -1.27589359879 -1.22868964076 -1.2931522727 -1.22867301106 -1.31041038037 -1.2286594212 -1.32766836881 -1.22864887118 -1.34492591023 -1.2286413908 -1.36218348146 -1.22863695025 -1.37944075465 -1.22863557935 -1.39669811726 -1.22863715887 -1.41395533085 -1.22864180803 -1.43121278286 -1.22864952683 -1.44847014546 -1.22866025567 -1.4657278955 -1.22867399454 -1.48298573494 -1.22869077325 -1.50024408102 -1.22871062159 -1.51750257611 -1.22873342037 -1.53476166725 -1.22875919938 -1.55202111602 -1.22877192497 -1.57123023272 -1.22875750065 -1.59044095874 -1.22873184085 -1.60770055652 -1.22870919109 -1.62495943904 -1.22868961096 -1.64221808314 -1.22867301106 -1.65947622061 -1.22865945101 -1.67673420906 -1.22864890099 -1.69399175048 -1.2286414206 -1.7112492919 -1.22863695025 -1.7285065949 -1.22863554955 -1.74576398731 -1.22863715887 -1.76302114129 -1.22864180803 -1.7802785933 -1.22864952683 -1.79753601551 -1.22866025567 -1.81479379535 -1.22867399454 -1.83205160499 -1.22869077325 -1.84930989146 -1.2287105918 -1.86656838656 -1.22873339057 -1.88382750749 -1.22875922918 -1.90108692646 -1.22877195478 -1.92029604316 -1.22875753045 -1.93950679898 -1.22873190046 -1.95676639676 -1.22870925069 -1.97402530909 -1.22868964076 -1.99128398299 -1.22867301106 -2.00854209065 -1.2286594212 -2.0258000493 -1.22864887118 -2.04305762052 -1.2286413908 -2.06031519174 -1.22863692045 -2.07757246494 -1.22863554955 -2.09482985735 -1.22863715887 -2.11208701134 -1.22864177823 -2.12934440374 -1.22864949703 -2.14660179615 -1.22866022587 -2.16385960579 -1.22867396474 -2.18111747504 -1.22869077325 -2.19837582111 -1.2287105918 -2.2156342864 -1.22873339057 -2.23289340734 -1.22875922918 -2.25015282631 -1.22877195478 -2.2693618536 -1.22875753045 -2.28857260942 -1.22873187065 -2.30583220721 -1.22870922089 -2.32309108973 -1.22868964076 -2.34034979344 -1.22867301106 -2.3576079607 -1.22865945101 -2.37486588955 -1.22864890099 -2.39212346077 -1.2286414206 -2.40938103199 -1.22863698006 -2.42663824558 -1.22863557935 -2.44389569759 -1.22863715887 -2.46115291118 -1.22864180803 -2.47841030359 -1.22864952683 -2.495667696 -1.22866025567 -2.51292544603 -1.22867399454 -2.53018325567 -1.22869077325 -2.54744160175 -1.22871062159 -2.56470012665 -1.22873342037 -2.58195924759 -1.22875922918 -2.59921866655 -1.22877195478 -2.61842781305 -1.22875753045 -2.63763850927 -1.22873187065 -2.65489804745 -1.22870922089 -2.67215698957 -1.22868964076 -2.68941563368 -1.22867301106 -2.70667374134 -1.22865945101 -2.7239317894 -1.22864890099 -2.74118936062 -1.2286413908 -2.75844693184 -1.22863692045 -2.77570420504 -1.22863554955 -2.79296153784 -1.22863715887 -2.81021875143 -1.22864180803 -2.82747620344 -1.22864952683 -2.84473353625 -1.22866025567 -2.86199128628 -1.22867399454 -2.87924909592 -1.22869077325 -2.89650738239 -1.2287105918 -2.91376590729 -1.22873339057 -2.93102502823 -1.22875922918 -2.9482845068 -1.22877192497 -2.9674936533 -1.22875750065 -2.98670434952 -1.22873190046 -3.0039639473 -1.22870922089 -3.02122288942 -1.22868961096 -3.03848153353 -1.22867301106 -3.05573958159 -1.2286594212 -3.07299757004 -1.22864890099 -3.09025514126 -1.2286414504 -3.10751271248 -1.22863695025 -3.12476998567 -1.22863554955 --3.14115795691 -1.22863715887 --3.12390071153 -1.22864180803 --3.10664325952 -1.22864952683 --3.08938592672 -1.22866025567 --3.07212817669 -1.22867402435 --3.05487036705 -1.22869080305 --3.03761208058 -1.2287105918 --3.02035355568 -1.22873342037 --3.00309443474 -1.22875922918 --2.98583495617 -1.22877192497 --2.96662580967 -1.22875753045 --2.94741511345 -1.22873187065 --2.93015551567 -1.22870922089 --2.91289657354 -1.22868964076 --2.89563792944 -1.22867301106 --2.87837988138 -1.22865945101 --2.86112189293 -1.22864890099 --2.84386432171 -1.2286413908 --2.82660675049 -1.22863692045 --2.80934941769 -1.22863551975 --2.79209208488 -1.22863712907 --2.77483493089 -1.22864180803 --2.75757747888 -1.22864952683 --2.74032002687 -1.22866022587 --2.72306221723 -1.22867396474 --2.7058044076 -1.22869077325 --2.68854612112 -1.22871062159 --2.67128765583 -1.22873342037 --2.65402853489 -1.22875922918 --2.63676911592 -1.22877195478 --2.61756002903 -1.22875756025 --2.5983492732 -1.22873193026 --2.58108967542 -1.22870922089 --2.5638307929 -1.22868961096 --2.5465720892 -1.22867301106 --2.52931392193 -1.2286594212 --2.51205599308 -1.22864887118 --2.49479848147 -1.2286413908 --2.47754091025 -1.22863695025 --2.46028363705 -1.22863557935 --2.44302624464 -1.22863715887 --2.42576903105 -1.22864180803 --2.40851157904 -1.22864952683 --2.39125418663 -1.22866025567 --2.3739964366 -1.22867399454 --2.35673862695 -1.22869077325 --2.33948028087 -1.2287105918 --2.32222175598 -1.22873339057 --2.30496263504 -1.22875919938 --2.28770321608 -1.22877189517 --2.26849406958 -1.22875750065 --2.24928331375 -1.22873187065 --2.23202377558 -1.22870922089 --2.21476489305 -1.22868964076 --2.19750624895 -1.22867301106 --2.18024814129 -1.2286594212 --2.16299015284 -1.22864887118 --2.14573258161 -1.2286413908 --2.12847507 -1.22863695025 --2.11121785641 -1.22863557935 --2.0939604044 -1.22863715887 --2.0767031312 -1.22864180803 --2.05944567919 -1.22864952683 --2.04218834639 -1.22866025567 --2.02493059635 -1.22867396474 --2.00767272711 -1.22869074345 --1.99041441083 -1.22871062159 --1.97315594554 -1.22873345017 --1.9558968246 -1.22875925899 --1.93863737583 -1.22877195478 --1.91942828894 -1.22875753045 --1.90021756291 -1.22873187065 --1.88295796514 -1.22870922089 --1.86569905281 -1.22868964076 --1.84844040871 -1.22867301106 --1.83118227124 -1.2286594212 --1.81392428279 -1.22864887118 --1.79666674137 -1.2286413908 --1.77940917015 -1.22863695025 --1.76215189696 -1.22863557935 --1.74489453435 -1.22863715887 --1.72763735056 -1.22864180803 --1.71037986875 -1.22864952683 --1.69312247634 -1.22866025567 --1.6758647263 -1.22867399454 --1.65860691667 -1.22869077325 --1.64134860039 -1.22871062159 --1.62409007549 -1.22873342037 --1.60683095455 -1.22875919938 --1.58957153559 -1.22877192497 --1.57036241889 -1.22875750065 --1.55115169287 -1.22873184085 --1.53389212489 -1.22870919109 --1.51663321257 -1.22868961096 --1.49937453866 -1.22867301106 --1.482116431 -1.22865945101 --1.46485844254 -1.22864890099 --1.44760087132 -1.2286414206 --1.43034332991 -1.22863695025 --1.41308608651 -1.22863554955 --1.3958286941 -1.22863715887 --1.37857148051 -1.22864180803 --1.3613140285 -1.22864952683 --1.34405663609 -1.22866025567 --1.32679888606 -1.22867399454 --1.30954104662 -1.22869077325 --1.29228273034 -1.2287105918 --1.27502423525 -1.22873339057 --1.25776511431 -1.22875922918 --1.24050569534 -1.22877195478 --1.22129657865 -1.22875753045 --1.20208582282 -1.22873190046 --1.18482625484 -1.22870925069 --1.16756737232 -1.22868964076 --1.15030872822 -1.22867301106 --1.13305059075 -1.2286594212 --1.1157925725 -1.22864887118 --1.09853503108 -1.2286413908 --1.08127745986 -1.22863692045 --1.06402018666 -1.22863554955 --1.04676279426 -1.22863715887 --1.02950561047 -1.22864177823 --1.01224818826 -1.22864949703 --0.994990795851 -1.22866022587 --0.977733045817 -1.22867396474 --0.960475206375 -1.22869077325 --0.943216875196 -1.2287105918 --0.925958380103 -1.22873339057 --0.908699259162 -1.22875922918 --0.891439840197 -1.22877195478 --0.872230738402 -1.22875753045 --0.853019982576 -1.22873187065 --0.8357604146 -1.22870922089 --0.818501502276 -1.22868964076 --0.801242828369 -1.22867301106 --0.783984720707 -1.22865945101 --0.766726732254 -1.22864890099 --0.749469175935 -1.2286414206 --0.732211604714 -1.22863698006 --0.714954346419 -1.22863557935 --0.697696968913 -1.22863715887 --0.68043975532 -1.22864180803 --0.663182333112 -1.22864952683 --0.645924955606 -1.22866025567 --0.62866717577 -1.22867399454 --0.61140935123 -1.22869077325 --0.59415102005 -1.22871062159 --0.576892510056 -1.22873342037 --0.559633418918 -1.22875922918 --0.542373999953 -1.22877195478 --0.523164883256 -1.22875753045 --0.503954157233 -1.22873187065 --0.486694574356 -1.22870922089 --0.469435654581 -1.22868964076 --0.452177003026 -1.22867301106 --0.434918895364 -1.22865945101 --0.41766089946 -1.22864890099 --0.40040332824 -1.2286413908 --0.38314576447 -1.22863692045 --0.365888513625 -1.22863554955 --0.348631136119 -1.22863715887 --0.331373929977 -1.22864180803 --0.314116485417 -1.22864952683 --0.296859100461 -1.22866025567 --0.279601335525 -1.22867399454 --0.262343510985 -1.22869077325 --0.245085194707 -1.2287105918 --0.227826692164 -1.22873339057 --0.210567571223 -1.22875922918 --0.193308137357 -1.22877192497 --0.174099024385 -1.24590352178 --0.154884558171 -1.24587780237 --0.137624967844 -1.2458550036 --0.120366044343 -1.24583527446 --0.103107364848 -1.24581855535 --0.0858492366969 -1.24580487609 --0.0685912314803 -1.24579429627 --0.0513336546719 -1.24578675628 --0.0340760760009 -1.24578222633 --0.0168187997769 -1.24578085542 -0.000438598217445 -1.24578246474 -0.0176958153024 -1.24578714371 -0.0349532784894 -1.24579492211 -0.0522106839344 -1.24580571056 -0.0694684600457 -1.24581953883 -0.0867263004184 -1.24583640695 -0.103984633461 -1.2458563149 -0.121243152767 -1.24587929249 -0.13850228861 -1.24590528011 -0.155761729926 -1.24591803551 -0.174970697611 -1.24590352178 -0.194181289524 -1.24587771297 -0.211440879852 -1.24585494399 -0.228699807078 -1.24583527446 -0.245958477259 -1.24581855535 -0.263216607273 -1.2458049357 -0.280474625528 -1.24579432607 -0.297732204199 -1.24578672647 -0.314989775419 -1.24578222633 -0.332247048616 -1.24578082562 -0.349504455924 -1.24578243494 -0.366761676967 -1.24578711391 -0.384019136429 -1.24579486251 -0.401276543737 -1.24580568076 -0.418534323573 -1.24581950903 -0.435792155564 -1.24583637714 -0.453050486744 -1.2458563149 -0.470309004188 -1.24587926268 -0.48756814003 -1.24590528011 -0.504827588797 -1.24591806531 -0.524036541581 -1.24590355158 -0.543247133493 -1.24587777257 -0.560506731272 -1.24585497379 -0.577765658498 -1.24583527446 -0.595024332404 -1.24581855535 -0.612282454968 -1.24580487609 -0.629540473223 -1.24579426646 -0.646798044443 -1.24578675628 -0.664055615664 -1.24578228593 -0.681312888861 -1.24578088522 -0.698570281267 -1.24578246474 -0.715827524662 -1.24578714371 -0.733085006475 -1.24579489231 -0.750342398882 -1.24580568076 -0.767600163818 -1.24581950903 -0.784857988358 -1.24583637714 -0.802116304636 -1.2458563149 -0.819374844432 -1.24587926268 -0.836633980274 -1.24590525031 -0.853893429041 -1.24591803551 -0.873102396727 -1.24590355158 -0.892312973738 -1.24587777257 -0.909572571516 -1.24585497379 -0.926831498742 -1.24583527446 -0.94409018755 -1.24581855535 -0.961348325014 -1.24580487609 -0.978606328368 -1.24579426646 -0.995863884689 -1.24578672647 -1.01312145591 -1.24578225613 -1.03037875891 -1.24578085542 -1.04763615131 -1.24578243494 -1.06489336491 -1.24578717351 -1.08215081692 -1.24579492211 -1.09940820932 -1.24580568076 -1.11666598916 -1.24581950903 -1.1339238286 -1.24583637714 -1.15118217468 -1.2458563149 -1.16844069958 -1.24587926268 -1.18569985032 -1.24590528011 -1.20295929909 -1.24591806531 -1.22216823697 -1.24590355158 -1.24137881398 -1.24587774277 -1.25863841176 -1.24585497379 -1.27589735389 -1.24583530426 -1.2931560576 -1.24581855535 -1.31041419506 -1.24580490589 -1.32767218351 -1.24579426646 -1.34492975473 -1.24578669667 -1.36218735576 -1.24578225613 -1.37944462895 -1.24578088522 -1.39670202136 -1.24578249455 -1.41395923495 -1.24578714371 -1.43121668696 -1.24579486251 -1.44847407937 -1.24580568076 -1.46573185921 -1.24581950903 -1.48298972845 -1.24583634734 -1.50024804473 -1.2458563149 -1.51750653982 -1.24587929249 -1.53476569057 -1.24590525031 -1.55202513933 -1.24591800571 -1.57123410702 -1.24590349197 -1.59044471383 -1.24587774277 -1.60770431161 -1.24585494399 -1.62496322393 -1.24583524466 -1.64222189784 -1.24581855535 -1.6594800353 -1.24580490589 -1.67673802376 -1.24579429627 -1.69399556517 -1.24578672647 -1.7112531364 -1.24578219652 -1.7285104394 -1.24578079581 -1.7457678318 -1.24578243494 -1.7630250454 -1.24578714371 -1.78028252721 -1.24579489231 -1.79753994942 -1.24580568076 -1.81479772925 -1.24581953883 -1.83205556869 -1.24583640694 -1.84931388497 -1.2458563149 -1.86657240987 -1.24587926268 -1.88383153081 -1.24590528011 -1.90109094977 -1.24591806531 -1.92029991746 -1.24590352178 -1.93951049447 -1.24587777257 -1.95677012205 -1.2458550036 -1.97402906418 -1.24583527446 -1.99128773809 -1.24581855535 -2.00854590535 -1.24580487609 -2.0258039236 -1.24579426646 -2.04306149483 -1.24578672647 -2.06031906605 -1.24578222633 -2.07757633924 -1.24578082562 -2.09483379126 -1.24578243494 -2.11209100485 -1.24578711391 -2.12934839726 -1.24579486251 -2.14660573006 -1.24580568076 -2.16386348009 -1.24581950903 -2.18112140894 -1.24583637714 -2.19837981462 -1.2458563447 -2.21563833952 -1.24587929249 -2.23289746046 -1.24590528011 -2.25015681982 -1.24591806531 -2.2693657279 -1.24590352178 -2.28857636452 -1.24587771297 -2.30583596229 -1.24585494399 -2.32309490442 -1.24583527446 -2.34035360813 -1.24581855535 -2.35761171579 -1.24580490589 -2.37486970424 -1.24579426646 -2.39212727547 -1.24578672647 -2.40938484669 -1.24578228593 -2.42664211988 -1.24578085542 -2.4438995719 -1.24578243494 -2.46115678549 -1.24578714371 -2.4784142375 -1.24579489231 -2.49567162991 -1.24580568076 -2.51292937994 -1.24581950903 -2.53018724918 -1.24583637714 -2.54744559527 -1.2458563447 -2.56470412016 -1.24587929249 -2.5819632411 -1.24590528011 -2.59922271967 -1.24591806531 -2.61843168735 -1.24590355158 -2.63764220476 -1.24587774277 -2.65490180254 -1.24585494399 -2.67216074467 -1.24583527446 -2.68941944838 -1.24581855535 -2.70667761564 -1.24580490589 -2.72393560409 -1.24579429627 -2.74119317531 -1.24578672647 -2.75845074653 -1.24578222633 -2.77570801974 -1.24578085542 -2.79296541214 -1.24578246474 -2.81022262573 -1.24578711391 -2.82748007774 -1.24579486251 -2.84473747015 -1.24580568076 -2.86199527979 -1.24581950903 -2.87925308943 -1.24583637714 -2.8965113759 -1.2458563149 -2.9137699008 -1.24587926268 -2.93102908134 -1.24590528011 -2.94828855991 -1.24591803551 -2.9674975276 -1.24590352178 -2.98670810461 -1.24587780237 -3.00396770239 -1.2458550036 -3.02122664452 -1.24583527446 -3.03848528862 -1.24581855535 -3.05574339628 -1.24580487609 -3.07300144434 -1.24579429627 -3.09025901556 -1.24578675628 -3.10751658678 -1.24578222633 -3.12477385998 -1.24578085542 --3.14115408261 -1.24578246474 --3.12389683724 -1.24578714371 --3.10663938523 -1.24579492211 --3.08938199282 -1.24580571056 --3.07212418318 -1.24581953883 --3.05486637354 -1.24583640695 --3.03760808706 -1.2458563149 --3.02034956217 -1.24587929249 --3.00309038162 -1.24590528011 --2.98583090305 -1.24591803551 --2.96662193537 -1.24590352178 --2.94741135836 -1.24587771297 --2.93015176058 -1.24585494399 --2.91289281845 -1.24583527446 --2.89563417435 -1.24581855535 --2.87837606669 -1.2458049357 --2.86111801863 -1.24579432607 --2.84386044741 -1.24578672647 --2.82660287619 -1.24578222633 --2.80934560299 -1.24578082562 --2.79208827019 -1.24578243494 --2.77483099699 -1.24578711391 --2.75757348538 -1.24579486251 --2.74031609297 -1.24580568076 --2.72305834293 -1.24581950903 --2.70580053329 -1.24583637714 --2.68854218721 -1.2458563149 --2.67128366232 -1.24587926268 --2.65402454138 -1.24590528011 --2.63676512242 -1.24591806531 --2.61755615473 -1.24590355158 --2.59834551811 -1.24587777257 --2.58108592034 -1.24585497379 --2.56382703781 -1.24583527446 --2.5465683341 -1.24581855535 --2.52931016684 -1.24580487609 --2.51205217838 -1.24579426646 --2.49479460716 -1.24578675628 --2.47753703594 -1.24578228593 --2.46027976274 -1.24578088522 --2.44302231073 -1.24578246474 --2.42576509714 -1.24578714371 --2.40850764513 -1.24579489231 --2.39125019312 -1.24580568076 --2.37399244309 -1.24581950903 --2.35673463344 -1.24583637714 --2.33947628736 -1.2458563149 --2.32221776247 -1.24587926268 --2.30495864153 -1.24590525031 --2.28769916296 -1.24591803551 --2.26849019528 -1.24590355158 --2.24927967787 -1.24587777257 --2.23202008009 -1.24585497379 --2.21476113796 -1.24583527446 --2.19750243425 -1.24581855535 --2.18024432659 -1.24580487609 --2.16298639775 -1.24579426646 --2.14572876692 -1.24578672647 --2.1284711957 -1.24578225613 --2.11121398211 -1.24578085542 --2.09395653009 -1.24578243494 --2.0766992569 -1.24578717351 --2.05944180489 -1.24579492211 --2.04218441248 -1.24580568076 --2.02492660284 -1.24581950903 --2.0076687634 -1.24583637714 --1.99041044712 -1.2458563149 --1.97315195203 -1.24587926268 --1.95589283109 -1.24590528011 --1.93863335252 -1.24591806531 --1.91942438483 -1.24590355158 --1.90021380782 -1.24587774277 --1.88295421005 -1.24585497379 --1.86569529772 -1.24583530426 --1.84843662381 -1.24581855535 --1.83117848635 -1.24580490589 --1.81392049789 -1.24579426646 --1.79666289687 -1.24578669667 --1.77940532565 -1.24578225613 --1.76214805245 -1.24578088522 --1.74489066004 -1.24578249455 --1.72763344646 -1.24578714371 --1.71037593484 -1.24579486251 --1.69311854243 -1.24580568076 --1.6758607924 -1.24581950903 --1.65860295296 -1.24583634734 --1.64134460688 -1.2458563149 --1.62408608198 -1.24587929249 --1.60682696104 -1.24590525031 --1.58956754208 -1.24591800571 --1.57035854459 -1.24590349197 --1.55114793778 -1.24587774277 --1.5338883698 -1.24585494399 --1.51662945747 -1.24583524466 --1.49937078356 -1.24581855535 --1.4821126461 -1.24580490589 --1.46485462785 -1.24579429627 --1.44759705663 -1.24578672647 --1.43033948541 -1.24578219652 --1.41308221221 -1.24578079581 --1.3958248198 -1.24578243494 --1.37856760621 -1.24578714371 --1.3613101542 -1.24579489231 --1.34405273199 -1.24580568076 --1.32679495215 -1.24581953883 --1.30953711271 -1.24583640694 --1.29227876663 -1.2458563149 --1.27502024174 -1.24587926268 --1.2577611208 -1.24590528011 --1.24050167203 -1.24591806531 --1.22129270435 -1.24590352178 --1.20208212734 -1.24587777257 --1.18482252956 -1.2458550036 --1.16756361723 -1.24583527446 --1.15030494332 -1.24581855535 --1.13304680586 -1.24580487609 --1.11578878761 -1.24579426646 --1.09853118658 -1.24578672647 --1.08127358556 -1.24578222633 --1.06401631236 -1.24578082562 --1.04675891995 -1.24578243494 --1.02950170636 -1.24578711391 --1.01224425435 -1.24579486251 --0.994986876844 -1.24580568076 --0.97772911191 -1.24581950903 --0.960471242666 -1.24583637714 --0.943212896586 -1.2458563447 --0.925954371691 -1.24587929249 --0.90869525075 -1.24590528011 --0.891435816884 -1.24591806531 --0.872226849198 -1.24590352178 --0.853016242385 -1.24587771297 --0.835756659508 -1.24585494399 --0.818497732282 -1.24583527446 --0.801239028573 -1.24581855535 --0.783980920911 -1.24580490589 --0.766722932458 -1.24579426646 --0.749465361237 -1.24578672647 --0.732207775116 -1.24578228593 --0.714950487018 -1.24578085542 --0.69769307971 -1.24578243494 --0.680435866118 -1.24578714371 --0.663178429008 -1.24579489231 --0.645921036601 -1.24580568076 --0.628663256765 -1.24581950903 --0.611405402422 -1.24583637714 --0.594147056341 -1.2458563447 --0.576888531446 -1.24587929249 --0.559629395604 -1.24590528011 --0.542369961739 -1.24591806531 --0.523161008954 -1.24590355158 --0.503950417042 -1.24587774277 --0.486690826714 -1.24585494399 --0.469431899488 -1.24583527446 --0.452173218131 -1.24581855535 --0.434915088117 -1.24580490589 --0.417657077313 -1.24579429627 --0.400399498641 -1.24578672647 --0.383141919971 -1.24578222633 --0.365884654224 -1.24578085542 --0.348627261818 -1.24578246474 --0.331370033324 -1.24578711391 --0.314112566411 -1.24579486251 --0.296855159104 -1.24580568076 --0.279597379267 -1.24581950903 --0.262339547276 -1.24583637714 --0.245081219822 -1.2458563149 --0.227822702378 -1.24587926268 --0.210563566536 -1.24590528011 --0.193304121494 -1.24591803551 --0.174095153808 -1.26304838062 --0.154882222414 -1.2630224824 --0.13762262091 -1.26299953461 --0.120363684371 -1.26297968626 --0.103104993701 -1.26296287775 --0.0858468525112 -1.26294916868 --0.0685888398439 -1.26293852925 --0.0513312546536 -1.26293092966 --0.0340736662038 -1.26292639971 --0.0168163799681 -1.2629250288 -0.00044102780521 -1.26292663813 -0.0176982553676 -1.26293134689 -0.0349557287991 -1.2629391253 -0.0522131435573 -1.26294994355 -0.0694709271192 -1.26296386123 -0.0867287777364 -1.26298084855 -0.103987121954 -1.26300087571 -0.121245648712 -1.26302394271 -0.138504792005 -1.26305010915 -0.155764248222 -1.26306295395 -0.174973130226 -1.26304832101 -0.194183632731 -1.26302236319 -0.21144323051 -1.2629994452 -0.228702165186 -1.26297968626 -0.245960853994 -1.26296290755 -0.263218991459 -1.26294919849 -0.280477017164 -1.26293855905 -0.297734610736 -1.26293092966 -0.314992181957 -1.26292636991 -0.332249470055 -1.26292493939 -0.349506892264 -1.26292657852 -0.366764113307 -1.26293131709 -0.384021572769 -1.2629390955 -0.401278987527 -1.26294994354 -0.418536789715 -1.26296386123 -0.435794636607 -1.26298084855 -0.453052967787 -1.26300087571 -0.470311492681 -1.26302394271 -0.487570650876 -1.26305010915 -0.504830099642 -1.26306295395 -0.524038955569 -1.26304835081 -0.543249472976 -1.26302242279 -0.560509085655 -1.26299950481 -0.577768012881 -1.26297968626 -0.595026671886 -1.26296287775 -0.61228479445 -1.26294916868 -0.629542842508 -1.26293849945 -0.64680044353 -1.26293092966 -0.664058044552 -1.26292639971 -0.681315332651 -1.262924999 -0.698572725057 -1.26292663813 -0.715829953551 -1.26293131709 -0.733087435365 -1.2629390955 -0.750344872475 -1.26294994354 -0.767602652312 -1.26296386123 -0.784860476852 -1.26298084855 -0.80211879313 -1.26300087571 -0.819377332926 -1.26302394271 -0.83663648367 -1.26305010915 -0.853895947337 -1.26306295395 -0.873104825616 -1.26304835081 -0.89231531322 -1.2630224526 -0.9095749259 -1.26299950481 -0.926833868027 -1.26297965646 -0.944092571735 -1.26296287775 -0.9613507092 -1.26294916868 -0.978608712554 -1.26293849945 -0.995866298676 -1.26293089986 -1.0131238699 -1.26292639971 -1.03038117289 -1.2629249692 -1.04763859511 -1.26292657852 -1.06489580869 -1.26293134689 -1.0821532607 -1.2629391253 -1.09941068292 -1.26294994354 -1.11666849256 -1.26296386123 -1.133926332 -1.26298084855 -1.15118467808 -1.26300087571 -1.16844320297 -1.26302394271 -1.18570235372 -1.26305010915 -1.20296180248 -1.26306295395 -1.22217065096 -1.26304835081 -1.24138116837 -1.26302242279 -1.25864079595 -1.26299953461 -1.27589970827 -1.26297971606 -1.29315838218 -1.26296287775 -1.31041654944 -1.26294919849 -1.3276745677 -1.26293849945 -1.34493213892 -1.26293089986 -1.36218973994 -1.26292642951 -1.37944704294 -1.262924999 -1.39670446515 -1.26292660832 -1.41396167874 -1.26293131709 -1.43121913075 -1.2629390955 -1.44847652316 -1.26294994354 -1.4657343328 -1.26296386123 -1.48299220204 -1.26298081875 -1.50025051832 -1.26300087571 -1.51750904322 -1.26302397251 -1.53476819396 -1.26305010915 -1.55202764273 -1.26306292415 -1.571236521 -1.26304832101 -1.59044703841 -1.2630224526 -1.60770663619 -1.26299953461 -1.62496557832 -1.26297971606 -1.64222428203 -1.26296287775 -1.65948241949 -1.26294916869 -1.67674040794 -1.26293855905 -1.69399797916 -1.26293092966 -1.71125558019 -1.26292636991 -1.72851285338 -1.26292493939 -1.74577024579 -1.26292657852 -1.76302751898 -1.26293131709 -1.7802850008 -1.2629390657 -1.79754239321 -1.26294991374 -1.81480017304 -1.26296389103 -1.83205804228 -1.26298087835 -1.84931638837 -1.26300087571 -1.86657491326 -1.26302394271 -1.88383406401 -1.26305010915 -1.90109351277 -1.26306295395 -1.92030236125 -1.26304832101 -1.93951284885 -1.26302242279 -1.95677250624 -1.26299953461 -1.97403141856 -1.26297971606 -1.99129006267 -1.26296290755 -2.00854822993 -1.26294916868 -2.02580624819 -1.26293849945 -2.04306381941 -1.26293089986 -2.06032145023 -1.26292639971 -2.07757878304 -1.262924999 -2.09483617544 -1.26292660832 -2.11209338903 -1.26293131709 -2.12935090065 -1.2629390955 -2.14660829305 -1.26294994354 -2.16386598349 -1.26296386123 -2.18112385273 -1.26298084855 -2.19838225841 -1.26300093532 -2.21564078331 -1.26302400231 -2.23289990425 -1.26305010915 -2.25015932322 -1.26306295395 -2.2693682313 -1.26304832101 -2.2885787487 -1.26302239299 -2.30583834648 -1.26299950481 -2.32309734821 -1.26297968626 -2.34035599232 -1.26296287775 -2.35761404037 -1.26294916868 -2.37487208843 -1.26293846965 -2.39212971926 -1.26293087005 -2.40938729048 -1.26292639971 -2.42664456368 -1.2629249692 -2.44390201569 -1.26292657852 -2.46115922928 -1.26293131709 -2.47841668129 -1.2629390955 -2.4956740737 -1.26294994354 -2.51293188333 -1.26296386123 -2.53018975258 -1.26298084855 -2.54744803905 -1.26300090551 -2.56470662355 -1.26302397251 -2.5819657445 -1.26305010915 -2.59922522306 -1.26306295395 -2.61843413115 -1.26304835081 -2.63764452934 -1.26302242279 -2.65490412712 -1.26299950481 -2.67216312885 -1.26297971606 -2.68942183256 -1.26296290755 -2.70667999983 -1.26294916868 -2.72393798828 -1.26293849945 -2.7411955595 -1.26293089986 -2.75845313072 -1.26292639971 -2.77571040392 -1.262924999 -2.79296785593 -1.26292660832 -2.81022506952 -1.26293131709 -2.82748252153 -1.2629390955 -2.84473991394 -1.26294994354 -2.86199772358 -1.26296386123 -2.87925559282 -1.26298084855 -2.8965138793 -1.26300087571 -2.91377240419 -1.26302394271 -2.93103164434 -1.26305010915 -2.94829112291 -1.26306295395 -2.96749997139 -1.26304838062 -2.9867104888 -1.2630224824 -3.00397008658 -1.26299953461 -3.0212289691 -1.26297968626 -3.03848767281 -1.26296287775 -3.05574584007 -1.26294916868 -3.07300382853 -1.26293852925 -3.09026139975 -1.26293092966 -3.10751903057 -1.26292639971 -3.12477630377 -1.2629250288 --3.14115163882 -1.26292663813 --3.12389439345 -1.26293134689 --3.10663694144 -1.2629391253 --3.08937954903 -1.26294994355 --3.07212173938 -1.26296386123 --3.05486387014 -1.26298084855 --3.03760552406 -1.26300087571 --3.02034699917 -1.26302394271 --3.00308781862 -1.26305010915 --2.98582834005 -1.26306295395 --2.96661949158 -1.26304832101 --2.94740897417 -1.26302236319 --2.93014937639 -1.2629994452 --2.91289049387 -1.26297968626 --2.89563179016 -1.26296290755 --2.8783736229 -1.26294919849 --2.86111563444 -1.26293855905 --2.84385806322 -1.26293092966 --2.826600492 -1.26292636991 --2.8093432188 -1.26292493939 --2.7920858264 -1.26292657852 --2.7748285532 -1.26293131709 --2.75757104158 -1.2629390955 --2.74031364918 -1.26294994354 --2.72305589914 -1.26296386123 --2.70579808951 -1.26298084855 --2.68853968382 -1.26300087571 --2.67128115892 -1.26302394271 --2.65402203799 -1.26305010915 --2.63676255942 -1.26306295395 --2.61755371094 -1.26304835081 --2.59834319353 -1.26302242279 --2.58108353615 -1.26299950481 --2.56382465362 -1.26297968626 --2.54656600952 -1.26296287775 --2.52930784226 -1.26294916868 --2.5120497942 -1.26293849945 --2.49479222298 -1.26293092966 --2.47753465176 -1.26292639971 --2.46027731895 -1.262924999 --2.44301986694 -1.26292663813 --2.42576265335 -1.26293131709 --2.40850520134 -1.2629390955 --2.39124774933 -1.26294994354 --2.37398993969 -1.26296386123 --2.35673213005 -1.26298084855 --2.33947384357 -1.26300087571 --2.32221531868 -1.26302394271 --2.30495619774 -1.26305010915 --2.28769671917 -1.26306295395 --2.26848781109 -1.26304835081 --2.24927735329 -1.2630224526 --2.23201775551 -1.26299950481 --2.21475875378 -1.26297965646 --2.19750005007 -1.26296287775 --2.18024194241 -1.26294916868 --2.16298395395 -1.26293849945 --2.14572632313 -1.26293089986 --2.12846875191 -1.26292639971 --2.11121147871 -1.2629249692 --2.0939540267 -1.26292657852 --2.07669681311 -1.26293134689 --2.0594393611 -1.2629391253 --2.04218196869 -1.26294994354 --2.02492415905 -1.26296386123 --2.00766631961 -1.26298084855 --1.99040797353 -1.26300087571 --1.97314941883 -1.26302394271 --1.95589029789 -1.26305010915 --1.93863084912 -1.26306295395 --1.91942197084 -1.26304835081 --1.90021148324 -1.26302242279 --1.88295188546 -1.26299953461 --1.86569294333 -1.26297971606 --1.84843423962 -1.26296287775 --1.83117610216 -1.26294919849 --1.8139180839 -1.26293849945 --1.79666048288 -1.26293089986 --1.77940291166 -1.26292642951 --1.76214563847 -1.262924999 --1.74488824606 -1.26292660832 --1.72763100266 -1.26293131709 --1.71037349105 -1.2629390955 --1.69311609865 -1.26294994354 --1.67585834861 -1.26296386123 --1.65860047936 -1.26298081875 --1.64134213329 -1.26300087571 --1.62408360839 -1.26302397251 --1.60682445764 -1.26305010915 --1.58956500888 -1.26306292415 --1.5703561008 -1.26304832101 --1.55114558339 -1.2630224526 --1.53388598562 -1.26299953461 --1.51662707329 -1.26297971606 --1.49936839938 -1.26296287775 --1.48211026192 -1.26294916869 --1.46485224366 -1.26293855905 --1.44759464264 -1.26293092966 --1.43033707142 -1.26292636991 --1.41307979822 -1.26292493939 --1.39582237601 -1.26292657852 --1.37856516242 -1.26293131709 --1.36130771041 -1.2629390657 --1.3440502584 -1.26294991374 --1.32679244876 -1.26296389103 --1.30953463912 -1.26298087835 --1.29227629304 -1.26300087571 --1.27501773834 -1.26302394271 --1.2577585876 -1.26305010915 --1.24049913883 -1.26306295395 --1.22129029036 -1.26304832101 --1.20207980275 -1.26302242279 --1.18482017517 -1.26299953461 --1.16756123304 -1.26297971606 --1.15030255914 -1.26296290755 --1.13304442167 -1.26294916868 --1.11578640342 -1.26293849945 --1.0985288024 -1.26293089986 --1.08127120137 -1.26292639971 --1.06401389838 -1.262924999 --1.04675650597 -1.26292660832 --1.02949929237 -1.26293131709 --1.01224181056 -1.2629390955 --0.994984403253 -1.26294994354 --0.977726623416 -1.26296386123 --0.960468754172 -1.26298084855 --0.943210408092 -1.26300093532 --0.925951883197 -1.26302400231 --0.908692747355 -1.26305010915 --0.891433298588 -1.26306295395 --0.872224405408 -1.26304832101 --0.853013902903 -1.26302239299 --0.835754320025 -1.26299950481 --0.818495377898 -1.26297968626 --0.801236689091 -1.26296287775 --0.783978566527 -1.26294916868 --0.766720548272 -1.26293846965 --0.749462962151 -1.26293087005 --0.732205361128 -1.26292639971 --0.714948058128 -1.2629249692 --0.697690650821 -1.26292657852 --0.680433437228 -1.26293131709 --0.663175970316 -1.2629390955 --0.645918563009 -1.26294994354 --0.628660783171 -1.26296386123 --0.611402928829 -1.26298084855 --0.594144582749 -1.26300090551 --0.576886042953 -1.26302397251 --0.559626892209 -1.26305010915 --0.542367428541 -1.26306295395 --0.523158550263 -1.26304835081 --0.503948062659 -1.26302242279 --0.48668847233 -1.26299950481 --0.469429537654 -1.26297971606 --0.452170848846 -1.26296290755 --0.434912711382 -1.26294916868 --0.417654685676 -1.26293849945 --0.400397099555 -1.26293089986 --0.383139513433 -1.26292639971 --0.365882232785 -1.262924999 --0.348624832928 -1.26292660832 --0.331367596984 -1.26293131709 --0.31411010772 -1.2629390955 --0.296852692962 -1.26294994354 --0.279594913125 -1.26296386123 --0.262337066233 -1.26298084855 --0.245078731328 -1.26300087571 --0.227820202708 -1.26302394271 --0.21056105569 -1.26305010915 --0.193301603198 -1.26306295395 --0.174092724919 -1.28016632795 --0.154879909009 -1.28014028072 --0.137620296329 -1.28011718392 --0.120361348614 -1.28009727597 --0.103102656081 -1.28008040786 --0.0858445074409 -1.28006663918 --0.0685864826664 -1.28005594015 --0.0513288863003 -1.28004828095 --0.0340712871402 -1.280043751 --0.0168139918242 -1.2800423503 -0.000443425960838 -1.28004395962 -0.0177006626036 -1.28004869819 -0.0349581460468 -1.2800565064 -0.0522155724466 -1.28006738424 -0.0694733671844 -1.28008139133 -0.0867312271148 -1.28009846807 -0.103989578784 -1.28011861444 -0.12124811858 -1.28014183045 -0.138507273048 -1.28016811609 -0.155766736716 -1.2801810205 -0.174975533038 -1.28016632795 -0.194185946137 -1.28014022112 -0.211445551366 -1.28011715412 -0.228704497218 -1.28009727597 -0.245963189751 -1.28008040786 -0.263221338391 -1.28006663918 -0.280479378998 -1.28005594015 -0.297736980021 -1.28004828095 -0.314994566142 -1.2800436914 -0.332251861691 -1.28004226089 -0.3495092839 -1.28004392982 -0.366766519845 -1.28004869819 -0.384023994207 -1.28005650639 -0.401281408966 -1.28006738424 -0.418539218605 -1.28008139133 -0.435797087848 -1.28009846807 -0.453055433929 -1.28011861444 -0.470313966274 -1.28014183045 -0.487573131919 -1.28016811609 -0.504832603037 -1.2801809907 -0.524041369558 -1.28016629815 -0.543251797557 -1.28014025092 -0.560511425138 -1.28011718392 -0.577770352364 -1.28009724617 -0.59502902627 -1.28008037806 -0.612287163734 -1.28006660938 -0.629545211792 -1.28005588054 -0.646802812815 -1.28004825115 -0.664060413837 -1.2800437212 -0.681317716837 -1.28004232049 -0.698575124144 -1.28004395962 -0.715832352638 -1.28004869819 -0.733089849353 -1.28005650639 -0.750347286463 -1.28006738424 -0.767605081201 -1.28008139133 -0.784862935543 -1.28009846807 -0.802121266722 -1.28011861444 -0.819379806519 -1.28014183045 -0.836638972163 -1.28016811609 -0.853898450732 -1.2801809907 -0.873107224703 -1.28016629815 -0.8923176229 -1.28014025092 -0.909577265382 -1.28011718392 -0.92683622241 -1.28009724617 -0.944094911218 -1.28008037806 -0.961353048682 -1.28006660938 -0.978611066937 -1.28005588054 -0.995868667959 -1.28004825115 -1.01312625408 -1.2800437212 -1.03038355708 -1.28004229069 -1.04764100909 -1.28004392982 -1.06489822269 -1.28004869819 -1.0821556747 -1.28005650639 -1.09941312671 -1.28006738424 -1.11667093635 -1.28008139133 -1.13392880559 -1.28009846807 -1.15118715167 -1.28011861444 -1.16844567656 -1.28014183045 -1.18570485711 -1.28016808629 -1.20296430588 -1.28018096089 -1.22217306495 -1.28016629815 -1.24138349294 -1.28014025092 -1.25864312052 -1.28011721372 -1.27590206265 -1.28009727597 -1.29316073656 -1.28008037806 -1.31041887403 -1.28006660938 -1.32767692208 -1.28005588054 -1.34493452311 -1.28004828095 -1.36219209433 -1.280043751 -1.37944939733 -1.28004229069 -1.39670684934 -1.28004392982 -1.41396409273 -1.28004869819 -1.43122157454 -1.28005650639 -1.44847896695 -1.28006738424 -1.46573674679 -1.28008136153 -1.48299461603 -1.28009843827 -1.50025299192 -1.28011861444 -1.51751154661 -1.28014183045 -1.53477066755 -1.28016811609 -1.55203011632 -1.2801809907 -1.571238935 -1.28016629815 -1.59044936299 -1.28014025092 -1.60770896077 -1.28011721372 -1.6249679029 -1.28009730577 -1.64222660661 -1.28008037806 -1.65948477388 -1.28006657958 -1.67674276232 -1.28005591035 -1.69400033355 -1.28004828095 -1.71125796437 -1.2800437212 -1.72851526737 -1.28004226089 -1.74577265978 -1.28004390001 -1.76302990317 -1.28004869819 -1.78028738499 -1.28005647659 -1.79754480719 -1.28006735444 -1.81480261683 -1.28008139133 -1.83206048608 -1.28009846807 -1.84931883216 -1.28011861444 -1.86657735705 -1.28014183045 -1.8838365376 -1.28016811609 -1.90109601617 -1.2801810205 -1.92030477524 -1.28016632795 -1.93951520324 -1.28014025092 -1.95677483082 -1.28011721372 -1.97403374314 -1.28009730577 -1.99129241705 -1.28008040786 -2.00855055451 -1.28006660938 -2.02580857277 -1.28005588054 -2.04306614399 -1.28004828095 -2.06032377481 -1.28004378081 -2.07758110761 -1.2800423503 -2.09483850002 -1.28004395962 -2.11209577322 -1.28004869819 -2.12935328484 -1.28005650639 -2.14661067724 -1.28006738424 -2.16386842728 -1.28008139133 -2.18112629652 -1.28009846807 -2.1983847022 -1.28011864424 -2.2156432271 -1.28014186025 -2.23290234804 -1.28016808629 -2.25016182661 -1.28018096089 -2.26937067509 -1.28016629815 -2.28858107328 -1.28014025092 -2.30584067106 -1.28011721372 -2.32309961319 -1.28009727597 -2.3403582573 -1.28008037806 -2.35761636496 -1.28006660938 -2.37487441301 -1.28005588054 -2.39213210344 -1.28004828095 -2.40938973427 -1.280043751 -2.42664694786 -1.28004229069 -2.44390434027 -1.28004392982 -2.46116161347 -1.28004869819 -2.47841912508 -1.28005650639 -2.49567657709 -1.28006738424 -2.51293438673 -1.28008139133 -2.53019219637 -1.28009846807 -2.54745048284 -1.28011861444 -2.56470906734 -1.28014183045 -2.58196818829 -1.28016808629 -2.59922766686 -1.28018096089 -2.61843651533 -1.28016629815 -2.63764685392 -1.28014025092 -2.6549064517 -1.28011721372 -2.67216545343 -1.28009730577 -2.68942415714 -1.28008040786 -2.70668232441 -1.28006660938 -2.72394037247 -1.28005588054 -2.74119794369 -1.28004825115 -2.75845551491 -1.280043751 -2.77571284771 -1.28004232049 -2.79297029972 -1.28004392982 -2.81022751331 -1.28004869819 -2.82748496533 -1.28005650639 -2.84474235773 -1.28006738424 -2.86200016737 -1.28008139133 -2.87925803661 -1.28009846807 -2.89651632309 -1.28011861444 -2.91377484799 -1.28014183045 -2.93103408814 -1.28016811609 -2.94829356671 -1.2801809907 -2.96750229597 -1.28016632795 -2.98671275377 -1.28014028072 -3.00397241116 -1.28011718392 -3.02123129368 -1.28009727597 -3.03848999739 -1.28008040786 -3.05574816465 -1.28006663918 -3.07300615311 -1.28005594015 -3.09026372433 -1.28004828095 -3.10752135515 -1.280043751 -3.12477868795 -1.2800423503 --3.14114919503 -1.28004395962 --3.12389194965 -1.28004869819 --3.10663449764 -1.2800565064 --3.08937710524 -1.28006738424 --3.07211929559 -1.28008139133 --3.05486142635 -1.28009846807 --3.03760308027 -1.28011861444 --3.02034449577 -1.28014183045 --3.00308531523 -1.28016811609 --2.98582589626 -1.2801810205 --2.966617167 -1.28016632795 --2.9474067092 -1.28014022112 --2.93014705181 -1.28011715412 --2.91288816929 -1.28009727597 --2.89562946558 -1.28008040786 --2.87837129832 -1.28006663918 --2.86111330986 -1.28005594015 --2.84385573864 -1.28004828095 --2.82659816742 -1.2800436914 --2.80934083461 -1.28004226089 --2.7920833826 -1.28004392982 --2.77482616902 -1.28004869819 --2.757568717 -1.28005650639 --2.74031126499 -1.28006738424 --2.72305345536 -1.28008139133 --2.70579558611 -1.28009846807 --2.68853718042 -1.28011861444 --2.67127865553 -1.28014183045 --2.65401953459 -1.28016811609 --2.63676005602 -1.2801809907 --2.61755126715 -1.28016629815 --2.59834086895 -1.28014025092 --2.58108121157 -1.28011718392 --2.56382232904 -1.28009724617 --2.54656368494 -1.28008037806 --2.52930551768 -1.28006660938 --2.51204746962 -1.28005588054 --2.49478983879 -1.28004825115 --2.47753226757 -1.2800437212 --2.46027499437 -1.28004232049 --2.44301754236 -1.28004395962 --2.42576026916 -1.28004869819 --2.40850275755 -1.28005650639 --2.39124536515 -1.28006738424 --2.3739875555 -1.28008139133 --2.35672968626 -1.28009846807 --2.33947139978 -1.28011861444 --2.32221287489 -1.28014183045 --2.30495375395 -1.28016811609 --2.28769427538 -1.2801809907 --2.2684854269 -1.28016629815 --2.24927502871 -1.28014025092 --2.23201543093 -1.28011718392 --2.21475642919 -1.28009724617 --2.19749772548 -1.28008037806 --2.18023955822 -1.28006660938 --2.16298156977 -1.28005588054 --2.14572399855 -1.28004825115 --2.12846636772 -1.2800437212 --2.11120903492 -1.28004229069 --2.09395158291 -1.28004392982 --2.07669436931 -1.28004869819 --2.0594369173 -1.28005650639 --2.0421795249 -1.28006738424 --2.02492171526 -1.28008139133 --2.00766387582 -1.28009846807 --1.99040552974 -1.28011861444 --1.97314694524 -1.28014183045 --1.95588782429 -1.28016808629 --1.93862840533 -1.28018096089 --1.91941958666 -1.28016629815 --1.90020915866 -1.28014025092 --1.88294956088 -1.28011721372 --1.86569061875 -1.28009727597 --1.84843191505 -1.28008037806 --1.83117374778 -1.28006660938 --1.81391569972 -1.28005588054 --1.7966581285 -1.28004828095 --1.77940055728 -1.280043751 --1.76214325428 -1.28004229069 --1.74488583208 -1.28004392982 --1.72762858868 -1.28004869819 --1.71037110686 -1.28005650639 --1.69311368466 -1.28006738424 --1.67585590482 -1.28008136153 --1.65859803557 -1.28009843827 --1.64133968949 -1.28011861444 --1.6240811646 -1.28014183045 --1.60682198405 -1.28016811609 --1.58956250548 -1.2801809907 --1.57035371661 -1.28016629815 --1.55114328861 -1.28014025092 --1.53388366103 -1.28011721372 --1.5166247189 -1.28009730577 --1.49936601519 -1.28008037806 --1.48210790753 -1.28006657958 --1.46484991908 -1.28005591035 --1.44759228826 -1.28004828095 --1.43033468723 -1.2800437212 --1.41307741404 -1.28004226089 --1.39581999183 -1.28004390001 --1.37856274843 -1.28004869819 --1.36130526662 -1.28005647659 --1.34404781461 -1.28006735444 --1.32679000497 -1.28008139133 --1.30953219533 -1.28009846807 --1.29227384925 -1.28011861444 --1.27501526475 -1.28014183045 --1.257756114 -1.28016811609 --1.24049666524 -1.2801810205 --1.22128787637 -1.28016632795 --1.20207747817 -1.28014025092 --1.18481785059 -1.28011721372 --1.16755890846 -1.28009730577 --1.15030023456 -1.28008040786 --1.13304206729 -1.28006660938 --1.11578404903 -1.28005588054 --1.09852644801 -1.28004828095 --1.08126884699 -1.28004378081 --1.06401154399 -1.2800423503 --1.04675412178 -1.28004395962 --1.02949687838 -1.28004869819 --1.01223939657 -1.28005650639 --0.994981974363 -1.28006738424 --0.977724179626 -1.28008139133 --0.960466325283 -1.28009846807 --0.943207964301 -1.28011864424 --0.925949424505 -1.28014186025 --0.908690273762 -1.28016808629 --0.891430824995 -1.28018096089 --0.872222021222 -1.28016629815 --0.853011593222 -1.28014025092 --0.835751980543 -1.28011721372 --0.818493053317 -1.28009727597 --0.801234379411 -1.28008037806 --0.783976227045 -1.28006660938 --0.766718178987 -1.28005588054 --0.749460563064 -1.28004828095 --0.732202962041 -1.280043751 --0.714945673942 -1.28004229069 --0.697688266635 -1.28004392982 --0.680431038141 -1.28004869819 --0.663173556328 -1.28005650639 --0.645916119218 -1.28006738424 --0.62865832448 -1.28008139133 --0.611400485039 -1.28009846807 --0.594142138958 -1.28011861444 --0.576883584261 -1.28014183045 --0.559624433518 -1.28016808629 --0.542364954949 -1.28018096089 --0.523156151176 -1.28016629815 --0.503945752979 -1.28014025092 --0.486686140299 -1.28011721372 --0.469427198172 -1.28009730577 --0.452168509364 -1.28008040786 --0.434910364449 -1.28006660938 --0.417652331293 -1.28005588054 --0.40039473027 -1.28004825115 --0.383137136698 -1.280043751 --0.365879841149 -1.28004232049 --0.348622426391 -1.28004392982 --0.331365190447 -1.28004869819 --0.314107693732 -1.28005650639 --0.296850271523 -1.28006738424 --0.279592484236 -1.28008139133 --0.262334622443 -1.28009846807 --0.245076276362 -1.28011861444 --0.227817736566 -1.28014183045 --0.210558578372 -1.28016811609 --0.193299118429 -1.2801809907 --0.174090325832 -1.29726085067 --0.154877625406 -1.29723465443 --0.13761800155 -1.29721149802 --0.120359051973 -1.29719150066 --0.103100351989 -1.29717451334 --0.085842192173 -1.29716065526 --0.0685841562226 -1.29714989662 --0.0513265477493 -1.29714220762 --0.0340689388104 -1.29713764787 --0.0168116351124 -1.29713621736 -0.00044579268433 -1.29713785649 -0.0177030386403 -1.29714262485 -0.0349605320953 -1.29715049267 -0.0522179687395 -1.29716145992 -0.0694757727906 -1.29717552662 -0.0867336392403 -1.29719266296 -0.10399199836 -1.29721289873 -0.121250553056 -1.29723623395 -0.138509720564 -1.29726266861 -0.155769187957 -1.29727566242 -0.174977894873 -1.29726088047 -0.194188226015 -1.29723465443 -0.211447846145 -1.29721149802 -0.228706803173 -1.29719147086 -0.245965499431 -1.29717448354 -0.263223655522 -1.29716065526 -0.280481696129 -1.29714989662 -0.297739304602 -1.29714220762 -0.314996913075 -1.29713761806 -0.332254208624 -1.29713618756 -0.349511638284 -1.29713785649 -0.36676889658 -1.29714262485 -0.384026385844 -1.29715046286 -0.401283815503 -1.29716140032 -0.418541625142 -1.29717549681 -0.435799494386 -1.29719266296 -0.453057862818 -1.29721289873 -0.470316410065 -1.29723626375 -0.487575575709 -1.29726269841 -0.504835054278 -1.29727563262 -0.524043738842 -1.29726085067 -0.543254077435 -1.29723465443 -0.560513705015 -1.29721146822 -0.577772647142 -1.29719144106 -0.595031365752 -1.29717448354 -0.612289533019 -1.29716062546 -0.629547566176 -1.29714986682 -0.646805167199 -1.29714220762 -0.664062768221 -1.29713767767 -0.68132007122 -1.29713624716 -0.698577493429 -1.29713785649 -0.715834736824 -1.29714262485 -0.73309224844 -1.29715046286 -0.750349670649 -1.29716143012 -0.767607480287 -1.29717552662 -0.784865349531 -1.29719266296 -0.802123695612 -1.29721289873 -0.819382250309 -1.29723623395 -0.836641401052 -1.29726266861 -0.853900879621 -1.29727563262 -0.873109579086 -1.29726085067 -0.892319902777 -1.29723465443 -0.909579545259 -1.29721149802 -0.926838517189 -1.29719147086 -0.944097220898 -1.29717448354 -0.961355358362 -1.29716062546 -0.97861340642 -1.29714986682 -0.995871007442 -1.29714220762 -1.01312860847 -1.29713764787 -1.03038594127 -1.29713621736 -1.04764336348 -1.29713785649 -1.06490060687 -1.29714262485 -1.08215808868 -1.29715046286 -1.09941551089 -1.29716143012 -1.11667332053 -1.29717552662 -1.13393121958 -1.29719266296 -1.15118959546 -1.29721289873 -1.16844812036 -1.29723626375 -1.1857072711 -1.29726266861 -1.20296674967 -1.29727557302 -1.22217544914 -1.29726082087 -1.24138575792 -1.29723465443 -1.2586453855 -1.29721149802 -1.27590435743 -1.29719147086 -1.29316306114 -1.29717448354 -1.3104211986 -1.29716062546 -1.32767924666 -1.29714986682 -1.34493687749 -1.29714220762 -1.36219444871 -1.29713764787 -1.37945172191 -1.29713621736 -1.39670917392 -1.29713785649 -1.41396644711 -1.29714262485 -1.43122395873 -1.29715046286 -1.44848138094 -1.29716143012 -1.46573916078 -1.29717549681 -1.48299703002 -1.29719266295 -1.5002554059 -1.29721292854 -1.5175139606 -1.29723623395 -1.53477311134 -1.29726266861 -1.55203256011 -1.29727560282 -1.57124128938 -1.29726085067 -1.59045165777 -1.29723468423 -1.60771125555 -1.29721149802 -1.62497019768 -1.29719147086 -1.64222890139 -1.29717448354 -1.65948706865 -1.29716062546 -1.67674508691 -1.29714986682 -1.69400268793 -1.29714223742 -1.71126031875 -1.29713764787 -1.72851762176 -1.29713615775 -1.74577504396 -1.29713782668 -1.76303228736 -1.29714265466 -1.78028976917 -1.29715049267 -1.79754722118 -1.29716143012 -1.81480506063 -1.29717552662 -1.83206292987 -1.29719266296 -1.84932127595 -1.29721289873 -1.86657980085 -1.29723626375 -1.88383898139 -1.29726269841 -1.90109845996 -1.29727566242 -1.92030715943 -1.29726088047 -1.93951749802 -1.29723465443 -1.9567770958 -1.29721149802 -1.97403603792 -1.29719147086 -1.99129474163 -1.29717448354 -2.00855287909 -1.29716062546 -2.02581089735 -1.29714986682 -2.04306852818 -1.29714223742 -2.060326159 -1.29713770747 -2.0775834322 -1.29713624716 -2.09484088421 -1.29713785649 -2.11209821701 -1.29714262485 -2.12935566902 -1.29715046286 -2.14661306143 -1.29716140032 -2.16387087107 -1.29717549681 -2.18112874031 -1.29719266296 -2.198387146 -1.29721289873 -2.21564567089 -1.29723626375 -2.23290479183 -1.29726266861 -2.2501642704 -1.29727560282 -2.26937299967 -1.29726085067 -2.28858333826 -1.29723465443 -2.30584293604 -1.29721149802 -2.32310187816 -1.29719147086 -2.34036058188 -1.29717448354 -2.35761868954 -1.29716062546 -2.37487673759 -1.29714986682 -2.39213442802 -1.29714226722 -2.40939205885 -1.29713767767 -2.42664933204 -1.29713618756 -2.44390672445 -1.29713785649 -2.46116399765 -1.29714262485 -2.47842150927 -1.29715046286 -2.49567896128 -1.29716143012 -2.51293677092 -1.29717552662 -2.53019458056 -1.29719266296 -2.54745292664 -1.29721289873 -2.56471151114 -1.29723623395 -2.58197063207 -1.29726263881 -2.59923011065 -1.29727560282 -2.61843883991 -1.29726085067 -2.6376491189 -1.29723465443 -2.65490877628 -1.29721149802 -2.67216777801 -1.29719147086 -2.68942648172 -1.29717448354 -2.70668464899 -1.29716062546 -2.72394269705 -1.29714986682 -2.74120026827 -1.29714223742 -2.75845783949 -1.29713767767 -2.77571517229 -1.29713621736 -2.7929726243 -1.29713785649 -2.8102298379 -1.29714262485 -2.82748734951 -1.29715046286 -2.84474480152 -1.29716143012 -2.86200261116 -1.29717552662 -2.87926048041 -1.29719266296 -2.89651876688 -1.29721289873 -2.91377729178 -1.29723626375 -2.93103653192 -1.29726269841 -2.9482960105 -1.29727563262 -2.96750468016 -1.29726085067 -2.98671507836 -1.29723465443 -3.00397473574 -1.29721149802 -3.02123361826 -1.29719150066 -3.03849226236 -1.29717451334 -3.05575042963 -1.29716065526 -3.07300847769 -1.29714989662 -3.09026604891 -1.29714220762 -3.10752367974 -1.29713764787 -3.12478101254 -1.29713621736 --3.14114687045 -1.29713785649 --3.12388962507 -1.29714262485 --3.10663211346 -1.29715049267 --3.08937466145 -1.29716145992 --3.07211685181 -1.29717552662 --3.05485898256 -1.29719266296 --3.03760069609 -1.29721289873 --3.02034211159 -1.29723623395 --3.00308287144 -1.29726266861 --2.98582345247 -1.29727566242 --2.96661478281 -1.29726088047 --2.94740444422 -1.29723465443 --2.93014478684 -1.29721149802 --2.9128858447 -1.29719147086 --2.8956272006 -1.29717448354 --2.87836903334 -1.29716065526 --2.86111098528 -1.29714989662 --2.84385341406 -1.29714220762 --2.82659578323 -1.29713761806 --2.80933845043 -1.29713618756 --2.79208099842 -1.29713785649 --2.77482372522 -1.29714262485 --2.75756627321 -1.29715046286 --2.74030888081 -1.29716140032 --2.72305107117 -1.29717549681 --2.70579314232 -1.29719266296 --2.68853473663 -1.29721289873 --2.67127621174 -1.29723626375 --2.6540170908 -1.29726269841 --2.63675761223 -1.29727563262 --2.61754888296 -1.29726085067 --2.59833854437 -1.29723465443 --2.58107894659 -1.29721146822 --2.56382006407 -1.29719144106 --2.54656136036 -1.29717448354 --2.52930313349 -1.29716062546 --2.51204508543 -1.29714986682 --2.4947874546 -1.29714220762 --2.47752988338 -1.29713767767 --2.46027261019 -1.29713624716 --2.44301515818 -1.29713785649 --2.42575788498 -1.29714262485 --2.40850037336 -1.29715046286 --2.39124298096 -1.29716143012 --2.37398517132 -1.29717552662 --2.35672730207 -1.29719266296 --2.33946895599 -1.29721289873 --2.3222104311 -1.29723623395 --2.30495131016 -1.29726266861 --2.28769183159 -1.29727563262 --2.26848310232 -1.29726085067 --2.24927276373 -1.29723465443 --2.23201316595 -1.29721149802 --2.21475416422 -1.29719147086 --2.1974954009 -1.29717448354 --2.18023723364 -1.29716062546 --2.16297924518 -1.29714986682 --2.14572167396 -1.29714220762 --2.12846404314 -1.29713764787 --2.11120671034 -1.29713621736 --2.09394925833 -1.29713785649 --2.07669204473 -1.29714262485 --2.05943459272 -1.29715046286 --2.04217714071 -1.29716143012 --2.02491933107 -1.29717552662 --2.00766149163 -1.29719266296 --1.99040311575 -1.29721289873 --1.97314456105 -1.29723626375 --1.95588541031 -1.29726266861 --1.93862593174 -1.29727557302 --1.91941720247 -1.29726082087 --1.90020686388 -1.29723465443 --1.8829472363 -1.29721149802 --1.86568829417 -1.29719147086 --1.84842962027 -1.29717448354 --1.831171453 -1.29716062546 --1.81391340494 -1.29714986682 --1.79665580392 -1.29714220762 --1.7793982029 -1.29713764787 --1.7621408999 -1.29713621736 --1.74488344789 -1.29713785649 --1.72762620449 -1.29714262485 --1.71036872268 -1.29715046286 --1.69311127067 -1.29716143012 --1.67585346102 -1.29717549681 --1.65859559178 -1.29719266295 --1.6413372457 -1.29721292854 --1.62407872081 -1.29723623395 --1.60681954026 -1.29726266861 --1.58956006169 -1.29727560282 --1.57035136223 -1.29726085067 --1.55114102364 -1.29723468423 --1.53388139605 -1.29721149802 --1.51662242413 -1.29719147086 --1.49936372042 -1.29717448354 --1.48210558295 -1.29716062546 --1.4648475647 -1.29714986682 --1.44758996367 -1.29714223742 --1.43033233285 -1.29713764787 --1.41307502985 -1.29713615775 --1.39581763744 -1.29713782668 --1.37856039405 -1.29714265466 --1.36130288243 -1.29715049267 --1.34404543042 -1.29716143012 --1.32678762078 -1.29717552662 --1.30952978134 -1.29719266296 --1.29227143526 -1.29721289873 --1.27501285076 -1.29723626375 --1.25775370002 -1.29726269841 --1.24049422145 -1.29727566242 --1.22128549218 -1.29726088047 --1.20207518339 -1.29723465443 --1.18481555581 -1.29721149802 --1.16755661368 -1.29719147086 --1.15029790997 -1.29717448354 --1.1330397427 -1.29716062546 --1.11578172445 -1.29714986682 --1.09852409363 -1.29714223742 --1.08126649261 -1.29713770747 --1.06400918961 -1.29713624716 --1.0467517376 -1.29713785649 --1.0294944942 -1.29714262485 --1.01223701238 -1.29715046286 --0.994979575275 -1.29716140032 --0.977721765637 -1.29717549681 --0.960463911295 -1.29719266296 --0.943205550313 -1.29721289873 --0.925946995616 -1.29723626375 --0.90868781507 -1.29726266861 --0.891428351403 -1.29727560282 --0.872219651938 -1.29726085067 --0.853009298444 -1.29723465443 --0.835749685764 -1.29721149802 --0.818490758538 -1.29719147086 --0.801232054829 -1.29717448354 --0.783973902464 -1.29716062546 --0.766715854407 -1.29714986682 --0.749458238483 -1.29714226722 --0.732200652361 -1.29713767767 --0.714943349362 -1.29713618756 --0.697685912251 -1.29713785649 --0.680428668856 -1.29714262485 --0.663171187043 -1.29715046286 --0.645913735032 -1.29716143012 --0.628655925393 -1.29717552662 --0.611398071051 -1.29719266296 --0.59413972497 -1.29721289873 --0.576881155372 -1.29723623395 --0.559621974826 -1.29726263881 --0.542362511158 -1.29727560282 --0.523153811693 -1.29726085067 --0.503943488002 -1.29723465443 --0.48668384552 -1.29721149802 --0.469424903393 -1.29719147086 --0.452166207134 -1.29717448354 --0.434908039868 -1.29716062546 --0.417650006711 -1.29714986682 --0.400392405689 -1.29714223742 --0.383134804666 -1.29713767767 --0.365877494216 -1.29713621736 --0.348620057106 -1.29713785649 --0.331362813711 -1.29714262485 --0.314105324447 -1.29715046286 --0.296847887337 -1.29716143012 --0.279590085149 -1.29717552662 --0.262332215905 -1.29719266296 --0.245073851198 -1.29721289873 --0.227815300226 -1.29723626375 --0.210556138307 -1.29726269841 --0.193296670914 -1.29727563262 --0.174087963998 -1.31439730525 --0.154873892665 -1.31437096 --0.137614253908 -1.31434768438 --0.120355287567 -1.31432756782 --0.103096567095 -1.31431049108 --0.0858383923769 -1.3142965734 --0.0685803415254 -1.31428575516 --0.0513227162883 -1.31427803635 --0.0340650924481 -1.3142734468 --0.0168077722192 -1.31427204609 -0.000449671410022 -1.31427371502 -0.017706933897 -1.31427845359 -0.0349644431845 -1.3142863512 -0.0522218942642 -1.31429737806 -0.0694797132164 -1.31431150436 -0.0867375973612 -1.31432875991 -0.103995975107 -1.31434908509 -0.121254542842 -1.31437250972 -0.138513725251 -1.31439909339 -0.155773207546 -1.31441214681 -0.174981769175 -1.31439730525 -0.194191958755 -1.31437096 -0.211451597512 -1.31434768438 -0.228710565716 -1.31432756782 -0.2459692806 -1.31431049108 -0.263227455318 -1.3142965734 -0.280485503375 -1.31428575516 -0.297743134201 -1.31427806616 -0.315000765026 -1.3142734766 -0.332258075476 -1.31427201629 -0.349515512586 -1.31427365542 -0.366772785783 -1.31427845359 -0.384030297398 -1.3142863512 -0.401287741959 -1.31429731846 -0.418545559049 -1.31431147456 -0.435803443193 -1.31432875991 -0.453061833977 -1.3143491149 -0.470320403576 -1.31437256932 -0.487579576671 -1.31439912319 -0.504839047789 -1.31441214681 -0.524047598243 -1.31439727544 -0.543257802725 -1.31437093019 -0.560517460108 -1.31434765458 -0.577776417136 -1.31432753801 -0.595035135746 -1.31431049108 -0.612293332815 -1.3142965734 -0.629551365971 -1.31428575516 -0.646808981896 -1.31427806616 -0.664066612721 -1.31427350641 -0.681323930621 -1.31427204609 -0.698581382632 -1.31427365542 -0.715838640928 -1.31427845359 -0.733096152544 -1.31428638101 -0.750353604555 -1.31429737806 -0.767611429095 -1.31431150436 -0.784869298339 -1.31432875991 -0.802127674222 -1.31434908509 -0.81938624382 -1.31437250972 -0.836645409465 -1.31439909339 -0.853904902935 -1.31441214681 -0.873113468289 -1.31439727544 -0.89232365787 -1.31437093019 -0.909583285451 -1.31434768438 -0.92684225738 -1.31432753802 -0.944100990891 -1.31431046128 -0.961359158158 -1.3142965734 -0.978617206216 -1.31428575516 -0.995874837041 -1.31427806616 -1.01313248277 -1.31427350641 -1.03038978577 -1.31427204609 -1.04764720797 -1.31427365542 -1.06490448117 -1.31427845359 -1.08216199279 -1.31428638101 -1.0994194448 -1.31429740787 -1.11667725444 -1.31431153417 -1.13393515348 -1.31432875991 -1.15119355917 -1.31434908509 -1.16845211386 -1.31437253952 -1.18571126461 -1.31439912319 -1.20297077299 -1.314412117 -1.22217935324 -1.31439727544 -1.24138951302 -1.31437096 -1.2586491406 -1.31434768438 -1.27590811253 -1.31432753802 -1.29316684604 -1.31431046128 -1.3104250133 -1.3142965734 -1.32768306136 -1.31428575516 -1.34494069219 -1.31427806616 -1.36219829321 -1.3142734766 -1.37945559621 -1.31427201629 -1.39671304822 -1.31427365542 -1.41397032141 -1.31427845359 -1.43122783303 -1.31428638101 -1.44848528504 -1.31429740787 -1.46574312449 -1.31431156397 -1.48300102353 -1.31432881951 -1.50025936961 -1.3143491149 -1.51751792431 -1.31437250972 -1.53477713466 -1.31439909339 -1.55203661322 -1.314412117 -1.57124516368 -1.31439730525 -1.59045538306 -1.3143709898 -1.60771501064 -1.31434768438 -1.62497395277 -1.31432753802 -1.64223265648 -1.31431046128 -1.65949085355 -1.3142965734 -1.67674893141 -1.31428575516 -1.69400656223 -1.31427806616 -1.71126419306 -1.3142734468 -1.72852149606 -1.31427198649 -1.74577894807 -1.31427365542 -1.76303622127 -1.31427848339 -1.78029370308 -1.31428641081 -1.79755115509 -1.31429740787 -1.81480899453 -1.31431153417 -1.83206686378 -1.31432875991 -1.84932523966 -1.31434908509 -1.86658379435 -1.31437253952 -1.8838429749 -1.31439912319 -1.90110248327 -1.31441214681 -1.92031106353 -1.31439730525 -1.93952122331 -1.31437096 -1.95678085089 -1.31434768438 -1.97403982282 -1.31432756782 -1.99129852653 -1.31431049108 -2.00855672359 -1.3142965734 -2.02581477165 -1.31428575516 -2.04307240248 -1.31427806616 -2.0603300333 -1.31427350641 -2.0775873065 -1.31427204609 -2.09484475851 -1.31427365542 -2.11210209131 -1.31427845359 -2.12935960293 -1.31428638101 -2.14661705494 -1.31429734826 -2.16387486458 -1.31431147456 -2.18113273382 -1.31432875991 -2.19839113951 -1.31434908509 -2.2156496644 -1.31437253952 -2.23290878534 -1.31439912319 -2.25016826391 -1.31441214681 -2.26937687397 -1.31439727544 -2.28858709335 -1.31437093019 -2.30584669113 -1.31434768438 -2.32310569286 -1.31432756782 -2.34036445617 -1.31431049108 -2.35762256384 -1.3142965734 -2.3748806119 -1.31428572535 -2.39213830233 -1.31427806616 -2.40939593315 -1.31427350641 -2.42665320635 -1.31427201629 -2.44391065836 -1.31427365542 -2.46116793156 -1.31427845359 -2.47842538357 -1.31428638101 -2.49568283558 -1.31429740787 -2.51294064522 -1.31431153417 -2.53019851446 -1.31432875991 -2.54745692015 -1.31434908509 -2.56471550465 -1.31437250972 -2.58197468519 -1.31439909339 -2.59923416376 -1.31441214681 -2.61844271421 -1.31439730525 -2.637652874 -1.31437096 -2.65491253138 -1.31434768438 -2.67217153311 -1.31432756782 -2.68943023681 -1.31431049108 -2.70668840408 -1.3142965734 -2.72394645214 -1.31428575516 -2.74120408297 -1.31427806616 -2.75846171379 -1.3142734766 -2.77571904659 -1.31427201629 -2.7929764986 -1.31427368522 -2.8102337122 -1.31427848339 -2.82749122381 -1.31428638101 -2.84474867582 -1.31429740787 -2.86200654507 -1.31431153417 -2.87926447392 -1.31432875991 -2.89652276039 -1.31434908509 -2.91378128528 -1.31437253952 -2.93104052543 -1.31439912319 -2.94830006361 -1.31441214681 -2.96750861407 -1.31439730525 -2.98671883345 -1.31437096 -3.00397849083 -1.31434768438 -3.02123737335 -1.31432756782 -3.03849601745 -1.31431049108 -3.05575418472 -1.3142965734 -3.07301223278 -1.31428575516 -3.09026986361 -1.31427803635 -3.10752755404 -1.3142734468 -3.12478488684 -1.31427204609 --3.14114299615 -1.31427371502 --3.12388575077 -1.31427845359 --3.10662823916 -1.3142863512 --3.08937078715 -1.31429737806 --3.0721129179 -1.31431150436 --3.05485498905 -1.31432875991 --3.03759670258 -1.31434908509 --3.02033817768 -1.31437250972 --3.00307893753 -1.31439909339 --2.98581939936 -1.31441214681 --2.9666108489 -1.31439730525 --2.94740068912 -1.31437096 --2.93014103174 -1.31434768438 --2.91288208961 -1.31432756782 --2.89562344551 -1.31431049108 --2.87836521864 -1.3142965734 --2.86110711098 -1.31428575516 --2.84384953976 -1.31427806616 --2.82659190893 -1.3142734766 --2.80933457613 -1.31427201629 --2.79207712412 -1.31427365542 --2.77481979132 -1.31427845359 --2.7575622797 -1.3142863512 --2.7403048873 -1.31429731846 --2.72304707766 -1.31431147456 --2.70578920841 -1.31432875991 --2.68853080273 -1.3143491149 --2.67127221823 -1.31437256932 --2.65401309729 -1.31439912319 --2.63675361872 -1.31441214681 --2.61754506826 -1.31439727544 --2.59833484888 -1.31437093019 --2.5810751915 -1.31434765458 --2.56381624937 -1.31432753801 --2.54655748606 -1.31431049108 --2.52929925919 -1.3142965734 --2.51204121113 -1.31428575516 --2.49478363991 -1.31427806616 --2.47752606869 -1.31427350641 --2.46026873589 -1.31427204609 --2.44301128387 -1.31427365542 --2.42575401068 -1.31427845359 --2.40849649906 -1.31428638101 --2.39123904705 -1.31429737806 --2.37398123741 -1.31431150436 --2.35672336817 -1.31432875991 --2.33946496248 -1.31434908509 --2.32220643759 -1.31437250972 --2.30494731665 -1.31439909339 --2.28768783808 -1.31441214681 --2.26847922802 -1.31439727544 --2.24926900864 -1.31437093019 --2.23200941086 -1.31434768438 --2.21475040913 -1.31432753802 --2.19749164582 -1.31431046128 --2.18023347855 -1.3142965734 --2.16297543049 -1.31428575516 --2.14571779966 -1.31427806616 --2.12846016884 -1.31427350641 --2.11120283603 -1.31427204609 --2.09394538402 -1.31427365542 --2.07668817043 -1.31427845359 --2.05943071842 -1.31428638101 --2.04217326641 -1.31429740787 --2.02491545677 -1.31431153417 --2.00765755772 -1.31432875991 --1.99039912224 -1.31434908509 --1.97314056754 -1.31437253952 --1.95588138699 -1.31439912319 --1.93862187863 -1.314412117 --1.91941332817 -1.31439727544 --1.90020313859 -1.31437096 --1.88294348121 -1.31434768438 --1.86568450928 -1.31432753802 --1.84842583537 -1.31431046128 --1.8311676681 -1.3142965734 --1.81390959024 -1.31428575516 --1.79665195942 -1.31427806616 --1.77939432859 -1.3142734766 --1.76213702559 -1.31427201629 --1.74487957358 -1.31427365542 --1.72762230038 -1.31427845359 --1.71036478877 -1.31428638101 --1.69310733676 -1.31429740787 --1.67584952712 -1.31431156397 --1.65859165787 -1.31432881951 --1.64133328199 -1.3143491149 --1.6240747273 -1.31437250972 --1.60681554675 -1.31439909339 --1.58955603838 -1.314412117 --1.57034745812 -1.31439730525 --1.55113729835 -1.3143709898 --1.53387767077 -1.31434768438 --1.51661866904 -1.31432753802 --1.49935996533 -1.31431046128 --1.48210179806 -1.3142965734 --1.46484375 -1.31428575516 --1.44758614897 -1.31427806616 --1.43032851815 -1.3142734468 --1.41307118535 -1.31427198649 --1.39581373334 -1.31427365542 --1.37855648994 -1.31427848339 --1.36129897833 -1.31428641081 --1.34404149652 -1.31429740787 --1.32678368688 -1.31431153417 --1.30952581763 -1.31432875991 --1.29226744175 -1.31434908509 --1.27500885725 -1.31437253952 --1.25774967671 -1.31439912319 --1.24049019814 -1.31441214681 --1.22128164768 -1.31439730525 --1.2020714581 -1.31437096 --1.18481180072 -1.31434768438 --1.16755282879 -1.31432756782 --1.15029409528 -1.31431049108 --1.13303592801 -1.3142965734 --1.11577787995 -1.31428575516 --1.09852024913 -1.31427806616 --1.08126264811 -1.31427350641 --1.0640053153 -1.31427204609 --1.04674786329 -1.31427365542 --1.0294906199 -1.31427845359 --1.01223310828 -1.31428638101 --0.994975656271 -1.31429734826 --0.977717816829 -1.31431147456 --0.960459917784 -1.31432875991 --0.943201556802 -1.31434908509 --0.925943002105 -1.31437253952 --0.908683806658 -1.31439912319 --0.891424313188 -1.31441214681 --0.872215762734 -1.31439727544 --0.853005558253 -1.31437093019 --0.835745930672 -1.31434768438 --0.818486973644 -1.31432756782 --0.801228240133 -1.31431049108 --0.783970087767 -1.3142965734 --0.766712039709 -1.31428572535 --0.749454408884 -1.31427806616 --0.73219679296 -1.31427350641 --0.714939475059 -1.31427201629 --0.697682023048 -1.31427365542 --0.680424749851 -1.31427845359 --0.663167253137 -1.31428638101 --0.645909816027 -1.31429740787 --0.628652006388 -1.31431153417 --0.611394122243 -1.31432875991 --0.59413574636 -1.31434908509 --0.57687716186 -1.31437250972 --0.559617966414 -1.31439909339 --0.542358487845 -1.31441214681 --0.523149937391 -1.31439730525 --0.50393974781 -1.31437096 --0.486680090427 -1.31434768438 --0.469421133399 -1.31432756782 --0.452162414789 -1.31431049108 --0.434904240072 -1.3142965734 --0.417646199465 -1.31428575516 --0.400388583541 -1.31427806616 --0.383130952716 -1.3142734766 --0.365873619914 -1.31427201629 --0.348616175353 -1.31427368522 --0.331358917057 -1.31427848339 --0.314101412892 -1.31428638101 --0.296843960881 -1.31429740787 --0.279586143792 -1.31431153417 --0.262328252197 -1.31432875991 --0.245069868863 -1.31434908509 --0.22781131044 -1.31437253952 --0.210552129894 -1.31439912319 --0.193292643875 -1.31441214681 --0.174084085971 -1.33157414198 --0.154870264232 -1.33154767752 --0.137610606849 -1.3315242827 --0.120351620018 -1.33150404692 --0.103092884645 -1.33148688078 --0.0858346968889 -1.33147290349 --0.0685766311362 -1.33146202564 --0.0513189891353 -1.33145427704 --0.034061350394 -1.33144968748 --0.0168040152639 -1.33144828677 -0.00045344303362 -1.3314499259 -0.0177107208874 -1.33145466447 -0.0349682462402 -1.33146262169 -0.0522257117555 -1.33147367835 -0.0694835465401 -1.33148786426 -0.0867414493114 -1.33150523901 -0.103999843821 -1.3315256834 -0.121258424595 -1.33154922724 -0.138517618179 -1.33157593012 -0.155777122826 -1.33158904314 -0.174985546619 -1.33157414198 -0.194195590913 -1.33154767752 -0.211455244571 -1.33152425289 -0.228714223951 -1.33150401711 -0.245972961188 -1.33148688078 -0.263231150806 -1.33147290349 -0.280489213764 -1.33146202564 -0.297746859491 -1.33145430684 -0.315004497766 -1.33144971728 -0.332261830568 -1.33144825697 -0.34951929003 -1.33144986629 -0.366776570678 -1.33145469427 -0.384034089744 -1.33146265149 -0.401291549206 -1.33147367835 -0.418549388647 -1.33148789406 -0.435807295144 -1.33150523901 -0.453065693379 -1.33152571321 -0.470324277878 -1.33154928685 -0.487583465874 -1.33157595992 -0.504842966795 -1.33158904314 -0.524051383138 -1.33157411218 -0.543261423707 -1.33154764771 -0.560521095991 -1.3315242827 -0.577780067921 -1.33150404692 -0.595038801432 -1.33148688078 -0.612296998501 -1.33147290349 -0.629555046558 -1.33146202564 -0.646812692285 -1.33145430684 -0.664070338011 -1.33144971728 -0.681327685714 -1.33144825697 -0.698585152626 -1.33144989609 -0.715842425823 -1.33145472407 -0.733099937439 -1.33146268129 -0.750357419252 -1.33147370815 -0.767615273595 -1.33148789406 -0.784873157739 -1.33150526881 -0.802131548524 -1.33152571321 -0.819390118122 -1.33154925704 -0.836649313569 -1.33157595992 -0.853908836842 -1.33158904314 -0.873117253185 -1.33157408237 -0.892327293754 -1.33154758811 -0.909586951137 -1.33152422309 -0.926845923066 -1.33150398731 -0.944104656577 -1.33148685098 -0.961362853646 -1.33147293329 -0.978620901704 -1.33146208524 -0.995878577235 -1.33145436645 -1.01313623786 -1.33144974709 -1.03039351106 -1.33144825697 -1.04765099287 -1.33144986629 -1.06490826606 -1.33145469427 -1.08216577768 -1.33146268129 -1.0994232893 -1.33147373795 -1.11668109894 -1.33148792386 -1.13393899798 -1.33150523901 -1.15119740367 -1.3315256834 -1.16845595837 -1.33154925704 -1.18571516871 -1.33157595992 -1.20297470689 -1.33158904314 -1.22218313813 -1.33157414198 -1.2413931489 -1.33154764772 -1.25865277648 -1.33152425289 -1.27591177821 -1.33150401712 -1.29317051172 -1.33148685098 -1.31042870879 -1.33147290349 -1.32768678665 -1.33146202564 -1.34494441748 -1.33145430684 -1.3622020483 -1.33144968748 -1.3794593811 -1.33144822716 -1.39671683311 -1.33144986629 -1.41397410631 -1.33145466447 -1.43123161792 -1.33146265149 -1.44848906994 -1.33147373795 -1.46574693918 -1.33148795366 -1.48300486803 -1.33150529861 -1.50026324391 -1.33152571321 -1.51752182841 -1.33154925704 -1.53478103876 -1.33157595992 -1.55204054713 -1.33158901334 -1.57124894858 -1.33157408237 -1.59045898915 -1.33154764772 -1.60771864653 -1.3315242827 -1.62497761845 -1.33150404692 -1.64223635197 -1.33148688078 -1.65949454903 -1.33147290349 -1.67675262689 -1.33146205544 -1.69401028752 -1.33145430684 -1.71126794815 -1.33144965768 -1.72852528095 -1.33144822716 -1.74578273296 -1.33144986629 -1.76304000616 -1.33145466447 -1.78029751778 -1.33146265149 -1.79755496979 -1.33147373795 -1.81481277942 -1.33148792386 -1.83207067847 -1.33150526881 -1.84932908416 -1.33152571321 -1.86658766866 -1.33154925704 -1.88384687901 -1.33157595992 -1.90110638738 -1.33158904314 -1.92031481862 -1.33157414198 -1.93952485919 -1.33154767752 -1.95678451657 -1.3315242827 -1.9740434885 -1.33150404692 -1.99130222201 -1.33148688078 -2.00856044888 -1.33147290349 -2.02581852674 -1.33146202564 -2.04307609796 -1.33145430684 -2.06033372879 -1.33144971728 -2.07759106159 -1.33144825697 -2.09484851361 -1.33144986629 -2.1121058464 -1.33145469427 -2.12936335802 -1.33146268129 -2.14662081003 -1.33147370815 -2.16387867927 -1.33148789406 -2.18113660812 -1.33150523901 -2.19839501381 -1.3315256834 -2.21565359831 -1.33154925704 -2.23291271925 -1.33157595992 -2.25017219782 -1.33158904314 -2.26938068867 -1.33157408237 -2.28859072924 -1.33154761792 -2.30585032702 -1.33152425289 -2.32310932875 -1.33150401711 -2.34036809206 -1.33148688078 -2.35762625933 -1.33147290349 -2.37488430738 -1.33146199584 -2.39214199781 -1.33145427704 -2.40939968824 -1.33144971728 -2.42665696144 -1.33144825697 -2.44391441345 -1.33144989609 -2.46117174625 -1.33145472407 -2.47842925787 -1.33146268129 -2.49568670988 -1.33147373795 -2.51294451952 -1.33148792386 -2.53020238876 -1.33150526881 -2.54746079445 -1.33152571321 -2.56471937895 -1.33154925704 -2.5819786191 -1.33157595992 -2.59923809767 -1.33158901334 -2.61844646931 -1.33157411218 -2.63765650988 -1.33154767752 -2.65491616726 -1.3315242827 -2.67217516899 -1.33150404692 -2.6894338727 -1.33148688078 -2.70669203997 -1.33147290349 -2.72395014763 -1.33146202564 -2.74120783806 -1.33145427704 -2.75846546888 -1.33144968748 -2.77572280169 -1.33144825697 -2.7929802537 -1.33144989609 -2.81023752689 -1.33145472407 -2.82749503851 -1.33146268129 -2.84475249052 -1.33147373795 -2.86201035976 -1.33148792386 -2.87926828861 -1.33150526881 -2.89652663469 -1.33152571321 -2.91378515959 -1.33154925704 -2.93104439974 -1.33157595992 -2.94830393792 -1.33158904314 -2.96751230955 -1.33157414198 -2.98672240972 -1.33154767752 -3.00398212671 -1.3315242827 -3.02124106884 -1.33150404692 -3.03849977255 -1.33148688078 -3.05575793981 -1.33147290349 -3.07301598787 -1.33146202564 -3.0902736187 -1.33145427704 -3.10753124952 -1.33144968748 -3.12478858233 -1.33144828677 --3.14113924105 -1.3314499259 --3.12388193608 -1.33145466447 --3.10662442446 -1.33146262169 --3.08936697245 -1.33147367835 --3.0721091032 -1.33148786426 --3.05485117435 -1.33150523901 --3.03759282827 -1.3315256834 --3.02033430338 -1.33154922724 --3.00307506323 -1.33157593012 --2.98581552506 -1.33158904314 --2.96660715342 -1.33157414198 --2.94739705324 -1.33154767752 --2.93013733625 -1.33152425289 --2.91287839413 -1.33150401711 --2.89561969042 -1.33148688078 --2.87836146355 -1.33147290349 --2.86110335589 -1.33146202564 --2.84384578467 -1.33145430684 --2.82658821344 -1.33144971728 --2.80933088064 -1.33144825697 --2.79207336902 -1.33144986629 --2.77481603622 -1.33145469427 --2.75755852461 -1.33146265149 --2.7403010726 -1.33147367835 --2.72304326296 -1.33148789406 --2.70578539372 -1.33150523901 --2.68852698803 -1.33152571321 --2.67126834393 -1.33154928685 --2.65400916338 -1.33157595992 --2.63674968481 -1.33158904314 --2.61754125356 -1.33157411218 --2.59833121299 -1.33154764771 --2.58107155561 -1.3315242827 --2.56381255388 -1.33150404692 --2.54655379057 -1.33148688078 --2.5292956233 -1.33147290349 --2.51203757525 -1.33146202564 --2.49477994442 -1.33145430684 --2.4775223136 -1.33144971728 --2.46026498079 -1.33144825697 --2.44300752878 -1.33144989609 --2.42575025558 -1.33145472407 --2.40849274397 -1.33146268129 --2.39123523236 -1.33147370815 --2.37397736311 -1.33148789406 --2.35671949387 -1.33150526881 --2.33946108818 -1.33152571321 --2.32220250368 -1.33154925704 --2.30494338274 -1.33157595992 --2.28768390417 -1.33158904314 --2.26847541332 -1.33157408237 --2.24926537275 -1.33154758811 --2.23200571537 -1.33152422309 --2.21474671364 -1.33150398731 --2.19748800993 -1.33148685098 --2.18022984266 -1.33147293329 --2.16297179461 -1.33146208524 --2.14571410418 -1.33145436645 --2.12845641375 -1.33144974709 --2.11119908094 -1.33144825697 --2.09394162893 -1.33144986629 --2.07668435573 -1.33145469427 --2.05942684412 -1.33146268129 --2.04216939211 -1.33147373795 --2.02491158247 -1.33148792386 --2.00765368343 -1.33150523901 --1.99039524794 -1.3315256834 --1.97313666344 -1.33154925704 --1.95587748289 -1.33157595992 --1.93861797452 -1.33158904314 --1.91940954328 -1.33157414198 --1.90019950271 -1.33154764772 --1.88293987513 -1.33152425289 --1.86568087339 -1.33150401712 --1.84842213988 -1.33148685098 --1.83116397262 -1.33147290349 --1.81390589476 -1.33146202564 --1.79664823413 -1.33145430684 --1.7793905735 -1.33144968748 --1.7621332407 -1.33144822716 --1.74487578869 -1.33144986629 --1.72761851549 -1.33145466447 --1.71036100388 -1.33146265149 --1.69310355187 -1.33147373795 --1.67584571243 -1.33148795366 --1.65858781338 -1.33150529861 --1.64132940769 -1.33152571321 --1.62407082319 -1.33154925704 --1.60681164265 -1.33157595992 --1.58955213427 -1.33158901334 --1.57034370303 -1.33157408237 --1.55113366246 -1.33154764772 --1.53387400508 -1.3315242827 --1.51661500335 -1.33150404692 --1.49935626984 -1.33148688078 --1.48209810257 -1.33147290349 --1.46484005451 -1.33146205544 --1.44758242369 -1.33145430684 --1.43032479286 -1.33144965768 --1.41306746006 -1.33144822716 --1.39580994844 -1.33144986629 --1.37855264544 -1.33145466447 --1.36129513383 -1.33146265149 --1.34403765202 -1.33147373795 --1.32677984238 -1.33148792386 --1.30952197313 -1.33150526881 --1.29226356745 -1.33152571321 --1.27500498295 -1.33154925704 --1.2577457726 -1.33157595992 --1.24048626423 -1.33158904314 --1.22127786279 -1.33157414198 --1.20206782222 -1.33154767752 --1.18480816484 -1.3315242827 --1.1675491631 -1.33150404692 --1.15029042959 -1.33148688078 --1.13303223252 -1.33147290349 --1.11577418447 -1.33146202564 --1.09851655364 -1.33145430684 --1.08125889301 -1.33144971728 --1.06400156021 -1.33144825697 --1.0467441082 -1.33144986629 --1.029486835 -1.33145469427 --1.01222932339 -1.33146268129 --0.994971856476 -1.33147370815 --0.977713987231 -1.33148789406 --0.960456073284 -1.33150523901 --0.9431976825 -1.3315256834 --0.925939112901 -1.33154925704 --0.908679932356 -1.33157595992 --0.891420438886 -1.33158904314 --0.872212007642 -1.33157408237 --0.85300193727 -1.33154761792 --0.835742279888 -1.33152425289 --0.818483293057 -1.33150401711 --0.801224574447 -1.33148688078 --0.78396640718 -1.33147290349 --0.766708344221 -1.33146199584 --0.749450683594 -1.33145427704 --0.732193022966 -1.33144971728 --0.714935705066 -1.33144825697 --0.697678253055 -1.33144989609 --0.680420964956 -1.33145472407 --0.663163438439 -1.33146268129 --0.645905986428 -1.33147373795 --0.628648161889 -1.33148792386 --0.611390262842 -1.33150526881 --0.594131857157 -1.33152571321 --0.576873272657 -1.33154925704 --0.55961407721 -1.33157595992 --0.542354568839 -1.33158901334 --0.523146152496 -1.33157411218 --0.503936097026 -1.33154767752 --0.486676439643 -1.3315242827 --0.469417460263 -1.33150404692 --0.452158726752 -1.33148688078 --0.434900544584 -1.33147290349 --0.417642489076 -1.33146202564 --0.4003848508 -1.33145427704 --0.383127190173 -1.33144968748 --0.36586984992 -1.33144825697 --0.348612405359 -1.33144989609 --0.331355124712 -1.33145472407 --0.314097598195 -1.33146268129 --0.296840138733 -1.33147373795 --0.279582306743 -1.33148792386 --0.262324392796 -1.33150526881 --0.245065998286 -1.33152571321 --0.227807428688 -1.33154925704 --0.210548233241 -1.33157595992 --0.193288728595 -1.33158904314 --0.174080308527 -1.34872329235 --0.154868211597 -1.34869670868 --0.137608550489 -1.34867322445 --0.120349556208 -1.34865286946 --0.103090813384 -1.34863564372 --0.0858326144516 -1.34862160682 --0.0685745412484 -1.34861066937 --0.0513168927282 -1.34860292077 --0.0340592437424 -1.34859830141 --0.016801900696 -1.34859684109 -0.00045556598343 -1.34859851002 -0.0177128526848 -1.3486033082 -0.0349703864195 -1.34861129523 -0.0522278593853 -1.34862241149 -0.0694857025519 -1.348636657 -0.0867436137051 -1.34865409136 -0.104002017528 -1.34867465496 -0.121260607615 -1.348698318 -0.13851980865 -1.34872514009 -0.155779324472 -1.34873831272 -0.174987670034 -1.34872329235 -0.194197636098 -1.34869670868 -0.211457297206 -1.34867322445 -0.228716287762 -1.34865289926 -0.245975039899 -1.34863567353 -0.263233236969 -1.34862163663 -0.280491307378 -1.34861069917 -0.297748960555 -1.34860289097 -0.31500659883 -1.34859827161 -0.332263931632 -1.34859684109 -0.349521413446 -1.34859848022 -0.366778701544 -1.3486033082 -0.38403622061 -1.34861129523 -0.401293702424 -1.34862241149 -0.418551556766 -1.3486367166 -0.435809470713 -1.34865412116 -0.453067868948 -1.34867465496 -0.470326453447 -1.34869834781 -0.487585656345 -1.3487251699 -0.504845172167 -1.34873831272 -0.524053528905 -1.34872329235 -0.543263480068 -1.34869670868 -0.56052313745 -1.34867322445 -0.577782139182 -1.34865286946 -0.595040872693 -1.34863564372 -0.612299054861 -1.34862160682 -0.629557132721 -1.34861066937 -0.646814793348 -1.34860289097 -0.664072439075 -1.34859827161 -0.681329786778 -1.34859684109 -0.698587268591 -1.34859851002 -0.71584457159 -1.348603338 -0.733102083206 -1.34861129523 -0.750359550118 -1.34862241149 -0.767617419362 -1.3486367166 -0.784875333309 -1.34865415096 -0.802133709192 -1.34867468476 -0.81939227879 -1.34869834781 -0.836651504039 -1.3487251699 -0.853911027312 -1.34873831272 -0.873119354248 -1.34872326255 -0.892329335213 -1.34869664907 -0.909589007497 -1.34867316484 -0.926847979427 -1.34865283966 -0.944106727839 -1.34863564372 -0.961364939809 -1.34862166643 -0.978623002768 -1.34861075878 -0.995880678299 -1.34860298038 -1.01313832403 -1.34859833121 -1.03039562702 -1.34859684109 -1.04765310884 -1.34859848022 -1.06491038203 -1.3486033082 -1.08216792345 -1.34861129523 -1.09942543507 -1.34862241149 -1.11668327451 -1.3486366868 -1.13394120336 -1.34865409136 -1.15119960904 -1.34867465496 -1.16845816374 -1.34869834781 -1.18571737408 -1.3487251699 -1.20297688246 -1.34873831272 -1.22218522429 -1.34872329235 -1.24139517546 -1.34869667888 -1.25865483284 -1.34867319465 -1.27591383457 -1.34865286946 -1.29317256808 -1.34863564372 -1.31043079495 -1.34862160682 -1.32768887281 -1.34861066937 -1.34494650364 -1.34860292077 -1.36220416427 -1.34859830141 -1.37946152687 -1.34859687089 -1.39671897888 -1.34859853983 -1.41397625208 -1.3486033082 -1.43123376369 -1.34861126542 -1.44849121571 -1.34862241149 -1.46574908495 -1.3486367166 -1.4830070138 -1.34865415096 -1.50026541948 -1.34867465496 -1.51752400398 -1.348698318 -1.53478318453 -1.3487251699 -1.5520427227 -1.34873828292 -1.57125106454 -1.34872326255 -1.5904610157 -1.34869670868 -1.60772070289 -1.34867322445 -1.62497970462 -1.34865292907 -1.64223843813 -1.34863570333 -1.6594966352 -1.34862163663 -1.67675471306 -1.34861072898 -1.69401237368 -1.34860295058 -1.71127003431 -1.34859830141 -1.72852736711 -1.34859681129 -1.74578481913 -1.34859845042 -1.76304212212 -1.3486032784 -1.78029966354 -1.34861126542 -1.79755711555 -1.34862241149 -1.814814955 -1.3486366868 -1.83207288384 -1.34865412116 -1.84933128953 -1.34867468476 -1.86658987403 -1.34869834781 -1.88384908438 -1.3487251699 -1.90110856295 -1.34873831272 -1.92031690478 -1.34872329235 -1.93952691555 -1.34869670868 -1.95678657294 -1.34867322445 -1.97404551506 -1.34865286946 -1.99130427837 -1.34863564372 -2.00856250524 -1.34862160682 -2.0258205533 -1.34861066937 -2.04307818413 -1.34860292077 -2.06033587455 -1.34859830141 -2.07759320736 -1.34859684109 -2.09485065937 -1.34859851002 -2.11210793257 -1.348603338 -2.12936544418 -1.34861129523 -2.1466229558 -1.34862241149 -2.16388082504 -1.3486366868 -2.18113875389 -1.34865409136 -2.19839715958 -1.34867465496 -2.21565574408 -1.34869834781 -2.23291492462 -1.3487251699 -2.25017440319 -1.34873831272 -2.26938277483 -1.34872326255 -2.2885927558 -1.34869667888 -2.30585235358 -1.34867319465 -2.32311135531 -1.34865283966 -2.34037011862 -1.34863564372 -2.35762834549 -1.34862160682 -2.37488639355 -1.34861066937 -2.39214402437 -1.34860289097 -2.4094017148 -1.34859827161 -2.4266590476 -1.34859684109 -2.44391649962 -1.34859853983 -2.46117383242 -1.34860336781 -2.47843140364 -1.34861129523 -2.49568885565 -1.34862241149 -2.51294666528 -1.3486367166 -2.53020453453 -1.34865415096 -2.54746294021 -1.34867468476 -2.56472158432 -1.34869834781 -2.58198082447 -1.3487251699 -2.59924030304 -1.34873828292 -2.61844861507 -1.34872326255 -2.63765853644 -1.34869670868 -2.65491825342 -1.34867322445 -2.67217725515 -1.34865286946 -2.68943595886 -1.34863564372 -2.70669418573 -1.34862163663 -2.7239522934 -1.34861069917 -2.74120992422 -1.34860289097 -2.75846749544 -1.34859827161 -2.77572482824 -1.34859684109 -2.79298233986 -1.34859848022 -2.81023967266 -1.3486033082 -2.82749718428 -1.34861129523 -2.84475463629 -1.34862241149 -2.86201250553 -1.3486366868 -2.87927043438 -1.34865412116 -2.89652884007 -1.34867468476 -2.91378742457 -1.34869834781 -2.93104660511 -1.3487251699 -2.94830608368 -1.34873831272 -2.96751439571 -1.34872329235 -2.98672443628 -1.34869670868 -3.00398415327 -1.34867322445 -3.02124315501 -1.34865286946 -3.03850191832 -1.34863564372 -3.05576008558 -1.34862160682 -3.07301813364 -1.34861066937 -3.09027576446 -1.34860292077 -3.10753339529 -1.34859830141 -3.12479072809 -1.34859684109 --3.14113709529 -1.34859851002 --3.12387979031 -1.3486033082 --3.10662227869 -1.34861129523 --3.08936482668 -1.34862241149 --3.07210695744 -1.348636657 --3.05484902859 -1.34865409136 --3.0375906229 -1.34867465496 --3.0203320384 -1.348698318 --3.00307285786 -1.34872514009 --2.98581337929 -1.34873831272 --2.96660506725 -1.34872329235 --2.94739502668 -1.34869670868 --2.93013530969 -1.34867322445 --2.91287630796 -1.34865289926 --2.89561754465 -1.34863567353 --2.87835937738 -1.34862163663 --2.86110132933 -1.34861069917 --2.8438436985 -1.34860289097 --2.82658606768 -1.34859827161 --2.80932873487 -1.34859684109 --2.79207122326 -1.34859848022 --2.77481395006 -1.3486033082 --2.75755643845 -1.34861129523 --2.74029892683 -1.34862241149 --2.72304111719 -1.3486367166 --2.70578318834 -1.34865412116 --2.68852478266 -1.34867465496 --2.67126619816 -1.34869834781 --2.65400695801 -1.3487251699 --2.63674747944 -1.34873831272 --2.6175391078 -1.34872329235 --2.59832912683 -1.34869670868 --2.58106952906 -1.34867322445 --2.56381052732 -1.34865286946 --2.54655176401 -1.34863564372 --2.52929359675 -1.34862160682 --2.51203554869 -1.34861066937 --2.49477785826 -1.34860289097 --2.47752016783 -1.34859827161 --2.46026283502 -1.34859684109 --2.44300538301 -1.34859851002 --2.42574810982 -1.348603338 --2.4084905982 -1.34861129523 --2.39123308659 -1.34862241149 --2.37397521734 -1.3486367166 --2.3567173481 -1.34865415096 --2.33945894241 -1.34867468476 --2.32220035791 -1.34869834781 --2.30494117737 -1.3487251699 --2.28768163919 -1.34873831272 --2.26847326755 -1.34872326255 --2.24926334619 -1.34869664907 --2.23200368881 -1.34867316484 --2.21474468708 -1.34865283966 --2.19748598337 -1.34863564372 --2.1802277565 -1.34862166643 --2.16296964884 -1.34861075878 --2.14571201802 -1.34860298038 --2.12845438719 -1.34859833121 --2.11119705439 -1.34859684109 --2.09393960237 -1.34859848022 --2.07668226957 -1.3486033082 --2.05942469835 -1.34861129523 --2.04216724634 -1.34862241149 --2.0249093771 -1.3486366868 --2.00765147805 -1.34865409136 --1.99039310217 -1.34867465496 --1.97313451767 -1.34869834781 --1.95587530732 -1.3487251699 --1.93861576915 -1.34873831272 --1.91940739751 -1.34872329235 --1.90019744635 -1.34869667888 --1.88293781877 -1.34867319465 --1.86567881703 -1.34865286946 --1.84842005372 -1.34863564372 --1.83116185665 -1.34862160682 --1.8139038086 -1.34861066937 --1.79664614797 -1.34860292077 --1.77938848734 -1.34859830141 --1.76213115454 -1.34859687089 --1.74487367272 -1.34859853983 --1.72761636972 -1.3486033082 --1.71035885811 -1.34861126542 --1.6931014061 -1.34862241149 --1.67584353685 -1.3486367166 --1.658585608 -1.34865415096 --1.64132720232 -1.34867465496 --1.62406861782 -1.348698318 --1.60680943727 -1.3487251699 --1.5895499289 -1.34873828292 --1.57034158707 -1.34872326255 --1.55113160611 -1.34869670868 --1.53387194872 -1.34867322445 --1.51661294699 -1.34865292907 --1.49935418367 -1.34863570333 --1.48209601641 -1.34862163663 --1.46483793855 -1.34861072898 --1.44758027792 -1.34860295058 --1.4303226471 -1.34859830141 --1.41306531429 -1.34859681129 --1.39580783248 -1.34859845042 --1.37855052948 -1.3486032784 --1.36129298806 -1.34861126542 --1.34403550625 -1.34862241149 --1.32677769661 -1.3486366868 --1.30951982736 -1.34865412116 --1.29226142168 -1.34867468476 --1.27500283718 -1.34869834781 --1.25774359703 -1.3487251699 --1.24048405886 -1.34873831272 --1.22127571702 -1.34872329235 --1.20206576586 -1.34869670868 --1.18480610848 -1.34867322445 --1.16754710674 -1.34865286946 --1.15028840303 -1.34863564372 --1.13303017616 -1.34862160682 --1.1157720983 -1.34861066937 --1.09851446748 -1.34860292077 --1.08125680685 -1.34859830141 --1.06399947405 -1.34859684109 --1.04674199224 -1.34859851002 --1.02948468924 -1.348603338 --1.01222717762 -1.34861129523 --0.994969695807 -1.34862241149 --0.977711826563 -1.3486366868 --0.960453927517 -1.34865409136 --0.943195521832 -1.34867465496 --0.925936937332 -1.34869834781 --0.908677756787 -1.3487251699 --0.891418263316 -1.34873831272 --0.872209891677 -1.34872326255 --0.852999895812 -1.34869667888 --0.835740238428 -1.34867319465 --0.818481236696 -1.34865283966 --0.801222503185 -1.34863564372 --0.783964306116 -1.34862160682 --0.766706243158 -1.34861066937 --0.749448612332 -1.34860289097 --0.732190951705 -1.34859827161 --0.714933589101 -1.34859684109 --0.697676122189 -1.34859853983 --0.680418848991 -1.34860336781 --0.663161322474 -1.34861129523 --0.645903855562 -1.34862241149 --0.62864600122 -1.3486367166 --0.611388087273 -1.34865415096 --0.594129681587 -1.34867468476 --0.576871082187 -1.34869834781 --0.559611871839 -1.3487251699 --0.542352363467 -1.34873828292 --0.52314402163 -1.34872326255 --0.503934055567 -1.34869670868 --0.486674398184 -1.34867322445 --0.469415403903 -1.34865286946 --0.45215665549 -1.34863564372 --0.434898458421 -1.34862163663 --0.417640395462 -1.34861069917 --0.400382749736 -1.34860289097 --0.383125089109 -1.34859827161 --0.365867748856 -1.34859684109 --0.348610289395 -1.34859848022 --0.331352993846 -1.3486033082 --0.314095467329 -1.34861129523 --0.296837992966 -1.34862241149 --0.279580146074 -1.3486366868 --0.262322232127 -1.34865412116 --0.245063826442 -1.34867468476 --0.227805245668 -1.34869834781 --0.210546046495 -1.3487251699 --0.193286530673 -1.34873831272 --0.174078177661 -1.36584368348 --0.15486618504 -1.3658169806 --0.137606520206 -1.36579337716 --0.120347516611 -1.36577296257 --0.103088766337 -1.36575570703 --0.0858305618167 -1.36574158072 --0.0685724820942 -1.36573058367 --0.0513148261234 -1.36572280526 --0.0340571678244 -1.3657181561 --0.0167998147663 -1.36571669579 -0.00045766076073 -1.36571839452 -0.0177149574738 -1.36572322249 -0.034972500056 -1.36573123932 -0.0522299809381 -1.36574241519 -0.0694878315553 -1.3657567203 -0.086745750159 -1.36577421427 -0.104004163295 -1.36579486728 -0.121262762695 -1.36581864953 -0.138521973044 -1.36584559083 -0.155781492591 -1.36585879326 -0.174989763648 -1.36584368348 -0.194199658931 -1.3658169806 -0.211459327489 -1.36579343676 -0.228718325496 -1.36577305198 -0.245977081358 -1.36575570703 -0.263235293329 -1.36574158072 -0.280493378639 -1.36573061347 -0.297751039267 -1.36572277546 -0.315008684993 -1.3657181263 -0.332266032696 -1.36571666598 -0.349523514509 -1.36571833491 -0.366780802608 -1.36572319269 -0.384038344026 -1.36573120952 -0.40129584074 -1.36574238539 -0.418553695083 -1.36575675011 -0.43581161648 -1.36577424407 -0.453070022166 -1.36579486728 -0.470328614116 -1.36581864953 -0.487587831915 -1.36584559083 -0.504847332836 -1.36585879326 -0.524055615067 -1.36584368348 -0.543265521526 -1.3658169806 -0.560525193811 -1.36579340696 -0.577784195542 -1.36577299237 -0.595042914152 -1.36575570703 -0.612301111221 -1.36574158072 -0.629559203982 -1.36573058367 -0.64681686461 -1.36572280526 -0.664074510336 -1.3657181561 -0.681331858039 -1.36571669579 -0.698589369655 -1.36571836472 -0.715846687555 -1.36572319269 -0.733104214072 -1.36573120952 -0.750361680984 -1.36574238539 -0.767619535327 -1.36575675011 -0.784877464175 -1.36577424407 -0.80213585496 -1.36579486728 -0.819394439459 -1.36581864953 -0.836653664708 -1.36584559083 -0.853913187981 -1.36585879326 -0.873121455312 -1.36584368348 -0.89233134687 -1.3658169806 -0.909591004253 -1.36579340696 -0.926850005984 -1.36577299237 -0.944108769297 -1.36575570703 -0.961366981268 -1.36574161053 -0.978625059128 -1.36573061347 -0.995882719757 -1.36572280526 -1.01314038038 -1.3657181561 -1.03039774299 -1.36571666598 -1.0476552248 -1.36571833491 -1.06491249799 -1.36572319269 -1.08217003941 -1.36573120952 -1.09942755103 -1.36574238539 -1.11668542027 -1.3657567203 -1.13394331932 -1.36577421427 -1.151201725 -1.36579486728 -1.16846033931 -1.36581864953 -1.18571954965 -1.36584559083 -1.20297902822 -1.36585879326 -1.22218731046 -1.36584368348 -1.24139720201 -1.3658169806 -1.2586568594 -1.36579340696 -1.27591586113 -1.36577299237 -1.29317462444 -1.36575570703 -1.31043285131 -1.36574158072 -1.32769089937 -1.36573058367 -1.34494856 -1.36572280526 -1.36220625043 -1.3657181263 -1.37946361303 -1.36571669579 -1.39672106504 -1.36571842432 -1.41397833824 -1.36572322249 -1.43123587966 -1.36573120952 -1.44849336147 -1.36574238539 -1.46575123072 -1.36575675011 -1.48300915956 -1.36577424407 -1.50026756525 -1.36579483748 -1.51752614975 -1.36581861972 -1.5347853601 -1.36584559083 -1.55204489827 -1.36585879326 -1.5712531507 -1.36584374309 -1.59046304226 -1.3658170402 -1.60772272945 -1.36579337716 -1.62498173118 -1.36577299237 -1.64224046469 -1.36575573683 -1.65949869156 -1.36574161053 -1.67675679922 -1.36573061347 -1.69401443004 -1.36572283507 -1.71127209067 -1.3657181859 -1.72852945328 -1.36571666598 -1.74578690529 -1.36571833491 -1.76304420829 -1.36572319269 -1.7803017497 -1.36573120952 -1.79755923152 -1.36574238539 -1.81481710076 -1.3657567203 -1.83207502961 -1.36577421427 -1.8493334651 -1.36579486728 -1.8665920496 -1.36581864953 -1.88385123014 -1.36584559083 -1.90111073852 -1.36585879326 -1.92031902075 -1.36584368348 -1.93952891231 -1.3658169806 -1.95678856969 -1.36579340696 -1.97404757142 -1.36577299237 -1.99130633473 -1.36575567723 -2.0085645318 -1.36574155092 -2.02582257986 -1.36573058367 -2.04308027029 -1.36572280526 -2.06033796072 -1.3657181561 -2.07759529352 -1.36571669579 -2.09485274553 -1.36571839452 -2.11211001873 -1.36572322249 -2.12936758995 -1.36573120952 -2.14662510156 -1.36574238539 -2.16388297081 -1.3657567203 -2.18114089966 -1.36577421427 -2.19839930535 -1.36579486728 -2.21565788985 -1.36581864953 -2.23291707039 -1.36584559083 -2.25017654896 -1.36585876346 -2.26938486099 -1.36584365368 -2.28859478236 -1.3658169806 -2.30585438013 -1.36579340696 -2.32311338186 -1.36577299237 -2.34037214517 -1.36575570703 -2.35763037205 -1.36574161053 -2.37488842011 -1.36573061347 -2.39214605093 -1.36572277546 -2.40940374136 -1.3657181263 -2.42666107416 -1.36571669579 -2.44391858578 -1.36571839452 -2.46117591858 -1.36572322249 -2.47843343019 -1.36573120952 -2.4956908822 -1.36574238539 -2.51294875145 -1.36575675011 -2.5302066803 -1.36577424407 -2.54746508599 -1.36579486728 -2.56472373009 -1.36581864953 -2.58198297024 -1.36584559083 -2.59924244881 -1.36585879326 -2.61845070124 -1.36584368348 -2.63766056299 -1.3658169806 -2.65492027998 -1.36579340696 -2.67217928171 -1.36577299237 -2.68943804503 -1.36575570703 -2.7066963315 -1.36574164033 -2.72395437956 -1.36573064327 -2.74121195078 -1.36572277546 -2.7584695816 -1.3657181263 -2.77572697401 -1.36571666598 -2.79298448563 -1.36571833491 -2.81024175882 -1.36572319269 -2.82749927044 -1.36573120952 -2.84475678206 -1.36574238539 -2.8620146513 -1.3657567203 -2.87927258015 -1.36577421427 -2.89653098583 -1.36579486728 -2.91378957033 -1.36581864953 -2.93104875088 -1.36584559083 -2.94830828905 -1.36585879326 -2.96751654148 -1.36584368348 -2.98672646284 -1.3658169806 -3.00398617983 -1.36579337716 -3.02124518156 -1.36577296257 -3.03850394487 -1.36575570703 -3.05576211214 -1.36574158072 -3.0730201602 -1.36573058367 -3.09027785063 -1.36572280526 -3.10753554106 -1.3657181561 -3.12479287386 -1.36571669579 --3.14113494952 -1.36571839452 --3.12387770415 -1.36572322249 --3.10662019253 -1.36573123932 --3.08936268091 -1.36574241519 --3.07210481167 -1.3657567203 --3.05484688282 -1.36577421427 --3.03758847714 -1.36579486728 --3.02032989263 -1.36581864953 --3.00307071209 -1.36584559083 --2.98581117391 -1.36585879326 --2.96660292148 -1.36584368348 --2.94739300012 -1.3658169806 --2.93013328314 -1.36579343676 --2.91287428141 -1.36577305198 --2.89561551809 -1.36575570703 --2.87835735083 -1.36574158072 --2.86109930277 -1.36573061347 --2.84384161234 -1.36572277546 --2.82658392191 -1.3657181263 --2.8093265891 -1.36571666598 --2.79206913709 -1.36571833491 --2.7748118639 -1.36572319269 --2.75755429268 -1.36573120952 --2.74029678107 -1.36574238539 --2.72303897142 -1.36575675011 --2.70578104257 -1.36577424407 --2.68852263689 -1.36579486728 --2.67126405239 -1.36581864953 --2.65400481224 -1.36584559083 --2.63674533367 -1.36585879326 --2.61753702164 -1.36584368348 --2.59832710028 -1.3658169806 --2.5810675025 -1.36579340696 --2.56380850077 -1.36577299237 --2.54654973745 -1.36575570703 --2.52929157019 -1.36574158072 --2.51203352213 -1.36573058367 --2.4947758317 -1.36572280526 --2.47751814127 -1.3657181561 --2.46026080847 -1.36571669579 --2.44300329685 -1.36571836472 --2.42574596405 -1.36572319269 --2.40848845243 -1.36573120952 --2.39123100042 -1.36574238539 --2.37397313118 -1.36575675011 --2.35671520233 -1.36577424407 --2.33945679664 -1.36579486728 --2.32219821214 -1.36581864953 --2.3049390316 -1.36584559083 --2.28767949343 -1.36585879326 --2.26847118139 -1.36584368348 --2.24926131963 -1.3658169806 --2.23200172186 -1.36579340696 --2.21474272013 -1.36577299237 --2.19748395682 -1.36575570703 --2.18022567034 -1.36574161053 --2.16296750307 -1.36573061347 --2.14570987225 -1.36572280526 --2.12845224142 -1.3657181561 --2.11119490862 -1.36571666598 --2.0939374566 -1.36571833491 --2.07668018341 -1.36572319269 --2.05942261219 -1.36573120952 --2.04216510058 -1.36574238539 --2.02490723133 -1.3657567203 --2.00764933229 -1.36577421427 --1.9903909564 -1.36579486728 --1.9731323421 -1.36581864953 --1.95587310195 -1.36584559083 --1.93861359358 -1.36585879326 --1.91940534115 -1.36584368348 --1.90019544959 -1.3658169806 --1.88293576241 -1.36579340696 --1.86567676067 -1.36577299237 --1.84841802716 -1.36575570703 --1.83115980029 -1.36574158072 --1.81390172243 -1.36573058367 --1.79664409161 -1.36572280526 --1.77938643098 -1.3657181263 --1.76212906838 -1.36571669579 --1.74487158656 -1.36571842432 --1.72761428356 -1.36572322249 --1.71035674214 -1.36573120952 --1.69309926033 -1.36574238539 --1.67584142089 -1.36575675011 --1.65858349204 -1.36577424407 --1.64132505655 -1.36579483748 --1.62406647205 -1.36581861972 --1.60680729151 -1.36584559083 --1.58954775333 -1.36585879326 --1.5703394711 -1.36584374309 --1.55112957954 -1.3658170402 --1.53386992216 -1.36579337716 --1.51661092043 -1.36577299237 --1.49935215712 -1.36575573683 --1.48209398985 -1.36574161053 --1.46483588219 -1.36573061347 --1.44757819176 -1.36572283507 --1.43032056093 -1.3657181859 --1.41306322813 -1.36571666598 --1.39580574632 -1.36571833491 --1.37854844332 -1.36572319269 --1.3612909019 -1.36573120952 --1.34403342008 -1.36574238539 --1.32677558064 -1.3657567203 --1.3095176816 -1.36577421427 --1.29225927591 -1.36579486728 --1.27500066161 -1.36581864953 --1.25774142146 -1.36584559083 --1.24048191309 -1.36585879326 --1.22127363086 -1.36584368348 --1.2020637393 -1.3658169806 --1.18480408192 -1.36579340696 --1.16754508019 -1.36577299237 --1.15028634667 -1.36575567723 --1.1330281198 -1.36574155092 --1.11577004194 -1.36573058367 --1.09851241112 -1.36572280526 --1.08125475049 -1.3657181561 --1.06399738789 -1.36571669579 --1.04673990608 -1.36571839452 --1.02948260307 -1.36572322249 --1.01222506166 -1.36573120952 --0.994967564941 -1.36574238539 --0.977709695697 -1.3657567203 --0.96045178175 -1.36577421427 --0.943193376064 -1.36579486728 --0.925934791565 -1.36581864953 --0.908675596118 -1.36584559083 --0.891416072846 -1.36585876346 --0.872207790613 -1.36584365368 --0.852997884155 -1.3658169806 --0.83573821187 -1.36579340696 --0.818479210139 -1.36577299237 --0.801220461726 -1.36575570703 --0.783962249756 -1.36574161053 --0.766704186797 -1.36573061347 --0.749446555972 -1.36572277546 --0.732188880443 -1.3657181263 --0.714931502938 -1.36571669579 --0.697674021125 -1.36571839452 --0.680416733027 -1.36572322249 --0.663159221411 -1.36573120952 --0.645901754499 -1.36574238539 --0.628643870354 -1.36575675011 --0.611385941506 -1.36577424407 --0.59412753582 -1.36579486728 --0.576868936419 -1.36581864953 --0.559609726072 -1.36584559083 --0.542350202799 -1.36585879326 --0.523141920566 -1.36584368348 --0.503932029009 -1.3658169806 --0.486672371626 -1.36579340696 --0.469413362443 -1.36577299237 --0.45215460658 -1.36575570703 --0.434896416962 -1.36574164033 --0.417638346553 -1.36573064327 --0.400380685925 -1.36572277546 --0.383123017848 -1.3657181263 --0.365865670145 -1.36571666598 --0.348608195782 -1.36571833491 --0.331350892782 -1.36572319269 --0.314093351364 -1.36573120952 --0.2968358621 -1.36574238539 --0.279578015208 -1.3657567203 --0.262320101261 -1.36577421427 --0.2450616844 -1.36579486728 --0.227803088725 -1.36581864953 --0.210543874651 -1.36584559083 --0.193284355104 -1.36585879326 --0.174076080322 -1.38293898106 --0.15486419946 -1.38291215896 --0.13760452345 -1.38288846612 --0.12034550868 -1.38286793232 --0.103086749092 -1.38285058737 --0.0858285389841 -1.38283643127 --0.0685704508796 -1.3828253746 --0.051312783733 -1.38281750679 --0.034055117052 -1.38281282783 --0.0167977560777 -1.38281136752 -0.000459727132692 -1.38281306625 -0.017717031762 -1.38281795383 -0.034974584356 -1.38282600045 -0.0522320726886 -1.38283720613 -0.0694899316877 -1.38285163045 -0.086747860536 -1.38286924362 -0.104006282985 -1.38288995624 -0.121264891699 -1.38291382789 -0.13852411136 -1.38294091821 -0.155783638358 -1.38295418024 -0.174991831184 -1.38293898106 -0.194201648236 -1.38291215896 -0.21146132797 -1.38288849592 -0.228720333427 -1.38286796212 -0.245979093015 -1.38285055757 -0.263237319887 -1.38283640146 -0.280495412648 -1.38282540441 -0.297753073275 -1.38281756639 -0.315010726452 -1.38281288743 -0.332268096507 -1.38281139732 -0.349525585771 -1.38281306625 -0.36678288132 -1.38281795383 -0.384040437639 -1.38282600045 -0.401297934353 -1.38283723593 -0.418555796146 -1.38285166025 -0.435813724995 -1.38286921382 -0.453072138131 -1.38288992643 -0.470330737531 -1.38291382789 -0.48758996278 -1.38294088841 -0.504849471152 -1.38295415044 -0.524057671428 -1.38293898106 -0.543267518282 -1.38291215896 -0.560527205467 -1.38288849592 -0.577786192298 -1.38286799192 -0.59504494071 -1.38285061717 -0.612303152681 -1.38283643127 -0.629561245442 -1.3828253746 -0.646818935871 -1.38281756639 -0.664076581597 -1.38281291723 -0.681333944201 -1.38281142712 -0.698591440916 -1.38281309605 -0.715848729015 -1.38281795383 -0.733106285334 -1.38282600045 -0.750363782048 -1.38283723593 -0.76762163639 -1.38285163045 -0.784879565239 -1.38286918402 -0.802137970925 -1.38288992643 -0.819396570325 -1.38291382789 -0.836655795574 -1.38294088841 -0.853915333748 -1.38295415044 -0.873123541474 -1.38293901086 -0.892333343625 -1.38291218877 -0.909593015909 -1.38288849592 -0.926852032542 -1.38286799192 -0.944110795855 -1.38285061717 -0.961369007826 -1.38283643127 -0.978627100587 -1.38282540441 -0.995884761217 -1.38281756639 -1.01314240694 -1.38281285763 -1.03039979935 -1.38281136752 -1.04765731096 -1.38281306625 -1.06491458416 -1.38281795383 -1.08217212558 -1.38282600045 -1.09942963719 -1.38283723593 -1.11668750643 -1.38285166025 -1.13394540548 -1.38286924362 -1.15120381117 -1.38288995624 -1.16846242547 -1.38291382789 -1.18572166562 -1.38294088841 -1.20298117399 -1.38295415044 -1.22218936682 -1.38293898106 -1.24139919877 -1.38291215896 -1.25865885616 -1.38288849592 -1.27591785789 -1.38286796212 -1.2931766212 -1.38285058737 -1.31043484807 -1.38283643127 -1.32769292593 -1.38282540441 -1.34495061636 -1.38281756639 -1.36220830679 -1.38281285763 -1.37946563959 -1.38281139732 -1.3967230916 -1.38281309605 -1.4139803946 -1.38281795383 -1.43123796582 -1.38282600045 -1.44849547744 -1.38283723593 -1.46575334668 -1.38285163045 -1.48301127553 -1.38286918402 -1.50026971102 -1.38288992643 -1.51752829552 -1.38291382789 -1.53478750587 -1.38294091821 -1.55204704404 -1.38295418024 -1.57125523686 -1.38293901086 -1.59046506882 -1.38291218877 -1.6077247262 -1.38288846612 -1.62498372793 -1.38286793232 -1.64224249124 -1.38285058737 -1.65950071811 -1.38283643127 -1.67675882578 -1.38282540441 -1.6940164566 -1.38281756639 -1.71127411723 -1.38281285763 -1.72853150964 -1.38281139732 -1.74578899145 -1.38281309605 -1.76304626465 -1.38281795383 -1.78030380607 -1.38282600045 -1.79756131768 -1.38283723593 -1.81481918692 -1.38285166025 -1.83207711577 -1.38286921382 -1.84933555126 -1.38288992643 -1.86659416557 -1.38291382789 -1.88385337591 -1.38294091821 -1.90111291409 -1.38295418024 -1.92032110691 -1.38293898106 -1.93953087926 -1.38291215896 -1.95679056645 -1.38288846612 -1.97404962778 -1.38286793232 -1.99130836129 -1.38285055757 -2.00856652856 -1.38283640146 -2.02582460642 -1.38282540441 -2.04308229685 -1.38281753659 -2.06033998728 -1.38281285763 -2.07759732008 -1.38281142712 -2.09485477209 -1.38281309605 -2.11211210489 -1.38281795383 -2.12936967611 -1.38282600045 -2.14662712812 -1.38283723593 -2.16388505697 -1.38285163045 -2.18114298582 -1.38286921382 -2.19840139151 -1.38288995624 -2.21566003561 -1.38291382789 -2.23291921616 -1.38294091821 -2.25017875433 -1.38295415044 -2.26938694715 -1.38293895125 -2.28859674931 -1.38291215896 -2.30585640669 -1.38288849592 -2.32311540842 -1.38286796212 -2.34037417174 -1.38285058737 -2.357632339 -1.38283646107 -2.37489038706 -1.38282540441 -2.39214807749 -1.38281753659 -2.40940576792 -1.38281285763 -2.42666310072 -1.38281136752 -2.44392067194 -1.38281306625 -2.46117800474 -1.38281795383 -2.47843551636 -1.38282600045 -2.49569302797 -1.38283723593 -2.51295089722 -1.38285166025 -2.53020882606 -1.38286921382 -2.54746723175 -1.38288992643 -2.56472581625 -1.38291382789 -2.5819850564 -1.38294088841 -2.59924459457 -1.38295415044 -2.6184527874 -1.38293898106 -2.63766258955 -1.38291215896 -2.65492224694 -1.38288849592 -2.67218124866 -1.38286796212 -2.68944001198 -1.38285058737 -2.70669829846 -1.38283646107 -2.72395640612 -1.38282543421 -2.74121403694 -1.38281756639 -2.75847172737 -1.38281288743 -2.77572911977 -1.38281139732 -2.79298657179 -1.38281306625 -2.81024384499 -1.38281795383 -2.82750141621 -1.38282600045 -2.84475892782 -1.38283723593 -2.86201673746 -1.38285166025 -2.87927466631 -1.38286921382 -2.89653307199 -1.38288992643 -2.91379165649 -1.38291382789 -2.93105089664 -1.38294088841 -2.94831043482 -1.38295415044 -2.96751862764 -1.38293898106 -2.98672842979 -1.38291215896 -3.00398814678 -1.38288846612 -3.02124720812 -1.38286793232 -3.03850597143 -1.38285058737 -3.0557641387 -1.38283643127 -3.07302218675 -1.3828253746 -3.09027987718 -1.38281750679 -3.10753756762 -1.38281282783 -3.12479490041 -1.38281136752 --3.14113292297 -1.38281306625 --3.12387561798 -1.38281795383 --3.10661804676 -1.38282600045 --3.08936053515 -1.38283720613 --3.07210272551 -1.38285163045 --3.05484479666 -1.38286924362 --3.03758639097 -1.38288995624 --3.02032780647 -1.38291382789 --3.00306856632 -1.38294091821 --2.98580902815 -1.38295418024 --2.96660083532 -1.38293898106 --2.94739103317 -1.38291215896 --2.93013131618 -1.38288849592 --2.91287225485 -1.38286796212 --2.89561349154 -1.38285055757 --2.87835532427 -1.38283640146 --2.86109727621 -1.38282540441 --2.84383958578 -1.38281756639 --2.82658189535 -1.38281288743 --2.80932456255 -1.38281139732 --2.79206711054 -1.38281306625 --2.77480977774 -1.38281795383 --2.75755220652 -1.38282600045 --2.74029475451 -1.38283723593 --2.72303688526 -1.38285166025 --2.70577895641 -1.38286921382 --2.68852055073 -1.38288992643 --2.67126190662 -1.38291382789 --2.65400266647 -1.38294088841 --2.6367431879 -1.38295415044 --2.61753499508 -1.38293898106 --2.59832513332 -1.38291215896 --2.58106547594 -1.38288849592 --2.56380647421 -1.38286799192 --2.5465477109 -1.38285061717 --2.52928954363 -1.38283643127 --2.51203143597 -1.3828253746 --2.49477374554 -1.38281756639 --2.47751611471 -1.38281291723 --2.4602587223 -1.38281142712 --2.44300121069 -1.38281309605 --2.42574393749 -1.38281795383 --2.40848642588 -1.38282600045 --2.39122891426 -1.38283723593 --2.37397098542 -1.38285163045 --2.35671305656 -1.38286918402 --2.33945465088 -1.38288992643 --2.32219606638 -1.38291382789 --2.30493688583 -1.38294088841 --2.28767734766 -1.38295415044 --2.26846909523 -1.38293901086 --2.24925929308 -1.38291218877 --2.2319996953 -1.38288849592 --2.21474069357 -1.38286799192 --2.19748193025 -1.38285061717 --2.18022364378 -1.38283643127 --2.16296547652 -1.38282540441 --2.14570784569 -1.38281756639 --2.12845021486 -1.38281285763 --2.11119282246 -1.38281136752 --2.09393531084 -1.38281306625 --2.07667803764 -1.38281795383 --2.05942046642 -1.38282600045 --2.04216295481 -1.38283723593 --2.02490514517 -1.38285166025 --2.00764724612 -1.38286924362 --1.99038881063 -1.38288995624 --1.97313019633 -1.38291382789 --1.95587098598 -1.38294088841 --1.93861147762 -1.38295415044 --1.91940328479 -1.38293898106 --1.90019345283 -1.38291215896 --1.88293376565 -1.38288849592 --1.86567476392 -1.38286796212 --1.8484160304 -1.38285058737 --1.83115780354 -1.38283643127 --1.81389969587 -1.38282540441 --1.79664203525 -1.38281756639 --1.77938434482 -1.38281285763 --1.76212698221 -1.38281139732 --1.7448695302 -1.38281309605 --1.7276122272 -1.38281795383 --1.71035465598 -1.38282600045 --1.69309717417 -1.38283723593 --1.67583933473 -1.38285163045 --1.65858140588 -1.38286918402 --1.64132297039 -1.38288992643 --1.62406435609 -1.38291382789 --1.60680514574 -1.38294091821 --1.58954560757 -1.38295418024 --1.57033741474 -1.38293901086 --1.55112761259 -1.38291218877 --1.53386792541 -1.38288846612 --1.51660889387 -1.38286793232 --1.49935013056 -1.38285058737 --1.48209196329 -1.38283643127 --1.46483385563 -1.38282540441 --1.4475761652 -1.38281756639 --1.43031853438 -1.38281285763 --1.41306117177 -1.38281139732 --1.39580366016 -1.38281309605 --1.37854635715 -1.38281795383 --1.36128881574 -1.38282600045 --1.34403133392 -1.38283723593 --1.32677349448 -1.38285166025 --1.30951556563 -1.38286921382 --1.29225713015 -1.38288992643 --1.27499851585 -1.38291382789 --1.2577393055 -1.38294091821 --1.24047979713 -1.38295418024 --1.2212715745 -1.38293898106 --1.20206174255 -1.38291215896 --1.18480208516 -1.38288846612 --1.16754308343 -1.38286793232 --1.15028432011 -1.38285055757 --1.13302609324 -1.38283640146 --1.11576801539 -1.38282540441 --1.09851035476 -1.38281753659 --1.08125266433 -1.38281285763 --1.06399530172 -1.38281142712 --1.04673781991 -1.38281309605 --1.02948051691 -1.38281795383 --1.01222297549 -1.38282600045 --0.994965478779 -1.38283723593 --0.977707609534 -1.38285163045 --0.960449680686 -1.38286921382 --0.9431912601 -1.38288995624 --0.925932660699 -1.38291382789 --0.90867343545 -1.38294091821 --0.891413897276 -1.38295415044 --0.872205719352 -1.38293895125 --0.8529959023 -1.38291215896 --0.835736215115 -1.38288849592 --0.818477198482 -1.38286796212 --0.80121845007 -1.38285058737 --0.783960253 -1.38283646107 --0.76670217514 -1.38282540441 --0.749444514513 -1.38281753659 --0.732186824083 -1.38281285763 --0.714929461479 -1.38281136752 --0.697671979665 -1.38281306625 --0.680414661765 -1.38281795383 --0.663157120347 -1.38282600045 --0.645899638534 -1.38283723593 --0.628641754389 -1.38285166025 --0.61138382554 -1.38286921382 --0.594125419855 -1.38288992643 --0.576866820454 -1.38291382789 --0.559607595205 -1.38294088841 --0.542348057032 -1.38295415044 --0.523139849305 -1.38293898106 --0.503930032254 -1.38291215896 --0.486670374871 -1.38288849592 --0.469411358238 -1.38286796212 --0.452152602375 -1.38285058737 --0.434894405305 -1.38283646107 --0.417636319995 -1.38282543421 --0.400378644466 -1.38281756639 --0.383120961487 -1.38281288743 --0.365863598883 -1.38281139732 --0.34860612452 -1.38281306625 --0.331348828971 -1.38281795383 --0.314091265201 -1.38282600045 --0.296833761036 -1.38283723593 --0.279575906694 -1.38285166025 --0.262317985297 -1.38286921382 --0.245059568435 -1.38288992643 --0.227800961584 -1.38291382789 --0.21054174006 -1.38294088841 --0.193282213062 -1.38295415044 --0.174074016512 -1.40005147457 --0.154860433191 -1.40002453327 --0.137600738555 -1.40000072122 --0.120341708884 -1.39998006821 --0.103082930669 -1.39996266365 --0.0858247037977 -1.39994847774 --0.0685665970668 -1.39993736148 --0.051308915019 -1.39992949366 --0.0340512352995 -1.3999247849 --0.0167938573286 -1.39992323518 -0.00046364287846 -1.39992493391 -0.0177209626418 -1.3999298811 -0.0349785308354 -1.39993795753 -0.0522360373288 -1.3999492228 -0.069493914023 -1.39996370673 -0.0867518577725 -1.39998140931 -0.104010295123 -1.40000221133 -0.121268918738 -1.4000261724 -0.1385281533 -1.40005338192 -0.15578770265 -1.40006670356 -0.174995753914 -1.40005144477 -0.194205418229 -1.40002450347 -0.211465112865 -1.40000072122 -0.228724136948 -1.39998006821 -0.245982907713 -1.39996263385 -0.263241149485 -1.39994844794 -0.280499264598 -1.39993739128 -0.297756940127 -1.39992952347 -0.315014600754 -1.3999248147 -0.33227199316 -1.39992332459 -0.349529504776 -1.39992499351 -0.366786815226 -1.3999298811 -0.384044386446 -1.39993795753 -0.401301890612 -1.39994925261 -0.418559774756 -1.39996373653 -0.435817718506 -1.39998137951 -0.453076146543 -1.40000218153 -0.470334760845 -1.4000261724 -0.487593993545 -1.40005335212 -0.504853531718 -1.40006667376 -0.524061590433 -1.40005144477 -0.543271273374 -1.40002450347 -0.560530975461 -1.40000072122 -0.577789992094 -1.39998009801 -0.595048755407 -1.39996266365 -0.612306982279 -1.39994844794 -0.629565104842 -1.39993736148 -0.646822810173 -1.39992949367 -0.664080485702 -1.3999248147 -0.681337863207 -1.39992332459 -0.698595330119 -1.39992499351 -0.715852633119 -1.3999298811 -0.733110234142 -1.39993795753 -0.750367745757 -1.39994925261 -0.767625615 -1.39996370673 -0.784883543849 -1.3999813497 -0.802141964436 -1.40000218153 -0.81940060854 -1.4000261724 -0.836659863591 -1.40005335212 -0.853919401765 -1.40006664395 -0.873127445578 -1.40005144477 -0.89233712852 -1.40002453327 -0.909596830606 -1.40000072122 -0.926855847239 -1.39998009801 -0.944114610553 -1.39996266365 -0.961372837424 -1.39994847775 -0.978630959987 -1.39993742108 -0.995888620616 -1.39992952347 -1.01314628124 -1.3999247849 -1.03040367365 -1.39992329478 -1.04766118526 -1.39992499351 -1.06491851807 -1.3999298811 -1.08217608929 -1.39993795753 -1.0994336009 -1.39994925261 -1.11669147015 -1.39996373653 -1.13394939899 -1.39998140931 -1.15120783448 -1.40000221133 -1.16846644878 -1.4000261724 -1.18572568893 -1.40005335212 -1.20298522711 -1.40006664395 -1.22219327092 -1.40005141497 -1.24140298367 -1.40002450347 -1.25866267085 -1.40000072122 -1.27592167258 -1.39998006821 -1.2931804359 -1.39996263385 -1.31043866277 -1.39994844794 -1.32769680023 -1.39993739128 -1.34495449066 -1.39992952347 -1.36221218109 -1.3999248147 -1.37946954369 -1.39992332459 -1.39672702551 -1.39992499351 -1.41398435831 -1.3999298811 -1.43124192953 -1.39993795753 -1.44849944115 -1.39994925261 -1.46575731039 -1.39996370673 -1.48301526904 -1.3999813199 -1.50027373433 -1.40000218153 -1.51753234863 -1.4000261724 -1.53479155898 -1.40005335212 -1.55205109716 -1.40006670356 -1.57125917077 -1.40005144477 -1.59046885371 -1.40002450347 -1.6077285409 -1.40000075102 -1.62498757243 -1.39998009801 -1.64224633575 -1.39996263385 -1.65950456262 -1.39994844794 -1.67676267028 -1.39993739128 -1.69402033091 -1.39992952347 -1.71127799153 -1.3999247849 -1.72853538394 -1.39992329478 -1.74579289555 -1.39992499351 -1.76305019855 -1.3999298811 -1.78030776977 -1.39993795753 -1.79756528139 -1.39994925261 -1.81482318044 -1.39996373653 -1.83208110929 -1.39998137951 -1.84933951497 -1.40000218153 -1.86659815908 -1.4000261724 -1.88385742903 -1.40005338192 -1.901116997 -1.40006667376 -1.92032501101 -1.40005141497 -1.93953463435 -1.40002450347 -1.95679435134 -1.40000069142 -1.97405341268 -1.39998003841 -1.99131217599 -1.39996263385 -2.00857037306 -1.39994844794 -2.02582848072 -1.39993736148 -2.04308617115 -1.39992946386 -2.06034386158 -1.3999247849 -2.07760125399 -1.39992332459 -2.094858706 -1.39992499351 -2.1121160388 -1.3999298811 -2.12937361002 -1.39993795753 -2.14663106203 -1.39994925261 -2.16388899088 -1.39996370673 -2.18114691973 -1.39998137951 -2.19840532541 -1.40000221133 -2.21566396952 -1.4000261724 -2.23292320967 -1.40005338192 -2.25018280744 -1.40006667376 -2.26939088106 -1.40005141497 -2.288600564 -1.40002450347 -2.30586022139 -1.40000072122 -2.32311922312 -1.39998006821 -2.34037804604 -1.39996263385 -2.3576362133 -1.39994844794 -2.37489426136 -1.39993736148 -2.39215195179 -1.39992949367 -2.40940964222 -1.3999247849 -2.42666703463 -1.39992326498 -2.44392460585 -1.39992496371 -2.46118193865 -1.3999298811 -2.47843950987 -1.39993795753 -2.49569702148 -1.39994925261 -2.51295489073 -1.39996373653 -2.53021287918 -1.39998137951 -2.54747128487 -1.40000218153 -2.56472986937 -1.4000261724 -2.58198910952 -1.40005335212 -2.59924864769 -1.40006664395 -2.6184567213 -1.40005141497 -2.63766640425 -1.40002450347 -2.65492606163 -1.40000072122 -2.67218506336 -1.39998006821 -2.68944382667 -1.39996263385 -2.70670211315 -1.39994847775 -2.72396022081 -1.39993742108 -2.74121791125 -1.39992952347 -2.75847566128 -1.3999248147 -2.77573299408 -1.39992332459 -2.79299044609 -1.39992499351 -2.81024777889 -1.3999298811 -2.82750535011 -1.39993795753 -2.84476286173 -1.39994925261 -2.86202073097 -1.39996373653 -2.87927865982 -1.39998137951 -2.89653706551 -1.40000218153 -2.91379570961 -1.4000261724 -2.93105494976 -1.40005335212 -2.94831448793 -1.40006667376 -2.96752256155 -1.40005147457 -2.98673218489 -1.40002453327 -3.00399190188 -1.40000072122 -3.02125096321 -1.39998006821 -3.03850972652 -1.39996266365 -3.05576795339 -1.39994847774 -3.07302606106 -1.39993736148 -3.09028375149 -1.39992949366 -3.10754144192 -1.3999247849 -3.12479883432 -1.39992323518 --3.14112898906 -1.39992493391 --3.12387168408 -1.3999298811 --3.10661411285 -1.39993795753 --3.08935660124 -1.3999492228 --3.07209873199 -1.39996370673 --3.05484080315 -1.39998140931 --3.03758239746 -1.40000221133 --3.02032375336 -1.4000261724 --3.00306451321 -1.40005338192 --2.98580497503 -1.40006670356 --2.96659690141 -1.40005144477 --2.94738727808 -1.40002450347 --2.93012756109 -1.40000072122 --2.91286849975 -1.39998006821 --2.89560973644 -1.39996263385 --2.87835150957 -1.39994844794 --2.86109340191 -1.39993739128 --2.84383571148 -1.39992952347 --2.82657802105 -1.3999248147 --2.80932062864 -1.39992332459 --2.79206317663 -1.39992499351 --2.77480584383 -1.3999298811 --2.75754827261 -1.39993795753 --2.7402908206 -1.39994925261 --2.72303289175 -1.39996373653 --2.7057749629 -1.39998137951 --2.68851655722 -1.40000218153 --2.67125791311 -1.4000261724 --2.65399867296 -1.40005335212 --2.63673913479 -1.40006667376 --2.61753112078 -1.40005144477 --2.59832143784 -1.40002450347 --2.58106172085 -1.40000072122 --2.56380265951 -1.39998009801 --2.5465438962 -1.39996266365 --2.52928572893 -1.39994844794 --2.51202756167 -1.39993736148 --2.49476987123 -1.39992949367 --2.47751224041 -1.3999248147 --2.4602547884 -1.39992332459 --2.44299733639 -1.39992499351 --2.42574006319 -1.3999298811 --2.40848243237 -1.39993795753 --2.39122492075 -1.39994925261 --2.37396705151 -1.39996370673 --2.35670912266 -1.3999813497 --2.33945065737 -1.40000218153 --2.32219201326 -1.4000261724 --2.30493277311 -1.40005335212 --2.28767323494 -1.40006664395 --2.26846516132 -1.40005144477 --2.24925547838 -1.40002453327 --2.231995821 -1.40000072122 --2.21473681927 -1.39998009801 --2.19747805596 -1.39996266365 --2.18021976948 -1.39994847775 --2.16296166181 -1.39993742108 --2.14570403099 -1.39992952347 --2.12844640017 -1.3999247849 --2.11118900776 -1.39992329478 --2.09393143654 -1.39992499351 --2.07667410374 -1.3999298811 --2.05941653252 -1.39993795753 --2.0421590209 -1.39994925261 --2.02490115166 -1.39996373653 --2.00764322281 -1.39998140931 --1.99038478732 -1.40000221133 --1.97312617302 -1.4000261724 --1.95586696267 -1.40005335212 --1.9386074245 -1.40006664395 --1.91939935088 -1.40005141497 --1.90018966794 -1.40002450347 --1.88292998075 -1.40000072122 --1.86567094922 -1.39998006821 --1.84841218591 -1.39996263385 --1.83115395904 -1.39994844794 --1.81389585137 -1.39993739128 --1.79663816094 -1.39992952347 --1.77938047051 -1.3999248147 --1.76212310791 -1.39992332459 --1.7448656261 -1.39992499351 --1.72760829329 -1.3999298811 --1.71035069227 -1.39993795753 --1.69309321046 -1.39994925261 --1.67583534121 -1.39996370673 --1.65857738256 -1.3999813199 --1.64131894708 -1.40000218153 --1.62406033277 -1.4000261724 --1.60680109262 -1.40005335212 --1.58954152465 -1.40006670356 --1.57033351064 -1.40005144477 --1.5511238575 -1.40002450347 --1.53386414051 -1.40000075102 --1.51660510898 -1.39998009801 --1.49934631586 -1.39996263385 --1.48208808899 -1.39994844794 --1.46482998132 -1.39993739128 --1.4475722909 -1.39992952347 --1.43031463027 -1.3999247849 --1.41305726766 -1.39992329478 --1.39579975605 -1.39992499351 --1.37854245305 -1.3999298811 --1.36128488183 -1.39993795753 --1.34402734041 -1.39994925261 --1.32676950097 -1.39996373653 --1.30951157212 -1.39998137951 --1.29225310683 -1.40000218153 --1.27499449253 -1.4000261724 --1.25773528218 -1.40005338192 --1.24047574401 -1.40006667376 --1.2212676704 -1.40005141497 --1.20205798745 -1.40002450347 --1.18479830026 -1.40000069142 --1.16753926873 -1.39998003841 --1.15028050542 -1.39996263385 --1.13302227855 -1.39994844794 --1.11576417089 -1.39993736148 --1.09850648045 -1.39992946386 --1.08124876022 -1.3999247849 --1.06399139762 -1.39992332459 --1.0467339158 -1.39992499351 --1.029476583 -1.3999298811 --1.01221904158 -1.39993795753 --0.994961544871 -1.39994925261 --0.977703660727 -1.39996370673 --0.960445716977 -1.39998137951 --0.943187266588 -1.40000221133 --0.925928652287 -1.4000261724 --0.908669412136 -1.40005338192 --0.89140984416 -1.40006667376 --0.872201785445 -1.40005141497 --0.852992117405 -1.40002450347 --0.835732445121 -1.40000072122 --0.818473413587 -1.39998006821 --0.801214620471 -1.39996263385 --0.7839564085 -1.39994844794 --0.76669831574 -1.39993736148 --0.749440640211 -1.39992949367 --0.732182949782 -1.3999247849 --0.714925572276 -1.39992326498 --0.69766806066 -1.39992496371 --0.680410727858 -1.3999298811 --0.663153171539 -1.39993795753 --0.645895674824 -1.39994925261 --0.628637775779 -1.39996373653 --0.611379817128 -1.39998137951 --0.594121396541 -1.40000218153 --0.57686278224 -1.4000261724 --0.559603542089 -1.40005335212 --0.542343989014 -1.40006664395 --0.5231359303 -1.40005141497 --0.50392626226 -1.40002450347 --0.486666589975 -1.40000072122 --0.469407565892 -1.39998006821 --0.452148787677 -1.39996263385 --0.434890560806 -1.39994847775 --0.417632453144 -1.39993742108 --0.400374762714 -1.39992952347 --0.383117072284 -1.3999248147 --0.365859694779 -1.39992332459 --0.348602205515 -1.39992499351 --0.331344902515 -1.3999298811 --0.314087331295 -1.39993795753 --0.296829804778 -1.39994925261 --0.279571920633 -1.39996373653 --0.262313984335 -1.39998137951 --0.245055556298 -1.40000218153 --0.22779693082 -1.4000261724 --0.210537694395 -1.40005335212 --0.19327814877 -1.40006667376 --0.174070101232 -1.4172142148 --0.154856752604 -1.41718715429 --0.137597043067 -1.41716322303 --0.120338000357 -1.41714254022 --0.103079207242 -1.41712504625 --0.0858209636062 -1.41711077094 --0.0685628382489 -1.41709962487 --0.0513051413 -1.41709178686 --0.0340474476106 -1.41708707809 --0.016790052643 -1.41708549857 -0.000467464793475 -1.4170871973 -0.0177248001564 -1.41709214449 -0.0349823827855 -1.41710025072 -0.0522399079055 -1.4171115756 -0.0694978022948 -1.41712608933 -0.0867557562888 -1.41714379191 -0.104014204815 -1.41716468334 -0.121272845194 -1.41718879342 -0.138532094657 -1.41721612215 -0.155791662633 -1.41722947359 -0.174999576062 -1.41721415519 -0.194209098816 -1.41718709469 -0.211468808353 -1.41716319323 -0.228727851063 -1.41714251041 -0.245986636728 -1.41712501645 -0.263244882226 -1.41711074114 -0.28050301224 -1.41709962487 -0.297760717571 -1.41709172726 -0.31501840055 -1.41708701849 -0.332275800407 -1.41708552837 -0.349533326924 -1.4170872271 -0.366790652275 -1.41709214449 -0.384048238397 -1.41710025072 -0.401305757463 -1.4171115756 -0.418563656509 -1.41712611913 -0.43582162261 -1.41714385152 -0.453080065548 -1.41716471315 -0.470338687301 -1.41718879342 -0.487597934902 -1.41721612215 -0.504857510329 -1.41722947359 -0.524065420032 -1.41721415519 -0.54327493906 -1.41718712449 -0.560534656048 -1.41716322303 -0.577793702483 -1.41714251041 -0.595052480697 -1.41712498665 -0.61231072247 -1.41711071134 -0.629568845033 -1.41709962487 -0.646826550364 -1.41709172726 -0.664084270596 -1.41708701849 -0.681341663003 -1.41708552837 -0.698599144816 -1.4170871973 -0.715856477618 -1.41709211469 -0.733114078641 -1.41710025072 -0.750371590257 -1.4171115756 -0.767629489302 -1.41712611913 -0.784887433052 -1.41714385152 -0.802145883441 -1.41716471315 -0.819404557347 -1.41718876362 -0.836663812399 -1.41721609235 -0.853923350573 -1.41722944379 -0.873131260276 -1.41721412539 -0.892340809107 -1.41718709469 -0.909600511193 -1.41716319323 -0.926859557628 -1.41714251041 -0.944118350744 -1.41712501645 -0.961376592517 -1.41711077094 -0.978634700179 -1.41709965467 -0.995892360806 -1.41709175706 -1.01315006614 -1.41708704829 -1.03040745854 -1.41708552837 -1.04766499996 -1.4170872271 -1.06492239237 -1.41709214449 -1.08217996359 -1.41710025072 -1.09943747521 -1.4171115756 -1.11669534445 -1.41712611913 -1.13395327329 -1.41714385152 -1.15121173859 -1.41716474295 -1.16847038269 -1.41718882322 -1.18572962284 -1.41721612215 -1.20298919082 -1.41722944379 -1.22219711542 -1.41721412539 -1.24140667915 -1.41718709469 -1.25866639614 -1.41716319323 -1.27592542768 -1.41714251041 -1.29318419099 -1.41712501645 -1.31044241786 -1.41711074114 -1.32770058513 -1.41709962487 -1.34495827556 -1.41709172726 -1.36221596599 -1.41708701849 -1.37947335839 -1.41708552837 -1.39673087001 -1.4170872271 -1.41398820281 -1.41709214449 -1.43124577403 -1.41710025072 -1.44850331545 -1.4171115756 -1.4657612145 -1.41712611913 -1.48301917314 -1.41714382171 -1.50027763844 -1.41716471314 -1.51753628254 -1.41718879342 -1.53479552269 -1.41721609235 -1.55205506086 -1.41722947359 -1.57126295566 -1.41721415519 -1.59047248959 -1.41718709469 -1.60773220658 -1.41716322303 -1.62499126792 -1.41714254022 -1.64225006104 -1.41712501645 -1.65950828791 -1.41711074114 -1.67676639557 -1.41709962487 -1.6940241158 -1.41709178686 -1.71128180623 -1.41708707809 -1.72853919864 -1.41708552837 -1.74579671025 -1.4170872271 -1.76305404306 -1.41709214449 -1.78031164408 -1.41710025072 -1.7975691557 -1.4171115756 -1.81482705474 -1.41712611913 -1.83208501339 -1.41714385152 -1.84934344888 -1.41716474295 -1.86660209298 -1.41718882322 -1.88386136294 -1.41721612215 -1.90112093091 -1.41722944379 -1.92032882571 -1.41721412539 -1.93953832984 -1.41718709469 -1.95679804683 -1.41716319323 -1.97405710817 -1.41714251041 -1.99131590128 -1.41712501645 -2.00857409835 -1.41711074114 -2.02583223581 -1.41709959507 -2.04308998585 -1.41709169746 -2.06034767628 -1.41708701849 -2.07760506869 -1.41708552837 -2.0948625803 -1.4170872271 -2.1121199131 -1.41709214449 -2.12937748432 -1.41710025072 -2.14663499594 -1.4171115756 -2.16389286518 -1.41712608933 -2.18115079403 -1.41714382171 -2.19840925932 -1.41716474295 -2.21566790342 -1.41718882322 -2.23292714357 -1.41721612215 -2.25018674135 -1.41722944379 -2.26939469576 -1.41721412539 -2.28860425949 -1.41718712449 -2.30586391687 -1.41716322303 -2.32312291861 -1.41714251041 -2.34038180113 -1.41712501645 -2.357640028 -1.41711074114 -2.37489807606 -1.41709962487 -2.39215576649 -1.41709172726 -2.40941345692 -1.41708701849 -2.42667084932 -1.41708552837 -2.44392842055 -1.4170872271 -2.46118581295 -1.41709214449 -2.47844338417 -1.41710025072 -2.49570083618 -1.4171115756 -2.51295876503 -1.41712611913 -2.53021681309 -1.41714385152 -2.54747521877 -1.41716474295 -2.56473380327 -1.41718882322 -2.58199304342 -1.41721612215 -2.5992525816 -1.41722944379 -2.61846053601 -1.41721412539 -2.63767009973 -1.41718712449 -2.65492981672 -1.41716322303 -2.67218881846 -1.41714251041 -2.68944758177 -1.41712501645 -2.70670586824 -1.41711077094 -2.72396391631 -1.41709965467 -2.74122160673 -1.41709172726 -2.75847941637 -1.41708701849 -2.77573680878 -1.41708552837 -2.79299426079 -1.4170872271 -2.81025159359 -1.41709214449 -2.82750916481 -1.41710025072 -2.84476667643 -1.4171115756 -2.86202460528 -1.41712608933 -2.87928259373 -1.41714379191 -2.89654099941 -1.41716468334 -2.91379964352 -1.41718879342 -2.93105894327 -1.41721609235 -2.94831848144 -1.41722944379 -2.96752637625 -1.4172142148 -2.98673588037 -1.41718715429 -3.00399559736 -1.41716322303 -3.0212546587 -1.41714254022 -3.03851342201 -1.41712504625 -3.05577164888 -1.41711077094 -3.07302981615 -1.41709962487 -3.09028750658 -1.41709178686 -3.10754519701 -1.41708707809 -3.12480264902 -1.41708549857 --3.14112517436 -1.4170871973 --3.12386786938 -1.41709214449 --3.10661029816 -1.41710025072 --3.08935278654 -1.4171115756 --3.07209485769 -1.41712608933 --3.05483686924 -1.41714379191 --3.03757846356 -1.41716468334 --3.02031981945 -1.41718879342 --3.0030605197 -1.41721612215 --2.98580098152 -1.41722947359 --2.96659308672 -1.41721415519 --2.9473835826 -1.41718709469 --2.93012386561 -1.41716319323 --2.91286480427 -1.41714251041 --2.89560604095 -1.41712501645 --2.87834781408 -1.41711074114 --2.86108964681 -1.41709962487 --2.84383189678 -1.41709172726 --2.82657420635 -1.41708701849 --2.80931681395 -1.41708552837 --2.79205936194 -1.4170872271 --2.77480202913 -1.41709214449 --2.75754439831 -1.41710025072 --2.74028688669 -1.4171115756 --2.72302901745 -1.41712611913 --2.7057710886 -1.41714385152 --2.68851262331 -1.41716471315 --2.67125397921 -1.41718879342 --2.65399473906 -1.41721612215 --2.63673514128 -1.41722947359 --2.61752724648 -1.41721415519 --2.59831774235 -1.41718712449 --2.58105802536 -1.41716322303 --2.56379896402 -1.41714251041 --2.54654020071 -1.41712498665 --2.52928197384 -1.41711071134 --2.51202380657 -1.41709962487 --2.49476611614 -1.41709172726 --2.47750842571 -1.41708701849 --2.46025103331 -1.41708552837 --2.44299352169 -1.4170871973 --2.42573618889 -1.41709211469 --2.40847855806 -1.41710025072 --2.39122104644 -1.4171115756 --2.3739631772 -1.41712611913 --2.35670524836 -1.41714385152 --2.33944678307 -1.41716471315 --2.32218807936 -1.41718876362 --2.30492883921 -1.41721609235 --2.28766930103 -1.41722944379 --2.26846140623 -1.41721412539 --2.2492518425 -1.41718709469 --2.23199212551 -1.41716319323 --2.21473312378 -1.41714251041 --2.19747430086 -1.41712501645 --2.18021601439 -1.41711077094 --2.16295796633 -1.41709965467 --2.14570027589 -1.41709175706 --2.12844258546 -1.41708704829 --2.11118519306 -1.41708552837 --2.09392762184 -1.4170872271 --2.07667028904 -1.41709214449 --2.05941271782 -1.41710025072 --2.0421552062 -1.4171115756 --2.02489727736 -1.41712611913 --2.00763931871 -1.41714385152 --1.99038088322 -1.41716474295 --1.97312223911 -1.41718882322 --1.95586299896 -1.41721612215 --1.93860343098 -1.41722944379 --1.91939553618 -1.41721412539 --1.90018600225 -1.41718709469 --1.88292628527 -1.41716319323 --1.86566725373 -1.41714251041 --1.84840846062 -1.41712501645 --1.83115020394 -1.41711074114 --1.81389209628 -1.41709962487 --1.79663440585 -1.41709172726 --1.77937668562 -1.41708701849 --1.76211929321 -1.41708552837 --1.7448617816 -1.4170872271 --1.7276044488 -1.41709214449 --1.71034684777 -1.41710025072 --1.69308933616 -1.4171115756 --1.67583146692 -1.41712611913 --1.65857347846 -1.41714382171 --1.64131501317 -1.41716471314 --1.62405639887 -1.41718879342 --1.60679712891 -1.41721609235 --1.58953756094 -1.41722947359 --1.57032969594 -1.41721415519 --1.55112016201 -1.41718709469 --1.53386044502 -1.41716322303 --1.51660141349 -1.41714254022 --1.49934259057 -1.41712501645 --1.4820843339 -1.41711074114 --1.46482622623 -1.41709962487 --1.4475685358 -1.41709178686 --1.43031084537 -1.41708707809 --1.41305348277 -1.41708552837 --1.39579597116 -1.4170872271 --1.37853860855 -1.41709214449 --1.36128100753 -1.41710025072 --1.34402346611 -1.4171115756 --1.32676559687 -1.41712611913 --1.30950766802 -1.41714385152 --1.29224920273 -1.41716474295 --1.27499055862 -1.41718882322 --1.25773131847 -1.41721612215 --1.2404717505 -1.41722944379 --1.22126382589 -1.41721412539 --1.20205429196 -1.41718709469 --1.18479457497 -1.41716319323 --1.16753554344 -1.41714251041 --1.15027678013 -1.41712501645 --1.13301852346 -1.41711074114 --1.11576041579 -1.41709959507 --1.09850272536 -1.41709169746 --1.08124497533 -1.41708701849 --1.06398758292 -1.41708552837 --1.04673010111 -1.4170872271 --1.02947276831 -1.41709214449 --1.01221519709 -1.41710025072 --0.99495767057 -1.4171115756 --0.977699771523 -1.41712608933 --0.960441827774 -1.41714382171 --0.943183362484 -1.41716474295 --0.92592471838 -1.41718882322 --0.90866547823 -1.41721612215 --0.891405895352 -1.41722944379 --0.872197955847 -1.41721412539 --0.852988421917 -1.41718712449 --0.835728749633 -1.41716322303 --0.818469718099 -1.41714251041 --0.801210910082 -1.41712501645 --0.78395268321 -1.41711074114 --0.766694545746 -1.41709962487 --0.749436840415 -1.41709172726 --0.732179149986 -1.41708701849 --0.714921757579 -1.41708552837 --0.697664216161 -1.4170872271 --0.680406868458 -1.41709214449 --0.66314932704 -1.41710025072 --0.645891815424 -1.4171115756 --0.628633886576 -1.41712611913 --0.611375898123 -1.41714385152 --0.594117462635 -1.41716474295 --0.576858863234 -1.41718882322 --0.559599623084 -1.41721612215 --0.542340040207 -1.41722944379 --0.523132115603 -1.41721412539 --0.503922589123 -1.41718712449 --0.486662894487 -1.41716322303 --0.469403855502 -1.41714251041 --0.452145054936 -1.41712501645 --0.434886805713 -1.41711077094 --0.41762868315 -1.41709965467 --0.400370985269 -1.41709172726 --0.383113287389 -1.41708701849 --0.365855894983 -1.41708552837 --0.348598390817 -1.4170872271 --0.331341058016 -1.41709214449 --0.314083471895 -1.41710025072 --0.296825945378 -1.4171115756 --0.279568046332 -1.41712608933 --0.262310087681 -1.41714379191 --0.245051633567 -1.41716468334 --0.227792993188 -1.41718879342 --0.210533745587 -1.41721609235 --0.193274181336 -1.41722944379 --0.174066275358 -1.43438190222 --0.15485496819 -1.4343547821 --0.137595254928 -1.43433079124 --0.120336204767 -1.43431004882 --0.103077402338 -1.43429243564 --0.0858191456646 -1.43427810073 --0.068561013788 -1.43426692486 --0.0513033112511 -1.43425899744 --0.0340456096455 -1.43425428867 --0.0167882079259 -1.43425279855 -0.000469316961245 -1.43425449729 -0.0177266595419 -1.43425941467 -0.0349842500873 -1.43426758051 -0.0522417826578 -1.43427893519 -0.0694996826351 -1.43429350853 -0.086757645011 -1.43431127071 -0.104016100988 -1.43433222175 -0.121274745092 -1.43435642123 -0.138534005731 -1.43438386917 -0.155793584883 -1.43439728022 -0.175001427531 -1.43438190222 -0.194210886955 -1.4343547523 -0.211470603943 -1.43433076143 -0.228729650378 -1.43431001901 -0.24598845467 -1.43429243564 -0.263246707618 -1.43427810073 -0.280504830182 -1.43426692486 -0.297762535513 -1.43425896764 -0.315020240843 -1.43425425887 -0.332277648151 -1.43425276875 -0.349535174668 -1.43425449729 -0.366792507469 -1.43425944447 -0.384050101042 -1.43426758051 -0.401307635009 -1.43427893519 -0.418565534055 -1.43429353833 -0.435823507607 -1.43431133032 -0.453081957996 -1.43433228135 -0.470340587199 -1.43435645103 -0.487599849701 -1.43438386917 -0.504859432578 -1.43439725041 -0.524067282677 -1.43438187242 -0.543276742101 -1.4343547821 -0.560536444187 -1.43433079124 -0.577795490623 -1.43431001901 -0.595054298639 -1.43429240584 -0.612312555313 -1.43427807093 -0.629570677876 -1.43426695466 -0.646828383207 -1.43425899744 -0.664086103439 -1.43425425887 -0.681343495846 -1.43425276875 -0.698601007462 -1.43425446749 -0.715858355165 -1.43425941467 -0.733115926385 -1.43426758051 -0.750373452902 -1.43427893519 -0.767631366849 -1.43429353833 -0.784889325499 -1.43431136012 -0.80214779079 -1.43433231115 -0.819406449795 -1.43435645103 -0.836665704846 -1.43438386917 -0.853925257921 -1.43439728022 -0.87313310802 -1.43438190222 -0.892342582345 -1.4343547523 -0.909602284432 -1.43433076143 -0.926861330867 -1.43431001901 -0.944120153785 -1.43429243564 -0.96137842536 -1.43427810073 -0.978636533022 -1.43426695466 -0.99589420855 -1.43425902724 -1.01315191388 -1.43425428867 -1.03040930629 -1.43425276875 -1.04766687751 -1.43425449729 -1.06492424012 -1.43425944447 -1.08218181133 -1.43426758051 -1.09943935275 -1.43427893519 -1.11669722199 -1.43429353833 -1.13395518064 -1.43431133032 -1.15121364593 -1.43433231115 -1.16847229004 -1.43435648084 -1.18573155999 -1.43438386917 -1.20299112797 -1.43439728022 -1.22219896317 -1.43438190222 -1.24140843749 -1.4343547523 -1.25866815448 -1.43433076143 -1.27592721582 -1.43431001901 -1.29318600893 -1.43429243564 -1.3104442358 -1.43427810073 -1.32770240307 -1.43426695466 -1.3449601233 -1.43425899744 -1.36221781373 -1.43425425887 -1.37947520613 -1.43425279855 -1.39673271775 -1.43425452709 -1.41399005056 -1.43425944447 -1.43124762178 -1.43426755071 -1.448505193 -1.43427890539 -1.46576312185 -1.43429356813 -1.48302105069 -1.43431138992 -1.50027951598 -1.43433231115 -1.51753816008 -1.43435648084 -1.53479740023 -1.43438392877 -1.55205696821 -1.43439731002 -1.57126480341 -1.43438190222 -1.59047427773 -1.4343547523 -1.60773399472 -1.43433076143 -1.62499305606 -1.43430998921 -1.64225187898 -1.43429240584 -1.65951010585 -1.43427810073 -1.67676821351 -1.43426695466 -1.69402593374 -1.43425902724 -1.71128362417 -1.43425428867 -1.72854101658 -1.43425276875 -1.74579855799 -1.43425449729 -1.7630559206 -1.43425944447 -1.78031352163 -1.43426758051 -1.79757103324 -1.43427893519 -1.81482893229 -1.43429353833 -1.83208692074 -1.43431133032 -1.84934535622 -1.43433231115 -1.86660400033 -1.43435648084 -1.88386327028 -1.43438386917 -1.90112280846 -1.43439728022 -1.92033067346 -1.43438190222 -1.93954014778 -1.4343547523 -1.95679986477 -1.43433076143 -1.97405892611 -1.43431001901 -1.99131768942 -1.43429243564 -2.00857591629 -1.43427810073 -2.02583408356 -1.43426692486 -2.04309183359 -1.43425896764 -2.06034952402 -1.43425428867 -2.07760685682 -1.43425279856 -2.09486442804 -1.43425449729 -2.11212182045 -1.43425944447 -2.12937939167 -1.43426758051 -2.14663690329 -1.43427893519 -2.16389477253 -1.43429350853 -2.18115276098 -1.43431130051 -2.19841122627 -1.43433231115 -2.21566987037 -1.43435651064 -2.23292911053 -1.43438389897 -2.2501886487 -1.43439728022 -2.2693964839 -1.43438190222 -2.28860598803 -1.4343547821 -2.30586570501 -1.43433079124 -2.32312470675 -1.43431001901 -2.34038352966 -1.43429243564 -2.35764181614 -1.43427810073 -2.3748999238 -1.43426695466 -2.39215761423 -1.43425899744 -2.40941530466 -1.43425428867 -2.42667269707 -1.43425279856 -2.44393026829 -1.43425449729 -2.46118766069 -1.43425944447 -2.47844523191 -1.43426758051 -2.49570274353 -1.43427896499 -2.51296067238 -1.43429359793 -2.53021866083 -1.43431136012 -2.54747706651 -1.43433231115 -2.56473565101 -1.43435648084 -2.58199495077 -1.43438386917 -2.59925454855 -1.43439725041 -2.61846238375 -1.43438187242 -2.63767182827 -1.4343547821 -2.65493154526 -1.43433079124 -2.6721906066 -1.43431001901 -2.68944942952 -1.43429243564 -2.70670765639 -1.43427810073 -2.72396570444 -1.43426692486 -2.74122345448 -1.43425896764 -2.75848120451 -1.43425425887 -2.77573859691 -1.43425276875 -2.79299610853 -1.43425449729 -2.81025344133 -1.43425944447 -2.82751101255 -1.43426758051 -2.84476852417 -1.43427896499 -2.86202645302 -1.43429353833 -2.87928444147 -1.43431127071 -2.89654290676 -1.43433225155 -2.91380155087 -1.43435648084 -2.93106085062 -1.43438386917 -2.94832038879 -1.43439722061 -2.967528224 -1.43438190222 -2.98673766851 -1.4343547821 -3.0039973855 -1.43433079124 -3.02125650644 -1.43431004882 -3.03851526975 -1.43429243564 -3.05577349663 -1.43427810073 -3.07303166389 -1.43426692486 -3.09028935432 -1.43425899744 -3.10754704475 -1.43425428867 -3.12480443716 -1.43425279855 --3.14112338622 -1.43425449729 --3.12386602163 -1.43425941467 --3.10660845041 -1.43426758051 --3.0893509388 -1.43427893519 --3.07209300995 -1.43429350853 --3.0548350215 -1.43431127071 --3.03757655621 -1.43433222175 --3.0203179121 -1.43435642123 --3.00305861235 -1.43438386917 --2.98579907417 -1.43439728022 --2.96659123897 -1.43438190222 --2.94738173485 -1.4343547523 --2.93012201786 -1.43433076143 --2.91286295652 -1.43431001901 --2.89560419321 -1.43429243564 --2.87834596634 -1.43427810073 --2.86108779907 -1.43426692486 --2.84383004904 -1.43425896764 --2.82657235861 -1.43425425887 --2.80931502581 -1.43425276875 --2.7920575738 -1.43425449729 --2.77480024099 -1.43425944447 --2.75754255056 -1.43426758051 --2.74028497934 -1.43427893519 --2.7230271101 -1.43429353833 --2.70576912165 -1.43431133032 --2.68851065636 -1.43433228135 --2.67125201225 -1.43435645103 --2.6539927721 -1.43438386917 --2.63673323393 -1.43439725041 --2.61752539873 -1.43438187242 --2.59831589461 -1.4343547821 --2.58105617762 -1.43433079124 --2.56379717588 -1.43431001901 --2.54653841257 -1.43429240584 --2.5292801261 -1.43427807093 --2.51202195883 -1.43426695466 --2.4947642684 -1.43425899744 --2.47750657797 -1.43425425887 --2.46024918556 -1.43425276875 --2.44299161434 -1.43425446749 --2.42573428154 -1.43425941467 --2.40847671032 -1.43426758051 --2.3912191391 -1.43427893519 --2.37396121025 -1.43429353833 --2.35670328141 -1.43431136012 --2.33944487572 -1.43433231115 --2.32218623161 -1.43435645103 --2.30492699146 -1.43438386917 --2.28766739368 -1.43439728022 --2.26845955849 -1.43438190222 --2.24925011397 -1.4343547523 --2.23199039698 -1.43433076143 --2.21473139524 -1.43431001901 --2.19747251272 -1.43429243564 --2.18021422624 -1.43427810073 --2.16295617819 -1.43426695466 --2.14569848776 -1.43425902724 --2.12844073772 -1.43425428867 --2.11118328571 -1.43425276875 --2.0939257741 -1.43425449729 --2.0766684413 -1.43425944447 --2.05941087008 -1.43426758051 --2.04215335846 -1.43427893519 --2.02489542961 -1.43429353833 --2.00763747096 -1.43431133032 --1.99037900567 -1.43433231115 --1.97312033177 -1.43435648084 --1.95586109162 -1.43438386917 --1.93860152364 -1.43439728022 --1.91939368844 -1.43438190222 --1.90018421412 -1.4343547523 --1.88292449713 -1.43433076143 --1.8656654656 -1.43431001901 --1.84840664268 -1.43429243564 --1.831148386 -1.43427810073 --1.81389027834 -1.43426695466 --1.79663258791 -1.43425899744 --1.77937483787 -1.43425425887 --1.76211741567 -1.43425279855 --1.74485990405 -1.43425452709 --1.72760257125 -1.43425944447 --1.71034500003 -1.43426755071 --1.69308748841 -1.43427890539 --1.67582958937 -1.43429356813 --1.65857160091 -1.43431138992 --1.64131313562 -1.43433231115 --1.62405449152 -1.43435648084 --1.60679522157 -1.43438392877 --1.58953565359 -1.43439731002 --1.57032781839 -1.43438190222 --1.55111837387 -1.4343547523 --1.53385865689 -1.43433076143 --1.51659959555 -1.43430998921 --1.49934080243 -1.43429240584 --1.48208254575 -1.43427810073 --1.46482440829 -1.43426695466 --1.44756671786 -1.43425902724 --1.43030902743 -1.43425428867 --1.41305163503 -1.43425276875 --1.39579412341 -1.43425449729 --1.37853676081 -1.43425944447 --1.36127912999 -1.43426758051 --1.34402158857 -1.43427893519 --1.32676371932 -1.43429353833 --1.30950576067 -1.43431133032 --1.29224729538 -1.43433231115 --1.27498865128 -1.43435648084 --1.25772938132 -1.43438386917 --1.24046981335 -1.43439728022 --1.22126197815 -1.43438190222 --1.20205250382 -1.4343547523 --1.18479278684 -1.43433076143 --1.16753375531 -1.43431001901 --1.15027496219 -1.43429243564 --1.13301670551 -1.43427810073 --1.11575859785 -1.43426692486 --1.09850087762 -1.43425896764 --1.08124312758 -1.43425428867 --1.06398573518 -1.43425279856 --1.04672822356 -1.43425449729 --1.02947089076 -1.43425944447 --1.01221328974 -1.43426758051 --0.994955763222 -1.43427893519 --0.977697879076 -1.43429350853 --0.960439920426 -1.43431130051 --0.943181470036 -1.43433231115 --0.925922811031 -1.43435651064 --0.90866355598 -1.43438389897 --0.891403988004 -1.43439728022 --0.872196123004 -1.43438190222 --0.852986648679 -1.4343547821 --0.835726946593 -1.43433079124 --0.818467900157 -1.43431001901 --0.801209107042 -1.43429243564 --0.78395088017 -1.43427810073 --0.766692727804 -1.43426695466 --0.749434992671 -1.43425899744 --0.732177302242 -1.43425428867 --0.714919909835 -1.43425279856 --0.697662368417 -1.43425449729 --0.680405005813 -1.43425944447 --0.663147434592 -1.43426758051 --0.645889922977 -1.43427896499 --0.628632009029 -1.43429359793 --0.611374020576 -1.43431136012 --0.594115570187 -1.43433231115 --0.576856970787 -1.43435648084 --0.559597715735 -1.43438386917 --0.542338117957 -1.43439725041 --0.523130267859 -1.43438187242 --0.503920815885 -1.4343547821 --0.486661106348 -1.43433079124 --0.469402052462 -1.43431001901 --0.452143244445 -1.43429243564 --0.434884987772 -1.43427810073 --0.417626865208 -1.43426692486 --0.400369159877 -1.43425896764 --0.383111454546 -1.43425425887 --0.365854054689 -1.43425276875 --0.348596535623 -1.43425449729 --0.33133918792 -1.43425944447 --0.314081594348 -1.43426758051 --0.296824067831 -1.43427896499 --0.279566168785 -1.43429353833 --0.262308202684 -1.43431127071 --0.245049733668 -1.43433225155 --0.227791089565 -1.43435648084 --0.210531838238 -1.43438386917 --0.193272262812 -1.43439722061 --0.174064420163 -1.45151856542 --0.154853206128 -1.4514913261 --0.13759348169 -1.45146724582 --0.120334425941 -1.45144644379 --0.103075614199 -1.45142877102 --0.0858173519373 -1.4514143467 --0.0685592163354 -1.45140314103 --0.0513015063479 -1.45139521361 --0.0340437968261 -1.45139047503 --0.0167863876559 -1.45138898492 -0.000471144216137 -1.45139065385 -0.0177284933161 -1.45139560103 -0.0349860922434 -1.45140385628 -0.0522436331958 -1.45141524076 -0.0695015396923 -1.4514298737 -0.086759513244 -1.45144772529 -0.104017974809 -1.45146876574 -0.121276626363 -1.45149305463 -0.138535901904 -1.45152056217 -0.155795481056 -1.45153400302 -0.175003249198 -1.45151859522 -0.194212645292 -1.4514913559 -0.211472373456 -1.45146727562 -0.228731423617 -1.45144644379 -0.245990235358 -1.45142877102 -0.263248503208 -1.4514143467 -0.280506633222 -1.45140314103 -0.297764338553 -1.45139521361 -0.315022051334 -1.45139047503 -0.332279466092 -1.45138895512 -0.349536992609 -1.45139068365 -0.366794332862 -1.45139563084 -0.384051941335 -1.45140382647 -0.401309490204 -1.45141524076 -0.41856738925 -1.4514298737 -0.435825355351 -1.45144772529 -0.453083820641 -1.45146879554 -0.470342472195 -1.45149305463 -0.487601742148 -1.45152053237 -0.504861325026 -1.45153397322 -0.524069100619 -1.45151856542 -0.543278500438 -1.4514913559 -0.560538217425 -1.45146727562 -0.577797263861 -1.45144644379 -0.595056086779 -1.45142877102 -0.612314358354 -1.4514143467 -0.629572495818 -1.45140317083 -0.646830201149 -1.45139521361 -0.66408790648 -1.45139047503 -0.681345313787 -1.45138898492 -0.698602840304 -1.45139068365 -0.715860188007 -1.45139563084 -0.733117789031 -1.45140382647 -0.75037534535 -1.45141524076 -0.767633229494 -1.4514298737 -0.784891188145 -1.4514477551 -0.802149668336 -1.45146882534 -0.81940831244 -1.45149308443 -0.836667582393 -1.45152053237 -0.85392716527 -1.45153397322 -0.873134940862 -1.45151859522 -0.892344340682 -1.4514913559 -0.90960405767 -1.45146727562 -0.926863104105 -1.45144644379 -0.944121912122 -1.45142877102 -0.961380198598 -1.4514143765 -0.978638350964 -1.45140320063 -0.995896026491 -1.45139524341 -1.01315373182 -1.45139050483 -1.03041115403 -1.45138898492 -1.04766872525 -1.45139068365 -1.06492605805 -1.45139563084 -1.08218362928 -1.45140382647 -1.0994412005 -1.45141524076 -1.11669909954 -1.4514298737 -1.13395708799 -1.4514477551 -1.15121552348 -1.45146885514 -1.16847416758 -1.45149308443 -1.18573346734 -1.45152053237 -1.20299300551 -1.45153400302 -1.22220078111 -1.45151859522 -1.24141019583 -1.4514913559 -1.25866991282 -1.45146727562 -1.27592897415 -1.45144644379 -1.29318779707 -1.45142877102 -1.31044605374 -1.4514143765 -1.32770419121 -1.45140320063 -1.34496191144 -1.45139521361 -1.36221963167 -1.45139047503 -1.37947702407 -1.45138901472 -1.39673453569 -1.45139071345 -1.4139918983 -1.45139563084 -1.43124946952 -1.45140379668 -1.44850701094 -1.45141521096 -1.46576493979 -1.4514299035 -1.48302289844 -1.4514477849 -1.50028136373 -1.45146882534 -1.51754000783 -1.45149311423 -1.53479927778 -1.45152062178 -1.55205887556 -1.45153403282 -1.57126665115 -1.45151859522 -1.59047606587 -1.4514913559 -1.60773578286 -1.45146727562 -1.6249948442 -1.45144641399 -1.64225366712 -1.45142874121 -1.65951189399 -1.4514143467 -1.67677003145 -1.45140317083 -1.69402775168 -1.45139524341 -1.71128544211 -1.45139047503 -1.72854283452 -1.45138895512 -1.74580040574 -1.45139068365 -1.76305776834 -1.45139563084 -1.78031533957 -1.45140382647 -1.79757288099 -1.45141524076 -1.81483080983 -1.4514298737 -1.83208879828 -1.45144772529 -1.84934723377 -1.45146879554 -1.86660587788 -1.45149305463 -1.88386514783 -1.45152053237 -1.9011247158 -1.45153400302 -1.9203325212 -1.45151859522 -1.93954190612 -1.4514913559 -1.95680162311 -1.45146727562 -1.97406068444 -1.45144644379 -1.99131947756 -1.45142877102 -2.00857776403 -1.4514143467 -2.0258359313 -1.45140314103 -2.04309362173 -1.4513951838 -2.06035131216 -1.45139050483 -2.07760870457 -1.45138901472 -2.09486627579 -1.45139068365 -2.11212366819 -1.45139563084 -2.12938123941 -1.45140382647 -2.14663875103 -1.45141527056 -2.16389667988 -1.4514299035 -2.18115466833 -1.45144772529 -2.19841307401 -1.45146879554 -2.21567171812 -1.45149308443 -2.23293101787 -1.45152056217 -2.25019055605 -1.45153400302 -2.26939833164 -1.45151859522 -2.28860777616 -1.4514913559 -2.30586749315 -1.45146727562 -2.32312649488 -1.45144644379 -2.3403852582 -1.45142877102 -2.35764354467 -1.4514143467 -2.37490171194 -1.45140317083 -2.39215940237 -1.45139524341 -2.4094170928 -1.45139053464 -2.42667454481 -1.45138901472 -2.44393211603 -1.45139068365 -2.46118944883 -1.45139563084 -2.47844702005 -1.45140382647 -2.49570459127 -1.45141527056 -2.51296252012 -1.45142993331 -2.53022044897 -1.4514477551 -2.54747885466 -1.45146879554 -2.56473749876 -1.45149305463 -2.58199685812 -1.45152053237 -2.59925651551 -1.45153397322 -2.61846423149 -1.45151856542 -2.6376735568 -1.4514913261 -2.65493327379 -1.45146724582 -2.67219239474 -1.45144644379 -2.68945121765 -1.45142877102 -2.70670944452 -1.4514143467 -2.72396755218 -1.45140314103 -2.74122530222 -1.45139521361 -2.75848305226 -1.45139050483 -2.77574038506 -1.45138898492 -2.79299789667 -1.45139068365 -2.81025528908 -1.45139563084 -2.82751286029 -1.45140382647 -2.84477037191 -1.45141527056 -2.86202830077 -1.4514299035 -2.87928628921 -1.45144772529 -2.89654481411 -1.45146879554 -2.91380345822 -1.45149308443 -2.93106269837 -1.45152056217 -2.94832229615 -1.45153397322 -2.96753007174 -1.45151856542 -2.98673945665 -1.4514913261 -3.00399917364 -1.45146724582 -3.02125823498 -1.45144644379 -3.0385170579 -1.45142877102 -3.05577534437 -1.4514143467 -3.07303351164 -1.45140314103 -3.09029120207 -1.45139521361 -3.1075488925 -1.45139047503 -3.12480628491 -1.45138898492 --3.14112153848 -1.45139065385 --3.12386417389 -1.45139560103 --3.10660660267 -1.45140385628 --3.08934909105 -1.45141524076 --3.07209116221 -1.4514298737 --3.05483317376 -1.45144772529 --3.03757464886 -1.45146876574 --3.02031600475 -1.45149305463 --3.0030567646 -1.45152056217 --2.98579716682 -1.45153400302 --2.96658939123 -1.45151859522 --2.94737994671 -1.4514913559 --2.93012022972 -1.45146727562 --2.91286122799 -1.45144644379 --2.89560240507 -1.45142877102 --2.87834411859 -1.4514143467 --2.86108601093 -1.45140314103 --2.8438283205 -1.45139521361 --2.82657057047 -1.45139047503 --2.80931317807 -1.45138895512 --2.79205572605 -1.45139068365 --2.77479839325 -1.45139563084 --2.75754070282 -1.45140382647 --2.7402831316 -1.45141524076 --2.72302526236 -1.4514298737 --2.70576727391 -1.45144772529 --2.68850880862 -1.45146879554 --2.67125016451 -1.45149305463 --2.65399092436 -1.45152053237 --2.63673138618 -1.45153397322 --2.61752361059 -1.45151856542 --2.59831416607 -1.4514913559 --2.58105438948 -1.45146727562 --2.56379538775 -1.45144644379 --2.54653662443 -1.45142877102 --2.52927833795 -1.4514143467 --2.51202017069 -1.45140317083 --2.49476248026 -1.45139521361 --2.47750478983 -1.45139047503 --2.46024733782 -1.45138898492 --2.4429897666 -1.45139068365 --2.42573243379 -1.45139563084 --2.40847486257 -1.45140382647 --2.39121729135 -1.45141524076 --2.3739593625 -1.4514298737 --2.35670143366 -1.4514477551 --2.33944302798 -1.45146882534 --2.32218438387 -1.45149308443 --2.30492508412 -1.45152053237 --2.28766548634 -1.45153397322 --2.26845771074 -1.45151859522 --2.24924832583 -1.4514913559 --2.23198860884 -1.45146727562 --2.2147295475 -1.45144644379 --2.19747072458 -1.45142877102 --2.1802124381 -1.4514143765 --2.16295433044 -1.45140320063 --2.14569664002 -1.45139524341 --2.12843888998 -1.45139050483 --2.11118149758 -1.45138898492 --2.09392398596 -1.45139068365 --2.07666659356 -1.45139563084 --2.05940902234 -1.45140382647 --2.04215151071 -1.45141524076 --2.02489358186 -1.4514298737 --2.00763562322 -1.4514477551 --1.99037715793 -1.45146885514 --1.97311845422 -1.45149308443 --1.95585918426 -1.45152053237 --1.93859964609 -1.45153400302 --1.9193918705 -1.45151859522 --1.90018245578 -1.4514913559 --1.88292273879 -1.45146727562 --1.86566367745 -1.45144644379 --1.84840485453 -1.45142877102 --1.83114662766 -1.4514143765 --1.8138884902 -1.45140320063 --1.79663076997 -1.45139521361 --1.77937304973 -1.45139047503 --1.76211562753 -1.45138901472 --1.74485808611 -1.45139071345 --1.72760072351 -1.45139563084 --1.71034315229 -1.45140379668 --1.69308564067 -1.45141521096 --1.67582771182 -1.4514299035 --1.65856972337 -1.4514477849 --1.64131125808 -1.45146882534 --1.62405261397 -1.45149311423 --1.60679337382 -1.45152062178 --1.58953377604 -1.45153403282 --1.57032597065 -1.45151859522 --1.55111661554 -1.4514913559 --1.53385689855 -1.45146727562 --1.51659783721 -1.45144641399 --1.49933904409 -1.45142874121 --1.48208075762 -1.4514143467 --1.46482262015 -1.45140317083 --1.44756489992 -1.45139524341 --1.43030717969 -1.45139047503 --1.41304978728 -1.45138895512 --1.39579227567 -1.45139068365 --1.37853494287 -1.45139563084 --1.36127731204 -1.45140382647 --1.34401974082 -1.45141524076 --1.32676187158 -1.4514298737 --1.30950388312 -1.45144772529 --1.29224541783 -1.45146879554 --1.27498677373 -1.45149305463 --1.25772747397 -1.45152053237 --1.2404679358 -1.45153400302 --1.22126019001 -1.45151859522 --1.20205077529 -1.4514913559 --1.1847910285 -1.45146727562 --1.16753196716 -1.45144644379 --1.15027317405 -1.45142877102 --1.13301491737 -1.4514143467 --1.11575677991 -1.45140314103 --1.09849905967 -1.4513951838 --1.08124133944 -1.45139050483 --1.06398391723 -1.45138901472 --1.04672637582 -1.45139068365 --1.02946904302 -1.45139563084 --1.01221144199 -1.45140382647 --0.994953915477 -1.45141527056 --0.977696016431 -1.4514299035 --0.960438042879 -1.45144772529 --0.94317959249 -1.45146879554 --0.925920948386 -1.45149308443 --0.908661663532 -1.45152056217 --0.891402080655 -1.45153400302 --0.872194305062 -1.45151859522 --0.852984905243 -1.4514913559 --0.835725173354 -1.45146727562 --0.818466112018 -1.45144644379 --0.801207318902 -1.45142877102 --0.78394907713 -1.4514143467 --0.766690939665 -1.45140317083 --0.749433204531 -1.45139524341 --0.732175499201 -1.45139053464 --0.714918091893 -1.45138901472 --0.697660565376 -1.45139068365 --0.680403202772 -1.45139563084 --0.663145586849 -1.45140382647 --0.645888060331 -1.45141527056 --0.628630161285 -1.45142993331 --0.611372187733 -1.4514477551 --0.594113722443 -1.45146879554 --0.57685509324 -1.45149305463 --0.559595808387 -1.45152053237 --0.542336210608 -1.45153397322 --0.523128449917 -1.45151856542 --0.503919057548 -1.4514913261 --0.486659333109 -1.45146724582 --0.469400271773 -1.45144644379 --0.452141463756 -1.45142877102 --0.434883199632 -1.4514143467 --0.417625062168 -1.45140314103 --0.400367349386 -1.45139521361 --0.383109636605 -1.45139050483 --0.365852236748 -1.45138898492 --0.348594710231 -1.45139068365 --0.331337355077 -1.45139563084 --0.314079754054 -1.45140382647 --0.296822212636 -1.45141527056 --0.27956430614 -1.4514299035 --0.262306340039 -1.45144772529 --0.245047871023 -1.45146879554 --0.227789212018 -1.45149308443 --0.210529945791 -1.45152056217 --0.19327037409 -1.45153397322 --0.174062602222 -1.46862792969 --0.154851470143 -1.46860054136 --0.137591738254 -1.46857637167 --0.120332673192 -1.46855551004 --0.103073855862 -1.46853777766 --0.0858155880124 -1.46852329374 --0.0685574458912 -1.46851208806 --0.0512997275218 -1.46850413084 --0.0340420091525 -1.46849933267 --0.0167845927645 -1.46849784255 -0.000472946558148 -1.46849954128 -0.0177303033415 -1.46850454807 -0.0349879092537 -1.46851280332 -0.0522454576567 -1.4685242176 -0.0695033753291 -1.46853891015 -0.0867613535374 -1.46855679154 -0.10401982069 -1.46857795119 -0.121278485283 -1.4686023593 -0.138537768275 -1.46862992644 -0.155797351152 -1.46864336729 -0.175005044788 -1.46862789989 -0.194214373827 -1.46860057116 -0.211474116892 -1.46857640147 -0.228733174503 -1.46855551004 -0.245991978794 -1.46853780746 -0.263250254095 -1.46852332354 -0.28050840646 -1.46851208806 -0.297766126692 -1.46850413084 -0.315023839474 -1.46849933267 -0.332281254232 -1.46849781275 -0.349538788199 -1.46849954128 -0.366796143353 -1.46850451827 -0.384053766728 -1.46851274371 -0.401311315596 -1.4685242176 -0.418569222093 -1.46853893995 -0.435827195645 -1.46855682134 -0.453085668385 -1.46857795119 -0.47034432739 -1.46860229969 -0.487603597343 -1.46862986684 -0.504863195122 -1.46864339709 -0.524070903659 -1.46862792969 -0.543280214071 -1.46860057116 -0.56053994596 -1.46857640147 -0.577799022198 -1.46855551004 -0.595057845116 -1.46853780746 -0.61231610179 -1.46852332354 -0.629574239254 -1.46851208806 -0.646831974387 -1.46850410104 -0.664089694619 -1.46849933266 -0.681347116828 -1.46849784255 -0.698604643345 -1.46849954128 -0.715861991048 -1.46850451827 -0.733119621873 -1.46851274371 -0.750377178192 -1.4685242176 -0.767635062337 -1.46853891015 -0.784893020988 -1.46855679154 -0.80215151608 -1.46857795119 -0.819410189986 -1.46860232949 -0.836669459939 -1.46862986684 -0.853929027915 -1.46864336729 -0.873136743903 -1.46862792969 -0.892346084118 -1.46860057116 -0.909605801105 -1.46857640147 -0.926864862442 -1.46855551004 -0.94412368536 -1.46853780746 -0.961381971836 -1.46852335334 -0.978640124202 -1.46851211787 -0.995897784827 -1.46850413084 -1.01315549016 -1.46849936247 -1.03041294217 -1.46849787235 -1.04767051339 -1.46849957108 -1.064927876 -1.46850451827 -1.08218547702 -1.46851274371 -1.09944301843 -1.4685242176 -1.11670091748 -1.46853891015 -1.13395890594 -1.46855685115 -1.15121737123 -1.4685780406 -1.16847604513 -1.4686023593 -1.18573531508 -1.46862989664 -1.20299488306 -1.46864339709 -1.22220262885 -1.46862792969 -1.24141195416 -1.46860054135 -1.25867167115 -1.46857637167 -1.27593073249 -1.46855551004 -1.29318955541 -1.46853780746 -1.31044784188 -1.46852335334 -1.32770594954 -1.46851211787 -1.34496363997 -1.46850410104 -1.36222139001 -1.46849933266 -1.37947881222 -1.46849784255 -1.39673632383 -1.46849954128 -1.41399368644 -1.46850448847 -1.43125128746 -1.46851268411 -1.44850882888 -1.4685241878 -1.46576675773 -1.46853893995 -1.48302474618 -1.46855682134 -1.50028321147 -1.46857795119 -1.51754185557 -1.4686023593 -1.53480115533 -1.46862992644 -1.55206075311 -1.46864339709 -1.57126843929 -1.46862792969 -1.59047779441 -1.46860057116 -1.6077375114 -1.46857640147 -1.62499657273 -1.46855551004 -1.64225539565 -1.46853777766 -1.65951362252 -1.46852329374 -1.67677178979 -1.46851208806 -1.69402953982 -1.46850416064 -1.71128726006 -1.46849936247 -1.72854465246 -1.46849781275 -1.74580219388 -1.46849954128 -1.76305955649 -1.46850451827 -1.78031715751 -1.46851274371 -1.79757472873 -1.4685242176 -1.81483265758 -1.46853891015 -1.83209064603 -1.46855682134 -1.84934911132 -1.46857798099 -1.86660775542 -1.46860232949 -1.88386699557 -1.46862989664 -1.90112659335 -1.46864339709 -1.92033433914 -1.46862792969 -1.93954363465 -1.46860057116 -1.95680335164 -1.46857640147 -1.97406241298 -1.46855551004 -1.9913212359 -1.46853780746 -2.00857952237 -1.46852332354 -2.02583765984 -1.46851205826 -2.04309535026 -1.46850407123 -2.0603531003 -1.46849933266 -2.07761055231 -1.46849784255 -2.09486806392 -1.46849954128 -2.11212539673 -1.46850451827 -2.12938302755 -1.46851274371 -2.14664059877 -1.46852424741 -2.16389852763 -1.46853893995 -2.18115651608 -1.46855682134 -2.19841492176 -1.46857798099 -2.21567356586 -1.46860229969 -2.23293286562 -1.46862986684 -2.2501924634 -1.46864339709 -2.26940017939 -1.46862792969 -2.2886095047 -1.46860057116 -2.30586922169 -1.46857640147 -2.32312822342 -1.46855551004 -2.34038704634 -1.46853780746 -2.35764533281 -1.46852332354 -2.37490350008 -1.46851208806 -2.39216125012 -1.46850413084 -2.40941894055 -1.46849936247 -2.42667633295 -1.46849784255 -2.44393390417 -1.46849954128 -2.46119129658 -1.46850451827 -2.4784488678 -1.46851274371 -2.49570637942 -1.4685242176 -2.51296430826 -1.46853891015 -2.53022229671 -1.46855679154 -2.547480762 -1.46857795119 -2.56473940611 -1.46860232949 -2.58199870586 -1.46862989664 -2.59925836325 -1.46864339709 -2.61846607924 -1.46862792969 -2.63767534494 -1.46860054136 -2.65493506193 -1.46857637167 -2.67219418287 -1.46855551004 -2.68945294619 -1.46853780746 -2.70671123266 -1.46852332354 -2.72396939993 -1.46851208806 -2.74122709036 -1.46850413084 -2.75848484039 -1.46849936247 -2.7757422328 -1.46849787235 -2.79299974441 -1.46849957108 -2.81025713682 -1.46850451827 -2.82751470804 -1.46851274371 -2.84477221966 -1.4685242176 -2.86203014851 -1.46853891015 -2.87928813696 -1.46855682134 -2.89654666185 -1.46857798099 -2.91380530596 -1.46860232949 -2.93106454611 -1.46862989664 -2.94832414389 -1.46864339709 -2.96753185987 -1.46862792969 -2.98674118519 -1.46860054136 -3.00400090218 -1.46857637167 -3.02125996351 -1.46855551004 -3.03851878643 -1.46853777766 -3.05577707291 -1.46852329374 -3.07303524018 -1.46851208806 -3.0902929306 -1.46850413084 -3.10755062104 -1.46849933267 -3.12480807305 -1.46849784255 --3.14111969073 -1.46849954128 --3.12386232614 -1.46850454807 --3.10660475492 -1.46851280332 --3.08934724331 -1.4685242176 --3.07208931446 -1.46853891015 --3.05483132601 -1.46855679154 --3.03757280111 -1.46857795119 --3.02031415701 -1.4686023593 --3.00305491686 -1.46862992644 --2.98579531908 -1.46864336729 --2.96658760309 -1.46862789989 --2.94737821817 -1.46860057116 --2.93011850118 -1.46857640147 --2.91285949946 -1.46855551004 --2.89560067653 -1.46853780746 --2.87834239006 -1.46852332354 --2.8610842824 -1.46851208806 --2.84382659197 -1.46850413084 --2.82656884193 -1.46849933267 --2.80931138992 -1.46849781275 --2.79205387831 -1.46849954128 --2.7747965455 -1.46850451827 --2.75753885507 -1.46851274371 --2.74028128385 -1.4685242176 --2.72302347422 -1.46853893995 --2.70576554537 -1.46855682134 --2.68850702047 -1.46857795119 --2.67124831676 -1.46860229969 --2.65398907661 -1.46862986684 --2.63672947883 -1.46864339709 --2.61752176285 -1.46862792969 --2.59831243753 -1.46860057116 --2.58105266094 -1.46857640147 --2.56379365921 -1.46855551004 --2.54653483629 -1.46853780746 --2.52927654982 -1.46852332354 --2.51201844216 -1.46851208806 --2.49476069212 -1.46850410104 --2.47750294209 -1.46849933266 --2.46024554968 -1.46849784255 --2.44298803806 -1.46849954128 --2.42573064565 -1.46850451827 --2.40847301483 -1.46851274371 --2.39121550322 -1.4685242176 --2.37395757436 -1.46853891015 --2.35669958591 -1.46855679154 --2.33944118023 -1.46857795119 --2.32218253613 -1.46860232949 --2.30492317677 -1.46862986684 --2.28766357899 -1.46864336729 --2.2684559226 -1.46862792969 --2.24924659729 -1.46860057116 --2.2319868803 -1.46857640147 --2.21472775936 -1.46855551004 --2.19746893644 -1.46853780746 --2.18021064997 -1.46852335334 --2.1629524827 -1.46851211787 --2.14569479227 -1.46850413084 --2.12843710184 -1.46849936247 --2.11117970943 -1.46849787235 --2.09392213821 -1.46849957108 --2.07666474581 -1.46850451827 --2.05940717459 -1.46851274371 --2.04214966297 -1.4685242176 --2.02489173412 -1.46853891015 --2.00763377547 -1.46855685115 --1.99037531018 -1.4685780406 --1.97311663627 -1.4686023593 --1.95585733652 -1.46862989664 --1.93859776854 -1.46864339709 --1.91939008236 -1.46862792969 --1.90018072724 -1.46860054135 --1.88292098045 -1.46857637167 --1.86566191911 -1.46855551004 --1.848403126 -1.46853780746 --1.83114486933 -1.46852335334 --1.81388670206 -1.46851211787 --1.79662898183 -1.46850410104 --1.7793712616 -1.46849933266 --1.76211383939 -1.46849784255 --1.74485629797 -1.46849954128 --1.72759893537 -1.46850448847 --1.71034133434 -1.46851268411 --1.69308379292 -1.4685241878 --1.67582586408 -1.46853893995 --1.65856787563 -1.46855682134 --1.64130941033 -1.46857795119 --1.62405076623 -1.4686023593 --1.60679149628 -1.46862992644 --1.5895318985 -1.46864339709 --1.57032418251 -1.46862792969 --1.551114887 -1.46860057116 --1.53385517001 -1.46857640147 --1.51659610867 -1.46855551004 --1.49933728576 -1.46853777766 --1.48207899928 -1.46852329374 --1.46482086181 -1.46851208806 --1.44756311178 -1.46850416064 --1.43030539155 -1.46849936247 --1.41304799914 -1.46849781275 --1.39579045772 -1.46849954128 --1.37853309512 -1.46850451827 --1.3612754941 -1.46851274371 --1.34401795268 -1.4685242176 --1.32676005363 -1.46853891015 --1.30950206518 -1.46855682134 --1.29224359989 -1.46857798099 --1.27498492599 -1.46860232949 --1.25772562623 -1.46862989664 --1.24046608806 -1.46864339709 --1.22125840187 -1.46862792969 --1.20204904676 -1.46860057116 --1.18478927016 -1.46857640147 --1.16753020882 -1.46855551004 --1.15027141571 -1.46853780746 --1.13301312924 -1.46852332354 --1.11575499177 -1.46851205826 --1.09849730134 -1.46850407123 --1.08123958111 -1.46849933266 --1.0639821291 -1.46849784255 --1.04672455787 -1.46849954128 --1.02946722508 -1.46850451827 --1.01220965386 -1.46851274371 --0.994952097534 -1.46852424741 --0.977694168687 -1.46853893995 --0.960436195135 -1.46855682134 --0.943177729845 -1.46857798099 --0.925919085741 -1.46860229969 --0.908659800887 -1.46862986684 --0.891400203109 -1.46864339709 --0.872192502022 -1.46862792969 --0.852983176708 -1.46860057116 --0.83572344482 -1.46857640147 --0.818464383483 -1.46855551004 --0.801205560565 -1.46853780746 --0.78394728899 -1.46852332354 --0.766689151525 -1.46851208806 --0.749431431293 -1.46850413084 --0.732173711061 -1.46849936247 --0.714916288853 -1.46849784255 --0.697658762336 -1.46849954128 --0.680401399731 -1.46850451827 --0.663143783808 -1.46851274371 --0.645886242389 -1.4685242176 --0.628628328442 -1.46853891015 --0.611370354891 -1.46855679154 --0.594111874699 -1.46857795119 --0.576853215694 -1.46860232949 --0.559593945742 -1.46862989664 --0.542334362865 -1.46864339709 --0.523126646877 -1.46862792969 --0.503917306662 -1.46860054136 --0.486657582223 -1.46857637167 --0.469398520887 -1.46855551004 --0.45213971287 -1.46853780746 --0.434881441295 -1.46852332354 --0.417623288929 -1.46851208806 --0.400365576148 -1.46850413084 --0.383107855916 -1.46849936247 --0.365850441158 -1.46849787235 --0.348592914641 -1.46849957108 --0.331335552037 -1.46850451827 --0.314077943563 -1.46851274371 --0.296820402145 -1.4685242176 --0.279562473297 -1.46853891015 --0.262304484844 -1.46855682134 --0.245046019554 -1.46857798099 --0.227787360549 -1.46860232949 --0.210528090596 -1.46862989664 --0.193268507719 -1.46864339709 --0.174060795456 --1.4000261724 --0.138748154044 --1.39998140931 --0.104230294004 --1.39994925261 --0.0697139166295 --1.3999299407 --0.0351985311136 --1.39992332459 --0.000683643389492 --1.39992946386 -0.0338312350214 --1.39994841814 -0.0683465991169 --1.39998009801 -0.102862929925 --1.40002447367 -0.137380741536 --1.40006664395 -0.173850100487 --1.4000261426 -0.210317693651 --1.3999813497 -0.244835559279 --1.39994928241 -0.279351934791 --1.3999299109 -0.313867323101 --1.39992332459 -0.348382197321 --1.39992949367 -0.382897078991 --1.39994844794 -0.417412444949 --1.39998009801 -0.451928786934 --1.40002447367 -0.486446589231 --1.40006661415 -0.522915944457 --1.4000262022 -0.559383556247 --1.39998137951 -0.593901410699 --1.39994931221 -0.628417789936 --1.3999299407 -0.662933170795 --1.39992332459 -0.697448059917 --1.39992949367 -0.731962949038 --1.39994844794 -0.766478314996 --1.39998009801 -0.800994604826 --1.40002444387 -0.835512444377 --1.40006661415 -0.871981799603 --1.40002611279 -0.908449411392 --1.39998137951 -0.942967250944 --1.39994928241 -0.977483645081 --1.3999299407 -1.01199901104 --1.39992332459 -1.04651388526 --1.39992952347 -1.08102875948 --1.39994841814 -1.11554414034 --1.39998009801 -1.15006047487 --1.40002447367 -1.18457829952 --1.40006661415 -1.22104763985 --1.4000261426 -1.25751525164 --1.39998137951 -1.29203310609 --1.39994928241 -1.32654950023 --1.3999299109 -1.36106488108 --1.39992332459 -1.39557978511 --1.39992952347 -1.43009462952 --1.39994847775 -1.46461001038 --1.39998009801 -1.49912634492 --1.40002447367 -1.53364413977 --1.40006664395 -1.57011350989 --1.4000261426 -1.60658109188 --1.39998137951 -1.64109894633 --1.39994925261 -1.67561534047 --1.3999299109 -1.71013075113 --1.39992329478 -1.74464559555 --1.39992949367 -1.77916046977 --1.39994841814 -1.81367582083 --1.39998009801 -1.84819215536 --1.40002447367 -1.88270998001 --1.40006661415 -1.91917937994 --1.4000261426 -1.95564693213 --1.3999813497 -1.99016481638 --1.39994928241 -2.02468121052 --1.3999299109 -2.05919659138 --1.39992332459 -2.09371137619 --1.39992952347 -2.12822639942 --1.39994841814 -2.16274178028 --1.39998009801 -2.19725805521 --1.40002444387 -2.23177582025 --1.40006661415 -2.26824522018 --1.40002611279 -2.30471283197 --1.3999813497 -2.33923071623 --1.39994928241 -2.37374705076 --1.3999298811 -2.40826249123 --1.39992332459 -2.44277733564 --1.39992949367 -2.47729218006 --1.39994844794 -2.51180756092 --1.39998009801 -2.54632389546 --1.40002447367 -2.5808416605 --1.40006661415 -2.61731106043 --1.4000261724 -2.65377867222 --1.39998137951 -2.68829649687 --1.39994928241 -2.72281289101 --1.3999298811 -2.75732827187 --1.39992332459 -2.79184317589 --1.39992949367 -2.8263579607 --1.39994841814 -2.86087334156 --1.39998009801 -2.8953897953 --1.40002444387 -2.92990756035 --1.40006664395 -2.96637690067 --1.4000261724 -3.00284451246 --1.39998140931 -3.03736233711 --1.39994925261 -3.07187873125 --1.3999299407 -3.10639411211 --1.39992332459 -3.14090898831 --1.39992946386 --3.10776150226 --1.39994841814 --3.0732460618 --1.39998009801 --3.03872966766 --1.40002447367 --3.00421190262 --1.40006664395 --2.96774256229 --1.4000261426 --2.93127495051 --1.3999813497 --2.89675712585 --1.39994928241 --2.86224073172 --1.3999299109 --2.82772535086 --1.39992332459 --2.79321050644 --1.39992949367 --2.75869554281 --1.39994844794 --2.72418028116 --1.39998009801 --2.68966388702 --1.40002447367 --2.65514606238 --1.40006661415 --2.61867672205 --1.4000262022 --2.58220905066 --1.39998137951 --2.54769122601 --1.39994931221 --2.51317483187 --1.3999299407 --2.47865945101 --1.39992332459 --2.44414460659 --1.39992949367 --2.40962970257 --1.39994844794 --2.37511432171 --1.39998009801 --2.34059804678 --1.40002444387 --2.30608022213 --1.40006661415 --2.2696108222 --1.40002611279 --2.23314321041 --1.39998137951 --2.19862538576 --1.39994928241 --2.16410905123 --1.3999299407 --2.12959367037 --1.39992332459 --2.09507870674 --1.39992952347 --2.06056392193 --1.39994841814 --2.02604854107 --1.39998009801 --1.99153217673 --1.40002447367 --1.95701438189 --1.40006661415 --1.92054501176 --1.4000261426 --1.88407739997 --1.39998137951 --1.84955954552 --1.39994928241 --1.81504315138 --1.3999299109 --1.78052777052 --1.39992332459 --1.7460128963 --1.39992952347 --1.71149802208 --1.39994847775 --1.67698264122 --1.39998009801 --1.64246630669 --1.40002447367 --1.60794851184 --1.40006664395 --1.57147914171 --1.4000261426 --1.53501155973 --1.39998137951 --1.50049367547 --1.39994925261 --1.46597734094 --1.3999299109 --1.43146193027 --1.39992329478 --1.39694705605 --1.39992949367 --1.36243215203 --1.39994841814 --1.32791683078 --1.39998009801 --1.29340046644 --1.40002447367 --1.25888267159 --1.40006661415 --1.22241333127 --1.4000261426 --1.18594568968 --1.3999813497 --1.15142786503 --1.39994928241 --1.11691144109 --1.3999299109 --1.08239609003 --1.39992332459 --1.04788121581 --1.39992952347 --1.01336631179 --1.39994841814 --0.97885094583 --1.39998009801 --0.944334611297 --1.40002444387 --0.909816861153 --1.40006661415 --0.873347446322 --1.40002611279 --0.836879864335 --1.3999813497 --0.80236196518 --1.39994928241 --0.767845585942 --1.3999298811 --0.733330234885 --1.39992332459 --0.698815345764 --1.39992949367 --0.664300471544 --1.39994844794 --0.629785120487 --1.39998009801 --0.595268756151 --1.40002447367 --0.560750961304 --1.40006661415 --0.524281591177 --1.4000261724 --0.487814001739 --1.39998137951 --0.453296139836 --1.39994928241 --0.4187797755 --1.3999298811 --0.38426437974 --1.39992332459 --0.34974950552 --1.39992949367 --0.315234608948 --1.39994841814 --0.280719250441 --1.39998009801 --0.246202912181 --1.40002444387 --0.211685117334 --1.40006664395 --0.175215750932 --1.31437250972 --0.138733718545 --1.31432878971 --0.104215977714 --1.31429737806 --0.069699715823 --1.31427845359 --0.0351844420657 --1.31427201629 --0.000669670756908 --1.31427806616 -0.03384509217 --1.3142965436 -0.0683603370562 --1.31432756782 -0.102876564488 --1.31437090039 -0.137394249439 --1.3144120872 -0.173864074051 --1.31437253952 -0.210332129151 --1.31432881951 -0.244849864394 --1.31429737806 -0.279366128147 --1.31427848339 -0.313881404698 --1.31427201629 -0.348396189511 --1.31427803635 -0.382910944521 --1.3142965734 -0.41742618382 --1.31432753802 -0.451942414045 --1.31437093019 -0.486460104585 --1.314412117 -0.522929921746 --1.31437253952 -0.559397980571 --1.31432878971 -0.593915700913 --1.31429737806 -0.628431975842 --1.31427848339 -0.662947252393 --1.31427201629 -0.697462037206 --1.31427803635 -0.731976792216 --1.3142965734 -0.766492053866 --1.31432753802 -0.801008284092 --1.31437096 -0.835525929928 --1.314412117 -0.871995776892 --1.31437253952 -0.908463835716 --1.31432875991 -0.94298158586 --1.31429737806 -0.977497845888 --1.31427848339 -1.01201310754 --1.31427201629 -1.04652792215 --1.31427803635 -1.08104261756 --1.3142965734 -1.11555790902 --1.31432753802 -1.15007412434 --1.31437096 -1.18459182978 --1.3144120872 -1.22106161714 --1.31437253952 -1.25752970576 --1.31432875991 -1.2920474112 --1.31429740787 -1.32656365633 --1.31427848339 -1.36107894778 --1.31427201629 -1.3955937326 --1.31427806616 -1.43010848761 --1.3142965436 -1.46462374925 --1.31432753802 -1.49913993478 --1.31437093019 -1.53365764022 --1.3144120872 -1.57012748718 --1.31437253952 -1.60659551621 --1.31432875991 -1.64111328125 --1.31429737806 -1.67562952637 --1.31427845359 -1.71014481783 --1.31427201629 -1.74465960264 --1.31427803635 -1.77917438745 --1.3142965734 -1.8136895895 --1.31432753802 -1.84820583463 --1.31437093019 -1.88272351027 --1.314412117 -1.91919329762 --1.31437250972 -1.95566138625 --1.31432878971 -1.99017912149 --1.31429737806 -2.02469539642 --1.3142785132 -2.05921065807 --1.31427201629 -2.09372544289 --1.31427803635 -2.12824016809 --1.3142965734 -2.16275537014 --1.31432756782 -2.19727158547 --1.31437096 -2.23178935051 --1.314412117 -2.26825916767 --1.31437253952 -2.3047272563 --1.31432878971 -2.33924496174 --1.31429737806 -2.37376123667 --1.31427848339 -2.40827643871 --1.31427201629 -2.44279128313 --1.31427806616 -2.47730606794 --1.3142965734 -2.51182132959 --1.31432756782 -2.54633760453 --1.31437096 -2.58085513115 --1.3144120872 -2.61732500792 --1.31437253952 -2.65379309654 --1.31432875991 -2.68831086159 --1.31429737806 -2.72282707691 --1.31427848339 -2.75734239817 --1.31427201629 -2.79185712338 --1.31427803635 -2.82637190819 --1.3142965734 -2.86088716984 --1.31432756782 -2.89540338516 --1.31437096 -2.9299210906 --1.314412117 -2.96639090776 --1.31437250972 -3.00285893679 --1.31432878971 -3.03737670183 --1.31429737806 -3.07189297676 --1.31427845359 -3.10640823841 --1.31427201629 -3.1409229358 --1.31427806616 --3.10774755478 --1.3142965436 --3.07323229313 --1.31432756782 --3.03871607781 --1.31437090039 --3.00419837236 --1.3144120872 --2.96772855521 --1.31437253952 --2.93126052618 --1.31432881951 --2.89674282074 --1.31429737806 --2.86222648621 --1.31427848339 --2.82771122456 --1.31427201629 --2.79319649935 --1.31427803635 --2.75868165493 --1.3142965734 --2.72416651249 --1.31432753802 --2.68965029717 --1.31437093019 --2.65513253212 --1.314412117 --2.61866271496 --1.31437253952 --2.58219462633 --1.31432878971 --2.5476769805 --1.31429737806 --2.51316070557 --1.31427848339 --2.47864544392 --1.31427201629 --2.4441305995 --1.31427803635 --2.40961587429 --1.3142965734 --2.37510061264 --1.31432753802 --2.3405842781 --1.31437096 --2.30606675148 --1.314412117 --2.26959687471 --1.31437253952 --2.23312884569 --1.31432875991 --2.19861108065 --1.31429737806 --2.16409480572 --1.31427848339 --2.12957948446 --1.31427201629 --2.09506475926 --1.31427803635 --2.06054997444 --1.3142965734 --2.02603471279 --1.31432753802 --1.99151852727 --1.31437096 --1.95700085163 --1.3144120872 --1.92053100467 --1.31437253952 --1.88406300545 --1.31432875991 --1.8495452106 --1.31429740787 --1.81502896547 --1.31427848339 --1.78051367402 --1.31427201629 --1.74599891901 --1.31427806616 --1.7114841342 --1.3142965436 --1.67696890235 --1.31432753802 --1.64245268702 --1.31437093019 --1.60793498159 --1.3144120872 --1.57146516442 --1.31437253952 --1.5349971056 --1.31432875991 --1.50047940016 --1.31429737806 --1.46596309542 --1.31427845359 --1.43144786358 --1.31427201629 --1.39693310857 --1.31427803635 --1.36241832375 --1.3142965734 --1.32790309191 --1.31432753802 --1.29338681698 --1.31437093019 --1.25886917114 --1.314412117 --1.22239932418 --1.31437250972 --1.18593132496 --1.31432878971 --1.15141353011 --1.31429737806 --1.11689728499 --1.3142785132 --1.08238199353 --1.31427201629 --1.04786723852 --1.31427803635 --1.01335245371 --1.3142965734 --0.978837221861 --1.31432756782 --0.944320991635 --1.31437096 --0.909803286195 --1.314412117 --0.873333498835 --1.31437253952 --0.83686542511 --1.31432878971 --0.802347674966 --1.31429737806 --0.767831400037 --1.31427848339 --0.733316138387 --1.31427201629 --0.698801383376 --1.31427806616 --0.664286598563 --1.3142965734 --0.629771351814 --1.31432756782 --0.59525513649 --1.31437096 --0.560737460851 --1.3144120872 --0.524267613888 --1.31437253952 --0.487799569965 --1.31432875991 --0.45328181982 --1.31429737806 --0.418765567243 --1.31427848339 --0.384250275791 --1.31427201629 --0.34973552078 --1.31427803635 --0.315220758319 --1.3142965734 --0.280705519021 --1.31432756782 --0.24618928507 --1.31437096 --0.211671598256 --1.314412117 --0.175201781094 --1.22873342037 --0.138718284667 --1.22869077325 --0.104200657457 --1.22866022587 --0.0696845166385 --1.22864174843 --0.0351693700068 --1.22863554955 --0.000654720468448 --1.2286414206 -0.0338599225506 --1.22865945101 -0.0683750445023 --1.22868961096 -0.102891148999 --1.22873187065 -0.137408722192 --1.22877189517 -0.173879027367 --1.22873336077 -0.210347566754 --1.22869074345 -0.244865193963 --1.22866025567 -0.279381327331 --1.22864177823 -0.313896477223 --1.22863551975 -0.348411120474 --1.22864145041 -0.382925763726 --1.22865945101 -0.417440898717 --1.22868961096 -0.451956994831 --1.22873187065 -0.486474566161 --1.22877189517 -0.522944867611 --1.22873339057 -0.559413433075 --1.22869077325 -0.59393106401 --1.22866025567 -0.628447160125 --1.22864177823 -0.662962347269 --1.22863551975 -0.69747698307 --1.22864145041 -0.731991618872 --1.22865945101 -0.766506776214 --1.22868961096 -0.801022857428 --1.22873187065 -0.835540398956 --1.22877189517 -0.872010737657 --1.22873339057 -0.90847928822 --1.22869077325 -0.942996904254 --1.22866025567 -0.977513030171 --1.22864177823 -1.01202818751 --1.22863554955 -1.04654282332 --1.22864145041 -1.08105748892 --1.2286594212 -1.11557260156 --1.22868961096 -1.15008869767 --1.22873187065 -1.1846062541 --1.22877189517 -1.2210766077 --1.22873339057 -1.25754511356 --1.22869077325 -1.2920627892 --1.22866025567 -1.32657888532 --1.22864177823 -1.36109402776 --1.22863554955 -1.39560869336 --1.2286414206 -1.43012329936 --1.2286594212 -1.464638412 --1.22868961096 -1.49915456772 --1.22873187065 -1.53367212415 --1.22877192497 -1.57014241815 --1.22873336077 -1.60661098361 --1.22869074345 -1.64112856984 --1.22866025567 -1.67564475536 --1.22864177823 -1.71015989781 --1.22863551975 -1.74467453361 --1.22864145041 -1.77918916941 --1.22865945101 -1.81370431185 --1.22868961096 -1.84822040796 --1.22873187065 -1.88273796439 --1.22877189517 -1.91920825839 --1.22873339057 -1.95567679405 --1.22869074345 -1.99019446969 --1.22866025567 -2.02471059561 --1.22864177823 -2.05922567845 --1.22863554955 -2.09374034405 --1.22864145041 -2.12825500965 --1.22865945101 -2.16277015209 --1.22868961096 -2.19728624821 --1.22873190045 -2.23180383444 --1.22877192497 -2.26827412844 --1.22873339057 -2.3047426343 --1.22869080305 -2.33926022053 --1.22866025567 -2.37377643585 --1.22864177823 -2.4082916379 --1.22863551975 -2.4428063035 --1.2286413908 -2.4773209095 --1.22865945101 -2.51183605194 --1.22868961096 -2.54635208845 --1.22873187065 -2.58086961508 --1.22877192497 -2.61733996868 --1.22873339057 -2.65380859375 --1.22869080305 -2.68832612037 --1.22866025567 -2.7228423357 --1.22864177823 -2.75735741854 --1.22863551975 -2.79187208414 --1.22864145041 -2.82638669014 --1.22865945101 -2.86090183258 --1.22868961096 -2.89541792869 --1.22873187065 -2.92993551492 --1.22877195478 -2.96640580893 --1.22873342037 -3.00287437439 --1.22869077325 -3.03739202022 --1.22866022587 -3.07190811634 --1.22864174843 -3.10642325878 --1.22863554955 -3.14093789657 --1.2286414206 --3.10773277283 --1.22865945101 --3.07321763039 --1.22868961096 --3.03870153427 --1.22873187065 --3.00418388843 --1.22877189517 --2.96771365404 --1.22873336077 --2.93124508858 --1.22869074345 --2.89672744274 --1.22866025567 --2.86221134663 --1.22864177823 --2.82769620419 --1.22863551975 --2.79318153858 --1.22864145041 --2.75866687298 --1.22865945101 --2.72415179014 --1.22868961096 --2.68963563442 --1.22873187065 --2.65511804819 --1.22877189517 --2.61864775419 --1.22873339057 --2.58217930794 --1.22869077325 --2.5476616621 --1.22866025567 --2.51314550638 --1.22864177823 --2.47863030434 --1.22863551975 --2.44411563873 --1.22864145041 --2.40960103273 --1.22865945101 --2.37508583069 --1.22868961096 --2.34056979418 --1.22873187065 --2.30605226755 --1.22877189517 --2.26958191395 --1.22873339057 --2.23311328888 --1.22869077325 --2.19859570265 --1.22866025567 --2.16407960654 --1.22864177823 --2.12956446409 --1.22863554955 --2.09504985809 --1.22864145041 --2.06053519249 --1.2286594212 --2.02602005005 --1.22868961096 --1.99150395393 --1.22873187065 --1.95698639751 --1.22877189517 --1.92051610351 --1.22873339057 --1.88404750824 --1.22869077325 --1.84952992201 --1.22866025567 --1.81501373649 --1.22864177823 --1.78049862385 --1.22863554955 --1.74598395825 --1.2286414206 --1.71146935224 --1.2286594212 --1.6769542098 --1.22868961096 --1.64243811369 --1.22873187065 --1.60792052746 --1.22877192497 --1.57145020365 --1.22873336077 --1.5349816978 --1.22869074345 --1.50046405196 --1.22866025567 --1.46594795585 --1.22864177823 --1.4314327538 --1.22863551975 --1.396918118 --1.22864145041 --1.3624034524 --1.22865945101 --1.32788833976 --1.22868961096 --1.29337224364 --1.22873187065 --1.25885465741 --1.22877189517 --1.22238436341 --1.22873339057 --1.18591582775 --1.22869074345 --1.15139818191 --1.22866025567 --1.116882056 --1.22864177823 --1.08236694336 --1.22863554955 --1.04785227776 --1.22864145041 --1.01333767176 --1.22865945101 --0.978822484612 --1.22868961096 --0.944306388498 --1.22873190045 --0.909788832068 --1.22877192497 --0.873318523169 --1.22873339057 --0.836849987507 --1.22869080305 --0.802332341671 --1.22866025567 --0.767816215754 --1.22864177823 --0.733301073313 --1.22863551975 --0.69878642261 --1.2286413908 --0.664271771907 --1.22865945101 --0.629756644368 --1.22868961096 --0.595240548253 --1.22873187065 --0.560723006725 --1.22877192497 --0.524252697825 --1.22873339057 --0.487784132361 --1.22869080305 --0.453266508877 --1.22866025567 --0.41875038296 --1.22864177823 --0.384235218167 --1.22863551975 --0.349720567465 --1.22864145041 --0.315205924213 --1.22865945101 --0.280690796673 --1.22868961096 --0.246174700558 --1.22873187065 --0.211657125503 --1.22877195478 --0.175186820328 --1.14048522711 --0.138700790703 --1.1404440403 --0.104183305055 --1.14041447639 --0.069667304866 --1.1403966248 --0.0351522923447 --1.14039066434 --0.00063778180629 --1.14039632678 -0.0338767222129 --1.14041376114 -0.0683917067945 --1.14044293761 -0.102907672524 --1.1404838264 -0.137425098568 --1.14052256942 -0.173895969987 --1.14048525691 -0.210365064442 --1.14044401049 -0.244882550091 --1.1404145062 -0.279398553074 --1.14039665461 -0.313913568855 --1.14039063454 -0.348428077996 --1.14039632678 -0.382942587137 --1.14041373134 -0.417457550764 --1.14044296741 -0.451973520219 --1.1404838264 -0.486490957439 --1.14052253962 -0.522961810231 --1.14048522711 -0.559430927038 --1.14044401049 -0.59394839406 --1.14041447639 -0.628464400768 --1.14039665461 -0.662979394197 --1.14039060474 -0.697493925691 --1.14039629698 -0.732008397579 --1.14041373134 -0.76652340591 --1.14044296741 -0.801039367914 --1.1404838264 -0.835556790233 --1.14052256942 -0.872027665377 --1.14048525691 -0.908496782183 --1.14044401049 -0.943014234305 --1.14041447639 -0.977530241012 --1.14039665461 -1.01204526425 --1.14039066434 -1.04655975103 --1.14039629698 -1.08107429743 --1.14041373134 -1.11558923125 --1.14044290781 -1.15010523796 --1.1404838562 -1.18462264538 --1.14052256942 -1.22109353543 --1.14048522711 -1.25756263733 --1.14044401049 -1.29208010435 --1.1404145062 -1.32659608126 --1.14039665461 -1.36111107469 --1.14039060474 -1.39562559128 --1.14039626718 -1.43014013767 --1.14041373134 -1.4646551013 --1.14044293761 -1.4991710484 --1.14048379659 -1.53368851542 --1.14052256942 -1.57015937567 --1.14048519731 -1.60662847757 --1.1404440403 -1.6411459446 --1.14041447639 -1.6756619513 --1.14039662481 -1.71017697453 --1.14039066434 -1.74469146132 --1.14039626718 -1.77920597792 --1.14041373134 -1.81372094154 --1.14044293761 -1.84823694825 --1.1404838562 -1.88275435567 --1.14052256942 -1.91922521591 --1.14048525691 -1.95569431782 --1.14044401049 -1.99021181464 --1.14041447639 -2.02472782135 --1.14039662481 -2.05924284458 --1.14039063454 -2.09375727177 --1.14039632678 -2.12827181816 --1.14041376114 -2.16278678179 --1.14044293761 -2.1973028183 --1.1404838264 -2.23182016611 --1.14052253962 -2.26829105616 --1.14048525691 -2.30476015806 --1.14044401049 -2.33927762508 --1.14041447639 -2.37379366159 --1.14039665461 -2.40830868483 --1.14039063454 -2.44282317162 --1.14039626718 -2.47733765841 --1.14041373134 -2.51185268164 --1.14044296741 -2.54636859894 --1.1404838264 -2.58088612556 --1.14052256942 -2.61735695601 --1.14048525691 -2.65382599831 --1.14044401049 -2.68834352493 --1.1404145062 -2.72285950184 --1.14039662481 -2.75737446547 --1.14039060474 -2.79188907146 --1.14039629698 -2.82640355825 --1.14041373134 -2.86091852188 --1.14044296741 -2.89543443918 --1.1404838562 -2.9299519062 --1.14052259922 -2.96642279625 --1.14048522711 -3.00289189816 --1.1404440403 -3.03740936517 --1.14041447639 -3.07192540169 --1.1403966248 -3.10644042492 --1.14039066434 -3.14095488389 --1.14039632678 --3.10771590471 --1.14041376114 --3.07320094109 --1.14044293761 --3.03868502378 --1.1404838264 --3.00416755676 --1.14052256942 --2.96769666672 --1.14048525691 --2.93122756481 --1.14044401049 --2.89671009779 --1.1404145062 --2.86219406128 --1.14039665461 --2.82767903805 --1.14039063454 --2.79316461086 --1.14039632678 --2.75865006447 --1.14041373134 --2.72413516045 --1.14044296741 --2.68961912394 --1.1404838264 --2.65510171652 --1.14052253962 --2.61863082647 --1.14048522711 --2.58216172457 --1.14044401049 --2.54764425755 --1.14041447639 --2.51312822104 --1.14039665461 --2.47861325741 --1.14039060474 --2.44409877062 --1.14039629698 --2.40958428383 --1.14041373134 --2.3750692606 --1.14044296741 --2.34055328369 --1.1404838264 --2.30603587627 --1.14052256942 --2.26956498623 --1.14048525691 --2.23309588432 --1.14044401049 --2.1985784173 --1.14041447639 --2.1640624404 --1.14039665461 --2.12954741716 --1.14039066434 --2.09503293037 --1.14039629698 --2.06051832437 --1.14041373134 --2.02600336075 --1.14044290781 --1.99148747325 --1.1404838562 --1.95696997642 --1.14052256942 --1.92049914598 --1.14048522711 --1.88403004408 --1.14044401049 --1.84951254725 --1.1404145062 --1.81499657035 --1.14039665461 --1.78048154712 --1.14039060474 --1.74596703052 --1.14039626718 --1.71145251393 --1.14041373134 --1.67693752051 --1.14044293761 --1.6424215734 --1.14048379659 --1.60790416598 --1.14052256942 --1.57143330574 --1.14048519731 --1.53496417403 --1.1404440403 --1.50044670701 --1.14041447639 --1.4659307003 --1.14039662481 --1.43141567707 --1.14039066434 --1.39690119028 --1.14039626718 --1.36238670349 --1.14041373134 --1.32787171006 --1.14044293761 --1.29335573315 --1.1404838562 --1.25883826613 --1.14052256942 --1.22236743569 --1.14048525691 --1.18589836359 --1.14044401049 --1.15138086677 --1.14041447639 --1.11686483025 --1.14039662481 --1.08234983683 --1.14039063454 --1.04783535004 --1.14039632678 --1.01332080364 --1.14041376114 --0.978805854916 --1.14044293761 --0.944289878011 --1.1404838264 --0.909772440791 --1.14052253962 --0.873301550746 --1.14048525691 --0.836832493544 --1.14044401049 --0.80231499672 --1.14041447639 --0.767798990011 --1.14039665461 --0.733283981681 --1.14039063454 --0.698769494891 --1.14039626718 --0.664254978299 --1.14041373134 --0.629739969969 --1.14044296741 --0.595224037766 --1.1404838264 --0.560706600547 --1.14052256942 --0.524235725403 --1.14048525691 --0.487766630947 --1.14044401049 --0.453249149025 --1.1404145062 --0.418733157218 --1.14039662481 --0.384218133986 --1.14039060474 --0.349703624845 --1.14039629698 --0.315189130604 --1.14041373134 --0.280674137175 --1.14044296741 --0.246158178896 --1.1404838562 --0.211640741676 --1.14052259922 --0.175169881433 --1.05216157436 --0.138681482524 --1.05212190748 --0.104164149612 --1.05209347606 --0.0696482984349 --1.05207639933 --0.0351334428414 --1.05207055807 --0.000619086902585 --1.0520760715 -0.0338952620514 --1.05209288001 -0.0684100948274 --1.052120924 -0.102925909683 --1.05216020346 -0.137443196028 --1.05219742656 -0.173914667219 --1.05216154456 -0.210384372622 --1.05212190748 -0.244901698083 --1.05209353566 -0.279417544603 --1.05207639933 -0.313932403922 --1.05207055807 -0.348446771502 --1.0520760417 -0.382961109281 --1.05209288001 -0.417475953698 --1.052120924 -0.45199175924 --1.05216020346 -0.486509039998 --1.05219742656 -0.52298052609 --1.05216157437 -0.559450224042 --1.05212190748 -0.593967527151 --1.05209350586 -0.62848341465 --1.05207639933 -0.662998244166 --1.05207055807 -0.697512596846 --1.0520760715 -0.732026949525 --1.05209288001 -0.766541793942 --1.052120924 -0.801057636738 --1.05216020346 -0.835574895144 --1.05219742656 -0.872046381235 --1.05216157437 -0.908516064286 --1.05212190748 -0.943033397198 --1.05209353566 -0.977549239993 --1.05207639933 -1.01206412912 --1.05207058787 -1.04657846689 --1.0520760417 -1.08109283447 --1.05209288001 -1.11560764909 --1.05212089419 -1.15012347698 --1.05216020346 -1.18464076519 --1.05219742656 -1.22111225128 --1.05216154456 -1.25758194923 --1.05212190748 -1.29209923744 --1.05209350586 -1.32661509514 --1.05207639933 -1.36112996936 --1.05207058787 -1.39564433694 --1.0520760119 -1.43015867472 --1.05209288001 -1.46467351913 --1.05212089419 -1.49918931723 --1.05216020346 -1.53370660544 --1.05219745636 -1.57017806172 --1.05216151476 -1.60664775967 --1.05212190748 -1.64116510748 --1.05209356547 -1.67568099499 --1.05207639933 -1.71019580961 --1.05207055807 -1.74471014738 --1.0520760417 -1.77922451496 --1.05209288001 -1.81373932958 --1.052120924 -1.84825515747 --1.05216020346 -1.88277244568 --1.05219742656 -1.91924393177 --1.05216160417 -1.95571362972 --1.05212190748 -1.99023094773 --1.05209353566 -2.02474683523 --1.05207639933 -2.05926162005 --1.05207055807 -2.09377598762 --1.0520760417 -2.12829041481 --1.05209288001 -2.16280519962 --1.05212089419 -2.19732105732 --1.05216020346 -2.23183828592 --1.05219742656 -2.26830977201 --1.05216157437 -2.30477946997 --1.05212190748 -2.33929681778 --1.05209350586 -2.37381261587 --1.05207639933 -2.40832751989 --1.05207055807 -2.44284188747 --1.0520760417 -2.47735625506 --1.05209288001 -2.51187109947 --1.05212089419 -2.54638689757 --1.05216020346 -2.58090412617 --1.05219742656 -2.61737561226 --1.05216154456 -2.65384531021 --1.05212190748 -2.68836265802 --1.05209353566 -2.72287851572 --1.05207639933 -2.75739336014 --1.05207058787 -2.79190766811 --1.0520760417 -2.8264220953 --1.05209288001 -2.86093693972 --1.05212089419 -2.8954526782 --1.05216020346 -2.92996996641 --1.05219742656 -2.96644151211 --1.05216157436 -3.00291115046 --1.05212190748 -3.03742849827 --1.05209347606 -3.07194429636 --1.05207639933 -3.10645920038 --1.05207055807 -3.14097354014 --1.0520760715 --3.10769736767 --1.05209288001 --3.07318252325 --1.052120924 --3.03866678476 --1.05216020346 --3.00414943695 --1.05219742656 --2.96767795086 --1.05216154456 --2.93120825291 --1.05212190748 --2.8966909647 --1.05209353566 --2.862175107 --1.05207639933 --2.82766026258 --1.05207055807 --2.793145895 --1.0520760417 --2.75863152742 --1.05209288001 --2.72411674261 --1.052120924 --2.68960088491 --1.05216020346 --2.65508365631 --1.05219742656 --2.61861211061 --1.05216157437 --2.58214241266 --1.05212190748 --2.54762512446 --1.05209350586 --2.51310926676 --1.05207639933 --2.47859442234 --1.05207055807 --2.44408005476 --1.0520760715 --2.40956568718 --1.05209288001 --2.37505090237 --1.052120924 --2.34053498507 --1.05216020346 --2.30601775646 --1.05219742656 --2.26954627037 --1.05216157437 --2.23307663202 --1.05212190748 --2.19855922461 --1.05209353566 --2.16404336691 --1.05207639933 --2.12952852249 --1.05207058787 --2.09501421452 --1.0520760417 --2.06049984693 --1.05209288001 --2.02598494291 --1.05212089419 --1.99146914482 --1.05216020346 --1.95695191622 --1.05219742656 --1.92048045993 --1.05216154456 --1.88401073217 --1.05212190748 --1.84949341416 --1.05209350586 --1.81497752666 --1.05207639933 --1.78046268225 --1.05207058787 --1.74594834447 --1.0520760119 --1.71143397689 --1.05209288001 --1.67691913247 --1.05212089419 --1.64240336418 --1.05216020346 --1.60788607598 --1.05219745636 --1.57141458988 --1.05216151476 --1.53494489193 --1.05212190748 --1.50042754412 --1.05209356547 --1.46591174603 --1.05207639933 --1.431396842 --1.05207055807 --1.39688247442 --1.0520760417 --1.36236816645 --1.05209288001 --1.32785332203 --1.052120924 --1.29333746433 --1.05216020346 --1.25882023573 --1.05219742656 --1.22234871984 --1.05216160417 --1.18587899208 --1.05212190748 --1.15136170387 --1.05209353566 --1.11684584618 --1.05207639933 --1.08233097196 --1.05207055807 --1.04781663418 --1.0520760417 --1.0133022666 --1.05209288001 --0.978787437082 --1.05212089419 --0.944271638989 --1.05216020346 --0.909754350782 --1.05219742656 --0.873282879591 --1.05216157437 --0.836813166738 --1.05212190748 --0.802295863629 --1.05209350586 --0.767780020833 --1.05207639933 --0.733265131712 --1.05207055807 --0.698750779033 --1.0520760417 --0.664236411452 --1.05209288001 --0.629721581936 --1.05212089419 --0.595205798745 --1.05216020346 --0.560688540339 --1.05219742656 --0.524217039347 --1.05216154456 --0.487747311592 --1.05212190748 --0.453230001032 --1.05209353566 --0.418714135885 --1.05207639933 --0.384199291468 --1.05207058787 --0.349684938788 --1.0520760417 --0.315170586109 --1.05209288001 --0.280655749142 --1.05212089419 --0.246139928699 --1.05216020346 --0.211622662842 --1.05219742656 --0.1751511693 --0.966538384557 --0.138660918921 --0.966500520706 --0.104143749923 --0.966473430395 --0.0696280635893 --0.96645706892 --0.0351133733056 --0.966451570392 --0.000599179416895 --0.966456770897 -0.0339150065556 --0.966472819448 -0.0684296805412 --0.966499596834 -0.102945324033 --0.966537177563 -0.137462440878 --0.966572672128 -0.173934582621 --0.966538354755 -0.210404932499 --0.966500520706 -0.244922094047 --0.966473445296 -0.27943778038 --0.966457113624 -0.313952490687 --0.966451570391 -0.348466679454 --0.966456770897 -0.382980845869 --0.966472804547 -0.417495526374 --0.966499611735 -0.452011175454 --0.966537207365 -0.486528292298 --0.966572672128 -0.523000434041 --0.966538354755 -0.559470772743 --0.966500535608 -0.593987956643 --0.966473415494 -0.628503620625 --0.966457098723 -0.66301831603 --0.966451555491 -0.697532534599 --0.966456800699 -0.732046738267 --0.966472804547 -0.766561374068 --0.966499626637 -0.80107703805 --0.966537132859 -0.835594132543 --0.966572672128 -0.872066274285 --0.966538354755 -0.90853664279 --0.966500535608 -0.943053781986 --0.966473430395 -0.977569490671 --0.966457083821 -1.01208418608 --0.966451570392 -1.04659837484 --0.966456800699 -1.08111256361 --0.966472804547 -1.11562719941 --0.966499626637 -1.15014284849 --0.966537177563 -1.18466001749 --0.96657268703 -1.22113209963 --0.966538354755 -1.25760248303 --0.966500520706 -1.29211962223 --0.966473445296 -1.32663530111 --0.96645706892 -1.36114999652 --0.966451525688 -1.39566421509 --0.966456800699 -1.43017840385 --0.966472804547 -1.46469309926 --0.966499611735 -1.49920874834 --0.96653714776 -1.53372582793 --0.96657268703 -1.57019799948 --0.966538354755 -1.60666832328 --0.966500535608 -1.64118549228 --0.966473460198 -1.67570120096 --0.966457083821 -1.71021589637 --0.966451555491 -1.74473008514 --0.966456800699 -1.7792442441 --0.966472834349 -1.81375893951 --0.966499626637 -1.84827458858 --0.966537222266 -1.88279169798 --0.966572657227 -1.91926380992 --0.966538354755 -1.95573419333 --0.966500535608 -1.99025136232 --0.966473430395 -2.02476704121 --0.966457054019 -2.05928170681 --0.966451555491 -2.09379589558 --0.966456800699 -2.12831014395 --0.966472804547 -2.16282480955 --0.966499656439 -2.19734048844 --0.966537177563 -2.23185753822 --0.966572672128 -2.26832967996 --0.966538384557 -2.30480009318 --0.966500535608 -2.33931720257 --0.966473445296 -2.37383288145 --0.96645706892 -2.40834760666 --0.966451555491 -2.44286185503 --0.966456800699 -2.47737592459 --0.966472804547 -2.51189059019 --0.966499596834 -2.54640626907 --0.966537177563 -2.58092343807 --0.966572672128 -2.61739546061 --0.966538384557 -2.65386587381 --0.966500535608 -2.68838304281 --0.966473445296 -2.7228987217 --0.96645706892 -2.7574134469 --0.966451555491 -2.79192763567 --0.966456800699 -2.82644182444 --0.96647284925 -2.86095649004 --0.966499611735 -2.89547210932 --0.966537177563 -2.92998927832 --0.966572672128 -2.96646142006 --0.966538384557 -3.00293171406 --0.966500520706 -3.03744888306 --0.966473430395 -3.07196462154 --0.96645706892 -3.10647928715 --0.966451570392 -3.14099344809 --0.966456770897 --3.10767763853 --0.966472819448 --3.07316291333 --0.966499596834 --3.03864735365 --0.966537177563 --3.00413018465 --0.966572672128 --2.96765804291 --0.966538354755 --2.93118774891 --0.966500520706 --2.89667057991 --0.966473445296 --2.86215490103 --0.966457113624 --2.82764017582 --0.966451570391 --2.79312598705 --0.966456770897 --2.75861173868 --0.966472804547 --2.72409707308 --0.966499611735 --2.6895814538 --0.966537207365 --2.65506434441 --0.966572672128 --2.61859220266 --0.966538354755 --2.58212184906 --0.966500535608 --2.54760468006 --0.966473415494 --2.51308906078 --0.966457098723 --2.47857439518 --0.966451555491 --2.4440600872 --0.966456800699 --2.40954595804 --0.966472804547 --2.37503129244 --0.966499626637 --2.34051561356 --0.966537132859 --2.30599856377 --0.966572672128 --2.26952642203 --0.966538354755 --2.23305600881 --0.966500535608 --2.19853883982 --0.966473430395 --2.16402316094 --0.966457083821 --2.12950849533 --0.966451570392 --2.09499424696 --0.966456800699 --2.0604801774 --0.966472804547 --2.02596539259 --0.966499626637 --1.99144974351 --0.966537177563 --1.95693266392 --0.96657268703 --1.92046052217 --0.966538354755 --1.88399016857 --0.966500520706 --1.84947299957 --0.966473445296 --1.81495732069 --0.96645706892 --1.78044262529 --0.966451525688 --1.74592843652 --0.966456800699 --1.71141421795 --0.966472804547 --1.67689955235 --0.966499611735 --1.64238390327 --0.96653714776 --1.60786679387 --0.96657268703 --1.57139465213 --0.966538354755 --1.53492432833 --0.966500535608 --1.50040712952 --0.966473460198 --1.46589145064 --0.966457083821 --1.43137675524 --0.966451555491 --1.39686256647 --0.966456800699 --1.36234840751 --0.966472834349 --1.3278337419 --0.966499626637 --1.29331806302 --0.966537222266 --1.25880092382 --0.966572657227 --1.22232881188 --0.966538354755 --1.18585848808 --0.966500535608 --1.15134131909 --0.966473430395 --1.1168256402 --0.966457054019 --1.0823109448 --0.966451555491 --1.04779672623 --0.966456800699 --1.01328250766 --0.966472804547 --0.978767871857 --0.966499656439 --0.944252222777 --0.966537177563 --0.909735113382 --0.966572672128 --0.873262971639 --0.966538384557 --0.836792588234 --0.966500535608 --0.802275463939 --0.966473445296 --0.767759785056 --0.96645706892 --0.73324508965 --0.966451555491 --0.698730885982 --0.966456800699 --0.664216697216 --0.966472804547 --0.62970200181 --0.966499596834 --0.595186367631 --0.966537177563 --0.560669243336 --0.966572672128 --0.524197116494 --0.966538384557 --0.487726770341 --0.966500535608 --0.453209586442 --0.966473445296 --0.41869392246 --0.96645706892 --0.384179219603 --0.966451555491 --0.349665038288 --0.966456800699 --0.31515083462 --0.96647284925 --0.280636161566 --0.966499611735 --0.246120516211 --0.966537177563 --0.211603403091 --0.966572672128 --0.175131268799 --0.880918979644 --0.138638980687 --0.880883187055 --0.104121992364 --0.880857557058 --0.0696064857766 --0.880842089653 --0.0350919673219 --0.880836904049 --0.000577948754653 --0.880841836333 -0.0339360632934 --0.880857020617 -0.0684505626559 --0.880882367492 -0.102966040373 --0.880917906761 -0.137482985854 --0.88095150888 -0.173955816776 --0.880919009447 -0.210426859558 --0.880883187055 -0.244943846017 --0.880857512355 -0.279459357262 --0.880842074752 -0.313973888755 --0.880836844444 -0.348487891257 --0.880841836333 -0.38300191611 --0.880857020617 -0.417516432702 --0.880882367492 -0.452031895518 --0.880917921662 -0.486548855901 --0.880951493978 -0.523021653295 --0.880918994546 -0.559492707253 --0.880883201956 -0.594009712338 --0.880857542157 -0.628525227308 --0.880842104554 -0.663039743901 --0.880836844444 -0.697553738952 --0.880841806531 -0.732067763805 --0.880856990814 -0.766582280397 --0.880882367492 -0.801097750663 --0.880917921662 -0.835614681244 --0.880951493978 -0.87208750844 --0.880918979644 -0.908558577299 --0.880883172154 -0.943075552583 --0.880857542157 -0.977591067553 --0.880842089653 -1.01210558414 --0.880836859345 -1.0466195941 --0.880841851234 -1.08113360405 --0.880857020617 -1.11564809084 --0.880882367492 -1.15016359091 --0.880917906761 -1.18468055129 --0.880951479077 -1.22115337849 --0.880918994546 -1.25762438774 --0.880883187055 -1.29214143753 --0.880857542157 -1.32665690779 --0.880842089653 -1.36117145419 --0.880836874247 -1.39568543434 --0.88084179163 -1.4301994741 --0.880857005716 -1.46471396088 --0.880882382393 -1.49922943115 --0.880917906761 -1.53374639153 --0.880951493978 -1.57021921873 --0.880918979645 -1.60669025779 --0.880883216858 -1.64120721817 --0.880857542157 -1.67572277784 --0.880842089653 -1.71023729443 --0.880836844444 -1.74475130439 --0.880841836333 -1.77926531434 --0.880856990814 -1.81377983093 --0.880882367492 -1.8482952714 --0.880917906761 -1.88281226158 --0.880951493978 -1.91928505897 --0.880918994546 -1.95575612783 --0.880883201956 -1.99027311802 --0.880857542157 -2.02478861809 --0.880842089653 -2.05930316448 --0.880836844444 -2.09381711483 --0.880841851234 -2.12833112478 --0.880857020617 -2.16284567117 --0.88088235259 -2.19736117124 --0.880917906761 -2.23187804222 --0.880951479077 -2.26835095882 --0.880918979645 -2.30482196808 --0.880883201956 -2.33933901786 --0.880857557058 -2.37385439872 --0.880842074752 -2.40836894512 --0.880836859345 -2.44288301468 --0.880841806531 -2.47739702463 --0.880856990814 -2.51191151142 --0.880882367492 -2.54642701149 --0.880917906761 -2.58094388247 --0.880951493978 -2.61741679907 --0.880919024348 -2.65388786793 --0.880883187055 -2.68840479851 --0.880857542157 -2.72292035818 --0.880842104554 -2.75743490457 --0.880836859345 -2.79194885493 --0.880841776728 -2.82646286488 --0.880856990814 -2.86097735166 --0.88088235259 -2.89549279213 --0.880917906761 -2.93000978231 --0.880951493978 -2.96648257971 --0.880918979644 -3.00295364857 --0.880883187055 -3.03747057915 --0.880857557058 -3.07198619842 --0.880842089653 -3.10650068521 --0.880836904049 -3.14101466735 --0.880841836333 --3.10765659809 --0.880857020617 --3.07314211131 --0.880882367492 --3.03862661123 --0.880917906761 --3.00410962105 --0.88095150888 --2.96763688326 --0.880919009447 --2.9311658144 --0.880883187055 --2.89664888382 --0.880857512355 --2.86213326454 --0.880842074752 --2.82761877776 --0.880836844444 --2.7931047678 --0.880841836333 --2.75859075784 --0.880857020617 --2.72407627106 --0.880882367492 --2.68956077099 --0.880917921662 --2.65504384041 --0.880951493978 --2.61857098341 --0.880918994546 --2.58209997415 --0.880883201956 --2.54758286476 --0.880857542157 --2.5130674839 --0.880842104554 --2.47855293751 --0.880836844444 --2.44403892755 --0.880841806531 --2.409524858 --0.880856990814 --2.37501037121 --0.880882367492 --2.34049487114 --0.880917921662 --2.30597800017 --0.880951493978 --2.26950508356 --0.880918979644 --2.2330340147 --0.880883172154 --2.19851708412 --0.880857542157 --2.16400158405 --0.880842089653 --2.12948709726 --0.880836859345 --2.09497302771 --0.880841851234 --2.06045901775 --0.880857020617 --2.02594453097 --0.880882367492 --1.9914290905 --0.880917906761 --1.95691213012 --0.880951479077 --1.92043927312 --0.880918994546 --1.88396826386 --0.880883187055 --1.84945124388 --0.880857542157 --1.81493571401 --0.880842089653 --1.78042122722 --0.880836874247 --1.74590718746 --0.88084179163 --1.71139320731 --0.880857005716 --1.67687866092 --0.880882382393 --1.64236322045 --0.880917906761 --1.60784628987 --0.880951493978 --1.57137346268 --0.880918979645 --1.53490236401 --0.880883216858 --1.50038540364 --0.880857542157 --1.46586990357 --0.880842089653 --1.43135538697 --0.880836844444 --1.39684134722 --0.880841836333 --1.36232733727 --0.880856990814 --1.32781285047 --0.880882367492 --1.29329735041 --0.880917906761 --1.25878041983 --0.880951493978 --1.22230759263 --0.880918994546 --1.18583655357 --0.880883201956 --1.15131950378 --0.880857542157 --1.11680403352 --0.880842089653 --1.08228951692 --0.880836844444 --1.04777553677 --0.880841851234 --1.01326149702 --0.880857020617 --0.978746980429 --0.88088235259 --0.94423148036 --0.880917906761 --0.909714579582 --0.880951479077 --0.873241722584 --0.880918979645 --0.836770683527 --0.880883201956 --0.802253693342 --0.880857557058 --0.767738193273 --0.880842074752 --0.733223661781 --0.880836859345 --0.698709651828 --0.880841806531 --0.664195656776 --0.880856990814 --0.629681140184 --0.880882367492 --0.595165669918 --0.880917906761 --0.560648724437 --0.880951493978 --0.524175897241 --0.880919024348 --0.487704835832 --0.880883187055 --0.453187853098 --0.880857542157 --0.418672330677 --0.880842104554 --0.384157814086 --0.880836859345 --0.349643804133 --0.880841776728 --0.31512978673 --0.880856990814 --0.28061529249 --0.88088235259 --0.246099807322 --0.880917906761 --0.211582873017 --0.880951493978 --0.17511003837 --0.792528688908 --0.138614024967 --0.792495280504 --0.104097232223 --0.792471304536 --0.0695819184184 --0.792456924915 --0.0350676011294 --0.792452022433 --0.000553778838367 --0.792456686497 -0.0339600369334 --0.792470872402 -0.0684743383899 --0.792494550348 -0.102989617735 --0.792527735233 -0.137506373227 --0.792559087277 -0.173979990184 --0.792528703809 -0.210451826453 --0.792495250702 -0.244968622923 --0.792471319437 -0.279483936727 --0.792456924915 -0.313998259604 --0.792451992631 -0.348512083292 --0.792456656694 -0.383025892079 --0.792470827699 -0.417540192604 --0.792494535446 -0.452055476605 --0.792527735233 -0.486572228372 --0.792559072375 -0.52304585278 --0.79252871871 -0.5595176965 --0.792495250702 -0.594034478068 --0.792471334338 -0.628549799323 --0.792456910014 -0.663064107299 --0.792451992631 -0.697577923536 --0.792456656694 -0.732091739774 --0.792470797896 -0.766606032848 --0.792494535446 -0.8011213094 --0.792527750134 -0.835638046265 --0.792559072375 -0.872111678124 --0.792528703809 -0.908583521843 --0.792495265603 -0.943100318313 --0.792471349239 -0.977615624666 --0.792456910014 -1.01212993264 --0.792451992631 -1.04664376378 --0.792456656694 -1.08115759492 --0.7924708426 -1.11567190289 --0.792494535446 -1.15018716455 --0.792527735233 -1.18470391631 --0.792559087277 -1.22117754817 --0.79252871871 -1.25764936209 --0.792495265603 -1.29216614365 --0.792471334338 -1.32668149471 --0.792456910014 -1.36119583249 --0.79245197773 -1.39570960402 --0.792456686497 -1.43022343516 --0.792470812798 -1.46473774314 --0.792494505644 -1.49925303459 --0.792527750134 -1.53376978636 --0.792559072375 -1.57024335861 --0.792528659105 -1.60671523214 --0.792495250702 -1.64123204351 --0.792471349239 -1.67574733496 --0.792456924915 -1.71026167273 --0.79245197773 -1.74477550387 --0.792456656694 -1.77928930521 --0.7924708426 -1.81380358338 --0.792494535446 -1.84831884504 --0.792527750134 -1.8828356266 --0.792559072375 -1.91930925846 --0.79252871871 -1.95578110218 --0.792495265603 -1.99029785395 --0.792471334338 -2.0248131156 --0.792456910014 -2.05932748318 --0.792451992631 -2.09384131432 --0.792456656694 -2.12835508585 --0.7924708426 -2.16286945343 --0.792494535446 -2.19738471508 --0.792527735233 -2.23190146684 --0.792559087277 -2.2683750987 --0.79252871871 -2.30484694242 --0.792495280504 -2.3393637538 --0.792471349239 -2.37387901545 --0.792456910014 -2.40839338302 --0.792451992631 -2.44290715456 --0.792456656694 -2.47742092609 --0.792470827699 -2.51193529368 --0.792494535446 -2.54645055533 --0.792527750134 -2.58096730709 --0.792559087277 -2.61744099855 --0.79252871871 -2.65391278267 --0.792495265603 -2.68842953443 --0.792471334338 -2.72294491529 --0.792456910014 -2.75745922327 --0.792451992631 -2.79197305441 --0.792456656694 -2.82648688555 --0.792470812798 -2.86100107432 --0.792494535446 -2.89551639557 --0.792527750134 -2.93003320694 --0.792559072375 -2.96650677919 --0.792528688908 -3.00297856331 --0.792495280504 -3.03749549389 --0.792471304536 -3.07201069593 --0.792456924915 -3.10652500391 --0.792452022433 -3.14103892644 --0.792456686497 --3.10763257742 --0.792470872402 --3.07311838865 --0.792494550348 --3.03860300779 --0.792527735233 --3.00408625603 --0.792559087277 --2.96761268378 --0.792528703809 --2.93114089966 --0.792495250702 --2.89662396908 --0.792471319437 --2.86210876703 --0.792456924915 --2.82759439945 --0.792451992631 --2.79308056832 --0.792456656694 --2.75856679678 --0.792470827699 --2.7240524292 --0.792494535446 --2.68953716755 --0.792527735233 --2.65502041578 --0.792559072375 --2.61854678392 --0.79252871871 --2.5820749402 --0.792495250702 --2.54755812883 --0.792471334338 --2.51304280758 --0.792456910014 --2.4785284996 --0.792451992631 --2.44401472807 --0.792456656694 --2.40950095654 --0.792470797896 --2.37498658895 --0.792494535446 --2.3404713273 --0.792527750134 --2.30595457554 --0.792559072375 --2.26948094368 --0.792528703809 --2.23300909996 --0.792495265603 --2.19849234819 --0.792471349239 --2.16397696734 --0.792456910014 --2.12946265936 --0.792451992631 --2.09494888782 --0.792456656694 --2.06043499708 --0.7924708426 --2.02592080831 --0.792494535446 --1.99140545726 --0.792527735233 --1.95688870549 --0.792559087277 --1.92041513324 --0.79252871871 --1.88394328952 --0.792495265603 --1.84942647815 --0.792471334338 --1.8149111867 --0.792456910014 --1.78039684892 --0.79245197773 --1.74588301778 --0.792456686497 --1.71136918664 --0.792470812798 --1.67685493827 --0.792494505644 --1.64233964681 --0.792527750134 --1.60782289505 --0.792559072375 --1.57134926319 --0.792528659105 --1.53487744928 --0.792495250702 --1.5003606379 --0.792471349239 --1.46584534645 --0.792456924915 --1.43133100867 --0.79245197773 --1.39681720734 --0.792456656694 --1.362303406 --0.7924708426 --1.32778903842 --0.792494535446 --1.29327377677 --0.792527750134 --1.258757025 --0.792559072375 --1.22228339315 --0.79252871871 --1.18581157923 --0.792495265603 --1.15129479766 --0.792471334338 --1.1167794466 --0.792456910014 --1.08226516843 --0.792451992631 --1.04775133729 --0.792456656694 --1.01323750615 --0.7924708426 --0.978723213077 --0.792494535446 --0.944207921624 --0.792527735233 --0.909691140056 --0.792559087277 --0.873217537999 --0.79252871871 --0.836745709181 --0.792495280504 --0.802228927612 --0.792471349239 --0.76771363616 --0.792456910014 --0.733199313283 --0.792451992631 --0.698685467243 --0.792456656694 --0.664171665907 --0.792470827699 --0.629657357931 --0.792494535446 --0.59514208138 --0.792527750134 --0.560625329614 --0.792559087277 --0.524151697755 --0.79252871871 --0.487679876387 --0.792495265603 --0.453163072467 --0.792471334338 --0.418647781015 --0.792456910014 --0.384133450687 --0.792451992631 --0.34961964935 --0.792456656694 --0.315105810762 --0.792470812798 --0.280591517687 --0.792494535446 --0.246076226235 --0.792527750134 --0.211559481919 --0.792559072375 --0.175085861236 --0.704288139939 --0.138586383313 --0.704257398844 --0.104069806636 --0.704235315323 --0.0695547107607 --0.704222068191 --0.0350406127982 --0.70421756804 --0.000527010764928 --0.704221859574 -0.0339865852148 --0.704234883189 -0.0685006668791 --0.704256743193 -0.103015726432 --0.704287305474 -0.13753226772 --0.704316139221 -0.174006767571 --0.704288139939 -0.210479468107 --0.704257383942 -0.244996037334 --0.704235315323 -0.279511131346 --0.704222038388 -0.314025238157 --0.70421756804 -0.348538838327 --0.704221859575 -0.383052431047 --0.704234912992 -0.417566522956 --0.704256758094 -0.452081568539 --0.704287320376 -0.486598111689 --0.70431612432 -0.523072615266 --0.704288154841 -0.559545308352 --0.70425735414 -0.594061911106 --0.704235330224 -0.62857696414 --0.704222038388 -0.663091093302 --0.704217538237 -0.697604700923 --0.704221844673 -0.732118293643 --0.704234912992 -0.766632348299 --0.704256758094 -0.801147431135 --0.704287320376 -0.835663959384 --0.704316139221 -0.872138485313 --0.704288154841 -0.908611178398 --0.704257369041 -0.94312773645 --0.704235330224 -0.977642849088 --0.704222053289 -1.01215690375 --0.704217553139 -1.04667052626 --0.704221844673 -1.08118414879 --0.704234912992 -1.11569821835 --0.704256743193 -1.15021327138 --0.704287320376 -1.18472981453 --0.704316139221 -1.22120431066 --0.704288154841 -1.25767704845 --0.704257369041 -1.2921935916 --0.704235330224 -1.32670870424 --0.704222053289 -1.36122280359 --0.704217538237 -1.39573639631 --0.704221889377 -1.43024995923 --0.704234912992 -1.46476405859 --0.704256772995 -1.49927914143 --0.704287335277 -1.53379565478 --0.704316154122 -1.5702701807 --0.704288125038 -1.60674285889 --0.704257383943 -1.64125949145 --0.704235330224 -1.67577454448 --0.70422205329 -1.71028864384 --0.704217538237 -1.74480223656 --0.704221844673 -1.77931582928 --0.704234912992 -1.81382992864 --0.704256772995 -1.84834498167 --0.704287305474 -1.88286149502 --0.704316154122 -1.91933602094 --0.704288169742 -1.95580872894 --0.704257369041 -1.99032527208 --0.704235345125 -2.02484041452 --0.70422205329 -2.05935448408 --0.70421756804 -2.0938680768 --0.704221844673 -2.12838166952 --0.704234898091 -2.16289579868 --0.704256758094 -2.19741082192 --0.704287320376 -2.23192739487 --0.70431612432 -2.26840180159 --0.704288139939 -2.30487459898 --0.704257383943 -2.33939111232 --0.704235330224 -2.37390619517 --0.704222038388 -2.40842032433 --0.70421756804 -2.44293391705 --0.704221859574 -2.47744756937 --0.704234912992 -2.51196163893 --0.704256743193 -2.54647666216 --0.704287320376 -2.58099323511 --0.704316139221 -2.61746770144 --0.704288125038 -2.65394037962 --0.704257383943 -2.68845707178 --0.704235345125 -2.72297215462 --0.704222068191 -2.75748622418 --0.704217553139 -2.7919998169 --0.704221844673 -2.82651335001 --0.704234898091 -2.86102741957 --0.704256758094 -2.8955425024 --0.704287320376 -2.93005907535 --0.704316154122 -2.96653360128 --0.704288139939 -3.00300627947 --0.704257398844 -3.03752285242 --0.704235315323 -3.07203799486 --0.704222068191 -3.10655200481 --0.70421756804 -3.14106562932 --0.704221859574 --3.10760611296 --0.704234883189 --3.0730920434 --0.704256743193 --3.03857696056 --0.704287305474 --3.00406038761 --0.704316139221 --2.96758586169 --0.704288139939 --2.9311131835 --0.704257383942 --2.89659661055 --0.704235315323 --2.8620814681 --0.704222038388 --2.82756745815 --0.70421756804 --2.79305380583 --0.704221859575 --2.75854021311 --0.704234912992 --2.72402614355 --0.704256758094 --2.68951106071 --0.704287320376 --2.65499454737 --0.70431612432 --2.61852002144 --0.704288154841 --2.58204728365 --0.70425735414 --2.5475307703 --0.704235330224 --2.51301568746 --0.704222038388 --2.4785015583 --0.704217538237 --2.44398796558 --0.704221844673 --2.40947437286 --0.704234912992 --2.37496030331 --0.704256758094 --2.34044522047 --0.704287320376 --2.30592870713 --0.704316139221 --2.26945418119 --0.704288154841 --2.23298150301 --0.704257369041 --2.19846487045 --0.704235330224 --2.16394972801 --0.704222053289 --2.12943571806 --0.704217553139 --2.09492218494 --0.704221844673 --2.06040853262 --0.704234912992 --2.02589446306 --0.704256743193 --1.99137935042 --0.704287320376 --1.95686283708 --0.704316139221 --1.92038834095 --0.704288154841 --1.88391563296 --0.704257369041 --1.84939903021 --0.704235330224 --1.81488397718 --0.704222053289 --1.78036984801 --0.704217538237 --1.74585622549 --0.704221889377 --1.71134269237 --0.704234912992 --1.67682859302 --0.704256772995 --1.64231353998 --0.704287335277 --1.60779696703 --0.704316154122 --1.5713224709 --0.704288125038 --1.53484976291 --0.704257383943 --1.50033321977 --0.704235330224 --1.46581813693 --0.70422205329 --1.43130403757 --0.704217538237 --1.39679044485 --0.704221844673 --1.36227682233 --0.704234912992 --1.32776272297 --0.704256772995 --1.29324766993 --0.704287305474 --1.25873112678 --0.704316154122 --1.22225663066 --0.704288169742 --1.18578395247 --0.704257369041 --1.15126734972 --0.704235345125 --1.11675223708 --0.70422205329 --1.08223816752 --0.70421756804 --1.047724545 --0.704221844673 --1.01321098208 --0.704234898091 --0.978696882725 --0.704256758094 --0.944181829691 --0.704287320376 --0.90966527164 --0.70431612432 --0.873190805316 --0.704288139939 --0.836718112231 --0.704257383943 --0.802201494574 --0.704235330224 --0.767686426639 --0.704222038388 --0.733172312379 --0.70421756804 --0.698658719659 --0.704221859574 --0.664145112037 --0.704234912992 --0.629631012678 --0.704256743193 --0.595115959644 --0.704287320376 --0.560599416495 --0.704316139221 --0.524124935269 --0.704288125038 --0.487652227283 --0.704257383943 --0.453135646879 --0.704235345125 --0.418620556593 --0.704222068191 --0.384106464684 --0.704217553139 --0.349592871964 --0.704221844673 --0.315079256892 --0.704234898091 --0.280565187335 --0.704256758094 --0.246050115675 --0.704287320376 --0.211533587426 --0.704316154122 --0.1750590913 --0.618687704206 --0.138557210565 --0.618659839034 --0.104040872305 --0.618639871478 --0.0695260176435 --0.618627846241 --0.0350121473893 --0.618623748422 --0.000498776789755 --0.618627622724 -0.0340145882219 --0.618639528751 -0.0685284389183 --0.618659287691 -0.103043265641 --0.618686974049 -0.137559577823 --0.61871317029 -0.174035008997 --0.618687793613 -0.21050862968 --0.618659839034 -0.245024975389 --0.618639871478 -0.279539845884 --0.618627846241 -0.314053691924 --0.618623748422 -0.348567068577 --0.618627652526 -0.383080430329 --0.618639498949 -0.41759429127 --0.618659317494 -0.452109120786 --0.618687033653 -0.486625425517 --0.618713140488 -0.523100838065 --0.61868776381 -0.559574455023 --0.618659839034 -0.594090819359 --0.618639871478 -0.628605678678 --0.618627846241 -0.663119569421 --0.618623763323 -0.697632923723 --0.618627682328 -0.732146278024 --0.618639498949 -0.766660138965 --0.618659317494 -0.801174998284 --0.618687033653 -0.835691273212 --0.618713140488 -0.872166708112 --0.618687793613 -0.908640339971 --0.618659839034 -0.943156674505 --0.618639841676 -0.977671518922 --0.618627846241 -1.01218539476 --0.618623748422 -1.04669877887 --0.618627652526 -1.08121213317 --0.618639498949 -1.11572599411 --0.618659317494 -1.15024083853 --0.618687033653 -1.18475714326 --0.61871317029 -1.22123256326 --0.618687793613 -1.25770619511 --0.618659839034 -1.29222252965 --0.618639871478 -1.32673737406 --0.618627846241 -1.36125126481 --0.618623748422 -1.39576461911 --0.618627682328 -1.43027797341 --0.618639528751 -1.46479183435 --0.618659332395 -1.49930667877 --0.618687003851 -1.5338229835 --0.618713140488 -1.5702983737 --0.618687793613 -1.60677203536 --0.618659839034 -1.6412883699 --0.618639841676 -1.67580324411 --0.618627816438 -1.71031707525 --0.618623748422 -1.74483048916 --0.618627652526 -1.77934384346 --0.618639558554 -1.8138577044 --0.618659317494 -1.84837251902 --0.618687033653 -1.88288882375 --0.618713140488 -1.91936427354 --0.618687734008 -1.95583790541 --0.618659839034 -1.99035423994 --0.618639871478 -2.02486908436 --0.618627846241 -2.0593829155 --0.618623748422 -2.09389632941 --0.618627682328 -2.1284096837 --0.618639498949 -2.16292351484 --0.618659317494 -2.19743829966 --0.618687033653 -2.23195463419 --0.618713140488 -2.26843011379 --0.61868776381 -2.30490374565 --0.618659839034 -2.33942008019 --0.618639841676 -2.3739349246 --0.618627846241 -2.40844887495 --0.618623748422 -2.44296211004 --0.618627652526 -2.47747552395 --0.618639528751 -2.51198935509 --0.618659317494 -2.54650425911 --0.618687033653 -2.58102053404 --0.618713140488 -2.61749595403 --0.61868776381 -2.65396952629 --0.618659839034 -2.68848592043 --0.618639871478 -2.72300082445 --0.618627846241 -2.75751465559 --0.618623748422 -2.7920280695 --0.618627682328 -2.8265413642 --0.618639498949 -2.86105525494 --0.618659317494 -2.89557009935 --0.618687033653 -2.93008637428 --0.618713140488 -2.96656179428 --0.618687704206 -3.00303542614 --0.618659839034 -3.03755176067 --0.618639871478 -3.07206660509 --0.618627846241 -3.10658043623 --0.618623748422 -3.14109394153 --0.618627622724 --3.10757809877 --0.618639528751 --3.07306414842 --0.618659287691 --3.03854936361 --0.618686974049 --3.00403308868 --0.61871317029 --2.96755766869 --0.618687793613 --2.93108397722 --0.618659839034 --2.89656770229 --0.618639871478 --2.86205285788 --0.618627846241 --2.82753902674 --0.618623748422 --2.79302555323 --0.618627652526 --2.75851225853 --0.618639498949 --2.72399836778 --0.618659317494 --2.68948358297 --0.618687033653 --2.65496724844 --0.618713140488 --2.61849176884 --0.61868776381 --2.58201813698 --0.618659839034 --2.54750180244 --0.618639871478 --2.51298701763 --0.618627846241 --2.47847300768 --0.618623763323 --2.44395977258 --0.618627682328 --2.40944635868 --0.618639498949 --2.37493252754 --0.618659317494 --2.34041768313 --0.618687033653 --2.3059014082 --0.618713140488 --2.2694259286 --0.618687793613 --2.23295235634 --0.618659839034 --2.1984359622 --0.618639841676 --2.16392105818 --0.618627846241 --2.12940722704 --0.618623748422 --2.09489387274 --0.618627652526 --2.06038051844 --0.618639498949 --2.02586662769 --0.618659317494 --1.99135178327 --0.618687033653 --1.95683550835 --0.61871317029 --1.92036011815 --0.618687793613 --1.88388648629 --0.618659839034 --1.84937015176 --0.618639871478 --1.81485524773 --0.618627846241 --1.78034138679 --0.618623748422 --1.74582803249 --0.618627682328 --1.71131467819 --0.618639528751 --1.67680081725 --0.618659332395 --1.64228600264 --0.618687003851 --1.6077696979 --0.618713140488 --1.57129424811 --0.618687793613 --1.53482061624 --0.618659839034 --1.50030425191 --0.618639841676 --1.46578940749 --0.618627816438 --1.43127554655 --0.618623748422 --1.39676216245 --0.618627652526 --1.36224880814 --0.618639558554 --1.32773497701 --0.618659317494 --1.29322010279 --0.618687033653 --1.25870382786 --0.618713140488 --1.22222837806 --0.618687734008 --1.185754776 --0.618659839034 --1.15123841167 --0.618639871478 --1.11672356725 --0.618627846241 --1.08220970631 --0.618623748422 --1.0476963222 --0.618627682328 --1.0131829381 --0.618639498949 --0.978669121862 --0.618659317494 --0.944154277444 --0.618687033653 --0.909637987614 --0.618713140488 --0.873162552714 --0.61868776381 --0.836688920856 --0.618659839034 --0.802172586322 --0.618639841676 --0.767657727003 --0.618627846241 --0.733143821359 --0.618623748422 --0.698630467057 --0.618627652526 --0.664117112756 --0.618639528751 --0.629603251815 --0.618659317494 --0.595088437199 --0.618687033653 --0.560572132468 --0.618713140488 --0.524096682667 --0.61868776381 --0.48762306571 --0.618659839034 --0.453106731177 --0.618639871478 --0.418591864407 --0.618627846241 --0.384077988565 --0.618623748422 --0.349564611912 --0.618627682328 --0.31505125761 --0.618639498949 --0.280537411571 --0.618659317494 --0.246022574604 --0.618687033653 --0.211506273598 --0.618713140488 --0.175030846149 --0.533080592751 --0.13852667436 --0.533055871725 --0.104010572657 --0.533038184047 --0.0694959582761 --0.533027485013 --0.0349823324941 --0.533023878932 --0.000469203805547 --0.533027350903 -0.0340439183638 --0.53303784132 -0.0685575269163 --0.53305542469 -0.103072123602 --0.533080041408 -0.137588184327 --0.53310315311 -0.174064576626 --0.533080622554 -0.21053917706 --0.533055871725 -0.245055273175 --0.533038154244 -0.279569886625 --0.533027485013 -0.314083516598 --0.53302384913 -0.348596639931 --0.533027350902 -0.383109770715 --0.533037871122 -0.417623378336 --0.53305542469 -0.452137976885 --0.533080041408 -0.486654028296 --0.53310315311 -0.523130446672 --0.533080622554 -0.559605017304 --0.533055871725 -0.594121128321 --0.533038124442 -0.628635764122 --0.53302745521 -0.663149371743 --0.53302384913 -0.697662502527 --0.533027380705 -0.73217561841 --0.533037871122 -0.76668921113 --0.53305542469 -0.801203802228 --0.533080041408 -0.835719898343 --0.53310315311 -0.872196286917 --0.533080622554 -0.908670857549 --0.533055871725 -0.943186953664 --0.533038124442 -0.977701574564 --0.533027485013 -1.01221522689 --0.533023878932 -1.04672834277 --0.533027350902 -1.08124145866 --0.533037871122 -1.11575505137 --0.53305542469 -1.15026968717 --0.533080041408 -1.18478575349 --0.53310315311 -1.22126212716 --0.533080592752 -1.2577367425 --0.533055871725 -1.29225286841 --0.533038154244 -1.32676744461 --0.53302745521 -1.36128106714 --0.53302384913 -1.39579418302 --0.533027350903 -1.4303073287 --0.533037856221 -1.46482095122 --0.533055394888 -1.49933552742 --0.533080041408 -1.53385156393 --0.533103182912 -1.57032799721 --0.533080592752 -1.60680258274 --0.533055856824 -1.64131864906 --0.533038154244 -1.67583331466 --0.533027485013 -1.71034693718 --0.53302384913 -1.74486005306 --0.533027350902 -1.77937316895 --0.533037871122 -1.81388679147 --0.533055394888 -1.84840136766 --0.533080041408 -1.88291743397 --0.53310315311 -1.91939380765 --0.533080622554 -1.95586842299 --0.533055871725 -1.9903845489 --0.533038154244 -2.0248991847 --0.533027485013 -2.05941277742 --0.53302384913 -2.09392589331 --0.533027350903 -2.12843900919 --0.533037871122 -2.16295266151 --0.53305542469 -2.19746726751 --0.533080041408 -2.23198330402 --0.53310315311 -2.26845967769 --0.533080622554 -2.30493426323 --0.533055871725 -2.33945035935 --0.533038154244 -2.37396496534 --0.533027485013 -2.40847855807 --0.53302384913 -2.44299179316 --0.533027380705 -2.47750484943 --0.533037856221 -2.51201850176 --0.53305542469 -2.54653304816 --0.533080041408 -2.58104914427 --0.533103182912 -2.61752557754 --0.533080592752 -2.65400016308 --0.533055871725 -2.68851619959 --0.533038184047 -2.72303080559 --0.53302745521 -2.75754451752 --0.533023878932 -2.79205757379 --0.533027350902 -2.82657074928 --0.533037871122 -2.8610842824 --0.53305542469 -2.8955988884 --0.533080041408 -2.93011492491 --0.533103182912 -2.96659135819 --0.533080592751 -3.00306594372 --0.533055871725 -3.03758209944 --0.533038184047 -3.07209676504 --0.533027485013 -3.10661035776 --0.533023878932 -3.14112344582 --0.533027350903 --3.10754871368 --0.53303784132 --3.07303518057 --0.53305542469 --3.03852051497 --0.533080041408 --3.00400453806 --0.53310315311 --2.96752810478 --0.533080622554 --2.93105351925 --0.533055871725 --2.89653736353 --0.533038154244 --2.86202269793 --0.533027485013 --2.8275091052 --0.53302384913 --2.79299604893 --0.533027350902 --2.75848287344 --0.533037871122 --2.72396922111 --0.53305542469 --2.68945461511 --0.533080041408 --2.65493857861 --0.53310315311 --2.61846226454 --0.533080622554 --2.581987679 --0.533055871725 --2.54747152328 --0.533038124442 --2.51295691728 --0.53302745521 --2.47844332457 --0.53302384913 --2.44393008947 --0.533027380705 --2.4094170332 --0.533037871122 --2.37490338087 --0.53305542469 --2.34038883448 --0.533080041408 --2.30587273836 --0.53310315311 --2.26939636469 --0.533080622554 --2.23292171955 --0.533055871725 --2.19840574264 --0.533038124442 --2.16389113665 --0.533027485013 --2.12937742472 --0.533023878932 --2.09486430883 --0.533027350902 --2.06035113334 --0.533037871122 --2.02583760023 --0.53305542469 --1.99132299423 --0.533080041408 --1.95680689812 --0.53310315311 --1.92033049464 --0.533080592752 --1.88385590911 --0.533055871725 --1.8493398726 --0.533038154244 --1.81482520699 --0.53302745521 --1.78031155467 --0.53302384913 --1.74579846859 --0.533027350903 --1.71128535271 --0.533037856221 --1.67677173019 --0.533055394888 --1.64225712418 --0.533080041408 --1.60774108768 --0.533103182912 --1.571264714 --0.533080592752 --1.53479009867 --0.533055856824 --1.50027397275 --0.533038154244 --1.46575936675 --0.533027485013 --1.43124574423 --0.53302384913 --1.39673259854 --0.533027350902 --1.36221948266 --0.533037871122 --1.32770586014 --0.533055394888 --1.29319125414 --0.533080041408 --1.25867518783 --0.53310315311 --1.22219881415 --0.533080622554 --1.18572422862 --0.533055871725 --1.1512081027 --0.533038154244 --1.11669352651 --0.533027485013 --1.08217987418 --0.53302384913 --1.0476667583 --0.533027350903 --1.01315361262 --0.533037871122 --0.978640034795 --0.53305542469 --0.944125428796 --0.533080041408 --0.909609377384 --0.53310315311 --0.873132973909 --0.533080622554 --0.836658388376 --0.533055871725 --0.802142262459 --0.533038154244 --0.767627641559 --0.533027485013 --0.733114033937 --0.53302384913 --0.698600888252 --0.533027380705 --0.66408778727 --0.533037856221 --0.629574179649 --0.53305542469 --0.595059558749 --0.533080041408 --0.56054353714 --0.533103182912 --0.524067133665 --0.533080592752 --0.487592510879 --0.533055871725 --0.453076414764 --0.533038184047 --0.418561793864 --0.53302745521 --0.384048171341 --0.533023878932 --0.349535048008 --0.533027350902 --0.315021932125 --0.533037871122 --0.280508324504 --0.53305542469 --0.245993729681 --0.533080041408 --0.211477655918 --0.533103182912 --0.175001271069 --0.444497652352 --0.138493999839 --0.444476462901 --0.103978158906 --0.444461300969 --0.0694637997076 --0.444452166558 --0.0349504328333 --0.444449074567 --0.0004375660792 --0.444452047348 -0.0340752960183 --0.444461047649 -0.068588649854 --0.444476135075 -0.103102982044 --0.444497197866 -0.137618795038 --0.444516979158 -0.174096226692 --0.44449763 -0.210571851582 --0.444476462901 -0.245087690651 --0.444461300969 -0.27960203588 --0.444452166558 -0.314115419984 --0.444449074567 -0.348628282547 --0.444452047348 -0.38314114511 --0.444461092353 -0.417654499412 --0.444476112723 -0.452168829739 --0.444497197866 -0.486684657633 --0.44451700151 -0.523162081838 --0.44449763 -0.559637710452 --0.444476440549 -0.594153553247 --0.444461300969 -0.628667905927 --0.444452166558 -0.663181245327 --0.444449074567 -0.697694137692 --0.4444520697 -0.732206970453 --0.444461092353 -0.766720324755 --0.444476112723 -0.801234692336 --0.444497197866 -0.835750490427 --0.444516979158 -0.872227922082 --0.444497652351 -0.908703550696 --0.444476485252 -0.943219423294 --0.444461300969 -0.977733746171 --0.444452166558 -1.01224711537 --0.444449074567 -1.04675999284 --0.4444520697 -1.0812728405 --0.444461070001 -1.1157861948 --0.444476157427 -1.15030050278 --0.444497197866 -1.18481639027 --0.444516979158 -1.22129377723 --0.444497674703 -1.25776943564 --0.444476485252 -1.29228520393 --0.444461300969 -1.32679960132 --0.444452166558 -1.36131298542 --0.444449074567 -1.39582580328 --0.4444520697 -1.43033868075 --0.444461070001 -1.46485206485 --0.444476135075 -1.49936640262 --0.444497197866 -1.53388217091 --0.444516979158 -1.57035964728 --0.44449763 -1.60683524609 --0.444476462901 -1.64135110378 --0.444461300969 -1.67586547136 --0.44445219636 -1.71037879586 --0.444449074567 -1.74489170313 --0.444452047348 -1.77940455079 --0.444461070001 -1.81391787529 --0.444476112723 -1.84843221307 --0.444497197866 -1.88294807076 --0.444516979158 -1.91942545772 --0.444497607648 -1.95590111614 --0.444476485252 -1.99041694403 --0.444461300969 -2.02493131161 --0.444452166558 -2.05944466591 --0.444449074567 -2.09395754337 --0.444452047348 -2.12847042084 --0.444461070001 -2.16298371553 --0.444476135075 -2.19749808311 --0.444497197866 -2.23201394081 --0.44451700151 -2.26849132777 --0.444497652352 -2.30496692658 --0.444476462901 -2.33948284388 --0.444461300969 -2.37399721145 --0.444452166558 -2.40851056576 --0.444449074567 -2.44302332401 --0.4444520697 -2.47753626108 --0.444461070001 -2.51204961539 --0.444476135075 -2.54656392336 --0.444497197866 -2.58107972145 --0.444516979158 -2.61755716801 --0.444497652351 -2.65403282642 --0.444476440549 -2.68854868412 --0.444461300969 -2.7230629921 --0.444452166558 -2.7575763464 --0.444449074567 -2.79208922386 --0.4444520697 -2.82660210132 --0.444461070001 -2.86111545563 --0.444476112723 -2.89562982321 --0.444497197866 -2.93014556169 --0.444516979158 -2.96662306786 --0.444497652352 -3.00309872627 --0.444476462901 -3.03761446476 --0.444461300969 -3.07212889195 --0.444452166558 -3.10664218665 --0.444449074567 -3.14115503629 --0.444452047348 --3.10751736164 --0.444461047649 --3.07300400734 --0.444476135075 --3.03848963976 --0.444497197866 --3.00397390128 --0.444516979158 --2.96749639511 --0.44449763 --2.93102073669 --0.444476462901 --2.8965049982 --0.444461300969 --2.86199057102 --0.444452166558 --2.82747721672 --0.444449074567 --2.79296433926 --0.444452047348 --2.7584515214 --0.444461092353 --2.7239381671 --0.444476112723 --2.68942379951 --0.444497197866 --2.65490800142 --0.44451700151 --2.61843061447 --0.44449763 --2.58195495606 --0.444476440549 --2.54743909835 --0.444461300969 --2.51292473078 --0.444452166558 --2.47841137647 --0.444449074567 --2.44389855862 --0.4444520697 --2.40938568115 --0.444461092353 --2.37487232685 --0.444476112723 --2.34035795927 --0.444497197866 --2.30584216118 --0.444516979158 --2.26936477423 --0.444497652351 --2.23288917541 --0.444476485252 --2.19837319851 --0.444461300969 --2.16385889054 --0.444452166558 --2.12934553623 --0.444449074567 --2.09483271838 --0.4444520697 --2.06031984091 --0.444461070001 --2.025806427 --0.444476157427 --1.99129211903 --0.444497197866 --1.95677632093 --0.444516979158 --1.92029887438 --0.444497674703 --1.88382327557 --0.444476485252 --1.84930741787 --0.444461300969 --1.81479305029 --0.444452166558 --1.78027966618 --0.444449074567 --1.74576681852 --0.4444520697 --1.71125394106 --0.444461070001 --1.67674058676 --0.444476135075 --1.64222627878 --0.444497197866 --1.60771045089 --0.444516979158 --1.57123306394 --0.44449763 --1.53475740552 --0.444476462901 --1.50024154782 --0.444461300969 --1.46572721004 --0.44445219636 --1.43121382594 --0.444449074567 --1.39670094848 --0.444452047348 --1.36218810081 --0.444461070001 --1.32767474652 --0.444476112723 --1.29316043854 --0.444497197866 --1.25864461064 --0.444516979158 --1.22216716409 --0.444497607648 --1.18569156528 --0.444476485252 --1.15117573739 --0.444461300969 --1.1166613698 --0.444452166558 --1.08214795589 --0.444449074567 --1.04763510823 --0.444452047348 --1.01312226057 --0.444461070001 --0.978608906269 --0.444476135075 --0.944094568491 --0.444497197866 --0.909578740597 --0.44451700151 --0.873101323843 --0.444497652352 --0.836625695229 --0.444476462901 --0.802109852433 --0.444461300969 --0.767595484853 --0.444452166558 --0.733082130551 --0.444449074567 --0.698569282889 --0.4444520697 --0.664056405425 --0.444461070001 --0.629543051124 --0.444476135075 --0.595028713346 --0.444497197866 --0.560512900353 --0.444516979158 --0.524035483599 --0.444497652351 --0.487559847534 --0.444476440549 --0.453043997288 --0.444461300969 --0.41852966696 --0.444452166558 --0.384016275406 --0.444449074567 --0.349503405392 --0.4444520697 --0.31499055773 --0.444461070001 --0.280477181077 --0.444476112723 --0.245962865651 --0.444497197866 --0.211447056383 --0.444516979158 --0.174969621003 --0.355318836868 --0.138458169996 --0.355301506818 --0.103942602873 --0.355289109051 --0.0694285277277 --0.355281628668 --0.0349154528231 --0.355279162526 --0.00040286965668 --0.355281569064 -0.0341097088531 --0.355288945138 -0.0686227818951 --0.3553012833 -0.103136831895 --0.355318494141 -0.137652371079 --0.355334654451 -0.174130927771 --0.355318836868 -0.210607681424 --0.355301506818 -0.245123241097 --0.355289109051 -0.279637329281 --0.355281628668 -0.314150393009 --0.355279162526 -0.348662987351 --0.355281569064 -0.383175566793 --0.355288945138 -0.417688630522 --0.355301260948 -0.452202685177 --0.355318471789 -0.48671822995 --0.355334624648 -0.523196771741 --0.355318814516 -0.559673547744 --0.355301506818 -0.594189092517 --0.355289109051 -0.628703191877 --0.355281628668 -0.663216233253 --0.355279162526 -0.697728842497 --0.355281591415 -0.732241407037 --0.355288945138 -0.766754493117 --0.3553012833 -0.801268517971 --0.355318471789 -0.835784062743 --0.355334639549 -0.872262611985 --0.355318836868 -0.908739387989 --0.355301484466 -0.943254962564 --0.355289109051 -0.97776901722 --0.35528165102 -1.0122820735 --0.355279162526 -1.04679468274 --0.355281569064 -1.08130729198 --0.355288945138 -1.11582031846 --0.3553012833 -1.15033438802 --0.355318471789 -1.18484991789 --0.355334639549 -1.22132846713 --0.355318836868 -1.25780522824 --0.355301506818 -1.29232078791 --0.355289109051 -1.32683485746 --0.35528165102 -1.36134791374 --0.355279162526 -1.39586052299 --0.355281591415 -1.43037310243 --0.355288945138 -1.4648861587 --0.3553012833 -1.49940025806 --0.355318471789 -1.53391578794 --0.355334639549 -1.57039430738 --0.355318814516 -1.60687109828 --0.355301484466 -1.64138665795 --0.355289109051 -1.67590072751 --0.35528165102 -1.71041381359 --0.355279162526 -1.74492639303 --0.355281569064 -1.77943897247 --0.35528896749 -1.81395202875 --0.3553012833 -1.84846606851 --0.355318471789 -1.88298159838 --0.355334639549 -1.91946020722 --0.355318836868 -1.95593693853 --0.355301506818 -1.9904524684 --0.355289109051 -2.02496653796 --0.35528165102 -2.05947965383 --0.355279162526 -2.09399223327 --0.355281591415 -2.12850487232 --0.355288922786 -2.16301786899 --0.3553012833 -2.19753187895 --0.355318471789 -2.23204743862 --0.355334639549 -2.26852601766 --0.355318836868 -2.30500274897 --0.355301506818 -2.33951830864 --0.355289109051 -2.3740323782 --0.35528165102 -2.40854543447 --0.355279162526 -2.44305807352 --0.355281569064 -2.47757065296 --0.35528896749 -2.51208370924 --0.355301260948 -2.5465977788 --0.355318471789 -2.58111333847 --0.355334639549 -2.61759185791 --0.355318836868 -2.65406864881 --0.355301506818 -2.68858420849 --0.355289109051 -2.72309827805 --0.355281628668 -2.75761133432 --0.355279162526 -2.79212397337 --0.355281569064 -2.8266364336 --0.355288945138 -2.86114960909 --0.3553012833 -2.89566361904 --0.355318471789 -2.93017917871 --0.355334661901 -2.96665775776 --0.355318836868 -3.00313448906 --0.355301506818 -3.03765004873 --0.355289109051 -3.07216411829 --0.355281628668 -3.10667717457 --0.355279162526 -3.1411898454 --0.355281569064 --3.10748302936 --0.355288945138 --3.07296985388 --0.3553012833 --3.03845584393 --0.355318494141 --3.00394028425 --0.355334654451 --2.96746170521 --0.355318836868 --2.9309849739 --0.355301506818 --2.89646947384 --0.355289109051 --2.86195534468 --0.355281628668 --2.82744222879 --0.355279162526 --2.79292964935 --0.355281569064 --2.75841701031 --0.355288945138 --2.72390401363 --0.355301260948 --2.68939000368 --0.355318471789 --2.65487444401 --0.355334624648 --2.61839586496 --0.355318814516 --2.58191913366 --0.355301506818 --2.54740357399 --0.355289109051 --2.51288944483 --0.355281628668 --2.47837644815 --0.355279162526 --2.44386386871 --0.355281591415 --2.40935122966 --0.355288945138 --2.37483817339 --0.3553012833 --2.34032410383 --0.355318471789 --2.30580866337 --0.355334639549 --2.26933008433 --0.355318836868 --2.23285323381 --0.355301484466 --2.19833767414 --0.355289109051 --2.16382360458 --0.35528165102 --2.12931054831 --0.355279162526 --2.09479796887 --0.355281569064 --2.06028544903 --0.355288945138 --2.02577227354 --0.3553012833 --1.99125826359 --0.355318471789 --1.95674273372 --0.355334639549 --1.92026415467 --0.355318836868 --1.88378742337 --0.355301506818 --1.8492718339 --0.355289109051 --1.81475776434 --0.35528165102 --1.78024470806 --0.355279162526 --1.74573212862 --0.355281591415 --1.71121954918 --0.355288945138 --1.6767064631 --0.3553012833 --1.64219242335 --0.355318471789 --1.60767689348 --0.355334639549 --1.57119831443 --0.355318814516 --1.53472155333 --0.355301484466 --1.50020602346 --0.355289109051 --1.46569192409 --0.35528165102 --1.43117886782 --0.355279162526 --1.39666625857 --0.355281569064 --1.36215370893 --0.35528896749 --1.32764062285 --0.3553012833 --1.2931265831 --0.355318471789 --1.25861102343 --0.355334639549 --1.22213247418 --0.355318836868 --1.18565571308 --0.355301506818 --1.15114015341 --0.355289109051 --1.11662608385 --0.35528165102 --1.08211302757 --0.355279162526 --1.04760041833 --0.355281591415 --1.01308783889 --0.355288922786 --0.978574737906 --0.3553012833 --0.944060727954 --0.355318471789 --0.909545168281 --0.355334639549 --0.87306663394 --0.355318836868 --0.836589872837 --0.355301506818 --0.802074328065 --0.355289109051 --0.767560243607 --0.35528165102 --0.733047157526 --0.355279162526 --0.698534563184 --0.355281569064 --0.664021968842 --0.35528896749 --0.629508927465 --0.355301260948 --0.594994872808 --0.355318471789 --0.560479328036 --0.355334639549 --0.524000793696 --0.355318836868 --0.487524025142 --0.355301506818 --0.453008458018 --0.355289109051 --0.418494403362 --0.355281628668 --0.38398129493 --0.355279162526 --0.34946872294 --0.355281569064 --0.314956136048 --0.355288945138 --0.28044307977 --0.3553012833 --0.245929017663 --0.355318471789 --0.211413487792 --0.355334661901 --0.174934923649 --0.268557786942 --0.138420257717 --0.268544405699 --0.103905001655 --0.26853492111 --0.0693912282586 --0.268529176712 --0.0348784504458 --0.268527254462 --0.000366169493642 --0.268529109657 -0.0341461091302 --0.26853479445 -0.0686588771641 --0.268544256687 -0.103172631934 --0.268557533622 -0.137687858194 --0.268569931388 -0.174167636782 --0.268557749688 -0.210645586252 --0.268544450402 -0.245160840452 --0.26853492111 -0.279674626887 --0.268529176712 -0.314187400043 --0.268527254462 -0.348699681461 --0.268529109657 -0.383211947978 --0.26853479445 -0.417724713683 --0.268544256687 -0.452238485217 --0.268557555974 -0.486753717065 --0.268569931388 -0.523233488202 --0.268557749688 -0.559711456299 --0.268544405699 -0.594226703048 --0.26853492111 -0.628740459681 --0.268529176712 -0.663253262639 --0.268527254462 -0.697765529156 --0.268529109657 -0.732277795672 --0.268534772098 -0.766790568828 --0.268544256687 -0.801304340362 --0.268557533622 -0.835819587112 --0.268569931388 -0.872299343348 --0.268557749688 -0.908777296543 --0.268544450402 -0.943292558193 --0.26853492111 -0.977806314826 --0.268529161811 -1.01231914758 --0.268527254462 -1.0468313992 --0.268529109657 -1.08134365082 --0.268534772098 -1.11585643888 --0.268544256687 -1.1503701806 --0.268557555974 -1.18488544225 --0.268569931388 -1.22136518359 --0.268557749688 -1.25784313679 --0.268544428051 -1.29235839843 --0.26853492111 -1.32687216997 --0.268529176712 -1.36138492822 --0.268527254462 -1.39589723944 --0.268529109657 -1.43040952087 --0.26853479445 -1.46492227912 --0.268544256687 -1.49943605065 --0.268557555973 -1.5339512825 --0.268569931388 -1.57043102384 --0.26855776459 -1.60690900684 --0.268544450402 -1.64142426848 --0.26853492111 -1.67593804002 --0.268529176712 -1.71045082808 --0.268527254462 -1.74496307969 --0.268529109657 -1.77947533131 --0.268534772098 -1.81398811936 --0.268544256687 -1.84850186109 --0.268557533622 -1.88301709294 --0.268569931388 -1.91949692368 --0.268557749688 -1.95597484708 --0.26854442805 -1.99049007892 --0.26853492111 -2.02500385046 --0.268529161811 -2.05951660871 --0.268527254462 -2.09402889013 --0.268529109657 -2.12854117155 --0.268534772098 -2.16305392981 --0.268544256687 -2.19756776094 --0.268557533622 -2.23208290338 --0.268569931388 -2.26856279373 --0.268557749688 -2.30504071713 --0.268544405699 -2.33955591917 --0.26853492111 -2.37406975031 --0.268529176712 -2.40858250856 --0.268527254462 -2.44309478998 --0.268529109657 -2.4776070118 --0.268534816802 -2.51211988926 --0.268544256687 -2.54663354158 --0.268557533622 -2.58114880324 --0.268569931388 -2.61762857437 --0.268557749688 -2.65410649776 --0.26854442805 -2.68862175941 --0.26853492111 -2.72313553095 --0.268529176712 -2.75764840842 --0.268527254462 -2.79216063023 --0.268529109657 -2.82667297125 --0.268534772098 -2.8611857295 --0.268544256687 -2.89569938183 --0.268557533622 -2.93021470308 --0.268569931388 -2.96669441462 --0.268557786942 -3.00317245722 --0.268544405699 -3.03768765926 --0.26853492111 -3.0722014308 --0.268529176712 -3.10671418906 --0.268527254462 -3.14122650226 --0.268529109657 --3.10744649172 --0.26853479445 --3.07293373347 --0.268544256687 --3.03841996193 --0.268557533622 --3.00390475988 --0.268569931388 --2.96742504835 --0.268557749688 --2.93094706535 --0.268544450402 --2.89643180371 --0.26853492111 --2.86191803217 --0.268529176712 --2.82740527391 --0.268527254462 --2.7928929925 --0.268529109657 --2.75838071108 --0.26853479445 --2.72386795283 --0.268544256687 --2.68935412169 --0.268557555974 --2.65483897925 --0.268569931388 --2.6183590889 --0.268557749688 --2.58188122511 --0.268544405699 --2.54736596346 --0.26853492111 --2.51285213232 --0.268529176712 --2.47833943367 --0.268527254462 --2.44382715225 --0.268529109657 --2.40931487083 --0.268534772098 --2.37480211258 --0.268544256687 --2.34028834104 --0.268557533622 --2.3057730794 --0.268569931388 --2.26929330826 --0.268557749688 --2.23281538486 --0.268544450402 --2.19830006361 --0.26853492111 --2.16378635168 --0.268529161811 --2.12927347422 --0.268527254462 --2.0947612524 --0.268529109657 --2.06024897099 --0.268534772098 --2.02573615313 --0.268544256687 --1.991222471 --0.268557555974 --1.95670723915 --0.268569931388 --1.92022749782 --0.268557749688 --1.88374951482 --0.268544428051 --1.84923425317 --0.26853492111 --1.81472048163 --0.268529176712 --1.78020769357 --0.268527254462 --1.74569544196 --0.268529109657 --1.71118313074 --0.26853479445 --1.67667037249 --0.268544256687 --1.64215666056 --0.268557555973 --1.60764139891 --0.268569931388 --1.57116159797 --0.26855776459 --1.53468364477 --0.268544450402 --1.50016841292 --0.26853492111 --1.46565461159 --0.268529176712 --1.43114182353 --0.268527254462 --1.39662954211 --0.268529109657 --1.3621172905 --0.268534772098 --1.32760456204 --0.268544256687 --1.29309076071 --0.268557533622 --1.25857552886 --0.268569931388 --1.22209578753 --0.268557749688 --1.18561780453 --0.26854442805 --1.15110254287 --0.26853492111 --1.11658880115 --0.268529161811 --1.08207601309 --0.268527254462 --1.04756373167 --0.268529109657 --1.01305145025 --0.268534772098 --0.978538662195 --0.268544256687 --0.944024920464 --0.268557533622 --0.909509718418 --0.268569931388 --0.873029902578 --0.268557749688 --0.836551949382 --0.268544405699 --0.802036702633 --0.26853492111 --0.767522931099 --0.268529176712 --0.733010143042 --0.268527254462 --0.698497876525 --0.268529109657 --0.663985624909 --0.268534816802 --0.629472821951 --0.268544256687 --0.594959080219 --0.268557533622 --0.560443848371 --0.268569931388 --0.523964077234 --0.268557749688 --0.487486109138 --0.26854442805 --0.452970862389 --0.26853492111 --0.418457090855 --0.268529176712 --0.383944302797 --0.268527254462 --0.34943202883 --0.268529109657 --0.314919732511 --0.268534772098 --0.280406974256 --0.268544256687 --0.245893217623 --0.268557533622 --0.211377985775 --0.268569931388 --0.174898214638 --0.181822847575 --0.138381261378 --0.181813709438 --0.103866308927 --0.18180718273 --0.0693528456613 --0.181803248823 --0.0348403728567 --0.18180193007 --0.000328402500603 --0.18180321902 -0.0341835664585 --0.181807097048 -0.0686960266903 --0.181813586503 -0.103209473193 --0.181822720915 -0.137724403292 --0.181831214577 -0.1742054075 --0.181822847575 -0.210684597492 --0.181813709438 -0.245199538767 --0.18180718273 -0.279713012278 --0.181803248823 -0.314225487411 --0.18180193007 -0.348737448454 --0.181803200394 -0.383249409497 --0.181807111949 -0.417761877179 --0.181813601404 -0.452275335789 --0.181822720915 -0.486790239811 --0.181831214577 -0.523271262646 --0.181822847575 -0.559750452638 --0.181813709438 -0.594265386462 --0.18180718273 -0.628778845072 --0.181803248823 -0.663291320205 --0.18180193007 -0.697803273797 --0.181803200394 -0.732315272093 --0.181807111949 -0.766827717423 --0.181813601404 -0.801341176033 --0.181822720915 -0.835856094956 --0.181831214577 -0.87233710289 --0.181822847575 -0.908816307783 --0.181813709438 -0.943331256509 --0.181807164103 -0.977844700217 --0.181803248823 -1.01235720515 --0.18180193007 -1.04686915875 --0.181803200394 -1.08138114214 --0.181807111949 -1.11589357257 --0.181813601404 -1.15040701628 --0.181822720915 -1.1849219799 --0.181831214577 -1.22140294313 --0.181822847575 -1.25788214802 --0.181813728064 -1.29239708185 --0.18180718273 -1.32691058516 --0.181803248823 -1.36142304539 --0.18180193007 -1.39593496918 --0.181803200394 -1.43044695258 --0.181807097048 -1.46495944262 --0.181813601404 -1.49947288632 --0.181822720915 -1.53398779035 --0.181831214577 -1.57046878338 --0.181822847575 -1.60694798827 --0.181813728064 -1.6414629817 --0.181807164103 -1.67597639561 --0.181803248823 -1.71048888564 --0.18180193007 -1.74500086904 --0.18180321902 -1.77951285243 --0.181807111949 -1.81402525306 --0.181813601404 -1.84853872657 --0.181822720915 -1.88305366039 --0.181831214577 -1.91953468323 --0.181822847575 -1.95601385832 --0.181813709438 -1.99052876234 --0.181807164103 -2.02504217624 --0.181803248823 -2.05955475569 --0.18180193007 -2.09406673908 --0.181803200394 -2.12857866287 --0.181807111949 -2.16309112311 --0.181813601404 -2.19760459662 --0.181822720915 -2.23211950064 --0.181831214577 -2.26860058308 --0.181822847575 -2.30507969856 --0.181813728064 -2.33959466219 --0.181807164103 -2.3741081357 --0.181803248823 -2.40862053633 --0.18180193007 -2.44313257932 --0.18180321902 -2.47764450312 --0.181807111949 -2.51215696335 --0.181813601404 -2.54667049646 --0.181822720915 -2.58118534088 --0.181831214577 -2.61766636372 --0.181822847575 -2.6541454792 --0.181813728064 -2.68866050243 --0.18180718273 -2.72317397594 --0.181803248823 -2.75768643618 --0.18180193007 -2.79219835996 --0.181803200394 -2.82671040297 --0.181807097048 -2.86122280359 --0.181813601404 -2.89573627711 --0.181822720915 -2.93025118112 --0.181831214577 -2.96673214436 --0.181822847575 -3.00321143866 --0.181813709438 -3.03772628308 --0.18180718273 -3.07223975658 --0.181803248823 -3.10675233603 --0.18180193007 -3.14126423199 --0.18180321902 --3.10740906 --0.181807097048 --3.07289654016 --0.181813586503 --3.03838318586 --0.181822720915 --3.00386828184 --0.181831214577 --2.96738731861 --0.181822847575 --2.93090802431 --0.181813709438 --2.89639317989 --0.18180718273 --2.86187964678 --0.181803248823 --2.82736712694 --0.18180193007 --2.79285520315 --0.181803200394 --2.75834327936 --0.181807111949 --2.72383075952 --0.181813601404 --2.68931740523 --0.181822720915 --2.65480238199 --0.181831214577 --2.61832135916 --0.181822847575 --2.58184218407 --0.181813709438 --2.54732728004 --0.18180718273 --2.51281374693 --0.181803248823 --2.4783013463 --0.18180193007 --2.44378936291 --0.181803200394 --2.40927737952 --0.181807111949 --2.37476497889 --0.181813601404 --2.34025144577 --0.181822720915 --2.30573654175 --0.181831214577 --2.26925551891 --0.181822847575 --2.23277640343 --0.181813709438 --2.19826138019 --0.181807164103 --2.16374796629 --0.181803248823 --2.12923550606 --0.18180193007 --2.09472352267 --0.181803200394 --2.06021153927 --0.181807111949 --2.02569913864 --0.181813601404 --1.99118563533 --0.181822720915 --1.9566707015 --0.181831214577 --1.92018970847 --0.181822847575 --1.88371053338 --0.181813728064 --1.84919553995 --0.18180718273 --1.81468206644 --0.181803248823 --1.78016963601 --0.18180193007 --1.74565765262 --0.181803200394 --1.71114566922 --0.181807097048 --1.67663323879 --0.181813601404 --1.64211976528 --0.181822720915 --1.60760483145 --0.181831214577 --1.57112383842 --0.181822847575 --1.53464463353 --0.181813728064 --1.5001296997 --0.181807164103 --1.465616256 --0.181803248823 --1.43110379577 --0.18180193007 --1.39659178257 --0.18180321902 --1.36207982898 --0.181807111949 --1.32756736875 --0.181813601404 --1.29305392504 --0.181822720915 --1.25853902102 --0.181831214577 --1.22205799818 --0.181822847575 --1.18557885289 --0.181813709438 --1.15106385946 --0.181807164103 --1.11655035615 --0.181803248823 --1.08203789592 --0.18180193007 --1.04752597213 --0.181803200394 --1.01301398873 --0.181807111949 --0.9785015136 --0.181813601404 --0.943988069892 --0.181822720915 --0.909473150969 --0.181831214577 --0.872992128134 --0.181822847575 --0.836512953043 --0.181813728064 --0.801998019218 --0.181807164103 --0.767484545707 --0.181803248823 --0.732972070575 --0.18180193007 --0.698460102082 --0.18180321902 --0.663948148489 --0.181807111949 --0.629435673356 --0.181813601404 --0.594922229648 --0.181822720915 --0.560407295823 --0.181831214577 --0.523926287889 --0.181822847575 --0.487447120249 --0.181813728064 --0.452932156623 --0.18180718273 --0.418418705464 --0.181803248823 --0.38390622288 --0.18180193007 --0.349394254387 --0.181803200394 --0.314882285893 --0.181807097048 --0.280369825661 --0.181813601404 --0.245856378228 --0.181822720915 --0.211341455579 --0.181831214577 --0.174860440194 --0.0948065780102 --0.138344243169 --0.0948017761112 --0.103829585016 --0.0947983488439 --0.0693164188415 --0.0947962850332 --0.0348042435944 --0.0947955604643 --0.000292564043775 --0.0947962477802 -0.0342191094533 --0.0947983153164 -0.0687312800437 --0.0948017239571 -0.103244433179 --0.0948065295814 -0.137759067118 --0.0948110055179 -0.174241259694 --0.0948065780102 -0.210721608251 --0.0948017761112 -0.245236262679 --0.0947983488439 -0.279749438167 --0.0947962850332 -0.314261607826 --0.0947955604643 -0.348773270845 --0.0947962477802 -0.383284948766 --0.0947983153164 -0.417797118425 --0.0948017239571 -0.452310293913 --0.0948065295814 -0.486824929714 --0.0948110055179 -0.523307099938 --0.0948065780102 -0.559787467122 --0.0948017761112 -0.594302132726 --0.0947983320802 -0.628815293312 --0.0947962850332 -0.663327440619 --0.0947955772283 -0.697839140892 --0.0947962477802 -0.732350826263 --0.0947983153164 -0.766862973571 --0.0948017239571 -0.801376134157 --0.0948065295814 -0.835890769958 --0.0948110055179 -0.872372955084 --0.0948065780102 -0.908853307366 --0.0948017761112 -0.943367958069 --0.0947983320802 -0.977881148458 --0.0947962850332 -1.01239335537 --0.0947955604643 -1.04690495133 --0.0947962477802 -1.08141666651 --0.0947983153164 -1.11592882871 --0.0948017239571 -1.1504419744 --0.0948065295814 -1.1849566102 --0.0948110055179 -1.22143879533 --0.0948065780102 -1.25791919232 --0.0948017761112 -1.29243382812 --0.0947983488439 -1.3269469738 --0.0947962850332 -1.36145913601 --0.0947955604643 -1.39597082138 --0.0947962477802 -1.43048250675 --0.0947983153164 -1.46499466896 --0.0948017239571 -1.49950784445 --0.0948065295814 -1.53402248025 --0.0948110055179 -1.57050466538 --0.0948065780102 -1.60698500276 --0.0948017761112 -1.64149966836 --0.0947983488439 -1.67601284385 --0.0947962850332 -1.71052503586 --0.0947955772283 -1.74503672123 --0.0947962477802 -1.7795483768 --0.0947983153164 -1.81406053901 --0.0948017239571 -1.84857368469 --0.0948065295814 -1.88308829069 --0.0948110055179 -1.91957053542 --0.0948065780102 -1.95605087281 --0.0948017761112 -1.9905655086 --0.0947983320802 -2.02507865429 --0.0947962850332 -2.0595908761 --0.0947955772283 -2.09410250187 --0.0947962477802 -2.12861418724 --0.0947983153164 -2.16312640905 --0.0948017239571 -2.19763952494 --0.0948065295814 -2.23215419054 --0.0948110055179 -2.26863634586 --0.0948065780102 -2.30511671305 --0.0948017761112 -2.33963137865 --0.0947983488439 -2.37414461374 --0.0947962850332 -2.40865671635 --0.0947955604643 -2.44316846132 --0.0947962477802 -2.47768008709 --0.0947983153164 -2.5121922493 --0.0948017239571 -2.54670536518 --0.0948065295814 -2.58122003079 --0.0948110055179 -2.61770224571 --0.0948065780102 -2.6541826129 --0.0948017761112 -2.68869715929 --0.0947983488439 -2.72321039438 --0.0947962850332 -2.75772255659 --0.0947955604643 -2.79223424196 --0.0947962477802 -2.82674592733 --0.0947983153164 -2.86125808954 --0.0948017239571 -2.89577126503 --0.0948065295814 -2.93028587103 --0.0948110055179 -2.96676808596 --0.0948065780102 -3.00324839353 --0.0948017761112 -3.03776305914 --0.0947983488439 -3.07227623463 --0.0947962850332 -3.10678839684 --0.0947955604643 -3.14130005439 --0.0947962477802 --3.10737353563 --0.0947983153164 --3.07286137342 --0.0948017239571 --3.03834819793 --0.0948065295814 --3.00383359194 --0.0948110055179 --2.96735137701 --0.0948065780102 --2.93087106943 --0.0948017761112 --2.89635634422 --0.0947983488439 --2.86184322834 --0.0947962850332 --2.82733106613 --0.0947955604643 --2.79281932116 --0.0947962477802 --2.75830769539 --0.0947983153164 --2.72379547358 --0.0948017239571 --2.68928229809 --0.0948065295814 --2.65476775169 --0.0948110055179 --2.61828559637 --0.0948065780102 --2.58180516958 --0.0948017761112 --2.54729050398 --0.0947983320802 --2.51277732849 --0.0947962850332 --2.47826522589 --0.0947955772283 --2.44375354052 --0.0947962477802 --2.40924179554 --0.0947983153164 --2.37472969294 --0.0948017239571 --2.34021651745 --0.0948065295814 --2.30570185184 --0.0948110055179 --2.26921969652 --0.0948065780102 --2.23273932934 --0.0948017761112 --2.19822472334 --0.0947983320802 --2.16371148825 --0.0947962850332 --2.12919932604 --0.0947955604643 --2.09468770027 --0.0947962477802 --2.0601759553 --0.0947983153164 --2.02566379309 --0.0948017239571 --1.9911506772 --0.0948065295814 --1.9566360116 --0.0948110055179 --1.92015382647 --0.0948065780102 --1.88367348909 --0.0948017761112 --1.84915882349 --0.0947983488439 --1.814645648 --0.0947962850332 --1.78013348579 --0.0947955604643 --1.74562180042 --0.0947962477802 --1.71111014485 --0.0947983153164 --1.67659798265 --0.0948017239571 --1.64208480716 --0.0948065295814 --1.60757020116 --0.0948110055179 --1.57108798623 --0.0948065780102 --1.53460764885 --0.0948017761112 --1.50009301305 --0.0947983488439 --1.46557983756 --0.0947962850332 --1.43106761575 --0.0947955772283 --1.39655596018 --0.0947962477802 --1.36204427481 --0.0947983153164 --1.3275321126 --0.0948017239571 --1.29301899672 --0.0948065295814 --1.25850433111 --0.0948110055179 --1.22202214599 --0.0948065780102 --1.18554177881 --0.0948017761112 --1.1510271132 --0.0947983320802 --1.11651396751 --0.0947962850332 --1.08200180531 --0.0947955772283 --1.04749011993 --0.0947962477802 --1.01297846437 --0.0947983153164 --0.978466272354 --0.0948017239571 --0.943953096866 --0.0948065295814 --0.909438461065 --0.0948110055179 --0.87295627594 --0.0948065780102 --0.836475938559 --0.0948017761112 --0.801961287856 --0.0947983488439 --0.767448112369 --0.0947962850332 --0.732935920358 --0.0947955604643 --0.698424234986 --0.0947962477802 --0.663912594318 --0.0947983153164 --0.62940043211 --0.0948017239571 --0.594887241721 --0.0948065295814 --0.560372620821 --0.0948110055179 --0.523890420794 --0.0948065780102 --0.487410083413 --0.0948017761112 --0.45289543271 --0.0947983488439 --0.418382264674 --0.0947962850332 --0.383870102465 --0.0947955604643 --0.349358409643 --0.0947962477802 --0.314846731722 --0.0947983153164 --0.280334576964 --0.0948017239571 --0.245821412653 --0.0948065295814 --0.211306773126 --0.0948110055179 --0.174824599177 --1.74623000001e-08 --0.138161104172 -1.88592750002e-08 --0.103646596894 --5.35509999972e-09 --0.069133576937 --2.79400000011e-09 --0.0346215399913 --1.16414999992e-09 --0.000110000139105 --1.69966250002e-08 -0.0344015406445 --5.35510000016e-09 -0.0689135706052 -1.88592749997e-08 -0.103426605463 --2.09550000008e-09 -0.137941110879 --2.35158749999e-08 -0.174422927201 --1.74623000001e-08 -0.210904743522 -1.88592750002e-08 -0.245419248938 --5.35509999972e-09 -0.279932282865 --2.79400000011e-09 -0.314444310963 --1.16414999992e-09 -0.348955839872 --1.69966250002e-08 -0.383467391133 --5.35510000016e-09 -0.417979419232 -1.88592749997e-08 -0.452492453158 --2.09550000008e-09 -0.487006954849 --2.35158749999e-08 -0.523488774895 --1.74623000001e-08 -0.559970587492 -1.88592750002e-08 -0.594485104084 --5.35509999972e-09 -0.62899813056 --2.79400000011e-09 -0.663510143757 --1.16414999992e-09 -0.698021709919 --1.69966250002e-08 -0.732533216476 --5.35510000016e-09 -0.767045259475 -1.88592749997e-08 -0.801558285952 --2.09550000008e-09 -0.836072802544 --2.35158749999e-08 -0.872554630041 --1.74623000001e-08 -0.909036427737 -1.88592750002e-08 -0.943550929427 --5.35509999972e-09 -0.978064000607 --2.79400000011e-09 -1.0125760138 --1.16414999992e-09 -1.04708752036 --1.69966250002e-08 -1.08159905672 --5.35510000016e-09 -1.11611112952 -1.88592749997e-08 -1.1506241262 --2.09550000008e-09 -1.18513867259 --2.35158749999e-08 -1.22162050009 --1.74623000001e-08 -1.25810232759 -1.88592750002e-08 -1.29261678457 --5.35509999972e-09 -1.32712981104 --2.79400000011e-09 -1.36164185405 --1.16414999992e-09 -1.39615339041 --1.69966250002e-08 -1.43066495657 --5.35510000016e-09 -1.46517699957 -1.88592749997e-08 -1.49968999624 --2.09550000008e-09 -1.53420451284 --2.35158749999e-08 -1.57068634033 --1.74623000001e-08 -1.60716810823 -1.88592750002e-08 -1.64168265462 --5.35509999972e-09 -1.67619568109 --2.79400000011e-09 -1.71070772409 --1.16414999992e-09 -1.74521929026 --1.69966250002e-08 -1.77973073721 --5.35510000016e-09 -1.81424278021 -1.88592749997e-08 -1.84875583649 --2.09550000008e-09 -1.88327035308 --2.35158749999e-08 -1.91975218058 --1.74623000001e-08 -1.95623400808 -1.88592750002e-08 -1.99074852467 --5.35509999972e-09 -2.02526152134 --2.79400000011e-09 -2.05977356434 --1.16414999992e-09 -2.0942851305 --1.69966250002e-08 -2.12879663706 --5.35510000016e-09 -2.16330868006 -1.88592749997e-08 -2.19782173634 --2.09550000008e-09 -2.23233622312 --2.35158749999e-08 -2.26881802082 --1.74623000001e-08 -2.30529981851 -1.88592750002e-08 -2.33981430531 --5.35509999972e-09 -2.37432742119 --2.79400000011e-09 -2.40883946419 --1.16414999992e-09 -2.44335091114 --1.69966250002e-08 -2.4778624773 --5.35510000016e-09 -2.5123745203 -1.88592749997e-08 -2.54688751698 --2.09550000008e-09 -2.58140206337 --2.35158749999e-08 -2.61788386107 --1.74623000001e-08 -2.65436565876 -1.88592750002e-08 -2.68888020515 --5.35509999972e-09 -2.72339320183 --2.79400000011e-09 -2.75790524483 --1.16414999992e-09 -2.79241681099 --1.69966250002e-08 -2.82692837715 --5.35510000016e-09 -2.86144042015 -1.88592749997e-08 -2.89595341682 --2.09550000008e-09 -2.93046784401 --2.35158749999e-08 -2.96694970131 --1.74623000001e-08 -3.00343155861 -1.88592750002e-08 -3.037946105 --5.35509999972e-09 -3.07245910168 --2.79400000011e-09 -3.10697114468 --1.16414999992e-09 -3.14148274262 --1.69966250002e-08 --3.10719108582 --5.35510000016e-09 --3.07267904282 -1.88592749997e-08 --3.03816604614 --2.09550000008e-09 --3.00365161896 --2.35158749999e-08 --2.96716976166 --1.74623000001e-08 --2.93068790436 -1.88592750002e-08 --2.89617335796 --5.35509999972e-09 --2.86166036129 --2.79400000011e-09 --2.82714831829 --1.16414999992e-09 --2.79263681174 --1.69966250002e-08 --2.75812530518 --5.35510000016e-09 --2.72361326218 -1.88592749997e-08 --2.6891002059 --2.09550000008e-09 --2.6545856595 --2.35158749999e-08 --2.61810392141 --1.74623000001e-08 --2.58162212372 -1.88592750002e-08 --2.54710757732 --5.35509999972e-09 --2.51259452105 --2.79400000011e-09 --2.47808247805 --1.16414999992e-09 --2.44357097149 --1.69966250002e-08 --2.40905940533 --5.35510000016e-09 --2.37454742193 -1.88592749997e-08 --2.34003436565 --2.09550000008e-09 --2.30551981926 --2.35158749999e-08 --2.26903802156 --1.74623000001e-08 --2.23255628348 -1.88592750002e-08 --2.19804173708 --5.35509999972e-09 --2.1635286808 --2.79400000011e-09 --2.1290166378 --1.16414999992e-09 --2.09450507164 --1.69966250002e-08 --2.05999350548 --5.35510000016e-09 --2.02548158169 -1.88592749997e-08 --1.99096849561 --2.09550000008e-09 --1.95645397901 --2.35158749999e-08 --1.91997218132 --1.74623000001e-08 --1.88349038362 -1.88592750002e-08 --1.84897586703 --5.35509999972e-09 --1.81446284056 --2.79400000011e-09 --1.77995079756 --1.16414999992e-09 --1.74543923139 --1.69966250002e-08 --1.71092769503 --5.35510000016e-09 --1.67641565204 -1.88592749997e-08 --1.64190262556 --2.09550000008e-09 --1.60738816857 --2.35158749999e-08 --1.57090634107 --1.74623000001e-08 --1.53442451358 -1.88592750002e-08 --1.49990996719 --5.35509999972e-09 --1.46539694071 --2.79400000011e-09 --1.43088489771 --1.16414999992e-09 --1.39637342095 --1.69966250002e-08 --1.36186188459 --5.35510000016e-09 --1.32734984159 -1.88592749997e-08 --1.29283681512 --2.09550000008e-09 --1.25832226873 --2.35158749999e-08 --1.22184047103 --1.74623000001e-08 --1.18535864353 -1.88592750002e-08 --1.15084415674 --5.35509999972e-09 --1.11633113026 --2.79400000011e-09 --1.08181911707 --1.16414999992e-09 --1.04730755091 --1.69966250002e-08 --1.01279601455 --5.35510000016e-09 --0.978283986449 -1.88592749997e-08 --0.943770959973 --2.09550000008e-09 --0.909256443382 --2.35158749999e-08 --0.872774630785 --1.74623000001e-08 --0.836292788386 -1.88592750002e-08 --0.801778301597 --5.35509999972e-09 --0.767265275121 --2.79400000011e-09 --0.732753232122 --1.16414999992e-09 --0.698241695762 --1.69966250002e-08 --0.663730159402 --5.35510000016e-09 --0.629218146205 -1.88592749997e-08 --0.594705089927 --2.09550000008e-09 --0.560190603137 --2.35158749999e-08 --0.52370877564 --1.74623000001e-08 --0.487226948142 -1.88592750002e-08 --0.452712461352 --5.35509999972e-09 --0.418199427426 --2.79400000011e-09 --0.383687384426 --1.16414999992e-09 --0.349175848067 --1.69966250002e-08 --0.314664319158 --5.35510000016e-09 --0.280152276158 -1.88592749997e-08 --0.245639242232 --2.09550000008e-09 --0.211124733091 --2.35158749999e-08 --0.174642927945 -0.0948065463454 --0.137979071587 -0.0948017239571 --0.103464432061 -0.0947983115913 --0.0689512798562 -0.0947962533685 --0.0344391111284 -0.0947956033051 -7.2564464065e-05 -0.0947962794452 -0.0345842400566 -0.0947983674704 -0.0690964153037 -0.0948017798365 -0.103609587997 -0.0948065463452 -0.1381242387 -0.0948109868913 -0.174604598433 -0.0948065463454 -0.211086783558 -0.0948017239571 -0.245601423085 -0.0947983115913 -0.28011456877 -0.0947962533685 -0.314626738429 -0.0947956033051 -0.349138408899 -0.0947962794452 -0.383650094271 -0.0947983674704 -0.418162278831 -0.0948017798365 -0.452675424517 -0.0948065724224 -0.48719009012 -0.0948109868913 -0.523670434952 -0.0948065463454 -0.560152605176 -0.0948017239571 -0.594667270779 -0.0947983115913 -0.629180416465 -0.0947962533685 -0.663692578673 -0.0947956033051 -0.698204264045 -0.0947962794452 -0.732715949416 -0.0947983674704 -0.767228141427 -0.0948017798365 -0.801741287112 -0.0948065463452 -0.836255937815 -0.0948109868913 -0.872736275196 -0.0948065463454 -0.909218475223 -0.0948017239571 -0.943733096123 -0.0947983115913 -0.978246286512 -0.0947962533685 -1.01275846362 -0.0947956033051 -1.04727008939 -0.0947962794452 -1.08178180456 -0.0947983674704 -1.11629396677 -0.0948017798365 -1.15080717206 -0.0948065463452 -1.18532177806 -0.0948109868913 -1.22180214524 -0.0948065463454 -1.25828430057 -0.0948017239571 -1.29279893637 -0.0947983115913 -1.32731211185 -0.0947962533685 -1.36182430387 -0.0947956033051 -1.39633595943 -0.0947962794452 -1.43084764481 -0.0947983674704 -1.46535980701 -0.0948017798365 -1.4998729825 -0.0948065463452 -1.53438764811 -0.0948109868913 -1.57086801529 -0.0948065463454 -1.60735017061 -0.0948017239571 -1.64186483622 -0.0947983115913 -1.6763779521 -0.0947962533685 -1.71089017391 -0.0947956033051 -1.74540185928 -0.0947962533682 -1.77991351485 -0.0947983674704 -1.81442567706 -0.0948017798365 -1.84893885255 -0.0948065463452 -1.88345348835 -0.0948109868913 -1.91993382573 -0.0948065184057 -1.95641601086 -0.0948017239571 -1.99093067646 -0.0947983115913 -2.02544385195 -0.0947962533685 -2.05995601416 -0.0947956033051 -2.09446769953 -0.0947962794452 -2.1289793849 -0.0947983674704 -2.1634914875 -0.0948017798365 -2.19800466299 -0.0948065463452 -2.2325193286 -0.0948109868913 -2.26899969578 -0.0948065184057 -2.3054819107 -0.0948017239571 -2.3399965167 -0.0947983115913 -2.37450969219 -0.0947962533685 -2.4090218544 -0.0947956033051 -2.44353348017 -0.0947962794452 -2.47804522514 -0.0947983674704 -2.51255744696 -0.0948017798365 -2.54707056284 -0.0948065463452 -2.58158522844 -0.0948109868913 -2.61806553602 -0.0948065463454 -2.65454775095 -0.0948017239571 -2.68906235695 -0.0947983115913 -2.72357553244 -0.0947962533685 -2.75808769464 -0.0947956033051 -2.79259938002 -0.0947962794452 -2.82711106539 -0.0947983674704 -2.86162322759 -0.0948017798365 -2.89613640309 -0.0948065463452 -2.93065100908 -0.0948109868913 -2.96713137627 -0.0948065463454 -3.00361359119 -0.0948017239571 -3.0381282568 -0.0947983115913 -3.07264137268 -0.0947962533685 -3.10715353489 -0.0947956033051 --3.14152011473 -0.0947962794452 --3.10700839758 -0.0947983674704 --3.07249623537 -0.0948017798365 --3.03798305988 -0.0948065463452 --3.00346845388 -0.0948109868913 --2.9669880867 -0.0948065463454 --2.93050587177 -0.0948017239571 --2.89599120617 -0.0947983115913 --2.86147809028 -0.0947962533685 --2.82696592808 -0.0947956033051 --2.79245424271 -0.0947962794452 --2.75794261694 -0.0947983674704 --2.72343039513 -0.0948017798365 --2.68891721964 -0.0948065724224 --2.65440261364 -0.0948109868913 --2.61792218685 -0.0948065463454 --2.58144003153 -0.0948017239571 --2.54692536592 -0.0947983115913 --2.51241225004 -0.0947962533685 --2.47790008783 -0.0947956033051 --2.44338840246 -0.0947962794452 --2.40887671709 -0.0947983674704 --2.37436449528 -0.0948017798365 --2.339851439 -0.0948065463452 --2.30533665419 -0.0948109868913 --2.26885634661 -0.0948065463454 --2.23237419129 -0.0948017239571 --2.19785952568 -0.0947983115913 --2.16334635019 -0.0947962533685 --2.12883418798 -0.0947956033051 --2.09432250261 -0.0947962794452 --2.05981081724 -0.0947983674704 --2.02529865503 -0.0948017798365 --1.99078550935 -0.0948065463452 --1.95627084375 -0.0948109868913 --1.91979050636 -0.0948065463454 --1.88330835104 -0.0948017239571 --1.84879368544 -0.0947983115913 --1.81428050995 -0.0947962533685 --1.77976834774 -0.0947956033051 --1.74525666237 -0.0947962794452 --1.710744977 -0.0947983674704 --1.67623281479 -0.0948017798365 --1.6417196691 -0.0948065463452 --1.60720503331 -0.0948109868913 --1.57072463632 -0.0948065463454 --1.53424245119 -0.0948017239571 --1.49972784519 -0.0947983115913 --1.4652146697 -0.0947962533685 --1.43070250749 -0.0947956033051 --1.39619085193 -0.0947962533682 --1.36167916656 -0.0947983674704 --1.32716700435 -0.0948017798365 --1.29265382886 -0.0948065463452 --1.25813916326 -0.0948109868913 --1.22165882587 -0.0948065184057 --1.18517664075 -0.0948017239571 --1.15066200495 -0.0947983115913 --1.11614882946 -0.0947962533685 --1.08163666725 -0.0947956033051 --1.04712498188 -0.0947962794452 --1.01261329651 -0.0947983674704 --0.9781011343 -0.0948017798365 --0.943587958813 -0.0948065463452 --0.909073323011 -0.0948109868913 --0.872592955828 -0.0948065184057 --0.836110755801 -0.0948017239571 --0.801596134901 -0.0947983115913 --0.767082989216 -0.0947962533685 --0.732570797205 -0.0947956033051 --0.698059141636 -0.0947962794452 --0.663547471166 -0.0947983674704 --0.629035264254 -0.0948017798365 --0.594522118568 -0.0948065463452 --0.560007452964 -0.0948109868913 --0.523527100682 -0.0948065463454 --0.487044930458 -0.0948017239571 --0.452530294657 -0.0947983115913 --0.418017111719 -0.0947962533685 --0.383504964411 -0.0947956033051 --0.34899328649 -0.0947962794452 --0.314481601119 -0.0947983674704 --0.27996943146 -0.0948017798365 --0.245456263423 -0.0948065463452 --0.21094161272 -0.0948109868913 --0.174461260438 -0.181822739541 --0.137944396585 -0.181813623756 --0.103429475799 -0.181807111949 --0.0689160292968 -0.18180321902 --0.0344035653397 -0.181801922619 -0.000108402222395 -0.181803241372 -0.0346203744411 -0.181807164103 -0.0691328430548 -0.181813701987 -0.103646304458 -0.181822866201 -0.138161249459 -0.181831233203 -0.174640435726 -0.181822739541 -0.211121454835 -0.181813623756 -0.245636377484 -0.181807111949 -0.280149817467 -0.18180321902 -0.314662277699 -0.181801922619 -0.349174246192 -0.181803241372 -0.383686222136 -0.181807164103 -0.418198682368 -0.181813701987 -0.452712155878 -0.181822866201 -0.487227104604 -0.181831207126 -0.523706272244 -0.181822739541 -0.56018730998 -0.181813597679 -0.594702214003 -0.181807111949 -0.629215657711 -0.18180321902 -0.663728132844 -0.181801922619 -0.698240101337 -0.181803241372 -0.732752084732 -0.181807164103 -0.767264515162 -0.181813701987 -0.801778018475 -0.181822866201 -0.836292937398 -0.181831233203 -0.87277212739 -0.181822739541 -0.909253150225 -0.181813597679 -0.943768084049 -0.181807111949 -0.978281527758 -0.18180321902 -1.01279401779 -0.181801922619 -1.04730594158 -0.181803241372 -1.08181792498 -0.181807164103 -1.11633041501 -0.181813701987 -1.15084388852 -0.181822866201 -1.18535879254 -0.181831233203 -1.22183799744 -0.181822739541 -1.25831899047 -0.181813597679 -1.29283389449 -0.181807111949 -1.327347368 -0.18180321902 -1.36185982823 -0.181801922619 -1.39637181163 -0.181803241372 -1.43088379502 -0.181807164103 -1.46539622545 -0.181813701987 -1.49990969896 -0.181822866201 -1.53442469239 -0.181831233203 -1.57090383768 -0.181822739541 -1.60738486052 -0.181813597679 -1.64189979434 -0.181807111949 -1.67641320825 -0.18180321902 -1.71092569828 -0.181801922619 -1.74543765187 -0.181803241372 -1.77994963527 -0.181807164103 -1.8144620955 -0.181813701987 -1.84897556901 -0.181822866201 -1.88349047303 -0.181831233203 -1.91996967792 -0.181822739541 -1.95645067096 -0.181813623756 -1.99096566439 -0.181807111949 -2.0254791379 -0.18180321902 -2.05999153852 -0.181801922619 -2.09450352192 -0.181803241372 -2.12901550531 -0.181807164103 -2.16352790594 -0.181813701987 -2.19804137945 -0.181822866201 -2.23255634308 -0.181831207126 -2.26903551817 -0.181822739541 -2.305516541 -0.181813597679 -2.34003150463 -0.181807111949 -2.37454491854 -0.18180321902 -2.40905737877 -0.181801922619 -2.44356936216 -0.181803241372 -2.47808128595 -0.181807164103 -2.51259386539 -0.181813701987 -2.54710721969 -0.181822866201 -2.58162218332 -0.181831233203 -2.61810147762 -0.181822739541 -2.65458244085 -0.181813597679 -2.68909734487 -0.181807111949 -2.72361069918 -0.18180321902 -2.75812321901 -0.181801922619 -2.79263526201 -0.181803241372 -2.8271471262 -0.181807164103 -2.86165964604 -0.181813701987 -2.89617311954 -0.181822866201 -2.93068808318 -0.181831207126 -2.96716725826 -0.181822739541 -3.0036482811 -0.181813623756 -3.03816312552 -0.181807111949 -3.07267665863 -0.18180321902 -3.10718911887 -0.181801922619 --3.14148423274 -0.181803241372 --3.10697233677 -0.181807164103 --3.07245981693 -0.181813701987 --3.03794634342 -0.181822866201 --3.00343137979 -0.181831233203 --2.96695220471 -0.181822739541 --2.93047118187 -0.181813623756 --2.89595627785 -0.181807111949 --2.86144280434 -0.18180321902 --2.8269303441 -0.181801922619 --2.79241842032 -0.181803241372 --2.75790637731 -0.181807164103 --2.72339397669 -0.181813701987 --2.68888056279 -0.181822866201 --2.65436553955 -0.181831207126 --2.61788642407 -0.181822739541 --2.58140534163 -0.181813597679 --2.5468904376 -0.181807111949 --2.51237696409 -0.18180321902 --2.47786450386 -0.181801922619 --2.44335258007 -0.181803241372 --2.40884059667 -0.181807164103 --2.37432819605 -0.181813701987 --2.33981460333 -0.181822866201 --2.30529969931 -0.181831233203 --2.26882052422 -0.181822739541 --2.23233944178 -0.181813597679 --2.19782453776 -0.181807111949 --2.16331118345 -0.18180321902 --2.12879866362 -0.181801922619 --2.09428668022 -0.181803241372 --2.05977475643 -0.181807164103 --2.0252622366 -0.181813701987 --1.99074882269 -0.181822866201 --1.95623382926 -0.181831233203 --1.91975468397 -0.181822739541 --1.88327363134 -0.181813597679 --1.84875872731 -0.181807111949 --1.8142452836 -0.18180321902 --1.77973282337 -0.181801922619 --1.74522086978 -0.181803241372 --1.71070888639 -0.181807164103 --1.67619642615 -0.181813701987 --1.64168292284 -0.181822866201 --1.60716801881 -0.181831233203 --1.57068884373 -0.181822739541 --1.53420782089 -0.181813597679 --1.49969285726 -0.181807111949 --1.46517941356 -0.18180321902 --1.43066698313 -0.181801922619 --1.39615502954 -0.181803241372 --1.36164301634 -0.181807164103 --1.3271305263 -0.181813701987 --1.2926171422 -0.181822866201 --1.25810214877 -0.181831233203 --1.22162294388 -0.181822739541 --1.18514195085 -0.181813623756 --1.15062704682 -0.181807111949 --1.11611360312 -0.18180321902 --1.08160114288 -0.181801922619 --1.04708912969 -0.181803241372 --1.01257717609 -0.181807164103 --0.978064715862 -0.181813701987 --0.943551257253 -0.181822866201 --0.909036308527 -0.181831207126 --0.872557103634 -0.181822739541 --0.836076095701 -0.181813597679 --0.801561176777 -0.181807111949 --0.767047718167 -0.18180321902 --0.732535287738 -0.181801922619 --0.698023274541 -0.181803241372 --0.66351133585 -0.181807164103 --0.628998860717 -0.181813701987 --0.594485402108 -0.181822866201 --0.55997043848 -0.181831233203 --0.52349126339 -0.181822739541 --0.487010262907 -0.181813597679 --0.452495321632 -0.181807111949 --0.417981863022 -0.18180321902 --0.383469425142 -0.181801922619 --0.348957449198 -0.181803241372 --0.314445480704 -0.181807164103 --0.27993299067 -0.181813701987 --0.245419558138 -0.181822866201 --0.210904594511 -0.181831207126 --0.174425408244 -0.268557541072 --0.137907858938 -0.268544249236 --0.103392634541 -0.268534786999 --0.0688788797706 -0.268529102206 --0.0343661108054 -0.268527232111 -0.00014616874978 -0.268529176712 -0.0346584497019 -0.268534898758 -0.06917123124 -0.268544450402 -0.103685010225 -0.26855776459 -0.138200268149 -0.26856996119 -0.174678210169 -0.268557541072 -0.211157973856 -0.268544249236 -0.24567322433 -0.268534786999 -0.280186973512 -0.268529102206 -0.314699754119 -0.268527209759 -0.349212028086 -0.268529199064 -0.383724294603 -0.268534898758 -0.41823707521 -0.268544450402 -0.452750854194 -0.268557742238 -0.487266123295 -0.268569938838 -0.52374406159 -0.268557541072 -0.560223847627 -0.268544249236 -0.594739079476 -0.268534786999 -0.629252851009 -0.268529102206 -0.663765594363 -0.268527209759 -0.698277845979 -0.268529176712 -0.732790157199 -0.268534898758 -0.767302945256 -0.26854442805 -0.801816701889 -0.268557742238 -0.83633197844 -0.26856996119 -0.872809931636 -0.268557541072 -0.90928965807 -0.268544226885 -0.943804949522 -0.268534786999 -0.978318691254 -0.268529102206 -1.01283144951 -0.268527209759 -1.04734370112 -0.268529176712 -1.08185598254 -0.268534898758 -1.1163687706 -0.26854442805 -1.15088257193 -0.268557742238 -1.18539780378 -0.26856996119 -1.22187575698 -0.268557541072 -1.25835549831 -0.268544249236 -1.29287075996 -0.268534786999 -1.32738450169 -0.268529102206 -1.36189728975 -0.268527209759 -1.39640957117 -0.268529176712 -1.43092185259 -0.268534898758 -1.46543464064 -0.268544450402 -1.49994841218 -0.268557742238 -1.53446367383 -0.26856996119 -1.57094165683 -0.268557541072 -1.60742139816 -0.268544226885 -1.64193663001 -0.268534809351 -1.67645040154 -0.268529102206 -1.71096313 -0.268527209759 -1.74547541141 -0.268529176712 -1.77998769283 -0.268534898758 -1.81450051069 -0.268544450402 -1.84901428222 -0.268557742238 -1.88352951408 -0.26856996119 -1.92000743747 -0.268557541072 -1.9564871788 -0.268544226885 -1.99100247025 -0.268534786999 -2.02551627159 -0.268529124558 -2.06002897024 -0.268527209759 -2.09454125166 -0.268529176712 -2.12905365229 -0.268534898758 -2.16356629133 -0.26854442805 -2.19808006287 -0.268557742238 -2.23259538412 -0.26856996119 -2.26907330751 -0.268557541072 -2.30555313826 -0.268544249236 -2.3400682807 -0.268534786999 -2.37458211184 -0.268529102206 -2.40909487009 -0.268527209759 -2.44360715151 -0.268529176712 -2.47811943293 -0.268534898758 -2.51263219118 -0.26854442805 -2.54714596271 -0.268557742238 -2.58166122436 -0.26856996119 -2.61813920737 -0.268557541072 -2.6546189189 -0.268544271588 -2.68913412094 -0.268534786999 -2.72364789248 -0.268529124558 -2.75816065073 -0.268527209759 -2.79267293215 -0.268529199064 -2.82718521356 -0.268534898758 -2.86169809103 -0.268544450402 -2.89621180296 -0.268557742238 -2.93072706461 -0.26856996119 -2.96720504761 -0.268557541072 -3.00368481874 -0.268544249236 -3.03820008039 -0.268534786999 -3.07271373272 -0.268529102206 -3.10722655058 -0.268527232111 --3.141446503 -0.268529176712 --3.1069342494 -0.268534898758 --3.07242137194 -0.268544450402 --3.03790766001 -0.26855776459 --3.00339239836 -0.26856996119 --2.96691441536 -0.268557541072 --2.93043470383 -0.268544249236 --2.89591938257 -0.268534786999 --2.86140567064 -0.268529102206 --2.82689291239 -0.268527209759 --2.79238063097 -0.268529199064 --2.75786840916 -0.268534898758 --2.7233555913 -0.268544450402 --2.68884181976 -0.268557742238 --2.65432649851 -0.268569938838 --2.61784863472 -0.268557541072 --2.58136880398 -0.268544249236 --2.54685360193 -0.268534786999 --2.51233977079 -0.268529102206 --2.47782707214 -0.268527209759 --2.44331479073 -0.268529176712 --2.40880244971 -0.268534898758 --2.37428969145 -0.26854442805 --2.33977597952 -0.268557742238 --2.30526071787 -0.26856996119 --2.26878267527 -0.268557541072 --2.23230296374 -0.268544226885 --2.19778776169 -0.268534786999 --2.16327399015 -0.268529102206 --2.1287612319 -0.268527209759 --2.09424895048 -0.268529176712 --2.05973666906 -0.268534898758 --2.0252238512 -0.26854442805 --1.99071010947 -0.268557742238 --1.95619484782 -0.26856996119 --1.91971686482 -0.268557541072 --1.88323712349 -0.268544249236 --1.84872189164 -0.268534786999 --1.81420812011 -0.268529102206 --1.77969536185 -0.268527209759 --1.74518311024 -0.268529176712 --1.71067076921 -0.268534898758 --1.67615801096 -0.268544450402 --1.64164423943 -0.268557742238 --1.60712897778 -0.26856996119 --1.57065105438 -0.268557541072 --1.53417125344 -0.268544226885 --1.49965602159 -0.268534809351 --1.46514227986 -0.268529102206 --1.43062949181 -0.268527209759 --1.39611724019 -0.268529176712 --1.36160495877 -0.268534898758 --1.32709217071 -0.268544450402 --1.29257842898 -0.268557742238 --1.25806316734 -0.26856996119 --1.22158518433 -0.268557541072 --1.185105443 -0.268544226885 --1.15059021115 -0.268534786999 --1.11607640982 -0.268529124558 --1.08156368137 -0.268527209759 --1.04705139995 -0.268529176712 --1.01253908872 -0.268534898758 --0.978026330471 -0.26854442805 --0.943512573838 -0.268557742238 --0.908997282386 -0.26856996119 --0.87251932919 -0.268557541072 --0.836039572954 -0.268544249236 --0.801524326205 -0.268534786999 --0.767010599375 -0.268529102206 --0.732497826219 -0.268527209759 --0.697985544801 -0.268529176712 --0.663473248482 -0.268534898758 --0.628960460425 -0.26854442805 --0.59444668889 -0.268557742238 --0.559931427241 -0.26856996119 --0.523453488946 -0.268557541072 --0.486973725259 -0.268544271588 --0.452458500862 -0.268534786999 --0.417944729328 -0.268529124558 --0.383431963622 -0.268527209759 --0.348919674754 -0.268529199064 --0.314407400787 -0.268534898758 --0.279894627631 -0.268544450402 --0.245380856097 -0.268557742238 --0.210865583271 -0.26856996119 --0.174387637525 -0.355318494141 --0.137872356922 -0.355301231146 --0.103356825188 -0.355288952589 --0.0688427779824 -0.355281569064 --0.0343297086656 -0.355279147625 -0.000182869145648 -0.355281665921 -0.0346954525448 -0.355289101601 -0.0692085344344 -0.355301514268 -0.103722605854 -0.355318821966 -0.138238161802 -0.355334639549 -0.174714922905 -0.355318494141 -0.211193490773 -0.355301231146 -0.245709016919 -0.355288952589 -0.280223071575 -0.355281569064 -0.314736157656 -0.355279125273 -0.349248714745 -0.355281665921 -0.383761286736 -0.355289101601 -0.418274372816 -0.355301514268 -0.452788449824 -0.355318821966 -0.487304016948 -0.355334639549 -0.523780763149 -0.355318494141 -0.560259357095 -0.355301253498 -0.594774886966 -0.355288952589 -0.629288911819 -0.355281569064 -0.6638019979 -0.355279125273 -0.698314607143 -0.355281665921 -0.732827141881 -0.355289123952 -0.767340242863 -0.355301514268 -0.80185431242 -0.355318844318 -0.836369857192 -0.355334661901 -0.872846633196 -0.355318494141 -0.90932521224 -0.355301253498 -0.943840712309 -0.355288952589 -0.978354766965 -0.355281569064 -1.01286786795 -0.355279125273 -1.04738041758 -0.355281665921 -1.08189299702 -0.355289123952 -1.11640611291 -0.355301514268 -1.15092012286 -0.355318807066 -1.18543571234 -0.355334639549 -1.22191247344 -0.355318494141 -1.25839105248 -0.355301231146 -1.29290658236 -0.355288952589 -1.32742062211 -0.355281569064 -1.36193370819 -0.355279147625 -1.39644625783 -0.355281665921 -1.43095886707 -0.355289101601 -1.46547192335 -0.355301514268 -1.49998599291 -0.355318829417 -1.53450158238 -0.355334661901 -1.57097834349 -0.355318494141 -1.60745689273 -0.355301275849 -1.6419724226 -0.355288952589 -1.67648646235 -0.355281569064 -1.71099954844 -0.355279125273 -1.74551209807 -0.355281665921 -1.78002470732 -0.355289123952 -1.8145377934 -0.355301514268 -1.84905189276 -0.355318821966 -1.88356742263 -0.355334639549 -1.92004418373 -0.355318494141 -1.95652276278 -0.355301231146 -1.99103826284 -0.355288952589 -2.0255523324 -0.355281569064 -2.06006538868 -0.355279125273 -2.09457796812 -0.355281665921 -2.12909054756 -0.355289101601 -2.16360366344 -0.355301514268 -2.198117733 -0.355318821966 -2.23263329268 -0.355334639549 -2.26911002398 -0.355318494141 -2.30558860302 -0.355301231146 -2.34010410309 -0.355288952589 -2.37461817264 -0.355281591415 -2.40913116932 -0.355279147625 -2.44364380837 -0.355281665921 -2.47815638781 -0.355289123952 -2.51266950369 -0.355301491916 -2.54718351364 -0.355318807066 -2.58169913292 -0.355334661901 -2.61817580462 -0.355318494141 -2.65465438366 -0.355301231146 -2.68917000294 -0.355288930237 -2.72368401289 -0.355281591415 -2.75819712877 -0.355279147625 -2.79270964861 -0.355281665921 -2.82722222805 -0.355289101601 -2.86173534393 -0.355301514268 -2.89624941349 -0.355318807066 -2.93076491356 -0.355334639549 -2.96724170447 -0.355318494141 -3.00372028351 -0.355301231146 -3.03823584318 -0.355288952589 -3.07274991274 -0.355281569064 -3.10726296901 -0.355279147625 --3.14140978654 -0.355281665921 --3.10689717531 -0.355289101601 --3.07238411903 -0.355301514268 --3.03787004947 -0.355318821966 --3.0033544898 -0.355334639549 --2.9668776989 -0.355318494141 --2.93039917946 -0.355301231146 --2.89588361978 -0.355288952589 --2.86136955023 -0.355281569064 --2.82685649395 -0.355279125273 --2.79234391451 -0.355281665921 --2.75783139467 -0.355289101601 --2.72331827879 -0.355301514268 --2.68880426883 -0.355318821966 --2.65428864956 -0.355334639549 --2.61781185865 -0.355318494141 --2.58133327961 -0.355301253498 --2.54681777954 -0.355288952589 --2.51230370999 -0.355281569064 --2.47779071331 -0.355279125273 --2.44327807427 -0.355281665921 --2.40876549482 -0.355289123952 --2.37425243854 -0.355301514268 --2.33973836899 -0.355318844318 --2.30522274971 -0.355334661901 --2.26874601841 -0.355318494141 --2.23226743937 -0.355301253498 --2.1977519393 -0.355288952589 --2.16323792935 -0.355281569064 --2.12872481346 -0.355279125273 --2.09421229363 -0.355281665921 --2.05969965458 -0.355289123952 --2.0251865387 -0.355301514268 --1.99067252875 -0.355318807066 --1.95615690946 -0.355334639549 --1.91968014836 -0.355318494141 --1.88320159912 -0.355301231146 --1.84868606925 -0.355288952589 --1.81417202949 -0.355281569064 --1.77965897322 -0.355279147625 --1.74514636397 -0.355281665921 --1.71063381433 -0.355289101601 --1.67612069846 -0.355301514268 --1.64160662889 -0.355318829417 --1.60709109902 -0.355334661901 --1.57061433792 -0.355318494141 --1.53413575888 -0.355301275849 --1.49962022901 -0.355288952589 --1.46510615945 -0.355281569064 --1.43059313297 -0.355279125273 --1.39608052373 -0.355281665921 --1.36156797409 -0.355289123952 --1.32705488801 -0.355301514268 --1.29254081845 -0.355318821966 --1.25802522898 -0.355334639549 --1.22154846787 -0.355318494141 --1.18506988883 -0.355301231146 --1.15055435896 -0.355288952589 --1.1160403192 -0.355281569064 --1.08152726293 -0.355279125273 --1.04701465368 -0.355281665921 --1.01250210404 -0.355289101601 --0.977989003062 -0.355301514268 --0.943474933505 -0.355318821966 --0.908959373832 -0.355334639549 --0.872482642531 -0.355318494141 --0.836004063487 -0.355301231146 --0.801488548517 -0.355288952589 --0.76697447896 -0.355281591415 --0.732461392879 -0.355279147625 --0.69794884324 -0.355281665921 --0.663436248898 -0.355289123952 --0.628923177719 -0.355301491916 --0.594409108162 -0.355318807066 --0.559893518686 -0.355334661901 --0.523416787386 -0.355318494141 --0.486938208341 -0.355301231146 --0.45242267102 -0.355288930237 --0.417908623815 -0.355281591415 --0.383395560086 -0.355279147625 --0.348882973194 -0.355281665921 --0.314370401204 -0.355289101601 --0.279857322574 -0.355301514268 --0.24534324184 -0.355318807066 --0.210827678442 -0.355334639549 --0.174350932241 -0.444497182965 --0.137838795781 -0.444476120174 --0.103322982788 -0.444461084903 --0.0688086515292 -0.444452084601 --0.0342952972278 -0.444449111819 -0.000217566033825 -0.444452188909 -0.0347304334864 -0.444461278617 -0.0692437980324 -0.444476462901 -0.103758158162 -0.44449763 -0.13827399537 -0.444516971708 -0.174749627709 -0.444497190416 -0.211227055639 -0.444476135075 -0.245742868632 -0.444461084903 -0.280257202685 -0.444452062249 -0.314770556986 -0.444449111819 -0.34928341955 -0.444452188909 -0.383796297014 -0.44446131587 -0.418309651315 -0.444476462901 -0.452824011445 -0.444497652352 -0.487339839339 -0.444516971708 -0.523815482855 -0.444497168064 -0.560292899608 -0.444476135075 -0.594808727503 -0.444461107254 -0.629323065281 -0.444452062249 -0.663836419582 -0.444449111819 -0.698349237442 -0.444452188909 -0.732862114906 -0.444461300969 -0.76737549901 -0.444476462901 -0.801889851689 -0.444497652352 -0.836405694485 -0.444516971708 -0.872881308198 -0.444497190416 -0.909358754754 -0.444476135075 -0.943874567747 -0.444461062551 -0.978388890624 -0.444452084601 -1.01290225982 -0.444449111819 -1.04741510749 -0.444452188909 -1.08192798496 -0.444461300969 -1.11644133926 -0.444476440549 -1.15095570684 -0.44449763 -1.18547153473 -0.444516971708 -1.22194716334 -0.444497190416 -1.2584246099 -0.444476135075 -1.29294037819 -0.444461107254 -1.32745474577 -0.444452062249 -1.36196810007 -0.444449111819 -1.39648097754 -0.444452188909 -1.430993855 -0.444461300969 -1.4655072093 -0.44447645545 -1.50002157689 -0.444497652352 -1.53453743458 -0.444516971708 -1.57101303339 -0.444497190416 -1.60749045014 -0.444476082921 -1.64200627804 -0.444461084902 -1.67652058601 -0.444452084601 -1.71103397012 -0.444449089468 -1.74554678798 -0.444452188909 -1.78005966544 -0.444461300969 -1.81457307935 -0.444476440549 -1.84908741713 -0.44449763 -1.88360324502 -0.444516971708 -1.92007890343 -0.444497190416 -1.95655629039 -0.444476135075 -1.99107214808 -0.444461084903 -2.02558642626 -0.444452062249 -2.06009984016 -0.444449111819 -2.09461271763 -0.444452188909 -2.12912553549 -0.444461300969 -2.1636389494 -0.444476462901 -2.19815331697 -0.444497652352 -2.23266911507 -0.444516949356 -2.26914471388 -0.444497168064 -2.30562216044 -0.444476135075 -2.34013795853 -0.444461084903 -2.37465232611 -0.444452062249 -2.40916562081 -0.444449111819 -2.44367849827 -0.444452188909 -2.47819137573 -0.44446131587 -2.51270473004 -0.444476440549 -2.54721915722 -0.44449763 -2.58173489571 -0.444516949356 -2.61821055412 -0.444497190416 -2.65468806028 -0.444476135075 -2.68920379877 -0.444461084903 -2.72371816635 -0.444452062249 -2.75823152065 -0.444449111819 -2.79274439812 -0.444452188909 -2.82725721598 -0.444461300969 -2.86177057028 -0.444476462901 -2.89628493785 -0.444497652352 -2.93080079556 -0.444516971708 -2.96727639436 -0.444497182965 -3.00375390053 -0.444476120174 -3.03826969862 -0.444461084903 -3.07278400659 -0.444452084601 -3.1072974205 -0.444449111819 --3.14137509664 -0.444452188909 --3.10686224699 -0.444461278617 --3.07234889269 -0.444476462901 --3.03783452511 -0.44449763 --3.00331866741 -0.444516971708 --2.9668430686 -0.444497190416 --2.93036556244 -0.444476135075 --2.89584976434 -0.444461084903 --2.86133545637 -0.444452062249 --2.82682204246 -0.444449111819 --2.7923092246 -0.444452188909 --2.75779640675 -0.44446131587 --2.72328299284 -0.444476462901 --2.68876868486 -0.444497652352 --2.65425276756 -0.444516971708 --2.61777716875 -0.444497168064 --2.5812997818 -0.444476135075 --2.5467839241 -0.444461107254 --2.51226961612 -0.444452062249 --2.47775626183 -0.444449111819 --2.44324338436 -0.444452188909 --2.4087305069 -0.444461300969 --2.37421715259 -0.444476462901 --2.33970278501 -0.444497652352 --2.30518698692 -0.444516971708 --2.26871132851 -0.444497190416 --2.23223388195 -0.444476135075 --2.19771808386 -0.444461062551 --2.16320377588 -0.444452084601 --2.12869036197 -0.444449111819 --2.09417760372 -0.444452188909 --2.05966466665 -0.444461300969 --2.02515131235 -0.444476440549 --1.99063694477 -0.44449763 --1.95612108708 -0.444516971708 --1.91964548827 -0.444497190416 --1.8831680417 -0.444476135075 --1.84865224361 -0.444461107254 --1.81413790584 -0.444452062249 --1.77962452173 -0.444449111819 --1.74511170387 -0.444452188909 --1.71059882641 -0.444461300969 --1.67608544231 -0.44447645545 --1.64157107473 -0.444497652352 --1.60705527663 -0.444516971708 --1.57057961822 -0.444497190416 --1.53410223126 -0.444476082921 --1.49958637357 -0.444461084902 --1.46507203579 -0.444452084601 --1.4305587411 -0.444449089468 --1.39604583383 -0.444452188909 --1.36153295636 -0.444461300969 --1.32701963186 -0.444476440549 --1.29250526428 -0.44449763 --1.25798940659 -0.444516971708 --1.22151380778 -0.444497190416 --1.18503633141 -0.444476135075 --1.15052056312 -0.444461084903 --1.11600622535 -0.444452062249 --1.08149284125 -0.444449111819 --1.04697996378 -0.444452188909 --1.01246711612 -0.444461300969 --0.977953776717 -0.444476462901 --0.943439394236 -0.444497652352 --0.908923566341 -0.444516949356 --0.872447937727 -0.444497168064 --0.83597047627 -0.444476135075 --0.801454678178 -0.444461084903 --0.766940355301 -0.444452062249 --0.732426986098 -0.444449111819 --0.697914168239 -0.444452188909 --0.663401275873 -0.44446131587 --0.62888790667 -0.444476440549 --0.594373568892 -0.44449763 --0.559857711196 -0.444516949356 --0.523382082581 -0.444497190416 --0.486904650926 -0.444476135075 --0.452388845384 -0.444461084903 --0.417874507606 -0.444452062249 --0.383361130953 -0.444449111819 --0.348848298192 -0.444452188909 --0.314335420728 -0.444461300969 --0.279822051525 -0.444476462901 --0.245307695121 -0.444497652352 --0.210791852325 -0.444516971708 --0.174316227436 -0.533080026507 --0.137808188796 -0.53305542469 --0.103292118758 -0.533037856221 --0.0687775267288 -0.533027350903 --0.0342639167793 -0.533023893833 -0.000249203993007 -0.53302745521 -0.034762328025 -0.533038124442 -0.0692759538069 -0.533055856824 -0.103790573776 -0.533080607653 -0.138306673616 -0.533103138208 -0.174781270325 -0.533080026507 -0.211257666349 -0.53305542469 -0.245773732662 -0.533037856221 -0.280288308859 -0.533027350903 -0.314801931381 -0.533023893833 -0.349315054714 -0.533027470112 -0.383828170598 -0.533038154244 -0.41834179312 -0.533055871725 -0.452856428922 -0.533080607653 -0.487372539937 -0.533103168011 -0.52384711802 -0.533080026507 -0.560323506594 -0.53305542469 -0.594839602709 -0.533037871123 -0.629354164004 -0.533027365804 -0.663867786527 -0.533023864031 -0.69838090241 -0.533027470112 -0.732894018293 -0.533038139343 -0.767407655716 -0.533055871725 -0.801922276616 -0.533080607653 -0.836438372731 -0.533103138208 -0.872912973166 -0.533080041408 -0.909389346838 -0.53305542469 -0.943905428052 -0.533037856221 -0.97842001915 -0.533027365804 -1.01293364167 -0.533023878932 -1.04744675755 -0.533027499914 -1.08195987344 -0.533038154244 -1.11647349596 -0.533055886626 -1.15098813176 -0.533080607653 -1.18550419807 -0.533103138208 -1.22197884321 -0.533080026507 -1.25845521688 -0.53305542469 -1.2929712832 -0.533037871123 -1.3274858892 -0.533027365804 -1.36199951172 -0.533023893833 -1.3965125978 -0.533027470112 -1.43102571368 -0.533038154244 -1.46553936601 -0.533055886626 -1.500053972 -0.533080607653 -1.53457006812 -0.533103138208 -1.57104465365 -0.533080041408 -1.60752105713 -0.53305542469 -1.64203715324 -0.53303784132 -1.67655172944 -0.533027380705 -1.71106535197 -0.53302384913 -1.74557846784 -0.533027499914 -1.78009158373 -0.533038154245 -1.81460520625 -0.533055871725 -1.84911981225 -0.533080607653 -1.88363593817 -0.533103138208 -1.9201105237 -0.533080026507 -1.95658692718 -0.53305542469 -1.99110299349 -0.533037871123 -2.02561753988 -0.533027365804 -2.06013119221 -0.533023893833 -2.09464430809 -0.53302745521 -2.12915748358 -0.533038139343 -2.1636710763 -0.533055886626 -2.1981856823 -0.533080607653 -2.23270177841 -0.533103168011 -2.26917642355 -0.533080026507 -2.30565273762 -0.53305542469 -2.34016877413 -0.533037871123 -2.37468338013 -0.533027365804 -2.40919703245 -0.533023893833 -2.44371008873 -0.533027470112 -2.47822326422 -0.533038139343 -2.51273685694 -0.533055871725 -2.54725146294 -0.533080607653 -2.58176767826 -0.533103138208 -2.61824220419 -0.533080041408 -2.65471869707 -0.53305542469 -2.68923473358 -0.533037856221 -2.72374927998 -0.533027365804 -2.7582628727 -0.533023893833 -2.79277604818 -0.533027499914 -2.82728910446 -0.533038154244 -2.86180275678 -0.533055886626 -2.89631736278 -0.533080607653 -2.9308334589 -0.533103138208 -2.96730804443 -0.533080026507 -3.00378447771 -0.53305542469 -3.03830057382 -0.533037856221 -3.07281512022 -0.533027350903 -3.10732871294 -0.533023893833 --3.14134344657 -0.53302745521 --3.1068303585 -0.533038124442 --3.07231664658 -0.533055856824 --3.03780210018 -0.533080607653 --3.00328600407 -0.533103138208 --2.96681141854 -0.533080026507 --2.93033498526 -0.53305542469 --2.89581888914 -0.533037856221 --2.86130434275 -0.533027350903 --2.82679069042 -0.533023893833 --2.79227763414 -0.533027470112 --2.75776445866 -0.533038154244 --2.72325080633 -0.533055871725 --2.68873620033 -0.533080607653 --2.65422010422 -0.533103168011 --2.61774551869 -0.533080026507 --2.58126920462 -0.53305542469 --2.5467531085 -0.533037871123 --2.5122385025 -0.533027365804 --2.47772485018 -0.533023864031 --2.4432117343 -0.533027470112 --2.40869861841 -0.533038139343 --2.37418502569 -0.533055871725 --2.33967036009 -0.533080607653 --2.30515426398 -0.533103138208 --2.26867967844 -0.533080041408 --2.23220336437 -0.53305542469 --2.19768726826 -0.533037856221 --2.16317260265 -0.533027365804 --2.12865900994 -0.533023878932 --2.09414589405 -0.533027499914 --2.05963277817 -0.533038154244 --2.02511918545 -0.533055886626 --1.99060451984 -0.533080607653 --1.95608845353 -0.533103138208 --1.919613868 -0.533080026507 --1.88313740492 -0.53305542469 --1.84862136841 -0.533037871123 --1.81410679221 -0.533027365804 --1.77959316969 -0.533023893833 --1.745080024 -0.533027470112 --1.71056690812 -0.533038154244 --1.6760533154 -0.533055886626 --1.64153870941 -0.533080607653 --1.60702258349 -0.533103138208 --1.57054796815 -0.533080041408 --1.53407159447 -0.53305542469 --1.49955552817 -0.53303784132 --1.46504095197 -0.533027380705 --1.43052732945 -0.53302384913 --1.39601421356 -0.533027499914 --1.36150103808 -0.533038154245 --1.32698741555 -0.533055871725 --1.29247280955 -0.533080607653 --1.25795674324 -0.533103138208 --1.22148215771 -0.533080026507 --1.18500572443 -0.53305542469 --1.15048965812 -0.533037871123 --1.11597508192 -0.533027365804 --1.0814614594 -0.533023893833 --1.04694834351 -0.53302745521 --1.01243522764 -0.533038139343 --0.977921575308 -0.533055886626 --0.94340698421 -0.533080607653 --0.908890843391 -0.533103168011 --0.872416272759 -0.533080026507 --0.835939899087 -0.53305542469 --0.801423817873 -0.533037871123 --0.766909211874 -0.533027365804 --0.732395589352 -0.533023893833 --0.697882503271 -0.533027470112 --0.663369372487 -0.533038139343 --0.628855735064 -0.533055871725 --0.594341143966 -0.533080607653 --0.559825047851 -0.533103138208 --0.523350432515 -0.533080041408 --0.486874036491 -0.53305542469 --0.452357970178 -0.533037856221 --0.417843386531 -0.533027365804 --0.383329771459 -0.533023893833 --0.348816648126 -0.533027499914 --0.314303517341 -0.533038154244 --0.27978990227 -0.533055886626 --0.245275285095 -0.533080607653 --0.210759174079 -0.533103138208 --0.17428458482 -0.618687048554 --0.137779582292 -0.618659302592 --0.10326327756 -0.618639528751 --0.0687484377995 -0.618627652526 --0.0342345880345 -0.618623748422 -0.00027877674438 -0.618627861142 -0.0347921466455 -0.618639871478 -0.069306017831 -0.618659853935 -0.103820871562 -0.618687734008 -0.138337213546 -0.618713140488 -0.174810852856 -0.618687048554 -0.211286276579 -0.618659302592 -0.245802577585 -0.61863951385 -0.280317410827 -0.618627652526 -0.314831256867 -0.618623763323 -0.349344611167 -0.618627816439 -0.383857995271 -0.618639871478 -0.418371863663 -0.618659868836 -0.452886722982 -0.61868776381 -0.487403064966 -0.618713140488 -0.523876696825 -0.618687048554 -0.560352131724 -0.618659317493 -0.594868436456 -0.618639528751 -0.629383251071 -0.618627667427 -0.663897112012 -0.618623763323 -0.698410481214 -0.618627816439 -0.732923865318 -0.618639871478 -0.767437711358 -0.618659868836 -0.801952600479 -0.61868776381 -0.83646889031 -0.618713140488 -0.87294253707 -0.618687048554 -0.909417971969 -0.618659317493 -0.943934291601 -0.61863951385 -0.978449091315 -0.618627667427 -1.01296293736 -0.618623763323 -1.04747632146 -0.61862783134 -1.08198970556 -0.618639871478 -1.1165035367 -0.618659868836 -1.15101841092 -0.618687734008 -1.18553477525 -0.618713140488 -1.22200840712 -0.618687048554 -1.25848385691 -0.618659317493 -1.29300013184 -0.61863951385 -1.32751497627 -0.618627667427 -1.36202883721 -0.618623763323 -1.39654219151 -0.61862783134 -1.43105551601 -0.618639856577 -1.46556940675 -0.618659853935 -1.50008431077 -0.618687748909 -1.5346006453 -0.618713125587 -1.57107421756 -0.618687033653 -1.60754966736 -0.618659302592 -1.64206597209 -0.618639498949 -1.67658081651 -0.618627637625 -1.71109464764 -0.618623748422 -1.74560803175 -0.618627846241 -1.78012141585 -0.618639871478 -1.8146353066 -0.618659868836 -1.84915012122 -0.618687734008 -1.88366645574 -0.618713140488 -1.92014008761 -0.618687033653 -1.9566155374 -0.618659317493 -1.99113184214 -0.61863951385 -2.02564668655 -0.618627667427 -2.06016045809 -0.618623763323 -2.0946739316 -0.618627846241 -2.1291872263 -0.618639886379 -2.16370117664 -0.618659868836 -2.19821596146 -0.61868776381 -2.23273229599 -0.618713140488 -2.26920592785 -0.618687033653 -2.30568140745 -0.618659302592 -2.34019774198 -0.61863951385 -2.3747125268 -0.618627652526 -2.40922635794 -0.618623763323 -2.44373971224 -0.618627846241 -2.47825318575 -0.618639871478 -2.51276701689 -0.618659868836 -2.5472818613 -0.618687734008 -2.58179819584 -0.618713140488 -2.6182718277 -0.618687048554 -2.65474718809 -0.618659317493 -2.68926352263 -0.61863951385 -2.72377830744 -0.618627667427 -2.75829225778 -0.618623748422 -2.79280555248 -0.618627846241 -2.82731896639 -0.618639871478 -2.86183279753 -0.618659868836 -2.89634764194 -0.61868776381 -2.93086403608 -0.618713125587 -2.96733766794 -0.618687048554 -3.00381302834 -0.618659302592 -3.03832930326 -0.618639528751 -3.07284426689 -0.618627652526 -3.10735803842 -0.618623748422 --3.14131382306 -0.618627861142 --3.10680049658 -0.618639871478 --3.07228666544 -0.618659853935 --3.03777182102 -0.618687734008 --3.00325536728 -0.618713140488 --2.96678179503 -0.618687048554 --2.93030643463 -0.618659302592 --2.8957901001 -0.61863951385 --2.86127519607 -0.618627652526 --2.82676142454 -0.618623763323 --2.79224801063 -0.618627816439 --2.75773471594 -0.618639871478 --2.72322082519 -0.618659868836 --2.68870592117 -0.61868776381 --2.65418958664 -0.618713140488 --2.61771595478 -0.618687048554 --2.58124047518 -0.618659317493 --2.54672414064 -0.618639528751 --2.51220935583 -0.618627667427 --2.4776955247 -0.618623763323 --2.44318217039 -0.618627816439 --2.40866875649 -0.618639871478 --2.37415492535 -0.618659868836 --2.33964002133 -0.61868776381 --2.305123806 -0.618713140488 --2.26865011453 -0.618687048554 --2.23217469454 -0.618659317493 --2.19765836001 -0.61863951385 --2.16314357519 -0.618627667427 --2.12862968445 -0.618623763323 --2.09411633015 -0.61862783134 --2.05960291624 -0.618639871478 --2.0250890851 -0.618659868836 --1.99057421088 -0.618687734008 --1.95605787635 -0.618713140488 --1.91958421468 -0.618687048554 --1.8831088543 -0.618659317493 --1.84859254956 -0.61863951385 --1.81407770514 -0.618627667427 --1.7795638442 -0.618623763323 --1.7450504601 -0.61862783134 --1.7105371058 -0.618639856577 --1.67602321506 -0.618659853935 --1.64150840044 -0.618687748909 --1.6069920361 -0.618713125587 --1.57051840424 -0.618687033653 --1.53404298425 -0.618659302592 --1.49952667951 -0.618639498949 --1.4650118649 -0.618627637625 --1.43049800396 -0.618623748422 --1.39598464966 -0.618627846241 --1.36147123575 -0.618639871478 --1.32695740461 -0.618659868836 --1.2924425304 -0.618687734008 --1.25792619586 -0.618713140488 --1.22145253419 -0.618687033653 --1.1849771142 -0.618659317493 --1.15046083927 -0.61863951385 --1.11594602466 -0.618627667427 --1.08143210411 -0.618623763323 --1.04691877961 -0.618627846241 --1.01240539551 -0.618639886379 --0.977891519666 -0.618659868836 --0.943376675248 -0.61868776381 --0.908860325813 -0.618713140488 --0.872386708856 -0.618687033653 --0.835911273956 -0.618659302592 --0.801394969225 -0.61863951385 --0.766880169511 -0.618627652526 --0.732366278767 -0.618623763323 --0.697852909565 -0.618627846241 --0.663339540362 -0.618639871478 --0.628825679422 -0.618659868836 --0.594310805202 -0.618687734008 --0.559794470668 -0.618713140488 --0.523320838809 -0.618687048554 --0.486845433712 -0.618659317493 --0.45232912153 -0.61863951385 --0.417814284563 -0.618627667427 --0.383300438523 -0.618623748422 --0.348787069321 -0.618627846241 --0.314273700118 -0.618639871478 --0.279759846628 -0.618659868836 --0.245244968683 -0.61868776381 --0.210728630424 -0.618713125587 --0.174254998564 -0.704287335276 --0.137752261013 -0.704256787896 --0.103235736489 -0.704234868288 --0.0687206638977 -0.704221844673 --0.0342065840959 -0.70421756804 -0.000307010719552 -0.704222068191 -0.0348206120543 -0.704235345125 -0.0693347118795 -0.704257383942 -0.103849809617 -0.704288125038 -0.138366378844 -0.70431612432 -0.174839086831 -0.704287335276 -0.211313594133 -0.704256758094 -0.245830111206 -0.704234927893 -0.28034517169 -0.704221814871 -0.314859263599 -0.70421756804 -0.349372863769 -0.704222068191 -0.383886471391 -0.704235345125 -0.418400578201 -0.70425735414 -0.452915631235 -0.704288125038 -0.487432233989 -0.70431612432 -0.523904919625 -0.704287305474 -0.560379430652 -0.704256758094 -0.594895973802 -0.704234927893 -0.629411041737 -0.704221814871 -0.663925111294 -0.704217597842 -0.698438704014 -0.704222068191 -0.732952311635 -0.704235345125 -0.767466425896 -0.70425735414 -0.801981508732 -0.704288125038 -0.836498081684 -0.70431612432 -0.872970804572 -0.704287305474 -0.909445270896 -0.704256758094 -0.943961828947 -0.70423489809 -0.978476896882 -0.704221844673 -1.01299095154 -0.70421756804 -1.04750457406 -0.704222068191 -1.08201816678 -0.704235345125 -1.11653229594 -0.70425735414 -1.15104737878 -0.704288125038 -1.18556392193 -0.70431612432 -1.22203662991 -0.704287305474 -1.25851112604 -0.704256787896 -1.29302769899 -0.70423489809 -1.32754275203 -0.704221814871 -1.36205685139 -0.704217538237 -1.3965703845 -0.704222068191 -1.43108400702 -0.704235315323 -1.46559813619 -0.704257383942 -1.50011318922 -0.70428815484 -1.53462979198 -0.704316154122 -1.57110249996 -0.704287305474 -1.60757699609 -0.704256728291 -1.64209350943 -0.70423489809 -1.67660856247 -0.704221814871 -1.71112266183 -0.70421756804 -1.74563628435 -0.704222097993 -1.78014987707 -0.704235345125 -1.81466397643 -0.70425735414 -1.84917908907 -0.704288125038 -1.88369566202 -0.70431612432 -1.92016837001 -0.704287305474 -1.95664280653 -0.704256758094 -1.99115937948 -0.70423489809 -2.02567440271 -0.704221844673 -2.06018853188 -0.704217538237 -2.09470212459 -0.704222068191 -2.12921571731 -0.704235345125 -2.16372984648 -0.70425735414 -2.19824492931 -0.704288125038 -2.23276144266 -0.704316094518 -2.26923412084 -0.704287305474 -2.30570870638 -0.704256758094 -2.34022521973 -0.704234927893 -2.37474030256 -0.704221844673 -2.40925437212 -0.704217538237 -2.44376790524 -0.704222068191 -2.47828155756 -0.704235345125 -2.51279568672 -0.704257383942 -2.54731076956 -0.704288125038 -2.5818272829 -0.70431612432 -2.6183000803 -0.704287305474 -2.65477454663 -0.704256758094 -2.68929111958 -0.70423489809 -2.7238060832 -0.704221844673 -2.75832021236 -0.70421756804 -2.79283386469 -0.704222068191 -2.82734739781 -0.704235345125 -2.86186146736 -0.70425735414 -2.8963765502 -0.704288125038 -2.93089324236 -0.70431612432 -2.96736592055 -0.704287335276 -3.00384038687 -0.704256787896 -3.03835690021 -0.704234868288 -3.07287198305 -0.704221844673 -3.10738605261 -0.70421756804 --3.14128563006 -0.704222068191 --3.10677206516 -0.704235345125 --3.07225799561 -0.704257383942 --3.03774291277 -0.704288125038 --3.00322622061 -0.70431612432 --2.96675354242 -0.704287335276 --2.93027901649 -0.704256758094 --2.89576250315 -0.704234927893 --2.86124747992 -0.704221814871 --2.82673335075 -0.70421756804 --2.79221975803 -0.704222068191 --2.75770616531 -0.704235345125 --2.72319203615 -0.70425735414 --2.68867695332 -0.704288125038 --2.65416043997 -0.70431612432 --2.61768776179 -0.704287305474 --2.58121323586 -0.704256758094 --2.5466966629 -0.704234927893 --2.51218163967 -0.704221814871 --2.47766751051 -0.704217597842 --2.44315391779 -0.704222068191 --2.40864032507 -0.704235345125 --2.37412625551 -0.70425735414 --2.33961111307 -0.704288125038 --2.30509454012 -0.70431612432 --2.26862186194 -0.704287305474 --2.23214739561 -0.704256758094 --2.19763082266 -0.70423489809 --2.16311579943 -0.704221844673 --2.12860172987 -0.70421756804 --2.09408813715 -0.704222068191 --2.05957448483 -0.704235345125 --2.02506041527 -0.70425735414 --1.99054533243 -0.704288125038 --1.95602872968 -0.70431612432 --1.91955602169 -0.704287305474 --1.88308152556 -0.704256787896 --1.84856501222 -0.70423489809 --1.81404995918 -0.704221814871 --1.77953585983 -0.704217538237 --1.7450222373 -0.704222068191 --1.71050864458 -0.704235315323 --1.67599454522 -0.704257383942 --1.64147943258 -0.70428815484 --1.60696285963 -0.704316154122 --1.57049015164 -0.704287305474 --1.53401565552 -0.704256728291 --1.49949914217 -0.70423489809 --1.46498405933 -0.704221814871 --1.43046998978 -0.70421756804 --1.39595636726 -0.704222097993 --1.36144280433 -0.704235345125 --1.32692867518 -0.70425735414 --1.29241356254 -0.704288125038 --1.25789701939 -0.70431612432 --1.2214243412 -0.704287305474 --1.18494981527 -0.704256758094 --1.15043324232 -0.70423489809 --1.11591821909 -0.704221844673 --1.08140414953 -0.704217538237 --1.04689055681 -0.704222068191 --1.01237693429 -0.704235345125 --0.97786283493 -0.70425735414 --0.943347752094 -0.704288125038 --0.90883114934 -0.704316094518 --0.872358486056 -0.704287305474 --0.835883945227 -0.704256758094 --0.801367402077 -0.704234927893 --0.766852378845 -0.704221844673 --0.732338294387 -0.704217538237 --0.697824701667 -0.704222068191 --0.663311108947 -0.704235345125 --0.628796964884 -0.704257383942 --0.594281882048 -0.704288125038 --0.559765338898 -0.70431612432 --0.52329261601 -0.704287305474 --0.486818127334 -0.704256758094 --0.452301584184 -0.70423489809 --0.417786516249 -0.704221844673 --0.38327242434 -0.70421756804 --0.34875882417 -0.704222068191 --0.3142452389 -0.704235345125 --0.279731124639 -0.70425735414 --0.245216034353 -0.704288125038 --0.210699480027 -0.70431612432 --0.174226764589 -0.792527735233 --0.137726370245 -0.792494550348 --0.103209614754 -0.792470827698 --0.0686943344772 -0.792456686497 --0.034180036746 -0.792452037335 -0.000333779025825 -0.792456910014 -0.0348476013168 -0.792471289634 -0.0693619186059 -0.792495310307 -0.103877235204 -0.792528688908 -0.138394027948 -0.792559087276 -0.174865867943 -0.792527735233 -0.21133947745 -0.792494520545 -0.245856236666 -0.792470812797 -0.280371509493 -0.792456641793 -0.314885817468 -0.792452007532 -0.349399633705 -0.792456895113 -0.383913457394 -0.792471289634 -0.41842777282 -0.792495250702 -0.452943071723 -0.792528688908 -0.487459868193 -0.792559057474 -0.523931711912 -0.792527735233 -0.56040532887 -0.792494550348 -0.594922080636 -0.792470812797 -0.629437357188 -0.792456671596 -0.663951650262 -0.792452037334 -0.6984654814 -0.792456865311 -0.732979297638 -0.792471289634 -0.767493620515 -0.7924952209 -0.802008911967 -0.79252871871 -0.836525723338 -0.792559087276 -0.872997567058 -0.792527735233 -0.909471198916 -0.792494550348 -0.94398792088 -0.792470827698 -0.978503212333 -0.792456656694 -1.01301750541 -0.792452007532 -1.04753133655 -0.792456910014 -1.08204513788 -0.792471289634 -1.11655944586 -0.792495250702 -1.15107473731 -0.79252871871 -1.18559157848 -0.792559087276 -1.2220634222 -0.792527735233 -1.25853702426 -0.792494550348 -1.29305380583 -0.792470827698 -1.32756909728 -0.792456641793 -1.36208334565 -0.79245197773 -1.39659717679 -0.792456895113 -1.43111100793 -0.792471319437 -1.46562531591 -0.792495280504 -1.50014063716 -0.792528688908 -1.53465741873 -0.792559087276 -1.57112923265 -0.792527735233 -1.60760286451 -0.792494520545 -1.64211961627 -0.792470812797 -1.67663487792 -0.792456641793 -1.7111492455 -0.792452007532 -1.74566304684 -0.792456895113 -1.78017684817 -0.792471289634 -1.81469118595 -0.792495250702 -1.8492064476 -0.792528688908 -1.88372328878 -0.792559057474 -1.92019510269 -0.792527735233 -1.95666873455 -0.792494550348 -1.99118551612 -0.792470827698 -2.02570074797 -0.792456641793 -2.06021511555 -0.79245197773 -2.09472888708 -0.792456895113 -2.12924265862 -0.792471349239 -2.16375702619 -0.792495250702 -2.19827228785 -0.79252871871 -2.23278909922 -0.792559087276 -2.26926094294 -0.792527735233 -2.3057345748 -0.792494550348 -2.34025132656 -0.792470812797 -2.37476664782 -0.792456686497 -2.40928089619 -0.792452007532 -2.44379472733 -0.792456865311 -2.47830855846 -0.792471289634 -2.51282292605 -0.792495250702 -2.54733812809 -0.79252871871 -2.58185499906 -0.792559057474 -2.61832684279 -0.792527735233 -2.65480041504 -0.792494550348 -2.6893171668 -0.792470827698 -2.72383254766 -0.792456641793 -2.75834673643 -0.792452037335 -2.79286056757 -0.792456865311 -2.82737439871 -0.792471289634 -2.86188870668 -0.792495250702 -2.89640408754 -0.79252871871 -2.93092083931 -0.792559087276 -2.96739262343 -0.792527735233 -3.00386631489 -0.792494550348 -3.03838306665 -0.792470827698 -3.0728983283 -0.792456686497 -3.10741263628 -0.792452037335 --3.14125886758 -0.792456910014 --3.10674506426 -0.792471289634 --3.07223075628 -0.792495310307 --3.03771537542 -0.792528688908 --3.00319862365 -0.792559087276 --2.96672683954 -0.792527735233 --2.93025314808 -0.792494520545 --2.89573639631 -0.792470812797 --2.86122113466 -0.792456641793 --2.82670676708 -0.792452007532 --2.79219299555 -0.792456895113 --2.75767922401 -0.792471289634 --2.72316491604 -0.792495250702 --2.68864959478 -0.792528688908 --2.65413284301 -0.792559057474 --2.61766093969 -0.792527735233 --2.58118730783 -0.792494550348 --2.54667055607 -0.792470812797 --2.51215529442 -0.792456671596 --2.47764098644 -0.792452037334 --2.4431271553 -0.792456865311 --2.40861332416 -0.792471289634 --2.37409895658 -0.7924952209 --2.33958375454 -0.79252871871 --2.30506688356 -0.792559087276 --2.26859503984 -0.792527735233 --2.23212152719 -0.792494550348 --2.19760471583 -0.792470827698 --2.16308939457 -0.792456656694 --2.1285751462 -0.792452007532 --2.09406131506 -0.792456910014 --2.05954748392 -0.792471289634 --2.02503317594 -0.792495250702 --1.99051788449 -0.79252871871 --1.95600107312 -0.792559087276 --1.9195291996 -0.792527735233 --1.88305562735 -0.792494550348 --1.84853890538 -0.792470827698 --1.81402361393 -0.792456641793 --1.77950927615 -0.79245197773 --1.74499547482 -0.792456895113 --1.71048167348 -0.792471319437 --1.6759673357 -0.792495280504 --1.64145198464 -0.792528688908 --1.60693523288 -0.792559087276 --1.57046341896 -0.792527735233 --1.5339897573 -0.792494520545 --1.49947300554 -0.792470812797 --1.46495774389 -0.792456641793 --1.43044343591 -0.792452007532 --1.39592963457 -0.792456895113 --1.36141577363 -0.792471289634 --1.32690149546 -0.792495250702 --1.29238620401 -0.792528688908 --1.25786939263 -0.792559057474 --1.22139751911 -0.792527735233 --1.18492394686 -0.792494550348 --1.15040716529 -0.792470827698 --1.11589190364 -0.792456641793 --1.08137759566 -0.79245197773 --1.04686376452 -0.792456895113 --1.01234993338 -0.792471349239 --0.97783562541 -0.792495250702 --0.943320319057 -0.79252871871 --0.908803522587 -0.792559087276 --0.872331678867 -0.792527735233 --0.835858076811 -0.792494550348 --0.801341310144 -0.792470812797 --0.76682600379 -0.792456686497 --0.732311755419 -0.792452007532 --0.697797954082 -0.792456865311 --0.66328407824 -0.792471289634 --0.628769770265 -0.792495250702 --0.594254463911 -0.79252871871 --0.559737697244 -0.792559057474 --0.523265823722 -0.792527735233 --0.486792214215 -0.792494550348 --0.45227547735 -0.792470827698 --0.417760193348 -0.792456641793 --0.383245892823 -0.792452037335 --0.348732069135 -0.792456865311 --0.314218245447 -0.792471289634 --0.27970393002 -0.792495250702 --0.245188612491 -0.79252871871 --0.210671827197 -0.792559087276 --0.174199994654 -0.880917936564 --0.137702986598 -0.88088235259 --0.103186037391 -0.880857050419 --0.0686705652624 -0.880841836333 --0.0341560635716 -0.880836859346 -0.000357948476447 -0.880842119455 -0.0348719679751 -0.880857542157 -0.0693864868954 -0.880883187056 -0.103901999071 -0.880919024349 -0.138418994844 -0.880951493978 -0.174890037626 -0.880917936564 -0.211362868547 -0.88088235259 -0.245879802853 -0.880857005715 -0.280395269394 -0.880841836333 -0.314909785986 -0.880836829543 -0.349423803389 -0.880842074752 -0.383937813342 -0.880857557058 -0.418452337384 -0.880883201957 -0.452967852354 -0.880918994546 -0.487484820187 -0.880951523781 -0.523955896497 -0.880917936564 -0.560428708792 -0.88088235259 -0.594945639372 -0.880857005715 -0.629461124539 -0.880841836333 -0.66397562623 -0.880836814642 -0.698489680886 -0.880842104554 -0.733003675938 -0.880857512355 -0.76751819253 -0.880883172155 -0.802033692598 -0.880918994546 -0.836550667882 -0.880951493978 -0.873021751642 -0.880917936564 -0.909494563937 -0.880882397294 -0.944011524319 -0.880857005715 -0.978526979685 -0.880841836333 -1.01304149628 -0.880836814642 -1.04755547642 -0.880842104554 -1.08206954598 -0.880857527256 -1.11658406258 -0.880883201957 -1.15109956265 -0.880918994546 -1.18561652302 -0.880951493978 -1.22208759189 -0.880917936564 -1.25856041908 -0.880882382393 -1.29307737946 -0.880857005715 -1.32759281993 -0.880841836333 -1.36210736633 -0.880836814642 -1.39662134647 -0.880842074752 -1.43113532662 -0.880857557058 -1.46564987302 -0.880883187056 -1.50016537309 -0.880919024349 -1.53468239307 -0.880951523781 -1.57115343213 -0.880917906761 -1.60762625933 -0.880882367492 -1.64214318991 -0.880857005715 -1.67665868998 -0.880841806531 -1.71117317677 -0.880836859346 -1.74568721652 -0.880842074752 -1.78020122647 -0.880857557058 -1.81471574307 -0.880883172155 -1.84923124314 -0.880918994546 -1.88374823332 -0.880951493978 -1.92021930218 -0.880917936564 -1.95669212937 -0.88088235259 -1.99120908975 -0.880857005715 -2.02572453022 -0.880841836333 -2.06023901701 -0.880836814642 -2.09475308656 -0.880842074752 -2.12926709652 -0.880857527256 -2.16378164292 -0.880883187056 -2.19829702377 -0.880918994546 -2.23281413317 -0.880951493978 -2.26928514242 -0.880917936564 -2.30575799942 -0.880882382393 -2.34027493 -0.880856975913 -2.37479031086 -0.880841836333 -2.40930491686 -0.880836814642 -2.44381886721 -0.880842104554 -2.47833293676 -0.880857512355 -2.51284742356 -0.880883201957 -2.54736304283 -0.880918994546 -2.58187997341 -0.880951523781 -2.61835098267 -0.880917936564 -2.65482378006 -0.880882382393 -2.68934082985 -0.880857005715 -2.72385621071 -0.880841836333 -2.7583707571 -0.880836814642 -2.79288476706 -0.880842074752 -2.8273987174 -0.880857557058 -2.8619132638 -0.880883157253 -2.89642882347 -0.880918994546 -2.93094575405 -0.880951493978 -2.96741682291 -0.880917936564 -3.00388962031 -0.88088235259 -3.03840661049 -0.880857050419 -3.07292211056 -0.880841836333 -3.10743659734 -0.880836859346 --3.1412347277 -0.880842119455 --3.10672074557 -0.880857542157 --3.07220619917 -0.880883187056 --3.0376906395 -0.880919024349 --3.00317370892 -0.880951493978 --2.96670264005 -0.880917936564 --2.93022984266 -0.88088235259 --2.89571285248 -0.880857005715 --2.86119735241 -0.880841836333 --2.82668292522 -0.880836829543 --2.79216891527 -0.880842074752 --2.75765478611 -0.880857557058 --2.72314023971 -0.880883201957 --2.68862485886 -0.880918994546 --2.65410786867 -0.880951523781 --2.61763674021 -0.880917936564 --2.58116388321 -0.88088235259 --2.54664707184 -0.880857005715 --2.51213157177 -0.880841836333 --2.47761702537 -0.880836814642 --2.44310295582 -0.880842104554 --2.40858900547 -0.880857512355 --2.37407445908 -0.880883172155 --2.33955895901 -0.880918994546 --2.30504190922 -0.880951493978 --2.26857084036 -0.880917936564 --2.23209810257 -0.880882397294 --2.19758111238 -0.880857005715 --2.16306567192 -0.880841836333 --2.12855118514 -0.880836814642 --2.09403717518 -0.880842104554 --2.05952316522 -0.880857527256 --2.02500867843 -0.880883201957 --1.99049308896 -0.880918994546 --1.95597609878 -0.880951493978 --1.91950508952 -0.880917936564 --1.88303223252 -0.880882382393 --1.84851527214 -0.880857005715 --1.81399980187 -0.880841836333 --1.77948534489 -0.880836814642 --1.74497127533 -0.880842074752 --1.71045729518 -0.880857557058 --1.67594277859 -0.880883187056 --1.64142727852 -0.880919024349 --1.60691025853 -0.880951523781 --1.57043921947 -0.880917906761 --1.53396639228 -0.880882367492 --1.4994494319 -0.880857005715 --1.46493396163 -0.880841806531 --1.43041947484 -0.880836859346 --1.39590546489 -0.880842074752 --1.36139142513 -0.880857557058 --1.32687690854 -0.880883172155 --1.29236137867 -0.880918994546 --1.25784441829 -0.880951493978 --1.22137337923 -0.880917936564 --1.18490052223 -0.88088235259 --1.15038362145 -0.880857005715 --1.11586812138 -0.880841836333 --1.08135360479 -0.880836814642 --1.04683959484 -0.880842074752 --1.01232561469 -0.880857527256 --0.977811068296 -0.880883187056 --0.943295553326 -0.880918994546 --0.908778548241 -0.880951493978 --0.872307509184 -0.880917936564 --0.83583471179 -0.880882382393 --0.801317736506 -0.880856975913 --0.766802281142 -0.880841836333 --0.732287764549 -0.880836814642 --0.697773769498 -0.880842104554 --0.663259744644 -0.880857512355 --0.62874519825 -0.880883201957 --0.594229698181 -0.880918994546 --0.559712693095 -0.880951523781 --0.523241683841 -0.880917936564 --0.486768826842 -0.880882382393 --0.452251881361 -0.880857005715 --0.417736418545 -0.880841836333 --0.383221909404 -0.880836814642 --0.348707914353 -0.880842074752 --0.314193874598 -0.880857557058 --0.279679365456 -0.880883157253 --0.245163846761 -0.880918994546 --0.210646856576 -0.880951493978 --0.174175813794 -0.966537177563 --0.137682452798 -0.966499641538 --0.103165334091 -0.96647284925 --0.0686496831476 -0.966456800699 --0.0341350068338 -0.966451525688 -0.00037917890586 -0.966457098722 -0.0348933725618 -0.966473415494 -0.0694080665707 -0.966500550508 -0.103923751041 -0.966538399458 -0.138440921903 -0.966572657227 -0.174911275506 -0.966537162662 -0.211383394897 -0.966499626637 -0.245900522917 -0.966472804547 -0.280416175723 -0.966456785798 -0.314930841327 -0.966451525688 -0.349445030093 -0.966457098722 -0.38395922631 -0.966473415494 -0.418473921716 -0.966500550509 -0.452989600599 -0.966538369656 -0.487506762147 -0.96657268703 -0.52397711575 -0.966537162662 -0.560449257493 -0.966499626637 -0.594966381788 -0.966472804547 -0.629482015967 -0.966456770897 -0.663996696472 -0.966451525688 -0.69851090014 -0.96645706892 -0.733025074005 -0.966473415494 -0.767539769411 -0.966500550509 -0.802055463195 -0.966538399458 -0.836572632193 -0.96657268703 -0.873042985797 -0.966537162662 -0.909515112639 -0.966499626637 -0.944032222033 -0.966472804547 -0.978547871113 -0.966456800699 -1.01306253672 -0.966451525688 -1.04757675528 -0.96645706892 -1.08209091425 -0.966473445296 -1.11660560965 -0.966500550509 -1.15112128854 -0.966538339854 -1.18563848734 -0.966572657227 -1.22210881114 -0.966537192464 -1.25858098269 -0.966499656439 -1.29309803248 -0.966472804547 -1.32761371136 -0.966456800699 -1.36212837696 -0.966451525688 -1.39664259553 -0.966457128525 -1.4311567843 -0.966473415494 -1.4656714797 -0.966500550509 -1.50018715858 -0.966538339854 -1.53470432758 -0.966572657227 -1.57117468119 -0.966537207365 -1.60764676333 -0.966499656439 -1.64216393232 -0.966472789646 -1.6766795814 -0.966456755996 -1.71119424701 -0.966451525688 -1.74570843577 -0.96645706892 -1.78022259474 -0.966473415494 -1.81473731994 -0.966500550509 -1.84925296902 -0.966538399458 -1.88377013803 -0.96657268703 -1.92024049163 -0.966537192464 -1.95671263337 -0.966499641538 -1.99122977257 -0.966472804547 -2.02574545145 -0.966456785798 -2.06026011705 -0.966451525688 -2.09477424622 -0.966457098722 -2.12928855419 -0.966473415494 -2.16380316019 -0.966500550509 -2.19831883907 -0.966538369656 -2.23283594847 -0.966572657227 -2.26930636167 -0.966537162662 -2.30577850342 -0.966499626637 -2.34029567241 -0.966472834349 -2.37481129169 -0.966456785798 -2.4093258977 -0.966451525688 -2.44384014606 -0.96645706892 -2.47835433483 -0.966473445296 -2.51286900043 -0.966500550509 -2.54738473892 -0.966538354755 -2.58190190792 -0.96657268703 -2.61837214232 -0.966537192464 -2.65484434366 -0.966499626637 -2.68936151266 -0.966472804547 -2.72387707234 -0.966456800699 -2.75839179754 -0.966451525688 -2.79290598631 -0.96645706892 -2.82742017508 -0.966473415494 -2.86193490029 -0.966500550509 -2.89645057917 -0.966538339854 -2.93096774817 -0.966572657227 -2.96743816137 -0.966537177563 -3.00391018391 -0.966499641538 -3.0384273529 -0.96647284925 -3.07294303179 -0.966456800699 -3.10745769739 -0.966451525688 --3.14121350844 -0.966457098722 --3.10669928789 -0.966473415494 --3.07218456268 -0.966500550508 --3.0376688838 -0.966538399458 --3.0031517148 -0.966572657227 --2.96668130159 -0.966537162662 --2.93020927906 -0.966499626637 --2.89569211006 -0.966472804547 --2.86117643118 -0.966456785798 --2.82666176557 -0.966451525688 --2.79214769602 -0.966457098722 --2.75763344765 -0.966473415494 --2.72311878205 -0.966500550509 --2.68860304356 -0.966538369656 --2.65408593416 -0.96657268703 --2.61761552095 -0.966537162662 --2.58114337921 -0.966499626637 --2.54662626982 -0.966472804547 --2.51211065054 -0.966456770897 --2.47759598494 -0.966451525688 --2.44308173656 -0.96645706892 --2.4085675478 -0.966473415494 --2.37405288219 -0.966500550509 --2.33953720331 -0.966538399458 --2.30501997471 -0.96657268703 --2.26854968071 -0.966537162662 --2.23207753897 -0.966499626637 --2.19756042958 -0.966472804547 --2.1630448103 -0.966456800699 --2.12853014469 -0.966451525688 --2.09401589632 -0.96645706892 --2.05950176716 -0.966473445296 --2.02498704195 -0.966500550509 --1.99047133326 -0.966538339854 --1.95595416427 -0.966572657227 --1.91948381066 -0.966537192464 --1.88301166892 -0.966499656439 --1.84849458933 -0.966472804547 --1.81397894025 -0.966456800699 --1.77946427465 -0.966451525688 --1.74495005607 -0.966457128525 --1.71043589711 -0.966473415494 --1.6759211421 -0.966500550509 --1.64140552282 -0.966538339854 --1.60688835383 -0.966572657227 --1.57041797042 -0.966537207365 --1.53394585848 -0.966499656439 --1.49942871928 -0.966472789646 --1.4649130702 -0.966456755996 --1.4303984046 -0.966451525688 --1.39588424564 -0.96645706892 --1.36137002706 -0.966473415494 --1.32685536146 -0.966500550509 --1.29233965277 -0.966538399458 --1.25782248378 -0.96657268703 --1.22135213017 -0.966537192464 --1.18487998843 -0.966499641538 --1.15036287904 -0.966472804547 --1.11584725976 -0.966456785798 --1.08133256435 -0.966451525688 --1.04681834578 -0.966457098722 --1.01230415702 -0.966473415494 --0.977789476514 -0.966500550509 --0.94327378273 -0.966538369656 --0.908756643534 -0.966572657227 --0.872286275029 -0.966537162662 --0.835814163089 -0.966499626637 --0.801297008992 -0.966472834349 --0.766781389713 -0.966456785798 --0.732266709209 -0.966451525688 --0.697752505541 -0.96645706892 --0.663238331675 -0.966473445296 --0.628723651171 -0.966500550509 --0.594207942486 -0.966538354755 --0.559690788388 -0.96657268703 --0.523220419884 -0.966537192464 --0.486748307943 -0.966499626637 --0.452231176197 -0.966472804547 --0.417715542019 -0.966456800699 --0.383200854063 -0.966451525688 --0.348686680198 -0.96645706892 --0.314172461629 -0.966473415494 --0.279657788575 -0.966500550509 --0.245142091066 -0.966538339854 --0.210624933243 -0.966572657227 --0.174154579639 -1.05216023326 --0.137663185597 -1.05212089419 --0.103145906702 -1.05209285021 --0.0686300965026 -1.0520760715 --0.0341152637266 -1.05207058787 -0.000399086857215 -1.05207639933 -0.0349134430289 -1.05209347606 -0.0694282995537 -1.05212190748 -0.103944150731 -1.05216154456 -0.138461474329 -1.05219742656 -0.174931179732 -1.05216023326 -0.211402665824 -1.05212089419 -0.245919939131 -1.05209288001 -0.280435755849 -1.0520760715 -0.314950592816 -1.05207058787 -0.349464930594 -1.05207636952 -0.383979298174 -1.05209347606 -0.418494150043 -1.05212190748 -0.453009992838 -1.05216151476 -0.487527325749 -1.05219745636 -0.523997038603 -1.05216023326 -0.560468509793 -1.05212089419 -0.594985812903 -1.05209288001 -0.629501596093 -1.0520760417 -0.664016455412 -1.05207058787 -0.698530763388 -1.05207636952 -0.73304516077 -1.05209350586 -0.767560020089 -1.05212190748 -0.802075847983 -1.05216154456 -0.836593195796 -1.05219742656 -0.873062923551 -1.05216023326 -0.909534364939 -1.05212089419 -0.944051623344 -1.05209288001 -0.978567436338 -1.0520760417 -1.01308229566 -1.05207061768 -1.04759663343 -1.05207639933 -1.08211097122 -1.05209350586 -1.11662587524 -1.05212190748 -1.15114170313 -1.05216151476 -1.18565905094 -1.05219745636 -1.22212871909 -1.05216023326 -1.25860020519 -1.05212089419 -1.29311749339 -1.05209288001 -1.32763329148 -1.0520760417 -1.3621481061 -1.05207058787 -1.39666250348 -1.05207639933 -1.43117684126 -1.05209347606 -1.46569168568 -1.05212190748 -1.50020757317 -1.05216154456 -1.53472486138 -1.05219742656 -1.57119458914 -1.05216023326 -1.60766607523 -1.05212089419 -1.64218330383 -1.05209285021 -1.67669916153 -1.0520760417 -1.71121400595 -1.05207064748 -1.74572831392 -1.05207636952 -1.7802426815 -1.05209350586 -1.81475758553 -1.05212190748 -1.84927341342 -1.05216154456 -1.88379073143 -1.05219745636 -1.92026042938 -1.05216023326 -1.95673191548 -1.05212089419 -1.99124920368 -1.05209285021 -2.02576500177 -1.0520760417 -2.06027984619 -1.05207058787 -2.09479415417 -1.05207639933 -2.12930858135 -1.05209347606 -2.16382342577 -1.05212190748 -2.19833922386 -1.05216154456 -2.23285657167 -1.05219745636 -2.26932626963 -1.05216023326 -2.30579775572 -1.052120924 -2.34031504393 -1.0520928204 -2.37483084202 -1.0520760715 -2.40934568643 -1.05207061768 -2.44386005402 -1.05207639933 -2.47837442159 -1.05209350586 -2.51288932562 -1.05212193728 -2.54740512371 -1.05216151476 -2.58192241192 -1.05219742656 -2.61839210987 -1.05216023326 -2.65486365557 -1.052120924 -2.68938094377 -1.05209285021 -2.72389668226 -1.0520760417 -2.75841152668 -1.05207061768 -2.79292589426 -1.05207636952 -2.82744026184 -1.05209347606 -2.86195510626 -1.05212187767 -2.89647096396 -1.05216151476 -2.93098831177 -1.05219745636 -2.96745795011 -1.05216023326 -3.00392949581 -1.05212089419 -3.03844672441 -1.05209285021 -3.07296252251 -1.0520760715 -3.10747736692 -1.05207058787 --3.14119354089 -1.05207639933 --3.10667920112 -1.05209347606 --3.07216435671 -1.05212190748 --3.03764849901 -1.05216154456 --3.0031312108 -1.05219742656 --2.96666145324 -1.05216023326 --2.93019002676 -1.05212089419 --2.89567273855 -1.05209288001 --2.86115694046 -1.0520760715 --2.82664203644 -1.05207058787 --2.79212772846 -1.05207636952 --2.75761336088 -1.05209347606 --2.72309845686 -1.05212190748 --2.68858271837 -1.05216151476 --2.65406531096 -1.05219745636 --2.617595613 -1.05216023326 --2.58112412691 -1.05212089419 --2.5466068387 -1.05209288001 --2.51209104061 -1.0520760417 --2.47757619619 -1.05207058787 --2.44306188822 -1.05207636952 --2.40854746103 -1.05209350586 --2.37403261662 -1.05212190748 --2.33951681852 -1.05216154456 --2.30499947071 -1.05219742656 --2.26852971315 -1.05216023326 --2.23205828667 -1.05212089419 --2.19754099846 -1.05209288001 --2.16302520037 -1.0520760417 --2.12851035595 -1.05207061768 --2.09399604797 -1.05207639933 --2.05948168039 -1.05209350586 --2.02496677637 -1.05212190748 --1.99045094847 -1.05216151476 --1.95593363047 -1.05219745636 --1.91946393252 -1.05216023326 --1.88299244642 -1.05212089419 --1.84847518802 -1.05209288001 --1.81395936012 -1.0520760417 --1.77944451571 -1.05207058787 --1.74493017793 -1.05207639933 --1.71041581035 -1.05209347606 --1.67590093613 -1.05212190748 --1.64138510823 -1.05216154456 --1.60686779022 -1.05219742656 --1.57039809227 -1.05216023326 --1.53392660618 -1.05212089419 --1.49940931797 -1.05209285021 --1.46489349008 -1.0520760417 --1.43037867546 -1.05207064748 --1.39586430788 -1.05207636952 --1.3613499403 -1.05209350586 --1.32683515549 -1.05212190748 --1.29231926798 -1.05216154456 --1.25780192017 -1.05219745636 --1.22133222222 -1.05216023326 --1.18486070633 -1.05212089419 --1.15034344793 -1.05209285021 --1.11582767963 -1.0520760417 --1.08131283522 -1.05207058787 --1.04679843783 -1.05207639933 --1.01228410006 -1.05209347606 --0.977769255638 -1.05212190748 --0.943253397942 -1.05216154456 --0.90873606503 -1.05219745636 --0.872266352177 -1.05216023326 --0.835794910789 -1.052120924 --0.801277622581 -1.0520928204 --0.766761809587 -1.0520760715 --0.73224696517 -1.05207061768 --0.697732627392 -1.05207639933 --0.66321824491 -1.05209350586 --0.628703385592 -1.05212193728 --0.594187557697 -1.05216151476 --0.559670224786 -1.05219742656 --0.523200526834 -1.05216023326 --0.486729040742 -1.052120924 --0.452211767435 -1.05209285021 --0.417695946991 -1.0520760417 --0.383181102574 -1.05207061768 --0.348666772247 -1.05207636952 --0.314152404666 -1.05209347606 --0.279637545347 -1.05212187767 --0.245121695101 -1.05216151476 --0.210604373366 -1.05219745636 --0.174134675414 -1.1404838264 --0.137645099312 -1.14044290781 --0.103127673268 -1.14041379094 --0.0686117084697 -1.14039632678 --0.0340967234224 -1.14039063454 -0.000417781993747 -1.14039668441 -0.0349322929979 -1.14041447639 -0.0694473059848 -1.14044401049 -0.103963306174 -1.14048525691 -0.138480789959 -1.14052253961 -0.17494988069 -1.1404838562 -0.211420744657 -1.14044290781 -0.245938185602 -1.14041376114 -0.280454136431 -1.14039626717 -0.314969137311 -1.14039060473 -0.349483624101 -1.14039665461 -0.383998140693 -1.14041447639 -0.418513156474 -1.14044398069 -0.453029148281 -1.14048528671 -0.487546637654 -1.14052253961 -0.524015709758 -1.1404838562 -0.560486599803 -1.14044290781 -0.595004037023 -1.14041373134 -0.629519999027 -1.14039626717 -0.664035007358 -1.14039060473 -0.698549494147 -1.14039665461 -0.733063980937 -1.14041444659 -0.767579004169 -1.14044398069 -0.802094995976 -1.14048525691 -0.8366124928 -1.14052256942 -0.873081594705 -1.1404838562 -0.909552410245 -1.14044290781 -0.944069877267 -1.14041373134 -0.978585854173 -1.14039626717 -1.0131008327 -1.14039063454 -1.04761531949 -1.14039665461 -1.08212983608 -1.14041447639 -1.11664485932 -1.1404440403 -1.15116086602 -1.14048528671 -1.18567833304 -1.14052253961 -1.22214743495 -1.1404838264 -1.25861829519 -1.14044296742 -1.29313573241 -1.14041376114 -1.32765167952 -1.14039626717 -1.36216667294 -1.14039060473 -1.39668118954 -1.14039665461 -1.43119570613 -1.14041444659 -1.46571069956 -1.14044401049 -1.50022673607 -1.14048528671 -1.53474420309 -1.14052253961 -1.57121327519 -1.1404838562 -1.60768413543 -1.14044290781 -1.64220160246 -1.14041373134 -1.67671754956 -1.14039626717 -1.71123254299 -1.14039063454 -1.74574702978 -1.14039665461 -1.78026154638 -1.14041444659 -1.8147765398 -1.14044401049 -1.84929254651 -1.14048522711 -1.88381004334 -1.14052253961 -1.92027914524 -1.1404838562 -1.95675000548 -1.14044293761 -1.9912674427 -1.14041376114 -2.02578336 -1.14039626717 -2.06029844284 -1.14039063454 -2.09481287003 -1.14039665461 -2.12932741642 -1.14041444659 -2.16384238005 -1.14044401049 -2.19835841656 -1.14048528671 -2.23287588358 -1.14052253961 -2.26934498548 -1.1404838264 -2.30581593514 -1.14044290781 -2.34033322334 -1.14041376114 -2.37484925985 -1.14039626717 -2.40936422348 -1.14039063454 -2.44387876987 -1.14039665461 -2.47839319706 -1.14041447639 -2.51290827989 -1.14044398069 -2.5474242568 -1.14048525691 -2.58194172382 -1.14052253961 -2.61841082573 -1.1404838264 -2.65488171577 -1.14044293761 -2.6893991828 -1.14041373134 -2.7239151001 -1.14039626717 -2.75843006373 -1.14039063454 -2.79294455051 -1.14039665461 -2.82745915651 -1.14041444659 -2.86197412014 -1.14044401049 -2.89649009705 -1.14048525691 -2.93100762367 -1.14052256942 -2.96747666597 -1.1404838264 -3.00394749641 -1.14044290781 -3.03846502304 -1.14041379094 -3.07298094034 -1.14039632678 -3.10749596358 -1.14039063454 --3.14117494424 -1.14039668441 --3.10666030645 -1.14041447639 --3.07214534283 -1.14044401049 --3.03762936592 -1.14048525691 --3.00311183929 -1.14052253961 --2.96664279699 -1.1404838562 --2.93017196656 -1.14044290781 --2.89565443993 -1.14041376114 --2.86113852262 -1.14039626717 --2.82662343979 -1.14039060473 --2.7921090126 -1.14039665461 --2.75759446621 -1.14041447639 --2.72307950258 -1.14044398069 --2.68856346607 -1.14048528671 --2.65404599905 -1.14052253961 --2.61757689714 -1.1404838562 --2.5811060071 -1.14044290781 --2.54658865929 -1.14041373134 --2.51207268238 -1.14039626717 --2.47755765915 -1.14039060473 --2.44304311275 -1.14039665461 --2.40852868557 -1.14041444659 --2.37401366234 -1.14044398069 --2.33949768543 -1.14048525691 --2.3049801588 -1.14052256942 --2.2685110569 -1.1404838562 --2.23204016685 -1.14044290781 --2.19752275944 -1.14041373134 --2.16300678253 -1.14039626717 --2.12849187851 -1.14039063454 --2.09397733212 -1.14039665461 --2.05946278572 -1.14041447639 --2.02494776249 -1.1404440403 --1.99043178559 -1.14048528671 --1.95591431856 -1.14052253961 --1.91944521666 -1.1404838264 --1.88297435641 -1.14044296742 --1.84845691919 -1.14041376114 --1.81394094229 -1.14039626717 --1.77942594886 -1.14039060473 --1.74491146207 -1.14039665461 --1.71039694548 -1.14041444659 --1.67588195205 -1.14044401049 --1.64136597514 -1.14048528671 --1.60684847832 -1.14052253961 --1.57037937641 -1.1404838562 --1.53390851617 -1.14044290781 --1.49939110875 -1.14041373134 --1.46487510204 -1.14039626717 --1.43036010861 -1.14039063454 --1.39584562182 -1.14039665461 --1.36133113503 -1.14041444659 --1.3268161118 -1.14044401049 --1.2923001051 -1.14048522711 --1.25778263807 -1.14052253961 --1.22131353617 -1.1404838562 --1.18484261632 -1.14044293761 --1.1503252089 -1.14041376114 --1.1158092618 -1.14039626717 --1.08129426837 -1.14039063454 --1.04677975178 -1.14039665461 --1.01226523519 -1.14041444659 --0.977750241756 -1.14044401049 --0.943234249949 -1.14048528671 --0.908716768026 -1.14052253961 --0.872247695923 -1.1404838264 --0.835776805878 -1.14044290781 --0.80125939846 -1.14041376114 --0.766743406653 -1.14039626717 --0.732228413225 -1.14039063454 --0.697713926435 -1.14039665461 --0.663199394942 -1.14041447639 --0.628684386611 -1.14044398069 --0.594168409705 -1.14048525691 --0.559650912881 -1.14052253961 --0.523181810975 -1.1404838264 --0.486710958183 -1.14044293761 --0.452193520963 -1.14041373134 --0.417677551508 -1.14039626717 --0.38316257298 -1.14039063454 --0.348648048938 -1.14039665461 --0.314133547247 -1.14041444659 --0.279618553817 -1.14044401049 --0.245102550834 -1.14048525691 --0.21058506146 -1.14052256942 --0.174115970731 -1.22873190046 --0.137628715485 -1.22868961096 --0.103111147881 -1.2286594212 --0.0685950489715 -1.2286414504 --0.0340799218975 -1.22863554955 -0.000434721121565 -1.22864180803 -0.0349493697286 -1.22866025567 -0.0694645196199 -1.22869080305 -0.103980664164 -1.22873342037 -0.138498287648 -1.22877192497 -0.174966815859 -1.22873187065 -0.211437128484 -1.22868964076 -0.245954692364 -1.22865945101 -0.28047081083 -1.2286413908 -0.31498593092 -1.22863551975 -0.349500566721 -1.22864180803 -0.384015232325 -1.22866022587 -0.418530374765 -1.22869077325 -0.453046523034 -1.22873342037 -0.487564139068 -1.22877195478 -0.524032682181 -1.22873193026 -0.56050299108 -1.22868961096 -0.595020547509 -1.2286594212 -0.629536643625 -1.2286413908 -0.664051771164 -1.22863557935 -0.698566392064 -1.22864180803 -0.73308108747 -1.22866025567 -0.76759621501 -1.22869077325 -0.802112340927 -1.22873339057 -0.836629986763 -1.22877189517 -0.873098537326 -1.22873187065 -0.909568846226 -1.22868964076 -0.944086402654 -1.2286594212 -0.97860249877 -1.2286413908 -1.01311761141 -1.22863557935 -1.04763227701 -1.22864180803 -1.08214691281 -1.22866025567 -1.11666202545 -1.22869074345 -1.15117821097 -1.22873345017 -1.18569585681 -1.22877195478 -1.22216436267 -1.22873187065 -1.25863468647 -1.22868964076 -1.2931522727 -1.2286594212 -1.32766836881 -1.2286413908 -1.36218348146 -1.22863557935 -1.39669811726 -1.22864180803 -1.43121278286 -1.22866025567 -1.4657278955 -1.22869077325 -1.50024408102 -1.22873342037 -1.53476166725 -1.22877192497 -1.57123023272 -1.22873184085 -1.60770055652 -1.22868961096 -1.64221808314 -1.22865945101 -1.67673420906 -1.2286414206 -1.7112492919 -1.22863554955 -1.74576398731 -1.22864180803 -1.7802785933 -1.22866025567 -1.81479379535 -1.22869077325 -1.84930989146 -1.22873339057 -1.88382750749 -1.22877195478 -1.92029604316 -1.22873190046 -1.95676639676 -1.22868964076 -1.99128398299 -1.2286594212 -2.0258000493 -1.2286413908 -2.06031519174 -1.22863554955 -2.09482985735 -1.22864177823 -2.12934440374 -1.22866022587 -2.16385960579 -1.22869077325 -2.19837582111 -1.22873339057 -2.23289340734 -1.22877195478 -2.2693618536 -1.22873187065 -2.30583220721 -1.22868964076 -2.34034979344 -1.22865945101 -2.37486588955 -1.2286414206 -2.40938103199 -1.22863557935 -2.44389569759 -1.22864180803 -2.47841030359 -1.22866025567 -2.51292544603 -1.22869077325 -2.54744160175 -1.22873342037 -2.58195924759 -1.22877195478 -2.61842781305 -1.22873187065 -2.65489804745 -1.22868964076 -2.68941563368 -1.22865945101 -2.7239317894 -1.2286413908 -2.75844693184 -1.22863554955 -2.79296153784 -1.22864180803 -2.82747620344 -1.22866025567 -2.86199128628 -1.22869077325 -2.89650738239 -1.22873339057 -2.93102502823 -1.22877192497 -2.9674936533 -1.22873190046 -3.0039639473 -1.22868961096 -3.03848153353 -1.2286594212 -3.07299757004 -1.2286414504 -3.10751271248 -1.22863554955 --3.14115795691 -1.22864180803 --3.10664325952 -1.22866025567 --3.07212817669 -1.22869080305 --3.03761208058 -1.22873342037 --3.00309443474 -1.22877192497 --2.96662580967 -1.22873187065 --2.93015551567 -1.22868964076 --2.89563792944 -1.22865945101 --2.86112189293 -1.2286413908 --2.82660675049 -1.22863551975 --2.79209208488 -1.22864180803 --2.75757747888 -1.22866022587 --2.72306221723 -1.22869077325 --2.68854612112 -1.22873342037 --2.65402853489 -1.22877195478 --2.61756002903 -1.22873193026 --2.58108967542 -1.22868961096 --2.5465720892 -1.2286594212 --2.51205599308 -1.2286413908 --2.47754091025 -1.22863557935 --2.44302624464 -1.22864180803 --2.40851157904 -1.22866025567 --2.3739964366 -1.22869077325 --2.33948028087 -1.22873339057 --2.30496263504 -1.22877189517 --2.26849406958 -1.22873187065 --2.23202377558 -1.22868964076 --2.19750624895 -1.2286594212 --2.16299015284 -1.2286413908 --2.12847507 -1.22863557935 --2.0939604044 -1.22864180803 --2.05944567919 -1.22866025567 --2.02493059635 -1.22869074345 --1.99041441083 -1.22873345017 --1.9558968246 -1.22877195478 --1.91942828894 -1.22873187065 --1.88295796514 -1.22868964076 --1.84844040871 -1.2286594212 --1.81392428279 -1.2286413908 --1.77940917015 -1.22863557935 --1.74489453435 -1.22864180803 --1.71037986875 -1.22866025567 --1.6758647263 -1.22869077325 --1.64134860039 -1.22873342037 --1.60683095455 -1.22877192497 --1.57036241889 -1.22873184085 --1.53389212489 -1.22868961096 --1.49937453866 -1.22865945101 --1.46485844254 -1.2286414206 --1.43034332991 -1.22863554955 --1.3958286941 -1.22864180803 --1.3613140285 -1.22866025567 --1.32679888606 -1.22869077325 --1.29228273034 -1.22873339057 --1.25776511431 -1.22877195478 --1.22129657865 -1.22873190046 --1.18482625484 -1.22868964076 --1.15030872822 -1.2286594212 --1.1157925725 -1.2286413908 --1.08127745986 -1.22863554955 --1.04676279426 -1.22864177823 --1.01224818826 -1.22866022587 --0.977733045817 -1.22869077325 --0.943216875196 -1.22873339057 --0.908699259162 -1.22877195478 --0.872230738402 -1.22873187065 --0.8357604146 -1.22868964076 --0.801242828369 -1.22865945101 --0.766726732254 -1.2286414206 --0.732211604714 -1.22863557935 --0.697696968913 -1.22864180803 --0.663182333112 -1.22866025567 --0.62866717577 -1.22869077325 --0.59415102005 -1.22873342037 --0.559633418918 -1.22877195478 --0.523164883256 -1.22873187065 --0.486694574356 -1.22868964076 --0.452177003026 -1.22865945101 --0.41766089946 -1.2286413908 --0.38314576447 -1.22863554955 --0.348631136119 -1.22864180803 --0.314116485417 -1.22866025567 --0.279601335525 -1.22869077325 --0.245085194707 -1.22873339057 --0.210567571223 -1.22877192497 --0.174099024385 -1.31437096 --0.137614253908 -1.31432756782 --0.103096567095 -1.3142965734 --0.0685803415254 -1.31427803635 --0.0340650924481 -1.31427204609 -0.000449671410022 -1.31427845359 -0.0349644431845 -1.31429737806 -0.0694797132164 -1.31432875991 -0.103995975107 -1.31437250972 -0.138513725251 -1.31441214681 -0.174981769175 -1.31437096 -0.211451597512 -1.31432756782 -0.2459692806 -1.3142965734 -0.280485503375 -1.31427806616 -0.315000765026 -1.31427201629 -0.349515512586 -1.31427845359 -0.384030297398 -1.31429731846 -0.418545559049 -1.31432875991 -0.453061833977 -1.31437256932 -0.487579576671 -1.31441214681 -0.524047598243 -1.31437093019 -0.560517460108 -1.31432753801 -0.595035135746 -1.3142965734 -0.629551365971 -1.31427806616 -0.664066612721 -1.31427204609 -0.698581382632 -1.31427845359 -0.733096152544 -1.31429737806 -0.767611429095 -1.31432875991 -0.802127674222 -1.31437250972 -0.836645409465 -1.31441214681 -0.873113468289 -1.31437093019 -0.909583285451 -1.31432753802 -0.944100990891 -1.3142965734 -0.978617206216 -1.31427806616 -1.01313248277 -1.31427204609 -1.04764720797 -1.31427845359 -1.08216199279 -1.31429740787 -1.11667725444 -1.31432875991 -1.15119355917 -1.31437253952 -1.18571126461 -1.314412117 -1.22217935324 -1.31437096 -1.2586491406 -1.31432753802 -1.29316684604 -1.3142965734 -1.32768306136 -1.31427806616 -1.36219829321 -1.31427201629 -1.39671304822 -1.31427845359 -1.43122783303 -1.31429740787 -1.46574312449 -1.31432881951 -1.50025936961 -1.31437250972 -1.53477713466 -1.314412117 -1.57124516368 -1.3143709898 -1.60771501064 -1.31432753802 -1.64223265648 -1.3142965734 -1.67674893141 -1.31427806616 -1.71126419306 -1.31427198649 -1.74577894807 -1.31427848339 -1.78029370308 -1.31429740787 -1.81480899453 -1.31432875991 -1.84932523966 -1.31437253952 -1.8838429749 -1.31441214681 -1.92031106353 -1.31437096 -1.95678085089 -1.31432756782 -1.99129852653 -1.3142965734 -2.02581477165 -1.31427806616 -2.0603300333 -1.31427204609 -2.09484475851 -1.31427845359 -2.12935960293 -1.31429734826 -2.16387486458 -1.31432875991 -2.19839113951 -1.31437253952 -2.23290878534 -1.31441214681 -2.26937687397 -1.31437093019 -2.30584669113 -1.31432756782 -2.34036445617 -1.3142965734 -2.3748806119 -1.31427806616 -2.40939593315 -1.31427201629 -2.44391065836 -1.31427845359 -2.47842538357 -1.31429740787 -2.51294064522 -1.31432875991 -2.54745692015 -1.31437250972 -2.58197468519 -1.31441214681 -2.61844271421 -1.31437096 -2.65491253138 -1.31432756782 -2.68943023681 -1.3142965734 -2.72394645214 -1.31427806616 -2.75846171379 -1.31427201629 -2.7929764986 -1.31427848339 -2.82749122381 -1.31429740787 -2.86200654507 -1.31432875991 -2.89652276039 -1.31437253952 -2.93104052543 -1.31441214681 -2.96750861407 -1.31437096 -3.00397849083 -1.31432756782 -3.03849601745 -1.3142965734 -3.07301223278 -1.31427803635 -3.10752755404 -1.31427204609 --3.14114299615 -1.31427845359 --3.10662823916 -1.31429737806 --3.0721129179 -1.31432875991 --3.03759670258 -1.31437250972 --3.00307893753 -1.31441214681 --2.9666108489 -1.31437096 --2.93014103174 -1.31432756782 --2.89562344551 -1.3142965734 --2.86110711098 -1.31427806616 --2.82659190893 -1.31427201629 --2.79207712412 -1.31427845359 --2.7575622797 -1.31429731846 --2.72304707766 -1.31432875991 --2.68853080273 -1.31437256932 --2.65401309729 -1.31441214681 --2.61754506826 -1.31437093019 --2.5810751915 -1.31432753801 --2.54655748606 -1.3142965734 --2.51204121113 -1.31427806616 --2.47752606869 -1.31427204609 --2.44301128387 -1.31427845359 --2.40849649906 -1.31429737806 --2.37398123741 -1.31432875991 --2.33946496248 -1.31437250972 --2.30494731665 -1.31441214681 --2.26847922802 -1.31437093019 --2.23200941086 -1.31432753802 --2.19749164582 -1.3142965734 --2.16297543049 -1.31427806616 --2.12846016884 -1.31427204609 --2.09394538402 -1.31427845359 --2.05943071842 -1.31429740787 --2.02491545677 -1.31432875991 --1.99039912224 -1.31437253952 --1.95588138699 -1.314412117 --1.91941332817 -1.31437096 --1.88294348121 -1.31432753802 --1.84842583537 -1.3142965734 --1.81390959024 -1.31427806616 --1.77939432859 -1.31427201629 --1.74487957358 -1.31427845359 --1.71036478877 -1.31429740787 --1.67584952712 -1.31432881951 --1.64133328199 -1.31437250972 --1.60681554675 -1.314412117 --1.57034745812 -1.3143709898 --1.53387767077 -1.31432753802 --1.49935996533 -1.3142965734 --1.46484375 -1.31427806616 --1.43032851815 -1.31427198649 --1.39581373334 -1.31427848339 --1.36129897833 -1.31429740787 --1.32678368688 -1.31432875991 --1.29226744175 -1.31437253952 --1.25774967671 -1.31441214681 --1.22128164768 -1.31437096 --1.18481180072 -1.31432756782 --1.15029409528 -1.3142965734 --1.11577787995 -1.31427806616 --1.08126264811 -1.31427204609 --1.04674786329 -1.31427845359 --1.01223310828 -1.31429734826 --0.977717816829 -1.31432875991 --0.943201556802 -1.31437253952 --0.908683806658 -1.31441214681 --0.872215762734 -1.31437093019 --0.835745930672 -1.31432756782 --0.801228240133 -1.3142965734 --0.766712039709 -1.31427806616 --0.73219679296 -1.31427201629 --0.697682023048 -1.31427845359 --0.663167253137 -1.31429740787 --0.628652006388 -1.31432875991 --0.59413574636 -1.31437250972 --0.559617966414 -1.31441214681 --0.523149937391 -1.31437096 --0.486680090427 -1.31432756782 --0.452162414789 -1.3142965734 --0.417646199465 -1.31427806616 --0.383130952716 -1.31427201629 --0.348616175353 -1.31427848339 --0.314101412892 -1.31429740787 --0.279586143792 -1.31432875991 --0.245069868863 -1.31437253952 --0.210552129894 -1.31441214681 --0.174084085971 -1.40002453327 --0.137600738555 -1.39998006821 --0.103082930669 -1.39994847774 --0.0685665970668 -1.39992949366 --0.0340512352995 -1.39992323518 -0.00046364287846 -1.3999298811 -0.0349785308354 -1.3999492228 -0.069493914023 -1.39998140931 -0.104010295123 -1.4000261724 -0.1385281533 -1.40006670356 -0.174995753914 -1.40002450347 -0.211465112865 -1.39998006821 -0.245982907713 -1.39994844794 -0.280499264598 -1.39992952347 -0.315014600754 -1.39992332459 -0.349529504776 -1.3999298811 -0.384044386446 -1.39994925261 -0.418559774756 -1.39998137951 -0.453076146543 -1.4000261724 -0.487593993545 -1.40006667376 -0.524061590433 -1.40002450347 -0.560530975461 -1.39998009801 -0.595048755407 -1.39994844794 -0.629565104842 -1.39992949367 -0.664080485702 -1.39992332459 -0.698595330119 -1.3999298811 -0.733110234142 -1.39994925261 -0.767625615 -1.3999813497 -0.802141964436 -1.4000261724 -0.836659863591 -1.40006664395 -0.873127445578 -1.40002453327 -0.909596830606 -1.39998009801 -0.944114610553 -1.39994847775 -0.978630959987 -1.39992952347 -1.01314628124 -1.39992329478 -1.04766118526 -1.3999298811 -1.08217608929 -1.39994925261 -1.11669147015 -1.39998140931 -1.15120783448 -1.4000261724 -1.18572568893 -1.40006664395 -1.22219327092 -1.40002450347 -1.25866267085 -1.39998006821 -1.2931804359 -1.39994844794 -1.32769680023 -1.39992952347 -1.36221218109 -1.39992332459 -1.39672702551 -1.3999298811 -1.43124192953 -1.39994925261 -1.46575731039 -1.3999813199 -1.50027373433 -1.4000261724 -1.53479155898 -1.40006670356 -1.57125917077 -1.40002450347 -1.6077285409 -1.39998009801 -1.64224633575 -1.39994844794 -1.67676267028 -1.39992952347 -1.71127799153 -1.39992329478 -1.74579289555 -1.3999298811 -1.78030776977 -1.39994925261 -1.81482318044 -1.39998137951 -1.84933951497 -1.4000261724 -1.88385742903 -1.40006667376 -1.92032501101 -1.40002450347 -1.95679435134 -1.39998003841 -1.99131217599 -1.39994844794 -2.02582848072 -1.39992946386 -2.06034386158 -1.39992332459 -2.094858706 -1.3999298811 -2.12937361002 -1.39994925261 -2.16388899088 -1.39998137951 -2.19840532541 -1.4000261724 -2.23292320967 -1.40006667376 -2.26939088106 -1.40002450347 -2.30586022139 -1.39998006821 -2.34037804604 -1.39994844794 -2.37489426136 -1.39992949367 -2.40940964222 -1.39992326498 -2.44392460585 -1.3999298811 -2.47843950987 -1.39994925261 -2.51295489073 -1.39998137951 -2.54747128487 -1.4000261724 -2.58198910952 -1.40006664395 -2.6184567213 -1.40002450347 -2.65492606163 -1.39998006821 -2.68944382667 -1.39994847775 -2.72396022081 -1.39992952347 -2.75847566128 -1.39992332459 -2.79299044609 -1.3999298811 -2.82750535011 -1.39994925261 -2.86202073097 -1.39998137951 -2.89653706551 -1.4000261724 -2.93105494976 -1.40006667376 -2.96752256155 -1.40002453327 -3.00399190188 -1.39998006821 -3.03850972652 -1.39994847774 -3.07302606106 -1.39992949366 -3.10754144192 -1.39992323518 --3.14112898906 -1.3999298811 --3.10661411285 -1.3999492228 --3.07209873199 -1.39998140931 --3.03758239746 -1.4000261724 --3.00306451321 -1.40006670356 --2.96659690141 -1.40002450347 --2.93012756109 -1.39998006821 --2.89560973644 -1.39994844794 --2.86109340191 -1.39992952347 --2.82657802105 -1.39992332459 --2.79206317663 -1.3999298811 --2.75754827261 -1.39994925261 --2.72303289175 -1.39998137951 --2.68851655722 -1.4000261724 --2.65399867296 -1.40006667376 --2.61753112078 -1.40002450347 --2.58106172085 -1.39998009801 --2.5465438962 -1.39994844794 --2.51202756167 -1.39992949367 --2.47751224041 -1.39992332459 --2.44299733639 -1.3999298811 --2.40848243237 -1.39994925261 --2.37396705151 -1.3999813497 --2.33945065737 -1.4000261724 --2.30493277311 -1.40006664395 --2.26846516132 -1.40002453327 --2.231995821 -1.39998009801 --2.19747805596 -1.39994847775 --2.16296166181 -1.39992952347 --2.12844640017 -1.39992329478 --2.09393143654 -1.3999298811 --2.05941653252 -1.39994925261 --2.02490115166 -1.39998140931 --1.99038478732 -1.4000261724 --1.95586696267 -1.40006664395 --1.91939935088 -1.40002450347 --1.88292998075 -1.39998006821 --1.84841218591 -1.39994844794 --1.81389585137 -1.39992952347 --1.77938047051 -1.39992332459 --1.7448656261 -1.3999298811 --1.71035069227 -1.39994925261 --1.67583534121 -1.3999813199 --1.64131894708 -1.4000261724 --1.60680109262 -1.40006670356 --1.57033351064 -1.40002450347 --1.53386414051 -1.39998009801 --1.49934631586 -1.39994844794 --1.46482998132 -1.39992952347 --1.43031463027 -1.39992329478 --1.39579975605 -1.3999298811 --1.36128488183 -1.39994925261 --1.32676950097 -1.39998137951 --1.29225310683 -1.4000261724 --1.25773528218 -1.40006667376 --1.2212676704 -1.40002450347 --1.18479830026 -1.39998003841 --1.15028050542 -1.39994844794 --1.11576417089 -1.39992946386 --1.08124876022 -1.39992332459 --1.0467339158 -1.3999298811 --1.01221904158 -1.39994925261 --0.977703660727 -1.39998137951 --0.943187266588 -1.4000261724 --0.908669412136 -1.40006667376 --0.872201785445 -1.40002450347 --0.835732445121 -1.39998006821 --0.801214620471 -1.39994844794 --0.76669831574 -1.39992949367 --0.732182949782 -1.39992326498 --0.69766806066 -1.3999298811 --0.663153171539 -1.39994925261 --0.628637775779 -1.39998137951 --0.594121396541 -1.4000261724 --0.559603542089 -1.40006664395 --0.5231359303 -1.40002450347 --0.486666589975 -1.39998006821 --0.452148787677 -1.39994847775 --0.417632453144 -1.39992952347 --0.383117072284 -1.39992332459 --0.348602205515 -1.3999298811 --0.314087331295 -1.39994925261 --0.279571920633 -1.39998137951 --0.245055556298 -1.4000261724 --0.210537694395 -1.40006667376 --0.174070101232 --1.14052256942 -0.173895969987 --1.14052253962 -0.522961810231 --1.14052256942 -0.872027665377 --1.14052256942 -1.22109353543 --1.14052256942 -1.57015937567 --1.14052256942 -1.91922521591 --1.14052253962 -2.26829105616 --1.14052256942 -2.61735695601 --1.14052259922 -2.96642279625 --1.14052256942 --2.96769666672 --1.14052253962 --2.61863082647 --1.14052256942 --2.26956498623 --1.14052256942 --1.92049914598 --1.14052256942 --1.57143330574 --1.14052256942 --1.22236743569 --1.14052253962 --0.873301550746 --1.14052256942 --0.524235725403 --1.14052259922 --0.175169881433 --0.792559087277 -0.173979990184 --0.792559072375 -0.52304585278 --0.792559072375 -0.872111678124 --0.792559087277 -1.22117754817 --0.792559072375 -1.57024335861 --0.792559072375 -1.91930925846 --0.792559087277 -2.2683750987 --0.792559087277 -2.61744099855 --0.792559072375 -2.96650677919 --0.792559087277 --2.96761268378 --0.792559072375 --2.61854678392 --0.792559072375 --2.26948094368 --0.792559087277 --1.92041513324 --0.792559072375 --1.57134926319 --0.792559072375 --1.22228339315 --0.792559087277 --0.873217537999 --0.792559087277 --0.524151697755 --0.792559072375 --0.175085861236 --0.444516979158 -0.174096226692 --0.44451700151 -0.523162081838 --0.444516979158 -0.872227922082 --0.444516979158 -1.22129377723 --0.444516979158 -1.57035964728 --0.444516979158 -1.91942545772 --0.44451700151 -2.26849132777 --0.444516979158 -2.61755716801 --0.444516979158 -2.96662306786 --0.444516979158 --2.96749639511 --0.44451700151 --2.61843061447 --0.444516979158 --2.26936477423 --0.444516979158 --1.92029887438 --0.444516979158 --1.57123306394 --0.444516979158 --1.22216716409 --0.44451700151 --0.873101323843 --0.444516979158 --0.524035483599 --0.444516979158 --0.174969621003 --2.35158749999e-08 -0.174422927201 --2.35158749999e-08 -0.523488774895 --2.35158749999e-08 -0.872554630041 --2.35158749999e-08 -1.22162050009 --2.35158749999e-08 -1.57068634033 --2.35158749999e-08 -1.91975218058 --2.35158749999e-08 -2.26881802082 --2.35158749999e-08 -2.61788386107 --2.35158749999e-08 -2.96694970131 --2.35158749999e-08 --2.96716976166 --2.35158749999e-08 --2.61810392141 --2.35158749999e-08 --2.26903802156 --2.35158749999e-08 --1.91997218132 --2.35158749999e-08 --1.57090634107 --2.35158749999e-08 --1.22184047103 --2.35158749999e-08 --0.872774630785 --2.35158749999e-08 --0.52370877564 --2.35158749999e-08 --0.174642927945 -0.444516971708 -0.174749627709 -0.444516971708 -0.523815482855 -0.444516971708 -0.872881308198 -0.444516971708 -1.22194716334 -0.444516971708 -1.57101303339 -0.444516971708 -1.92007890343 -0.444516949356 -2.26914471388 -0.444516949356 -2.61821055412 -0.444516971708 -2.96727639436 -0.444516971708 --2.9668430686 -0.444516971708 --2.61777716875 -0.444516971708 --2.26871132851 -0.444516971708 --1.91964548827 -0.444516971708 --1.57057961822 -0.444516971708 --1.22151380778 -0.444516949356 --0.872447937727 -0.444516949356 --0.523382082581 -0.444516971708 --0.174316227436 -0.792559087276 -0.174865867943 -0.792559057474 -0.523931711912 -0.792559087276 -0.872997567058 -0.792559087276 -1.2220634222 -0.792559087276 -1.57112923265 -0.792559057474 -1.92019510269 -0.792559087276 -2.26926094294 -0.792559057474 -2.61832684279 -0.792559087276 -2.96739262343 -0.792559087276 --2.96672683954 -0.792559057474 --2.61766093969 -0.792559087276 --2.26859503984 -0.792559087276 --1.9195291996 -0.792559087276 --1.57046341896 -0.792559057474 --1.22139751911 -0.792559087276 --0.872331678867 -0.792559057474 --0.523265823722 -0.792559087276 --0.174199994654 -1.14052253961 -0.17494988069 -1.14052253961 -0.524015709758 -1.14052256942 -0.873081594705 -1.14052253961 -1.22214743495 -1.14052253961 -1.57121327519 -1.14052253961 -1.92027914524 -1.14052253961 -2.26934498548 -1.14052253961 -2.61841082573 -1.14052256942 -2.96747666597 -1.14052253961 --2.96664279699 -1.14052253961 --2.61757689714 -1.14052256942 --2.2685110569 -1.14052253961 --1.91944521666 -1.14052253961 --1.57037937641 -1.14052253961 --1.22131353617 -1.14052253961 --0.872247695923 -1.14052253961 --0.523181810975 -1.14052256942 --0.174115970731 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 --0.445734696637 --0.0828902302899 --0.445692247811 --0.0737967733504 --0.445649417478 --0.064703695363 --0.445606239297 --0.0556114589397 --0.445679863006 --0.0461776751127 --0.445773675836 --0.0367384257144 --0.445770527198 --0.0276353019696 --0.445766983934 --0.0185314209562 --0.445763067015 --0.00942725128817 --0.445761023272 --2.16840434497e-19 --0.445763067015 -0.00942725128817 --0.445766983934 -0.0185314209562 --0.445770527198 -0.0276353019696 --0.445773675836 -0.0367384257144 --0.445679863006 -0.0461776751127 --0.445606239297 -0.0556114589397 --0.445649417478 -0.064703695363 --0.445692247811 -0.0737967733504 --0.445734696637 -0.0828902302899 --0.436720068262 --0.082671904706 --0.436680371294 --0.0736024313247 --0.436640325593 --0.0645333515411 --0.436599952455 --0.0554651263885 --0.436668843324 --0.046055883989 --0.436756690748 --0.0366412029928 --0.43675387234 --0.0275621570739 --0.436750703022 --0.0184823674286 --0.436747182825 --0.00940229597992 --0.436745332885 --2.16840434497e-19 --0.436747182825 -0.00940229597992 --0.436750703022 -0.0184823674286 --0.43675387234 -0.0275621570739 --0.436756690748 -0.0366412029928 --0.436668843324 -0.046055883989 --0.436599952455 -0.0554651263885 --0.436640325593 -0.0645333515411 --0.436680371294 -0.0736024313247 --0.436720068262 -0.082671904706 --0.42772069843 --0.0824546304453 --0.427683726166 --0.0734090328885 --0.427646457882 --0.0643638472548 --0.427608883285 --0.0553195257678 --0.427673082379 --0.0459346749945 --0.427754997919 --0.0365444136292 --0.427752498045 --0.0274893383098 --0.42774968085 --0.0184335323263 --0.427746526053 --0.00937745141073 --0.427744848909 -0 --0.427746526053 -0.00937745141073 --0.42774968085 -0.0184335323263 --0.427752498045 -0.0274893383098 --0.427754997919 -0.0365444136292 --0.427673082379 -0.0459346749945 --0.427608883285 -0.0553195257678 --0.427646457882 -0.0643638472548 --0.427683726166 -0.0734090328885 --0.42772069843 -0.0824546304453 --0.418705039499 --0.127909580671 --0.418638860928 --0.118899858163 --0.418572459355 --0.109891750727 --0.418505804701 --0.100885679196 --0.4186131322 --0.09156627982 --0.418736800937 --0.0822383873074 --0.418702567301 --0.0732165620209 --0.418668057162 --0.0641951679709 --0.418633263362 --0.0551746470402 --0.418692781454 --0.0458140397756 --0.418768778522 --0.0364480489219 --0.418766607157 --0.0274168396857 --0.418764121024 --0.0183849116393 --0.4187613401 --0.00935271598039 --0.41875986503 -0 --0.4187613401 -0.00935271598039 --0.418764121024 -0.0183849116393 --0.418766607157 -0.0274168396857 --0.418768778522 -0.0364480489219 --0.418692781454 -0.0458140397756 --0.418633263362 -0.0551746470402 --0.418668057162 -0.0641951679709 --0.418702567301 -0.0732165620209 --0.418736800937 -0.0822383873074 --0.4186131322 -0.09156627982 --0.418505804701 -0.100885679196 --0.418572459355 -0.109891750727 --0.418638860928 -0.118899858163 --0.418705039499 -0.127909580671 --0.41009473881 --0.128419202349 --0.41002329297 --0.119373218514 --0.409951595521 --0.110328863448 --0.409879658335 --0.101286573382 --0.409995416794 --0.0919313066824 --0.410128726126 --0.082567521339 --0.41009165461 --0.0735094386816 --0.41005428615 --0.0644517834241 --0.410016600788 --0.0553950085828 --0.410080974771 --0.0459975507229 --0.410163077344 --0.0365946809162 --0.410160491999 --0.0275271548648 --0.410157558615 --0.0184588914283 --0.410154317665 --0.00939035198173 --0.410152613004 -0 --0.410154317665 -0.00939035198173 --0.410157558615 -0.0184588914283 --0.410160491999 -0.0275271548648 --0.410163077344 -0.0365946809162 --0.410080974771 -0.0459975507229 --0.410016600788 -0.0553950085828 --0.41005428615 -0.0644517834241 --0.41009165461 -0.0735094386816 --0.410128726126 -0.082567521339 --0.409995416794 -0.0919313066824 --0.409879658335 -0.101286573382 --0.409951595521 -0.110328863448 --0.41002329297 -0.119373218514 --0.41009473881 -0.128419202349 --0.401384384469 --0.220459013968 --0.401234732054 --0.211406673167 --0.401085068122 --0.202358568892 --0.400935382782 --0.193315118551 --0.401168387605 --0.184069972977 --0.401419637028 --0.174810222373 --0.401306369068 --0.165741345623 --0.401192940599 --0.156675375937 --0.401079363821 --0.147612748826 --0.401258088386 --0.138284288904 --0.401455364036 --0.12894422573 --0.40137870232 --0.119860883797 --0.401301770995 --0.110779181101 --0.401224602254 --0.1016995729 --0.401348708507 --0.0923073740248 --0.401491576065 --0.0829066222285 --0.401451684586 --0.0738111722517 --0.401411475598 --0.0647161484081 --0.40137093684 --0.0556220151431 --0.401440139158 --0.0461866258209 --0.401528278013 --0.036745791605 --0.401525270531 --0.0276408390871 --0.401521902204 --0.0185351313067 --0.401518186144 --0.00942913730454 --0.401516244302 -2.16840434497e-19 --0.401518186144 -0.00942913730454 --0.401521902204 -0.0185351313067 --0.401525270531 -0.0276408390871 --0.401528278013 -0.036745791605 --0.401440139158 -0.0461866258209 --0.40137093684 -0.0556220151431 --0.401411475598 -0.0647161484081 --0.401451684586 -0.0738111722517 --0.401491576065 -0.0829066222285 --0.401348708507 -0.0923073740248 --0.401224602254 -0.1016995729 --0.401301770995 -0.110779181101 --0.40137870232 -0.119860883797 --0.401455364036 -0.12894422573 --0.401258088386 -0.138284288904 --0.401079363821 -0.147612748826 --0.401192940599 -0.156675375937 --0.401306369068 -0.165741345623 --0.401419637028 -0.174810222373 --0.401168387605 -0.184069972977 --0.400935382782 -0.193315118551 --0.401085068122 -0.202358568892 --0.401234732054 -0.211406673167 --0.401384384469 -0.220459013968 --0.392363274975 --0.219947418843 --0.39222371765 --0.210916108398 --0.392084157409 --0.201889065689 --0.391944581046 --0.192866684998 --0.392161978041 --0.183641637913 --0.39239642204 --0.174402052928 --0.392290845697 --0.165354384606 --0.392185098316 --0.156309644438 --0.392079211827 --0.147268258916 --0.392245936562 --0.137960719094 --0.392429962702 --0.128641624053 --0.39235852524 --0.119579633309 --0.392286863721 --0.110519304829 --0.392214961513 --0.101461081062 --0.392330654308 --0.0920904165832 --0.392463894915 --0.0827112382306 --0.392426800465 --0.0736372594136 --0.392389393632 --0.0645637212255 --0.392351686004 --0.0554910821289 --0.392416110506 --0.0460776293857 --0.392498204654 --0.0366587576456 --0.392495539043 --0.0275753608312 --0.392492532618 --0.0184912192771 --0.392489196252 --0.00940679729692 --0.392487459181 -0 --0.392489196252 -0.00940679729692 --0.392492532618 -0.0184912192771 --0.392495539043 -0.0275753608312 --0.392498204654 -0.0366587576456 --0.392416110506 -0.0460776293857 --0.392351686004 -0.0554910821289 --0.392389393632 -0.0645637212255 --0.392426800465 -0.0736372594136 --0.392463894915 -0.0827112382306 --0.392330654308 -0.0920904165832 --0.392214961513 -0.101461081062 --0.392286863721 -0.110519304829 --0.39235852524 -0.119579633309 --0.392429962702 -0.128641624053 --0.392245936562 -0.137960719094 --0.392079211827 -0.147268258916 --0.392185098316 -0.156309644438 --0.392290845697 -0.165354384606 --0.39239642204 -0.174402052928 --0.392161978041 -0.183641637913 --0.391944581046 -0.192866684998 --0.392084157409 -0.201889065689 --0.39222371765 -0.210916108398 --0.392363274975 -0.219947418843 --0.383355461543 --0.219438023249 --0.38322598326 --0.210427672928 --0.383096493354 --0.201421605927 --0.382966998103 --0.192420217166 --0.383168841328 --0.183215170602 --0.383386507335 --0.173995643974 --0.383288582201 --0.164969108557 --0.383190506714 --0.155945517498 --0.383092307232 --0.146925298748 --0.383247037372 --0.137638564792 --0.383417844867 --0.128340320544 --0.383351636319 --0.11929960232 --0.383285225747 --0.110260565943 --0.383218585458 --0.101223648672 --0.383325880794 --0.0918743940199 --0.38344949406 --0.0825166692656 --0.383415194709 --0.0734640849346 --0.383380581515 --0.0644119505479 --0.383345688702 --0.0553607250209 --0.383405351719 --0.0459690863836 --0.383481428044 --0.0365720523 --0.383479100254 --0.0275101287792 --0.383476463485 --0.0184474725428 --0.383473514929 --0.00938454192642 --0.383471967669 -0 --0.383473514929 -0.00938454192642 --0.383476463485 -0.0184474725428 --0.383479100254 -0.0275101287792 --0.383481428044 -0.0365720523 --0.383405351719 -0.0459690863836 --0.383345688702 -0.0553607250209 --0.383380581515 -0.0644119505479 --0.383415194709 -0.0734640849346 --0.38344949406 -0.0825166692656 --0.383325880794 -0.0918743940199 --0.383218585458 -0.101223648672 --0.383285225747 -0.110260565943 --0.383351636319 -0.11929960232 --0.383417844867 -0.128340320544 --0.383247037372 -0.137638564792 --0.383092307232 -0.146925298748 --0.383190506714 -0.155945517498 --0.383288582201 -0.164969108557 --0.383386507335 -0.173995643974 --0.383168841328 -0.183215170602 --0.382966998103 -0.192420217166 --0.383096493354 -0.201421605927 --0.38322598326 -0.210427672928 --0.383355461543 -0.219438023249 --0.374332491483 --0.264019018376 --0.374184158405 --0.255047225491 --0.374035977857 --0.24608114617 --0.373887933071 --0.237121126334 --0.374117425826 --0.228034613887 --0.374361208534 --0.218930795129 --0.374241797176 --0.209941335889 --0.374122359763 --0.200956169136 --0.374002919455 --0.191975700187 --0.374189228512 --0.182790547081 --0.37439014371 --0.173590971459 --0.374299859429 --0.16458549304 --0.374209439952 --0.155582971909 --0.374118911154 --0.146583840399 --0.374261676892 --0.137317799952 --0.374419289896 --0.128040293551 --0.374358299386 --0.119020772734 --0.374297109072 --0.110002950991 --0.374235725275 --0.100987260166 --0.374334658445 --0.0916592998842 --0.374448639351 --0.0823229048267 --0.374417114723 --0.0732916314001 --0.374385308886 --0.0642608234907 --0.374353239451 --0.055230933862 --0.374408147872 --0.0458609887878 --0.374478212158 --0.0364856706291 --0.374476212559 --0.0274451395804 --0.374473935986 --0.0184038883802 --0.374471362461 --0.00936236887826 --0.374470001464 -0 --0.374471362461 -0.00936236887826 --0.374473935986 -0.0184038883802 --0.374476212559 -0.0274451395804 --0.374478212158 -0.0364856706291 --0.374408147872 -0.0458609887878 --0.374353239451 -0.055230933862 --0.374385308886 -0.0642608234907 --0.374417114723 -0.0732916314001 --0.374448639351 -0.0823229048267 --0.374334658445 -0.0916592998842 --0.374235725275 -0.100987260166 --0.374297109072 -0.110002950991 --0.374358299386 -0.119020772734 --0.374419289896 -0.128040293551 --0.374261676892 -0.137317799952 --0.374118911154 -0.146583840399 --0.374209439952 -0.155582971909 --0.374299859429 -0.16458549304 --0.37439014371 -0.173590971459 --0.374189228512 -0.182790547081 --0.374002919455 -0.191975700187 --0.374122359763 -0.200956169136 --0.374241797176 -0.209941335889 --0.374361208534 -0.218930795129 --0.374117425826 -0.228034613887 --0.373887933071 -0.237121126334 --0.374035977857 -0.24608114617 --0.374184158405 -0.255047225491 --0.374332491483 -0.264019018376 --0.365558020549 --0.264943758707 --0.365397583892 --0.255939063157 --0.36523732978 --0.246940150083 --0.365077222806 --0.237947376881 --0.365325227778 --0.228834052091 --0.36558865133 --0.219703411783 --0.365459442912 --0.210681225743 --0.365330226782 --0.201663384125 --0.36520101215 --0.192650299689 --0.365402401283 --0.183436129649 --0.365619562785 --0.174207529989 --0.365521816454 --0.165169444582 --0.365423935166 --0.156134350958 --0.365325939383 --0.147102683202 --0.36548034851 --0.137805844793 --0.365650791603 --0.128497527761 --0.365584685136 --0.119445459288 --0.365518366329 --0.110395102485 --0.36545183331 --0.101346897892 --0.365558986982 --0.0919867945877 --0.365682367799 --0.082618230146 --0.365648055553 --0.0735544083387 --0.365613468096 --0.0644910541512 --0.365578594795 --0.0554286234186 --0.365638219399 --0.0460256520825 --0.365714208647 --0.0366172837493 --0.365711782521 --0.0275441556661 --0.365709058302 --0.018470290165 --0.365706027653 --0.0093961491204 --0.365704432274 --2.16840434497e-19 --0.365706027653 -0.0093961491204 --0.365709058302 -0.018470290165 --0.365711782521 -0.0275441556661 --0.365714208647 -0.0366172837493 --0.365638219399 -0.0460256520825 --0.365578594795 -0.0554286234186 --0.365613468096 -0.0644910541512 --0.365648055553 -0.0735544083387 --0.365682367799 -0.082618230146 --0.365558986982 -0.0919867945877 --0.36545183331 -0.101346897892 --0.365518366329 -0.110395102485 --0.365584685136 -0.119445459288 --0.365650791603 -0.128497527761 --0.36548034851 -0.137805844793 --0.365325939383 -0.147102683202 --0.365423935166 -0.156134350958 --0.365521816454 -0.165169444582 --0.365619562785 -0.174207529989 --0.365402401283 -0.183436129649 --0.36520101215 -0.192650299689 --0.365330226782 -0.201663384125 --0.365459442912 -0.210681225743 --0.36558865133 -0.219703411783 --0.365325227778 -0.228834052091 --0.365077222806 -0.237947376881 --0.36523732978 -0.246940150083 --0.365397583892 -0.255939063157 --0.365558020549 -0.264943758707 --0.356757272612 --0.265901351667 --0.356584843314 --0.256862623039 --0.356412612381 --0.247829744844 --0.356240558698 --0.238803080246 --0.356506902586 --0.229661935363 --0.356789789123 --0.220503450041 --0.356650878702 --0.211447396948 --0.356511964604 --0.202395739977 --0.356373072656 --0.193348896545 --0.35658942496 --0.184104660017 --0.356822691648 --0.174845970541 --0.356717548508 --0.165774126621 --0.356612272987 --0.15670530976 --0.356506869373 --0.147639950532 --0.356672822428 --0.138311214439 --0.356855993565 --0.128970984432 --0.356784817075 --0.119885210856 --0.356713407676 --0.110801160721 --0.356641758066 --0.101719285577 --0.356757053482 --0.0923259130888 --0.356889777888 --0.082924052366 --0.356852708126 --0.0738265172616 --0.356815343795 --0.064729450801 --0.356777682982 --0.055633316069 --0.35684198265 --0.0461961756694 --0.356923852338 --0.0367536113825 --0.356921015885 --0.0276467191689 --0.35691785532 --0.018539071498 --0.356914370689 --0.00943113994673 --0.35691254249 -0 --0.356914370689 -0.00943113994673 --0.35691785532 -0.018539071498 --0.356921015885 -0.0276467191689 --0.356923852338 -0.0367536113825 --0.35684198265 -0.0461961756694 --0.356777682982 -0.055633316069 --0.356815343795 -0.064729450801 --0.356852708126 -0.0738265172616 --0.356889777888 -0.082924052366 --0.356757053482 -0.0923259130888 --0.356641758066 -0.101719285577 --0.356713407676 -0.110801160721 --0.356784817075 -0.119885210856 --0.356855993565 -0.128970984432 --0.356672822428 -0.138311214439 --0.356506869373 -0.147639950532 --0.356612272987 -0.15670530976 --0.356717548508 -0.165774126621 --0.356822691648 -0.174845970541 --0.35658942496 -0.184104660017 --0.356373072656 -0.193348896545 --0.356511964604 -0.202395739977 --0.356650878702 -0.211447396948 --0.356789789123 -0.220503450041 --0.356506902586 -0.229661935363 --0.356240558698 -0.238803080246 --0.356412612381 -0.247829744844 --0.356584843314 -0.256862623039 --0.356757272612 -0.265901351667 --0.347724920797 --0.265362069175 --0.347565159292 --0.256341718324 --0.347405566427 --0.247327223388 --0.347246145816 --0.238318962132 --0.347493098433 --0.229194608313 --0.347755388682 --0.220052972594 --0.34762670284 --0.211015467292 --0.347498020556 --0.201982380141 --0.347369351937 --0.192954103975 --0.347569923768 --0.183727541225 --0.347786179708 --0.174486579335 --0.347688810028 --0.165433421408 --0.347591304042 --0.156383309829 --0.34749367377 --0.14733666834 --0.347647489938 --0.138026327653 --0.347817266305 --0.128704531188 --0.347751392539 --0.119637576193 --0.347685300148 --0.110572356777 --0.347618968734 --0.101509318134 --0.347725757499 --0.092134880176 --0.347848732234 --0.0827519901685 --0.347814492404 --0.0736733723203 --0.347779973698 --0.0645952351695 --0.347745171925 --0.0555180372583 --0.347804630133 --0.0461001865651 --0.347880394608 --0.036676936049 --0.347877899475 --0.0275890336959 --0.347875101387 --0.0185003855727 --0.34787199702 --0.0094114587918 --0.347870366031 --2.16840434497e-19 --0.34787199702 -0.0094114587918 --0.347875101387 -0.0185003855727 --0.347877899475 -0.0275890336959 --0.347880394608 -0.036676936049 --0.347804630133 -0.0461001865651 --0.347745171925 -0.0555180372583 --0.347779973698 -0.0645952351695 --0.347814492404 -0.0736733723203 --0.347848732234 -0.0827519901685 --0.347725757499 -0.092134880176 --0.347618968734 -0.101509318134 --0.347685300148 -0.110572356777 --0.347751392539 -0.119637576193 --0.347817266305 -0.128704531188 --0.347647489938 -0.138026327653 --0.34749367377 -0.14733666834 --0.347591304042 -0.156383309829 --0.347688810028 -0.165433421408 --0.347786179708 -0.174486579335 --0.347569923768 -0.183727541225 --0.347369351937 -0.192954103975 --0.347498020556 -0.201982380141 --0.34762670284 -0.211015467292 --0.347755388682 -0.220052972594 --0.347493098433 -0.229194608313 --0.347246145816 -0.238318962132 --0.347405566427 -0.247327223388 --0.347565159292 -0.256341718324 --0.347724920797 -0.265362069175 --0.338703945726 --0.264824761986 --0.338556832642 --0.255822731636 --0.338409872532 --0.246826574177 --0.338263060245 --0.237836669818 --0.338490645655 --0.228729026973 --0.338732371129 --0.219604160402 --0.338613901838 --0.210585148594 --0.338495435498 --0.201570571817 --0.338376958897 --0.19256080853 --0.338561772823 --0.183351828441 --0.338761052942 --0.174128505518 --0.338671434022 --0.165093982099 --0.338581693448 --0.156062521305 --0.338491830368 --0.14703454261 --0.338633511217 --0.137742504225 --0.338789904079 --0.128439048974 --0.338729322595 --0.119390853644 --0.338668539411 --0.110344406028 --0.338607534028 --0.101300149366 --0.338705832705 --0.0919445511326 --0.33881904894 --0.0825805322156 --0.338787642224 --0.07352077647 --0.338755962601 --0.0644615102707 --0.338724017988 --0.0554031914221 --0.338778656972 --0.046004532305 --0.338848321817 --0.0366004946955 --0.338846159198 --0.0275315237623 --0.338843717411 --0.0184618172168 --0.338840995161 --0.00939183773559 --0.338839561169 -2.16840434497e-19 --0.338840995161 -0.00939183773559 --0.338843717411 -0.0184618172168 --0.338846159198 -0.0275315237623 --0.338848321817 -0.0366004946955 --0.338778656972 -0.046004532305 --0.338724017988 -0.0554031914221 --0.338755962601 -0.0644615102707 --0.338787642224 -0.07352077647 --0.33881904894 -0.0825805322156 --0.338705832705 -0.0919445511326 --0.338607534028 -0.101300149366 --0.338668539411 -0.110344406028 --0.338729322595 -0.119390853644 --0.338789904079 -0.128439048974 --0.338633511217 -0.137742504225 --0.338491830368 -0.14703454261 --0.338581693448 -0.156062521305 --0.338671434022 -0.165093982099 --0.338761052942 -0.174128505518 --0.338561772823 -0.183351828441 --0.338376958897 -0.19256080853 --0.338495435498 -0.201570571817 --0.338613901838 -0.210585148594 --0.338732371129 -0.219604160402 --0.338490645655 -0.228729026973 --0.338263060245 -0.237836669818 --0.338409872532 -0.246826574177 --0.338556832642 -0.255822731636 --0.338703945726 -0.264824761986 --0.329668467414 --0.309133374479 --0.329508027268 --0.300167561665 --0.329347889606 --0.291209159149 --0.329188037071 --0.282258495016 --0.329435055643 --0.273283920838 --0.329694652245 --0.26428938609 --0.329560171692 --0.255305631414 --0.329425827107 --0.246327772219 --0.329291615245 --0.237356178995 --0.329499866398 --0.228265173503 --0.329721050949 --0.219156996323 --0.329612780628 --0.210156419488 --0.329504510411 --0.201160289646 --0.329396216656 --0.192168993279 --0.32956529162 --0.1829775173 --0.329747604651 --0.173771741456 --0.329665713586 --0.164755793686 --0.329583725599 --0.155742926683 --0.329501631894 --0.146733560644 --0.329631200074 --0.137459727479 --0.329774234646 --0.128174515674 --0.3297189285 --0.119145022145 --0.329663424504 --0.110117291454 --0.329607736431 --0.101091767582 --0.329697577919 --0.0917549152772 --0.329801055354 --0.0824096693039 --0.329772452306 --0.0733687174489 --0.32974360883 --0.0643282677537 --0.32971452015 --0.0552887718434 --0.329764341224 --0.045909206179 --0.32982791569 --0.0365242821668 --0.329826091023 --0.02747418586 --0.32982401459 --0.0184233647268 --0.329821673566 --0.00937227570326 --0.329820434085 -0 --0.329821673566 -0.00937227570326 --0.32982401459 -0.0184233647268 --0.329826091023 -0.02747418586 --0.32982791569 -0.0365242821668 --0.329764341224 -0.045909206179 --0.32971452015 -0.0552887718434 --0.32974360883 -0.0643282677537 --0.329772452306 -0.0733687174489 --0.329801055354 -0.0824096693039 --0.329697577919 -0.0917549152772 --0.329607736431 -0.101091767582 --0.329663424504 -0.110117291454 --0.3297189285 -0.119145022145 --0.329774234646 -0.128174515674 --0.329631200074 -0.137459727479 --0.329501631894 -0.146733560644 --0.329583725599 -0.155742926683 --0.329665713586 -0.164755793686 --0.329747604651 -0.173771741456 --0.32956529162 -0.1829775173 --0.329396216656 -0.192168993279 --0.329504510411 -0.201160289646 --0.329612780628 -0.210156419488 --0.329721050949 -0.219156996323 --0.329499866398 -0.228265173503 --0.329291615245 -0.237356178995 --0.329425827107 -0.246327772219 --0.329560171692 -0.255305631414 --0.329694652245 -0.26428938609 --0.329435055643 -0.273283920838 --0.329188037071 -0.282258495016 --0.329347889606 -0.291209159149 --0.329508027268 -0.300167561665 --0.329668467414 -0.309133374479 --0.320744955908 --0.310080821199 --0.320570485259 --0.301085709411 --0.320396332273 --0.292098067262 --0.320222487522 --0.283118241017 --0.320490865517 --0.274122269059 --0.320772909737 --0.2651063449 --0.320626629035 --0.256093511333 --0.320480492706 --0.247086616645 --0.320334508839 --0.238086049007 --0.32056082163 --0.228971393051 --0.3208011786 --0.219839568269 --0.320683364054 --0.210810061716 --0.320565546099 --0.201785038709 --0.320447710867 --0.192764909758 --0.320631492654 --0.183547841764 --0.320829647041 --0.174316461301 --0.320740481599 --0.165271688566 --0.320651204451 --0.156230017577 --0.320561825459 --0.147191889691 --0.320702765438 --0.137890886196 --0.32085832212 --0.128578484254 --0.320798018684 --0.119520217596 --0.320737505199 --0.110463727342 --0.32067678822 --0.101409461806 --0.320774623818 --0.0920442467726 --0.320887269369 --0.082670622224 --0.320855943618 --0.0736008989086 --0.320824374503 --0.0645316776622 --0.320792536323 --0.0554634155629 --0.320846982601 --0.046054709568 --0.320916368318 --0.0366406242064 --0.320914123314 --0.0275617125442 --0.320911616353 --0.0184820628573 --0.320908825258 --0.00940213754122 --0.320907354095 -2.16840434497e-19 --0.320908825258 -0.00940213754122 --0.320911616353 -0.0184820628573 --0.320914123314 -0.0275617125442 --0.320916368318 -0.0366406242064 --0.320846982601 -0.046054709568 --0.320792536323 -0.0554634155629 --0.320824374503 -0.0645316776622 --0.320855943618 -0.0736008989086 --0.320887269369 -0.082670622224 --0.320774623818 -0.0920442467726 --0.32067678822 -0.101409461806 --0.320737505199 -0.110463727342 --0.320798018684 -0.119520217596 --0.32085832212 -0.128578484254 --0.320702765438 -0.137890886196 --0.320561825459 -0.147191889691 --0.320651204451 -0.156230017577 --0.320740481599 -0.165271688566 --0.320829647041 -0.174316461301 --0.320631492654 -0.183547841764 --0.320447710867 -0.192764909758 --0.320565546099 -0.201785038709 --0.320683364054 -0.210810061716 --0.3208011786 -0.219839568269 --0.32056082163 -0.228971393051 --0.320334508839 -0.238086049007 --0.320480492706 -0.247086616645 --0.320626629035 -0.256093511333 --0.320772909737 -0.2651063449 --0.320490865517 -0.274122269059 --0.320222487522 -0.283118241017 --0.320396332273 -0.292098067262 --0.320570485259 -0.301085709411 --0.320744955908 -0.310080821199 --0.311114723926 --0.328856158238 --0.311449232147 --0.319973503456 --0.311797981005 --0.31106817986 --0.311609576738 --0.30204258283 --0.311421518281 --0.293024526883 --0.311233804985 --0.284014382781 --0.311523386256 --0.274996024057 --0.311827700487 --0.26595770441 --0.31166971783 --0.256914602091 --0.311511898693 --0.247877492559 --0.311354240764 --0.238846764529 --0.31159846641 --0.229707402238 --0.311857843131 --0.220550864197 --0.311730550875 --0.211491228355 --0.311603258882 --0.202436122224 --0.31147596671 --0.193385958687 --0.311674345544 --0.184142189101 --0.311888223853 --0.174884095487 --0.311791851552 --0.165809300296 --0.311695354516 --0.156737627306 --0.311598735632 --0.147669521559 --0.311750947083 --0.138340195759 --0.311918924971 --0.128999456353 --0.311853663607 --0.119911201227 --0.311788188873 --0.110824740835 --0.311722492926 --0.101740524498 --0.311828242874 --0.0923457631941 --0.31194996713 --0.0829425714879 --0.311915959117 --0.0738428572914 --0.31188167856 --0.064743643803 --0.311847114613 --0.0556453983994 --0.311906162326 --0.0462063543326 --0.311981312639 --0.036761905193 --0.311978656937 --0.0276529557015 --0.311975712602 --0.0185432527489 --0.311972466663 --0.0094332665196 --0.311970766771 -0 --0.311972466663 -0.0094332665196 --0.311975712602 -0.0185432527489 --0.311978656937 -0.0276529557015 --0.311981312639 -0.036761905193 --0.311906162326 -0.0462063543326 --0.311847114613 -0.0556453983994 --0.31188167856 -0.064743643803 --0.311915959117 -0.0738428572914 --0.31194996713 -0.0829425714879 --0.311828242874 -0.0923457631941 --0.311722492926 -0.101740524498 --0.311788188873 -0.110824740835 --0.311853663607 -0.119911201227 --0.311918924971 -0.128999456353 --0.311750947083 -0.138340195759 --0.311598735632 -0.147669521559 --0.311695354516 -0.156737627306 --0.311791851552 -0.165809300296 --0.311888223853 -0.174884095487 --0.311674345544 -0.184142189101 --0.31147596671 -0.193385958687 --0.311603258882 -0.202436122224 --0.311730550875 -0.211491228355 --0.311857843131 -0.220550864197 --0.31159846641 -0.229707402238 --0.311354240764 -0.238846764529 --0.311511898693 -0.247877492559 --0.31166971783 -0.256914602091 --0.311827700487 -0.26595770441 --0.311523386256 -0.274996024057 --0.311233804985 -0.284014382781 --0.311421518281 -0.293024526883 --0.311609576738 -0.30204258283 --0.311797981005 -0.31106817986 --0.311449232147 -0.319973503456 --0.311114723926 -0.328856158238 --0.302125836538 --0.328291634425 --0.302433525987 --0.319421559786 --0.302754310621 --0.310528889449 --0.302581158781 --0.301519011118 --0.302408323783 --0.292516681467 --0.302235817967 --0.283522281028 --0.302502184569 --0.274517504472 --0.30278208936 --0.265492815763 --0.30263691053 --0.256465573218 --0.302491882951 --0.247444343963 --0.302346996219 --0.238429501994 --0.302571624784 --0.229304587546 --0.302810180541 --0.220162547137 --0.302693216298 --0.21111891548 --0.302576257459 --0.202079828633 --0.302459292134 --0.193045684199 --0.302641726059 --0.183817124118 --0.302838409123 --0.174574281554 --0.302749888846 --0.165515614066 --0.302661260454 --0.156460089553 --0.302572498385 --0.147408126096 --0.302712419601 --0.138094624245 --0.302866863534 --0.128769753946 --0.30280695806 --0.119697730505 --0.302746850428 --0.110627514483 --0.302686545731 --0.101559554414 --0.302783699683 --0.0921810880424 --0.302895547776 --0.0827942164954 --0.302864399137 --0.0737108225267 --0.302832994055 --0.0646279402388 --0.302801320423 --0.0555460313023 --0.302855480935 --0.0461235884241 --0.302924455399 --0.036695758815 --0.302922148736 --0.0276031916988 --0.30291957004 --0.0185098789931 --0.302916707961 --0.00941628774828 --0.302915206788 -0 --0.302916707961 -0.00941628774828 --0.30291957004 -0.0185098789931 --0.302922148736 -0.0276031916988 --0.302924455399 -0.036695758815 --0.302855480935 -0.0461235884241 --0.302801320423 -0.0555460313023 --0.302832994055 -0.0646279402388 --0.302864399137 -0.0737108225267 --0.302895547776 -0.0827942164954 --0.302783699683 -0.0921810880424 --0.302686545731 -0.101559554414 --0.302746850428 -0.110627514483 --0.30280695806 -0.119697730505 --0.302866863534 -0.128769753946 --0.302712419601 -0.138094624245 --0.302572498385 -0.147408126096 --0.302661260454 -0.156460089553 --0.302749888846 -0.165515614066 --0.302838409123 -0.174574281554 --0.302641726059 -0.183817124118 --0.302459292134 -0.193045684199 --0.302576257459 -0.202079828633 --0.302693216298 -0.21111891548 --0.302810180541 -0.220162547137 --0.302571624784 -0.229304587546 --0.302346996219 -0.238429501994 --0.302491882951 -0.247444343963 --0.30263691053 -0.256465573218 --0.30278208936 -0.265492815763 --0.302502184569 -0.274517504472 --0.302235817967 -0.283522281028 --0.302408323783 -0.292516681467 --0.302581158781 -0.301519011118 --0.302754310621 -0.310528889449 --0.302433525987 -0.319421559786 --0.302125836538 -0.328291634425 --0.29314643865 --0.327728855145 --0.293427325558 --0.318871312022 --0.293720169091 --0.309991229175 --0.293562264739 --0.300997033758 --0.293404642568 --0.292010411142 --0.293247313591 --0.283031715637 --0.293490483838 --0.274040456003 --0.293746000929 --0.265029333695 --0.293613598777 --0.256017906715 --0.293481340678 --0.247012524896 --0.293349211326 --0.238013547422 --0.293554259896 --0.228903017001 --0.293772017929 --0.219775404749 --0.293665376869 --0.210747742834 --0.293558740235 --0.201724640336 --0.293452095477 --0.192706489384 --0.293618591561 --0.183493068299 --0.293798088144 --0.17426540047 --0.293717404946 --0.165222823118 --0.293636628613 --0.156183402794 --0.293555727237 --0.14714755589 --0.2936833818 --0.137849811617 --0.29382429695 --0.128540731022 --0.293769736876 --0.119484906426 --0.29371499581 --0.110430896087 --0.293660067826 --0.10137914843 --0.293748646038 --0.0920169045105 --0.293850646981 --0.0826462825828 --0.293822336078 --0.0735791704675 --0.293793790503 --0.0645125811023 --0.293765009486 --0.0554469706399 --0.293814287108 --0.0460410494009 --0.293877098597 --0.0366297619252 --0.293875140272 --0.0275535403926 --0.293872927117 --0.018476580657 --0.293870448761 --0.00939934751652 --0.293869139014 -2.16840434497e-19 --0.293870448761 -0.00939934751652 --0.293872927117 -0.018476580657 --0.293875140272 -0.0275535403926 --0.293877098597 -0.0366297619252 --0.293814287108 -0.0460410494009 --0.293765009486 -0.0554469706399 --0.293793790503 -0.0645125811023 --0.293822336078 -0.0735791704675 --0.293850646981 -0.0826462825828 --0.293748646038 -0.0920169045105 --0.293660067826 -0.10137914843 --0.29371499581 -0.110430896087 --0.293769736876 -0.119484906426 --0.29382429695 -0.128540731022 --0.2936833818 -0.137849811617 --0.293555727237 -0.14714755589 --0.293636628613 -0.156183402794 --0.293717404946 -0.165222823118 --0.293798088144 -0.17426540047 --0.293618591561 -0.183493068299 --0.293452095477 -0.192706489384 --0.293558740235 -0.201724640336 --0.293665376869 -0.210747742834 --0.293772017929 -0.219775404749 --0.293554259896 -0.228903017001 --0.293349211326 -0.238013547422 --0.293481340678 -0.247012524896 --0.293613598777 -0.256017906715 --0.293746000929 -0.265029333695 --0.293490483838 -0.274040456003 --0.293247313591 -0.283031715637 --0.293404642568 -0.292010411142 --0.293562264739 -0.300997033758 --0.293720169091 -0.309991229175 --0.293427325558 -0.318871312022 --0.29314643865 -0.327728855145 --0.284176859091 --0.327167778104 --0.28443097868 --0.318322716535 --0.284695904457 --0.309455167689 --0.284553221241 --0.300476629955 --0.284410797702 --0.29150568456 --0.28426862633 --0.282542669054 --0.284488611393 --0.273564850113 --0.284719764582 --0.264567223434 --0.28460013555 --0.25557159808 --0.284480635905 --0.246582025975 --0.284361246234 --0.237598874944 --0.284546729397 --0.228502671046 --0.284743712645 --0.219389428457 --0.284647379993 --0.210377692649 --0.284551051944 --0.201370535053 --0.284454715117 --0.192368351861 --0.284605283363 --0.18316999699 --0.284767618683 --0.173957439498 --0.284694761086 --0.164930917307 --0.284621819624 --0.155907562849 --0.284548769609 --0.146887801775 --0.284664176057 --0.137605736971 --0.284791570058 --0.128312364824 --0.284742341517 --0.119272701278 --0.284692961016 --0.110234870222 --0.284643409613 --0.101199308241 --0.284723413626 --0.0918532043858 --0.284815572242 --0.0824987536413 --0.284790101687 --0.0734478900564 --0.284764410932 --0.0643975562849 --0.284738525489 --0.0553482114243 --0.28478293923 --0.0459587369183 --0.284839594095 --0.0365639119206 --0.284837971153 --0.0275039987135 --0.284836118021 --0.0184433563703 --0.284834022761 --0.00938244496082 --0.284832910131 -2.16840434497e-19 --0.284834022761 -0.00938244496082 --0.284836118021 -0.0184433563703 --0.284837971153 -0.0275039987135 --0.284839594095 -0.0365639119206 --0.28478293923 -0.0459587369183 --0.284738525489 -0.0553482114243 --0.284764410932 -0.0643975562849 --0.284790101687 -0.0734478900564 --0.284815572242 -0.0824987536413 --0.284723413626 -0.0918532043858 --0.284643409613 -0.101199308241 --0.284692961016 -0.110234870222 --0.284742341517 -0.119272701278 --0.284791570058 -0.128312364824 --0.284664176057 -0.137605736971 --0.284548769609 -0.146887801775 --0.284621819624 -0.155907562849 --0.284694761086 -0.164930917307 --0.284767618683 -0.173957439498 --0.284605283363 -0.18316999699 --0.284454715117 -0.192368351861 --0.284551051944 -0.201370535053 --0.284647379993 -0.210377692649 --0.284743712645 -0.219389428457 --0.284546729397 -0.228502671046 --0.284361246234 -0.237598874944 --0.284480635905 -0.246582025975 --0.28460013555 -0.25557159808 --0.284719764582 -0.264567223434 --0.284488611393 -0.273564850113 --0.28426862633 -0.282542669054 --0.284410797702 -0.29150568456 --0.284553221241 -0.300476629955 --0.284695904457 -0.309455167689 --0.28443097868 -0.318322716535 --0.284176859091 -0.327167778104 --0.275069696207 --0.32802076568 --0.275347961655 --0.319159413297 --0.27563805029 --0.310275554138 --0.275481596181 --0.301271611763 --0.27532544883 --0.292275331642 --0.275169582419 --0.283287047536 --0.275410476556 --0.27429072797 --0.275663610449 --0.265274603837 --0.275532422884 --0.256253778465 --0.27540136729 --0.24723904213 --0.275270436511 --0.238230778675 --0.275473603745 --0.229114122226 --0.275689364234 --0.219980426346 --0.275583680425 --0.210943619606 --0.275477992612 --0.201911421839 --0.275372300884 --0.192884249624 --0.275537310898 --0.183663770114 --0.27571520061 --0.174429080312 --0.275635211471 --0.165377578693 --0.275555126561 --0.156329268619 --0.275474929424 --0.147284586451 --0.2756014848 --0.1379790344 --0.275741156471 --0.1286621608 --0.275687035827 --0.119597566138 --0.275632733326 --0.110534813151 --0.275578248208 --0.101474346538 --0.275666089959 --0.0921037267273 --0.275767223797 --0.0827247425563 --0.275739104616 --0.0736489508499 --0.275710744018 --0.064573688736 --0.275682160731 --0.0554994190123 --0.275731100507 --0.0460847562483 --0.275793436609 --0.0366647230362 --0.275791397737 --0.0275798412575 --0.275789106002 --0.0184942186436 --0.275786566269 --0.00940832041669 --0.27578523136 -0 --0.275786566269 -0.00940832041669 --0.275789106002 -0.0184942186436 --0.275791397737 -0.0275798412575 --0.275793436609 -0.0366647230362 --0.275731100507 -0.0460847562483 --0.275682160731 -0.0554994190123 --0.275710744018 -0.064573688736 --0.275739104616 -0.0736489508499 --0.275767223797 -0.0827247425563 --0.275666089959 -0.0921037267273 --0.275578248208 -0.101474346538 --0.275632733326 -0.110534813151 --0.275687035827 -0.119597566138 --0.275741156471 -0.1286621608 --0.2756014848 -0.1379790344 --0.275474929424 -0.147284586451 --0.275555126561 -0.156329268619 --0.275635211471 -0.165377578693 --0.27571520061 -0.174429080312 --0.275537310898 -0.183663770114 --0.275372300884 -0.192884249624 --0.275477992612 -0.201911421839 --0.275583680425 -0.210943619606 --0.275689364234 -0.219980426346 --0.275473603745 -0.229114122226 --0.275270436511 -0.238230778675 --0.27540136729 -0.24723904213 --0.275532422884 -0.256253778465 --0.275663610449 -0.265274603837 --0.275410476556 -0.27429072797 --0.275169582419 -0.283287047536 --0.27532544883 -0.292275331642 --0.275481596181 -0.301271611763 --0.27563805029 -0.310275554138 --0.275347961655 -0.319159413297 --0.275069696207 -0.32802076568 --0.265835698426 --0.373411774802 --0.266177956481 --0.364682933089 --0.26653254893 --0.355928961386 --0.266335276732 --0.346915553692 --0.266138532803 --0.337911547528 --0.265942307909 --0.328917250362 --0.266244553571 --0.320038643355 --0.266559633489 --0.311137530782 --0.266389510055 --0.302106948793 --0.26621972196 --0.293084102499 --0.26605025587 --0.284069337336 --0.266311930036 --0.275053487281 --0.266586890731 --0.266017831502 --0.266444217657 --0.256970560325 --0.266301685546 --0.247929429822 --0.266159305883 --0.238894834789 --0.266380051245 --0.229756630092 --0.266614456726 --0.22060136464 --0.266499479508 --0.211538241337 --0.266384501534 --0.202479767561 --0.266269522967 --0.19342635438 --0.266448887389 --0.184182603364 --0.26664222367 --0.174924621342 --0.266555149775 --0.165846884457 --0.266467968736 --0.156772363419 --0.266380669848 --0.147701492821 --0.266518299074 --0.138371257307 --0.266670159756 --0.129029686623 --0.266611182675 --0.119938897097 --0.266552005148 --0.110849957544 --0.266492621864 --0.101763320972 --0.266588251646 --0.0923669585861 --0.266698301529 --0.0829622057646 --0.266667540043 --0.0738602090719 --0.266636528383 --0.0647587474214 --0.266605265536 --0.0556582813833 --0.266658699579 --0.0462171781477 --0.266726671979 --0.0367706828153 --0.266724225018 --0.0276595573363 --0.266721501469 --0.0185476783533 --0.266718507691 --0.00943551714935 --0.266716946307 -2.16840434497e-19 --0.266718507691 -0.00943551714935 --0.266721501469 -0.0185476783533 --0.266724225018 -0.0276595573363 --0.266726671979 -0.0367706828153 --0.266658699579 -0.0462171781477 --0.266605265536 -0.0556582813833 --0.266636528383 -0.0647587474214 --0.266667540043 -0.0738602090719 --0.266698301529 -0.0829622057646 --0.266588251646 -0.0923669585861 --0.266492621864 -0.101763320972 --0.266552005148 -0.110849957544 --0.266611182675 -0.119938897097 --0.266670159756 -0.129029686623 --0.266518299074 -0.138371257307 --0.266380669848 -0.147701492821 --0.266467968736 -0.156772363419 --0.266555149775 -0.165846884457 --0.26664222367 -0.174924621342 --0.266448887389 -0.184182603364 --0.266269522967 -0.19342635438 --0.266384501534 -0.202479767561 --0.266499479508 -0.211538241337 --0.266614456726 -0.22060136464 --0.266380051245 -0.229756630092 --0.266159305883 -0.238894834789 --0.266301685546 -0.247929429822 --0.266444217657 -0.256970560325 --0.266586890731 -0.266017831502 --0.266311930036 -0.275053487281 --0.26605025587 -0.284069337336 --0.26621972196 -0.293084102499 --0.266389510055 -0.302106948793 --0.266559633489 -0.311137530782 --0.266244553571 -0.320038643355 --0.265942307909 -0.328917250362 --0.266138532803 -0.337911547528 --0.266335276732 -0.346915553692 --0.26653254893 -0.355928961386 --0.266177956481 -0.364682933089 --0.265835698426 -0.373411774802 --0.256843421781 --0.372880595957 --0.257155007289 --0.36416138265 --0.257477805431 --0.355417091688 --0.257298396159 --0.3464167442 --0.257119466541 --0.33742581245 --0.256941014122 --0.328444591038 --0.257216182568 --0.319576498446 --0.257503022997 --0.310685962434 --0.257348301974 --0.301668563295 --0.257193874445 --0.292658909373 --0.257039745308 --0.28365734543 --0.257277976479 --0.274652829833 --0.257528290573 --0.26562856627 --0.257398547393 --0.256594604071 --0.257268924679 --0.247566782164 --0.257139440741 --0.238545505432 --0.25734040131 --0.229419379175 --0.257553781186 --0.220276227174 --0.25744922762 --0.21122651492 --0.25734467829 --0.202181475109 --0.257240133263 --0.193141501148 --0.257403391127 --0.183910453894 --0.257579371662 --0.174665210721 --0.257500231225 --0.165600993337 --0.257420975799 --0.156540005282 --0.257341617204 --0.147482669911 --0.25746685232 --0.138165657456 --0.257605031929 --0.128837342054 --0.257551451243 --0.119760156431 --0.257497704831 --0.1106848343 --0.257443770025 --0.101611825279 --0.25753072048 --0.0922290734265 --0.2576308004 --0.0828379535489 --0.257602913149 --0.0737496354662 --0.257574802903 --0.0646618612348 --0.257546463706 --0.0555750888329 --0.257594968005 --0.0461478534607 --0.257656703538 --0.0367152422213 --0.257654595294 --0.0276178472825 --0.257652246569 --0.0185197058216 --0.257649639957 --0.00942128641518 --0.257648272323 -0 --0.257649639957 -0.00942128641518 --0.257652246569 -0.0185197058216 --0.257654595294 -0.0276178472825 --0.257656703538 -0.0367152422213 --0.257594968005 -0.0461478534607 --0.257546463706 -0.0555750888329 --0.257574802903 -0.0646618612348 --0.257602913149 -0.0737496354662 --0.2576308004 -0.0828379535489 --0.25753072048 -0.0922290734265 --0.257443770025 -0.101611825279 --0.257497704831 -0.1106848343 --0.257551451243 -0.119760156431 --0.257605031929 -0.128837342054 --0.25746685232 -0.138165657456 --0.257341617204 -0.147482669911 --0.257420975799 -0.156540005282 --0.257500231225 -0.165600993337 --0.257579371662 -0.174665210721 --0.257403391127 -0.183910453894 --0.257240133263 -0.193141501148 --0.25734467829 -0.202181475109 --0.25744922762 -0.21122651492 --0.257553781186 -0.220276227174 --0.25734040131 -0.229419379175 --0.257139440741 -0.238545505432 --0.257268924679 -0.247566782164 --0.257398547393 -0.256594604071 --0.257528290573 -0.26562856627 --0.257277976479 -0.274652829833 --0.257039745308 -0.28365734543 --0.257193874445 -0.292658909373 --0.257348301974 -0.301668563295 --0.257503022997 -0.310685962434 --0.257216182568 -0.319576498446 --0.256941014122 -0.328444591038 --0.257119466541 -0.33742581245 --0.257298396159 -0.3464167442 --0.257477805431 -0.355417091688 --0.257155007289 -0.36416138265 --0.256843421781 -0.372880595957 --0.247858830684 --0.372350682429 --0.248139748072 --0.36364105674 --0.248430763083 --0.354906400577 --0.248269207727 --0.345919098863 --0.248108077683 --0.336941221707 --0.247947377225 --0.327973061263 --0.248195494053 --0.319115453985 --0.248454115439 --0.310235439298 --0.248314778814 --0.30123120773 --0.248175705427 --0.292234737742 --0.248036906388 --0.283246360049 --0.248251707179 --0.274253144337 --0.248477387284 --0.26524021369 --0.248360551802 --0.256219532139 --0.24824383448 --0.247205014174 --0.248127241492 --0.238197039265 --0.248308409796 --0.229082930015 --0.248500769484 --0.21995184157 --0.248406648761 --0.210915533416 --0.248312530916 --0.201883909558 --0.248218405357 --0.192857355537 --0.248365559114 --0.183638953896 --0.248524193066 --0.174406395508 --0.248452968328 --0.16535568232 --0.248381632033 --0.156308202787 --0.248310225241 --0.147264398477 --0.248423066874 --0.137960555697 --0.248547572599 --0.128645426521 --0.248499390129 --0.119581829515 --0.248451058799 --0.110520106659 --0.248402562051 --0.101460702741 --0.248480838287 --0.092091500013 --0.248570959733 --0.0827139545225 --0.248545949998 --0.0736392980185 --0.248520733324 --0.0645651926218 --0.2484953156 --0.055492096413 --0.248538892737 --0.0460786675632 --0.248594401221 --0.03665987857 --0.248592631649 --0.0275761953393 --0.248590651279 --0.0184917720928 --0.248588437081 --0.0094070755878 --0.248587262899 -0 --0.248588437081 -0.0094070755878 --0.248590651279 -0.0184917720928 --0.248592631649 -0.0275761953393 --0.248594401221 -0.03665987857 --0.248538892737 -0.0460786675632 --0.2484953156 -0.055492096413 --0.248520733324 -0.0645651926218 --0.248545949998 -0.0736392980185 --0.248570959733 -0.0827139545225 --0.248480838287 -0.092091500013 --0.248402562051 -0.101460702741 --0.248451058799 -0.110520106659 --0.248499390129 -0.119581829515 --0.248547572599 -0.128645426521 --0.248423066874 -0.137960555697 --0.248310225241 -0.147264398477 --0.248381632033 -0.156308202787 --0.248452968328 -0.16535568232 --0.248524193066 -0.174406395508 --0.248365559114 -0.183638953896 --0.248218405357 -0.192857355537 --0.248312530916 -0.201883909558 --0.248406648761 -0.210915533416 --0.248500769484 -0.21995184157 --0.248308409796 -0.229082930015 --0.248127241492 -0.238197039265 --0.24824383448 -0.247205014174 --0.248360551802 -0.256219532139 --0.248477387284 -0.26524021369 --0.248251707179 -0.274253144337 --0.248036906388 -0.283246360049 --0.248175705427 -0.292234737742 --0.248314778814 -0.30123120773 --0.248454115439 -0.310235439298 --0.248195494053 -0.319115453985 --0.247947377225 -0.327973061263 --0.248108077683 -0.336941221707 --0.248269207727 -0.345919098863 --0.248430763083 -0.354906400577 --0.248139748072 -0.36364105674 --0.247858830684 -0.372350682429 --0.238882287023 --0.371822026727 --0.239132569721 --0.363121940147 --0.23939182484 --0.354396880892 --0.239248099843 --0.345422616533 --0.239104751569 --0.336457773771 --0.238961790726 --0.32750266724 --0.239182858065 --0.318655488508 --0.239413269513 --0.309785951408 --0.239289307422 --0.300794878531 --0.239165589885 --0.291811572629 --0.239042111586 --0.282836367078 --0.239233481465 --0.273854392205 --0.239434545483 --0.264852747826 --0.239330604819 --0.255845331518 --0.239226779567 --0.246844107646 --0.239123059229 --0.237849435776 --0.239284449974 --0.228747282459 --0.239455822079 --0.219628201687 --0.239372118069 --0.210605281392 --0.239288415559 --0.201587050865 --0.239204704207 --0.192573903105 --0.239335771486 --0.183368096643 --0.239477060543 --0.174148168886 --0.23941373178 --0.165110938684 --0.239350318113 --0.156076955185 --0.239286849167 --0.147046658371 --0.239387300514 --0.13775591985 --0.239498154068 --0.128453921435 --0.239455375927 --0.119403898574 --0.239412448761 --0.110355763173 --0.239369373251 --0.101309945732 --0.23943898742 --0.0919542342762 --0.239519163653 --0.0825902078698 --0.239497028518 --0.0735291935104 --0.239474696873 --0.0644687369172 --0.239452191847 --0.0554092970245 --0.239490851569 --0.0460096154687 --0.239540143606 --0.0366045886723 --0.239538712155 --0.0275345987278 --0.239537082624 --0.0184638753228 --0.239535266169 --0.009392883356 --0.239534308316 --2.16840434497e-19 --0.239535266169 -0.009392883356 --0.239537082624 -0.0184638753228 --0.239538712155 -0.0275345987278 --0.239540143606 -0.0366045886723 --0.239490851569 -0.0460096154687 --0.239452191847 -0.0554092970245 --0.239474696873 -0.0644687369172 --0.239497028518 -0.0735291935104 --0.239519163653 -0.0825902078698 --0.23943898742 -0.0919542342762 --0.239369373251 -0.101309945732 --0.239412448761 -0.110355763173 --0.239455375927 -0.119403898574 --0.239498154068 -0.128453921435 --0.239387300514 -0.13775591985 --0.239286849167 -0.147046658371 --0.239350318113 -0.156076955185 --0.23941373178 -0.165110938684 --0.239477060543 -0.174148168886 --0.239335771486 -0.183368096643 --0.239204704207 -0.192573903105 --0.239288415559 -0.201587050865 --0.239372118069 -0.210605281392 --0.239455822079 -0.219628201687 --0.239284449974 -0.228747282459 --0.239123059229 -0.237849435776 --0.239226779567 -0.246844107646 --0.239330604819 -0.255845331518 --0.239434545483 -0.264852747826 --0.239233481465 -0.273854392205 --0.239042111586 -0.282836367078 --0.239165589885 -0.291811572629 --0.239289307422 -0.300794878531 --0.239413269513 -0.309785951408 --0.239182858065 -0.318655488508 --0.238961790726 -0.32750266724 --0.239104751569 -0.336457773771 --0.239248099843 -0.345422616533 --0.23939182484 -0.354396880892 --0.239132569721 -0.363121940147 --0.238882287023 -0.371822026727 --0.229651167689 --0.372628618266 --0.229927860609 --0.363916788693 --0.230214468241 --0.355179988105 --0.230055333409 --0.346184117298 --0.2298966246 --0.337197725325 --0.229738346453 --0.328221156938 --0.229982731598 --0.319360229871 --0.230237451662 --0.310476932009 --0.230100199264 --0.30146445936 --0.22996322397 --0.292459811701 --0.229826493489 --0.283463316686 --0.230038115602 --0.274465747101 --0.23026046152 --0.2654485128 --0.230145343804 --0.256419856395 --0.230030355863 --0.247397424641 --0.229915487123 --0.238381597951 --0.230093957864 --0.229262238546 --0.230283455294 --0.220125947072 --0.230190695811 --0.211081897015 --0.230097941071 --0.202042560598 --0.230005198313 --0.193008350415 --0.230150239999 --0.183783935068 --0.230306567083 --0.174545389225 --0.230236349911 --0.165487105809 --0.230166042246 --0.156432092014 --0.230095645653 --0.147380778756 --0.230206862782 --0.138070291722 --0.230329579231 --0.128748540587 --0.230282053326 --0.119677497547 --0.230234371529 --0.110608351528 --0.230186529656 --0.101541539237 --0.230263735966 --0.0921652269094 --0.230352597881 --0.0827805859827 --0.230327886942 --0.073698558281 --0.23030296403 --0.0646170846254 --0.230277841296 --0.0555366273984 --0.230320897489 --0.046115781938 --0.230375702657 --0.0366895767916 --0.230373864722 --0.027598537392 --0.230371805377 --0.0185067546307 --0.230369547691 --0.00941469741526 --0.230368369429 --2.16840434497e-19 --0.230369547691 -0.00941469741526 --0.230371805377 -0.0185067546307 --0.230373864722 -0.027598537392 --0.230375702657 -0.0366895767916 --0.230320897489 -0.046115781938 --0.230277841296 -0.0555366273984 --0.23030296403 -0.0646170846254 --0.230327886942 -0.073698558281 --0.230352597881 -0.0827805859827 --0.230263735966 -0.0921652269094 --0.230186529656 -0.101541539237 --0.230234371529 -0.110608351528 --0.230282053326 -0.119677497547 --0.230329579231 -0.128748540587 --0.230206862782 -0.138070291722 --0.230095645653 -0.147380778756 --0.230166042246 -0.156432092014 --0.230236349911 -0.165487105809 --0.230306567083 -0.174545389225 --0.230150239999 -0.183783935068 --0.230005198313 -0.193008350415 --0.230097941071 -0.202042560598 --0.230190695811 -0.211081897015 --0.230283455294 -0.220125947072 --0.230093957864 -0.229262238546 --0.229915487123 -0.238381597951 --0.230030355863 -0.247397424641 --0.230145343804 -0.256419856395 --0.23026046152 -0.2654485128 --0.230038115602 -0.274465747101 --0.229826493489 -0.283463316686 --0.22996322397 -0.292459811701 --0.230100199264 -0.30146445936 --0.230237451662 -0.310476932009 --0.229982731598 -0.319360229871 --0.229738346453 -0.328221156938 --0.2298966246 -0.337197725325 --0.230055333409 -0.346184117298 --0.230214468241 -0.355179988105 --0.229927860609 -0.363916788693 --0.229651167689 -0.372628618266 --0.220994941014 --0.400457983381 --0.220796836909 --0.391455670622 --0.220599417687 --0.382464710489 --0.220402670336 --0.373485369837 --0.220705604405 --0.364760912175 --0.221019400392 --0.356011476985 --0.220844961006 --0.34699275816 --0.220670996657 --0.337983585591 --0.220497494956 --0.32898430237 --0.220765061248 --0.32010864618 --0.221043957073 --0.311210616228 --0.220893494423 --0.302175487323 --0.22074332497 --0.293148232322 --0.220593438842 --0.284129195963 --0.220825206628 --0.275114992477 --0.221068699281 --0.266081105443 --0.220942476341 --0.257029940099 --0.220816391706 --0.247985036323 --0.220690446453 --0.238946784032 --0.220885894279 --0.229809097373 --0.221093401456 --0.220654458361 --0.22099166152 --0.211588003408 --0.220889918757 --0.202526285822 --0.220788180227 --0.193469716226 --0.220947119109 --0.184225513209 --0.221118405658 --0.174967171159 --0.221041332835 --0.165886546205 --0.220964158444 --0.156809203509 --0.220886889677 --0.147735582409 --0.221008816149 --0.13840411933 --0.221143314275 --0.129061381095 --0.221091069823 --0.119968022118 --0.221038658411 --0.110876563039 --0.220986086113 --0.10178745969 --0.221070837132 --0.0923892806869 --0.221168330313 --0.0829827519957 --0.221141064697 --0.0738784041023 --0.221113566533 --0.0647746071628 --0.221085836768 --0.0556718287884 --0.221133262967 --0.0462285315435 --0.221193547048 --0.0367798557533 --0.221191309234 --0.0276664571392 --0.221188838454 --0.0185523046805 --0.221186125082 --0.0094378701392 --0.221184705469 -2.16840434497e-19 --0.221186125082 -0.0094378701392 --0.221188838454 -0.0185523046805 --0.221191309234 -0.0276664571392 --0.221193547048 -0.0367798557533 --0.221133262967 -0.0462285315435 --0.221085836768 -0.0556718287884 --0.221113566533 -0.0647746071628 --0.221141064697 -0.0738784041023 --0.221168330313 -0.0829827519957 --0.221070837132 -0.0923892806869 --0.220986086113 -0.10178745969 --0.221038658411 -0.110876563039 --0.221091069823 -0.119968022118 --0.221143314275 -0.129061381095 --0.221008816149 -0.13840411933 --0.220886889677 -0.147735582409 --0.220964158444 -0.156809203509 --0.221041332835 -0.165886546205 --0.221118405658 -0.174967171159 --0.220947119109 -0.184225513209 --0.220788180227 -0.193469716226 --0.220889918757 -0.202526285822 --0.22099166152 -0.211588003408 --0.221093401456 -0.220654458361 --0.220885894279 -0.229809097373 --0.220690446453 -0.238946784032 --0.220816391706 -0.247985036323 --0.220942476341 -0.257029940099 --0.221068699281 -0.266081105443 --0.220825206628 -0.275114992477 --0.220593438842 -0.284129195963 --0.22074332497 -0.293148232322 --0.220893494423 -0.302175487323 --0.221043957073 -0.311210616228 --0.220765061248 -0.32010864618 --0.220497494956 -0.32898430237 --0.220670996657 -0.337983585591 --0.220844961006 -0.34699275816 --0.221019400392 -0.356011476985 --0.220705604405 -0.364760912175 --0.220402670336 -0.373485369837 --0.220599417687 -0.382464710489 --0.220796836909 -0.391455670622 --0.220994941014 -0.400457983381 --0.211929408244 --0.399999319146 --0.211751793079 --0.39100744775 --0.211574780327 --0.382026933176 --0.21139836404 --0.373058041213 --0.21167034609 --0.364341306795 --0.211952070531 --0.355599650025 --0.211795652689 --0.346591475106 --0.211639660596 --0.337592847107 --0.211484083012 --0.32860411117 --0.211724326634 --0.319736889812 --0.211974732804 --0.310847347977 --0.21183981023 --0.301822857459 --0.211705145467 --0.292806240557 --0.211570739127 --0.28379784984 --0.211778851458 --0.274792743143 --0.211997480275 --0.265767993907 --0.211884303243 --0.256727559079 --0.211771239254 --0.247693388863 --0.211658295184 --0.238665871547 --0.211833774344 --0.229537859639 --0.21202007853 --0.22039293282 --0.211928863532 --0.211337296931 --0.211837644478 --0.202286407591 --0.211746422996 --0.193240662038 --0.21188910613 --0.184006642681 --0.212042871266 --0.174758515221 --0.211973788066 --0.165688783762 --0.211904618555 --0.156622346806 --0.21183536442 --0.147559632178 --0.211944782363 --0.138238765243 --0.212065490439 --0.128906651972 --0.212018699959 --0.119824259214 --0.211971749216 --0.110743768751 --0.211924654823 --0.10166564037 --0.212000658816 --0.0922783718241 --0.212088108523 --0.0828827715483 --0.212063735827 --0.073789441513 --0.212039157795 --0.0646966714358 --0.21201437672 --0.055604924832 --0.212056834501 --0.0461727422766 --0.212110842781 --0.0367351943393 --0.212108951366 --0.0276328569974 --0.212106845778 --0.0185297711111 --0.21210451682 --0.00942640638465 --0.212103292735 -0 --0.21210451682 -0.00942640638465 --0.212106845778 -0.0185297711111 --0.212108951366 -0.0276328569974 --0.212110842781 -0.0367351943393 --0.212056834501 -0.0461727422766 --0.21201437672 -0.055604924832 --0.212039157795 -0.0646966714358 --0.212063735827 -0.073789441513 --0.212088108523 -0.0828827715483 --0.212000658816 -0.0922783718241 --0.211924654823 -0.10166564037 --0.211971749216 -0.110743768751 --0.212018699959 -0.119824259214 --0.212065490439 -0.128906651972 --0.211944782363 -0.138238765243 --0.21183536442 -0.147559632178 --0.211904618555 -0.156622346806 --0.211973788066 -0.165688783762 --0.212042871266 -0.174758515221 --0.21188910613 -0.184006642681 --0.211746422996 -0.193240662038 --0.211837644478 -0.202286407591 --0.211928863532 -0.211337296931 --0.21202007853 -0.22039293282 --0.211833774344 -0.229537859639 --0.211658295184 -0.238665871547 --0.211771239254 -0.247693388863 --0.211884303243 -0.256727559079 --0.211997480275 -0.265767993907 --0.211778851458 -0.274792743143 --0.211570739127 -0.28379784984 --0.211705145467 -0.292806240557 --0.21183981023 -0.301822857459 --0.211974732804 -0.310847347977 --0.211724326634 -0.319736889812 --0.211484083012 -0.32860411117 --0.211639660596 -0.337592847107 --0.211795652689 -0.346591475106 --0.211952070531 -0.355599650025 --0.21167034609 -0.364341306795 --0.21139836404 -0.373058041213 --0.211574780327 -0.382026933176 --0.211751793079 -0.39100744775 --0.211929408244 -0.399999319146 --0.202869849478 --0.399541376814 --0.202712696236 --0.390559947777 --0.202556090028 --0.381589886262 --0.202400010611 --0.372631439127 --0.202641047395 --0.363922402073 --0.202890702501 --0.355188478546 --0.202752291936 --0.3461908379 --0.202614256673 --0.337202764084 --0.202476594184 --0.328224573762 --0.202689532236 --0.319365760649 --0.202911449756 --0.310484665841 --0.202792054323 --0.301470798791 --0.202672891877 --0.292464819335 --0.202553951438 --0.283467077735 --0.202738412805 --0.274471036891 --0.202932189177 --0.265455388782 --0.202832046461 --0.256425676115 --0.202731996348 --0.247402231082 --0.202632051945 --0.238385446136 --0.202787567151 --0.229267075752 --0.202952668451 --0.220131822758 --0.202871962478 --0.211086992288 --0.202791262101 --0.202046922709 --0.202710563058 --0.193012011593 --0.202836993681 --0.183788138023 --0.202973247156 --0.174550180993 --0.202912160297 --0.165491340874 --0.202850991874 --0.156435800269 --0.202789731884 --0.147383991006 --0.202886638407 --0.138073680215 --0.202993566323 --0.128752143435 --0.202952227409 --0.119680710324 --0.202910744758 --0.110611190482 --0.202869125949 --0.101544030597 --0.202936374374 --0.0921676246675 --0.203013782019 --0.0827829122403 --0.202992306606 --0.073700596384 --0.202970653262 --0.0646188490147 --0.202948824242 --0.055538130142 --0.202986309406 --0.0461170163846 --0.203034043512 --0.0366905511087 --0.203032493904 --0.027599268893 --0.203030743714 --0.0185072445957 --0.203028809091 --0.00941494645388 --0.203027790372 -0 --0.203028809091 -0.00941494645388 --0.203030743714 -0.0185072445957 --0.203032493904 -0.027599268893 --0.203034043512 -0.0366905511087 --0.202986309406 -0.0461170163846 --0.202948824242 -0.055538130142 --0.202970653262 -0.0646188490147 --0.202992306606 -0.073700596384 --0.203013782019 -0.0827829122403 --0.202936374374 -0.0921676246675 --0.202869125949 -0.101544030597 --0.202910744758 -0.110611190482 --0.202952227409 -0.119680710324 --0.202993566323 -0.128752143435 --0.202886638407 -0.138073680215 --0.202789731884 -0.147383991006 --0.202850991874 -0.156435800269 --0.202912160297 -0.165491340874 --0.202973247156 -0.174550180993 --0.202836993681 -0.183788138023 --0.202710563058 -0.193012011593 --0.202791262101 -0.202046922709 --0.202871962478 -0.211086992288 --0.202952668451 -0.220131822758 --0.202787567151 -0.229267075752 --0.202632051945 -0.238385446136 --0.202731996348 -0.247402231082 --0.202832046461 -0.256425676115 --0.202932189177 -0.265455388782 --0.202738412805 -0.274471036891 --0.202553951438 -0.283467077735 --0.202672891877 -0.292464819335 --0.202792054323 -0.301470798791 --0.202911449756 -0.310484665841 --0.202689532236 -0.319365760649 --0.202476594184 -0.328224573762 --0.202614256673 -0.337202764084 --0.202752291936 -0.3461908379 --0.202890702501 -0.355188478546 --0.202641047395 -0.363922402073 --0.202400010611 -0.372631439127 --0.202556090028 -0.381589886262 --0.202712696236 -0.390559947777 --0.202869849478 -0.399541376814 --0.193816669683 --0.399084150057 --0.193679970036 --0.390113163736 --0.193543750859 --0.381153545649 --0.193407984364 --0.372205530615 --0.193618092154 --0.363504165726 --0.19383569087 --0.354777958162 --0.193715277464 --0.345790850687 --0.193595187158 --0.33681332743 --0.193475423828 --0.327845681384 --0.193661067429 --0.31899523736 --0.19385451456 --0.310122550317 --0.193750635067 --0.301119310803 --0.193646955019 --0.29212396702 --0.19354346817 --0.283136860594 --0.193704289638 --0.274149843134 --0.193873220845 --0.265143254504 --0.193786095732 --0.256124256421 --0.193699050538 --0.247111546254 --0.193612101273 --0.238105509093 --0.193747656403 --0.22899673106 --0.193891566952 --0.219871107867 --0.193821370413 --0.210837080052 --0.193751175306 --0.201807822089 --0.193680987977 --0.192783745865 --0.193791181787 --0.183569977782 --0.193909937307 --0.17434215083 --0.193856833418 --0.165294198528 --0.193803654443 --0.156249551513 --0.193750400989 --0.147208651932 --0.193834807372 --0.137908852317 --0.193927945427 --0.128597840687 --0.193892054462 --0.119537364191 --0.193856034114 --0.110478812303 --0.19381989188 --0.10142262301 --0.193878398944 --0.0920570388636 --0.193945758688 --0.0826831656357 --0.193927183781 --0.0736118622871 --0.193908452826 --0.0645411342544 --0.193889561672 --0.0554714407577 --0.193922074895 --0.0460613506434 --0.193963525911 --0.0366459203568 --0.193962319758 --0.0275656911195 --0.193960935561 --0.0184847256548 --0.193959395881 --0.00940349007319 --0.193958586007 -2.16840434497e-19 --0.193959395881 -0.00940349007319 --0.193960935561 -0.0184847256548 --0.193962319758 -0.0275656911195 --0.193963525911 -0.0366459203568 --0.193922074895 -0.0460613506434 --0.193889561672 -0.0554714407577 --0.193908452826 -0.0645411342544 --0.193927183781 -0.0736118622871 --0.193945758688 -0.0826831656357 --0.193878398944 -0.0920570388636 --0.19381989188 -0.10142262301 --0.193856034114 -0.110478812303 --0.193892054462 -0.119537364191 --0.193927945427 -0.128597840687 --0.193834807372 -0.137908852317 --0.193750400989 -0.147208651932 --0.193803654443 -0.156249551513 --0.193856833418 -0.165294198528 --0.193909937307 -0.17434215083 --0.193791181787 -0.183569977782 --0.193680987977 -0.192783745865 --0.193751175306 -0.201807822089 --0.193821370413 -0.210837080052 --0.193891566952 -0.219871107867 --0.193747656403 -0.22899673106 --0.193612101273 -0.238105509093 --0.193699050538 -0.247111546254 --0.193786095732 -0.256124256421 --0.193873220845 -0.265143254504 --0.193704289638 -0.274149843134 --0.19354346817 -0.283136860594 --0.193646955019 -0.29212396702 --0.193750635067 -0.301119310803 --0.19385451456 -0.310122550317 --0.193661067429 -0.31899523736 --0.193475423828 -0.327845681384 --0.193595187158 -0.33681332743 --0.193715277464 -0.345790850687 --0.19383569087 -0.354777958162 --0.193618092154 -0.363504165726 --0.193407984364 -0.372205530615 --0.193543750859 -0.381153545649 --0.193679970036 -0.390113163736 --0.193816669683 -0.399084150057 --0.184536095083 --0.399791760233 --0.18438243249 --0.39080304667 --0.184229301156 --0.381825770986 --0.18407668424 --0.372860167999 --0.184312414879 --0.364149190855 --0.184556555681 --0.355413379335 --0.184421202468 --0.346408754758 --0.184286216235 --0.337413758579 --0.184151593234 --0.328428703154 --0.184359883854 --0.319567068605 --0.184576943899 --0.310683180505 --0.18446016209 --0.301662573015 --0.184343610141 --0.292649912316 --0.184227276272 --0.283645523972 --0.184407704205 --0.2746458293 --0.184597241586 --0.265626570356 --0.184499269809 --0.25659033096 --0.184401389821 --0.24756040742 --0.184303626608 --0.238537199784 --0.184455805558 --0.229414469402 --0.184617350671 --0.220274891097 --0.184538375633 --0.211223706949 --0.184459408813 --0.202177318673 --0.184380448158 --0.19313614139 --0.184504155454 --0.183907292043 --0.184637467527 --0.174664383101 --0.184577667752 --0.165599332999 --0.184517790403 --0.156537606445 --0.184457833221 --0.147479643297 --0.184552712161 --0.138163870005 --0.184657372746 --0.128836875895 --0.184616870586 --0.11975932269 --0.184576234396 --0.110683701134 --0.184535467653 --0.101610461124 --0.184601359408 --0.092228216202 --0.184677168169 --0.0828376658569 --0.184656083289 --0.073749289985 --0.184634819786 --0.064661485892 --0.184613383669 --0.0555747193085 --0.184650171111 --0.0461475222188 --0.1846969619 --0.0367149696546 --0.18469535584 --0.0276176393027 --0.184693559443 --0.0185195645832 --0.184691571597 --0.00942121338044 --0.184690531942 -0 --0.184691571597 -0.00942121338044 --0.184693559443 -0.0185195645832 --0.18469535584 -0.0276176393027 --0.1846969619 -0.0367149696546 --0.184650171111 -0.0461475222188 --0.184613383669 -0.0555747193085 --0.184634819786 -0.064661485892 --0.184656083289 -0.073749289985 --0.184677168169 -0.0828376658569 --0.184601359408 -0.092228216202 --0.184535467653 -0.101610461124 --0.184576234396 -0.110683701134 --0.184616870586 -0.11975932269 --0.184657372746 -0.128836875895 --0.184552712161 -0.138163870005 --0.184457833221 -0.147479643297 --0.184517790403 -0.156537606445 --0.184577667752 -0.165599332999 --0.184637467527 -0.174664383101 --0.184504155454 -0.183907292043 --0.184380448158 -0.19313614139 --0.184459408813 -0.202177318673 --0.184538375633 -0.211223706949 --0.184617350671 -0.220274891097 --0.184455805558 -0.229414469402 --0.184303626608 -0.238537199784 --0.184401389821 -0.24756040742 --0.184499269809 -0.25659033096 --0.184597241586 -0.265626570356 --0.184407704205 -0.2746458293 --0.184227276272 -0.283645523972 --0.184343610141 -0.292649912316 --0.18446016209 -0.301662573015 --0.184576943899 -0.310683180505 --0.184359883854 -0.319567068605 --0.184151593234 -0.328428703154 --0.184286216235 -0.337413758579 --0.184421202468 -0.346408754758 --0.184556555681 -0.355413379335 --0.184312414879 -0.364149190855 --0.18407668424 -0.372860167999 --0.184229301156 -0.381825770986 --0.18438243249 -0.39080304667 --0.184536095083 -0.399791760233 --0.175240732684 --0.40055438716 --0.17507019179 --0.391546694451 --0.174900243171 --0.382550500892 --0.174730881469 --0.373566071868 --0.174992110234 --0.364844592519 --0.175262662119 --0.356098261693 --0.175112442917 --0.347074833573 --0.174962637467 --0.338061088573 --0.174813237595 --0.329057349738 --0.17504406042 --0.320183529647 --0.175284615088 --0.311287458753 --0.175154997597 --0.302248198228 --0.175025637668 --0.293216915158 --0.174896532377 --0.284193963706 --0.17509648187 --0.275180540967 --0.175306519064 --0.266147536976 --0.175197759093 --0.257092758295 --0.175089106865 --0.248044328867 --0.17498058047 --0.239002639679 --0.17514929982 --0.229864819712 --0.175328389176 --0.22071013379 --0.175240682461 --0.211640484108 --0.175152992268 --0.202575656767 --0.175065304896 --0.193516058486 --0.175202463147 --0.184270932352 --0.175350261117 --0.175011735907 --0.175283804127 --0.165928268591 --0.175217256762 --0.15684813549 --0.175150623788 --0.14777178117 --0.175255923292 --0.138438776311 --0.175372052109 --0.129094541814 --0.175326971495 --0.119998589666 --0.175281745053 --0.11090457521 --0.175236372287 --0.101812952527 --0.175309603248 --0.0924127498898 --0.175393821881 --0.0830042261062 --0.175370249807 --0.0738974401623 --0.175346472345 --0.0647912239719 --0.175322502933 --0.0556860479417 --0.175363542903 --0.0462404256762 --0.175415658965 --0.0367894324019 --0.175413646912 --0.0276736601027 --0.175411432099 --0.0185571339248 --0.175409006049 --0.00944032634276 --0.175407737569 --2.16840434497e-19 --0.175409006049 -0.00944032634276 --0.175411432099 -0.0185571339248 --0.175413646912 -0.0276736601027 --0.175415658965 -0.0367894324019 --0.175363542903 -0.0462404256762 --0.175322502933 -0.0556860479417 --0.175346472345 -0.0647912239719 --0.175370249807 -0.0738974401623 --0.175393821881 -0.0830042261062 --0.175309603248 -0.0924127498898 --0.175236372287 -0.101812952527 --0.175281745053 -0.11090457521 --0.175326971495 -0.119998589666 --0.175372052109 -0.129094541814 --0.175255923292 -0.138438776311 --0.175150623788 -0.14777178117 --0.175217256762 -0.15684813549 --0.175283804127 -0.165928268591 --0.175350261117 -0.175011735907 --0.175202463147 -0.184270932352 --0.175065304896 -0.193516058486 --0.175152992268 -0.202575656767 --0.175240682461 -0.211640484108 --0.175328389176 -0.22071013379 --0.17514929982 -0.229864819712 --0.17498058047 -0.239002639679 --0.175089106865 -0.248044328867 --0.175197759093 -0.257092758295 --0.175306519064 -0.266147536976 --0.17509648187 -0.275180540967 --0.174896532377 -0.284193963706 --0.175025637668 -0.293216915158 --0.175154997597 -0.302248198228 --0.175284615088 -0.311287458753 --0.17504406042 -0.320183529647 --0.174813237595 -0.329057349738 --0.174962637467 -0.338061088573 --0.175112442917 -0.347074833573 --0.175262662119 -0.356098261693 --0.174992110234 -0.364844592519 --0.174730881469 -0.373566071868 --0.174900243171 -0.382550500892 --0.17507019179 -0.391546694451 --0.175240732684 -0.40055438716 --0.166163309336 --0.40020770746 --0.166013401131 --0.391207949743 --0.165864003486 --0.382219674363 --0.165715128616 --0.37324317409 --0.165945181307 --0.364527542217 --0.166183419369 --0.355787082926 --0.166051350978 --0.346771641064 --0.165919641918 --0.337765890371 --0.165788293073 --0.328770151464 --0.16599159513 --0.319902693298 --0.166203449188 --0.311013023521 --0.166089483029 --0.301981823942 --0.165975738911 --0.292958600829 --0.16586222241 --0.283943726364 --0.166038345709 --0.2749371556 --0.16622333301 --0.265911023028 --0.1661277029 --0.256864372876 --0.166032171795 --0.247824078816 --0.165936744737 --0.238790524387 --0.166085342904 --0.229659977294 --0.166243072633 --0.220512593128 --0.166165968602 --0.211451147776 --0.166088868634 --0.20239451607 --0.166011773299 --0.193343112805 --0.16613256929 --0.184105653442 --0.166262725869 --0.17485413661 --0.166204315216 --0.165778914449 --0.166145824814 --0.156707043069 --0.166087264332 --0.147638952681 --0.16617995925 --0.138313906048 --0.16628218463 --0.12897765 --0.16624260197 --0.119890003977 --0.16620288652 --0.110804299226 --0.166163030963 --0.10172098528 --0.166227453157 --0.0923289779151 --0.166301551047 --0.082928662512 --0.166280896504 --0.073830219489 --0.166260066163 --0.064732353353 --0.16623906417 --0.0556355322075 --0.166275091359 --0.0461982549913 --0.166320882689 --0.0367556163956 --0.166319216259 --0.0276482195234 --0.166317364487 --0.0185400719976 --0.166315333287 --0.0094316463763 --0.166314267836 -0 --0.166315333287 -0.0094316463763 --0.166317364487 -0.0185400719976 --0.166319216259 -0.0276482195234 --0.166320882689 -0.0367556163956 --0.166275091359 -0.0461982549913 --0.16623906417 -0.0556355322075 --0.166260066163 -0.064732353353 --0.166280896504 -0.073830219489 --0.166301551047 -0.082928662512 --0.166227453157 -0.0923289779151 --0.166163030963 -0.10172098528 --0.16620288652 -0.110804299226 --0.16624260197 -0.119890003977 --0.16628218463 -0.12897765 --0.16617995925 -0.138313906048 --0.166087264332 -0.147638952681 --0.166145824814 -0.156707043069 --0.166204315216 -0.165778914449 --0.166262725869 -0.17485413661 --0.16613256929 -0.184105653442 --0.166011773299 -0.193343112805 --0.166088868634 -0.20239451607 --0.166165968602 -0.211451147776 --0.166243072633 -0.220512593128 --0.166085342904 -0.229659977294 --0.165936744737 -0.238790524387 --0.166032171795 -0.247824078816 --0.1661277029 -0.256864372876 --0.16622333301 -0.265911023028 --0.166038345709 -0.2749371556 --0.16586222241 -0.283943726364 --0.165975738911 -0.292958600829 --0.166089483029 -0.301981823942 --0.166203449188 -0.311013023521 --0.16599159513 -0.319902693298 --0.165788293073 -0.328770151464 --0.165919641918 -0.337765890371 --0.166051350978 -0.346771641064 --0.166183419369 -0.355787082926 --0.165945181307 -0.364527542217 --0.165715128616 -0.37324317409 --0.165864003486 -0.382219674363 --0.166013401131 -0.391207949743 --0.166163309336 -0.40020770746 --0.157090171366 --0.399861310595 --0.156960884852 --0.390869480144 --0.156832040161 --0.381889140602 --0.156703643338 --0.372920563836 --0.156902517256 --0.364210753244 --0.157108441436 --0.355476137205 --0.156994519837 --0.346468695762 --0.156880905075 --0.3374709583 --0.156767599154 --0.328483220299 --0.156943377587 --0.319622094795 --0.157126528546 --0.31073878611 --0.157028212865 --0.301715656173 --0.156930086049 --0.292700515383 --0.156832149477 --0.28369372078 --0.156984433759 --0.274693966045 --0.157144372391 --0.265674676156 --0.157061875285 --0.25663616342 --0.156979458517 --0.247604007428 --0.156897131791 --0.238578601948 --0.157025611146 --0.229455309213 --0.157161977225 --0.220315196853 --0.157095472409 --0.211261953364 --0.157028963629 --0.202213525456 --0.156962457917 --0.193170331557 --0.157066886004 --0.183940497773 --0.157179397575 --0.174696626946 --0.157129031873 --0.165629664247 --0.157078602696 --0.156566060031 --0.157028106787 --0.147506244839 --0.157108196639 --0.138189127797 --0.157196528282 --0.128860815682 --0.157162428353 --0.119781478555 --0.157128215856 --0.110704088766 --0.157093887435 --0.101629095732 --0.157149503182 --0.0922452484018 --0.157213479993 --0.0828531090943 --0.157195739292 --0.0737630186006 --0.157177849225 --0.0646735106128 --0.157159816834 --0.0555850524271 --0.157190838138 --0.0461560870593 --0.157230294115 --0.0367217674091 --0.157228976235 --0.027622753572 --0.157227494253 --0.018522993938 --0.157225850468 --0.00942295775856 --0.157224988809 -0 --0.157225850468 -0.00942295775856 --0.157227494253 -0.018522993938 --0.157228976235 -0.027622753572 --0.157230294115 -0.0367217674091 --0.157190838138 -0.0461560870593 --0.157159816834 -0.0555850524271 --0.157177849225 -0.0646735106128 --0.157195739292 -0.0737630186006 --0.157213479993 -0.0828531090943 --0.157149503182 -0.0922452484018 --0.157093887435 -0.101629095732 --0.157128215856 -0.110704088766 --0.157162428353 -0.119781478555 --0.157196528282 -0.128860815682 --0.157108196639 -0.138189127797 --0.157028106787 -0.147506244839 --0.157078602696 -0.156566060031 --0.157129031873 -0.165629664247 --0.157179397575 -0.174696626946 --0.157066886004 -0.183940497773 --0.156962457917 -0.193170331557 --0.157028963629 -0.202213525456 --0.157095472409 -0.211261953364 --0.157161977225 -0.220315196853 --0.157025611146 -0.229455309213 --0.156897131791 -0.238578601948 --0.156979458517 -0.247604007428 --0.157061875285 -0.25663616342 --0.157144372391 -0.265674676156 --0.156984433759 -0.274693966045 --0.156832149477 -0.28369372078 --0.156930086049 -0.292700515383 --0.157028212865 -0.301715656173 --0.157126528546 -0.31073878611 --0.156943377587 -0.319622094795 --0.156767599154 -0.328483220299 --0.156880905075 -0.3374709583 --0.156994519837 -0.346468695762 --0.157108441436 -0.355476137205 --0.156902517256 -0.364210753244 --0.156703643338 -0.372920563836 --0.156832040161 -0.381889140602 --0.156960884852 -0.390869480144 --0.157090171366 -0.399861310595 --0.148021741802 --0.399515178262 --0.147913067952 --0.390531278698 --0.147804767163 --0.381558884054 --0.147696839525 --0.372598256307 --0.147864541885 --0.363894230132 --0.148038160684 --0.355165428496 --0.14794237423 --0.346165994135 --0.147846844812 --0.33717627066 --0.147751577519 --0.328196544473 --0.147899836163 --0.319341724329 --0.148054282151 --0.31046474239 --0.147971606895 --0.301449689558 --0.147889092998 --0.292442640016 --0.147806728367 --0.283443922006 --0.147935180191 --0.274450954981 --0.148070074138 --0.265438485553 --0.148000700696 --0.25640811315 --0.14793139339 --0.247384115789 --0.147862158522 --0.238366874082 --0.147970522318 --0.229250800434 --0.148085528135 --0.220117930726 --0.148029614316 --0.211072886989 --0.147973695899 --0.202032676437 --0.14791777984 --0.19299771542 --0.148005838696 --0.183775469424 --0.148100703632 --0.174539205519 --0.148058386117 --0.165480514854 --0.14801601442 --0.156425183573 --0.147973579744 --0.147373648878 --0.148041069652 --0.138064427349 --0.148115506282 --0.128744024631 --0.148086890461 --0.119673007722 --0.148058182281 --0.110603946926 --0.148029375804 --0.101537284382 --0.148076179606 --0.0921615627694 --0.148130036271 --0.0827775639457 --0.148115215237 --0.073695833127 --0.148100264278 --0.0646146917318 --0.148085192456 --0.0555346020663 --0.148111211592 --0.0461139163221 --0.148144341182 --0.0366878853622 --0.148143364993 --0.0275972623986 --0.148142249303 --0.0185058982738 --0.148141003202 --0.00941426067545 --0.148140351512 -0 --0.148141003202 -0.00941426067545 --0.148142249303 -0.0185058982738 --0.148143364993 -0.0275972623986 --0.148144341182 -0.0366878853622 --0.148111211592 -0.0461139163221 --0.148085192456 -0.0555346020663 --0.148100264278 -0.0646146917318 --0.148115215237 -0.073695833127 --0.148130036271 -0.0827775639457 --0.148076179606 -0.0921615627694 --0.148029375804 -0.101537284382 --0.148058182281 -0.110603946926 --0.148086890461 -0.119673007722 --0.148115506282 -0.128744024631 --0.148041069652 -0.138064427349 --0.147973579744 -0.147373648878 --0.14801601442 -0.156425183573 --0.148058386117 -0.165480514854 --0.148100703632 -0.174539205519 --0.148005838696 -0.183775469424 --0.14791777984 -0.19299771542 --0.147973695899 -0.202032676437 --0.148029614316 -0.211072886989 --0.148085528135 -0.220117930726 --0.147970522318 -0.229250800434 --0.147862158522 -0.238366874082 --0.14793139339 -0.247384115789 --0.148000700696 -0.25640811315 --0.148070074138 -0.265438485553 --0.147935180191 -0.274450954981 --0.147806728367 -0.283443922006 --0.147889092998 -0.292442640016 --0.147971606895 -0.301449689558 --0.148054282151 -0.31046474239 --0.147899836163 -0.319341724329 --0.147751577519 -0.328196544473 --0.147846844812 -0.33717627066 --0.14794237423 -0.346165994135 --0.148038160684 -0.355165428496 --0.147864541885 -0.363894230132 --0.147696839525 -0.372598256307 --0.147804767163 -0.381558884054 --0.147913067952 -0.390531278698 --0.148021741802 -0.399515178262 --0.138655752718 --0.400057603499 --0.13853018942 --0.391060148805 --0.138405063077 --0.382074236836 --0.138280368022 --0.373100153449 --0.138473557614 --0.364388681188 --0.138673583427 --0.355652433186 --0.138562920197 --0.34663957184 --0.138452563237 --0.337636461064 --0.138342510224 --0.328643408719 --0.138513313019 --0.31977994704 --0.138691256863 --0.310894308549 --0.138595733437 --0.30186593878 --0.13850040628 --0.292845611136 --0.138405258435 --0.283833656867 --0.138553251839 --0.274830965635 --0.138708670846 --0.265808766229 --0.138628498471 --0.256765174971 --0.1385484118 --0.247727982916 --0.138468407261 --0.238697573195 --0.138593296902 --0.229570807397 --0.138725847247 --0.220427244751 --0.138661199865 --0.211369046182 --0.138596551001 --0.202315699689 --0.13853190047 --0.193267616849 --0.138633440187 --0.184033852045 --0.138742828483 --0.174786067454 --0.138693844253 --0.165714250407 --0.138644794154 --0.156645806264 --0.138595681254 --0.147581172463 --0.138673595607 --0.138259757174 --0.138759508247 --0.128927158157 --0.138726308609 --0.119843036563 --0.13869300197 --0.110760872583 --0.138659579287 --0.101681113329 --0.138713734231 --0.0922926921845 --0.138776012537 --0.0828959864539 --0.13875869377 --0.0738011462425 --0.138741229841 --0.0647068930894 --0.138723627146 --0.0556136938764 --0.138753863098 --0.0461799762757 --0.138792288988 --0.0367409053761 --0.138790909047 --0.0276371515107 --0.138789369423 --0.0185326486928 --0.138787686229 --0.00942786953707 --0.13878681032 -0 --0.138787686229 -0.00942786953707 --0.138789369423 -0.0185326486928 --0.138790909047 -0.0276371515107 --0.138792288988 -0.0367409053761 --0.138753863098 -0.0461799762757 --0.138723627146 -0.0556136938764 --0.138741229841 -0.0647068930894 --0.13875869377 -0.0738011462425 --0.138776012537 -0.0828959864539 --0.138713734231 -0.0922926921845 --0.138659579287 -0.101681113329 --0.13869300197 -0.110760872583 --0.138726308609 -0.119843036563 --0.138759508247 -0.128927158157 --0.138673595607 -0.138259757174 --0.138595681254 -0.147581172463 --0.138644794154 -0.156645806264 --0.138693844253 -0.165714250407 --0.138742828483 -0.174786067454 --0.138633440187 -0.184033852045 --0.13853190047 -0.193267616849 --0.138596551001 -0.202315699689 --0.138661199865 -0.211369046182 --0.138725847247 -0.220427244751 --0.138593296902 -0.229570807397 --0.138468407261 -0.238697573195 --0.1385484118 -0.247727982916 --0.138628498471 -0.256765174971 --0.138708670846 -0.265808766229 --0.138553251839 -0.274830965635 --0.138405258435 -0.283833656867 --0.13850040628 -0.292845611136 --0.138595733437 -0.30186593878 --0.138691256863 -0.310894308549 --0.138513313019 -0.31977994704 --0.138342510224 -0.328643408719 --0.138452563237 -0.337636461064 --0.138562920197 -0.34663957184 --0.138673583427 -0.355652433186 --0.138473557614 -0.364388681188 --0.138280368022 -0.373100153449 --0.138405063077 -0.382074236836 --0.13853018942 -0.391060148805 --0.138655752718 -0.400057603499 --0.128783405269 --0.417795715428 --0.129027031361 --0.409239779378 --0.129278027418 --0.400656523148 --0.129135647531 --0.391644213004 --0.128993768039 --0.38264350287 --0.128852371657 --0.37365466268 --0.129070949202 --0.364934820232 --0.129297281399 --0.356190193664 --0.129171808691 --0.347162611324 --0.129046688231 --0.338144818663 --0.128921909598 --0.329137117903 --0.129115172345 --0.320263998444 --0.129316529452 --0.311368700284 --0.129208220247 --0.302325708416 --0.129100129106 --0.293290781227 --0.128992243709 --0.284264266087 --0.129159706902 --0.275250749426 --0.129335575453 --0.26621771439 --0.129244654182 --0.257159577389 --0.129153831491 --0.248107856452 --0.12906310132 --0.239062937798 --0.129204463545 --0.229924319466 --0.129354488673 --0.220768887501 --0.129281140154 --0.211696184089 --0.129207795486 --0.202628351886 --0.129134448653 --0.193565791762 --0.129249428209 --0.184319277849 --0.129373282422 --0.175058732587 --0.129317655145 --0.165972436547 --0.129261956192 --0.156889523297 --0.129206186175 --0.147810426522 --0.129294484369 --0.138475528451 --0.129391830871 --0.129129437914 --0.129354062313 --0.120030847319 --0.129316178051 --0.110934217972 --0.129278163593 --0.101839997578 --0.129339644298 --0.0924375477471 --0.129410311394 --0.0830268006765 --0.129390504826 --0.0739174798733 --0.129370537898 --0.0648087441234 --0.1293504141 --0.0557010635273 --0.129384853798 --0.0462529579613 --0.129428554744 --0.0367994862255 --0.129426771942 --0.0276812233729 --0.129424816111 --0.0185622051166 --0.129422693648 --0.00944290602232 --0.129421587797 -0 --0.129422693648 -0.00944290602232 --0.129424816111 -0.0185622051166 --0.129426771942 -0.0276812233729 --0.129428554744 -0.0367994862255 --0.129384853798 -0.0462529579613 --0.1293504141 -0.0557010635273 --0.129370537898 -0.0648087441234 --0.129390504826 -0.0739174798733 --0.129410311394 -0.0830268006765 --0.129339644298 -0.0924375477471 --0.129278163593 -0.101839997578 --0.129316178051 -0.110934217972 --0.129354062313 -0.120030847319 --0.129391830871 -0.129129437914 --0.129294484369 -0.138475528451 --0.129206186175 -0.147810426522 --0.129261956192 -0.156889523297 --0.129317655145 -0.165972436547 --0.129373282422 -0.175058732587 --0.129249428209 -0.184319277849 --0.129134448653 -0.193565791762 --0.129207795486 -0.202628351886 --0.129281140154 -0.211696184089 --0.129354488673 -0.220768887501 --0.129204463545 -0.229924319466 --0.12906310132 -0.239062937798 --0.129153831491 -0.248107856452 --0.129244654182 -0.257159577389 --0.129335575453 -0.26621771439 --0.129159706902 -0.275250749426 --0.128992243709 -0.284264266087 --0.129100129106 -0.293290781227 --0.129208220247 -0.302325708416 --0.129316529452 -0.311368700284 --0.129115172345 -0.320263998444 --0.128921909598 -0.329137117903 --0.129046688231 -0.338144818663 --0.129171808691 -0.347162611324 --0.129297281399 -0.356190193664 --0.129070949202 -0.364934820232 --0.128852371657 -0.37365466268 --0.128993768039 -0.38264350287 --0.129135647531 -0.391644213004 --0.129278027418 -0.400656523148 --0.129027031361 -0.409239779378 --0.128783405269 -0.417795715428 --0.119766262407 --0.417555499135 --0.119974885274 --0.409003148501 --0.120189781202 --0.400423487838 --0.120068151997 --0.391416533986 --0.11994694742 --0.382421190785 --0.119826154123 --0.373437718621 --0.120013366477 --0.364721791389 --0.120207192594 --0.355981107083 --0.120099980048 --0.346958939993 --0.119993062919 --0.337946555365 --0.119886440228 --0.328944258994 --0.120052018349 --0.320075402375 --0.120224501981 --0.311184382842 --0.120131933109 --0.302146841114 --0.120039547321 --0.293117366971 --0.119947341396 --0.284096307594 --0.120090831902 --0.275087363604 --0.120241501656 --0.266058917218 --0.120163787217 --0.257006267279 --0.120086155975 --0.247960037592 --0.120008605437 --0.238920613875 --0.120129733187 --0.229786845378 --0.120258268358 --0.220636283847 --0.120195574268 --0.211569110069 --0.120132885097 --0.202506817159 --0.120070198996 --0.193449793239 --0.120168713121 --0.184208369208 --0.120274816413 --0.174952929749 --0.12022728667 --0.165872202036 --0.120179697443 --0.156794867476 --0.120132040599 --0.147721345948 --0.120207656592 --0.138391734483 --0.120291023043 --0.129050944463 --0.120258779905 --0.119957955015 --0.12022643518 --0.110866933694 --0.120193977907 --0.101778324247 --0.120246595312 --0.0923813106566 --0.120307076178 --0.0829760084906 --0.120290210515 --0.0738723200174 --0.120273204204 --0.0647692185448 --0.120256054547 --0.0556671727486 --0.12028545944 --0.0462246045372 --0.120322798552 --0.0367766736493 --0.12032136235 --0.0276640601106 --0.120319778041 --0.0185506950764 --0.120318051361 --0.00943705050459 --0.120317149359 -2.16840434497e-19 --0.120318051361 -0.00943705050459 --0.120319778041 -0.0185506950764 --0.12032136235 -0.0276640601106 --0.120322798552 -0.0367766736493 --0.12028545944 -0.0462246045372 --0.120256054547 -0.0556671727486 --0.120273204204 -0.0647692185448 --0.120290210515 -0.0738723200174 --0.120307076178 -0.0829760084906 --0.120246595312 -0.0923813106566 --0.120193977907 -0.101778324247 --0.12022643518 -0.110866933694 --0.120258779905 -0.119957955015 --0.120291023043 -0.129050944463 --0.120207656592 -0.138391734483 --0.120132040599 -0.147721345948 --0.120179697443 -0.156794867476 --0.12022728667 -0.165872202036 --0.120274816413 -0.174952929749 --0.120168713121 -0.184208369208 --0.120070198996 -0.193449793239 --0.120132885097 -0.202506817159 --0.120195574268 -0.211569110069 --0.120258268358 -0.220636283847 --0.120129733187 -0.229786845378 --0.120008605437 -0.238920613875 --0.120086155975 -0.247960037592 --0.120163787217 -0.257006267279 --0.120241501656 -0.266058917218 --0.120090831902 -0.275087363604 --0.119947341396 -0.284096307594 --0.120039547321 -0.293117366971 --0.120131933109 -0.302146841114 --0.120224501981 -0.311184382842 --0.120052018349 -0.320075402375 --0.119886440228 -0.328944258994 --0.119993062919 -0.337946555365 --0.120099980048 -0.346958939993 --0.120207192594 -0.355981107083 --0.120013366477 -0.364721791389 --0.119826154123 -0.373437718621 --0.11994694742 -0.382421190785 --0.120068151997 -0.391416533986 --0.120189781202 -0.400423487838 --0.119974885274 -0.409003148501 --0.119766262407 -0.417555499135 --0.110751742117 --0.417315274808 --0.110925346472 --0.408766473353 --0.111104129904 --0.400190379352 --0.111003249053 --0.391188812813 --0.110902717626 --0.38219883531 --0.110802533973 --0.373220741868 --0.110958378702 --0.364508730072 --0.111119688201 --0.355771971531 --0.111030727986 --0.346755219899 --0.11094201474 --0.337748253919 --0.11085354599 --0.328751378553 --0.110991427167 --0.319886760459 --0.111135027779 --0.310999991612 --0.111058196668 --0.301967909787 --0.110981519736 --0.29294390528 --0.110904994658 --0.283928312964 --0.111024504259 --0.27492392456 --0.111149966571 --0.265900050138 --0.111085459482 --0.256852903861 --0.111021020619 --0.247812176647 --0.110956647439 --0.238778270164 --0.111057536223 --0.229649334423 --0.111164577364 --0.220503609295 --0.111112538766 --0.211441981182 --0.111060506347 --0.202385238698 --0.111008478192 --0.193333776206 --0.111090514781 --0.184097418811 --0.111178864744 --0.174847055736 --0.111139435575 --0.165771919152 --0.11109995065 --0.156700173227 --0.111060410628 --0.147632250175 --0.111123348847 --0.138307904754 --0.111192734136 --0.128972385464 --0.11116601402 --0.119885011115 --0.111139200726 --0.110799609235 --0.111112295065 --0.10171662909 --0.111156048584 --0.0923250296629 --0.111206345944 --0.0829251490813 --0.111192418614 --0.073827107581 --0.111178370131 --0.0647296568895 --0.111164200718 --0.0556332629377 --0.111188569053 --0.0461962057708 --0.111219538784 --0.0367537926475 --0.111218452367 --0.0276468463017 --0.111217242109 --0.0185391506386 --0.111215902743 --0.0094311772543 --0.111215199413 --2.16840434497e-19 --0.111215902743 -0.0094311772543 --0.111217242109 -0.0185391506386 --0.111218452367 -0.0276468463017 --0.111219538784 -0.0367537926475 --0.111188569053 -0.0461962057708 --0.111164200718 -0.0556332629377 --0.111178370131 -0.0647296568895 --0.111192418614 -0.073827107581 --0.111206345944 -0.0829251490813 --0.111156048584 -0.0923250296629 --0.111112295065 -0.10171662909 --0.111139200726 -0.110799609235 --0.11116601402 -0.119885011115 --0.111192734136 -0.128972385464 --0.111123348847 -0.138307904754 --0.111060410628 -0.147632250175 --0.11109995065 -0.156700173227 --0.111139435575 -0.165771919152 --0.111178864744 -0.174847055736 --0.111090514781 -0.184097418811 --0.111008478192 -0.193333776206 --0.111060506347 -0.202385238698 --0.111112538766 -0.211441981182 --0.111164577364 -0.220503609295 --0.111057536223 -0.229649334423 --0.110956647439 -0.238778270164 --0.111021020619 -0.247812176647 --0.111085459482 -0.256852903861 --0.111149966571 -0.265900050138 --0.111024504259 -0.27492392456 --0.110904994658 -0.283928312964 --0.110981519736 -0.29294390528 --0.111058196668 -0.301967909787 --0.111135027779 -0.310999991612 --0.110991427167 -0.319886760459 --0.11085354599 -0.328751378553 --0.11094201474 -0.337748253919 --0.111030727986 -0.346755219899 --0.111119688201 -0.355771971531 --0.110958378702 -0.364508730072 --0.110802533973 -0.373220741868 --0.110902717626 -0.38219883531 --0.111003249053 -0.391188812813 --0.111104129904 -0.400190379352 --0.110925346472 -0.408766473353 --0.110751742117 -0.417315274808 --0.101740268009 --0.417075024135 --0.101878848481 --0.40852974668 --0.102021515647 --0.399957183718 --0.101941382425 --0.390961010158 --0.101861523164 --0.381976429451 --0.101781943502 --0.373003731274 --0.101906412091 --0.364295613117 --0.102035197213 --0.355562756113 --0.101964488118 --0.346551428763 --0.101893977724 --0.33754989285 --0.101823659292 --0.328558462833 --0.10193383571 --0.319698053951 --0.102048551503 --0.31081551924 --0.101987466715 --0.301788934149 --0.101926498104 --0.292770404466 --0.101865646554 --0.28376029 --0.101961167607 --0.274760428032 --0.102061418492 --0.265741102446 --0.102010119565 --0.256699488419 --0.101958873434 --0.24766429203 --0.101907675643 --0.238635913778 --0.101988318244 --0.229511771275 --0.102073858792 --0.220370859758 --0.102032479475 --0.211314793669 --0.101991103365 --0.202263612654 --0.101949729949 --0.193217731339 --0.102015290236 --0.183986420294 --0.102085880732 --0.174741109331 --0.1020545479 --0.165671580743 --0.102023168528 --0.156605441374 --0.101991742782 --0.147543127287 --0.10204200199 --0.138224021463 --0.10209740021 --0.128893749833 --0.102076196545 --0.119812010379 --0.102054918687 --0.110732248155 --0.102033569895 --0.101654910329 --0.102068458358 --0.0922687017979 --0.102108568505 --0.0828742195417 --0.102097577341 --0.0737818407737 --0.102086488746 --0.0646900595381 --0.102075305023 --0.0555993343987 --0.102075305023 -0.0555993343987 --0.102086488746 -0.0646900595381 --0.102097577341 -0.0737818407737 --0.102108568505 -0.0828742195417 --0.102068458358 -0.0922687017979 --0.102033569895 -0.101654910329 --0.102054918687 -0.110732248155 --0.102076196545 -0.119812010379 --0.10209740021 -0.128893749833 --0.10204200199 -0.138224021463 --0.101991742782 -0.147543127287 --0.102023168528 -0.156605441374 --0.1020545479 -0.165671580743 --0.102085880732 -0.174741109331 --0.102015290236 -0.183986420294 --0.101949729949 -0.193217731339 --0.101991103365 -0.202263612654 --0.102032479475 -0.211314793669 --0.102073858792 -0.220370859758 --0.101988318244 -0.229511771275 --0.101907675643 -0.238635913778 --0.101958873434 -0.24766429203 --0.102010119565 -0.256699488419 --0.102061418492 -0.265741102446 --0.101961167607 -0.274760428032 --0.101865646554 -0.28376029 --0.101926498104 -0.292770404466 --0.101987466715 -0.301788934149 --0.102048551503 -0.31081551924 --0.10193383571 -0.319698053951 --0.101823659292 -0.328558462833 --0.101893977724 -0.33754989285 --0.101964488118 -0.346551428763 --0.102035197213 -0.355562756113 --0.101906412091 -0.364295613117 --0.101781943502 -0.373003731274 --0.101861523164 -0.381976429451 --0.101941382425 -0.390961010158 --0.102021515647 -0.399957183718 --0.101878848481 -0.40852974668 --0.101740268009 -0.417075024135 --0.0922537343406 --0.417458490499 --0.0924201889105 --0.408908734125 --0.0925915939695 --0.400331690901 --0.0924949021761 --0.391326199114 --0.0923985445397 --0.382332332636 --0.0923025238947 --0.373350384764 --0.0924520380861 --0.364636962394 --0.0926067758041 --0.355898801859 --0.0925214855042 --0.346878247463 --0.0924364308875 --0.337867500016 --0.0923516105586 --0.328866891038 --0.0924838952309 --0.32000042577 --0.0926216592094 --0.311111837185 --0.0925479817193 --0.302076088723 --0.0924744452754 --0.29304840787 --0.0924010525133 --0.284029155575 --0.0925157491421 --0.275022537825 --0.0926361432899 --0.265996458547 --0.0925742523447 --0.256945714984 --0.0925124326817 --0.247901414743 --0.0924506765735 --0.238863936581 --0.092547514989 --0.22973241045 --0.092650243628 --0.22058412784 --0.0926002963861 --0.211518970489 --0.0925503529797 --0.202458704639 --0.0925004129478 --0.193403752543 --0.0925791915423 --0.184164531586 --0.0926640157322 --0.174911312263 --0.0926261432862 --0.165832707397 --0.0925882196675 --0.156757493019 --0.0925502448466 --0.147686115163 --0.0926107364696 --0.138358665631 --0.092677399614 --0.129020046872 --0.0926517005361 --0.119929241049 --0.0926259140767 --0.110840410919 --0.092600040865 --0.10175400501 --0.092642115436 --0.0923591238643 --0.0926904510311 --0.0829559626843 --0.0926770069137 --0.0738545053553 --0.0926770069137 -0.0738545053553 --0.0926904510311 -0.0829559626843 --0.092642115436 -0.0923591238643 --0.092600040865 -0.10175400501 --0.0926259140767 -0.110840410919 --0.0926517005361 -0.119929241049 --0.092677399614 -0.129020046872 --0.0926107364696 -0.138358665631 --0.0925502448466 -0.147686115163 --0.0925882196675 -0.156757493019 --0.0926261432862 -0.165832707397 --0.0926640157322 -0.174911312263 --0.0925791915423 -0.184164531586 --0.0925004129478 -0.193403752543 --0.0925503529797 -0.202458704639 --0.0926002963861 -0.211518970489 --0.092650243628 -0.22058412784 --0.092547514989 -0.22973241045 --0.0924506765735 -0.238863936581 --0.0925124326817 -0.247901414743 --0.0925742523447 -0.256945714984 --0.0926361432899 -0.265996458547 --0.0925157491421 -0.275022537825 --0.0924010525133 -0.284029155575 --0.0924744452754 -0.29304840787 --0.0925479817193 -0.302076088723 --0.0926216592094 -0.311111837185 --0.0924838952309 -0.32000042577 --0.0923516105586 -0.328866891038 --0.0924364308875 -0.337867500016 --0.0925214855042 -0.346878247463 --0.0926067758041 -0.355898801859 --0.0924520380861 -0.364636962394 --0.0923025238947 -0.373350384764 --0.0923985445397 -0.382332332636 --0.0924949021761 -0.391326199114 --0.0925915939695 -0.400331690901 --0.0924201889105 -0.408908734125 --0.0922537343406 -0.417458490499 --0.0831360819065 --0.444864786105 --0.0830097557356 --0.435863151256 --0.0828839553109 --0.426875073677 --0.0827586696219 --0.417900803494 --0.0829529327818 --0.40934574628 --0.0831530070509 --0.400763398109 --0.0830398035615 --0.391747276122 --0.0829269949742 --0.382742817399 --0.0828145767893 --0.373750301423 --0.0829890837175 --0.365030649936 --0.0831697154336 --0.356286260706 --0.0830698817986 --0.347255154174 --0.0829703264907 --0.338233884983 --0.0828710405418 --0.329222755778 --0.0830253816348 --0.320349213875 --0.0831861382175 --0.311453548296 --0.0830998988897 --0.302407278824 --0.0830138314486 --0.293369114078 --0.0829279320157 --0.284339396241 --0.0830617604436 --0.275324922774 --0.0832022518303 --0.266290973342 --0.0831298015087 --0.257229744328 --0.0830574366452 --0.248174989053 --0.082985148556 --0.239127064589 --0.0830981490933 --0.229986981733 --0.0832180278687 --0.220830133126 --0.08315953593 --0.211754522301 --0.0831010480192 --0.20268380939 --0.0830425630793 --0.193618414852 --0.083134528955 --0.184370031669 --0.0832335552826 --0.175107644823 --0.083189162574 --0.16601859676 --0.0831447108639 --0.15693293639 --0.0831002033439 --0.147851119968 --0.0831709070601 --0.138514021432 --0.0832488095964 --0.129165741075 --0.0832186265684 --0.120064483798 --0.0831883463521 --0.11096520576 --0.0831579580829 --0.101868352484 --0.0832071973084 --0.0924634507146 --0.0832637432598 --0.0830502591578 --0.0832637432598 -0.0830502591578 --0.0832071973084 -0.0924634507146 --0.0831579580829 -0.101868352484 --0.0831883463521 -0.11096520576 --0.0832186265684 -0.120064483798 --0.0832488095964 -0.129165741075 --0.0831709070601 -0.138514021432 --0.0831002033439 -0.147851119968 --0.0831447108639 -0.15693293639 --0.083189162574 -0.16601859676 --0.0832335552826 -0.175107644823 --0.083134528955 -0.184370031669 --0.0830425630793 -0.193618414852 --0.0831010480192 -0.20268380939 --0.08315953593 -0.211754522301 --0.0832180278687 -0.220830133126 --0.0830981490933 -0.229986981733 --0.082985148556 -0.239127064589 --0.0830574366452 -0.248174989053 --0.0831298015087 -0.257229744328 --0.0832022518303 -0.266290973342 --0.0830617604436 -0.275324922774 --0.0829279320157 -0.284339396241 --0.0830138314486 -0.293369114078 --0.0830998988897 -0.302407278824 --0.0831861382175 -0.311453548296 --0.0830253816348 -0.320349213875 --0.0828710405418 -0.329222755778 --0.0829703264907 -0.338233884983 --0.0830698817986 -0.347255154174 --0.0831697154336 -0.356286260706 --0.0829890837175 -0.365030649936 --0.0828145767893 -0.373750301423 --0.0829269949742 -0.382742817399 --0.0830398035615 -0.391747276122 --0.0831530070509 -0.400763398109 --0.0829529327818 -0.40934574628 --0.0827586696219 -0.417900803494 --0.0828839553109 -0.426875073677 --0.0830097557356 -0.435863151256 --0.0831360819065 -0.444864786105 --0.0740398926542 --0.444733770196 --0.0739368860898 --0.435734894127 --0.0738343073975 --0.426749587291 --0.0737321519524 --0.417778095852 --0.073891248985 --0.409224896145 --0.07405505717 --0.400644414755 --0.0739626953606 --0.391631086696 --0.0738706551116 --0.382629422609 --0.0737789319562 --0.373639684434 --0.0739219318863 --0.364922044921 --0.0740699086105 --0.356179689102 --0.0739884104076 --0.347151384697 --0.0739071390621 --0.338132913561 --0.0738260862094 --0.329124589097 --0.0739526131508 --0.320253205352 --0.0740843646237 --0.311359705125 --0.0740139364482 --0.302316256323 --0.0739436477834 --0.293280907556 --0.0738734949336 --0.284254019576 --0.0739832374021 --0.275241846171 --0.0740984154472 --0.26621019123 --0.0740392341972 --0.257151807762 --0.0739801191999 --0.248099894397 --0.0739210660009 --0.239054807683 --0.0740137403275 --0.229917139443 --0.0741120305748 --0.220762711541 --0.0740642439376 --0.211689964427 --0.0740164609969 --0.202622117609 --0.0739686791366 --0.193559579294 --0.0740441031978 --0.1843137122 --0.0741252983994 --0.175053845762 --0.0740890341906 --0.165967668926 --0.0740527259947 --0.156884899471 --0.0740163692637 --0.14780596262 --0.0740743384203 --0.13847146244 --0.0741381991675 --0.129125795272 --0.0741135598928 --0.120027428907 --0.0740888407372 --0.110931043975 --0.0740640331129 --0.101837085375 --0.0741043681447 --0.0924348551487 --0.0741043681447 -0.0924348551487 --0.0740640331129 -0.101837085375 --0.0740888407372 -0.110931043975 --0.0741135598928 -0.120027428907 --0.0741381991675 -0.129125795272 --0.0740743384203 -0.13847146244 --0.0740163692637 -0.14780596262 --0.0740527259947 -0.156884899471 --0.0740890341906 -0.165967668926 --0.0741252983994 -0.175053845762 --0.0740441031978 -0.1843137122 --0.0739686791366 -0.193559579294 --0.0740164609969 -0.202622117609 --0.0740642439376 -0.211689964427 --0.0741120305748 -0.220762711541 --0.0740137403275 -0.229917139443 --0.0739210660009 -0.239054807683 --0.0739801191999 -0.248099894397 --0.0740392341972 -0.257151807762 --0.0740984154472 -0.26621019123 --0.0739832374021 -0.275241846171 --0.0738734949336 -0.284254019576 --0.0739436477834 -0.293280907556 --0.0740139364482 -0.302316256323 --0.0740843646237 -0.311359705125 --0.0739526131508 -0.320253205352 --0.0738260862094 -0.329124589097 --0.0739071390621 -0.338132913561 --0.0739884104076 -0.347151384697 --0.0740699086105 -0.356179689102 --0.0739219318863 -0.364922044921 --0.0737789319562 -0.373639684434 --0.0738706551116 -0.382629422609 --0.0739626953606 -0.391631086696 --0.07405505717 -0.400644414755 --0.073891248985 -0.409224896145 --0.0737321519524 -0.417778095852 --0.0738343073975 -0.426749587291 --0.0739368860898 -0.435734894127 --0.0740398926542 -0.444733770196 --0.0649446695436 --0.44460242984 --0.0648649941562 --0.435606375044 --0.0647856455047 --0.426623858592 --0.0647066262548 --0.417655146386 --0.0648305371547 --0.409103780532 --0.0649580586285 --0.400525149941 --0.0648865415777 --0.391514639249 --0.064815273704 --0.382515781935 --0.0647442521486 --0.373528848719 --0.0648557210988 --0.364813190687 --0.0649710229278 --0.35607283238 --0.0649078686906 --0.347047360011 --0.0648448864062 --0.338031714149 --0.0647820754375 --0.32902622344 --0.064880772978 --0.320156978728 --0.0649834990886 --0.3112656103 --0.0649288859383 --0.302225003903 --0.0648743829544 --0.293192506582 --0.0648199839881 --0.284168470872 --0.0649056252757 --0.275158571797 --0.064995472156 --0.266129185857 --0.0649495610531 --0.257073663839 --0.0649037015841 --0.248024614146 --0.0648578875923 --0.238982392823 --0.0649302205342 --0.229847120712 --0.0650069092844 --0.220695089525 --0.0649698309855 --0.21162522257 --0.0649327564162 --0.202560262928 --0.0648956829273 --0.193500616283 --0.0649545566728 --0.18425724797 --0.065017908699 --0.17499987908 --0.0649897758901 --0.16591659288 --0.0649616115858 --0.156836727189 --0.0649334082625 --0.147760698565 --0.0649786355164 --0.138428778744 --0.0650284463669 --0.129085700049 --0.0650093546011 --0.119990250175 --0.0649901968987 --0.110896780752 --0.0649709703147 --0.101805736261 --0.0649709703147 -0.101805736261 --0.0649901968987 -0.110896780752 --0.0650093546011 -0.119990250175 --0.0650284463669 -0.129085700049 --0.0649786355164 -0.138428778744 --0.0649334082625 -0.147760698565 --0.0649616115858 -0.156836727189 --0.0649897758901 -0.16591659288 --0.065017908699 -0.17499987908 --0.0649545566728 -0.18425724797 --0.0648956829273 -0.193500616283 --0.0649327564162 -0.202560262928 --0.0649698309855 -0.21162522257 --0.0650069092844 -0.220695089525 --0.0649302205342 -0.229847120712 --0.0648578875923 -0.238982392823 --0.0649037015841 -0.248024614146 --0.0649495610531 -0.257073663839 --0.064995472156 -0.266129185857 --0.0649056252757 -0.275158571797 --0.0648199839881 -0.284168470872 --0.0648743829544 -0.293192506582 --0.0649288859383 -0.302225003903 --0.0649834990886 -0.3112656103 --0.064880772978 -0.320156978728 --0.0647820754375 -0.32902622344 --0.0648448864062 -0.338031714149 --0.0649078686906 -0.347047360011 --0.0649710229278 -0.35607283238 --0.0648557210988 -0.364813190687 --0.0647442521486 -0.373528848719 --0.064815273704 -0.382515781935 --0.0648865415777 -0.391514639249 --0.0649580586285 -0.400525149941 --0.0648305371547 -0.409103780532 --0.0647066262548 -0.417655146386 --0.0647856455047 -0.426623858592 --0.0648649941562 -0.435606375044 --0.0649446695436 -0.44460242984 --0.0558508757184 --0.444470808283 --0.0557945312859 --0.435477564862 --0.0557384173564 --0.426497847967 --0.0556825343015 --0.417531957678 --0.055771244458 --0.408982422497 --0.0558624628286 --0.400405597914 --0.0558117946622 --0.391397909161 --0.055761300715 --0.382401885636 --0.0557109793387 --0.373417775588 --0.0557909086642 --0.364704088099 --0.0558735221554 --0.355965708128 --0.0558287131825 --0.346943088985 --0.0557840245722 --0.337930303215 --0.0557394535916 --0.32892765996 --0.0558103095256 --0.32006052185 --0.0558840043279 --0.311171267591 --0.0558452074467 --0.30213352408 --0.055806487117 --0.293103892763 --0.0557678421198 --0.284082725673 --0.0558293732053 --0.27507507552 --0.0558938810371 --0.26604795177 --0.0558612423967 --0.256995313358 --0.0558286396918 --0.247949154839 --0.0557960662871 --0.238909832267 --0.0558480482459 --0.229776926249 --0.0559031277629 --0.220627267794 --0.0558767607998 --0.211560297414 --0.0558503942285 --0.202498236695 --0.0558240268154 --0.1934415024 --0.0558663419254 --0.18420062191 --0.0559118479094 --0.174945736548 --0.0558918495084 --0.165865363296 --0.0558718280842 --0.156788417117 --0.0558517788059 --0.147715319 --0.0558842614978 --0.138385967868 --0.0559200161528 --0.129045453336 --0.0559064706546 --0.119952939134 --0.0558928780134 --0.110862410538 --0.0558792345882 --0.101774305473 --0.0558792345882 -0.101774305473 --0.0558928780134 -0.110862410538 --0.0559064706546 -0.119952939134 --0.0559200161528 -0.129045453336 --0.0558842614978 -0.138385967868 --0.0558517788059 -0.147715319 --0.0558718280842 -0.156788417117 --0.0558918495084 -0.165865363296 --0.0559118479094 -0.174945736548 --0.0558663419254 -0.18420062191 --0.0558240268154 -0.1934415024 --0.0558503942285 -0.202498236695 --0.0558767607998 -0.211560297414 --0.0559031277629 -0.220627267794 --0.0558480482459 -0.229776926249 --0.0557960662871 -0.238909832267 --0.0558286396918 -0.247949154839 --0.0558612423967 -0.256995313358 --0.0558938810371 -0.26604795177 --0.0558293732053 -0.27507507552 --0.0557678421198 -0.284082725673 --0.055806487117 -0.293103892763 --0.0558452074467 -0.30213352408 --0.0558840043279 -0.311171267591 --0.0558103095256 -0.32006052185 --0.0557394535916 -0.32892765996 --0.0557840245722 -0.337930303215 --0.0558287131825 -0.346943088985 --0.0558735221554 -0.355965708128 --0.0557909086642 -0.364704088099 --0.0557109793387 -0.373417775588 --0.055761300715 -0.382401885636 --0.0558117946622 -0.391397909161 --0.0558624628286 -0.400405597914 --0.055771244458 -0.408982422497 --0.0556825343015 -0.417531957678 --0.0557384173564 -0.426497847967 --0.0557945312859 -0.435477564862 --0.0558508757184 -0.444470808283 --0.046376121769 --0.444697368755 --0.0463015019339 --0.435699046697 --0.0462271935633 --0.42671427198 --0.0461531901581 --0.417743336845 --0.04626946149 --0.409191016344 --0.0463890961608 --0.400611405805 --0.0463220847688 --0.391598666486 --0.0462553051202 --0.382597607606 --0.0461887546874 --0.373608477694 --0.0462933838906 --0.364891673266 --0.0464015870842 --0.356150166079 --0.0463423811938 --0.347122510394 --0.0462833397026 --0.338104703199 --0.0462244547054 --0.329097054416 --0.0463171279016 --0.320226443793 --0.0464135690272 --0.311333722299 --0.0463623439017 --0.302290975139 --0.0463112181243 --0.293256337796 --0.0462601913479 --0.284230163991 --0.0463406467448 --0.27521873629 --0.0464250349706 --0.266187844466 --0.0463819472917 --0.257130204592 --0.0463389060857 --0.248079036004 --0.0462959063285 --0.239034718864 --0.0463639046393 --0.229897766748 --0.0464359783408 --0.220744048667 --0.0464011531855 --0.21167207546 --0.0463663312799 --0.202605010092 --0.0463315094147 --0.193543270418 --0.0463868831823 --0.184298105837 --0.0464464506427 --0.175038931467 --0.0464199993117 --0.165953546009 --0.0463935152564 --0.156871584243 --0.0463669965927 --0.147793478353 --0.0464095786505 --0.13845965595 --0.046456448993 --0.129114659711 --0.0464384600951 --0.120017127268 --0.0464204108961 --0.110921576904 --0.0464204108961 -0.110921576904 --0.0464384600951 -0.120017127268 --0.046456448993 -0.129114659711 --0.0464095786505 -0.13845965595 --0.0463669965927 -0.147793478353 --0.0463935152564 -0.156871584243 --0.0464199993117 -0.165953546009 --0.0464464506427 -0.175038931467 --0.0463868831823 -0.184298105837 --0.0463315094147 -0.193543270418 --0.0463663312799 -0.202605010092 --0.0464011531855 -0.21167207546 --0.0464359783408 -0.220744048667 --0.0463639046393 -0.229897766748 --0.0462959063285 -0.239034718864 --0.0463389060857 -0.248079036004 --0.0463819472917 -0.257130204592 --0.0464250349706 -0.266187844466 --0.0463406467448 -0.27521873629 --0.0462601913479 -0.284230163991 --0.0463112181243 -0.293256337796 --0.0463623439017 -0.302290975139 --0.0464135690272 -0.311333722299 --0.0463171279016 -0.320226443793 --0.0462244547054 -0.329097054416 --0.0462833397026 -0.338104703199 --0.0463423811938 -0.347122510394 --0.0464015870842 -0.356150166079 --0.0462933838906 -0.364891673266 --0.0461887546874 -0.373608477694 --0.0462553051202 -0.382597607606 --0.0463220847688 -0.391598666486 --0.0463890961608 -0.400611405805 --0.04626946149 -0.409191016344 --0.0461531901581 -0.417743336845 --0.0462271935633 -0.42671427198 --0.0463015019339 -0.435699046697 --0.046376121769 -0.444697368755 --0.0368957865161 --0.444987171929 --0.0368029213202 --0.435982459336 --0.0367104437487 --0.426991327578 --0.0366183450522 --0.418014027912 --0.0367621529761 --0.409458087731 --0.0369101772962 --0.400874872524 --0.0368268439654 --0.391855762187 --0.0367438017397 --0.382848344741 --0.0366610464797 --0.373852880195 --0.0367903502607 --0.36513201548 --0.0369241197068 --0.356386434688 --0.0368505382855 --0.347352409638 --0.0367771604939 --0.338328237088 --0.03670398221 --0.329314244085 --0.0368184553891 --0.320439156118 --0.0369376182664 --0.311541938433 --0.0368739805433 --0.302492833222 --0.0368104708014 --0.293451847212 --0.0367470831325 --0.284419322647 --0.0368464434403 --0.275403003566 --0.0369506908377 --0.266367212757 --0.0368971665135 --0.25730321024 --0.0368437013147 --0.248245675022 --0.0367902919329 --0.239194999809 --0.0368742888211 --0.230052803869 --0.0369633398847 --0.220893823109 --0.0369200695187 --0.211815473574 --0.0368768042488 --0.202742037724 --0.036833540927 --0.193673923463 --0.036901960387 --0.184423196968 --0.0369755745669 --0.175158460905 --0.0369426795739 --0.166066696507 --0.0369097426344 --0.156978340929 --0.0368767633164 --0.147893834856 --0.0369294345967 --0.138554219433 --0.036987410967 --0.129203425953 --0.0369649854024 --0.120099482013 --0.0369424848681 --0.110997515554 --0.0369424848681 -0.110997515554 --0.0369649854024 -0.120099482013 --0.036987410967 -0.129203425953 --0.0369294345967 -0.138554219433 --0.0368767633164 -0.147893834856 --0.0369097426344 -0.156978340929 --0.0369426795739 -0.166066696507 --0.0369755745669 -0.175158460905 --0.036901960387 -0.184423196968 --0.036833540927 -0.193673923463 --0.0368768042488 -0.202742037724 --0.0369200695187 -0.211815473574 --0.0369633398847 -0.220893823109 --0.0368742888211 -0.230052803869 --0.0367902919329 -0.239194999809 --0.0368437013147 -0.248245675022 --0.0368971665135 -0.25730321024 --0.0369506908377 -0.266367212757 --0.0368464434403 -0.275403003566 --0.0367470831325 -0.284419322647 --0.0368104708014 -0.293451847212 --0.0368739805433 -0.302492833222 --0.0369376182664 -0.311541938433 --0.0368184553891 -0.320439156118 --0.03670398221 -0.329314244085 --0.0367771604939 -0.338328237088 --0.0368505382855 -0.347352409638 --0.0369241197068 -0.356386434688 --0.0367903502607 -0.36513201548 --0.0366610464797 -0.373852880195 --0.0367438017397 -0.382848344741 --0.0368268439654 -0.391855762187 --0.0369101772962 -0.400874872524 --0.0367621529761 -0.409458087731 --0.0366183450522 -0.418014027912 --0.0367104437487 -0.426991327578 --0.0368029213202 -0.435982459336 --0.0368957865161 -0.444987171929 --0.0277912250248 --0.444981660384 --0.027721749714 --0.435977150736 --0.0276525625647 --0.426986243338 --0.0275836585003 --0.418009156848 --0.0276921931922 --0.409453356029 --0.0278038398448 --0.400870286991 --0.0277414079634 --0.391851381448 --0.0276791925915 --0.382844168581 --0.027617191548 --0.373848908368 --0.0277148895948 --0.365128133693 --0.0278159020838 --0.356382633697 --0.027760709745 --0.347348805515 --0.0277056687862 --0.338324835287 --0.0276507779811 --0.329311038806 --0.0277373525843 --0.320436002876 --0.027827422261 --0.311538833841 --0.0277796408375 --0.302489911341 --0.0277319545704 --0.29344911385 --0.0276843593895 --0.284416784772 --0.0277595591647 --0.275400464113 --0.0278384142699 --0.266364669017 --0.0277981943046 --0.257300850773 --0.0277580182275 --0.248243505453 --0.0277178837535 --0.239193014049 --0.0277814887559 --0.230050781339 --0.0278488851862 --0.220891766843 --0.0278163521898 --0.21181359598 --0.0277838210296 --0.202740345144 --0.0277512912181 --0.193672411395 --0.02780311733 --0.1844216154 --0.0278588482642 --0.175156813672 --0.027834108017 --0.166065227905 --0.0278093348 --0.156977049877 --0.0277845292075 --0.14789271653 --0.0278244276328 --0.138553018196 --0.0278683193791 --0.129202140184 --0.0278514545012 --0.120098365966 --0.0278345321638 --0.110996574977 --0.0278345321638 -0.110996574977 --0.0278514545012 -0.120098365966 --0.0278683193791 -0.129202140184 --0.0278244276328 -0.138553018196 --0.0277845292075 -0.14789271653 --0.0278093348 -0.156977049877 --0.027834108017 -0.166065227905 --0.0278588482642 -0.175156813672 --0.02780311733 -0.1844216154 --0.0277512912181 -0.193672411395 --0.0277838210296 -0.202740345144 --0.0278163521898 -0.21181359598 --0.0278488851862 -0.220891766843 --0.0277814887559 -0.230050781339 --0.0277178837535 -0.239193014049 --0.0277580182275 -0.248243505453 --0.0277981943046 -0.257300850773 --0.0278384142699 -0.266364669017 --0.0277595591647 -0.275400464113 --0.0276843593895 -0.284416784772 --0.0277319545704 -0.29344911385 --0.0277796408375 -0.302489911341 --0.027827422261 -0.311538833841 --0.0277373525843 -0.320436002876 --0.0276507779811 -0.329311038806 --0.0277056687862 -0.338324835287 --0.027760709745 -0.347348805515 --0.0278159020838 -0.356382633697 --0.0277148895948 -0.365128133693 --0.027617191548 -0.373848908368 --0.0276791925915 -0.382844168581 --0.0277414079634 -0.391851381448 --0.0278038398448 -0.400870286991 --0.0276921931922 -0.409453356029 --0.0275836585003 -0.418009156848 --0.0276525625647 -0.426986243338 --0.027721749714 -0.435977150736 --0.0277912250248 -0.444981660384 --0.0186860156002 --0.444975735568 --0.0186399405574 --0.435971473683 --0.0185940556291 --0.426980802862 --0.0185483586657 --0.418003952611 --0.0186215906088 --0.409448268772 --0.0186968292818 --0.400865311073 --0.0186553099206 --0.391846657033 --0.0186139331806 --0.382839671933 --0.01857269769 --0.373844624903 --0.0186387637773 --0.365123921895 --0.0187069911061 --0.356378487586 --0.0186701973657 --0.347344871746 --0.0186335042161 --0.338321129606 --0.0185969102985 --0.329307566403 --0.0186555612554 --0.320432544145 --0.0187165128832 --0.311535391593 --0.0186845969581 --0.302486682971 --0.018652742191 --0.293446104948 --0.0186209476571 --0.28441400088 --0.0186719669805 --0.275397667502 --0.0187254081458 --0.266361850744 --0.0186984998286 --0.25729823443 --0.0186716199759 --0.24824109151 --0.0186447663391 --0.239190802694 --0.0186879639425 --0.230048521631 --0.0187336882482 --0.220889456341 --0.018711899098 --0.211811494058 --0.0186901087876 --0.2027384469 --0.0186683171263 --0.193670711886 --0.0187035376386 --0.184419844137 --0.0187413701699 --0.175154968587 --0.0187247877332 --0.166063571675 --0.0187081826038 --0.156975585883 --0.018691555676 --0.147891459142 --0.0187186706924 --0.138551661498 --0.0187484646371 --0.129200676265 --0.0187371633819 --0.120097099211 --0.0187258231465 --0.110995505425 --0.0187258231465 -0.110995505425 --0.0187371633819 -0.120097099211 --0.0187484646371 -0.129200676265 --0.0187186706924 -0.138551661498 --0.018691555676 -0.147891459142 --0.0187081826038 -0.156975585883 --0.0187247877332 -0.166063571675 --0.0187413701699 -0.175154968587 --0.0187035376386 -0.184419844137 --0.0186683171263 -0.193670711886 --0.0186901087876 -0.2027384469 --0.018711899098 -0.211811494058 --0.0187336882482 -0.220889456341 --0.0186879639425 -0.230048521631 --0.0186447663391 -0.239190802694 --0.0186716199759 -0.24824109151 --0.0186984998286 -0.25729823443 --0.0187254081458 -0.266361850744 --0.0186719669805 -0.275397667502 --0.0186209476571 -0.28441400088 --0.018652742191 -0.293446104948 --0.0186845969581 -0.302486682971 --0.0187165128832 -0.311535391593 --0.0186555612554 -0.320432544145 --0.0185969102985 -0.329307566403 --0.0186335042161 -0.338321129606 --0.0186701973657 -0.347344871746 --0.0187069911061 -0.356378487586 --0.0186387637773 -0.365123921895 --0.01857269769 -0.373844624903 --0.0186139331806 -0.382839671933 --0.0186553099206 -0.391846657033 --0.0186968292818 -0.400865311073 --0.0186215906088 -0.409448268772 --0.0185483586657 -0.418003952611 --0.0185940556291 -0.426980802862 --0.0186399405574 -0.435971473683 --0.0186860156002 -0.444975735568 --0.00958062196408 --0.444969430065 --0.0095579563547 --0.435965417381 --0.0095353820167 --0.426974995376 --0.009512897692 --0.417998415256 --0.00955080404256 --0.409442844546 --0.0095896128528 --0.400859974234 --0.00956901262582 --0.391841565928 --0.0095484809934 --0.38283483178 --0.00952801706145 --0.373840035392 --0.00956242999499 --0.365119380352 --0.00959785233905 --0.356373985478 --0.0095794645274 --0.347340621864 --0.00956112471446 --0.33831712389 --0.00954283230263 --0.329303796754 --0.0095735426091 --0.320428783779 --0.00960535796275 --0.311531637523 --0.0095893127628 --0.302483166655 --0.00957329636066 --0.293442820542 --0.00955730796401 --0.284410954667 --0.00958413043115 --0.275394590435 --0.0096121416731 --0.26635873958 --0.00959855065346 --0.25729536125 --0.0095849713247 --0.248238444782 --0.00957140282504 --0.2391883825 --0.00959418036852 --0.230046029952 --0.00961821854386 --0.220886891636 --0.0096071759025 --0.211809157131 --0.00959613008312 --0.202736332311 --0.00958508140349 --0.193668824959 --0.0096036849819 --0.184417867519 --0.00962360683561 --0.175152892004 --0.00961518686925 --0.166061716617 --0.00960675382589 --0.156973956393 --0.0095983071859 --0.147890053645 --0.00961263044987 --0.138550130531 --0.00962831896545 --0.129199025118 --0.00962258422045 --0.12009567309 --0.00961682696756 --0.110994298675 --0.00961682696756 -0.110994298675 --0.00962258422045 -0.12009567309 --0.00962831896545 -0.129199025118 --0.00961263044987 -0.138550130531 --0.0095983071859 -0.147890053645 --0.00960675382589 -0.156973956393 --0.00961518686925 -0.166061716617 --0.00962360683561 -0.175152892004 --0.0096036849819 -0.184417867519 --0.00958508140349 -0.193668824959 --0.00959613008312 -0.202736332311 --0.0096071759025 -0.211809157131 --0.00961821854386 -0.220886891636 --0.00959418036852 -0.230046029952 --0.00957140282504 -0.2391883825 --0.0095849713247 -0.248238444782 --0.00959855065346 -0.25729536125 --0.0096121416731 -0.26635873958 --0.00958413043115 -0.275394590435 --0.00955730796401 -0.284410954667 --0.00957329636066 -0.293442820542 --0.0095893127628 -0.302483166655 --0.00960535796275 -0.311531637523 --0.0095735426091 -0.320428783779 --0.00954283230263 -0.329303796754 --0.00956112471446 -0.33831712389 --0.0095794645274 -0.347340621864 --0.00959785233905 -0.356373985478 --0.00956242999499 -0.365119380352 --0.00952801706145 -0.373840035392 --0.0095484809934 -0.38283483178 --0.00956901262582 -0.391841565928 --0.0095896128528 -0.400859974234 --0.00955080404256 -0.409442844546 --0.009512897692 -0.417998415256 --0.0095353820167 -0.426974995376 --0.0095579563547 -0.435965417381 --0.00958062196408 -0.444969430065 -0 --0.444966181715 -0 --0.435962284222 -0 --0.426971997728 -0 --0.417995562543 -0 --0.409440046984 -0 --0.400857220697 -0 --0.391838914927 -0 --0.382832312153 -0 --0.373837661282 -0 --0.365117029911 -0 --0.356371646096 -0 --0.347338418464 -0 --0.338315048497 -0 --0.329301835773 -0 --0.320426830896 -0 --0.311529691168 -0 --0.302481338043 -0 --0.293441104106 -0 --0.284409363878 -0 --0.275392978581 -0 --0.266357104707 -0 --0.257293854453 -0 --0.248237060256 -0 --0.239187114396 -0 --0.230044720345 -0 --0.220885545925 -0 --0.211807931325 -0 --0.202735225647 -0 --0.19366783814 -0 --0.184416826485 -0 --0.175151793255 -0 --0.166060737452 -0 --0.156973099541 -0 --0.147889311661 -0 --0.138549320014 -0 --0.129198151999 -0 --0.120094917391 -0 --0.110993660426 -0 -0.110993660426 -0 -0.120094917391 -0 -0.129198151999 -0 -0.138549320014 -0 -0.147889311661 -0 -0.156973099541 -0 -0.166060737452 -0 -0.175151793255 -0 -0.184416826485 -0 -0.19366783814 -0 -0.202735225647 -0 -0.211807931325 -0 -0.220885545925 -0 -0.230044720345 -0 -0.239187114396 -0 -0.248237060256 -0 -0.257293854453 -0 -0.266357104707 -0 -0.275392978581 -0 -0.284409363878 -0 -0.293441104106 -0 -0.302481338043 -0 -0.311529691168 -0 -0.320426830896 -0 -0.329301835773 -0 -0.338315048497 -0 -0.347338418464 -0 -0.356371646096 -0 -0.365117029911 -0 -0.373837661282 -0 -0.382832312153 -0 -0.391838914927 -0 -0.400857220697 -0 -0.409440046984 -0 -0.417995562543 -0 -0.426971997728 -0 -0.435962284222 -0 -0.444966181715 -0.00958062196408 --0.444969430065 -0.0095579563547 --0.435965417381 -0.0095353820167 --0.426974995376 -0.009512897692 --0.417998415256 -0.00955080404256 --0.409442844546 -0.0095896128528 --0.400859974234 -0.00956901262582 --0.391841565928 -0.0095484809934 --0.38283483178 -0.00952801706145 --0.373840035392 -0.00956242999499 --0.365119380352 -0.00959785233905 --0.356373985478 -0.0095794645274 --0.347340621864 -0.00956112471446 --0.33831712389 -0.00954283230263 --0.329303796754 -0.0095735426091 --0.320428783779 -0.00960535796275 --0.311531637523 -0.0095893127628 --0.302483166655 -0.00957329636066 --0.293442820542 -0.00955730796401 --0.284410954667 -0.00958413043115 --0.275394590435 -0.0096121416731 --0.26635873958 -0.00959855065346 --0.25729536125 -0.0095849713247 --0.248238444782 -0.00957140282504 --0.2391883825 -0.00959418036852 --0.230046029952 -0.00961821854386 --0.220886891636 -0.0096071759025 --0.211809157131 -0.00959613008312 --0.202736332311 -0.00958508140349 --0.193668824959 -0.0096036849819 --0.184417867519 -0.00962360683561 --0.175152892004 -0.00961518686925 --0.166061716617 -0.00960675382589 --0.156973956393 -0.0095983071859 --0.147890053645 -0.00961263044987 --0.138550130531 -0.00962831896545 --0.129199025118 -0.00962258422045 --0.12009567309 -0.00961682696756 --0.110994298675 -0.00961682696756 -0.110994298675 -0.00962258422045 -0.12009567309 -0.00962831896545 -0.129199025118 -0.00961263044987 -0.138550130531 -0.0095983071859 -0.147890053645 -0.00960675382589 -0.156973956393 -0.00961518686925 -0.166061716617 -0.00962360683561 -0.175152892004 -0.0096036849819 -0.184417867519 -0.00958508140349 -0.193668824959 -0.00959613008312 -0.202736332311 -0.0096071759025 -0.211809157131 -0.00961821854386 -0.220886891636 -0.00959418036852 -0.230046029952 -0.00957140282504 -0.2391883825 -0.0095849713247 -0.248238444782 -0.00959855065346 -0.25729536125 -0.0096121416731 -0.26635873958 -0.00958413043115 -0.275394590435 -0.00955730796401 -0.284410954667 -0.00957329636066 -0.293442820542 -0.0095893127628 -0.302483166655 -0.00960535796275 -0.311531637523 -0.0095735426091 -0.320428783779 -0.00954283230263 -0.329303796754 -0.00956112471446 -0.33831712389 -0.0095794645274 -0.347340621864 -0.00959785233905 -0.356373985478 -0.00956242999499 -0.365119380352 -0.00952801706145 -0.373840035392 -0.0095484809934 -0.38283483178 -0.00956901262582 -0.391841565928 -0.0095896128528 -0.400859974234 -0.00955080404256 -0.409442844546 -0.009512897692 -0.417998415256 -0.0095353820167 -0.426974995376 -0.0095579563547 -0.435965417381 -0.00958062196408 -0.444969430065 -0.0186860156002 --0.444975735568 -0.0186399405574 --0.435971473683 -0.0185940556291 --0.426980802862 -0.0185483586657 --0.418003952611 -0.0186215906088 --0.409448268772 -0.0186968292818 --0.400865311073 -0.0186553099206 --0.391846657033 -0.0186139331806 --0.382839671933 -0.01857269769 --0.373844624903 -0.0186387637773 --0.365123921895 -0.0187069911061 --0.356378487586 -0.0186701973657 --0.347344871746 -0.0186335042161 --0.338321129606 -0.0185969102985 --0.329307566403 -0.0186555612554 --0.320432544145 -0.0187165128832 --0.311535391593 -0.0186845969581 --0.302486682971 -0.018652742191 --0.293446104948 -0.0186209476571 --0.28441400088 -0.0186719669805 --0.275397667502 -0.0187254081458 --0.266361850744 -0.0186984998286 --0.25729823443 -0.0186716199759 --0.24824109151 -0.0186447663391 --0.239190802694 -0.0186879639425 --0.230048521631 -0.0187336882482 --0.220889456341 -0.018711899098 --0.211811494058 -0.0186901087876 --0.2027384469 -0.0186683171263 --0.193670711886 -0.0187035376386 --0.184419844137 -0.0187413701699 --0.175154968587 -0.0187247877332 --0.166063571675 -0.0187081826038 --0.156975585883 -0.018691555676 --0.147891459142 -0.0187186706924 --0.138551661498 -0.0187484646371 --0.129200676265 -0.0187371633819 --0.120097099211 -0.0187258231465 --0.110995505425 -0.0187258231465 -0.110995505425 -0.0187371633819 -0.120097099211 -0.0187484646371 -0.129200676265 -0.0187186706924 -0.138551661498 -0.018691555676 -0.147891459142 -0.0187081826038 -0.156975585883 -0.0187247877332 -0.166063571675 -0.0187413701699 -0.175154968587 -0.0187035376386 -0.184419844137 -0.0186683171263 -0.193670711886 -0.0186901087876 -0.2027384469 -0.018711899098 -0.211811494058 -0.0187336882482 -0.220889456341 -0.0186879639425 -0.230048521631 -0.0186447663391 -0.239190802694 -0.0186716199759 -0.24824109151 -0.0186984998286 -0.25729823443 -0.0187254081458 -0.266361850744 -0.0186719669805 -0.275397667502 -0.0186209476571 -0.28441400088 -0.018652742191 -0.293446104948 -0.0186845969581 -0.302486682971 -0.0187165128832 -0.311535391593 -0.0186555612554 -0.320432544145 -0.0185969102985 -0.329307566403 -0.0186335042161 -0.338321129606 -0.0186701973657 -0.347344871746 -0.0187069911061 -0.356378487586 -0.0186387637773 -0.365123921895 -0.01857269769 -0.373844624903 -0.0186139331806 -0.382839671933 -0.0186553099206 -0.391846657033 -0.0186968292818 -0.400865311073 -0.0186215906088 -0.409448268772 -0.0185483586657 -0.418003952611 -0.0185940556291 -0.426980802862 -0.0186399405574 -0.435971473683 -0.0186860156002 -0.444975735568 -0.0277912250248 --0.444981660384 -0.027721749714 --0.435977150736 -0.0276525625647 --0.426986243338 -0.0275836585003 --0.418009156848 -0.0276921931922 --0.409453356029 -0.0278038398448 --0.400870286991 -0.0277414079634 --0.391851381448 -0.0276791925915 --0.382844168581 -0.027617191548 --0.373848908368 -0.0277148895948 --0.365128133693 -0.0278159020838 --0.356382633697 -0.027760709745 --0.347348805515 -0.0277056687862 --0.338324835287 -0.0276507779811 --0.329311038806 -0.0277373525843 --0.320436002876 -0.027827422261 --0.311538833841 -0.0277796408375 --0.302489911341 -0.0277319545704 --0.29344911385 -0.0276843593895 --0.284416784772 -0.0277595591647 --0.275400464113 -0.0278384142699 --0.266364669017 -0.0277981943046 --0.257300850773 -0.0277580182275 --0.248243505453 -0.0277178837535 --0.239193014049 -0.0277814887559 --0.230050781339 -0.0278488851862 --0.220891766843 -0.0278163521898 --0.21181359598 -0.0277838210296 --0.202740345144 -0.0277512912181 --0.193672411395 -0.02780311733 --0.1844216154 -0.0278588482642 --0.175156813672 -0.027834108017 --0.166065227905 -0.0278093348 --0.156977049877 -0.0277845292075 --0.14789271653 -0.0278244276328 --0.138553018196 -0.0278683193791 --0.129202140184 -0.0278514545012 --0.120098365966 -0.0278345321638 --0.110996574977 -0.0278345321638 -0.110996574977 -0.0278514545012 -0.120098365966 -0.0278683193791 -0.129202140184 -0.0278244276328 -0.138553018196 -0.0277845292075 -0.14789271653 -0.0278093348 -0.156977049877 -0.027834108017 -0.166065227905 -0.0278588482642 -0.175156813672 -0.02780311733 -0.1844216154 -0.0277512912181 -0.193672411395 -0.0277838210296 -0.202740345144 -0.0278163521898 -0.21181359598 -0.0278488851862 -0.220891766843 -0.0277814887559 -0.230050781339 -0.0277178837535 -0.239193014049 -0.0277580182275 -0.248243505453 -0.0277981943046 -0.257300850773 -0.0278384142699 -0.266364669017 -0.0277595591647 -0.275400464113 -0.0276843593895 -0.284416784772 -0.0277319545704 -0.29344911385 -0.0277796408375 -0.302489911341 -0.027827422261 -0.311538833841 -0.0277373525843 -0.320436002876 -0.0276507779811 -0.329311038806 -0.0277056687862 -0.338324835287 -0.027760709745 -0.347348805515 -0.0278159020838 -0.356382633697 -0.0277148895948 -0.365128133693 -0.027617191548 -0.373848908368 -0.0276791925915 -0.382844168581 -0.0277414079634 -0.391851381448 -0.0278038398448 -0.400870286991 -0.0276921931922 -0.409453356029 -0.0275836585003 -0.418009156848 -0.0276525625647 -0.426986243338 -0.027721749714 -0.435977150736 -0.0277912250248 -0.444981660384 -0.0368957865161 --0.444987171929 -0.0368029213202 --0.435982459336 -0.0367104437487 --0.426991327578 -0.0366183450522 --0.418014027912 -0.0367621529761 --0.409458087731 -0.0369101772962 --0.400874872524 -0.0368268439654 --0.391855762187 -0.0367438017397 --0.382848344741 -0.0366610464797 --0.373852880195 -0.0367903502607 --0.36513201548 -0.0369241197068 --0.356386434688 -0.0368505382855 --0.347352409638 -0.0367771604939 --0.338328237088 -0.03670398221 --0.329314244085 -0.0368184553891 --0.320439156118 -0.0369376182664 --0.311541938433 -0.0368739805433 --0.302492833222 -0.0368104708014 --0.293451847212 -0.0367470831325 --0.284419322647 -0.0368464434403 --0.275403003566 -0.0369506908377 --0.266367212757 -0.0368971665135 --0.25730321024 -0.0368437013147 --0.248245675022 -0.0367902919329 --0.239194999809 -0.0368742888211 --0.230052803869 -0.0369633398847 --0.220893823109 -0.0369200695187 --0.211815473574 -0.0368768042488 --0.202742037724 -0.036833540927 --0.193673923463 -0.036901960387 --0.184423196968 -0.0369755745669 --0.175158460905 -0.0369426795739 --0.166066696507 -0.0369097426344 --0.156978340929 -0.0368767633164 --0.147893834856 -0.0369294345967 --0.138554219433 -0.036987410967 --0.129203425953 -0.0369649854024 --0.120099482013 -0.0369424848681 --0.110997515554 -0.0369424848681 -0.110997515554 -0.0369649854024 -0.120099482013 -0.036987410967 -0.129203425953 -0.0369294345967 -0.138554219433 -0.0368767633164 -0.147893834856 -0.0369097426344 -0.156978340929 -0.0369426795739 -0.166066696507 -0.0369755745669 -0.175158460905 -0.036901960387 -0.184423196968 -0.036833540927 -0.193673923463 -0.0368768042488 -0.202742037724 -0.0369200695187 -0.211815473574 -0.0369633398847 -0.220893823109 -0.0368742888211 -0.230052803869 -0.0367902919329 -0.239194999809 -0.0368437013147 -0.248245675022 -0.0368971665135 -0.25730321024 -0.0369506908377 -0.266367212757 -0.0368464434403 -0.275403003566 -0.0367470831325 -0.284419322647 -0.0368104708014 -0.293451847212 -0.0368739805433 -0.302492833222 -0.0369376182664 -0.311541938433 -0.0368184553891 -0.320439156118 -0.03670398221 -0.329314244085 -0.0367771604939 -0.338328237088 -0.0368505382855 -0.347352409638 -0.0369241197068 -0.356386434688 -0.0367903502607 -0.36513201548 -0.0366610464797 -0.373852880195 -0.0367438017397 -0.382848344741 -0.0368268439654 -0.391855762187 -0.0369101772962 -0.400874872524 -0.0367621529761 -0.409458087731 -0.0366183450522 -0.418014027912 -0.0367104437487 -0.426991327578 -0.0368029213202 -0.435982459336 -0.0368957865161 -0.444987171929 -0.046376121769 --0.444697368755 -0.0463015019339 --0.435699046697 -0.0462271935633 --0.42671427198 -0.0461531901581 --0.417743336845 -0.04626946149 --0.409191016344 -0.0463890961608 --0.400611405805 -0.0463220847688 --0.391598666486 -0.0462553051202 --0.382597607606 -0.0461887546874 --0.373608477694 -0.0462933838906 --0.364891673266 -0.0464015870842 --0.356150166079 -0.0463423811938 --0.347122510394 -0.0462833397026 --0.338104703199 -0.0462244547054 --0.329097054416 -0.0463171279016 --0.320226443793 -0.0464135690272 --0.311333722299 -0.0463623439017 --0.302290975139 -0.0463112181243 --0.293256337796 -0.0462601913479 --0.284230163991 -0.0463406467448 --0.27521873629 -0.0464250349706 --0.266187844466 -0.0463819472917 --0.257130204592 -0.0463389060857 --0.248079036004 -0.0462959063285 --0.239034718864 -0.0463639046393 --0.229897766748 -0.0464359783408 --0.220744048667 -0.0464011531855 --0.21167207546 -0.0463663312799 --0.202605010092 -0.0463315094147 --0.193543270418 -0.0463868831823 --0.184298105837 -0.0464464506427 --0.175038931467 -0.0464199993117 --0.165953546009 -0.0463935152564 --0.156871584243 -0.0463669965927 --0.147793478353 -0.0464095786505 --0.13845965595 -0.046456448993 --0.129114659711 -0.0464384600951 --0.120017127268 -0.0464204108961 --0.110921576904 -0.0464204108961 -0.110921576904 -0.0464384600951 -0.120017127268 -0.046456448993 -0.129114659711 -0.0464095786505 -0.13845965595 -0.0463669965927 -0.147793478353 -0.0463935152564 -0.156871584243 -0.0464199993117 -0.165953546009 -0.0464464506427 -0.175038931467 -0.0463868831823 -0.184298105837 -0.0463315094147 -0.193543270418 -0.0463663312799 -0.202605010092 -0.0464011531855 -0.21167207546 -0.0464359783408 -0.220744048667 -0.0463639046393 -0.229897766748 -0.0462959063285 -0.239034718864 -0.0463389060857 -0.248079036004 -0.0463819472917 -0.257130204592 -0.0464250349706 -0.266187844466 -0.0463406467448 -0.27521873629 -0.0462601913479 -0.284230163991 -0.0463112181243 -0.293256337796 -0.0463623439017 -0.302290975139 -0.0464135690272 -0.311333722299 -0.0463171279016 -0.320226443793 -0.0462244547054 -0.329097054416 -0.0462833397026 -0.338104703199 -0.0463423811938 -0.347122510394 -0.0464015870842 -0.356150166079 -0.0462933838906 -0.364891673266 -0.0461887546874 -0.373608477694 -0.0462553051202 -0.382597607606 -0.0463220847688 -0.391598666486 -0.0463890961608 -0.400611405805 -0.04626946149 -0.409191016344 -0.0461531901581 -0.417743336845 -0.0462271935633 -0.42671427198 -0.0463015019339 -0.435699046697 -0.046376121769 -0.444697368755 -0.0558508757184 --0.444470808283 -0.0557945312859 --0.435477564862 -0.0557384173564 --0.426497847967 -0.0556825343015 --0.417531957678 -0.055771244458 --0.408982422497 -0.0558624628286 --0.400405597914 -0.0558117946622 --0.391397909161 -0.055761300715 --0.382401885636 -0.0557109793387 --0.373417775588 -0.0557909086642 --0.364704088099 -0.0558735221554 --0.355965708128 -0.0558287131825 --0.346943088985 -0.0557840245722 --0.337930303215 -0.0557394535916 --0.32892765996 -0.0558103095256 --0.32006052185 -0.0558840043279 --0.311171267591 -0.0558452074467 --0.30213352408 -0.055806487117 --0.293103892763 -0.0557678421198 --0.284082725673 -0.0558293732053 --0.27507507552 -0.0558938810371 --0.26604795177 -0.0558612423967 --0.256995313358 -0.0558286396918 --0.247949154839 -0.0557960662871 --0.238909832267 -0.0558480482459 --0.229776926249 -0.0559031277629 --0.220627267794 -0.0558767607998 --0.211560297414 -0.0558503942285 --0.202498236695 -0.0558240268154 --0.1934415024 -0.0558663419254 --0.18420062191 -0.0559118479094 --0.174945736548 -0.0558918495084 --0.165865363296 -0.0558718280842 --0.156788417117 -0.0558517788059 --0.147715319 -0.0558842614978 --0.138385967868 -0.0559200161528 --0.129045453336 -0.0559064706546 --0.119952939134 -0.0558928780134 --0.110862410538 -0.0558792345882 --0.101774305473 -0.0558792345882 -0.101774305473 -0.0558928780134 -0.110862410538 -0.0559064706546 -0.119952939134 -0.0559200161528 -0.129045453336 -0.0558842614978 -0.138385967868 -0.0558517788059 -0.147715319 -0.0558718280842 -0.156788417117 -0.0558918495084 -0.165865363296 -0.0559118479094 -0.174945736548 -0.0558663419254 -0.18420062191 -0.0558240268154 -0.1934415024 -0.0558503942285 -0.202498236695 -0.0558767607998 -0.211560297414 -0.0559031277629 -0.220627267794 -0.0558480482459 -0.229776926249 -0.0557960662871 -0.238909832267 -0.0558286396918 -0.247949154839 -0.0558612423967 -0.256995313358 -0.0558938810371 -0.26604795177 -0.0558293732053 -0.27507507552 -0.0557678421198 -0.284082725673 -0.055806487117 -0.293103892763 -0.0558452074467 -0.30213352408 -0.0558840043279 -0.311171267591 -0.0558103095256 -0.32006052185 -0.0557394535916 -0.32892765996 -0.0557840245722 -0.337930303215 -0.0558287131825 -0.346943088985 -0.0558735221554 -0.355965708128 -0.0557909086642 -0.364704088099 -0.0557109793387 -0.373417775588 -0.055761300715 -0.382401885636 -0.0558117946622 -0.391397909161 -0.0558624628286 -0.400405597914 -0.055771244458 -0.408982422497 -0.0556825343015 -0.417531957678 -0.0557384173564 -0.426497847967 -0.0557945312859 -0.435477564862 -0.0558508757184 -0.444470808283 -0.0649446695436 --0.44460242984 -0.0648649941562 --0.435606375044 -0.0647856455047 --0.426623858592 -0.0647066262548 --0.417655146386 -0.0648305371547 --0.409103780532 -0.0649580586285 --0.400525149941 -0.0648865415777 --0.391514639249 -0.064815273704 --0.382515781935 -0.0647442521486 --0.373528848719 -0.0648557210988 --0.364813190687 -0.0649710229278 --0.35607283238 -0.0649078686906 --0.347047360011 -0.0648448864062 --0.338031714149 -0.0647820754375 --0.32902622344 -0.064880772978 --0.320156978728 -0.0649834990886 --0.3112656103 -0.0649288859383 --0.302225003903 -0.0648743829544 --0.293192506582 -0.0648199839881 --0.284168470872 -0.0649056252757 --0.275158571797 -0.064995472156 --0.266129185857 -0.0649495610531 --0.257073663839 -0.0649037015841 --0.248024614146 -0.0648578875923 --0.238982392823 -0.0649302205342 --0.229847120712 -0.0650069092844 --0.220695089525 -0.0649698309855 --0.21162522257 -0.0649327564162 --0.202560262928 -0.0648956829273 --0.193500616283 -0.0649545566728 --0.18425724797 -0.065017908699 --0.17499987908 -0.0649897758901 --0.16591659288 -0.0649616115858 --0.156836727189 -0.0649334082625 --0.147760698565 -0.0649786355164 --0.138428778744 -0.0650284463669 --0.129085700049 -0.0650093546011 --0.119990250175 -0.0649901968987 --0.110896780752 -0.0649709703147 --0.101805736261 -0.0649709703147 -0.101805736261 -0.0649901968987 -0.110896780752 -0.0650093546011 -0.119990250175 -0.0650284463669 -0.129085700049 -0.0649786355164 -0.138428778744 -0.0649334082625 -0.147760698565 -0.0649616115858 -0.156836727189 -0.0649897758901 -0.16591659288 -0.065017908699 -0.17499987908 -0.0649545566728 -0.18425724797 -0.0648956829273 -0.193500616283 -0.0649327564162 -0.202560262928 -0.0649698309855 -0.21162522257 -0.0650069092844 -0.220695089525 -0.0649302205342 -0.229847120712 -0.0648578875923 -0.238982392823 -0.0649037015841 -0.248024614146 -0.0649495610531 -0.257073663839 -0.064995472156 -0.266129185857 -0.0649056252757 -0.275158571797 -0.0648199839881 -0.284168470872 -0.0648743829544 -0.293192506582 -0.0649288859383 -0.302225003903 -0.0649834990886 -0.3112656103 -0.064880772978 -0.320156978728 -0.0647820754375 -0.32902622344 -0.0648448864062 -0.338031714149 -0.0649078686906 -0.347047360011 -0.0649710229278 -0.35607283238 -0.0648557210988 -0.364813190687 -0.0647442521486 -0.373528848719 -0.064815273704 -0.382515781935 -0.0648865415777 -0.391514639249 -0.0649580586285 -0.400525149941 -0.0648305371547 -0.409103780532 -0.0647066262548 -0.417655146386 -0.0647856455047 -0.426623858592 -0.0648649941562 -0.435606375044 -0.0649446695436 -0.44460242984 -0.0740398926542 --0.444733770196 -0.0739368860898 --0.435734894127 -0.0738343073975 --0.426749587291 -0.0737321519524 --0.417778095852 -0.073891248985 --0.409224896145 -0.07405505717 --0.400644414755 -0.0739626953606 --0.391631086696 -0.0738706551116 --0.382629422609 -0.0737789319562 --0.373639684434 -0.0739219318863 --0.364922044921 -0.0740699086105 --0.356179689102 -0.0739884104076 --0.347151384697 -0.0739071390621 --0.338132913561 -0.0738260862094 --0.329124589097 -0.0739526131508 --0.320253205352 -0.0740843646237 --0.311359705125 -0.0740139364482 --0.302316256323 -0.0739436477834 --0.293280907556 -0.0738734949336 --0.284254019576 -0.0739832374021 --0.275241846171 -0.0740984154472 --0.26621019123 -0.0740392341972 --0.257151807762 -0.0739801191999 --0.248099894397 -0.0739210660009 --0.239054807683 -0.0740137403275 --0.229917139443 -0.0741120305748 --0.220762711541 -0.0740642439376 --0.211689964427 -0.0740164609969 --0.202622117609 -0.0739686791366 --0.193559579294 -0.0740441031978 --0.1843137122 -0.0741252983994 --0.175053845762 -0.0740890341906 --0.165967668926 -0.0740527259947 --0.156884899471 -0.0740163692637 --0.14780596262 -0.0740743384203 --0.13847146244 -0.0741381991675 --0.129125795272 -0.0741135598928 --0.120027428907 -0.0740888407372 --0.110931043975 -0.0740640331129 --0.101837085375 -0.0741043681447 --0.0924348551487 -0.0741043681447 -0.0924348551487 -0.0740640331129 -0.101837085375 -0.0740888407372 -0.110931043975 -0.0741135598928 -0.120027428907 -0.0741381991675 -0.129125795272 -0.0740743384203 -0.13847146244 -0.0740163692637 -0.14780596262 -0.0740527259947 -0.156884899471 -0.0740890341906 -0.165967668926 -0.0741252983994 -0.175053845762 -0.0740441031978 -0.1843137122 -0.0739686791366 -0.193559579294 -0.0740164609969 -0.202622117609 -0.0740642439376 -0.211689964427 -0.0741120305748 -0.220762711541 -0.0740137403275 -0.229917139443 -0.0739210660009 -0.239054807683 -0.0739801191999 -0.248099894397 -0.0740392341972 -0.257151807762 -0.0740984154472 -0.26621019123 -0.0739832374021 -0.275241846171 -0.0738734949336 -0.284254019576 -0.0739436477834 -0.293280907556 -0.0740139364482 -0.302316256323 -0.0740843646237 -0.311359705125 -0.0739526131508 -0.320253205352 -0.0738260862094 -0.329124589097 -0.0739071390621 -0.338132913561 -0.0739884104076 -0.347151384697 -0.0740699086105 -0.356179689102 -0.0739219318863 -0.364922044921 -0.0737789319562 -0.373639684434 -0.0738706551116 -0.382629422609 -0.0739626953606 -0.391631086696 -0.07405505717 -0.400644414755 -0.073891248985 -0.409224896145 -0.0737321519524 -0.417778095852 -0.0738343073975 -0.426749587291 -0.0739368860898 -0.435734894127 -0.0740398926542 -0.444733770196 -0.0831360819065 --0.444864786105 -0.0830097557356 --0.435863151256 -0.0828839553109 --0.426875073677 -0.0827586696219 --0.417900803494 -0.0829529327818 --0.40934574628 -0.0831530070509 --0.400763398109 -0.0830398035615 --0.391747276122 -0.0829269949742 --0.382742817399 -0.0828145767893 --0.373750301423 -0.0829890837175 --0.365030649936 -0.0831697154336 --0.356286260706 -0.0830698817986 --0.347255154174 -0.0829703264907 --0.338233884983 -0.0828710405418 --0.329222755778 -0.0830253816348 --0.320349213875 -0.0831861382175 --0.311453548296 -0.0830998988897 --0.302407278824 -0.0830138314486 --0.293369114078 -0.0829279320157 --0.284339396241 -0.0830617604436 --0.275324922774 -0.0832022518303 --0.266290973342 -0.0831298015087 --0.257229744328 -0.0830574366452 --0.248174989053 -0.082985148556 --0.239127064589 -0.0830981490933 --0.229986981733 -0.0832180278687 --0.220830133126 -0.08315953593 --0.211754522301 -0.0831010480192 --0.20268380939 -0.0830425630793 --0.193618414852 -0.083134528955 --0.184370031669 -0.0832335552826 --0.175107644823 -0.083189162574 --0.16601859676 -0.0831447108639 --0.15693293639 -0.0831002033439 --0.147851119968 -0.0831709070601 --0.138514021432 -0.0832488095964 --0.129165741075 -0.0832186265684 --0.120064483798 -0.0831883463521 --0.11096520576 -0.0831579580829 --0.101868352484 -0.0832071973084 --0.0924634507146 -0.0832637432598 --0.0830502591578 -0.0832637432598 -0.0830502591578 -0.0832071973084 -0.0924634507146 -0.0831579580829 -0.101868352484 -0.0831883463521 -0.11096520576 -0.0832186265684 -0.120064483798 -0.0832488095964 -0.129165741075 -0.0831709070601 -0.138514021432 -0.0831002033439 -0.147851119968 -0.0831447108639 -0.15693293639 -0.083189162574 -0.16601859676 -0.0832335552826 -0.175107644823 -0.083134528955 -0.184370031669 -0.0830425630793 -0.193618414852 -0.0831010480192 -0.20268380939 -0.08315953593 -0.211754522301 -0.0832180278687 -0.220830133126 -0.0830981490933 -0.229986981733 -0.082985148556 -0.239127064589 -0.0830574366452 -0.248174989053 -0.0831298015087 -0.257229744328 -0.0832022518303 -0.266290973342 -0.0830617604436 -0.275324922774 -0.0829279320157 -0.284339396241 -0.0830138314486 -0.293369114078 -0.0830998988897 -0.302407278824 -0.0831861382175 -0.311453548296 -0.0830253816348 -0.320349213875 -0.0828710405418 -0.329222755778 -0.0829703264907 -0.338233884983 -0.0830698817986 -0.347255154174 -0.0831697154336 -0.356286260706 -0.0829890837175 -0.365030649936 -0.0828145767893 -0.373750301423 -0.0829269949742 -0.382742817399 -0.0830398035615 -0.391747276122 -0.0831530070509 -0.400763398109 -0.0829529327818 -0.40934574628 -0.0827586696219 -0.417900803494 -0.0828839553109 -0.426875073677 -0.0830097557356 -0.435863151256 -0.0831360819065 -0.444864786105 -0.0922537343406 --0.417458490499 -0.0924201889105 --0.408908734125 -0.0925915939695 --0.400331690901 -0.0924949021761 --0.391326199114 -0.0923985445397 --0.382332332636 -0.0923025238947 --0.373350384764 -0.0924520380861 --0.364636962394 -0.0926067758041 --0.355898801859 -0.0925214855042 --0.346878247463 -0.0924364308875 --0.337867500016 -0.0923516105586 --0.328866891038 -0.0924838952309 --0.32000042577 -0.0926216592094 --0.311111837185 -0.0925479817193 --0.302076088723 -0.0924744452754 --0.29304840787 -0.0924010525133 --0.284029155575 -0.0925157491421 --0.275022537825 -0.0926361432899 --0.265996458547 -0.0925742523447 --0.256945714984 -0.0925124326817 --0.247901414743 -0.0924506765735 --0.238863936581 -0.092547514989 --0.22973241045 -0.092650243628 --0.22058412784 -0.0926002963861 --0.211518970489 -0.0925503529797 --0.202458704639 -0.0925004129478 --0.193403752543 -0.0925791915423 --0.184164531586 -0.0926640157322 --0.174911312263 -0.0926261432862 --0.165832707397 -0.0925882196675 --0.156757493019 -0.0925502448466 --0.147686115163 -0.0926107364696 --0.138358665631 -0.092677399614 --0.129020046872 -0.0926517005361 --0.119929241049 -0.0926259140767 --0.110840410919 -0.092600040865 --0.10175400501 -0.092642115436 --0.0923591238643 -0.0926904510311 --0.0829559626843 -0.0926770069137 --0.0738545053553 -0.0926770069137 -0.0738545053553 -0.0926904510311 -0.0829559626843 -0.092642115436 -0.0923591238643 -0.092600040865 -0.10175400501 -0.0926259140767 -0.110840410919 -0.0926517005361 -0.119929241049 -0.092677399614 -0.129020046872 -0.0926107364696 -0.138358665631 -0.0925502448466 -0.147686115163 -0.0925882196675 -0.156757493019 -0.0926261432862 -0.165832707397 -0.0926640157322 -0.174911312263 -0.0925791915423 -0.184164531586 -0.0925004129478 -0.193403752543 -0.0925503529797 -0.202458704639 -0.0926002963861 -0.211518970489 -0.092650243628 -0.22058412784 -0.092547514989 -0.22973241045 -0.0924506765735 -0.238863936581 -0.0925124326817 -0.247901414743 -0.0925742523447 -0.256945714984 -0.0926361432899 -0.265996458547 -0.0925157491421 -0.275022537825 -0.0924010525133 -0.284029155575 -0.0924744452754 -0.29304840787 -0.0925479817193 -0.302076088723 -0.0926216592094 -0.311111837185 -0.0924838952309 -0.32000042577 -0.0923516105586 -0.328866891038 -0.0924364308875 -0.337867500016 -0.0925214855042 -0.346878247463 -0.0926067758041 -0.355898801859 -0.0924520380861 -0.364636962394 -0.0923025238947 -0.373350384764 -0.0923985445397 -0.382332332636 -0.0924949021761 -0.391326199114 -0.0925915939695 -0.400331690901 -0.0924201889105 -0.408908734125 -0.0922537343406 -0.417458490499 -0.101740268009 --0.417075024135 -0.101878848481 --0.40852974668 -0.102021515647 --0.399957183718 -0.101941382425 --0.390961010158 -0.101861523164 --0.381976429451 -0.101781943502 --0.373003731274 -0.101906412091 --0.364295613117 -0.102035197213 --0.355562756113 -0.101964488118 --0.346551428763 -0.101893977724 --0.33754989285 -0.101823659292 --0.328558462833 -0.10193383571 --0.319698053951 -0.102048551503 --0.31081551924 -0.101987466715 --0.301788934149 -0.101926498104 --0.292770404466 -0.101865646554 --0.28376029 -0.101961167607 --0.274760428032 -0.102061418492 --0.265741102446 -0.102010119565 --0.256699488419 -0.101958873434 --0.24766429203 -0.101907675643 --0.238635913778 -0.101988318244 --0.229511771275 -0.102073858792 --0.220370859758 -0.102032479475 --0.211314793669 -0.101991103365 --0.202263612654 -0.101949729949 --0.193217731339 -0.102015290236 --0.183986420294 -0.102085880732 --0.174741109331 -0.1020545479 --0.165671580743 -0.102023168528 --0.156605441374 -0.101991742782 --0.147543127287 -0.10204200199 --0.138224021463 -0.10209740021 --0.128893749833 -0.102076196545 --0.119812010379 -0.102054918687 --0.110732248155 -0.102033569895 --0.101654910329 -0.102068458358 --0.0922687017979 -0.102108568505 --0.0828742195417 -0.102097577341 --0.0737818407737 -0.102086488746 --0.0646900595381 -0.102075305023 --0.0555993343987 -0.102075305023 -0.0555993343987 -0.102086488746 -0.0646900595381 -0.102097577341 -0.0737818407737 -0.102108568505 -0.0828742195417 -0.102068458358 -0.0922687017979 -0.102033569895 -0.101654910329 -0.102054918687 -0.110732248155 -0.102076196545 -0.119812010379 -0.10209740021 -0.128893749833 -0.10204200199 -0.138224021463 -0.101991742782 -0.147543127287 -0.102023168528 -0.156605441374 -0.1020545479 -0.165671580743 -0.102085880732 -0.174741109331 -0.102015290236 -0.183986420294 -0.101949729949 -0.193217731339 -0.101991103365 -0.202263612654 -0.102032479475 -0.211314793669 -0.102073858792 -0.220370859758 -0.101988318244 -0.229511771275 -0.101907675643 -0.238635913778 -0.101958873434 -0.24766429203 -0.102010119565 -0.256699488419 -0.102061418492 -0.265741102446 -0.101961167607 -0.274760428032 -0.101865646554 -0.28376029 -0.101926498104 -0.292770404466 -0.101987466715 -0.301788934149 -0.102048551503 -0.31081551924 -0.10193383571 -0.319698053951 -0.101823659292 -0.328558462833 -0.101893977724 -0.33754989285 -0.101964488118 -0.346551428763 -0.102035197213 -0.355562756113 -0.101906412091 -0.364295613117 -0.101781943502 -0.373003731274 -0.101861523164 -0.381976429451 -0.101941382425 -0.390961010158 -0.102021515647 -0.399957183718 -0.101878848481 -0.40852974668 -0.101740268009 -0.417075024135 -0.110751742117 --0.417315274808 -0.110925346472 --0.408766473353 -0.111104129904 --0.400190379352 -0.111003249053 --0.391188812813 -0.110902717626 --0.38219883531 -0.110802533973 --0.373220741868 -0.110958378702 --0.364508730072 -0.111119688201 --0.355771971531 -0.111030727986 --0.346755219899 -0.11094201474 --0.337748253919 -0.11085354599 --0.328751378553 -0.110991427167 --0.319886760459 -0.111135027779 --0.310999991612 -0.111058196668 --0.301967909787 -0.110981519736 --0.29294390528 -0.110904994658 --0.283928312964 -0.111024504259 --0.27492392456 -0.111149966571 --0.265900050138 -0.111085459482 --0.256852903861 -0.111021020619 --0.247812176647 -0.110956647439 --0.238778270164 -0.111057536223 --0.229649334423 -0.111164577364 --0.220503609295 -0.111112538766 --0.211441981182 -0.111060506347 --0.202385238698 -0.111008478192 --0.193333776206 -0.111090514781 --0.184097418811 -0.111178864744 --0.174847055736 -0.111139435575 --0.165771919152 -0.11109995065 --0.156700173227 -0.111060410628 --0.147632250175 -0.111123348847 --0.138307904754 -0.111192734136 --0.128972385464 -0.11116601402 --0.119885011115 -0.111139200726 --0.110799609235 -0.111112295065 --0.10171662909 -0.111156048584 --0.0923250296629 -0.111206345944 --0.0829251490813 -0.111192418614 --0.073827107581 -0.111178370131 --0.0647296568895 -0.111164200718 --0.0556332629377 -0.111188569053 --0.0461962057708 -0.111219538784 --0.0367537926475 -0.111218452367 --0.0276468463017 -0.111217242109 --0.0185391506386 -0.111215902743 --0.0094311772543 -0.111215199413 --2.16840434497e-19 -0.111215902743 -0.0094311772543 -0.111217242109 -0.0185391506386 -0.111218452367 -0.0276468463017 -0.111219538784 -0.0367537926475 -0.111188569053 -0.0461962057708 -0.111164200718 -0.0556332629377 -0.111178370131 -0.0647296568895 -0.111192418614 -0.073827107581 -0.111206345944 -0.0829251490813 -0.111156048584 -0.0923250296629 -0.111112295065 -0.10171662909 -0.111139200726 -0.110799609235 -0.11116601402 -0.119885011115 -0.111192734136 -0.128972385464 -0.111123348847 -0.138307904754 -0.111060410628 -0.147632250175 -0.11109995065 -0.156700173227 -0.111139435575 -0.165771919152 -0.111178864744 -0.174847055736 -0.111090514781 -0.184097418811 -0.111008478192 -0.193333776206 -0.111060506347 -0.202385238698 -0.111112538766 -0.211441981182 -0.111164577364 -0.220503609295 -0.111057536223 -0.229649334423 -0.110956647439 -0.238778270164 -0.111021020619 -0.247812176647 -0.111085459482 -0.256852903861 -0.111149966571 -0.265900050138 -0.111024504259 -0.27492392456 -0.110904994658 -0.283928312964 -0.110981519736 -0.29294390528 -0.111058196668 -0.301967909787 -0.111135027779 -0.310999991612 -0.110991427167 -0.319886760459 -0.11085354599 -0.328751378553 -0.11094201474 -0.337748253919 -0.111030727986 -0.346755219899 -0.111119688201 -0.355771971531 -0.110958378702 -0.364508730072 -0.110802533973 -0.373220741868 -0.110902717626 -0.38219883531 -0.111003249053 -0.391188812813 -0.111104129904 -0.400190379352 -0.110925346472 -0.408766473353 -0.110751742117 -0.417315274808 -0.119766262407 --0.417555499135 -0.119974885274 --0.409003148501 -0.120189781202 --0.400423487838 -0.120068151997 --0.391416533986 -0.11994694742 --0.382421190785 -0.119826154123 --0.373437718621 -0.120013366477 --0.364721791389 -0.120207192594 --0.355981107083 -0.120099980048 --0.346958939993 -0.119993062919 --0.337946555365 -0.119886440228 --0.328944258994 -0.120052018349 --0.320075402375 -0.120224501981 --0.311184382842 -0.120131933109 --0.302146841114 -0.120039547321 --0.293117366971 -0.119947341396 --0.284096307594 -0.120090831902 --0.275087363604 -0.120241501656 --0.266058917218 -0.120163787217 --0.257006267279 -0.120086155975 --0.247960037592 -0.120008605437 --0.238920613875 -0.120129733187 --0.229786845378 -0.120258268358 --0.220636283847 -0.120195574268 --0.211569110069 -0.120132885097 --0.202506817159 -0.120070198996 --0.193449793239 -0.120168713121 --0.184208369208 -0.120274816413 --0.174952929749 -0.12022728667 --0.165872202036 -0.120179697443 --0.156794867476 -0.120132040599 --0.147721345948 -0.120207656592 --0.138391734483 -0.120291023043 --0.129050944463 -0.120258779905 --0.119957955015 -0.12022643518 --0.110866933694 -0.120193977907 --0.101778324247 -0.120246595312 --0.0923813106566 -0.120307076178 --0.0829760084906 -0.120290210515 --0.0738723200174 -0.120273204204 --0.0647692185448 -0.120256054547 --0.0556671727486 -0.12028545944 --0.0462246045372 -0.120322798552 --0.0367766736493 -0.12032136235 --0.0276640601106 -0.120319778041 --0.0185506950764 -0.120318051361 --0.00943705050459 -0.120317149359 -2.16840434497e-19 -0.120318051361 -0.00943705050459 -0.120319778041 -0.0185506950764 -0.12032136235 -0.0276640601106 -0.120322798552 -0.0367766736493 -0.12028545944 -0.0462246045372 -0.120256054547 -0.0556671727486 -0.120273204204 -0.0647692185448 -0.120290210515 -0.0738723200174 -0.120307076178 -0.0829760084906 -0.120246595312 -0.0923813106566 -0.120193977907 -0.101778324247 -0.12022643518 -0.110866933694 -0.120258779905 -0.119957955015 -0.120291023043 -0.129050944463 -0.120207656592 -0.138391734483 -0.120132040599 -0.147721345948 -0.120179697443 -0.156794867476 -0.12022728667 -0.165872202036 -0.120274816413 -0.174952929749 -0.120168713121 -0.184208369208 -0.120070198996 -0.193449793239 -0.120132885097 -0.202506817159 -0.120195574268 -0.211569110069 -0.120258268358 -0.220636283847 -0.120129733187 -0.229786845378 -0.120008605437 -0.238920613875 -0.120086155975 -0.247960037592 -0.120163787217 -0.257006267279 -0.120241501656 -0.266058917218 -0.120090831902 -0.275087363604 -0.119947341396 -0.284096307594 -0.120039547321 -0.293117366971 -0.120131933109 -0.302146841114 -0.120224501981 -0.311184382842 -0.120052018349 -0.320075402375 -0.119886440228 -0.328944258994 -0.119993062919 -0.337946555365 -0.120099980048 -0.346958939993 -0.120207192594 -0.355981107083 -0.120013366477 -0.364721791389 -0.119826154123 -0.373437718621 -0.11994694742 -0.382421190785 -0.120068151997 -0.391416533986 -0.120189781202 -0.400423487838 -0.119974885274 -0.409003148501 -0.119766262407 -0.417555499135 -0.128783405269 --0.417795715428 -0.129027031361 --0.409239779378 -0.129278027418 --0.400656523148 -0.129135647531 --0.391644213004 -0.128993768039 --0.38264350287 -0.128852371657 --0.37365466268 -0.129070949202 --0.364934820232 -0.129297281399 --0.356190193664 -0.129171808691 --0.347162611324 -0.129046688231 --0.338144818663 -0.128921909598 --0.329137117903 -0.129115172345 --0.320263998444 -0.129316529452 --0.311368700284 -0.129208220247 --0.302325708416 -0.129100129106 --0.293290781227 -0.128992243709 --0.284264266087 -0.129159706902 --0.275250749426 -0.129335575453 --0.26621771439 -0.129244654182 --0.257159577389 -0.129153831491 --0.248107856452 -0.12906310132 --0.239062937798 -0.129204463545 --0.229924319466 -0.129354488673 --0.220768887501 -0.129281140154 --0.211696184089 -0.129207795486 --0.202628351886 -0.129134448653 --0.193565791762 -0.129249428209 --0.184319277849 -0.129373282422 --0.175058732587 -0.129317655145 --0.165972436547 -0.129261956192 --0.156889523297 -0.129206186175 --0.147810426522 -0.129294484369 --0.138475528451 -0.129391830871 --0.129129437914 -0.129354062313 --0.120030847319 -0.129316178051 --0.110934217972 -0.129278163593 --0.101839997578 -0.129339644298 --0.0924375477471 -0.129410311394 --0.0830268006765 -0.129390504826 --0.0739174798733 -0.129370537898 --0.0648087441234 -0.1293504141 --0.0557010635273 -0.129384853798 --0.0462529579613 -0.129428554744 --0.0367994862255 -0.129426771942 --0.0276812233729 -0.129424816111 --0.0185622051166 -0.129422693648 --0.00944290602232 -0.129421587797 -0 -0.129422693648 -0.00944290602232 -0.129424816111 -0.0185622051166 -0.129426771942 -0.0276812233729 -0.129428554744 -0.0367994862255 -0.129384853798 -0.0462529579613 -0.1293504141 -0.0557010635273 -0.129370537898 -0.0648087441234 -0.129390504826 -0.0739174798733 -0.129410311394 -0.0830268006765 -0.129339644298 -0.0924375477471 -0.129278163593 -0.101839997578 -0.129316178051 -0.110934217972 -0.129354062313 -0.120030847319 -0.129391830871 -0.129129437914 -0.129294484369 -0.138475528451 -0.129206186175 -0.147810426522 -0.129261956192 -0.156889523297 -0.129317655145 -0.165972436547 -0.129373282422 -0.175058732587 -0.129249428209 -0.184319277849 -0.129134448653 -0.193565791762 -0.129207795486 -0.202628351886 -0.129281140154 -0.211696184089 -0.129354488673 -0.220768887501 -0.129204463545 -0.229924319466 -0.12906310132 -0.239062937798 -0.129153831491 -0.248107856452 -0.129244654182 -0.257159577389 -0.129335575453 -0.26621771439 -0.129159706902 -0.275250749426 -0.128992243709 -0.284264266087 -0.129100129106 -0.293290781227 -0.129208220247 -0.302325708416 -0.129316529452 -0.311368700284 -0.129115172345 -0.320263998444 -0.128921909598 -0.329137117903 -0.129046688231 -0.338144818663 -0.129171808691 -0.347162611324 -0.129297281399 -0.356190193664 -0.129070949202 -0.364934820232 -0.128852371657 -0.37365466268 -0.128993768039 -0.38264350287 -0.129135647531 -0.391644213004 -0.129278027418 -0.400656523148 -0.129027031361 -0.409239779378 -0.128783405269 -0.417795715428 -0.138655752718 --0.400057603499 -0.13853018942 --0.391060148805 -0.138405063077 --0.382074236836 -0.138280368022 --0.373100153449 -0.138473557614 --0.364388681188 -0.138673583427 --0.355652433186 -0.138562920197 --0.34663957184 -0.138452563237 --0.337636461064 -0.138342510224 --0.328643408719 -0.138513313019 --0.31977994704 -0.138691256863 --0.310894308549 -0.138595733437 --0.30186593878 -0.13850040628 --0.292845611136 -0.138405258435 --0.283833656867 -0.138553251839 --0.274830965635 -0.138708670846 --0.265808766229 -0.138628498471 --0.256765174971 -0.1385484118 --0.247727982916 -0.138468407261 --0.238697573195 -0.138593296902 --0.229570807397 -0.138725847247 --0.220427244751 -0.138661199865 --0.211369046182 -0.138596551001 --0.202315699689 -0.13853190047 --0.193267616849 -0.138633440187 --0.184033852045 -0.138742828483 --0.174786067454 -0.138693844253 --0.165714250407 -0.138644794154 --0.156645806264 -0.138595681254 --0.147581172463 -0.138673595607 --0.138259757174 -0.138759508247 --0.128927158157 -0.138726308609 --0.119843036563 -0.13869300197 --0.110760872583 -0.138659579287 --0.101681113329 -0.138713734231 --0.0922926921845 -0.138776012537 --0.0828959864539 -0.13875869377 --0.0738011462425 -0.138741229841 --0.0647068930894 -0.138723627146 --0.0556136938764 -0.138753863098 --0.0461799762757 -0.138792288988 --0.0367409053761 -0.138790909047 --0.0276371515107 -0.138789369423 --0.0185326486928 -0.138787686229 --0.00942786953707 -0.13878681032 -0 -0.138787686229 -0.00942786953707 -0.138789369423 -0.0185326486928 -0.138790909047 -0.0276371515107 -0.138792288988 -0.0367409053761 -0.138753863098 -0.0461799762757 -0.138723627146 -0.0556136938764 -0.138741229841 -0.0647068930894 -0.13875869377 -0.0738011462425 -0.138776012537 -0.0828959864539 -0.138713734231 -0.0922926921845 -0.138659579287 -0.101681113329 -0.13869300197 -0.110760872583 -0.138726308609 -0.119843036563 -0.138759508247 -0.128927158157 -0.138673595607 -0.138259757174 -0.138595681254 -0.147581172463 -0.138644794154 -0.156645806264 -0.138693844253 -0.165714250407 -0.138742828483 -0.174786067454 -0.138633440187 -0.184033852045 -0.13853190047 -0.193267616849 -0.138596551001 -0.202315699689 -0.138661199865 -0.211369046182 -0.138725847247 -0.220427244751 -0.138593296902 -0.229570807397 -0.138468407261 -0.238697573195 -0.1385484118 -0.247727982916 -0.138628498471 -0.256765174971 -0.138708670846 -0.265808766229 -0.138553251839 -0.274830965635 -0.138405258435 -0.283833656867 -0.13850040628 -0.292845611136 -0.138595733437 -0.30186593878 -0.138691256863 -0.310894308549 -0.138513313019 -0.31977994704 -0.138342510224 -0.328643408719 -0.138452563237 -0.337636461064 -0.138562920197 -0.34663957184 -0.138673583427 -0.355652433186 -0.138473557614 -0.364388681188 -0.138280368022 -0.373100153449 -0.138405063077 -0.382074236836 -0.13853018942 -0.391060148805 -0.138655752718 -0.400057603499 -0.148021741802 --0.399515178262 -0.147913067952 --0.390531278698 -0.147804767163 --0.381558884054 -0.147696839525 --0.372598256307 -0.147864541885 --0.363894230132 -0.148038160684 --0.355165428496 -0.14794237423 --0.346165994135 -0.147846844812 --0.33717627066 -0.147751577519 --0.328196544473 -0.147899836163 --0.319341724329 -0.148054282151 --0.31046474239 -0.147971606895 --0.301449689558 -0.147889092998 --0.292442640016 -0.147806728367 --0.283443922006 -0.147935180191 --0.274450954981 -0.148070074138 --0.265438485553 -0.148000700696 --0.25640811315 -0.14793139339 --0.247384115789 -0.147862158522 --0.238366874082 -0.147970522318 --0.229250800434 -0.148085528135 --0.220117930726 -0.148029614316 --0.211072886989 -0.147973695899 --0.202032676437 -0.14791777984 --0.19299771542 -0.148005838696 --0.183775469424 -0.148100703632 --0.174539205519 -0.148058386117 --0.165480514854 -0.14801601442 --0.156425183573 -0.147973579744 --0.147373648878 -0.148041069652 --0.138064427349 -0.148115506282 --0.128744024631 -0.148086890461 --0.119673007722 -0.148058182281 --0.110603946926 -0.148029375804 --0.101537284382 -0.148076179606 --0.0921615627694 -0.148130036271 --0.0827775639457 -0.148115215237 --0.073695833127 -0.148100264278 --0.0646146917318 -0.148085192456 --0.0555346020663 -0.148111211592 --0.0461139163221 -0.148144341182 --0.0366878853622 -0.148143364993 --0.0275972623986 -0.148142249303 --0.0185058982738 -0.148141003202 --0.00941426067545 -0.148140351512 -0 -0.148141003202 -0.00941426067545 -0.148142249303 -0.0185058982738 -0.148143364993 -0.0275972623986 -0.148144341182 -0.0366878853622 -0.148111211592 -0.0461139163221 -0.148085192456 -0.0555346020663 -0.148100264278 -0.0646146917318 -0.148115215237 -0.073695833127 -0.148130036271 -0.0827775639457 -0.148076179606 -0.0921615627694 -0.148029375804 -0.101537284382 -0.148058182281 -0.110603946926 -0.148086890461 -0.119673007722 -0.148115506282 -0.128744024631 -0.148041069652 -0.138064427349 -0.147973579744 -0.147373648878 -0.14801601442 -0.156425183573 -0.148058386117 -0.165480514854 -0.148100703632 -0.174539205519 -0.148005838696 -0.183775469424 -0.14791777984 -0.19299771542 -0.147973695899 -0.202032676437 -0.148029614316 -0.211072886989 -0.148085528135 -0.220117930726 -0.147970522318 -0.229250800434 -0.147862158522 -0.238366874082 -0.14793139339 -0.247384115789 -0.148000700696 -0.25640811315 -0.148070074138 -0.265438485553 -0.147935180191 -0.274450954981 -0.147806728367 -0.283443922006 -0.147889092998 -0.292442640016 -0.147971606895 -0.301449689558 -0.148054282151 -0.31046474239 -0.147899836163 -0.319341724329 -0.147751577519 -0.328196544473 -0.147846844812 -0.33717627066 -0.14794237423 -0.346165994135 -0.148038160684 -0.355165428496 -0.147864541885 -0.363894230132 -0.147696839525 -0.372598256307 -0.147804767163 -0.381558884054 -0.147913067952 -0.390531278698 -0.148021741802 -0.399515178262 -0.157090171366 --0.399861310595 -0.156960884852 --0.390869480144 -0.156832040161 --0.381889140602 -0.156703643338 --0.372920563836 -0.156902517256 --0.364210753244 -0.157108441436 --0.355476137205 -0.156994519837 --0.346468695762 -0.156880905075 --0.3374709583 -0.156767599154 --0.328483220299 -0.156943377587 --0.319622094795 -0.157126528546 --0.31073878611 -0.157028212865 --0.301715656173 -0.156930086049 --0.292700515383 -0.156832149477 --0.28369372078 -0.156984433759 --0.274693966045 -0.157144372391 --0.265674676156 -0.157061875285 --0.25663616342 -0.156979458517 --0.247604007428 -0.156897131791 --0.238578601948 -0.157025611146 --0.229455309213 -0.157161977225 --0.220315196853 -0.157095472409 --0.211261953364 -0.157028963629 --0.202213525456 -0.156962457917 --0.193170331557 -0.157066886004 --0.183940497773 -0.157179397575 --0.174696626946 -0.157129031873 --0.165629664247 -0.157078602696 --0.156566060031 -0.157028106787 --0.147506244839 -0.157108196639 --0.138189127797 -0.157196528282 --0.128860815682 -0.157162428353 --0.119781478555 -0.157128215856 --0.110704088766 -0.157093887435 --0.101629095732 -0.157149503182 --0.0922452484018 -0.157213479993 --0.0828531090943 -0.157195739292 --0.0737630186006 -0.157177849225 --0.0646735106128 -0.157159816834 --0.0555850524271 -0.157190838138 --0.0461560870593 -0.157230294115 --0.0367217674091 -0.157228976235 --0.027622753572 -0.157227494253 --0.018522993938 -0.157225850468 --0.00942295775856 -0.157224988809 -0 -0.157225850468 -0.00942295775856 -0.157227494253 -0.018522993938 -0.157228976235 -0.027622753572 -0.157230294115 -0.0367217674091 -0.157190838138 -0.0461560870593 -0.157159816834 -0.0555850524271 -0.157177849225 -0.0646735106128 -0.157195739292 -0.0737630186006 -0.157213479993 -0.0828531090943 -0.157149503182 -0.0922452484018 -0.157093887435 -0.101629095732 -0.157128215856 -0.110704088766 -0.157162428353 -0.119781478555 -0.157196528282 -0.128860815682 -0.157108196639 -0.138189127797 -0.157028106787 -0.147506244839 -0.157078602696 -0.156566060031 -0.157129031873 -0.165629664247 -0.157179397575 -0.174696626946 -0.157066886004 -0.183940497773 -0.156962457917 -0.193170331557 -0.157028963629 -0.202213525456 -0.157095472409 -0.211261953364 -0.157161977225 -0.220315196853 -0.157025611146 -0.229455309213 -0.156897131791 -0.238578601948 -0.156979458517 -0.247604007428 -0.157061875285 -0.25663616342 -0.157144372391 -0.265674676156 -0.156984433759 -0.274693966045 -0.156832149477 -0.28369372078 -0.156930086049 -0.292700515383 -0.157028212865 -0.301715656173 -0.157126528546 -0.31073878611 -0.156943377587 -0.319622094795 -0.156767599154 -0.328483220299 -0.156880905075 -0.3374709583 -0.156994519837 -0.346468695762 -0.157108441436 -0.355476137205 -0.156902517256 -0.364210753244 -0.156703643338 -0.372920563836 -0.156832040161 -0.381889140602 -0.156960884852 -0.390869480144 -0.157090171366 -0.399861310595 -0.166163309336 --0.40020770746 -0.166013401131 --0.391207949743 -0.165864003486 --0.382219674363 -0.165715128616 --0.37324317409 -0.165945181307 --0.364527542217 -0.166183419369 --0.355787082926 -0.166051350978 --0.346771641064 -0.165919641918 --0.337765890371 -0.165788293073 --0.328770151464 -0.16599159513 --0.319902693298 -0.166203449188 --0.311013023521 -0.166089483029 --0.301981823942 -0.165975738911 --0.292958600829 -0.16586222241 --0.283943726364 -0.166038345709 --0.2749371556 -0.16622333301 --0.265911023028 -0.1661277029 --0.256864372876 -0.166032171795 --0.247824078816 -0.165936744737 --0.238790524387 -0.166085342904 --0.229659977294 -0.166243072633 --0.220512593128 -0.166165968602 --0.211451147776 -0.166088868634 --0.20239451607 -0.166011773299 --0.193343112805 -0.16613256929 --0.184105653442 -0.166262725869 --0.17485413661 -0.166204315216 --0.165778914449 -0.166145824814 --0.156707043069 -0.166087264332 --0.147638952681 -0.16617995925 --0.138313906048 -0.16628218463 --0.12897765 -0.16624260197 --0.119890003977 -0.16620288652 --0.110804299226 -0.166163030963 --0.10172098528 -0.166227453157 --0.0923289779151 -0.166301551047 --0.082928662512 -0.166280896504 --0.073830219489 -0.166260066163 --0.064732353353 -0.16623906417 --0.0556355322075 -0.166275091359 --0.0461982549913 -0.166320882689 --0.0367556163956 -0.166319216259 --0.0276482195234 -0.166317364487 --0.0185400719976 -0.166315333287 --0.0094316463763 -0.166314267836 -0 -0.166315333287 -0.0094316463763 -0.166317364487 -0.0185400719976 -0.166319216259 -0.0276482195234 -0.166320882689 -0.0367556163956 -0.166275091359 -0.0461982549913 -0.16623906417 -0.0556355322075 -0.166260066163 -0.064732353353 -0.166280896504 -0.073830219489 -0.166301551047 -0.082928662512 -0.166227453157 -0.0923289779151 -0.166163030963 -0.10172098528 -0.16620288652 -0.110804299226 -0.16624260197 -0.119890003977 -0.16628218463 -0.12897765 -0.16617995925 -0.138313906048 -0.166087264332 -0.147638952681 -0.166145824814 -0.156707043069 -0.166204315216 -0.165778914449 -0.166262725869 -0.17485413661 -0.16613256929 -0.184105653442 -0.166011773299 -0.193343112805 -0.166088868634 -0.20239451607 -0.166165968602 -0.211451147776 -0.166243072633 -0.220512593128 -0.166085342904 -0.229659977294 -0.165936744737 -0.238790524387 -0.166032171795 -0.247824078816 -0.1661277029 -0.256864372876 -0.16622333301 -0.265911023028 -0.166038345709 -0.2749371556 -0.16586222241 -0.283943726364 -0.165975738911 -0.292958600829 -0.166089483029 -0.301981823942 -0.166203449188 -0.311013023521 -0.16599159513 -0.319902693298 -0.165788293073 -0.328770151464 -0.165919641918 -0.337765890371 -0.166051350978 -0.346771641064 -0.166183419369 -0.355787082926 -0.165945181307 -0.364527542217 -0.165715128616 -0.37324317409 -0.165864003486 -0.382219674363 -0.166013401131 -0.391207949743 -0.166163309336 -0.40020770746 -0.175240732684 --0.40055438716 -0.17507019179 --0.391546694451 -0.174900243171 --0.382550500892 -0.174730881469 --0.373566071868 -0.174992110234 --0.364844592519 -0.175262662119 --0.356098261693 -0.175112442917 --0.347074833573 -0.174962637467 --0.338061088573 -0.174813237595 --0.329057349738 -0.17504406042 --0.320183529647 -0.175284615088 --0.311287458753 -0.175154997597 --0.302248198228 -0.175025637668 --0.293216915158 -0.174896532377 --0.284193963706 -0.17509648187 --0.275180540967 -0.175306519064 --0.266147536976 -0.175197759093 --0.257092758295 -0.175089106865 --0.248044328867 -0.17498058047 --0.239002639679 -0.17514929982 --0.229864819712 -0.175328389176 --0.22071013379 -0.175240682461 --0.211640484108 -0.175152992268 --0.202575656767 -0.175065304896 --0.193516058486 -0.175202463147 --0.184270932352 -0.175350261117 --0.175011735907 -0.175283804127 --0.165928268591 -0.175217256762 --0.15684813549 -0.175150623788 --0.14777178117 -0.175255923292 --0.138438776311 -0.175372052109 --0.129094541814 -0.175326971495 --0.119998589666 -0.175281745053 --0.11090457521 -0.175236372287 --0.101812952527 -0.175309603248 --0.0924127498898 -0.175393821881 --0.0830042261062 -0.175370249807 --0.0738974401623 -0.175346472345 --0.0647912239719 -0.175322502933 --0.0556860479417 -0.175363542903 --0.0462404256762 -0.175415658965 --0.0367894324019 -0.175413646912 --0.0276736601027 -0.175411432099 --0.0185571339248 -0.175409006049 --0.00944032634276 -0.175407737569 --2.16840434497e-19 -0.175409006049 -0.00944032634276 -0.175411432099 -0.0185571339248 -0.175413646912 -0.0276736601027 -0.175415658965 -0.0367894324019 -0.175363542903 -0.0462404256762 -0.175322502933 -0.0556860479417 -0.175346472345 -0.0647912239719 -0.175370249807 -0.0738974401623 -0.175393821881 -0.0830042261062 -0.175309603248 -0.0924127498898 -0.175236372287 -0.101812952527 -0.175281745053 -0.11090457521 -0.175326971495 -0.119998589666 -0.175372052109 -0.129094541814 -0.175255923292 -0.138438776311 -0.175150623788 -0.14777178117 -0.175217256762 -0.15684813549 -0.175283804127 -0.165928268591 -0.175350261117 -0.175011735907 -0.175202463147 -0.184270932352 -0.175065304896 -0.193516058486 -0.175152992268 -0.202575656767 -0.175240682461 -0.211640484108 -0.175328389176 -0.22071013379 -0.17514929982 -0.229864819712 -0.17498058047 -0.239002639679 -0.175089106865 -0.248044328867 -0.175197759093 -0.257092758295 -0.175306519064 -0.266147536976 -0.17509648187 -0.275180540967 -0.174896532377 -0.284193963706 -0.175025637668 -0.293216915158 -0.175154997597 -0.302248198228 -0.175284615088 -0.311287458753 -0.17504406042 -0.320183529647 -0.174813237595 -0.329057349738 -0.174962637467 -0.338061088573 -0.175112442917 -0.347074833573 -0.175262662119 -0.356098261693 -0.174992110234 -0.364844592519 -0.174730881469 -0.373566071868 -0.174900243171 -0.382550500892 -0.17507019179 -0.391546694451 -0.175240732684 -0.40055438716 -0.184536095083 --0.399791760233 -0.18438243249 --0.39080304667 -0.184229301156 --0.381825770986 -0.18407668424 --0.372860167999 -0.184312414879 --0.364149190855 -0.184556555681 --0.355413379335 -0.184421202468 --0.346408754758 -0.184286216235 --0.337413758579 -0.184151593234 --0.328428703154 -0.184359883854 --0.319567068605 -0.184576943899 --0.310683180505 -0.18446016209 --0.301662573015 -0.184343610141 --0.292649912316 -0.184227276272 --0.283645523972 -0.184407704205 --0.2746458293 -0.184597241586 --0.265626570356 -0.184499269809 --0.25659033096 -0.184401389821 --0.24756040742 -0.184303626608 --0.238537199784 -0.184455805558 --0.229414469402 -0.184617350671 --0.220274891097 -0.184538375633 --0.211223706949 -0.184459408813 --0.202177318673 -0.184380448158 --0.19313614139 -0.184504155454 --0.183907292043 -0.184637467527 --0.174664383101 -0.184577667752 --0.165599332999 -0.184517790403 --0.156537606445 -0.184457833221 --0.147479643297 -0.184552712161 --0.138163870005 -0.184657372746 --0.128836875895 -0.184616870586 --0.11975932269 -0.184576234396 --0.110683701134 -0.184535467653 --0.101610461124 -0.184601359408 --0.092228216202 -0.184677168169 --0.0828376658569 -0.184656083289 --0.073749289985 -0.184634819786 --0.064661485892 -0.184613383669 --0.0555747193085 -0.184650171111 --0.0461475222188 -0.1846969619 --0.0367149696546 -0.18469535584 --0.0276176393027 -0.184693559443 --0.0185195645832 -0.184691571597 --0.00942121338044 -0.184690531942 -0 -0.184691571597 -0.00942121338044 -0.184693559443 -0.0185195645832 -0.18469535584 -0.0276176393027 -0.1846969619 -0.0367149696546 -0.184650171111 -0.0461475222188 -0.184613383669 -0.0555747193085 -0.184634819786 -0.064661485892 -0.184656083289 -0.073749289985 -0.184677168169 -0.0828376658569 -0.184601359408 -0.092228216202 -0.184535467653 -0.101610461124 -0.184576234396 -0.110683701134 -0.184616870586 -0.11975932269 -0.184657372746 -0.128836875895 -0.184552712161 -0.138163870005 -0.184457833221 -0.147479643297 -0.184517790403 -0.156537606445 -0.184577667752 -0.165599332999 -0.184637467527 -0.174664383101 -0.184504155454 -0.183907292043 -0.184380448158 -0.19313614139 -0.184459408813 -0.202177318673 -0.184538375633 -0.211223706949 -0.184617350671 -0.220274891097 -0.184455805558 -0.229414469402 -0.184303626608 -0.238537199784 -0.184401389821 -0.24756040742 -0.184499269809 -0.25659033096 -0.184597241586 -0.265626570356 -0.184407704205 -0.2746458293 -0.184227276272 -0.283645523972 -0.184343610141 -0.292649912316 -0.18446016209 -0.301662573015 -0.184576943899 -0.310683180505 -0.184359883854 -0.319567068605 -0.184151593234 -0.328428703154 -0.184286216235 -0.337413758579 -0.184421202468 -0.346408754758 -0.184556555681 -0.355413379335 -0.184312414879 -0.364149190855 -0.18407668424 -0.372860167999 -0.184229301156 -0.381825770986 -0.18438243249 -0.39080304667 -0.184536095083 -0.399791760233 -0.193816669683 --0.399084150057 -0.193679970036 --0.390113163736 -0.193543750859 --0.381153545649 -0.193407984364 --0.372205530615 -0.193618092154 --0.363504165726 -0.19383569087 --0.354777958162 -0.193715277464 --0.345790850687 -0.193595187158 --0.33681332743 -0.193475423828 --0.327845681384 -0.193661067429 --0.31899523736 -0.19385451456 --0.310122550317 -0.193750635067 --0.301119310803 -0.193646955019 --0.29212396702 -0.19354346817 --0.283136860594 -0.193704289638 --0.274149843134 -0.193873220845 --0.265143254504 -0.193786095732 --0.256124256421 -0.193699050538 --0.247111546254 -0.193612101273 --0.238105509093 -0.193747656403 --0.22899673106 -0.193891566952 --0.219871107867 -0.193821370413 --0.210837080052 -0.193751175306 --0.201807822089 -0.193680987977 --0.192783745865 -0.193791181787 --0.183569977782 -0.193909937307 --0.17434215083 -0.193856833418 --0.165294198528 -0.193803654443 --0.156249551513 -0.193750400989 --0.147208651932 -0.193834807372 --0.137908852317 -0.193927945427 --0.128597840687 -0.193892054462 --0.119537364191 -0.193856034114 --0.110478812303 -0.19381989188 --0.10142262301 -0.193878398944 --0.0920570388636 -0.193945758688 --0.0826831656357 -0.193927183781 --0.0736118622871 -0.193908452826 --0.0645411342544 -0.193889561672 --0.0554714407577 -0.193922074895 --0.0460613506434 -0.193963525911 --0.0366459203568 -0.193962319758 --0.0275656911195 -0.193960935561 --0.0184847256548 -0.193959395881 --0.00940349007319 -0.193958586007 -2.16840434497e-19 -0.193959395881 -0.00940349007319 -0.193960935561 -0.0184847256548 -0.193962319758 -0.0275656911195 -0.193963525911 -0.0366459203568 -0.193922074895 -0.0460613506434 -0.193889561672 -0.0554714407577 -0.193908452826 -0.0645411342544 -0.193927183781 -0.0736118622871 -0.193945758688 -0.0826831656357 -0.193878398944 -0.0920570388636 -0.19381989188 -0.10142262301 -0.193856034114 -0.110478812303 -0.193892054462 -0.119537364191 -0.193927945427 -0.128597840687 -0.193834807372 -0.137908852317 -0.193750400989 -0.147208651932 -0.193803654443 -0.156249551513 -0.193856833418 -0.165294198528 -0.193909937307 -0.17434215083 -0.193791181787 -0.183569977782 -0.193680987977 -0.192783745865 -0.193751175306 -0.201807822089 -0.193821370413 -0.210837080052 -0.193891566952 -0.219871107867 -0.193747656403 -0.22899673106 -0.193612101273 -0.238105509093 -0.193699050538 -0.247111546254 -0.193786095732 -0.256124256421 -0.193873220845 -0.265143254504 -0.193704289638 -0.274149843134 -0.19354346817 -0.283136860594 -0.193646955019 -0.29212396702 -0.193750635067 -0.301119310803 -0.19385451456 -0.310122550317 -0.193661067429 -0.31899523736 -0.193475423828 -0.327845681384 -0.193595187158 -0.33681332743 -0.193715277464 -0.345790850687 -0.19383569087 -0.354777958162 -0.193618092154 -0.363504165726 -0.193407984364 -0.372205530615 -0.193543750859 -0.381153545649 -0.193679970036 -0.390113163736 -0.193816669683 -0.399084150057 -0.202869849478 --0.399541376814 -0.202712696236 --0.390559947777 -0.202556090028 --0.381589886262 -0.202400010611 --0.372631439127 -0.202641047395 --0.363922402073 -0.202890702501 --0.355188478546 -0.202752291936 --0.3461908379 -0.202614256673 --0.337202764084 -0.202476594184 --0.328224573762 -0.202689532236 --0.319365760649 -0.202911449756 --0.310484665841 -0.202792054323 --0.301470798791 -0.202672891877 --0.292464819335 -0.202553951438 --0.283467077735 -0.202738412805 --0.274471036891 -0.202932189177 --0.265455388782 -0.202832046461 --0.256425676115 -0.202731996348 --0.247402231082 -0.202632051945 --0.238385446136 -0.202787567151 --0.229267075752 -0.202952668451 --0.220131822758 -0.202871962478 --0.211086992288 -0.202791262101 --0.202046922709 -0.202710563058 --0.193012011593 -0.202836993681 --0.183788138023 -0.202973247156 --0.174550180993 -0.202912160297 --0.165491340874 -0.202850991874 --0.156435800269 -0.202789731884 --0.147383991006 -0.202886638407 --0.138073680215 -0.202993566323 --0.128752143435 -0.202952227409 --0.119680710324 -0.202910744758 --0.110611190482 -0.202869125949 --0.101544030597 -0.202936374374 --0.0921676246675 -0.203013782019 --0.0827829122403 -0.202992306606 --0.073700596384 -0.202970653262 --0.0646188490147 -0.202948824242 --0.055538130142 -0.202986309406 --0.0461170163846 -0.203034043512 --0.0366905511087 -0.203032493904 --0.027599268893 -0.203030743714 --0.0185072445957 -0.203028809091 --0.00941494645388 -0.203027790372 -0 -0.203028809091 -0.00941494645388 -0.203030743714 -0.0185072445957 -0.203032493904 -0.027599268893 -0.203034043512 -0.0366905511087 -0.202986309406 -0.0461170163846 -0.202948824242 -0.055538130142 -0.202970653262 -0.0646188490147 -0.202992306606 -0.073700596384 -0.203013782019 -0.0827829122403 -0.202936374374 -0.0921676246675 -0.202869125949 -0.101544030597 -0.202910744758 -0.110611190482 -0.202952227409 -0.119680710324 -0.202993566323 -0.128752143435 -0.202886638407 -0.138073680215 -0.202789731884 -0.147383991006 -0.202850991874 -0.156435800269 -0.202912160297 -0.165491340874 -0.202973247156 -0.174550180993 -0.202836993681 -0.183788138023 -0.202710563058 -0.193012011593 -0.202791262101 -0.202046922709 -0.202871962478 -0.211086992288 -0.202952668451 -0.220131822758 -0.202787567151 -0.229267075752 -0.202632051945 -0.238385446136 -0.202731996348 -0.247402231082 -0.202832046461 -0.256425676115 -0.202932189177 -0.265455388782 -0.202738412805 -0.274471036891 -0.202553951438 -0.283467077735 -0.202672891877 -0.292464819335 -0.202792054323 -0.301470798791 -0.202911449756 -0.310484665841 -0.202689532236 -0.319365760649 -0.202476594184 -0.328224573762 -0.202614256673 -0.337202764084 -0.202752291936 -0.3461908379 -0.202890702501 -0.355188478546 -0.202641047395 -0.363922402073 -0.202400010611 -0.372631439127 -0.202556090028 -0.381589886262 -0.202712696236 -0.390559947777 -0.202869849478 -0.399541376814 -0.211929408244 --0.399999319146 -0.211751793079 --0.39100744775 -0.211574780327 --0.382026933176 -0.21139836404 --0.373058041213 -0.21167034609 --0.364341306795 -0.211952070531 --0.355599650025 -0.211795652689 --0.346591475106 -0.211639660596 --0.337592847107 -0.211484083012 --0.32860411117 -0.211724326634 --0.319736889812 -0.211974732804 --0.310847347977 -0.21183981023 --0.301822857459 -0.211705145467 --0.292806240557 -0.211570739127 --0.28379784984 -0.211778851458 --0.274792743143 -0.211997480275 --0.265767993907 -0.211884303243 --0.256727559079 -0.211771239254 --0.247693388863 -0.211658295184 --0.238665871547 -0.211833774344 --0.229537859639 -0.21202007853 --0.22039293282 -0.211928863532 --0.211337296931 -0.211837644478 --0.202286407591 -0.211746422996 --0.193240662038 -0.21188910613 --0.184006642681 -0.212042871266 --0.174758515221 -0.211973788066 --0.165688783762 -0.211904618555 --0.156622346806 -0.21183536442 --0.147559632178 -0.211944782363 --0.138238765243 -0.212065490439 --0.128906651972 -0.212018699959 --0.119824259214 -0.211971749216 --0.110743768751 -0.211924654823 --0.10166564037 -0.212000658816 --0.0922783718241 -0.212088108523 --0.0828827715483 -0.212063735827 --0.073789441513 -0.212039157795 --0.0646966714358 -0.21201437672 --0.055604924832 -0.212056834501 --0.0461727422766 -0.212110842781 --0.0367351943393 -0.212108951366 --0.0276328569974 -0.212106845778 --0.0185297711111 -0.21210451682 --0.00942640638465 -0.212103292735 -0 -0.21210451682 -0.00942640638465 -0.212106845778 -0.0185297711111 -0.212108951366 -0.0276328569974 -0.212110842781 -0.0367351943393 -0.212056834501 -0.0461727422766 -0.21201437672 -0.055604924832 -0.212039157795 -0.0646966714358 -0.212063735827 -0.073789441513 -0.212088108523 -0.0828827715483 -0.212000658816 -0.0922783718241 -0.211924654823 -0.10166564037 -0.211971749216 -0.110743768751 -0.212018699959 -0.119824259214 -0.212065490439 -0.128906651972 -0.211944782363 -0.138238765243 -0.21183536442 -0.147559632178 -0.211904618555 -0.156622346806 -0.211973788066 -0.165688783762 -0.212042871266 -0.174758515221 -0.21188910613 -0.184006642681 -0.211746422996 -0.193240662038 -0.211837644478 -0.202286407591 -0.211928863532 -0.211337296931 -0.21202007853 -0.22039293282 -0.211833774344 -0.229537859639 -0.211658295184 -0.238665871547 -0.211771239254 -0.247693388863 -0.211884303243 -0.256727559079 -0.211997480275 -0.265767993907 -0.211778851458 -0.274792743143 -0.211570739127 -0.28379784984 -0.211705145467 -0.292806240557 -0.21183981023 -0.301822857459 -0.211974732804 -0.310847347977 -0.211724326634 -0.319736889812 -0.211484083012 -0.32860411117 -0.211639660596 -0.337592847107 -0.211795652689 -0.346591475106 -0.211952070531 -0.355599650025 -0.21167034609 -0.364341306795 -0.21139836404 -0.373058041213 -0.211574780327 -0.382026933176 -0.211751793079 -0.39100744775 -0.211929408244 -0.399999319146 -0.220994941014 --0.400457983381 -0.220796836909 --0.391455670622 -0.220599417687 --0.382464710489 -0.220402670336 --0.373485369837 -0.220705604405 --0.364760912175 -0.221019400392 --0.356011476985 -0.220844961006 --0.34699275816 -0.220670996657 --0.337983585591 -0.220497494956 --0.32898430237 -0.220765061248 --0.32010864618 -0.221043957073 --0.311210616228 -0.220893494423 --0.302175487323 -0.22074332497 --0.293148232322 -0.220593438842 --0.284129195963 -0.220825206628 --0.275114992477 -0.221068699281 --0.266081105443 -0.220942476341 --0.257029940099 -0.220816391706 --0.247985036323 -0.220690446453 --0.238946784032 -0.220885894279 --0.229809097373 -0.221093401456 --0.220654458361 -0.22099166152 --0.211588003408 -0.220889918757 --0.202526285822 -0.220788180227 --0.193469716226 -0.220947119109 --0.184225513209 -0.221118405658 --0.174967171159 -0.221041332835 --0.165886546205 -0.220964158444 --0.156809203509 -0.220886889677 --0.147735582409 -0.221008816149 --0.13840411933 -0.221143314275 --0.129061381095 -0.221091069823 --0.119968022118 -0.221038658411 --0.110876563039 -0.220986086113 --0.10178745969 -0.221070837132 --0.0923892806869 -0.221168330313 --0.0829827519957 -0.221141064697 --0.0738784041023 -0.221113566533 --0.0647746071628 -0.221085836768 --0.0556718287884 -0.221133262967 --0.0462285315435 -0.221193547048 --0.0367798557533 -0.221191309234 --0.0276664571392 -0.221188838454 --0.0185523046805 -0.221186125082 --0.0094378701392 -0.221184705469 -2.16840434497e-19 -0.221186125082 -0.0094378701392 -0.221188838454 -0.0185523046805 -0.221191309234 -0.0276664571392 -0.221193547048 -0.0367798557533 -0.221133262967 -0.0462285315435 -0.221085836768 -0.0556718287884 -0.221113566533 -0.0647746071628 -0.221141064697 -0.0738784041023 -0.221168330313 -0.0829827519957 -0.221070837132 -0.0923892806869 -0.220986086113 -0.10178745969 -0.221038658411 -0.110876563039 -0.221091069823 -0.119968022118 -0.221143314275 -0.129061381095 -0.221008816149 -0.13840411933 -0.220886889677 -0.147735582409 -0.220964158444 -0.156809203509 -0.221041332835 -0.165886546205 -0.221118405658 -0.174967171159 -0.220947119109 -0.184225513209 -0.220788180227 -0.193469716226 -0.220889918757 -0.202526285822 -0.22099166152 -0.211588003408 -0.221093401456 -0.220654458361 -0.220885894279 -0.229809097373 -0.220690446453 -0.238946784032 -0.220816391706 -0.247985036323 -0.220942476341 -0.257029940099 -0.221068699281 -0.266081105443 -0.220825206628 -0.275114992477 -0.220593438842 -0.284129195963 -0.22074332497 -0.293148232322 -0.220893494423 -0.302175487323 -0.221043957073 -0.311210616228 -0.220765061248 -0.32010864618 -0.220497494956 -0.32898430237 -0.220670996657 -0.337983585591 -0.220844961006 -0.34699275816 -0.221019400392 -0.356011476985 -0.220705604405 -0.364760912175 -0.220402670336 -0.373485369837 -0.220599417687 -0.382464710489 -0.220796836909 -0.391455670622 -0.220994941014 -0.400457983381 -0.229651167689 --0.372628618266 -0.229927860609 --0.363916788693 -0.230214468241 --0.355179988105 -0.230055333409 --0.346184117298 -0.2298966246 --0.337197725325 -0.229738346453 --0.328221156938 -0.229982731598 --0.319360229871 -0.230237451662 --0.310476932009 -0.230100199264 --0.30146445936 -0.22996322397 --0.292459811701 -0.229826493489 --0.283463316686 -0.230038115602 --0.274465747101 -0.23026046152 --0.2654485128 -0.230145343804 --0.256419856395 -0.230030355863 --0.247397424641 -0.229915487123 --0.238381597951 -0.230093957864 --0.229262238546 -0.230283455294 --0.220125947072 -0.230190695811 --0.211081897015 -0.230097941071 --0.202042560598 -0.230005198313 --0.193008350415 -0.230150239999 --0.183783935068 -0.230306567083 --0.174545389225 -0.230236349911 --0.165487105809 -0.230166042246 --0.156432092014 -0.230095645653 --0.147380778756 -0.230206862782 --0.138070291722 -0.230329579231 --0.128748540587 -0.230282053326 --0.119677497547 -0.230234371529 --0.110608351528 -0.230186529656 --0.101541539237 -0.230263735966 --0.0921652269094 -0.230352597881 --0.0827805859827 -0.230327886942 --0.073698558281 -0.23030296403 --0.0646170846254 -0.230277841296 --0.0555366273984 -0.230320897489 --0.046115781938 -0.230375702657 --0.0366895767916 -0.230373864722 --0.027598537392 -0.230371805377 --0.0185067546307 -0.230369547691 --0.00941469741526 -0.230368369429 --2.16840434497e-19 -0.230369547691 -0.00941469741526 -0.230371805377 -0.0185067546307 -0.230373864722 -0.027598537392 -0.230375702657 -0.0366895767916 -0.230320897489 -0.046115781938 -0.230277841296 -0.0555366273984 -0.23030296403 -0.0646170846254 -0.230327886942 -0.073698558281 -0.230352597881 -0.0827805859827 -0.230263735966 -0.0921652269094 -0.230186529656 -0.101541539237 -0.230234371529 -0.110608351528 -0.230282053326 -0.119677497547 -0.230329579231 -0.128748540587 -0.230206862782 -0.138070291722 -0.230095645653 -0.147380778756 -0.230166042246 -0.156432092014 -0.230236349911 -0.165487105809 -0.230306567083 -0.174545389225 -0.230150239999 -0.183783935068 -0.230005198313 -0.193008350415 -0.230097941071 -0.202042560598 -0.230190695811 -0.211081897015 -0.230283455294 -0.220125947072 -0.230093957864 -0.229262238546 -0.229915487123 -0.238381597951 -0.230030355863 -0.247397424641 -0.230145343804 -0.256419856395 -0.23026046152 -0.2654485128 -0.230038115602 -0.274465747101 -0.229826493489 -0.283463316686 -0.22996322397 -0.292459811701 -0.230100199264 -0.30146445936 -0.230237451662 -0.310476932009 -0.229982731598 -0.319360229871 -0.229738346453 -0.328221156938 -0.2298966246 -0.337197725325 -0.230055333409 -0.346184117298 -0.230214468241 -0.355179988105 -0.229927860609 -0.363916788693 -0.229651167689 -0.372628618266 -0.238882287023 --0.371822026727 -0.239132569721 --0.363121940147 -0.23939182484 --0.354396880892 -0.239248099843 --0.345422616533 -0.239104751569 --0.336457773771 -0.238961790726 --0.32750266724 -0.239182858065 --0.318655488508 -0.239413269513 --0.309785951408 -0.239289307422 --0.300794878531 -0.239165589885 --0.291811572629 -0.239042111586 --0.282836367078 -0.239233481465 --0.273854392205 -0.239434545483 --0.264852747826 -0.239330604819 --0.255845331518 -0.239226779567 --0.246844107646 -0.239123059229 --0.237849435776 -0.239284449974 --0.228747282459 -0.239455822079 --0.219628201687 -0.239372118069 --0.210605281392 -0.239288415559 --0.201587050865 -0.239204704207 --0.192573903105 -0.239335771486 --0.183368096643 -0.239477060543 --0.174148168886 -0.23941373178 --0.165110938684 -0.239350318113 --0.156076955185 -0.239286849167 --0.147046658371 -0.239387300514 --0.13775591985 -0.239498154068 --0.128453921435 -0.239455375927 --0.119403898574 -0.239412448761 --0.110355763173 -0.239369373251 --0.101309945732 -0.23943898742 --0.0919542342762 -0.239519163653 --0.0825902078698 -0.239497028518 --0.0735291935104 -0.239474696873 --0.0644687369172 -0.239452191847 --0.0554092970245 -0.239490851569 --0.0460096154687 -0.239540143606 --0.0366045886723 -0.239538712155 --0.0275345987278 -0.239537082624 --0.0184638753228 -0.239535266169 --0.009392883356 -0.239534308316 --2.16840434497e-19 -0.239535266169 -0.009392883356 -0.239537082624 -0.0184638753228 -0.239538712155 -0.0275345987278 -0.239540143606 -0.0366045886723 -0.239490851569 -0.0460096154687 -0.239452191847 -0.0554092970245 -0.239474696873 -0.0644687369172 -0.239497028518 -0.0735291935104 -0.239519163653 -0.0825902078698 -0.23943898742 -0.0919542342762 -0.239369373251 -0.101309945732 -0.239412448761 -0.110355763173 -0.239455375927 -0.119403898574 -0.239498154068 -0.128453921435 -0.239387300514 -0.13775591985 -0.239286849167 -0.147046658371 -0.239350318113 -0.156076955185 -0.23941373178 -0.165110938684 -0.239477060543 -0.174148168886 -0.239335771486 -0.183368096643 -0.239204704207 -0.192573903105 -0.239288415559 -0.201587050865 -0.239372118069 -0.210605281392 -0.239455822079 -0.219628201687 -0.239284449974 -0.228747282459 -0.239123059229 -0.237849435776 -0.239226779567 -0.246844107646 -0.239330604819 -0.255845331518 -0.239434545483 -0.264852747826 -0.239233481465 -0.273854392205 -0.239042111586 -0.282836367078 -0.239165589885 -0.291811572629 -0.239289307422 -0.300794878531 -0.239413269513 -0.309785951408 -0.239182858065 -0.318655488508 -0.238961790726 -0.32750266724 -0.239104751569 -0.336457773771 -0.239248099843 -0.345422616533 -0.23939182484 -0.354396880892 -0.239132569721 -0.363121940147 -0.238882287023 -0.371822026727 -0.247858830684 --0.372350682429 -0.248139748072 --0.36364105674 -0.248430763083 --0.354906400577 -0.248269207727 --0.345919098863 -0.248108077683 --0.336941221707 -0.247947377225 --0.327973061263 -0.248195494053 --0.319115453985 -0.248454115439 --0.310235439298 -0.248314778814 --0.30123120773 -0.248175705427 --0.292234737742 -0.248036906388 --0.283246360049 -0.248251707179 --0.274253144337 -0.248477387284 --0.26524021369 -0.248360551802 --0.256219532139 -0.24824383448 --0.247205014174 -0.248127241492 --0.238197039265 -0.248308409796 --0.229082930015 -0.248500769484 --0.21995184157 -0.248406648761 --0.210915533416 -0.248312530916 --0.201883909558 -0.248218405357 --0.192857355537 -0.248365559114 --0.183638953896 -0.248524193066 --0.174406395508 -0.248452968328 --0.16535568232 -0.248381632033 --0.156308202787 -0.248310225241 --0.147264398477 -0.248423066874 --0.137960555697 -0.248547572599 --0.128645426521 -0.248499390129 --0.119581829515 -0.248451058799 --0.110520106659 -0.248402562051 --0.101460702741 -0.248480838287 --0.092091500013 -0.248570959733 --0.0827139545225 -0.248545949998 --0.0736392980185 -0.248520733324 --0.0645651926218 -0.2484953156 --0.055492096413 -0.248538892737 --0.0460786675632 -0.248594401221 --0.03665987857 -0.248592631649 --0.0275761953393 -0.248590651279 --0.0184917720928 -0.248588437081 --0.0094070755878 -0.248587262899 -0 -0.248588437081 -0.0094070755878 -0.248590651279 -0.0184917720928 -0.248592631649 -0.0275761953393 -0.248594401221 -0.03665987857 -0.248538892737 -0.0460786675632 -0.2484953156 -0.055492096413 -0.248520733324 -0.0645651926218 -0.248545949998 -0.0736392980185 -0.248570959733 -0.0827139545225 -0.248480838287 -0.092091500013 -0.248402562051 -0.101460702741 -0.248451058799 -0.110520106659 -0.248499390129 -0.119581829515 -0.248547572599 -0.128645426521 -0.248423066874 -0.137960555697 -0.248310225241 -0.147264398477 -0.248381632033 -0.156308202787 -0.248452968328 -0.16535568232 -0.248524193066 -0.174406395508 -0.248365559114 -0.183638953896 -0.248218405357 -0.192857355537 -0.248312530916 -0.201883909558 -0.248406648761 -0.210915533416 -0.248500769484 -0.21995184157 -0.248308409796 -0.229082930015 -0.248127241492 -0.238197039265 -0.24824383448 -0.247205014174 -0.248360551802 -0.256219532139 -0.248477387284 -0.26524021369 -0.248251707179 -0.274253144337 -0.248036906388 -0.283246360049 -0.248175705427 -0.292234737742 -0.248314778814 -0.30123120773 -0.248454115439 -0.310235439298 -0.248195494053 -0.319115453985 -0.247947377225 -0.327973061263 -0.248108077683 -0.336941221707 -0.248269207727 -0.345919098863 -0.248430763083 -0.354906400577 -0.248139748072 -0.36364105674 -0.247858830684 -0.372350682429 -0.256843421781 --0.372880595957 -0.257155007289 --0.36416138265 -0.257477805431 --0.355417091688 -0.257298396159 --0.3464167442 -0.257119466541 --0.33742581245 -0.256941014122 --0.328444591038 -0.257216182568 --0.319576498446 -0.257503022997 --0.310685962434 -0.257348301974 --0.301668563295 -0.257193874445 --0.292658909373 -0.257039745308 --0.28365734543 -0.257277976479 --0.274652829833 -0.257528290573 --0.26562856627 -0.257398547393 --0.256594604071 -0.257268924679 --0.247566782164 -0.257139440741 --0.238545505432 -0.25734040131 --0.229419379175 -0.257553781186 --0.220276227174 -0.25744922762 --0.21122651492 -0.25734467829 --0.202181475109 -0.257240133263 --0.193141501148 -0.257403391127 --0.183910453894 -0.257579371662 --0.174665210721 -0.257500231225 --0.165600993337 -0.257420975799 --0.156540005282 -0.257341617204 --0.147482669911 -0.25746685232 --0.138165657456 -0.257605031929 --0.128837342054 -0.257551451243 --0.119760156431 -0.257497704831 --0.1106848343 -0.257443770025 --0.101611825279 -0.25753072048 --0.0922290734265 -0.2576308004 --0.0828379535489 -0.257602913149 --0.0737496354662 -0.257574802903 --0.0646618612348 -0.257546463706 --0.0555750888329 -0.257594968005 --0.0461478534607 -0.257656703538 --0.0367152422213 -0.257654595294 --0.0276178472825 -0.257652246569 --0.0185197058216 -0.257649639957 --0.00942128641518 -0.257648272323 -0 -0.257649639957 -0.00942128641518 -0.257652246569 -0.0185197058216 -0.257654595294 -0.0276178472825 -0.257656703538 -0.0367152422213 -0.257594968005 -0.0461478534607 -0.257546463706 -0.0555750888329 -0.257574802903 -0.0646618612348 -0.257602913149 -0.0737496354662 -0.2576308004 -0.0828379535489 -0.25753072048 -0.0922290734265 -0.257443770025 -0.101611825279 -0.257497704831 -0.1106848343 -0.257551451243 -0.119760156431 -0.257605031929 -0.128837342054 -0.25746685232 -0.138165657456 -0.257341617204 -0.147482669911 -0.257420975799 -0.156540005282 -0.257500231225 -0.165600993337 -0.257579371662 -0.174665210721 -0.257403391127 -0.183910453894 -0.257240133263 -0.193141501148 -0.25734467829 -0.202181475109 -0.25744922762 -0.21122651492 -0.257553781186 -0.220276227174 -0.25734040131 -0.229419379175 -0.257139440741 -0.238545505432 -0.257268924679 -0.247566782164 -0.257398547393 -0.256594604071 -0.257528290573 -0.26562856627 -0.257277976479 -0.274652829833 -0.257039745308 -0.28365734543 -0.257193874445 -0.292658909373 -0.257348301974 -0.301668563295 -0.257503022997 -0.310685962434 -0.257216182568 -0.319576498446 -0.256941014122 -0.328444591038 -0.257119466541 -0.33742581245 -0.257298396159 -0.3464167442 -0.257477805431 -0.355417091688 -0.257155007289 -0.36416138265 -0.256843421781 -0.372880595957 -0.265835698426 --0.373411774802 -0.266177956481 --0.364682933089 -0.26653254893 --0.355928961386 -0.266335276732 --0.346915553692 -0.266138532803 --0.337911547528 -0.265942307909 --0.328917250362 -0.266244553571 --0.320038643355 -0.266559633489 --0.311137530782 -0.266389510055 --0.302106948793 -0.26621972196 --0.293084102499 -0.26605025587 --0.284069337336 -0.266311930036 --0.275053487281 -0.266586890731 --0.266017831502 -0.266444217657 --0.256970560325 -0.266301685546 --0.247929429822 -0.266159305883 --0.238894834789 -0.266380051245 --0.229756630092 -0.266614456726 --0.22060136464 -0.266499479508 --0.211538241337 -0.266384501534 --0.202479767561 -0.266269522967 --0.19342635438 -0.266448887389 --0.184182603364 -0.26664222367 --0.174924621342 -0.266555149775 --0.165846884457 -0.266467968736 --0.156772363419 -0.266380669848 --0.147701492821 -0.266518299074 --0.138371257307 -0.266670159756 --0.129029686623 -0.266611182675 --0.119938897097 -0.266552005148 --0.110849957544 -0.266492621864 --0.101763320972 -0.266588251646 --0.0923669585861 -0.266698301529 --0.0829622057646 -0.266667540043 --0.0738602090719 -0.266636528383 --0.0647587474214 -0.266605265536 --0.0556582813833 -0.266658699579 --0.0462171781477 -0.266726671979 --0.0367706828153 -0.266724225018 --0.0276595573363 -0.266721501469 --0.0185476783533 -0.266718507691 --0.00943551714935 -0.266716946307 -2.16840434497e-19 -0.266718507691 -0.00943551714935 -0.266721501469 -0.0185476783533 -0.266724225018 -0.0276595573363 -0.266726671979 -0.0367706828153 -0.266658699579 -0.0462171781477 -0.266605265536 -0.0556582813833 -0.266636528383 -0.0647587474214 -0.266667540043 -0.0738602090719 -0.266698301529 -0.0829622057646 -0.266588251646 -0.0923669585861 -0.266492621864 -0.101763320972 -0.266552005148 -0.110849957544 -0.266611182675 -0.119938897097 -0.266670159756 -0.129029686623 -0.266518299074 -0.138371257307 -0.266380669848 -0.147701492821 -0.266467968736 -0.156772363419 -0.266555149775 -0.165846884457 -0.26664222367 -0.174924621342 -0.266448887389 -0.184182603364 -0.266269522967 -0.19342635438 -0.266384501534 -0.202479767561 -0.266499479508 -0.211538241337 -0.266614456726 -0.22060136464 -0.266380051245 -0.229756630092 -0.266159305883 -0.238894834789 -0.266301685546 -0.247929429822 -0.266444217657 -0.256970560325 -0.266586890731 -0.266017831502 -0.266311930036 -0.275053487281 -0.26605025587 -0.284069337336 -0.26621972196 -0.293084102499 -0.266389510055 -0.302106948793 -0.266559633489 -0.311137530782 -0.266244553571 -0.320038643355 -0.265942307909 -0.328917250362 -0.266138532803 -0.337911547528 -0.266335276732 -0.346915553692 -0.26653254893 -0.355928961386 -0.266177956481 -0.364682933089 -0.265835698426 -0.373411774802 -0.275069696207 --0.32802076568 -0.275347961655 --0.319159413297 -0.27563805029 --0.310275554138 -0.275481596181 --0.301271611763 -0.27532544883 --0.292275331642 -0.275169582419 --0.283287047536 -0.275410476556 --0.27429072797 -0.275663610449 --0.265274603837 -0.275532422884 --0.256253778465 -0.27540136729 --0.24723904213 -0.275270436511 --0.238230778675 -0.275473603745 --0.229114122226 -0.275689364234 --0.219980426346 -0.275583680425 --0.210943619606 -0.275477992612 --0.201911421839 -0.275372300884 --0.192884249624 -0.275537310898 --0.183663770114 -0.27571520061 --0.174429080312 -0.275635211471 --0.165377578693 -0.275555126561 --0.156329268619 -0.275474929424 --0.147284586451 -0.2756014848 --0.1379790344 -0.275741156471 --0.1286621608 -0.275687035827 --0.119597566138 -0.275632733326 --0.110534813151 -0.275578248208 --0.101474346538 -0.275666089959 --0.0921037267273 -0.275767223797 --0.0827247425563 -0.275739104616 --0.0736489508499 -0.275710744018 --0.064573688736 -0.275682160731 --0.0554994190123 -0.275731100507 --0.0460847562483 -0.275793436609 --0.0366647230362 -0.275791397737 --0.0275798412575 -0.275789106002 --0.0184942186436 -0.275786566269 --0.00940832041669 -0.27578523136 -0 -0.275786566269 -0.00940832041669 -0.275789106002 -0.0184942186436 -0.275791397737 -0.0275798412575 -0.275793436609 -0.0366647230362 -0.275731100507 -0.0460847562483 -0.275682160731 -0.0554994190123 -0.275710744018 -0.064573688736 -0.275739104616 -0.0736489508499 -0.275767223797 -0.0827247425563 -0.275666089959 -0.0921037267273 -0.275578248208 -0.101474346538 -0.275632733326 -0.110534813151 -0.275687035827 -0.119597566138 -0.275741156471 -0.1286621608 -0.2756014848 -0.1379790344 -0.275474929424 -0.147284586451 -0.275555126561 -0.156329268619 -0.275635211471 -0.165377578693 -0.27571520061 -0.174429080312 -0.275537310898 -0.183663770114 -0.275372300884 -0.192884249624 -0.275477992612 -0.201911421839 -0.275583680425 -0.210943619606 -0.275689364234 -0.219980426346 -0.275473603745 -0.229114122226 -0.275270436511 -0.238230778675 -0.27540136729 -0.24723904213 -0.275532422884 -0.256253778465 -0.275663610449 -0.265274603837 -0.275410476556 -0.27429072797 -0.275169582419 -0.283287047536 -0.27532544883 -0.292275331642 -0.275481596181 -0.301271611763 -0.27563805029 -0.310275554138 -0.275347961655 -0.319159413297 -0.275069696207 -0.32802076568 -0.284176859091 --0.327167778104 -0.28443097868 --0.318322716535 -0.284695904457 --0.309455167689 -0.284553221241 --0.300476629955 -0.284410797702 --0.29150568456 -0.28426862633 --0.282542669054 -0.284488611393 --0.273564850113 -0.284719764582 --0.264567223434 -0.28460013555 --0.25557159808 -0.284480635905 --0.246582025975 -0.284361246234 --0.237598874944 -0.284546729397 --0.228502671046 -0.284743712645 --0.219389428457 -0.284647379993 --0.210377692649 -0.284551051944 --0.201370535053 -0.284454715117 --0.192368351861 -0.284605283363 --0.18316999699 -0.284767618683 --0.173957439498 -0.284694761086 --0.164930917307 -0.284621819624 --0.155907562849 -0.284548769609 --0.146887801775 -0.284664176057 --0.137605736971 -0.284791570058 --0.128312364824 -0.284742341517 --0.119272701278 -0.284692961016 --0.110234870222 -0.284643409613 --0.101199308241 -0.284723413626 --0.0918532043858 -0.284815572242 --0.0824987536413 -0.284790101687 --0.0734478900564 -0.284764410932 --0.0643975562849 -0.284738525489 --0.0553482114243 -0.28478293923 --0.0459587369183 -0.284839594095 --0.0365639119206 -0.284837971153 --0.0275039987135 -0.284836118021 --0.0184433563703 -0.284834022761 --0.00938244496082 -0.284832910131 -2.16840434497e-19 -0.284834022761 -0.00938244496082 -0.284836118021 -0.0184433563703 -0.284837971153 -0.0275039987135 -0.284839594095 -0.0365639119206 -0.28478293923 -0.0459587369183 -0.284738525489 -0.0553482114243 -0.284764410932 -0.0643975562849 -0.284790101687 -0.0734478900564 -0.284815572242 -0.0824987536413 -0.284723413626 -0.0918532043858 -0.284643409613 -0.101199308241 -0.284692961016 -0.110234870222 -0.284742341517 -0.119272701278 -0.284791570058 -0.128312364824 -0.284664176057 -0.137605736971 -0.284548769609 -0.146887801775 -0.284621819624 -0.155907562849 -0.284694761086 -0.164930917307 -0.284767618683 -0.173957439498 -0.284605283363 -0.18316999699 -0.284454715117 -0.192368351861 -0.284551051944 -0.201370535053 -0.284647379993 -0.210377692649 -0.284743712645 -0.219389428457 -0.284546729397 -0.228502671046 -0.284361246234 -0.237598874944 -0.284480635905 -0.246582025975 -0.28460013555 -0.25557159808 -0.284719764582 -0.264567223434 -0.284488611393 -0.273564850113 -0.28426862633 -0.282542669054 -0.284410797702 -0.29150568456 -0.284553221241 -0.300476629955 -0.284695904457 -0.309455167689 -0.28443097868 -0.318322716535 -0.284176859091 -0.327167778104 -0.29314643865 --0.327728855145 -0.293427325558 --0.318871312022 -0.293720169091 --0.309991229175 -0.293562264739 --0.300997033758 -0.293404642568 --0.292010411142 -0.293247313591 --0.283031715637 -0.293490483838 --0.274040456003 -0.293746000929 --0.265029333695 -0.293613598777 --0.256017906715 -0.293481340678 --0.247012524896 -0.293349211326 --0.238013547422 -0.293554259896 --0.228903017001 -0.293772017929 --0.219775404749 -0.293665376869 --0.210747742834 -0.293558740235 --0.201724640336 -0.293452095477 --0.192706489384 -0.293618591561 --0.183493068299 -0.293798088144 --0.17426540047 -0.293717404946 --0.165222823118 -0.293636628613 --0.156183402794 -0.293555727237 --0.14714755589 -0.2936833818 --0.137849811617 -0.29382429695 --0.128540731022 -0.293769736876 --0.119484906426 -0.29371499581 --0.110430896087 -0.293660067826 --0.10137914843 -0.293748646038 --0.0920169045105 -0.293850646981 --0.0826462825828 -0.293822336078 --0.0735791704675 -0.293793790503 --0.0645125811023 -0.293765009486 --0.0554469706399 -0.293814287108 --0.0460410494009 -0.293877098597 --0.0366297619252 -0.293875140272 --0.0275535403926 -0.293872927117 --0.018476580657 -0.293870448761 --0.00939934751652 -0.293869139014 -2.16840434497e-19 -0.293870448761 -0.00939934751652 -0.293872927117 -0.018476580657 -0.293875140272 -0.0275535403926 -0.293877098597 -0.0366297619252 -0.293814287108 -0.0460410494009 -0.293765009486 -0.0554469706399 -0.293793790503 -0.0645125811023 -0.293822336078 -0.0735791704675 -0.293850646981 -0.0826462825828 -0.293748646038 -0.0920169045105 -0.293660067826 -0.10137914843 -0.29371499581 -0.110430896087 -0.293769736876 -0.119484906426 -0.29382429695 -0.128540731022 -0.2936833818 -0.137849811617 -0.293555727237 -0.14714755589 -0.293636628613 -0.156183402794 -0.293717404946 -0.165222823118 -0.293798088144 -0.17426540047 -0.293618591561 -0.183493068299 -0.293452095477 -0.192706489384 -0.293558740235 -0.201724640336 -0.293665376869 -0.210747742834 -0.293772017929 -0.219775404749 -0.293554259896 -0.228903017001 -0.293349211326 -0.238013547422 -0.293481340678 -0.247012524896 -0.293613598777 -0.256017906715 -0.293746000929 -0.265029333695 -0.293490483838 -0.274040456003 -0.293247313591 -0.283031715637 -0.293404642568 -0.292010411142 -0.293562264739 -0.300997033758 -0.293720169091 -0.309991229175 -0.293427325558 -0.318871312022 -0.29314643865 -0.327728855145 -0.302125836538 --0.328291634425 -0.302433525987 --0.319421559786 -0.302754310621 --0.310528889449 -0.302581158781 --0.301519011118 -0.302408323783 --0.292516681467 -0.302235817967 --0.283522281028 -0.302502184569 --0.274517504472 -0.30278208936 --0.265492815763 -0.30263691053 --0.256465573218 -0.302491882951 --0.247444343963 -0.302346996219 --0.238429501994 -0.302571624784 --0.229304587546 -0.302810180541 --0.220162547137 -0.302693216298 --0.21111891548 -0.302576257459 --0.202079828633 -0.302459292134 --0.193045684199 -0.302641726059 --0.183817124118 -0.302838409123 --0.174574281554 -0.302749888846 --0.165515614066 -0.302661260454 --0.156460089553 -0.302572498385 --0.147408126096 -0.302712419601 --0.138094624245 -0.302866863534 --0.128769753946 -0.30280695806 --0.119697730505 -0.302746850428 --0.110627514483 -0.302686545731 --0.101559554414 -0.302783699683 --0.0921810880424 -0.302895547776 --0.0827942164954 -0.302864399137 --0.0737108225267 -0.302832994055 --0.0646279402388 -0.302801320423 --0.0555460313023 -0.302855480935 --0.0461235884241 -0.302924455399 --0.036695758815 -0.302922148736 --0.0276031916988 -0.30291957004 --0.0185098789931 -0.302916707961 --0.00941628774828 -0.302915206788 -0 -0.302916707961 -0.00941628774828 -0.30291957004 -0.0185098789931 -0.302922148736 -0.0276031916988 -0.302924455399 -0.036695758815 -0.302855480935 -0.0461235884241 -0.302801320423 -0.0555460313023 -0.302832994055 -0.0646279402388 -0.302864399137 -0.0737108225267 -0.302895547776 -0.0827942164954 -0.302783699683 -0.0921810880424 -0.302686545731 -0.101559554414 -0.302746850428 -0.110627514483 -0.30280695806 -0.119697730505 -0.302866863534 -0.128769753946 -0.302712419601 -0.138094624245 -0.302572498385 -0.147408126096 -0.302661260454 -0.156460089553 -0.302749888846 -0.165515614066 -0.302838409123 -0.174574281554 -0.302641726059 -0.183817124118 -0.302459292134 -0.193045684199 -0.302576257459 -0.202079828633 -0.302693216298 -0.21111891548 -0.302810180541 -0.220162547137 -0.302571624784 -0.229304587546 -0.302346996219 -0.238429501994 -0.302491882951 -0.247444343963 -0.30263691053 -0.256465573218 -0.30278208936 -0.265492815763 -0.302502184569 -0.274517504472 -0.302235817967 -0.283522281028 -0.302408323783 -0.292516681467 -0.302581158781 -0.301519011118 -0.302754310621 -0.310528889449 -0.302433525987 -0.319421559786 -0.302125836538 -0.328291634425 -0.311114723926 --0.328856158238 -0.311449232147 --0.319973503456 -0.311797981005 --0.31106817986 -0.311609576738 --0.30204258283 -0.311421518281 --0.293024526883 -0.311233804985 --0.284014382781 -0.311523386256 --0.274996024057 -0.311827700487 --0.26595770441 -0.31166971783 --0.256914602091 -0.311511898693 --0.247877492559 -0.311354240764 --0.238846764529 -0.31159846641 --0.229707402238 -0.311857843131 --0.220550864197 -0.311730550875 --0.211491228355 -0.311603258882 --0.202436122224 -0.31147596671 --0.193385958687 -0.311674345544 --0.184142189101 -0.311888223853 --0.174884095487 -0.311791851552 --0.165809300296 -0.311695354516 --0.156737627306 -0.311598735632 --0.147669521559 -0.311750947083 --0.138340195759 -0.311918924971 --0.128999456353 -0.311853663607 --0.119911201227 -0.311788188873 --0.110824740835 -0.311722492926 --0.101740524498 -0.311828242874 --0.0923457631941 -0.31194996713 --0.0829425714879 -0.311915959117 --0.0738428572914 -0.31188167856 --0.064743643803 -0.311847114613 --0.0556453983994 -0.311906162326 --0.0462063543326 -0.311981312639 --0.036761905193 -0.311978656937 --0.0276529557015 -0.311975712602 --0.0185432527489 -0.311972466663 --0.0094332665196 -0.311970766771 -0 -0.311972466663 -0.0094332665196 -0.311975712602 -0.0185432527489 -0.311978656937 -0.0276529557015 -0.311981312639 -0.036761905193 -0.311906162326 -0.0462063543326 -0.311847114613 -0.0556453983994 -0.31188167856 -0.064743643803 -0.311915959117 -0.0738428572914 -0.31194996713 -0.0829425714879 -0.311828242874 -0.0923457631941 -0.311722492926 -0.101740524498 -0.311788188873 -0.110824740835 -0.311853663607 -0.119911201227 -0.311918924971 -0.128999456353 -0.311750947083 -0.138340195759 -0.311598735632 -0.147669521559 -0.311695354516 -0.156737627306 -0.311791851552 -0.165809300296 -0.311888223853 -0.174884095487 -0.311674345544 -0.184142189101 -0.31147596671 -0.193385958687 -0.311603258882 -0.202436122224 -0.311730550875 -0.211491228355 -0.311857843131 -0.220550864197 -0.31159846641 -0.229707402238 -0.311354240764 -0.238846764529 -0.311511898693 -0.247877492559 -0.31166971783 -0.256914602091 -0.311827700487 -0.26595770441 -0.311523386256 -0.274996024057 -0.311233804985 -0.284014382781 -0.311421518281 -0.293024526883 -0.311609576738 -0.30204258283 -0.311797981005 -0.31106817986 -0.311449232147 -0.319973503456 -0.311114723926 -0.328856158238 -0.320744955908 --0.310080821199 -0.320570485259 --0.301085709411 -0.320396332273 --0.292098067262 -0.320222487522 --0.283118241017 -0.320490865517 --0.274122269059 -0.320772909737 --0.2651063449 -0.320626629035 --0.256093511333 -0.320480492706 --0.247086616645 -0.320334508839 --0.238086049007 -0.32056082163 --0.228971393051 -0.3208011786 --0.219839568269 -0.320683364054 --0.210810061716 -0.320565546099 --0.201785038709 -0.320447710867 --0.192764909758 -0.320631492654 --0.183547841764 -0.320829647041 --0.174316461301 -0.320740481599 --0.165271688566 -0.320651204451 --0.156230017577 -0.320561825459 --0.147191889691 -0.320702765438 --0.137890886196 -0.32085832212 --0.128578484254 -0.320798018684 --0.119520217596 -0.320737505199 --0.110463727342 -0.32067678822 --0.101409461806 -0.320774623818 --0.0920442467726 -0.320887269369 --0.082670622224 -0.320855943618 --0.0736008989086 -0.320824374503 --0.0645316776622 -0.320792536323 --0.0554634155629 -0.320846982601 --0.046054709568 -0.320916368318 --0.0366406242064 -0.320914123314 --0.0275617125442 -0.320911616353 --0.0184820628573 -0.320908825258 --0.00940213754122 -0.320907354095 -2.16840434497e-19 -0.320908825258 -0.00940213754122 -0.320911616353 -0.0184820628573 -0.320914123314 -0.0275617125442 -0.320916368318 -0.0366406242064 -0.320846982601 -0.046054709568 -0.320792536323 -0.0554634155629 -0.320824374503 -0.0645316776622 -0.320855943618 -0.0736008989086 -0.320887269369 -0.082670622224 -0.320774623818 -0.0920442467726 -0.32067678822 -0.101409461806 -0.320737505199 -0.110463727342 -0.320798018684 -0.119520217596 -0.32085832212 -0.128578484254 -0.320702765438 -0.137890886196 -0.320561825459 -0.147191889691 -0.320651204451 -0.156230017577 -0.320740481599 -0.165271688566 -0.320829647041 -0.174316461301 -0.320631492654 -0.183547841764 -0.320447710867 -0.192764909758 -0.320565546099 -0.201785038709 -0.320683364054 -0.210810061716 -0.3208011786 -0.219839568269 -0.32056082163 -0.228971393051 -0.320334508839 -0.238086049007 -0.320480492706 -0.247086616645 -0.320626629035 -0.256093511333 -0.320772909737 -0.2651063449 -0.320490865517 -0.274122269059 -0.320222487522 -0.283118241017 -0.320396332273 -0.292098067262 -0.320570485259 -0.301085709411 -0.320744955908 -0.310080821199 -0.329668467414 --0.309133374479 -0.329508027268 --0.300167561665 -0.329347889606 --0.291209159149 -0.329188037071 --0.282258495016 -0.329435055643 --0.273283920838 -0.329694652245 --0.26428938609 -0.329560171692 --0.255305631414 -0.329425827107 --0.246327772219 -0.329291615245 --0.237356178995 -0.329499866398 --0.228265173503 -0.329721050949 --0.219156996323 -0.329612780628 --0.210156419488 -0.329504510411 --0.201160289646 -0.329396216656 --0.192168993279 -0.32956529162 --0.1829775173 -0.329747604651 --0.173771741456 -0.329665713586 --0.164755793686 -0.329583725599 --0.155742926683 -0.329501631894 --0.146733560644 -0.329631200074 --0.137459727479 -0.329774234646 --0.128174515674 -0.3297189285 --0.119145022145 -0.329663424504 --0.110117291454 -0.329607736431 --0.101091767582 -0.329697577919 --0.0917549152772 -0.329801055354 --0.0824096693039 -0.329772452306 --0.0733687174489 -0.32974360883 --0.0643282677537 -0.32971452015 --0.0552887718434 -0.329764341224 --0.045909206179 -0.32982791569 --0.0365242821668 -0.329826091023 --0.02747418586 -0.32982401459 --0.0184233647268 -0.329821673566 --0.00937227570326 -0.329820434085 -0 -0.329821673566 -0.00937227570326 -0.32982401459 -0.0184233647268 -0.329826091023 -0.02747418586 -0.32982791569 -0.0365242821668 -0.329764341224 -0.045909206179 -0.32971452015 -0.0552887718434 -0.32974360883 -0.0643282677537 -0.329772452306 -0.0733687174489 -0.329801055354 -0.0824096693039 -0.329697577919 -0.0917549152772 -0.329607736431 -0.101091767582 -0.329663424504 -0.110117291454 -0.3297189285 -0.119145022145 -0.329774234646 -0.128174515674 -0.329631200074 -0.137459727479 -0.329501631894 -0.146733560644 -0.329583725599 -0.155742926683 -0.329665713586 -0.164755793686 -0.329747604651 -0.173771741456 -0.32956529162 -0.1829775173 -0.329396216656 -0.192168993279 -0.329504510411 -0.201160289646 -0.329612780628 -0.210156419488 -0.329721050949 -0.219156996323 -0.329499866398 -0.228265173503 -0.329291615245 -0.237356178995 -0.329425827107 -0.246327772219 -0.329560171692 -0.255305631414 -0.329694652245 -0.26428938609 -0.329435055643 -0.273283920838 -0.329188037071 -0.282258495016 -0.329347889606 -0.291209159149 -0.329508027268 -0.300167561665 -0.329668467414 -0.309133374479 -0.338703945726 --0.264824761986 -0.338556832642 --0.255822731636 -0.338409872532 --0.246826574177 -0.338263060245 --0.237836669818 -0.338490645655 --0.228729026973 -0.338732371129 --0.219604160402 -0.338613901838 --0.210585148594 -0.338495435498 --0.201570571817 -0.338376958897 --0.19256080853 -0.338561772823 --0.183351828441 -0.338761052942 --0.174128505518 -0.338671434022 --0.165093982099 -0.338581693448 --0.156062521305 -0.338491830368 --0.14703454261 -0.338633511217 --0.137742504225 -0.338789904079 --0.128439048974 -0.338729322595 --0.119390853644 -0.338668539411 --0.110344406028 -0.338607534028 --0.101300149366 -0.338705832705 --0.0919445511326 -0.33881904894 --0.0825805322156 -0.338787642224 --0.07352077647 -0.338755962601 --0.0644615102707 -0.338724017988 --0.0554031914221 -0.338778656972 --0.046004532305 -0.338848321817 --0.0366004946955 -0.338846159198 --0.0275315237623 -0.338843717411 --0.0184618172168 -0.338840995161 --0.00939183773559 -0.338839561169 -2.16840434497e-19 -0.338840995161 -0.00939183773559 -0.338843717411 -0.0184618172168 -0.338846159198 -0.0275315237623 -0.338848321817 -0.0366004946955 -0.338778656972 -0.046004532305 -0.338724017988 -0.0554031914221 -0.338755962601 -0.0644615102707 -0.338787642224 -0.07352077647 -0.33881904894 -0.0825805322156 -0.338705832705 -0.0919445511326 -0.338607534028 -0.101300149366 -0.338668539411 -0.110344406028 -0.338729322595 -0.119390853644 -0.338789904079 -0.128439048974 -0.338633511217 -0.137742504225 -0.338491830368 -0.14703454261 -0.338581693448 -0.156062521305 -0.338671434022 -0.165093982099 -0.338761052942 -0.174128505518 -0.338561772823 -0.183351828441 -0.338376958897 -0.19256080853 -0.338495435498 -0.201570571817 -0.338613901838 -0.210585148594 -0.338732371129 -0.219604160402 -0.338490645655 -0.228729026973 -0.338263060245 -0.237836669818 -0.338409872532 -0.246826574177 -0.338556832642 -0.255822731636 -0.338703945726 -0.264824761986 -0.347724920797 --0.265362069175 -0.347565159292 --0.256341718324 -0.347405566427 --0.247327223388 -0.347246145816 --0.238318962132 -0.347493098433 --0.229194608313 -0.347755388682 --0.220052972594 -0.34762670284 --0.211015467292 -0.347498020556 --0.201982380141 -0.347369351937 --0.192954103975 -0.347569923768 --0.183727541225 -0.347786179708 --0.174486579335 -0.347688810028 --0.165433421408 -0.347591304042 --0.156383309829 -0.34749367377 --0.14733666834 -0.347647489938 --0.138026327653 -0.347817266305 --0.128704531188 -0.347751392539 --0.119637576193 -0.347685300148 --0.110572356777 -0.347618968734 --0.101509318134 -0.347725757499 --0.092134880176 -0.347848732234 --0.0827519901685 -0.347814492404 --0.0736733723203 -0.347779973698 --0.0645952351695 -0.347745171925 --0.0555180372583 -0.347804630133 --0.0461001865651 -0.347880394608 --0.036676936049 -0.347877899475 --0.0275890336959 -0.347875101387 --0.0185003855727 -0.34787199702 --0.0094114587918 -0.347870366031 --2.16840434497e-19 -0.34787199702 -0.0094114587918 -0.347875101387 -0.0185003855727 -0.347877899475 -0.0275890336959 -0.347880394608 -0.036676936049 -0.347804630133 -0.0461001865651 -0.347745171925 -0.0555180372583 -0.347779973698 -0.0645952351695 -0.347814492404 -0.0736733723203 -0.347848732234 -0.0827519901685 -0.347725757499 -0.092134880176 -0.347618968734 -0.101509318134 -0.347685300148 -0.110572356777 -0.347751392539 -0.119637576193 -0.347817266305 -0.128704531188 -0.347647489938 -0.138026327653 -0.34749367377 -0.14733666834 -0.347591304042 -0.156383309829 -0.347688810028 -0.165433421408 -0.347786179708 -0.174486579335 -0.347569923768 -0.183727541225 -0.347369351937 -0.192954103975 -0.347498020556 -0.201982380141 -0.34762670284 -0.211015467292 -0.347755388682 -0.220052972594 -0.347493098433 -0.229194608313 -0.347246145816 -0.238318962132 -0.347405566427 -0.247327223388 -0.347565159292 -0.256341718324 -0.347724920797 -0.265362069175 -0.356757272612 --0.265901351667 -0.356584843314 --0.256862623039 -0.356412612381 --0.247829744844 -0.356240558698 --0.238803080246 -0.356506902586 --0.229661935363 -0.356789789123 --0.220503450041 -0.356650878702 --0.211447396948 -0.356511964604 --0.202395739977 -0.356373072656 --0.193348896545 -0.35658942496 --0.184104660017 -0.356822691648 --0.174845970541 -0.356717548508 --0.165774126621 -0.356612272987 --0.15670530976 -0.356506869373 --0.147639950532 -0.356672822428 --0.138311214439 -0.356855993565 --0.128970984432 -0.356784817075 --0.119885210856 -0.356713407676 --0.110801160721 -0.356641758066 --0.101719285577 -0.356757053482 --0.0923259130888 -0.356889777888 --0.082924052366 -0.356852708126 --0.0738265172616 -0.356815343795 --0.064729450801 -0.356777682982 --0.055633316069 -0.35684198265 --0.0461961756694 -0.356923852338 --0.0367536113825 -0.356921015885 --0.0276467191689 -0.35691785532 --0.018539071498 -0.356914370689 --0.00943113994673 -0.35691254249 -0 -0.356914370689 -0.00943113994673 -0.35691785532 -0.018539071498 -0.356921015885 -0.0276467191689 -0.356923852338 -0.0367536113825 -0.35684198265 -0.0461961756694 -0.356777682982 -0.055633316069 -0.356815343795 -0.064729450801 -0.356852708126 -0.0738265172616 -0.356889777888 -0.082924052366 -0.356757053482 -0.0923259130888 -0.356641758066 -0.101719285577 -0.356713407676 -0.110801160721 -0.356784817075 -0.119885210856 -0.356855993565 -0.128970984432 -0.356672822428 -0.138311214439 -0.356506869373 -0.147639950532 -0.356612272987 -0.15670530976 -0.356717548508 -0.165774126621 -0.356822691648 -0.174845970541 -0.35658942496 -0.184104660017 -0.356373072656 -0.193348896545 -0.356511964604 -0.202395739977 -0.356650878702 -0.211447396948 -0.356789789123 -0.220503450041 -0.356506902586 -0.229661935363 -0.356240558698 -0.238803080246 -0.356412612381 -0.247829744844 -0.356584843314 -0.256862623039 -0.356757272612 -0.265901351667 -0.365558020549 --0.264943758707 -0.365397583892 --0.255939063157 -0.36523732978 --0.246940150083 -0.365077222806 --0.237947376881 -0.365325227778 --0.228834052091 -0.36558865133 --0.219703411783 -0.365459442912 --0.210681225743 -0.365330226782 --0.201663384125 -0.36520101215 --0.192650299689 -0.365402401283 --0.183436129649 -0.365619562785 --0.174207529989 -0.365521816454 --0.165169444582 -0.365423935166 --0.156134350958 -0.365325939383 --0.147102683202 -0.36548034851 --0.137805844793 -0.365650791603 --0.128497527761 -0.365584685136 --0.119445459288 -0.365518366329 --0.110395102485 -0.36545183331 --0.101346897892 -0.365558986982 --0.0919867945877 -0.365682367799 --0.082618230146 -0.365648055553 --0.0735544083387 -0.365613468096 --0.0644910541512 -0.365578594795 --0.0554286234186 -0.365638219399 --0.0460256520825 -0.365714208647 --0.0366172837493 -0.365711782521 --0.0275441556661 -0.365709058302 --0.018470290165 -0.365706027653 --0.0093961491204 -0.365704432274 --2.16840434497e-19 -0.365706027653 -0.0093961491204 -0.365709058302 -0.018470290165 -0.365711782521 -0.0275441556661 -0.365714208647 -0.0366172837493 -0.365638219399 -0.0460256520825 -0.365578594795 -0.0554286234186 -0.365613468096 -0.0644910541512 -0.365648055553 -0.0735544083387 -0.365682367799 -0.082618230146 -0.365558986982 -0.0919867945877 -0.36545183331 -0.101346897892 -0.365518366329 -0.110395102485 -0.365584685136 -0.119445459288 -0.365650791603 -0.128497527761 -0.36548034851 -0.137805844793 -0.365325939383 -0.147102683202 -0.365423935166 -0.156134350958 -0.365521816454 -0.165169444582 -0.365619562785 -0.174207529989 -0.365402401283 -0.183436129649 -0.36520101215 -0.192650299689 -0.365330226782 -0.201663384125 -0.365459442912 -0.210681225743 -0.36558865133 -0.219703411783 -0.365325227778 -0.228834052091 -0.365077222806 -0.237947376881 -0.36523732978 -0.246940150083 -0.365397583892 -0.255939063157 -0.365558020549 -0.264943758707 -0.374332491483 --0.264019018376 -0.374184158405 --0.255047225491 -0.374035977857 --0.24608114617 -0.373887933071 --0.237121126334 -0.374117425826 --0.228034613887 -0.374361208534 --0.218930795129 -0.374241797176 --0.209941335889 -0.374122359763 --0.200956169136 -0.374002919455 --0.191975700187 -0.374189228512 --0.182790547081 -0.37439014371 --0.173590971459 -0.374299859429 --0.16458549304 -0.374209439952 --0.155582971909 -0.374118911154 --0.146583840399 -0.374261676892 --0.137317799952 -0.374419289896 --0.128040293551 -0.374358299386 --0.119020772734 -0.374297109072 --0.110002950991 -0.374235725275 --0.100987260166 -0.374334658445 --0.0916592998842 -0.374448639351 --0.0823229048267 -0.374417114723 --0.0732916314001 -0.374385308886 --0.0642608234907 -0.374353239451 --0.055230933862 -0.374408147872 --0.0458609887878 -0.374478212158 --0.0364856706291 -0.374476212559 --0.0274451395804 -0.374473935986 --0.0184038883802 -0.374471362461 --0.00936236887826 -0.374470001464 -0 -0.374471362461 -0.00936236887826 -0.374473935986 -0.0184038883802 -0.374476212559 -0.0274451395804 -0.374478212158 -0.0364856706291 -0.374408147872 -0.0458609887878 -0.374353239451 -0.055230933862 -0.374385308886 -0.0642608234907 -0.374417114723 -0.0732916314001 -0.374448639351 -0.0823229048267 -0.374334658445 -0.0916592998842 -0.374235725275 -0.100987260166 -0.374297109072 -0.110002950991 -0.374358299386 -0.119020772734 -0.374419289896 -0.128040293551 -0.374261676892 -0.137317799952 -0.374118911154 -0.146583840399 -0.374209439952 -0.155582971909 -0.374299859429 -0.16458549304 -0.37439014371 -0.173590971459 -0.374189228512 -0.182790547081 -0.374002919455 -0.191975700187 -0.374122359763 -0.200956169136 -0.374241797176 -0.209941335889 -0.374361208534 -0.218930795129 -0.374117425826 -0.228034613887 -0.373887933071 -0.237121126334 -0.374035977857 -0.24608114617 -0.374184158405 -0.255047225491 -0.374332491483 -0.264019018376 -0.383355461543 --0.219438023249 -0.38322598326 --0.210427672928 -0.383096493354 --0.201421605927 -0.382966998103 --0.192420217166 -0.383168841328 --0.183215170602 -0.383386507335 --0.173995643974 -0.383288582201 --0.164969108557 -0.383190506714 --0.155945517498 -0.383092307232 --0.146925298748 -0.383247037372 --0.137638564792 -0.383417844867 --0.128340320544 -0.383351636319 --0.11929960232 -0.383285225747 --0.110260565943 -0.383218585458 --0.101223648672 -0.383325880794 --0.0918743940199 -0.38344949406 --0.0825166692656 -0.383415194709 --0.0734640849346 -0.383380581515 --0.0644119505479 -0.383345688702 --0.0553607250209 -0.383405351719 --0.0459690863836 -0.383481428044 --0.0365720523 -0.383479100254 --0.0275101287792 -0.383476463485 --0.0184474725428 -0.383473514929 --0.00938454192642 -0.383471967669 -0 -0.383473514929 -0.00938454192642 -0.383476463485 -0.0184474725428 -0.383479100254 -0.0275101287792 -0.383481428044 -0.0365720523 -0.383405351719 -0.0459690863836 -0.383345688702 -0.0553607250209 -0.383380581515 -0.0644119505479 -0.383415194709 -0.0734640849346 -0.38344949406 -0.0825166692656 -0.383325880794 -0.0918743940199 -0.383218585458 -0.101223648672 -0.383285225747 -0.110260565943 -0.383351636319 -0.11929960232 -0.383417844867 -0.128340320544 -0.383247037372 -0.137638564792 -0.383092307232 -0.146925298748 -0.383190506714 -0.155945517498 -0.383288582201 -0.164969108557 -0.383386507335 -0.173995643974 -0.383168841328 -0.183215170602 -0.382966998103 -0.192420217166 -0.383096493354 -0.201421605927 -0.38322598326 -0.210427672928 -0.383355461543 -0.219438023249 -0.392363274975 --0.219947418843 -0.39222371765 --0.210916108398 -0.392084157409 --0.201889065689 -0.391944581046 --0.192866684998 -0.392161978041 --0.183641637913 -0.39239642204 --0.174402052928 -0.392290845697 --0.165354384606 -0.392185098316 --0.156309644438 -0.392079211827 --0.147268258916 -0.392245936562 --0.137960719094 -0.392429962702 --0.128641624053 -0.39235852524 --0.119579633309 -0.392286863721 --0.110519304829 -0.392214961513 --0.101461081062 -0.392330654308 --0.0920904165832 -0.392463894915 --0.0827112382306 -0.392426800465 --0.0736372594136 -0.392389393632 --0.0645637212255 -0.392351686004 --0.0554910821289 -0.392416110506 --0.0460776293857 -0.392498204654 --0.0366587576456 -0.392495539043 --0.0275753608312 -0.392492532618 --0.0184912192771 -0.392489196252 --0.00940679729692 -0.392487459181 -0 -0.392489196252 -0.00940679729692 -0.392492532618 -0.0184912192771 -0.392495539043 -0.0275753608312 -0.392498204654 -0.0366587576456 -0.392416110506 -0.0460776293857 -0.392351686004 -0.0554910821289 -0.392389393632 -0.0645637212255 -0.392426800465 -0.0736372594136 -0.392463894915 -0.0827112382306 -0.392330654308 -0.0920904165832 -0.392214961513 -0.101461081062 -0.392286863721 -0.110519304829 -0.39235852524 -0.119579633309 -0.392429962702 -0.128641624053 -0.392245936562 -0.137960719094 -0.392079211827 -0.147268258916 -0.392185098316 -0.156309644438 -0.392290845697 -0.165354384606 -0.39239642204 -0.174402052928 -0.392161978041 -0.183641637913 -0.391944581046 -0.192866684998 -0.392084157409 -0.201889065689 -0.39222371765 -0.210916108398 -0.392363274975 -0.219947418843 -0.401384384469 --0.220459013968 -0.401234732054 --0.211406673167 -0.401085068122 --0.202358568892 -0.400935382782 --0.193315118551 -0.401168387605 --0.184069972977 -0.401419637028 --0.174810222373 -0.401306369068 --0.165741345623 -0.401192940599 --0.156675375937 -0.401079363821 --0.147612748826 -0.401258088386 --0.138284288904 -0.401455364036 --0.12894422573 -0.40137870232 --0.119860883797 -0.401301770995 --0.110779181101 -0.401224602254 --0.1016995729 -0.401348708507 --0.0923073740248 -0.401491576065 --0.0829066222285 -0.401451684586 --0.0738111722517 -0.401411475598 --0.0647161484081 -0.40137093684 --0.0556220151431 -0.401440139158 --0.0461866258209 -0.401528278013 --0.036745791605 -0.401525270531 --0.0276408390871 -0.401521902204 --0.0185351313067 -0.401518186144 --0.00942913730454 -0.401516244302 -2.16840434497e-19 -0.401518186144 -0.00942913730454 -0.401521902204 -0.0185351313067 -0.401525270531 -0.0276408390871 -0.401528278013 -0.036745791605 -0.401440139158 -0.0461866258209 -0.40137093684 -0.0556220151431 -0.401411475598 -0.0647161484081 -0.401451684586 -0.0738111722517 -0.401491576065 -0.0829066222285 -0.401348708507 -0.0923073740248 -0.401224602254 -0.1016995729 -0.401301770995 -0.110779181101 -0.40137870232 -0.119860883797 -0.401455364036 -0.12894422573 -0.401258088386 -0.138284288904 -0.401079363821 -0.147612748826 -0.401192940599 -0.156675375937 -0.401306369068 -0.165741345623 -0.401419637028 -0.174810222373 -0.401168387605 -0.184069972977 -0.400935382782 -0.193315118551 -0.401085068122 -0.202358568892 -0.401234732054 -0.211406673167 -0.401384384469 -0.220459013968 -0.41009473881 --0.128419202349 -0.41002329297 --0.119373218514 -0.409951595521 --0.110328863448 -0.409879658335 --0.101286573382 -0.409995416794 --0.0919313066824 -0.410128726126 --0.082567521339 -0.41009165461 --0.0735094386816 -0.41005428615 --0.0644517834241 -0.410016600788 --0.0553950085828 -0.410080974771 --0.0459975507229 -0.410163077344 --0.0365946809162 -0.410160491999 --0.0275271548648 -0.410157558615 --0.0184588914283 -0.410154317665 --0.00939035198173 -0.410152613004 -0 -0.410154317665 -0.00939035198173 -0.410157558615 -0.0184588914283 -0.410160491999 -0.0275271548648 -0.410163077344 -0.0365946809162 -0.410080974771 -0.0459975507229 -0.410016600788 -0.0553950085828 -0.41005428615 -0.0644517834241 -0.41009165461 -0.0735094386816 -0.410128726126 -0.082567521339 -0.409995416794 -0.0919313066824 -0.409879658335 -0.101286573382 -0.409951595521 -0.110328863448 -0.41002329297 -0.119373218514 -0.41009473881 -0.128419202349 -0.418705039499 --0.127909580671 -0.418638860928 --0.118899858163 -0.418572459355 --0.109891750727 -0.418505804701 --0.100885679196 -0.4186131322 --0.09156627982 -0.418736800937 --0.0822383873074 -0.418702567301 --0.0732165620209 -0.418668057162 --0.0641951679709 -0.418633263362 --0.0551746470402 -0.418692781454 --0.0458140397756 -0.418768778522 --0.0364480489219 -0.418766607157 --0.0274168396857 -0.418764121024 --0.0183849116393 -0.4187613401 --0.00935271598039 -0.41875986503 -0 -0.4187613401 -0.00935271598039 -0.418764121024 -0.0183849116393 -0.418766607157 -0.0274168396857 -0.418768778522 -0.0364480489219 -0.418692781454 -0.0458140397756 -0.418633263362 -0.0551746470402 -0.418668057162 -0.0641951679709 -0.418702567301 -0.0732165620209 -0.418736800937 -0.0822383873074 -0.4186131322 -0.09156627982 -0.418505804701 -0.100885679196 -0.418572459355 -0.109891750727 -0.418638860928 -0.118899858163 -0.418705039499 -0.127909580671 -0.42772069843 --0.0824546304453 -0.427683726166 --0.0734090328885 -0.427646457882 --0.0643638472548 -0.427608883285 --0.0553195257678 -0.427673082379 --0.0459346749945 -0.427754997919 --0.0365444136292 -0.427752498045 --0.0274893383098 -0.42774968085 --0.0184335323263 -0.427746526053 --0.00937745141073 -0.427744848909 -0 -0.427746526053 -0.00937745141073 -0.42774968085 -0.0184335323263 -0.427752498045 -0.0274893383098 -0.427754997919 -0.0365444136292 -0.427673082379 -0.0459346749945 -0.427608883285 -0.0553195257678 -0.427646457882 -0.0643638472548 -0.427683726166 -0.0734090328885 -0.42772069843 -0.0824546304453 -0.436720068262 --0.082671904706 -0.436680371294 --0.0736024313247 -0.436640325593 --0.0645333515411 -0.436599952455 --0.0554651263885 -0.436668843324 --0.046055883989 -0.436756690748 --0.0366412029928 -0.43675387234 --0.0275621570739 -0.436750703022 --0.0184823674286 -0.436747182825 --0.00940229597992 -0.436745332885 --2.16840434497e-19 -0.436747182825 -0.00940229597992 -0.436750703022 -0.0184823674286 -0.43675387234 -0.0275621570739 -0.436756690748 -0.0366412029928 -0.436668843324 -0.046055883989 -0.436599952455 -0.0554651263885 -0.436640325593 -0.0645333515411 -0.436680371294 -0.0736024313247 -0.436720068262 -0.082671904706 -0.445734696637 --0.0828902302899 -0.445692247811 --0.0737967733504 -0.445649417478 --0.064703695363 -0.445606239297 --0.0556114589397 -0.445679863006 --0.0461776751127 -0.445773675836 --0.0367384257144 -0.445770527198 --0.0276353019696 -0.445766983934 --0.0185314209562 -0.445763067015 --0.00942725128817 -0.445761023272 --2.16840434497e-19 -0.445763067015 -0.00942725128817 -0.445766983934 -0.0185314209562 -0.445770527198 -0.0276353019696 -0.445773675836 -0.0367384257144 -0.445679863006 -0.0461776751127 -0.445606239297 -0.0556114589397 -0.445649417478 -0.064703695363 -0.445692247811 -0.0737967733504 -0.445734696637 -0.0828902302899 --0.445734696637 --0.0828902302899 --0.445692247811 --0.0737967733504 --0.445649417478 --0.064703695363 --0.445606239297 --0.0556114589397 --0.445679863006 --0.0461776751127 --0.445773675836 --0.0367384257144 --0.445770527198 --0.0276353019696 --0.445766983934 --0.0185314209562 --0.445763067015 --0.00942725128817 --0.445761023272 --2.16840434497e-19 --0.445763067015 -0.00942725128817 --0.445766983934 -0.0185314209562 --0.445770527198 -0.0276353019696 --0.445773675836 -0.0367384257144 --0.445679863006 -0.0461776751127 --0.445606239297 -0.0556114589397 --0.445649417478 -0.064703695363 --0.445692247811 -0.0737967733504 --0.445734696637 -0.0828902302899 --0.436720068262 --0.082671904706 --0.436680371294 --0.0736024313247 --0.436640325593 --0.0645333515411 --0.436599952455 --0.0554651263885 --0.436668843324 --0.046055883989 --0.436756690748 --0.0366412029928 --0.43675387234 --0.0275621570739 --0.436750703022 --0.0184823674286 --0.436747182825 --0.00940229597992 --0.436745332885 --2.16840434497e-19 --0.436747182825 -0.00940229597992 --0.436750703022 -0.0184823674286 --0.43675387234 -0.0275621570739 --0.436756690748 -0.0366412029928 --0.436668843324 -0.046055883989 --0.436599952455 -0.0554651263885 --0.436640325593 -0.0645333515411 --0.436680371294 -0.0736024313247 --0.436720068262 -0.082671904706 --0.42772069843 --0.0824546304453 --0.427683726166 --0.0734090328885 --0.427646457882 --0.0643638472548 --0.427608883285 --0.0553195257678 --0.427673082379 --0.0459346749945 --0.427754997919 --0.0365444136292 --0.427752498045 --0.0274893383098 --0.42774968085 --0.0184335323263 --0.427746526053 --0.00937745141073 --0.427744848909 -0 --0.427746526053 -0.00937745141073 --0.42774968085 -0.0184335323263 --0.427752498045 -0.0274893383098 --0.427754997919 -0.0365444136292 --0.427673082379 -0.0459346749945 --0.427608883285 -0.0553195257678 --0.427646457882 -0.0643638472548 --0.427683726166 -0.0734090328885 --0.42772069843 -0.0824546304453 --0.418705039499 --0.127909580671 --0.418638860928 --0.118899858163 --0.418572459355 --0.109891750727 --0.418505804701 --0.100885679196 --0.4186131322 --0.09156627982 --0.418736800937 --0.0822383873074 --0.418702567301 --0.0732165620209 --0.418668057162 --0.0641951679709 --0.418633263362 --0.0551746470402 --0.418692781454 --0.0458140397756 --0.418768778522 --0.0364480489219 --0.418766607157 --0.0274168396857 --0.418764121024 --0.0183849116393 --0.4187613401 --0.00935271598039 --0.41875986503 -0 --0.4187613401 -0.00935271598039 --0.418764121024 -0.0183849116393 --0.418766607157 -0.0274168396857 --0.418768778522 -0.0364480489219 --0.418692781454 -0.0458140397756 --0.418633263362 -0.0551746470402 --0.418668057162 -0.0641951679709 --0.418702567301 -0.0732165620209 --0.418736800937 -0.0822383873074 --0.4186131322 -0.09156627982 --0.418505804701 -0.100885679196 --0.418572459355 -0.109891750727 --0.418638860928 -0.118899858163 --0.418705039499 -0.127909580671 --0.41009473881 --0.128419202349 --0.41002329297 --0.119373218514 --0.409951595521 --0.110328863448 --0.409879658335 --0.101286573382 --0.409995416794 --0.0919313066824 --0.410128726126 --0.082567521339 --0.41009165461 --0.0735094386816 --0.41005428615 --0.0644517834241 --0.410016600788 --0.0553950085828 --0.410080974771 --0.0459975507229 --0.410163077344 --0.0365946809162 --0.410160491999 --0.0275271548648 --0.410157558615 --0.0184588914283 --0.410154317665 --0.00939035198173 --0.410152613004 -0 --0.410154317665 -0.00939035198173 --0.410157558615 -0.0184588914283 --0.410160491999 -0.0275271548648 --0.410163077344 -0.0365946809162 --0.410080974771 -0.0459975507229 --0.410016600788 -0.0553950085828 --0.41005428615 -0.0644517834241 --0.41009165461 -0.0735094386816 --0.410128726126 -0.082567521339 --0.409995416794 -0.0919313066824 --0.409879658335 -0.101286573382 --0.409951595521 -0.110328863448 --0.41002329297 -0.119373218514 --0.41009473881 -0.128419202349 --0.401384384469 --0.220459013968 --0.401234732054 --0.211406673167 --0.401085068122 --0.202358568892 --0.400935382782 --0.193315118551 --0.401168387605 --0.184069972977 --0.401419637028 --0.174810222373 --0.401306369068 --0.165741345623 --0.401192940599 --0.156675375937 --0.401079363821 --0.147612748826 --0.401258088386 --0.138284288904 --0.401455364036 --0.12894422573 --0.40137870232 --0.119860883797 --0.401301770995 --0.110779181101 --0.401224602254 --0.1016995729 --0.401348708507 --0.0923073740248 --0.401491576065 --0.0829066222285 --0.401451684586 --0.0738111722517 --0.401411475598 --0.0647161484081 --0.40137093684 --0.0556220151431 --0.401440139158 --0.0461866258209 --0.401528278013 --0.036745791605 --0.401525270531 --0.0276408390871 --0.401521902204 --0.0185351313067 --0.401518186144 --0.00942913730454 --0.401516244302 -2.16840434497e-19 --0.401518186144 -0.00942913730454 --0.401521902204 -0.0185351313067 --0.401525270531 -0.0276408390871 --0.401528278013 -0.036745791605 --0.401440139158 -0.0461866258209 --0.40137093684 -0.0556220151431 --0.401411475598 -0.0647161484081 --0.401451684586 -0.0738111722517 --0.401491576065 -0.0829066222285 --0.401348708507 -0.0923073740248 --0.401224602254 -0.1016995729 --0.401301770995 -0.110779181101 --0.40137870232 -0.119860883797 --0.401455364036 -0.12894422573 --0.401258088386 -0.138284288904 --0.401079363821 -0.147612748826 --0.401192940599 -0.156675375937 --0.401306369068 -0.165741345623 --0.401419637028 -0.174810222373 --0.401168387605 -0.184069972977 --0.400935382782 -0.193315118551 --0.401085068122 -0.202358568892 --0.401234732054 -0.211406673167 --0.401384384469 -0.220459013968 --0.392363274975 --0.219947418843 --0.39222371765 --0.210916108398 --0.392084157409 --0.201889065689 --0.391944581046 --0.192866684998 --0.392161978041 --0.183641637913 --0.39239642204 --0.174402052928 --0.392290845697 --0.165354384606 --0.392185098316 --0.156309644438 --0.392079211827 --0.147268258916 --0.392245936562 --0.137960719094 --0.392429962702 --0.128641624053 --0.39235852524 --0.119579633309 --0.392286863721 --0.110519304829 --0.392214961513 --0.101461081062 --0.392330654308 --0.0920904165832 --0.392463894915 --0.0827112382306 --0.392426800465 --0.0736372594136 --0.392389393632 --0.0645637212255 --0.392351686004 --0.0554910821289 --0.392416110506 --0.0460776293857 --0.392498204654 --0.0366587576456 --0.392495539043 --0.0275753608312 --0.392492532618 --0.0184912192771 --0.392489196252 --0.00940679729692 --0.392487459181 -0 --0.392489196252 -0.00940679729692 --0.392492532618 -0.0184912192771 --0.392495539043 -0.0275753608312 --0.392498204654 -0.0366587576456 --0.392416110506 -0.0460776293857 --0.392351686004 -0.0554910821289 --0.392389393632 -0.0645637212255 --0.392426800465 -0.0736372594136 --0.392463894915 -0.0827112382306 --0.392330654308 -0.0920904165832 --0.392214961513 -0.101461081062 --0.392286863721 -0.110519304829 --0.39235852524 -0.119579633309 --0.392429962702 -0.128641624053 --0.392245936562 -0.137960719094 --0.392079211827 -0.147268258916 --0.392185098316 -0.156309644438 --0.392290845697 -0.165354384606 --0.39239642204 -0.174402052928 --0.392161978041 -0.183641637913 --0.391944581046 -0.192866684998 --0.392084157409 -0.201889065689 --0.39222371765 -0.210916108398 --0.392363274975 -0.219947418843 --0.383355461543 --0.219438023249 --0.38322598326 --0.210427672928 --0.383096493354 --0.201421605927 --0.382966998103 --0.192420217166 --0.383168841328 --0.183215170602 --0.383386507335 --0.173995643974 --0.383288582201 --0.164969108557 --0.383190506714 --0.155945517498 --0.383092307232 --0.146925298748 --0.383247037372 --0.137638564792 --0.383417844867 --0.128340320544 --0.383351636319 --0.11929960232 --0.383285225747 --0.110260565943 --0.383218585458 --0.101223648672 --0.383325880794 --0.0918743940199 --0.38344949406 --0.0825166692656 --0.383415194709 --0.0734640849346 --0.383380581515 --0.0644119505479 --0.383345688702 --0.0553607250209 --0.383405351719 --0.0459690863836 --0.383481428044 --0.0365720523 --0.383479100254 --0.0275101287792 --0.383476463485 --0.0184474725428 --0.383473514929 --0.00938454192642 --0.383471967669 -0 --0.383473514929 -0.00938454192642 --0.383476463485 -0.0184474725428 --0.383479100254 -0.0275101287792 --0.383481428044 -0.0365720523 --0.383405351719 -0.0459690863836 --0.383345688702 -0.0553607250209 --0.383380581515 -0.0644119505479 --0.383415194709 -0.0734640849346 --0.38344949406 -0.0825166692656 --0.383325880794 -0.0918743940199 --0.383218585458 -0.101223648672 --0.383285225747 -0.110260565943 --0.383351636319 -0.11929960232 --0.383417844867 -0.128340320544 --0.383247037372 -0.137638564792 --0.383092307232 -0.146925298748 --0.383190506714 -0.155945517498 --0.383288582201 -0.164969108557 --0.383386507335 -0.173995643974 --0.383168841328 -0.183215170602 --0.382966998103 -0.192420217166 --0.383096493354 -0.201421605927 --0.38322598326 -0.210427672928 --0.383355461543 -0.219438023249 --0.374332491483 --0.264019018376 --0.374184158405 --0.255047225491 --0.374035977857 --0.24608114617 --0.373887933071 --0.237121126334 --0.374117425826 --0.228034613887 --0.374361208534 --0.218930795129 --0.374241797176 --0.209941335889 --0.374122359763 --0.200956169136 --0.374002919455 --0.191975700187 --0.374189228512 --0.182790547081 --0.37439014371 --0.173590971459 --0.374299859429 --0.16458549304 --0.374209439952 --0.155582971909 --0.374118911154 --0.146583840399 --0.374261676892 --0.137317799952 --0.374419289896 --0.128040293551 --0.374358299386 --0.119020772734 --0.374297109072 --0.110002950991 --0.374235725275 --0.100987260166 --0.374334658445 --0.0916592998842 --0.374448639351 --0.0823229048267 --0.374417114723 --0.0732916314001 --0.374385308886 --0.0642608234907 --0.374353239451 --0.055230933862 --0.374408147872 --0.0458609887878 --0.374478212158 --0.0364856706291 --0.374476212559 --0.0274451395804 --0.374473935986 --0.0184038883802 --0.374471362461 --0.00936236887826 --0.374470001464 -0 --0.374471362461 -0.00936236887826 --0.374473935986 -0.0184038883802 --0.374476212559 -0.0274451395804 --0.374478212158 -0.0364856706291 --0.374408147872 -0.0458609887878 --0.374353239451 -0.055230933862 --0.374385308886 -0.0642608234907 --0.374417114723 -0.0732916314001 --0.374448639351 -0.0823229048267 --0.374334658445 -0.0916592998842 --0.374235725275 -0.100987260166 --0.374297109072 -0.110002950991 --0.374358299386 -0.119020772734 --0.374419289896 -0.128040293551 --0.374261676892 -0.137317799952 --0.374118911154 -0.146583840399 --0.374209439952 -0.155582971909 --0.374299859429 -0.16458549304 --0.37439014371 -0.173590971459 --0.374189228512 -0.182790547081 --0.374002919455 -0.191975700187 --0.374122359763 -0.200956169136 --0.374241797176 -0.209941335889 --0.374361208534 -0.218930795129 --0.374117425826 -0.228034613887 --0.373887933071 -0.237121126334 --0.374035977857 -0.24608114617 --0.374184158405 -0.255047225491 --0.374332491483 -0.264019018376 --0.365558020549 --0.264943758707 --0.365397583892 --0.255939063157 --0.36523732978 --0.246940150083 --0.365077222806 --0.237947376881 --0.365325227778 --0.228834052091 --0.36558865133 --0.219703411783 --0.365459442912 --0.210681225743 --0.365330226782 --0.201663384125 --0.36520101215 --0.192650299689 --0.365402401283 --0.183436129649 --0.365619562785 --0.174207529989 --0.365521816454 --0.165169444582 --0.365423935166 --0.156134350958 --0.365325939383 --0.147102683202 --0.36548034851 --0.137805844793 --0.365650791603 --0.128497527761 --0.365584685136 --0.119445459288 --0.365518366329 --0.110395102485 --0.36545183331 --0.101346897892 --0.365558986982 --0.0919867945877 --0.365682367799 --0.082618230146 --0.365648055553 --0.0735544083387 --0.365613468096 --0.0644910541512 --0.365578594795 --0.0554286234186 --0.365638219399 --0.0460256520825 --0.365714208647 --0.0366172837493 --0.365711782521 --0.0275441556661 --0.365709058302 --0.018470290165 --0.365706027653 --0.0093961491204 --0.365704432274 --2.16840434497e-19 --0.365706027653 -0.0093961491204 --0.365709058302 -0.018470290165 --0.365711782521 -0.0275441556661 --0.365714208647 -0.0366172837493 --0.365638219399 -0.0460256520825 --0.365578594795 -0.0554286234186 --0.365613468096 -0.0644910541512 --0.365648055553 -0.0735544083387 --0.365682367799 -0.082618230146 --0.365558986982 -0.0919867945877 --0.36545183331 -0.101346897892 --0.365518366329 -0.110395102485 --0.365584685136 -0.119445459288 --0.365650791603 -0.128497527761 --0.36548034851 -0.137805844793 --0.365325939383 -0.147102683202 --0.365423935166 -0.156134350958 --0.365521816454 -0.165169444582 --0.365619562785 -0.174207529989 --0.365402401283 -0.183436129649 --0.36520101215 -0.192650299689 --0.365330226782 -0.201663384125 --0.365459442912 -0.210681225743 --0.36558865133 -0.219703411783 --0.365325227778 -0.228834052091 --0.365077222806 -0.237947376881 --0.36523732978 -0.246940150083 --0.365397583892 -0.255939063157 --0.365558020549 -0.264943758707 --0.356757272612 --0.265901351667 --0.356584843314 --0.256862623039 --0.356412612381 --0.247829744844 --0.356240558698 --0.238803080246 --0.356506902586 --0.229661935363 --0.356789789123 --0.220503450041 --0.356650878702 --0.211447396948 --0.356511964604 --0.202395739977 --0.356373072656 --0.193348896545 --0.35658942496 --0.184104660017 --0.356822691648 --0.174845970541 --0.356717548508 --0.165774126621 --0.356612272987 --0.15670530976 --0.356506869373 --0.147639950532 --0.356672822428 --0.138311214439 --0.356855993565 --0.128970984432 --0.356784817075 --0.119885210856 --0.356713407676 --0.110801160721 --0.356641758066 --0.101719285577 --0.356757053482 --0.0923259130888 --0.356889777888 --0.082924052366 --0.356852708126 --0.0738265172616 --0.356815343795 --0.064729450801 --0.356777682982 --0.055633316069 --0.35684198265 --0.0461961756694 --0.356923852338 --0.0367536113825 --0.356921015885 --0.0276467191689 --0.35691785532 --0.018539071498 --0.356914370689 --0.00943113994673 --0.35691254249 -0 --0.356914370689 -0.00943113994673 --0.35691785532 -0.018539071498 --0.356921015885 -0.0276467191689 --0.356923852338 -0.0367536113825 --0.35684198265 -0.0461961756694 --0.356777682982 -0.055633316069 --0.356815343795 -0.064729450801 --0.356852708126 -0.0738265172616 --0.356889777888 -0.082924052366 --0.356757053482 -0.0923259130888 --0.356641758066 -0.101719285577 --0.356713407676 -0.110801160721 --0.356784817075 -0.119885210856 --0.356855993565 -0.128970984432 --0.356672822428 -0.138311214439 --0.356506869373 -0.147639950532 --0.356612272987 -0.15670530976 --0.356717548508 -0.165774126621 --0.356822691648 -0.174845970541 --0.35658942496 -0.184104660017 --0.356373072656 -0.193348896545 --0.356511964604 -0.202395739977 --0.356650878702 -0.211447396948 --0.356789789123 -0.220503450041 --0.356506902586 -0.229661935363 --0.356240558698 -0.238803080246 --0.356412612381 -0.247829744844 --0.356584843314 -0.256862623039 --0.356757272612 -0.265901351667 --0.347724920797 --0.265362069175 --0.347565159292 --0.256341718324 --0.347405566427 --0.247327223388 --0.347246145816 --0.238318962132 --0.347493098433 --0.229194608313 --0.347755388682 --0.220052972594 --0.34762670284 --0.211015467292 --0.347498020556 --0.201982380141 --0.347369351937 --0.192954103975 --0.347569923768 --0.183727541225 --0.347786179708 --0.174486579335 --0.347688810028 --0.165433421408 --0.347591304042 --0.156383309829 --0.34749367377 --0.14733666834 --0.347647489938 --0.138026327653 --0.347817266305 --0.128704531188 --0.347751392539 --0.119637576193 --0.347685300148 --0.110572356777 --0.347618968734 --0.101509318134 --0.347725757499 --0.092134880176 --0.347848732234 --0.0827519901685 --0.347814492404 --0.0736733723203 --0.347779973698 --0.0645952351695 --0.347745171925 --0.0555180372583 --0.347804630133 --0.0461001865651 --0.347880394608 --0.036676936049 --0.347877899475 --0.0275890336959 --0.347875101387 --0.0185003855727 --0.34787199702 --0.0094114587918 --0.347870366031 --2.16840434497e-19 --0.34787199702 -0.0094114587918 --0.347875101387 -0.0185003855727 --0.347877899475 -0.0275890336959 --0.347880394608 -0.036676936049 --0.347804630133 -0.0461001865651 --0.347745171925 -0.0555180372583 --0.347779973698 -0.0645952351695 --0.347814492404 -0.0736733723203 --0.347848732234 -0.0827519901685 --0.347725757499 -0.092134880176 --0.347618968734 -0.101509318134 --0.347685300148 -0.110572356777 --0.347751392539 -0.119637576193 --0.347817266305 -0.128704531188 --0.347647489938 -0.138026327653 --0.34749367377 -0.14733666834 --0.347591304042 -0.156383309829 --0.347688810028 -0.165433421408 --0.347786179708 -0.174486579335 --0.347569923768 -0.183727541225 --0.347369351937 -0.192954103975 --0.347498020556 -0.201982380141 --0.34762670284 -0.211015467292 --0.347755388682 -0.220052972594 --0.347493098433 -0.229194608313 --0.347246145816 -0.238318962132 --0.347405566427 -0.247327223388 --0.347565159292 -0.256341718324 --0.347724920797 -0.265362069175 --0.338703945726 --0.264824761986 --0.338556832642 --0.255822731636 --0.338409872532 --0.246826574177 --0.338263060245 --0.237836669818 --0.338490645655 --0.228729026973 --0.338732371129 --0.219604160402 --0.338613901838 --0.210585148594 --0.338495435498 --0.201570571817 --0.338376958897 --0.19256080853 --0.338561772823 --0.183351828441 --0.338761052942 --0.174128505518 --0.338671434022 --0.165093982099 --0.338581693448 --0.156062521305 --0.338491830368 --0.14703454261 --0.338633511217 --0.137742504225 --0.338789904079 --0.128439048974 --0.338729322595 --0.119390853644 --0.338668539411 --0.110344406028 --0.338607534028 --0.101300149366 --0.338705832705 --0.0919445511326 --0.33881904894 --0.0825805322156 --0.338787642224 --0.07352077647 --0.338755962601 --0.0644615102707 --0.338724017988 --0.0554031914221 --0.338778656972 --0.046004532305 --0.338848321817 --0.0366004946955 --0.338846159198 --0.0275315237623 --0.338843717411 --0.0184618172168 --0.338840995161 --0.00939183773559 --0.338839561169 -2.16840434497e-19 --0.338840995161 -0.00939183773559 --0.338843717411 -0.0184618172168 --0.338846159198 -0.0275315237623 --0.338848321817 -0.0366004946955 --0.338778656972 -0.046004532305 --0.338724017988 -0.0554031914221 --0.338755962601 -0.0644615102707 --0.338787642224 -0.07352077647 --0.33881904894 -0.0825805322156 --0.338705832705 -0.0919445511326 --0.338607534028 -0.101300149366 --0.338668539411 -0.110344406028 --0.338729322595 -0.119390853644 --0.338789904079 -0.128439048974 --0.338633511217 -0.137742504225 --0.338491830368 -0.14703454261 --0.338581693448 -0.156062521305 --0.338671434022 -0.165093982099 --0.338761052942 -0.174128505518 --0.338561772823 -0.183351828441 --0.338376958897 -0.19256080853 --0.338495435498 -0.201570571817 --0.338613901838 -0.210585148594 --0.338732371129 -0.219604160402 --0.338490645655 -0.228729026973 --0.338263060245 -0.237836669818 --0.338409872532 -0.246826574177 --0.338556832642 -0.255822731636 --0.338703945726 -0.264824761986 --0.329668467414 --0.309133374479 --0.329508027268 --0.300167561665 --0.329347889606 --0.291209159149 --0.329188037071 --0.282258495016 --0.329435055643 --0.273283920838 --0.329694652245 --0.26428938609 --0.329560171692 --0.255305631414 --0.329425827107 --0.246327772219 --0.329291615245 --0.237356178995 --0.329499866398 --0.228265173503 --0.329721050949 --0.219156996323 --0.329612780628 --0.210156419488 --0.329504510411 --0.201160289646 --0.329396216656 --0.192168993279 --0.32956529162 --0.1829775173 --0.329747604651 --0.173771741456 --0.329665713586 --0.164755793686 --0.329583725599 --0.155742926683 --0.329501631894 --0.146733560644 --0.329631200074 --0.137459727479 --0.329774234646 --0.128174515674 --0.3297189285 --0.119145022145 --0.329663424504 --0.110117291454 --0.329607736431 --0.101091767582 --0.329697577919 --0.0917549152772 --0.329801055354 --0.0824096693039 --0.329772452306 --0.0733687174489 --0.32974360883 --0.0643282677537 --0.32971452015 --0.0552887718434 --0.329764341224 --0.045909206179 --0.32982791569 --0.0365242821668 --0.329826091023 --0.02747418586 --0.32982401459 --0.0184233647268 --0.329821673566 --0.00937227570326 --0.329820434085 -0 --0.329821673566 -0.00937227570326 --0.32982401459 -0.0184233647268 --0.329826091023 -0.02747418586 --0.32982791569 -0.0365242821668 --0.329764341224 -0.045909206179 --0.32971452015 -0.0552887718434 --0.32974360883 -0.0643282677537 --0.329772452306 -0.0733687174489 --0.329801055354 -0.0824096693039 --0.329697577919 -0.0917549152772 --0.329607736431 -0.101091767582 --0.329663424504 -0.110117291454 --0.3297189285 -0.119145022145 --0.329774234646 -0.128174515674 --0.329631200074 -0.137459727479 --0.329501631894 -0.146733560644 --0.329583725599 -0.155742926683 --0.329665713586 -0.164755793686 --0.329747604651 -0.173771741456 --0.32956529162 -0.1829775173 --0.329396216656 -0.192168993279 --0.329504510411 -0.201160289646 --0.329612780628 -0.210156419488 --0.329721050949 -0.219156996323 --0.329499866398 -0.228265173503 --0.329291615245 -0.237356178995 --0.329425827107 -0.246327772219 --0.329560171692 -0.255305631414 --0.329694652245 -0.26428938609 --0.329435055643 -0.273283920838 --0.329188037071 -0.282258495016 --0.329347889606 -0.291209159149 --0.329508027268 -0.300167561665 --0.329668467414 -0.309133374479 --0.320744955908 --0.310080821199 --0.320570485259 --0.301085709411 --0.320396332273 --0.292098067262 --0.320222487522 --0.283118241017 --0.320490865517 --0.274122269059 --0.320772909737 --0.2651063449 --0.320626629035 --0.256093511333 --0.320480492706 --0.247086616645 --0.320334508839 --0.238086049007 --0.32056082163 --0.228971393051 --0.3208011786 --0.219839568269 --0.320683364054 --0.210810061716 --0.320565546099 --0.201785038709 --0.320447710867 --0.192764909758 --0.320631492654 --0.183547841764 --0.320829647041 --0.174316461301 --0.320740481599 --0.165271688566 --0.320651204451 --0.156230017577 --0.320561825459 --0.147191889691 --0.320702765438 --0.137890886196 --0.32085832212 --0.128578484254 --0.320798018684 --0.119520217596 --0.320737505199 --0.110463727342 --0.32067678822 --0.101409461806 --0.320774623818 --0.0920442467726 --0.320887269369 --0.082670622224 --0.320855943618 --0.0736008989086 --0.320824374503 --0.0645316776622 --0.320792536323 --0.0554634155629 --0.320846982601 --0.046054709568 --0.320916368318 --0.0366406242064 --0.320914123314 --0.0275617125442 --0.320911616353 --0.0184820628573 --0.320908825258 --0.00940213754122 --0.320907354095 -2.16840434497e-19 --0.320908825258 -0.00940213754122 --0.320911616353 -0.0184820628573 --0.320914123314 -0.0275617125442 --0.320916368318 -0.0366406242064 --0.320846982601 -0.046054709568 --0.320792536323 -0.0554634155629 --0.320824374503 -0.0645316776622 --0.320855943618 -0.0736008989086 --0.320887269369 -0.082670622224 --0.320774623818 -0.0920442467726 --0.32067678822 -0.101409461806 --0.320737505199 -0.110463727342 --0.320798018684 -0.119520217596 --0.32085832212 -0.128578484254 --0.320702765438 -0.137890886196 --0.320561825459 -0.147191889691 --0.320651204451 -0.156230017577 --0.320740481599 -0.165271688566 --0.320829647041 -0.174316461301 --0.320631492654 -0.183547841764 --0.320447710867 -0.192764909758 --0.320565546099 -0.201785038709 --0.320683364054 -0.210810061716 --0.3208011786 -0.219839568269 --0.32056082163 -0.228971393051 --0.320334508839 -0.238086049007 --0.320480492706 -0.247086616645 --0.320626629035 -0.256093511333 --0.320772909737 -0.2651063449 --0.320490865517 -0.274122269059 --0.320222487522 -0.283118241017 --0.320396332273 -0.292098067262 --0.320570485259 -0.301085709411 --0.320744955908 -0.310080821199 --0.311114723926 --0.328856158238 --0.311449232147 --0.319973503456 --0.311797981005 --0.31106817986 --0.311609576738 --0.30204258283 --0.311421518281 --0.293024526883 --0.311233804985 --0.284014382781 --0.311523386256 --0.274996024057 --0.311827700487 --0.26595770441 --0.31166971783 --0.256914602091 --0.311511898693 --0.247877492559 --0.311354240764 --0.238846764529 --0.31159846641 --0.229707402238 --0.311857843131 --0.220550864197 --0.311730550875 --0.211491228355 --0.311603258882 --0.202436122224 --0.31147596671 --0.193385958687 --0.311674345544 --0.184142189101 --0.311888223853 --0.174884095487 --0.311791851552 --0.165809300296 --0.311695354516 --0.156737627306 --0.311598735632 --0.147669521559 --0.311750947083 --0.138340195759 --0.311918924971 --0.128999456353 --0.311853663607 --0.119911201227 --0.311788188873 --0.110824740835 --0.311722492926 --0.101740524498 --0.311828242874 --0.0923457631941 --0.31194996713 --0.0829425714879 --0.311915959117 --0.0738428572914 --0.31188167856 --0.064743643803 --0.311847114613 --0.0556453983994 --0.311906162326 --0.0462063543326 --0.311981312639 --0.036761905193 --0.311978656937 --0.0276529557015 --0.311975712602 --0.0185432527489 --0.311972466663 --0.0094332665196 --0.311970766771 -0 --0.311972466663 -0.0094332665196 --0.311975712602 -0.0185432527489 --0.311978656937 -0.0276529557015 --0.311981312639 -0.036761905193 --0.311906162326 -0.0462063543326 --0.311847114613 -0.0556453983994 --0.31188167856 -0.064743643803 --0.311915959117 -0.0738428572914 --0.31194996713 -0.0829425714879 --0.311828242874 -0.0923457631941 --0.311722492926 -0.101740524498 --0.311788188873 -0.110824740835 --0.311853663607 -0.119911201227 --0.311918924971 -0.128999456353 --0.311750947083 -0.138340195759 --0.311598735632 -0.147669521559 --0.311695354516 -0.156737627306 --0.311791851552 -0.165809300296 --0.311888223853 -0.174884095487 --0.311674345544 -0.184142189101 --0.31147596671 -0.193385958687 --0.311603258882 -0.202436122224 --0.311730550875 -0.211491228355 --0.311857843131 -0.220550864197 --0.31159846641 -0.229707402238 --0.311354240764 -0.238846764529 --0.311511898693 -0.247877492559 --0.31166971783 -0.256914602091 --0.311827700487 -0.26595770441 --0.311523386256 -0.274996024057 --0.311233804985 -0.284014382781 --0.311421518281 -0.293024526883 --0.311609576738 -0.30204258283 --0.311797981005 -0.31106817986 --0.311449232147 -0.319973503456 --0.311114723926 -0.328856158238 --0.302125836538 --0.328291634425 --0.302433525987 --0.319421559786 --0.302754310621 --0.310528889449 --0.302581158781 --0.301519011118 --0.302408323783 --0.292516681467 --0.302235817967 --0.283522281028 --0.302502184569 --0.274517504472 --0.30278208936 --0.265492815763 --0.30263691053 --0.256465573218 --0.302491882951 --0.247444343963 --0.302346996219 --0.238429501994 --0.302571624784 --0.229304587546 --0.302810180541 --0.220162547137 --0.302693216298 --0.21111891548 --0.302576257459 --0.202079828633 --0.302459292134 --0.193045684199 --0.302641726059 --0.183817124118 --0.302838409123 --0.174574281554 --0.302749888846 --0.165515614066 --0.302661260454 --0.156460089553 --0.302572498385 --0.147408126096 --0.302712419601 --0.138094624245 --0.302866863534 --0.128769753946 --0.30280695806 --0.119697730505 --0.302746850428 --0.110627514483 --0.302686545731 --0.101559554414 --0.302783699683 --0.0921810880424 --0.302895547776 --0.0827942164954 --0.302864399137 --0.0737108225267 --0.302832994055 --0.0646279402388 --0.302801320423 --0.0555460313023 --0.302855480935 --0.0461235884241 --0.302924455399 --0.036695758815 --0.302922148736 --0.0276031916988 --0.30291957004 --0.0185098789931 --0.302916707961 --0.00941628774828 --0.302915206788 -0 --0.302916707961 -0.00941628774828 --0.30291957004 -0.0185098789931 --0.302922148736 -0.0276031916988 --0.302924455399 -0.036695758815 --0.302855480935 -0.0461235884241 --0.302801320423 -0.0555460313023 --0.302832994055 -0.0646279402388 --0.302864399137 -0.0737108225267 --0.302895547776 -0.0827942164954 --0.302783699683 -0.0921810880424 --0.302686545731 -0.101559554414 --0.302746850428 -0.110627514483 --0.30280695806 -0.119697730505 --0.302866863534 -0.128769753946 --0.302712419601 -0.138094624245 --0.302572498385 -0.147408126096 --0.302661260454 -0.156460089553 --0.302749888846 -0.165515614066 --0.302838409123 -0.174574281554 --0.302641726059 -0.183817124118 --0.302459292134 -0.193045684199 --0.302576257459 -0.202079828633 --0.302693216298 -0.21111891548 --0.302810180541 -0.220162547137 --0.302571624784 -0.229304587546 --0.302346996219 -0.238429501994 --0.302491882951 -0.247444343963 --0.30263691053 -0.256465573218 --0.30278208936 -0.265492815763 --0.302502184569 -0.274517504472 --0.302235817967 -0.283522281028 --0.302408323783 -0.292516681467 --0.302581158781 -0.301519011118 --0.302754310621 -0.310528889449 --0.302433525987 -0.319421559786 --0.302125836538 -0.328291634425 --0.29314643865 --0.327728855145 --0.293427325558 --0.318871312022 --0.293720169091 --0.309991229175 --0.293562264739 --0.300997033758 --0.293404642568 --0.292010411142 --0.293247313591 --0.283031715637 --0.293490483838 --0.274040456003 --0.293746000929 --0.265029333695 --0.293613598777 --0.256017906715 --0.293481340678 --0.247012524896 --0.293349211326 --0.238013547422 --0.293554259896 --0.228903017001 --0.293772017929 --0.219775404749 --0.293665376869 --0.210747742834 --0.293558740235 --0.201724640336 --0.293452095477 --0.192706489384 --0.293618591561 --0.183493068299 --0.293798088144 --0.17426540047 --0.293717404946 --0.165222823118 --0.293636628613 --0.156183402794 --0.293555727237 --0.14714755589 --0.2936833818 --0.137849811617 --0.29382429695 --0.128540731022 --0.293769736876 --0.119484906426 --0.29371499581 --0.110430896087 --0.293660067826 --0.10137914843 --0.293748646038 --0.0920169045105 --0.293850646981 --0.0826462825828 --0.293822336078 --0.0735791704675 --0.293793790503 --0.0645125811023 --0.293765009486 --0.0554469706399 --0.293814287108 --0.0460410494009 --0.293877098597 --0.0366297619252 --0.293875140272 --0.0275535403926 --0.293872927117 --0.018476580657 --0.293870448761 --0.00939934751652 --0.293869139014 -2.16840434497e-19 --0.293870448761 -0.00939934751652 --0.293872927117 -0.018476580657 --0.293875140272 -0.0275535403926 --0.293877098597 -0.0366297619252 --0.293814287108 -0.0460410494009 --0.293765009486 -0.0554469706399 --0.293793790503 -0.0645125811023 --0.293822336078 -0.0735791704675 --0.293850646981 -0.0826462825828 --0.293748646038 -0.0920169045105 --0.293660067826 -0.10137914843 --0.29371499581 -0.110430896087 --0.293769736876 -0.119484906426 --0.29382429695 -0.128540731022 --0.2936833818 -0.137849811617 --0.293555727237 -0.14714755589 --0.293636628613 -0.156183402794 --0.293717404946 -0.165222823118 --0.293798088144 -0.17426540047 --0.293618591561 -0.183493068299 --0.293452095477 -0.192706489384 --0.293558740235 -0.201724640336 --0.293665376869 -0.210747742834 --0.293772017929 -0.219775404749 --0.293554259896 -0.228903017001 --0.293349211326 -0.238013547422 --0.293481340678 -0.247012524896 --0.293613598777 -0.256017906715 --0.293746000929 -0.265029333695 --0.293490483838 -0.274040456003 --0.293247313591 -0.283031715637 --0.293404642568 -0.292010411142 --0.293562264739 -0.300997033758 --0.293720169091 -0.309991229175 --0.293427325558 -0.318871312022 --0.29314643865 -0.327728855145 --0.284176859091 --0.327167778104 --0.28443097868 --0.318322716535 --0.284695904457 --0.309455167689 --0.284553221241 --0.300476629955 --0.284410797702 --0.29150568456 --0.28426862633 --0.282542669054 --0.284488611393 --0.273564850113 --0.284719764582 --0.264567223434 --0.28460013555 --0.25557159808 --0.284480635905 --0.246582025975 --0.284361246234 --0.237598874944 --0.284546729397 --0.228502671046 --0.284743712645 --0.219389428457 --0.284647379993 --0.210377692649 --0.284551051944 --0.201370535053 --0.284454715117 --0.192368351861 --0.284605283363 --0.18316999699 --0.284767618683 --0.173957439498 --0.284694761086 --0.164930917307 --0.284621819624 --0.155907562849 --0.284548769609 --0.146887801775 --0.284664176057 --0.137605736971 --0.284791570058 --0.128312364824 --0.284742341517 --0.119272701278 --0.284692961016 --0.110234870222 --0.284643409613 --0.101199308241 --0.284723413626 --0.0918532043858 --0.284815572242 --0.0824987536413 --0.284790101687 --0.0734478900564 --0.284764410932 --0.0643975562849 --0.284738525489 --0.0553482114243 --0.28478293923 --0.0459587369183 --0.284839594095 --0.0365639119206 --0.284837971153 --0.0275039987135 --0.284836118021 --0.0184433563703 --0.284834022761 --0.00938244496082 --0.284832910131 -2.16840434497e-19 --0.284834022761 -0.00938244496082 --0.284836118021 -0.0184433563703 --0.284837971153 -0.0275039987135 --0.284839594095 -0.0365639119206 --0.28478293923 -0.0459587369183 --0.284738525489 -0.0553482114243 --0.284764410932 -0.0643975562849 --0.284790101687 -0.0734478900564 --0.284815572242 -0.0824987536413 --0.284723413626 -0.0918532043858 --0.284643409613 -0.101199308241 --0.284692961016 -0.110234870222 --0.284742341517 -0.119272701278 --0.284791570058 -0.128312364824 --0.284664176057 -0.137605736971 --0.284548769609 -0.146887801775 --0.284621819624 -0.155907562849 --0.284694761086 -0.164930917307 --0.284767618683 -0.173957439498 --0.284605283363 -0.18316999699 --0.284454715117 -0.192368351861 --0.284551051944 -0.201370535053 --0.284647379993 -0.210377692649 --0.284743712645 -0.219389428457 --0.284546729397 -0.228502671046 --0.284361246234 -0.237598874944 --0.284480635905 -0.246582025975 --0.28460013555 -0.25557159808 --0.284719764582 -0.264567223434 --0.284488611393 -0.273564850113 --0.28426862633 -0.282542669054 --0.284410797702 -0.29150568456 --0.284553221241 -0.300476629955 --0.284695904457 -0.309455167689 --0.28443097868 -0.318322716535 --0.284176859091 -0.327167778104 --0.275069696207 --0.32802076568 --0.275347961655 --0.319159413297 --0.27563805029 --0.310275554138 --0.275481596181 --0.301271611763 --0.27532544883 --0.292275331642 --0.275169582419 --0.283287047536 --0.275410476556 --0.27429072797 --0.275663610449 --0.265274603837 --0.275532422884 --0.256253778465 --0.27540136729 --0.24723904213 --0.275270436511 --0.238230778675 --0.275473603745 --0.229114122226 --0.275689364234 --0.219980426346 --0.275583680425 --0.210943619606 --0.275477992612 --0.201911421839 --0.275372300884 --0.192884249624 --0.275537310898 --0.183663770114 --0.27571520061 --0.174429080312 --0.275635211471 --0.165377578693 --0.275555126561 --0.156329268619 --0.275474929424 --0.147284586451 --0.2756014848 --0.1379790344 --0.275741156471 --0.1286621608 --0.275687035827 --0.119597566138 --0.275632733326 --0.110534813151 --0.275578248208 --0.101474346538 --0.275666089959 --0.0921037267273 --0.275767223797 --0.0827247425563 --0.275739104616 --0.0736489508499 --0.275710744018 --0.064573688736 --0.275682160731 --0.0554994190123 --0.275731100507 --0.0460847562483 --0.275793436609 --0.0366647230362 --0.275791397737 --0.0275798412575 --0.275789106002 --0.0184942186436 --0.275786566269 --0.00940832041669 --0.27578523136 -0 --0.275786566269 -0.00940832041669 --0.275789106002 -0.0184942186436 --0.275791397737 -0.0275798412575 --0.275793436609 -0.0366647230362 --0.275731100507 -0.0460847562483 --0.275682160731 -0.0554994190123 --0.275710744018 -0.064573688736 --0.275739104616 -0.0736489508499 --0.275767223797 -0.0827247425563 --0.275666089959 -0.0921037267273 --0.275578248208 -0.101474346538 --0.275632733326 -0.110534813151 --0.275687035827 -0.119597566138 --0.275741156471 -0.1286621608 --0.2756014848 -0.1379790344 --0.275474929424 -0.147284586451 --0.275555126561 -0.156329268619 --0.275635211471 -0.165377578693 --0.27571520061 -0.174429080312 --0.275537310898 -0.183663770114 --0.275372300884 -0.192884249624 --0.275477992612 -0.201911421839 --0.275583680425 -0.210943619606 --0.275689364234 -0.219980426346 --0.275473603745 -0.229114122226 --0.275270436511 -0.238230778675 --0.27540136729 -0.24723904213 --0.275532422884 -0.256253778465 --0.275663610449 -0.265274603837 --0.275410476556 -0.27429072797 --0.275169582419 -0.283287047536 --0.27532544883 -0.292275331642 --0.275481596181 -0.301271611763 --0.27563805029 -0.310275554138 --0.275347961655 -0.319159413297 --0.275069696207 -0.32802076568 --0.265835698426 --0.373411774802 --0.266177956481 --0.364682933089 --0.26653254893 --0.355928961386 --0.266335276732 --0.346915553692 --0.266138532803 --0.337911547528 --0.265942307909 --0.328917250362 --0.266244553571 --0.320038643355 --0.266559633489 --0.311137530782 --0.266389510055 --0.302106948793 --0.26621972196 --0.293084102499 --0.26605025587 --0.284069337336 --0.266311930036 --0.275053487281 --0.266586890731 --0.266017831502 --0.266444217657 --0.256970560325 --0.266301685546 --0.247929429822 --0.266159305883 --0.238894834789 --0.266380051245 --0.229756630092 --0.266614456726 --0.22060136464 --0.266499479508 --0.211538241337 --0.266384501534 --0.202479767561 --0.266269522967 --0.19342635438 --0.266448887389 --0.184182603364 --0.26664222367 --0.174924621342 --0.266555149775 --0.165846884457 --0.266467968736 --0.156772363419 --0.266380669848 --0.147701492821 --0.266518299074 --0.138371257307 --0.266670159756 --0.129029686623 --0.266611182675 --0.119938897097 --0.266552005148 --0.110849957544 --0.266492621864 --0.101763320972 --0.266588251646 --0.0923669585861 --0.266698301529 --0.0829622057646 --0.266667540043 --0.0738602090719 --0.266636528383 --0.0647587474214 --0.266605265536 --0.0556582813833 --0.266658699579 --0.0462171781477 --0.266726671979 --0.0367706828153 --0.266724225018 --0.0276595573363 --0.266721501469 --0.0185476783533 --0.266718507691 --0.00943551714935 --0.266716946307 -2.16840434497e-19 --0.266718507691 -0.00943551714935 --0.266721501469 -0.0185476783533 --0.266724225018 -0.0276595573363 --0.266726671979 -0.0367706828153 --0.266658699579 -0.0462171781477 --0.266605265536 -0.0556582813833 --0.266636528383 -0.0647587474214 --0.266667540043 -0.0738602090719 --0.266698301529 -0.0829622057646 --0.266588251646 -0.0923669585861 --0.266492621864 -0.101763320972 --0.266552005148 -0.110849957544 --0.266611182675 -0.119938897097 --0.266670159756 -0.129029686623 --0.266518299074 -0.138371257307 --0.266380669848 -0.147701492821 --0.266467968736 -0.156772363419 --0.266555149775 -0.165846884457 --0.26664222367 -0.174924621342 --0.266448887389 -0.184182603364 --0.266269522967 -0.19342635438 --0.266384501534 -0.202479767561 --0.266499479508 -0.211538241337 --0.266614456726 -0.22060136464 --0.266380051245 -0.229756630092 --0.266159305883 -0.238894834789 --0.266301685546 -0.247929429822 --0.266444217657 -0.256970560325 --0.266586890731 -0.266017831502 --0.266311930036 -0.275053487281 --0.26605025587 -0.284069337336 --0.26621972196 -0.293084102499 --0.266389510055 -0.302106948793 --0.266559633489 -0.311137530782 --0.266244553571 -0.320038643355 --0.265942307909 -0.328917250362 --0.266138532803 -0.337911547528 --0.266335276732 -0.346915553692 --0.26653254893 -0.355928961386 --0.266177956481 -0.364682933089 --0.265835698426 -0.373411774802 --0.256843421781 --0.372880595957 --0.257155007289 --0.36416138265 --0.257477805431 --0.355417091688 --0.257298396159 --0.3464167442 --0.257119466541 --0.33742581245 --0.256941014122 --0.328444591038 --0.257216182568 --0.319576498446 --0.257503022997 --0.310685962434 --0.257348301974 --0.301668563295 --0.257193874445 --0.292658909373 --0.257039745308 --0.28365734543 --0.257277976479 --0.274652829833 --0.257528290573 --0.26562856627 --0.257398547393 --0.256594604071 --0.257268924679 --0.247566782164 --0.257139440741 --0.238545505432 --0.25734040131 --0.229419379175 --0.257553781186 --0.220276227174 --0.25744922762 --0.21122651492 --0.25734467829 --0.202181475109 --0.257240133263 --0.193141501148 --0.257403391127 --0.183910453894 --0.257579371662 --0.174665210721 --0.257500231225 --0.165600993337 --0.257420975799 --0.156540005282 --0.257341617204 --0.147482669911 --0.25746685232 --0.138165657456 --0.257605031929 --0.128837342054 --0.257551451243 --0.119760156431 --0.257497704831 --0.1106848343 --0.257443770025 --0.101611825279 --0.25753072048 --0.0922290734265 --0.2576308004 --0.0828379535489 --0.257602913149 --0.0737496354662 --0.257574802903 --0.0646618612348 --0.257546463706 --0.0555750888329 --0.257594968005 --0.0461478534607 --0.257656703538 --0.0367152422213 --0.257654595294 --0.0276178472825 --0.257652246569 --0.0185197058216 --0.257649639957 --0.00942128641518 --0.257648272323 -0 --0.257649639957 -0.00942128641518 --0.257652246569 -0.0185197058216 --0.257654595294 -0.0276178472825 --0.257656703538 -0.0367152422213 --0.257594968005 -0.0461478534607 --0.257546463706 -0.0555750888329 --0.257574802903 -0.0646618612348 --0.257602913149 -0.0737496354662 --0.2576308004 -0.0828379535489 --0.25753072048 -0.0922290734265 --0.257443770025 -0.101611825279 --0.257497704831 -0.1106848343 --0.257551451243 -0.119760156431 --0.257605031929 -0.128837342054 --0.25746685232 -0.138165657456 --0.257341617204 -0.147482669911 --0.257420975799 -0.156540005282 --0.257500231225 -0.165600993337 --0.257579371662 -0.174665210721 --0.257403391127 -0.183910453894 --0.257240133263 -0.193141501148 --0.25734467829 -0.202181475109 --0.25744922762 -0.21122651492 --0.257553781186 -0.220276227174 --0.25734040131 -0.229419379175 --0.257139440741 -0.238545505432 --0.257268924679 -0.247566782164 --0.257398547393 -0.256594604071 --0.257528290573 -0.26562856627 --0.257277976479 -0.274652829833 --0.257039745308 -0.28365734543 --0.257193874445 -0.292658909373 --0.257348301974 -0.301668563295 --0.257503022997 -0.310685962434 --0.257216182568 -0.319576498446 --0.256941014122 -0.328444591038 --0.257119466541 -0.33742581245 --0.257298396159 -0.3464167442 --0.257477805431 -0.355417091688 --0.257155007289 -0.36416138265 --0.256843421781 -0.372880595957 --0.247858830684 --0.372350682429 --0.248139748072 --0.36364105674 --0.248430763083 --0.354906400577 --0.248269207727 --0.345919098863 --0.248108077683 --0.336941221707 --0.247947377225 --0.327973061263 --0.248195494053 --0.319115453985 --0.248454115439 --0.310235439298 --0.248314778814 --0.30123120773 --0.248175705427 --0.292234737742 --0.248036906388 --0.283246360049 --0.248251707179 --0.274253144337 --0.248477387284 --0.26524021369 --0.248360551802 --0.256219532139 --0.24824383448 --0.247205014174 --0.248127241492 --0.238197039265 --0.248308409796 --0.229082930015 --0.248500769484 --0.21995184157 --0.248406648761 --0.210915533416 --0.248312530916 --0.201883909558 --0.248218405357 --0.192857355537 --0.248365559114 --0.183638953896 --0.248524193066 --0.174406395508 --0.248452968328 --0.16535568232 --0.248381632033 --0.156308202787 --0.248310225241 --0.147264398477 --0.248423066874 --0.137960555697 --0.248547572599 --0.128645426521 --0.248499390129 --0.119581829515 --0.248451058799 --0.110520106659 --0.248402562051 --0.101460702741 --0.248480838287 --0.092091500013 --0.248570959733 --0.0827139545225 --0.248545949998 --0.0736392980185 --0.248520733324 --0.0645651926218 --0.2484953156 --0.055492096413 --0.248538892737 --0.0460786675632 --0.248594401221 --0.03665987857 --0.248592631649 --0.0275761953393 --0.248590651279 --0.0184917720928 --0.248588437081 --0.0094070755878 --0.248587262899 -0 --0.248588437081 -0.0094070755878 --0.248590651279 -0.0184917720928 --0.248592631649 -0.0275761953393 --0.248594401221 -0.03665987857 --0.248538892737 -0.0460786675632 --0.2484953156 -0.055492096413 --0.248520733324 -0.0645651926218 --0.248545949998 -0.0736392980185 --0.248570959733 -0.0827139545225 --0.248480838287 -0.092091500013 --0.248402562051 -0.101460702741 --0.248451058799 -0.110520106659 --0.248499390129 -0.119581829515 --0.248547572599 -0.128645426521 --0.248423066874 -0.137960555697 --0.248310225241 -0.147264398477 --0.248381632033 -0.156308202787 --0.248452968328 -0.16535568232 --0.248524193066 -0.174406395508 --0.248365559114 -0.183638953896 --0.248218405357 -0.192857355537 --0.248312530916 -0.201883909558 --0.248406648761 -0.210915533416 --0.248500769484 -0.21995184157 --0.248308409796 -0.229082930015 --0.248127241492 -0.238197039265 --0.24824383448 -0.247205014174 --0.248360551802 -0.256219532139 --0.248477387284 -0.26524021369 --0.248251707179 -0.274253144337 --0.248036906388 -0.283246360049 --0.248175705427 -0.292234737742 --0.248314778814 -0.30123120773 --0.248454115439 -0.310235439298 --0.248195494053 -0.319115453985 --0.247947377225 -0.327973061263 --0.248108077683 -0.336941221707 --0.248269207727 -0.345919098863 --0.248430763083 -0.354906400577 --0.248139748072 -0.36364105674 --0.247858830684 -0.372350682429 --0.238882287023 --0.371822026727 --0.239132569721 --0.363121940147 --0.23939182484 --0.354396880892 --0.239248099843 --0.345422616533 --0.239104751569 --0.336457773771 --0.238961790726 --0.32750266724 --0.239182858065 --0.318655488508 --0.239413269513 --0.309785951408 --0.239289307422 --0.300794878531 --0.239165589885 --0.291811572629 --0.239042111586 --0.282836367078 --0.239233481465 --0.273854392205 --0.239434545483 --0.264852747826 --0.239330604819 --0.255845331518 --0.239226779567 --0.246844107646 --0.239123059229 --0.237849435776 --0.239284449974 --0.228747282459 --0.239455822079 --0.219628201687 --0.239372118069 --0.210605281392 --0.239288415559 --0.201587050865 --0.239204704207 --0.192573903105 --0.239335771486 --0.183368096643 --0.239477060543 --0.174148168886 --0.23941373178 --0.165110938684 --0.239350318113 --0.156076955185 --0.239286849167 --0.147046658371 --0.239387300514 --0.13775591985 --0.239498154068 --0.128453921435 --0.239455375927 --0.119403898574 --0.239412448761 --0.110355763173 --0.239369373251 --0.101309945732 --0.23943898742 --0.0919542342762 --0.239519163653 --0.0825902078698 --0.239497028518 --0.0735291935104 --0.239474696873 --0.0644687369172 --0.239452191847 --0.0554092970245 --0.239490851569 --0.0460096154687 --0.239540143606 --0.0366045886723 --0.239538712155 --0.0275345987278 --0.239537082624 --0.0184638753228 --0.239535266169 --0.009392883356 --0.239534308316 --2.16840434497e-19 --0.239535266169 -0.009392883356 --0.239537082624 -0.0184638753228 --0.239538712155 -0.0275345987278 --0.239540143606 -0.0366045886723 --0.239490851569 -0.0460096154687 --0.239452191847 -0.0554092970245 --0.239474696873 -0.0644687369172 --0.239497028518 -0.0735291935104 --0.239519163653 -0.0825902078698 --0.23943898742 -0.0919542342762 --0.239369373251 -0.101309945732 --0.239412448761 -0.110355763173 --0.239455375927 -0.119403898574 --0.239498154068 -0.128453921435 --0.239387300514 -0.13775591985 --0.239286849167 -0.147046658371 --0.239350318113 -0.156076955185 --0.23941373178 -0.165110938684 --0.239477060543 -0.174148168886 --0.239335771486 -0.183368096643 --0.239204704207 -0.192573903105 --0.239288415559 -0.201587050865 --0.239372118069 -0.210605281392 --0.239455822079 -0.219628201687 --0.239284449974 -0.228747282459 --0.239123059229 -0.237849435776 --0.239226779567 -0.246844107646 --0.239330604819 -0.255845331518 --0.239434545483 -0.264852747826 --0.239233481465 -0.273854392205 --0.239042111586 -0.282836367078 --0.239165589885 -0.291811572629 --0.239289307422 -0.300794878531 --0.239413269513 -0.309785951408 --0.239182858065 -0.318655488508 --0.238961790726 -0.32750266724 --0.239104751569 -0.336457773771 --0.239248099843 -0.345422616533 --0.23939182484 -0.354396880892 --0.239132569721 -0.363121940147 --0.238882287023 -0.371822026727 --0.229651167689 --0.372628618266 --0.229927860609 --0.363916788693 --0.230214468241 --0.355179988105 --0.230055333409 --0.346184117298 --0.2298966246 --0.337197725325 --0.229738346453 --0.328221156938 --0.229982731598 --0.319360229871 --0.230237451662 --0.310476932009 --0.230100199264 --0.30146445936 --0.22996322397 --0.292459811701 --0.229826493489 --0.283463316686 --0.230038115602 --0.274465747101 --0.23026046152 --0.2654485128 --0.230145343804 --0.256419856395 --0.230030355863 --0.247397424641 --0.229915487123 --0.238381597951 --0.230093957864 --0.229262238546 --0.230283455294 --0.220125947072 --0.230190695811 --0.211081897015 --0.230097941071 --0.202042560598 --0.230005198313 --0.193008350415 --0.230150239999 --0.183783935068 --0.230306567083 --0.174545389225 --0.230236349911 --0.165487105809 --0.230166042246 --0.156432092014 --0.230095645653 --0.147380778756 --0.230206862782 --0.138070291722 --0.230329579231 --0.128748540587 --0.230282053326 --0.119677497547 --0.230234371529 --0.110608351528 --0.230186529656 --0.101541539237 --0.230263735966 --0.0921652269094 --0.230352597881 --0.0827805859827 --0.230327886942 --0.073698558281 --0.23030296403 --0.0646170846254 --0.230277841296 --0.0555366273984 --0.230320897489 --0.046115781938 --0.230375702657 --0.0366895767916 --0.230373864722 --0.027598537392 --0.230371805377 --0.0185067546307 --0.230369547691 --0.00941469741526 --0.230368369429 --2.16840434497e-19 --0.230369547691 -0.00941469741526 --0.230371805377 -0.0185067546307 --0.230373864722 -0.027598537392 --0.230375702657 -0.0366895767916 --0.230320897489 -0.046115781938 --0.230277841296 -0.0555366273984 --0.23030296403 -0.0646170846254 --0.230327886942 -0.073698558281 --0.230352597881 -0.0827805859827 --0.230263735966 -0.0921652269094 --0.230186529656 -0.101541539237 --0.230234371529 -0.110608351528 --0.230282053326 -0.119677497547 --0.230329579231 -0.128748540587 --0.230206862782 -0.138070291722 --0.230095645653 -0.147380778756 --0.230166042246 -0.156432092014 --0.230236349911 -0.165487105809 --0.230306567083 -0.174545389225 --0.230150239999 -0.183783935068 --0.230005198313 -0.193008350415 --0.230097941071 -0.202042560598 --0.230190695811 -0.211081897015 --0.230283455294 -0.220125947072 --0.230093957864 -0.229262238546 --0.229915487123 -0.238381597951 --0.230030355863 -0.247397424641 --0.230145343804 -0.256419856395 --0.23026046152 -0.2654485128 --0.230038115602 -0.274465747101 --0.229826493489 -0.283463316686 --0.22996322397 -0.292459811701 --0.230100199264 -0.30146445936 --0.230237451662 -0.310476932009 --0.229982731598 -0.319360229871 --0.229738346453 -0.328221156938 --0.2298966246 -0.337197725325 --0.230055333409 -0.346184117298 --0.230214468241 -0.355179988105 --0.229927860609 -0.363916788693 --0.229651167689 -0.372628618266 --0.220994941014 --0.400457983381 --0.220796836909 --0.391455670622 --0.220599417687 --0.382464710489 --0.220402670336 --0.373485369837 --0.220705604405 --0.364760912175 --0.221019400392 --0.356011476985 --0.220844961006 --0.34699275816 --0.220670996657 --0.337983585591 --0.220497494956 --0.32898430237 --0.220765061248 --0.32010864618 --0.221043957073 --0.311210616228 --0.220893494423 --0.302175487323 --0.22074332497 --0.293148232322 --0.220593438842 --0.284129195963 --0.220825206628 --0.275114992477 --0.221068699281 --0.266081105443 --0.220942476341 --0.257029940099 --0.220816391706 --0.247985036323 --0.220690446453 --0.238946784032 --0.220885894279 --0.229809097373 --0.221093401456 --0.220654458361 --0.22099166152 --0.211588003408 --0.220889918757 --0.202526285822 --0.220788180227 --0.193469716226 --0.220947119109 --0.184225513209 --0.221118405658 --0.174967171159 --0.221041332835 --0.165886546205 --0.220964158444 --0.156809203509 --0.220886889677 --0.147735582409 --0.221008816149 --0.13840411933 --0.221143314275 --0.129061381095 --0.221091069823 --0.119968022118 --0.221038658411 --0.110876563039 --0.220986086113 --0.10178745969 --0.221070837132 --0.0923892806869 --0.221168330313 --0.0829827519957 --0.221141064697 --0.0738784041023 --0.221113566533 --0.0647746071628 --0.221085836768 --0.0556718287884 --0.221133262967 --0.0462285315435 --0.221193547048 --0.0367798557533 --0.221191309234 --0.0276664571392 --0.221188838454 --0.0185523046805 --0.221186125082 --0.0094378701392 --0.221184705469 -2.16840434497e-19 --0.221186125082 -0.0094378701392 --0.221188838454 -0.0185523046805 --0.221191309234 -0.0276664571392 --0.221193547048 -0.0367798557533 --0.221133262967 -0.0462285315435 --0.221085836768 -0.0556718287884 --0.221113566533 -0.0647746071628 --0.221141064697 -0.0738784041023 --0.221168330313 -0.0829827519957 --0.221070837132 -0.0923892806869 --0.220986086113 -0.10178745969 --0.221038658411 -0.110876563039 --0.221091069823 -0.119968022118 --0.221143314275 -0.129061381095 --0.221008816149 -0.13840411933 --0.220886889677 -0.147735582409 --0.220964158444 -0.156809203509 --0.221041332835 -0.165886546205 --0.221118405658 -0.174967171159 --0.220947119109 -0.184225513209 --0.220788180227 -0.193469716226 --0.220889918757 -0.202526285822 --0.22099166152 -0.211588003408 --0.221093401456 -0.220654458361 --0.220885894279 -0.229809097373 --0.220690446453 -0.238946784032 --0.220816391706 -0.247985036323 --0.220942476341 -0.257029940099 --0.221068699281 -0.266081105443 --0.220825206628 -0.275114992477 --0.220593438842 -0.284129195963 --0.22074332497 -0.293148232322 --0.220893494423 -0.302175487323 --0.221043957073 -0.311210616228 --0.220765061248 -0.32010864618 --0.220497494956 -0.32898430237 --0.220670996657 -0.337983585591 --0.220844961006 -0.34699275816 --0.221019400392 -0.356011476985 --0.220705604405 -0.364760912175 --0.220402670336 -0.373485369837 --0.220599417687 -0.382464710489 --0.220796836909 -0.391455670622 --0.220994941014 -0.400457983381 --0.211929408244 --0.399999319146 --0.211751793079 --0.39100744775 --0.211574780327 --0.382026933176 --0.21139836404 --0.373058041213 --0.21167034609 --0.364341306795 --0.211952070531 --0.355599650025 --0.211795652689 --0.346591475106 --0.211639660596 --0.337592847107 --0.211484083012 --0.32860411117 --0.211724326634 --0.319736889812 --0.211974732804 --0.310847347977 --0.21183981023 --0.301822857459 --0.211705145467 --0.292806240557 --0.211570739127 --0.28379784984 --0.211778851458 --0.274792743143 --0.211997480275 --0.265767993907 --0.211884303243 --0.256727559079 --0.211771239254 --0.247693388863 --0.211658295184 --0.238665871547 --0.211833774344 --0.229537859639 --0.21202007853 --0.22039293282 --0.211928863532 --0.211337296931 --0.211837644478 --0.202286407591 --0.211746422996 --0.193240662038 --0.21188910613 --0.184006642681 --0.212042871266 --0.174758515221 --0.211973788066 --0.165688783762 --0.211904618555 --0.156622346806 --0.21183536442 --0.147559632178 --0.211944782363 --0.138238765243 --0.212065490439 --0.128906651972 --0.212018699959 --0.119824259214 --0.211971749216 --0.110743768751 --0.211924654823 --0.10166564037 --0.212000658816 --0.0922783718241 --0.212088108523 --0.0828827715483 --0.212063735827 --0.073789441513 --0.212039157795 --0.0646966714358 --0.21201437672 --0.055604924832 --0.212056834501 --0.0461727422766 --0.212110842781 --0.0367351943393 --0.212108951366 --0.0276328569974 --0.212106845778 --0.0185297711111 --0.21210451682 --0.00942640638465 --0.212103292735 -0 --0.21210451682 -0.00942640638465 --0.212106845778 -0.0185297711111 --0.212108951366 -0.0276328569974 --0.212110842781 -0.0367351943393 --0.212056834501 -0.0461727422766 --0.21201437672 -0.055604924832 --0.212039157795 -0.0646966714358 --0.212063735827 -0.073789441513 --0.212088108523 -0.0828827715483 --0.212000658816 -0.0922783718241 --0.211924654823 -0.10166564037 --0.211971749216 -0.110743768751 --0.212018699959 -0.119824259214 --0.212065490439 -0.128906651972 --0.211944782363 -0.138238765243 --0.21183536442 -0.147559632178 --0.211904618555 -0.156622346806 --0.211973788066 -0.165688783762 --0.212042871266 -0.174758515221 --0.21188910613 -0.184006642681 --0.211746422996 -0.193240662038 --0.211837644478 -0.202286407591 --0.211928863532 -0.211337296931 --0.21202007853 -0.22039293282 --0.211833774344 -0.229537859639 --0.211658295184 -0.238665871547 --0.211771239254 -0.247693388863 --0.211884303243 -0.256727559079 --0.211997480275 -0.265767993907 --0.211778851458 -0.274792743143 --0.211570739127 -0.28379784984 --0.211705145467 -0.292806240557 --0.21183981023 -0.301822857459 --0.211974732804 -0.310847347977 --0.211724326634 -0.319736889812 --0.211484083012 -0.32860411117 --0.211639660596 -0.337592847107 --0.211795652689 -0.346591475106 --0.211952070531 -0.355599650025 --0.21167034609 -0.364341306795 --0.21139836404 -0.373058041213 --0.211574780327 -0.382026933176 --0.211751793079 -0.39100744775 --0.211929408244 -0.399999319146 --0.202869849478 --0.399541376814 --0.202712696236 --0.390559947777 --0.202556090028 --0.381589886262 --0.202400010611 --0.372631439127 --0.202641047395 --0.363922402073 --0.202890702501 --0.355188478546 --0.202752291936 --0.3461908379 --0.202614256673 --0.337202764084 --0.202476594184 --0.328224573762 --0.202689532236 --0.319365760649 --0.202911449756 --0.310484665841 --0.202792054323 --0.301470798791 --0.202672891877 --0.292464819335 --0.202553951438 --0.283467077735 --0.202738412805 --0.274471036891 --0.202932189177 --0.265455388782 --0.202832046461 --0.256425676115 --0.202731996348 --0.247402231082 --0.202632051945 --0.238385446136 --0.202787567151 --0.229267075752 --0.202952668451 --0.220131822758 --0.202871962478 --0.211086992288 --0.202791262101 --0.202046922709 --0.202710563058 --0.193012011593 --0.202836993681 --0.183788138023 --0.202973247156 --0.174550180993 --0.202912160297 --0.165491340874 --0.202850991874 --0.156435800269 --0.202789731884 --0.147383991006 --0.202886638407 --0.138073680215 --0.202993566323 --0.128752143435 --0.202952227409 --0.119680710324 --0.202910744758 --0.110611190482 --0.202869125949 --0.101544030597 --0.202936374374 --0.0921676246675 --0.203013782019 --0.0827829122403 --0.202992306606 --0.073700596384 --0.202970653262 --0.0646188490147 --0.202948824242 --0.055538130142 --0.202986309406 --0.0461170163846 --0.203034043512 --0.0366905511087 --0.203032493904 --0.027599268893 --0.203030743714 --0.0185072445957 --0.203028809091 --0.00941494645388 --0.203027790372 -0 --0.203028809091 -0.00941494645388 --0.203030743714 -0.0185072445957 --0.203032493904 -0.027599268893 --0.203034043512 -0.0366905511087 --0.202986309406 -0.0461170163846 --0.202948824242 -0.055538130142 --0.202970653262 -0.0646188490147 --0.202992306606 -0.073700596384 --0.203013782019 -0.0827829122403 --0.202936374374 -0.0921676246675 --0.202869125949 -0.101544030597 --0.202910744758 -0.110611190482 --0.202952227409 -0.119680710324 --0.202993566323 -0.128752143435 --0.202886638407 -0.138073680215 --0.202789731884 -0.147383991006 --0.202850991874 -0.156435800269 --0.202912160297 -0.165491340874 --0.202973247156 -0.174550180993 --0.202836993681 -0.183788138023 --0.202710563058 -0.193012011593 --0.202791262101 -0.202046922709 --0.202871962478 -0.211086992288 --0.202952668451 -0.220131822758 --0.202787567151 -0.229267075752 --0.202632051945 -0.238385446136 --0.202731996348 -0.247402231082 --0.202832046461 -0.256425676115 --0.202932189177 -0.265455388782 --0.202738412805 -0.274471036891 --0.202553951438 -0.283467077735 --0.202672891877 -0.292464819335 --0.202792054323 -0.301470798791 --0.202911449756 -0.310484665841 --0.202689532236 -0.319365760649 --0.202476594184 -0.328224573762 --0.202614256673 -0.337202764084 --0.202752291936 -0.3461908379 --0.202890702501 -0.355188478546 --0.202641047395 -0.363922402073 --0.202400010611 -0.372631439127 --0.202556090028 -0.381589886262 --0.202712696236 -0.390559947777 --0.202869849478 -0.399541376814 --0.193816669683 --0.399084150057 --0.193679970036 --0.390113163736 --0.193543750859 --0.381153545649 --0.193407984364 --0.372205530615 --0.193618092154 --0.363504165726 --0.19383569087 --0.354777958162 --0.193715277464 --0.345790850687 --0.193595187158 --0.33681332743 --0.193475423828 --0.327845681384 --0.193661067429 --0.31899523736 --0.19385451456 --0.310122550317 --0.193750635067 --0.301119310803 --0.193646955019 --0.29212396702 --0.19354346817 --0.283136860594 --0.193704289638 --0.274149843134 --0.193873220845 --0.265143254504 --0.193786095732 --0.256124256421 --0.193699050538 --0.247111546254 --0.193612101273 --0.238105509093 --0.193747656403 --0.22899673106 --0.193891566952 --0.219871107867 --0.193821370413 --0.210837080052 --0.193751175306 --0.201807822089 --0.193680987977 --0.192783745865 --0.193791181787 --0.183569977782 --0.193909937307 --0.17434215083 --0.193856833418 --0.165294198528 --0.193803654443 --0.156249551513 --0.193750400989 --0.147208651932 --0.193834807372 --0.137908852317 --0.193927945427 --0.128597840687 --0.193892054462 --0.119537364191 --0.193856034114 --0.110478812303 --0.19381989188 --0.10142262301 --0.193878398944 --0.0920570388636 --0.193945758688 --0.0826831656357 --0.193927183781 --0.0736118622871 --0.193908452826 --0.0645411342544 --0.193889561672 --0.0554714407577 --0.193922074895 --0.0460613506434 --0.193963525911 --0.0366459203568 --0.193962319758 --0.0275656911195 --0.193960935561 --0.0184847256548 --0.193959395881 --0.00940349007319 --0.193958586007 -2.16840434497e-19 --0.193959395881 -0.00940349007319 --0.193960935561 -0.0184847256548 --0.193962319758 -0.0275656911195 --0.193963525911 -0.0366459203568 --0.193922074895 -0.0460613506434 --0.193889561672 -0.0554714407577 --0.193908452826 -0.0645411342544 --0.193927183781 -0.0736118622871 --0.193945758688 -0.0826831656357 --0.193878398944 -0.0920570388636 --0.19381989188 -0.10142262301 --0.193856034114 -0.110478812303 --0.193892054462 -0.119537364191 --0.193927945427 -0.128597840687 --0.193834807372 -0.137908852317 --0.193750400989 -0.147208651932 --0.193803654443 -0.156249551513 --0.193856833418 -0.165294198528 --0.193909937307 -0.17434215083 --0.193791181787 -0.183569977782 --0.193680987977 -0.192783745865 --0.193751175306 -0.201807822089 --0.193821370413 -0.210837080052 --0.193891566952 -0.219871107867 --0.193747656403 -0.22899673106 --0.193612101273 -0.238105509093 --0.193699050538 -0.247111546254 --0.193786095732 -0.256124256421 --0.193873220845 -0.265143254504 --0.193704289638 -0.274149843134 --0.19354346817 -0.283136860594 --0.193646955019 -0.29212396702 --0.193750635067 -0.301119310803 --0.19385451456 -0.310122550317 --0.193661067429 -0.31899523736 --0.193475423828 -0.327845681384 --0.193595187158 -0.33681332743 --0.193715277464 -0.345790850687 --0.19383569087 -0.354777958162 --0.193618092154 -0.363504165726 --0.193407984364 -0.372205530615 --0.193543750859 -0.381153545649 --0.193679970036 -0.390113163736 --0.193816669683 -0.399084150057 --0.184536095083 --0.399791760233 --0.18438243249 --0.39080304667 --0.184229301156 --0.381825770986 --0.18407668424 --0.372860167999 --0.184312414879 --0.364149190855 --0.184556555681 --0.355413379335 --0.184421202468 --0.346408754758 --0.184286216235 --0.337413758579 --0.184151593234 --0.328428703154 --0.184359883854 --0.319567068605 --0.184576943899 --0.310683180505 --0.18446016209 --0.301662573015 --0.184343610141 --0.292649912316 --0.184227276272 --0.283645523972 --0.184407704205 --0.2746458293 --0.184597241586 --0.265626570356 --0.184499269809 --0.25659033096 --0.184401389821 --0.24756040742 --0.184303626608 --0.238537199784 --0.184455805558 --0.229414469402 --0.184617350671 --0.220274891097 --0.184538375633 --0.211223706949 --0.184459408813 --0.202177318673 --0.184380448158 --0.19313614139 --0.184504155454 --0.183907292043 --0.184637467527 --0.174664383101 --0.184577667752 --0.165599332999 --0.184517790403 --0.156537606445 --0.184457833221 --0.147479643297 --0.184552712161 --0.138163870005 --0.184657372746 --0.128836875895 --0.184616870586 --0.11975932269 --0.184576234396 --0.110683701134 --0.184535467653 --0.101610461124 --0.184601359408 --0.092228216202 --0.184677168169 --0.0828376658569 --0.184656083289 --0.073749289985 --0.184634819786 --0.064661485892 --0.184613383669 --0.0555747193085 --0.184650171111 --0.0461475222188 --0.1846969619 --0.0367149696546 --0.18469535584 --0.0276176393027 --0.184693559443 --0.0185195645832 --0.184691571597 --0.00942121338044 --0.184690531942 -0 --0.184691571597 -0.00942121338044 --0.184693559443 -0.0185195645832 --0.18469535584 -0.0276176393027 --0.1846969619 -0.0367149696546 --0.184650171111 -0.0461475222188 --0.184613383669 -0.0555747193085 --0.184634819786 -0.064661485892 --0.184656083289 -0.073749289985 --0.184677168169 -0.0828376658569 --0.184601359408 -0.092228216202 --0.184535467653 -0.101610461124 --0.184576234396 -0.110683701134 --0.184616870586 -0.11975932269 --0.184657372746 -0.128836875895 --0.184552712161 -0.138163870005 --0.184457833221 -0.147479643297 --0.184517790403 -0.156537606445 --0.184577667752 -0.165599332999 --0.184637467527 -0.174664383101 --0.184504155454 -0.183907292043 --0.184380448158 -0.19313614139 --0.184459408813 -0.202177318673 --0.184538375633 -0.211223706949 --0.184617350671 -0.220274891097 --0.184455805558 -0.229414469402 --0.184303626608 -0.238537199784 --0.184401389821 -0.24756040742 --0.184499269809 -0.25659033096 --0.184597241586 -0.265626570356 --0.184407704205 -0.2746458293 --0.184227276272 -0.283645523972 --0.184343610141 -0.292649912316 --0.18446016209 -0.301662573015 --0.184576943899 -0.310683180505 --0.184359883854 -0.319567068605 --0.184151593234 -0.328428703154 --0.184286216235 -0.337413758579 --0.184421202468 -0.346408754758 --0.184556555681 -0.355413379335 --0.184312414879 -0.364149190855 --0.18407668424 -0.372860167999 --0.184229301156 -0.381825770986 --0.18438243249 -0.39080304667 --0.184536095083 -0.399791760233 --0.175240732684 --0.40055438716 --0.17507019179 --0.391546694451 --0.174900243171 --0.382550500892 --0.174730881469 --0.373566071868 --0.174992110234 --0.364844592519 --0.175262662119 --0.356098261693 --0.175112442917 --0.347074833573 --0.174962637467 --0.338061088573 --0.174813237595 --0.329057349738 --0.17504406042 --0.320183529647 --0.175284615088 --0.311287458753 --0.175154997597 --0.302248198228 --0.175025637668 --0.293216915158 --0.174896532377 --0.284193963706 --0.17509648187 --0.275180540967 --0.175306519064 --0.266147536976 --0.175197759093 --0.257092758295 --0.175089106865 --0.248044328867 --0.17498058047 --0.239002639679 --0.17514929982 --0.229864819712 --0.175328389176 --0.22071013379 --0.175240682461 --0.211640484108 --0.175152992268 --0.202575656767 --0.175065304896 --0.193516058486 --0.175202463147 --0.184270932352 --0.175350261117 --0.175011735907 --0.175283804127 --0.165928268591 --0.175217256762 --0.15684813549 --0.175150623788 --0.14777178117 --0.175255923292 --0.138438776311 --0.175372052109 --0.129094541814 --0.175326971495 --0.119998589666 --0.175281745053 --0.11090457521 --0.175236372287 --0.101812952527 --0.175309603248 --0.0924127498898 --0.175393821881 --0.0830042261062 --0.175370249807 --0.0738974401623 --0.175346472345 --0.0647912239719 --0.175322502933 --0.0556860479417 --0.175363542903 --0.0462404256762 --0.175415658965 --0.0367894324019 --0.175413646912 --0.0276736601027 --0.175411432099 --0.0185571339248 --0.175409006049 --0.00944032634276 --0.175407737569 --2.16840434497e-19 --0.175409006049 -0.00944032634276 --0.175411432099 -0.0185571339248 --0.175413646912 -0.0276736601027 --0.175415658965 -0.0367894324019 --0.175363542903 -0.0462404256762 --0.175322502933 -0.0556860479417 --0.175346472345 -0.0647912239719 --0.175370249807 -0.0738974401623 --0.175393821881 -0.0830042261062 --0.175309603248 -0.0924127498898 --0.175236372287 -0.101812952527 --0.175281745053 -0.11090457521 --0.175326971495 -0.119998589666 --0.175372052109 -0.129094541814 --0.175255923292 -0.138438776311 --0.175150623788 -0.14777178117 --0.175217256762 -0.15684813549 --0.175283804127 -0.165928268591 --0.175350261117 -0.175011735907 --0.175202463147 -0.184270932352 --0.175065304896 -0.193516058486 --0.175152992268 -0.202575656767 --0.175240682461 -0.211640484108 --0.175328389176 -0.22071013379 --0.17514929982 -0.229864819712 --0.17498058047 -0.239002639679 --0.175089106865 -0.248044328867 --0.175197759093 -0.257092758295 --0.175306519064 -0.266147536976 --0.17509648187 -0.275180540967 --0.174896532377 -0.284193963706 --0.175025637668 -0.293216915158 --0.175154997597 -0.302248198228 --0.175284615088 -0.311287458753 --0.17504406042 -0.320183529647 --0.174813237595 -0.329057349738 --0.174962637467 -0.338061088573 --0.175112442917 -0.347074833573 --0.175262662119 -0.356098261693 --0.174992110234 -0.364844592519 --0.174730881469 -0.373566071868 --0.174900243171 -0.382550500892 --0.17507019179 -0.391546694451 --0.175240732684 -0.40055438716 --0.166163309336 --0.40020770746 --0.166013401131 --0.391207949743 --0.165864003486 --0.382219674363 --0.165715128616 --0.37324317409 --0.165945181307 --0.364527542217 --0.166183419369 --0.355787082926 --0.166051350978 --0.346771641064 --0.165919641918 --0.337765890371 --0.165788293073 --0.328770151464 --0.16599159513 --0.319902693298 --0.166203449188 --0.311013023521 --0.166089483029 --0.301981823942 --0.165975738911 --0.292958600829 --0.16586222241 --0.283943726364 --0.166038345709 --0.2749371556 --0.16622333301 --0.265911023028 --0.1661277029 --0.256864372876 --0.166032171795 --0.247824078816 --0.165936744737 --0.238790524387 --0.166085342904 --0.229659977294 --0.166243072633 --0.220512593128 --0.166165968602 --0.211451147776 --0.166088868634 --0.20239451607 --0.166011773299 --0.193343112805 --0.16613256929 --0.184105653442 --0.166262725869 --0.17485413661 --0.166204315216 --0.165778914449 --0.166145824814 --0.156707043069 --0.166087264332 --0.147638952681 --0.16617995925 --0.138313906048 --0.16628218463 --0.12897765 --0.16624260197 --0.119890003977 --0.16620288652 --0.110804299226 --0.166163030963 --0.10172098528 --0.166227453157 --0.0923289779151 --0.166301551047 --0.082928662512 --0.166280896504 --0.073830219489 --0.166260066163 --0.064732353353 --0.16623906417 --0.0556355322075 --0.166275091359 --0.0461982549913 --0.166320882689 --0.0367556163956 --0.166319216259 --0.0276482195234 --0.166317364487 --0.0185400719976 --0.166315333287 --0.0094316463763 --0.166314267836 -0 --0.166315333287 -0.0094316463763 --0.166317364487 -0.0185400719976 --0.166319216259 -0.0276482195234 --0.166320882689 -0.0367556163956 --0.166275091359 -0.0461982549913 --0.16623906417 -0.0556355322075 --0.166260066163 -0.064732353353 --0.166280896504 -0.073830219489 --0.166301551047 -0.082928662512 --0.166227453157 -0.0923289779151 --0.166163030963 -0.10172098528 --0.16620288652 -0.110804299226 --0.16624260197 -0.119890003977 --0.16628218463 -0.12897765 --0.16617995925 -0.138313906048 --0.166087264332 -0.147638952681 --0.166145824814 -0.156707043069 --0.166204315216 -0.165778914449 --0.166262725869 -0.17485413661 --0.16613256929 -0.184105653442 --0.166011773299 -0.193343112805 --0.166088868634 -0.20239451607 --0.166165968602 -0.211451147776 --0.166243072633 -0.220512593128 --0.166085342904 -0.229659977294 --0.165936744737 -0.238790524387 --0.166032171795 -0.247824078816 --0.1661277029 -0.256864372876 --0.16622333301 -0.265911023028 --0.166038345709 -0.2749371556 --0.16586222241 -0.283943726364 --0.165975738911 -0.292958600829 --0.166089483029 -0.301981823942 --0.166203449188 -0.311013023521 --0.16599159513 -0.319902693298 --0.165788293073 -0.328770151464 --0.165919641918 -0.337765890371 --0.166051350978 -0.346771641064 --0.166183419369 -0.355787082926 --0.165945181307 -0.364527542217 --0.165715128616 -0.37324317409 --0.165864003486 -0.382219674363 --0.166013401131 -0.391207949743 --0.166163309336 -0.40020770746 --0.157090171366 --0.399861310595 --0.156960884852 --0.390869480144 --0.156832040161 --0.381889140602 --0.156703643338 --0.372920563836 --0.156902517256 --0.364210753244 --0.157108441436 --0.355476137205 --0.156994519837 --0.346468695762 --0.156880905075 --0.3374709583 --0.156767599154 --0.328483220299 --0.156943377587 --0.319622094795 --0.157126528546 --0.31073878611 --0.157028212865 --0.301715656173 --0.156930086049 --0.292700515383 --0.156832149477 --0.28369372078 --0.156984433759 --0.274693966045 --0.157144372391 --0.265674676156 --0.157061875285 --0.25663616342 --0.156979458517 --0.247604007428 --0.156897131791 --0.238578601948 --0.157025611146 --0.229455309213 --0.157161977225 --0.220315196853 --0.157095472409 --0.211261953364 --0.157028963629 --0.202213525456 --0.156962457917 --0.193170331557 --0.157066886004 --0.183940497773 --0.157179397575 --0.174696626946 --0.157129031873 --0.165629664247 --0.157078602696 --0.156566060031 --0.157028106787 --0.147506244839 --0.157108196639 --0.138189127797 --0.157196528282 --0.128860815682 --0.157162428353 --0.119781478555 --0.157128215856 --0.110704088766 --0.157093887435 --0.101629095732 --0.157149503182 --0.0922452484018 --0.157213479993 --0.0828531090943 --0.157195739292 --0.0737630186006 --0.157177849225 --0.0646735106128 --0.157159816834 --0.0555850524271 --0.157190838138 --0.0461560870593 --0.157230294115 --0.0367217674091 --0.157228976235 --0.027622753572 --0.157227494253 --0.018522993938 --0.157225850468 --0.00942295775856 --0.157224988809 -0 --0.157225850468 -0.00942295775856 --0.157227494253 -0.018522993938 --0.157228976235 -0.027622753572 --0.157230294115 -0.0367217674091 --0.157190838138 -0.0461560870593 --0.157159816834 -0.0555850524271 --0.157177849225 -0.0646735106128 --0.157195739292 -0.0737630186006 --0.157213479993 -0.0828531090943 --0.157149503182 -0.0922452484018 --0.157093887435 -0.101629095732 --0.157128215856 -0.110704088766 --0.157162428353 -0.119781478555 --0.157196528282 -0.128860815682 --0.157108196639 -0.138189127797 --0.157028106787 -0.147506244839 --0.157078602696 -0.156566060031 --0.157129031873 -0.165629664247 --0.157179397575 -0.174696626946 --0.157066886004 -0.183940497773 --0.156962457917 -0.193170331557 --0.157028963629 -0.202213525456 --0.157095472409 -0.211261953364 --0.157161977225 -0.220315196853 --0.157025611146 -0.229455309213 --0.156897131791 -0.238578601948 --0.156979458517 -0.247604007428 --0.157061875285 -0.25663616342 --0.157144372391 -0.265674676156 --0.156984433759 -0.274693966045 --0.156832149477 -0.28369372078 --0.156930086049 -0.292700515383 --0.157028212865 -0.301715656173 --0.157126528546 -0.31073878611 --0.156943377587 -0.319622094795 --0.156767599154 -0.328483220299 --0.156880905075 -0.3374709583 --0.156994519837 -0.346468695762 --0.157108441436 -0.355476137205 --0.156902517256 -0.364210753244 --0.156703643338 -0.372920563836 --0.156832040161 -0.381889140602 --0.156960884852 -0.390869480144 --0.157090171366 -0.399861310595 --0.148021741802 --0.399515178262 --0.147913067952 --0.390531278698 --0.147804767163 --0.381558884054 --0.147696839525 --0.372598256307 --0.147864541885 --0.363894230132 --0.148038160684 --0.355165428496 --0.14794237423 --0.346165994135 --0.147846844812 --0.33717627066 --0.147751577519 --0.328196544473 --0.147899836163 --0.319341724329 --0.148054282151 --0.31046474239 --0.147971606895 --0.301449689558 --0.147889092998 --0.292442640016 --0.147806728367 --0.283443922006 --0.147935180191 --0.274450954981 --0.148070074138 --0.265438485553 --0.148000700696 --0.25640811315 --0.14793139339 --0.247384115789 --0.147862158522 --0.238366874082 --0.147970522318 --0.229250800434 --0.148085528135 --0.220117930726 --0.148029614316 --0.211072886989 --0.147973695899 --0.202032676437 --0.14791777984 --0.19299771542 --0.148005838696 --0.183775469424 --0.148100703632 --0.174539205519 --0.148058386117 --0.165480514854 --0.14801601442 --0.156425183573 --0.147973579744 --0.147373648878 --0.148041069652 --0.138064427349 --0.148115506282 --0.128744024631 --0.148086890461 --0.119673007722 --0.148058182281 --0.110603946926 --0.148029375804 --0.101537284382 --0.148076179606 --0.0921615627694 --0.148130036271 --0.0827775639457 --0.148115215237 --0.073695833127 --0.148100264278 --0.0646146917318 --0.148085192456 --0.0555346020663 --0.148111211592 --0.0461139163221 --0.148144341182 --0.0366878853622 --0.148143364993 --0.0275972623986 --0.148142249303 --0.0185058982738 --0.148141003202 --0.00941426067545 --0.148140351512 -0 --0.148141003202 -0.00941426067545 --0.148142249303 -0.0185058982738 --0.148143364993 -0.0275972623986 --0.148144341182 -0.0366878853622 --0.148111211592 -0.0461139163221 --0.148085192456 -0.0555346020663 --0.148100264278 -0.0646146917318 --0.148115215237 -0.073695833127 --0.148130036271 -0.0827775639457 --0.148076179606 -0.0921615627694 --0.148029375804 -0.101537284382 --0.148058182281 -0.110603946926 --0.148086890461 -0.119673007722 --0.148115506282 -0.128744024631 --0.148041069652 -0.138064427349 --0.147973579744 -0.147373648878 --0.14801601442 -0.156425183573 --0.148058386117 -0.165480514854 --0.148100703632 -0.174539205519 --0.148005838696 -0.183775469424 --0.14791777984 -0.19299771542 --0.147973695899 -0.202032676437 --0.148029614316 -0.211072886989 --0.148085528135 -0.220117930726 --0.147970522318 -0.229250800434 --0.147862158522 -0.238366874082 --0.14793139339 -0.247384115789 --0.148000700696 -0.25640811315 --0.148070074138 -0.265438485553 --0.147935180191 -0.274450954981 --0.147806728367 -0.283443922006 --0.147889092998 -0.292442640016 --0.147971606895 -0.301449689558 --0.148054282151 -0.31046474239 --0.147899836163 -0.319341724329 --0.147751577519 -0.328196544473 --0.147846844812 -0.33717627066 --0.14794237423 -0.346165994135 --0.148038160684 -0.355165428496 --0.147864541885 -0.363894230132 --0.147696839525 -0.372598256307 --0.147804767163 -0.381558884054 --0.147913067952 -0.390531278698 --0.148021741802 -0.399515178262 --0.138655752718 --0.400057603499 --0.13853018942 --0.391060148805 --0.138405063077 --0.382074236836 --0.138280368022 --0.373100153449 --0.138473557614 --0.364388681188 --0.138673583427 --0.355652433186 --0.138562920197 --0.34663957184 --0.138452563237 --0.337636461064 --0.138342510224 --0.328643408719 --0.138513313019 --0.31977994704 --0.138691256863 --0.310894308549 --0.138595733437 --0.30186593878 --0.13850040628 --0.292845611136 --0.138405258435 --0.283833656867 --0.138553251839 --0.274830965635 --0.138708670846 --0.265808766229 --0.138628498471 --0.256765174971 --0.1385484118 --0.247727982916 --0.138468407261 --0.238697573195 --0.138593296902 --0.229570807397 --0.138725847247 --0.220427244751 --0.138661199865 --0.211369046182 --0.138596551001 --0.202315699689 --0.13853190047 --0.193267616849 --0.138633440187 --0.184033852045 --0.138742828483 --0.174786067454 --0.138693844253 --0.165714250407 --0.138644794154 --0.156645806264 --0.138595681254 --0.147581172463 --0.138673595607 --0.138259757174 --0.138759508247 --0.128927158157 --0.138726308609 --0.119843036563 --0.13869300197 --0.110760872583 --0.138659579287 --0.101681113329 --0.138713734231 --0.0922926921845 --0.138776012537 --0.0828959864539 --0.13875869377 --0.0738011462425 --0.138741229841 --0.0647068930894 --0.138723627146 --0.0556136938764 --0.138753863098 --0.0461799762757 --0.138792288988 --0.0367409053761 --0.138790909047 --0.0276371515107 --0.138789369423 --0.0185326486928 --0.138787686229 --0.00942786953707 --0.13878681032 -0 --0.138787686229 -0.00942786953707 --0.138789369423 -0.0185326486928 --0.138790909047 -0.0276371515107 --0.138792288988 -0.0367409053761 --0.138753863098 -0.0461799762757 --0.138723627146 -0.0556136938764 --0.138741229841 -0.0647068930894 --0.13875869377 -0.0738011462425 --0.138776012537 -0.0828959864539 --0.138713734231 -0.0922926921845 --0.138659579287 -0.101681113329 --0.13869300197 -0.110760872583 --0.138726308609 -0.119843036563 --0.138759508247 -0.128927158157 --0.138673595607 -0.138259757174 --0.138595681254 -0.147581172463 --0.138644794154 -0.156645806264 --0.138693844253 -0.165714250407 --0.138742828483 -0.174786067454 --0.138633440187 -0.184033852045 --0.13853190047 -0.193267616849 --0.138596551001 -0.202315699689 --0.138661199865 -0.211369046182 --0.138725847247 -0.220427244751 --0.138593296902 -0.229570807397 --0.138468407261 -0.238697573195 --0.1385484118 -0.247727982916 --0.138628498471 -0.256765174971 --0.138708670846 -0.265808766229 --0.138553251839 -0.274830965635 --0.138405258435 -0.283833656867 --0.13850040628 -0.292845611136 --0.138595733437 -0.30186593878 --0.138691256863 -0.310894308549 --0.138513313019 -0.31977994704 --0.138342510224 -0.328643408719 --0.138452563237 -0.337636461064 --0.138562920197 -0.34663957184 --0.138673583427 -0.355652433186 --0.138473557614 -0.364388681188 --0.138280368022 -0.373100153449 --0.138405063077 -0.382074236836 --0.13853018942 -0.391060148805 --0.138655752718 -0.400057603499 --0.128783405269 --0.417795715428 --0.129027031361 --0.409239779378 --0.129278027418 --0.400656523148 --0.129135647531 --0.391644213004 --0.128993768039 --0.38264350287 --0.128852371657 --0.37365466268 --0.129070949202 --0.364934820232 --0.129297281399 --0.356190193664 --0.129171808691 --0.347162611324 --0.129046688231 --0.338144818663 --0.128921909598 --0.329137117903 --0.129115172345 --0.320263998444 --0.129316529452 --0.311368700284 --0.129208220247 --0.302325708416 --0.129100129106 --0.293290781227 --0.128992243709 --0.284264266087 --0.129159706902 --0.275250749426 --0.129335575453 --0.26621771439 --0.129244654182 --0.257159577389 --0.129153831491 --0.248107856452 --0.12906310132 --0.239062937798 --0.129204463545 --0.229924319466 --0.129354488673 --0.220768887501 --0.129281140154 --0.211696184089 --0.129207795486 --0.202628351886 --0.129134448653 --0.193565791762 --0.129249428209 --0.184319277849 --0.129373282422 --0.175058732587 --0.129317655145 --0.165972436547 --0.129261956192 --0.156889523297 --0.129206186175 --0.147810426522 --0.129294484369 --0.138475528451 --0.129391830871 --0.129129437914 --0.129354062313 --0.120030847319 --0.129316178051 --0.110934217972 --0.129278163593 --0.101839997578 --0.129339644298 --0.0924375477471 --0.129410311394 --0.0830268006765 --0.129390504826 --0.0739174798733 --0.129370537898 --0.0648087441234 --0.1293504141 --0.0557010635273 --0.129384853798 --0.0462529579613 --0.129428554744 --0.0367994862255 --0.129426771942 --0.0276812233729 --0.129424816111 --0.0185622051166 --0.129422693648 --0.00944290602232 --0.129421587797 -0 --0.129422693648 -0.00944290602232 --0.129424816111 -0.0185622051166 --0.129426771942 -0.0276812233729 --0.129428554744 -0.0367994862255 --0.129384853798 -0.0462529579613 --0.1293504141 -0.0557010635273 --0.129370537898 -0.0648087441234 --0.129390504826 -0.0739174798733 --0.129410311394 -0.0830268006765 --0.129339644298 -0.0924375477471 --0.129278163593 -0.101839997578 --0.129316178051 -0.110934217972 --0.129354062313 -0.120030847319 --0.129391830871 -0.129129437914 --0.129294484369 -0.138475528451 --0.129206186175 -0.147810426522 --0.129261956192 -0.156889523297 --0.129317655145 -0.165972436547 --0.129373282422 -0.175058732587 --0.129249428209 -0.184319277849 --0.129134448653 -0.193565791762 --0.129207795486 -0.202628351886 --0.129281140154 -0.211696184089 --0.129354488673 -0.220768887501 --0.129204463545 -0.229924319466 --0.12906310132 -0.239062937798 --0.129153831491 -0.248107856452 --0.129244654182 -0.257159577389 --0.129335575453 -0.26621771439 --0.129159706902 -0.275250749426 --0.128992243709 -0.284264266087 --0.129100129106 -0.293290781227 --0.129208220247 -0.302325708416 --0.129316529452 -0.311368700284 --0.129115172345 -0.320263998444 --0.128921909598 -0.329137117903 --0.129046688231 -0.338144818663 --0.129171808691 -0.347162611324 --0.129297281399 -0.356190193664 --0.129070949202 -0.364934820232 --0.128852371657 -0.37365466268 --0.128993768039 -0.38264350287 --0.129135647531 -0.391644213004 --0.129278027418 -0.400656523148 --0.129027031361 -0.409239779378 --0.128783405269 -0.417795715428 --0.119766262407 --0.417555499135 --0.119974885274 --0.409003148501 --0.120189781202 --0.400423487838 --0.120068151997 --0.391416533986 --0.11994694742 --0.382421190785 --0.119826154123 --0.373437718621 --0.120013366477 --0.364721791389 --0.120207192594 --0.355981107083 --0.120099980048 --0.346958939993 --0.119993062919 --0.337946555365 --0.119886440228 --0.328944258994 --0.120052018349 --0.320075402375 --0.120224501981 --0.311184382842 --0.120131933109 --0.302146841114 --0.120039547321 --0.293117366971 --0.119947341396 --0.284096307594 --0.120090831902 --0.275087363604 --0.120241501656 --0.266058917218 --0.120163787217 --0.257006267279 --0.120086155975 --0.247960037592 --0.120008605437 --0.238920613875 --0.120129733187 --0.229786845378 --0.120258268358 --0.220636283847 --0.120195574268 --0.211569110069 --0.120132885097 --0.202506817159 --0.120070198996 --0.193449793239 --0.120168713121 --0.184208369208 --0.120274816413 --0.174952929749 --0.12022728667 --0.165872202036 --0.120179697443 --0.156794867476 --0.120132040599 --0.147721345948 --0.120207656592 --0.138391734483 --0.120291023043 --0.129050944463 --0.120258779905 --0.119957955015 --0.12022643518 --0.110866933694 --0.120193977907 --0.101778324247 --0.120246595312 --0.0923813106566 --0.120307076178 --0.0829760084906 --0.120290210515 --0.0738723200174 --0.120273204204 --0.0647692185448 --0.120256054547 --0.0556671727486 --0.12028545944 --0.0462246045372 --0.120322798552 --0.0367766736493 --0.12032136235 --0.0276640601106 --0.120319778041 --0.0185506950764 --0.120318051361 --0.00943705050459 --0.120317149359 -2.16840434497e-19 --0.120318051361 -0.00943705050459 --0.120319778041 -0.0185506950764 --0.12032136235 -0.0276640601106 --0.120322798552 -0.0367766736493 --0.12028545944 -0.0462246045372 --0.120256054547 -0.0556671727486 --0.120273204204 -0.0647692185448 --0.120290210515 -0.0738723200174 --0.120307076178 -0.0829760084906 --0.120246595312 -0.0923813106566 --0.120193977907 -0.101778324247 --0.12022643518 -0.110866933694 --0.120258779905 -0.119957955015 --0.120291023043 -0.129050944463 --0.120207656592 -0.138391734483 --0.120132040599 -0.147721345948 --0.120179697443 -0.156794867476 --0.12022728667 -0.165872202036 --0.120274816413 -0.174952929749 --0.120168713121 -0.184208369208 --0.120070198996 -0.193449793239 --0.120132885097 -0.202506817159 --0.120195574268 -0.211569110069 --0.120258268358 -0.220636283847 --0.120129733187 -0.229786845378 --0.120008605437 -0.238920613875 --0.120086155975 -0.247960037592 --0.120163787217 -0.257006267279 --0.120241501656 -0.266058917218 --0.120090831902 -0.275087363604 --0.119947341396 -0.284096307594 --0.120039547321 -0.293117366971 --0.120131933109 -0.302146841114 --0.120224501981 -0.311184382842 --0.120052018349 -0.320075402375 --0.119886440228 -0.328944258994 --0.119993062919 -0.337946555365 --0.120099980048 -0.346958939993 --0.120207192594 -0.355981107083 --0.120013366477 -0.364721791389 --0.119826154123 -0.373437718621 --0.11994694742 -0.382421190785 --0.120068151997 -0.391416533986 --0.120189781202 -0.400423487838 --0.119974885274 -0.409003148501 --0.119766262407 -0.417555499135 --0.110751742117 --0.417315274808 --0.110925346472 --0.408766473353 --0.111104129904 --0.400190379352 --0.111003249053 --0.391188812813 --0.110902717626 --0.38219883531 --0.110802533973 --0.373220741868 --0.110958378702 --0.364508730072 --0.111119688201 --0.355771971531 --0.111030727986 --0.346755219899 --0.11094201474 --0.337748253919 --0.11085354599 --0.328751378553 --0.110991427167 --0.319886760459 --0.111135027779 --0.310999991612 --0.111058196668 --0.301967909787 --0.110981519736 --0.29294390528 --0.110904994658 --0.283928312964 --0.111024504259 --0.27492392456 --0.111149966571 --0.265900050138 --0.111085459482 --0.256852903861 --0.111021020619 --0.247812176647 --0.110956647439 --0.238778270164 --0.111057536223 --0.229649334423 --0.111164577364 --0.220503609295 --0.111112538766 --0.211441981182 --0.111060506347 --0.202385238698 --0.111008478192 --0.193333776206 --0.111090514781 --0.184097418811 --0.111178864744 --0.174847055736 --0.111139435575 --0.165771919152 --0.11109995065 --0.156700173227 --0.111060410628 --0.147632250175 --0.111123348847 --0.138307904754 --0.111192734136 --0.128972385464 --0.11116601402 --0.119885011115 --0.111139200726 --0.110799609235 --0.111112295065 --0.10171662909 --0.111156048584 --0.0923250296629 --0.111206345944 --0.0829251490813 --0.111192418614 --0.073827107581 --0.111178370131 --0.0647296568895 --0.111164200718 --0.0556332629377 --0.111188569053 --0.0461962057708 --0.111219538784 --0.0367537926475 --0.111218452367 --0.0276468463017 --0.111217242109 --0.0185391506386 --0.111215902743 --0.0094311772543 --0.111215199413 --2.16840434497e-19 --0.111215902743 -0.0094311772543 --0.111217242109 -0.0185391506386 --0.111218452367 -0.0276468463017 --0.111219538784 -0.0367537926475 --0.111188569053 -0.0461962057708 --0.111164200718 -0.0556332629377 --0.111178370131 -0.0647296568895 --0.111192418614 -0.073827107581 --0.111206345944 -0.0829251490813 --0.111156048584 -0.0923250296629 --0.111112295065 -0.10171662909 --0.111139200726 -0.110799609235 --0.11116601402 -0.119885011115 --0.111192734136 -0.128972385464 --0.111123348847 -0.138307904754 --0.111060410628 -0.147632250175 --0.11109995065 -0.156700173227 --0.111139435575 -0.165771919152 --0.111178864744 -0.174847055736 --0.111090514781 -0.184097418811 --0.111008478192 -0.193333776206 --0.111060506347 -0.202385238698 --0.111112538766 -0.211441981182 --0.111164577364 -0.220503609295 --0.111057536223 -0.229649334423 --0.110956647439 -0.238778270164 --0.111021020619 -0.247812176647 --0.111085459482 -0.256852903861 --0.111149966571 -0.265900050138 --0.111024504259 -0.27492392456 --0.110904994658 -0.283928312964 --0.110981519736 -0.29294390528 --0.111058196668 -0.301967909787 --0.111135027779 -0.310999991612 --0.110991427167 -0.319886760459 --0.11085354599 -0.328751378553 --0.11094201474 -0.337748253919 --0.111030727986 -0.346755219899 --0.111119688201 -0.355771971531 --0.110958378702 -0.364508730072 --0.110802533973 -0.373220741868 --0.110902717626 -0.38219883531 --0.111003249053 -0.391188812813 --0.111104129904 -0.400190379352 --0.110925346472 -0.408766473353 --0.110751742117 -0.417315274808 --0.101740268009 --0.417075024135 --0.101878848481 --0.40852974668 --0.102021515647 --0.399957183718 --0.101941382425 --0.390961010158 --0.101861523164 --0.381976429451 --0.101781943502 --0.373003731274 --0.101906412091 --0.364295613117 --0.102035197213 --0.355562756113 --0.101964488118 --0.346551428763 --0.101893977724 --0.33754989285 --0.101823659292 --0.328558462833 --0.10193383571 --0.319698053951 --0.102048551503 --0.31081551924 --0.101987466715 --0.301788934149 --0.101926498104 --0.292770404466 --0.101865646554 --0.28376029 --0.101961167607 --0.274760428032 --0.102061418492 --0.265741102446 --0.102010119565 --0.256699488419 --0.101958873434 --0.24766429203 --0.101907675643 --0.238635913778 --0.101988318244 --0.229511771275 --0.102073858792 --0.220370859758 --0.102032479475 --0.211314793669 --0.101991103365 --0.202263612654 --0.101949729949 --0.193217731339 --0.102015290236 --0.183986420294 --0.102085880732 --0.174741109331 --0.1020545479 --0.165671580743 --0.102023168528 --0.156605441374 --0.101991742782 --0.147543127287 --0.10204200199 --0.138224021463 --0.10209740021 --0.128893749833 --0.102076196545 --0.119812010379 --0.102054918687 --0.110732248155 --0.102033569895 --0.101654910329 --0.102068458358 --0.0922687017979 --0.102108568505 --0.0828742195417 --0.102097577341 --0.0737818407737 --0.102086488746 --0.0646900595381 --0.102075305023 --0.0555993343987 --0.102075305023 -0.0555993343987 --0.102086488746 -0.0646900595381 --0.102097577341 -0.0737818407737 --0.102108568505 -0.0828742195417 --0.102068458358 -0.0922687017979 --0.102033569895 -0.101654910329 --0.102054918687 -0.110732248155 --0.102076196545 -0.119812010379 --0.10209740021 -0.128893749833 --0.10204200199 -0.138224021463 --0.101991742782 -0.147543127287 --0.102023168528 -0.156605441374 --0.1020545479 -0.165671580743 --0.102085880732 -0.174741109331 --0.102015290236 -0.183986420294 --0.101949729949 -0.193217731339 --0.101991103365 -0.202263612654 --0.102032479475 -0.211314793669 --0.102073858792 -0.220370859758 --0.101988318244 -0.229511771275 --0.101907675643 -0.238635913778 --0.101958873434 -0.24766429203 --0.102010119565 -0.256699488419 --0.102061418492 -0.265741102446 --0.101961167607 -0.274760428032 --0.101865646554 -0.28376029 --0.101926498104 -0.292770404466 --0.101987466715 -0.301788934149 --0.102048551503 -0.31081551924 --0.10193383571 -0.319698053951 --0.101823659292 -0.328558462833 --0.101893977724 -0.33754989285 --0.101964488118 -0.346551428763 --0.102035197213 -0.355562756113 --0.101906412091 -0.364295613117 --0.101781943502 -0.373003731274 --0.101861523164 -0.381976429451 --0.101941382425 -0.390961010158 --0.102021515647 -0.399957183718 --0.101878848481 -0.40852974668 --0.101740268009 -0.417075024135 --0.0922537343406 --0.417458490499 --0.0924201889105 --0.408908734125 --0.0925915939695 --0.400331690901 --0.0924949021761 --0.391326199114 --0.0923985445397 --0.382332332636 --0.0923025238947 --0.373350384764 --0.0924520380861 --0.364636962394 --0.0926067758041 --0.355898801859 --0.0925214855042 --0.346878247463 --0.0924364308875 --0.337867500016 --0.0923516105586 --0.328866891038 --0.0924838952309 --0.32000042577 --0.0926216592094 --0.311111837185 --0.0925479817193 --0.302076088723 --0.0924744452754 --0.29304840787 --0.0924010525133 --0.284029155575 --0.0925157491421 --0.275022537825 --0.0926361432899 --0.265996458547 --0.0925742523447 --0.256945714984 --0.0925124326817 --0.247901414743 --0.0924506765735 --0.238863936581 --0.092547514989 --0.22973241045 --0.092650243628 --0.22058412784 --0.0926002963861 --0.211518970489 --0.0925503529797 --0.202458704639 --0.0925004129478 --0.193403752543 --0.0925791915423 --0.184164531586 --0.0926640157322 --0.174911312263 --0.0926261432862 --0.165832707397 --0.0925882196675 --0.156757493019 --0.0925502448466 --0.147686115163 --0.0926107364696 --0.138358665631 --0.092677399614 --0.129020046872 --0.0926517005361 --0.119929241049 --0.0926259140767 --0.110840410919 --0.092600040865 --0.10175400501 --0.092642115436 --0.0923591238643 --0.0926904510311 --0.0829559626843 --0.0926770069137 --0.0738545053553 --0.0926770069137 -0.0738545053553 --0.0926904510311 -0.0829559626843 --0.092642115436 -0.0923591238643 --0.092600040865 -0.10175400501 --0.0926259140767 -0.110840410919 --0.0926517005361 -0.119929241049 --0.092677399614 -0.129020046872 --0.0926107364696 -0.138358665631 --0.0925502448466 -0.147686115163 --0.0925882196675 -0.156757493019 --0.0926261432862 -0.165832707397 --0.0926640157322 -0.174911312263 --0.0925791915423 -0.184164531586 --0.0925004129478 -0.193403752543 --0.0925503529797 -0.202458704639 --0.0926002963861 -0.211518970489 --0.092650243628 -0.22058412784 --0.092547514989 -0.22973241045 --0.0924506765735 -0.238863936581 --0.0925124326817 -0.247901414743 --0.0925742523447 -0.256945714984 --0.0926361432899 -0.265996458547 --0.0925157491421 -0.275022537825 --0.0924010525133 -0.284029155575 --0.0924744452754 -0.29304840787 --0.0925479817193 -0.302076088723 --0.0926216592094 -0.311111837185 --0.0924838952309 -0.32000042577 --0.0923516105586 -0.328866891038 --0.0924364308875 -0.337867500016 --0.0925214855042 -0.346878247463 --0.0926067758041 -0.355898801859 --0.0924520380861 -0.364636962394 --0.0923025238947 -0.373350384764 --0.0923985445397 -0.382332332636 --0.0924949021761 -0.391326199114 --0.0925915939695 -0.400331690901 --0.0924201889105 -0.408908734125 --0.0922537343406 -0.417458490499 --0.0831360819065 --0.444864786105 --0.0830097557356 --0.435863151256 --0.0828839553109 --0.426875073677 --0.0827586696219 --0.417900803494 --0.0829529327818 --0.40934574628 --0.0831530070509 --0.400763398109 --0.0830398035615 --0.391747276122 --0.0829269949742 --0.382742817399 --0.0828145767893 --0.373750301423 --0.0829890837175 --0.365030649936 --0.0831697154336 --0.356286260706 --0.0830698817986 --0.347255154174 --0.0829703264907 --0.338233884983 --0.0828710405418 --0.329222755778 --0.0830253816348 --0.320349213875 --0.0831861382175 --0.311453548296 --0.0830998988897 --0.302407278824 --0.0830138314486 --0.293369114078 --0.0829279320157 --0.284339396241 --0.0830617604436 --0.275324922774 --0.0832022518303 --0.266290973342 --0.0831298015087 --0.257229744328 --0.0830574366452 --0.248174989053 --0.082985148556 --0.239127064589 --0.0830981490933 --0.229986981733 --0.0832180278687 --0.220830133126 --0.08315953593 --0.211754522301 --0.0831010480192 --0.20268380939 --0.0830425630793 --0.193618414852 --0.083134528955 --0.184370031669 --0.0832335552826 --0.175107644823 --0.083189162574 --0.16601859676 --0.0831447108639 --0.15693293639 --0.0831002033439 --0.147851119968 --0.0831709070601 --0.138514021432 --0.0832488095964 --0.129165741075 --0.0832186265684 --0.120064483798 --0.0831883463521 --0.11096520576 --0.0831579580829 --0.101868352484 --0.0832071973084 --0.0924634507146 --0.0832637432598 --0.0830502591578 --0.0832637432598 -0.0830502591578 --0.0832071973084 -0.0924634507146 --0.0831579580829 -0.101868352484 --0.0831883463521 -0.11096520576 --0.0832186265684 -0.120064483798 --0.0832488095964 -0.129165741075 --0.0831709070601 -0.138514021432 --0.0831002033439 -0.147851119968 --0.0831447108639 -0.15693293639 --0.083189162574 -0.16601859676 --0.0832335552826 -0.175107644823 --0.083134528955 -0.184370031669 --0.0830425630793 -0.193618414852 --0.0831010480192 -0.20268380939 --0.08315953593 -0.211754522301 --0.0832180278687 -0.220830133126 --0.0830981490933 -0.229986981733 --0.082985148556 -0.239127064589 --0.0830574366452 -0.248174989053 --0.0831298015087 -0.257229744328 --0.0832022518303 -0.266290973342 --0.0830617604436 -0.275324922774 --0.0829279320157 -0.284339396241 --0.0830138314486 -0.293369114078 --0.0830998988897 -0.302407278824 --0.0831861382175 -0.311453548296 --0.0830253816348 -0.320349213875 --0.0828710405418 -0.329222755778 --0.0829703264907 -0.338233884983 --0.0830698817986 -0.347255154174 --0.0831697154336 -0.356286260706 --0.0829890837175 -0.365030649936 --0.0828145767893 -0.373750301423 --0.0829269949742 -0.382742817399 --0.0830398035615 -0.391747276122 --0.0831530070509 -0.400763398109 --0.0829529327818 -0.40934574628 --0.0827586696219 -0.417900803494 --0.0828839553109 -0.426875073677 --0.0830097557356 -0.435863151256 --0.0831360819065 -0.444864786105 --0.0740398926542 --0.444733770196 --0.0739368860898 --0.435734894127 --0.0738343073975 --0.426749587291 --0.0737321519524 --0.417778095852 --0.073891248985 --0.409224896145 --0.07405505717 --0.400644414755 --0.0739626953606 --0.391631086696 --0.0738706551116 --0.382629422609 --0.0737789319562 --0.373639684434 --0.0739219318863 --0.364922044921 --0.0740699086105 --0.356179689102 --0.0739884104076 --0.347151384697 --0.0739071390621 --0.338132913561 --0.0738260862094 --0.329124589097 --0.0739526131508 --0.320253205352 --0.0740843646237 --0.311359705125 --0.0740139364482 --0.302316256323 --0.0739436477834 --0.293280907556 --0.0738734949336 --0.284254019576 --0.0739832374021 --0.275241846171 --0.0740984154472 --0.26621019123 --0.0740392341972 --0.257151807762 --0.0739801191999 --0.248099894397 --0.0739210660009 --0.239054807683 --0.0740137403275 --0.229917139443 --0.0741120305748 --0.220762711541 --0.0740642439376 --0.211689964427 --0.0740164609969 --0.202622117609 --0.0739686791366 --0.193559579294 --0.0740441031978 --0.1843137122 --0.0741252983994 --0.175053845762 --0.0740890341906 --0.165967668926 --0.0740527259947 --0.156884899471 --0.0740163692637 --0.14780596262 --0.0740743384203 --0.13847146244 --0.0741381991675 --0.129125795272 --0.0741135598928 --0.120027428907 --0.0740888407372 --0.110931043975 --0.0740640331129 --0.101837085375 --0.0741043681447 --0.0924348551487 --0.0741043681447 -0.0924348551487 --0.0740640331129 -0.101837085375 --0.0740888407372 -0.110931043975 --0.0741135598928 -0.120027428907 --0.0741381991675 -0.129125795272 --0.0740743384203 -0.13847146244 --0.0740163692637 -0.14780596262 --0.0740527259947 -0.156884899471 --0.0740890341906 -0.165967668926 --0.0741252983994 -0.175053845762 --0.0740441031978 -0.1843137122 --0.0739686791366 -0.193559579294 --0.0740164609969 -0.202622117609 --0.0740642439376 -0.211689964427 --0.0741120305748 -0.220762711541 --0.0740137403275 -0.229917139443 --0.0739210660009 -0.239054807683 --0.0739801191999 -0.248099894397 --0.0740392341972 -0.257151807762 --0.0740984154472 -0.26621019123 --0.0739832374021 -0.275241846171 --0.0738734949336 -0.284254019576 --0.0739436477834 -0.293280907556 --0.0740139364482 -0.302316256323 --0.0740843646237 -0.311359705125 --0.0739526131508 -0.320253205352 --0.0738260862094 -0.329124589097 --0.0739071390621 -0.338132913561 --0.0739884104076 -0.347151384697 --0.0740699086105 -0.356179689102 --0.0739219318863 -0.364922044921 --0.0737789319562 -0.373639684434 --0.0738706551116 -0.382629422609 --0.0739626953606 -0.391631086696 --0.07405505717 -0.400644414755 --0.073891248985 -0.409224896145 --0.0737321519524 -0.417778095852 --0.0738343073975 -0.426749587291 --0.0739368860898 -0.435734894127 --0.0740398926542 -0.444733770196 --0.0649446695436 --0.44460242984 --0.0648649941562 --0.435606375044 --0.0647856455047 --0.426623858592 --0.0647066262548 --0.417655146386 --0.0648305371547 --0.409103780532 --0.0649580586285 --0.400525149941 --0.0648865415777 --0.391514639249 --0.064815273704 --0.382515781935 --0.0647442521486 --0.373528848719 --0.0648557210988 --0.364813190687 --0.0649710229278 --0.35607283238 --0.0649078686906 --0.347047360011 --0.0648448864062 --0.338031714149 --0.0647820754375 --0.32902622344 --0.064880772978 --0.320156978728 --0.0649834990886 --0.3112656103 --0.0649288859383 --0.302225003903 --0.0648743829544 --0.293192506582 --0.0648199839881 --0.284168470872 --0.0649056252757 --0.275158571797 --0.064995472156 --0.266129185857 --0.0649495610531 --0.257073663839 --0.0649037015841 --0.248024614146 --0.0648578875923 --0.238982392823 --0.0649302205342 --0.229847120712 --0.0650069092844 --0.220695089525 --0.0649698309855 --0.21162522257 --0.0649327564162 --0.202560262928 --0.0648956829273 --0.193500616283 --0.0649545566728 --0.18425724797 --0.065017908699 --0.17499987908 --0.0649897758901 --0.16591659288 --0.0649616115858 --0.156836727189 --0.0649334082625 --0.147760698565 --0.0649786355164 --0.138428778744 --0.0650284463669 --0.129085700049 --0.0650093546011 --0.119990250175 --0.0649901968987 --0.110896780752 --0.0649709703147 --0.101805736261 --0.0649709703147 -0.101805736261 --0.0649901968987 -0.110896780752 --0.0650093546011 -0.119990250175 --0.0650284463669 -0.129085700049 --0.0649786355164 -0.138428778744 --0.0649334082625 -0.147760698565 --0.0649616115858 -0.156836727189 --0.0649897758901 -0.16591659288 --0.065017908699 -0.17499987908 --0.0649545566728 -0.18425724797 --0.0648956829273 -0.193500616283 --0.0649327564162 -0.202560262928 --0.0649698309855 -0.21162522257 --0.0650069092844 -0.220695089525 --0.0649302205342 -0.229847120712 --0.0648578875923 -0.238982392823 --0.0649037015841 -0.248024614146 --0.0649495610531 -0.257073663839 --0.064995472156 -0.266129185857 --0.0649056252757 -0.275158571797 --0.0648199839881 -0.284168470872 --0.0648743829544 -0.293192506582 --0.0649288859383 -0.302225003903 --0.0649834990886 -0.3112656103 --0.064880772978 -0.320156978728 --0.0647820754375 -0.32902622344 --0.0648448864062 -0.338031714149 --0.0649078686906 -0.347047360011 --0.0649710229278 -0.35607283238 --0.0648557210988 -0.364813190687 --0.0647442521486 -0.373528848719 --0.064815273704 -0.382515781935 --0.0648865415777 -0.391514639249 --0.0649580586285 -0.400525149941 --0.0648305371547 -0.409103780532 --0.0647066262548 -0.417655146386 --0.0647856455047 -0.426623858592 --0.0648649941562 -0.435606375044 --0.0649446695436 -0.44460242984 --0.0558508757184 --0.444470808283 --0.0557945312859 --0.435477564862 --0.0557384173564 --0.426497847967 --0.0556825343015 --0.417531957678 --0.055771244458 --0.408982422497 --0.0558624628286 --0.400405597914 --0.0558117946622 --0.391397909161 --0.055761300715 --0.382401885636 --0.0557109793387 --0.373417775588 --0.0557909086642 --0.364704088099 --0.0558735221554 --0.355965708128 --0.0558287131825 --0.346943088985 --0.0557840245722 --0.337930303215 --0.0557394535916 --0.32892765996 --0.0558103095256 --0.32006052185 --0.0558840043279 --0.311171267591 --0.0558452074467 --0.30213352408 --0.055806487117 --0.293103892763 --0.0557678421198 --0.284082725673 --0.0558293732053 --0.27507507552 --0.0558938810371 --0.26604795177 --0.0558612423967 --0.256995313358 --0.0558286396918 --0.247949154839 --0.0557960662871 --0.238909832267 --0.0558480482459 --0.229776926249 --0.0559031277629 --0.220627267794 --0.0558767607998 --0.211560297414 --0.0558503942285 --0.202498236695 --0.0558240268154 --0.1934415024 --0.0558663419254 --0.18420062191 --0.0559118479094 --0.174945736548 --0.0558918495084 --0.165865363296 --0.0558718280842 --0.156788417117 --0.0558517788059 --0.147715319 --0.0558842614978 --0.138385967868 --0.0559200161528 --0.129045453336 --0.0559064706546 --0.119952939134 --0.0558928780134 --0.110862410538 --0.0558792345882 --0.101774305473 --0.0558792345882 -0.101774305473 --0.0558928780134 -0.110862410538 --0.0559064706546 -0.119952939134 --0.0559200161528 -0.129045453336 --0.0558842614978 -0.138385967868 --0.0558517788059 -0.147715319 --0.0558718280842 -0.156788417117 --0.0558918495084 -0.165865363296 --0.0559118479094 -0.174945736548 --0.0558663419254 -0.18420062191 --0.0558240268154 -0.1934415024 --0.0558503942285 -0.202498236695 --0.0558767607998 -0.211560297414 --0.0559031277629 -0.220627267794 --0.0558480482459 -0.229776926249 --0.0557960662871 -0.238909832267 --0.0558286396918 -0.247949154839 --0.0558612423967 -0.256995313358 --0.0558938810371 -0.26604795177 --0.0558293732053 -0.27507507552 --0.0557678421198 -0.284082725673 --0.055806487117 -0.293103892763 --0.0558452074467 -0.30213352408 --0.0558840043279 -0.311171267591 --0.0558103095256 -0.32006052185 --0.0557394535916 -0.32892765996 --0.0557840245722 -0.337930303215 --0.0558287131825 -0.346943088985 --0.0558735221554 -0.355965708128 --0.0557909086642 -0.364704088099 --0.0557109793387 -0.373417775588 --0.055761300715 -0.382401885636 --0.0558117946622 -0.391397909161 --0.0558624628286 -0.400405597914 --0.055771244458 -0.408982422497 --0.0556825343015 -0.417531957678 --0.0557384173564 -0.426497847967 --0.0557945312859 -0.435477564862 --0.0558508757184 -0.444470808283 --0.046376121769 --0.444697368755 --0.0463015019339 --0.435699046697 --0.0462271935633 --0.42671427198 --0.0461531901581 --0.417743336845 --0.04626946149 --0.409191016344 --0.0463890961608 --0.400611405805 --0.0463220847688 --0.391598666486 --0.0462553051202 --0.382597607606 --0.0461887546874 --0.373608477694 --0.0462933838906 --0.364891673266 --0.0464015870842 --0.356150166079 --0.0463423811938 --0.347122510394 --0.0462833397026 --0.338104703199 --0.0462244547054 --0.329097054416 --0.0463171279016 --0.320226443793 --0.0464135690272 --0.311333722299 --0.0463623439017 --0.302290975139 --0.0463112181243 --0.293256337796 --0.0462601913479 --0.284230163991 --0.0463406467448 --0.27521873629 --0.0464250349706 --0.266187844466 --0.0463819472917 --0.257130204592 --0.0463389060857 --0.248079036004 --0.0462959063285 --0.239034718864 --0.0463639046393 --0.229897766748 --0.0464359783408 --0.220744048667 --0.0464011531855 --0.21167207546 --0.0463663312799 --0.202605010092 --0.0463315094147 --0.193543270418 --0.0463868831823 --0.184298105837 --0.0464464506427 --0.175038931467 --0.0464199993117 --0.165953546009 --0.0463935152564 --0.156871584243 --0.0463669965927 --0.147793478353 --0.0464095786505 --0.13845965595 --0.046456448993 --0.129114659711 --0.0464384600951 --0.120017127268 --0.0464204108961 --0.110921576904 --0.0464204108961 -0.110921576904 --0.0464384600951 -0.120017127268 --0.046456448993 -0.129114659711 --0.0464095786505 -0.13845965595 --0.0463669965927 -0.147793478353 --0.0463935152564 -0.156871584243 --0.0464199993117 -0.165953546009 --0.0464464506427 -0.175038931467 --0.0463868831823 -0.184298105837 --0.0463315094147 -0.193543270418 --0.0463663312799 -0.202605010092 --0.0464011531855 -0.21167207546 --0.0464359783408 -0.220744048667 --0.0463639046393 -0.229897766748 --0.0462959063285 -0.239034718864 --0.0463389060857 -0.248079036004 --0.0463819472917 -0.257130204592 --0.0464250349706 -0.266187844466 --0.0463406467448 -0.27521873629 --0.0462601913479 -0.284230163991 --0.0463112181243 -0.293256337796 --0.0463623439017 -0.302290975139 --0.0464135690272 -0.311333722299 --0.0463171279016 -0.320226443793 --0.0462244547054 -0.329097054416 --0.0462833397026 -0.338104703199 --0.0463423811938 -0.347122510394 --0.0464015870842 -0.356150166079 --0.0462933838906 -0.364891673266 --0.0461887546874 -0.373608477694 --0.0462553051202 -0.382597607606 --0.0463220847688 -0.391598666486 --0.0463890961608 -0.400611405805 --0.04626946149 -0.409191016344 --0.0461531901581 -0.417743336845 --0.0462271935633 -0.42671427198 --0.0463015019339 -0.435699046697 --0.046376121769 -0.444697368755 --0.0368957865161 --0.444987171929 --0.0368029213202 --0.435982459336 --0.0367104437487 --0.426991327578 --0.0366183450522 --0.418014027912 --0.0367621529761 --0.409458087731 --0.0369101772962 --0.400874872524 --0.0368268439654 --0.391855762187 --0.0367438017397 --0.382848344741 --0.0366610464797 --0.373852880195 --0.0367903502607 --0.36513201548 --0.0369241197068 --0.356386434688 --0.0368505382855 --0.347352409638 --0.0367771604939 --0.338328237088 --0.03670398221 --0.329314244085 --0.0368184553891 --0.320439156118 --0.0369376182664 --0.311541938433 --0.0368739805433 --0.302492833222 --0.0368104708014 --0.293451847212 --0.0367470831325 --0.284419322647 --0.0368464434403 --0.275403003566 --0.0369506908377 --0.266367212757 --0.0368971665135 --0.25730321024 --0.0368437013147 --0.248245675022 --0.0367902919329 --0.239194999809 --0.0368742888211 --0.230052803869 --0.0369633398847 --0.220893823109 --0.0369200695187 --0.211815473574 --0.0368768042488 --0.202742037724 --0.036833540927 --0.193673923463 --0.036901960387 --0.184423196968 --0.0369755745669 --0.175158460905 --0.0369426795739 --0.166066696507 --0.0369097426344 --0.156978340929 --0.0368767633164 --0.147893834856 --0.0369294345967 --0.138554219433 --0.036987410967 --0.129203425953 --0.0369649854024 --0.120099482013 --0.0369424848681 --0.110997515554 --0.0369424848681 -0.110997515554 --0.0369649854024 -0.120099482013 --0.036987410967 -0.129203425953 --0.0369294345967 -0.138554219433 --0.0368767633164 -0.147893834856 --0.0369097426344 -0.156978340929 --0.0369426795739 -0.166066696507 --0.0369755745669 -0.175158460905 --0.036901960387 -0.184423196968 --0.036833540927 -0.193673923463 --0.0368768042488 -0.202742037724 --0.0369200695187 -0.211815473574 --0.0369633398847 -0.220893823109 --0.0368742888211 -0.230052803869 --0.0367902919329 -0.239194999809 --0.0368437013147 -0.248245675022 --0.0368971665135 -0.25730321024 --0.0369506908377 -0.266367212757 --0.0368464434403 -0.275403003566 --0.0367470831325 -0.284419322647 --0.0368104708014 -0.293451847212 --0.0368739805433 -0.302492833222 --0.0369376182664 -0.311541938433 --0.0368184553891 -0.320439156118 --0.03670398221 -0.329314244085 --0.0367771604939 -0.338328237088 --0.0368505382855 -0.347352409638 --0.0369241197068 -0.356386434688 --0.0367903502607 -0.36513201548 --0.0366610464797 -0.373852880195 --0.0367438017397 -0.382848344741 --0.0368268439654 -0.391855762187 --0.0369101772962 -0.400874872524 --0.0367621529761 -0.409458087731 --0.0366183450522 -0.418014027912 --0.0367104437487 -0.426991327578 --0.0368029213202 -0.435982459336 --0.0368957865161 -0.444987171929 --0.0277912250248 --0.444981660384 --0.027721749714 --0.435977150736 --0.0276525625647 --0.426986243338 --0.0275836585003 --0.418009156848 --0.0276921931922 --0.409453356029 --0.0278038398448 --0.400870286991 --0.0277414079634 --0.391851381448 --0.0276791925915 --0.382844168581 --0.027617191548 --0.373848908368 --0.0277148895948 --0.365128133693 --0.0278159020838 --0.356382633697 --0.027760709745 --0.347348805515 --0.0277056687862 --0.338324835287 --0.0276507779811 --0.329311038806 --0.0277373525843 --0.320436002876 --0.027827422261 --0.311538833841 --0.0277796408375 --0.302489911341 --0.0277319545704 --0.29344911385 --0.0276843593895 --0.284416784772 --0.0277595591647 --0.275400464113 --0.0278384142699 --0.266364669017 --0.0277981943046 --0.257300850773 --0.0277580182275 --0.248243505453 --0.0277178837535 --0.239193014049 --0.0277814887559 --0.230050781339 --0.0278488851862 --0.220891766843 --0.0278163521898 --0.21181359598 --0.0277838210296 --0.202740345144 --0.0277512912181 --0.193672411395 --0.02780311733 --0.1844216154 --0.0278588482642 --0.175156813672 --0.027834108017 --0.166065227905 --0.0278093348 --0.156977049877 --0.0277845292075 --0.14789271653 --0.0278244276328 --0.138553018196 --0.0278683193791 --0.129202140184 --0.0278514545012 --0.120098365966 --0.0278345321638 --0.110996574977 --0.0278345321638 -0.110996574977 --0.0278514545012 -0.120098365966 --0.0278683193791 -0.129202140184 --0.0278244276328 -0.138553018196 --0.0277845292075 -0.14789271653 --0.0278093348 -0.156977049877 --0.027834108017 -0.166065227905 --0.0278588482642 -0.175156813672 --0.02780311733 -0.1844216154 --0.0277512912181 -0.193672411395 --0.0277838210296 -0.202740345144 --0.0278163521898 -0.21181359598 --0.0278488851862 -0.220891766843 --0.0277814887559 -0.230050781339 --0.0277178837535 -0.239193014049 --0.0277580182275 -0.248243505453 --0.0277981943046 -0.257300850773 --0.0278384142699 -0.266364669017 --0.0277595591647 -0.275400464113 --0.0276843593895 -0.284416784772 --0.0277319545704 -0.29344911385 --0.0277796408375 -0.302489911341 --0.027827422261 -0.311538833841 --0.0277373525843 -0.320436002876 --0.0276507779811 -0.329311038806 --0.0277056687862 -0.338324835287 --0.027760709745 -0.347348805515 --0.0278159020838 -0.356382633697 --0.0277148895948 -0.365128133693 --0.027617191548 -0.373848908368 --0.0276791925915 -0.382844168581 --0.0277414079634 -0.391851381448 --0.0278038398448 -0.400870286991 --0.0276921931922 -0.409453356029 --0.0275836585003 -0.418009156848 --0.0276525625647 -0.426986243338 --0.027721749714 -0.435977150736 --0.0277912250248 -0.444981660384 --0.0186860156002 --0.444975735568 --0.0186399405574 --0.435971473683 --0.0185940556291 --0.426980802862 --0.0185483586657 --0.418003952611 --0.0186215906088 --0.409448268772 --0.0186968292818 --0.400865311073 --0.0186553099206 --0.391846657033 --0.0186139331806 --0.382839671933 --0.01857269769 --0.373844624903 --0.0186387637773 --0.365123921895 --0.0187069911061 --0.356378487586 --0.0186701973657 --0.347344871746 --0.0186335042161 --0.338321129606 --0.0185969102985 --0.329307566403 --0.0186555612554 --0.320432544145 --0.0187165128832 --0.311535391593 --0.0186845969581 --0.302486682971 --0.018652742191 --0.293446104948 --0.0186209476571 --0.28441400088 --0.0186719669805 --0.275397667502 --0.0187254081458 --0.266361850744 --0.0186984998286 --0.25729823443 --0.0186716199759 --0.24824109151 --0.0186447663391 --0.239190802694 --0.0186879639425 --0.230048521631 --0.0187336882482 --0.220889456341 --0.018711899098 --0.211811494058 --0.0186901087876 --0.2027384469 --0.0186683171263 --0.193670711886 --0.0187035376386 --0.184419844137 --0.0187413701699 --0.175154968587 --0.0187247877332 --0.166063571675 --0.0187081826038 --0.156975585883 --0.018691555676 --0.147891459142 --0.0187186706924 --0.138551661498 --0.0187484646371 --0.129200676265 --0.0187371633819 --0.120097099211 --0.0187258231465 --0.110995505425 --0.0187258231465 -0.110995505425 --0.0187371633819 -0.120097099211 --0.0187484646371 -0.129200676265 --0.0187186706924 -0.138551661498 --0.018691555676 -0.147891459142 --0.0187081826038 -0.156975585883 --0.0187247877332 -0.166063571675 --0.0187413701699 -0.175154968587 --0.0187035376386 -0.184419844137 --0.0186683171263 -0.193670711886 --0.0186901087876 -0.2027384469 --0.018711899098 -0.211811494058 --0.0187336882482 -0.220889456341 --0.0186879639425 -0.230048521631 --0.0186447663391 -0.239190802694 --0.0186716199759 -0.24824109151 --0.0186984998286 -0.25729823443 --0.0187254081458 -0.266361850744 --0.0186719669805 -0.275397667502 --0.0186209476571 -0.28441400088 --0.018652742191 -0.293446104948 --0.0186845969581 -0.302486682971 --0.0187165128832 -0.311535391593 --0.0186555612554 -0.320432544145 --0.0185969102985 -0.329307566403 --0.0186335042161 -0.338321129606 --0.0186701973657 -0.347344871746 --0.0187069911061 -0.356378487586 --0.0186387637773 -0.365123921895 --0.01857269769 -0.373844624903 --0.0186139331806 -0.382839671933 --0.0186553099206 -0.391846657033 --0.0186968292818 -0.400865311073 --0.0186215906088 -0.409448268772 --0.0185483586657 -0.418003952611 --0.0185940556291 -0.426980802862 --0.0186399405574 -0.435971473683 --0.0186860156002 -0.444975735568 --0.00958062196408 --0.444969430065 --0.0095579563547 --0.435965417381 --0.0095353820167 --0.426974995376 --0.009512897692 --0.417998415256 --0.00955080404256 --0.409442844546 --0.0095896128528 --0.400859974234 --0.00956901262582 --0.391841565928 --0.0095484809934 --0.38283483178 --0.00952801706145 --0.373840035392 --0.00956242999499 --0.365119380352 --0.00959785233905 --0.356373985478 --0.0095794645274 --0.347340621864 --0.00956112471446 --0.33831712389 --0.00954283230263 --0.329303796754 --0.0095735426091 --0.320428783779 --0.00960535796275 --0.311531637523 --0.0095893127628 --0.302483166655 --0.00957329636066 --0.293442820542 --0.00955730796401 --0.284410954667 --0.00958413043115 --0.275394590435 --0.0096121416731 --0.26635873958 --0.00959855065346 --0.25729536125 --0.0095849713247 --0.248238444782 --0.00957140282504 --0.2391883825 --0.00959418036852 --0.230046029952 --0.00961821854386 --0.220886891636 --0.0096071759025 --0.211809157131 --0.00959613008312 --0.202736332311 --0.00958508140349 --0.193668824959 --0.0096036849819 --0.184417867519 --0.00962360683561 --0.175152892004 --0.00961518686925 --0.166061716617 --0.00960675382589 --0.156973956393 --0.0095983071859 --0.147890053645 --0.00961263044987 --0.138550130531 --0.00962831896545 --0.129199025118 --0.00962258422045 --0.12009567309 --0.00961682696756 --0.110994298675 --0.00961682696756 -0.110994298675 --0.00962258422045 -0.12009567309 --0.00962831896545 -0.129199025118 --0.00961263044987 -0.138550130531 --0.0095983071859 -0.147890053645 --0.00960675382589 -0.156973956393 --0.00961518686925 -0.166061716617 --0.00962360683561 -0.175152892004 --0.0096036849819 -0.184417867519 --0.00958508140349 -0.193668824959 --0.00959613008312 -0.202736332311 --0.0096071759025 -0.211809157131 --0.00961821854386 -0.220886891636 --0.00959418036852 -0.230046029952 --0.00957140282504 -0.2391883825 --0.0095849713247 -0.248238444782 --0.00959855065346 -0.25729536125 --0.0096121416731 -0.26635873958 --0.00958413043115 -0.275394590435 --0.00955730796401 -0.284410954667 --0.00957329636066 -0.293442820542 --0.0095893127628 -0.302483166655 --0.00960535796275 -0.311531637523 --0.0095735426091 -0.320428783779 --0.00954283230263 -0.329303796754 --0.00956112471446 -0.33831712389 --0.0095794645274 -0.347340621864 --0.00959785233905 -0.356373985478 --0.00956242999499 -0.365119380352 --0.00952801706145 -0.373840035392 --0.0095484809934 -0.38283483178 --0.00956901262582 -0.391841565928 --0.0095896128528 -0.400859974234 --0.00955080404256 -0.409442844546 --0.009512897692 -0.417998415256 --0.0095353820167 -0.426974995376 --0.0095579563547 -0.435965417381 --0.00958062196408 -0.444969430065 -0 --0.444966181715 -0 --0.435962284222 -0 --0.426971997728 -0 --0.417995562543 -0 --0.409440046984 -0 --0.400857220697 -0 --0.391838914927 -0 --0.382832312153 -0 --0.373837661282 -0 --0.365117029911 -0 --0.356371646096 -0 --0.347338418464 -0 --0.338315048497 -0 --0.329301835773 -0 --0.320426830896 -0 --0.311529691168 -0 --0.302481338043 -0 --0.293441104106 -0 --0.284409363878 -0 --0.275392978581 -0 --0.266357104707 -0 --0.257293854453 -0 --0.248237060256 -0 --0.239187114396 -0 --0.230044720345 -0 --0.220885545925 -0 --0.211807931325 -0 --0.202735225647 -0 --0.19366783814 -0 --0.184416826485 -0 --0.175151793255 -0 --0.166060737452 -0 --0.156973099541 -0 --0.147889311661 -0 --0.138549320014 -0 --0.129198151999 -0 --0.120094917391 -0 --0.110993660426 -0 -0.110993660426 -0 -0.120094917391 -0 -0.129198151999 -0 -0.138549320014 -0 -0.147889311661 -0 -0.156973099541 -0 -0.166060737452 -0 -0.175151793255 -0 -0.184416826485 -0 -0.19366783814 -0 -0.202735225647 -0 -0.211807931325 -0 -0.220885545925 -0 -0.230044720345 -0 -0.239187114396 -0 -0.248237060256 -0 -0.257293854453 -0 -0.266357104707 -0 -0.275392978581 -0 -0.284409363878 -0 -0.293441104106 -0 -0.302481338043 -0 -0.311529691168 -0 -0.320426830896 -0 -0.329301835773 -0 -0.338315048497 -0 -0.347338418464 -0 -0.356371646096 -0 -0.365117029911 -0 -0.373837661282 -0 -0.382832312153 -0 -0.391838914927 -0 -0.400857220697 -0 -0.409440046984 -0 -0.417995562543 -0 -0.426971997728 -0 -0.435962284222 -0 -0.444966181715 -0.00958062196408 --0.444969430065 -0.0095579563547 --0.435965417381 -0.0095353820167 --0.426974995376 -0.009512897692 --0.417998415256 -0.00955080404256 --0.409442844546 -0.0095896128528 --0.400859974234 -0.00956901262582 --0.391841565928 -0.0095484809934 --0.38283483178 -0.00952801706145 --0.373840035392 -0.00956242999499 --0.365119380352 -0.00959785233905 --0.356373985478 -0.0095794645274 --0.347340621864 -0.00956112471446 --0.33831712389 -0.00954283230263 --0.329303796754 -0.0095735426091 --0.320428783779 -0.00960535796275 --0.311531637523 -0.0095893127628 --0.302483166655 -0.00957329636066 --0.293442820542 -0.00955730796401 --0.284410954667 -0.00958413043115 --0.275394590435 -0.0096121416731 --0.26635873958 -0.00959855065346 --0.25729536125 -0.0095849713247 --0.248238444782 -0.00957140282504 --0.2391883825 -0.00959418036852 --0.230046029952 -0.00961821854386 --0.220886891636 -0.0096071759025 --0.211809157131 -0.00959613008312 --0.202736332311 -0.00958508140349 --0.193668824959 -0.0096036849819 --0.184417867519 -0.00962360683561 --0.175152892004 -0.00961518686925 --0.166061716617 -0.00960675382589 --0.156973956393 -0.0095983071859 --0.147890053645 -0.00961263044987 --0.138550130531 -0.00962831896545 --0.129199025118 -0.00962258422045 --0.12009567309 -0.00961682696756 --0.110994298675 -0.00961682696756 -0.110994298675 -0.00962258422045 -0.12009567309 -0.00962831896545 -0.129199025118 -0.00961263044987 -0.138550130531 -0.0095983071859 -0.147890053645 -0.00960675382589 -0.156973956393 -0.00961518686925 -0.166061716617 -0.00962360683561 -0.175152892004 -0.0096036849819 -0.184417867519 -0.00958508140349 -0.193668824959 -0.00959613008312 -0.202736332311 -0.0096071759025 -0.211809157131 -0.00961821854386 -0.220886891636 -0.00959418036852 -0.230046029952 -0.00957140282504 -0.2391883825 -0.0095849713247 -0.248238444782 -0.00959855065346 -0.25729536125 -0.0096121416731 -0.26635873958 -0.00958413043115 -0.275394590435 -0.00955730796401 -0.284410954667 -0.00957329636066 -0.293442820542 -0.0095893127628 -0.302483166655 -0.00960535796275 -0.311531637523 -0.0095735426091 -0.320428783779 -0.00954283230263 -0.329303796754 -0.00956112471446 -0.33831712389 -0.0095794645274 -0.347340621864 -0.00959785233905 -0.356373985478 -0.00956242999499 -0.365119380352 -0.00952801706145 -0.373840035392 -0.0095484809934 -0.38283483178 -0.00956901262582 -0.391841565928 -0.0095896128528 -0.400859974234 -0.00955080404256 -0.409442844546 -0.009512897692 -0.417998415256 -0.0095353820167 -0.426974995376 -0.0095579563547 -0.435965417381 -0.00958062196408 -0.444969430065 -0.0186860156002 --0.444975735568 -0.0186399405574 --0.435971473683 -0.0185940556291 --0.426980802862 -0.0185483586657 --0.418003952611 -0.0186215906088 --0.409448268772 -0.0186968292818 --0.400865311073 -0.0186553099206 --0.391846657033 -0.0186139331806 --0.382839671933 -0.01857269769 --0.373844624903 -0.0186387637773 --0.365123921895 -0.0187069911061 --0.356378487586 -0.0186701973657 --0.347344871746 -0.0186335042161 --0.338321129606 -0.0185969102985 --0.329307566403 -0.0186555612554 --0.320432544145 -0.0187165128832 --0.311535391593 -0.0186845969581 --0.302486682971 -0.018652742191 --0.293446104948 -0.0186209476571 --0.28441400088 -0.0186719669805 --0.275397667502 -0.0187254081458 --0.266361850744 -0.0186984998286 --0.25729823443 -0.0186716199759 --0.24824109151 -0.0186447663391 --0.239190802694 -0.0186879639425 --0.230048521631 -0.0187336882482 --0.220889456341 -0.018711899098 --0.211811494058 -0.0186901087876 --0.2027384469 -0.0186683171263 --0.193670711886 -0.0187035376386 --0.184419844137 -0.0187413701699 --0.175154968587 -0.0187247877332 --0.166063571675 -0.0187081826038 --0.156975585883 -0.018691555676 --0.147891459142 -0.0187186706924 --0.138551661498 -0.0187484646371 --0.129200676265 -0.0187371633819 --0.120097099211 -0.0187258231465 --0.110995505425 -0.0187258231465 -0.110995505425 -0.0187371633819 -0.120097099211 -0.0187484646371 -0.129200676265 -0.0187186706924 -0.138551661498 -0.018691555676 -0.147891459142 -0.0187081826038 -0.156975585883 -0.0187247877332 -0.166063571675 -0.0187413701699 -0.175154968587 -0.0187035376386 -0.184419844137 -0.0186683171263 -0.193670711886 -0.0186901087876 -0.2027384469 -0.018711899098 -0.211811494058 -0.0187336882482 -0.220889456341 -0.0186879639425 -0.230048521631 -0.0186447663391 -0.239190802694 -0.0186716199759 -0.24824109151 -0.0186984998286 -0.25729823443 -0.0187254081458 -0.266361850744 -0.0186719669805 -0.275397667502 -0.0186209476571 -0.28441400088 -0.018652742191 -0.293446104948 -0.0186845969581 -0.302486682971 -0.0187165128832 -0.311535391593 -0.0186555612554 -0.320432544145 -0.0185969102985 -0.329307566403 -0.0186335042161 -0.338321129606 -0.0186701973657 -0.347344871746 -0.0187069911061 -0.356378487586 -0.0186387637773 -0.365123921895 -0.01857269769 -0.373844624903 -0.0186139331806 -0.382839671933 -0.0186553099206 -0.391846657033 -0.0186968292818 -0.400865311073 -0.0186215906088 -0.409448268772 -0.0185483586657 -0.418003952611 -0.0185940556291 -0.426980802862 -0.0186399405574 -0.435971473683 -0.0186860156002 -0.444975735568 -0.0277912250248 --0.444981660384 -0.027721749714 --0.435977150736 -0.0276525625647 --0.426986243338 -0.0275836585003 --0.418009156848 -0.0276921931922 --0.409453356029 -0.0278038398448 --0.400870286991 -0.0277414079634 --0.391851381448 -0.0276791925915 --0.382844168581 -0.027617191548 --0.373848908368 -0.0277148895948 --0.365128133693 -0.0278159020838 --0.356382633697 -0.027760709745 --0.347348805515 -0.0277056687862 --0.338324835287 -0.0276507779811 --0.329311038806 -0.0277373525843 --0.320436002876 -0.027827422261 --0.311538833841 -0.0277796408375 --0.302489911341 -0.0277319545704 --0.29344911385 -0.0276843593895 --0.284416784772 -0.0277595591647 --0.275400464113 -0.0278384142699 --0.266364669017 -0.0277981943046 --0.257300850773 -0.0277580182275 --0.248243505453 -0.0277178837535 --0.239193014049 -0.0277814887559 --0.230050781339 -0.0278488851862 --0.220891766843 -0.0278163521898 --0.21181359598 -0.0277838210296 --0.202740345144 -0.0277512912181 --0.193672411395 -0.02780311733 --0.1844216154 -0.0278588482642 --0.175156813672 -0.027834108017 --0.166065227905 -0.0278093348 --0.156977049877 -0.0277845292075 --0.14789271653 -0.0278244276328 --0.138553018196 -0.0278683193791 --0.129202140184 -0.0278514545012 --0.120098365966 -0.0278345321638 --0.110996574977 -0.0278345321638 -0.110996574977 -0.0278514545012 -0.120098365966 -0.0278683193791 -0.129202140184 -0.0278244276328 -0.138553018196 -0.0277845292075 -0.14789271653 -0.0278093348 -0.156977049877 -0.027834108017 -0.166065227905 -0.0278588482642 -0.175156813672 -0.02780311733 -0.1844216154 -0.0277512912181 -0.193672411395 -0.0277838210296 -0.202740345144 -0.0278163521898 -0.21181359598 -0.0278488851862 -0.220891766843 -0.0277814887559 -0.230050781339 -0.0277178837535 -0.239193014049 -0.0277580182275 -0.248243505453 -0.0277981943046 -0.257300850773 -0.0278384142699 -0.266364669017 -0.0277595591647 -0.275400464113 -0.0276843593895 -0.284416784772 -0.0277319545704 -0.29344911385 -0.0277796408375 -0.302489911341 -0.027827422261 -0.311538833841 -0.0277373525843 -0.320436002876 -0.0276507779811 -0.329311038806 -0.0277056687862 -0.338324835287 -0.027760709745 -0.347348805515 -0.0278159020838 -0.356382633697 -0.0277148895948 -0.365128133693 -0.027617191548 -0.373848908368 -0.0276791925915 -0.382844168581 -0.0277414079634 -0.391851381448 -0.0278038398448 -0.400870286991 -0.0276921931922 -0.409453356029 -0.0275836585003 -0.418009156848 -0.0276525625647 -0.426986243338 -0.027721749714 -0.435977150736 -0.0277912250248 -0.444981660384 -0.0368957865161 --0.444987171929 -0.0368029213202 --0.435982459336 -0.0367104437487 --0.426991327578 -0.0366183450522 --0.418014027912 -0.0367621529761 --0.409458087731 -0.0369101772962 --0.400874872524 -0.0368268439654 --0.391855762187 -0.0367438017397 --0.382848344741 -0.0366610464797 --0.373852880195 -0.0367903502607 --0.36513201548 -0.0369241197068 --0.356386434688 -0.0368505382855 --0.347352409638 -0.0367771604939 --0.338328237088 -0.03670398221 --0.329314244085 -0.0368184553891 --0.320439156118 -0.0369376182664 --0.311541938433 -0.0368739805433 --0.302492833222 -0.0368104708014 --0.293451847212 -0.0367470831325 --0.284419322647 -0.0368464434403 --0.275403003566 -0.0369506908377 --0.266367212757 -0.0368971665135 --0.25730321024 -0.0368437013147 --0.248245675022 -0.0367902919329 --0.239194999809 -0.0368742888211 --0.230052803869 -0.0369633398847 --0.220893823109 -0.0369200695187 --0.211815473574 -0.0368768042488 --0.202742037724 -0.036833540927 --0.193673923463 -0.036901960387 --0.184423196968 -0.0369755745669 --0.175158460905 -0.0369426795739 --0.166066696507 -0.0369097426344 --0.156978340929 -0.0368767633164 --0.147893834856 -0.0369294345967 --0.138554219433 -0.036987410967 --0.129203425953 -0.0369649854024 --0.120099482013 -0.0369424848681 --0.110997515554 -0.0369424848681 -0.110997515554 -0.0369649854024 -0.120099482013 -0.036987410967 -0.129203425953 -0.0369294345967 -0.138554219433 -0.0368767633164 -0.147893834856 -0.0369097426344 -0.156978340929 -0.0369426795739 -0.166066696507 -0.0369755745669 -0.175158460905 -0.036901960387 -0.184423196968 -0.036833540927 -0.193673923463 -0.0368768042488 -0.202742037724 -0.0369200695187 -0.211815473574 -0.0369633398847 -0.220893823109 -0.0368742888211 -0.230052803869 -0.0367902919329 -0.239194999809 -0.0368437013147 -0.248245675022 -0.0368971665135 -0.25730321024 -0.0369506908377 -0.266367212757 -0.0368464434403 -0.275403003566 -0.0367470831325 -0.284419322647 -0.0368104708014 -0.293451847212 -0.0368739805433 -0.302492833222 -0.0369376182664 -0.311541938433 -0.0368184553891 -0.320439156118 -0.03670398221 -0.329314244085 -0.0367771604939 -0.338328237088 -0.0368505382855 -0.347352409638 -0.0369241197068 -0.356386434688 -0.0367903502607 -0.36513201548 -0.0366610464797 -0.373852880195 -0.0367438017397 -0.382848344741 -0.0368268439654 -0.391855762187 -0.0369101772962 -0.400874872524 -0.0367621529761 -0.409458087731 -0.0366183450522 -0.418014027912 -0.0367104437487 -0.426991327578 -0.0368029213202 -0.435982459336 -0.0368957865161 -0.444987171929 -0.046376121769 --0.444697368755 -0.0463015019339 --0.435699046697 -0.0462271935633 --0.42671427198 -0.0461531901581 --0.417743336845 -0.04626946149 --0.409191016344 -0.0463890961608 --0.400611405805 -0.0463220847688 --0.391598666486 -0.0462553051202 --0.382597607606 -0.0461887546874 --0.373608477694 -0.0462933838906 --0.364891673266 -0.0464015870842 --0.356150166079 -0.0463423811938 --0.347122510394 -0.0462833397026 --0.338104703199 -0.0462244547054 --0.329097054416 -0.0463171279016 --0.320226443793 -0.0464135690272 --0.311333722299 -0.0463623439017 --0.302290975139 -0.0463112181243 --0.293256337796 -0.0462601913479 --0.284230163991 -0.0463406467448 --0.27521873629 -0.0464250349706 --0.266187844466 -0.0463819472917 --0.257130204592 -0.0463389060857 --0.248079036004 -0.0462959063285 --0.239034718864 -0.0463639046393 --0.229897766748 -0.0464359783408 --0.220744048667 -0.0464011531855 --0.21167207546 -0.0463663312799 --0.202605010092 -0.0463315094147 --0.193543270418 -0.0463868831823 --0.184298105837 -0.0464464506427 --0.175038931467 -0.0464199993117 --0.165953546009 -0.0463935152564 --0.156871584243 -0.0463669965927 --0.147793478353 -0.0464095786505 --0.13845965595 -0.046456448993 --0.129114659711 -0.0464384600951 --0.120017127268 -0.0464204108961 --0.110921576904 -0.0464204108961 -0.110921576904 -0.0464384600951 -0.120017127268 -0.046456448993 -0.129114659711 -0.0464095786505 -0.13845965595 -0.0463669965927 -0.147793478353 -0.0463935152564 -0.156871584243 -0.0464199993117 -0.165953546009 -0.0464464506427 -0.175038931467 -0.0463868831823 -0.184298105837 -0.0463315094147 -0.193543270418 -0.0463663312799 -0.202605010092 -0.0464011531855 -0.21167207546 -0.0464359783408 -0.220744048667 -0.0463639046393 -0.229897766748 -0.0462959063285 -0.239034718864 -0.0463389060857 -0.248079036004 -0.0463819472917 -0.257130204592 -0.0464250349706 -0.266187844466 -0.0463406467448 -0.27521873629 -0.0462601913479 -0.284230163991 -0.0463112181243 -0.293256337796 -0.0463623439017 -0.302290975139 -0.0464135690272 -0.311333722299 -0.0463171279016 -0.320226443793 -0.0462244547054 -0.329097054416 -0.0462833397026 -0.338104703199 -0.0463423811938 -0.347122510394 -0.0464015870842 -0.356150166079 -0.0462933838906 -0.364891673266 -0.0461887546874 -0.373608477694 -0.0462553051202 -0.382597607606 -0.0463220847688 -0.391598666486 -0.0463890961608 -0.400611405805 -0.04626946149 -0.409191016344 -0.0461531901581 -0.417743336845 -0.0462271935633 -0.42671427198 -0.0463015019339 -0.435699046697 -0.046376121769 -0.444697368755 -0.0558508757184 --0.444470808283 -0.0557945312859 --0.435477564862 -0.0557384173564 --0.426497847967 -0.0556825343015 --0.417531957678 -0.055771244458 --0.408982422497 -0.0558624628286 --0.400405597914 -0.0558117946622 --0.391397909161 -0.055761300715 --0.382401885636 -0.0557109793387 --0.373417775588 -0.0557909086642 --0.364704088099 -0.0558735221554 --0.355965708128 -0.0558287131825 --0.346943088985 -0.0557840245722 --0.337930303215 -0.0557394535916 --0.32892765996 -0.0558103095256 --0.32006052185 -0.0558840043279 --0.311171267591 -0.0558452074467 --0.30213352408 -0.055806487117 --0.293103892763 -0.0557678421198 --0.284082725673 -0.0558293732053 --0.27507507552 -0.0558938810371 --0.26604795177 -0.0558612423967 --0.256995313358 -0.0558286396918 --0.247949154839 -0.0557960662871 --0.238909832267 -0.0558480482459 --0.229776926249 -0.0559031277629 --0.220627267794 -0.0558767607998 --0.211560297414 -0.0558503942285 --0.202498236695 -0.0558240268154 --0.1934415024 -0.0558663419254 --0.18420062191 -0.0559118479094 --0.174945736548 -0.0558918495084 --0.165865363296 -0.0558718280842 --0.156788417117 -0.0558517788059 --0.147715319 -0.0558842614978 --0.138385967868 -0.0559200161528 --0.129045453336 -0.0559064706546 --0.119952939134 -0.0558928780134 --0.110862410538 -0.0558792345882 --0.101774305473 -0.0558792345882 -0.101774305473 -0.0558928780134 -0.110862410538 -0.0559064706546 -0.119952939134 -0.0559200161528 -0.129045453336 -0.0558842614978 -0.138385967868 -0.0558517788059 -0.147715319 -0.0558718280842 -0.156788417117 -0.0558918495084 -0.165865363296 -0.0559118479094 -0.174945736548 -0.0558663419254 -0.18420062191 -0.0558240268154 -0.1934415024 -0.0558503942285 -0.202498236695 -0.0558767607998 -0.211560297414 -0.0559031277629 -0.220627267794 -0.0558480482459 -0.229776926249 -0.0557960662871 -0.238909832267 -0.0558286396918 -0.247949154839 -0.0558612423967 -0.256995313358 -0.0558938810371 -0.26604795177 -0.0558293732053 -0.27507507552 -0.0557678421198 -0.284082725673 -0.055806487117 -0.293103892763 -0.0558452074467 -0.30213352408 -0.0558840043279 -0.311171267591 -0.0558103095256 -0.32006052185 -0.0557394535916 -0.32892765996 -0.0557840245722 -0.337930303215 -0.0558287131825 -0.346943088985 -0.0558735221554 -0.355965708128 -0.0557909086642 -0.364704088099 -0.0557109793387 -0.373417775588 -0.055761300715 -0.382401885636 -0.0558117946622 -0.391397909161 -0.0558624628286 -0.400405597914 -0.055771244458 -0.408982422497 -0.0556825343015 -0.417531957678 -0.0557384173564 -0.426497847967 -0.0557945312859 -0.435477564862 -0.0558508757184 -0.444470808283 -0.0649446695436 --0.44460242984 -0.0648649941562 --0.435606375044 -0.0647856455047 --0.426623858592 -0.0647066262548 --0.417655146386 -0.0648305371547 --0.409103780532 -0.0649580586285 --0.400525149941 -0.0648865415777 --0.391514639249 -0.064815273704 --0.382515781935 -0.0647442521486 --0.373528848719 -0.0648557210988 --0.364813190687 -0.0649710229278 --0.35607283238 -0.0649078686906 --0.347047360011 -0.0648448864062 --0.338031714149 -0.0647820754375 --0.32902622344 -0.064880772978 --0.320156978728 -0.0649834990886 --0.3112656103 -0.0649288859383 --0.302225003903 -0.0648743829544 --0.293192506582 -0.0648199839881 --0.284168470872 -0.0649056252757 --0.275158571797 -0.064995472156 --0.266129185857 -0.0649495610531 --0.257073663839 -0.0649037015841 --0.248024614146 -0.0648578875923 --0.238982392823 -0.0649302205342 --0.229847120712 -0.0650069092844 --0.220695089525 -0.0649698309855 --0.21162522257 -0.0649327564162 --0.202560262928 -0.0648956829273 --0.193500616283 -0.0649545566728 --0.18425724797 -0.065017908699 --0.17499987908 -0.0649897758901 --0.16591659288 -0.0649616115858 --0.156836727189 -0.0649334082625 --0.147760698565 -0.0649786355164 --0.138428778744 -0.0650284463669 --0.129085700049 -0.0650093546011 --0.119990250175 -0.0649901968987 --0.110896780752 -0.0649709703147 --0.101805736261 -0.0649709703147 -0.101805736261 -0.0649901968987 -0.110896780752 -0.0650093546011 -0.119990250175 -0.0650284463669 -0.129085700049 -0.0649786355164 -0.138428778744 -0.0649334082625 -0.147760698565 -0.0649616115858 -0.156836727189 -0.0649897758901 -0.16591659288 -0.065017908699 -0.17499987908 -0.0649545566728 -0.18425724797 -0.0648956829273 -0.193500616283 -0.0649327564162 -0.202560262928 -0.0649698309855 -0.21162522257 -0.0650069092844 -0.220695089525 -0.0649302205342 -0.229847120712 -0.0648578875923 -0.238982392823 -0.0649037015841 -0.248024614146 -0.0649495610531 -0.257073663839 -0.064995472156 -0.266129185857 -0.0649056252757 -0.275158571797 -0.0648199839881 -0.284168470872 -0.0648743829544 -0.293192506582 -0.0649288859383 -0.302225003903 -0.0649834990886 -0.3112656103 -0.064880772978 -0.320156978728 -0.0647820754375 -0.32902622344 -0.0648448864062 -0.338031714149 -0.0649078686906 -0.347047360011 -0.0649710229278 -0.35607283238 -0.0648557210988 -0.364813190687 -0.0647442521486 -0.373528848719 -0.064815273704 -0.382515781935 -0.0648865415777 -0.391514639249 -0.0649580586285 -0.400525149941 -0.0648305371547 -0.409103780532 -0.0647066262548 -0.417655146386 -0.0647856455047 -0.426623858592 -0.0648649941562 -0.435606375044 -0.0649446695436 -0.44460242984 -0.0740398926542 --0.444733770196 -0.0739368860898 --0.435734894127 -0.0738343073975 --0.426749587291 -0.0737321519524 --0.417778095852 -0.073891248985 --0.409224896145 -0.07405505717 --0.400644414755 -0.0739626953606 --0.391631086696 -0.0738706551116 --0.382629422609 -0.0737789319562 --0.373639684434 -0.0739219318863 --0.364922044921 -0.0740699086105 --0.356179689102 -0.0739884104076 --0.347151384697 -0.0739071390621 --0.338132913561 -0.0738260862094 --0.329124589097 -0.0739526131508 --0.320253205352 -0.0740843646237 --0.311359705125 -0.0740139364482 --0.302316256323 -0.0739436477834 --0.293280907556 -0.0738734949336 --0.284254019576 -0.0739832374021 --0.275241846171 -0.0740984154472 --0.26621019123 -0.0740392341972 --0.257151807762 -0.0739801191999 --0.248099894397 -0.0739210660009 --0.239054807683 -0.0740137403275 --0.229917139443 -0.0741120305748 --0.220762711541 -0.0740642439376 --0.211689964427 -0.0740164609969 --0.202622117609 -0.0739686791366 --0.193559579294 -0.0740441031978 --0.1843137122 -0.0741252983994 --0.175053845762 -0.0740890341906 --0.165967668926 -0.0740527259947 --0.156884899471 -0.0740163692637 --0.14780596262 -0.0740743384203 --0.13847146244 -0.0741381991675 --0.129125795272 -0.0741135598928 --0.120027428907 -0.0740888407372 --0.110931043975 -0.0740640331129 --0.101837085375 -0.0741043681447 --0.0924348551487 -0.0741043681447 -0.0924348551487 -0.0740640331129 -0.101837085375 -0.0740888407372 -0.110931043975 -0.0741135598928 -0.120027428907 -0.0741381991675 -0.129125795272 -0.0740743384203 -0.13847146244 -0.0740163692637 -0.14780596262 -0.0740527259947 -0.156884899471 -0.0740890341906 -0.165967668926 -0.0741252983994 -0.175053845762 -0.0740441031978 -0.1843137122 -0.0739686791366 -0.193559579294 -0.0740164609969 -0.202622117609 -0.0740642439376 -0.211689964427 -0.0741120305748 -0.220762711541 -0.0740137403275 -0.229917139443 -0.0739210660009 -0.239054807683 -0.0739801191999 -0.248099894397 -0.0740392341972 -0.257151807762 -0.0740984154472 -0.26621019123 -0.0739832374021 -0.275241846171 -0.0738734949336 -0.284254019576 -0.0739436477834 -0.293280907556 -0.0740139364482 -0.302316256323 -0.0740843646237 -0.311359705125 -0.0739526131508 -0.320253205352 -0.0738260862094 -0.329124589097 -0.0739071390621 -0.338132913561 -0.0739884104076 -0.347151384697 -0.0740699086105 -0.356179689102 -0.0739219318863 -0.364922044921 -0.0737789319562 -0.373639684434 -0.0738706551116 -0.382629422609 -0.0739626953606 -0.391631086696 -0.07405505717 -0.400644414755 -0.073891248985 -0.409224896145 -0.0737321519524 -0.417778095852 -0.0738343073975 -0.426749587291 -0.0739368860898 -0.435734894127 -0.0740398926542 -0.444733770196 -0.0831360819065 --0.444864786105 -0.0830097557356 --0.435863151256 -0.0828839553109 --0.426875073677 -0.0827586696219 --0.417900803494 -0.0829529327818 --0.40934574628 -0.0831530070509 --0.400763398109 -0.0830398035615 --0.391747276122 -0.0829269949742 --0.382742817399 -0.0828145767893 --0.373750301423 -0.0829890837175 --0.365030649936 -0.0831697154336 --0.356286260706 -0.0830698817986 --0.347255154174 -0.0829703264907 --0.338233884983 -0.0828710405418 --0.329222755778 -0.0830253816348 --0.320349213875 -0.0831861382175 --0.311453548296 -0.0830998988897 --0.302407278824 -0.0830138314486 --0.293369114078 -0.0829279320157 --0.284339396241 -0.0830617604436 --0.275324922774 -0.0832022518303 --0.266290973342 -0.0831298015087 --0.257229744328 -0.0830574366452 --0.248174989053 -0.082985148556 --0.239127064589 -0.0830981490933 --0.229986981733 -0.0832180278687 --0.220830133126 -0.08315953593 --0.211754522301 -0.0831010480192 --0.20268380939 -0.0830425630793 --0.193618414852 -0.083134528955 --0.184370031669 -0.0832335552826 --0.175107644823 -0.083189162574 --0.16601859676 -0.0831447108639 --0.15693293639 -0.0831002033439 --0.147851119968 -0.0831709070601 --0.138514021432 -0.0832488095964 --0.129165741075 -0.0832186265684 --0.120064483798 -0.0831883463521 --0.11096520576 -0.0831579580829 --0.101868352484 -0.0832071973084 --0.0924634507146 -0.0832637432598 --0.0830502591578 -0.0832637432598 -0.0830502591578 -0.0832071973084 -0.0924634507146 -0.0831579580829 -0.101868352484 -0.0831883463521 -0.11096520576 -0.0832186265684 -0.120064483798 -0.0832488095964 -0.129165741075 -0.0831709070601 -0.138514021432 -0.0831002033439 -0.147851119968 -0.0831447108639 -0.15693293639 -0.083189162574 -0.16601859676 -0.0832335552826 -0.175107644823 -0.083134528955 -0.184370031669 -0.0830425630793 -0.193618414852 -0.0831010480192 -0.20268380939 -0.08315953593 -0.211754522301 -0.0832180278687 -0.220830133126 -0.0830981490933 -0.229986981733 -0.082985148556 -0.239127064589 -0.0830574366452 -0.248174989053 -0.0831298015087 -0.257229744328 -0.0832022518303 -0.266290973342 -0.0830617604436 -0.275324922774 -0.0829279320157 -0.284339396241 -0.0830138314486 -0.293369114078 -0.0830998988897 -0.302407278824 -0.0831861382175 -0.311453548296 -0.0830253816348 -0.320349213875 -0.0828710405418 -0.329222755778 -0.0829703264907 -0.338233884983 -0.0830698817986 -0.347255154174 -0.0831697154336 -0.356286260706 -0.0829890837175 -0.365030649936 -0.0828145767893 -0.373750301423 -0.0829269949742 -0.382742817399 -0.0830398035615 -0.391747276122 -0.0831530070509 -0.400763398109 -0.0829529327818 -0.40934574628 -0.0827586696219 -0.417900803494 -0.0828839553109 -0.426875073677 -0.0830097557356 -0.435863151256 -0.0831360819065 -0.444864786105 -0.0922537343406 --0.417458490499 -0.0924201889105 --0.408908734125 -0.0925915939695 --0.400331690901 -0.0924949021761 --0.391326199114 -0.0923985445397 --0.382332332636 -0.0923025238947 --0.373350384764 -0.0924520380861 --0.364636962394 -0.0926067758041 --0.355898801859 -0.0925214855042 --0.346878247463 -0.0924364308875 --0.337867500016 -0.0923516105586 --0.328866891038 -0.0924838952309 --0.32000042577 -0.0926216592094 --0.311111837185 -0.0925479817193 --0.302076088723 -0.0924744452754 --0.29304840787 -0.0924010525133 --0.284029155575 -0.0925157491421 --0.275022537825 -0.0926361432899 --0.265996458547 -0.0925742523447 --0.256945714984 -0.0925124326817 --0.247901414743 -0.0924506765735 --0.238863936581 -0.092547514989 --0.22973241045 -0.092650243628 --0.22058412784 -0.0926002963861 --0.211518970489 -0.0925503529797 --0.202458704639 -0.0925004129478 --0.193403752543 -0.0925791915423 --0.184164531586 -0.0926640157322 --0.174911312263 -0.0926261432862 --0.165832707397 -0.0925882196675 --0.156757493019 -0.0925502448466 --0.147686115163 -0.0926107364696 --0.138358665631 -0.092677399614 --0.129020046872 -0.0926517005361 --0.119929241049 -0.0926259140767 --0.110840410919 -0.092600040865 --0.10175400501 -0.092642115436 --0.0923591238643 -0.0926904510311 --0.0829559626843 -0.0926770069137 --0.0738545053553 -0.0926770069137 -0.0738545053553 -0.0926904510311 -0.0829559626843 -0.092642115436 -0.0923591238643 -0.092600040865 -0.10175400501 -0.0926259140767 -0.110840410919 -0.0926517005361 -0.119929241049 -0.092677399614 -0.129020046872 -0.0926107364696 -0.138358665631 -0.0925502448466 -0.147686115163 -0.0925882196675 -0.156757493019 -0.0926261432862 -0.165832707397 -0.0926640157322 -0.174911312263 -0.0925791915423 -0.184164531586 -0.0925004129478 -0.193403752543 -0.0925503529797 -0.202458704639 -0.0926002963861 -0.211518970489 -0.092650243628 -0.22058412784 -0.092547514989 -0.22973241045 -0.0924506765735 -0.238863936581 -0.0925124326817 -0.247901414743 -0.0925742523447 -0.256945714984 -0.0926361432899 -0.265996458547 -0.0925157491421 -0.275022537825 -0.0924010525133 -0.284029155575 -0.0924744452754 -0.29304840787 -0.0925479817193 -0.302076088723 -0.0926216592094 -0.311111837185 -0.0924838952309 -0.32000042577 -0.0923516105586 -0.328866891038 -0.0924364308875 -0.337867500016 -0.0925214855042 -0.346878247463 -0.0926067758041 -0.355898801859 -0.0924520380861 -0.364636962394 -0.0923025238947 -0.373350384764 -0.0923985445397 -0.382332332636 -0.0924949021761 -0.391326199114 -0.0925915939695 -0.400331690901 -0.0924201889105 -0.408908734125 -0.0922537343406 -0.417458490499 -0.101740268009 --0.417075024135 -0.101878848481 --0.40852974668 -0.102021515647 --0.399957183718 -0.101941382425 --0.390961010158 -0.101861523164 --0.381976429451 -0.101781943502 --0.373003731274 -0.101906412091 --0.364295613117 -0.102035197213 --0.355562756113 -0.101964488118 --0.346551428763 -0.101893977724 --0.33754989285 -0.101823659292 --0.328558462833 -0.10193383571 --0.319698053951 -0.102048551503 --0.31081551924 -0.101987466715 --0.301788934149 -0.101926498104 --0.292770404466 -0.101865646554 --0.28376029 -0.101961167607 --0.274760428032 -0.102061418492 --0.265741102446 -0.102010119565 --0.256699488419 -0.101958873434 --0.24766429203 -0.101907675643 --0.238635913778 -0.101988318244 --0.229511771275 -0.102073858792 --0.220370859758 -0.102032479475 --0.211314793669 -0.101991103365 --0.202263612654 -0.101949729949 --0.193217731339 -0.102015290236 --0.183986420294 -0.102085880732 --0.174741109331 -0.1020545479 --0.165671580743 -0.102023168528 --0.156605441374 -0.101991742782 --0.147543127287 -0.10204200199 --0.138224021463 -0.10209740021 --0.128893749833 -0.102076196545 --0.119812010379 -0.102054918687 --0.110732248155 -0.102033569895 --0.101654910329 -0.102068458358 --0.0922687017979 -0.102108568505 --0.0828742195417 -0.102097577341 --0.0737818407737 -0.102086488746 --0.0646900595381 -0.102075305023 --0.0555993343987 -0.102075305023 -0.0555993343987 -0.102086488746 -0.0646900595381 -0.102097577341 -0.0737818407737 -0.102108568505 -0.0828742195417 -0.102068458358 -0.0922687017979 -0.102033569895 -0.101654910329 -0.102054918687 -0.110732248155 -0.102076196545 -0.119812010379 -0.10209740021 -0.128893749833 -0.10204200199 -0.138224021463 -0.101991742782 -0.147543127287 -0.102023168528 -0.156605441374 -0.1020545479 -0.165671580743 -0.102085880732 -0.174741109331 -0.102015290236 -0.183986420294 -0.101949729949 -0.193217731339 -0.101991103365 -0.202263612654 -0.102032479475 -0.211314793669 -0.102073858792 -0.220370859758 -0.101988318244 -0.229511771275 -0.101907675643 -0.238635913778 -0.101958873434 -0.24766429203 -0.102010119565 -0.256699488419 -0.102061418492 -0.265741102446 -0.101961167607 -0.274760428032 -0.101865646554 -0.28376029 -0.101926498104 -0.292770404466 -0.101987466715 -0.301788934149 -0.102048551503 -0.31081551924 -0.10193383571 -0.319698053951 -0.101823659292 -0.328558462833 -0.101893977724 -0.33754989285 -0.101964488118 -0.346551428763 -0.102035197213 -0.355562756113 -0.101906412091 -0.364295613117 -0.101781943502 -0.373003731274 -0.101861523164 -0.381976429451 -0.101941382425 -0.390961010158 -0.102021515647 -0.399957183718 -0.101878848481 -0.40852974668 -0.101740268009 -0.417075024135 -0.110751742117 --0.417315274808 -0.110925346472 --0.408766473353 -0.111104129904 --0.400190379352 -0.111003249053 --0.391188812813 -0.110902717626 --0.38219883531 -0.110802533973 --0.373220741868 -0.110958378702 --0.364508730072 -0.111119688201 --0.355771971531 -0.111030727986 --0.346755219899 -0.11094201474 --0.337748253919 -0.11085354599 --0.328751378553 -0.110991427167 --0.319886760459 -0.111135027779 --0.310999991612 -0.111058196668 --0.301967909787 -0.110981519736 --0.29294390528 -0.110904994658 --0.283928312964 -0.111024504259 --0.27492392456 -0.111149966571 --0.265900050138 -0.111085459482 --0.256852903861 -0.111021020619 --0.247812176647 -0.110956647439 --0.238778270164 -0.111057536223 --0.229649334423 -0.111164577364 --0.220503609295 -0.111112538766 --0.211441981182 -0.111060506347 --0.202385238698 -0.111008478192 --0.193333776206 -0.111090514781 --0.184097418811 -0.111178864744 --0.174847055736 -0.111139435575 --0.165771919152 -0.11109995065 --0.156700173227 -0.111060410628 --0.147632250175 -0.111123348847 --0.138307904754 -0.111192734136 --0.128972385464 -0.11116601402 --0.119885011115 -0.111139200726 --0.110799609235 -0.111112295065 --0.10171662909 -0.111156048584 --0.0923250296629 -0.111206345944 --0.0829251490813 -0.111192418614 --0.073827107581 -0.111178370131 --0.0647296568895 -0.111164200718 --0.0556332629377 -0.111188569053 --0.0461962057708 -0.111219538784 --0.0367537926475 -0.111218452367 --0.0276468463017 -0.111217242109 --0.0185391506386 -0.111215902743 --0.0094311772543 -0.111215199413 --2.16840434497e-19 -0.111215902743 -0.0094311772543 -0.111217242109 -0.0185391506386 -0.111218452367 -0.0276468463017 -0.111219538784 -0.0367537926475 -0.111188569053 -0.0461962057708 -0.111164200718 -0.0556332629377 -0.111178370131 -0.0647296568895 -0.111192418614 -0.073827107581 -0.111206345944 -0.0829251490813 -0.111156048584 -0.0923250296629 -0.111112295065 -0.10171662909 -0.111139200726 -0.110799609235 -0.11116601402 -0.119885011115 -0.111192734136 -0.128972385464 -0.111123348847 -0.138307904754 -0.111060410628 -0.147632250175 -0.11109995065 -0.156700173227 -0.111139435575 -0.165771919152 -0.111178864744 -0.174847055736 -0.111090514781 -0.184097418811 -0.111008478192 -0.193333776206 -0.111060506347 -0.202385238698 -0.111112538766 -0.211441981182 -0.111164577364 -0.220503609295 -0.111057536223 -0.229649334423 -0.110956647439 -0.238778270164 -0.111021020619 -0.247812176647 -0.111085459482 -0.256852903861 -0.111149966571 -0.265900050138 -0.111024504259 -0.27492392456 -0.110904994658 -0.283928312964 -0.110981519736 -0.29294390528 -0.111058196668 -0.301967909787 -0.111135027779 -0.310999991612 -0.110991427167 -0.319886760459 -0.11085354599 -0.328751378553 -0.11094201474 -0.337748253919 -0.111030727986 -0.346755219899 -0.111119688201 -0.355771971531 -0.110958378702 -0.364508730072 -0.110802533973 -0.373220741868 -0.110902717626 -0.38219883531 -0.111003249053 -0.391188812813 -0.111104129904 -0.400190379352 -0.110925346472 -0.408766473353 -0.110751742117 -0.417315274808 -0.119766262407 --0.417555499135 -0.119974885274 --0.409003148501 -0.120189781202 --0.400423487838 -0.120068151997 --0.391416533986 -0.11994694742 --0.382421190785 -0.119826154123 --0.373437718621 -0.120013366477 --0.364721791389 -0.120207192594 --0.355981107083 -0.120099980048 --0.346958939993 -0.119993062919 --0.337946555365 -0.119886440228 --0.328944258994 -0.120052018349 --0.320075402375 -0.120224501981 --0.311184382842 -0.120131933109 --0.302146841114 -0.120039547321 --0.293117366971 -0.119947341396 --0.284096307594 -0.120090831902 --0.275087363604 -0.120241501656 --0.266058917218 -0.120163787217 --0.257006267279 -0.120086155975 --0.247960037592 -0.120008605437 --0.238920613875 -0.120129733187 --0.229786845378 -0.120258268358 --0.220636283847 -0.120195574268 --0.211569110069 -0.120132885097 --0.202506817159 -0.120070198996 --0.193449793239 -0.120168713121 --0.184208369208 -0.120274816413 --0.174952929749 -0.12022728667 --0.165872202036 -0.120179697443 --0.156794867476 -0.120132040599 --0.147721345948 -0.120207656592 --0.138391734483 -0.120291023043 --0.129050944463 -0.120258779905 --0.119957955015 -0.12022643518 --0.110866933694 -0.120193977907 --0.101778324247 -0.120246595312 --0.0923813106566 -0.120307076178 --0.0829760084906 -0.120290210515 --0.0738723200174 -0.120273204204 --0.0647692185448 -0.120256054547 --0.0556671727486 -0.12028545944 --0.0462246045372 -0.120322798552 --0.0367766736493 -0.12032136235 --0.0276640601106 -0.120319778041 --0.0185506950764 -0.120318051361 --0.00943705050459 -0.120317149359 -2.16840434497e-19 -0.120318051361 -0.00943705050459 -0.120319778041 -0.0185506950764 -0.12032136235 -0.0276640601106 -0.120322798552 -0.0367766736493 -0.12028545944 -0.0462246045372 -0.120256054547 -0.0556671727486 -0.120273204204 -0.0647692185448 -0.120290210515 -0.0738723200174 -0.120307076178 -0.0829760084906 -0.120246595312 -0.0923813106566 -0.120193977907 -0.101778324247 -0.12022643518 -0.110866933694 -0.120258779905 -0.119957955015 -0.120291023043 -0.129050944463 -0.120207656592 -0.138391734483 -0.120132040599 -0.147721345948 -0.120179697443 -0.156794867476 -0.12022728667 -0.165872202036 -0.120274816413 -0.174952929749 -0.120168713121 -0.184208369208 -0.120070198996 -0.193449793239 -0.120132885097 -0.202506817159 -0.120195574268 -0.211569110069 -0.120258268358 -0.220636283847 -0.120129733187 -0.229786845378 -0.120008605437 -0.238920613875 -0.120086155975 -0.247960037592 -0.120163787217 -0.257006267279 -0.120241501656 -0.266058917218 -0.120090831902 -0.275087363604 -0.119947341396 -0.284096307594 -0.120039547321 -0.293117366971 -0.120131933109 -0.302146841114 -0.120224501981 -0.311184382842 -0.120052018349 -0.320075402375 -0.119886440228 -0.328944258994 -0.119993062919 -0.337946555365 -0.120099980048 -0.346958939993 -0.120207192594 -0.355981107083 -0.120013366477 -0.364721791389 -0.119826154123 -0.373437718621 -0.11994694742 -0.382421190785 -0.120068151997 -0.391416533986 -0.120189781202 -0.400423487838 -0.119974885274 -0.409003148501 -0.119766262407 -0.417555499135 -0.128783405269 --0.417795715428 -0.129027031361 --0.409239779378 -0.129278027418 --0.400656523148 -0.129135647531 --0.391644213004 -0.128993768039 --0.38264350287 -0.128852371657 --0.37365466268 -0.129070949202 --0.364934820232 -0.129297281399 --0.356190193664 -0.129171808691 --0.347162611324 -0.129046688231 --0.338144818663 -0.128921909598 --0.329137117903 -0.129115172345 --0.320263998444 -0.129316529452 --0.311368700284 -0.129208220247 --0.302325708416 -0.129100129106 --0.293290781227 -0.128992243709 --0.284264266087 -0.129159706902 --0.275250749426 -0.129335575453 --0.26621771439 -0.129244654182 --0.257159577389 -0.129153831491 --0.248107856452 -0.12906310132 --0.239062937798 -0.129204463545 --0.229924319466 -0.129354488673 --0.220768887501 -0.129281140154 --0.211696184089 -0.129207795486 --0.202628351886 -0.129134448653 --0.193565791762 -0.129249428209 --0.184319277849 -0.129373282422 --0.175058732587 -0.129317655145 --0.165972436547 -0.129261956192 --0.156889523297 -0.129206186175 --0.147810426522 -0.129294484369 --0.138475528451 -0.129391830871 --0.129129437914 -0.129354062313 --0.120030847319 -0.129316178051 --0.110934217972 -0.129278163593 --0.101839997578 -0.129339644298 --0.0924375477471 -0.129410311394 --0.0830268006765 -0.129390504826 --0.0739174798733 -0.129370537898 --0.0648087441234 -0.1293504141 --0.0557010635273 -0.129384853798 --0.0462529579613 -0.129428554744 --0.0367994862255 -0.129426771942 --0.0276812233729 -0.129424816111 --0.0185622051166 -0.129422693648 --0.00944290602232 -0.129421587797 -0 -0.129422693648 -0.00944290602232 -0.129424816111 -0.0185622051166 -0.129426771942 -0.0276812233729 -0.129428554744 -0.0367994862255 -0.129384853798 -0.0462529579613 -0.1293504141 -0.0557010635273 -0.129370537898 -0.0648087441234 -0.129390504826 -0.0739174798733 -0.129410311394 -0.0830268006765 -0.129339644298 -0.0924375477471 -0.129278163593 -0.101839997578 -0.129316178051 -0.110934217972 -0.129354062313 -0.120030847319 -0.129391830871 -0.129129437914 -0.129294484369 -0.138475528451 -0.129206186175 -0.147810426522 -0.129261956192 -0.156889523297 -0.129317655145 -0.165972436547 -0.129373282422 -0.175058732587 -0.129249428209 -0.184319277849 -0.129134448653 -0.193565791762 -0.129207795486 -0.202628351886 -0.129281140154 -0.211696184089 -0.129354488673 -0.220768887501 -0.129204463545 -0.229924319466 -0.12906310132 -0.239062937798 -0.129153831491 -0.248107856452 -0.129244654182 -0.257159577389 -0.129335575453 -0.26621771439 -0.129159706902 -0.275250749426 -0.128992243709 -0.284264266087 -0.129100129106 -0.293290781227 -0.129208220247 -0.302325708416 -0.129316529452 -0.311368700284 -0.129115172345 -0.320263998444 -0.128921909598 -0.329137117903 -0.129046688231 -0.338144818663 -0.129171808691 -0.347162611324 -0.129297281399 -0.356190193664 -0.129070949202 -0.364934820232 -0.128852371657 -0.37365466268 -0.128993768039 -0.38264350287 -0.129135647531 -0.391644213004 -0.129278027418 -0.400656523148 -0.129027031361 -0.409239779378 -0.128783405269 -0.417795715428 -0.138655752718 --0.400057603499 -0.13853018942 --0.391060148805 -0.138405063077 --0.382074236836 -0.138280368022 --0.373100153449 -0.138473557614 --0.364388681188 -0.138673583427 --0.355652433186 -0.138562920197 --0.34663957184 -0.138452563237 --0.337636461064 -0.138342510224 --0.328643408719 -0.138513313019 --0.31977994704 -0.138691256863 --0.310894308549 -0.138595733437 --0.30186593878 -0.13850040628 --0.292845611136 -0.138405258435 --0.283833656867 -0.138553251839 --0.274830965635 -0.138708670846 --0.265808766229 -0.138628498471 --0.256765174971 -0.1385484118 --0.247727982916 -0.138468407261 --0.238697573195 -0.138593296902 --0.229570807397 -0.138725847247 --0.220427244751 -0.138661199865 --0.211369046182 -0.138596551001 --0.202315699689 -0.13853190047 --0.193267616849 -0.138633440187 --0.184033852045 -0.138742828483 --0.174786067454 -0.138693844253 --0.165714250407 -0.138644794154 --0.156645806264 -0.138595681254 --0.147581172463 -0.138673595607 --0.138259757174 -0.138759508247 --0.128927158157 -0.138726308609 --0.119843036563 -0.13869300197 --0.110760872583 -0.138659579287 --0.101681113329 -0.138713734231 --0.0922926921845 -0.138776012537 --0.0828959864539 -0.13875869377 --0.0738011462425 -0.138741229841 --0.0647068930894 -0.138723627146 --0.0556136938764 -0.138753863098 --0.0461799762757 -0.138792288988 --0.0367409053761 -0.138790909047 --0.0276371515107 -0.138789369423 --0.0185326486928 -0.138787686229 --0.00942786953707 -0.13878681032 -0 -0.138787686229 -0.00942786953707 -0.138789369423 -0.0185326486928 -0.138790909047 -0.0276371515107 -0.138792288988 -0.0367409053761 -0.138753863098 -0.0461799762757 -0.138723627146 -0.0556136938764 -0.138741229841 -0.0647068930894 -0.13875869377 -0.0738011462425 -0.138776012537 -0.0828959864539 -0.138713734231 -0.0922926921845 -0.138659579287 -0.101681113329 -0.13869300197 -0.110760872583 -0.138726308609 -0.119843036563 -0.138759508247 -0.128927158157 -0.138673595607 -0.138259757174 -0.138595681254 -0.147581172463 -0.138644794154 -0.156645806264 -0.138693844253 -0.165714250407 -0.138742828483 -0.174786067454 -0.138633440187 -0.184033852045 -0.13853190047 -0.193267616849 -0.138596551001 -0.202315699689 -0.138661199865 -0.211369046182 -0.138725847247 -0.220427244751 -0.138593296902 -0.229570807397 -0.138468407261 -0.238697573195 -0.1385484118 -0.247727982916 -0.138628498471 -0.256765174971 -0.138708670846 -0.265808766229 -0.138553251839 -0.274830965635 -0.138405258435 -0.283833656867 -0.13850040628 -0.292845611136 -0.138595733437 -0.30186593878 -0.138691256863 -0.310894308549 -0.138513313019 -0.31977994704 -0.138342510224 -0.328643408719 -0.138452563237 -0.337636461064 -0.138562920197 -0.34663957184 -0.138673583427 -0.355652433186 -0.138473557614 -0.364388681188 -0.138280368022 -0.373100153449 -0.138405063077 -0.382074236836 -0.13853018942 -0.391060148805 -0.138655752718 -0.400057603499 -0.148021741802 --0.399515178262 -0.147913067952 --0.390531278698 -0.147804767163 --0.381558884054 -0.147696839525 --0.372598256307 -0.147864541885 --0.363894230132 -0.148038160684 --0.355165428496 -0.14794237423 --0.346165994135 -0.147846844812 --0.33717627066 -0.147751577519 --0.328196544473 -0.147899836163 --0.319341724329 -0.148054282151 --0.31046474239 -0.147971606895 --0.301449689558 -0.147889092998 --0.292442640016 -0.147806728367 --0.283443922006 -0.147935180191 --0.274450954981 -0.148070074138 --0.265438485553 -0.148000700696 --0.25640811315 -0.14793139339 --0.247384115789 -0.147862158522 --0.238366874082 -0.147970522318 --0.229250800434 -0.148085528135 --0.220117930726 -0.148029614316 --0.211072886989 -0.147973695899 --0.202032676437 -0.14791777984 --0.19299771542 -0.148005838696 --0.183775469424 -0.148100703632 --0.174539205519 -0.148058386117 --0.165480514854 -0.14801601442 --0.156425183573 -0.147973579744 --0.147373648878 -0.148041069652 --0.138064427349 -0.148115506282 --0.128744024631 -0.148086890461 --0.119673007722 -0.148058182281 --0.110603946926 -0.148029375804 --0.101537284382 -0.148076179606 --0.0921615627694 -0.148130036271 --0.0827775639457 -0.148115215237 --0.073695833127 -0.148100264278 --0.0646146917318 -0.148085192456 --0.0555346020663 -0.148111211592 --0.0461139163221 -0.148144341182 --0.0366878853622 -0.148143364993 --0.0275972623986 -0.148142249303 --0.0185058982738 -0.148141003202 --0.00941426067545 -0.148140351512 -0 -0.148141003202 -0.00941426067545 -0.148142249303 -0.0185058982738 -0.148143364993 -0.0275972623986 -0.148144341182 -0.0366878853622 -0.148111211592 -0.0461139163221 -0.148085192456 -0.0555346020663 -0.148100264278 -0.0646146917318 -0.148115215237 -0.073695833127 -0.148130036271 -0.0827775639457 -0.148076179606 -0.0921615627694 -0.148029375804 -0.101537284382 -0.148058182281 -0.110603946926 -0.148086890461 -0.119673007722 -0.148115506282 -0.128744024631 -0.148041069652 -0.138064427349 -0.147973579744 -0.147373648878 -0.14801601442 -0.156425183573 -0.148058386117 -0.165480514854 -0.148100703632 -0.174539205519 -0.148005838696 -0.183775469424 -0.14791777984 -0.19299771542 -0.147973695899 -0.202032676437 -0.148029614316 -0.211072886989 -0.148085528135 -0.220117930726 -0.147970522318 -0.229250800434 -0.147862158522 -0.238366874082 -0.14793139339 -0.247384115789 -0.148000700696 -0.25640811315 -0.148070074138 -0.265438485553 -0.147935180191 -0.274450954981 -0.147806728367 -0.283443922006 -0.147889092998 -0.292442640016 -0.147971606895 -0.301449689558 -0.148054282151 -0.31046474239 -0.147899836163 -0.319341724329 -0.147751577519 -0.328196544473 -0.147846844812 -0.33717627066 -0.14794237423 -0.346165994135 -0.148038160684 -0.355165428496 -0.147864541885 -0.363894230132 -0.147696839525 -0.372598256307 -0.147804767163 -0.381558884054 -0.147913067952 -0.390531278698 -0.148021741802 -0.399515178262 -0.157090171366 --0.399861310595 -0.156960884852 --0.390869480144 -0.156832040161 --0.381889140602 -0.156703643338 --0.372920563836 -0.156902517256 --0.364210753244 -0.157108441436 --0.355476137205 -0.156994519837 --0.346468695762 -0.156880905075 --0.3374709583 -0.156767599154 --0.328483220299 -0.156943377587 --0.319622094795 -0.157126528546 --0.31073878611 -0.157028212865 --0.301715656173 -0.156930086049 --0.292700515383 -0.156832149477 --0.28369372078 -0.156984433759 --0.274693966045 -0.157144372391 --0.265674676156 -0.157061875285 --0.25663616342 -0.156979458517 --0.247604007428 -0.156897131791 --0.238578601948 -0.157025611146 --0.229455309213 -0.157161977225 --0.220315196853 -0.157095472409 --0.211261953364 -0.157028963629 --0.202213525456 -0.156962457917 --0.193170331557 -0.157066886004 --0.183940497773 -0.157179397575 --0.174696626946 -0.157129031873 --0.165629664247 -0.157078602696 --0.156566060031 -0.157028106787 --0.147506244839 -0.157108196639 --0.138189127797 -0.157196528282 --0.128860815682 -0.157162428353 --0.119781478555 -0.157128215856 --0.110704088766 -0.157093887435 --0.101629095732 -0.157149503182 --0.0922452484018 -0.157213479993 --0.0828531090943 -0.157195739292 --0.0737630186006 -0.157177849225 --0.0646735106128 -0.157159816834 --0.0555850524271 -0.157190838138 --0.0461560870593 -0.157230294115 --0.0367217674091 -0.157228976235 --0.027622753572 -0.157227494253 --0.018522993938 -0.157225850468 --0.00942295775856 -0.157224988809 -0 -0.157225850468 -0.00942295775856 -0.157227494253 -0.018522993938 -0.157228976235 -0.027622753572 -0.157230294115 -0.0367217674091 -0.157190838138 -0.0461560870593 -0.157159816834 -0.0555850524271 -0.157177849225 -0.0646735106128 -0.157195739292 -0.0737630186006 -0.157213479993 -0.0828531090943 -0.157149503182 -0.0922452484018 -0.157093887435 -0.101629095732 -0.157128215856 -0.110704088766 -0.157162428353 -0.119781478555 -0.157196528282 -0.128860815682 -0.157108196639 -0.138189127797 -0.157028106787 -0.147506244839 -0.157078602696 -0.156566060031 -0.157129031873 -0.165629664247 -0.157179397575 -0.174696626946 -0.157066886004 -0.183940497773 -0.156962457917 -0.193170331557 -0.157028963629 -0.202213525456 -0.157095472409 -0.211261953364 -0.157161977225 -0.220315196853 -0.157025611146 -0.229455309213 -0.156897131791 -0.238578601948 -0.156979458517 -0.247604007428 -0.157061875285 -0.25663616342 -0.157144372391 -0.265674676156 -0.156984433759 -0.274693966045 -0.156832149477 -0.28369372078 -0.156930086049 -0.292700515383 -0.157028212865 -0.301715656173 -0.157126528546 -0.31073878611 -0.156943377587 -0.319622094795 -0.156767599154 -0.328483220299 -0.156880905075 -0.3374709583 -0.156994519837 -0.346468695762 -0.157108441436 -0.355476137205 -0.156902517256 -0.364210753244 -0.156703643338 -0.372920563836 -0.156832040161 -0.381889140602 -0.156960884852 -0.390869480144 -0.157090171366 -0.399861310595 -0.166163309336 --0.40020770746 -0.166013401131 --0.391207949743 -0.165864003486 --0.382219674363 -0.165715128616 --0.37324317409 -0.165945181307 --0.364527542217 -0.166183419369 --0.355787082926 -0.166051350978 --0.346771641064 -0.165919641918 --0.337765890371 -0.165788293073 --0.328770151464 -0.16599159513 --0.319902693298 -0.166203449188 --0.311013023521 -0.166089483029 --0.301981823942 -0.165975738911 --0.292958600829 -0.16586222241 --0.283943726364 -0.166038345709 --0.2749371556 -0.16622333301 --0.265911023028 -0.1661277029 --0.256864372876 -0.166032171795 --0.247824078816 -0.165936744737 --0.238790524387 -0.166085342904 --0.229659977294 -0.166243072633 --0.220512593128 -0.166165968602 --0.211451147776 -0.166088868634 --0.20239451607 -0.166011773299 --0.193343112805 -0.16613256929 --0.184105653442 -0.166262725869 --0.17485413661 -0.166204315216 --0.165778914449 -0.166145824814 --0.156707043069 -0.166087264332 --0.147638952681 -0.16617995925 --0.138313906048 -0.16628218463 --0.12897765 -0.16624260197 --0.119890003977 -0.16620288652 --0.110804299226 -0.166163030963 --0.10172098528 -0.166227453157 --0.0923289779151 -0.166301551047 --0.082928662512 -0.166280896504 --0.073830219489 -0.166260066163 --0.064732353353 -0.16623906417 --0.0556355322075 -0.166275091359 --0.0461982549913 -0.166320882689 --0.0367556163956 -0.166319216259 --0.0276482195234 -0.166317364487 --0.0185400719976 -0.166315333287 --0.0094316463763 -0.166314267836 -0 -0.166315333287 -0.0094316463763 -0.166317364487 -0.0185400719976 -0.166319216259 -0.0276482195234 -0.166320882689 -0.0367556163956 -0.166275091359 -0.0461982549913 -0.16623906417 -0.0556355322075 -0.166260066163 -0.064732353353 -0.166280896504 -0.073830219489 -0.166301551047 -0.082928662512 -0.166227453157 -0.0923289779151 -0.166163030963 -0.10172098528 -0.16620288652 -0.110804299226 -0.16624260197 -0.119890003977 -0.16628218463 -0.12897765 -0.16617995925 -0.138313906048 -0.166087264332 -0.147638952681 -0.166145824814 -0.156707043069 -0.166204315216 -0.165778914449 -0.166262725869 -0.17485413661 -0.16613256929 -0.184105653442 -0.166011773299 -0.193343112805 -0.166088868634 -0.20239451607 -0.166165968602 -0.211451147776 -0.166243072633 -0.220512593128 -0.166085342904 -0.229659977294 -0.165936744737 -0.238790524387 -0.166032171795 -0.247824078816 -0.1661277029 -0.256864372876 -0.16622333301 -0.265911023028 -0.166038345709 -0.2749371556 -0.16586222241 -0.283943726364 -0.165975738911 -0.292958600829 -0.166089483029 -0.301981823942 -0.166203449188 -0.311013023521 -0.16599159513 -0.319902693298 -0.165788293073 -0.328770151464 -0.165919641918 -0.337765890371 -0.166051350978 -0.346771641064 -0.166183419369 -0.355787082926 -0.165945181307 -0.364527542217 -0.165715128616 -0.37324317409 -0.165864003486 -0.382219674363 -0.166013401131 -0.391207949743 -0.166163309336 -0.40020770746 -0.175240732684 --0.40055438716 -0.17507019179 --0.391546694451 -0.174900243171 --0.382550500892 -0.174730881469 --0.373566071868 -0.174992110234 --0.364844592519 -0.175262662119 --0.356098261693 -0.175112442917 --0.347074833573 -0.174962637467 --0.338061088573 -0.174813237595 --0.329057349738 -0.17504406042 --0.320183529647 -0.175284615088 --0.311287458753 -0.175154997597 --0.302248198228 -0.175025637668 --0.293216915158 -0.174896532377 --0.284193963706 -0.17509648187 --0.275180540967 -0.175306519064 --0.266147536976 -0.175197759093 --0.257092758295 -0.175089106865 --0.248044328867 -0.17498058047 --0.239002639679 -0.17514929982 --0.229864819712 -0.175328389176 --0.22071013379 -0.175240682461 --0.211640484108 -0.175152992268 --0.202575656767 -0.175065304896 --0.193516058486 -0.175202463147 --0.184270932352 -0.175350261117 --0.175011735907 -0.175283804127 --0.165928268591 -0.175217256762 --0.15684813549 -0.175150623788 --0.14777178117 -0.175255923292 --0.138438776311 -0.175372052109 --0.129094541814 -0.175326971495 --0.119998589666 -0.175281745053 --0.11090457521 -0.175236372287 --0.101812952527 -0.175309603248 --0.0924127498898 -0.175393821881 --0.0830042261062 -0.175370249807 --0.0738974401623 -0.175346472345 --0.0647912239719 -0.175322502933 --0.0556860479417 -0.175363542903 --0.0462404256762 -0.175415658965 --0.0367894324019 -0.175413646912 --0.0276736601027 -0.175411432099 --0.0185571339248 -0.175409006049 --0.00944032634276 -0.175407737569 --2.16840434497e-19 -0.175409006049 -0.00944032634276 -0.175411432099 -0.0185571339248 -0.175413646912 -0.0276736601027 -0.175415658965 -0.0367894324019 -0.175363542903 -0.0462404256762 -0.175322502933 -0.0556860479417 -0.175346472345 -0.0647912239719 -0.175370249807 -0.0738974401623 -0.175393821881 -0.0830042261062 -0.175309603248 -0.0924127498898 -0.175236372287 -0.101812952527 -0.175281745053 -0.11090457521 -0.175326971495 -0.119998589666 -0.175372052109 -0.129094541814 -0.175255923292 -0.138438776311 -0.175150623788 -0.14777178117 -0.175217256762 -0.15684813549 -0.175283804127 -0.165928268591 -0.175350261117 -0.175011735907 -0.175202463147 -0.184270932352 -0.175065304896 -0.193516058486 -0.175152992268 -0.202575656767 -0.175240682461 -0.211640484108 -0.175328389176 -0.22071013379 -0.17514929982 -0.229864819712 -0.17498058047 -0.239002639679 -0.175089106865 -0.248044328867 -0.175197759093 -0.257092758295 -0.175306519064 -0.266147536976 -0.17509648187 -0.275180540967 -0.174896532377 -0.284193963706 -0.175025637668 -0.293216915158 -0.175154997597 -0.302248198228 -0.175284615088 -0.311287458753 -0.17504406042 -0.320183529647 -0.174813237595 -0.329057349738 -0.174962637467 -0.338061088573 -0.175112442917 -0.347074833573 -0.175262662119 -0.356098261693 -0.174992110234 -0.364844592519 -0.174730881469 -0.373566071868 -0.174900243171 -0.382550500892 -0.17507019179 -0.391546694451 -0.175240732684 -0.40055438716 -0.184536095083 --0.399791760233 -0.18438243249 --0.39080304667 -0.184229301156 --0.381825770986 -0.18407668424 --0.372860167999 -0.184312414879 --0.364149190855 -0.184556555681 --0.355413379335 -0.184421202468 --0.346408754758 -0.184286216235 --0.337413758579 -0.184151593234 --0.328428703154 -0.184359883854 --0.319567068605 -0.184576943899 --0.310683180505 -0.18446016209 --0.301662573015 -0.184343610141 --0.292649912316 -0.184227276272 --0.283645523972 -0.184407704205 --0.2746458293 -0.184597241586 --0.265626570356 -0.184499269809 --0.25659033096 -0.184401389821 --0.24756040742 -0.184303626608 --0.238537199784 -0.184455805558 --0.229414469402 -0.184617350671 --0.220274891097 -0.184538375633 --0.211223706949 -0.184459408813 --0.202177318673 -0.184380448158 --0.19313614139 -0.184504155454 --0.183907292043 -0.184637467527 --0.174664383101 -0.184577667752 --0.165599332999 -0.184517790403 --0.156537606445 -0.184457833221 --0.147479643297 -0.184552712161 --0.138163870005 -0.184657372746 --0.128836875895 -0.184616870586 --0.11975932269 -0.184576234396 --0.110683701134 -0.184535467653 --0.101610461124 -0.184601359408 --0.092228216202 -0.184677168169 --0.0828376658569 -0.184656083289 --0.073749289985 -0.184634819786 --0.064661485892 -0.184613383669 --0.0555747193085 -0.184650171111 --0.0461475222188 -0.1846969619 --0.0367149696546 -0.18469535584 --0.0276176393027 -0.184693559443 --0.0185195645832 -0.184691571597 --0.00942121338044 -0.184690531942 -0 -0.184691571597 -0.00942121338044 -0.184693559443 -0.0185195645832 -0.18469535584 -0.0276176393027 -0.1846969619 -0.0367149696546 -0.184650171111 -0.0461475222188 -0.184613383669 -0.0555747193085 -0.184634819786 -0.064661485892 -0.184656083289 -0.073749289985 -0.184677168169 -0.0828376658569 -0.184601359408 -0.092228216202 -0.184535467653 -0.101610461124 -0.184576234396 -0.110683701134 -0.184616870586 -0.11975932269 -0.184657372746 -0.128836875895 -0.184552712161 -0.138163870005 -0.184457833221 -0.147479643297 -0.184517790403 -0.156537606445 -0.184577667752 -0.165599332999 -0.184637467527 -0.174664383101 -0.184504155454 -0.183907292043 -0.184380448158 -0.19313614139 -0.184459408813 -0.202177318673 -0.184538375633 -0.211223706949 -0.184617350671 -0.220274891097 -0.184455805558 -0.229414469402 -0.184303626608 -0.238537199784 -0.184401389821 -0.24756040742 -0.184499269809 -0.25659033096 -0.184597241586 -0.265626570356 -0.184407704205 -0.2746458293 -0.184227276272 -0.283645523972 -0.184343610141 -0.292649912316 -0.18446016209 -0.301662573015 -0.184576943899 -0.310683180505 -0.184359883854 -0.319567068605 -0.184151593234 -0.328428703154 -0.184286216235 -0.337413758579 -0.184421202468 -0.346408754758 -0.184556555681 -0.355413379335 -0.184312414879 -0.364149190855 -0.18407668424 -0.372860167999 -0.184229301156 -0.381825770986 -0.18438243249 -0.39080304667 -0.184536095083 -0.399791760233 -0.193816669683 --0.399084150057 -0.193679970036 --0.390113163736 -0.193543750859 --0.381153545649 -0.193407984364 --0.372205530615 -0.193618092154 --0.363504165726 -0.19383569087 --0.354777958162 -0.193715277464 --0.345790850687 -0.193595187158 --0.33681332743 -0.193475423828 --0.327845681384 -0.193661067429 --0.31899523736 -0.19385451456 --0.310122550317 -0.193750635067 --0.301119310803 -0.193646955019 --0.29212396702 -0.19354346817 --0.283136860594 -0.193704289638 --0.274149843134 -0.193873220845 --0.265143254504 -0.193786095732 --0.256124256421 -0.193699050538 --0.247111546254 -0.193612101273 --0.238105509093 -0.193747656403 --0.22899673106 -0.193891566952 --0.219871107867 -0.193821370413 --0.210837080052 -0.193751175306 --0.201807822089 -0.193680987977 --0.192783745865 -0.193791181787 --0.183569977782 -0.193909937307 --0.17434215083 -0.193856833418 --0.165294198528 -0.193803654443 --0.156249551513 -0.193750400989 --0.147208651932 -0.193834807372 --0.137908852317 -0.193927945427 --0.128597840687 -0.193892054462 --0.119537364191 -0.193856034114 --0.110478812303 -0.19381989188 --0.10142262301 -0.193878398944 --0.0920570388636 -0.193945758688 --0.0826831656357 -0.193927183781 --0.0736118622871 -0.193908452826 --0.0645411342544 -0.193889561672 --0.0554714407577 -0.193922074895 --0.0460613506434 -0.193963525911 --0.0366459203568 -0.193962319758 --0.0275656911195 -0.193960935561 --0.0184847256548 -0.193959395881 --0.00940349007319 -0.193958586007 -2.16840434497e-19 -0.193959395881 -0.00940349007319 -0.193960935561 -0.0184847256548 -0.193962319758 -0.0275656911195 -0.193963525911 -0.0366459203568 -0.193922074895 -0.0460613506434 -0.193889561672 -0.0554714407577 -0.193908452826 -0.0645411342544 -0.193927183781 -0.0736118622871 -0.193945758688 -0.0826831656357 -0.193878398944 -0.0920570388636 -0.19381989188 -0.10142262301 -0.193856034114 -0.110478812303 -0.193892054462 -0.119537364191 -0.193927945427 -0.128597840687 -0.193834807372 -0.137908852317 -0.193750400989 -0.147208651932 -0.193803654443 -0.156249551513 -0.193856833418 -0.165294198528 -0.193909937307 -0.17434215083 -0.193791181787 -0.183569977782 -0.193680987977 -0.192783745865 -0.193751175306 -0.201807822089 -0.193821370413 -0.210837080052 -0.193891566952 -0.219871107867 -0.193747656403 -0.22899673106 -0.193612101273 -0.238105509093 -0.193699050538 -0.247111546254 -0.193786095732 -0.256124256421 -0.193873220845 -0.265143254504 -0.193704289638 -0.274149843134 -0.19354346817 -0.283136860594 -0.193646955019 -0.29212396702 -0.193750635067 -0.301119310803 -0.19385451456 -0.310122550317 -0.193661067429 -0.31899523736 -0.193475423828 -0.327845681384 -0.193595187158 -0.33681332743 -0.193715277464 -0.345790850687 -0.19383569087 -0.354777958162 -0.193618092154 -0.363504165726 -0.193407984364 -0.372205530615 -0.193543750859 -0.381153545649 -0.193679970036 -0.390113163736 -0.193816669683 -0.399084150057 -0.202869849478 --0.399541376814 -0.202712696236 --0.390559947777 -0.202556090028 --0.381589886262 -0.202400010611 --0.372631439127 -0.202641047395 --0.363922402073 -0.202890702501 --0.355188478546 -0.202752291936 --0.3461908379 -0.202614256673 --0.337202764084 -0.202476594184 --0.328224573762 -0.202689532236 --0.319365760649 -0.202911449756 --0.310484665841 -0.202792054323 --0.301470798791 -0.202672891877 --0.292464819335 -0.202553951438 --0.283467077735 -0.202738412805 --0.274471036891 -0.202932189177 --0.265455388782 -0.202832046461 --0.256425676115 -0.202731996348 --0.247402231082 -0.202632051945 --0.238385446136 -0.202787567151 --0.229267075752 -0.202952668451 --0.220131822758 -0.202871962478 --0.211086992288 -0.202791262101 --0.202046922709 -0.202710563058 --0.193012011593 -0.202836993681 --0.183788138023 -0.202973247156 --0.174550180993 -0.202912160297 --0.165491340874 -0.202850991874 --0.156435800269 -0.202789731884 --0.147383991006 -0.202886638407 --0.138073680215 -0.202993566323 --0.128752143435 -0.202952227409 --0.119680710324 -0.202910744758 --0.110611190482 -0.202869125949 --0.101544030597 -0.202936374374 --0.0921676246675 -0.203013782019 --0.0827829122403 -0.202992306606 --0.073700596384 -0.202970653262 --0.0646188490147 -0.202948824242 --0.055538130142 -0.202986309406 --0.0461170163846 -0.203034043512 --0.0366905511087 -0.203032493904 --0.027599268893 -0.203030743714 --0.0185072445957 -0.203028809091 --0.00941494645388 -0.203027790372 -0 -0.203028809091 -0.00941494645388 -0.203030743714 -0.0185072445957 -0.203032493904 -0.027599268893 -0.203034043512 -0.0366905511087 -0.202986309406 -0.0461170163846 -0.202948824242 -0.055538130142 -0.202970653262 -0.0646188490147 -0.202992306606 -0.073700596384 -0.203013782019 -0.0827829122403 -0.202936374374 -0.0921676246675 -0.202869125949 -0.101544030597 -0.202910744758 -0.110611190482 -0.202952227409 -0.119680710324 -0.202993566323 -0.128752143435 -0.202886638407 -0.138073680215 -0.202789731884 -0.147383991006 -0.202850991874 -0.156435800269 -0.202912160297 -0.165491340874 -0.202973247156 -0.174550180993 -0.202836993681 -0.183788138023 -0.202710563058 -0.193012011593 -0.202791262101 -0.202046922709 -0.202871962478 -0.211086992288 -0.202952668451 -0.220131822758 -0.202787567151 -0.229267075752 -0.202632051945 -0.238385446136 -0.202731996348 -0.247402231082 -0.202832046461 -0.256425676115 -0.202932189177 -0.265455388782 -0.202738412805 -0.274471036891 -0.202553951438 -0.283467077735 -0.202672891877 -0.292464819335 -0.202792054323 -0.301470798791 -0.202911449756 -0.310484665841 -0.202689532236 -0.319365760649 -0.202476594184 -0.328224573762 -0.202614256673 -0.337202764084 -0.202752291936 -0.3461908379 -0.202890702501 -0.355188478546 -0.202641047395 -0.363922402073 -0.202400010611 -0.372631439127 -0.202556090028 -0.381589886262 -0.202712696236 -0.390559947777 -0.202869849478 -0.399541376814 -0.211929408244 --0.399999319146 -0.211751793079 --0.39100744775 -0.211574780327 --0.382026933176 -0.21139836404 --0.373058041213 -0.21167034609 --0.364341306795 -0.211952070531 --0.355599650025 -0.211795652689 --0.346591475106 -0.211639660596 --0.337592847107 -0.211484083012 --0.32860411117 -0.211724326634 --0.319736889812 -0.211974732804 --0.310847347977 -0.21183981023 --0.301822857459 -0.211705145467 --0.292806240557 -0.211570739127 --0.28379784984 -0.211778851458 --0.274792743143 -0.211997480275 --0.265767993907 -0.211884303243 --0.256727559079 -0.211771239254 --0.247693388863 -0.211658295184 --0.238665871547 -0.211833774344 --0.229537859639 -0.21202007853 --0.22039293282 -0.211928863532 --0.211337296931 -0.211837644478 --0.202286407591 -0.211746422996 --0.193240662038 -0.21188910613 --0.184006642681 -0.212042871266 --0.174758515221 -0.211973788066 --0.165688783762 -0.211904618555 --0.156622346806 -0.21183536442 --0.147559632178 -0.211944782363 --0.138238765243 -0.212065490439 --0.128906651972 -0.212018699959 --0.119824259214 -0.211971749216 --0.110743768751 -0.211924654823 --0.10166564037 -0.212000658816 --0.0922783718241 -0.212088108523 --0.0828827715483 -0.212063735827 --0.073789441513 -0.212039157795 --0.0646966714358 -0.21201437672 --0.055604924832 -0.212056834501 --0.0461727422766 -0.212110842781 --0.0367351943393 -0.212108951366 --0.0276328569974 -0.212106845778 --0.0185297711111 -0.21210451682 --0.00942640638465 -0.212103292735 -0 -0.21210451682 -0.00942640638465 -0.212106845778 -0.0185297711111 -0.212108951366 -0.0276328569974 -0.212110842781 -0.0367351943393 -0.212056834501 -0.0461727422766 -0.21201437672 -0.055604924832 -0.212039157795 -0.0646966714358 -0.212063735827 -0.073789441513 -0.212088108523 -0.0828827715483 -0.212000658816 -0.0922783718241 -0.211924654823 -0.10166564037 -0.211971749216 -0.110743768751 -0.212018699959 -0.119824259214 -0.212065490439 -0.128906651972 -0.211944782363 -0.138238765243 -0.21183536442 -0.147559632178 -0.211904618555 -0.156622346806 -0.211973788066 -0.165688783762 -0.212042871266 -0.174758515221 -0.21188910613 -0.184006642681 -0.211746422996 -0.193240662038 -0.211837644478 -0.202286407591 -0.211928863532 -0.211337296931 -0.21202007853 -0.22039293282 -0.211833774344 -0.229537859639 -0.211658295184 -0.238665871547 -0.211771239254 -0.247693388863 -0.211884303243 -0.256727559079 -0.211997480275 -0.265767993907 -0.211778851458 -0.274792743143 -0.211570739127 -0.28379784984 -0.211705145467 -0.292806240557 -0.21183981023 -0.301822857459 -0.211974732804 -0.310847347977 -0.211724326634 -0.319736889812 -0.211484083012 -0.32860411117 -0.211639660596 -0.337592847107 -0.211795652689 -0.346591475106 -0.211952070531 -0.355599650025 -0.21167034609 -0.364341306795 -0.21139836404 -0.373058041213 -0.211574780327 -0.382026933176 -0.211751793079 -0.39100744775 -0.211929408244 -0.399999319146 -0.220994941014 --0.400457983381 -0.220796836909 --0.391455670622 -0.220599417687 --0.382464710489 -0.220402670336 --0.373485369837 -0.220705604405 --0.364760912175 -0.221019400392 --0.356011476985 -0.220844961006 --0.34699275816 -0.220670996657 --0.337983585591 -0.220497494956 --0.32898430237 -0.220765061248 --0.32010864618 -0.221043957073 --0.311210616228 -0.220893494423 --0.302175487323 -0.22074332497 --0.293148232322 -0.220593438842 --0.284129195963 -0.220825206628 --0.275114992477 -0.221068699281 --0.266081105443 -0.220942476341 --0.257029940099 -0.220816391706 --0.247985036323 -0.220690446453 --0.238946784032 -0.220885894279 --0.229809097373 -0.221093401456 --0.220654458361 -0.22099166152 --0.211588003408 -0.220889918757 --0.202526285822 -0.220788180227 --0.193469716226 -0.220947119109 --0.184225513209 -0.221118405658 --0.174967171159 -0.221041332835 --0.165886546205 -0.220964158444 --0.156809203509 -0.220886889677 --0.147735582409 -0.221008816149 --0.13840411933 -0.221143314275 --0.129061381095 -0.221091069823 --0.119968022118 -0.221038658411 --0.110876563039 -0.220986086113 --0.10178745969 -0.221070837132 --0.0923892806869 -0.221168330313 --0.0829827519957 -0.221141064697 --0.0738784041023 -0.221113566533 --0.0647746071628 -0.221085836768 --0.0556718287884 -0.221133262967 --0.0462285315435 -0.221193547048 --0.0367798557533 -0.221191309234 --0.0276664571392 -0.221188838454 --0.0185523046805 -0.221186125082 --0.0094378701392 -0.221184705469 -2.16840434497e-19 -0.221186125082 -0.0094378701392 -0.221188838454 -0.0185523046805 -0.221191309234 -0.0276664571392 -0.221193547048 -0.0367798557533 -0.221133262967 -0.0462285315435 -0.221085836768 -0.0556718287884 -0.221113566533 -0.0647746071628 -0.221141064697 -0.0738784041023 -0.221168330313 -0.0829827519957 -0.221070837132 -0.0923892806869 -0.220986086113 -0.10178745969 -0.221038658411 -0.110876563039 -0.221091069823 -0.119968022118 -0.221143314275 -0.129061381095 -0.221008816149 -0.13840411933 -0.220886889677 -0.147735582409 -0.220964158444 -0.156809203509 -0.221041332835 -0.165886546205 -0.221118405658 -0.174967171159 -0.220947119109 -0.184225513209 -0.220788180227 -0.193469716226 -0.220889918757 -0.202526285822 -0.22099166152 -0.211588003408 -0.221093401456 -0.220654458361 -0.220885894279 -0.229809097373 -0.220690446453 -0.238946784032 -0.220816391706 -0.247985036323 -0.220942476341 -0.257029940099 -0.221068699281 -0.266081105443 -0.220825206628 -0.275114992477 -0.220593438842 -0.284129195963 -0.22074332497 -0.293148232322 -0.220893494423 -0.302175487323 -0.221043957073 -0.311210616228 -0.220765061248 -0.32010864618 -0.220497494956 -0.32898430237 -0.220670996657 -0.337983585591 -0.220844961006 -0.34699275816 -0.221019400392 -0.356011476985 -0.220705604405 -0.364760912175 -0.220402670336 -0.373485369837 -0.220599417687 -0.382464710489 -0.220796836909 -0.391455670622 -0.220994941014 -0.400457983381 -0.229651167689 --0.372628618266 -0.229927860609 --0.363916788693 -0.230214468241 --0.355179988105 -0.230055333409 --0.346184117298 -0.2298966246 --0.337197725325 -0.229738346453 --0.328221156938 -0.229982731598 --0.319360229871 -0.230237451662 --0.310476932009 -0.230100199264 --0.30146445936 -0.22996322397 --0.292459811701 -0.229826493489 --0.283463316686 -0.230038115602 --0.274465747101 -0.23026046152 --0.2654485128 -0.230145343804 --0.256419856395 -0.230030355863 --0.247397424641 -0.229915487123 --0.238381597951 -0.230093957864 --0.229262238546 -0.230283455294 --0.220125947072 -0.230190695811 --0.211081897015 -0.230097941071 --0.202042560598 -0.230005198313 --0.193008350415 -0.230150239999 --0.183783935068 -0.230306567083 --0.174545389225 -0.230236349911 --0.165487105809 -0.230166042246 --0.156432092014 -0.230095645653 --0.147380778756 -0.230206862782 --0.138070291722 -0.230329579231 --0.128748540587 -0.230282053326 --0.119677497547 -0.230234371529 --0.110608351528 -0.230186529656 --0.101541539237 -0.230263735966 --0.0921652269094 -0.230352597881 --0.0827805859827 -0.230327886942 --0.073698558281 -0.23030296403 --0.0646170846254 -0.230277841296 --0.0555366273984 -0.230320897489 --0.046115781938 -0.230375702657 --0.0366895767916 -0.230373864722 --0.027598537392 -0.230371805377 --0.0185067546307 -0.230369547691 --0.00941469741526 -0.230368369429 --2.16840434497e-19 -0.230369547691 -0.00941469741526 -0.230371805377 -0.0185067546307 -0.230373864722 -0.027598537392 -0.230375702657 -0.0366895767916 -0.230320897489 -0.046115781938 -0.230277841296 -0.0555366273984 -0.23030296403 -0.0646170846254 -0.230327886942 -0.073698558281 -0.230352597881 -0.0827805859827 -0.230263735966 -0.0921652269094 -0.230186529656 -0.101541539237 -0.230234371529 -0.110608351528 -0.230282053326 -0.119677497547 -0.230329579231 -0.128748540587 -0.230206862782 -0.138070291722 -0.230095645653 -0.147380778756 -0.230166042246 -0.156432092014 -0.230236349911 -0.165487105809 -0.230306567083 -0.174545389225 -0.230150239999 -0.183783935068 -0.230005198313 -0.193008350415 -0.230097941071 -0.202042560598 -0.230190695811 -0.211081897015 -0.230283455294 -0.220125947072 -0.230093957864 -0.229262238546 -0.229915487123 -0.238381597951 -0.230030355863 -0.247397424641 -0.230145343804 -0.256419856395 -0.23026046152 -0.2654485128 -0.230038115602 -0.274465747101 -0.229826493489 -0.283463316686 -0.22996322397 -0.292459811701 -0.230100199264 -0.30146445936 -0.230237451662 -0.310476932009 -0.229982731598 -0.319360229871 -0.229738346453 -0.328221156938 -0.2298966246 -0.337197725325 -0.230055333409 -0.346184117298 -0.230214468241 -0.355179988105 -0.229927860609 -0.363916788693 -0.229651167689 -0.372628618266 -0.238882287023 --0.371822026727 -0.239132569721 --0.363121940147 -0.23939182484 --0.354396880892 -0.239248099843 --0.345422616533 -0.239104751569 --0.336457773771 -0.238961790726 --0.32750266724 -0.239182858065 --0.318655488508 -0.239413269513 --0.309785951408 -0.239289307422 --0.300794878531 -0.239165589885 --0.291811572629 -0.239042111586 --0.282836367078 -0.239233481465 --0.273854392205 -0.239434545483 --0.264852747826 -0.239330604819 --0.255845331518 -0.239226779567 --0.246844107646 -0.239123059229 --0.237849435776 -0.239284449974 --0.228747282459 -0.239455822079 --0.219628201687 -0.239372118069 --0.210605281392 -0.239288415559 --0.201587050865 -0.239204704207 --0.192573903105 -0.239335771486 --0.183368096643 -0.239477060543 --0.174148168886 -0.23941373178 --0.165110938684 -0.239350318113 --0.156076955185 -0.239286849167 --0.147046658371 -0.239387300514 --0.13775591985 -0.239498154068 --0.128453921435 -0.239455375927 --0.119403898574 -0.239412448761 --0.110355763173 -0.239369373251 --0.101309945732 -0.23943898742 --0.0919542342762 -0.239519163653 --0.0825902078698 -0.239497028518 --0.0735291935104 -0.239474696873 --0.0644687369172 -0.239452191847 --0.0554092970245 -0.239490851569 --0.0460096154687 -0.239540143606 --0.0366045886723 -0.239538712155 --0.0275345987278 -0.239537082624 --0.0184638753228 -0.239535266169 --0.009392883356 -0.239534308316 --2.16840434497e-19 -0.239535266169 -0.009392883356 -0.239537082624 -0.0184638753228 -0.239538712155 -0.0275345987278 -0.239540143606 -0.0366045886723 -0.239490851569 -0.0460096154687 -0.239452191847 -0.0554092970245 -0.239474696873 -0.0644687369172 -0.239497028518 -0.0735291935104 -0.239519163653 -0.0825902078698 -0.23943898742 -0.0919542342762 -0.239369373251 -0.101309945732 -0.239412448761 -0.110355763173 -0.239455375927 -0.119403898574 -0.239498154068 -0.128453921435 -0.239387300514 -0.13775591985 -0.239286849167 -0.147046658371 -0.239350318113 -0.156076955185 -0.23941373178 -0.165110938684 -0.239477060543 -0.174148168886 -0.239335771486 -0.183368096643 -0.239204704207 -0.192573903105 -0.239288415559 -0.201587050865 -0.239372118069 -0.210605281392 -0.239455822079 -0.219628201687 -0.239284449974 -0.228747282459 -0.239123059229 -0.237849435776 -0.239226779567 -0.246844107646 -0.239330604819 -0.255845331518 -0.239434545483 -0.264852747826 -0.239233481465 -0.273854392205 -0.239042111586 -0.282836367078 -0.239165589885 -0.291811572629 -0.239289307422 -0.300794878531 -0.239413269513 -0.309785951408 -0.239182858065 -0.318655488508 -0.238961790726 -0.32750266724 -0.239104751569 -0.336457773771 -0.239248099843 -0.345422616533 -0.23939182484 -0.354396880892 -0.239132569721 -0.363121940147 -0.238882287023 -0.371822026727 -0.247858830684 --0.372350682429 -0.248139748072 --0.36364105674 -0.248430763083 --0.354906400577 -0.248269207727 --0.345919098863 -0.248108077683 --0.336941221707 -0.247947377225 --0.327973061263 -0.248195494053 --0.319115453985 -0.248454115439 --0.310235439298 -0.248314778814 --0.30123120773 -0.248175705427 --0.292234737742 -0.248036906388 --0.283246360049 -0.248251707179 --0.274253144337 -0.248477387284 --0.26524021369 -0.248360551802 --0.256219532139 -0.24824383448 --0.247205014174 -0.248127241492 --0.238197039265 -0.248308409796 --0.229082930015 -0.248500769484 --0.21995184157 -0.248406648761 --0.210915533416 -0.248312530916 --0.201883909558 -0.248218405357 --0.192857355537 -0.248365559114 --0.183638953896 -0.248524193066 --0.174406395508 -0.248452968328 --0.16535568232 -0.248381632033 --0.156308202787 -0.248310225241 --0.147264398477 -0.248423066874 --0.137960555697 -0.248547572599 --0.128645426521 -0.248499390129 --0.119581829515 -0.248451058799 --0.110520106659 -0.248402562051 --0.101460702741 -0.248480838287 --0.092091500013 -0.248570959733 --0.0827139545225 -0.248545949998 --0.0736392980185 -0.248520733324 --0.0645651926218 -0.2484953156 --0.055492096413 -0.248538892737 --0.0460786675632 -0.248594401221 --0.03665987857 -0.248592631649 --0.0275761953393 -0.248590651279 --0.0184917720928 -0.248588437081 --0.0094070755878 -0.248587262899 -0 -0.248588437081 -0.0094070755878 -0.248590651279 -0.0184917720928 -0.248592631649 -0.0275761953393 -0.248594401221 -0.03665987857 -0.248538892737 -0.0460786675632 -0.2484953156 -0.055492096413 -0.248520733324 -0.0645651926218 -0.248545949998 -0.0736392980185 -0.248570959733 -0.0827139545225 -0.248480838287 -0.092091500013 -0.248402562051 -0.101460702741 -0.248451058799 -0.110520106659 -0.248499390129 -0.119581829515 -0.248547572599 -0.128645426521 -0.248423066874 -0.137960555697 -0.248310225241 -0.147264398477 -0.248381632033 -0.156308202787 -0.248452968328 -0.16535568232 -0.248524193066 -0.174406395508 -0.248365559114 -0.183638953896 -0.248218405357 -0.192857355537 -0.248312530916 -0.201883909558 -0.248406648761 -0.210915533416 -0.248500769484 -0.21995184157 -0.248308409796 -0.229082930015 -0.248127241492 -0.238197039265 -0.24824383448 -0.247205014174 -0.248360551802 -0.256219532139 -0.248477387284 -0.26524021369 -0.248251707179 -0.274253144337 -0.248036906388 -0.283246360049 -0.248175705427 -0.292234737742 -0.248314778814 -0.30123120773 -0.248454115439 -0.310235439298 -0.248195494053 -0.319115453985 -0.247947377225 -0.327973061263 -0.248108077683 -0.336941221707 -0.248269207727 -0.345919098863 -0.248430763083 -0.354906400577 -0.248139748072 -0.36364105674 -0.247858830684 -0.372350682429 -0.256843421781 --0.372880595957 -0.257155007289 --0.36416138265 -0.257477805431 --0.355417091688 -0.257298396159 --0.3464167442 -0.257119466541 --0.33742581245 -0.256941014122 --0.328444591038 -0.257216182568 --0.319576498446 -0.257503022997 --0.310685962434 -0.257348301974 --0.301668563295 -0.257193874445 --0.292658909373 -0.257039745308 --0.28365734543 -0.257277976479 --0.274652829833 -0.257528290573 --0.26562856627 -0.257398547393 --0.256594604071 -0.257268924679 --0.247566782164 -0.257139440741 --0.238545505432 -0.25734040131 --0.229419379175 -0.257553781186 --0.220276227174 -0.25744922762 --0.21122651492 -0.25734467829 --0.202181475109 -0.257240133263 --0.193141501148 -0.257403391127 --0.183910453894 -0.257579371662 --0.174665210721 -0.257500231225 --0.165600993337 -0.257420975799 --0.156540005282 -0.257341617204 --0.147482669911 -0.25746685232 --0.138165657456 -0.257605031929 --0.128837342054 -0.257551451243 --0.119760156431 -0.257497704831 --0.1106848343 -0.257443770025 --0.101611825279 -0.25753072048 --0.0922290734265 -0.2576308004 --0.0828379535489 -0.257602913149 --0.0737496354662 -0.257574802903 --0.0646618612348 -0.257546463706 --0.0555750888329 -0.257594968005 --0.0461478534607 -0.257656703538 --0.0367152422213 -0.257654595294 --0.0276178472825 -0.257652246569 --0.0185197058216 -0.257649639957 --0.00942128641518 -0.257648272323 -0 -0.257649639957 -0.00942128641518 -0.257652246569 -0.0185197058216 -0.257654595294 -0.0276178472825 -0.257656703538 -0.0367152422213 -0.257594968005 -0.0461478534607 -0.257546463706 -0.0555750888329 -0.257574802903 -0.0646618612348 -0.257602913149 -0.0737496354662 -0.2576308004 -0.0828379535489 -0.25753072048 -0.0922290734265 -0.257443770025 -0.101611825279 -0.257497704831 -0.1106848343 -0.257551451243 -0.119760156431 -0.257605031929 -0.128837342054 -0.25746685232 -0.138165657456 -0.257341617204 -0.147482669911 -0.257420975799 -0.156540005282 -0.257500231225 -0.165600993337 -0.257579371662 -0.174665210721 -0.257403391127 -0.183910453894 -0.257240133263 -0.193141501148 -0.25734467829 -0.202181475109 -0.25744922762 -0.21122651492 -0.257553781186 -0.220276227174 -0.25734040131 -0.229419379175 -0.257139440741 -0.238545505432 -0.257268924679 -0.247566782164 -0.257398547393 -0.256594604071 -0.257528290573 -0.26562856627 -0.257277976479 -0.274652829833 -0.257039745308 -0.28365734543 -0.257193874445 -0.292658909373 -0.257348301974 -0.301668563295 -0.257503022997 -0.310685962434 -0.257216182568 -0.319576498446 -0.256941014122 -0.328444591038 -0.257119466541 -0.33742581245 -0.257298396159 -0.3464167442 -0.257477805431 -0.355417091688 -0.257155007289 -0.36416138265 -0.256843421781 -0.372880595957 -0.265835698426 --0.373411774802 -0.266177956481 --0.364682933089 -0.26653254893 --0.355928961386 -0.266335276732 --0.346915553692 -0.266138532803 --0.337911547528 -0.265942307909 --0.328917250362 -0.266244553571 --0.320038643355 -0.266559633489 --0.311137530782 -0.266389510055 --0.302106948793 -0.26621972196 --0.293084102499 -0.26605025587 --0.284069337336 -0.266311930036 --0.275053487281 -0.266586890731 --0.266017831502 -0.266444217657 --0.256970560325 -0.266301685546 --0.247929429822 -0.266159305883 --0.238894834789 -0.266380051245 --0.229756630092 -0.266614456726 --0.22060136464 -0.266499479508 --0.211538241337 -0.266384501534 --0.202479767561 -0.266269522967 --0.19342635438 -0.266448887389 --0.184182603364 -0.26664222367 --0.174924621342 -0.266555149775 --0.165846884457 -0.266467968736 --0.156772363419 -0.266380669848 --0.147701492821 -0.266518299074 --0.138371257307 -0.266670159756 --0.129029686623 -0.266611182675 --0.119938897097 -0.266552005148 --0.110849957544 -0.266492621864 --0.101763320972 -0.266588251646 --0.0923669585861 -0.266698301529 --0.0829622057646 -0.266667540043 --0.0738602090719 -0.266636528383 --0.0647587474214 -0.266605265536 --0.0556582813833 -0.266658699579 --0.0462171781477 -0.266726671979 --0.0367706828153 -0.266724225018 --0.0276595573363 -0.266721501469 --0.0185476783533 -0.266718507691 --0.00943551714935 -0.266716946307 -2.16840434497e-19 -0.266718507691 -0.00943551714935 -0.266721501469 -0.0185476783533 -0.266724225018 -0.0276595573363 -0.266726671979 -0.0367706828153 -0.266658699579 -0.0462171781477 -0.266605265536 -0.0556582813833 -0.266636528383 -0.0647587474214 -0.266667540043 -0.0738602090719 -0.266698301529 -0.0829622057646 -0.266588251646 -0.0923669585861 -0.266492621864 -0.101763320972 -0.266552005148 -0.110849957544 -0.266611182675 -0.119938897097 -0.266670159756 -0.129029686623 -0.266518299074 -0.138371257307 -0.266380669848 -0.147701492821 -0.266467968736 -0.156772363419 -0.266555149775 -0.165846884457 -0.26664222367 -0.174924621342 -0.266448887389 -0.184182603364 -0.266269522967 -0.19342635438 -0.266384501534 -0.202479767561 -0.266499479508 -0.211538241337 -0.266614456726 -0.22060136464 -0.266380051245 -0.229756630092 -0.266159305883 -0.238894834789 -0.266301685546 -0.247929429822 -0.266444217657 -0.256970560325 -0.266586890731 -0.266017831502 -0.266311930036 -0.275053487281 -0.26605025587 -0.284069337336 -0.26621972196 -0.293084102499 -0.266389510055 -0.302106948793 -0.266559633489 -0.311137530782 -0.266244553571 -0.320038643355 -0.265942307909 -0.328917250362 -0.266138532803 -0.337911547528 -0.266335276732 -0.346915553692 -0.26653254893 -0.355928961386 -0.266177956481 -0.364682933089 -0.265835698426 -0.373411774802 -0.275069696207 --0.32802076568 -0.275347961655 --0.319159413297 -0.27563805029 --0.310275554138 -0.275481596181 --0.301271611763 -0.27532544883 --0.292275331642 -0.275169582419 --0.283287047536 -0.275410476556 --0.27429072797 -0.275663610449 --0.265274603837 -0.275532422884 --0.256253778465 -0.27540136729 --0.24723904213 -0.275270436511 --0.238230778675 -0.275473603745 --0.229114122226 -0.275689364234 --0.219980426346 -0.275583680425 --0.210943619606 -0.275477992612 --0.201911421839 -0.275372300884 --0.192884249624 -0.275537310898 --0.183663770114 -0.27571520061 --0.174429080312 -0.275635211471 --0.165377578693 -0.275555126561 --0.156329268619 -0.275474929424 --0.147284586451 -0.2756014848 --0.1379790344 -0.275741156471 --0.1286621608 -0.275687035827 --0.119597566138 -0.275632733326 --0.110534813151 -0.275578248208 --0.101474346538 -0.275666089959 --0.0921037267273 -0.275767223797 --0.0827247425563 -0.275739104616 --0.0736489508499 -0.275710744018 --0.064573688736 -0.275682160731 --0.0554994190123 -0.275731100507 --0.0460847562483 -0.275793436609 --0.0366647230362 -0.275791397737 --0.0275798412575 -0.275789106002 --0.0184942186436 -0.275786566269 --0.00940832041669 -0.27578523136 -0 -0.275786566269 -0.00940832041669 -0.275789106002 -0.0184942186436 -0.275791397737 -0.0275798412575 -0.275793436609 -0.0366647230362 -0.275731100507 -0.0460847562483 -0.275682160731 -0.0554994190123 -0.275710744018 -0.064573688736 -0.275739104616 -0.0736489508499 -0.275767223797 -0.0827247425563 -0.275666089959 -0.0921037267273 -0.275578248208 -0.101474346538 -0.275632733326 -0.110534813151 -0.275687035827 -0.119597566138 -0.275741156471 -0.1286621608 -0.2756014848 -0.1379790344 -0.275474929424 -0.147284586451 -0.275555126561 -0.156329268619 -0.275635211471 -0.165377578693 -0.27571520061 -0.174429080312 -0.275537310898 -0.183663770114 -0.275372300884 -0.192884249624 -0.275477992612 -0.201911421839 -0.275583680425 -0.210943619606 -0.275689364234 -0.219980426346 -0.275473603745 -0.229114122226 -0.275270436511 -0.238230778675 -0.27540136729 -0.24723904213 -0.275532422884 -0.256253778465 -0.275663610449 -0.265274603837 -0.275410476556 -0.27429072797 -0.275169582419 -0.283287047536 -0.27532544883 -0.292275331642 -0.275481596181 -0.301271611763 -0.27563805029 -0.310275554138 -0.275347961655 -0.319159413297 -0.275069696207 -0.32802076568 -0.284176859091 --0.327167778104 -0.28443097868 --0.318322716535 -0.284695904457 --0.309455167689 -0.284553221241 --0.300476629955 -0.284410797702 --0.29150568456 -0.28426862633 --0.282542669054 -0.284488611393 --0.273564850113 -0.284719764582 --0.264567223434 -0.28460013555 --0.25557159808 -0.284480635905 --0.246582025975 -0.284361246234 --0.237598874944 -0.284546729397 --0.228502671046 -0.284743712645 --0.219389428457 -0.284647379993 --0.210377692649 -0.284551051944 --0.201370535053 -0.284454715117 --0.192368351861 -0.284605283363 --0.18316999699 -0.284767618683 --0.173957439498 -0.284694761086 --0.164930917307 -0.284621819624 --0.155907562849 -0.284548769609 --0.146887801775 -0.284664176057 --0.137605736971 -0.284791570058 --0.128312364824 -0.284742341517 --0.119272701278 -0.284692961016 --0.110234870222 -0.284643409613 --0.101199308241 -0.284723413626 --0.0918532043858 -0.284815572242 --0.0824987536413 -0.284790101687 --0.0734478900564 -0.284764410932 --0.0643975562849 -0.284738525489 --0.0553482114243 -0.28478293923 --0.0459587369183 -0.284839594095 --0.0365639119206 -0.284837971153 --0.0275039987135 -0.284836118021 --0.0184433563703 -0.284834022761 --0.00938244496082 -0.284832910131 -2.16840434497e-19 -0.284834022761 -0.00938244496082 -0.284836118021 -0.0184433563703 -0.284837971153 -0.0275039987135 -0.284839594095 -0.0365639119206 -0.28478293923 -0.0459587369183 -0.284738525489 -0.0553482114243 -0.284764410932 -0.0643975562849 -0.284790101687 -0.0734478900564 -0.284815572242 -0.0824987536413 -0.284723413626 -0.0918532043858 -0.284643409613 -0.101199308241 -0.284692961016 -0.110234870222 -0.284742341517 -0.119272701278 -0.284791570058 -0.128312364824 -0.284664176057 -0.137605736971 -0.284548769609 -0.146887801775 -0.284621819624 -0.155907562849 -0.284694761086 -0.164930917307 -0.284767618683 -0.173957439498 -0.284605283363 -0.18316999699 -0.284454715117 -0.192368351861 -0.284551051944 -0.201370535053 -0.284647379993 -0.210377692649 -0.284743712645 -0.219389428457 -0.284546729397 -0.228502671046 -0.284361246234 -0.237598874944 -0.284480635905 -0.246582025975 -0.28460013555 -0.25557159808 -0.284719764582 -0.264567223434 -0.284488611393 -0.273564850113 -0.28426862633 -0.282542669054 -0.284410797702 -0.29150568456 -0.284553221241 -0.300476629955 -0.284695904457 -0.309455167689 -0.28443097868 -0.318322716535 -0.284176859091 -0.327167778104 -0.29314643865 --0.327728855145 -0.293427325558 --0.318871312022 -0.293720169091 --0.309991229175 -0.293562264739 --0.300997033758 -0.293404642568 --0.292010411142 -0.293247313591 --0.283031715637 -0.293490483838 --0.274040456003 -0.293746000929 --0.265029333695 -0.293613598777 --0.256017906715 -0.293481340678 --0.247012524896 -0.293349211326 --0.238013547422 -0.293554259896 --0.228903017001 -0.293772017929 --0.219775404749 -0.293665376869 --0.210747742834 -0.293558740235 --0.201724640336 -0.293452095477 --0.192706489384 -0.293618591561 --0.183493068299 -0.293798088144 --0.17426540047 -0.293717404946 --0.165222823118 -0.293636628613 --0.156183402794 -0.293555727237 --0.14714755589 -0.2936833818 --0.137849811617 -0.29382429695 --0.128540731022 -0.293769736876 --0.119484906426 -0.29371499581 --0.110430896087 -0.293660067826 --0.10137914843 -0.293748646038 --0.0920169045105 -0.293850646981 --0.0826462825828 -0.293822336078 --0.0735791704675 -0.293793790503 --0.0645125811023 -0.293765009486 --0.0554469706399 -0.293814287108 --0.0460410494009 -0.293877098597 --0.0366297619252 -0.293875140272 --0.0275535403926 -0.293872927117 --0.018476580657 -0.293870448761 --0.00939934751652 -0.293869139014 -2.16840434497e-19 -0.293870448761 -0.00939934751652 -0.293872927117 -0.018476580657 -0.293875140272 -0.0275535403926 -0.293877098597 -0.0366297619252 -0.293814287108 -0.0460410494009 -0.293765009486 -0.0554469706399 -0.293793790503 -0.0645125811023 -0.293822336078 -0.0735791704675 -0.293850646981 -0.0826462825828 -0.293748646038 -0.0920169045105 -0.293660067826 -0.10137914843 -0.29371499581 -0.110430896087 -0.293769736876 -0.119484906426 -0.29382429695 -0.128540731022 -0.2936833818 -0.137849811617 -0.293555727237 -0.14714755589 -0.293636628613 -0.156183402794 -0.293717404946 -0.165222823118 -0.293798088144 -0.17426540047 -0.293618591561 -0.183493068299 -0.293452095477 -0.192706489384 -0.293558740235 -0.201724640336 -0.293665376869 -0.210747742834 -0.293772017929 -0.219775404749 -0.293554259896 -0.228903017001 -0.293349211326 -0.238013547422 -0.293481340678 -0.247012524896 -0.293613598777 -0.256017906715 -0.293746000929 -0.265029333695 -0.293490483838 -0.274040456003 -0.293247313591 -0.283031715637 -0.293404642568 -0.292010411142 -0.293562264739 -0.300997033758 -0.293720169091 -0.309991229175 -0.293427325558 -0.318871312022 -0.29314643865 -0.327728855145 -0.302125836538 --0.328291634425 -0.302433525987 --0.319421559786 -0.302754310621 --0.310528889449 -0.302581158781 --0.301519011118 -0.302408323783 --0.292516681467 -0.302235817967 --0.283522281028 -0.302502184569 --0.274517504472 -0.30278208936 --0.265492815763 -0.30263691053 --0.256465573218 -0.302491882951 --0.247444343963 -0.302346996219 --0.238429501994 -0.302571624784 --0.229304587546 -0.302810180541 --0.220162547137 -0.302693216298 --0.21111891548 -0.302576257459 --0.202079828633 -0.302459292134 --0.193045684199 -0.302641726059 --0.183817124118 -0.302838409123 --0.174574281554 -0.302749888846 --0.165515614066 -0.302661260454 --0.156460089553 -0.302572498385 --0.147408126096 -0.302712419601 --0.138094624245 -0.302866863534 --0.128769753946 -0.30280695806 --0.119697730505 -0.302746850428 --0.110627514483 -0.302686545731 --0.101559554414 -0.302783699683 --0.0921810880424 -0.302895547776 --0.0827942164954 -0.302864399137 --0.0737108225267 -0.302832994055 --0.0646279402388 -0.302801320423 --0.0555460313023 -0.302855480935 --0.0461235884241 -0.302924455399 --0.036695758815 -0.302922148736 --0.0276031916988 -0.30291957004 --0.0185098789931 -0.302916707961 --0.00941628774828 -0.302915206788 -0 -0.302916707961 -0.00941628774828 -0.30291957004 -0.0185098789931 -0.302922148736 -0.0276031916988 -0.302924455399 -0.036695758815 -0.302855480935 -0.0461235884241 -0.302801320423 -0.0555460313023 -0.302832994055 -0.0646279402388 -0.302864399137 -0.0737108225267 -0.302895547776 -0.0827942164954 -0.302783699683 -0.0921810880424 -0.302686545731 -0.101559554414 -0.302746850428 -0.110627514483 -0.30280695806 -0.119697730505 -0.302866863534 -0.128769753946 -0.302712419601 -0.138094624245 -0.302572498385 -0.147408126096 -0.302661260454 -0.156460089553 -0.302749888846 -0.165515614066 -0.302838409123 -0.174574281554 -0.302641726059 -0.183817124118 -0.302459292134 -0.193045684199 -0.302576257459 -0.202079828633 -0.302693216298 -0.21111891548 -0.302810180541 -0.220162547137 -0.302571624784 -0.229304587546 -0.302346996219 -0.238429501994 -0.302491882951 -0.247444343963 -0.30263691053 -0.256465573218 -0.30278208936 -0.265492815763 -0.302502184569 -0.274517504472 -0.302235817967 -0.283522281028 -0.302408323783 -0.292516681467 -0.302581158781 -0.301519011118 -0.302754310621 -0.310528889449 -0.302433525987 -0.319421559786 -0.302125836538 -0.328291634425 -0.311114723926 --0.328856158238 -0.311449232147 --0.319973503456 -0.311797981005 --0.31106817986 -0.311609576738 --0.30204258283 -0.311421518281 --0.293024526883 -0.311233804985 --0.284014382781 -0.311523386256 --0.274996024057 -0.311827700487 --0.26595770441 -0.31166971783 --0.256914602091 -0.311511898693 --0.247877492559 -0.311354240764 --0.238846764529 -0.31159846641 --0.229707402238 -0.311857843131 --0.220550864197 -0.311730550875 --0.211491228355 -0.311603258882 --0.202436122224 -0.31147596671 --0.193385958687 -0.311674345544 --0.184142189101 -0.311888223853 --0.174884095487 -0.311791851552 --0.165809300296 -0.311695354516 --0.156737627306 -0.311598735632 --0.147669521559 -0.311750947083 --0.138340195759 -0.311918924971 --0.128999456353 -0.311853663607 --0.119911201227 -0.311788188873 --0.110824740835 -0.311722492926 --0.101740524498 -0.311828242874 --0.0923457631941 -0.31194996713 --0.0829425714879 -0.311915959117 --0.0738428572914 -0.31188167856 --0.064743643803 -0.311847114613 --0.0556453983994 -0.311906162326 --0.0462063543326 -0.311981312639 --0.036761905193 -0.311978656937 --0.0276529557015 -0.311975712602 --0.0185432527489 -0.311972466663 --0.0094332665196 -0.311970766771 -0 -0.311972466663 -0.0094332665196 -0.311975712602 -0.0185432527489 -0.311978656937 -0.0276529557015 -0.311981312639 -0.036761905193 -0.311906162326 -0.0462063543326 -0.311847114613 -0.0556453983994 -0.31188167856 -0.064743643803 -0.311915959117 -0.0738428572914 -0.31194996713 -0.0829425714879 -0.311828242874 -0.0923457631941 -0.311722492926 -0.101740524498 -0.311788188873 -0.110824740835 -0.311853663607 -0.119911201227 -0.311918924971 -0.128999456353 -0.311750947083 -0.138340195759 -0.311598735632 -0.147669521559 -0.311695354516 -0.156737627306 -0.311791851552 -0.165809300296 -0.311888223853 -0.174884095487 -0.311674345544 -0.184142189101 -0.31147596671 -0.193385958687 -0.311603258882 -0.202436122224 -0.311730550875 -0.211491228355 -0.311857843131 -0.220550864197 -0.31159846641 -0.229707402238 -0.311354240764 -0.238846764529 -0.311511898693 -0.247877492559 -0.31166971783 -0.256914602091 -0.311827700487 -0.26595770441 -0.311523386256 -0.274996024057 -0.311233804985 -0.284014382781 -0.311421518281 -0.293024526883 -0.311609576738 -0.30204258283 -0.311797981005 -0.31106817986 -0.311449232147 -0.319973503456 -0.311114723926 -0.328856158238 -0.320744955908 --0.310080821199 -0.320570485259 --0.301085709411 -0.320396332273 --0.292098067262 -0.320222487522 --0.283118241017 -0.320490865517 --0.274122269059 -0.320772909737 --0.2651063449 -0.320626629035 --0.256093511333 -0.320480492706 --0.247086616645 -0.320334508839 --0.238086049007 -0.32056082163 --0.228971393051 -0.3208011786 --0.219839568269 -0.320683364054 --0.210810061716 -0.320565546099 --0.201785038709 -0.320447710867 --0.192764909758 -0.320631492654 --0.183547841764 -0.320829647041 --0.174316461301 -0.320740481599 --0.165271688566 -0.320651204451 --0.156230017577 -0.320561825459 --0.147191889691 -0.320702765438 --0.137890886196 -0.32085832212 --0.128578484254 -0.320798018684 --0.119520217596 -0.320737505199 --0.110463727342 -0.32067678822 --0.101409461806 -0.320774623818 --0.0920442467726 -0.320887269369 --0.082670622224 -0.320855943618 --0.0736008989086 -0.320824374503 --0.0645316776622 -0.320792536323 --0.0554634155629 -0.320846982601 --0.046054709568 -0.320916368318 --0.0366406242064 -0.320914123314 --0.0275617125442 -0.320911616353 --0.0184820628573 -0.320908825258 --0.00940213754122 -0.320907354095 -2.16840434497e-19 -0.320908825258 -0.00940213754122 -0.320911616353 -0.0184820628573 -0.320914123314 -0.0275617125442 -0.320916368318 -0.0366406242064 -0.320846982601 -0.046054709568 -0.320792536323 -0.0554634155629 -0.320824374503 -0.0645316776622 -0.320855943618 -0.0736008989086 -0.320887269369 -0.082670622224 -0.320774623818 -0.0920442467726 -0.32067678822 -0.101409461806 -0.320737505199 -0.110463727342 -0.320798018684 -0.119520217596 -0.32085832212 -0.128578484254 -0.320702765438 -0.137890886196 -0.320561825459 -0.147191889691 -0.320651204451 -0.156230017577 -0.320740481599 -0.165271688566 -0.320829647041 -0.174316461301 -0.320631492654 -0.183547841764 -0.320447710867 -0.192764909758 -0.320565546099 -0.201785038709 -0.320683364054 -0.210810061716 -0.3208011786 -0.219839568269 -0.32056082163 -0.228971393051 -0.320334508839 -0.238086049007 -0.320480492706 -0.247086616645 -0.320626629035 -0.256093511333 -0.320772909737 -0.2651063449 -0.320490865517 -0.274122269059 -0.320222487522 -0.283118241017 -0.320396332273 -0.292098067262 -0.320570485259 -0.301085709411 -0.320744955908 -0.310080821199 -0.329668467414 --0.309133374479 -0.329508027268 --0.300167561665 -0.329347889606 --0.291209159149 -0.329188037071 --0.282258495016 -0.329435055643 --0.273283920838 -0.329694652245 --0.26428938609 -0.329560171692 --0.255305631414 -0.329425827107 --0.246327772219 -0.329291615245 --0.237356178995 -0.329499866398 --0.228265173503 -0.329721050949 --0.219156996323 -0.329612780628 --0.210156419488 -0.329504510411 --0.201160289646 -0.329396216656 --0.192168993279 -0.32956529162 --0.1829775173 -0.329747604651 --0.173771741456 -0.329665713586 --0.164755793686 -0.329583725599 --0.155742926683 -0.329501631894 --0.146733560644 -0.329631200074 --0.137459727479 -0.329774234646 --0.128174515674 -0.3297189285 --0.119145022145 -0.329663424504 --0.110117291454 -0.329607736431 --0.101091767582 -0.329697577919 --0.0917549152772 -0.329801055354 --0.0824096693039 -0.329772452306 --0.0733687174489 -0.32974360883 --0.0643282677537 -0.32971452015 --0.0552887718434 -0.329764341224 --0.045909206179 -0.32982791569 --0.0365242821668 -0.329826091023 --0.02747418586 -0.32982401459 --0.0184233647268 -0.329821673566 --0.00937227570326 -0.329820434085 -0 -0.329821673566 -0.00937227570326 -0.32982401459 -0.0184233647268 -0.329826091023 -0.02747418586 -0.32982791569 -0.0365242821668 -0.329764341224 -0.045909206179 -0.32971452015 -0.0552887718434 -0.32974360883 -0.0643282677537 -0.329772452306 -0.0733687174489 -0.329801055354 -0.0824096693039 -0.329697577919 -0.0917549152772 -0.329607736431 -0.101091767582 -0.329663424504 -0.110117291454 -0.3297189285 -0.119145022145 -0.329774234646 -0.128174515674 -0.329631200074 -0.137459727479 -0.329501631894 -0.146733560644 -0.329583725599 -0.155742926683 -0.329665713586 -0.164755793686 -0.329747604651 -0.173771741456 -0.32956529162 -0.1829775173 -0.329396216656 -0.192168993279 -0.329504510411 -0.201160289646 -0.329612780628 -0.210156419488 -0.329721050949 -0.219156996323 -0.329499866398 -0.228265173503 -0.329291615245 -0.237356178995 -0.329425827107 -0.246327772219 -0.329560171692 -0.255305631414 -0.329694652245 -0.26428938609 -0.329435055643 -0.273283920838 -0.329188037071 -0.282258495016 -0.329347889606 -0.291209159149 -0.329508027268 -0.300167561665 -0.329668467414 -0.309133374479 -0.338703945726 --0.264824761986 -0.338556832642 --0.255822731636 -0.338409872532 --0.246826574177 -0.338263060245 --0.237836669818 -0.338490645655 --0.228729026973 -0.338732371129 --0.219604160402 -0.338613901838 --0.210585148594 -0.338495435498 --0.201570571817 -0.338376958897 --0.19256080853 -0.338561772823 --0.183351828441 -0.338761052942 --0.174128505518 -0.338671434022 --0.165093982099 -0.338581693448 --0.156062521305 -0.338491830368 --0.14703454261 -0.338633511217 --0.137742504225 -0.338789904079 --0.128439048974 -0.338729322595 --0.119390853644 -0.338668539411 --0.110344406028 -0.338607534028 --0.101300149366 -0.338705832705 --0.0919445511326 -0.33881904894 --0.0825805322156 -0.338787642224 --0.07352077647 -0.338755962601 --0.0644615102707 -0.338724017988 --0.0554031914221 -0.338778656972 --0.046004532305 -0.338848321817 --0.0366004946955 -0.338846159198 --0.0275315237623 -0.338843717411 --0.0184618172168 -0.338840995161 --0.00939183773559 -0.338839561169 -2.16840434497e-19 -0.338840995161 -0.00939183773559 -0.338843717411 -0.0184618172168 -0.338846159198 -0.0275315237623 -0.338848321817 -0.0366004946955 -0.338778656972 -0.046004532305 -0.338724017988 -0.0554031914221 -0.338755962601 -0.0644615102707 -0.338787642224 -0.07352077647 -0.33881904894 -0.0825805322156 -0.338705832705 -0.0919445511326 -0.338607534028 -0.101300149366 -0.338668539411 -0.110344406028 -0.338729322595 -0.119390853644 -0.338789904079 -0.128439048974 -0.338633511217 -0.137742504225 -0.338491830368 -0.14703454261 -0.338581693448 -0.156062521305 -0.338671434022 -0.165093982099 -0.338761052942 -0.174128505518 -0.338561772823 -0.183351828441 -0.338376958897 -0.19256080853 -0.338495435498 -0.201570571817 -0.338613901838 -0.210585148594 -0.338732371129 -0.219604160402 -0.338490645655 -0.228729026973 -0.338263060245 -0.237836669818 -0.338409872532 -0.246826574177 -0.338556832642 -0.255822731636 -0.338703945726 -0.264824761986 -0.347724920797 --0.265362069175 -0.347565159292 --0.256341718324 -0.347405566427 --0.247327223388 -0.347246145816 --0.238318962132 -0.347493098433 --0.229194608313 -0.347755388682 --0.220052972594 -0.34762670284 --0.211015467292 -0.347498020556 --0.201982380141 -0.347369351937 --0.192954103975 -0.347569923768 --0.183727541225 -0.347786179708 --0.174486579335 -0.347688810028 --0.165433421408 -0.347591304042 --0.156383309829 -0.34749367377 --0.14733666834 -0.347647489938 --0.138026327653 -0.347817266305 --0.128704531188 -0.347751392539 --0.119637576193 -0.347685300148 --0.110572356777 -0.347618968734 --0.101509318134 -0.347725757499 --0.092134880176 -0.347848732234 --0.0827519901685 -0.347814492404 --0.0736733723203 -0.347779973698 --0.0645952351695 -0.347745171925 --0.0555180372583 -0.347804630133 --0.0461001865651 -0.347880394608 --0.036676936049 -0.347877899475 --0.0275890336959 -0.347875101387 --0.0185003855727 -0.34787199702 --0.0094114587918 -0.347870366031 --2.16840434497e-19 -0.34787199702 -0.0094114587918 -0.347875101387 -0.0185003855727 -0.347877899475 -0.0275890336959 -0.347880394608 -0.036676936049 -0.347804630133 -0.0461001865651 -0.347745171925 -0.0555180372583 -0.347779973698 -0.0645952351695 -0.347814492404 -0.0736733723203 -0.347848732234 -0.0827519901685 -0.347725757499 -0.092134880176 -0.347618968734 -0.101509318134 -0.347685300148 -0.110572356777 -0.347751392539 -0.119637576193 -0.347817266305 -0.128704531188 -0.347647489938 -0.138026327653 -0.34749367377 -0.14733666834 -0.347591304042 -0.156383309829 -0.347688810028 -0.165433421408 -0.347786179708 -0.174486579335 -0.347569923768 -0.183727541225 -0.347369351937 -0.192954103975 -0.347498020556 -0.201982380141 -0.34762670284 -0.211015467292 -0.347755388682 -0.220052972594 -0.347493098433 -0.229194608313 -0.347246145816 -0.238318962132 -0.347405566427 -0.247327223388 -0.347565159292 -0.256341718324 -0.347724920797 -0.265362069175 -0.356757272612 --0.265901351667 -0.356584843314 --0.256862623039 -0.356412612381 --0.247829744844 -0.356240558698 --0.238803080246 -0.356506902586 --0.229661935363 -0.356789789123 --0.220503450041 -0.356650878702 --0.211447396948 -0.356511964604 --0.202395739977 -0.356373072656 --0.193348896545 -0.35658942496 --0.184104660017 -0.356822691648 --0.174845970541 -0.356717548508 --0.165774126621 -0.356612272987 --0.15670530976 -0.356506869373 --0.147639950532 -0.356672822428 --0.138311214439 -0.356855993565 --0.128970984432 -0.356784817075 --0.119885210856 -0.356713407676 --0.110801160721 -0.356641758066 --0.101719285577 -0.356757053482 --0.0923259130888 -0.356889777888 --0.082924052366 -0.356852708126 --0.0738265172616 -0.356815343795 --0.064729450801 -0.356777682982 --0.055633316069 -0.35684198265 --0.0461961756694 -0.356923852338 --0.0367536113825 -0.356921015885 --0.0276467191689 -0.35691785532 --0.018539071498 -0.356914370689 --0.00943113994673 -0.35691254249 -0 -0.356914370689 -0.00943113994673 -0.35691785532 -0.018539071498 -0.356921015885 -0.0276467191689 -0.356923852338 -0.0367536113825 -0.35684198265 -0.0461961756694 -0.356777682982 -0.055633316069 -0.356815343795 -0.064729450801 -0.356852708126 -0.0738265172616 -0.356889777888 -0.082924052366 -0.356757053482 -0.0923259130888 -0.356641758066 -0.101719285577 -0.356713407676 -0.110801160721 -0.356784817075 -0.119885210856 -0.356855993565 -0.128970984432 -0.356672822428 -0.138311214439 -0.356506869373 -0.147639950532 -0.356612272987 -0.15670530976 -0.356717548508 -0.165774126621 -0.356822691648 -0.174845970541 -0.35658942496 -0.184104660017 -0.356373072656 -0.193348896545 -0.356511964604 -0.202395739977 -0.356650878702 -0.211447396948 -0.356789789123 -0.220503450041 -0.356506902586 -0.229661935363 -0.356240558698 -0.238803080246 -0.356412612381 -0.247829744844 -0.356584843314 -0.256862623039 -0.356757272612 -0.265901351667 -0.365558020549 --0.264943758707 -0.365397583892 --0.255939063157 -0.36523732978 --0.246940150083 -0.365077222806 --0.237947376881 -0.365325227778 --0.228834052091 -0.36558865133 --0.219703411783 -0.365459442912 --0.210681225743 -0.365330226782 --0.201663384125 -0.36520101215 --0.192650299689 -0.365402401283 --0.183436129649 -0.365619562785 --0.174207529989 -0.365521816454 --0.165169444582 -0.365423935166 --0.156134350958 -0.365325939383 --0.147102683202 -0.36548034851 --0.137805844793 -0.365650791603 --0.128497527761 -0.365584685136 --0.119445459288 -0.365518366329 --0.110395102485 -0.36545183331 --0.101346897892 -0.365558986982 --0.0919867945877 -0.365682367799 --0.082618230146 -0.365648055553 --0.0735544083387 -0.365613468096 --0.0644910541512 -0.365578594795 --0.0554286234186 -0.365638219399 --0.0460256520825 -0.365714208647 --0.0366172837493 -0.365711782521 --0.0275441556661 -0.365709058302 --0.018470290165 -0.365706027653 --0.0093961491204 -0.365704432274 --2.16840434497e-19 -0.365706027653 -0.0093961491204 -0.365709058302 -0.018470290165 -0.365711782521 -0.0275441556661 -0.365714208647 -0.0366172837493 -0.365638219399 -0.0460256520825 -0.365578594795 -0.0554286234186 -0.365613468096 -0.0644910541512 -0.365648055553 -0.0735544083387 -0.365682367799 -0.082618230146 -0.365558986982 -0.0919867945877 -0.36545183331 -0.101346897892 -0.365518366329 -0.110395102485 -0.365584685136 -0.119445459288 -0.365650791603 -0.128497527761 -0.36548034851 -0.137805844793 -0.365325939383 -0.147102683202 -0.365423935166 -0.156134350958 -0.365521816454 -0.165169444582 -0.365619562785 -0.174207529989 -0.365402401283 -0.183436129649 -0.36520101215 -0.192650299689 -0.365330226782 -0.201663384125 -0.365459442912 -0.210681225743 -0.36558865133 -0.219703411783 -0.365325227778 -0.228834052091 -0.365077222806 -0.237947376881 -0.36523732978 -0.246940150083 -0.365397583892 -0.255939063157 -0.365558020549 -0.264943758707 -0.374332491483 --0.264019018376 -0.374184158405 --0.255047225491 -0.374035977857 --0.24608114617 -0.373887933071 --0.237121126334 -0.374117425826 --0.228034613887 -0.374361208534 --0.218930795129 -0.374241797176 --0.209941335889 -0.374122359763 --0.200956169136 -0.374002919455 --0.191975700187 -0.374189228512 --0.182790547081 -0.37439014371 --0.173590971459 -0.374299859429 --0.16458549304 -0.374209439952 --0.155582971909 -0.374118911154 --0.146583840399 -0.374261676892 --0.137317799952 -0.374419289896 --0.128040293551 -0.374358299386 --0.119020772734 -0.374297109072 --0.110002950991 -0.374235725275 --0.100987260166 -0.374334658445 --0.0916592998842 -0.374448639351 --0.0823229048267 -0.374417114723 --0.0732916314001 -0.374385308886 --0.0642608234907 -0.374353239451 --0.055230933862 -0.374408147872 --0.0458609887878 -0.374478212158 --0.0364856706291 -0.374476212559 --0.0274451395804 -0.374473935986 --0.0184038883802 -0.374471362461 --0.00936236887826 -0.374470001464 -0 -0.374471362461 -0.00936236887826 -0.374473935986 -0.0184038883802 -0.374476212559 -0.0274451395804 -0.374478212158 -0.0364856706291 -0.374408147872 -0.0458609887878 -0.374353239451 -0.055230933862 -0.374385308886 -0.0642608234907 -0.374417114723 -0.0732916314001 -0.374448639351 -0.0823229048267 -0.374334658445 -0.0916592998842 -0.374235725275 -0.100987260166 -0.374297109072 -0.110002950991 -0.374358299386 -0.119020772734 -0.374419289896 -0.128040293551 -0.374261676892 -0.137317799952 -0.374118911154 -0.146583840399 -0.374209439952 -0.155582971909 -0.374299859429 -0.16458549304 -0.37439014371 -0.173590971459 -0.374189228512 -0.182790547081 -0.374002919455 -0.191975700187 -0.374122359763 -0.200956169136 -0.374241797176 -0.209941335889 -0.374361208534 -0.218930795129 -0.374117425826 -0.228034613887 -0.373887933071 -0.237121126334 -0.374035977857 -0.24608114617 -0.374184158405 -0.255047225491 -0.374332491483 -0.264019018376 -0.383355461543 --0.219438023249 -0.38322598326 --0.210427672928 -0.383096493354 --0.201421605927 -0.382966998103 --0.192420217166 -0.383168841328 --0.183215170602 -0.383386507335 --0.173995643974 -0.383288582201 --0.164969108557 -0.383190506714 --0.155945517498 -0.383092307232 --0.146925298748 -0.383247037372 --0.137638564792 -0.383417844867 --0.128340320544 -0.383351636319 --0.11929960232 -0.383285225747 --0.110260565943 -0.383218585458 --0.101223648672 -0.383325880794 --0.0918743940199 -0.38344949406 --0.0825166692656 -0.383415194709 --0.0734640849346 -0.383380581515 --0.0644119505479 -0.383345688702 --0.0553607250209 -0.383405351719 --0.0459690863836 -0.383481428044 --0.0365720523 -0.383479100254 --0.0275101287792 -0.383476463485 --0.0184474725428 -0.383473514929 --0.00938454192642 -0.383471967669 -0 -0.383473514929 -0.00938454192642 -0.383476463485 -0.0184474725428 -0.383479100254 -0.0275101287792 -0.383481428044 -0.0365720523 -0.383405351719 -0.0459690863836 -0.383345688702 -0.0553607250209 -0.383380581515 -0.0644119505479 -0.383415194709 -0.0734640849346 -0.38344949406 -0.0825166692656 -0.383325880794 -0.0918743940199 -0.383218585458 -0.101223648672 -0.383285225747 -0.110260565943 -0.383351636319 -0.11929960232 -0.383417844867 -0.128340320544 -0.383247037372 -0.137638564792 -0.383092307232 -0.146925298748 -0.383190506714 -0.155945517498 -0.383288582201 -0.164969108557 -0.383386507335 -0.173995643974 -0.383168841328 -0.183215170602 -0.382966998103 -0.192420217166 -0.383096493354 -0.201421605927 -0.38322598326 -0.210427672928 -0.383355461543 -0.219438023249 -0.392363274975 --0.219947418843 -0.39222371765 --0.210916108398 -0.392084157409 --0.201889065689 -0.391944581046 --0.192866684998 -0.392161978041 --0.183641637913 -0.39239642204 --0.174402052928 -0.392290845697 --0.165354384606 -0.392185098316 --0.156309644438 -0.392079211827 --0.147268258916 -0.392245936562 --0.137960719094 -0.392429962702 --0.128641624053 -0.39235852524 --0.119579633309 -0.392286863721 --0.110519304829 -0.392214961513 --0.101461081062 -0.392330654308 --0.0920904165832 -0.392463894915 --0.0827112382306 -0.392426800465 --0.0736372594136 -0.392389393632 --0.0645637212255 -0.392351686004 --0.0554910821289 -0.392416110506 --0.0460776293857 -0.392498204654 --0.0366587576456 -0.392495539043 --0.0275753608312 -0.392492532618 --0.0184912192771 -0.392489196252 --0.00940679729692 -0.392487459181 -0 -0.392489196252 -0.00940679729692 -0.392492532618 -0.0184912192771 -0.392495539043 -0.0275753608312 -0.392498204654 -0.0366587576456 -0.392416110506 -0.0460776293857 -0.392351686004 -0.0554910821289 -0.392389393632 -0.0645637212255 -0.392426800465 -0.0736372594136 -0.392463894915 -0.0827112382306 -0.392330654308 -0.0920904165832 -0.392214961513 -0.101461081062 -0.392286863721 -0.110519304829 -0.39235852524 -0.119579633309 -0.392429962702 -0.128641624053 -0.392245936562 -0.137960719094 -0.392079211827 -0.147268258916 -0.392185098316 -0.156309644438 -0.392290845697 -0.165354384606 -0.39239642204 -0.174402052928 -0.392161978041 -0.183641637913 -0.391944581046 -0.192866684998 -0.392084157409 -0.201889065689 -0.39222371765 -0.210916108398 -0.392363274975 -0.219947418843 -0.401384384469 --0.220459013968 -0.401234732054 --0.211406673167 -0.401085068122 --0.202358568892 -0.400935382782 --0.193315118551 -0.401168387605 --0.184069972977 -0.401419637028 --0.174810222373 -0.401306369068 --0.165741345623 -0.401192940599 --0.156675375937 -0.401079363821 --0.147612748826 -0.401258088386 --0.138284288904 -0.401455364036 --0.12894422573 -0.40137870232 --0.119860883797 -0.401301770995 --0.110779181101 -0.401224602254 --0.1016995729 -0.401348708507 --0.0923073740248 -0.401491576065 --0.0829066222285 -0.401451684586 --0.0738111722517 -0.401411475598 --0.0647161484081 -0.40137093684 --0.0556220151431 -0.401440139158 --0.0461866258209 -0.401528278013 --0.036745791605 -0.401525270531 --0.0276408390871 -0.401521902204 --0.0185351313067 -0.401518186144 --0.00942913730454 -0.401516244302 -2.16840434497e-19 -0.401518186144 -0.00942913730454 -0.401521902204 -0.0185351313067 -0.401525270531 -0.0276408390871 -0.401528278013 -0.036745791605 -0.401440139158 -0.0461866258209 -0.40137093684 -0.0556220151431 -0.401411475598 -0.0647161484081 -0.401451684586 -0.0738111722517 -0.401491576065 -0.0829066222285 -0.401348708507 -0.0923073740248 -0.401224602254 -0.1016995729 -0.401301770995 -0.110779181101 -0.40137870232 -0.119860883797 -0.401455364036 -0.12894422573 -0.401258088386 -0.138284288904 -0.401079363821 -0.147612748826 -0.401192940599 -0.156675375937 -0.401306369068 -0.165741345623 -0.401419637028 -0.174810222373 -0.401168387605 -0.184069972977 -0.400935382782 -0.193315118551 -0.401085068122 -0.202358568892 -0.401234732054 -0.211406673167 -0.401384384469 -0.220459013968 -0.41009473881 --0.128419202349 -0.41002329297 --0.119373218514 -0.409951595521 --0.110328863448 -0.409879658335 --0.101286573382 -0.409995416794 --0.0919313066824 -0.410128726126 --0.082567521339 -0.41009165461 --0.0735094386816 -0.41005428615 --0.0644517834241 -0.410016600788 --0.0553950085828 -0.410080974771 --0.0459975507229 -0.410163077344 --0.0365946809162 -0.410160491999 --0.0275271548648 -0.410157558615 --0.0184588914283 -0.410154317665 --0.00939035198173 -0.410152613004 -0 -0.410154317665 -0.00939035198173 -0.410157558615 -0.0184588914283 -0.410160491999 -0.0275271548648 -0.410163077344 -0.0365946809162 -0.410080974771 -0.0459975507229 -0.410016600788 -0.0553950085828 -0.41005428615 -0.0644517834241 -0.41009165461 -0.0735094386816 -0.410128726126 -0.082567521339 -0.409995416794 -0.0919313066824 -0.409879658335 -0.101286573382 -0.409951595521 -0.110328863448 -0.41002329297 -0.119373218514 -0.41009473881 -0.128419202349 -0.418705039499 --0.127909580671 -0.418638860928 --0.118899858163 -0.418572459355 --0.109891750727 -0.418505804701 --0.100885679196 -0.4186131322 --0.09156627982 -0.418736800937 --0.0822383873074 -0.418702567301 --0.0732165620209 -0.418668057162 --0.0641951679709 -0.418633263362 --0.0551746470402 -0.418692781454 --0.0458140397756 -0.418768778522 --0.0364480489219 -0.418766607157 --0.0274168396857 -0.418764121024 --0.0183849116393 -0.4187613401 --0.00935271598039 -0.41875986503 -0 -0.4187613401 -0.00935271598039 -0.418764121024 -0.0183849116393 -0.418766607157 -0.0274168396857 -0.418768778522 -0.0364480489219 -0.418692781454 -0.0458140397756 -0.418633263362 -0.0551746470402 -0.418668057162 -0.0641951679709 -0.418702567301 -0.0732165620209 -0.418736800937 -0.0822383873074 -0.4186131322 -0.09156627982 -0.418505804701 -0.100885679196 -0.418572459355 -0.109891750727 -0.418638860928 -0.118899858163 -0.418705039499 -0.127909580671 -0.42772069843 --0.0824546304453 -0.427683726166 --0.0734090328885 -0.427646457882 --0.0643638472548 -0.427608883285 --0.0553195257678 -0.427673082379 --0.0459346749945 -0.427754997919 --0.0365444136292 -0.427752498045 --0.0274893383098 -0.42774968085 --0.0184335323263 -0.427746526053 --0.00937745141073 -0.427744848909 -0 -0.427746526053 -0.00937745141073 -0.42774968085 -0.0184335323263 -0.427752498045 -0.0274893383098 -0.427754997919 -0.0365444136292 -0.427673082379 -0.0459346749945 -0.427608883285 -0.0553195257678 -0.427646457882 -0.0643638472548 -0.427683726166 -0.0734090328885 -0.42772069843 -0.0824546304453 -0.436720068262 --0.082671904706 -0.436680371294 --0.0736024313247 -0.436640325593 --0.0645333515411 -0.436599952455 --0.0554651263885 -0.436668843324 --0.046055883989 -0.436756690748 --0.0366412029928 -0.43675387234 --0.0275621570739 -0.436750703022 --0.0184823674286 -0.436747182825 --0.00940229597992 -0.436745332885 --2.16840434497e-19 -0.436747182825 -0.00940229597992 -0.436750703022 -0.0184823674286 -0.43675387234 -0.0275621570739 -0.436756690748 -0.0366412029928 -0.436668843324 -0.046055883989 -0.436599952455 -0.0554651263885 -0.436640325593 -0.0645333515411 -0.436680371294 -0.0736024313247 -0.436720068262 -0.082671904706 -0.445734696637 --0.0828902302899 -0.445692247811 --0.0737967733504 -0.445649417478 --0.064703695363 -0.445606239297 --0.0556114589397 -0.445679863006 --0.0461776751127 -0.445773675836 --0.0367384257144 -0.445770527198 --0.0276353019696 -0.445766983934 --0.0185314209562 -0.445763067015 --0.00942725128817 -0.445761023272 --2.16840434497e-19 -0.445763067015 -0.00942725128817 -0.445766983934 -0.0185314209562 -0.445770527198 -0.0276353019696 -0.445773675836 -0.0367384257144 -0.445679863006 -0.0461776751127 -0.445606239297 -0.0556114589397 -0.445649417478 -0.064703695363 -0.445692247811 -0.0737967733504 -0.445734696637 -0.0828902302899 --0.409995416794 --0.0919313066824 --0.410080974771 --0.0459975507229 --0.410152613004 -0 --0.410080974771 -0.0459975507229 --0.409995416794 -0.0919313066824 --0.365325227778 --0.228834052091 --0.365402401283 --0.183436129649 --0.36548034851 --0.137805844793 --0.365558986982 --0.0919867945877 --0.365638219399 --0.0460256520825 --0.365704432274 --2.16840434497e-19 --0.365638219399 -0.0460256520825 --0.365558986982 -0.0919867945877 --0.36548034851 -0.137805844793 --0.365402401283 -0.183436129649 --0.365325227778 -0.228834052091 --0.320490865517 --0.274122269059 --0.32056082163 --0.228971393051 --0.320631492654 --0.183547841764 --0.320702765438 --0.137890886196 --0.320774623818 --0.0920442467726 --0.320846982601 --0.046054709568 --0.320907354095 -2.16840434497e-19 --0.320846982601 -0.046054709568 --0.320774623818 -0.0920442467726 --0.320702765438 -0.137890886196 --0.320631492654 -0.183547841764 --0.32056082163 -0.228971393051 --0.320490865517 -0.274122269059 --0.275347961655 --0.319159413297 --0.275410476556 --0.27429072797 --0.275473603745 --0.229114122226 --0.275537310898 --0.183663770114 --0.2756014848 --0.1379790344 --0.275666089959 --0.0921037267273 --0.275731100507 --0.0460847562483 --0.27578523136 -0 --0.275731100507 -0.0460847562483 --0.275666089959 -0.0921037267273 --0.2756014848 -0.1379790344 --0.275537310898 -0.183663770114 --0.275473603745 -0.229114122226 --0.275410476556 -0.27429072797 --0.275347961655 -0.319159413297 --0.229927860609 --0.363916788693 --0.229982731598 --0.319360229871 --0.230038115602 --0.274465747101 --0.230093957864 --0.229262238546 --0.230150239999 --0.183783935068 --0.230206862782 --0.138070291722 --0.230263735966 --0.0921652269094 --0.230320897489 --0.046115781938 --0.230368369429 --2.16840434497e-19 --0.230320897489 -0.046115781938 --0.230263735966 -0.0921652269094 --0.230206862782 -0.138070291722 --0.230150239999 -0.183783935068 --0.230093957864 -0.229262238546 --0.230038115602 -0.274465747101 --0.229982731598 -0.319360229871 --0.229927860609 -0.363916788693 --0.184312414879 --0.364149190855 --0.184359883854 --0.319567068605 --0.184407704205 --0.2746458293 --0.184455805558 --0.229414469402 --0.184504155454 --0.183907292043 --0.184552712161 --0.138163870005 --0.184601359408 --0.092228216202 --0.184650171111 --0.0461475222188 --0.184690531942 -0 --0.184650171111 -0.0461475222188 --0.184601359408 -0.092228216202 --0.184552712161 -0.138163870005 --0.184504155454 -0.183907292043 --0.184455805558 -0.229414469402 --0.184407704205 -0.2746458293 --0.184359883854 -0.319567068605 --0.184312414879 -0.364149190855 --0.138473557614 --0.364388681188 --0.138513313019 --0.31977994704 --0.138553251839 --0.274830965635 --0.138593296902 --0.229570807397 --0.138633440187 --0.184033852045 --0.138673595607 --0.138259757174 --0.138713734231 --0.0922926921845 --0.138753863098 --0.0461799762757 --0.13878681032 -0 --0.138753863098 -0.0461799762757 --0.138713734231 -0.0922926921845 --0.138673595607 -0.138259757174 --0.138633440187 -0.184033852045 --0.138593296902 -0.229570807397 --0.138553251839 -0.274830965635 --0.138513313019 -0.31977994704 --0.138473557614 -0.364388681188 --0.0924201889105 --0.408908734125 --0.0924520380861 --0.364636962394 --0.0924838952309 --0.32000042577 --0.0925157491421 --0.275022537825 --0.092547514989 --0.22973241045 --0.0925791915423 --0.184164531586 --0.0926107364696 --0.138358665631 --0.092642115436 --0.0923591238643 --0.092642115436 -0.0923591238643 --0.0926107364696 -0.138358665631 --0.0925791915423 -0.184164531586 --0.092547514989 -0.22973241045 --0.0925157491421 -0.275022537825 --0.0924838952309 -0.32000042577 --0.0924520380861 -0.364636962394 --0.0924201889105 -0.408908734125 --0.04626946149 --0.409191016344 --0.0462933838906 --0.364891673266 --0.0463171279016 --0.320226443793 --0.0463406467448 --0.27521873629 --0.0463639046393 --0.229897766748 --0.0463868831823 --0.184298105837 --0.0464095786505 --0.13845965595 --0.0464095786505 -0.13845965595 --0.0463868831823 -0.184298105837 --0.0463639046393 -0.229897766748 --0.0463406467448 -0.27521873629 --0.0463171279016 -0.320226443793 --0.0462933838906 -0.364891673266 --0.04626946149 -0.409191016344 -0 --0.409440046984 -0 --0.365117029911 -0 --0.320426830896 -0 --0.275392978581 -0 --0.230044720345 -0 --0.184416826485 -0 --0.138549320014 -0 -0.138549320014 -0 -0.184416826485 -0 -0.230044720345 -0 -0.275392978581 -0 -0.320426830896 -0 -0.365117029911 -0 -0.409440046984 -0.04626946149 --0.409191016344 -0.0462933838906 --0.364891673266 -0.0463171279016 --0.320226443793 -0.0463406467448 --0.27521873629 -0.0463639046393 --0.229897766748 -0.0463868831823 --0.184298105837 -0.0464095786505 --0.13845965595 -0.0464095786505 -0.13845965595 -0.0463868831823 -0.184298105837 -0.0463639046393 -0.229897766748 -0.0463406467448 -0.27521873629 -0.0463171279016 -0.320226443793 -0.0462933838906 -0.364891673266 -0.04626946149 -0.409191016344 -0.0924201889105 --0.408908734125 -0.0924520380861 --0.364636962394 -0.0924838952309 --0.32000042577 -0.0925157491421 --0.275022537825 -0.092547514989 --0.22973241045 -0.0925791915423 --0.184164531586 -0.0926107364696 --0.138358665631 -0.092642115436 --0.0923591238643 -0.092642115436 -0.0923591238643 -0.0926107364696 -0.138358665631 -0.0925791915423 -0.184164531586 -0.092547514989 -0.22973241045 -0.0925157491421 -0.275022537825 -0.0924838952309 -0.32000042577 -0.0924520380861 -0.364636962394 -0.0924201889105 -0.408908734125 -0.138473557614 --0.364388681188 -0.138513313019 --0.31977994704 -0.138553251839 --0.274830965635 -0.138593296902 --0.229570807397 -0.138633440187 --0.184033852045 -0.138673595607 --0.138259757174 -0.138713734231 --0.0922926921845 -0.138753863098 --0.0461799762757 -0.13878681032 -0 -0.138753863098 -0.0461799762757 -0.138713734231 -0.0922926921845 -0.138673595607 -0.138259757174 -0.138633440187 -0.184033852045 -0.138593296902 -0.229570807397 -0.138553251839 -0.274830965635 -0.138513313019 -0.31977994704 -0.138473557614 -0.364388681188 -0.184312414879 --0.364149190855 -0.184359883854 --0.319567068605 -0.184407704205 --0.2746458293 -0.184455805558 --0.229414469402 -0.184504155454 --0.183907292043 -0.184552712161 --0.138163870005 -0.184601359408 --0.092228216202 -0.184650171111 --0.0461475222188 -0.184690531942 -0 -0.184650171111 -0.0461475222188 -0.184601359408 -0.092228216202 -0.184552712161 -0.138163870005 -0.184504155454 -0.183907292043 -0.184455805558 -0.229414469402 -0.184407704205 -0.2746458293 -0.184359883854 -0.319567068605 -0.184312414879 -0.364149190855 -0.229927860609 --0.363916788693 -0.229982731598 --0.319360229871 -0.230038115602 --0.274465747101 -0.230093957864 --0.229262238546 -0.230150239999 --0.183783935068 -0.230206862782 --0.138070291722 -0.230263735966 --0.0921652269094 -0.230320897489 --0.046115781938 -0.230368369429 --2.16840434497e-19 -0.230320897489 -0.046115781938 -0.230263735966 -0.0921652269094 -0.230206862782 -0.138070291722 -0.230150239999 -0.183783935068 -0.230093957864 -0.229262238546 -0.230038115602 -0.274465747101 -0.229982731598 -0.319360229871 -0.229927860609 -0.363916788693 -0.275347961655 --0.319159413297 -0.275410476556 --0.27429072797 -0.275473603745 --0.229114122226 -0.275537310898 --0.183663770114 -0.2756014848 --0.1379790344 -0.275666089959 --0.0921037267273 -0.275731100507 --0.0460847562483 -0.27578523136 -0 -0.275731100507 -0.0460847562483 -0.275666089959 -0.0921037267273 -0.2756014848 -0.1379790344 -0.275537310898 -0.183663770114 -0.275473603745 -0.229114122226 -0.275410476556 -0.27429072797 -0.275347961655 -0.319159413297 -0.320490865517 --0.274122269059 -0.32056082163 --0.228971393051 -0.320631492654 --0.183547841764 -0.320702765438 --0.137890886196 -0.320774623818 --0.0920442467726 -0.320846982601 --0.046054709568 -0.320907354095 -2.16840434497e-19 -0.320846982601 -0.046054709568 -0.320774623818 -0.0920442467726 -0.320702765438 -0.137890886196 -0.320631492654 -0.183547841764 -0.32056082163 -0.228971393051 -0.320490865517 -0.274122269059 -0.365325227778 --0.228834052091 -0.365402401283 --0.183436129649 -0.36548034851 --0.137805844793 -0.365558986982 --0.0919867945877 -0.365638219399 --0.0460256520825 -0.365704432274 --2.16840434497e-19 -0.365638219399 -0.0460256520825 -0.365558986982 -0.0919867945877 -0.36548034851 -0.137805844793 -0.365402401283 -0.183436129649 -0.365325227778 -0.228834052091 -0.409995416794 --0.0919313066824 -0.410080974771 --0.0459975507229 -0.410152613004 -0 -0.410080974771 -0.0459975507229 -0.409995416794 -0.0919313066824 --0.409995416794 --0.0919313066824 --0.410080974771 --0.0459975507229 --0.410152613004 -0 --0.410080974771 -0.0459975507229 --0.409995416794 -0.0919313066824 --0.365325227778 --0.228834052091 --0.365402401283 --0.183436129649 --0.36548034851 --0.137805844793 --0.365558986982 --0.0919867945877 --0.365638219399 --0.0460256520825 --0.365704432274 --2.16840434497e-19 --0.365638219399 -0.0460256520825 --0.365558986982 -0.0919867945877 --0.36548034851 -0.137805844793 --0.365402401283 -0.183436129649 --0.365325227778 -0.228834052091 --0.320490865517 --0.274122269059 --0.32056082163 --0.228971393051 --0.320631492654 --0.183547841764 --0.320702765438 --0.137890886196 --0.320774623818 --0.0920442467726 --0.320846982601 --0.046054709568 --0.320907354095 -2.16840434497e-19 --0.320846982601 -0.046054709568 --0.320774623818 -0.0920442467726 --0.320702765438 -0.137890886196 --0.320631492654 -0.183547841764 --0.32056082163 -0.228971393051 --0.320490865517 -0.274122269059 --0.275347961655 --0.319159413297 --0.275410476556 --0.27429072797 --0.275473603745 --0.229114122226 --0.275537310898 --0.183663770114 --0.2756014848 --0.1379790344 --0.275666089959 --0.0921037267273 --0.275731100507 --0.0460847562483 --0.27578523136 -0 --0.275731100507 -0.0460847562483 --0.275666089959 -0.0921037267273 --0.2756014848 -0.1379790344 --0.275537310898 -0.183663770114 --0.275473603745 -0.229114122226 --0.275410476556 -0.27429072797 --0.275347961655 -0.319159413297 --0.229927860609 --0.363916788693 --0.229982731598 --0.319360229871 --0.230038115602 --0.274465747101 --0.230093957864 --0.229262238546 --0.230150239999 --0.183783935068 --0.230206862782 --0.138070291722 --0.230263735966 --0.0921652269094 --0.230320897489 --0.046115781938 --0.230368369429 --2.16840434497e-19 --0.230320897489 -0.046115781938 --0.230263735966 -0.0921652269094 --0.230206862782 -0.138070291722 --0.230150239999 -0.183783935068 --0.230093957864 -0.229262238546 --0.230038115602 -0.274465747101 --0.229982731598 -0.319360229871 --0.229927860609 -0.363916788693 --0.184312414879 --0.364149190855 --0.184359883854 --0.319567068605 --0.184407704205 --0.2746458293 --0.184455805558 --0.229414469402 --0.184504155454 --0.183907292043 --0.184552712161 --0.138163870005 --0.184601359408 --0.092228216202 --0.184650171111 --0.0461475222188 --0.184690531942 -0 --0.184650171111 -0.0461475222188 --0.184601359408 -0.092228216202 --0.184552712161 -0.138163870005 --0.184504155454 -0.183907292043 --0.184455805558 -0.229414469402 --0.184407704205 -0.2746458293 --0.184359883854 -0.319567068605 --0.184312414879 -0.364149190855 --0.138473557614 --0.364388681188 --0.138513313019 --0.31977994704 --0.138553251839 --0.274830965635 --0.138593296902 --0.229570807397 --0.138633440187 --0.184033852045 --0.138673595607 --0.138259757174 --0.138713734231 --0.0922926921845 --0.138753863098 --0.0461799762757 --0.13878681032 -0 --0.138753863098 -0.0461799762757 --0.138713734231 -0.0922926921845 --0.138673595607 -0.138259757174 --0.138633440187 -0.184033852045 --0.138593296902 -0.229570807397 --0.138553251839 -0.274830965635 --0.138513313019 -0.31977994704 --0.138473557614 -0.364388681188 --0.0924201889105 --0.408908734125 --0.0924520380861 --0.364636962394 --0.0924838952309 --0.32000042577 --0.0925157491421 --0.275022537825 --0.092547514989 --0.22973241045 --0.0925791915423 --0.184164531586 --0.0926107364696 --0.138358665631 --0.092642115436 --0.0923591238643 --0.092642115436 -0.0923591238643 --0.0926107364696 -0.138358665631 --0.0925791915423 -0.184164531586 --0.092547514989 -0.22973241045 --0.0925157491421 -0.275022537825 --0.0924838952309 -0.32000042577 --0.0924520380861 -0.364636962394 --0.0924201889105 -0.408908734125 --0.04626946149 --0.409191016344 --0.0462933838906 --0.364891673266 --0.0463171279016 --0.320226443793 --0.0463406467448 --0.27521873629 --0.0463639046393 --0.229897766748 --0.0463868831823 --0.184298105837 --0.0464095786505 --0.13845965595 --0.0464095786505 -0.13845965595 --0.0463868831823 -0.184298105837 --0.0463639046393 -0.229897766748 --0.0463406467448 -0.27521873629 --0.0463171279016 -0.320226443793 --0.0462933838906 -0.364891673266 --0.04626946149 -0.409191016344 -0 --0.409440046984 -0 --0.365117029911 -0 --0.320426830896 -0 --0.275392978581 -0 --0.230044720345 -0 --0.184416826485 -0 --0.138549320014 -0 -0.138549320014 -0 -0.184416826485 -0 -0.230044720345 -0 -0.275392978581 -0 -0.320426830896 -0 -0.365117029911 -0 -0.409440046984 -0.04626946149 --0.409191016344 -0.0462933838906 --0.364891673266 -0.0463171279016 --0.320226443793 -0.0463406467448 --0.27521873629 -0.0463639046393 --0.229897766748 -0.0463868831823 --0.184298105837 -0.0464095786505 --0.13845965595 -0.0464095786505 -0.13845965595 -0.0463868831823 -0.184298105837 -0.0463639046393 -0.229897766748 -0.0463406467448 -0.27521873629 -0.0463171279016 -0.320226443793 -0.0462933838906 -0.364891673266 -0.04626946149 -0.409191016344 -0.0924201889105 --0.408908734125 -0.0924520380861 --0.364636962394 -0.0924838952309 --0.32000042577 -0.0925157491421 --0.275022537825 -0.092547514989 --0.22973241045 -0.0925791915423 --0.184164531586 -0.0926107364696 --0.138358665631 -0.092642115436 --0.0923591238643 -0.092642115436 -0.0923591238643 -0.0926107364696 -0.138358665631 -0.0925791915423 -0.184164531586 -0.092547514989 -0.22973241045 -0.0925157491421 -0.275022537825 -0.0924838952309 -0.32000042577 -0.0924520380861 -0.364636962394 -0.0924201889105 -0.408908734125 -0.138473557614 --0.364388681188 -0.138513313019 --0.31977994704 -0.138553251839 --0.274830965635 -0.138593296902 --0.229570807397 -0.138633440187 --0.184033852045 -0.138673595607 --0.138259757174 -0.138713734231 --0.0922926921845 -0.138753863098 --0.0461799762757 -0.13878681032 -0 -0.138753863098 -0.0461799762757 -0.138713734231 -0.0922926921845 -0.138673595607 -0.138259757174 -0.138633440187 -0.184033852045 -0.138593296902 -0.229570807397 -0.138553251839 -0.274830965635 -0.138513313019 -0.31977994704 -0.138473557614 -0.364388681188 -0.184312414879 --0.364149190855 -0.184359883854 --0.319567068605 -0.184407704205 --0.2746458293 -0.184455805558 --0.229414469402 -0.184504155454 --0.183907292043 -0.184552712161 --0.138163870005 -0.184601359408 --0.092228216202 -0.184650171111 --0.0461475222188 -0.184690531942 -0 -0.184650171111 -0.0461475222188 -0.184601359408 -0.092228216202 -0.184552712161 -0.138163870005 -0.184504155454 -0.183907292043 -0.184455805558 -0.229414469402 -0.184407704205 -0.2746458293 -0.184359883854 -0.319567068605 -0.184312414879 -0.364149190855 -0.229927860609 --0.363916788693 -0.229982731598 --0.319360229871 -0.230038115602 --0.274465747101 -0.230093957864 --0.229262238546 -0.230150239999 --0.183783935068 -0.230206862782 --0.138070291722 -0.230263735966 --0.0921652269094 -0.230320897489 --0.046115781938 -0.230368369429 --2.16840434497e-19 -0.230320897489 -0.046115781938 -0.230263735966 -0.0921652269094 -0.230206862782 -0.138070291722 -0.230150239999 -0.183783935068 -0.230093957864 -0.229262238546 -0.230038115602 -0.274465747101 -0.229982731598 -0.319360229871 -0.229927860609 -0.363916788693 -0.275347961655 --0.319159413297 -0.275410476556 --0.27429072797 -0.275473603745 --0.229114122226 -0.275537310898 --0.183663770114 -0.2756014848 --0.1379790344 -0.275666089959 --0.0921037267273 -0.275731100507 --0.0460847562483 -0.27578523136 -0 -0.275731100507 -0.0460847562483 -0.275666089959 -0.0921037267273 -0.2756014848 -0.1379790344 -0.275537310898 -0.183663770114 -0.275473603745 -0.229114122226 -0.275410476556 -0.27429072797 -0.275347961655 -0.319159413297 -0.320490865517 --0.274122269059 -0.32056082163 --0.228971393051 -0.320631492654 --0.183547841764 -0.320702765438 --0.137890886196 -0.320774623818 --0.0920442467726 -0.320846982601 --0.046054709568 -0.320907354095 -2.16840434497e-19 -0.320846982601 -0.046054709568 -0.320774623818 -0.0920442467726 -0.320702765438 -0.137890886196 -0.320631492654 -0.183547841764 -0.32056082163 -0.228971393051 -0.320490865517 -0.274122269059 -0.365325227778 --0.228834052091 -0.365402401283 --0.183436129649 -0.36548034851 --0.137805844793 -0.365558986982 --0.0919867945877 -0.365638219399 --0.0460256520825 -0.365704432274 --2.16840434497e-19 -0.365638219399 -0.0460256520825 -0.365558986982 -0.0919867945877 -0.36548034851 -0.137805844793 -0.365402401283 -0.183436129649 -0.365325227778 -0.228834052091 -0.409995416794 --0.0919313066824 -0.410080974771 --0.0459975507229 -0.410152613004 -0 -0.410080974771 -0.0459975507229 -0.409995416794 -0.0919313066824 -0 -0 -0 -0 diff --git a/HiggsAnalysis/Skimming/BuildFile.xml b/HiggsAnalysis/Skimming/BuildFile.xml deleted file mode 100644 index c7d15503d12cd..0000000000000 --- a/HiggsAnalysis/Skimming/BuildFile.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/HiggsAnalysis/Skimming/interface/HeavyChHiggsToTauNuSkim.h b/HiggsAnalysis/Skimming/interface/HeavyChHiggsToTauNuSkim.h deleted file mode 100644 index a2b4cd3ad112a..0000000000000 --- a/HiggsAnalysis/Skimming/interface/HeavyChHiggsToTauNuSkim.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef HeavyChHiggsToTauNuSkim_h -#define HeavyChHiggsToTauNuSkim_h - -/** \class HeavyChHiggsToTauNuSkim - * - * - * Filter to select events passing - * L1 single tau - * HLT tau+MET - * 3 offline jets - * - * \author Sami Lehti - HIP Helsinki - * - */ - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.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 "DataFormats/BTauReco/interface/IsolatedTauTagInfo.h" -#include "DataFormats/JetReco/interface/CaloJetCollection.h" - -#include - -class HeavyChHiggsToTauNuSkim : public edm::EDFilter { -public: - explicit HeavyChHiggsToTauNuSkim(const edm::ParameterSet&); - ~HeavyChHiggsToTauNuSkim() override; - - bool filter(edm::Event&, const edm::EventSetup&) override; - -private: - double deltaPhi(double phi1, double phi2) { - const double PI = 3.1415926535; - // in ORCA phi = [0,2pi], in TLorentzVector phi = [-pi,pi]. - // With the conversion below deltaPhi works ok despite the - // 2*pi difference in phi definitions. - if (phi1 < 0) - phi1 += 2 * PI; - if (phi2 < 0) - phi2 += 2 * PI; - - double dphi = fabs(phi1 - phi2); - - if (dphi > PI) - dphi = 2 * PI - dphi; - return dphi; - } - - double deltaR(double eta1, double eta2, double phi1, double phi2) { - double dphi = deltaPhi(phi1, phi2); - double deta = fabs(eta1 - eta2); - return sqrt(dphi * dphi + deta * deta); - } - - bool debug; - - edm::EDGetTokenT hltTauToken; - edm::EDGetTokenT jetToken; - int minNumberOfjets; - double jetEtMin; - double jetEtaMin; - double jetEtaMax; - double minDRFromTau; - - int nEvents, nSelectedEvents; -}; -#endif diff --git a/HiggsAnalysis/Skimming/interface/HiggsTo2GammaSkim.h b/HiggsAnalysis/Skimming/interface/HiggsTo2GammaSkim.h deleted file mode 100644 index e2cd2d2218ed1..0000000000000 --- a/HiggsAnalysis/Skimming/interface/HiggsTo2GammaSkim.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef HiggsAnalysis_HiggsTo2GammaSkim -#define HiggsAnalysis_HiggsTo2GammaSkim - -/* \class HiggsTo2GammaSkim - * - * - * Filter to select 2 photon events based on the - * 1 or 2 photon HLT trigger, - * - * \author Kati Lassila-Perini - Helsinki Institute of Physics - * - */ - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.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 - -class HiggsTo2GammaSkim : public edm::EDFilter { -public: - // Constructor - explicit HiggsTo2GammaSkim(const edm::ParameterSet&); - - // Destructor - ~HiggsTo2GammaSkim() override; - - /// Get event properties to send to builder to fill seed collection - bool filter(edm::Event&, const edm::EventSetup&) override; - -private: - int nEvents, nSelectedEvents; - - bool debug; - float photon1MinPt; - float photon2MinPt; - int nPhotonMin; - - // Reco samples - edm::EDGetTokenT thePhotonToken; -}; - -#endif diff --git a/HiggsAnalysis/Skimming/interface/HiggsToWW2LeptonsSkim.h b/HiggsAnalysis/Skimming/interface/HiggsToWW2LeptonsSkim.h deleted file mode 100644 index 28f0464b4e674..0000000000000 --- a/HiggsAnalysis/Skimming/interface/HiggsToWW2LeptonsSkim.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef HiggsToWW2LeptonsSkim_h -#define HiggsToWW2LeptonsSkim_h - -/** \class HWWFilter - * - * - * This class is an EDFilter choosing reconstructed di-tracks - * - * - * \author Ezio Torassa - INFN Padova - * - */ - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" - -class HiggsToWW2LeptonsSkim : public edm::EDFilter { -public: - explicit HiggsToWW2LeptonsSkim(const edm::ParameterSet&); - ~HiggsToWW2LeptonsSkim() override; - void endJob() override; - - bool filter(edm::Event&, const edm::EventSetup&) override; - -private: - double singleTrackPtMin_; - double diTrackPtMin_; - double etaMin_; - double etaMax_; - unsigned int nEvents_; - unsigned int nAccepted_; - - // Reco samples - edm::EDGetTokenT theGLBMuonToken; - edm::EDGetTokenT theGsfEToken; -}; -#endif diff --git a/HiggsAnalysis/Skimming/interface/HiggsToZZ4LeptonsPreFilter.h b/HiggsAnalysis/Skimming/interface/HiggsToZZ4LeptonsPreFilter.h deleted file mode 100644 index 496f32f91e303..0000000000000 --- a/HiggsAnalysis/Skimming/interface/HiggsToZZ4LeptonsPreFilter.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef HiggsAnalysis_HiggsToZZ4LeptonsPreFilter -#define HiggsAnalysis_HiggsToZZ4LeptonsPreFilter - -/* \class HiggsTo4LeptonsSkim - * - * - * Filter to select 4 lepton events (4e, 4mu, 2e2mu) within - * fiducial volume (|eta| < 2.4) - * - * \author Dominique Fortin - UC Riverside - * - */ - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.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 "DataFormats/HepMCCandidate/interface/GenParticle.h" - -class HiggsToZZ4LeptonsPreFilter : public edm::EDFilter { -public: - // Constructor - explicit HiggsToZZ4LeptonsPreFilter(const edm::ParameterSet&); - - // Destructor - ~HiggsToZZ4LeptonsPreFilter() override; - - /// Get event properties to send to builder to fill seed collection - bool filter(edm::Event&, const edm::EventSetup&) override; - -private: - int evt, ikept; - - bool debug; - int leptonFlavour; - - edm::EDGetTokenT genToken; -}; - -#endif diff --git a/HiggsAnalysis/Skimming/interface/HiggsToZZ4LeptonsSkim.h b/HiggsAnalysis/Skimming/interface/HiggsToZZ4LeptonsSkim.h deleted file mode 100644 index 31afae4f7640c..0000000000000 --- a/HiggsAnalysis/Skimming/interface/HiggsToZZ4LeptonsSkim.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef HiggsAnalysis_HiggsToZZ4LeptonsSkim -#define HiggsAnalysis_HiggsToZZ4LeptonsSkim - -/* \class HiggsTo4LeptonsSkim - * - * - * Filter to select 4 lepton events based on the - * 1 or 2 electron or 1 or 2 muon HLT trigger, - * and four leptons (no flavour requirement). - * No charge requirements are applied on event. - * - * \author Dominique Fortin - UC Riverside - * - */ - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.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 -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" - -class HiggsToZZ4LeptonsSkim : public edm::EDFilter { -public: - // Constructor - explicit HiggsToZZ4LeptonsSkim(const edm::ParameterSet&); - - // Destructor - ~HiggsToZZ4LeptonsSkim() override; - - /// Get event properties to send to builder to fill seed collection - bool filter(edm::Event&, const edm::EventSetup&) override; - -private: - int nEvents, nSelectedEvents; - - bool debug; - float stiffMinPt; - float softMinPt; - int nStiffLeptonMin; - int nLeptonMin; - - // Reco samples - edm::EDGetTokenT theGLBMuonToken; - edm::EDGetTokenT theGsfEToken; -}; - -#endif diff --git a/HiggsAnalysis/Skimming/interface/HiggsToZZ4LeptonsSkimEff.h b/HiggsAnalysis/Skimming/interface/HiggsToZZ4LeptonsSkimEff.h deleted file mode 100644 index 6c196d97a7d13..0000000000000 --- a/HiggsAnalysis/Skimming/interface/HiggsToZZ4LeptonsSkimEff.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef HiggsAnalysis_HiggsToZZ4LeptonsSkimEff -#define HiggsAnalysis_HiggsToZZ4LeptonsSkimEff - -/* \class HiggsTo4LeptonsSkimEff - * - * EDAnalyzer to study the HLT and skim efficiency for signal - * A preselection on the generaged event is built in - * - * \author Dominique Fortin - UC Riverside - * - */ - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/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 "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" - -class HiggsToZZ4LeptonsSkimEff : public edm::EDAnalyzer { -public: - // Constructor - explicit HiggsToZZ4LeptonsSkimEff(const edm::ParameterSet&); - - // Destructor - ~HiggsToZZ4LeptonsSkimEff() override; - - /// Get event properties to send to builder to fill seed collection - void analyze(const edm::Event&, const edm::EventSetup&) override; - -private: - bool debug; - float stiffMinPt; - float softMinPt; - int nStiffLeptonMin; - int nLeptonMin; - - int nEvents, nSelFourE, nSelFourM, nSelTwoETwoM, nSelFourL, nSelTau; - int nFourE, nFourM, nTwoETwoM, nFourL, nTau; - - // Reco samples - edm::EDGetTokenT theGLBMuonToken; - edm::EDGetTokenT theGsfEToken; - edm::EDGetTokenT genToken; -}; - -#endif diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNuOutputModuleAODSIM_cfi.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNuOutputModuleAODSIM_cfi.py deleted file mode 100644 index 57a808cba757c..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNuOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_EventContent_cff import * -heavyChHiggsToTauNuOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - AODSIMEventContent, - heavyChHiggsToTauNuEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('heavyChHiggsToTauNuAODSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('heavyChHiggsToTauNu_AODSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNuOutputModuleRECOSIM_cfi.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNuOutputModuleRECOSIM_cfi.py deleted file mode 100644 index ea9b22c6873b1..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNuOutputModuleRECOSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_EventContent_cff import * -heavyChHiggsToTauNuOutputModuleRECOSIM = cms.OutputModule("PoolOutputModule", - RECOSIMEventContent, - heavyChHiggsToTauNuEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('heavyChHiggsToTauNuRECOSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('heavyChHiggsToTauNu_RECOSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_AODSIM_cff.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_AODSIM_cff.py deleted file mode 100644 index f10460683e027..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_AODSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_EventContent_cff import * -heavyChHiggsToTauNuEventContentAODSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -heavyChHiggsToTauNuEventContentAODSIM.outputCommands.extend(AODSIMEventContent.outputCommands) -heavyChHiggsToTauNuEventContentAODSIM.outputCommands.extend(heavyChHiggsToTauNuEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_EventContent_cff.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_EventContent_cff.py deleted file mode 100644 index 08abe77396901..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -heavyChHiggsToTauNuEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -heavyChHiggsToTauNuEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('heavyChHiggsToTauNuFilterPath') - ) -) - diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_Filter_cfi.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_Filter_cfi.py deleted file mode 100644 index f93202ba81842..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_Filter_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -heavyChHiggsToTauNuFilter = cms.EDFilter("HeavyChHiggsToTauNuSkim", - # Collection to be accessed - HLTTauCollection = cms.InputTag("isolatedL3SingleTau"), - minDRFromTau = cms.double(0.5), - DebugHeavyChHiggsToTauNuSkim = cms.bool(False), - jetEtaMin = cms.double(-2.5), - jetEtaMax = cms.double(2.5), - minNumberOfJets = cms.int32(3), - jetEtMin = cms.double(20.0), - JetTagCollection = cms.InputTag("iterativeCone5CaloJets") -) - - diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_HLTPaths_cfi.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_HLTPaths_cfi.py deleted file mode 100644 index 7d44dc0a55de9..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_HLTPaths_cfi.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -heavyChHiggsToTauNuHLTFilter = copy.deepcopy(hltHighLevel) -heavyChHiggsToTauNuHLTFilter.HLTPaths = ['HLT_IsoTau_MET65_Trk20'] - diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_OutputModule_cff.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_OutputModule_cff.py deleted file mode 100644 index 63f359e07da49..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_OutputModule_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.heavyChHiggsToTauNuOutputModuleAODSIM_cfi import * -from HiggsAnalysis.Skimming.heavyChHiggsToTauNuOutputModuleRECOSIM_cfi import * - diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_RECOSIM_cff.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_RECOSIM_cff.py deleted file mode 100644 index 04b4fc8241c38..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_RECOSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_EventContent_cff import * -heavyChHiggsToTauNuEventContentRECOSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -heavyChHiggsToTauNuEventContentRECOSIM.outputCommands.extend(RECOSIMEventContent.outputCommands) -heavyChHiggsToTauNuEventContentRECOSIM.outputCommands.extend(heavyChHiggsToTauNuEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_Sequences_cff.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_Sequences_cff.py deleted file mode 100644 index 3948f449c9172..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_Sequences_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_HLTPaths_cfi import * -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_Filter_cfi import * -heavyChHiggsToTauNuHLTrigReport = cms.EDAnalyzer("HLTrigReport", - HLTriggerResults = cms.InputTag("TriggerResults") -) - -heavyChHiggsToTauNuSequence = cms.Sequence(heavyChHiggsToTauNuHLTrigReport+heavyChHiggsToTauNuHLTFilter+heavyChHiggsToTauNuFilter) - diff --git a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_SkimPaths_cff.py b/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_SkimPaths_cff.py deleted file mode 100644 index 5fa0ff131508b..0000000000000 --- a/HiggsAnalysis/Skimming/python/heavyChHiggsToTauNu_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.heavyChHiggsToTauNu_Sequences_cff import * -heavyChHiggsToTauNuFilterPath = cms.Path(heavyChHiggsToTauNuSequence) - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2GammaOutputModuleAODSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsTo2GammaOutputModuleAODSIM_cfi.py deleted file mode 100644 index 9d329639b9491..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2GammaOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsTo2Gamma_EventContent_cff import * -higgsTo2GammaOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - higgsTo2GammaEventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsTo2GammaAODSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('hgg_AODSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2GammaOutputModuleRECOSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsTo2GammaOutputModuleRECOSIM_cfi.py deleted file mode 100644 index 698692ce574e0..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2GammaOutputModuleRECOSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsTo2Gamma_EventContent_cff import * -higgsTo2GammaOutputModuleRECOSIM = cms.OutputModule("PoolOutputModule", - RECOSIMEventContent, - higgsTo2GammaEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsTo2Gamma_RECOSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('hgg_RECOSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_AODSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsTo2Gamma_AODSIM_cff.py deleted file mode 100644 index 53f48ffc703ef..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_AODSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsTo2Gamma_EventContent_cff import * -higgsTo2GammaEventContentAODSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsTo2GammaEventContentAODSIM.outputCommands.extend(AODSIMEventContent.outputCommands) -higgsTo2GammaEventContentAODSIM.outputCommands.extend(higgsTo2GammaEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_EventContent_cff.py b/HiggsAnalysis/Skimming/python/higgsTo2Gamma_EventContent_cff.py deleted file mode 100644 index fc15b19381eb5..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -higgsTo2GammaEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsTo2GammaEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('HggFilterPath') - ) -) - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_Filter_cfi.py b/HiggsAnalysis/Skimming/python/higgsTo2Gamma_Filter_cfi.py deleted file mode 100644 index dadbe9ade7c2b..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_Filter_cfi.py +++ /dev/null @@ -1,17 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Entries for H2g skim -# -# Kati Lassila-Perini - Helsinki Institute of Physics -# -higgsTo2GammaFilter = cms.EDFilter("HiggsTo2GammaSkim", - # Collection to be accessed - PhotonCollectionLabel = cms.InputTag("correctedPhotons"), - DebugHiggsTo2GammaSkim = cms.bool(False), - # Minimum number of identified photons above pt threshold - nPhotonMinimum = cms.int32(2), - # Pt threshold for photons - photon1MinimumPt = cms.double(15.0) -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_HLTPaths_cfi.py b/HiggsAnalysis/Skimming/python/higgsTo2Gamma_HLTPaths_cfi.py deleted file mode 100644 index 81d8cc45eaabe..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_HLTPaths_cfi.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -higgsTo2GammaHLTFilter = copy.deepcopy(hltHighLevel) -higgsTo2GammaHLTFilter.HLTPaths = ['HLT_IsoPhoton30_L1I', 'HLT_IsoPhoton40_L1R', 'HLT_DoubleIsoPhoton20_L1I', 'HLT_DoubleIsoPhoton20_L1R'] - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_OutputModule_cff.py b/HiggsAnalysis/Skimming/python/higgsTo2Gamma_OutputModule_cff.py deleted file mode 100644 index 7356a642f995b..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_OutputModule_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsTo2GammaOutputModuleAODSIM_cfi import * -from HiggsAnalysis.Skimming.higgsTo2GammaOutputModuleRECOSIM_cfi import * - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_RECOSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsTo2Gamma_RECOSIM_cff.py deleted file mode 100644 index f9b166bb1a86b..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_RECOSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsTo2Gamma_EventContent_cff import * -higgsTo2GammaEventContentRECOSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsTo2GammaEventContentRECOSIM.outputCommands.extend(RECOSIMEventContent.outputCommands) -higgsTo2GammaEventContentRECOSIM.outputCommands.extend(higgsTo2GammaEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_Sequences_cff.py b/HiggsAnalysis/Skimming/python/higgsTo2Gamma_Sequences_cff.py deleted file mode 100644 index f285c5a69c4d1..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_Sequences_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsTo2Gamma_HLTPaths_cfi import * -from HiggsAnalysis.Skimming.higgsTo2Gamma_Filter_cfi import * -higgsTo2GammaHLTrigReport = cms.EDAnalyzer("HLTrigReport", - HLTriggerResults = cms.InputTag("TriggerResults") -) - -higgsTo2GammaSequence = cms.Sequence(higgsTo2GammaHLTrigReport+higgsTo2GammaHLTFilter+higgsTo2GammaFilter) - diff --git a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_SkimPaths_cff.py b/HiggsAnalysis/Skimming/python/higgsTo2Gamma_SkimPaths_cff.py deleted file mode 100644 index a35f362bb411e..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsTo2Gamma_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsTo2Gamma_Sequences_cff import * -HggFilterPath = cms.Path(higgsTo2GammaSequence) - diff --git a/HiggsAnalysis/Skimming/python/higgsToInvisibleOutputModuleAODSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsToInvisibleOutputModuleAODSIM_cfi.py deleted file mode 100644 index 01c5e880f7aa9..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToInvisibleOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToInvisible_EventContent_cff import * -higgsToInvisibleOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - higgsToInvisibleEventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsToInvisibleAODSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('hToInvis_AODSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToInvisibleOutputModuleRECOSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsToInvisibleOutputModuleRECOSIM_cfi.py deleted file mode 100644 index 0310a165770f3..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToInvisibleOutputModuleRECOSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToInvisible_EventContent_cff import * -higgsToInvisibleOutputModuleRECOSIM = cms.OutputModule("PoolOutputModule", - RECOSIMEventContent, - higgsToInvisibleEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsToInvisibleRECOSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('hToInvis_RECOSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToInvisible_AODSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsToInvisible_AODSIM_cff.py deleted file mode 100644 index b7a258db15948..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToInvisible_AODSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToInvisible_EventContent_cff import * -higgsToInvisibleEventContentAODSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToInvisibleEventContentAODSIM.outputCommands.extend(AODSIMEventContent.outputCommands) -higgsToInvisibleEventContentAODSIM.outputCommands.extend(higgsToInvisibleEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsToInvisible_EventContent_cff.py b/HiggsAnalysis/Skimming/python/higgsToInvisible_EventContent_cff.py deleted file mode 100644 index 8dbadc83cc1ff..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToInvisible_EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECOSIM -higgsToInvisibleEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToInvisibleEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('HToInvisFilterPath') - ) -) - diff --git a/HiggsAnalysis/Skimming/python/higgsToInvisible_HLTPaths_cfi.py b/HiggsAnalysis/Skimming/python/higgsToInvisible_HLTPaths_cfi.py deleted file mode 100644 index 42b21a45337d0..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToInvisible_HLTPaths_cfi.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -higgsToInvisibleHLTFilter = copy.deepcopy(hltHighLevel) -higgsToInvisibleHLTFilter.HLTPaths = ['HLT_DoubleFwdJet40_MET60'] - diff --git a/HiggsAnalysis/Skimming/python/higgsToInvisible_OutputModule_cff.py b/HiggsAnalysis/Skimming/python/higgsToInvisible_OutputModule_cff.py deleted file mode 100644 index 51162a5fc56f4..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToInvisible_OutputModule_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToInvisibleOutputModuleAODSIM_cfi import * -from HiggsAnalysis.Skimming.higgsToInvisibleOutputModuleRECOSIM_cfi import * - diff --git a/HiggsAnalysis/Skimming/python/higgsToInvisible_RECOSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsToInvisible_RECOSIM_cff.py deleted file mode 100644 index 35c604a241a89..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToInvisible_RECOSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToInvisible_EventContent_cff import * -higgsToInvisibleEventContentRECOSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToInvisibleEventContentRECOSIM.outputCommands.extend(RECOSIMEventContent.outputCommands) -higgsToInvisibleEventContentRECOSIM.outputCommands.extend(higgsToInvisibleEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsToInvisible_Sequences_cff.py b/HiggsAnalysis/Skimming/python/higgsToInvisible_Sequences_cff.py deleted file mode 100644 index b0debe941da19..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToInvisible_Sequences_cff.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToInvisible_HLTPaths_cfi import * -higgsToInvisibleTrigReport = cms.EDAnalyzer("HLTrigReport", - HLTriggerResults = cms.InputTag("TriggerResults") -) - -higgsToInvisibleSequence = cms.Sequence(higgsToInvisibleTrigReport+higgsToInvisibleHLTFilter) - diff --git a/HiggsAnalysis/Skimming/python/higgsToInvisible_SkimPaths_cff.py b/HiggsAnalysis/Skimming/python/higgsToInvisible_SkimPaths_cff.py deleted file mode 100644 index b953d5f604351..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToInvisible_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToInvisible_Sequences_cff import * -HToInvisFilterPath = cms.Path(higgsToInvisibleSequence) - diff --git a/HiggsAnalysis/Skimming/python/higgsToTauTauLeptonTauOutputModuleAODSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsToTauTauLeptonTauOutputModuleAODSIM_cfi.py deleted file mode 100644 index 8592b778cac34..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToTauTauLeptonTauOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_EventContent_AODSIM_cff import * -higgsToTauTauLeptonTauOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - higgsToTauTauLeptonTauEventSelection, - higgsToTauTauLeptonTauEventContentAODSIM, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsToTauTauLeptonTauAODSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('higgsToTauTauLeptonTauAODSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToTauTauLeptonTauOutputModuleRECOSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsToTauTauLeptonTauOutputModuleRECOSIM_cfi.py deleted file mode 100644 index 923bb7b03b108..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToTauTauLeptonTauOutputModuleRECOSIM_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_EventContent_AODSIM_cff import * -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_EventContent_RECOSIM_cff import * -higgsToTauTauLeptonTauOutputModuleRECOSIM = cms.OutputModule("PoolOutputModule", - higgsToTauTauLeptonTauEventSelection, - higgsToTauTauLeptonTauEventContentRECOSIM, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsToTauTauLeptonTauRECOSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('higgsToTauTauLeptonTauRECOSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_EventContent_AODSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_EventContent_AODSIM_cff.py deleted file mode 100644 index f1031cea1170d..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_EventContent_AODSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_EventContent_cff import * -higgsToTauTauLeptonTauEventContentAODSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToTauTauLeptonTauEventContentAODSIM.outputCommands.extend(AODSIMEventContent.outputCommands) -higgsToTauTauLeptonTauEventContentAODSIM.outputCommands.extend(higgsToTauTauLeptonTauEventContentAODSIM.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_EventContent_RECOSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_EventContent_RECOSIM_cff.py deleted file mode 100644 index 4ed1c2799f819..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_EventContent_RECOSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_EventContent_cff import * -higgsToTauTauLeptonTauEventContentRECOSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToTauTauLeptonTauEventContentRECOSIM.outputCommands.extend(RECOSIMEventContent.outputCommands) -higgsToTauTauLeptonTauEventContentRECOSIM.outputCommands.extend(higgsToTauTauLeptonTauEventContentRECOSIM.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_EventContent_cff.py b/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_EventContent_cff.py deleted file mode 100644 index 2422a73c1b9e0..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_EventContent_cff.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -higgsToTauTauLeptonTauEventContent = cms.PSet( - outputCommands = cms.untracked.vstring('keep *') -) -higgsToTauTauLeptonTauEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('higgsToTauTauLeptonTauPath') - ) -) - diff --git a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_HLTPaths_cfi.py b/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_HLTPaths_cfi.py deleted file mode 100644 index 2064f2788f5a9..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_HLTPaths_cfi.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -higgsToTauTauLeptonTauHLTFilter = copy.deepcopy(hltHighLevel) -higgsToTauTauLeptonTauHLTFilter.HLTPaths = ['HLT_IsoEle15_L1I', 'HLT_IsoEle12_IsoTau_Trk3', 'HLT_IsoMu11', 'HLT_IsoMu14_IsoTau_Trk3'] - diff --git a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_OutputModule_cff.py b/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_OutputModule_cff.py deleted file mode 100644 index f1e77c04d4e00..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_OutputModule_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToTauTauLeptonTauOutputModuleAODSIM_cfi import * -from HiggsAnalysis.Skimming.higgsToTauTauLeptonTauOutputModuleRECOSIM_cfi import * - diff --git a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_Sequences_cff.py b/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_Sequences_cff.py deleted file mode 100644 index 3caeab4539332..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_Sequences_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_HLTPaths_cfi import * -higgsToTauTauLeptonTauSequence = cms.Sequence(higgsToTauTauLeptonTauHLTFilter) - diff --git a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_SkimPaths_cff.py b/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_SkimPaths_cff.py deleted file mode 100644 index fae454485d67d..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToTauTau_LeptonTau_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToTauTau_LeptonTau_Sequences_cff import * -higgsToTauTauLeptonTauPath = cms.Path(higgsToTauTauLeptonTauSequence) - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2LeptonsOutputModuleAODSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsToWW2LeptonsOutputModuleAODSIM_cfi.py deleted file mode 100644 index 1f27ec7c750c0..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2LeptonsOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToWW2Leptons_EventContent_cff import * -higgsToWW2LeptonsOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - AODSIMEventContent, - higgsToWW2LeptonsEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsToWW2LeptonsAODSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('hww2l_AODSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2LeptonsOutputModuleRECOSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsToWW2LeptonsOutputModuleRECOSIM_cfi.py deleted file mode 100644 index d4b02f9bda10e..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2LeptonsOutputModuleRECOSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToWW2Leptons_EventContent_cff import * -higgsToWW2LeptonsOutputModuleRECOSIM = cms.OutputModule("PoolOutputModule", - RECOSIMEventContent, - higgsToWW2LeptonsEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsToWW2LeptonsRECOSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('hww2l_RECOSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_AODSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_AODSIM_cff.py deleted file mode 100644 index 2c560ba6fd7fc..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_AODSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToWW2Leptons_EventContent_cff import * -higgsToWW2LeptonsEventContentAODSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToWW2LeptonsEventContentAODSIM.outputCommands.extend(AODSIMEventContent.outputCommands) -higgsToWW2LeptonsEventContentAODSIM.outputCommands.extend(higgsToWW2LeptonsEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_EventContent_cff.py b/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_EventContent_cff.py deleted file mode 100644 index 72e64c924b959..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -higgsToWW2LeptonsEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToWW2LeptonsEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('HWWFilterPath') - ) -) - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_Filter_cfi.py b/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_Filter_cfi.py deleted file mode 100644 index 13187b9e562c1..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_Filter_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -higgsToWW2LeptonsFilter = cms.EDFilter("HiggsToWW2LeptonsSkim", - ElectronCollectionLabel = cms.InputTag("pixelMatchGsfElectrons"), - RecoTrackLabel = cms.InputTag("recoTracks"), - SingleTrackPtMin = cms.double(20.0), - etaMin = cms.double(-2.4), - GlobalMuonCollectionLabel = cms.InputTag("globalMuons"), - DiTrackPtMin = cms.double(10.0), - etaMax = cms.double(2.4) -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_HLTPaths_cfi.py b/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_HLTPaths_cfi.py deleted file mode 100644 index 652f4cf340ffe..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_HLTPaths_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -higgsToWW2LeptonsHLTFilter = copy.deepcopy(hltHighLevel) -higgsToWW2LeptonsHLTFilter.HLTPaths = ['HLT_IsoMu11', 'HLT_Mu15_L1Mu7', 'HLT_IsoEle15_L1I', 'HLT_IsoEle18_L1R', 'HLT_DoubleMu3', - 'HLT_DoubleIsoEle10_L1I', 'HLT_DoubleIsoEle12_L1R', 'HLT_IsoEle8_IsoMu7', 'HLT_IsoEle10_Mu10_L1R'] - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_OutputModule_cff.py b/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_OutputModule_cff.py deleted file mode 100644 index 10304265f5af4..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_OutputModule_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToWW2LeptonsOutputModuleAODSIM_cfi import * -from HiggsAnalysis.Skimming.higgsToWW2LeptonsOutputModuleRECOSIM_cfi import * - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_RECOSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_RECOSIM_cff.py deleted file mode 100644 index 5ae14873a061f..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_RECOSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToWW2Leptons_EventContent_cff import * -higgsToWW2LeptonsEventContentRECOSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToWW2LeptonsEventContentRECOSIM.outputCommands.extend(RECOSIMEventContent.outputCommands) -higgsToWW2LeptonsEventContentRECOSIM.outputCommands.extend(higgsToWW2LeptonsEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_Sequences_cff.py b/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_Sequences_cff.py deleted file mode 100644 index 05a5480322bc3..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_Sequences_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToWW2Leptons_HLTPaths_cfi import * -from HiggsAnalysis.Skimming.higgsToWW2Leptons_Filter_cfi import * -higgsToWWTrigReport = cms.EDAnalyzer("HLTrigReport", - HLTriggerResults = cms.InputTag("TriggerResults") -) - -higgsToWW2LeptonsSequence = cms.Sequence(higgsToWWTrigReport+higgsToWW2LeptonsHLTFilter+higgsToWW2LeptonsFilter) - diff --git a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_SkimPaths_cff.py b/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_SkimPaths_cff.py deleted file mode 100644 index 12abc034c5b89..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToWW2Leptons_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToWW2Leptons_Sequences_cff import * -HWWFilterPath = cms.Path(higgsToWW2LeptonsSequence) - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4LeptonsOutputModuleAODSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsToZZ4LeptonsOutputModuleAODSIM_cfi.py deleted file mode 100644 index 798fea02c475b..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4LeptonsOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_EventContent_cff import * -higgsToZZ4LeptonsOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - higgsToZZ4LeptonsEventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsToZZ4LeptonsAODSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('hzz4l_AODSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4LeptonsOutputModuleRECOSIM_cfi.py b/HiggsAnalysis/Skimming/python/higgsToZZ4LeptonsOutputModuleRECOSIM_cfi.py deleted file mode 100644 index b334b7e5ddb62..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4LeptonsOutputModuleRECOSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_EventContent_cff import * -higgsToZZ4LeptonsOutputModuleRECOSIM = cms.OutputModule("PoolOutputModule", - RECOSIMEventContent, - higgsToZZ4LeptonsEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('higgsToZZ4LeptonsRECOSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('hzz4l_RECOSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_AODSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_AODSIM_cff.py deleted file mode 100644 index 4b19e8cdfe6fe..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_AODSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_EventContent_cff import * -higgsToZZ4LeptonsEventContentAODSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToZZ4LeptonsEventContentAODSIM.outputCommands.extend(AODSIMEventContent.outputCommands) -higgsToZZ4LeptonsEventContentAODSIM.outputCommands.extend(higgsToZZ4LeptonsEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_EventContent_cff.py b/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_EventContent_cff.py deleted file mode 100644 index af2e45b354ac9..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -higgsToZZ4LeptonsEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToZZ4LeptonsEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('HZZFilterPath') - ) -) - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_Filter_cfi.py b/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_Filter_cfi.py deleted file mode 100644 index e4286ec1b17da..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_Filter_cfi.py +++ /dev/null @@ -1,20 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Entries for HZZ skim -# -# Dominique Fortin - UC Riverside -# -higgsToZZ4LeptonsFilter = cms.EDFilter("HiggsToZZ4LeptonsSkim", - electronMinimumEt = cms.double(5.0), - DebugHiggsToZZ4LeptonsSkim = cms.bool(False), - ElectronCollectionLabel = cms.InputTag("pixelMatchGsfElectrons"), - # Minimum number of identified leptons above pt threshold - nLeptonMinimum = cms.int32(3), - GlobalMuonCollectionLabel = cms.InputTag("globalMuons"), - # Collection to be accessed - RecoTrackLabel = cms.InputTag("recoTracks"), - # Pt threshold for leptons - muonMinimumPt = cms.double(5.0) -) - - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_HLTPaths_cfi.py b/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_HLTPaths_cfi.py deleted file mode 100644 index d83c92c86a7de..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_HLTPaths_cfi.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -higgsToZZ4LeptonsHLTFilter = copy.deepcopy(hltHighLevel) -higgsToZZ4LeptonsHLTFilter.HLTPaths = ['HLT_IsoMu11', 'HLT_Mu15_L1Mu7', 'HLT_DoubleMu3', 'HLT_IsoEle15_L1I', 'HLT_IsoEle18_L1R', - 'HLT_DoubleIsoEle10_L1I', 'HLT_DoubleIsoEle12_L1R'] - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_OutputModule_cff.py b/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_OutputModule_cff.py deleted file mode 100644 index b6a2b2215ec3f..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_OutputModule_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToZZ4LeptonsOutputModuleAODSIM_cfi import * -from HiggsAnalysis.Skimming.higgsToZZ4LeptonsOutputModuleRECOSIM_cfi import * - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_RECOSIM_cff.py b/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_RECOSIM_cff.py deleted file mode 100644 index 81c589e4b1499..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_RECOSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_EventContent_cff import * -higgsToZZ4LeptonsEventContentRECOSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -higgsToZZ4LeptonsEventContentRECOSIM.outputCommands.extend(RECOSIMEventContent.outputCommands) -higgsToZZ4LeptonsEventContentRECOSIM.outputCommands.extend(higgsToZZ4LeptonsEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_Sequences_cff.py b/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_Sequences_cff.py deleted file mode 100644 index 4ac86902900c4..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_Sequences_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_HLTPaths_cfi import * -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_Filter_cfi import * -higgsToZZ4HLTrigReport = cms.EDFilter("HLTrigReport", - HLTriggerResults = cms.InputTag("TriggerResults") -) - -higgsToZZ4LeptonsSequence = cms.Sequence(higgsToZZ4HLTrigReport+higgsToZZ4LeptonsHLTFilter+higgsToZZ4LeptonsFilter) - diff --git a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_SkimPaths_cff.py b/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_SkimPaths_cff.py deleted file mode 100644 index 7d293119fc877..0000000000000 --- a/HiggsAnalysis/Skimming/python/higgsToZZ4Leptons_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.higgsToZZ4Leptons_Sequences_cff import * -HZZFilterPath = cms.Path(higgsToZZ4LeptonsSequence) - diff --git a/HiggsAnalysis/Skimming/python/rsTo2GammaOutputModuleAODSIM_cfi.py b/HiggsAnalysis/Skimming/python/rsTo2GammaOutputModuleAODSIM_cfi.py deleted file mode 100644 index 03a280d3e12cd..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2GammaOutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.rsTo2Gamma_EventContent_cff import * -rsTo2GammaOutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - rsTo2GammaEventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('rsTo2GammaAODSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('rsgg_AODSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/rsTo2GammaOutputModuleRECOSIM_cfi.py b/HiggsAnalysis/Skimming/python/rsTo2GammaOutputModuleRECOSIM_cfi.py deleted file mode 100644 index 85732374c1cfb..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2GammaOutputModuleRECOSIM_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.rsTo2Gamma_EventContent_cff import * -rsTo2GammaOutputModuleRECOSIM = cms.OutputModule("PoolOutputModule", - RECOSIMEventContent, - rsTo2GammaEventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('rsTo2Gamma_RECOSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('rsgg_RECOSIM.root') -) - - diff --git a/HiggsAnalysis/Skimming/python/rsTo2Gamma_AODSIM_cff.py b/HiggsAnalysis/Skimming/python/rsTo2Gamma_AODSIM_cff.py deleted file mode 100644 index b9ae6989425d7..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2Gamma_AODSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.rsTo2Gamma_EventContent_cff import * -rsTo2GammaEventContentAODSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -rsTo2GammaEventContentAODSIM.outputCommands.extend(AODSIMEventContent.outputCommands) -rsTo2GammaEventContentAODSIM.outputCommands.extend(rsTo2GammaEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/rsTo2Gamma_EventContent_cff.py b/HiggsAnalysis/Skimming/python/rsTo2Gamma_EventContent_cff.py deleted file mode 100644 index 12a7d06efbbc7..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2Gamma_EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -rsTo2GammaEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -rsTo2GammaEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('RSggFilterPath') - ) -) - diff --git a/HiggsAnalysis/Skimming/python/rsTo2Gamma_Filter_cfi.py b/HiggsAnalysis/Skimming/python/rsTo2Gamma_Filter_cfi.py deleted file mode 100644 index b3949c29e8816..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2Gamma_Filter_cfi.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Entries for RS2g skim -rsTo2GammaFilter = cms.EDFilter("HiggsTo2GammaSkim", - # Collection to be accessed - PhotonCollectionLabel = cms.InputTag("correctedPhotons"), - DebugHiggsTo2GammaSkim = cms.bool(False), - # Minimum number of identified photons above pt threshold - nPhotonMinimum = cms.int32(1), - # Pt threshold for photons - photon1MinimumPt = cms.double(50.0) -) - - diff --git a/HiggsAnalysis/Skimming/python/rsTo2Gamma_HLTPaths_cfi.py b/HiggsAnalysis/Skimming/python/rsTo2Gamma_HLTPaths_cfi.py deleted file mode 100644 index fcb9f7346719a..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2Gamma_HLTPaths_cfi.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from HLTrigger.HLTfilters.hltHighLevel_cfi import * -rsTo2GammaHLTFilter = copy.deepcopy(hltHighLevel) -rsTo2GammaHLTFilter.HLTPaths = ['HLT_EM80', 'HLT_EM200'] - diff --git a/HiggsAnalysis/Skimming/python/rsTo2Gamma_OutputModule_cff.py b/HiggsAnalysis/Skimming/python/rsTo2Gamma_OutputModule_cff.py deleted file mode 100644 index f611064817981..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2Gamma_OutputModule_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.rsTo2GammaOutputModuleAODSIM_cfi import * -from HiggsAnalysis.Skimming.rsTo2GammaOutputModuleRECOSIM_cfi import * - diff --git a/HiggsAnalysis/Skimming/python/rsTo2Gamma_RECOSIM_cff.py b/HiggsAnalysis/Skimming/python/rsTo2Gamma_RECOSIM_cff.py deleted file mode 100644 index 6d7ce7a4b8f3a..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2Gamma_RECOSIM_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from HiggsAnalysis.Skimming.rsTo2Gamma_EventContent_cff import * -rsTo2GammaEventContentRECOSIM = cms.PSet( - outputCommands = cms.untracked.vstring() -) -rsTo2GammaEventContentRECOSIM.outputCommands.extend(RECOSIMEventContent.outputCommands) -rsTo2GammaEventContentRECOSIM.outputCommands.extend(rsTo2GammaEventContent.outputCommands) - diff --git a/HiggsAnalysis/Skimming/python/rsTo2Gamma_Sequences_cff.py b/HiggsAnalysis/Skimming/python/rsTo2Gamma_Sequences_cff.py deleted file mode 100644 index baa0fc29f0504..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2Gamma_Sequences_cff.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.rsTo2Gamma_HLTPaths_cfi import * -from HiggsAnalysis.Skimming.rsTo2Gamma_Filter_cfi import * -rsTo2GammaHLTrigReport = cms.EDAnalyzer("HLTrigReport", - HLTriggerResults = cms.InputTag("TriggerResults") -) - -rsTo2GammaSequence = cms.Sequence(rsTo2GammaHLTrigReport+rsTo2GammaHLTFilter+rsTo2GammaFilter) - diff --git a/HiggsAnalysis/Skimming/python/rsTo2Gamma_SkimPaths_cff.py b/HiggsAnalysis/Skimming/python/rsTo2Gamma_SkimPaths_cff.py deleted file mode 100644 index b019abdd96d8e..0000000000000 --- a/HiggsAnalysis/Skimming/python/rsTo2Gamma_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from HiggsAnalysis.Skimming.rsTo2Gamma_Sequences_cff import * -RSggFilterPath = cms.Path(rsTo2GammaSequence) - diff --git a/HiggsAnalysis/Skimming/src/HeavyChHiggsToTauNuSkim.cc b/HiggsAnalysis/Skimming/src/HeavyChHiggsToTauNuSkim.cc deleted file mode 100644 index 6eb1f3c0b9fbe..0000000000000 --- a/HiggsAnalysis/Skimming/src/HeavyChHiggsToTauNuSkim.cc +++ /dev/null @@ -1,102 +0,0 @@ -/** \class HeavyChHiggsToTauNuSkim - * - * - * This class is an EDFilter for heavy H+->taunu events - * - * \author Sami Lehti - HIP Helsinki - * - */ - -#include "HiggsAnalysis/Skimming/interface/HeavyChHiggsToTauNuSkim.h" - -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "DataFormats/BTauReco/interface/JetTag.h" -//#include "DataFormats/BTauReco/interface/JetTagFwd.h" -#include "DataFormats/JetReco/interface/Jet.h" - -#include - -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -using namespace edm; -using namespace std; -using namespace reco; - -HeavyChHiggsToTauNuSkim::HeavyChHiggsToTauNuSkim(const edm::ParameterSet& iConfig) { - // Local Debug flag - debug = iConfig.getParameter("DebugHeavyChHiggsToTauNuSkim"); - - hltTauToken = consumes(iConfig.getParameter("HLTTauCollection")); - jetToken = consumes(iConfig.getParameter("JetTagCollection")); - minNumberOfjets = iConfig.getParameter("minNumberOfJets"); - jetEtMin = iConfig.getParameter("jetEtMin"); - jetEtaMin = iConfig.getParameter("jetEtaMin"); - jetEtaMax = iConfig.getParameter("jetEtaMax"); - minDRFromTau = iConfig.getParameter("minDRFromTau"); - - nEvents = 0; - nSelectedEvents = 0; -} - -HeavyChHiggsToTauNuSkim::~HeavyChHiggsToTauNuSkim() { - edm::LogVerbatim("HeavyChHiggsToTauNuSkim") - << " Number_events_read " << nEvents << " Number_events_kept " << nSelectedEvents << " Efficiency " - << ((double)nSelectedEvents) / ((double)nEvents + 0.01) << std::endl; -} - -bool HeavyChHiggsToTauNuSkim::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) { - nEvents++; - - Handle tauTagL3Handle; - iEvent.getByToken(hltTauToken, tauTagL3Handle); - - if (!tauTagL3Handle.isValid()) - return false; - - Jet theTau; - double maxEt = 0; - if (tauTagL3Handle.isValid()) { - const IsolatedTauTagInfoCollection& L3Taus = *(tauTagL3Handle.product()); - IsolatedTauTagInfoCollection::const_iterator i; - for (i = L3Taus.begin(); i != L3Taus.end(); i++) { - if (i->discriminator() == 0) - continue; - Jet taujet = *(i->jet().get()); - if (taujet.et() > maxEt) { - maxEt = taujet.et(); - theTau = taujet; - } - } - } - - if (maxEt == 0) - return false; - - // jets - - Handle jetHandle; - iEvent.getByToken(jetToken, jetHandle); - - if (!jetHandle.isValid()) - return false; - - bool accepted = false; - - if (jetHandle.isValid()) { - int nJets = 0; - const reco::CaloJetCollection& jets = *(jetHandle.product()); - CaloJetCollection::const_iterator iJet; - for (iJet = jets.begin(); iJet != jets.end(); iJet++) { - if (iJet->et() > jetEtMin && iJet->eta() > jetEtaMin && iJet->eta() < jetEtaMax) { - double DR = deltaR(theTau.eta(), iJet->eta(), theTau.phi(), iJet->phi()); - if (DR > minDRFromTau) - nJets++; - } - } - if (nJets >= minNumberOfjets) { - accepted = true; - nSelectedEvents++; - } - } - return accepted; -} diff --git a/HiggsAnalysis/Skimming/src/HiggsTo2GammaSkim.cc b/HiggsAnalysis/Skimming/src/HiggsTo2GammaSkim.cc deleted file mode 100644 index e12f5447050aa..0000000000000 --- a/HiggsAnalysis/Skimming/src/HiggsTo2GammaSkim.cc +++ /dev/null @@ -1,94 +0,0 @@ - -/* \class HiggsTo2GammaSkim - * - * Consult header file for description - * - * author: Kati Lassila-Perini Helsinki Institute of Physics - * - */ - -// system include files -#include - -// User include files -#include - -// Message logger -#include - -// Photons: -#include - -// C++ -#include -#include - -using namespace std; -using namespace edm; -using namespace reco; - -// Constructor -HiggsTo2GammaSkim::HiggsTo2GammaSkim(const edm::ParameterSet& pset) { - // Local Debug flag - debug = pset.getParameter("DebugHiggsTo2GammaSkim"); - - // Reconstructed objects - thePhotonToken = consumes(pset.getParameter("PhotonCollectionLabel")); - - // Minimum Pt for photons for skimming - photon1MinPt = pset.getParameter("photon1MinimumPt"); - nPhotonMin = pset.getParameter("nPhotonMinimum"); - - nEvents = 0; - nSelectedEvents = 0; -} - -// Destructor -HiggsTo2GammaSkim::~HiggsTo2GammaSkim() { - edm::LogVerbatim("HiggsTo2GammaSkim") << " Number_events_read " << nEvents << " Number_events_kept " - << nSelectedEvents << " Efficiency " - << ((double)nSelectedEvents) / ((double)nEvents + 0.01) << std::endl; -} - -// Filter event -bool HiggsTo2GammaSkim::filter(edm::Event& event, const edm::EventSetup& setup) { - nEvents++; - - using reco::PhotonCollection; - - bool keepEvent = false; - int nPhotons = 0; - - // Look at photons: - - // Get the photon collection from the event - edm::Handle photonHandle; - - event.getByToken(thePhotonToken, photonHandle); - - if (photonHandle.isValid()) { - const reco::PhotonCollection* phoCollection = photonHandle.product(); - - reco::PhotonCollection::const_iterator photons; - - // Loop over photon collections and count how many photons there are, - // and how many are above the thresholds - - // Question: do we need to take the reconstructed primary vertex at this point? - // Here, I assume that the et is taken with respect to the nominal vertex (0,0,0). - for (photons = phoCollection->begin(); photons != phoCollection->end(); ++photons) { - float et_p = photons->et(); - if (et_p > photon1MinPt) - nPhotons++; - } - } - - // Make decision: - if (nPhotons >= nPhotonMin) - keepEvent = true; - - if (keepEvent) - nSelectedEvents++; - - return keepEvent; -} diff --git a/HiggsAnalysis/Skimming/src/HiggsToWW2LeptonsSkim.cc b/HiggsAnalysis/Skimming/src/HiggsToWW2LeptonsSkim.cc deleted file mode 100644 index 87e0a0afa4eca..0000000000000 --- a/HiggsAnalysis/Skimming/src/HiggsToWW2LeptonsSkim.cc +++ /dev/null @@ -1,110 +0,0 @@ -/** \class HiggsToWW2LeptonsSkim - * - * - * This class is an EDFilter for HWW events - * - * - * \author Ezio Torassa - INFN Padova - * - */ - -#include "HiggsAnalysis/Skimming/interface/HiggsToWW2LeptonsSkim.h" - -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - -// Muons: -#include - -// Electrons -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" - -#include "DataFormats/Candidate/interface/Candidate.h" - -#include - -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -using namespace edm; -using namespace std; -using namespace reco; - -HiggsToWW2LeptonsSkim::HiggsToWW2LeptonsSkim(const edm::ParameterSet& iConfig) : nEvents_(0), nAccepted_(0) { - // Reconstructed objects - theGLBMuonToken = consumes(iConfig.getParameter("GlobalMuonCollectionLabel")); - theGsfEToken = consumes(iConfig.getParameter("ElectronCollectionLabel")); - - singleTrackPtMin_ = iConfig.getParameter("SingleTrackPtMin"); - diTrackPtMin_ = iConfig.getParameter("DiTrackPtMin"); - etaMin_ = iConfig.getParameter("etaMin"); - etaMax_ = iConfig.getParameter("etaMax"); -} - -HiggsToWW2LeptonsSkim::~HiggsToWW2LeptonsSkim() {} - -void HiggsToWW2LeptonsSkim::endJob() { - edm::LogVerbatim("HiggsToWW2LeptonsSkim") - << "Events read " << nEvents_ << " Events accepted " << nAccepted_ << "\nEfficiency " - << ((double)nAccepted_) / ((double)nEvents_) << std::endl; -} - -bool HiggsToWW2LeptonsSkim::filter(edm::Event& event, const edm::EventSetup& iSetup) { - nEvents_++; - bool accepted = false; - bool accepted1 = false; - int nTrackOver2ndCut = 0; - - // Handle tracks; - - using reco::TrackCollection; - - // Get the muon track collection from the event - edm::Handle muTracks; - event.getByToken(theGLBMuonToken, muTracks); - - if (muTracks.isValid()) { - reco::TrackCollection::const_iterator muons; - - // Loop over muon collections and count how many muons there are, - // and how many are above threshold - for (muons = muTracks->begin(); muons != muTracks->end(); ++muons) { - if (muons->eta() > etaMin_ && muons->eta() < etaMax_) { - if (muons->pt() > singleTrackPtMin_) - accepted1 = true; - if (muons->pt() > diTrackPtMin_) - nTrackOver2ndCut++; - } - } - } - - // Now look at electrons: - - // Get the electron track collection from the event - edm::Handle pTracks; - - event.getByToken(theGsfEToken, pTracks); - - if (pTracks.isValid()) { - const reco::GsfElectronCollection* eTracks = pTracks.product(); - - reco::GsfElectronCollection::const_iterator electrons; - - // Loop over electron collections and count how many muons there are, - // and how many are above threshold - for (electrons = eTracks->begin(); electrons != eTracks->end(); ++electrons) { - if (electrons->eta() > etaMin_ && electrons->eta() < etaMax_) { - if (electrons->pt() > singleTrackPtMin_) - accepted1 = true; - if (electrons->pt() > diTrackPtMin_) - nTrackOver2ndCut++; - } - } - } - - if (accepted1 && nTrackOver2ndCut >= 2) - accepted = true; - - if (accepted) - nAccepted_++; - - return accepted; -} diff --git a/HiggsAnalysis/Skimming/src/HiggsToZZ4LeptonsPreFilter.cc b/HiggsAnalysis/Skimming/src/HiggsToZZ4LeptonsPreFilter.cc deleted file mode 100644 index 65b7e19ac1eb0..0000000000000 --- a/HiggsAnalysis/Skimming/src/HiggsToZZ4LeptonsPreFilter.cc +++ /dev/null @@ -1,118 +0,0 @@ - -/* \class HiggsTo4LeptonsPreFilter - * - * Consult header file for description - * - * author: Dominique Fortin - UC Riverside - * - */ - -// system include files -#include - -// User include files -#include - -// Candidate handling -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "DataFormats/Common/interface/AssociationVector.h" - -// C++ -#include -#include - -using namespace std; -using namespace edm; -using namespace reco; - -// Constructor -HiggsToZZ4LeptonsPreFilter::HiggsToZZ4LeptonsPreFilter(const edm::ParameterSet& pset) { - // LeptonFlavour - // 0 = no tau - // 1 = 4 mu - // 2 = 4 e - // 3 = 2e 2mu - - // Local Debug flag - debug = pset.getParameter("DebugHiggsToZZ4LeptonsPreFilter"); - leptonFlavour = pset.getParameter("HiggsToZZ4LeptonsPreFilterLeptonFlavour"); - genToken = consumes(edm::InputTag("genParticles")); - - ikept = 0; - evt = 0; -} - -// Destructor -HiggsToZZ4LeptonsPreFilter::~HiggsToZZ4LeptonsPreFilter() { - std::cout << "number of events processed: " << evt << std::endl; - std::cout << "number of events kept: " << ikept << std::endl; -} - -// Filter event -bool HiggsToZZ4LeptonsPreFilter::filter(edm::Event& event, const edm::EventSetup& setup) { - bool keepEvent = false; - evt++; - - bool FourL = false; - bool FourE = false; - bool FourM = false; - bool TwoETwoM = false; - - // get gen particle candidates - Handle genParticles; - event.getByToken(genToken, genParticles); - - if (genParticles.isValid()) { - int nElec = 0; - int nMuon = 0; - - for (GenParticleCollection::const_iterator mcIter = genParticles->begin(); mcIter != genParticles->end(); - ++mcIter) { - // Muons: - if (mcIter->pdgId() == 13 || mcIter->pdgId() == -13) { - // Mother is a Z - if (mcIter->mother()->pdgId() == 23) { - // In fiducial volume: - if (mcIter->pt() < 3) - continue; - if (mcIter->eta() > -2.4 && mcIter->eta() < 2.4) - nMuon++; - } - } - // Electrons: - if (mcIter->pdgId() == 11 || mcIter->pdgId() == -11) - // Mother is a Z - if (mcIter->mother()->pdgId() == 23) { - // In fiducial volume: - if (mcIter->pt() < 3) - continue; - if (mcIter->eta() > -2.5 && mcIter->eta() < 2.5) - nElec++; - } - } - - if (nElec > 3) - FourE = true; - if (nMuon > 3) - FourM = true; - if (nMuon > 1 && nElec > 1) - TwoETwoM = true; - if (FourE || FourM || TwoETwoM) - FourL = true; - - if (leptonFlavour == 0 && FourL) - keepEvent = true; - if (leptonFlavour == 1 && FourM) - keepEvent = true; - if (leptonFlavour == 2 && FourE) - keepEvent = true; - if (leptonFlavour == 3 && TwoETwoM) - keepEvent = true; - } - - if (keepEvent) - ikept++; - - return keepEvent; -} diff --git a/HiggsAnalysis/Skimming/src/HiggsToZZ4LeptonsSkim.cc b/HiggsAnalysis/Skimming/src/HiggsToZZ4LeptonsSkim.cc deleted file mode 100644 index a0e506016a33e..0000000000000 --- a/HiggsAnalysis/Skimming/src/HiggsToZZ4LeptonsSkim.cc +++ /dev/null @@ -1,115 +0,0 @@ - -/* \class HiggsTo4LeptonsSkim - * - * Consult header file for description - * - * author: Dominique Fortin - UC Riverside - * - */ - -// system include files -#include - -// User include files -#include - -// Muons: -#include - -// Electrons -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" - -// C++ -#include -#include - -using namespace std; -using namespace edm; -using namespace reco; - -// Constructor -HiggsToZZ4LeptonsSkim::HiggsToZZ4LeptonsSkim(const edm::ParameterSet& pset) { - // Local Debug flag - debug = pset.getParameter("DebugHiggsToZZ4LeptonsSkim"); - - // Reconstructed objects - theGLBMuonToken = consumes(pset.getParameter("GlobalMuonCollectionLabel")); - theGsfEToken = consumes(pset.getParameter("ElectronCollectionLabel")); - - // Minimum Pt for leptons for skimming - stiffMinPt = pset.getParameter("stiffMinimumPt"); - softMinPt = pset.getParameter("softMinimumPt"); - nStiffLeptonMin = pset.getParameter("nStiffLeptonMinimum"); - nLeptonMin = pset.getParameter("nLeptonMinimum"); - - nEvents = 0; - nSelectedEvents = 0; -} - -// Destructor -HiggsToZZ4LeptonsSkim::~HiggsToZZ4LeptonsSkim() { - edm::LogVerbatim("HiggsToZZ4LeptonsSkim") - << " Number_events_read " << nEvents << " Number_events_kept " << nSelectedEvents << " Efficiency " - << ((double)nSelectedEvents) / ((double)nEvents + 0.01) << std::endl; -} - -// Filter event -bool HiggsToZZ4LeptonsSkim::filter(edm::Event& event, const edm::EventSetup& setup) { - nEvents++; - - using reco::TrackCollection; - - bool keepEvent = false; - int nStiffLeptons = 0; - int nLeptons = 0; - - // First look at muons: - - // Get the muon track collection from the event - edm::Handle muTracks; - event.getByToken(theGLBMuonToken, muTracks); - - if (muTracks.isValid()) { - reco::TrackCollection::const_iterator muons; - - // Loop over muon collections and count how many muons there are, - // and how many are above threshold - for (muons = muTracks->begin(); muons != muTracks->end(); ++muons) { - if (muons->pt() > stiffMinPt) - nStiffLeptons++; - if (muons->pt() > softMinPt) - nLeptons++; - } - } - - // Now look at electrons: - - // Get the electron track collection from the event - edm::Handle pTracks; - event.getByToken(theGsfEToken, pTracks); - - if (pTracks.isValid()) { - const reco::GsfElectronCollection* eTracks = pTracks.product(); - - reco::GsfElectronCollection::const_iterator electrons; - - // Loop over electron collections and count how many muons there are, - // and how many are above threshold - for (electrons = eTracks->begin(); electrons != eTracks->end(); ++electrons) { - float pt_e = electrons->pt(); - if (pt_e > stiffMinPt) - nStiffLeptons++; - if (pt_e > softMinPt) - nLeptons++; - } - } - - // Make decision: - if (nStiffLeptons >= nStiffLeptonMin && nLeptons >= nLeptonMin) - keepEvent = true; - - if (keepEvent) - nSelectedEvents++; - - return keepEvent; -} diff --git a/HiggsAnalysis/Skimming/src/HiggsToZZ4LeptonsSkimEff.cc b/HiggsAnalysis/Skimming/src/HiggsToZZ4LeptonsSkimEff.cc deleted file mode 100644 index 8cccc06ab88ef..0000000000000 --- a/HiggsAnalysis/Skimming/src/HiggsToZZ4LeptonsSkimEff.cc +++ /dev/null @@ -1,223 +0,0 @@ - -/* \class HiggsTo4LeptonsSkimEff - * - * Consult header file for description - * - * author: Dominique Fortin - UC Riverside - * - */ - -// system include files -#include - -// User include files -#include - -// Muons: -#include - -// Electrons -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" - -// Candidate handling -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "DataFormats/Common/interface/AssociationVector.h" - -// C++ -#include -#include - -using namespace std; -using namespace edm; -using namespace reco; - -// Constructor -HiggsToZZ4LeptonsSkimEff::HiggsToZZ4LeptonsSkimEff(const edm::ParameterSet& pset) { - // Local Debug flag - debug = pset.getParameter("DebugHiggsToZZ4LeptonsSkim"); - - // Reconstructed objects - theGLBMuonToken = consumes(pset.getParameter("GlobalMuonCollectionLabel")); - theGsfEToken = consumes(pset.getParameter("ElectronCollectionLabel")); - genToken = consumes(edm::InputTag("genParticles")); - - // Minimum Pt for leptons for skimming - // Minimum Pt for leptons for skimming - stiffMinPt = pset.getParameter("stiffMinimumPt"); - softMinPt = pset.getParameter("softMinimumPt"); - nStiffLeptonMin = pset.getParameter("nStiffLeptonMinimum"); - nLeptonMin = pset.getParameter("nLeptonMinimum"); - - nEvents = 0; - nSelFourE = nSelFourM = nSelTwoETwoM = nSelFourL = nSelTau = 0; - nFourE = nFourM = nTwoETwoM = nFourL = nTau = 0; -} - -// Destructor -HiggsToZZ4LeptonsSkimEff::~HiggsToZZ4LeptonsSkimEff() { - std::cout << "Number of events read " << nEvents << std::endl; - std::cout << "*** Efficiency for the various subsamples *** " << endl; - - std::cout << "Four leptons: " - << " pres " << nFourL << " kept " << nSelFourL << " eff " - << ((double)nSelFourL) / ((double)nFourL + 0.0001) << std::endl; - std::cout << "Four muons: " - << " pres " << nFourM << " kept " << nSelFourM << " eff " - << ((double)nSelFourM) / ((double)nFourM + 0.0001) << std::endl; - std::cout << "Four elecs: " - << " pres " << nFourE << " kept " << nSelFourE << " eff " - << ((double)nSelFourE) / ((double)nFourE + 0.0001) << std::endl; - std::cout << "2 elec 2 mu: " - << " pres " << nTwoETwoM << " kept " << nSelTwoETwoM << " eff " - << ((double)nSelTwoETwoM) / ((double)nTwoETwoM + 0.0001) << std::endl; - std::cout << "with taus: " - << " pres " << nTau << " kept " << nSelTau << " eff " << ((double)nSelTau) / ((double)nTau + 0.0001) - << std::endl; -} - -// Filter event -void HiggsToZZ4LeptonsSkimEff::analyze(const edm::Event& event, const edm::EventSetup& setup) { - nEvents++; - - using reco::TrackCollection; - - bool keepEvent = false; - - // First, pre-selection: - int nMuon = 0; - int nElec = 0; - int nTau = 0; - - bool isFourE = false; - bool isFourM = false; - bool isTwoETwoM = false; - bool isFourL = false; - bool isTau = false; - - // get gen particle candidates - edm::Handle genCandidates; - event.getByToken(genToken, genCandidates); - - for (CandidateCollection::const_iterator mcIter = genCandidates->begin(); mcIter != genCandidates->end(); ++mcIter) { - // Muons: - if (mcIter->pdgId() == 13 || mcIter->pdgId() == -13) { - // Mother is a Z - if (mcIter->mother()->pdgId() == 23) { - // In fiducial volume: - if (mcIter->eta() > -2.4 && mcIter->eta() < 2.4) - nMuon++; - } - } - // Electrons: - if (mcIter->pdgId() == 11 || mcIter->pdgId() == -11) { - // Mother is a Z - if (mcIter->mother()->pdgId() == 23) { - // In fiducial volume: - if (mcIter->eta() > -2.5 && mcIter->eta() < 2.5) - nElec++; - } - } - // Taus: - if (mcIter->pdgId() == 15 || mcIter->pdgId() == -15) { - // Mother is a Z - if (mcIter->mother()->pdgId() == 23) { - // In fiducial volume: - if (mcIter->eta() > -2.5 && mcIter->eta() < 2.5) - nTau++; - } - } - } - - if (nElec > 3) { - isFourE = true; - nFourE++; - } - if (nMuon > 3) { - isFourM = true; - nFourM++; - } - if (nMuon > 1 && nElec > 1) { - isTwoETwoM = true; - nTwoETwoM++; - } - if (isFourE || isFourM || isTwoETwoM) { - isFourL = true; - nFourL++; - } - if (nTau > 1) { - isTau = true; - nTau++; - } - - if (isFourL) { - keepEvent = true; - } else { - return; - } - - int nStiffLeptons = 0; - int nLeptons = 0; - - // First look at muons: - - // Get the muon track collection from the event - edm::Handle muTracks; - event.getByToken(theGLBMuonToken, muTracks); - - if (muTracks.isValid()) { - reco::TrackCollection::const_iterator muons; - - // Loop over muon collections and count how many muons there are, - // and how many are above threshold - for (muons = muTracks->begin(); muons != muTracks->end(); ++muons) { - float pt_mu = muons->pt(); - if (pt_mu > stiffMinPt) - nStiffLeptons++; - if (pt_mu > softMinPt) - nLeptons++; - } - } - - // Now look at electrons: - - // Get the electron track collection from the event - edm::Handle pTracks; - event.getByToken(theGsfEToken, pTracks); - - if (pTracks.isValid()) { - const reco::GsfElectronCollection* eTracks = pTracks.product(); - - reco::GsfElectronCollection::const_iterator electrons; - - // Loop over electron collections and count how many muons there are, - // and how many are above threshold - for (electrons = eTracks->begin(); electrons != eTracks->end(); ++electrons) { - float pt_e = electrons->pt(); - if (pt_e > stiffMinPt) - nStiffLeptons++; - if (pt_e > softMinPt) - nLeptons++; - } - } - - // Make decision: - if (nStiffLeptons >= nStiffLeptonMin && nLeptons >= nLeptonMin) { - keepEvent = true; - } else { - keepEvent = false; - } - - if (keepEvent) { - if (isFourE) - nSelFourE++; - if (isFourM) - nSelFourM++; - if (isTwoETwoM) - nSelTwoETwoM++; - if (isFourL) - nSelFourL++; - if (isTau) - nSelTau++; - } -} diff --git a/HiggsAnalysis/Skimming/src/SealModule.cc b/HiggsAnalysis/Skimming/src/SealModule.cc deleted file mode 100644 index ebc94ace9f523..0000000000000 --- a/HiggsAnalysis/Skimming/src/SealModule.cc +++ /dev/null @@ -1,15 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include - -DEFINE_FWK_MODULE(HiggsToZZ4LeptonsSkim); -DEFINE_FWK_MODULE(HiggsToZZ4LeptonsSkimEff); -DEFINE_FWK_MODULE(HiggsToZZ4LeptonsPreFilter); -DEFINE_FWK_MODULE(HiggsToWW2LeptonsSkim); -DEFINE_FWK_MODULE(HeavyChHiggsToTauNuSkim); -DEFINE_FWK_MODULE(HiggsTo2GammaSkim); diff --git a/MuonAnalysis/Configuration/python/MuonAnalysis_OutputModules_cff.py b/MuonAnalysis/Configuration/python/MuonAnalysis_OutputModules_cff.py deleted file mode 100644 index 7d43e59fc2bce..0000000000000 --- a/MuonAnalysis/Configuration/python/MuonAnalysis_OutputModules_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from MuonAnalysis.Configuration.muonL1OutputModule_cfi import * -MuonAnalysisOutput = cms.Sequence(muonL1OutputModuleAODSIM+muonL1OutputModuleRECOSIM) - diff --git a/MuonAnalysis/Configuration/python/MuonAnalysis_SkimPaths_cff.py b/MuonAnalysis/Configuration/python/MuonAnalysis_SkimPaths_cff.py deleted file mode 100644 index 7079b2c9c5db4..0000000000000 --- a/MuonAnalysis/Configuration/python/MuonAnalysis_SkimPaths_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Muon POG standard sequence -from MuonAnalysis.Configuration.muonL1_SkimPath_cff import * - diff --git a/MuonAnalysis/Configuration/python/muonL1OutputModuleAODSIM_cfi.py b/MuonAnalysis/Configuration/python/muonL1OutputModuleAODSIM_cfi.py deleted file mode 100644 index ded73bd7db787..0000000000000 --- a/MuonAnalysis/Configuration/python/muonL1OutputModuleAODSIM_cfi.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from MuonAnalysis.Configuration.muonL1_EventContent_cff import * -muonL1OutputModuleAODSIM = cms.OutputModule("PoolOutputModule", - muonL1EventSelection, - AODSIMmuonL1EventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('muonL1AODSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('muonL1-AODSIM.root') -) - - diff --git a/MuonAnalysis/Configuration/python/muonL1OutputModuleRECOSIM_cfi.py b/MuonAnalysis/Configuration/python/muonL1OutputModuleRECOSIM_cfi.py deleted file mode 100644 index 1308b0d920862..0000000000000 --- a/MuonAnalysis/Configuration/python/muonL1OutputModuleRECOSIM_cfi.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from MuonAnalysis.Configuration.muonL1_EventContent_cff import * -muonL1OutputModuleRECOSIM = cms.OutputModule("PoolOutputModule", - muonL1EventSelection, - RECOSIMmuonL1EventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('muonL1RECOSIM'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('muonL1-RECOSIM.root') -) - - diff --git a/MuonAnalysis/Configuration/python/muonL1OutputModule_cfi.py b/MuonAnalysis/Configuration/python/muonL1OutputModule_cfi.py deleted file mode 100644 index 88bb5916ce6be..0000000000000 --- a/MuonAnalysis/Configuration/python/muonL1OutputModule_cfi.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from MuonAnalysis.Configuration.muonL1OutputModuleAODSIM_cfi import * -from MuonAnalysis.Configuration.muonL1OutputModuleRECOSIM_cfi import * - diff --git a/MuonAnalysis/Configuration/python/muonL1_EventContent_cff.py b/MuonAnalysis/Configuration/python/muonL1_EventContent_cff.py deleted file mode 100644 index 508fa745d7b77..0000000000000 --- a/MuonAnalysis/Configuration/python/muonL1_EventContent_cff.py +++ /dev/null @@ -1,22 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -muonL1EventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -muonL1EventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('muonL1Path') - ) -) -RECOSIMmuonL1EventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -AODSIMmuonL1EventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -RECOSIMmuonL1EventContent.outputCommands.extend(RECOSIMEventContent.outputCommands) -RECOSIMmuonL1EventContent.outputCommands.extend(muonL1EventContent.outputCommands) -AODSIMmuonL1EventContent.outputCommands.extend(AODSIMEventContent.outputCommands) -AODSIMmuonL1EventContent.outputCommands.extend(muonL1EventContent.outputCommands) - diff --git a/MuonAnalysis/Configuration/python/muonL1_SkimPath_cff.py b/MuonAnalysis/Configuration/python/muonL1_SkimPath_cff.py deleted file mode 100644 index 75bbcc8c5f081..0000000000000 --- a/MuonAnalysis/Configuration/python/muonL1_SkimPath_cff.py +++ /dev/null @@ -1,6 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# this is just Juan's sequence to select l1 muons -from MuonAnalysis.Configuration.muonL1_cfi import * -muonL1Path = cms.Path(muonL1) - diff --git a/MuonAnalysis/Configuration/python/muonL1_cfi.py b/MuonAnalysis/Configuration/python/muonL1_cfi.py deleted file mode 100644 index e48fa840e7bf8..0000000000000 --- a/MuonAnalysis/Configuration/python/muonL1_cfi.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -muonL1 = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('CandHLT1MuonLevel1'), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -) - - diff --git a/QCDAnalysis/Configuration/python/QCDAnalysis_EventContent_cff.py b/QCDAnalysis/Configuration/python/QCDAnalysis_EventContent_cff.py deleted file mode 100644 index be26e7d1e0cb6..0000000000000 --- a/QCDAnalysis/Configuration/python/QCDAnalysis_EventContent_cff.py +++ /dev/null @@ -1,23 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# -# Collection of all Skim Paths for QCD Analysis -# -# -# -# -# Added by D. Mason 8/7/07 -# -# Pulled out single jet skims -- brought in -# Andreas Oehler's 3 skims + 2 more from UE 8/21/07 -# -# -# Andreas Oehler's skims -from QCDAnalysis.Skimming.qcdJetFilterStreamHi_EventContent_cff import * -from QCDAnalysis.Skimming.qcdJetFilterStreamMed_EventContent_cff import * -from QCDAnalysis.Skimming.qcdJetFilterStreamLo_EventContent_cff import * -# QCD UE analysis skims -from QCDAnalysis.Skimming.diMuonEventContent_cfi import * -from QCDAnalysis.Skimming.softJetsEventContent_cfi import * - diff --git a/QCDAnalysis/Configuration/python/QCDAnalysis_OutputModules_cff.py b/QCDAnalysis/Configuration/python/QCDAnalysis_OutputModules_cff.py deleted file mode 100644 index eb9147043e18a..0000000000000 --- a/QCDAnalysis/Configuration/python/QCDAnalysis_OutputModules_cff.py +++ /dev/null @@ -1,23 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# -# Collection of all outputModules for QCD Analysis -# -# -# -# -# Added by D. Mason 8/7/07 -# -# Pulled out single jet skims -- brought in -# Andreas Oehler's 3 skims + 2 more from UE 8/21/07 -# -# -# Andreas Oehler's skims -from QCDAnalysis.Skimming.qcdJetFilterStreamHiOutputModule_cfi import * -from QCDAnalysis.Skimming.qcdJetFilterStreamMedOutputModule_cfi import * -from QCDAnalysis.Skimming.qcdJetFilterStreamLoOutputModule_cfi import * -# UE analysis QCD skims -from QCDAnalysis.Skimming.softJetsOutputModule_cfi import * -from QCDAnalysis.Skimming.diMuonOutputModule_cfi import * - diff --git a/QCDAnalysis/Configuration/python/QCDAnalysis_SkimPaths_cff.py b/QCDAnalysis/Configuration/python/QCDAnalysis_SkimPaths_cff.py deleted file mode 100644 index ed8a333fdb4b2..0000000000000 --- a/QCDAnalysis/Configuration/python/QCDAnalysis_SkimPaths_cff.py +++ /dev/null @@ -1,23 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# -# Collection of all Skim Paths for QCD Analysis -# -# -# -# -# Added by D. Mason 8/7/07 -# -# Pulled out single jet skims -- brought in -# Andreas Oehler's 3 skims + 2 more from UE 8/21/07 -# -# -# Andreas Oehler's skims -- apparently requires random numbers... -from QCDAnalysis.Skimming.qcdJetFilterStreamHiPath_cff import * -from QCDAnalysis.Skimming.qcdJetFilterStreamMedPath_cff import * -from QCDAnalysis.Skimming.qcdJetFilterStreamLoPath_cff import * -# QCD UE analysis Skims -from QCDAnalysis.Skimming.softJetsPath_cff import * -from QCDAnalysis.Skimming.diMuonPath_cff import * - diff --git a/QCDAnalysis/Skimming/BuildFile.xml b/QCDAnalysis/Skimming/BuildFile.xml deleted file mode 100644 index d141dcb9bd34b..0000000000000 --- a/QCDAnalysis/Skimming/BuildFile.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/QCDAnalysis/Skimming/interface/QCDSingleJetFilter.h b/QCDAnalysis/Skimming/interface/QCDSingleJetFilter.h deleted file mode 100644 index 8314de06c7285..0000000000000 --- a/QCDAnalysis/Skimming/interface/QCDSingleJetFilter.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef __QCDSingleJetFilter__H__ -#define __QCDSingleJetFilter__H__ - -/* \class QCDSingleJetFilter for CSA07 Excercise - * by Andreas Oehler (andreas.oehler@cern.ch) - * - Filter to select on pt of the jet with hightest Pt - can do a random prescale (requires RandomNumber Service)[deactivated] - - */ - -// user include files -#include - -#include - -#include -#include -#include "FWCore/Utilities/interface/InputTag.h" - -#include - -//RandomGenerator Service taken out -//namespace CLHEP { -// class RandFlat; -//} - -class QCDSingleJetFilter : public edm::EDFilter { -public: - // Constructor - QCDSingleJetFilter(const edm::ParameterSet&); - - // Destructor - ~QCDSingleJetFilter() override; - - /// Get event properties to send to builder to fill seed collection - bool filter(edm::Event&, const edm::EventSetup&) override; - -private: - bool debug; - //CLHEP::RandFlat *theFlatDistrib; - double theMinPt; - //,thePreScale; - edm::EDGetTokenT theTriggerJetCollectionAToken; - edm::EDGetTokenT theTrigCollBToken; -}; - -#endif diff --git a/QCDAnalysis/Skimming/plugins/BuildFile.xml b/QCDAnalysis/Skimming/plugins/BuildFile.xml deleted file mode 100644 index 8397360261c4d..0000000000000 --- a/QCDAnalysis/Skimming/plugins/BuildFile.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/QCDAnalysis/Skimming/plugins/module.cc b/QCDAnalysis/Skimming/plugins/module.cc deleted file mode 100644 index 8a1bc598327d3..0000000000000 --- a/QCDAnalysis/Skimming/plugins/module.cc +++ /dev/null @@ -1,7 +0,0 @@ -// Framework-stuff - -#include - -#include "QCDAnalysis/Skimming/interface/QCDSingleJetFilter.h" - -DEFINE_FWK_MODULE(QCDSingleJetFilter); diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetEventContent_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetEventContent_cff.py deleted file mode 100644 index 23f8dc27a591b..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetEventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -QCDHLT1jetEventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -QCDHLT1jetEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('QCDHLT1jetSkimpath') - ) -) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetOutputModule_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetOutputModule_cfi.py deleted file mode 100644 index 62e8becf6ece9..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetOutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from QCDAnalysis.Skimming.QCDHLT1jetEventContent_cff import * -QCDHLT1jetOutputModule = cms.OutputModule("PoolOutputModule", - #using QCDHLT1jetEventContent - QCDHLT1jetEventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('QCDHLT1jet'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('QCDHLT1jet.root') -) - - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE1EventContent_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE1EventContent_cff.py deleted file mode 100644 index 17fc7a78646d0..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE1EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -QCDHLT1jetPE1EventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -QCDHLT1jetPE1EventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('QCDHLT1jetPE1Skimpath') - ) -) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE1OutputModule_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE1OutputModule_cfi.py deleted file mode 100644 index 828e3da253524..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE1OutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from QCDAnalysis.Skimming.QCDHLT1jetPE1EventContent_cff import * -QCDHLT1jetPE1OutputModule = cms.OutputModule("PoolOutputModule", - AODSIMEventContent, - #using QCDHLT1jetPE1EventContent - QCDHLT1jetPE1EventSelection, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('QCDHLT1jetPE1'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('QCDHLT1jetPE1.root') -) - - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE1Path_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE1Path_cff.py deleted file mode 100644 index 16113e14ce603..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE1Path_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.QCDHLT1jetPE1Skim_cfi import * -QCDHLT1jetPE1Skimpath = cms.Path(QCDHLT1jetPE1Trigger) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE1Skim_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE1Skim_cfi.py deleted file mode 100644 index a0da2c2d8bd0b..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE1Skim_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# Module for Jet trigger skim -- HLT1jetPE1 trigger -# -QCDHLT1jetPE1Trigger = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('HLT1jetPE1'), - byName = cms.bool(True), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults") -) - - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE3EventContent_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE3EventContent_cff.py deleted file mode 100644 index 9d2e94730819c..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE3EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -QCDHLT1jetPE3EventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -QCDHLT1jetPE3EventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('QCDHLT1jetPE3Skimpath') - ) -) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE3OutputModule_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE3OutputModule_cfi.py deleted file mode 100644 index 05eee187863b7..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE3OutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from QCDAnalysis.Skimming.QCDHLT1jetPE3EventContent_cff import * -QCDHLT1jetPE3OutputModule = cms.OutputModule("PoolOutputModule", - #using QCDHLT1jetPE3EventContent - QCDHLT1jetPE3EventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('QCDHLT1jetPE3'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('QCDHLT1jetPE3.root') -) - - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE3Path_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE3Path_cff.py deleted file mode 100644 index cc54b5b902311..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE3Path_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.QCDHLT1jetPE3Skim_cfi import * -QCDHLT1jetPE3Skimpath = cms.Path(QCDHLT1jetPE3Trigger) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE3Skim_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE3Skim_cfi.py deleted file mode 100644 index a04616959f197..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE3Skim_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# Module for Jet trigger skim -- HLT1jetPE3 trigger -# -QCDHLT1jetPE3Trigger = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('HLT1jetPE3'), - byName = cms.bool(True), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults") -) - - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE5EventContent_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE5EventContent_cff.py deleted file mode 100644 index 0d1e5d90019e1..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE5EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -QCDHLT1jetPE5EventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -QCDHLT1jetPE5EventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('QCDHLT1jetPE5Skimpath') - ) -) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE5OutputModule_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE5OutputModule_cfi.py deleted file mode 100644 index ee6f23186aa1a..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE5OutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from QCDAnalysis.Skimming.QCDHLT1jetPE5EventContent_cff import * -QCDHLT1jetPE5OutputModule = cms.OutputModule("PoolOutputModule", - #using QCDHLT1jetPE5EventContent - QCDHLT1jetPE5EventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('QCDHLT1jetPE5'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('QCDHLT1jetPE5.root') -) - - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE5Path_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE5Path_cff.py deleted file mode 100644 index 10c902dedfa7a..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE5Path_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.QCDHLT1jetPE5Skim_cfi import * -QCDHLT1jetPE5Skimpath = cms.Path(QCDHLT1jetPE5Trigger) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE5Skim_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE5Skim_cfi.py deleted file mode 100644 index 617fb2b86cd9e..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE5Skim_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# Module for Jet trigger skim -- HLT1jetPE5 trigger -# -QCDHLT1jetPE5Trigger = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('HLT1jetPE5'), - byName = cms.bool(True), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults") -) - - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE7EventContent_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE7EventContent_cff.py deleted file mode 100644 index 1f35fa575c02e..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE7EventContent_cff.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Can insert block to customize what goes inside root file on top of AOD/RECO -QCDHLT1jetPE7EventContent = cms.PSet( - outputCommands = cms.untracked.vstring() -) -QCDHLT1jetPE7EventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('QCDHLT1jetPE7Skimpath') - ) -) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE7OutputModule_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE7OutputModule_cfi.py deleted file mode 100644 index adb6726d36222..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE7OutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from QCDAnalysis.Skimming.QCDHLT1jetPE7EventContent_cff import * -QCDHLT1jetPE7OutputModule = cms.OutputModule("PoolOutputModule", - #using QCDHLT1jetPE7EventContent - QCDHLT1jetPE7EventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('QCDHLT1jetPE7'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('QCDHLT1jetPE7.root') -) - - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE7Path_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE7Path_cff.py deleted file mode 100644 index d389ebc8150be..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE7Path_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.QCDHLT1jetPE7Skim_cfi import * -QCDHLT1jetPE7Skimpath = cms.Path(QCDHLT1jetPE7Trigger) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPE7Skim_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPE7Skim_cfi.py deleted file mode 100644 index fc25d000c6808..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPE7Skim_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# Module for Jet trigger skim -- HLT1jetPE7 trigger -# -QCDHLT1jetPE7Trigger = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('HLT1jetPE7'), - byName = cms.bool(True), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults") -) - - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetPath_cff.py b/QCDAnalysis/Skimming/python/QCDHLT1jetPath_cff.py deleted file mode 100644 index 3c254cf982c77..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetPath_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.QCDHLT1jetSkim_cfi import * -QCDHLT1jetSkimpath = cms.Path(QCDHLT1jetTrigger) - diff --git a/QCDAnalysis/Skimming/python/QCDHLT1jetSkim_cfi.py b/QCDAnalysis/Skimming/python/QCDHLT1jetSkim_cfi.py deleted file mode 100644 index bcbb62d7298fb..0000000000000 --- a/QCDAnalysis/Skimming/python/QCDHLT1jetSkim_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# Module for Jet trigger skim -- HLT1jet trigger -# -QCDHLT1jetTrigger = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('HLT1jet'), - byName = cms.bool(True), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults") -) - - diff --git a/QCDAnalysis/Skimming/python/diMuonEventContent_cfi.py b/QCDAnalysis/Skimming/python/diMuonEventContent_cfi.py deleted file mode 100644 index ea3cdf920aeda..0000000000000 --- a/QCDAnalysis/Skimming/python/diMuonEventContent_cfi.py +++ /dev/null @@ -1,22 +0,0 @@ -# The following comments couldn't be translated into the new config version: - -# "keep *_genParticles_*_*", - -import FWCore.ParameterSet.Config as cms - -from SimG4Core.Configuration.SimG4Core_EventContent_cff import * -diMuonEventContent = cms.PSet( - outputCommands = cms.untracked.vstring('keep *_ctfWithMaterialTracks_*_*', - 'keep *_globalMuons_*_*', - 'keep edmTriggerResults_*_*_*', - 'keep *_l1extraParticles_*_*') -) -#include "Configuration/EventContent/data/EventContent.cff" -#replace diMuonEventContent.outputCommands += AODSIMEventContent.outputCommands -diMuonEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('diMuonPath') - ) -) -diMuonEventContent.outputCommands.extend(SimG4CoreAOD.outputCommands) - diff --git a/QCDAnalysis/Skimming/python/diMuonOutputModule_cfi.py b/QCDAnalysis/Skimming/python/diMuonOutputModule_cfi.py deleted file mode 100644 index f752bbb7746f5..0000000000000 --- a/QCDAnalysis/Skimming/python/diMuonOutputModule_cfi.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.diMuonEventContent_cfi import * -diMuonOutputModule = cms.OutputModule("PoolOutputModule", - diMuonEventSelection, - diMuonEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('diMuons'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('diMuons.root') -) - - diff --git a/QCDAnalysis/Skimming/python/diMuonPath_cff.py b/QCDAnalysis/Skimming/python/diMuonPath_cff.py deleted file mode 100644 index d00928f429b1d..0000000000000 --- a/QCDAnalysis/Skimming/python/diMuonPath_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.diMuonSkim_cfi import * -diMuonPath = cms.Path(diMuonTrigger) - diff --git a/QCDAnalysis/Skimming/python/diMuonSkim_cfi.py b/QCDAnalysis/Skimming/python/diMuonSkim_cfi.py deleted file mode 100644 index dded3bc9412e7..0000000000000 --- a/QCDAnalysis/Skimming/python/diMuonSkim_cfi.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# -# Modules for soft di-muon trigger skim. -# -diMuonTrigger = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('HLT_DoubleMu3'), - byName = cms.bool(True), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -) - - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHiOutputModule_cfi.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamHiOutputModule_cfi.py deleted file mode 100644 index 4165b36124608..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHiOutputModule_cfi.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.EventContent.EventContent_cff import * -from QCDAnalysis.Skimming.qcdJetFilterStreamHi_EventContent_cff import * -qcdJetFilterStreamHiOutputModule = cms.OutputModule("PoolOutputModule", - qcdJetFilterStreamHiEventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('qcdJetFilterStreamHiPath'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('qcdJetFilterStreamHi.root') -) - - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHiPath_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamHiPath_cff.py deleted file mode 100644 index c60be546bc5bb..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHiPath_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.qcdJetFilterStreamHiSkim_cff import * -qcdJetFilterStreamHiPath = cms.Path(cms.SequencePlaceholder("qcdSingleJetFilterStreamHi")) - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHiSkim_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamHiSkim_cff.py deleted file mode 100644 index 93dff235f969b..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHiSkim_cff.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdSingleJetFilterHi = cms.EDFilter("QCDSingleJetFilter", - TriggerJetCollectionB = cms.InputTag("fastjet6CaloJets"), - MinPt = cms.double(1000.0), - TriggerJetCollectionA = cms.InputTag("midPointCone7CaloJets") -) - - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHi_EventContent_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamHi_EventContent_cff.py deleted file mode 100644 index 0fae61d9c6964..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHi_EventContent_cff.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdJetFilterStreamHiEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('qcdJetFilterStreamHiPath') - ) -) - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHi_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamHi_cff.py deleted file mode 100644 index 1361636def947..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamHi_cff.py +++ /dev/null @@ -1,4 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdJetFilterStreamHi = cms.Sequence(cms.SequencePlaceholder("qcdSingleJetFilterHi")) - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLoOutputModule_cfi.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamLoOutputModule_cfi.py deleted file mode 100644 index 3cbfd23ad4e2b..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLoOutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.qcdJetFilterStreamLo_EventContent_cff import * -from Configuration.EventContent.EventContent_cff import * - -qcdJetFilterStreamLoOutputModule = cms.OutputModule("PoolOutputModule", - qcdJetFilterStreamLoEventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('qcdJetFilterStreamLoPath'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('qcdJetFilterStreamLo.root') -) - - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLoPath_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamLoPath_cff.py deleted file mode 100644 index d42034c8a4d47..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLoPath_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.qcdJetFilterStreamLoSkim_cff import * -qcdJetFilterStreamLoPath = cms.Path(cms.SequencePlaceholder("qcdSingleJetFilterStreamLo")) - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLoSkim_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamLoSkim_cff.py deleted file mode 100644 index a23b55092b4de..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLoSkim_cff.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdSingleJetFilterLo = cms.EDFilter("QCDSingleJetFilter", - TriggerJetCollectionB = cms.InputTag("fastjet6CaloJets"), - MinPt = cms.double(140.0), - TriggerJetCollectionA = cms.InputTag("midPointCone7CaloJets") -) - - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLo_EventContent_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamLo_EventContent_cff.py deleted file mode 100644 index 430b514e87c08..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLo_EventContent_cff.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdJetFilterStreamLoEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('qcdJetFilterStreamLoPath', - 'HLT1jet:HLT') - ) -) - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLo_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamLo_cff.py deleted file mode 100644 index 3397d066f87e8..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamLo_cff.py +++ /dev/null @@ -1,4 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdJetFilterStreamLo = cms.Sequence(~cms.SequencePlaceholder("qcdSingleJetFilterHi")*~cms.SequencePlaceholder("qcdSingleJetFilterMed")*cms.SequencePlaceholder("qcdSingleJetFilterLo")) - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMedOutputModule_cfi.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamMedOutputModule_cfi.py deleted file mode 100644 index 272719529bb7d..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMedOutputModule_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.qcdJetFilterStreamMed_EventContent_cff import * -from Configuration.EventContent.EventContent_cff import * - -qcdJetFilterStreamMedOutputModule = cms.OutputModule("PoolOutputModule", - qcdJetFilterStreamMedEventSelection, - AODSIMEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('qcdJetFilterStreamMedPath'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('qcdJetFilterStreamMed.root') -) - - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMedPath_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamMedPath_cff.py deleted file mode 100644 index 280743dc437d7..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMedPath_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.qcdJetFilterStreamMedSkim_cff import * -qcdJetFilterStreamMedPath = cms.Path(cms.SequencePlaceholder("qcdSingleJetFilterStreamMed")) - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMedSkim_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamMedSkim_cff.py deleted file mode 100644 index 7659ac29459b5..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMedSkim_cff.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdSingleJetFilterMed = cms.EDFilter("QCDSingleJetFilter", - TriggerJetCollectionB = cms.InputTag("fastjet6CaloJets"), - MinPt = cms.double(500.0), - TriggerJetCollectionA = cms.InputTag("midPointCone7CaloJets") -) - - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMed_EventContent_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamMed_EventContent_cff.py deleted file mode 100644 index 514d9c17ef9f5..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMed_EventContent_cff.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdJetFilterStreamMedEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('qcdJetFilterStreamMedPath') - ) -) - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMed_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStreamMed_cff.py deleted file mode 100644 index 444561a75588e..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStreamMed_cff.py +++ /dev/null @@ -1,4 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdJetFilterStreamMed = cms.Sequence(~cms.SequencePlaceholder("qcdSingleJetFilterHi")*cms.SequencePlaceholder("qcdSingleJetFilterMed")) - diff --git a/QCDAnalysis/Skimming/python/qcdJetFilterStream_EventContent_cff.py b/QCDAnalysis/Skimming/python/qcdJetFilterStream_EventContent_cff.py deleted file mode 100644 index 4809104ad3fef..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdJetFilterStream_EventContent_cff.py +++ /dev/null @@ -1,18 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdJetFilterStreamHiEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('qcdJetFilterStreamHiPath') - ) -) -qcdJetFilterStreamMedEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('qcdJetFilterStreamMedPath') - ) -) -qcdJetFilterStreamLoEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('qcdJetFilterStreamLoPath') - ) -) - diff --git a/QCDAnalysis/Skimming/python/qcdSingleJetFilterRandBlock_cff.py b/QCDAnalysis/Skimming/python/qcdSingleJetFilterRandBlock_cff.py deleted file mode 100644 index 8d9f21b334f22..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdSingleJetFilterRandBlock_cff.py +++ /dev/null @@ -1,8 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdSingleJetFilterRandSeeds = cms.PSet( - qcdSingleJetFilterMed = cms.untracked.uint32(14821), - qcdSingleJetFilterLo = cms.untracked.uint32(3214), - qcdSingleJetFilterHi = cms.untracked.uint32(9821) -) - diff --git a/QCDAnalysis/Skimming/python/qcdSingleJetFilter_cfi.py b/QCDAnalysis/Skimming/python/qcdSingleJetFilter_cfi.py deleted file mode 100644 index 91edc1f4ab2f3..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdSingleJetFilter_cfi.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -qcdSingleJetFilter = cms.EDFilter("QCDSingleJetFilter", - TriggerJetCollectionB = cms.InputTag("fastjet6CaloJets"), - MinPt = cms.double(3000.0), - TriggerJetCollectionA = cms.InputTag("midPointCone7CaloJets") -) - - diff --git a/QCDAnalysis/Skimming/python/qcdSingleJetFilters_cff.py b/QCDAnalysis/Skimming/python/qcdSingleJetFilters_cff.py deleted file mode 100644 index 38b4afed67081..0000000000000 --- a/QCDAnalysis/Skimming/python/qcdSingleJetFilters_cff.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import copy -from QCDAnalysis.Skimming.qcdSingleJetFilter_cfi import * -qcdSingleJetFilterHi = copy.deepcopy(qcdSingleJetFilter) -import copy -from QCDAnalysis.Skimming.qcdSingleJetFilter_cfi import * -qcdSingleJetFilterMed = copy.deepcopy(qcdSingleJetFilter) -import copy -from QCDAnalysis.Skimming.qcdSingleJetFilter_cfi import * -qcdSingleJetFilterLo = copy.deepcopy(qcdSingleJetFilter) -qcdSingleJetFilterHi.MinPt = 1000 -qcdSingleJetFilterMed.MinPt = 500 -qcdSingleJetFilterLo.MinPt = 200 - diff --git a/QCDAnalysis/Skimming/python/softJetsEventContent_cfi.py b/QCDAnalysis/Skimming/python/softJetsEventContent_cfi.py deleted file mode 100644 index 6aa9f4d8dfe8d..0000000000000 --- a/QCDAnalysis/Skimming/python/softJetsEventContent_cfi.py +++ /dev/null @@ -1,24 +0,0 @@ -# The following comments couldn't be translated into the new config version: - -# "keep *_genParticles_*_*", - -import FWCore.ParameterSet.Config as cms - -from RecoJets.Configuration.RecoJets_EventContent_cff import * -from SimG4Core.Configuration.SimG4Core_EventContent_cff import * -softJetsEventContent = cms.PSet( - outputCommands = cms.untracked.vstring('keep *_ctfWithMaterialTracks_*_*', - 'keep *_globalMuons_*_*', - 'keep edmTriggerResults_*_*_*', - 'keep *_l1extraParticles_*_*') -) -#include "Configuration/EventContent/data/EventContent.cff" -#replace softJetsEventContent.outputCommands += AODSIMEventContent.outputCommands -softJetsEventSelection = cms.PSet( - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('softJetsPath') - ) -) -softJetsEventContent.outputCommands.extend(RecoJetsAOD.outputCommands) -softJetsEventContent.outputCommands.extend(SimG4CoreAOD.outputCommands) - diff --git a/QCDAnalysis/Skimming/python/softJetsOutputModule_cfi.py b/QCDAnalysis/Skimming/python/softJetsOutputModule_cfi.py deleted file mode 100644 index 60f34d3ea16ad..0000000000000 --- a/QCDAnalysis/Skimming/python/softJetsOutputModule_cfi.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.softJetsEventContent_cfi import * -softJetsOutputModule = cms.OutputModule("PoolOutputModule", - softJetsEventSelection, - softJetsEventContent, - dataset = cms.untracked.PSet( - filterName = cms.untracked.string('softJets'), - dataTier = cms.untracked.string('USER') - ), - fileName = cms.untracked.string('softJets.root') -) - - diff --git a/QCDAnalysis/Skimming/python/softJetsPath_cff.py b/QCDAnalysis/Skimming/python/softJetsPath_cff.py deleted file mode 100644 index e20cecf38ed2e..0000000000000 --- a/QCDAnalysis/Skimming/python/softJetsPath_cff.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from QCDAnalysis.Skimming.softJetsSkim_cff import * -softJetsPath = cms.Path(singleJetTrigger*~muonTrigger*~electronTrigger*~photonTrigger) - diff --git a/QCDAnalysis/Skimming/python/softJetsSkim_cff.py b/QCDAnalysis/Skimming/python/softJetsSkim_cff.py deleted file mode 100644 index 5a33acfc72ab3..0000000000000 --- a/QCDAnalysis/Skimming/python/softJetsSkim_cff.py +++ /dev/null @@ -1,38 +0,0 @@ -# The following comments couldn't be translated into the new config version: - -# -# -# Modules for soft Jet trigger skim. Designed for CSA07 only. -# Should be used in veto mode and kill dominant samples of other physics -# - -import FWCore.ParameterSet.Config as cms - -singleJetTrigger = cms.EDFilter("QCDSingleJetFilter", - TriggerJetCollectionB = cms.InputTag("midPointCone7CaloJets"), - MinPt = cms.double(20.0), - TriggerJetCollectionA = cms.InputTag("midPointCone7CaloJets") -) - -muonTrigger = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('HLT_Mu15_L1Mu7'), - byName = cms.bool(True), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -) - -electronTrigger = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('HLT_IsoEle18_L1R'), - byName = cms.bool(True), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -) - -photonTrigger = cms.EDFilter("HLTHighLevel", - HLTPaths = cms.vstring('HLT_IsoPhoton40_L1R'), - byName = cms.bool(True), - andOr = cms.bool(True), - TriggerResultsTag = cms.InputTag("TriggerResults","","HLT") -) - - diff --git a/QCDAnalysis/Skimming/src/QCDSingleJetFilter.cc b/QCDAnalysis/Skimming/src/QCDSingleJetFilter.cc deleted file mode 100644 index de1f2e6c5627d..0000000000000 --- a/QCDAnalysis/Skimming/src/QCDSingleJetFilter.cc +++ /dev/null @@ -1,108 +0,0 @@ -/* \class QCDSingleJetFilter - * - * QCDSingleJetFilter for CSA07 Excercise - * - * author: Andreas Oehler (andreas.oehler@cern.ch) - * see header - */ - -//MyHeadeR: -#include - -// User include files - -#include -#include -#include -#include -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/JetReco/interface/GenJet.h" - -//rand: -//#include -//#include -//#include - -// C++ -#include -#include -#include -#include - -using namespace std; -using namespace edm; -//using namespace reco; - -//detruktor -QCDSingleJetFilter::~QCDSingleJetFilter() { - //delete theFlatDistrib; -} - -// Constructor -//QCDSingleJetFilter::QCDSingleJetFilter(const edm::ParameterSet& pset):theFlatDistrib(0),theTriggerJetCollectionA(pset.getParameter("TriggerJetCollectionA")),theTrigCollB(pset.getParameter("TriggerJetCollectionB")){ -QCDSingleJetFilter::QCDSingleJetFilter(const edm::ParameterSet& pset) - : theTriggerJetCollectionAToken( - consumes(pset.getParameter("TriggerJetCollectionA"))), - theTrigCollBToken(consumes(pset.getParameter("TriggerJetCollectionB"))) { - // Local Debug flag - //debug = pset.getParameter("DebugHiggsToZZ4LeptonsSkim"); - - //getConfigParameter: - theMinPt = pset.getParameter("MinPt"); - //prescale taken out for convenience - //thePreScale = pset.getParameter("PreScale"); - //thePreScale=fabs(thePreScale); - //if (thePreScale<1) thePreScale=0; - - // Eventually, HLT objects: - - //get Random-Service running: - //edm::Service rng; - //if (!rng.isAvailable()) { - // throw cms::Exception("QCDSingleJetFilter")<<"QCDSingleJetFilter requires RandomNumberGeneratorService\n" - // "--borked setup\n"; - //} - //CLHEP::HepRandomEngine& engine = rng->getEngine(); - //theFlatDistrib = new CLHEP::RandFlat(engine,0.0,1.0); -} - -// Filter event -bool QCDSingleJetFilter::filter(edm::Event& event, const edm::EventSetup& setup) { - bool keepEvent = false; - using namespace edm; - using namespace std; - - //now get right Jet-Collection: - edm::Handle theTriggerCollectionJetsA; - edm::Handle theTrigCollJetsB; - - event.getByToken(theTriggerJetCollectionAToken, theTriggerCollectionJetsA); - event.getByToken(theTrigCollBToken, theTrigCollJetsB); - - for (reco::CaloJetCollection::const_iterator iter = theTriggerCollectionJetsA->begin(); - iter != theTriggerCollectionJetsA->end(); - ++iter) { - if ((*iter).pt() >= theMinPt) { - keepEvent = true; - break; - } - } - - for (reco::CaloJetCollection::const_iterator iter = theTrigCollJetsB->begin(); iter != theTrigCollJetsB->end(); - ++iter) { - if ((*iter).pt() >= theMinPt) { - keepEvent = true; - break; - } - } - - //double randval = theFlatDistrib->fire(); - //if (thePreScale<1) keepEvent=false; - //else if ((randval>(1.0/thePreScale))&&keepEvent) keepEvent=false; - // cout<<"KeepEvent?: "< - - - - - - - - - - - - diff --git a/QCDAnalysis/UEAnalysis/interface/AnalysisRootpleProducer.h b/QCDAnalysis/UEAnalysis/interface/AnalysisRootpleProducer.h deleted file mode 100644 index 79fdd8b483ae2..0000000000000 --- a/QCDAnalysis/UEAnalysis/interface/AnalysisRootpleProducer.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef AnalysisRootpleProducer_H -#define AnalysisRootpleProducer_H - -#include - -#include -#include -#include -#include -#include -#include - -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "DataFormats/JetReco/interface/Jet.h" -#include "DataFormats/JetReco/interface/GenJet.h" -#include "DataFormats/JetReco/interface/GenJetCollection.h" -#include "DataFormats/JetReco/interface/CaloJetCollection.h" -#include "DataFormats/JetReco/interface/BasicJet.h" -#include "DataFormats/JetReco/interface/BasicJetCollection.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" - -// access trigger results -#include -#include -#include - -class AnalysisRootpleProducer : public edm::EDAnalyzer { -public: - // - explicit AnalysisRootpleProducer(const edm::ParameterSet&); - ~AnalysisRootpleProducer() override {} // no need to delete ROOT stuff - // as it'll be deleted upon closing TFile - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - - void fillEventInfo(int); - void fillMCParticles(float, float, float, float); - void fillTracks(float, float, float, float); - void fillInclusiveJet(float, float, float, float); - void fillChargedJet(float, float, float, float); - void fillTracksJet(float, float, float, float); - void fillCaloJet(float, float, float, float); - void store(); - -private: - bool onlyRECO; - - edm::EDGetTokenT mcEventToken; // label of MC event - edm::EDGetTokenT genJetCollToken; // label of Jet made with MC particles - edm::EDGetTokenT chgJetCollToken; // label of Jet made with only charged MC particles - edm::EDGetTokenT > chgGenPartCollToken; // label of charged MC particles - edm::EDGetTokenT tracksJetCollToken; - edm::EDGetTokenT recoCaloJetCollToken; - edm::EDGetTokenT tracksCollToken; - edm::EDGetTokenT triggerResultsToken; - - edm::Handle EvtHandle; - edm::Handle > CandHandleMC; - edm::Handle GenJetsHandle; - edm::Handle ChgGenJetsHandle; - edm::Handle CandHandleRECO; - edm::Handle TracksJetsHandle; - edm::Handle RecoCaloJetsHandle; - edm::Handle triggerResults; - // edm::Handle hltFilter; // not used at the moment: can access objects that fired the trigger - - edm::Service fs; - - float piG; - - TTree* AnalysisTree; - - static const int NMCPMAX = 10000; - static const int NTKMAX = 10000; - static const int NIJMAX = 10000; - static const int NCJMAX = 10000; - static const int NTJMAX = 10000; - static const int NEHJMAX = 10000; - - int EventKind, NumberMCParticles, NumberTracks, NumberInclusiveJet, NumberChargedJet, NumberTracksJet, NumberCaloJet; - - float MomentumMC[NMCPMAX], TransverseMomentumMC[NMCPMAX], EtaMC[NMCPMAX], PhiMC[NMCPMAX]; - float MomentumTK[NTKMAX], TransverseMomentumTK[NTKMAX], EtaTK[NTKMAX], PhiTK[NTKMAX]; - float MomentumIJ[NIJMAX], TransverseMomentumIJ[NIJMAX], EtaIJ[NIJMAX], PhiIJ[NIJMAX]; - float MomentumCJ[NCJMAX], TransverseMomentumCJ[NCJMAX], EtaCJ[NCJMAX], PhiCJ[NCJMAX]; - float MomentumTJ[NTJMAX], TransverseMomentumTJ[NTJMAX], EtaTJ[NTJMAX], PhiTJ[NTJMAX]; - float MomentumEHJ[NEHJMAX], TransverseMomentumEHJ[NEHJMAX], EtaEHJ[NEHJMAX], PhiEHJ[NEHJMAX]; - - TClonesArray* MonteCarlo; - TClonesArray* InclusiveJet; - TClonesArray* ChargedJet; - TClonesArray* Track; - TClonesArray* TracksJet; - TClonesArray* CalorimeterJet; - TClonesArray* acceptedTriggers; -}; - -#endif diff --git a/QCDAnalysis/UEAnalysis/interface/AnalysisRootpleProducerOnlyMC.h b/QCDAnalysis/UEAnalysis/interface/AnalysisRootpleProducerOnlyMC.h deleted file mode 100644 index 45472f7f7b9b1..0000000000000 --- a/QCDAnalysis/UEAnalysis/interface/AnalysisRootpleProducerOnlyMC.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef AnalysisRootpleProducerOnlyMC_H -#define AnalysisRootpleProducerOnlyMC_H - -#include - -#include -#include -#include -#include -#include -#include - -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - -#include -#include - -#include -#include -#include -#include -#include - -#include "DataFormats/JetReco/interface/Jet.h" -#include "DataFormats/JetReco/interface/GenJet.h" -#include "DataFormats/JetReco/interface/GenJetCollection.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" - -class AnalysisRootpleProducerOnlyMC : public edm::EDAnalyzer { -public: - explicit AnalysisRootpleProducerOnlyMC(const edm::ParameterSet&); - ~AnalysisRootpleProducerOnlyMC() override {} - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - - void fillEventInfo(int); - void fillMCParticles(float, float, float, float); - void fillInclusiveJet(float, float, float, float); - void fillChargedJet(float, float, float, float); - void store(); - -private: - edm::EDGetTokenT mcEventToken; // label of MC event - edm::EDGetTokenT genJetCollToken; // label of Jet made with MC particles - edm::EDGetTokenT chgJetCollToken; // label of Jet made with only charged MC particles - edm::EDGetTokenT > chgGenPartCollToken; // label of charged MC particles - - edm::Handle EvtHandle; - edm::Handle > CandHandleMC; - edm::Handle GenJetsHandle; - edm::Handle ChgGenJetsHandle; - - float piG; - - edm::Service fs; - - TTree* AnalysisTree; - - static const int NMCPMAX = 10000; - static const int NTKMAX = 10000; - static const int NIJMAX = 10000; - static const int NCJMAX = 10000; - static const int NTJMAX = 10000; - static const int NEHJMAX = 10000; - - int EventKind, NumberMCParticles, NumberTracks, NumberInclusiveJet, NumberChargedJet, NumberTracksJet, NumberCaloJet; - - float MomentumMC[NMCPMAX], TransverseMomentumMC[NMCPMAX], EtaMC[NMCPMAX], PhiMC[NMCPMAX]; - float MomentumTK[NTKMAX], TransverseMomentumTK[NTKMAX], EtaTK[NTKMAX], PhiTK[NTKMAX]; - float MomentumIJ[NIJMAX], TransverseMomentumIJ[NIJMAX], EtaIJ[NIJMAX], PhiIJ[NIJMAX]; - float MomentumCJ[NCJMAX], TransverseMomentumCJ[NCJMAX], EtaCJ[NCJMAX], PhiCJ[NCJMAX]; - float MomentumTJ[NTJMAX], TransverseMomentumTJ[NTJMAX], EtaTJ[NTJMAX], PhiTJ[NTJMAX]; - float MomentumEHJ[NEHJMAX], TransverseMomentumEHJ[NEHJMAX], EtaEHJ[NEHJMAX], PhiEHJ[NEHJMAX]; - - TClonesArray* MonteCarlo; - TClonesArray* InclusiveJet; - TClonesArray* ChargedJet; -}; - -#endif diff --git a/QCDAnalysis/UEAnalysis/python/UEAnalysisJets_cfi.py b/QCDAnalysis/UEAnalysis/python/UEAnalysisJets_cfi.py deleted file mode 100644 index d00381f57847a..0000000000000 --- a/QCDAnalysis/UEAnalysis/python/UEAnalysisJets_cfi.py +++ /dev/null @@ -1,70 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -UEAnalysisIconeJetParameters = cms.PSet( - verbose = cms.untracked.bool(False), - jetPtMin = cms.double(5.0), - inputEtMin = cms.double(0.9), - coneRadius = cms.double(0.5), - seedThreshold = cms.double(1.0), - debugLevel = cms.untracked.int32(0), - jetType = cms.untracked.string('GenJet'), - inputEMin = cms.double(0.0) -) -IC5GenJet = cms.EDProducer("IterativeConeJetProducer", - UEAnalysisIconeJetParameters, - src = cms.InputTag("goodParticles") -) - -IC5ChgGenJet = cms.EDProducer("IterativeConeJetProducer", - UEAnalysisIconeJetParameters, - src = cms.InputTag("chargeParticles") -) - -IC5TracksJet = cms.EDProducer("IterativeConeJetProducer", - UEAnalysisIconeJetParameters, - src = cms.InputTag("goodTracks") -) -IC5TracksJet.jetType = 'BasicJet' -IC5GenJet500 = cms.EDProducer("IterativeConeJetProducer", - UEAnalysisIconeJetParameters, - src = cms.InputTag("goodParticles") -) - -IC5ChgGenJet500 = cms.EDProducer("IterativeConeJetProducer", - UEAnalysisIconeJetParameters, - src = cms.InputTag("chargeParticles") -) - -IC5TracksJet500 = cms.EDProducer("IterativeConeJetProducer", - UEAnalysisIconeJetParameters, - src = cms.InputTag("goodTracks") -) -IC5GenJet500.inputEtMin = 0.5 -IC5ChgGenJet500.inputEtMin = 0.5 -IC5TracksJet500.jetType = 'BasicJet' -IC5TracksJet500.inputEtMin = 0.5 - -IC5GenJet1500 = cms.EDProducer("IterativeConeJetProducer", - UEAnalysisIconeJetParameters, - src = cms.InputTag("goodParticles") - ) -IC5ChgGenJet1500 = cms.EDProducer("IterativeConeJetProducer", - UEAnalysisIconeJetParameters, - src = cms.InputTag("chargeParticles") - ) -IC5TracksJet1500 = cms.EDProducer("IterativeConeJetProducer", - UEAnalysisIconeJetParameters, - src = cms.InputTag("goodTracks") - ) -IC5GenJet1500.inputEtMin = 1.5 -IC5ChgGenJet1500.inputEtMin = 1.5 -IC5TracksJet1500.jetType = 'BasicJet' -IC5TracksJet1500.inputEtMin = 1.5 - - -UEAnalysisJetsOnlyMC = cms.Sequence(IC5GenJet*IC5ChgGenJet*IC5GenJet500*IC5ChgGenJet500*IC5GenJet1500*IC5ChgGenJet1500) -UEAnalysisJetsOnlyReco = cms.Sequence(IC5TracksJet*IC5TracksJet500*IC5TracksJet1500) -UEAnalysisJets = cms.Sequence(UEAnalysisJetsOnlyMC*UEAnalysisJetsOnlyReco) - - - diff --git a/QCDAnalysis/UEAnalysis/python/UEAnalysisParticles_cfi.py b/QCDAnalysis/UEAnalysis/python/UEAnalysisParticles_cfi.py deleted file mode 100644 index 9a6f806923596..0000000000000 --- a/QCDAnalysis/UEAnalysis/python/UEAnalysisParticles_cfi.py +++ /dev/null @@ -1,24 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from SimGeneral.HepPDTESSource.pythiapdt_cfi import * -from RecoJets.Configuration.GenJetParticles_cff import * -# select charged GenParticles with pt > 0.29 -# -# (threshold used to be 0.89, but tracking in 2_0_0 -# saves tracks with pT > 0.29) -goodParticles = cms.EDFilter("GenParticleSelector", - filter = cms.bool(False), - src = cms.InputTag("genParticles"), - cut = cms.string('pt > 0.0'), - stableOnly = cms.bool(True) -) - -chargeParticles = cms.EDFilter("GenParticleSelector", - filter = cms.bool(False), - src = cms.InputTag("genParticles"), - cut = cms.string('charge != 0 & pt > 0.29'), - stableOnly = cms.bool(True) -) - -UEAnalysisParticles = cms.Sequence(genJetParticles*goodParticles*chargeParticles) - diff --git a/QCDAnalysis/UEAnalysis/python/UEAnalysisRootpleOnlyMC_cfi.py b/QCDAnalysis/UEAnalysis/python/UEAnalysisRootpleOnlyMC_cfi.py deleted file mode 100644 index 20faa87392d09..0000000000000 --- a/QCDAnalysis/UEAnalysis/python/UEAnalysisRootpleOnlyMC_cfi.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -ueAnalysisRootple = cms.EDFilter("AnalysisRootpleProducerOnlyMC", - #label of Jet made with only charged MC particles - ChgGenJetCollectionName = cms.untracked.InputTag("iterativeCone5ChgGenJetsSeed10"), - #label of MC event - MCEvent = cms.untracked.InputTag("source"), - #label of charged MC particles - ChgGenPartCollectionName = cms.untracked.InputTag("chargeParticles"), - #label of Jet made with MC particles - GenJetCollectionName = cms.untracked.InputTag("iterativeCone5GenJetsSeed10") -) - - diff --git a/QCDAnalysis/UEAnalysis/python/UEAnalysisRootple_cfi.py b/QCDAnalysis/UEAnalysis/python/UEAnalysisRootple_cfi.py deleted file mode 100644 index bf0c04ae94a9d..0000000000000 --- a/QCDAnalysis/UEAnalysis/python/UEAnalysisRootple_cfi.py +++ /dev/null @@ -1,23 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -ueAnalysisRootple = cms.EDProducer("AnalysisRootpleProducer", - #label of selected tracks - TracksCollectionName = cms.untracked.InputTag("goodTracks"), - #label of Jet made with Tracks - TracksJetCollectionName = cms.untracked.InputTag("iterativeCone5BasicJetsSeed10"), - #label of Jet made with only charged MC particles - ChgGenJetCollectionName = cms.untracked.InputTag("iterativeCone5ChgGenJetsSeed10"), - #lable of MC event - MCEvent = cms.untracked.InputTag("source"), - #label of charged MC particles - ChgGenPartCollectionName = cms.untracked.InputTag("chargeParticles"), - OnlyRECO = cms.untracked.bool(True), - #label of standard Calo Jet - RecoCaloJetCollectionName = cms.untracked.InputTag("iterativeCone5CaloJets"), - #label of Jet made with MC particles - GenJetCollectionName = cms.untracked.InputTag("iterativeCone5GenJetsSeed10"), - #label of trigger results - triggerResults = cms.InputTag("TriggerResults") -) - - diff --git a/QCDAnalysis/UEAnalysis/python/UEAnalysisTracks_cfi.py b/QCDAnalysis/UEAnalysis/python/UEAnalysisTracks_cfi.py deleted file mode 100644 index 497eafd09f57e..0000000000000 --- a/QCDAnalysis/UEAnalysis/python/UEAnalysisTracks_cfi.py +++ /dev/null @@ -1,34 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# old ( < CMSSW_2_x) cuts: -# -# select tracks with -# pt > 0.89 -# at least 8 valid hits -# distance of closest approach to the primary vertex <= 3.5 -# z-difference to primary vertex <= 30 -# new ( >= CMSSW_2_x) cuts (under investigation): -# -# select tracks with -# pt > 0.29 -# at least 4 valid hits -> moved back to 8 -# distance of closest approach to the primary vertex <= 3.5 -# z-difference to primary vertex <= 30 -selectTracks = cms.EDFilter("TrackSelector", - src = cms.InputTag("generalTracks"), - cut = cms.string('pt > 0.29 & numberOfValidHits > 7 & d0 <= 3.5 & dz <= 30') -) - -allTracks = cms.EDProducer("ChargedCandidateProducer", - src = cms.InputTag("selectTracks"), - particleType = cms.string('pi+') -) - -goodTracks = cms.EDFilter("CandSelector", - filter = cms.bool(False), - src = cms.InputTag("allTracks"), - cut = cms.string('pt > 0.29') -) - -UEAnalysisTracks = cms.Sequence(selectTracks*allTracks*goodTracks) - diff --git a/QCDAnalysis/UEAnalysis/root/Makefile b/QCDAnalysis/UEAnalysis/root/Makefile deleted file mode 100644 index e21ff63567fa1..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -objects = UEAnalysis.o UEAnalysisOnRootple.o -source1 = UEAnalysis.cpp -source2 = UEAnalysisOnRootple.C - -CXX = g++ -CXXFLAGS = -O -Wall -fPIC -LD = g++ -ROOTCFLAGS := $(shell root-config --cflags) -ROOTLIBS := $(shell root-config --libs) -ROOTGLIBS := $(shell $(ROOTSYS)/bin/root-config --glibs) -CXXFLAGS += $(ROOTCFLAGS) -LIBS = $(ROOTLIBS) -lEG -SHARE = -shared -NAMELIB = $(CMSSW_BASE)/src/QCDAnalysis/UEAnalysis/root/UE.o -BINFILE = UEAnalysis -lib : - $(LD) -g $(ROOTCFLAGS) -c $(source1) - $(LD) -g $(ROOTCFLAGS) -c $(source2) - $(LD) -g $(objects) $(LIBS) $(SHARE) -o $(NAMELIB) - -bin: - $(LD) -g $(LIBS) $(NAMELIB) -o $(BINFILE) - - -clean: - rm $(objects) $(BINFILE) $(NAMELIB) G__a* diff --git a/QCDAnalysis/UEAnalysis/root/RunUE.sh b/QCDAnalysis/UEAnalysis/root/RunUE.sh deleted file mode 100755 index 9af1ab18b2f66..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/RunUE.sh +++ /dev/null @@ -1,18 +0,0 @@ -// Compilation instructions: -// make lib -// make bin -// -//Examples for use the analysis macro -//List of parameter to be passed -// 1) file that contain th elist of root file to be analyzed -// 2) output file name -// 3) kind of Analysis possible option are UE, Jet, MPI that respectively means -// analysis of Underlying Event, study on charged jet properties, study on counting the MPI via MiniJets -// 4) trigger stream, possibel otion are MB, Jet20, Jet60, Jet120 -// 5) luminosity scenario in pb -// 6) eta region -// 7) Pt of Calo Jet for trigger selection -// 8) cuts on the minimu pt of the tracks in MeV -// 9) cuts on the minimum pt of MiniJet to be used only in case you are running the MPI scheme - -./UEAnalysis listMB_09.dat StreamMB_900_lumi1pb.root UE MB 1 2 0 900 0 diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysis.cpp b/QCDAnalysis/UEAnalysis/root/UEAnalysis.cpp deleted file mode 100644 index 7b31f25436119..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysis.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include - -#include "Riostream.h" -#include "TROOT.h" -#include "TTree.h" -#include "TChain.h" -#include "TMath.h" -#include "TRef.h" -#include "TRefArray.h" -#include "TH1.h" -#include "TH2.h" -#include "TDatabasePDG.h" - -#include -#include -#include -#include -#include "UEAnalysisOnRootple.h" -using namespace std; - -int main(int argc, char* argv[]) { - - char* filelist = argv[1]; - char* outname = argv[2]; - char* type = argv[3]; - char* jetStream = argv[4]; - Float_t lumi=atof(argv[5]); - Float_t eta=atof(argv[6]); - Float_t triggerPt=atof(argv[7]); - char* tkCut= argv[8]; - Float_t ptCut = atof(argv[9]); - - string Trigger(jetStream); - string AnalysisType(type); - string TracksPt(tkCut); - - Float_t weight[7]; - - Float_t Jet20_900[7]={1.000000,0.254008,0.027852,0.011589,0.002788,0.000531,0.000071}; - Float_t Jet20GlobalWeight_900=9.95; - Float_t Jet60_900[7]={1.000000,0.416103,0.100088,0.019064,0.002536,0.0,0.0}; - Float_t Jet60GlobalWeight_900=1.86; - Float_t Jet120_900[7]={1.000000,0.190474,0.025338,0.0,0.0,0.0,0.0}; - Float_t Jet120GlobalWeight_900=23.43; - Float_t MB_900[7]={1.0,0.0,0.0,0.0,0.0,0.0,0.0}; - Float_t MBGlobalWeight_900=0.104; - - Float_t Jet20_500[7]={1.000000,0.263501,0.026244,0.010588,0.002454,0.000493,0.000067}; - Float_t Jet20GlobalWeight_500=11.32; - Float_t Jet60_500[7]={1.000000,0.403430,0.093489,0.018767,0.002535,0.0,0.0}; - Float_t Jet60GlobalWeight_500=1.99; - Float_t Jet120_500[7]={1.000000,0.200737,0.027111,0.0,0.0,0.0,0.0}; - Float_t Jet120GlobalWeight_500=23.43; - Float_t MB_500[7]={1.0,0.0,0.0,0.0,0.0,0.0,0.0}; - Float_t MBGlobalWeight_500=0.276; - - if(TracksPt=="900"){ - if(Trigger=="Jet20"){ - for(int i=0;i<7;i++){ - weight[i]=Jet20_900[i]*Jet20GlobalWeight_900*lumi*0.1; - } - }else if(Trigger=="Jet60"){ - for(int i=0;i<7;i++) - weight[i]=Jet60_900[i]*Jet60GlobalWeight_900*lumi*0.1; - }else if(Trigger=="Jet120"){ - for(int i=0;i<7;i++) - weight[i]=Jet120_900[i]*Jet120GlobalWeight_900*lumi*0.1; - }else if(Trigger=="MB"){ - for(int i=0;i<7;i++) - weight[i]=MB_900[i]*MBGlobalWeight_900*lumi*0.1; - }else{ - cout<<"Select an undefinde Jet Stream "< -#include -#include -#include - -#include -#include - -UEAnalysisCorrCali::UEAnalysisCorrCali() -{ - std::cout << "UEAnalysisCorrCali constructor " < -#include -#include -#include - -class UEAnalysisCorrCali{ - public : - - UEAnalysisCorrCali(); - ~UEAnalysisCorrCali(){} - - float calibrationPt(float ptReco,std::string tkpt); - float correctionPtTrans(float ptReco,std::string tkpt); - float correctionPtToward(float ptReco,std::string tkpt); - float correctionPtAway(float ptReco,std::string tkpt); - - float correctionNTrans(float ptReco,std::string tkpt); - float correctionNToward(float ptReco,std::string tkpt); - float correctionNAway(float ptReco,std::string tkpt); -}; - -#endif diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisJets.C b/QCDAnalysis/UEAnalysis/root/UEAnalysisJets.C deleted file mode 100644 index 6833eb423875d..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisJets.C +++ /dev/null @@ -1,269 +0,0 @@ -#include "UEAnalysisJets.h" -#include -#include - -UEAnalysisJets::UEAnalysisJets() -{ - std::cout << "UEAnalysisJets constructor " <cd(); - - dr_chgcalo = new TH1F("dr_chgcalo","#Delta R Charged RECO vs Calorimeter",100,0.,10.); - dr_chginc = new TH1F("dr_chginc","#Delta R Charged RECO vs Inclusive",100,0.,10.); - dr_chgmcreco = new TH1F("dr_chgmcreco","#Delta R Charged RECO vs Charged MC",100,0.,10.); - dr_caloinc = new TH1F("dr_caloinc","#Delta R Calorimeter vs Inclusive",100,0.,10.); - numb_cal = new TH1F("numb_cal","Number calo Jet",30,0.,30.); - pT_cal = new TH1F("pT_cal","P_{T} calo",50,0.,50.); - eta_cal = new TH1F("eta_cal","#eta Calo",100,-3.,3.); - eta_cal_res = new TH1F("eta_cal_res","#eta_{calo} - #eta_{inc}",100,-3.,3.); - phi_cal = new TH1F("phi_cal","#phi Calo",50,-3.14,3.14); - phi_cal_res = new TH1F("phi_cal_res","#phi_{calo} - #phi_{inc}",100,-3.,3.); - numb_chgmc = new TH1F("numb_chgmc","Number Charged MC Jet",30,0.,30.); - pT_chgmc = new TH1F("pT_chgmc","P_{T} Charged MC",50,0.,50.); - eta_chgmc = new TH1F("eta_chgmc","#eta Charged MC",100,-3.,3.); - eta_chgmc_res = new TH1F("eta_chgmc_res","#eta_{chg MC} - #eta_{inc}",100,-3.,3.); - phi_chgmc = new TH1F("phi_chgmc","#phi Charged MC",50,-3.14,3.14); - phi_chgmc_res = new TH1F("phi_chgmc_res","#phi_{chg MC} - #phi_{inc}",100,-3.,3.); - numb_chgreco = new TH1F("numb_chgreco","Number Charged RECO Jet",30,0.,30.); - pT_chgreco = new TH1F("pT_chgreco","P_{T} Charged RECO",50,0.,50.); - eta_chgreco = new TH1F("eta_chgreco","#eta Charged RECO",100,-3.,3.); - eta_chgreco_res = new TH1F("eta_chgreco_res","#eta_{chg RECO} - #eta_{inc}",100,-3.,3.); - phi_chgreco = new TH1F("phi_chgreco","#phi Charged RECO",50,-3.14,3.14); - phi_chgreco_res = new TH1F("phi_chgreco_res","#phi_{chg RECO} - #phi_{inc}",100,-3.,3.); - numb_inc = new TH1F("numb_inc","Number Inclusive Jet",30,0.,30.); - pT_inc = new TH1F("pT_inc","P_{T} Inclusive",50,0.,50.); - eta_inc = new TH1F("eta_inc","#eta Inclusive",100,-3.,3.); - phi_inc = new TH1F("phi_inc","#phi Inclusive",50,-3.14,3.14); - calib_chgcalo = new TProfile("calib_chgcalo","#frac{P_{T}^{Chg RECO}}{P_{T}^{Calo}} vs P_{T}^{Calo}",100,0,200,-4,4); - calib_chginc = new TProfile("calib_chginc","#frac{P_{T}^{Chg RECO}}{P_{T}^{Inc}} vs P_{T}^{Inc}",100,0,200,-4,4); - calib_chgmcreco = new TProfile("calib_chgmcreco","#frac{P_{T}^{Chg MC}}{P_{T}^{Chg RECO}} vs P_{T}^{Chg RECO}",100,0,200,-4,4); - calib_caloinc = new TProfile("calib_caloinc","#frac{P_{T}^{Calo}}{P_{T}^{Inc}} vs P_{T}^{Inc}",100,0,200,-4,4); - calib_chgcalo_eta = new TProfile("calib_chgcalo_eta","#frac{P_{T}^{Chg RECO}}{P_{T}^{Calo}} vs #eta^{Calo}",100,-3,3,-4,4); - calib_chginc_eta = new TProfile("calib_chginc_eta","#frac{P_{T}^{Chg RECO}}{P_{T}^{Inc}} vs #eta^{Inc}",100,-3,3,-4,4); - calib_chgmcreco_eta = new TProfile("calib_chgmcreco_eta","#frac{P_{T}^{Chg MC}}{P_{T}^{Chg RECO}} vs #eta^{Chg RECO}",100,-3,3,-4,4); - calib_caloinc_eta = new TProfile("calib_caloinc_eta","#frac{P_{T}^{Calo}}{P_{T}^{Inc}} vs #eta^{Inc}",100,-3,3,-4,4); - calib_chgcalo_phi = new TProfile("calib_chgcalo_phi","#frac{P_{T}^{Chg RECO}}{P_{T}^{Calo}} vs #phi^{Calo}",100,-3,3,-4,4); - calib_chginc_phi = new TProfile("calib_chginc_phi","#frac{P_{T}^{Chg RECO}}{P_{T}^{Inc}} vs #phi^{Inc}",100,-3,3,-4,4); - calib_chgmcreco_phi = new TProfile("calib_chgmcreco_phi","#frac{P_{T}^{Chg MC}}{P_{T}^{Chg RECO}} vs #phi^{Chg RECO}",100,-3,3,-4,4); - calib_caloinc_phi = new TProfile("calib_caloinc_phi","#frac{P_{T}^{Calo}}{P_{T}^{Inc}} vs #phi^{Inc}",100,-3,3,-4,4); - -} - -void UEAnalysisJets::jetCalibAnalysis(float weight,float etaRegion,TClonesArray * InclusiveJet,TClonesArray * ChargedJet,TClonesArray * TracksJet,TClonesArray * CalorimeterJet) -{ - if(InclusiveJet->GetEntries()!=0 && ChargedJet->GetEntries()!=0 && TracksJet->GetEntries()!=0 && CalorimeterJet->GetEntries()!=0){ - - float phiEHJ = -666; - float phiTJ = -666; - float phiIJ = -666; - float phiCJ = -666; - - float ptEHJ = -666; - float ptTJ = -666; - float ptIJ = -666; - float ptCJ = -666; - - float etaEHJ = -666; - float etaTJ = -666; - float etaIJ = -666; - float etaCJ = -666; - - TLorentzVector *m=0; - - int nIncJet=0; - - for(int i=0;iGetSize();++i) { - TLorentzVector *v = (TLorentzVector*)InclusiveJet->At(i); - if(fabs(v->Eta())GetSize();++i) - { - TLorentzVector *v = (TLorentzVector*)TracksJet->At(i); - if(fabs(v->Eta())GetSize();++i) - { - TLorentzVector *v = (TLorentzVector*)ChargedJet->At(i); - if(fabs(v->Eta())GetSize();++i) - { - TLorentzVector *v = (TLorentzVector*)CalorimeterJet->At(i); - if(fabs(v->Eta())Fill(nCaloJet); - numb_chgmc->Fill(nChgMCJet); - numb_chgreco->Fill(nChgRECOJet); - numb_inc->Fill(nIncJet); - - TLorentzVector *IJ0 = (TLorentzVector*)InclusiveJet->At(0); - TLorentzVector *TJ0 = (TLorentzVector*)TracksJet->At(0); - TLorentzVector *CJ0 = (TLorentzVector*)CalorimeterJet->At(0); - - if(fabs(IJ0->Eta())Eta())Fill(IJ0->Eta()-TJ0->Eta()); - phi_chgreco_res->Fill(IJ0->Phi()-TJ0->Phi()); - } - - if(fabs(IJ0->Eta())Eta())Fill(IJ0->Eta()-CJ0->Eta()); - phi_chgreco_res->Fill(IJ0->Phi()-CJ0->Phi()); - } - - for(int i=0;iGetSize();++i) - { - TLorentzVector *v = (TLorentzVector*)InclusiveJet->At(i); - if(fabs(v->Eta())Eta(); - ptIJ = v->Pt(); - phiIJ = v->Phi(); - break; - } - } - - for(int i=0;iGetSize();++i) - { - TLorentzVector *v = (TLorentzVector*)TracksJet->At(i); - if(fabs(v->Eta())Eta(); - ptTJ = v->Pt(); - phiTJ = v->Phi(); - break; - } - } - - for(int i=0;iGetSize();++i) - { - TLorentzVector *v = (TLorentzVector*)ChargedJet->At(i); - if(fabs(v->Eta())Eta(); - ptCJ = v->Pt(); - phiCJ = v->Phi(); - break; - } - } - - for(int i=0;iGetSize();i++) - { - TLorentzVector *v = (TLorentzVector*)CalorimeterJet->At(i); - if(fabs(v->Eta())Eta(); - ptEHJ = v->Pt(); - phiEHJ = v->Phi(); - break; - } - } - - - if(etaEHJ!=-666&&etaTJ!=-666){ - float dPhiEHJTJ = fabs(phiEHJ-phiTJ); - if(dPhiEHJTJ>piG) - dPhiEHJTJ=2*piG-dPhiEHJTJ; - float delR_chgcalo=sqrt((etaEHJ-etaTJ)*(etaEHJ-etaTJ)+dPhiEHJTJ*dPhiEHJTJ); - dr_chgcalo->Fill(delR_chgcalo,weight); - if(ptEHJ>0) - { - calib_chgcalo->Fill(ptEHJ,ptTJ/ptEHJ,weight); - calib_chgcalo_eta->Fill(etaEHJ,ptTJ/ptEHJ,weight); - calib_chgcalo_phi->Fill(phiEHJ,ptTJ/ptEHJ,weight); - } - } - - if(etaIJ!=-666&&etaTJ!=-666){ - float dPhiIJTJ = fabs(phiIJ-phiTJ); - if(dPhiIJTJ>piG) - dPhiIJTJ=2*piG-dPhiIJTJ; - float delR_chginc=sqrt((etaIJ-etaTJ)*(etaIJ-etaTJ)+dPhiIJTJ*dPhiIJTJ); - dr_chginc->Fill(delR_chginc,weight); - if(ptIJ>0) - { - calib_chginc->Fill(ptIJ,ptTJ/ptIJ,weight); - calib_chginc_eta->Fill(etaIJ,ptTJ/ptIJ,weight); - calib_chginc_phi->Fill(phiIJ,ptTJ/ptIJ,weight); - } - } - - if(etaIJ!=-666&&etaCJ!=-666){ - eta_chgmc_res->Fill((etaIJ-etaCJ)); - phi_chgmc_res->Fill((phiIJ-phiCJ)); - } - - if(etaCJ!=-666&&etaTJ!=-666){ - float dPhiCJTJ = fabs(phiCJ-phiTJ); - if(dPhiCJTJ>piG) - dPhiCJTJ=2*piG-dPhiCJTJ; - float delR_chgmcreco=sqrt((etaCJ-etaTJ)*(etaCJ-etaTJ)+dPhiCJTJ*dPhiCJTJ); - dr_chgmcreco->Fill(delR_chgmcreco,weight); - if(ptTJ>0) - { - calib_chgmcreco->Fill(ptTJ,ptCJ/ptTJ,weight); - calib_chgmcreco_eta->Fill(etaTJ,ptCJ/ptTJ,weight); - calib_chgmcreco_phi->Fill(phiTJ,ptCJ/ptTJ,weight); - } - } - - if(etaEHJ!=-666&&etaIJ!=-666){ - float dPhiIJEHJ = fabs(phiEHJ-phiIJ); - if(dPhiIJEHJ>piG) - dPhiIJEHJ=2*piG-dPhiIJEHJ; - float delR_caloinc=sqrt((etaIJ-etaEHJ)*(etaIJ-etaEHJ)+dPhiIJEHJ*dPhiIJEHJ); - dr_caloinc->Fill(delR_caloinc,weight); - if(ptIJ>0) - { - calib_caloinc->Fill(ptIJ,ptEHJ/ptIJ,weight); - calib_caloinc_eta->Fill(etaIJ,ptEHJ/ptIJ,weight); - calib_caloinc_phi->Fill(phiIJ,ptEHJ/ptIJ,weight); - } - } - - if(etaEHJ!=-666){ - pT_cal->Fill(ptEHJ,weight); - eta_cal->Fill(etaEHJ,weight); - phi_cal->Fill(phiEHJ,weight); - } - - if(etaTJ!=-666){ - pT_chgreco->Fill(ptTJ,weight); - eta_chgreco->Fill(etaTJ,weight); - phi_chgreco->Fill(phiTJ,weight); - } - - if(etaCJ!=-666){ - pT_chgmc->Fill(ptCJ,weight); - eta_chgmc->Fill(etaCJ,weight); - phi_chgmc->Fill(phiCJ,weight); - } - - if(etaIJ!=-666){ - pT_inc->Fill(ptIJ,weight); - eta_inc->Fill(etaIJ,weight); - phi_inc->Fill(phiIJ,weight); - } - - } - -} - -void UEAnalysisJets::writeToFile(TFile * file){ - file->Write(); -} diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisJets.h b/QCDAnalysis/UEAnalysis/root/UEAnalysisJets.h deleted file mode 100644 index e2f93bc99911a..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisJets.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef UEAnalysisJets_h -#define UEAnalysisJets_h - -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include - -class UEAnalysisJets { - public : - - UEAnalysisJets(); - ~UEAnalysisJets(){} - void jetCalibAnalysis(float ,float,TClonesArray *,TClonesArray *,TClonesArray *,TClonesArray *); - void writeToFile(TFile *); - - void Begin(TFile *); - - //Charged Jet caharacterization - TH1F* dr_chgcalo; - TH1F* dr_chginc; - TH1F* dr_chgmcreco; - TH1F* dr_caloinc; - TH1F* numb_cal; - TH1F* pT_cal; - TH1F* eta_cal; - TH1F* eta_cal_res; - TH1F* phi_cal; - TH1F* phi_cal_res; - TH1F* numb_chgmc; - TH1F* pT_chgmc; - TH1F* eta_chgmc; - TH1F* eta_chgmc_res; - TH1F* phi_chgmc; - TH1F* phi_chgmc_res; - TH1F* numb_chgreco; - TH1F* pT_chgreco; - TH1F* eta_chgreco; - TH1F* eta_chgreco_res; - TH1F* phi_chgreco; - TH1F* phi_chgreco_res; - TH1F* numb_inc; - TH1F* pT_inc; - TH1F* eta_inc; - TH1F* phi_inc; - TProfile* calib_chgcalo; - TProfile* calib_chginc; - TProfile* calib_chgmcreco; - TProfile* calib_caloinc; - TProfile* calib_chgcalo_eta; - TProfile* calib_chginc_eta; - TProfile* calib_chgmcreco_eta; - TProfile* calib_caloinc_eta; - TProfile* calib_chgcalo_phi; - TProfile* calib_chginc_phi; - TProfile* calib_chgmcreco_phi; - TProfile* calib_caloinc_phi; - - float piG; -}; - -#endif diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisMPI.C b/QCDAnalysis/UEAnalysis/root/UEAnalysisMPI.C deleted file mode 100644 index eb899a0d7f9a9..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisMPI.C +++ /dev/null @@ -1,157 +0,0 @@ -#include "UEAnalysisMPI.h" -#include -#include - -typedef std::pair AssociatedObject; - -UEAnalysisMPI::UEAnalysisMPI() -{ - std::cout << "UEAnalysisMPI constructor " <cd(); - - //MPI Analysis - - fNumbMPIMC = new TH1D("NumbMPIMC","Number of MPI",20,0.5,20.5); - fdEtaLeadingPairMC = new TH1D("dEtaLeadingPairMC","#Delta #eta Jet in the pair",100,-5,5); - fdPhiLeadingPairMC = new TH1D("dPhiLeadingPairMC","#Delta #phi Jet in the pair",40,120,200); - fptRatioLeadingPairMC = new TH1D("ptRatioLeadingPairMC","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet}",100,0,1.2); - pPtRatio_vs_PtJleadMC = new TProfile("PtRation_vs_PtJleadMC","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs P_{T}^{1^{o} Jet}", 100,0.,50.); - pPtRatio_vs_EtaJleadMC = new TProfile("PtRation_vs_EtaJleadMC","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs #eta^{1^{o} Jet}", 100,0.,5.); - pPtRatio_vs_PhiJleadMC = new TProfile("PtRation_vs_PhiJleadMC","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs #phi^{1^{o} Jet}", 101,-4.,4.); - - fNumbMPIRECO = new TH1D("NumbMPIRECO","Number of MPI",20,0.5,20.5); - fdEtaLeadingPairRECO = new TH1D("dEtaLeadingPairRECO","#Delta #eta Jet in the pair",100,-5,5); - fdPhiLeadingPairRECO = new TH1D("dPhiLeadingPairRECO","#Delta #phi Jet in the pair",40,120,200); - fptRatioLeadingPairRECO = new TH1D("ptRatioLeadingPairRECO","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet}",100,0,1.2); - pPtRatio_vs_PtJleadRECO = new TProfile("PtRation_vs_PtJleadRECO","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs P_{T}^{1^{o} Jet}", 100,0.,50.); - pPtRatio_vs_EtaJleadRECO = new TProfile("PtRation_vs_EtaJleadRECO","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs #eta^{1^{o} Jet}", 100,0.,5.); - pPtRatio_vs_PhiJleadRECO = new TProfile("PtRation_vs_PhiJleadRECO","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs #phi^{1^{o} Jet}", 101,-4.,4.); - -} - -void UEAnalysisMPI::mpiAnalysisMC(float weight,float etaRegion,float ptThreshold, TClonesArray* ChargedJet) -{ - std::vector JetMC; - JetMC.clear(); - - for(int j=0;jGetSize();++j){ - TLorentzVector *v = (TLorentzVector*)ChargedJet->At(j); - if(fabs(v->Eta()) assoJetMC; - assoJetMC.clear(); - - while(JetMC.size()>1){ - int oldSize = JetMC.size(); - std::vector::iterator itH = JetMC.begin(); - if((*itH)->Pt()>=ptThreshold){ - for(std::vector::iterator it=JetMC.begin();it!=JetMC.end();it++){ - float azimuthDistanceJet = fabs( (*itH)->Phi() - (*it)->Phi() ); - if((*it)->Pt()/(*itH)->Pt()>=0.3){ - if( (piG - rangePhi) < azimuthDistanceJet && azimuthDistanceJet < (piG + rangePhi)) { - AssociatedObject tmpPair((*itH),(*it)); - assoJetMC.push_back(tmpPair); - JetMC.erase(it); - int newSize = oldSize -1; - oldSize = newSize; - JetMC.resize(newSize); - break; - } - } - } - } - JetMC.erase(itH); - int newSize = oldSize -1; - JetMC.resize(newSize); - } - - if(assoJetMC.size()){ - fNumbMPIMC->Fill(assoJetMC.size()); - std::vector::iterator at= assoJetMC.begin(); - - const TLorentzVector* leadingJet((*at).first); - const TLorentzVector* secondJet((*at).second); - - pPtRatio_vs_PtJleadMC->Fill(leadingJet->Pt(),(secondJet->Pt()/leadingJet->Pt())); - pPtRatio_vs_EtaJleadMC->Fill(fabs(leadingJet->Eta()),(secondJet->Pt()/leadingJet->Pt())); - pPtRatio_vs_PhiJleadMC->Fill(leadingJet->Phi(),(secondJet->Pt()/leadingJet->Pt())); - - fdEtaLeadingPairMC->Fill(leadingJet->Eta()-secondJet->Eta()); - float dPhiJet = fabs(leadingJet->Phi()-secondJet->Phi()); - if(dPhiJet> piG) dPhiJet = 2*piG -dPhiJet; - dPhiJet = (180*dPhiJet)/piG; - fdPhiLeadingPairMC->Fill(dPhiJet); - fptRatioLeadingPairMC->Fill(secondJet->Pt()/leadingJet->Pt()); - } -} - -void UEAnalysisMPI::mpiAnalysisRECO(float weight,float etaRegion,float ptThreshold,TClonesArray * TracksJet) -{ - std::vector JetRECO; - JetRECO.clear(); - - for(int j=0;jGetSize();++j){ - TLorentzVector *v = (TLorentzVector*)TracksJet->At(j); - if(fabs(v->Eta()) assoJetRECO; - assoJetRECO.clear(); - - while(JetRECO.size()>1){ - int oldSize = JetRECO.size(); - std::vector::iterator itH = JetRECO.begin(); - if((*itH)->Pt()>=ptThreshold){ - for(std::vector::iterator it=JetRECO.begin();it!=JetRECO.end();it++){ - float azimuthDistanceJet = fabs( (*itH)->Phi() - (*it)->Phi() ); - if((*it)->Pt()/(*itH)->Pt()>=0.3){ - if( (piG - rangePhi) < azimuthDistanceJet && azimuthDistanceJet < (piG + rangePhi)) { - AssociatedObject tmpPair((*itH),(*it)); - assoJetRECO.push_back(tmpPair); - JetRECO.erase(it); - int newSize = oldSize -1; - oldSize = newSize; - JetRECO.resize(newSize); - break; - } - } - } - } - JetRECO.erase(itH); - int newSize = oldSize -1; - JetRECO.resize(newSize); - } - - if(assoJetRECO.size()){ - fNumbMPIRECO->Fill(assoJetRECO.size()); - std::vector::iterator at= assoJetRECO.begin(); - - const TLorentzVector* leadingJet((*at).first); - const TLorentzVector* secondJet((*at).second); - - pPtRatio_vs_PtJleadRECO->Fill(leadingJet->Pt(),(secondJet->Pt()/leadingJet->Pt())); - pPtRatio_vs_EtaJleadRECO->Fill(fabs(leadingJet->Eta()),(secondJet->Pt()/leadingJet->Pt())); - pPtRatio_vs_PhiJleadRECO->Fill(leadingJet->Phi(),(secondJet->Pt()/leadingJet->Pt())); - - fdEtaLeadingPairRECO->Fill(leadingJet->Eta()-secondJet->Eta()); - float dPhiJet = fabs(leadingJet->Phi()-secondJet->Phi()); - if(dPhiJet> piG) dPhiJet = 2*piG -dPhiJet; - dPhiJet = (180*dPhiJet)/piG; - fdPhiLeadingPairRECO->Fill(dPhiJet); - fptRatioLeadingPairRECO->Fill(secondJet->Pt()/leadingJet->Pt()); - } -} - -void UEAnalysisMPI::writeToFile(TFile * file){ - file->Write(); -} diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisMPI.h b/QCDAnalysis/UEAnalysis/root/UEAnalysisMPI.h deleted file mode 100644 index 32737c0573458..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisMPI.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef UEAnalysisMPI_h -#define UEAnalysisMPI_h - -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -class UEAnalysisMPI { - public : - - UEAnalysisMPI(); - ~UEAnalysisMPI(){} - - void mpiAnalysisMC(float,float,float,TClonesArray*); - void mpiAnalysisRECO(float,float,float,TClonesArray*); - - void Begin(TFile *); - - void writeToFile(TFile *); - - TH1D* fNumbMPIMC; - TH1D* fdEtaLeadingPairMC; - TH1D* fdPhiLeadingPairMC; - TH1D* fptRatioLeadingPairMC; - TProfile* pPtRatio_vs_PtJleadMC; - TProfile* pPtRatio_vs_EtaJleadMC; - TProfile* pPtRatio_vs_PhiJleadMC; - - TH1D* fNumbMPIRECO; - TH1D* fdEtaLeadingPairRECO; - TH1D* fdPhiLeadingPairRECO; - TH1D* fptRatioLeadingPairRECO; - TProfile* pPtRatio_vs_PtJleadRECO; - TProfile* pPtRatio_vs_EtaJleadRECO; - TProfile* pPtRatio_vs_PhiJleadRECO; - - float piG; - float rangePhi; -}; - -#endif diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisOnRootple.C b/QCDAnalysis/UEAnalysis/root/UEAnalysisOnRootple.C deleted file mode 100644 index ed34de609eb03..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisOnRootple.C +++ /dev/null @@ -1,1052 +0,0 @@ -#define UEAnalysisOnRootple_cxx -#include "UEAnalysisOnRootple.h" -#include -#include -#include -#include - -#include -#include - -// -#include -#include -// - -typedef std::pair AssociatedObject; - -void UEAnalysisOnRootple::MultiAnalysis(char* filelist,char* outname,Float_t weight[7],Float_t eta, - Float_t triggerPt,std::string type,std::string trigger,std::string tkpt,Float_t ptCut) -{ - BeginJob(outname); - etaRegion = eta; - ptThreshold = ptCut/1000.; - char RootTupleName[255]; - char RootListFileName[255]; - strcpy(RootListFileName,filelist); - ifstream inFile(RootListFileName); - int filenumber = 0; - while(inFile.getline(RootTupleName,255)) { - if (RootTupleName[0] != '#') { - std::cout<<"I'm analyzing file "<cd("ueAnalysisRootple"); - - TTree * tree = (TTree*)gDirectory->Get("AnalysisTree"); - Init(tree); - - Loop(weight[filenumber],triggerPt,type,trigger,tkpt); - - f->Close(); - - } else { - if (RootTupleName[1] == '#') break; - } - filenumber++; - } - - EndJob(); - -} - - -void UEAnalysisOnRootple::Loop(Float_t we,Float_t triggerPt,std::string type,std::string trigger,std::string tkpt) -{ - if (fChain == 0) - { - std::cout << "fChain == 0 return." << std::endl; - return; - } - - Long64_t nentries = fChain->GetEntriesFast(); - - std::cout << "number of entries: " << nentries << std::endl; - - - Long64_t nbytes = 0, nb = 0; - for (Long64_t jentry=0; jentryGetEntry(jentry); nbytes += nb; - - -// int nAcceptedTriggers( acceptedTriggers->GetSize() ); -// if (nAcceptedTriggers) std::cout << std::endl << "Event has been accepted by " << acceptedTriggers->GetSize() << std::endl; -// for ( int iAcceptedTrigger(0); iAcceptedTriggerAt(iAcceptedTrigger))->GetName() << std::endl; -// } - - if(type=="Jet"){ - if(trigger=="MB"){ - if( EventKind != 92 && EventKind != 93 && EventKind != 94 ){ - JetCalibAnalysis(we,tkpt); - } - }else{ - if(TrasverseMomentumEHJ[0]>=triggerPt) - JetCalibAnalysis(we,tkpt); - } - } - if(type=="MPI"){ - if(trigger=="MB"){ - if( EventKind != 92 && EventKind != 93 && EventKind != 94 ){ - MPIAnalysisMC(we,tkpt); - MPIAnalysisRECO(we,tkpt); - } - }else{ - if(TrasverseMomentumEHJ[0]>=triggerPt){ - MPIAnalysisMC(we,tkpt); - MPIAnalysisRECO(we,tkpt); - } - } - } - if(type=="UE"){ - if(trigger=="MB"){ - if( EventKind != 92 && EventKind != 93 && EventKind != 94 ){ - UEAnalysisMC(we,tkpt); - UEAnalysisRECO(we,tkpt); - } - }else{ - if(TrasverseMomentumEHJ[0]>=triggerPt){ - UEAnalysisMC(we,tkpt); - UEAnalysisRECO(we,tkpt); - } - } - } - } -} - -void UEAnalysisOnRootple::UEAnalysisMC(Float_t weight,std::string tkpt) -{ - - for(int i=0;i=ptThreshold){ - fHistPtDistMC->Fill(TransverseMomentumMC[i],weight); - fHistEtaDistMC->Fill(EtaMC[i],weight); - fHistPhiDistMC->Fill(PhiMC[i],weight); - temp3MC->Fill(fabs(EtaMC[i])); - temp4MC->Fill(fabs(TransverseMomentumMC[i])); - } - } - - - for(int i=0;i<100;i++){ - pdN_vs_etaMC->Fill((i*0.05)+0.025,temp3MC->GetBinContent(i+1)/0.1,weight); - } - for(int i=0;i<1000;i++){ - pdN_vs_ptMC->Fill((i*0.1)+0.05,temp4MC->GetBinContent(i+1)/0.1,weight); - } - - temp3MC->Reset(); - temp4MC->Reset(); - - // get 3-vector of jet - TVector3 * jetvector = new TVector3; - Float_t PTLeadingCJ = -10; - for(int j=0;jSetPtEtaPhi(TrasverseMomentumCJ[j], EtaCJ[j], PhiCJ[j]); - PTLeadingCJ= TrasverseMomentumCJ[j]; - break; - } - } - - for(int i=0;i=ptThreshold){ - // get 3-vector of particle - TVector3 * particlevector = new TVector3; - particlevector->SetPtEtaPhi(TransverseMomentumMC[i], EtaMC[i], PhiMC[i]); - - // use ROOT method to calculate dphi - // convert dphi from radiants to degrees - Float_t conv = 180/piG; - Float_t Dphi_mc = conv * jetvector->DeltaPhi(*particlevector); - - temp1MC->Fill(Dphi_mc); - temp2MC->Fill(Dphi_mc,TransverseMomentumMC[i]); - } - } - - Float_t transN1=0; - Float_t transN2=0; - Float_t transP1=0; - Float_t transP2=0; - Float_t towardN=0; - Float_t towardP=0; - Float_t awayN=0; - Float_t awayP=0; - - for(int i=0;i<100;i++){ - if(i<=14){ - awayN += temp1MC->GetBinContent(i+1); - awayP += temp2MC->GetBinContent(i+1); - } - if(i>14 && i<33 ){ - transN1 += temp1MC->GetBinContent(i+1); - transP1 += temp2MC->GetBinContent(i+1); - } - if(i>=33 && i<=64 ){ - towardN += temp1MC->GetBinContent(i+1); - towardP += temp2MC->GetBinContent(i+1); - } - if(i>64 && i<83 ){ - transN2 += temp1MC->GetBinContent(i+1); - transP2 += temp2MC->GetBinContent(i+1); - } - if(i>=83){ - awayN += temp1MC->GetBinContent(i+1); - awayP += temp2MC->GetBinContent(i+1); - } - - Float_t bincont1_mc=temp1MC->GetBinContent(i+1); - pdN_vs_dphiMC->Fill(-180.+i*3.6+1.8,bincont1_mc/(3.6*2*etaRegion*(piG/180.)),weight); - - Float_t bincont2_mc=temp2MC->GetBinContent(i+1); - pdPt_vs_dphiMC->Fill(-180.+i*3.6+1.8,bincont2_mc/(3.6*2*etaRegion*(piG/180.)),weight); - - } - - bool orderedN = false; - bool orderedP = false; - - pdN_vs_ptJTowardMC->Fill(PTLeadingCJ,(towardN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTowardMC->Fill(PTLeadingCJ,(towardP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJAwayMC->Fill(PTLeadingCJ,(awayN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJAwayMC->Fill(PTLeadingCJ,(awayP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - if( transN1>=transN2 ) orderedN = true; - if( transP1>=transP2 ) orderedP = true; - - // add histo for ue fluctuation - h2d_dN_vs_ptJTransMC->Fill(PTLeadingCJ,(transN1+transN2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMC->Fill(PTLeadingCJ,(transN1+transN2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMC->Fill(PTLeadingCJ,(transP1+transP2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - if(orderedN){ - pdN_vs_ptJTransMinMC->Fill(PTLeadingCJ,transN2/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transN1/(60.*(2*etaRegion)*(piG/180.)),weight); - }else{ - pdN_vs_ptJTransMinMC->Fill(PTLeadingCJ,transN1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transN2/(60.*(2.*etaRegion)*(piG/180.)),weight); - } - - if(orderedP){ - pdPt_vs_ptJTransMinMC->Fill(PTLeadingCJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - }else{ - pdPt_vs_ptJTransMinMC->Fill(PTLeadingCJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - } - temp1MC->Reset(); - temp2MC->Reset(); - -} - -void UEAnalysisOnRootple::UEAnalysisRECO(Float_t weight,std::string tkpt) -{ - - for(int i=0;iptThreshold){ - fHistPtDistRECO->Fill(TrasverseMomentumTK[i],weight); - fHistEtaDistRECO->Fill(EtaTK[i],weight); - fHistPhiDistRECO->Fill(PhiTK[i],weight); - temp3RECO->Fill(fabs(EtaTK[i])); - temp4RECO->Fill(fabs(TrasverseMomentumTK[i])); - } - } - - - for(int i=0;i<100;i++){ - pdN_vs_etaRECO->Fill((i*0.05)+0.025,temp3RECO->GetBinContent(i+1)/0.1,weight); - } - for(int i=0;i<1000;i++){ - pdN_vs_ptRECO->Fill((i*0.1)+0.05,temp4RECO->GetBinContent(i+1)/0.1,weight); - } - - temp3RECO->Reset(); - temp4RECO->Reset(); - - // get 3-vector of jet - TVector3 * jetvector = new TVector3; - Float_t PTLeadingTJ = -10; - for(int j=0;jSetPtEtaPhi(TrasverseMomentumTJ[j], EtaTJ[j], PhiTJ[j]); - PTLeadingTJ= TrasverseMomentumTJ[j]; - break; - } - } - - Float_t PTLeadingCJ = CalibrationPt(PTLeadingTJ,tkpt)*PTLeadingTJ; - - /* - Float_t PTLeadingCJ = -10; - if(NumberChargedJet>0) - PTLeadingCJ=TrasverseMomentumCJ[0]; - */ - - for(int i=0;i=ptThreshold){ - TVector3 * particlevector = new TVector3; - particlevector->SetPtEtaPhi(TrasverseMomentumTK[i], EtaTK[i], PhiTK[i]); - - // use ROOT method to calculate dphi - // convert dphi from radiants to degrees - Float_t conv = 180/piG; - Float_t Dphi_reco = conv * jetvector->DeltaPhi(*particlevector); - - temp1RECO->Fill(Dphi_reco); - temp2RECO->Fill(Dphi_reco,TrasverseMomentumTK[i]); - } - } - - Float_t transN1=0; - Float_t transN2=0; - Float_t transP1=0; - Float_t transP2=0; - Float_t towardN=0; - Float_t towardP=0; - Float_t awayN=0; - Float_t awayP=0; - - for(int i=0;i<100;i++){ - if(i<=14){ - awayN += temp1RECO->GetBinContent(i+1); - awayP += temp2RECO->GetBinContent(i+1); - } - if(i>14 && i<33 ){ - transN1 += temp1RECO->GetBinContent(i+1); - transP1 += temp2RECO->GetBinContent(i+1); - } - if(i>=33 && i<=64 ){ - towardN += temp1RECO->GetBinContent(i+1); - towardP += temp2RECO->GetBinContent(i+1); - } - if(i>64 && i<83 ){ - transN2 += temp1RECO->GetBinContent(i+1); - transP2 += temp2RECO->GetBinContent(i+1); - } - if(i>=83){ - awayN += temp1RECO->GetBinContent(i+1); - awayP += temp2RECO->GetBinContent(i+1); - } - - Float_t bincont1_reco=temp1RECO->GetBinContent(i+1); - pdN_vs_dphiRECO->Fill(-180.+i*3.6+1.8,bincont1_reco/(3.6*2*etaRegion*(piG/180.)),weight); - - Float_t bincont2_reco=temp2RECO->GetBinContent(i+1); - pdPt_vs_dphiRECO->Fill(-180.+i*3.6+1.8,bincont2_reco/(3.6*2*etaRegion*(piG/180.)),weight); - - } - - bool orderedN = false; - bool orderedP = false; - - pdN_vs_ptJTowardRECO->Fill(PTLeadingTJ,(towardN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTowardRECO->Fill(PTLeadingTJ,(towardP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJAwayRECO->Fill(PTLeadingTJ,(awayN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJAwayRECO->Fill(PTLeadingTJ,(awayP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTowardRECO->Fill(PTLeadingCJ,(towardN*CorrectionNToward(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTowardRECO->Fill(PTLeadingCJ,(towardP*CorrectionPtToward(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJAwayRECO->Fill(PTLeadingCJ,(awayN*CorrectionNAway(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJAwayRECO->Fill(PTLeadingCJ,(awayP*CorrectionPtAway(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - /* - pdN_vs_ptCJTowardRECO->Fill(PTLeadingCJ,(towardN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTowardRECO->Fill(PTLeadingCJ,(towardP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJAwayRECO->Fill(PTLeadingCJ,(awayN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJAwayRECO->Fill(PTLeadingCJ,(awayP)/(120.*(2*etaRegion)*(piG/180.)),weight); - */ - - if( transN1>=transN2 ) orderedN = true; - if( transP1>=transP2 ) orderedP = true; - - pdN_vs_ptJTransRECO->Fill(PTLeadingTJ,(transN1+transN2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransRECO->Fill(PTLeadingTJ,(transP1+transP2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransRECO->Fill(PTLeadingCJ,((transN1+transN2)*CorrectionNTrans(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransRECO->Fill(PTLeadingCJ,((transP1+transP2)*CorrectionPtTrans(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - /* - pdN_vs_ptCJTransRECO->Fill(PTLeadingCJ,((transN1+transN2))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransRECO->Fill(PTLeadingCJ,((transP1+transP2))/(120.*(2*etaRegion)*(piG/180.)),weight); - */ - - if(orderedN){ - - pdN_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transN2/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transN1/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN2*CorrectionNTrans(PTLeadingTJ,tkpt))/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN1*CorrectionNTrans(PTLeadingTJ,tkpt))/(60.*(2*etaRegion)*(piG/180.)),weight); - - /* - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN2)/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN1)/(60.*(2*etaRegion)*(piG/180.)),weight); - */ - - }else{ - - pdN_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transN1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transN2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN1*CorrectionNTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN2*CorrectionNTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - /* - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN1)/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN2)/(60.*(2*etaRegion)*(piG/180.)),weight); - */ - - } - - if(orderedP){ - - pdPt_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP2*CorrectionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP1*CorrectionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - /* - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP2)/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP1)/(60.*(2.*etaRegion)*(piG/180.)),weight); - */ - - }else{ - - pdPt_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP1*CorrectionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP2*CorrectionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - /* - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP1)/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP2)/(60.*(2.*etaRegion)*(piG/180.)),weight); - */ - } - temp1RECO->Reset(); - temp2RECO->Reset(); - -} - -void UEAnalysisOnRootple::MPIAnalysisMC(Float_t weight,std::string tkpt) -{ - std::vector JetMC; - JetMC.clear(); - - for(int j=0;jSetPtEtaPhi(TrasverseMomentumCJ[j], EtaCJ[j], PhiCJ[j]); - JetMC.push_back(jetvector); - } - } - - std::vector assoJetMC; - assoJetMC.clear(); - - while(JetMC.size()>1){ - int oldSize = JetMC.size(); - std::vector::iterator itH = JetMC.begin(); - if((*itH)->Pt()>=ptThreshold){ - for(std::vector::iterator it=JetMC.begin();it!=JetMC.end();it++){ - float azimuthDistanceJet = fabs( (*itH)->Phi() - (*it)->Phi() ); - if((*it)->Pt()/(*itH)->Pt()>=0.3){ - if( (piG - rangePhi) < azimuthDistanceJet && azimuthDistanceJet < (piG + rangePhi)) { - AssociatedObject tmpPair((*itH),(*it)); - assoJetMC.push_back(tmpPair); - JetMC.erase(it); - int newSize = oldSize -1; - oldSize = newSize; - JetMC.resize(newSize); - break; - } - } - } - } - JetMC.erase(itH); - int newSize = oldSize -1; - JetMC.resize(newSize); - } - - if(assoJetMC.size()){ - fNumbMPIMC->Fill(assoJetMC.size()); - std::vector::iterator at= assoJetMC.begin(); - - const TVector3* leadingJet((*at).first); - const TVector3* secondJet((*at).second); - - pPtRatio_vs_PtJleadMC->Fill(leadingJet->Pt(),(secondJet->Pt()/leadingJet->Pt())); - pPtRatio_vs_EtaJleadMC->Fill(fabs(leadingJet->Eta()),(secondJet->Pt()/leadingJet->Pt())); - pPtRatio_vs_PhiJleadMC->Fill(leadingJet->Phi(),(secondJet->Pt()/leadingJet->Pt())); - - fdEtaLeadingPairMC->Fill(leadingJet->Eta()-secondJet->Eta()); - float dPhiJet = fabs(leadingJet->Phi()-secondJet->Phi()); - if(dPhiJet> piG) dPhiJet = 2*piG -dPhiJet; - dPhiJet = (180*dPhiJet)/piG; - fdPhiLeadingPairMC->Fill(dPhiJet); - fptRatioLeadingPairMC->Fill(secondJet->Pt()/leadingJet->Pt()); - } -} - -void UEAnalysisOnRootple::MPIAnalysisRECO(Float_t weight,std::string tkpt) -{ - std::vector JetRECO; - JetRECO.clear(); - - for(int j=0;jSetPtEtaPhi(CalibrationPt(TrasverseMomentumTJ[j],tkpt)*TrasverseMomentumTJ[j], EtaTJ[j], PhiTJ[j]); - jetvector->SetPtEtaPhi(TrasverseMomentumTJ[j], EtaTJ[j], PhiTJ[j]); - JetRECO.push_back(jetvector); - } - } - - std::vector assoJetRECO; - assoJetRECO.clear(); - - while(JetRECO.size()>1){ - int oldSize = JetRECO.size(); - std::vector::iterator itH = JetRECO.begin(); - if((*itH)->Pt()>=ptThreshold){ - for(std::vector::iterator it=JetRECO.begin();it!=JetRECO.end();it++){ - float azimuthDistanceJet = fabs( (*itH)->Phi() - (*it)->Phi() ); - if((*it)->Pt()/(*itH)->Pt()>=0.3){ - if( (piG - rangePhi) < azimuthDistanceJet && azimuthDistanceJet < (piG + rangePhi)) { - AssociatedObject tmpPair((*itH),(*it)); - assoJetRECO.push_back(tmpPair); - JetRECO.erase(it); - int newSize = oldSize -1; - oldSize = newSize; - JetRECO.resize(newSize); - break; - } - } - } - } - JetRECO.erase(itH); - int newSize = oldSize -1; - JetRECO.resize(newSize); - } - - if(assoJetRECO.size()){ - fNumbMPIRECO->Fill(assoJetRECO.size()); - std::vector::iterator at= assoJetRECO.begin(); - - const TVector3* leadingJet((*at).first); - const TVector3* secondJet((*at).second); - - pPtRatio_vs_PtJleadRECO->Fill(leadingJet->Pt(),(secondJet->Pt()/leadingJet->Pt())); - pPtRatio_vs_EtaJleadRECO->Fill(fabs(leadingJet->Eta()),(secondJet->Pt()/leadingJet->Pt())); - pPtRatio_vs_PhiJleadRECO->Fill(leadingJet->Phi(),(secondJet->Pt()/leadingJet->Pt())); - - fdEtaLeadingPairRECO->Fill(leadingJet->Eta()-secondJet->Eta()); - float dPhiJet = fabs(leadingJet->Phi()-secondJet->Phi()); - if(dPhiJet> piG) dPhiJet = 2*piG -dPhiJet; - dPhiJet = (180*dPhiJet)/piG; - fdPhiLeadingPairRECO->Fill(dPhiJet); - fptRatioLeadingPairRECO->Fill(secondJet->Pt()/leadingJet->Pt()); - } -} - -void UEAnalysisOnRootple::JetCalibAnalysis(Float_t weight,std::string tkpt) -{ - - if(NumberCaloJet!=0&&NumberChargedJet!=0&&NumberTracksJet!=0&&NumberInclusiveJet!=0){ - - float phiEHJ = -666; - float phiTJ = -666; - float phiIJ = -666; - float phiCJ = -666; - - float ptEHJ = -666; - float ptTJ = -666; - float ptIJ = -666; - float ptCJ = -666; - - float etaEHJ = -666; - float etaTJ = -666; - float etaIJ = -666; - float etaCJ = -666; - - int nIncJet=0; - for(int i=0;iFill(nCaloJet); - numb_chgmc->Fill(nChgMCJet); - numb_chgreco->Fill(nChgRECOJet); - numb_inc->Fill(nIncJet); - - if(fabs(EtaIJ[0])Fill((EtaIJ[0]-EtaTJ[0])); - phi_chgreco_res->Fill((PhiIJ[0]-PhiTJ[0])); - } - - if(fabs(EtaIJ[0])Fill((EtaIJ[0]-EtaEHJ[0])); - phi_cal_res->Fill((PhiIJ[0]-PhiEHJ[0])); - } - - for(int i=0;ipiG) - dPhiEHJTJ=2*piG-dPhiEHJTJ; - float delR_chgcalo=sqrt((etaEHJ-etaTJ)*(etaEHJ-etaTJ)+dPhiEHJTJ*dPhiEHJTJ); - dr_chgcalo->Fill(delR_chgcalo,weight); - if(ptEHJ>0) - { - calib_chgcalo->Fill(ptEHJ,ptTJ/ptEHJ,weight); - calib_chgcalo_eta->Fill(etaEHJ,ptTJ/ptEHJ,weight); - calib_chgcalo_phi->Fill(phiEHJ,ptTJ/ptEHJ,weight); - } - } - - if(etaIJ!=-666&&etaTJ!=-666){ - float dPhiIJTJ = fabs(phiIJ-phiTJ); - if(dPhiIJTJ>piG) - dPhiIJTJ=2*piG-dPhiIJTJ; - float delR_chginc=sqrt((etaIJ-etaTJ)*(etaIJ-etaTJ)+dPhiIJTJ*dPhiIJTJ); - dr_chginc->Fill(delR_chginc,weight); - if(ptIJ>0) - { - calib_chginc->Fill(ptIJ,ptTJ/ptIJ,weight); - calib_chginc_eta->Fill(etaIJ,ptTJ/ptIJ,weight); - calib_chginc_phi->Fill(phiIJ,ptTJ/ptIJ,weight); - } - } - - if(etaIJ!=-666&&etaCJ!=-666){ - eta_chgmc_res->Fill((etaIJ-etaCJ)); - phi_chgmc_res->Fill((phiIJ-phiCJ)); - } - - if(etaCJ!=-666&&etaTJ!=-666){ - float dPhiCJTJ = fabs(phiCJ-phiTJ); - if(dPhiCJTJ>piG) - dPhiCJTJ=2*piG-dPhiCJTJ; - float delR_chgmcreco=sqrt((etaCJ-etaTJ)*(etaCJ-etaTJ)+dPhiCJTJ*dPhiCJTJ); - dr_chgmcreco->Fill(delR_chgmcreco,weight); - if(ptTJ>0) - { - calib_chgmcreco->Fill(ptTJ,ptCJ/ptTJ,weight); - calib_chgmcreco_eta->Fill(etaTJ,ptCJ/ptTJ,weight); - calib_chgmcreco_phi->Fill(phiTJ,ptCJ/ptTJ,weight); - } - } - - if(etaEHJ!=-666&&etaIJ!=-666){ - float dPhiIJEHJ = fabs(phiEHJ-phiIJ); - if(dPhiIJEHJ>piG) - dPhiIJEHJ=2*piG-dPhiIJEHJ; - float delR_caloinc=sqrt((etaIJ-etaEHJ)*(etaIJ-etaEHJ)+dPhiIJEHJ*dPhiIJEHJ); - dr_caloinc->Fill(delR_caloinc,weight); - if(ptIJ>0) - { - calib_caloinc->Fill(ptIJ,ptEHJ/ptIJ,weight); - calib_caloinc_eta->Fill(etaIJ,ptEHJ/ptIJ,weight); - calib_caloinc_phi->Fill(phiIJ,ptEHJ/ptIJ,weight); - } - } - - if(etaEHJ!=-666){ - pT_cal->Fill(ptEHJ,weight); - eta_cal->Fill(etaEHJ,weight); - phi_cal->Fill(phiEHJ,weight); - } - - if(etaTJ!=-666){ - pT_chgreco->Fill(ptTJ,weight); - eta_chgreco->Fill(etaTJ,weight); - phi_chgreco->Fill(phiTJ,weight); - } - - if(etaCJ!=-666){ - pT_chgmc->Fill(ptCJ,weight); - eta_chgmc->Fill(etaCJ,weight); - phi_chgmc->Fill(phiCJ,weight); - } - - if(etaIJ!=-666){ - pT_inc->Fill(ptIJ,weight); - eta_inc->Fill(etaIJ,weight); - phi_inc->Fill(phiIJ,weight); - } - - } - -} - - - -void UEAnalysisOnRootple::BeginJob(char* outname) -{ - - hFile = new TFile(outname, "RECREATE" ); - //Charged Jet caharacterization - dr_chgcalo = new TH1F("dr_chgcalo","#Delta R Charged RECO vs Calorimeter",100,0.,10.); - dr_chginc = new TH1F("dr_chginc","#Delta R Charged RECO vs Inclusive",100,0.,10.); - dr_chgmcreco = new TH1F("dr_chgmcreco","#Delta R Charged RECO vs Charged MC",100,0.,10.); - dr_caloinc = new TH1F("dr_caloinc","#Delta R Calorimeter vs Inclusive",100,0.,10.); - numb_cal = new TH1F("numb_cal","Number calo Jet",30,0.,30.); - pT_cal = new TH1F("pT_cal","P_{T} calo",50,0.,50.); - eta_cal = new TH1F("eta_cal","#eta Calo",100,-3.,3.); - eta_cal_res = new TH1F("eta_cal_res","#eta_{calo} - #eta_{inc}",100,-3.,3.); - phi_cal = new TH1F("phi_cal","#phi Calo",50,-3.14,3.14); - phi_cal_res = new TH1F("phi_cal_res","#phi_{calo} - #phi_{inc}",100,-3.,3.); - numb_chgmc = new TH1F("numb_chgmc","Number Charged MC Jet",30,0.,30.); - pT_chgmc = new TH1F("pT_chgmc","P_{T} Charged MC",50,0.,50.); - eta_chgmc = new TH1F("eta_chgmc","#eta Charged MC",100,-3.,3.); - eta_chgmc_res = new TH1F("eta_chgmc_res","#eta_{chg MC} - #eta_{inc}",100,-3.,3.); - phi_chgmc = new TH1F("phi_chgmc","#phi Charged MC",50,-3.14,3.14); - phi_chgmc_res = new TH1F("phi_chgmc_res","#phi_{chg MC} - #phi_{inc}",100,-3.,3.); - numb_chgreco = new TH1F("numb_chgreco","Number Charged RECO Jet",30,0.,30.); - pT_chgreco = new TH1F("pT_chgreco","P_{T} Charged RECO",50,0.,50.); - eta_chgreco = new TH1F("eta_chgreco","#eta Charged RECO",100,-3.,3.); - eta_chgreco_res = new TH1F("eta_chgreco_res","#eta_{chg RECO} - #eta_{inc}",100,-3.,3.); - phi_chgreco = new TH1F("phi_chgreco","#phi Charged RECO",50,-3.14,3.14); - phi_chgreco_res = new TH1F("phi_chgreco_res","#phi_{chg RECO} - #phi_{inc}",100,-3.,3.); - numb_inc = new TH1F("numb_inc","Number Inclusive Jet",30,0.,30.); - pT_inc = new TH1F("pT_inc","P_{T} Inclusive",50,0.,50.); - eta_inc = new TH1F("eta_inc","#eta Inclusive",100,-3.,3.); - phi_inc = new TH1F("phi_inc","#phi Inclusive",50,-3.14,3.14); - calib_chgcalo = new TProfile("calib_chgcalo","#frac{P_{T}^{Chg RECO}}{P_{T}^{Calo}} vs P_{T}^{Calo}",100,0,200,-4,4); - calib_chginc = new TProfile("calib_chginc","#frac{P_{T}^{Chg RECO}}{P_{T}^{Inc}} vs P_{T}^{Inc}",100,0,200,-4,4); - calib_chgmcreco = new TProfile("calib_chgmcreco","#frac{P_{T}^{Chg MC}}{P_{T}^{Chg RECO}} vs P_{T}^{Chg RECO}",100,0,200,-4,4); - calib_caloinc = new TProfile("calib_caloinc","#frac{P_{T}^{Calo}}{P_{T}^{Inc}} vs P_{T}^{Inc}",100,0,200,-4,4); - calib_chgcalo_eta = new TProfile("calib_chgcalo_eta","#frac{P_{T}^{Chg RECO}}{P_{T}^{Calo}} vs #eta^{Calo}",100,-3,3,-4,4); - calib_chginc_eta = new TProfile("calib_chginc_eta","#frac{P_{T}^{Chg RECO}}{P_{T}^{Inc}} vs #eta^{Inc}",100,-3,3,-4,4); - calib_chgmcreco_eta = new TProfile("calib_chgmcreco_eta","#frac{P_{T}^{Chg MC}}{P_{T}^{Chg RECO}} vs #eta^{Chg RECO}",100,-3,3,-4,4); - calib_caloinc_eta = new TProfile("calib_caloinc_eta","#frac{P_{T}^{Calo}}{P_{T}^{Inc}} vs #eta^{Inc}",100,-3,3,-4,4); - calib_chgcalo_phi = new TProfile("calib_chgcalo_phi","#frac{P_{T}^{Chg RECO}}{P_{T}^{Calo}} vs #phi^{Calo}",100,-3,3,-4,4); - calib_chginc_phi = new TProfile("calib_chginc_phi","#frac{P_{T}^{Chg RECO}}{P_{T}^{Inc}} vs #phi^{Inc}",100,-3,3,-4,4); - calib_chgmcreco_phi = new TProfile("calib_chgmcreco_phi","#frac{P_{T}^{Chg MC}}{P_{T}^{Chg RECO}} vs #phi^{Chg RECO}",100,-3,3,-4,4); - calib_caloinc_phi = new TProfile("calib_caloinc_phi","#frac{P_{T}^{Calo}}{P_{T}^{Inc}} vs #phi^{Inc}",100,-3,3,-4,4); - - //Underlying Event analysis - fHistPtDistMC = new TH1F( "HistPtDistMC" , "Pt Spectra", 100, 0., 4. ) ; - fHistEtaDistMC = new TH1F( "HistEtaDistMC" , "#eta Spectra", 100, -5., 5. ) ; - fHistPhiDistMC = new TH1F( "HistPhiDistMC" , "#phi Spectra", 100, -4., 4. ) ; - - pdN_vs_etaMC = new TProfile("dN_vs_etaMC","#delta N vs #eta",100,0.,5.); - pdN_vs_ptMC = new TProfile("dN_vs_ptMC","#delta N vs P_{T}",1000,0.,100.); - - pdN_vs_dphiMC = new TProfile("dN_vs_dphiMC","#frac{dN}{d#phid#eta} vs #delta #phi",100,-180.,180.,0,100); - pdPt_vs_dphiMC = new TProfile("dPt_vs_dphiMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs #delta #phi",100,-180.,180.,0,100); - - // add histo for ue fluctuation - h2d_dN_vs_ptJTransMC = new TH2D("h2d_dN_vs_ptJTransMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200,100,0.,20.); - - pdN_vs_ptJTransMC = new TProfile("dN_vs_ptJTransMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200); - pdN_vs_ptJTransMaxMC = new TProfile("dN_vs_ptJTransMaxMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Max''",100,0.,200); - pdN_vs_ptJTransMinMC = new TProfile("dN_vs_ptJTransMinMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Min''",100,0.,200); - - pdPt_vs_ptJTransMC = new TProfile("dPt_vs_ptJTransMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200); - pdPt_vs_ptJTransMaxMC = new TProfile("dPt_vs_ptJTransMaxMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Max''",100,0.,200); - pdPt_vs_ptJTransMinMC = new TProfile("dPt_vs_ptJTransMinMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Min''",100,0.,200); - - pdN_vs_ptJTowardMC = new TProfile("dN_vs_ptJTowardMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Toward''",100,0.,200); - pdN_vs_ptJAwayMC = new TProfile("dN_vs_ptJAwayMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Away''",100,0.,200); - - pdPt_vs_ptJTowardMC = new TProfile("dPt_vs_ptJTowardMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Toward''",100,0.,200); - pdPt_vs_ptJAwayMC = new TProfile("dPt_vs_ptJAwayMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Away''",100,0.,200); - - temp1MC = new TH1F("temp1MC","temp",100,-180.,180.); - temp2MC = new TH1F("temp2MC","temp",100,-180.,180.); - temp3MC = new TH1F("temp3MC","temp",100,0.,5.); - temp4MC = new TH1F("temp4MC","temp",1000,0.,100.); - - fHistPtDistRECO = new TH1F( "HistPtDistRECO" , "Pt Spectra", 100, 0., 4. ) ; - fHistEtaDistRECO = new TH1F( "HistEtaDistRECO" , "#eta Spectra", 100, -5., 5. ) ; - fHistPhiDistRECO = new TH1F( "HistPhiDistRECO" , "#phi Spectra", 100, -4., 4. ) ; - - pdN_vs_etaRECO = new TProfile("dN_vs_etaRECO","#delta N vs #eta",100,0.,5.); - pdN_vs_ptRECO = new TProfile("dN_vs_ptRECO","#delta N vs P_{T}",1000,0.,100.); - - pdN_vs_dphiRECO = new TProfile("dN_vs_dphiRECO","#frac{dN}{d#phid#eta} vs #delta #phi",100,-180.,180.,0,100); - pdPt_vs_dphiRECO = new TProfile("dPt_vs_dphiRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs #delta #phi",100,-180.,180.,0,100); - - pdN_vs_ptJTransRECO = new TProfile("dN_vs_ptJTransRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200); - pdN_vs_ptJTransMaxRECO = new TProfile("dN_vs_ptJTransMaxRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Max''",100,0.,200); - pdN_vs_ptJTransMinRECO = new TProfile("dN_vs_ptJTransMinRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Min''",100,0.,200); - - pdPt_vs_ptJTransRECO = new TProfile("dPt_vs_ptJTransRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200); - pdPt_vs_ptJTransMaxRECO = new TProfile("dPt_vs_ptJTransMaxRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Max''",100,0.,200); - pdPt_vs_ptJTransMinRECO = new TProfile("dPt_vs_ptJTransMinRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Min''",100,0.,200); - - pdN_vs_ptJTowardRECO = new TProfile("dN_vs_ptJTowardRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Toward''",100,0.,200); - pdN_vs_ptJAwayRECO = new TProfile("dN_vs_ptJAwayRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Away''",100,0.,200); - - pdPt_vs_ptJTowardRECO = new TProfile("dPt_vs_ptJTowardRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Toward''",100,0.,200); - pdPt_vs_ptJAwayRECO = new TProfile("dPt_vs_ptJAwayRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Away''",100,0.,200); - - pdN_vs_ptCJTransRECO = new TProfile("dN_vs_ptCJTransRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans''",100,0.,200); - pdN_vs_ptCJTransMaxRECO = new TProfile("dN_vs_ptCJTransMaxRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans Max''",100,0.,200); - pdN_vs_ptCJTransMinRECO = new TProfile("dN_vs_ptCJTransMinRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans Min''",100,0.,200); - - pdPt_vs_ptCJTransRECO = new TProfile("dPt_vs_ptCJTransRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans''",100,0.,200); - pdPt_vs_ptCJTransMaxRECO = new TProfile("dPt_vs_ptCJTransMaxRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans Max''",100,0.,200); - pdPt_vs_ptCJTransMinRECO = new TProfile("dPt_vs_ptCJTransMinRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans Min''",100,0.,200); - - pdN_vs_ptCJTowardRECO = new TProfile("dN_vs_ptCJTowardRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Toward''",100,0.,200); - pdN_vs_ptCJAwayRECO = new TProfile("dN_vs_ptCJAwayRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Away''",100,0.,200); - - pdPt_vs_ptCJTowardRECO = new TProfile("dPt_vs_ptCJTowardRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Toward''",100,0.,200); - pdPt_vs_ptCJAwayRECO = new TProfile("dPt_vs_ptCJAwayRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Away''",100,0.,200); - - temp1RECO = new TH1F("temp1RECO","temp",100,-180.,180.); - temp2RECO = new TH1F("temp2RECO","temp",100,-180.,180.); - temp3RECO = new TH1F("temp3RECO","temp",100,0.,5.); - temp4RECO = new TH1F("temp4RECO","temp",1000,0.,100.); - - fNumbMPIMC = new TH1D("NumbMPIMC","Number of MPI",20,0.5,20.5); - fdEtaLeadingPairMC = new TH1D("dEtaLeadingPairMC","#Delta #eta Jet in the pair",100,-5,5); - fdPhiLeadingPairMC = new TH1D("dPhiLeadingPairMC","#Delta #phi Jet in the pair",40,120,200); - fptRatioLeadingPairMC = new TH1D("ptRatioLeadingPairMC","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet}",100,0,1.2); - pPtRatio_vs_PtJleadMC = new TProfile("PtRation_vs_PtJleadMC","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs P_{T}^{1^{o} Jet}", 100,0.,50.); - pPtRatio_vs_EtaJleadMC = new TProfile("PtRation_vs_EtaJleadMC","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs #eta^{1^{o} Jet}", 100,0.,5.); - pPtRatio_vs_PhiJleadMC = new TProfile("PtRation_vs_PhiJleadMC","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs #phi^{1^{o} Jet}", 101,-4.,4.); - - fNumbMPIRECO = new TH1D("NumbMPIRECO","Number of MPI",20,0.5,20.5); - fdEtaLeadingPairRECO = new TH1D("dEtaLeadingPairRECO","#Delta #eta Jet in the pair",100,-5,5); - fdPhiLeadingPairRECO = new TH1D("dPhiLeadingPairRECO","#Delta #phi Jet in the pair",40,120,200); - fptRatioLeadingPairRECO = new TH1D("ptRatioLeadingPairRECO","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet}",100,0,1.2); - pPtRatio_vs_PtJleadRECO = new TProfile("PtRation_vs_PtJleadRECO","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs P_{T}^{1^{o} Jet}", 100,0.,50.); - pPtRatio_vs_EtaJleadRECO = new TProfile("PtRation_vs_EtaJleadRECO","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs #eta^{1^{o} Jet}", 100,0.,5.); - pPtRatio_vs_PhiJleadRECO = new TProfile("PtRation_vs_PhiJleadRECO","P_{T}^{2^{o} Jet}/P_{T}^{1^{o} Jet} vs #phi^{1^{o} Jet}", 101,-4.,4.); - - piG = acos(-1.); - rangePhi = acos(-1.)/180*50; -} - -void UEAnalysisOnRootple::EndJob() -{ - hFile->Write(); - hFile->Close(); -} - -Float_t UEAnalysisOnRootple::CalibrationPt(Float_t ptReco,std::string tkpt){ - if(tkpt=="900"){ - Float_t corr = 0.1122*exp(-(0.2251*ptReco))+1.086-0.0005408*ptReco; - return corr; - } - if(tkpt=="500"){ - Float_t corr = 0.1389*exp(-(0.2364*ptReco))+1.048-0.0001663*ptReco; - return corr; - } -} - -Float_t UEAnalysisOnRootple::CorrectionPtTrans(Float_t ptReco,std::string tkpt){ - if(tkpt=="900"){ - // Float_t corr = 2.80452*exp(-(0.278432*ptReco))+1.30988-0.000869106*ptReco; - Float_t corr = 1.214*exp(-(0.9637*ptReco))+1.204-0.0003461*ptReco; - return corr; - } - if(tkpt=="500"){ - // Float_t corr = 1.18227*exp(-(0.184019*ptReco))+1.21637-0.000416840*ptReco; - Float_t corr = 0.4174*exp(-(0.537*ptReco))+1.136-0.0001166*ptReco; - return corr; - } -} - -Float_t UEAnalysisOnRootple::CorrectionPtToward(Float_t ptReco,std::string tkpt){ - if(tkpt=="900"){ - /* - Float_t arg = (ptReco-(-248.6))/-355.7; - Float_t corr = 1.396*exp(-(0.281*ptReco))-28.13+0.06122*ptReco+37.61*exp(-0.5*arg*arg); - */ - Float_t corr = 0.1037*exp(-(0.1382*ptReco))+1.117-0.0006322*ptReco; - return corr; - } - if(tkpt=="500"){ - /* - Float_t arg = (ptReco-(-73.4))/-35.53; - Float_t corr = 9.206*exp(-(0.07078*ptReco))+1.196+0.0008953*ptReco-69.16*exp(-0.5*arg*arg); - */ - Float_t corr = 0.166*exp(-(0.1989*ptReco))+1.073-0.000245*ptReco; - return corr; - } -} - -Float_t UEAnalysisOnRootple::CorrectionPtAway(Float_t ptReco,std::string tkpt){ - if(tkpt=="900"){ - /* - Float_t arg = (ptReco-(-1015))/-1235; - Float_t corr = 3.635*exp(-(0.4059*ptReco))-53.26+0.03661*ptReco+76.71*exp(-0.5*arg*arg); - */ - Float_t corr = 0.2707*exp(-(0.2685*ptReco))+1.169-0.000411*ptReco; - return corr; - } - if(tkpt=="500"){ - /* - Float_t arg = (ptReco-(-35.38))/-148.1; - Float_t corr = 1.553*exp(-(0.2515*ptReco))-0.8953+0.009215*ptReco+2.178*exp(-0.5*arg*arg); - */ - Float_t corr = 0.2835*exp(-(0.2665*ptReco))+1.1-0.0001659*ptReco; - return corr; - } -} - -Float_t UEAnalysisOnRootple::CorrectionNTrans(Float_t ptReco,std::string tkpt){ - if(tkpt=="900"){ - // Float_t corr = 2.41052*exp(-(0.268028*ptReco))+1.26675-0.000509399*ptReco; - Float_t corr = 1.101*exp(-(0.9939*ptReco))+1.198-0.0001467*ptReco; - return corr; - } - if(tkpt=="500"){ - // Float_t corr = 0.970339*exp(-(0.178862*ptReco))+1.19788-0.000293722*ptReco; - Float_t corr = 0.3322*exp(-(0.445*ptReco))+1.146+0.00002659*ptReco; - return corr; - } -} - -Float_t UEAnalysisOnRootple::CorrectionNToward(Float_t ptReco,std::string tkpt){ - if(tkpt=="900"){ - /* - Float_t arg = (ptReco-(-701.9))/-763.1; - Float_t corr = 1.366*exp(-(0.288*ptReco))-29.98+0.03649*ptReco+47.78*exp(-0.5*arg*arg); - */ - Float_t corr = 0.9264*exp(-(1.053*ptReco))+1.16-0.0005176*ptReco; - return corr; - } - if(tkpt=="500"){ - /* - Float_t arg = (ptReco-6.429)/-7.393; - Float_t corr = 1.155*exp(-(0.1146*ptReco))+1.208-0.0005325*ptReco-0.312*exp(-0.5*arg*arg); - */ - Float_t corr = 0.2066*exp(-(0.3254*ptReco))+1.109-0.00006666*ptReco; - return corr; - } -} - -Float_t UEAnalysisOnRootple::CorrectionNAway(Float_t ptReco,std::string tkpt){ - if(tkpt=="900"){ - /* - Float_t arg = (ptReco-(-1512))/-1517; - Float_t corr = 3.094*exp(-(0.3886*ptReco))-44.83+0.02965*ptReco+75.99*exp(-0.5*arg*arg); - */ - Float_t corr = 0.2663*exp(-(0.342*ptReco))+1.178-0.0004006*ptReco; - return corr; - } - if(tkpt=="500"){ - /* - Float_t arg = (ptReco-(-170.4))/-281.4; - Float_t corr = 1.232*exp(-(0.2355*ptReco))-7.733+0.02271*ptReco+10.74*exp(-0.5*arg*arg); - */ - Float_t corr = 0.316*exp(-(0.3741*ptReco))+1.136-0.0002407*ptReco; - return corr; - } -} diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisOnRootple.h b/QCDAnalysis/UEAnalysis/root/UEAnalysisOnRootple.h deleted file mode 100644 index e8a19e999fa4e..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisOnRootple.h +++ /dev/null @@ -1,389 +0,0 @@ -////////////////////////////////////////////////////////// -// This class has been automatically generated on -// Tue Sep 11 11:54:39 2007 by ROOT version 5.14/00b -// from TTree UEAnalysisTree/UE Analysis Tree -// found on file: MB_Pt05/UnderlyingEvent_RootFile_Result.root -////////////////////////////////////////////////////////// - -#ifndef UEAnalysisOnRootple_h -#define UEAnalysisOnRootple_h - -#include -#include -#include -#include -#include -#include -#include -#include - -// -#include -#include -// - -class UEAnalysisOnRootple { -public : - - // declare file handle here - TFile *f; - - TTree *fChain; //!pointer to the analyzed TTree or TChain - Int_t fCurrent; //!current Tree number in a TChain - - // Declaration of leave types - Int_t EventKind; - Int_t NumberMCParticles; - Float_t MomentumMC[1000]; //[NumberMCParticles] - Float_t TransverseMomentumMC[1000]; //[NumberMCParticles] - Float_t EtaMC[1000]; //[NumberMCParticles] - Float_t PhiMC[1000]; //[NumberMCParticles] - Int_t NumberTracks; - Float_t MomentumTK[1000]; //[NumberTracks] - Float_t TrasverseMomentumTK[1000]; //[NumberTracks] - Float_t EtaTK[1000]; //[NumberTracks] - Float_t PhiTK[1000]; //[NumberTracks] - Int_t NumberInclusiveJet; - Float_t MomentumIJ[1000]; //[NumberInclusiveJet] - Float_t TrasverseMomentumIJ[1000]; //[NumberInclusiveJet] - Float_t EtaIJ[1000]; //[NumberInclusiveJet] - Float_t PhiIJ[1000]; //[NumberInclusiveJet] - Int_t NumberChargedJet; - Float_t MomentumCJ[1000]; //[NumberChargedJet] - Float_t TrasverseMomentumCJ[1000]; //[NumberChargedJet] - Float_t EtaCJ[1000]; //[NumberChargedJet] - Float_t PhiCJ[1000]; //[NumberChargedJet] - Int_t NumberTracksJet; - Float_t MomentumTJ[1000]; //[NumberTracksJet] - Float_t TrasverseMomentumTJ[1000]; //[NumberTracksJet] - Float_t EtaTJ[1000]; //[NumberTracksJet] - Float_t PhiTJ[1000]; //[NumberTracksJet] - Int_t NumberCaloJet; - Float_t MomentumEHJ[1000]; //[NumberCaloJet] - Float_t TrasverseMomentumEHJ[1000]; //[NumberCaloJet] - Float_t EtaEHJ[1000]; //[NumberCaloJet] - Float_t PhiEHJ[1000]; //[NumberCaloJet] - - // - TClonesArray *acceptedTriggers; - // - - // List of branches - TBranch *b_EventKind; //! - TBranch *b_NumberMCParticles; //! - TBranch *b_MomentumMC; //! - TBranch *b_TransverseMomentumMC; //! - TBranch *b_EtaMC; //! - TBranch *b_PhiMC; //! - TBranch *b_NumberTracks; //! - TBranch *b_MomentumTK; //! - TBranch *b_TrasverseMomentumTK; //! - TBranch *b_EtaTK; //! - TBranch *b_PhiTK; //! - TBranch *b_NumberInclusiveJet; //! - TBranch *b_MomentumIJ; //! - TBranch *b_TrasverseMomentumIJ; //! - TBranch *b_EtaIJ; //! - TBranch *b_PhiIJ; //! - TBranch *b_NumberChargedJet; //! - TBranch *b_MomentumCJ; //! - TBranch *b_TrasverseMomentumCJ; //! - TBranch *b_EtaCJ; //! - TBranch *b_PhiCJ; //! - TBranch *b_NumberTracksJet; //! - TBranch *b_MomentumTJ; //! - TBranch *b_TrasverseMomentumTJ; //! - TBranch *b_EtaTJ; //! - TBranch *b_PhiTJ; //! - TBranch *b_NumberCaloJet; //! - TBranch *b_MomentumEHJ; //! - TBranch *b_TrasverseMomentumEHJ; //! - TBranch *b_EtaEHJ; //! - TBranch *b_PhiEHJ; //! - - // - TBranch *b_acceptedTriggers; - // - - - //Charged Jet caharacterization - TH1F* dr_chgcalo; - TH1F* dr_chginc; - TH1F* dr_chgmcreco; - TH1F* dr_caloinc; - TH1F* numb_cal; - TH1F* pT_cal; - TH1F* eta_cal; - TH1F* eta_cal_res; - TH1F* phi_cal; - TH1F* phi_cal_res; - TH1F* numb_chgmc; - TH1F* pT_chgmc; - TH1F* eta_chgmc; - TH1F* eta_chgmc_res; - TH1F* phi_chgmc; - TH1F* phi_chgmc_res; - TH1F* numb_chgreco; - TH1F* pT_chgreco; - TH1F* eta_chgreco; - TH1F* eta_chgreco_res; - TH1F* phi_chgreco; - TH1F* phi_chgreco_res; - TH1F* numb_inc; - TH1F* pT_inc; - TH1F* eta_inc; - TH1F* phi_inc; - TProfile* calib_chgcalo; - TProfile* calib_chginc; - TProfile* calib_chgmcreco; - TProfile* calib_caloinc; - TProfile* calib_chgcalo_eta; - TProfile* calib_chginc_eta; - TProfile* calib_chgmcreco_eta; - TProfile* calib_caloinc_eta; - TProfile* calib_chgcalo_phi; - TProfile* calib_chginc_phi; - TProfile* calib_chgmcreco_phi; - TProfile* calib_caloinc_phi; - - //Underlying Event analysis - TH1F* fHistPtDistMC; - TH1F* fHistEtaDistMC; - TH1F* fHistPhiDistMC; - - TProfile* pdN_vs_etaMC; - TProfile* pdN_vs_ptMC; - - TProfile* pdN_vs_dphiMC; - TProfile* pdPt_vs_dphiMC; - - // add histo on fluctuation in UE - TH2D* h2d_dN_vs_ptJTransMC; - - - TProfile* pdN_vs_ptJTransMC; - TProfile* pdN_vs_ptJTransMaxMC; - TProfile* pdN_vs_ptJTransMinMC; - TProfile* pdPt_vs_ptJTransMC; - TProfile* pdPt_vs_ptJTransMaxMC; - TProfile* pdPt_vs_ptJTransMinMC; - TProfile* pdN_vs_ptJTowardMC; - TProfile* pdN_vs_ptJAwayMC; - TProfile* pdPt_vs_ptJTowardMC; - TProfile* pdPt_vs_ptJAwayMC; - - TH1F* temp1MC; - TH1F* temp2MC; - TH1F* temp3MC; - TH1F* temp4MC; - - TH1F* fHistPtDistRECO; - TH1F* fHistEtaDistRECO; - TH1F* fHistPhiDistRECO; - - TProfile* pdN_vs_etaRECO; - TProfile* pdN_vs_ptRECO; - - TProfile* pdN_vs_dphiRECO; - TProfile* pdPt_vs_dphiRECO; - - TProfile* pdN_vs_ptJTransRECO; - TProfile* pdN_vs_ptJTransMaxRECO; - TProfile* pdN_vs_ptJTransMinRECO; - TProfile* pdPt_vs_ptJTransRECO; - TProfile* pdPt_vs_ptJTransMaxRECO; - TProfile* pdPt_vs_ptJTransMinRECO; - TProfile* pdN_vs_ptJTowardRECO; - TProfile* pdN_vs_ptJAwayRECO; - TProfile* pdPt_vs_ptJTowardRECO; - TProfile* pdPt_vs_ptJAwayRECO; - - TProfile* pdN_vs_ptCJTransRECO; - TProfile* pdN_vs_ptCJTransMaxRECO; - TProfile* pdN_vs_ptCJTransMinRECO; - TProfile* pdPt_vs_ptCJTransRECO; - TProfile* pdPt_vs_ptCJTransMaxRECO; - TProfile* pdPt_vs_ptCJTransMinRECO; - TProfile* pdN_vs_ptCJTowardRECO; - TProfile* pdN_vs_ptCJAwayRECO; - TProfile* pdPt_vs_ptCJTowardRECO; - TProfile* pdPt_vs_ptCJAwayRECO; - - TH1F* temp1RECO; - TH1F* temp2RECO; - TH1F* temp3RECO; - TH1F* temp4RECO; - - TH1D* fNumbMPIMC; - TH1D* fdEtaLeadingPairMC; - TH1D* fdPhiLeadingPairMC; - TH1D* fptRatioLeadingPairMC; - TProfile* pPtRatio_vs_PtJleadMC; - TProfile* pPtRatio_vs_EtaJleadMC; - TProfile* pPtRatio_vs_PhiJleadMC; - - TH1D* fNumbMPIRECO; - TH1D* fdEtaLeadingPairRECO; - TH1D* fdPhiLeadingPairRECO; - TH1D* fptRatioLeadingPairRECO; - TProfile* pPtRatio_vs_PtJleadRECO; - TProfile* pPtRatio_vs_EtaJleadRECO; - TProfile* pPtRatio_vs_PhiJleadRECO; - - - - Float_t etaRegion; - Float_t piG; - Float_t rangePhi; - Float_t ptThreshold; - - UEAnalysisOnRootple(); - virtual ~UEAnalysisOnRootple(); - virtual Int_t Cut(Long64_t entry); - virtual Int_t GetEntry(Long64_t entry); - virtual Long64_t LoadTree(Long64_t entry); - virtual void MultiAnalysis(char* filelist,char* outname,Float_t weight[13],Float_t eta,Float_t triggerPt,std::string type,std::string trigger,std::string tkpt,Float_t ptCut); - virtual void Init(TTree *tree); - virtual void BeginJob(char* outname); - virtual void EndJob(); - virtual void Loop(Float_t we,Float_t triggerPt,std::string type,std::string trigger,std::string tkpt); - virtual Bool_t Notify(); - virtual void Show(Long64_t entry = -1); - virtual void UEAnalysisMC(Float_t weight,std::string tkpt); - virtual void UEAnalysisRECO(Float_t weight,std::string tkpt); - virtual void JetCalibAnalysis(Float_t weight,std::string tkpt); - virtual void MPIAnalysisMC(Float_t weight,std::string tkpt); - virtual void MPIAnalysisRECO(Float_t weight,std::string tkpt); - Float_t CalibrationPt(Float_t ptReco,std::string tkpt); - Float_t CorrectionPtTrans(Float_t ptReco,std::string tkpt); - Float_t CorrectionPtToward(Float_t ptReco,std::string tkpt); - Float_t CorrectionPtAway(Float_t ptReco,std::string tkpt); - Float_t CorrectionNTrans(Float_t ptReco,std::string tkpt); - Float_t CorrectionNToward(Float_t ptReco,std::string tkpt); - Float_t CorrectionNAway(Float_t ptReco,std::string tkpt); - - TFile* hFile; - -}; - -#endif - -#ifdef UEAnalysisOnRootple_cxx - -UEAnalysisOnRootple::UEAnalysisOnRootple() -{ - std::cout << "UEAnalysisOnRootple constructor " <GetCurrentFile(); -} - -Int_t UEAnalysisOnRootple::GetEntry(Long64_t entry) -{ -// Read contents of entry. - if (!fChain) return 0; - return fChain->GetEntry(entry); -} -Long64_t UEAnalysisOnRootple::LoadTree(Long64_t entry) -{ -// Set the environment to read one entry - if (!fChain) return -5; - Long64_t centry = fChain->LoadTree(entry); - if (centry < 0) return centry; - if (!fChain->InheritsFrom(TChain::Class())) return centry; - TChain *chain = (TChain*)fChain; - if (chain->GetTreeNumber() != fCurrent) { - fCurrent = chain->GetTreeNumber(); - Notify(); - } - return centry; -} - -void UEAnalysisOnRootple::Init(TTree *tree) -{ - // The Init() function is called when the selector needs to initialize - // a new tree or chain. Typically here the branch addresses and branch - // pointers of the tree will be set. - // It is normaly not necessary to make changes to the generated - // code, but the routine can be extended by the user if needed. - // Init() will be called many times when running on PROOF - // (once per file to be processed). - - // allocate space for file handle here - f = new TFile; - - // Set branch addresses and branch pointers - if (!tree) return; - fChain = tree; - fCurrent = -1; - fChain->SetMakeClass(1); - - // - acceptedTriggers = 0; - fChain->SetBranchAddress("acceptedTriggers", &acceptedTriggers, &b_acceptedTriggers); - // - - fChain->SetBranchAddress("EventKind", &EventKind, &b_EventKind); - fChain->SetBranchAddress("NumberMCParticles", &NumberMCParticles, &b_NumberMCParticles); - fChain->SetBranchAddress("MomentumMC", MomentumMC, &b_MomentumMC); - fChain->SetBranchAddress("TransverseMomentumMC", TransverseMomentumMC, &b_TransverseMomentumMC); - fChain->SetBranchAddress("EtaMC", EtaMC, &b_EtaMC); - fChain->SetBranchAddress("PhiMC", PhiMC, &b_PhiMC); - fChain->SetBranchAddress("NumberTracks", &NumberTracks, &b_NumberTracks); - fChain->SetBranchAddress("MomentumTK", MomentumTK, &b_MomentumTK); - fChain->SetBranchAddress("TrasverseMomentumTK", TrasverseMomentumTK, &b_TrasverseMomentumTK); - fChain->SetBranchAddress("EtaTK", EtaTK, &b_EtaTK); - fChain->SetBranchAddress("PhiTK", PhiTK, &b_PhiTK); - fChain->SetBranchAddress("NumberInclusiveJet", &NumberInclusiveJet, &b_NumberInclusiveJet); - fChain->SetBranchAddress("MomentumIJ", MomentumIJ, &b_MomentumIJ); - fChain->SetBranchAddress("TrasverseMomentumIJ", TrasverseMomentumIJ, &b_TrasverseMomentumIJ); - fChain->SetBranchAddress("EtaIJ", EtaIJ, &b_EtaIJ); - fChain->SetBranchAddress("PhiIJ", PhiIJ, &b_PhiIJ); - fChain->SetBranchAddress("NumberChargedJet", &NumberChargedJet, &b_NumberChargedJet); - fChain->SetBranchAddress("MomentumCJ", MomentumCJ, &b_MomentumCJ); - fChain->SetBranchAddress("TrasverseMomentumCJ", TrasverseMomentumCJ, &b_TrasverseMomentumCJ); - fChain->SetBranchAddress("EtaCJ", EtaCJ, &b_EtaCJ); - fChain->SetBranchAddress("PhiCJ", PhiCJ, &b_PhiCJ); - fChain->SetBranchAddress("NumberTracksJet", &NumberTracksJet, &b_NumberTracksJet); - fChain->SetBranchAddress("MomentumTJ", MomentumTJ, &b_MomentumTJ); - fChain->SetBranchAddress("TrasverseMomentumTJ", TrasverseMomentumTJ, &b_TrasverseMomentumTJ); - fChain->SetBranchAddress("EtaTJ", EtaTJ, &b_EtaTJ); - fChain->SetBranchAddress("PhiTJ", PhiTJ, &b_PhiTJ); - fChain->SetBranchAddress("NumberCaloJet", &NumberCaloJet, &b_NumberCaloJet); - fChain->SetBranchAddress("MomentumEHJ", MomentumEHJ, &b_MomentumEHJ); - fChain->SetBranchAddress("TrasverseMomentumEHJ", TrasverseMomentumEHJ, &b_TrasverseMomentumEHJ); - fChain->SetBranchAddress("EtaEHJ", EtaEHJ, &b_EtaEHJ); - fChain->SetBranchAddress("PhiEHJ", PhiEHJ, &b_PhiEHJ); - Notify(); -} - -Bool_t UEAnalysisOnRootple::Notify() -{ - // The Notify() function is called when a new file is opened. This - // can be either for a new TTree in a TChain or when when a new TTree - // is started when using PROOF. It is normaly not necessary to make changes - // to the generated code, but the routine can be extended by the - // user if needed. The return value is currently not used. - - return kTRUE; -} - -void UEAnalysisOnRootple::Show(Long64_t entry) -{ -// Print contents of entry. -// If entry is not specified, print current entry - if (!fChain) return; - fChain->Show(entry); -} - -Int_t UEAnalysisOnRootple::Cut(Long64_t entry) -{ -// This function may be called from Loop. -// returns 1 if entry is accepted. -// returns -1 otherwise. - return 1; -} -#endif diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisSelectorRootple.C b/QCDAnalysis/UEAnalysis/root/UEAnalysisSelectorRootple.C deleted file mode 100644 index e0bc7f0023926..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisSelectorRootple.C +++ /dev/null @@ -1,93 +0,0 @@ -#define UEAnalysisSelectorRootple_cxx -// The class definition in UEAnalysisSelectorRootple.h has been generated automatically -// by the ROOT utility TTree::MakeSelector(). This class is derived -// from the ROOT class TSelector. For more information on the TSelector -// framework see $ROOTSYS/README/README.SELECTOR or the ROOT User Manual. - -// The following methods are defined in this file: -// Begin(): called every time a loop on the tree starts, -// a convenient place to create your histograms. -// SlaveBegin(): called after Begin(), when on PROOF called only on the -// slave servers. -// Process(): called for each event, in this function you decide what -// to read and fill your histograms. -// SlaveTerminate: called at the end of the loop on the tree, when on PROOF -// called only on the slave servers. -// Terminate(): called at the end of the loop on the tree, -// a convenient place to draw/fit your histograms. -// -// To use this file, try the following session on your Tree T: -// -// Root > T->Process("UEAnalysisSelectorRootple.C") -// Root > T->Process("UEAnalysisSelectorRootple.C","some options") -// Root > T->Process("UEAnalysisSelectorRootple.C+") -// - -#include "UEAnalysisSelectorRootple.h" -#include -#include - - -void UEAnalysisSelectorRootple::Begin(TTree * /*tree*/) -{ - // The Begin() function is called at the start of the query. - // When running with PROOF Begin() is only called on the client. - // The tree argument is deprecated (on PROOF 0 is passed). - - TString option = GetOption(); - - std::cout << "UEAnalysisSelectorRootple Begin " < -#include -#include -#include - - -#include "UEAnalysisUE.h" -#include "UEAnalysisJets.h" -#include "UEAnalysisMPI.h" - -// -#include -#include -// - -class UEAnalysisSelectorRootple : public TSelector { -public : - TTree *fChain; //!pointer to the analyzed TTree or TChain - - // Declaration of leaf types - Int_t EventKind; - TClonesArray *MonteCarlo; - TClonesArray *Track; - TClonesArray *InclusiveJet; - TClonesArray *ChargedJet; - TClonesArray *TracksJet; - TClonesArray *CalorimeterJet; - TClonesArray *acceptedTriggers; - - // List of branches - TBranch *b_EventKind; //! - TBranch *b_MonteCarlo; //! - TBranch *b_Track; //! - TBranch *b_InclusiveJet; //! - TBranch *b_ChargedJet; //! - TBranch *b_TracksJet; //! - TBranch *b_CalorimeterJet; //! - TBranch *b_acceptedTriggers; //! - - UEAnalysisSelectorRootple(TTree * /*tree*/ =0) { } - virtual ~UEAnalysisSelectorRootple() { } - virtual Int_t Version() const { return 2; } - virtual void Begin(TTree *tree); - virtual void SlaveBegin(TTree *tree); - virtual void Init(TTree *tree); - virtual Bool_t Notify(); - virtual Bool_t Process(Long64_t entry); - virtual Int_t GetEntry(Long64_t entry, Int_t getall = 0) { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; } - virtual void SetOption(const char *option) { fOption = option; } - virtual void SetObject(TObject *obj) { fObject = obj; } - virtual void SetInputList(TList *input) { fInput = input; } - virtual TList *GetOutputList() const { return fOutput; } - virtual void SlaveTerminate(); - virtual void Terminate(); - - ClassDef(UEAnalysisSelectorRootple,0); - - TFile* hFile; - - float etaRegion; - float ptThreshold; - - UEAnalysisUE * ue; - UEAnalysisJets* jets; - UEAnalysisMPI* mpi; - -}; - -#endif - -#ifdef UEAnalysisSelectorRootple_cxx -void UEAnalysisSelectorRootple::Init(TTree *tree) -{ - // The Init() function is called when the selector needs to initialize - // a new tree or chain. Typically here the branch addresses and branch - // pointers of the tree will be set. - // It is normally not necessary to make changes to the generated - // code, but the routine can be extended by the user if needed. - // Init() will be called many times when running on PROOF - // (once per file to be processed). - - // Set object pointer - MonteCarlo = 0; - Track = 0; - InclusiveJet = 0; - ChargedJet = 0; - TracksJet = 0; - CalorimeterJet = 0; - acceptedTriggers = 0; - // Set branch addresses and branch pointers - if (!tree) return; - fChain = tree; - fChain->SetMakeClass(1); - - fChain->SetBranchAddress("EventKind", &EventKind, &b_EventKind); - fChain->SetBranchAddress("MonteCarlo", &MonteCarlo, &b_MonteCarlo); - fChain->SetBranchAddress("Track", &Track, &b_Track); - fChain->SetBranchAddress("InclusiveJet", &InclusiveJet, &b_InclusiveJet); - fChain->SetBranchAddress("ChargedJet", &ChargedJet, &b_ChargedJet); - fChain->SetBranchAddress("TracksJet", &TracksJet, &b_TracksJet); - fChain->SetBranchAddress("CalorimeterJet", &CalorimeterJet, &b_CalorimeterJet); - fChain->SetBranchAddress("acceptedTriggers", &acceptedTriggers, &b_acceptedTriggers); - -} - -Bool_t UEAnalysisSelectorRootple::Notify() -{ - // The Notify() function is called when a new file is opened. This - // can be either for a new TTree in a TChain or when when a new TTree - // is started when using PROOF. It is normally not necessary to make changes - // to the generated code, but the routine can be extended by the - // user if needed. The return value is currently not used. - - return kTRUE; -} - -#endif // #ifdef UEAnalysisSelectorRootple_cxx diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisUE.C b/QCDAnalysis/UEAnalysis/root/UEAnalysisUE.C deleted file mode 100644 index 62a47acd70d85..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisUE.C +++ /dev/null @@ -1,542 +0,0 @@ -#include "UEAnalysisUE.h" -#include -#include - -UEAnalysisUE::UEAnalysisUE() -{ - std::cout << "UEAnalysisUE constructor " <cd(); - - //Underlying Event analysis - fHistPtDistMC = new TH1F( "HistPtDistMC" , "Pt Spectra", 100, 0., 4. ) ; - fHistEtaDistMC = new TH1F( "HistEtaDistMC" , "#eta Spectra", 100, -5., 5. ) ; - fHistPhiDistMC = new TH1F( "HistPhiDistMC" , "#phi Spectra", 100, -4., 4. ) ; - - pdN_vs_etaMC = new TProfile("dN_vs_etaMC","#delta N vs #eta",100,0.,5.); - pdN_vs_ptMC = new TProfile("dN_vs_ptMC","#delta N vs P_{T}",1000,0.,100.); - pdN_vs_dphiMC = new TProfile("dN_vs_dphiMC","#frac{dN}{d#phid#eta} vs #delta #phi",100,-180.,180.,0,100); - pdPt_vs_dphiMC = new TProfile("dPt_vs_dphiMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs #delta #phi",100,-180.,180.,0,100); - - // add histo for ue fluctuation - h2d_dN_vs_ptJTransMC = new TH2D("h2d_dN_vs_ptJTransMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200,100,0.,20.); - - pdN_vs_ptJTransMC = new TProfile("dN_vs_ptJTransMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200); - pdN_vs_ptJTransMaxMC = new TProfile("dN_vs_ptJTransMaxMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Max''",100,0.,200); - pdN_vs_ptJTransMinMC = new TProfile("dN_vs_ptJTransMinMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Min''",100,0.,200); - - pdPt_vs_ptJTransMC = new TProfile("dPt_vs_ptJTransMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200); - pdPt_vs_ptJTransMaxMC = new TProfile("dPt_vs_ptJTransMaxMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Max''",100,0.,200); - pdPt_vs_ptJTransMinMC = new TProfile("dPt_vs_ptJTransMinMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Min''",100,0.,200); - - pdN_vs_ptJTowardMC = new TProfile("dN_vs_ptJTowardMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Toward''",100,0.,200); - pdN_vs_ptJAwayMC = new TProfile("dN_vs_ptJAwayMC","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Away''",100,0.,200); - - pdPt_vs_ptJTowardMC = new TProfile("dPt_vs_ptJTowardMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Toward''",100,0.,200); - pdPt_vs_ptJAwayMC = new TProfile("dPt_vs_ptJAwayMC","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Away''",100,0.,200); - - temp1MC = new TH1F("temp1MC","temp",100,-180.,180.); - temp2MC = new TH1F("temp2MC","temp",100,-180.,180.); - temp3MC = new TH1F("temp3MC","temp",100,0.,5.); - temp4MC = new TH1F("temp4MC","temp",1000,0.,100.); - - fHistPtDistRECO = new TH1F( "HistPtDistRECO" , "Pt Spectra", 100, 0., 4. ) ; - fHistEtaDistRECO = new TH1F( "HistEtaDistRECO" , "#eta Spectra", 100, -5., 5. ) ; - fHistPhiDistRECO = new TH1F( "HistPhiDistRECO" , "#phi Spectra", 100, -4., 4. ) ; - - pdN_vs_etaRECO = new TProfile("dN_vs_etaRECO","#delta N vs #eta",100,0.,5.); - pdN_vs_ptRECO = new TProfile("dN_vs_ptRECO","#delta N vs P_{T}",1000,0.,100.); - - pdN_vs_dphiRECO = new TProfile("dN_vs_dphiRECO","#frac{dN}{d#phid#eta} vs #delta #phi",100,-180.,180.,0,100); - pdPt_vs_dphiRECO = new TProfile("dPt_vs_dphiRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs #delta #phi",100,-180.,180.,0,100); - - pdN_vs_ptJTransRECO = new TProfile("dN_vs_ptJTransRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200); - pdN_vs_ptJTransMaxRECO = new TProfile("dN_vs_ptJTransMaxRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Max''",100,0.,200); - pdN_vs_ptJTransMinRECO = new TProfile("dN_vs_ptJTransMinRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Min''",100,0.,200); - - pdPt_vs_ptJTransRECO = new TProfile("dPt_vs_ptJTransRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans''",100,0.,200); - pdPt_vs_ptJTransMaxRECO = new TProfile("dPt_vs_ptJTransMaxRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Max''",100,0.,200); - pdPt_vs_ptJTransMinRECO = new TProfile("dPt_vs_ptJTransMinRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Trans Min''",100,0.,200); - - pdN_vs_ptJTowardRECO = new TProfile("dN_vs_ptJTowardRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Toward''",100,0.,200); - pdN_vs_ptJAwayRECO = new TProfile("dN_vs_ptJAwayRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet} ''Away''",100,0.,200); - - pdPt_vs_ptJTowardRECO = new TProfile("dPt_vs_ptJTowardRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Toward''",100,0.,200); - pdPt_vs_ptJAwayRECO = new TProfile("dPt_vs_ptJAwayRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet} ''Away''",100,0.,200); - - pdN_vs_ptCJTransRECO = new TProfile("dN_vs_ptCJTransRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans''",100,0.,200); - pdN_vs_ptCJTransMaxRECO = new TProfile("dN_vs_ptCJTransMaxRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans Max''",100,0.,200); - pdN_vs_ptCJTransMinRECO = new TProfile("dN_vs_ptCJTransMinRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans Min''",100,0.,200); - - pdPt_vs_ptCJTransRECO = new TProfile("dPt_vs_ptCJTransRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans''",100,0.,200); - pdPt_vs_ptCJTransMaxRECO = new TProfile("dPt_vs_ptCJTransMaxRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans Max''",100,0.,200); - pdPt_vs_ptCJTransMinRECO = new TProfile("dPt_vs_ptCJTransMinRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Trans Min''",100,0.,200); - - pdN_vs_ptCJTowardRECO = new TProfile("dN_vs_ptCJTowardRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Toward''",100,0.,200); - pdN_vs_ptCJAwayRECO = new TProfile("dN_vs_ptCJAwayRECO","#frac{dN}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Away''",100,0.,200); - - pdPt_vs_ptCJTowardRECO = new TProfile("dPt_vs_ptCJTowardRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Toward''",100,0.,200); - pdPt_vs_ptCJAwayRECO = new TProfile("dPt_vs_ptCJAwayRECO","#frac{dP_{T}^{sum}}{d#phid#eta} vs P_{T}^{Chg Jet MC} ''Away''",100,0.,200); - - temp1RECO = new TH1F("temp1RECO","temp",100,-180.,180.); - temp2RECO = new TH1F("temp2RECO","temp",100,-180.,180.); - temp3RECO = new TH1F("temp3RECO","temp",100,0.,5.); - temp4RECO = new TH1F("temp4RECO","temp",1000,0.,100.); - -} - -void UEAnalysisUE::ueAnalysisMC(float weight,std::string tkpt,float etaRegion, float ptThreshold, TClonesArray* MonteCarlo, TClonesArray* ChargedJet) -{ - - //std::cout << "UEAnalysisUE::ueAnalysisMC(...)" << std::endl; - - TLorentzVector* leadingJet; - Float_t PTLeadingCJ = -10; - for(int j=0;jGetSize();++j){ - TLorentzVector *v = (TLorentzVector*)ChargedJet->At(j); - if(fabs(v->Eta())Pt(); - break; - } - } - - - //std::cout << "PTLeadingCJ " << PTLeadingCJ << std::endl; - - if ( PTLeadingCJ == -10. ) - { - //std::cout << "return" << std::endl; - return; - } - - //std::cout << "for(int i=0;iGetSize();i++){" << std::endl; - - for(int i=0;iGetSize();i++){ - TLorentzVector *v = (TLorentzVector*)MonteCarlo->At(i); - - if(v->Pt()>=ptThreshold){ - fHistPtDistMC->Fill(v->Pt(),weight); - fHistEtaDistMC->Fill(v->Eta(),weight); - fHistPhiDistMC->Fill(v->Phi(),weight); - temp3MC->Fill(fabs(v->Eta())); - temp4MC->Fill(fabs(v->Pt())); - } - - if(fabs(v->Eta())Pt()>=ptThreshold){ - Float_t conv = 180/piG; - Float_t Dphi_mc = conv * leadingJet->DeltaPhi(*v); - temp1MC->Fill(Dphi_mc); - temp2MC->Fill(Dphi_mc,v->Pt()); - } - } - - //std::cout << "for(int i=0;i<100;i++){" << std::endl; - - for(int i=0;i<100;i++){ - pdN_vs_etaMC->Fill((i*0.05)+0.025,temp3MC->GetBinContent(i+1)/0.1,weight); - } - for(int i=0;i<1000;i++){ - pdN_vs_ptMC->Fill((i*0.1)+0.05,temp4MC->GetBinContent(i+1)/0.1,weight); - } - - temp3MC->Reset(); - temp4MC->Reset(); - - Float_t transN1=0; - Float_t transN2=0; - Float_t transP1=0; - Float_t transP2=0; - Float_t towardN=0; - Float_t towardP=0; - Float_t awayN=0; - Float_t awayP=0; - - for(int i=0;i<100;i++){ - if(i<=14){ - awayN += temp1MC->GetBinContent(i+1); - awayP += temp2MC->GetBinContent(i+1); - } - if(i>14 && i<33 ){ - transN1 += temp1MC->GetBinContent(i+1); - transP1 += temp2MC->GetBinContent(i+1); - } - if(i>=33 && i<=64 ){ - towardN += temp1MC->GetBinContent(i+1); - towardP += temp2MC->GetBinContent(i+1); - } - if(i>64 && i<83 ){ - transN2 += temp1MC->GetBinContent(i+1); - transP2 += temp2MC->GetBinContent(i+1); - } - if(i>=83){ - awayN += temp1MC->GetBinContent(i+1); - awayP += temp2MC->GetBinContent(i+1); - } - - Float_t bincont1_mc=temp1MC->GetBinContent(i+1); - pdN_vs_dphiMC->Fill(-180.+i*3.6+1.8,bincont1_mc/(3.6*2*etaRegion*(piG/180.)),weight); - - Float_t bincont2_mc=temp2MC->GetBinContent(i+1); - pdPt_vs_dphiMC->Fill(-180.+i*3.6+1.8,bincont2_mc/(3.6*2*etaRegion*(piG/180.)),weight); - - } - - //std::cout << "bool orderedN = false;" << std::endl; - - bool orderedN = false; - // bool orderedP = false; - - pdN_vs_ptJTowardMC->Fill(PTLeadingCJ,(towardN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTowardMC->Fill(PTLeadingCJ,(towardP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJAwayMC->Fill(PTLeadingCJ,(awayN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJAwayMC->Fill(PTLeadingCJ,(awayP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - if( transN1>=transN2 ) orderedN = true; - // if( transP1>=transP2 ) orderedP = true; - - // add histo for ue fluctuation - h2d_dN_vs_ptJTransMC->Fill(PTLeadingCJ,(transN1+transN2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMC->Fill(PTLeadingCJ,(transN1+transN2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMC->Fill(PTLeadingCJ,(transP1+transP2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - if(orderedN){ - //dN - pdN_vs_ptJTransMinMC->Fill(PTLeadingCJ,transN2/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transN1/(60.*(2*etaRegion)*(piG/180.)),weight); - //dP - pdPt_vs_ptJTransMinMC->Fill(PTLeadingCJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - }else{ - //dN - pdN_vs_ptJTransMinMC->Fill(PTLeadingCJ,transN1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transN2/(60.*(2.*etaRegion)*(piG/180.)),weight); - //dP - pdPt_vs_ptJTransMinMC->Fill(PTLeadingCJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - } - /* - if(orderedP){ - //dN - pdN_vs_ptJTransMinMC->Fill(PTLeadingCJ,transN2/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transN1/(60.*(2*etaRegion)*(piG/180.)),weight); - //dP - pdPt_vs_ptJTransMinMC->Fill(PTLeadingCJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - }else{ - //dN - pdN_vs_ptJTransMinMC->Fill(PTLeadingCJ,transN1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transN2/(60.*(2.*etaRegion)*(piG/180.)),weight); - //dP - pdPt_vs_ptJTransMinMC->Fill(PTLeadingCJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxMC->Fill(PTLeadingCJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - } - */ - temp1MC->Reset(); - temp2MC->Reset(); - - //std::cout << "done" << std::endl; - -} - -void UEAnalysisUE::ueAnalysisRECO(float weight,std::string tkpt,float etaRegion,float ptThreshold, TClonesArray* Track, TClonesArray* TracksJet) -{ - - TLorentzVector* leadingJet; - Float_t PTLeadingTJ = -10; - for(int j=0;jGetSize();++j){ - TLorentzVector *v = (TLorentzVector*)TracksJet->At(j); - if(fabs(v->Eta())Pt(); - break; - } - } - - Float_t PTLeadingCJ = cc->calibrationPt(PTLeadingTJ,tkpt)*PTLeadingTJ; - - for(int i=0;iGetSize();++i){ - TLorentzVector *v = (TLorentzVector*)Track->At(i); - - if(v->Pt()>ptThreshold){ - fHistPtDistRECO->Fill(v->Pt(),weight); - fHistEtaDistRECO->Fill(v->Eta(),weight); - fHistPhiDistRECO->Fill(v->Phi(),weight); - temp3RECO->Fill(fabs(v->Eta())); - temp4RECO->Fill(fabs(v->Pt())); - } - - if(fabs(v->Eta())Pt()>=ptThreshold){ - - // use ROOT method to calculate dphi - // convert dphi from radiants to degrees - Float_t conv = 180/piG; - Float_t Dphi_reco = conv * leadingJet->DeltaPhi(*v); - - temp1RECO->Fill(Dphi_reco); - temp2RECO->Fill(Dphi_reco,v->Pt()); - } - } - - - for(int i=0;i<100;i++){ - pdN_vs_etaRECO->Fill((i*0.05)+0.025,temp3RECO->GetBinContent(i+1)/0.1,weight); - } - for(int i=0;i<1000;i++){ - pdN_vs_ptRECO->Fill((i*0.1)+0.05,temp4RECO->GetBinContent(i+1)/0.1,weight); - } - - temp3RECO->Reset(); - temp4RECO->Reset(); - - Float_t transN1=0; - Float_t transN2=0; - Float_t transP1=0; - Float_t transP2=0; - Float_t towardN=0; - Float_t towardP=0; - Float_t awayN=0; - Float_t awayP=0; - - for(int i=0;i<100;i++){ - if(i<=14){ - awayN += temp1RECO->GetBinContent(i+1); - awayP += temp2RECO->GetBinContent(i+1); - } - if(i>14 && i<33 ){ - transN1 += temp1RECO->GetBinContent(i+1); - transP1 += temp2RECO->GetBinContent(i+1); - } - if(i>=33 && i<=64 ){ - towardN += temp1RECO->GetBinContent(i+1); - towardP += temp2RECO->GetBinContent(i+1); - } - if(i>64 && i<83 ){ - transN2 += temp1RECO->GetBinContent(i+1); - transP2 += temp2RECO->GetBinContent(i+1); - } - if(i>=83){ - awayN += temp1RECO->GetBinContent(i+1); - awayP += temp2RECO->GetBinContent(i+1); - } - - Float_t bincont1_reco=temp1RECO->GetBinContent(i+1); - pdN_vs_dphiRECO->Fill(-180.+i*3.6+1.8,bincont1_reco/(3.6*2*etaRegion*(piG/180.)),weight); - - Float_t bincont2_reco=temp2RECO->GetBinContent(i+1); - pdPt_vs_dphiRECO->Fill(-180.+i*3.6+1.8,bincont2_reco/(3.6*2*etaRegion*(piG/180.)),weight); - - } - - bool orderedN = false; - // bool orderedP = false; - - pdN_vs_ptJTowardRECO->Fill(PTLeadingTJ,(towardN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTowardRECO->Fill(PTLeadingTJ,(towardP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJAwayRECO->Fill(PTLeadingTJ,(awayN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJAwayRECO->Fill(PTLeadingTJ,(awayP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTowardRECO->Fill(PTLeadingCJ,(towardN*cc->correctionNToward(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTowardRECO->Fill(PTLeadingCJ,(towardP*cc->correctionPtToward(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJAwayRECO->Fill(PTLeadingCJ,(awayN*cc->correctionNAway(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJAwayRECO->Fill(PTLeadingCJ,(awayP*cc->correctionPtAway(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - /* - pdN_vs_ptCJTowardRECO->Fill(PTLeadingCJ,(towardN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTowardRECO->Fill(PTLeadingCJ,(towardP)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJAwayRECO->Fill(PTLeadingCJ,(awayN)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJAwayRECO->Fill(PTLeadingCJ,(awayP)/(120.*(2*etaRegion)*(piG/180.)),weight); - */ - - if( transN1>=transN2 ) orderedN = true; - // if( transP1>=transP2 ) orderedP = true; - - pdN_vs_ptJTransRECO->Fill(PTLeadingTJ,(transN1+transN2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransRECO->Fill(PTLeadingTJ,(transP1+transP2)/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransRECO->Fill(PTLeadingCJ,((transN1+transN2)*cc->correctionNTrans(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransRECO->Fill(PTLeadingCJ,((transP1+transP2)*cc->correctionPtTrans(PTLeadingTJ,tkpt))/(120.*(2*etaRegion)*(piG/180.)),weight); - - /* - pdN_vs_ptCJTransRECO->Fill(PTLeadingCJ,((transN1+transN2))/(120.*(2*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransRECO->Fill(PTLeadingCJ,((transP1+transP2))/(120.*(2*etaRegion)*(piG/180.)),weight); - */ - - if(orderedN){ - - //dN - - pdN_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transN2/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transN1/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN2*cc->correctionNTrans(PTLeadingTJ,tkpt))/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN1*cc->correctionNTrans(PTLeadingTJ,tkpt))/(60.*(2*etaRegion)*(piG/180.)),weight); - - /* - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN2)/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN1)/(60.*(2*etaRegion)*(piG/180.)),weight); - */ - - //dP - - pdPt_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP2*cc->correctionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP1*cc->correctionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - /* - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP2)/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP1)/(60.*(2.*etaRegion)*(piG/180.)),weight); - */ - - }else{ - - //dN - - pdN_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transN1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transN2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN1*cc->correctionNTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN2*cc->correctionNTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - /* - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN1)/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN2)/(60.*(2*etaRegion)*(piG/180.)),weight); - */ - - //dP - - pdPt_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP1*cc->correctionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP2*cc->correctionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - /* - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP1)/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP2)/(60.*(2.*etaRegion)*(piG/180.)),weight); - */ - } - - /* - if(orderedP){ - - //dN - - pdN_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transN2/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transN1/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN2*cc->correctionNTrans(PTLeadingTJ,tkpt))/(60.*(2*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN1*cc->correctionNTrans(PTLeadingTJ,tkpt))/(60.*(2*etaRegion)*(piG/180.)),weight); - - - //pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN2)/(60.*(2*etaRegion)*(piG/180.)),weight); - - //pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN1)/(60.*(2*etaRegion)*(piG/180.)),weight); - - - //dP - - pdPt_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP2*cc->correctionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP1*cc->correctionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - - //pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP2)/(60.*(2.*etaRegion)*(piG/180.)),weight); - - //pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP1)/(60.*(2.*etaRegion)*(piG/180.)),weight); - - - }else{ - - //dN - - pdN_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transN1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transN2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN1*cc->correctionNTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN2*cc->correctionNTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - - //pdN_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transN1)/(60.*(2*etaRegion)*(piG/180.)),weight); - - //pdN_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transN2)/(60.*(2*etaRegion)*(piG/180.)),weight); - - - //dP - - pdPt_vs_ptJTransMinRECO->Fill(PTLeadingTJ,transP1/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptJTransMaxRECO->Fill(PTLeadingTJ,transP2/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP1*cc->correctionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP2*cc->correctionPtTrans(PTLeadingTJ,tkpt))/(60.*(2.*etaRegion)*(piG/180.)),weight); - - - //pdPt_vs_ptCJTransMinRECO->Fill(PTLeadingCJ,(transP1)/(60.*(2.*etaRegion)*(piG/180.)),weight); - - //pdPt_vs_ptCJTransMaxRECO->Fill(PTLeadingCJ,(transP2)/(60.*(2.*etaRegion)*(piG/180.)),weight); - - } - */ - temp1RECO->Reset(); - temp2RECO->Reset(); - -} - -void UEAnalysisUE::writeToFile(TFile * file){ - file->Write(); -} diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisUE.h b/QCDAnalysis/UEAnalysis/root/UEAnalysisUE.h deleted file mode 100644 index 5787098413d36..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisUE.h +++ /dev/null @@ -1,106 +0,0 @@ -#ifndef UEAnalysisUE_h -#define UEAnalysisUE_h - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include "UEAnalysisCorrCali.h" - -class UEAnalysisUE { - public : - - UEAnalysisUE(); - ~UEAnalysisUE(){} - - void ueAnalysisMC(float,std::string,float,float,TClonesArray*,TClonesArray*); - void ueAnalysisRECO(float,std::string,float,float,TClonesArray*,TClonesArray*); - - void Begin(TFile *); - - void writeToFile(TFile *); - - //Underlying Event analysis - TH1F* fHistPtDistMC; - TH1F* fHistEtaDistMC; - TH1F* fHistPhiDistMC; - - TProfile* pdN_vs_etaMC; - TProfile* pdN_vs_ptMC; - - TProfile* pdN_vs_dphiMC; - TProfile* pdPt_vs_dphiMC; - - // add histo on fluctuation in UE - TH2D* h2d_dN_vs_ptJTransMC; - - - TProfile* pdN_vs_ptJTransMC; - TProfile* pdN_vs_ptJTransMaxMC; - TProfile* pdN_vs_ptJTransMinMC; - TProfile* pdPt_vs_ptJTransMC; - TProfile* pdPt_vs_ptJTransMaxMC; - TProfile* pdPt_vs_ptJTransMinMC; - TProfile* pdN_vs_ptJTowardMC; - TProfile* pdN_vs_ptJAwayMC; - TProfile* pdPt_vs_ptJTowardMC; - TProfile* pdPt_vs_ptJAwayMC; - - TH1F* temp1MC; - TH1F* temp2MC; - TH1F* temp3MC; - TH1F* temp4MC; - - TH1F* fHistPtDistRECO; - TH1F* fHistEtaDistRECO; - TH1F* fHistPhiDistRECO; - - TProfile* pdN_vs_etaRECO; - TProfile* pdN_vs_ptRECO; - - TProfile* pdN_vs_dphiRECO; - TProfile* pdPt_vs_dphiRECO; - - TProfile* pdN_vs_ptJTransRECO; - TProfile* pdN_vs_ptJTransMaxRECO; - TProfile* pdN_vs_ptJTransMinRECO; - TProfile* pdPt_vs_ptJTransRECO; - TProfile* pdPt_vs_ptJTransMaxRECO; - TProfile* pdPt_vs_ptJTransMinRECO; - TProfile* pdN_vs_ptJTowardRECO; - TProfile* pdN_vs_ptJAwayRECO; - TProfile* pdPt_vs_ptJTowardRECO; - TProfile* pdPt_vs_ptJAwayRECO; - - TProfile* pdN_vs_ptCJTransRECO; - TProfile* pdN_vs_ptCJTransMaxRECO; - TProfile* pdN_vs_ptCJTransMinRECO; - TProfile* pdPt_vs_ptCJTransRECO; - TProfile* pdPt_vs_ptCJTransMaxRECO; - TProfile* pdPt_vs_ptCJTransMinRECO; - TProfile* pdN_vs_ptCJTowardRECO; - TProfile* pdN_vs_ptCJAwayRECO; - TProfile* pdPt_vs_ptCJTowardRECO; - TProfile* pdPt_vs_ptCJAwayRECO; - - TH1F* temp1RECO; - TH1F* temp2RECO; - TH1F* temp3RECO; - TH1F* temp4RECO; - - float piG; - - UEAnalysisCorrCali* cc; - -}; - -#endif diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisWeight.C b/QCDAnalysis/UEAnalysis/root/UEAnalysisWeight.C deleted file mode 100644 index 8bf89e2605b37..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisWeight.C +++ /dev/null @@ -1,23 +0,0 @@ -#include "UEAnalysisWeight.h" -#include -#include - -UEAnalysisWeight::UEAnalysisWeight() -{ - std::cout << "UEAnalysisWeight constructor " < UEAnalysisWeight::calculate(string tkPt, std::string trigger, float lumi) -{ - //This method will be filled once we start analyze the data -} - - -std::vector UEAnalysisWeight::calculate() -{ - for(int i=0;i<30;++i) - fakeTable.push_back(1.0); - return fakeTable; -} - diff --git a/QCDAnalysis/UEAnalysis/root/UEAnalysisWeight.h b/QCDAnalysis/UEAnalysis/root/UEAnalysisWeight.h deleted file mode 100644 index 4c2ca35a16603..0000000000000 --- a/QCDAnalysis/UEAnalysis/root/UEAnalysisWeight.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef UEAnalysisWeight_h -#define UEAnalysisWeight_h - -#include -#include -#include -#include - -class UEAnalysisWeight { - public : - - UEAnalysisWeight(); - ~UEAnalysisWeight(){} - std::vector calculate(std::string,std::string,float); - std::vector calculate(); - - private: - - std::vector fakeTable; - //Once we have access to teh date we have to define - //the relative table that we must use in order to merge - //toghether the differen stream - -}; - -#endif diff --git a/QCDAnalysis/UEAnalysis/src/AnalysisRootpleProducer.cc b/QCDAnalysis/UEAnalysis/src/AnalysisRootpleProducer.cc deleted file mode 100644 index 3f042e9b90b0f..0000000000000 --- a/QCDAnalysis/UEAnalysis/src/AnalysisRootpleProducer.cc +++ /dev/null @@ -1,365 +0,0 @@ -// Authors: F. Ambroglini, L. Fano' -#include -#include "FWCore/Common/interface/TriggerNames.h" - -using namespace edm; -using namespace std; -using namespace reco; - -class GreaterPt { -public: - bool operator()(const math::XYZTLorentzVector& a, const math::XYZTLorentzVector& b) { return a.pt() > b.pt(); } -}; - -class GenJetSort { -public: - bool operator()(const GenJet& a, const GenJet& b) { return a.pt() > b.pt(); } -}; - -class BasicJetSort { -public: - bool operator()(const BasicJet& a, const BasicJet& b) { return a.pt() > b.pt(); } -}; - -class CaloJetSort { -public: - bool operator()(const CaloJet& a, const CaloJet& b) { return a.pt() > b.pt(); } -}; - -void AnalysisRootpleProducer::store() { - AnalysisTree->Fill(); - - NumberMCParticles = 0; - NumberTracks = 0; - NumberInclusiveJet = 0; - NumberChargedJet = 0; - NumberTracksJet = 0; - NumberCaloJet = 0; -} - -void AnalysisRootpleProducer::fillEventInfo(int e) { EventKind = e; } - -void AnalysisRootpleProducer::fillMCParticles(float p, float pt, float eta, float phi) { - MomentumMC[NumberMCParticles] = p; - TransverseMomentumMC[NumberMCParticles] = pt; - EtaMC[NumberMCParticles] = eta; - PhiMC[NumberMCParticles] = phi; - NumberMCParticles++; -} - -void AnalysisRootpleProducer::fillTracks(float p, float pt, float eta, float phi) { - MomentumTK[NumberTracks] = p; - TransverseMomentumTK[NumberTracks] = pt; - EtaTK[NumberTracks] = eta; - PhiTK[NumberTracks] = phi; - NumberTracks++; -} - -void AnalysisRootpleProducer::fillInclusiveJet(float p, float pt, float eta, float phi) { - MomentumIJ[NumberInclusiveJet] = p; - TransverseMomentumIJ[NumberInclusiveJet] = pt; - EtaIJ[NumberInclusiveJet] = eta; - PhiIJ[NumberInclusiveJet] = phi; - NumberInclusiveJet++; -} - -void AnalysisRootpleProducer::fillChargedJet(float p, float pt, float eta, float phi) { - MomentumCJ[NumberChargedJet] = p; - TransverseMomentumCJ[NumberChargedJet] = pt; - EtaCJ[NumberChargedJet] = eta; - PhiCJ[NumberChargedJet] = phi; - NumberChargedJet++; -} - -void AnalysisRootpleProducer::fillTracksJet(float p, float pt, float eta, float phi) { - MomentumTJ[NumberTracksJet] = p; - TransverseMomentumTJ[NumberTracksJet] = pt; - EtaTJ[NumberTracksJet] = eta; - PhiTJ[NumberTracksJet] = phi; - NumberTracksJet++; -} - -void AnalysisRootpleProducer::fillCaloJet(float p, float pt, float eta, float phi) { - MomentumEHJ[NumberCaloJet] = p; - TransverseMomentumEHJ[NumberCaloJet] = pt; - EtaEHJ[NumberCaloJet] = eta; - PhiEHJ[NumberCaloJet] = phi; - NumberCaloJet++; -} - -AnalysisRootpleProducer::AnalysisRootpleProducer(const ParameterSet& pset) { - // flag to ignore gen-level analysis - onlyRECO = pset.getUntrackedParameter("OnlyRECO", false); - - // particle, track and jet collections - mcEventToken = mayConsume(pset.getUntrackedParameter("MCEvent", std::string(""))); - genJetCollToken = - mayConsume(pset.getUntrackedParameter("GenJetCollectionName", std::string(""))); - chgJetCollToken = mayConsume( - pset.getUntrackedParameter("ChgGenJetCollectionName", std::string(""))); - tracksJetCollToken = consumes( - pset.getUntrackedParameter("TracksJetCollectionName", std::string(""))); - recoCaloJetCollToken = consumes( - pset.getUntrackedParameter("RecoCaloJetCollectionName", std::string(""))); - chgGenPartCollToken = mayConsume >( - pset.getUntrackedParameter("ChgGenPartCollectionName", std::string(""))); - tracksCollToken = consumes( - pset.getUntrackedParameter("TracksCollectionName", std::string(""))); - - // trigger results - triggerResultsToken = consumes(pset.getParameter("triggerResults")); - // hltFilterTag = pset.getParameter("hltFilter"); - // triggerName = pset.getParameter("triggerName"); - - piG = acos(-1.); - NumberMCParticles = 0; - NumberTracks = 0; - NumberInclusiveJet = 0; - NumberChargedJet = 0; - NumberTracksJet = 0; - NumberCaloJet = 0; -} - -void AnalysisRootpleProducer::beginJob() { - // use TFileService for output to root file - AnalysisTree = fs->make("AnalysisTree", "MBUE Analysis Tree "); - - AnalysisTree->Branch("EventKind", &EventKind, "EventKind/I"); - - // store p, pt, eta, phi for particles and jets - - // GenParticles at hadron level - AnalysisTree->Branch("NumberMCParticles", &NumberMCParticles, "NumberMCParticles/I"); - AnalysisTree->Branch("MomentumMC", MomentumMC, "MomentumMC[NumberMCParticles]/F"); - AnalysisTree->Branch("TransverseMomentumMC", TransverseMomentumMC, "TransverseMomentumMC[NumberMCParticles]/F"); - AnalysisTree->Branch("EtaMC", EtaMC, "EtaMC[NumberMCParticles]/F"); - AnalysisTree->Branch("PhiMC", PhiMC, "PhiMC[NumberMCParticles]/F"); - - // tracks - AnalysisTree->Branch("NumberTracks", &NumberTracks, "NumberTracks/I"); - AnalysisTree->Branch("MomentumTK", MomentumTK, "MomentumTK[NumberTracks]/F"); - AnalysisTree->Branch("TrasverseMomentumTK", TransverseMomentumTK, "TransverseMomentumTK[NumberTracks]/F"); - AnalysisTree->Branch("EtaTK", EtaTK, "EtaTK[NumberTracks]/F"); - AnalysisTree->Branch("PhiTK", PhiTK, "PhiTK[NumberTracks]/F"); - - // GenJets - AnalysisTree->Branch("NumberInclusiveJet", &NumberInclusiveJet, "NumberInclusiveJet/I"); - AnalysisTree->Branch("MomentumIJ", MomentumIJ, "MomentumIJ[NumberInclusiveJet]/F"); - AnalysisTree->Branch("TrasverseMomentumIJ", TransverseMomentumIJ, "TransverseMomentumIJ[NumberInclusiveJet]/F"); - AnalysisTree->Branch("EtaIJ", EtaIJ, "EtaIJ[NumberInclusiveJet]/F"); - AnalysisTree->Branch("PhiIJ", PhiIJ, "PhiIJ[NumberInclusiveJet]/F"); - - // jets from charged GenParticles - AnalysisTree->Branch("NumberChargedJet", &NumberChargedJet, "NumberChargedJet/I"); - AnalysisTree->Branch("MomentumCJ", MomentumCJ, "MomentumCJ[NumberChargedJet]/F"); - AnalysisTree->Branch("TrasverseMomentumCJ", TransverseMomentumCJ, "TransverseMomentumCJ[NumberChargedJet]/F"); - AnalysisTree->Branch("EtaCJ", EtaCJ, "EtaCJ[NumberChargedJet]/F"); - AnalysisTree->Branch("PhiCJ", PhiCJ, "PhiCJ[NumberChargedJet]/F"); - - // jets from tracks - AnalysisTree->Branch("NumberTracksJet", &NumberTracksJet, "NumberTracksJet/I"); - AnalysisTree->Branch("MomentumTJ", MomentumTJ, "MomentumTJ[NumberTracksJet]/F"); - AnalysisTree->Branch("TrasverseMomentumTJ", TransverseMomentumTJ, "TransverseMomentumTJ[NumberTracksJet]/F"); - AnalysisTree->Branch("EtaTJ", EtaTJ, "EtaTJ[NumberTracksJet]/F"); - AnalysisTree->Branch("PhiTJ", PhiTJ, "PhiTJ[NumberTracksJet]/F"); - - // jets from calorimeter towers - AnalysisTree->Branch("NumberCaloJet", &NumberCaloJet, "NumberCaloJet/I"); - AnalysisTree->Branch("MomentumEHJ", MomentumEHJ, "MomentumEHJ[NumberCaloJet]/F"); - AnalysisTree->Branch("TrasverseMomentumEHJ", TransverseMomentumEHJ, "TransverseMomentumEHJ[NumberCaloJet]/F"); - AnalysisTree->Branch("EtaEHJ", EtaEHJ, "EtaEHJ[NumberCaloJet]/F"); - AnalysisTree->Branch("PhiEHJ", PhiEHJ, "PhiEHJ[NumberCaloJet]/F"); - - // alternative storage method: - // save TClonesArrays of TLorentzVectors - // i.e. store 4-vectors of particles and jets - - MonteCarlo = new TClonesArray("TLorentzVector", 10000); - AnalysisTree->Branch("MonteCarlo", "TClonesArray", &MonteCarlo, 128000, 0); - - Track = new TClonesArray("TLorentzVector", 10000); - AnalysisTree->Branch("Track", "TClonesArray", &Track, 128000, 0); - - InclusiveJet = new TClonesArray("TLorentzVector", 10000); - AnalysisTree->Branch("InclusiveJet", "TClonesArray", &InclusiveJet, 128000, 0); - - ChargedJet = new TClonesArray("TLorentzVector", 10000); - AnalysisTree->Branch("ChargedJet", "TClonesArray", &ChargedJet, 128000, 0); - - TracksJet = new TClonesArray("TLorentzVector", 10000); - AnalysisTree->Branch("TracksJet", "TClonesArray", &TracksJet, 128000, 0); - - CalorimeterJet = new TClonesArray("TLorentzVector", 10000); - AnalysisTree->Branch("CalorimeterJet", "TClonesArray", &CalorimeterJet, 128000, 0); - - acceptedTriggers = new TClonesArray("TObjString", 10000); - AnalysisTree->Branch("acceptedTriggers", "TClonesArray", &acceptedTriggers, 128000, 0); -} - -void AnalysisRootpleProducer::analyze(const Event& e, const EventSetup&) { - e.getByToken(triggerResultsToken, triggerResults); - const edm::TriggerNames& triggerNames = e.triggerNames(*triggerResults); - - acceptedTriggers->Clear(); - unsigned int iAcceptedTriggers(0); - if (triggerResults.product()->wasrun()) { - //cout << "at least one path out of " << triggerResults.product()->size() << " ran? " << triggerResults.product()->wasrun() << endl; - - if (triggerResults.product()->accept()) { - //cout << endl << "at least one path accepted? " << triggerResults.product()->accept() << endl; - - const unsigned int n_TriggerResults(triggerResults.product()->size()); - for (unsigned int itrig(0); itrig < n_TriggerResults; ++itrig) { - if (triggerResults.product()->accept(itrig)) { - //cout << "path " << triggerNames.triggerName( itrig ); - //cout << ", module index " << triggerResults.product()->index( itrig ); - //cout << ", state (Ready = 0, Pass = 1, Fail = 2, Exception = 3) " << triggerResults.product()->state( itrig ); - //cout << ", accept " << triggerResults.product()->accept( itrig ); - //cout << endl; - - // save name of accepted trigger path - new ((*acceptedTriggers)[iAcceptedTriggers]) TObjString((triggerNames.triggerName(itrig)).c_str()); - ++iAcceptedTriggers; - } - } - } - } - - // gen level analysis - // skipped, if onlyRECO flag set to true - - if (!onlyRECO) { - e.getByToken(mcEventToken, EvtHandle); - e.getByToken(chgGenPartCollToken, CandHandleMC); - e.getByToken(chgJetCollToken, ChgGenJetsHandle); - e.getByToken(genJetCollToken, GenJetsHandle); - - const HepMC::GenEvent* Evt = EvtHandle->GetEvent(); - - EventKind = Evt->signal_process_id(); - - std::vector GenPart; - std::vector ChgGenJetContainer; - std::vector GenJetContainer; - - GenPart.clear(); - ChgGenJetContainer.clear(); - GenJetContainer.clear(); - MonteCarlo->Clear(); - InclusiveJet->Clear(); - ChargedJet->Clear(); - - // jets from charged particles at hadron level - if (!ChgGenJetsHandle->empty()) { - for (GenJetCollection::const_iterator it(ChgGenJetsHandle->begin()), itEnd(ChgGenJetsHandle->end()); it != itEnd; - ++it) { - ChgGenJetContainer.push_back(*it); - } - - std::stable_sort(ChgGenJetContainer.begin(), ChgGenJetContainer.end(), GenJetSort()); - - std::vector::const_iterator it(ChgGenJetContainer.begin()), itEnd(ChgGenJetContainer.end()); - for (int iChargedJet(0); it != itEnd; ++it, ++iChargedJet) { - fillChargedJet(it->p(), it->pt(), it->eta(), it->phi()); - new ((*ChargedJet)[iChargedJet]) TLorentzVector(it->px(), it->py(), it->pz(), it->energy()); - } - } - - // GenJets - if (!GenJetsHandle->empty()) { - for (GenJetCollection::const_iterator it(GenJetsHandle->begin()), itEnd(GenJetsHandle->end()); it != itEnd; - ++it) { - GenJetContainer.push_back(*it); - } - - std::stable_sort(GenJetContainer.begin(), GenJetContainer.end(), GenJetSort()); - - std::vector::const_iterator it(GenJetContainer.begin()), itEnd(GenJetContainer.end()); - for (int iInclusiveJet(0); it != itEnd; ++it, ++iInclusiveJet) { - fillInclusiveJet(it->p(), it->pt(), it->eta(), it->phi()); - new ((*InclusiveJet)[iInclusiveJet]) TLorentzVector(it->px(), it->py(), it->pz(), it->energy()); - } - } - - // hadron level particles - if (!CandHandleMC->empty()) { - for (vector::const_iterator it(CandHandleMC->begin()), itEnd(CandHandleMC->end()); it != itEnd; - it++) { - GenPart.push_back(it->p4()); - } - - std::stable_sort(GenPart.begin(), GenPart.end(), GreaterPt()); - - std::vector::const_iterator it(GenPart.begin()), itEnd(GenPart.end()); - for (int iMonteCarlo(0); it != itEnd; ++it, ++iMonteCarlo) { - fillMCParticles(it->P(), it->Pt(), it->Eta(), it->Phi()); - new ((*MonteCarlo)[iMonteCarlo]) TLorentzVector(it->Px(), it->Py(), it->Pz(), it->E()); - } - } - } - - // reco level analysis - - e.getByToken(tracksCollToken, CandHandleRECO); - e.getByToken(recoCaloJetCollToken, RecoCaloJetsHandle); - e.getByToken(tracksJetCollToken, TracksJetsHandle); - - std::vector Tracks; - std::vector TracksJetContainer; - std::vector RecoCaloJetContainer; - - Tracks.clear(); - TracksJetContainer.clear(); - RecoCaloJetContainer.clear(); - - Track->Clear(); - TracksJet->Clear(); - CalorimeterJet->Clear(); - - if (!RecoCaloJetsHandle->empty()) { - for (CaloJetCollection::const_iterator it(RecoCaloJetsHandle->begin()), itEnd(RecoCaloJetsHandle->end()); - it != itEnd; - ++it) { - RecoCaloJetContainer.push_back(*it); - } - std::stable_sort(RecoCaloJetContainer.begin(), RecoCaloJetContainer.end(), CaloJetSort()); - - std::vector::const_iterator it(RecoCaloJetContainer.begin()), itEnd(RecoCaloJetContainer.end()); - for (int iCalorimeterJet(0); it != itEnd; ++it, ++iCalorimeterJet) { - fillCaloJet(it->p(), it->pt(), it->eta(), it->phi()); - new ((*CalorimeterJet)[iCalorimeterJet]) TLorentzVector(it->px(), it->py(), it->pz(), it->energy()); - } - } - - if (!TracksJetsHandle->empty()) { - for (BasicJetCollection::const_iterator it(TracksJetsHandle->begin()), itEnd(TracksJetsHandle->end()); it != itEnd; - ++it) { - TracksJetContainer.push_back(*it); - } - std::stable_sort(TracksJetContainer.begin(), TracksJetContainer.end(), BasicJetSort()); - - std::vector::const_iterator it(TracksJetContainer.begin()), itEnd(TracksJetContainer.end()); - for (int iTracksJet(0); it != itEnd; ++it, ++iTracksJet) { - fillTracksJet(it->p(), it->pt(), it->eta(), it->phi()); - new ((*TracksJet)[iTracksJet]) TLorentzVector(it->px(), it->py(), it->pz(), it->energy()); - } - } - - if (!CandHandleRECO->empty()) { - for (CandidateCollection::const_iterator it(CandHandleRECO->begin()), itEnd(CandHandleRECO->end()); it != itEnd; - ++it) { - Tracks.push_back(it->p4()); - } - std::stable_sort(Tracks.begin(), Tracks.end(), GreaterPt()); - - std::vector::const_iterator it(Tracks.begin()), itEnd(Tracks.end()); - for (int iTracks(0); it != itEnd; ++it, ++iTracks) { - fillTracks(it->P(), it->Pt(), it->Eta(), it->Phi()); - new ((*Track)[iTracks]) TLorentzVector(it->Px(), it->Py(), it->Pz(), it->E()); - } - } - - store(); -} - -void AnalysisRootpleProducer::endJob() {} diff --git a/QCDAnalysis/UEAnalysis/src/AnalysisRootpleProducerOnlyMC.cc b/QCDAnalysis/UEAnalysis/src/AnalysisRootpleProducerOnlyMC.cc deleted file mode 100644 index 59c0ac3330e28..0000000000000 --- a/QCDAnalysis/UEAnalysis/src/AnalysisRootpleProducerOnlyMC.cc +++ /dev/null @@ -1,179 +0,0 @@ -// Authors: F. Ambroglini, L. Fano' -#include - -using namespace edm; -using namespace std; -using namespace reco; - -class GreaterPt { -public: - bool operator()(const math::XYZTLorentzVector& a, const math::XYZTLorentzVector& b) { return a.pt() > b.pt(); } -}; - -class GenJetSort { -public: - bool operator()(const GenJet& a, const GenJet& b) { return a.pt() > b.pt(); } -}; - -void AnalysisRootpleProducerOnlyMC::store() { - AnalysisTree->Fill(); - - NumberMCParticles = 0; - NumberInclusiveJet = 0; - NumberChargedJet = 0; -} - -void AnalysisRootpleProducerOnlyMC::fillEventInfo(int e) { EventKind = e; } - -void AnalysisRootpleProducerOnlyMC::fillMCParticles(float p, float pt, float eta, float phi) { - MomentumMC[NumberMCParticles] = p; - TransverseMomentumMC[NumberMCParticles] = pt; - EtaMC[NumberMCParticles] = eta; - PhiMC[NumberMCParticles] = phi; - NumberMCParticles++; -} - -void AnalysisRootpleProducerOnlyMC::fillInclusiveJet(float p, float pt, float eta, float phi) { - MomentumIJ[NumberInclusiveJet] = p; - TransverseMomentumIJ[NumberInclusiveJet] = pt; - EtaIJ[NumberInclusiveJet] = eta; - PhiIJ[NumberInclusiveJet] = phi; - NumberInclusiveJet++; -} - -void AnalysisRootpleProducerOnlyMC::fillChargedJet(float p, float pt, float eta, float phi) { - MomentumCJ[NumberChargedJet] = p; - TransverseMomentumCJ[NumberChargedJet] = pt; - EtaCJ[NumberChargedJet] = eta; - PhiCJ[NumberChargedJet] = phi; - NumberChargedJet++; -} - -AnalysisRootpleProducerOnlyMC::AnalysisRootpleProducerOnlyMC(const ParameterSet& pset) { - mcEventToken = consumes(pset.getUntrackedParameter("MCEvent", std::string(""))); - genJetCollToken = - consumes(pset.getUntrackedParameter("GenJetCollectionName", std::string(""))); - chgJetCollToken = consumes( - pset.getUntrackedParameter("ChgGenJetCollectionName", std::string(""))); - chgGenPartCollToken = consumes >( - pset.getUntrackedParameter("ChgGenPartCollectionName", std::string(""))); - - piG = acos(-1.); - NumberMCParticles = 0; - NumberInclusiveJet = 0; - NumberChargedJet = 0; -} - -void AnalysisRootpleProducerOnlyMC::beginJob() { - // use TFileService for output to root file - AnalysisTree = fs->make("AnalysisTree", "MBUE Analysis Tree "); - - // process type - AnalysisTree->Branch("EventKind", &EventKind, "EventKind/I"); - - // store p, pt, eta, phi for particles and jets - - // GenParticles at hadron level - AnalysisTree->Branch("NumberMCParticles", &NumberMCParticles, "NumberMCParticles/I"); - AnalysisTree->Branch("MomentumMC", MomentumMC, "MomentumMC[NumberMCParticles]/F"); - AnalysisTree->Branch("TransverseMomentumMC", TransverseMomentumMC, "TransverseMomentumMC[NumberMCParticles]/F"); - AnalysisTree->Branch("EtaMC", EtaMC, "EtaMC[NumberMCParticles]/F"); - AnalysisTree->Branch("PhiMC", PhiMC, "PhiMC[NumberMCParticles]/F"); - - // GenJets - AnalysisTree->Branch("NumberInclusiveJet", &NumberInclusiveJet, "NumberInclusiveJet/I"); - AnalysisTree->Branch("MomentumIJ", MomentumIJ, "MomentumIJ[NumberInclusiveJet]/F"); - AnalysisTree->Branch("TrasverseMomentumIJ", TransverseMomentumIJ, "TransverseMomentumIJ[NumberInclusiveJet]/F"); - AnalysisTree->Branch("EtaIJ", EtaIJ, "EtaIJ[NumberInclusiveJet]/F"); - AnalysisTree->Branch("PhiIJ", PhiIJ, "PhiIJ[NumberInclusiveJet]/F"); - - // jets from charged GenParticles - AnalysisTree->Branch("NumberChargedJet", &NumberChargedJet, "NumberChargedJet/I"); - AnalysisTree->Branch("MomentumCJ", MomentumCJ, "MomentumCJ[NumberChargedJet]/F"); - AnalysisTree->Branch("TrasverseMomentumCJ", TransverseMomentumCJ, "TransverseMomentumCJ[NumberChargedJet]/F"); - AnalysisTree->Branch("EtaCJ", EtaCJ, "EtaCJ[NumberChargedJet]/F"); - AnalysisTree->Branch("PhiCJ", PhiCJ, "PhiCJ[NumberChargedJet]/F"); - - // alternative storage method: - // save TClonesArrays of TLorentzVectors - // i.e. store 4-vectors of particles and jets - - MonteCarlo = new TClonesArray("TLorentzVector", 10000); - AnalysisTree->Branch("MonteCarlo", "TClonesArray", &MonteCarlo, 128000, 0); - - InclusiveJet = new TClonesArray("TLorentzVector", 10000); - AnalysisTree->Branch("InclusiveJet", "TClonesArray", &InclusiveJet, 128000, 0); - - ChargedJet = new TClonesArray("TLorentzVector", 10000); - AnalysisTree->Branch("ChargedJet", "TClonesArray", &ChargedJet, 128000, 0); -} - -void AnalysisRootpleProducerOnlyMC::analyze(const Event& e, const EventSetup&) { - e.getByToken(mcEventToken, EvtHandle); - e.getByToken(chgGenPartCollToken, CandHandleMC); - e.getByToken(chgJetCollToken, ChgGenJetsHandle); - e.getByToken(genJetCollToken, GenJetsHandle); - - const HepMC::GenEvent* Evt = EvtHandle->GetEvent(); - - EventKind = Evt->signal_process_id(); - - std::vector GenPart; - std::vector ChgGenJetContainer; - std::vector GenJetContainer; - - GenPart.clear(); - ChgGenJetContainer.clear(); - GenJetContainer.clear(); - - ChargedJet->Clear(); - InclusiveJet->Clear(); - MonteCarlo->Clear(); - - if (!ChgGenJetsHandle->empty()) { - for (GenJetCollection::const_iterator it(ChgGenJetsHandle->begin()), itEnd(ChgGenJetsHandle->end()); it != itEnd; - ++it) { - ChgGenJetContainer.push_back(*it); - } - - std::stable_sort(ChgGenJetContainer.begin(), ChgGenJetContainer.end(), GenJetSort()); - - std::vector::const_iterator it(ChgGenJetContainer.begin()), itEnd(ChgGenJetContainer.end()); - for (int iChargedJet(0); it != itEnd; ++it, ++iChargedJet) { - fillChargedJet(it->p(), it->pt(), it->eta(), it->phi()); - new ((*ChargedJet)[iChargedJet]) TLorentzVector(it->px(), it->py(), it->pz(), it->energy()); - } - } - - if (!GenJetsHandle->empty()) { - for (GenJetCollection::const_iterator it(GenJetsHandle->begin()), itEnd(GenJetsHandle->end()); it != itEnd; ++it) { - GenJetContainer.push_back(*it); - } - - std::stable_sort(GenJetContainer.begin(), GenJetContainer.end(), GenJetSort()); - - std::vector::const_iterator it(GenJetContainer.begin()), itEnd(GenJetContainer.end()); - for (int iInclusiveJet(0); it != itEnd; ++it, ++iInclusiveJet) { - fillInclusiveJet(it->p(), it->pt(), it->eta(), it->phi()); - new ((*InclusiveJet)[iInclusiveJet]) TLorentzVector(it->px(), it->py(), it->pz(), it->energy()); - } - } - - if (!CandHandleMC->empty()) { - for (vector::const_iterator it(CandHandleMC->begin()), itEnd(CandHandleMC->end()); it != itEnd; it++) { - GenPart.push_back(it->p4()); - } - - std::stable_sort(GenPart.begin(), GenPart.end(), GreaterPt()); - - std::vector::const_iterator it(GenPart.begin()), itEnd(GenPart.end()); - for (int iMonteCarlo(0); it != itEnd; ++it, ++iMonteCarlo) { - fillMCParticles(it->P(), it->Pt(), it->Eta(), it->Phi()); - new ((*MonteCarlo)[iMonteCarlo]) TLorentzVector(it->Px(), it->Py(), it->Pz(), it->E()); - } - } - - store(); -} - -void AnalysisRootpleProducerOnlyMC::endJob() {} diff --git a/QCDAnalysis/UEAnalysis/src/SealModule.cc b/QCDAnalysis/UEAnalysis/src/SealModule.cc deleted file mode 100644 index 30f7ba663a232..0000000000000 --- a/QCDAnalysis/UEAnalysis/src/SealModule.cc +++ /dev/null @@ -1,8 +0,0 @@ -#include "FWCore/PluginManager/interface/ModuleDef.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "QCDAnalysis/UEAnalysis/interface/AnalysisRootpleProducer.h" -#include "QCDAnalysis/UEAnalysis/interface/AnalysisRootpleProducerOnlyMC.h" - -DEFINE_FWK_MODULE(AnalysisRootpleProducer); -DEFINE_FWK_MODULE(AnalysisRootpleProducerOnlyMC); diff --git a/SUSYBSMAnalysis/HSCP/BuildFile.xml b/SUSYBSMAnalysis/HSCP/BuildFile.xml deleted file mode 100644 index b95183c1fbe2b..0000000000000 --- a/SUSYBSMAnalysis/HSCP/BuildFile.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/SUSYBSMAnalysis/HSCP/data/Data7TeV_Deco_SiStripDeDxMip_3D_Rcd.db b/SUSYBSMAnalysis/HSCP/data/Data7TeV_Deco_SiStripDeDxMip_3D_Rcd.db deleted file mode 100644 index 548874cf0d902..0000000000000 Binary files a/SUSYBSMAnalysis/HSCP/data/Data7TeV_Deco_SiStripDeDxMip_3D_Rcd.db and /dev/null differ diff --git a/SUSYBSMAnalysis/HSCP/data/Data7TeV_Deco_SiStripDeDxMip_3D_Rcd.root b/SUSYBSMAnalysis/HSCP/data/Data7TeV_Deco_SiStripDeDxMip_3D_Rcd.root deleted file mode 100644 index 33bae01aa66c2..0000000000000 Binary files a/SUSYBSMAnalysis/HSCP/data/Data7TeV_Deco_SiStripDeDxMip_3D_Rcd.root and /dev/null differ diff --git a/SUSYBSMAnalysis/HSCP/data/MC7TeVGains.root b/SUSYBSMAnalysis/HSCP/data/MC7TeVGains.root deleted file mode 100644 index e7f004f2bdf18..0000000000000 Binary files a/SUSYBSMAnalysis/HSCP/data/MC7TeVGains.root and /dev/null differ diff --git a/SUSYBSMAnalysis/HSCP/data/MC7TeV_Deco_SiStripDeDxMip_3D_Rcd.db b/SUSYBSMAnalysis/HSCP/data/MC7TeV_Deco_SiStripDeDxMip_3D_Rcd.db deleted file mode 100644 index 0b9d8244b86ea..0000000000000 Binary files a/SUSYBSMAnalysis/HSCP/data/MC7TeV_Deco_SiStripDeDxMip_3D_Rcd.db and /dev/null differ diff --git a/SUSYBSMAnalysis/HSCP/data/MC7TeV_Deco_SiStripDeDxMip_3D_Rcd.root b/SUSYBSMAnalysis/HSCP/data/MC7TeV_Deco_SiStripDeDxMip_3D_Rcd.root deleted file mode 100644 index bdfb231827d9f..0000000000000 Binary files a/SUSYBSMAnalysis/HSCP/data/MC7TeV_Deco_SiStripDeDxMip_3D_Rcd.root and /dev/null differ diff --git a/SUSYBSMAnalysis/HSCP/data/MuonTimeShift_2011.txt b/SUSYBSMAnalysis/HSCP/data/MuonTimeShift_2011.txt deleted file mode 100644 index 923249bab92bc..0000000000000 --- a/SUSYBSMAnalysis/HSCP/data/MuonTimeShift_2011.txt +++ /dev/null @@ -1,3106 +0,0 @@ -637566980 -0.54825 -637599748 0.949943 -637632516 -2.93543 -637566982 3.11989 -637599750 4.01475 -637632518 -3.15935 -637566984 -15.8282 -637599752 5.31518 -637632520 0.671882 -637566986 -5.8648 -637599754 2.22948 -637632522 -5.24969 -637566989 5.47475 -637632525 2.32308 -637566993 -4.86417 -637632529 -0.886712 -637566997 6.20121 -637632533 -3.39547 -637567001 -7.79198 -637632537 4.77651 -637567005 0.678291 -637632541 1.1537 -637567108 2.25723 -637599876 -1.32955 -637632644 7.13276 -637567110 -1.32297 -637599878 -5.09807 -637632646 9.66427 -637567112 4.04016 -637599880 4.97838 -637632648 11.7094 -637567114 5.28602 -637599882 4.52049 -637632650 5.52124 -637567117 4.32638 -637632653 -0.416447 -637567121 5.10487 -637632657 -5.87838 -637567125 8.50734 -637632661 -3.97512 -637567129 -3.44312 -637632665 0.705437 -637567133 3.19274 -637632669 4.14705 -637567236 5.38406 -637600004 6.53442 -637632772 1.8919 -637567238 2.87289 -637600006 1.40396 -637632774 -7.64573 -637567240 1.52575 -637600008 -6.24801 -637632776 1.94148 -637567242 -5.62642 -637600010 3.77316 -637632778 -2.21807 -637567245 -0.927925 -637632781 1.98242 -637567249 0.469939 -637632785 3.35778 -637567253 3.40025 -637632789 0.0247274 -637567257 0.669699 -637632793 -6.50361 -637567261 10.1999 -637632797 -3.8703 -637567364 -10.0033 -637600132 -3.73939 -637632900 -5.90777 -637567366 -4.8132 -637600134 10.0657 -637632902 4.36448 -637567368 9.69303 -637600136 -4.69573 -637632904 -8.17894 -637567370 0.277902 -637600138 -3.3577 -637632906 -1.58948 -637567373 -0.571988 -637632909 -0.129552 -637567377 -7.0785 -637632913 0.43841 -637567381 6.61704 -637632917 -1.73842 -637567385 0.317941 -637632921 1.8316 -637567389 1.85351 -637632925 8.57226 -637567492 1.08777 -637600260 -3.03081 -637633028 -7.64577 -637567494 4.85243 -637600262 2.41655 -637633030 0.463351 -637567496 -7.24735 -637600264 -12.533 -637633032 6.66279 -637567498 1.86912 -637600266 -0.255423 -637633034 3.60769 -637567501 3.92872 -637633037 1.31557 -637567505 -4.85149 -637633041 0.113582 -637567509 -2.9909 -637633045 3.13101 -637567513 0.770356 -637633049 1.50866 -637567517 -4.88241 -637633053 -1.24616 -637567620 -4.62485 -637600388 4.17009 -637633156 -4.15142 -637567622 1.74261 -637600390 1.631 -637633158 -0.835259 -637567624 -1.90584 -637600392 1.93343 -637633160 -4.27454 -637567626 -4.03159 -637600394 -1.90478 -637633162 -5.9056 -637567629 9.33487 -637633165 2.22477 -637567633 -4.97273 -637633169 -3.39858 -637567637 -1.4782 -637633173 6.30623 -637567641 -14.1326 -637633177 7.55448 -637567645 2.56901 -637633181 8.69499 -637567757 0.0251438 -637633293 6.15146 -637567761 7.54069 -637633297 0.00331819 -637567765 -10.1268 -637633301 -4.5161 -637567769 2.83008 -637633305 -5.79594 -637567773 -9.55809 -637633309 -10.869 -637567885 4.60449 -637633421 2.74938 -637567889 5.84943 -637633425 9.32703 -637567893 6.52935 -637633429 0.765314 -637567897 2.55962 -637633433 -3.1393 -637567901 3.50424 -637633437 2.64584 -637568013 -2.81008 -637633549 3.2293 -637568017 4.04131 -637633553 -9.74897 -637568021 -5.40237 -637633557 -1.55474 -637568025 7.40741 -637633561 -3.59782 -637568029 2.42784 -637633565 0.0298086 -637568141 -0.336222 -637633677 8.53511 -637568145 -6.22653 -637633681 4.13591 -637568149 3.49544 -637633685 -4.61481 -637568153 1.79503 -637633689 -1.06422 -637568157 0.0718886 -637633693 -1.95245 -637568269 2.46336 -637633805 -1.99954 -637568273 -1.10068 -637633809 0.180165 -637568277 -0.14968 -637633813 -0.0668611 -637568281 -0.26237 -637633817 5.14512 -637568285 -1.79736 -637633821 -1.9808 -637568397 -2.6767 -637633933 -2.26294 -637568401 9.36669 -637633937 -2.52591 -637568405 6.76381 -637633941 2.11004 -637568409 -3.83077 -637633945 -12.3055 -637568413 -6.1029 -637633949 -1.7245 -637571076 -0.964312 -637603844 1.30948 -637636612 2.00939 -637571078 -2.79966 -637603846 2.95257 -637636614 7.79661 -637571080 2.43369 -637603848 1.32935 -637636616 -0.614873 -637571082 1.5531 -637603850 -7.74007 -637636618 -14.6045 -637571204 -4.1763 -637603972 -3.83262 -637636740 8.61637 -637571206 2.4631 -637603974 -7.22921 -637636742 1.98934 -637571208 -6.83659 -637603976 -3.61622 -637636744 2.51258 -637571210 -1.17684 -637603978 -2.93719 -637636746 -5.90492 -637571332 -1.30733 -637604100 4.10243 -637636868 -3.30163 -637571334 2.74197 -637604102 -9.74734 -637636870 -3.09347 -637571336 1.96458 -637604104 4.14566 -637636872 -3.49542 -637571338 -2.9031 -637604106 -1.07744 -637636874 -2.28438 -637571460 7.84067 -637604228 -1.82744 -637636996 -1.23245 -637571462 -2.10323 -637604230 -2.88649 -637636998 -6.16042 -637571464 -7.84099 -637604232 -3.20089 -637637000 6.64647 -637571466 -3.31898 -637604234 1.22743 -637637002 8.29804 -637571588 -1.41747 -637604356 0.62095 -637637124 0.670404 -637571590 -2.21146 -637604358 -2.11718 -637637126 -0.208664 -637571592 5.68841 -637604360 -7.25456 -637637128 6.9089 -637571594 -7.22151 -637604362 -4.18985 -637637130 1.94308 -637571716 2.48212 -637604484 -3.6147 -637637252 3.65236 -637571718 4.14743 -637604486 1.43399 -637637254 9.63188 -637571720 -2.59887 -637604488 2.65129 -637637256 -6.50771 -637571722 -7.27841 -637604490 -0.778229 -637637258 3.95056 -637575172 -6.33595 -637607940 -1.03366 -637640708 -4.92394 -637575174 -4.79788 -637607942 9.89951 -637640710 1.51517 -637575176 -1.79888 -637607944 0.405213 -637640712 -6.33561 -637575178 -0.0748711 -637607946 5.56466 -637640714 6.26123 -637575300 -0.0882322 -637608068 -6.60782 -637640836 1.66932 -637575302 -4.74806 -637608070 -0.72546 -637640838 -6.31267 -637575304 -3.39001 -637608072 -1.88332 -637640840 3.76965 -637575306 -1.60423 -637608074 -2.50018 -637640842 -7.33383 -637575428 -5.15268 -637608196 -1.55812 -637640964 -10.7352 -637575430 -5.82587 -637608198 -1.18181 -637640966 -7.03436 -637575432 1.58461 -637608200 3.52565 -637640968 -4.8347 -637575434 0.745435 -637608202 -4.22216 -637640970 -0.198822 -637575556 8.72811 -637608324 4.13306 -637641092 -1.93093 -637575558 0.504006 -637608326 -4.66653 -637641094 4.47765 -637575560 -8.24046 -637608328 -0.483929 -637641096 3.97375 -637575562 0.917794 -637608330 -3.05788 -637641098 1.63833 -637575684 -6.1682 -637608452 -6.66116 -637641220 3.18669 -637575686 -3.4679 -637608454 5.42775 -637641222 1.48455 -637575688 5.43826 -637608456 -3.94814 -637641224 4.93566 -637575690 -3.92341 -637608458 1.1025 -637641226 1.18038 -637575812 -7.4948 -637608580 1.83546 -637641348 7.55707 -637575814 -8.39462 -637608582 1.06256 -637641350 6.04283 -637575816 -5.68661 -637608584 8.3923 -637641352 2.85884 -637575818 -3.4662 -637608586 8.01506 -637641354 0.424497 -637579268 0.765138 -637612036 -4.76876 -637644804 3.89189 -637579270 5.34724 -637612038 -1.76508 -637644806 0.332866 -637579272 5.51425 -637612040 -4.97524 -637644808 -8.04122 -637579274 5.52362 -637612042 3.84446 -637644810 -3.97011 -637579396 7.44973 -637612164 1.6487 -637644932 8.32166 -637579398 0.491653 -637612166 1.18992 -637644934 2.27996 -637579400 -0.107862 -637612168 1.26844 -637644936 6.20492 -637579402 -1.09422 -637612170 0.0401733 -637644938 4.46886 -637579524 -2.5008 -637612292 -9.22931 -637645060 0.862653 -637579526 -1.6866 -637612294 -0.836017 -637645062 5.81386 -637579528 -3.93464 -637612296 -1.63098 -637645064 0.511446 -637579530 -5.67424 -637612298 -4.11606 -637645066 -10.2008 -637579652 3.21899 -637612420 -8.93435 -637645188 4.30834 -637579654 -4.37931 -637612422 4.85541 -637645190 -8.20157 -637579656 -8.02274 -637612424 -1.72229 -637645192 -3.50858 -637579658 -3.2426 -637612426 -9.18281 -637645194 4.91979 -637579780 0.282365 -637612548 1.10628 -637645316 -6.77544 -637579782 -2.59312 -637612550 0.968924 -637645318 -9.24824 -637579784 -4.81591 -637612552 -3.44662 -637645320 1.98027 -637579786 4.82379 -637612554 -2.01366 -637645322 6.90943 -637579908 5.40352 -637612676 -5.38882 -637645444 0.524653 -637579910 2.39057 -637612678 -5.35561 -637645446 0.415672 -637579912 -6.43054 -637612680 -1.16537 -637645448 1.72145 -637579914 2.69822 -637612682 -1.04053 -637645450 3.06885 -637583364 3.91677 -637616132 -7.20584 -637648900 0.596132 -637583366 -4.28312 -637616134 -2.68661 -637648902 8.98275 -637583368 4.38057 -637616136 1.58621 -637648904 7.98315 -637583370 5.10259 -637616138 -1.61969 -637648906 -0.982994 -637583492 -5.24587 -637616260 -0.591482 -637649028 -4.80903 -637583494 -10.3164 -637616262 -8.04172 -637649030 3.47256 -637583496 -2.08386 -637616264 -6.71123 -637649032 3.13604 -637583498 -4.93018 -637616266 7.95757 -637649034 -0.678979 -637583620 -2.74742 -637616388 -2.75983 -637649156 1.79837 -637583622 8.54086 -637616390 3.09743 -637649158 10.6154 -637583624 7.0988 -637616392 1.05579 -637649160 -0.5626 -637583626 -4.36058 -637616394 2.67402 -637649162 -3.04797 -637583748 9.00403 -637616516 2.14851 -637649284 -3.64874 -637583750 1.22719 -637616518 -2.54111 -637649286 2.76716 -637583752 3.34759 -637616520 -2.67625 -637649288 0.383747 -637583754 4.00793 -637616522 -1.477 -637649290 1.96655 -637583876 -10.8557 -637616644 4.60437 -637649412 2.22306 -637583878 -2.60309 -637616646 5.00627 -637649414 8.35409 -637583880 -3.80216 -637616648 -1.82328 -637649416 1.44324 -637583882 1.8768 -637616650 11.4619 -637649418 4.32182 -637584004 2.5049 -637616772 -4.50782 -637649540 1.13013 -637584006 -6.66699 -637616774 -4.31316 -637649542 -2.2929 -637584008 3.32935 -637616776 1.36242 -637649544 0.28473 -637584010 5.71837 -637616778 2.17353 -637649546 2.00345 -637587460 2.20414 -637620228 -3.85812 -637652996 -6.4373 -637587462 1.1966 -637620230 4.75233 -637652998 1.79686 -637587464 -2.62672 -637620232 -5.3272 -637653000 0.880106 -637587466 2.30799 -637620234 1.68841 -637653002 -3.36382 -637587588 -0.627363 -637620356 9.3687 -637653124 1.75695 -637587590 -4.53461 -637620358 2.7622 -637653126 0.958532 -637587592 -3.20002 -637620360 2.84104 -637653128 -1.88095 -637587594 -10.6919 -637620362 -9.36646 -637653130 -2.10317 -637587716 -3.69495 -637620484 -0.613713 -637653252 -3.15007 -637587718 -4.69565 -637620486 -4.32493 -637653254 -4.80023 -637587720 2.21372 -637620488 -0.87906 -637653256 -8.7906 -637587722 -1.83006 -637620490 -1.79431 -637653258 -6.1714 -637587844 2.6109 -637620612 -4.84081 -637653380 -2.57124 -637587846 -5.2613 -637620614 -4.9587 -637653382 4.33851 -637587848 6.78394 -637620616 -5.20678 -637653384 5.79193 -637587850 3.02566 -637620618 -0.0737251 -637653386 1.05147 -637587972 -12.3171 -637620740 -7.38983 -637653508 6.96771 -637587974 0.478712 -637620742 -2.43457 -637653510 1.77061 -637587976 2.31474 -637620744 -0.568067 -637653512 10.0303 -637587978 -6.68392 -637620746 4.80617 -637653514 8.14234 -637588100 -0.578392 -637620868 -3.58589 -637653636 4.8912 -637588102 -1.93483 -637620870 -8.96537 -637653638 7.34389 -637588104 4.80965 -637620872 2.36795 -637653640 3.56476 -637588106 6.74037 -637620874 8.56063 -637653642 6.45055 -637569037 -1.40058 -637634573 -1.66342 -637569041 1.03053 -637634577 4.38958 -637569045 14.0513 -637634581 -0.115735 -637569049 0.433612 -637634585 10.5141 -637569053 -5.31033 -637634589 -6.58589 -637569165 -9.4821 -637634701 3.29065 -637569169 9.53897 -637634705 -2.23044 -637569173 -5.19275 -637634709 -1.88744 -637569177 3.25538 -637634713 -2.41946 -637569181 1.86303 -637634717 3.35213 -637569293 -2.47989 -637634829 4.71531 -637569297 6.37194 -637634833 2.47024 -637569301 -2.79159 -637634837 -4.39933 -637569305 0.120204 -637634841 -1.34416 -637569309 -5.67875 -637634845 -5.50263 -637569421 7.66378 -637634957 -7.40463 -637569425 -7.67853 -637634961 3.2624 -637569429 -4.43217 -637634965 -2.36009 -637569433 3.14271 -637634969 8.30328 -637569437 -3.06829 -637634973 0.58363 -637569549 -7.12342 -637635085 -7.47465 -637569553 2.34774 -637635089 -5.13436 -637569557 -4.07156 -637635093 11.5021 -637569561 -3.9247 -637635097 1.31454 -637569565 -1.57977 -637635101 3.15488 -637569677 -3.61592 -637635213 -5.14304 -637569681 1.76213 -637635217 6.94876 -637569685 5.30907 -637635221 -1.07233 -637569689 6.64069 -637635225 -2.49184 -637569693 -1.52343 -637635229 1.4716 -637569805 0.697328 -637635341 5.11447 -637569809 -0.78532 -637635345 -4.70059 -637569813 -0.889819 -637635349 -2.608 -637569817 -6.13829 -637635353 2.4109 -637569821 1.15355 -637635357 -0.670533 -637569933 8.07542 -637635469 10.7987 -637569937 5.33386 -637635473 -6.04296 -637569941 -0.310374 -637635477 -6.31196 -637569945 2.05802 -637635481 -5.77593 -637569949 2.51641 -637635485 -1.38074 -637570061 8.78131 -637635597 -1.74917 -637570065 -5.83978 -637635601 7.33768 -637570069 6.67261 -637635605 -5.94483 -637570073 0.570371 -637635609 9.12798 -637570077 0.466451 -637635613 1.89271 -637570189 0.538561 -637635725 2.19573 -637570193 -2.83092 -637635729 10.5243 -637570197 0.784778 -637635733 -3.09858 -637570201 6.96165 -637635737 2.15107 -637570205 1.07838 -637635741 -0.599663 -637570317 5.20164 -637635853 2.47448 -637570321 4.98447 -637635857 -3.57837 -637570325 1.48539 -637635861 -1.05006 -637570329 0.284051 -637635865 -0.104213 -637570333 -3.83373 -637635869 0.472037 -637570445 -1.17203 -637635981 -1.49497 -637570449 -6.32186 -637635985 4.24793 -637570453 -4.64299 -637635989 3.53618 -637570457 -5.48346 -637635993 5.66016 -637570461 -2.35404 -637635997 6.93627 -637567012 2.55194 -637599780 -2.55185 -637632548 0.650249 -637567014 7.35478 -637599782 -2.86672 -637632550 2.13922 -637567016 4.92785 -637599784 -1.9431 -637632552 6.15835 -637567018 2.54482 -637599786 -3.34368 -637632554 -6.77141 -637567021 -0.432436 -637632557 -0.566149 -637567025 0.491478 -637599793 -1.31324 -637632561 -3.27748 -637567029 0.635068 -637599797 -0.918134 -637632565 2.24436 -637567033 2.71832 -637599801 1.76764 -637632569 -7.09806 -637567037 0.705728 -637632573 -3.62464 -637567140 4.65699 -637599908 9.1784 -637632676 -3.03216 -637567142 -1.97991 -637599910 8.13425 -637632678 -5.45238 -637567144 3.24324 -637599912 -0.80503 -637632680 4.18706 -637567146 -1.16718 -637599914 3.66135 -637632682 2.27936 -637567149 1.87652 -637632685 -3.10032 -637567153 -0.832569 -637599921 9.16033 -637632689 -0.647561 -637567157 4.57215 -637599925 -4.71841 -637632693 -1.62149 -637567161 3.11847 -637599929 3.07312 -637632697 -7.15776 -637567165 -1.19949 -637632701 3.96635 -637567268 -6.45604 -637600036 -4.32158 -637632804 7.77485 -637567270 11.9852 -637600038 -3.42922 -637632806 -3.92669 -637567272 4.77994 -637600040 -8.14715 -637632808 3.09504 -637567274 -3.2702 -637600042 -5.10388 -637632810 -3.41113 -637567277 4.51393 -637632813 7.41892 -637567281 1.35133 -637600049 2.55154 -637632817 -4.90282 -637567285 7.58922 -637600053 -2.03227 -637632821 2.74213 -637567289 0.235447 -637600057 -0.0454762 -637632825 -2.93607 -637567293 4.00439 -637632829 -2.73172 -637567396 2.24239 -637600164 3.5466 -637632932 -0.93074 -637567398 6.63827 -637600166 2.15053 -637632934 -0.751094 -637567400 -2.83714 -637600168 -0.786629 -637632936 0.627926 -637567402 -4.57982 -637600170 -1.54031 -637632938 -5.04178 -637567405 -5.36065 -637632941 8.47125 -637567409 9.72273 -637600177 -2.88832 -637632945 -6.44361 -637567413 -3.12012 -637600181 1.13076 -637632949 -2.69126 -637567417 -10.8377 -637600185 -0.711493 -637632953 1.39733 -637567421 -4.78476 -637632957 -8.19408 -637567524 -1.1308 -637600292 6.94307 -637633060 -7.15574 -637567526 0.103061 -637600294 -2.11959 -637633062 0.108212 -637567528 7.23231 -637600296 7.24377 -637633064 0.242693 -637567530 0.168677 -637600298 8.1504 -637633066 3.59255 -637567533 -6.19443 -637633069 -2.44399 -637567537 8.99957 -637600305 1.10842 -637633073 0.0803913 -637567541 -0.825005 -637600309 -8.36781 -637633077 8.77578 -637567545 4.19786 -637600313 7.39292 -637633081 -4.72117 -637567549 0.862949 -637633085 1.20873 -637567652 -9.7234 -637600420 7.99697 -637633188 1.35487 -637567654 8.24246 -637600422 -1.17154 -637633190 4.27213 -637567656 -5.52633 -637600424 -6.55684 -637633192 -5.6293 -637567658 8.69403 -637600426 -3.89107 -637633194 -5.76237 -637567661 1.92521 -637633197 -6.32594 -637567665 -7.65684 -637600433 -2.22025 -637633201 -1.26894 -637567669 8.21723 -637600437 -6.9022 -637633205 5.91116 -637567673 4.1 -637600441 -2.52032 -637633209 12.6542 -637567677 -1.11402 -637633213 -7.59657 -637567789 0.88361 -637633325 -1.96344 -637567793 -0.429656 -637600561 -2.34706 -637633329 1.90177 -637567797 4.26777 -637600565 -6.88411 -637633333 -3.41253 -637567801 4.95288 -637600569 5.82909 -637633337 2.0374 -637567805 0.790624 -637633341 -0.403845 -637567917 2.18364 -637633453 -7.75924 -637567921 -4.37603 -637600689 -1.06091 -637633457 -2.39383 -637567925 0.618183 -637600693 2.96435 -637633461 -8.64822 -637567929 1.58474 -637600697 4.54272 -637633465 -7.50829 -637567933 5.39234 -637633469 3.97525 -637568045 2.32245 -637633581 4.94347 -637568049 2.78488 -637600817 -3.19391 -637633585 -1.69567 -637568053 -0.935527 -637600821 -4.63996 -637633589 -3.21743 -637568057 1.08091 -637600825 3.6008 -637633593 -0.123215 -637568061 0.359735 -637633597 -4.84655 -637568173 0.126894 -637633709 0.48143 -637568177 8.06279 -637600945 4.26403 -637633713 -2.2689 -637568181 -2.13643 -637600949 1.68417 -637633717 5.92982 -637568185 4.95441 -637600953 2.01023 -637633721 3.45976 -637568189 11.4651 -637633725 3.61925 -637568301 0.741023 -637633837 2.76244 -637568305 -5.16148 -637601073 -2.24535 -637633841 -1.42847 -637568309 1.69973 -637601077 7.96455 -637633845 4.31094 -637568313 9.09913 -637601081 -0.232772 -637633849 1.07634 -637568317 -1.97497 -637633853 2.43239 -637568429 7.36599 -637633965 2.04155 -637568433 -2.40397 -637601201 -2.32407 -637633969 -2.72856 -637568437 -0.975447 -637601205 -8.15139 -637633973 -2.50445 -637568441 11.349 -637601209 0.795294 -637633977 5.89215 -637568445 -5.62808 -637633981 -0.839428 -637571108 4.84519 -637603876 -1.37107 -637636644 -6.96878 -637571110 11.7085 -637603878 -0.826095 -637636646 3.36007 -637571112 1.91452 -637603880 -3.33548 -637636648 -10.9151 -637571114 -4.75357 -637603882 1.51555 -637636650 1.23981 -637571236 -7.23892 -637604004 1.24208 -637636772 5.76077 -637571238 -0.199481 -637604006 -4.05821 -637636774 0.755676 -637571240 -3.96103 -637604008 -9.59677 -637636776 7.08903 -637571242 0.914797 -637604010 -2.92922 -637636778 -3.35629 -637571364 3.67051 -637604132 -2.39494 -637636900 -2.99231 -637571366 -1.79346 -637604134 -1.83694 -637636902 1.53633 -637571368 -7.76622 -637604136 -4.07152 -637636904 4.76844 -637571370 -7.30509 -637604138 0.483891 -637636906 4.51364 -637571492 -1.04959 -637604260 -0.963029 -637637028 -3.10425 -637571494 -13.7708 -637604262 11.87 -637637030 -1.44643 -637571496 -9.06338 -637604264 9.2239 -637637032 -8.26703 -637571498 9.12057 -637604266 -1.30471 -637637034 -1.79452 -637571620 9.16382 -637604388 4.0483 -637637156 -4.73096 -637571622 2.76485 -637604390 -7.22604 -637637158 11.1607 -637571624 -4.98797 -637604392 7.76556 -637637160 -3.66994 -637571626 4.08293 -637604394 -5.79989 -637637162 1.50438 -637571748 1.87062 -637604516 2.91401 -637637284 -5.5289 -637571750 -7.05595 -637604518 -5.04092 -637637286 3.94694 -637571752 2.1682 -637604520 -1.87501 -637637288 -5.9375 -637571754 -8.6758 -637604522 -9.98652 -637637290 -0.921451 -637575204 -8.47902 -637607972 -5.37614 -637640740 4.63229 -637575206 6.34904 -637607974 -2.1639 -637640742 12.0304 -637575208 -6.21529 -637607976 -6.4498 -637640744 -0.0663373 -637575210 -7.8237 -637607978 -13.1385 -637640746 2.66977 -637575332 1.16903 -637608100 3.12282 -637640868 -1.17691 -637575334 10.901 -637608102 13.3244 -637640870 11.6391 -637575336 -3.32358 -637608104 -7.72015 -637640872 -3.0822 -637575338 -2.83478 -637608106 0.520802 -637640874 0.838208 -637575460 3.76086 -637608228 -5.86507 -637640996 -3.44849 -637575462 -4.08416 -637608230 1.68883 -637640998 4.28489 -637575464 -5.58702 -637608232 -6.29782 -637641000 -2.64148 -637575466 -4.93016 -637608234 -6.33828 -637641002 5.91971 -637575588 7.67439 -637608356 -9.40671 -637641124 2.8087 -637575590 0.894566 -637608358 5.062 -637641126 12.7649 -637575592 4.36666 -637608360 -3.1381 -637641128 0.2388 -637575594 2.50141 -637608362 -1.43872 -637641130 -1.52518 -637575716 10.8738 -637608484 -6.07607 -637641252 7.94337 -637575718 7.23394 -637608486 -0.154209 -637641254 -7.0034 -637575720 0.865809 -637608488 7.30733 -637641256 2.01571 -637575722 8.98586 -637608490 3.85018 -637641258 -4.74799 -637575844 -6.61579 -637608612 2.69666 -637641380 -2.70175 -637575846 -3.75998 -637608614 -3.66616 -637641382 -10.2029 -637575848 0.34782 -637608616 -3.85712 -637641384 -0.973215 -637575850 1.7853 -637608618 0.954332 -637641386 -4.03845 -637579300 -2.64881 -637612068 -1.50174 -637644836 2.06657 -637579302 -2.73617 -637612070 0.73776 -637644838 -1.10521 -637579304 -0.282195 -637612072 8.85609 -637644840 -7.86795 -637579306 5.1101 -637612074 -0.707379 -637644842 6.69735 -637579428 -5.87414 -637612196 4.74699 -637644964 5.36343 -637579430 -4.06726 -637612198 0.602187 -637644966 0.245853 -637579432 3.37666 -637612200 -2.10426 -637644968 -4.99732 -637579434 1.50747 -637612202 4.78385 -637644970 5.55762 -637579556 3.4789 -637612324 10.1022 -637645092 -0.865703 -637579558 7.14573 -637612326 4.47953 -637645094 5.48837 -637579560 2.24604 -637612328 -2.1389 -637645096 2.60925 -637579562 -1.23188 -637612330 -2.30387 -637645098 -4.13743 -637579684 1.18105 -637612452 7.61986 -637645220 -4.72273 -637579686 3.2641 -637612454 1.40675 -637645222 2.11205 -637579688 -2.03921 -637612456 -7.97148 -637645224 5.72756 -637579690 6.04361 -637612458 2.89079 -637645226 -0.767458 -637579812 4.1982 -637612580 2.33123 -637645348 -2.65255 -637579814 3.18403 -637612582 6.05237 -637645350 1.81278 -637579816 -6.35976 -637612584 -2.8909 -637645352 -1.27265 -637579818 1.16523 -637612586 0.645376 -637645354 -6.19782 -637579940 8.62265 -637612708 -1.68587 -637645476 4.18905 -637579942 -10.3347 -637612710 4.48996 -637645478 -0.977447 -637579944 0.0938128 -637612712 -8.63967 -637645480 -3.76405 -637579946 2.33471 -637612714 0.331974 -637645482 7.05232 -637583396 1.73364 -637616164 1.39427 -637648932 5.82313 -637583398 -2.62308 -637616166 2.01976 -637648934 -0.481746 -637583400 -4.3382 -637616168 -2.19592 -637648936 -11.6299 -637583402 -2.17603 -637616170 14.5504 -637648938 2.58523 -637583524 -2.29212 -637616292 -4.96686 -637649060 -0.809088 -637583526 8.18749 -637616294 0.755719 -637649062 13.5646 -637583528 6.18713 -637616296 -8.7121 -637649064 -6.34082 -637583530 -1.20955 -637616298 9.78602 -637649066 3.70577 -637583652 -7.47831 -637616420 2.09562 -637649188 -0.526827 -637583654 6.31681 -637616422 -7.03176 -637649190 4.59977 -637583656 3.4913 -637616424 7.00943 -637649192 -1.61803 -637583658 8.93119 -637616426 -6.46067 -637649194 1.65675 -637583780 -0.494756 -637616548 -9.50728 -637649316 -5.53945 -637583782 3.21481 -637616550 -2.73983 -637649318 8.46883 -637583784 -7.18672 -637616552 0.338675 -637649320 -4.96537 -637583786 -0.782125 -637616554 0.831303 -637649322 -5.53911 -637583908 -4.65217 -637616676 -10.6041 -637649444 0.348023 -637583910 2.6059 -637616678 2.05631 -637649446 0.175053 -637583912 -1.52471 -637616680 1.47921 -637649448 2.83641 -637583914 -0.0563914 -637616682 2.82793 -637649450 -0.259688 -637584036 4.17356 -637616804 -0.572427 -637649572 -1.8362 -637584038 -8.03762 -637616806 9.03399 -637649574 4.58581 -637584040 -1.76833 -637616808 1.08967 -637649576 -1.48544 -637584042 4.91388 -637616810 -1.13457 -637649578 -9.05298 -637587492 -11.156 -637620260 -1.1462 -637653028 2.62052 -637587494 -3.72378 -637620262 -3.59525 -637653030 1.75017 -637587496 -5.41452 -637620264 -1.98721 -637653032 2.70044 -637587498 14.3044 -637620266 -5.78026 -637653034 -9.08405 -637587620 -10.5439 -637620388 4.73355 -637653156 9.29414 -637587622 -1.65067 -637620390 1.36635 -637653158 5.26656 -637587624 -0.449938 -637620392 1.83865 -637653160 3.35567 -637587626 -4.25921 -637620394 0.54285 -637653162 1.0488 -637587748 8.15176 -637620516 1.71282 -637653284 -4.01811 -637587750 -10.1132 -637620518 -0.272404 -637653286 3.4495 -637587752 2.50399 -637620520 1.59899 -637653288 -0.859246 -637587754 -5.47321 -637620522 1.4297 -637653290 3.8221 -637587876 -3.11263 -637620644 8.6127 -637653412 6.50327 -637587878 -3.03278 -637620646 2.80454 -637653414 -0.217104 -637587880 -1.46679 -637620648 2.50377 -637653416 -6.21659 -637587882 0.23028 -637620650 0.563443 -637653418 -1.29345 -637588004 -9.39387 -637620772 0.335233 -637653540 -1.33934 -637588006 -9.60143 -637620774 7.52775 -637653542 -5.46113 -637588008 -3.89029 -637620776 -5.44938 -637653544 0.658035 -637588010 -5.26683 -637620778 -2.36669 -637653546 4.25287 -637588132 -5.85404 -637620900 1.43539 -637653668 3.59295 -637588134 0.732752 -637620902 1.16547 -637653670 -4.8489 -637588136 4.75373 -637620904 -0.735252 -637653672 2.74255 -637588138 5.85943 -637620906 2.08634 -637653674 -1.07988 -637569069 -0.149211 -637601837 5.52023 -637634605 -3.07696 -637569073 3.28933 -637634609 0.916099 -637569077 -3.08305 -637634613 2.43509 -637569081 0.838049 -637634617 -4.56406 -637569085 4.59313 -637601853 9.10778 -637634621 7.08599 -637569197 10.2195 -637601965 -6.97062 -637634733 1.75171 -637569201 1.52304 -637634737 8.48474 -637569205 -7.69302 -637634741 -1.17723 -637569209 -3.88743 -637634745 -3.2283 -637569213 -0.506909 -637601981 6.2705 -637634749 -5.00332 -637569325 6.02154 -637602093 -2.42383 -637634861 -0.776444 -637569329 -6.08778 -637634865 -1.44965 -637569333 0.412793 -637634869 1.29793 -637569337 0.0162198 -637634873 -11.8172 -637569341 -7.64125 -637602109 -3.9 -637634877 9.45985 -637569453 -3.9176 -637602221 -2.92809 -637634989 4.71191 -637569457 -3.83212 -637634993 -3.75671 -637569461 -1.16054 -637634997 -12.0736 -637569465 0.191253 -637635001 2.805 -637569469 -2.02181 -637602237 -8.0597 -637635005 -5.70522 -637569581 -5.71951 -637602349 4.1747 -637635117 -2.9255 -637569585 10.6355 -637635121 4.70883 -637569589 -3.62257 -637635125 0.909066 -637569593 0.819475 -637635129 -1.64116 -637569597 -1.41705 -637602365 1.22114 -637635133 9.26074 -637569709 6.62115 -637602477 5.51925 -637635245 6.76602 -637569713 0.0103386 -637635249 -15.1778 -637569717 0.913175 -637635253 -3.22627 -637569721 -1.87813 -637635257 0.624317 -637569725 4.63932 -637602493 -13.0733 -637635261 1.24209 -637569837 7.6138 -637602605 4.9538 -637635373 1.84104 -637569841 -0.671191 -637635377 1.86375 -637569845 2.43019 -637635381 4.97484 -637569849 -0.266644 -637635385 2.02549 -637569853 -7.32004 -637602621 -2.56998 -637635389 5.85655 -637569965 -5.55435 -637602733 2.95911 -637635501 -2.42386 -637569969 1.24339 -637635505 -3.49884 -637569973 3.39917 -637635509 -3.80452 -637569977 -5.41713 -637635513 4.04364 -637569981 0.112981 -637602749 0.099068 -637635517 5.58393 -637570093 -0.35856 -637602861 -8.67298 -637635629 1.32735 -637570097 -1.08062 -637635633 6.66962 -637570101 1.16607 -637635637 3.40504 -637570105 1.12131 -637635641 -5.19747 -637570109 -6.34946 -637602877 -2.00517 -637635645 5.21684 -637570221 6.79642 -637602989 -0.184994 -637635757 -2.04961 -637570225 9.01368 -637635761 5.9395 -637570229 4.57097 -637635765 1.72827 -637570233 -1.29668 -637635769 -7.76166 -637570237 6.66702 -637603005 1.68167 -637635773 4.52691 -637570349 7.44072 -637603117 6.1771 -637635885 -5.58441 -637570353 1.69668 -637635889 2.87723 -637570357 1.92944 -637635893 -0.780204 -637570361 4.83966 -637635897 -0.172631 -637570365 -0.673455 -637603133 -0.220438 -637635901 2.2052 -637570477 4.9296 -637603245 -3.99146 -637636013 5.64423 -637570481 1.08124 -637636017 -13.2667 -637570485 -2.71508 -637636021 4.80077 -637570489 -3.56992 -637636025 7.13619 -637570493 8.66622 -637603261 -2.97787 -637636029 -1.82936 -637567044 -3.50679 -637599812 -7.23392 -637632580 -0.950269 -637567046 10.4973 -637599814 6.0576 -637632582 -1.50175 -637567048 0.0467581 -637599816 -8.62072 -637632584 -7.83183 -637567050 -0.856855 -637599818 9.80011 -637632586 3.14825 -637567053 0.434042 -637632589 9.41489 -637567057 -1.28917 -637632593 -3.7985 -637567061 4.03584 -637632597 -6.68082 -637567065 -9.85595 -637632601 -2.81629 -637567069 4.3935 -637632605 -0.333433 -637567172 0.425769 -637599940 3.56586 -637632708 -2.26245 -637567174 -6.48139 -637599942 6.53209 -637632710 -8.05328 -637567176 -2.73921 -637599944 -1.79558 -637632712 9.82359 -637567178 8.61348 -637599946 3.13522 -637632714 -6.77053 -637567181 8.82444 -637632717 -2.78464 -637567185 0.643933 -637632721 0.529574 -637567189 0.506817 -637632725 4.83914 -637567193 -1.18718 -637632729 -0.113078 -637567197 9.88177 -637632733 -1.48657 -637567300 -6.01894 -637600068 1.43446 -637632836 0.466809 -637567302 2.23113 -637600070 0.471803 -637632838 3.50802 -637567304 -0.359965 -637600072 -6.31344 -637632840 -1.60038 -637567306 3.60512 -637600074 2.81383 -637632842 2.25302 -637567309 -3.45881 -637632845 -5.72358 -637567313 -1.6876 -637632849 -4.02444 -637567317 -2.66162 -637632853 3.78016 -637567321 3.8152 -637632857 7.34989 -637567325 1.54176 -637632861 1.08558 -637567428 -5.91976 -637600196 2.72436 -637632964 -0.396718 -637567430 -3.30007 -637600198 -6.3861 -637632966 3.54585 -637567432 5.35544 -637600200 -0.12386 -637632968 5.0063 -637567434 -1.56026 -637600202 -7.29867 -637632970 5.3776 -637567437 6.5631 -637632973 8.83539 -637567441 -3.1551 -637632977 -1.41736 -637567445 0.442557 -637632981 -0.469271 -637567449 8.09634 -637632985 0.45442 -637567453 -6.2365 -637632989 1.95342 -637567556 -2.22863 -637600324 10.2476 -637633092 -1.79068 -637567558 4.00087 -637600326 -5.9701 -637633094 0.993078 -637567560 -1.74706 -637600328 8.54552 -637633096 -7.47874 -637567562 2.68511 -637600330 6.06002 -637633098 1.4611 -637567565 8.52627 -637633101 -3.68559 -637567569 -1.47523 -637633105 2.76211 -637567573 -2.5384 -637633109 -6.44832 -637567577 -7.86129 -637633113 -4.65368 -637567581 4.6494 -637633117 1.27935 -637567684 4.09771 -637600452 -1.98543 -637633220 5.89032 -637567686 -11.4754 -637600454 1.98723 -637633222 4.17494 -637567688 3.50189 -637600456 -1.78917 -637633224 -5.9782 -637567690 -0.056643 -637600458 -2.38528 -637633226 7.78622 -637567693 6.12202 -637633229 2.50041 -637567697 -4.19474 -637633233 -1.80806 -637567701 -14.8473 -637633237 -9.29901 -637567705 -2.61111 -637633241 4.99692 -637567709 -0.545113 -637633245 4.37314 -637567821 -1.32553 -637633357 -7.91587 -637567825 0.704215 -637633361 8.86209 -637567829 13.7362 -637633365 -4.46277 -637567833 -4.21103 -637633369 0.20118 -637567837 1.12045 -637633373 -5.58328 -637567949 -0.978394 -637633485 2.38201 -637567953 3.95708 -637633489 0.455481 -637567957 0.612084 -637633493 6.53394 -637567961 7.72739 -637633497 -5.47149 -637567965 -6.70956 -637633501 -0.582614 -637568077 2.96541 -637633613 -7.22523 -637568081 4.60013 -637633617 0.618189 -637568085 4.61727 -637633621 1.9233 -637568089 2.32077 -637633625 -4.30743 -637568093 -2.72759 -637633629 2.46979 -637568205 -4.43672 -637633741 -5.89269 -637568209 -2.53318 -637633745 -0.657026 -637568213 4.2879 -637633749 -0.763421 -637568217 4.71251 -637633753 -0.163837 -637568221 -7.60692 -637633757 3.94279 -637568333 -1.54119 -637633869 3.37988 -637568337 0.677407 -637633873 -3.22571 -637568341 4.61652 -637633877 2.44291 -637568345 3.63121 -637633881 -0.664801 -637568349 -1.42951 -637633885 1.34971 -637568461 -2.86731 -637633997 -3.50436 -637568465 2.23212 -637634001 -11.3165 -637568469 5.68803 -637634005 2.49442 -637568473 4.27306 -637634009 1.71725 -637568477 -6.25931 -637634013 8.0085 -637571140 10.3305 -637603908 10.377 -637636676 2.72715 -637571142 -0.246426 -637603910 -5.5239 -637636678 4.00271 -637571144 -8.03618 -637603912 9.66712 -637636680 -0.92125 -637571146 -1.6769 -637603914 6.32846 -637636682 1.10504 -637571149 -2.39264 -637636685 4.54378 -637571153 9.78245 -637636689 -9.1197 -637571157 -6.94656 -637636693 -2.02348 -637571161 1.75744 -637636697 -5.24673 -637571165 7.5177 -637636701 3.30281 -637571268 -3.84015 -637604036 -5.6761 -637636804 1.89419 -637571270 -1.97124 -637604038 -2.65894 -637636806 -3.39155 -637571272 1.83247 -637604040 -5.16683 -637636808 5.79122 -637571274 -5.5427 -637604042 -1.33796 -637636810 2.72943 -637571277 -8.02047 -637636813 5.17738 -637571281 -3.51653 -637636817 -0.702168 -637571285 -8.72799 -637636821 1.58386 -637571289 -0.935545 -637636825 -0.165209 -637571293 -7.38429 -637636829 2.43781 -637571396 1.73856 -637604164 2.58247 -637636932 -0.815853 -637571398 6.09098 -637604166 -0.18728 -637636934 7.12369 -637571400 -0.492857 -637604168 4.60612 -637636936 0.779806 -637571402 9.51133 -637604170 10.2285 -637636938 -4.16142 -637571405 -1.03771 -637636941 1.41187 -637571409 2.51197 -637636945 2.78577 -637571413 4.3169 -637636949 -8.46113 -637571417 9.64182 -637636953 11.5226 -637571421 0.541407 -637636957 4.87229 -637571524 -1.26547 -637604292 -1.38268 -637637060 -5.41353 -637571526 9.81776 -637604294 1.9392 -637637062 4.81889 -637571528 5.21436 -637604296 -6.50308 -637637064 1.27169 -637571530 1.03454 -637604298 1.3652 -637637066 5.1634 -637571533 -9.4176 -637637069 1.73724 -637571537 4.35305 -637637073 2.48484 -637571541 8.21794 -637637077 -5.03874 -637571545 -8.2576 -637637081 -11.1268 -637571549 -3.55051 -637637085 1.2243 -637571652 -4.7746 -637604420 8.17418 -637637188 2.21396 -637571654 -9.48472 -637604422 7.29972 -637637190 -2.43009 -637571656 4.05655 -637604424 -3.78216 -637637192 -3.81211 -637571658 8.96921 -637604426 -3.65301 -637637194 -1.85937 -637571661 9.21826 -637637197 0.394787 -637571665 0.435809 -637637201 0.670543 -637571669 -3.26967 -637637205 3.72135 -637571673 -10.0767 -637637209 4.89864 -637571677 0.819228 -637637213 1.88208 -637571780 10.91 -637604548 -3.50288 -637637316 2.64003 -637571782 4.9765 -637604550 1.59788 -637637318 -3.66491 -637571784 -3.9753 -637604552 0.780538 -637637320 -7.59104 -637571786 0.946468 -637604554 2.56301 -637637322 0.905493 -637571789 2.75234 -637637325 -1.605 -637571793 1.64242 -637637329 5.59905 -637571797 -4.89059 -637637333 -2.9646 -637571801 -1.49782 -637637337 -9.75422 -637571805 -6.56521 -637637341 -3.2352 -637571917 3.22578 -637637453 21.1606 -637571921 4.93794 -637637457 2.05854 -637571925 13.8344 -637637461 6.67107 -637571929 -1.85681 -637637465 2.04831 -637571933 -1.02714 -637637469 -5.35897 -637572045 -1.54597 -637637581 -7.23261 -637572049 4.63658 -637637585 -6.48979 -637572053 -3.21904 -637637589 2.57039 -637572057 2.39627 -637637593 2.53041 -637572061 1.87443 -637637597 -0.134923 -637572173 6.74608 -637637709 8.87974 -637572177 4.52471 -637637713 0.938788 -637572181 -5.46798 -637637717 -6.7242 -637572185 -1.70628 -637637721 1.90151 -637572189 0.916001 -637637725 6.53431 -637572301 5.35194 -637637837 2.18995 -637572305 -2.97959 -637637841 4.74279 -637572309 -8.56076 -637637845 6.59618 -637572313 0.269783 -637637849 -2.13872 -637572317 2.53646 -637637853 -6.75826 -637572429 1.40805 -637637965 -5.98419 -637572433 5.69658 -637637969 -3.19307 -637572437 0.873466 -637637973 -2.23667 -637572441 -3.36241 -637637977 -4.45148 -637572445 1.55599 -637637981 -6.07981 -637572557 0.188331 -637638093 -0.915522 -637572561 4.05094 -637638097 -4.99674 -637572565 6.48066 -637638101 -2.27462 -637572569 -1.98494 -637638105 3.5013 -637572573 -0.838747 -637638109 -2.45643 -637575236 9.5982 -637608004 2.19387 -637640772 2.29608 -637575238 11.1321 -637608006 -5.28526 -637640774 3.16202 -637575240 1.09443 -637608008 11.0247 -637640776 -4.27966 -637575242 6.9847 -637608010 -1.02197 -637640778 -0.891213 -637575364 -2.16905 -637608132 -2.17188 -637640900 1.36086 -637575366 -1.74117 -637608134 6.30699 -637640902 -2.54467 -637575368 -2.41996 -637608136 1.45554 -637640904 -4.62635 -637575370 -12.6961 -637608138 5.83009 -637640906 6.19315 -637575492 -9.5225 -637608260 -7.44509 -637641028 4.73128 -637575494 2.38461 -637608262 4.17217 -637641030 7.2563 -637575496 10.4334 -637608264 -1.5007 -637641032 6.04736 -637575498 -5.64556 -637608266 -1.76799 -637641034 3.06889 -637575620 6.52181 -637608388 1.56696 -637641156 -3.62709 -637575622 -0.465307 -637608390 -6.90488 -637641158 -9.15821 -637575624 2.34541 -637608392 8.01526 -637641160 5.68002 -637575626 12.9686 -637608394 2.18456 -637641162 3.69238 -637575748 0.841124 -637608516 -0.628392 -637641284 -3.59603 -637575750 1.71203 -637608518 2.46098 -637641286 -6.95864 -637575752 3.83741 -637608520 -4.79698 -637641288 -7.96345 -637575754 5.79298 -637608522 2.61227 -637641290 -6.74625 -637575876 11.8253 -637608644 3.16624 -637641412 -2.51537 -637575878 5.07301 -637608646 4.04681 -637641414 0.559114 -637575880 -0.983411 -637608648 5.7311 -637641416 0.292729 -637575882 -6.93887 -637608650 2.1696 -637641418 -6.13099 -637579332 -5.98872 -637612100 -3.97657 -637644868 -7.4906 -637579334 -3.22018 -637612102 1.06915 -637644870 3.34928 -637579336 -3.49405 -637612104 1.45186 -637644872 6.14421 -637579338 -1.92218 -637612106 5.44485 -637644874 9.08542 -637579460 -11.4303 -637612228 -15.1895 -637644996 2.00763 -637579462 3.77243 -637612230 -2.01572 -637644998 4.4683 -637579464 6.00796 -637612232 11.0613 -637645000 -0.167487 -637579466 11.726 -637612234 4.40902 -637645002 8.70371 -637579588 1.71647 -637612356 3.16014 -637645124 -4.22075 -637579590 8.78713 -637612358 -3.91066 -637645126 6.24052 -637579592 -4.36018 -637612360 3.08687 -637645128 3.49377 -637579594 2.79666 -637612362 0.193993 -637645130 6.57722 -637579716 -3.77566 -637612484 -13.7725 -637645252 -0.940127 -637579718 2.60303 -637612486 6.72714 -637645254 0.681932 -637579720 -2.70878 -637612488 -0.432353 -637645256 -13.0321 -637579722 -2.96072 -637612490 -3.53864 -637645258 8.86958 -637579844 -2.8002 -637612612 0.884311 -637645380 -3.80932 -637579846 -6.88001 -637612614 1.0925 -637645382 0.880233 -637579848 0.254426 -637612616 1.84367 -637645384 -8.2322 -637579850 -0.41692 -637612618 -1.90983 -637645386 -3.76438 -637579972 -7.91822 -637612740 -0.791483 -637645508 -10.0577 -637579974 -4.53526 -637612742 -5.02862 -637645510 -2.6074 -637579976 -1.46741 -637612744 5.32592 -637645512 -0.869825 -637579978 4.2777 -637612746 -0.0579055 -637645514 -1.92479 -637583428 5.79861 -637616196 4.55392 -637648964 -3.45429 -637583430 -1.47592 -637616198 -0.249955 -637648966 5.45745 -637583432 -1.59085 -637616200 -3.69791 -637648968 -0.881328 -637583434 4.14641 -637616202 5.39055 -637648970 4.44524 -637583556 7.19789 -637616324 4.54838 -637649092 -3.02768 -637583558 -0.245642 -637616326 -4.86518 -637649094 1.53605 -637583560 -7.43886 -637616328 0.457181 -637649096 -0.74375 -637583562 -5.58049 -637616330 2.84642 -637649098 2.09959 -637583684 -1.58854 -637616452 9.20286 -637649220 1.02884 -637583686 0.722568 -637616454 -2.90618 -637649222 -5.38299 -637583688 2.96537 -637616456 1.64902 -637649224 3.33647 -637583690 -0.118509 -637616458 -8.43208 -637649226 -2.87851 -637583812 5.3231 -637616580 -7.19027 -637649348 -1.29059 -637583814 0.583078 -637616582 3.35781 -637649350 4.27675 -637583816 2.03829 -637616584 4.05944 -637649352 0.783966 -637583818 9.05561 -637616586 -10.6287 -637649354 -0.775539 -637583940 -1.17958 -637616708 6.8317 -637649476 -2.33933 -637583942 -1.40826 -637616710 -0.0233849 -637649478 3.50307 -637583944 5.12772 -637616712 -0.809561 -637649480 6.42092 -637583946 -7.45597 -637616714 -1.83291 -637649482 -4.79554 -637584068 -7.47267 -637616836 -2.60016 -637649604 3.14271 -637584070 4.29636 -637616838 -1.32213 -637649606 -0.0596502 -637584072 -5.04268 -637616840 4.41629 -637649608 8.13296 -637584074 -5.54222 -637616842 -7.60557 -637649610 2.46082 -637587524 -3.44266 -637620292 4.26491 -637653060 10.3782 -637587526 -1.8969 -637620294 -2.08028 -637653062 -0.483761 -637587528 0.482675 -637620296 -4.61901 -637653064 -0.730321 -637587530 2.33703 -637620298 3.67705 -637653066 6.24756 -637587652 9.85623 -637620420 -1.60951 -637653188 5.00972 -637587654 -1.53264 -637620422 7.10811 -637653190 12.1731 -637587656 3.89712 -637620424 -1.75103 -637653192 7.89877 -637587658 -5.14154 -637620426 -8.5663 -637653194 2.37674 -637587780 -0.661188 -637620548 1.02025 -637653316 -8.31347 -637587782 -0.343512 -637620550 -3.76709 -637653318 0.170582 -637587784 0.205904 -637620552 2.42727 -637653320 0.552751 -637587786 -6.32436 -637620554 -7.03301 -637653322 -4.80875 -637587908 5.46471 -637620676 1.11393 -637653444 6.6064 -637587910 5.64066 -637620678 1.014 -637653446 -2.35201 -637587912 -1.69866 -637620680 7.24257 -637653448 -6.32317 -637587914 -5.17034 -637620682 3.1259 -637653450 -6.30544 -637588036 0.61766 -637620804 -7.48051 -637653572 0.455599 -637588038 -0.351461 -637620806 3.53202 -637653574 -3.20235 -637588040 4.05828 -637620808 -9.66692 -637653576 7.41173 -637588042 5.09441 -637620810 -3.98497 -637653578 -1.16998 -637588164 1.73733 -637620932 -3.45249 -637653700 3.43009 -637588166 0.0165831 -637620934 8.51736 -637653702 2.98251 -637588168 -0.201005 -637620936 4.29028 -637653704 -2.06712 -637588170 4.89844 -637620938 8.04464 -637653706 8.80197 -637567085 10.9439 -637632621 -4.85257 -637567089 3.16693 -637632625 -7.18755 -637567093 -5.34454 -637632629 2.28676 -637567097 -1.03622 -637632633 -8.79231 -637567101 -3.25807 -637632637 -3.67395 -637567213 -5.05096 -637632749 -6.38775 -637567217 -7.81795 -637632753 -8.31542 -637567221 2.00943 -637632757 -0.267547 -637567225 -0.642453 -637632761 4.26405 -637567229 7.16563 -637632765 5.29686 -637567341 -1.39233 -637632877 -3.77469 -637567345 2.28371 -637632881 -1.03289 -637567349 3.74006 -637632885 -1.00025 -637567353 4.10139 -637632889 -1.14653 -637567357 -3.72207 -637632893 -0.696971 -637567469 -5.20967 -637633005 8.33159 -637567473 4.69662 -637633009 2.7744 -637567477 -6.35459 -637633013 2.31296 -637567481 -4.18405 -637633017 -8.00328 -637567485 3.01621 -637633021 -7.79327 -637567597 9.46288 -637633133 16.1628 -637567601 1.90471 -637633137 -3.72418 -637567605 13.1425 -637633141 -5.92364 -637567609 5.44195 -637633145 2.48264 -637567613 8.76035 -637633149 -1.52369 -637567725 4.8839 -637633261 5.5538 -637567729 -1.82259 -637633265 -1.87012 -637567733 9.41833 -637633269 2.09551 -637567737 -1.81504 -637633273 2.40416 -637567741 -5.82343 -637633277 3.40344 -637567853 -0.605268 -637633389 -9.52387 -637567857 -10.165 -637633393 -9.38622 -637567861 -4.00616 -637633397 -2.17357 -637567865 -0.835445 -637633401 3.13114 -637567869 7.77424 -637633405 6.05917 -637567981 1.78746 -637633517 3.05524 -637567985 -6.41495 -637633521 -7.24695 -637567989 -4.80658 -637633525 4.40116 -637567993 -4.3298 -637633529 -0.904969 -637567997 -1.04535 -637633533 -2.39584 -637568109 1.80052 -637633645 1.23029 -637568113 4.6312 -637633649 3.91214 -637568117 5.24665 -637633653 -2.74272 -637568121 0.36085 -637633657 5.10848 -637568125 -2.47278 -637633661 -2.20196 -637568237 6.82792 -637633773 2.04754 -637568241 1.71844 -637633777 -4.0589 -637568245 4.60622 -637633781 0.281126 -637568249 -8.81348 -637633785 10.475 -637568253 -0.00163626 -637633789 3.5289 -637568365 2.72638 -637633901 4.97607 -637568369 7.52884 -637633905 -3.51544 -637568373 0.707639 -637633909 0.949534 -637568377 -5.80981 -637633913 3.75482 -637568381 -0.555195 -637633917 7.05815 -637568493 -2.20433 -637634029 -10.6383 -637568497 1.29303 -637634033 1.47295 -637568501 1.27062 -637634037 5.1098 -637568505 -4.91862 -637634041 -3.84983 -637568509 0.798554 -637634045 -0.57096 -637571181 4.79221 -637636717 4.18888 -637571185 -2.43518 -637636721 7.54256 -637571189 1.94476 -637636725 -7.44005 -637571193 -1.95883 -637636729 -2.15249 -637571197 -4.60316 -637636733 9.81809 -637571309 1.36933 -637636845 4.80106 -637571313 6.21126 -637636849 8.55153 -637571317 11.0722 -637636853 -1.95764 -637571321 -2.50082 -637636857 1.1757 -637571325 2.60303 -637636861 1.64552 -637571437 -4.82029 -637636973 7.0917 -637571441 3.1754 -637636977 -4.37514 -637571445 0.604749 -637636981 -11.1681 -637571449 -6.18296 -637636985 2.5366 -637571453 1.00519 -637636989 0.503773 -637571565 8.43662 -637637101 2.91062 -637571569 1.95163 -637637105 0.431577 -637571573 -0.897824 -637637109 -2.57969 -637571577 -6.65637 -637637113 -1.78498 -637571581 -10.0546 -637637117 -0.0460516 -637571693 4.8107 -637637229 -5.62636 -637571697 -5.30239 -637637233 -3.17359 -637571701 0.324077 -637637237 0.752312 -637571705 3.8515 -637637241 -2.05431 -637571709 3.09462 -637637245 8.16815 -637571821 -4.27642 -637637357 -1.59691 -637571825 -9.33393 -637637361 9.17965 -637571829 11.069 -637637365 1.75163 -637571833 -1.99258 -637637369 4.91932 -637571837 -8.4639 -637637373 5.37045 -637571949 2.51284 -637637485 0.80714 -637571953 0.390914 -637637489 -1.94886 -637571957 -11.4699 -637637493 2.15421 -637571961 8.43792 -637637497 8.90405 -637571965 -3.36245 -637637501 -0.687769 -637572077 -7.88435 -637637613 4.53539 -637572081 -2.66111 -637637617 7.31574 -637572085 -3.61703 -637637621 2.19413 -637572089 -1.361 -637637625 5.47526 -637572093 -7.60882 -637637629 -1.89811 -637572333 0.146311 -637637869 -0.163403 -637572337 8.0623 -637637873 0.396415 -637572341 -4.14593 -637637877 1.25117 -637572345 -3.60442 -637637881 -2.08299 -637572349 2.79398 -637637885 -5.92851 -637572589 4.59003 -637638125 -6.27569 -637572593 -5.15753 -637638129 -5.0917 -637572597 2.3198 -637638133 11.8918 -637572601 4.03088 -637638137 3.76169 -637572605 1.23695 -637638141 -6.50976 -637575661 -14.0394 -637641197 2.31152 -637575665 6.12977 -637641201 -3.89852 -637575669 4.15378 -637641205 0.882231 -637575673 -5.60964 -637641209 -2.119 -637575677 7.5783 -637641213 -0.242101 -637579757 -1.41596 -637645293 -1.05882 -637579761 4.59742 -637645297 0.523507 -637579765 5.48184 -637645301 -1.41796 -637579769 -2.53847 -637645305 -2.44634 -637579773 -1.85998 -637645309 -5.42834 -574914560 1.4816 -575176704 1.15087 -575438848 1.19551 -575700992 0.965557 -575963136 0.223023 -576225280 -1.02309 -576487424 1.58335 -576749568 0.0435336 -577011712 -0.585078 -577273856 0.37937 -577536000 0.501323 -577798144 1.59442 -579108864 0.04829 -579371008 2.24735 -579633152 1.21881 -579895296 2.29907 -580157440 0.585826 -580419584 -0.371138 -580681728 -0.784067 -580943872 -0.780065 -581206016 0.900997 -581468160 1.63037 -581730304 1.91388 -581992448 -0.680433 -583303168 0.478206 -583565312 -0.729319 -583827456 0.506768 -584089600 0.835964 -584351744 0.533669 -584613888 1.52413 -584876032 0.783291 -585138176 1.37809 -585400320 1.63119 -585662464 2.97563 -585924608 2.33858 -586186752 -0.583533 -587497472 0.734584 -587759616 -0.183901 -588021760 1.32067 -588283904 0.38393 -590643200 0.025526 -588546048 0.628978 -588808192 0.655558 -589070336 -0.358367 -589332480 0.405967 -589594624 1.245 -589856768 0.000832399 -590905344 1.2446 -590118912 -0.837512 -590381056 -1.01581 -574947328 0.77815 -575209472 3.02376 -575471616 -0.382007 -575733760 0.113068 -575995904 1.07598 -576258048 0.0902802 -576520192 1.0383 -576782336 1.47143 -577044480 1.62586 -577306624 0.858101 -577568768 -0.277764 -577830912 -0.936056 -579141632 -1.44164 -579403776 0.515206 -579665920 0.796663 -579928064 0.712763 -580190208 0.902406 -580452352 -1.11337 -580714496 1.67182 -580976640 -1.75267 -581238784 0.404312 -581500928 -0.458022 -581763072 0.8757 -582025216 0.627996 -583335936 0.174612 -583598080 0.155462 -583860224 0.347457 -584122368 0.727693 -584384512 -1.21808 -584646656 0.881855 -584908800 -1.57624 -585170944 1.23444 -585433088 1.18804 -585695232 -0.900637 -585957376 -0.850452 -586219520 0.85038 -587530240 0.402755 -587792384 1.15312 -588054528 -0.593254 -588316672 -1.30475 -590675968 -0.599093 -588578816 -1.81122 -588840960 0.804804 -589103104 1.30828 -589365248 1.83105 -589627392 1.0785 -589889536 1.83589 -590938112 1.15603 -590151680 1.73046 -590413824 -1.26972 -574980096 0.352297 -576028672 0.116715 -577077248 1.36887 -575242240 0.482301 -576290816 0.504571 -577339392 2.04972 -575504384 0.925508 -576552960 0.828655 -577601536 -0.935985 -575766528 -0.186126 -576815104 1.15827 -577863680 0.7047 -579174400 0.444614 -580222976 1.0881 -581271552 1.06957 -579436544 0.960754 -580485120 0.857428 -581533696 1.2123 -579698688 0.388513 -580747264 0.137898 -581795840 -0.583071 -579960832 1.11219 -581009408 1.31436 -582057984 0.509476 -583368704 1.1675 -584417280 0.490363 -585465856 -1.05861 -583630848 -0.768873 -584679424 0.181837 -585728000 -0.0141009 -583892992 2.16157 -584941568 1.49475 -585990144 2.4093 -584155136 -0.891009 -585203712 -1.04179 -586252288 -0.568035 -587563008 -0.341604 -587825152 1.83629 -588087296 1.81688 -588349440 0.825708 -590708736 1.43302 -588611584 0.0464914 -588873728 0.175284 -589135872 0.407462 -589398016 0.325634 -589660160 1.1291 -589922304 0.606164 -590970880 0.838954 -590184448 0.58415 -590446592 -1.15643 -575012864 0.357422 -575275008 0.987336 -575537152 0.776167 -575799296 2.16154 -576061440 0.601252 -576323584 -0.0025591 -576585728 -0.0711347 -576847872 0.250211 -577110016 -0.282646 -577372160 0.391809 -577634304 0.743716 -577896448 0.274828 -579207168 -1.1328 -579469312 2.31447 -579731456 2.02462 -579993600 1.30062 -580255744 0.456765 -580517888 0.124148 -580780032 0.803798 -581042176 -0.287346 -581304320 0.949558 -581566464 0.67316 -581828608 1.10189 -582090752 1.28785 -583401472 2.20478 -583663616 -0.22223 -583925760 -1.20568 -584187904 0.0149705 -584450048 0.793184 -584712192 -0.147296 -584974336 0.757433 -585236480 1.53418 -585498624 -0.102433 -585760768 1.63918 -586022912 0.388957 -586285056 0.109066 -587595776 1.57753 -587857920 1.49463 -588120064 1.81493 -588382208 -0.833509 -590741504 -0.656034 -588644352 -0.570791 -588906496 0.396371 -589168640 0.175378 -589430784 0.128522 -589692928 0.514887 -589955072 0.247087 -591003648 2.001 -590217216 1.54964 -590479360 1.90081 -575045632 -1.03644 -575307776 -1.21489 -575569920 -0.020565 -575832064 1.83937 -576094208 -0.0764598 -576356352 0.788257 -576618496 0.731987 -576880640 -1.03018 -577142784 2.75401 -577404928 0.560813 -577667072 1.23473 -577929216 0.694355 -579239936 -0.851857 -579502080 1.01199 -579764224 0.800888 -580026368 0.0867209 -580288512 2.10413 -580550656 1.605 -580812800 1.65063 -581074944 2.96054 -581337088 1.52459 -581599232 -0.386601 -581861376 0.279763 -582123520 1.16737 -583434240 -0.233972 -583696384 1.79449 -583958528 1.66452 -584220672 -0.813391 -584482816 0.773123 -584744960 0.115383 -585007104 1.12577 -585269248 1.3905 -585531392 0.0127318 -585793536 0.727783 -586055680 0.543869 -586317824 0.643478 -587628544 -0.89577 -587890688 0.0989628 -588152832 2.05043 -588414976 0.203489 -590774272 1.32207 -588677120 1.45415 -588939264 0.57996 -589201408 0.382282 -589463552 2.67474 -589725696 0.244932 -589987840 -0.438003 -591036416 -1.41455 -590249984 1.40473 -590512128 2.35476 -604017672 -0.747412 -604017744 2.11434 -604017752 -0.367206 -604017760 -0.741788 -604017768 0.816503 -604017776 0.257917 -604017784 -1.61957 -604017792 0.492985 -604017800 -1.65446 -604017808 0.881928 -604017816 1.83025 -604017680 -0.622634 -604017824 1.84239 -604017832 -0.00210472 -604017840 -0.144927 -604017848 -1.27232 -604017856 -0.574888 -604017864 -1.58616 -604017872 -0.315006 -604017880 1.64256 -604017888 -0.15866 -604017896 -0.35138 -604017688 -1.27106 -604017904 0.0804429 -604017912 -0.398203 -604017920 1.03885 -604017928 1.85043 -604017936 0.297691 -604017944 -0.651275 -604017952 1.0453 -604017696 2.31682 -604017704 0.525299 -604017712 1.25912 -604017720 0.1758 -604017728 -0.809983 -604017736 0.422992 -604018184 2.13154 -604018256 -0.160399 -604018264 -0.547289 -604018272 0.155706 -604018280 -0.839041 -604018288 -0.440843 -604018296 -1.87033 -604018304 0.235274 -604018312 0.30939 -604018320 -0.137865 -604018328 0.205751 -604018192 0.612084 -604018336 -0.289135 -604018344 0.238289 -604018352 0.13601 -604018360 1.20405 -604018368 1.49587 -604018376 -0.445203 -604018384 0.49562 -604018392 0.901932 -604018400 0.0127786 -604018408 0.3465 -604018200 1.48825 -604018416 1.81686 -604018424 -0.324473 -604018432 -1.76123 -604018440 2.28903 -604018448 0.113197 -604018456 -0.305627 -604018464 -0.0742065 -604018208 0.0856636 -604018216 -0.824123 -604018224 -1.79446 -604018232 0.240421 -604018240 -0.392399 -604018248 -0.538427 -604018696 0.244599 -604018768 -0.58461 -604018776 -1.30745 -604018784 0.937849 -604018792 0.219265 -604018800 -0.503902 -604018808 0.587169 -604018816 -0.648749 -604018824 -0.900399 -604018832 0.712949 -604018840 1.22379 -604018704 0.245697 -604018848 -0.0821123 -604018856 0.581357 -604018864 -1.58309 -604018872 -0.469881 -604018880 -1.31963 -604018888 1.29364 -604018896 -0.308163 -604018904 1.83054 -604018912 1.11253 -604018920 0.857127 -604018712 0.539802 -604018928 -0.491196 -604018936 0.739698 -604018944 0.333891 -604018952 -0.290787 -604018960 -1.41559 -604018968 -0.476439 -604018976 1.92291 -604018720 0.067465 -604018728 0.390015 -604018736 -1.01674 -604018744 1.75671 -604018752 -0.217459 -604018760 -0.827597 -604021256 1.08337 -604021328 -0.048234 -604021336 -1.82011 -604021344 2.16225 -604021352 0.275204 -604021360 1.34354 -604021368 -0.24149 -604021376 -0.035944 -604021384 0.189351 -604021392 -1.45376 -604021264 0.295136 -604021272 -0.664037 -604021280 0.43865 -604021288 -0.00902675 -604021296 -0.251902 -604021304 -0.322987 -604021312 -0.638415 -604021320 1.88503 -604021768 -0.439065 -604021840 0.180166 -604021848 -1.66991 -604021856 -0.931346 -604021864 -1.42266 -604021872 0.503882 -604021880 -0.934735 -604021888 -0.425118 -604021896 0.849743 -604021904 -0.674678 -604021912 -1.78805 -604021776 -0.198858 -604021920 -0.213637 -604021928 1.67056 -604021936 2.12001 -604021944 0.303654 -604021952 0.739858 -604021960 2.07508 -604021968 0.612264 -604021976 -1.25785 -604021984 1.29412 -604021992 0.535546 -604021784 -0.482285 -604022000 -2.05821 -604022008 -2.98202 -604022016 0.200096 -604022024 0.165692 -604022032 -1.22116 -604022040 -1.09853 -604022048 -1.15976 -604021792 -0.917646 -604021800 -0.364079 -604021808 -1.05961 -604021816 -0.302541 -604021824 -1.47541 -604021832 -0.596911 -604025352 0.377606 -604025424 -0.609038 -604025432 -1.94591 -604025440 1.44146 -604025448 -0.0122539 -604025456 0.130664 -604025464 -0.644908 -604025472 0.448587 -604025480 0.495391 -604025488 0.144433 -604025360 -0.435815 -604025368 0.373845 -604025376 0.264609 -604025384 0.602992 -604025392 1.68767 -604025400 -0.00991631 -604025408 -0.102934 -604025416 -0.466201 -604025864 1.24191 -604025936 -1.18427 -604025944 -0.99246 -604025952 -1.66524 -604025960 -0.994203 -604025968 2.0694 -604025976 2.45587 -604025984 -1.47658 -604025992 0.0552066 -604026000 0.248039 -604026008 0.841863 -604025872 0.654142 -604026016 -1.8237 -604026024 0.141449 -604026032 0.148777 -604026040 -0.980293 -604026048 -0.303472 -604026056 -0.0786655 -604026064 -1.88778 -604026072 -0.170068 -604026080 -0.446993 -604026088 -1.16093 -604025880 -0.599332 -604026096 0.57865 -604026104 -0.359656 -604026112 0.88545 -604026120 0.372144 -604026128 -0.424142 -604026136 0.287629 -604026144 -0.935984 -604025888 0.11699 -604025896 -0.0521623 -604025904 -0.901195 -604025912 0.910813 -604025920 1.79955 -604025928 0.254747 -604029448 -1.15146 -604029520 -0.24039 -604029528 -0.189052 -604029536 1.02941 -604029544 -0.285932 -604029552 0.849706 -604029560 1.00424 -604029568 0.408177 -604029576 -1.1069 -604029584 0.165629 -604029456 1.95291 -604029464 -1.71136 -604029472 0.27577 -604029480 1.22009 -604029488 0.356263 -604029496 2.18166 -604029504 1.91645 -604029512 -1.00778 -604029960 0.964629 -604030032 -0.000220725 -604030040 1.53195 -604030048 0.319498 -604030056 1.1741 -604030064 -0.948035 -604030072 -0.32346 -604030080 0.00715619 -604030088 1.72774 -604030096 0.948863 -604030104 -0.658851 -604029968 -0.929223 -604030112 -0.73252 -604030120 0.796749 -604030128 1.31719 -604030136 0.381213 -604030144 1.92842 -604030152 -0.578217 -604030160 0.263609 -604030168 1.95976 -604030176 -1.37759 -604030184 -0.926582 -604029976 -1.09994 -604030192 -0.477964 -604030200 -0.339108 -604030208 0.678254 -604030216 -0.454256 -604030224 1.03971 -604030232 1.61455 -604030240 -0.498027 -604029984 -0.522683 -604029992 0.383873 -604030000 -0.861039 -604030008 -1.70948 -604030016 0.853293 -604030024 -0.237771 -604050440 -0.521464 -604050512 -0.488043 -604050520 0.137355 -604050528 0.0461277 -604050536 -0.38112 -604050544 -0.668602 -604050552 -2.39012 -604050560 -2.86945 -604050568 -1.15822 -604050576 0.0289681 -604050584 -0.150598 -604050448 -0.0466519 -604050592 0.651795 -604050600 -0.665237 -604050608 0.945631 -604050616 0.743595 -604050624 -0.106427 -604050632 -0.390106 -604050640 0.193084 -604050648 0.679766 -604050656 0.924132 -604050664 1.47249 -604050456 -0.231041 -604050672 -1.76336 -604050680 0.0530994 -604050688 -0.673563 -604050696 0.183783 -604050704 -0.542686 -604050712 0.831796 -604050720 1.98085 -604050464 -0.471567 -604050472 -0.956991 -604050480 -1.00802 -604050488 -0.147604 -604050496 0.219663 -604050504 1.52349 -604050952 -0.162731 -604051024 0.155692 -604051032 1.09008 -604051040 -1.19086 -604051048 -0.397087 -604051056 1.41474 -604051064 -1.06385 -604051072 0.947344 -604051080 0.851732 -604051088 0.748917 -604051096 1.45315 -604050960 3.16297 -604051104 -0.338165 -604051112 -1.2001 -604051120 -0.0844665 -604051128 0.877521 -604051136 1.55967 -604051144 -1.72922 -604051152 0.335576 -604051160 -0.162815 -604051168 -0.125093 -604051176 -0.60045 -604050968 0.214323 -604051184 -1.36512 -604051192 0.150283 -604051200 0.268566 -604051208 0.341079 -604051216 -0.743962 -604051224 0.417663 -604051232 0.944757 -604050976 0.0205936 -604050984 -1.08243 -604050992 -0.183656 -604051000 0.427201 -604051008 -0.0786786 -604051016 -1.37655 -604051464 1.80345 -604051536 0.613426 -604051544 0.021484 -604051552 -0.225418 -604051560 0.304345 -604051568 1.89221 -604051576 1.5109 -604051584 0.998976 -604051592 1.11096 -604051600 -0.717739 -604051608 0.675623 -604051472 -0.119593 -604051616 0.0156988 -604051624 1.06334 -604051632 -0.202636 -604051640 -0.268824 -604051648 0.803301 -604051656 1.40557 -604051664 -0.658838 -604051672 -0.615191 -604051680 -1.21345 -604051688 0.129743 -604051480 -0.842927 -604051696 2.10897 -604051704 0.944944 -604051712 0.658792 -604051720 -0.944244 -604051728 0.225104 -604051736 0.676393 -604051744 -1.61431 -604051488 0.275854 -604051496 1.04106 -604051504 2.03363 -604051512 0.247035 -604051520 1.89062 -604051528 -0.0368116 -604054024 -1.47248 -604054096 -0.536961 -604054104 0.647325 -604054112 0.198795 -604054120 0.0711933 -604054128 -1.07379 -604054136 0.161752 -604054144 0.0852185 -604054152 0.518203 -604054160 -1.5295 -604054032 -0.644401 -604054040 0.311726 -604054048 -1.29373 -604054056 -0.559863 -604054064 0.696683 -604054072 0.451588 -604054080 0.703991 -604054088 -0.768621 -604054536 0.460462 -604054608 0.34539 -604054616 0.663968 -604054624 -0.613825 -604054632 1.24186 -604054640 0.675246 -604054648 1.37945 -604054656 0.892173 -604054664 0.158644 -604054672 0.157965 -604054680 0.0823201 -604054544 0.497764 -604054688 -0.192224 -604054696 -1.08168 -604054704 1.16042 -604054712 1.34181 -604054720 -0.32399 -604054728 0.579327 -604054736 -0.57278 -604054744 -1.83309 -604054752 -0.0197497 -604054760 3.19371 -604054552 0.122734 -604054768 1.84478 -604054776 -0.385666 -604054784 1.07261 -604054792 -0.397012 -604054800 -1.4666 -604054808 -0.517326 -604054816 -0.0179102 -604054560 -0.0423333 -604054568 -0.312391 -604054576 0.27353 -604054584 0.41307 -604054592 1.42923 -604054600 0.654553 -604058120 0.352229 -604058192 -1.74424 -604058200 -0.344782 -604058208 -1.78398 -604058216 -2.44587 -604058224 1.71197 -604058232 -0.968967 -604058240 -0.903038 -604058248 -0.539815 -604058256 -0.21737 -604058128 0.266333 -604058136 0.309896 -604058144 1.04117 -604058152 -0.44394 -604058160 -0.703057 -604058168 1.02004 -604058176 -1.06699 -604058184 1.60189 -604058632 0.702471 -604058704 -0.565101 -604058712 0.905924 -604058720 1.68986 -604058728 -1.10964 -604058736 1.09278 -604058744 -0.831218 -604058752 -2.30393 -604058760 -0.980352 -604058768 0.937099 -604058776 -0.0112871 -604058640 0.160891 -604058784 -0.21495 -604058792 0.0965705 -604058800 0.753165 -604058808 -0.463806 -604058816 0.0348022 -604058824 -0.542185 -604058832 -0.628563 -604058840 1.37116 -604058848 -0.495301 -604058856 -0.356918 -604058648 0.885219 -604058864 0.569657 -604058872 1.66248 -604058880 -0.847595 -604058888 2.46648 -604058896 -0.0836056 -604058904 0.581149 -604058912 -1.66792 -604058656 -0.0952022 -604058664 -0.26986 -604058672 0.353998 -604058680 -1.10148 -604058688 0.298206 -604058696 -0.684225 -604062216 1.13987 -604062288 -0.670674 -604062296 1.61364 -604062304 -0.898036 -604062312 0.104853 -604062320 1.13573 -604062328 -0.186924 -604062336 1.51388 -604062344 -0.836594 -604062352 -0.544603 -604062224 -0.978412 -604062232 -0.513883 -604062240 -1.16332 -604062248 -0.117236 -604062256 -0.672903 -604062264 0.0198159 -604062272 1.90088 -604062280 0.170261 -604062728 -1.56735 -604062800 0.561224 -604062808 -0.221612 -604062816 0.461516 -604062824 -0.0539649 -604062832 -0.236176 -604062840 1.37834 -604062848 -1.65948 -604062856 0.947621 -604062864 -1.29676 -604062872 -0.678323 -604062736 1.55504 -604062880 0.634817 -604062888 -0.30638 -604062896 1.24868 -604062904 -1.94895 -604062912 -1.79885 -604062920 0.812137 -604062928 0.00813503 -604062936 0.384534 -604062944 -0.0726509 -604062952 2.83231 -604062744 -0.172606 -604062960 2.84618 -604062968 -0.250267 -604062976 -2.22286 -604062984 -0.844648 -604062992 2.3677 -604063000 -2.02831 -604063008 -0.731793 -604062752 -0.826737 -604062760 -0.460668 -604062768 0.549934 -604062776 -0.0616808 -604062784 0.249816 -604062792 -0.440363 diff --git a/SUSYBSMAnalysis/HSCP/data/MuonTimeShift_2012.txt b/SUSYBSMAnalysis/HSCP/data/MuonTimeShift_2012.txt deleted file mode 100644 index a6fc4e8f17532..0000000000000 --- a/SUSYBSMAnalysis/HSCP/data/MuonTimeShift_2012.txt +++ /dev/null @@ -1,3106 +0,0 @@ -637566980 -0.72904 -637599748 0.751866 -637632516 -3.08868 -637566982 2.89678 -637599750 3.78131 -637632518 -3.31001 -637566984 -15.8326 -637599752 5.06673 -637632520 0.477014 -637566986 -5.98424 -637599754 2.01664 -637632522 -5.37623 -637566989 5.22446 -637632525 2.10916 -637566993 -4.99516 -637632529 -1.0636 -637566997 5.94255 -637632533 -3.5434 -637567001 -7.88919 -637632537 4.53428 -637567005 0.483349 -637632541 0.953273 -637567108 2.04407 -637599876 -1.50133 -637632644 6.86335 -637567110 -1.49482 -637599878 -5.22636 -637632646 9.36564 -637567112 3.80643 -637599880 4.73382 -637632648 11.3872 -637567114 5.03791 -637599882 4.28121 -637632650 5.27042 -637567117 4.08935 -637632653 -0.598757 -637567121 4.85885 -637632657 -5.99767 -637567125 8.22207 -637632661 -4.11636 -637567129 -3.59051 -637632665 0.510182 -637567133 2.96879 -637632669 3.91209 -637567236 5.13482 -637600004 6.27191 -637632772 1.68296 -637567238 2.65263 -637600006 1.20065 -637632774 -7.74463 -637567240 1.32103 -637600008 -6.36303 -637632776 1.73196 -637567242 -5.74862 -637600010 3.54251 -637632778 -2.37959 -637567245 -1.10433 -637632781 1.77243 -637567249 0.277401 -637632785 3.13192 -637567253 3.1739 -637632789 -0.162673 -637567257 0.474856 -637632793 -6.61568 -637567261 9.89509 -637632797 -4.01276 -637567364 -10.075 -637600132 -3.88336 -637632900 -6.02672 -637567366 -4.94478 -637600134 9.7624 -637632902 4.127 -637567368 9.39407 -637600136 -4.82866 -637632904 -8.27168 -637567370 0.0875797 -637600138 -3.50607 -637632906 -1.75826 -637567373 -0.752504 -637632909 -0.315173 -637567377 -7.18394 -637632913 0.246236 -637567381 6.35358 -637632917 -1.90547 -637567385 0.127157 -637632921 1.62335 -637567389 1.645 -637632925 8.28623 -637567492 0.888103 -637600260 -3.18296 -637633028 -7.74467 -637567494 4.60932 -637600262 2.20155 -637633030 0.270889 -637567496 -7.35084 -637600264 -12.5755 -637633032 6.3988 -637567498 1.66043 -637600266 -0.439591 -637633034 3.37895 -637567501 3.69627 -637633037 1.11327 -637567505 -4.98262 -637633041 -0.0748442 -637567509 -3.1435 -637633045 2.90777 -637567513 0.574352 -637633049 1.30413 -637567517 -5.01319 -637633053 -1.4189 -637567620 -4.7586 -637600388 3.93486 -637633156 -4.29063 -637567622 1.53539 -637600390 1.42506 -637633158 -1.01274 -637567624 -2.07096 -637600392 1.72401 -637633160 -4.41233 -637567626 -4.17218 -637600394 -2.06992 -637633162 -6.02457 -637567629 9.04005 -637633165 2.01198 -637567633 -5.10246 -637633169 -3.54648 -637567637 -1.64826 -637633173 6.04635 -637567641 -14.1566 -637633177 7.28019 -637567645 2.35225 -637633181 8.40755 -637567757 -0.162262 -637633293 5.89336 -637567761 7.26657 -637633297 -0.183835 -637567765 -10.1971 -637633301 -4.65111 -637567769 2.61031 -637633305 -5.91618 -637567773 -9.63492 -637633309 -10.9307 -637567885 4.36425 -637633421 2.53054 -637567889 5.59482 -637633425 9.0323 -637567893 6.26689 -637633429 0.569368 -637567897 2.34297 -637633433 -3.2902 -637567901 3.27669 -637633437 2.42819 -637568013 -2.96477 -637633549 3.00492 -637568017 3.80757 -637633553 -9.8236 -637568021 -5.52715 -637633557 -1.72392 -637568025 7.13483 -637633561 -3.74342 -637568029 2.21271 -637633565 -0.157651 -637568141 -0.519458 -637633677 8.24951 -637568145 -6.3418 -637633681 3.90107 -637568149 3.26799 -637633685 -4.74868 -637568153 1.5872 -637633689 -1.23906 -637568157 -0.116056 -637633693 -2.11704 -637568269 2.24782 -637633805 -2.16358 -637568273 -1.2751 -637633809 -0.00902959 -637568277 -0.335068 -637633813 -0.253205 -637568281 -0.446458 -637633817 4.89864 -637568285 -1.96374 -637633821 -2.14506 -637568397 -2.83293 -637633933 -2.42395 -637568401 9.0715 -637633937 -2.68388 -637568405 6.49865 -637633941 1.89858 -637568409 -3.97368 -637633945 -12.3506 -637568413 -6.2196 -637633949 -1.89172 -637571076 -1.1403 -637603844 1.10725 -637636612 1.79909 -637571078 -2.95447 -637603846 2.73138 -637636614 7.51953 -637571080 2.21849 -637603848 1.1269 -637636616 -0.794894 -637571082 1.34806 -637603850 -7.83788 -637636618 -14.6231 -637571204 -4.31522 -637603972 -3.97552 -637636740 8.32983 -637571206 2.24756 -637603974 -7.33292 -637636742 1.77927 -637571208 -6.94482 -637603976 -3.76161 -637636744 2.29647 -637571210 -1.35038 -637603978 -3.09041 -637636746 -6.0239 -637571332 -1.47936 -637604100 3.86798 -637636868 -3.45065 -637571334 2.52322 -637604102 -9.82199 -637636870 -3.24489 -637571336 1.7548 -637604104 3.91071 -637636872 -3.6422 -637571338 -3.05672 -637604106 -1.25212 -637636874 -2.44514 -637571460 7.56308 -637604228 -1.99347 -637636996 -1.40534 -637571462 -2.26608 -637604230 -3.0403 -637636998 -6.27645 -637571464 -7.93763 -637604232 -3.35107 -637637000 6.38266 -637571466 -3.4678 -637604234 1.02615 -637637002 8.01518 -637571588 -1.58823 -637604356 0.42667 -637637124 0.475554 -637571590 -2.37306 -637604358 -2.27987 -637637126 -0.393371 -637571592 5.43566 -637604360 -7.35797 -637637128 6.64206 -637571594 -7.3253 -637604362 -4.32862 -637637130 1.73354 -637571716 2.26637 -637604484 -3.7601 -637637252 3.42311 -637571718 3.91246 -637604486 1.23032 -637637254 9.33363 -637571720 -2.756 -637604488 2.43358 -637637256 -6.61973 -637571722 -7.38155 -637604490 -0.956365 -637637258 3.71786 -637575172 -6.44996 -637607940 -1.20885 -637640708 -5.05424 -637575174 -4.92963 -637607942 9.59817 -637640710 1.31057 -637575176 -1.96524 -637607944 0.213422 -637640712 -6.44962 -637575178 -0.261123 -637607946 5.31333 -637640714 6.00186 -637575300 -0.27433 -637608068 -6.71869 -637640836 1.46295 -637575302 -4.88039 -637608070 -0.904205 -637640838 -6.42695 -637575304 -3.53801 -637608072 -2.0487 -637640840 3.53903 -637575306 -1.77283 -637608074 -2.65845 -637640842 -7.43632 -637575428 -5.28034 -637608196 -1.72725 -637640964 -10.7984 -637575430 -5.94576 -637608198 -1.35529 -637640966 -7.14031 -637575432 1.37921 -637608200 3.29785 -637640968 -4.96603 -637575434 0.549718 -637608202 -4.36056 -637640970 -0.383644 -637575556 8.44028 -637608324 3.89826 -637641092 -2.09576 -637575558 0.311075 -637608326 -4.7998 -637641094 4.23887 -637575560 -8.33249 -637608328 -0.665461 -637641096 3.74078 -637575562 0.720088 -637608330 -3.20972 -637641098 1.43231 -637575684 -6.28414 -637608452 -6.77141 -637641220 2.96281 -637575686 -3.61501 -637608454 5.17801 -637641222 1.2803 -637575688 5.1884 -637608456 -4.0897 -637641224 4.69159 -637575690 -4.06526 -637608458 0.902667 -637641226 0.979644 -637575812 -7.59543 -637608580 1.62717 -637641348 7.28276 -637575814 -8.48488 -637608582 0.863181 -637641350 5.78599 -637575816 -5.80811 -637608584 8.10835 -637641352 2.63874 -637575818 -3.61333 -637608586 7.73547 -637641354 0.232484 -637579268 0.569195 -637612036 -4.90085 -637644804 3.65987 -637579270 5.09842 -637612038 -1.93183 -637644806 0.14191 -637579272 5.26351 -637612040 -5.10495 -637644808 -8.13555 -637579274 5.27278 -637612042 3.61299 -637644810 -4.11142 -637579396 7.17666 -637612164 1.44256 -637644932 8.03853 -637579398 0.298864 -637612166 0.98907 -637644934 2.06653 -637579400 -0.293733 -637612168 1.06669 -637644936 5.94621 -637579402 -1.26871 -637612170 -0.147406 -637644938 4.23018 -637579524 -2.65906 -637612292 -9.30993 -637645060 0.665584 -637579526 -1.85425 -637612294 -1.01349 -637645062 5.55966 -637579528 -4.07636 -637612296 -1.79928 -637645064 0.31843 -637579530 -5.79589 -637612298 -4.25568 -637645066 -10.2703 -637579652 2.99474 -637612420 -9.01838 -637645188 4.07151 -637579654 -4.5159 -637612422 4.61227 -637645190 -8.29405 -637579656 -8.11729 -637612424 -1.88953 -637645192 -3.65522 -637579658 -3.3923 -637612426 -9.26397 -637645194 4.6759 -637579780 0.091992 -637612548 0.9064 -637645316 -6.88438 -637579782 -2.75032 -637612550 0.770629 -637645318 -9.32864 -637579784 -4.94746 -637612552 -3.59396 -637645320 1.77031 -637579786 4.58101 -637612554 -2.17755 -637645322 6.64259 -637579908 5.15406 -637612676 -5.51375 -637645444 0.331484 -637579910 2.17587 -637612678 -5.48093 -637645446 0.22376 -637579912 -6.54346 -637612680 -1.33904 -637645448 1.51448 -637579914 2.47997 -637612682 -1.21564 -637645450 2.84633 -637583364 3.68446 -637616132 -7.30981 -637648900 0.402138 -637583366 -4.42081 -637616134 -2.84272 -637648902 8.69199 -637583368 4.14291 -637616136 1.38079 -637648904 7.70392 -637583370 4.8566 -637616138 -1.78812 -637648906 -1.15877 -637583492 -5.37246 -637616260 -0.771772 -637649028 -4.94066 -637583494 -10.3845 -637616262 -8.13605 -637649030 3.24537 -637583496 -2.24693 -637616264 -6.82091 -637649032 2.91274 -637583498 -5.06041 -637616266 7.67864 -637649034 -0.85826 -637583620 -2.90283 -637616388 -2.9151 -637649156 1.59051 -637583622 8.25519 -637616390 2.87458 -637649158 10.3058 -637583624 6.82977 -637616392 0.85649 -637649160 -0.743223 -637583626 -4.49738 -637616394 2.45605 -637649162 -3.19992 -637583748 8.71302 -637616516 1.93661 -637649284 -3.79376 -637583750 1.02592 -637616518 -2.6989 -637649286 2.54811 -637583752 3.12185 -637616520 -2.83249 -637649288 0.192204 -637583754 3.77457 -637616522 -1.64707 -637649290 1.75674 -637583876 -10.9175 -637616644 4.36412 -637649412 2.0103 -637583878 -2.76017 -637616646 4.76139 -637649414 8.07058 -637583880 -3.94541 -637616648 -1.98936 -637649416 1.23948 -637583882 1.66803 -637616650 11.1426 -637649418 4.08484 -637584004 2.28888 -637616772 -4.64293 -637649540 0.929976 -637584006 -6.77718 -637616774 -4.45051 -637649542 -2.45356 -637584008 3.10382 -637616776 1.15958 -637649544 0.0943293 -637584010 5.46527 -637616778 1.96134 -637649546 1.79322 -637587460 1.99159 -637620228 -4.00072 -637652996 -6.55014 -637587462 0.995674 -637620230 4.51038 -637652998 1.58901 -637587464 -2.78352 -637620232 -5.45285 -637653000 0.682835 -637587466 2.09425 -637620234 1.48181 -637653002 -3.51212 -637587588 -0.807239 -637620356 9.07348 -637653124 1.54956 -637587590 -4.6694 -637620358 2.54321 -637653126 0.760356 -637587592 -3.35021 -637620360 2.62115 -637653128 -2.04636 -637587594 -10.7557 -637620362 -9.4455 -637653130 -2.26602 -637587716 -3.83944 -637620484 -0.793747 -637653252 -3.30084 -637587718 -4.82858 -637620486 -4.46214 -637653254 -4.93196 -637587720 2.00106 -637620488 -1.05603 -637653256 -8.87629 -637587722 -1.99606 -637620490 -1.96073 -637653258 -6.2873 -637587844 2.39366 -637620612 -4.97207 -637653380 -2.72868 -637587846 -5.38771 -637620614 -5.0886 -637653382 4.10134 -637587848 6.51855 -637620616 -5.33381 -637653384 5.53799 -637587850 2.80364 -637620618 -0.25999 -637653386 0.852222 -637587972 -12.3621 -637620740 -7.49168 -637653508 6.7002 -637587974 0.286073 -637620742 -2.5936 -637653510 1.56307 -637587976 2.10092 -637620744 -0.748628 -637653512 9.7275 -637587978 -6.79391 -637620746 4.5636 -637653514 7.86127 -637588100 -0.758834 -637620868 -3.73163 -637653636 4.64765 -637588102 -2.09962 -637620870 -9.04904 -637653638 7.07204 -637588104 4.56703 -637620872 2.15351 -637653640 3.33651 -637588106 6.47548 -637620874 8.27473 -637653642 6.189 -637569037 -1.57153 -637634573 -1.83134 -637569041 0.831521 -637634577 4.15181 -637569045 13.702 -637634581 -0.301515 -637569049 0.241494 -637634585 10.2057 -637569053 -5.43617 -637634589 -6.69702 -637569165 -9.55981 -637634701 3.06557 -637569169 9.24179 -637634705 -2.39182 -637569173 -5.31995 -637634709 -2.05278 -637569177 3.0307 -637634713 -2.57866 -637569181 1.65442 -637634717 3.12634 -637569293 -2.63839 -637634829 4.47379 -637569297 6.11131 -637634833 2.25463 -637569301 -2.94649 -637634837 -4.53569 -637569305 -0.0682986 -637634841 -1.51577 -637569309 -5.80034 -637634845 -5.62626 -637569421 7.38824 -637634957 -7.50631 -637569425 -7.77705 -637634961 3.03765 -637569429 -4.56815 -637634965 -2.51997 -637569433 2.91934 -637634969 8.02036 -637569437 -3.22 -637634973 0.38978 -637569549 -7.22834 -637635085 -7.57552 -637569553 2.13354 -637635089 -5.26223 -637569557 -4.2117 -637635093 11.1823 -637569561 -4.06653 -637635097 1.11226 -637569565 -1.74865 -637635101 2.93136 -637569677 -3.76132 -637635213 -5.27081 -637569681 1.55468 -637635217 6.68147 -637569685 5.06069 -637635221 -1.24707 -637569689 6.37695 -637635225 -2.6502 -637569693 -1.69297 -637635229 1.2675 -637569805 0.502167 -637635341 4.86834 -637569809 -0.963374 -637635345 -4.83347 -637569813 -1.06667 -637635349 -2.76503 -637569817 -6.25458 -637635353 2.19597 -637569821 0.953126 -637635357 -0.849912 -637569933 7.79513 -637635469 10.487 -637569937 5.0852 -637635473 -6.16034 -637569941 -0.493908 -637635477 -6.42624 -637569945 1.84716 -637635481 -5.8964 -637569949 2.30026 -637635485 -1.55193 -637570061 8.49287 -637635597 -1.9161 -637570065 -5.95951 -637635601 7.0659 -637570069 6.4085 -637635605 -6.06335 -637570073 0.376674 -637635609 8.83555 -637570077 0.273953 -637635613 1.68376 -637570189 0.345232 -637635725 1.98328 -637570193 -2.98537 -637635729 10.2158 -637570197 0.588608 -637635733 -3.24994 -637570201 6.69421 -637635737 1.93913 -637570205 0.878819 -637635741 -0.779859 -637570317 4.9545 -637635853 2.25881 -637570321 4.73984 -637635857 -3.72419 -637570325 1.28113 -637635861 -1.22506 -637570329 0.0936576 -637635865 -0.290126 -637570333 -3.97661 -637635869 0.279475 -637570445 -1.34562 -637635981 -1.66484 -637570449 -6.43603 -637635985 4.0118 -637570453 -4.77653 -637635989 3.30826 -637570457 -5.60731 -637635993 5.40773 -637570461 -2.51399 -637635997 6.66912 -637567012 2.33538 -637599780 -2.70952 -637632548 0.455631 -637567014 7.0828 -637599782 -3.02076 -637632550 1.92743 -637567016 4.68388 -637599784 -2.1078 -637632552 5.90017 -637567018 2.32834 -637599786 -3.49221 -637632554 -6.88039 -637567021 -0.614561 -637632557 -0.746732 -637567025 0.298691 -637599793 -1.4852 -637632561 -3.42678 -637567029 0.440625 -637599797 -1.09466 -637632565 2.03135 -637567033 2.49984 -637599801 1.56013 -637632569 -7.20328 -637567037 0.510469 -637632573 -3.76993 -637567140 4.41614 -637599908 8.88538 -637632676 -3.18429 -637567142 -2.14418 -637599910 7.85328 -637632678 -5.57658 -637567144 3.0187 -637599912 -0.982856 -637632680 3.95164 -637567146 -1.34083 -637599914 3.43199 -637632682 2.06594 -637567149 1.66775 -637632685 -3.25166 -637567153 -1.01008 -637599921 8.86752 -637632689 -0.827204 -637567157 4.33228 -637599925 -4.85108 -637632693 -1.78989 -637567161 2.89537 -637599929 2.85054 -637632697 -7.26228 -637567165 -1.37277 -637632701 3.73347 -637567268 -6.56866 -637600036 -4.45883 -637632804 7.49802 -637567270 11.6598 -637600038 -3.57676 -637632806 -4.0685 -637567272 4.53767 -637600040 -8.24026 -637632808 2.87222 -637567274 -3.41958 -637600042 -5.2321 -637632810 -3.55889 -637567277 4.27473 -637632813 7.1462 -637567281 1.14862 -637600049 2.33498 -637632817 -5.03336 -637567285 7.31453 -637600053 -2.19594 -637632821 2.52338 -637567289 0.0456153 -637600057 -0.232067 -637632825 -3.08931 -637567293 3.77107 -637632829 -2.88731 -637567396 2.0294 -637600164 3.31856 -637632932 -1.10712 -637567398 6.37456 -637600166 1.9386 -637632934 -0.929543 -637567400 -2.99152 -637600168 -0.964668 -637632936 0.433565 -637567402 -4.71409 -637600170 -1.70965 -637632938 -5.17072 -637567405 -5.48591 -637632941 8.18639 -637567409 9.42343 -637600177 -3.04211 -637632945 -6.55637 -637567413 -3.27123 -637600181 0.9306 -637632949 -2.84732 -637567417 -10.8997 -637600185 -0.890399 -637632953 1.19409 -637567421 -4.91666 -637632957 -8.28665 -637567524 -1.30487 -637600292 6.67585 -637633060 -7.26028 -637567526 -0.0852436 -637600294 -2.28225 -637633062 -0.0801521 -637567528 6.96175 -637600296 6.97307 -637633064 0.0527773 -637567530 -0.0203842 -637600298 7.86924 -637633066 3.36398 -637567533 -6.31007 -637633069 -2.60291 -637567537 8.70861 -637600305 0.90852 -637633073 -0.107652 -637567541 -1.0026 -637600309 -8.45838 -637633077 8.48741 -637567545 3.96231 -637600313 7.12051 -637633081 -4.85381 -637567549 0.665877 -637633085 1.00766 -637567652 -9.79832 -637600420 7.71758 -637633188 1.15212 -637567654 7.96024 -637600422 -1.34514 -637633190 4.03572 -637567656 -5.64968 -637600424 -6.6683 -637633192 -5.75147 -637567658 8.4066 -637600426 -4.03329 -637633194 -5.883 -637567661 1.71588 -637633197 -6.44006 -637567665 -7.7556 -637600433 -2.38175 -637633201 -1.44141 -637567669 7.9353 -637600437 -7.00968 -637633205 5.65584 -637567673 3.86558 -637600441 -2.67835 -637633209 12.321 -637567677 -1.28828 -637633213 -7.69603 -637567789 0.686299 -637633325 -2.1279 -637567793 -0.611814 -637600561 -2.5071 -637633329 1.69271 -637567797 4.03141 -637600565 -6.9918 -637633333 -3.56027 -637567801 4.70862 -637600569 5.57471 -637633337 1.82678 -637567805 0.594386 -637633341 -0.586301 -637567917 1.97133 -637633453 -7.85683 -637567921 -4.51266 -637600689 -1.23578 -637633457 -2.55333 -637567925 0.423935 -637600693 2.74303 -637633461 -8.73555 -637567929 1.37934 -637600697 4.30318 -637633465 -7.60878 -637567933 5.14301 -637633469 3.74227 -637568045 2.10853 -637633581 4.69931 -637568049 2.56564 -637600817 -3.34417 -637633585 -1.86322 -637568053 -1.11185 -637600821 -4.77354 -637633589 -3.36742 -637568057 0.881318 -637600825 3.37214 -637633593 -0.308908 -637568061 0.168469 -637633597 -4.97774 -637568173 -0.0616854 -637633709 0.288759 -637568177 7.78264 -637600945 4.02771 -637633713 -2.42984 -637568181 -2.29889 -637600949 1.47762 -637633717 5.67428 -637568185 4.71013 -637600953 1.79992 -637633721 3.23272 -637568189 11.1457 -637633725 3.39038 -637568301 0.545357 -637633837 2.54345 -637568305 -5.28904 -637601073 -2.40655 -637633841 -1.5991 -637568309 1.49301 -637601077 7.68553 -637633845 4.07408 -637568313 8.80702 -637601081 -0.417202 -637633849 0.876801 -637568317 -2.1393 -637633853 2.2172 -637568429 7.09388 -637633965 1.83088 -637568433 -2.56334 -637601201 -2.48436 -637633969 -2.88419 -637568437 -1.15131 -637601205 -8.24445 -637633973 -2.66267 -637568441 11.031 -637601209 0.599002 -637633977 5.63704 -637568445 -5.75026 -637633981 -1.01686 -637571108 4.60216 -637603876 -1.54236 -637636644 -7.07549 -637571110 11.3863 -637603878 -1.00368 -637636646 3.13418 -637571112 1.70531 -637603880 -3.48411 -637636648 -10.9763 -637571114 -4.88584 -637603882 1.31095 -637636650 1.03839 -637571236 -7.34251 -637604004 1.04063 -637636772 5.50718 -637571238 -0.384294 -637604006 -4.1985 -637636774 0.559841 -637571240 -4.10244 -637604008 -9.67315 -637636776 6.82011 -637571242 0.717127 -637604010 -3.08254 -637636778 -3.50468 -637571364 3.44105 -637604132 -2.55442 -637636900 -3.1449 -637571366 -1.95988 -637604134 -2.00286 -637636902 1.33149 -637571368 -7.86373 -637604136 -4.21165 -637636904 4.5263 -637571370 -7.40792 -637604138 0.291192 -637636906 4.27444 -637571492 -1.22459 -637604260 -1.13903 -637637028 -3.25555 -637571494 -13.799 -637604262 11.5459 -637637030 -1.61686 -637571496 -9.14592 -637604264 8.93036 -637637032 -8.35876 -637571498 8.82822 -637604266 -1.47677 -637637034 -1.96093 -637571620 8.87097 -637604388 3.81447 -637637156 -4.86349 -637571622 2.54583 -637604390 -7.32977 -637637158 10.8448 -637571624 -5.11753 -637604392 7.48884 -637637160 -3.81471 -637571626 3.8487 -637604394 -5.92008 -637637162 1.2999 -637571748 1.66192 -637604516 2.69328 -637637284 -5.65222 -637571750 -7.16165 -637604518 -5.16987 -637637286 3.71428 -637571752 1.95606 -637604520 -2.04049 -637637288 -6.05611 -637571754 -8.76281 -637604522 -10.0584 -637637290 -1.09793 -637575204 -8.5683 -637607972 -5.50123 -637640740 4.39173 -637575206 6.08867 -637607974 -2.32605 -637640742 11.7045 -637575208 -6.3307 -637607976 -6.56249 -637640744 -0.252687 -637575210 -7.92054 -637607978 -13.174 -637640746 2.45185 -637575332 0.968429 -637608100 2.89967 -637640868 -1.35045 -637575334 10.5882 -637608102 12.9835 -637640870 11.3177 -637575336 -3.47235 -637608104 -7.81819 -637640872 -3.23375 -637575338 -2.98918 -637608106 0.327677 -637640874 0.641421 -637575460 3.53035 -637608228 -5.98451 -637640996 -3.59582 -637575462 -4.22415 -637608230 1.48223 -637640998 4.04833 -637575464 -5.70967 -637608232 -6.41227 -637641000 -2.79811 -637575466 -5.06039 -637608234 -6.45226 -637641002 5.66429 -637575588 7.39873 -637608356 -9.48528 -637641124 2.58917 -637575590 0.697128 -637608358 4.81648 -637641126 12.4305 -637575592 4.12916 -637608360 -3.28901 -637641128 0.0489296 -637575594 2.28544 -637608362 -1.60923 -637641130 -1.6947 -637575716 10.5612 -637608484 -6.19307 -637641252 7.6646 -637575718 6.96336 -637608486 -0.339545 -637641254 -7.1097 -637575720 0.668703 -637608488 7.0359 -637641256 1.80533 -637575722 8.69506 -637608490 3.61864 -637641258 -4.88032 -637575844 -6.72657 -637608612 2.47843 -637641380 -2.85769 -637575846 -3.90371 -637608614 -3.81098 -637641382 -10.2723 -637575848 0.156691 -637608616 -3.99973 -637641384 -1.1491 -637575850 1.57759 -637608618 0.756205 -637641386 -4.17896 -637579300 -2.80537 -637612068 -1.67153 -637644836 1.85561 -637579302 -2.89171 -637612070 0.542132 -637644838 -1.27957 -637579304 -0.466054 -637612072 8.56679 -637644840 -7.96428 -637579306 4.86402 -637612074 -0.886333 -637644842 6.43296 -637579428 -5.99348 -637612196 4.5051 -637644964 5.11442 -637579430 -4.20745 -637612198 0.408123 -637644966 0.0559012 -637579432 3.15059 -637612200 -2.2671 -637644968 -5.12677 -637579434 1.30296 -637612202 4.54154 -637644970 5.30637 -637579556 3.25165 -637612324 9.79856 -637645092 -1.04283 -637579558 6.87616 -637612326 4.24072 -637645094 5.23793 -637579560 2.03301 -637612328 -2.30133 -637645096 2.39203 -637579562 -1.40478 -637612330 -2.4644 -637645098 -4.2768 -637579684 0.980307 -637612452 7.34482 -637645220 -4.85535 -637579686 3.03932 -637612454 1.20341 -637645222 1.90057 -637579688 -2.2028 -637612456 -8.06662 -637645224 5.47436 -637579690 5.78676 -637612458 2.67032 -637645226 -0.945718 -637579812 3.96264 -637612580 2.11722 -637645348 -2.80906 -637579814 2.96018 -637612582 5.79542 -637645350 1.60475 -637579816 -6.47349 -637612584 -3.04466 -637645352 -1.44508 -637579818 0.964668 -637612586 0.450814 -637645354 -6.31342 -637579940 8.33604 -637612708 -1.85353 -637645476 3.9536 -637579942 -10.4026 -637612710 4.25103 -637645478 -1.15328 -637579944 -0.0943851 -637612712 -8.7271 -637645480 -3.90774 -637579946 2.12065 -637612714 0.141028 -637645482 6.78383 -637583396 1.52652 -637616164 1.19106 -637648932 5.56882 -637583398 -2.77993 -637616166 1.80934 -637648934 -0.663303 -637583400 -4.47526 -637616168 -2.3577 -637648936 -11.6829 -637583402 -2.33804 -637616170 14.1954 -637648938 2.36829 -637583524 -2.45279 -637616292 -5.09666 -637649060 -0.986868 -637583526 7.9059 -637616294 0.559884 -637649062 13.2209 -637583528 5.92863 -637616296 -8.79869 -637649064 -6.45477 -637583530 -1.38271 -637616298 9.48599 -637649066 3.4759 -637583652 -7.57913 -637616420 1.88433 -637649188 -0.707863 -637583654 6.0568 -637616422 -7.13774 -637649190 4.35959 -637583656 3.2639 -637616424 6.74143 -637649192 -1.78647 -637583658 8.64103 -637616426 -6.57324 -637649194 1.45052 -637583780 -0.676162 -637616548 -9.5847 -637649316 -5.66264 -637583782 2.9906 -637616550 -2.89533 -637649318 8.184 -637583784 -7.29092 -637616552 0.147652 -637649320 -5.09519 -637583786 -0.960216 -637616554 0.634596 -637649322 -5.66231 -637583908 -4.7856 -637616676 -10.6688 -637649444 0.156892 -637583910 2.38872 -637616678 1.84547 -637649446 -0.0140825 -637583912 -1.69423 -637616680 1.27503 -637649448 2.61656 -637583914 -0.242856 -637616682 2.60818 -637649450 -0.443807 -637584036 3.93828 -637616804 -0.752937 -637649572 -2.00212 -637584038 -8.13199 -637616806 8.74264 -637649574 4.34578 -637584040 -1.93505 -637616808 0.889981 -637649576 -1.65541 -637584042 4.67007 -637616810 -1.30859 -637649578 -9.13563 -637587492 -11.2144 -637620260 -1.32009 -637653028 2.40317 -637587494 -3.86793 -637620262 -3.74089 -637653030 1.54286 -637587496 -5.53916 -637620264 -2.1514 -637653032 2.48217 -637587498 13.9522 -637620266 -5.90068 -637653034 -9.16635 -637587620 -10.6094 -637620388 4.49182 -637653156 8.99979 -637587622 -1.81874 -637620390 1.16346 -637653158 5.01868 -637587624 -0.631862 -637620392 1.63032 -637653160 3.12984 -637587626 -4.39718 -637620394 0.349471 -637653162 0.84958 -637587748 7.87059 -637620516 1.50594 -637653284 -4.15886 -637587750 -10.1836 -637620518 -0.456376 -637653286 3.22258 -637587752 2.28798 -637620520 1.39343 -637653288 -1.03645 -637587754 -5.59717 -637620522 1.22609 -637653290 3.59088 -637587876 -3.26383 -637620644 8.32621 -637653412 6.24111 -637587878 -3.18491 -637620646 2.58506 -637653414 -0.401715 -637587880 -1.63698 -637620648 2.28776 -637653416 -6.33198 -637587882 0.0405078 -637620650 0.369827 -637653418 -1.46564 -637588004 -9.47259 -637620772 0.14425 -637653540 -1.511 -637588006 -9.67776 -637620774 7.25378 -637653542 -5.58523 -637588008 -4.03251 -637620776 -5.57362 -637653544 0.463327 -637588010 -5.39317 -637620778 -2.5265 -637653546 4.01668 -637588132 -5.97361 -637620900 1.23171 -637653668 3.36438 -637588134 0.537181 -637620902 0.964903 -637653670 -4.98007 -637588136 4.51176 -637620904 -0.913884 -637653672 2.52379 -637588138 5.6047 -637620906 1.87515 -637653674 -1.25453 -637569069 -0.334605 -637601837 5.26942 -637634605 -3.22857 -637569073 3.06427 -637634609 0.718413 -637569077 -3.23459 -637634613 2.21987 -637569081 0.641264 -637634617 -4.69852 -637569085 4.35302 -637601853 8.81557 -637634621 6.81712 -637569197 9.91443 -637601965 -7.07731 -637634733 1.54438 -637569201 1.31836 -637634737 8.19973 -637569205 -7.79137 -637634741 -1.35077 -637569209 -4.02969 -637634745 -3.37817 -637569213 -0.688175 -637601981 6.01103 -637634749 -5.1327 -637569325 5.76495 -637602093 -2.58298 -637634861 -0.954601 -637569329 -6.20465 -637634865 -1.62004 -637569333 0.220914 -637634869 1.09584 -637569337 -0.171083 -637634873 -11.868 -637569341 -7.74019 -637602109 -4.04211 -637634877 9.16358 -637569453 -4.05952 -637602221 -3.08142 -637634989 4.47042 -637569457 -3.97501 -637634993 -3.90048 -637569461 -1.33426 -637634997 -12.1214 -637569465 0.00193117 -637635001 2.58552 -637569469 -2.1856 -637602237 -8.15382 -637635005 -5.8265 -637569581 -5.84063 -637602349 3.93941 -637635117 -3.07886 -637569585 10.3256 -637635121 4.46739 -637569589 -3.76789 -637635125 0.711461 -637569593 0.622904 -637635129 -1.80934 -637569597 -1.58782 -637602365 1.01993 -637635133 8.96677 -637569709 6.35764 -637602477 5.26845 -637635245 6.50084 -637569713 -0.176896 -637635249 -15.1898 -637569717 0.715523 -637635253 -3.37616 -637569721 -2.04358 -637635257 0.429998 -637569725 4.39867 -637602493 -13.1096 -637635261 1.04065 -637569837 7.33884 -637602605 4.70952 -637635373 1.63268 -637569841 -0.850562 -637635377 1.65513 -637569845 2.21504 -637635381 4.73032 -637569849 -0.450683 -637635385 1.815 -637569853 -7.42269 -637602621 -2.72744 -637635389 5.60186 -637569965 -5.67738 -637602733 2.73785 -637635501 -2.58301 -637569969 1.04193 -637635505 -3.64559 -637569973 3.17284 -637635509 -3.94774 -637569977 -5.54174 -637635513 3.80987 -637569981 -0.0754381 -637602749 -0.0891905 -637635517 5.33238 -637570093 -0.541538 -637602861 -8.76002 -637635629 1.12492 -637570097 -1.25526 -637635633 6.40555 -637570101 0.965496 -637635637 3.17864 -637570105 0.921254 -637635641 -5.32462 -637570109 -6.46331 -637602877 -2.16915 -637635645 4.96954 -637570221 6.53089 -637602989 -0.369975 -637635757 -2.21308 -637570225 8.72256 -637635761 5.68385 -637570229 4.33112 -637635765 1.52121 -637570233 -1.46883 -637635769 -7.85922 -637570237 6.40298 -637603005 1.47515 -637635773 4.28756 -637570349 7.16775 -637603117 5.91871 -637635885 -5.70709 -637570353 1.48999 -637635889 2.65692 -637570357 1.72006 -637635893 -0.958317 -637570361 4.5967 -637635897 -0.357754 -637570365 -0.8528 -637603133 -0.405009 -637635901 1.99264 -637570477 4.6856 -637603245 -4.13252 -637636013 5.39198 -637570481 0.881652 -637636017 -13.3007 -637570485 -2.87087 -637636021 4.55826 -637570489 -3.71585 -637636025 6.86673 -637570493 8.3791 -637603261 -3.13062 -637636029 -1.99536 -637567044 -3.65344 -637599812 -7.33757 -637632580 -1.12642 -637567046 10.1891 -637599814 5.80059 -637632582 -1.67153 -637567048 -0.140897 -637599816 -8.70837 -637632584 -7.92858 -637567050 -1.03408 -637599818 9.49991 -637632586 2.92481 -637567053 0.241918 -637632589 9.11914 -637567057 -1.46141 -637632593 -3.94179 -637567061 3.80215 -637632597 -6.79085 -637567065 -9.92934 -637632601 -2.9709 -637567069 4.15569 -637632605 -0.516702 -637567172 0.233741 -637599940 3.3376 -637632708 -2.42346 -637567174 -6.59372 -637599942 6.26961 -637632710 -8.14747 -637567176 -2.89472 -637599944 -1.96197 -637632712 9.52313 -637567178 8.32698 -637599946 2.91193 -637632714 -6.87953 -637567181 8.53551 -637632717 -2.93963 -637567185 0.449388 -637632721 0.336348 -637567189 0.313853 -637632725 4.59619 -637567193 -1.3606 -637632729 -0.298889 -637567197 9.58063 -637632733 -1.65653 -637567300 -6.1366 -637600068 1.2308 -637632836 0.274308 -637567302 2.01828 -637600070 0.279244 -637632838 3.28043 -637567304 -0.542927 -637600072 -6.42771 -637632840 -1.76903 -637567306 3.3764 -637600074 2.59425 -637632842 2.03991 -637567309 -3.60602 -637632845 -5.84466 -637567313 -1.85525 -637632849 -4.16512 -637567317 -2.81803 -637632853 3.54943 -637567321 3.58406 -637632857 7.07797 -637567325 1.33685 -637632861 0.885943 -637567428 -6.03857 -637600196 2.50581 -637632964 -0.579256 -637567430 -3.4491 -637600198 -6.49953 -637632966 3.31782 -637567432 5.10653 -637600200 -0.309546 -637632968 4.76142 -637567434 -1.72938 -637600202 -7.40157 -637632970 5.12844 -637567437 6.30026 -637632973 8.54633 -637567441 -3.30581 -637632977 -1.58812 -637567445 0.250335 -637632981 -0.650971 -637567449 7.8158 -637632985 0.262062 -637567453 -6.35166 -637632989 1.74377 -637567556 -2.39003 -637600324 9.94222 -637633092 -1.95713 -637567558 3.76759 -637600326 -6.08833 -637633094 0.794505 -637567560 -1.91402 -637600328 8.25981 -637633096 -7.57956 -637567562 2.46702 -637600330 5.80298 -637633098 1.25712 -637567565 8.24078 -637633101 -3.83018 -637567569 -1.64532 -637633105 2.54312 -637567573 -2.69622 -637633109 -6.56103 -637567577 -7.9577 -637633113 -4.7871 -637567581 4.40864 -637633117 1.07747 -637567684 3.86332 -637600452 -2.14963 -637633220 5.63524 -637567686 -11.5301 -637600454 1.77718 -637633222 3.93966 -637567688 3.27437 -637600456 -1.95564 -637633224 -6.09633 -637567690 -0.243105 -637600458 -2.54488 -637633226 7.50926 -637567693 5.86427 -637633229 2.28444 -637567697 -4.33346 -637633233 -1.97431 -637567701 -14.8631 -637633237 -9.37883 -637567705 -2.76809 -637633241 4.75215 -637567709 -0.725939 -637633245 4.13556 -637567821 -1.49735 -637633357 -8.01165 -637567825 0.508974 -637633361 8.57272 -637567829 13.3906 -637633365 -4.59839 -637567833 -4.34956 -637633369 0.0117435 -637567837 0.920405 -637633373 -5.70597 -637567949 -1.15422 -637633485 2.16741 -637567953 3.7243 -637633489 0.26311 -637567957 0.417906 -637633493 6.27143 -637567961 7.45111 -637633497 -5.59547 -637567965 -6.81926 -637633501 -0.763007 -637568077 2.74408 -637633613 -7.32897 -637568081 4.35994 -637633617 0.42394 -637568085 4.37688 -637633621 1.714 -637568089 2.10688 -637633625 -4.44484 -637568093 -2.88323 -637633629 2.25417 -637568205 -4.57264 -637633741 -6.01181 -637568209 -2.69107 -637633745 -0.836561 -637568213 4.05131 -637633749 -0.941728 -637568217 4.47102 -637633753 -0.349062 -637568221 -7.70626 -637633757 3.71018 -637568333 -1.71052 -637633869 3.15377 -637568337 0.482476 -637633873 -3.3756 -637568341 4.37613 -637633877 2.2276 -637568345 3.4022 -637633881 -0.844246 -637568349 -1.60013 -637633885 1.14702 -637568461 -3.02134 -637633997 -3.65104 -637568465 2.01925 -637634001 -11.373 -637568469 5.43529 -637634005 2.27852 -637568473 4.03664 -637634009 1.51032 -637568477 -6.3742 -637634013 7.72898 -637571140 10.0242 -637603908 10.0701 -637636676 2.50856 -637571142 -0.430698 -637603910 -5.64728 -637636678 3.76941 -637571144 -8.13058 -637603912 9.36846 -637636680 -1.09774 -637571146 -1.84467 -637603914 6.06832 -637636682 0.905171 -637571149 -2.55214 -637636685 4.30423 -637571153 9.48246 -637636689 -9.20159 -637571157 -7.05352 -637636693 -2.18725 -637571161 1.55004 -637636697 -5.37331 -637571165 7.24384 -637636701 3.07759 -637571268 -3.98295 -637604036 -5.79772 -637636804 1.68521 -637571270 -2.13561 -637604038 -2.81538 -637636806 -3.53953 -637571272 1.62421 -637604040 -5.29433 -637636808 5.53728 -637571274 -5.66586 -637604042 -1.50964 -637636810 2.51082 -637571277 -8.11505 -637636813 4.93053 -637571281 -3.66307 -637636817 -0.881182 -637571285 -8.8144 -637636821 1.37847 -637571289 -1.11187 -637636825 -0.350418 -637571293 -7.48621 -637636829 2.22257 -637571396 1.53138 -637604164 2.36555 -637636932 -0.993555 -637571398 5.83359 -637604166 -0.372235 -637636934 6.85438 -637571400 -0.674285 -637604168 4.36586 -637636936 0.583692 -637571402 9.21447 -637604170 9.92338 -637636938 -4.30052 -637571405 -1.21285 -637636941 1.20846 -637571409 2.29587 -637636945 2.56651 -637571413 4.07997 -637636949 -8.55062 -637571417 9.34345 -637636953 11.2026 -637571421 0.348044 -637636957 4.62895 -637571524 -1.43798 -637604292 -1.55384 -637637060 -5.53818 -637571526 9.51736 -637604294 1.72971 -637637062 4.57617 -637571528 4.96708 -637604296 -6.61516 -637637064 1.0699 -637571530 0.835489 -637604298 1.16233 -637637066 4.91671 -637571533 -9.49605 -637637069 1.53008 -637571537 4.11571 -637637073 2.26905 -637571541 7.936 -637637077 -5.16771 -637571545 -8.34944 -637637081 -11.1855 -637571549 -3.69666 -637637085 1.02306 -637571652 -4.90662 -637604420 7.89275 -637637188 2.0013 -637571654 -9.56239 -637604422 7.02838 -637637190 -2.58917 -637571656 3.82263 -637604424 -3.92563 -637637192 -3.95524 -637571658 8.6786 -637604426 -3.79797 -637637194 -2.02503 -637571661 8.92478 -637637197 0.203117 -637571665 0.243665 -637637201 0.475691 -637571669 -3.41906 -637637205 3.4913 -637571673 -10.1476 -637637209 4.655 -637571677 0.62266 -637637213 1.67325 -637571780 10.597 -637604548 -3.64958 -637637316 2.42245 -637571782 4.73196 -637604550 1.39232 -637637318 -3.80974 -637571784 -4.11655 -637604552 0.584416 -637637320 -7.69057 -637571786 0.748432 -637604554 2.34633 -637637322 0.70793 -637571789 2.53347 -637637325 -1.7736 -637571793 1.43636 -637637329 5.34733 -637571797 -5.02128 -637637333 -3.11751 -637571801 -1.66765 -637637337 -9.82879 -637571805 -6.67657 -637637341 -3.38498 -637571917 3.00145 -637637453 20.7293 -637571921 4.69385 -637637457 1.84767 -637571925 13.4877 -637637461 6.40698 -637571929 -2.0225 -637637465 1.83756 -637571933 -1.2024 -637637469 -5.48425 -637572045 -1.71525 -637637581 -7.33628 -637572049 4.39596 -637637585 -6.60202 -637572053 -3.36901 -637637589 2.35362 -637572057 2.18151 -637637593 2.3141 -637572061 1.66569 -637637597 -0.320481 -637572173 6.48112 -637637709 8.59016 -637572177 4.28539 -637637713 0.74084 -637572181 -5.59201 -637637717 -6.83373 -637572185 -1.87371 -637637721 1.69245 -637572189 0.718316 -637637725 6.2718 -637572301 5.10307 -637637837 1.97756 -637572305 -3.13232 -637637841 4.50095 -637572309 -8.6491 -637637845 6.33296 -637572313 0.079555 -637637849 -2.30116 -637572317 2.32008 -637637853 -6.8674 -637572429 1.20468 -637637965 -6.10226 -637572433 5.44373 -637637969 -3.34334 -637572437 0.676272 -637637973 -2.39798 -637572441 -3.51073 -637637977 -4.58723 -637572445 1.35092 -637637981 -6.19677 -637572557 -0.000957864 -637638093 -1.09207 -637572561 3.81708 -637638097 -5.1262 -637572565 6.21877 -637638101 -2.43549 -637572569 -2.14915 -637638105 3.27379 -637572573 -1.01618 -637638109 -2.6152 -637575236 9.30033 -637608004 1.98144 -637640772 2.08247 -637575238 10.8166 -637608006 -5.41139 -637640774 2.93842 -637575240 0.894685 -637608008 10.7104 -637640776 -4.4174 -637575242 6.71699 -637608010 -1.1973 -637640778 -1.06805 -637575364 -2.33114 -637608132 -2.33394 -637640900 1.15804 -637575366 -1.9082 -637608134 6.04711 -637640902 -2.70242 -637575368 -2.57915 -637608136 1.25163 -637640904 -4.76008 -637575370 -12.7367 -637608138 5.57571 -637640906 5.93457 -637575492 -9.59974 -637608260 -7.5463 -637641028 4.48958 -637575494 2.16998 -637608262 3.93692 -637641030 6.98546 -637575496 10.1259 -637608264 -1.6705 -637641032 5.79047 -637575498 -5.76753 -637608266 -1.93471 -637641034 2.84637 -637575620 6.25944 -637608388 1.36177 -637641156 -3.77235 -637575622 -0.647053 -637608390 -7.01232 -637641158 -9.23965 -637575624 2.13123 -637608392 7.73566 -637641160 5.42736 -637575626 12.6319 -637608394 1.97224 -637641162 3.46266 -637575748 0.644304 -637608516 -0.808257 -637641284 -3.74166 -637575750 1.50516 -637608518 2.24547 -637641286 -7.06546 -637575752 3.60601 -637608520 -4.92875 -637641288 -8.05868 -637575754 5.53902 -637608522 2.39501 -637641290 -6.85553 -637575876 11.5017 -637608644 2.94259 -637641412 -2.67346 -637575878 4.82736 -637608646 3.813 -637641414 0.365547 -637575880 -1.15918 -637608648 5.47785 -637641416 0.102236 -637575882 -7.04592 -637608650 1.95745 -637641418 -6.24736 -637579332 -6.10673 -637612100 -4.1178 -637644868 -7.59128 -637579334 -3.37014 -637612102 0.869702 -637644870 3.12352 -637579336 -3.64085 -637612104 1.24799 -637644872 5.8862 -637579338 -2.08712 -637612106 5.19491 -637644874 8.79347 -637579460 -11.4856 -637612228 -15.2014 -637644996 1.79735 -637579462 3.54179 -637612230 -2.17958 -637644998 4.22963 -637579464 5.75152 -637612232 10.7466 -637645000 -0.35267 -637579466 11.4036 -637612234 4.17103 -637645002 8.41617 -637579588 1.50955 -637612356 2.93656 -637645124 -4.35917 -637579590 8.49862 -637612358 -4.05266 -637645126 5.9814 -637579592 -4.49698 -637612360 2.86414 -637645128 3.26634 -637579594 2.57727 -637612362 0.00463949 -637645130 6.31421 -637579716 -3.91921 -637612484 -13.8007 -637645252 -1.11639 -637579718 2.38588 -637612486 6.4624 -637645254 0.486948 -637579720 -2.86464 -637612488 -0.61448 -637645256 -13.0688 -637579722 -3.11367 -637612490 -3.68493 -637645258 8.58012 -637579844 -2.95501 -637612612 0.686992 -637645380 -3.95248 -637579846 -6.98774 -637612614 0.892783 -637645382 0.682961 -637579848 0.0643746 -637612616 1.63529 -637645384 -8.32433 -637579850 -0.599224 -637612618 -2.07491 -637645386 -3.90806 -637579972 -8.01397 -637612740 -0.969466 -637645508 -10.1288 -637579974 -4.67004 -637612742 -5.15772 -637645510 -2.76443 -637579976 -1.63759 -637612744 5.07735 -637645512 -1.0469 -637579978 4.04123 -637612746 -0.244353 -637645514 -2.0897 -637583428 5.54458 -637616196 4.31426 -637648964 -3.60155 -637583430 -1.646 -637616198 -0.434186 -637648966 5.20736 -637583432 -1.75961 -637616200 -3.84236 -637648968 -1.05827 -637583434 3.91145 -637616202 5.14123 -637648970 4.20684 -637583556 6.92772 -637616324 4.30879 -637649092 -3.17986 -637583558 -0.429923 -637616326 -4.99616 -637649094 1.33122 -637583560 -7.54014 -637616328 0.264791 -637649096 -0.922284 -637583562 -5.70322 -637616330 2.62646 -637649098 1.88825 -637583684 -1.75733 -637616452 8.90956 -637649220 0.829855 -637583686 0.527115 -637616454 -3.05976 -637649222 -5.50799 -637583688 2.74404 -637616456 1.44288 -637649224 3.11086 -637583690 -0.304257 -637616458 -8.5219 -637649226 -3.03241 -637583812 5.07456 -637616580 -7.29442 -637649348 -1.46281 -637583814 0.389235 -637616582 3.13195 -637649350 4.04029 -637583816 1.82765 -637616584 3.82549 -637649352 0.587805 -637583818 8.764 -637616586 -10.6932 -637649354 -0.953706 -637583940 -1.35308 -637616708 6.56576 -637649476 -2.49945 -637583942 -1.57913 -637616710 -0.21023 -637649478 3.27554 -637583944 4.88144 -637616712 -0.987335 -637649480 6.15972 -637583946 -7.55705 -637616714 -1.99888 -637649482 -4.92732 -637584068 -7.57356 -637616836 -2.75728 -637649604 2.91933 -637584070 4.05968 -637616838 -1.49399 -637649606 -0.246077 -637584072 -5.17161 -637616840 4.17822 -637649608 7.852 -637584074 -5.66538 -637616842 -7.70493 -637649610 2.24531 -637587524 -3.59005 -637620292 4.02859 -637653060 10.0714 -637587526 -2.06213 -637620294 -2.24339 -637653062 -0.665295 -637587528 0.28999 -637620296 -4.75283 -637653064 -0.909009 -637587530 2.12295 -637620298 3.44751 -637653066 5.98836 -637587652 9.55539 -637620420 -1.77806 -637653188 4.7648 -637587654 -1.70207 -637620422 6.83898 -637653190 11.8456 -637587656 3.66503 -637620424 -1.91794 -637653192 7.62051 -637587658 -5.26933 -637620426 -8.65457 -637653194 2.1622 -637587780 -0.840674 -637620548 0.821366 -637653316 -8.40466 -637587782 -0.526663 -637620550 -3.91073 -637653318 -0.018502 -637587784 0.0164132 -637620552 2.21214 -637653320 0.359258 -637587786 -6.4385 -637620554 -7.13898 -637653322 -4.94038 -637587908 5.21454 -637620676 0.913966 -637653444 6.34305 -637587910 5.38846 -637620678 0.815184 -637653446 -2.51199 -637587912 -1.86618 -637620680 6.97189 -637653448 -6.43733 -637587914 -5.2978 -637620682 2.90272 -637653450 -6.4198 -637588036 0.423418 -637620804 -7.58131 -637653572 0.263227 -637588038 -0.534521 -637620806 3.30415 -637653574 -3.35252 -637588040 3.82434 -637620808 -9.74249 -637653576 7.1391 -637588042 4.84851 -637620810 -4.12611 -637653578 -1.34359 -637588164 1.53017 -637620932 -3.59977 -637653700 3.20339 -637588166 -0.170724 -637620934 8.23196 -637653702 2.76098 -637588168 -0.385801 -637620936 4.05366 -637653704 -2.23038 -637588170 4.6548 -637620938 7.76471 -637653706 8.5133 -637567085 10.6305 -637632621 -4.98369 -637567089 2.94327 -637632625 -7.29174 -637567093 -5.46998 -637632629 2.07326 -637567097 -1.21138 -637632633 -8.87797 -637567101 -3.4076 -637632637 -3.81867 -637567213 -5.1798 -637632749 -6.50116 -637567217 -7.91486 -637632753 -8.40659 -637567221 1.79913 -637632757 -0.451575 -637567225 -0.822156 -637632761 4.02774 -637567229 6.89583 -637632765 5.04863 -637567341 -1.56338 -637632877 -3.91825 -637567345 2.07024 -637632881 -1.20809 -637567349 3.50979 -637632885 -1.17582 -637567353 3.86695 -637632889 -1.32041 -637567357 -3.86624 -637632893 -0.876045 -637567469 -5.33667 -637633005 8.04834 -637567473 4.45532 -637633009 2.55527 -637567477 -6.46838 -637633013 2.09916 -637567481 -4.32288 -637633017 -8.09805 -637567485 2.7943 -637633021 -7.89046 -637567597 9.16658 -637633133 15.7892 -637567601 1.69562 -637633137 -3.86832 -637567605 12.8038 -637633141 -6.0424 -637567609 5.19204 -637633145 2.26688 -637567613 8.47216 -637633149 -1.69323 -637567725 4.64043 -637633261 5.3026 -637567729 -1.98868 -637633265 -2.03566 -637567733 9.12254 -637633269 1.88422 -637567737 -1.98121 -637633273 2.1893 -637567741 -5.94335 -637633277 3.17705 -637567853 -0.7854 -637633389 -9.6011 -637567857 -10.2349 -637633393 -9.46503 -637567861 -4.14705 -637633397 -2.33561 -637567865 -1.01292 -637633401 2.9079 -637567869 7.49742 -637633405 5.80214 -637567981 1.57972 -637633517 2.83287 -637567985 -6.52804 -637633521 -7.35044 -637567989 -4.93823 -637633525 4.16326 -637567993 -4.46695 -637633529 -1.08164 -637567997 -1.22041 -637633533 -2.55531 -637568109 1.59263 -637633645 1.02898 -637568113 4.39065 -637633649 3.67988 -637568117 4.99899 -637633653 -2.89819 -637568121 0.169571 -637633657 4.86242 -637568125 -2.63137 -637633661 -2.36367 -637568237 6.56202 -637633773 1.8368 -637568241 1.5115 -637633777 -4.19918 -637568245 4.36595 -637633781 0.0907669 -637568249 -8.8989 -637633785 10.167 -637568253 -0.188733 -637633789 3.30107 -637568365 2.5078 -637633901 4.73154 -637568369 7.25485 -637633905 -3.66199 -637568373 0.512358 -637633909 0.751462 -637568377 -5.92989 -637633913 3.52438 -637568381 -0.735905 -637633917 6.7896 -637568493 -2.36601 -637634029 -10.7027 -637568497 1.09099 -637634033 1.26884 -637568501 1.06884 -637634037 4.86373 -637568505 -5.04899 -637634041 -3.99253 -637568509 0.602224 -637634045 -0.751487 -637571181 4.5498 -637636717 3.95343 -637571185 -2.5942 -637636721 7.26842 -637571189 1.73521 -637636725 -7.54132 -637571193 -2.12334 -637636729 -2.31477 -637571197 -4.73717 -637636733 9.51769 -637571309 1.16642 -637636845 4.55855 -637571313 5.95248 -637636849 8.26575 -637571317 10.7574 -637636853 -2.12216 -637571321 -2.65908 -637636857 0.975016 -637571325 2.38588 -637636861 1.43941 -637571437 -4.95178 -637636973 6.82276 -637571441 2.95164 -637636977 -4.51178 -637571445 0.410655 -637636981 -11.2264 -637571449 -6.29873 -637636985 2.32021 -637571453 0.80648 -637636989 0.310845 -637571565 8.15215 -637637101 2.68992 -637571569 1.742 -637637105 0.239482 -637571573 -1.07458 -637637109 -2.73704 -637571577 -6.76668 -637637113 -1.9515 -637571581 -10.1257 -637637117 -0.232636 -637571693 4.56808 -637637229 -5.74855 -637571697 -5.42832 -637637233 -3.32408 -637571701 0.133222 -637637237 0.556516 -637571705 3.61994 -637637241 -2.21772 -637571709 2.87179 -637637245 7.88679 -637571821 -4.41419 -637637357 -1.7656 -637571825 -9.41335 -637637361 8.88661 -637571829 10.7542 -637637365 1.54431 -637571833 -2.15671 -637637369 4.67544 -637571837 -8.55336 -637637373 5.12136 -637571949 2.29673 -637637485 0.610712 -637571953 0.199288 -637637489 -2.11349 -637571957 -11.5247 -637637493 1.94224 -637571961 8.15345 -637637497 8.61419 -637571965 -3.51076 -637637501 -0.866949 -637572077 -7.98049 -637637613 4.29595 -637572081 -2.81752 -637637617 7.04421 -637572085 -3.76241 -637637621 1.9817 -637572089 -1.53242 -637637625 5.22497 -637572093 -7.70815 -637637629 -2.06332 -637572333 -0.0424923 -637637869 -0.348633 -637572337 7.78216 -637637873 0.204725 -637572341 -4.28521 -637637877 1.04962 -637572345 -3.74994 -637637881 -2.24608 -637572349 2.57462 -637637885 -6.04722 -637572589 4.34996 -637638125 -6.39039 -637572593 -5.28514 -637638129 -5.22007 -637572597 2.10592 -637638133 11.5675 -637572601 3.79726 -637638137 3.53118 -637572605 1.03556 -637638141 -6.62176 -637575661 -14.0646 -637641197 2.09773 -637575665 5.87192 -637641201 -4.04066 -637575669 3.91873 -637641205 0.684936 -637575673 -5.73203 -637641209 -2.28167 -637575677 7.30374 -637641213 -0.426423 -637579757 -1.58674 -637645293 -1.23372 -637579761 4.35726 -637645297 0.330351 -637579765 5.23147 -637645301 -1.58871 -637579769 -2.69629 -637645305 -2.60523 -637579773 -2.02564 -637645309 -5.55283 -574914560 1.4816 -575176704 1.15087 -575438848 1.19551 -575700992 0.965557 -575963136 0.223023 -576225280 -1.02309 -576487424 1.58335 -576749568 0.0435336 -577011712 -0.585078 -577273856 0.37937 -577536000 0.501323 -577798144 1.59442 -579108864 0.04829 -579371008 2.24735 -579633152 1.21881 -579895296 2.29907 -580157440 0.585826 -580419584 -0.371138 -580681728 -0.784067 -580943872 -0.780065 -581206016 0.900997 -581468160 1.63037 -581730304 1.91388 -581992448 -0.680433 -583303168 0.478206 -583565312 -0.729319 -583827456 0.506768 -584089600 0.835964 -584351744 0.533669 -584613888 1.52413 -584876032 0.783291 -585138176 1.37809 -585400320 1.63119 -585662464 2.97563 -585924608 2.33858 -586186752 -0.583533 -587497472 0.734584 -587759616 -0.183901 -588021760 1.32067 -588283904 0.38393 -590643200 0.025526 -588546048 0.628978 -588808192 0.655558 -589070336 -0.358367 -589332480 0.405967 -589594624 1.245 -589856768 0.000832399 -590905344 1.2446 -590118912 -0.837512 -590381056 -1.01581 -574947328 0.77815 -575209472 3.02376 -575471616 -0.382007 -575733760 0.113068 -575995904 1.07598 -576258048 0.0902802 -576520192 1.0383 -576782336 1.47143 -577044480 1.62586 -577306624 0.858101 -577568768 -0.277764 -577830912 -0.936056 -579141632 -1.44164 -579403776 0.515206 -579665920 0.796663 -579928064 0.712763 -580190208 0.902406 -580452352 -1.11337 -580714496 1.67182 -580976640 -1.75267 -581238784 0.404312 -581500928 -0.458022 -581763072 0.8757 -582025216 0.627996 -583335936 0.174612 -583598080 0.155462 -583860224 0.347457 -584122368 0.727693 -584384512 -1.21808 -584646656 0.881855 -584908800 -1.57624 -585170944 1.23444 -585433088 1.18804 -585695232 -0.900637 -585957376 -0.850452 -586219520 0.85038 -587530240 0.402755 -587792384 1.15312 -588054528 -0.593254 -588316672 -1.30475 -590675968 -0.599093 -588578816 -1.81122 -588840960 0.804804 -589103104 1.30828 -589365248 1.83105 -589627392 1.0785 -589889536 1.83589 -590938112 1.15603 -590151680 1.73046 -590413824 -1.26972 -574980096 0.352297 -576028672 0.116715 -577077248 1.36887 -575242240 0.482301 -576290816 0.504571 -577339392 2.04972 -575504384 0.925508 -576552960 0.828655 -577601536 -0.935985 -575766528 -0.186126 -576815104 1.15827 -577863680 0.7047 -579174400 0.444614 -580222976 1.0881 -581271552 1.06957 -579436544 0.960754 -580485120 0.857428 -581533696 1.2123 -579698688 0.388513 -580747264 0.137898 -581795840 -0.583071 -579960832 1.11219 -581009408 1.31436 -582057984 0.509476 -583368704 1.1675 -584417280 0.490363 -585465856 -1.05861 -583630848 -0.768873 -584679424 0.181837 -585728000 -0.0141009 -583892992 2.16157 -584941568 1.49475 -585990144 2.4093 -584155136 -0.891009 -585203712 -1.04179 -586252288 -0.568035 -587563008 -0.341604 -587825152 1.83629 -588087296 1.81688 -588349440 0.825708 -590708736 1.43302 -588611584 0.0464914 -588873728 0.175284 -589135872 0.407462 -589398016 0.325634 -589660160 1.1291 -589922304 0.606164 -590970880 0.838954 -590184448 0.58415 -590446592 -1.15643 -575012864 0.357422 -575275008 0.987336 -575537152 0.776167 -575799296 2.16154 -576061440 0.601252 -576323584 -0.0025591 -576585728 -0.0711347 -576847872 0.250211 -577110016 -0.282646 -577372160 0.391809 -577634304 0.743716 -577896448 0.274828 -579207168 -1.1328 -579469312 2.31447 -579731456 2.02462 -579993600 1.30062 -580255744 0.456765 -580517888 0.124148 -580780032 0.803798 -581042176 -0.287346 -581304320 0.949558 -581566464 0.67316 -581828608 1.10189 -582090752 1.28785 -583401472 2.20478 -583663616 -0.22223 -583925760 -1.20568 -584187904 0.0149705 -584450048 0.793184 -584712192 -0.147296 -584974336 0.757433 -585236480 1.53418 -585498624 -0.102433 -585760768 1.63918 -586022912 0.388957 -586285056 0.109066 -587595776 1.57753 -587857920 1.49463 -588120064 1.81493 -588382208 -0.833509 -590741504 -0.656034 -588644352 -0.570791 -588906496 0.396371 -589168640 0.175378 -589430784 0.128522 -589692928 0.514887 -589955072 0.247087 -591003648 2.001 -590217216 1.54964 -590479360 1.90081 -575045632 -1.03644 -575307776 -1.21489 -575569920 -0.020565 -575832064 1.83937 -576094208 -0.0764598 -576356352 0.788257 -576618496 0.731987 -576880640 -1.03018 -577142784 2.75401 -577404928 0.560813 -577667072 1.23473 -577929216 0.694355 -579239936 -0.851857 -579502080 1.01199 -579764224 0.800888 -580026368 0.0867209 -580288512 2.10413 -580550656 1.605 -580812800 1.65063 -581074944 2.96054 -581337088 1.52459 -581599232 -0.386601 -581861376 0.279763 -582123520 1.16737 -583434240 -0.233972 -583696384 1.79449 -583958528 1.66452 -584220672 -0.813391 -584482816 0.773123 -584744960 0.115383 -585007104 1.12577 -585269248 1.3905 -585531392 0.0127318 -585793536 0.727783 -586055680 0.543869 -586317824 0.643478 -587628544 -0.89577 -587890688 0.0989628 -588152832 2.05043 -588414976 0.203489 -590774272 1.32207 -588677120 1.45415 -588939264 0.57996 -589201408 0.382282 -589463552 2.67474 -589725696 0.244932 -589987840 -0.438003 -591036416 -1.41455 -590249984 1.40473 -590512128 2.35476 -604017672 1.55259 -604017744 4.41434 -604017752 1.93279 -604017760 1.55821 -604017768 3.1165 -604017776 2.55792 -604017784 0.680428 -604017792 2.79299 -604017800 0.64554 -604017808 3.18193 -604017816 4.13025 -604017680 1.67737 -604017824 4.14239 -604017832 2.2979 -604017840 2.15507 -604017848 1.02768 -604017856 1.72511 -604017864 0.71384 -604017872 1.98499 -604017880 3.94256 -604017888 2.14134 -604017896 1.94862 -604017688 1.02894 -604017904 2.38044 -604017912 1.9018 -604017920 3.33885 -604017928 4.15043 -604017936 2.59769 -604017944 1.64873 -604017952 3.3453 -604017696 4.61682 -604017704 2.8253 -604017712 3.55912 -604017720 2.4758 -604017728 1.49002 -604017736 2.72299 -604018184 4.43154 -604018256 2.1396 -604018264 1.75271 -604018272 2.45571 -604018280 1.46096 -604018288 1.85916 -604018296 0.429667 -604018304 2.53527 -604018312 2.60939 -604018320 2.16214 -604018328 2.50575 -604018192 2.91208 -604018336 2.01087 -604018344 2.53829 -604018352 2.43601 -604018360 3.50405 -604018368 3.79587 -604018376 1.8548 -604018384 2.79562 -604018392 3.20193 -604018400 2.31278 -604018408 2.6465 -604018200 3.78825 -604018416 4.11686 -604018424 1.97553 -604018432 0.538769 -604018440 4.58903 -604018448 2.4132 -604018456 1.99437 -604018464 2.22579 -604018208 2.38566 -604018216 1.47588 -604018224 0.505544 -604018232 2.54042 -604018240 1.9076 -604018248 1.76157 -604018696 2.5446 -604018768 1.71539 -604018776 0.992546 -604018784 3.23785 -604018792 2.51926 -604018800 1.7961 -604018808 2.88717 -604018816 1.65125 -604018824 1.3996 -604018832 3.01295 -604018840 3.52379 -604018704 2.5457 -604018848 2.21789 -604018856 2.88136 -604018864 0.716905 -604018872 1.83012 -604018880 0.980368 -604018888 3.59364 -604018896 1.99184 -604018904 4.13054 -604018912 3.41253 -604018920 3.15713 -604018712 2.8398 -604018928 1.8088 -604018936 3.0397 -604018944 2.63389 -604018952 2.00921 -604018960 0.88441 -604018968 1.82356 -604018976 4.22291 -604018720 2.36746 -604018728 2.69002 -604018736 1.28326 -604018744 4.05671 -604018752 2.08254 -604018760 1.4724 -604021256 3.38337 -604021328 2.25177 -604021336 0.479889 -604021344 4.46225 -604021352 2.5752 -604021360 3.64354 -604021368 2.05851 -604021376 2.26406 -604021384 2.48935 -604021392 0.846236 -604021264 2.59514 -604021272 1.63596 -604021280 2.73865 -604021288 2.29097 -604021296 2.0481 -604021304 1.97701 -604021312 1.66158 -604021320 4.18503 -604021768 1.86093 -604021840 2.48017 -604021848 0.630095 -604021856 1.36865 -604021864 0.877344 -604021872 2.80388 -604021880 1.36526 -604021888 1.87488 -604021896 3.14974 -604021904 1.62532 -604021912 0.511952 -604021776 2.10114 -604021920 2.08636 -604021928 3.97056 -604021936 4.42001 -604021944 2.60365 -604021952 3.03986 -604021960 4.37508 -604021968 2.91226 -604021976 1.04215 -604021984 3.59412 -604021992 2.83555 -604021784 1.81771 -604022000 0.241794 -604022008 -0.682016 -604022016 2.5001 -604022024 2.46569 -604022032 1.07884 -604022040 1.20147 -604022048 1.14024 -604021792 1.38235 -604021800 1.93592 -604021808 1.24039 -604021816 1.99746 -604021824 0.824587 -604021832 1.70309 -604025352 2.67761 -604025424 1.69096 -604025432 0.354091 -604025440 3.74146 -604025448 2.28775 -604025456 2.43066 -604025464 1.65509 -604025472 2.74859 -604025480 2.79539 -604025488 2.44443 -604025360 1.86419 -604025368 2.67385 -604025376 2.56461 -604025384 2.90299 -604025392 3.98767 -604025400 2.29008 -604025408 2.19707 -604025416 1.8338 -604025864 3.54191 -604025936 1.11573 -604025944 1.30754 -604025952 0.634763 -604025960 1.3058 -604025968 4.3694 -604025976 4.75587 -604025984 0.823417 -604025992 2.35521 -604026000 2.54804 -604026008 3.14186 -604025872 2.95414 -604026016 0.476298 -604026024 2.44145 -604026032 2.44878 -604026040 1.31971 -604026048 1.99653 -604026056 2.22133 -604026064 0.412224 -604026072 2.12993 -604026080 1.85301 -604026088 1.13907 -604025880 1.70067 -604026096 2.87865 -604026104 1.94034 -604026112 3.18545 -604026120 2.67214 -604026128 1.87586 -604026136 2.58763 -604026144 1.36402 -604025888 2.41699 -604025896 2.24784 -604025904 1.39881 -604025912 3.21081 -604025920 4.09955 -604025928 2.55475 -604029448 1.14854 -604029520 2.05961 -604029528 2.11095 -604029536 3.32941 -604029544 2.01407 -604029552 3.14971 -604029560 3.30424 -604029568 2.70818 -604029576 1.1931 -604029584 2.46563 -604029456 4.25291 -604029464 0.588643 -604029472 2.57577 -604029480 3.52009 -604029488 2.65626 -604029496 4.48166 -604029504 4.21645 -604029512 1.29222 -604029960 3.26463 -604030032 2.29978 -604030040 3.83195 -604030048 2.6195 -604030056 3.4741 -604030064 1.35196 -604030072 1.97654 -604030080 2.30716 -604030088 4.02774 -604030096 3.24886 -604030104 1.64115 -604029968 1.37078 -604030112 1.56748 -604030120 3.09675 -604030128 3.61719 -604030136 2.68121 -604030144 4.22842 -604030152 1.72178 -604030160 2.56361 -604030168 4.25976 -604030176 0.922411 -604030184 1.37342 -604029976 1.20006 -604030192 1.82204 -604030200 1.96089 -604030208 2.97825 -604030216 1.84574 -604030224 3.33971 -604030232 3.91455 -604030240 1.80197 -604029984 1.77732 -604029992 2.68387 -604030000 1.43896 -604030008 0.590523 -604030016 3.15329 -604030024 2.06223 -604050440 1.77854 -604050512 1.81196 -604050520 2.43735 -604050528 2.34613 -604050536 1.91888 -604050544 1.6314 -604050552 -0.09012 -604050560 -0.569445 -604050568 1.14178 -604050576 2.32897 -604050584 2.1494 -604050448 2.25335 -604050592 2.9518 -604050600 1.63476 -604050608 3.24563 -604050616 3.0436 -604050624 2.19357 -604050632 1.90989 -604050640 2.49308 -604050648 2.97977 -604050656 3.22413 -604050664 3.77249 -604050456 2.06896 -604050672 0.536637 -604050680 2.3531 -604050688 1.62644 -604050696 2.48378 -604050704 1.75731 -604050712 3.1318 -604050720 4.28085 -604050464 1.82843 -604050472 1.34301 -604050480 1.29198 -604050488 2.1524 -604050496 2.51966 -604050504 3.82349 -604050952 2.13727 -604051024 2.45569 -604051032 3.39008 -604051040 1.10914 -604051048 1.90291 -604051056 3.71474 -604051064 1.23615 -604051072 3.24734 -604051080 3.15173 -604051088 3.04892 -604051096 3.75315 -604050960 5.46297 -604051104 1.96184 -604051112 1.0999 -604051120 2.21553 -604051128 3.17752 -604051136 3.85967 -604051144 0.570779 -604051152 2.63558 -604051160 2.13718 -604051168 2.17491 -604051176 1.69955 -604050968 2.51432 -604051184 0.934878 -604051192 2.45028 -604051200 2.56857 -604051208 2.64108 -604051216 1.55604 -604051224 2.71766 -604051232 3.24476 -604050976 2.32059 -604050984 1.21757 -604050992 2.11634 -604051000 2.7272 -604051008 2.22132 -604051016 0.923446 -604051464 4.10345 -604051536 2.91343 -604051544 2.32148 -604051552 2.07458 -604051560 2.60435 -604051568 4.19221 -604051576 3.8109 -604051584 3.29898 -604051592 3.41096 -604051600 1.58226 -604051608 2.97562 -604051472 2.18041 -604051616 2.3157 -604051624 3.36334 -604051632 2.09736 -604051640 2.03118 -604051648 3.1033 -604051656 3.70557 -604051664 1.64116 -604051672 1.68481 -604051680 1.08655 -604051688 2.42974 -604051480 1.45707 -604051696 4.40897 -604051704 3.24494 -604051712 2.95879 -604051720 1.35576 -604051728 2.5251 -604051736 2.97639 -604051744 0.685691 -604051488 2.57585 -604051496 3.34106 -604051504 4.33363 -604051512 2.54704 -604051520 4.19062 -604051528 2.26319 -604054024 0.827515 -604054096 1.76304 -604054104 2.94733 -604054112 2.49879 -604054120 2.37119 -604054128 1.22621 -604054136 2.46175 -604054144 2.38522 -604054152 2.8182 -604054160 0.770496 -604054032 1.6556 -604054040 2.61173 -604054048 1.00627 -604054056 1.74014 -604054064 2.99668 -604054072 2.75159 -604054080 3.00399 -604054088 1.53138 -604054536 2.76046 -604054608 2.64539 -604054616 2.96397 -604054624 1.68617 -604054632 3.54186 -604054640 2.97525 -604054648 3.67945 -604054656 3.19217 -604054664 2.45864 -604054672 2.45797 -604054680 2.38232 -604054544 2.79776 -604054688 2.10778 -604054696 1.21832 -604054704 3.46042 -604054712 3.64181 -604054720 1.97601 -604054728 2.87933 -604054736 1.72722 -604054744 0.46691 -604054752 2.28025 -604054760 5.49371 -604054552 2.42273 -604054768 4.14478 -604054776 1.91433 -604054784 3.37261 -604054792 1.90299 -604054800 0.833405 -604054808 1.78267 -604054816 2.28209 -604054560 2.25767 -604054568 1.98761 -604054576 2.57353 -604054584 2.71307 -604054592 3.72923 -604054600 2.95455 -604058120 2.65223 -604058192 0.555761 -604058200 1.95522 -604058208 0.516024 -604058216 -0.145868 -604058224 4.01197 -604058232 1.33103 -604058240 1.39696 -604058248 1.76018 -604058256 2.08263 -604058128 2.56633 -604058136 2.6099 -604058144 3.34117 -604058152 1.85606 -604058160 1.59694 -604058168 3.32004 -604058176 1.23301 -604058184 3.90189 -604058632 3.00247 -604058704 1.7349 -604058712 3.20592 -604058720 3.98986 -604058728 1.19036 -604058736 3.39278 -604058744 1.46878 -604058752 -0.00393421 -604058760 1.31965 -604058768 3.2371 -604058776 2.28871 -604058640 2.46089 -604058784 2.08505 -604058792 2.39657 -604058800 3.05317 -604058808 1.83619 -604058816 2.3348 -604058824 1.75781 -604058832 1.67144 -604058840 3.67116 -604058848 1.8047 -604058856 1.94308 -604058648 3.18522 -604058864 2.86966 -604058872 3.96248 -604058880 1.45241 -604058888 4.76648 -604058896 2.21639 -604058904 2.88115 -604058912 0.632078 -604058656 2.2048 -604058664 2.03014 -604058672 2.654 -604058680 1.19852 -604058688 2.59821 -604058696 1.61578 -604062216 3.43987 -604062288 1.62933 -604062296 3.91364 -604062304 1.40196 -604062312 2.40485 -604062320 3.43573 -604062328 2.11308 -604062336 3.81388 -604062344 1.46341 -604062352 1.7554 -604062224 1.32159 -604062232 1.78612 -604062240 1.13668 -604062248 2.18276 -604062256 1.6271 -604062264 2.31982 -604062272 4.20088 -604062280 2.47026 -604062728 0.732653 -604062800 2.86122 -604062808 2.07839 -604062816 2.76152 -604062824 2.24604 -604062832 2.06382 -604062840 3.67834 -604062848 0.640519 -604062856 3.24762 -604062864 1.00324 -604062872 1.62168 -604062736 3.85504 -604062880 2.93482 -604062888 1.99362 -604062896 3.54868 -604062904 0.351049 -604062912 0.501146 -604062920 3.11214 -604062928 2.30813 -604062936 2.68453 -604062944 2.22735 -604062952 5.13231 -604062744 2.12739 -604062960 5.14618 -604062968 2.04973 -604062976 0.0771425 -604062984 1.45535 -604062992 4.6677 -604063000 0.27169 -604063008 1.56821 -604062752 1.47326 -604062760 1.83933 -604062768 2.84993 -604062776 2.23832 -604062784 2.54982 -604062792 1.85964 diff --git a/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorECAL.h b/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorECAL.h deleted file mode 100644 index e66d6f38de410..0000000000000 --- a/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorECAL.h +++ /dev/null @@ -1,69 +0,0 @@ -// system include files -#include -#include -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/DetId/interface/DetId.h" -#include "DataFormats/GeometryVector/interface/GlobalPoint.h" -#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" - -#include "Geometry/CaloEventSetup/interface/CaloTopologyRecord.h" -#include "Geometry/CaloGeometry/interface/CaloGeometry.h" -#include "Geometry/CaloTopology/interface/CaloTopology.h" - -#include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h" -#include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h" -#include "TrackingTools/TrackAssociator/interface/DetIdAssociator.h" -#include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" - -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCPCaloInfo.h" - -class BetaCalculatorECAL { -public: - BetaCalculatorECAL(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC); - void addInfoToCandidate(susybsm::HSCParticle& candidate, - edm::Handle& tracks, - edm::Event& iEvent, - const edm::EventSetup& iSetup, - susybsm::HSCPCaloInfo& caloInfo); - -private: - int getDetailedTrackLengthInXtals(std::map& trackExitPositionMap, - std::map& trackCrossedXtalMap, - double& totalLengthCurved, - GlobalPoint& internalPointCurved, - GlobalPoint& externalPointCurved, - const CaloGeometry* theGeometry, - const CaloTopology* theTopology, - const std::vector& neckLace); - std::vector calcEcalDeposit(const FreeTrajectoryState* tkInnerState, - const DetIdAssociator& associator); - void addStepToXtal(std::map& trackExitPositionMap, - std::map& trackCrossedXtalMap, - DetId aDetId, - float step, - GlobalPoint point, - const CaloSubdetectorGeometry* theSubdetGeometry); - - // Data members - TrackDetectorAssociator trackAssociator_; - TrackAssociatorParameters parameters_; - edm::EDGetTokenT EBRecHitCollectionToken_; - edm::EDGetTokenT EERecHitCollectionToken_; - - edm::ESGetToken ecalDetIdAssociatorToken_; - edm::ESGetToken bFieldToken_; - edm::ESGetToken theCaloGeometryToken_; - edm::ESGetToken caloTopologyToken_; - const MagneticField* bField_; -}; diff --git a/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorMUON.h b/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorMUON.h deleted file mode 100644 index 21d04f43af3a4..0000000000000 --- a/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorMUON.h +++ /dev/null @@ -1,30 +0,0 @@ -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "DataFormats/MuonReco/interface/MuonTimeExtra.h" -#include "DataFormats/MuonReco/interface/MuonTimeExtraMap.h" - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" - -class BetaCalculatorMUON { -public: - BetaCalculatorMUON(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC); - void addInfoToCandidate(susybsm::HSCParticle& candidate, edm::Event& iEvent, const edm::EventSetup& iSetup); - - edm::EDGetTokenT m_muontiming_dt; - edm::EDGetTokenT m_muontiming_csc; - edm::EDGetTokenT m_muontiming_combined; -}; diff --git a/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorRPC.h b/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorRPC.h deleted file mode 100644 index 4476bb443fac1..0000000000000 --- a/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorRPC.h +++ /dev/null @@ -1,47 +0,0 @@ -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" - -class BetaCalculatorRPC { -public: - BetaCalculatorRPC(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC); - void algo(const std::vector& HSCPRPCRecHits); - void addInfoToCandidate(susybsm::HSCParticle& candidate, const edm::Event& iEvent, const edm::EventSetup& iSetup); - float beta() { return betavalue; } - -private: - bool foundvalue; - float phivalue; - float etavalue; - float betavalue; - - float etarange(float eta1, float eta2, float eta3); - float dist(float phi1, float phi2); - float dist3(float phi1, float phi2, float phi3); - - edm::EDGetTokenT rpcRecHitsToken; -}; diff --git a/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorTK.h b/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorTK.h deleted file mode 100644 index de23cc597c1de..0000000000000 --- a/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorTK.h +++ /dev/null @@ -1,38 +0,0 @@ -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "DataFormats/TrackReco/interface/DeDxData.h" - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" - -class BetaCalculatorTK { -public: - BetaCalculatorTK(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC); - void addInfoToCandidate(susybsm::HSCParticle& candidate, edm::Event& iEvent, const edm::EventSetup& iSetup); - - edm::EDGetTokenT m_dedxEstimator1Token; - edm::EDGetTokenT m_dedxEstimator2Token; - edm::EDGetTokenT m_dedxEstimator3Token; - edm::EDGetTokenT m_dedxEstimator4Token; - edm::EDGetTokenT m_dedxEstimator5Token; - edm::EDGetTokenT m_dedxEstimator6Token; - edm::EDGetTokenT m_dedxDiscriminator1Token; - edm::EDGetTokenT m_dedxDiscriminator2Token; - edm::EDGetTokenT m_dedxDiscriminator3Token; - edm::EDGetTokenT m_dedxDiscriminator4Token; - edm::EDGetTokenT m_dedxDiscriminator5Token; - edm::EDGetTokenT m_dedxDiscriminator6Token; -}; diff --git a/SUSYBSMAnalysis/HSCP/interface/CandidateSelector.h b/SUSYBSMAnalysis/HSCP/interface/CandidateSelector.h deleted file mode 100644 index 1826b031159b7..0000000000000 --- a/SUSYBSMAnalysis/HSCP/interface/CandidateSelector.h +++ /dev/null @@ -1,51 +0,0 @@ -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" - -class CandidateSelector { -public: - CandidateSelector(const edm::ParameterSet& iConfig); - bool isSelected(susybsm::HSCParticle& candidate); - - bool isTrack; - bool isMuon; - bool isMuonSTA; - bool isMuonGB; - bool isMuonTK; - bool isMTMuon; - bool isRpc; - bool isEcal; - - int minTrackHits; - float minTrackP; - float minTrackPt; - float minDedx; - - float minMuonP; - float minMuonPt; - float minSAMuonPt; - float minMTMuonPt; - - float maxMuTimeDtBeta; - float minMuTimeDtNdof; - float maxMuTimeCscBeta; - float minMuTimeCscNdof; - float maxMuTimeCombinedBeta; - float minMuTimeCombinedNdof; - - float maxBetaRpc; - float maxBetaEcal; -}; diff --git a/SUSYBSMAnalysis/HSCP/plugins/BuildFile.xml b/SUSYBSMAnalysis/HSCP/plugins/BuildFile.xml deleted file mode 100644 index 2ac621e976d65..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/BuildFile.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/SUSYBSMAnalysis/HSCP/plugins/HSCPDeDxInfoProducer.cc b/SUSYBSMAnalysis/HSCP/plugins/HSCPDeDxInfoProducer.cc deleted file mode 100644 index bf5618ebea598..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/HSCPDeDxInfoProducer.cc +++ /dev/null @@ -1,217 +0,0 @@ -// -*- C++ -*- -// -// Package: HSCPDeDxInfoProducer -// Class: HSCPDeDxInfoProducer -// -/**\class HSCPDeDxInfoProducer HSCPDeDxInfoProducer.cc RecoTracker/HSCPDeDxInfoProducer/src/HSCPDeDxInfoProducer.cc - - Description: - - Implementation: - -*/ -// -// Original Author: andrea -// Created: Thu May 31 14:09:02 CEST 2007 -// Code Updates: loic Quertenmont (querten) -// Created: Thu May 10 14:09:02 CEST 2008 -// -// - -#include "SUSYBSMAnalysis/HSCP/plugins/HSCPDeDxInfoProducer.h" - -// system include files - -using namespace reco; -using namespace std; -using namespace edm; - -HSCPDeDxInfoProducer::HSCPDeDxInfoProducer(const edm::ParameterSet& iConfig) { - produces >(); - - MaxNrStrips = iConfig.getUntrackedParameter("maxNrStrips", 255); - MinTrackHits = iConfig.getUntrackedParameter("MinTrackHits", 4); - MinTrackMomentum = iConfig.getUntrackedParameter("minTrackMomentum", 0.0); - MaxTrackMomentum = iConfig.getUntrackedParameter("maxTrackMomentum", 99999.0); - MinTrackEta = iConfig.getUntrackedParameter("minTrackEta", -5.0); - MaxTrackEta = iConfig.getUntrackedParameter("maxTrackEta", 5.0); - - m_tracksTag = consumes(iConfig.getParameter("tracks")); - m_trajTrackAssociationTag = - consumes(iConfig.getParameter("trajectoryTrackAssociation")); - useTrajectory = iConfig.getUntrackedParameter("UseTrajectory", true); - - usePixel = iConfig.getParameter("UsePixel"); - useStrip = iConfig.getParameter("UseStrip"); - meVperADCPixel = iConfig.getParameter("MeVperADCPixel"); - meVperADCStrip = iConfig.getParameter("MeVperADCStrip"); - - shapetest = iConfig.getParameter("ShapeTest"); - useCalibration = iConfig.getParameter("UseCalibration"); - m_calibrationPath = iConfig.getParameter("calibrationPath"); - - // Reccord = iConfig.getUntrackedParameter ("Reccord" , "SiStripDeDxMip_3D_Rcd"); - // ProbabilityMode = iConfig.getUntrackedParameter ("ProbabilityMode" , "Accumulation"); - // Prob_ChargePath = NULL; - - if (!usePixel && !useStrip) - edm::LogWarning("DeDxHitsProducer") - << "Pixel Hits AND Strip Hits will not be used to estimate dEdx --> BUG, Please Update the config file"; -} - -HSCPDeDxInfoProducer::~HSCPDeDxInfoProducer() {} - -// ------------ method called once each job just before starting event loop ------------ -void HSCPDeDxInfoProducer::beginRun(edm::Run const& run, const edm::EventSetup& iSetup) { - if (useCalibration && calibGains.empty()) { - edm::ESHandle tkGeom; - iSetup.get().get(tkGeom); - m_off = tkGeom->offsetDU(GeomDetEnumerators::PixelBarrel); //index start at the first pixel - - DeDxTools::makeCalibrationMap(m_calibrationPath, *tkGeom, calibGains, m_off); - } - - // DeDxTools::buildDiscrimMap(run, iSetup, Reccord, ProbabilityMode, Prob_ChargePath); -} - -void HSCPDeDxInfoProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - unique_ptr > trackDeDxAssociation(new ValueMap); - ValueMap::Filler filler(*trackDeDxAssociation); - - edm::Handle trackCollectionHandle; - iEvent.getByToken(m_tracksTag, trackCollectionHandle); - - Handle trajTrackAssociationHandle; - if (useTrajectory) - iEvent.getByToken(m_trajTrackAssociationTag, trajTrackAssociationHandle); - - std::vector dEdxInfos(trackCollectionHandle->size()); - - TrajTrackAssociationCollection::const_iterator cit; - if (useTrajectory) - cit = trajTrackAssociationHandle->begin(); - for (unsigned int j = 0; j < trackCollectionHandle->size(); j++) { - const reco::TrackRef track = reco::TrackRef(trackCollectionHandle.product(), j); - - susybsm::HSCPDeDxInfo hscpDeDxInfo; - - if (useTrajectory) { //trajectory allows to take into account the local direction of the particle on the module sensor --> muc much better 'dx' measurement - const edm::Ref > traj = cit->key; - cit++; - const vector& measurements = traj->measurements(); - for (vector::const_iterator it = measurements.begin(); it != measurements.end(); it++) { - TrajectoryStateOnSurface trajState = it->updatedState(); - if (!trajState.isValid()) - continue; - - const TrackingRecHit* recHit = (*it->recHit()).hit(); - if (!recHit) - continue; - LocalVector trackDirection = trajState.localDirection(); - float cosine = trackDirection.z() / trackDirection.mag(); - - processHit(recHit, trajState.localMomentum().mag(), cosine, hscpDeDxInfo, trajState.localPosition()); - } - - } else { //assume that the particles trajectory is a straight line originating from the center of the detector (can be improved) - for (unsigned int h = 0; h < track->recHitsSize(); h++) { - const TrackingRecHit* recHit = &(*(track->recHit(h))); - auto const& thit = static_cast(*recHit); - if (!thit.isValid()) - continue; //make sure it's a tracker hit - - const GlobalVector& ModuleNormal = recHit->detUnit()->surface().normalVector(); - float cosine = - (track->px() * ModuleNormal.x() + track->py() * ModuleNormal.y() + track->pz() * ModuleNormal.z()) / - track->p(); - - processHit(recHit, track->p(), cosine, hscpDeDxInfo, LocalPoint(0.0, 0.0)); - } - } - - dEdxInfos[j] = hscpDeDxInfo; - } - /////////////////////////////////////// - - filler.insert(trackCollectionHandle, dEdxInfos.begin(), dEdxInfos.end()); - filler.fill(); - iEvent.put(std::move(trackDeDxAssociation)); -} - -void HSCPDeDxInfoProducer::processHit(const TrackingRecHit* recHit, - float trackMomentum, - float& cosine, - susybsm::HSCPDeDxInfo& hscpDeDxInfo, - LocalPoint HitLocalPos) { - auto const& thit = static_cast(*recHit); - if (!thit.isValid()) - return; - - auto const& clus = thit.firstClusterRef(); - if (!clus.isValid()) - return; - - if (clus.isPixel()) { - if (!usePixel) - return; - - auto& detUnit = *(recHit->detUnit()); - float pathLen = detUnit.surface().bounds().thickness() / fabs(cosine); - float chargeAbs = clus.pixelCluster().charge(); - hscpDeDxInfo.charges.push_back(chargeAbs); - hscpDeDxInfo.pathlengths.push_back(pathLen); - hscpDeDxInfo.detIds.push_back(thit.geographicalId()); - hscpDeDxInfo.localPosXs.push_back(HitLocalPos.x()); - hscpDeDxInfo.localPosYs.push_back(HitLocalPos.y()); - hscpDeDxInfo.clusterIndices.push_back(clus.key()); - } else if (clus.isStrip() && !thit.isMatched()) { - if (!useStrip) - return; - - auto& detUnit = *(recHit->detUnit()); - int NSaturating = 0; - float pathLen = detUnit.surface().bounds().thickness() / fabs(cosine); - float chargeAbs = DeDxTools::getCharge(&(clus.stripCluster()), NSaturating, detUnit, calibGains, m_off); - hscpDeDxInfo.charges.push_back(chargeAbs); - hscpDeDxInfo.pathlengths.push_back(pathLen); - hscpDeDxInfo.detIds.push_back(thit.geographicalId()); - hscpDeDxInfo.localPosXs.push_back(HitLocalPos.x()); - hscpDeDxInfo.localPosYs.push_back(HitLocalPos.y()); - hscpDeDxInfo.clusterIndices.push_back(clus.key()); - } else if (clus.isStrip() && thit.isMatched()) { - if (!useStrip) - return; - const SiStripMatchedRecHit2D* matchedHit = dynamic_cast(recHit); - if (!matchedHit) - return; - - auto& detUnitM = *(matchedHit->monoHit().detUnit()); - int NSaturating = 0; - float pathLen = detUnitM.surface().bounds().thickness() / fabs(cosine); - float chargeAbs = - DeDxTools::getCharge(&(matchedHit->monoHit().stripCluster()), NSaturating, detUnitM, calibGains, m_off); - hscpDeDxInfo.charges.push_back(chargeAbs); - hscpDeDxInfo.pathlengths.push_back(pathLen); - hscpDeDxInfo.detIds.push_back(thit.geographicalId()); - hscpDeDxInfo.localPosXs.push_back(HitLocalPos.x()); - hscpDeDxInfo.localPosYs.push_back(HitLocalPos.y()); - const OmniClusterRef monoClusterRef = matchedHit->monoClusterRef(); - hscpDeDxInfo.clusterIndices.push_back(monoClusterRef.key()); - - auto& detUnitS = *(matchedHit->stereoHit().detUnit()); - NSaturating = 0; - pathLen = detUnitS.surface().bounds().thickness() / fabs(cosine); - chargeAbs = - DeDxTools::getCharge(&(matchedHit->stereoHit().stripCluster()), NSaturating, detUnitS, calibGains, m_off); - hscpDeDxInfo.charges.push_back(chargeAbs); - hscpDeDxInfo.pathlengths.push_back(pathLen); - hscpDeDxInfo.detIds.push_back(thit.geographicalId()); - hscpDeDxInfo.localPosXs.push_back(HitLocalPos.x()); - hscpDeDxInfo.localPosYs.push_back(HitLocalPos.y()); - const OmniClusterRef stereoClusterRef = matchedHit->stereoClusterRef(); - hscpDeDxInfo.clusterIndices.push_back(stereoClusterRef.key()); - } -} - -//define this as a plug-in -DEFINE_FWK_MODULE(HSCPDeDxInfoProducer); diff --git a/SUSYBSMAnalysis/HSCP/plugins/HSCPDeDxInfoProducer.h b/SUSYBSMAnalysis/HSCP/plugins/HSCPDeDxInfoProducer.h deleted file mode 100644 index 3da1232bac5b8..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/HSCPDeDxInfoProducer.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef TrackRecoDeDx_HSCPDeDxInfoProducer_H -#define TrackRecoDeDx_HSCPDeDxInfoProducer_H -// user include files - -#include - -#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/Framework/interface/ESHandle.h" - -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h" -#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" - -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/TrackReco/interface/DeDxData.h" -#include "DataFormats/TrackReco/interface/TrackDeDxHits.h" -#include "DataFormats/TrackReco/interface/DeDxHit.h" -#include "DataFormats/TrackReco/interface/Track.h" - -#include "RecoTracker/DeDx/interface/DeDxTools.h" -#include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCPDeDxInfo.h" - -// -// class declaration -// - -class HSCPDeDxInfoProducer : public edm::stream::EDProducer<> { -public: - explicit HSCPDeDxInfoProducer(const edm::ParameterSet&); - ~HSCPDeDxInfoProducer() override; - -private: - void beginRun(edm::Run const& run, const edm::EventSetup&) override; - void produce(edm::Event&, const edm::EventSetup&) override; - - void makeCalibrationMap(const TrackerGeometry& tkGeom); - void processHit(const TrackingRecHit* recHit, - float trackMomentum, - float& cosine, - susybsm::HSCPDeDxInfo& hscpDeDxInfo, - LocalPoint HitLocalPos); - - // ----------member data --------------------------- - - edm::EDGetTokenT m_trajTrackAssociationTag; - edm::EDGetTokenT m_tracksTag; - - bool useTrajectory; - bool usePixel; - bool useStrip; - float meVperADCPixel; - float meVperADCStrip; - - unsigned int MaxNrStrips; - unsigned int MinTrackHits; - float MinTrackMomentum; - float MaxTrackMomentum; - float MinTrackEta; - float MaxTrackEta; - float MaxTrackChiOverNdf; - - std::string m_calibrationPath; - bool useCalibration; - bool shapetest; - - std::vector > calibGains; - unsigned int m_off; - - std::string Reccord; - std::string ProbabilityMode; - TH3F* Prob_ChargePath; -}; - -#endif diff --git a/SUSYBSMAnalysis/HSCP/plugins/HSCPHLTFilter.cc b/SUSYBSMAnalysis/HSCP/plugins/HSCPHLTFilter.cc deleted file mode 100644 index 0ab06761be06e..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/HSCPHLTFilter.cc +++ /dev/null @@ -1,435 +0,0 @@ -#include -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Framework/interface/Event.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/View.h" - -#include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h" - -#include "FWCore/Common/interface/TriggerResultsByName.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" - -// -// class declaration -// - -using namespace edm; - -class HSCPHLTFilter : public edm::EDFilter { -public: - explicit HSCPHLTFilter(const edm::ParameterSet&); - ~HSCPHLTFilter() override; - -private: - void beginJob() override; - bool filter(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - bool isDuplicate(unsigned int Run, unsigned int Event); - - bool IncreasedTreshold(const trigger::TriggerEvent& trEv, - const edm::InputTag& InputPath, - double NewThreshold, - double etaCut, - int NObjectAboveThreshold, - bool averageThreshold); - - std::string TriggerProcess; - edm::EDGetTokenT triggerResultsToken_; - edm::EDGetTokenT trEvToken; - std::map DuplicateMap; - - unsigned int CountEvent; - unsigned int MaxPrint; - bool RemoveDuplicates; - int MuonTrigger1Mask; - int MuonTrigger2Mask; - int PFMetTriggerMask; - int CaloMetTriggerMask; - int L2MuMETTriggerMask; -}; - -///////////////////////////////////////////////////////////////////////////////////// -HSCPHLTFilter::HSCPHLTFilter(const edm::ParameterSet& iConfig) { - RemoveDuplicates = iConfig.getParameter("RemoveDuplicates"); - - TriggerProcess = iConfig.getParameter("TriggerProcess"); - triggerResultsToken_ = consumes(edm::InputTag("TriggerResults", "", TriggerProcess)); - - trEvToken = consumes(edm::InputTag("hltTriggerSummaryAOD")); - MuonTrigger1Mask = iConfig.getParameter("MuonTrigger1Mask"); - PFMetTriggerMask = iConfig.getParameter("PFMetTriggerMask"); - L2MuMETTriggerMask = iConfig.getParameter("L2MuMETTriggerMask"); - - CountEvent = 0; - MaxPrint = 10000; -} - -///////////////////////////////////////////////////////////////////////////////////// -HSCPHLTFilter::~HSCPHLTFilter() {} - -///////////////////////////////////////////////////////////////////////////////////// -void HSCPHLTFilter::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void HSCPHLTFilter::endJob() {} - -bool HSCPHLTFilter::isDuplicate(unsigned int Run, unsigned int Event) { - char tmp[255]; - sprintf(tmp, "%i_%i", Run, Event); - std::map::iterator it = DuplicateMap.find(std::string(tmp)); - if (it == DuplicateMap.end()) { - DuplicateMap[std::string(tmp)] = true; - return false; - } - return true; -} - -///////////////////////////////////////////////////////////////////////////////////// -bool HSCPHLTFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) { - edm::Handle triggerResults; - iEvent.getByToken(triggerResultsToken_, triggerResults); - - edm::TriggerResultsByName tr(nullptr, nullptr); - if (triggerResults.isValid()) { - tr = iEvent.triggerResultsByName(*triggerResults); - } - if (!tr.isValid()) { - printf("NoValidTrigger\n"); - } - - if (RemoveDuplicates) { - if (isDuplicate(iEvent.eventAuxiliary().run(), iEvent.eventAuxiliary().event())) - return false; - else - return true; - } - - //for(unsigned int i=0;i %1i\n",i, tr.triggerName(i).c_str(),tr.accept(i)); - //}fflush(stdout); - - edm::Handle trEvHandle; - iEvent.getByToken(trEvToken, trEvHandle); - trigger::TriggerEvent trEv = *trEvHandle; - - CountEvent++; - //if(CountEvent HLT_Mu30_v1 not found\n"); - for (unsigned int i = 0; i < tr.size(); i++) { - printf("Path %3i %50s --> %1i\n", i, tr.triggerName(i).c_str(), tr.accept(i)); - } - fflush(stdout); - exit(0); - } - } - } - } - } - } - } - } - } - } - } - } - - // HLT TRIGGER BASED ON PF MET! - //Only look for trigger if we are making a decision based on it - if (PFMetTriggerMask != 0) { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v17")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v17"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v16")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v16"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v12")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v12"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v11")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v11"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v10")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v10"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v9")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v9"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v8")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v8"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v7")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v7"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v6")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v6"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v5")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v5"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v4")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v4"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v3")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v3"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v2")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v2"))) { - PFMetTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v1")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v1"))) { - PFMetTrigger = true; - } - } else { - printf("HSCPHLTFilter --> HLT_PFMHT150_v2 or v1 not found\n"); - for (unsigned int i = 0; i < tr.size(); i++) { - printf("Path %3i %50s --> %1i\n", i, tr.triggerName(i).c_str(), tr.accept(i)); - } - fflush(stdout); - exit(0); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - - // HLT TRIGGER BASED ON L2Mu + MET! - //Only look for trigger if we are making a decision based on it - if (L2MuMETTriggerMask != 0) { - //Early 2011 running had a L2Mu60_1Hit_MET40 which was prescaled away, need to raise threshold - - if (TrIndex_Unknown != tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v6")) { - if (tr.accept(tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v6"))) { - L2MuMETTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v5")) { - if (tr.accept(tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v5"))) { - L2MuMETTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v4")) { - if (tr.accept(tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v4"))) { - L2MuMETTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v3")) { - if (tr.accept(tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v3"))) { - L2MuMETTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v2")) { - if (tr.accept(tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v2"))) { - L2MuMETTrigger = true; - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v1")) { - if (tr.accept(tr.triggerIndex("HLT_L2Mu60_1Hit_MET60_v1"))) { - L2MuMETTrigger = true; - } - } - } - } - } - } - } - - if (L2MuMETTriggerMask == 2) { - //Special case for background MC in 2011 as it does not have trigger included in menu. Background MC only used as cross check - //so make approximation of trigger to collect similar events for checks - if (IncreasedTreshold(trEv, InputTag("hltL2Mu20L2Filtered20", "", TriggerProcess), 60, 2.1, 1, false) && - IncreasedTreshold(trEv, InputTag("hltMET80", "", TriggerProcess), 80, 2.1, 1, false)) { - L2MuMETTrigger = true; - } - } - } - - //printf("Bits = %1i %1i %1i X Mask = %+2i %+2i %+2i -->",MuonTrigger,CaloMetTrigger,CaloMetTrigger,MuonTriggerMask,CaloMetTriggerMask,CaloMetTriggerMask); - - if (MuonTrigger1Mask == 0) - MuonTrigger1 = false; - if (PFMetTriggerMask == 0) - PFMetTrigger = false; - if (L2MuMETTriggerMask == 0) - L2MuMETTrigger = false; - - //Allow option of requiring that one of the triggers did NOT fire to remove duplicated events - if (MuonTrigger1Mask < 0 && MuonTrigger1) - return false; - if (PFMetTriggerMask < 0 && PFMetTrigger) - return false; - if (L2MuMETTriggerMask < 0 && L2MuMETTrigger) - return false; - - bool d = (MuonTrigger1 | PFMetTrigger | L2MuMETTrigger); - /* printf("%i\n",d);*/ return d; -} - -bool HSCPHLTFilter::IncreasedTreshold(const trigger::TriggerEvent& trEv, - const edm::InputTag& InputPath, - double NewThreshold, - double etaCut, - int NObjectAboveThreshold, - bool averageThreshold) { - unsigned int filterIndex = trEv.filterIndex(InputPath); - //if(filterIndex %s XXX %s\n",filterIndex,trEv.filterTag(filterIndex).label().c_str(), trEv.filterTag(filterIndex).process().c_str()); - - if (filterIndex < trEv.sizeFilters()) { - const trigger::Vids& VIDS(trEv.filterIds(filterIndex)); - const trigger::Keys& KEYS(trEv.filterKeys(filterIndex)); - const int nI(VIDS.size()); - const int nK(KEYS.size()); - assert(nI == nK); - const int n(std::max(nI, nK)); - const trigger::TriggerObjectCollection& TOC(trEv.getObjects()); - - if (!averageThreshold) { - int NObjectAboveThresholdObserved = 0; - for (int i = 0; i != n; ++i) { - if (TOC[KEYS[i]].pt() > NewThreshold && fabs(TOC[KEYS[i]].eta()) < etaCut) - NObjectAboveThresholdObserved++; - //cout << " " << i << " " << VIDS[i] << "/" << KEYS[i] << ": "<< TOC[KEYS[i]].id() << " " << TOC[KEYS[i]].pt() << " " << TOC[KEYS[i]].eta() << " " << TOC[KEYS[i]].phi() << " " << TOC[KEYS[i]].mass()<< endl; - } - if (NObjectAboveThresholdObserved >= NObjectAboveThreshold) - return true; - - } else { - std::vector ObjPt; - - for (int i = 0; i != n; ++i) { - ObjPt.push_back(TOC[KEYS[i]].pt()); - //cout << " " << i << " " << VIDS[i] << "/" << KEYS[i] << ": "<< TOC[KEYS[i]].id() << " " << TOC[KEYS[i]].pt() << " " << TOC[KEYS[i]].eta() << " " << TOC[KEYS[i]].phi() << " " << TOC[KEYS[i]].mass()<< endl; - } - if ((int)(ObjPt.size()) < NObjectAboveThreshold) - return false; - std::sort(ObjPt.begin(), ObjPt.end()); - - double Average = 0; - for (int i = 0; i < NObjectAboveThreshold; i++) { - Average += ObjPt[ObjPt.size() - 1 - i]; - } - Average /= NObjectAboveThreshold; - //cout << "AVERAGE = " << Average << endl; - - if (Average > NewThreshold) - return true; - } - } - return false; -} - -DEFINE_FWK_MODULE(HSCPHLTFilter); diff --git a/SUSYBSMAnalysis/HSCP/plugins/HSCPTreeBuilder.cc b/SUSYBSMAnalysis/HSCP/plugins/HSCPTreeBuilder.cc deleted file mode 100644 index 2f56bac53c9fb..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/HSCPTreeBuilder.cc +++ /dev/null @@ -1,623 +0,0 @@ -// -*- C++ -*- -// -// Package: HSCPTreeBuilder -// Class: HSCPTreeBuilder -// -/**\class HSCPTreeBuilder HSCPTreeBuilder.cc SUSYBSMAnalysis/HSCP/src/HSCPTreeBuilder.cc - - Description: - - Implementation: - -*/ -// -// Original Author: Loic QUERTENMONT -// Created: Thu Mar 11 12:19:07 CEST 2010 -// - -#include -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.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 "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/Exception.h" - -#include "DataFormats/TrackReco/interface/DeDxData.h" - -#include -#include - -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include "Geometry/CommonDetUnit/interface/GeomDetType.h" -#include "Geometry/CommonTopologies/interface/StripTopology.h" -#include "DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h" -#include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h" - -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h" -#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" -#include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" -#include "Geometry/CommonDetUnit/interface/TrackingGeometry.h" - -#include "DataFormats/SiStripCluster/interface/SiStripClusterCollection.h" - -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h" -#include "DataFormats/DetId/interface/DetId.h" -#include "DataFormats/SiStripDetId/interface/StripSubdetector.h" - -#include "TrackingTools/PatternTools/interface/Trajectory.h" -#include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" - -#include "DataFormats/TrackReco/interface/TrackFwd.h" - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/Common/interface/TriggerResults.h" -#include "FWCore/Common/interface/TriggerNames.h" -#include "FWCore/Framework/interface/TriggerNamesService.h" - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" - -#include "CommonTools/UtilAlgos/interface/DeltaR.h" - -#include "CondFormats/DataRecord/interface/L1GtTriggerMaskTechTrigRcd.h" -#include "CondFormats/DataRecord/interface/L1GtTriggerMaskAlgoTrigRcd.h" -#include "CondFormats/L1TObjects/interface/L1GtTriggerMask.h" -#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h" - -#include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" - -#include "DataFormats/MuonReco/interface/MuonTimeExtra.h" -#include "DataFormats/MuonReco/interface/MuonTimeExtraMap.h" - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" - -#include "TFile.h" -#include "TObjString.h" -#include "TString.h" -#include "TH1F.h" -#include "TH2F.h" -#include "TProfile.h" -#include "TF1.h" -#include "TTree.h" -#include "TROOT.h" - -#include - -using namespace edm; -using namespace reco; -using namespace std; -using namespace __gnu_cxx; - -#define MAX_VERTICES 1000 -#define MAX_HSCPS 10000 -#define MAX_GENS 10000 -#define MAX_ECALCRYS 10 - -class HSCPTreeBuilder : public edm::EDFilter { -public: - explicit HSCPTreeBuilder(const edm::ParameterSet&); - ~HSCPTreeBuilder() override; - -private: - void beginJob() override; - bool filter(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - int ClosestMuonIndex(reco::TrackRef track, std::vector); - - const edm::EventSetup* iSetup_; - const edm::Event* iEvent_; - - edm::Service tfs; - - EDGetTokenT m_gtReadoutRecordToken; - EDGetTokenT m_trToken; - EDGetTokenT m_recoVertexToken; - EDGetTokenT m_genParticlesToken; - EDGetTokenT m_HSCPsToken; - bool reccordVertexInfo; - bool reccordGenInfo; - - TTree* MyTree; - bool Event_triggerL1Bits[192]; - bool Event_triggerHLTBits[128]; - bool Event_technicalBits[64]; - unsigned int Event_EventNumber; - unsigned int Event_RunNumber; - unsigned int Event_LumiSection; - unsigned int Event_BXCrossing; - unsigned int Event_Orbit; - unsigned int Event_Store; - unsigned int Event_Time; - bool Event_PhysicsDeclared; - float Event_BField; - - unsigned int NVertices; - float Vertex_x[MAX_VERTICES]; - float Vertex_y[MAX_VERTICES]; - float Vertex_z[MAX_VERTICES]; - float Vertex_x_err[MAX_VERTICES]; - float Vertex_y_err[MAX_VERTICES]; - float Vertex_z_err[MAX_VERTICES]; - int Vertex_TrackSize[MAX_VERTICES]; - float Vertex_chi2[MAX_VERTICES]; - float Vertex_ndof[MAX_VERTICES]; - bool Vertex_isFake[MAX_VERTICES]; - - unsigned int NHSCPs; - bool Hscp_hasTrack[MAX_HSCPS]; - bool Hscp_hasMuon[MAX_HSCPS]; - bool Hscp_hasRpc[MAX_HSCPS]; - bool Hscp_hasCalo[MAX_HSCPS]; - int Hscp_type[MAX_HSCPS]; - unsigned int Track_NOH[MAX_HSCPS]; - float Track_p[MAX_HSCPS]; - float Track_pt[MAX_HSCPS]; - float Track_pt_err[MAX_HSCPS]; - float Track_chi2[MAX_HSCPS]; - unsigned int Track_ndof[MAX_HSCPS]; - float Track_eta[MAX_HSCPS]; - float Track_eta_err[MAX_HSCPS]; - float Track_phi[MAX_HSCPS]; - float Track_phi_err[MAX_HSCPS]; - float Track_dz[MAX_HSCPS]; - float Track_d0[MAX_HSCPS]; - int Track_quality[MAX_HSCPS]; - int Track_charge[MAX_HSCPS]; - float Track_dEdxE1[MAX_HSCPS]; - float Track_dEdxE1_NOS[MAX_HSCPS]; - unsigned int Track_dEdxE1_NOM[MAX_HSCPS]; - float Track_dEdxE2[MAX_HSCPS]; - float Track_dEdxE2_NOS[MAX_HSCPS]; - unsigned int Track_dEdxE2_NOM[MAX_HSCPS]; - float Track_dEdxE3[MAX_HSCPS]; - float Track_dEdxE3_NOS[MAX_HSCPS]; - unsigned int Track_dEdxE3_NOM[MAX_HSCPS]; - float Track_dEdxD1[MAX_HSCPS]; - float Track_dEdxD1_NOS[MAX_HSCPS]; - unsigned int Track_dEdxD1_NOM[MAX_HSCPS]; - float Track_dEdxD2[MAX_HSCPS]; - float Track_dEdxD2_NOS[MAX_HSCPS]; - unsigned int Track_dEdxD2_NOM[MAX_HSCPS]; - float Track_dEdxD3[MAX_HSCPS]; - float Track_dEdxD3_NOS[MAX_HSCPS]; - unsigned int Track_dEdxD3_NOM[MAX_HSCPS]; - float Muon_p[MAX_HSCPS]; - float Muon_pt[MAX_HSCPS]; - float Muon_eta[MAX_HSCPS]; - float Muon_phi[MAX_HSCPS]; - int Muon_type[MAX_HSCPS]; - bool Muon_qualityValid[MAX_HSCPS]; - int Muon_charge[MAX_HSCPS]; - float Muon_dt_IBeta[MAX_HSCPS]; - float Muon_dt_IBeta_err[MAX_HSCPS]; - float Muon_dt_fIBeta[MAX_HSCPS]; - float Muon_dt_fIBeta_err[MAX_HSCPS]; - int Muon_dt_ndof[MAX_HSCPS]; - float Muon_csc_IBeta[MAX_HSCPS]; - float Muon_csc_IBeta_err[MAX_HSCPS]; - float Muon_csc_fIBeta[MAX_HSCPS]; - float Muon_csc_fIBeta_err[MAX_HSCPS]; - int Muon_csc_ndof[MAX_HSCPS]; - float Muon_cb_IBeta[MAX_HSCPS]; - float Muon_cb_IBeta_err[MAX_HSCPS]; - float Muon_cb_fIBeta[MAX_HSCPS]; - float Muon_cb_fIBeta_err[MAX_HSCPS]; - int Muon_cb_ndof[MAX_HSCPS]; - float Rpc_beta[MAX_HSCPS]; - - float Calo_ecal_crossedE[MAX_HSCPS]; - float Calo_ecal_beta[MAX_HSCPS]; - float Calo_ecal_beta_err[MAX_HSCPS]; - float Calo_ecal_invBeta_err[MAX_HSCPS]; - float Calo_ecal_dEdx[MAX_HSCPS]; - float Calo_ecal_time[MAX_HSCPS]; - float Calo_ecal_time_err[MAX_HSCPS]; - int Calo_ecal_numCrysCrossed[MAX_HSCPS]; - float Calo_ecal_swissCrossKs[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_e1OverE9s[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_trackLengths[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_trackExitEtas[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_trackExitPhis[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_energies[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_outOfTimeEnergies[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_chi2s[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_outOfTimeChi2s[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_times[MAX_HSCPS][MAX_ECALCRYS]; - float Calo_ecal_timeErrors[MAX_HSCPS][MAX_ECALCRYS]; - unsigned int Calo_ecal_detIds[MAX_HSCPS][MAX_ECALCRYS]; - - unsigned int NGens; - int Gen_pdgId[MAX_GENS]; - float Gen_charge[MAX_GENS]; - float Gen_p[MAX_GENS]; - float Gen_px[MAX_GENS]; - float Gen_py[MAX_GENS]; - float Gen_pz[MAX_GENS]; - float Gen_pt[MAX_GENS]; - float Gen_eta[MAX_GENS]; - float Gen_phi[MAX_GENS]; - float Gen_beta[MAX_GENS]; - float Gen_mass[MAX_GENS]; -}; - -HSCPTreeBuilder::HSCPTreeBuilder(const edm::ParameterSet& iConfig) { - m_gtReadoutRecordToken = consumes(InputTag("gtDigis")); - m_trToken = consumes(InputTag("TriggerResults")); - m_recoVertexToken = consumes(InputTag("offlinePrimaryVertices")); - m_genParticlesToken = mayConsume(InputTag("genParticles")); - m_HSCPsToken = consumes(iConfig.getParameter("HSCParticles")); - - reccordVertexInfo = iConfig.getUntrackedParameter("reccordVertexInfo", true); - reccordGenInfo = iConfig.getUntrackedParameter("reccordGenInfo", false); - - std::cout << "######################################################" << endl; - std::cout << " USE OF THE HSCPTreeBuilder is deprecated! " << endl; - std::cout << "better to use the HSCParticle Producer and then FWLite" << endl; - std::cout << "######################################################" << endl; -} - -HSCPTreeBuilder::~HSCPTreeBuilder() {} - -void HSCPTreeBuilder::beginJob() { - TTree::SetMaxTreeSize(1000 * Long64_t(2000000000)); // authorize Trees up to 2 Terabytes - MyTree = tfs->make("HscpTree", "HscpTree"); - - MyTree->Branch("Event_EventNumber", &Event_EventNumber, "Event_EventNumber/i"); - MyTree->Branch("Event_RunNumber", &Event_RunNumber, "Event_RunNumber/i"); - MyTree->Branch("Event_LumiSection", &Event_LumiSection, "Event_LumiSection/i"); - MyTree->Branch("Event_BXCrossing", &Event_BXCrossing, "Event_BXCrossing/i"); - MyTree->Branch("Event_Orbit", &Event_Orbit, "Event_Orbit/i"); - MyTree->Branch("Event_Store", &Event_Store, "Event_Store/i"); - MyTree->Branch("Event_Time", &Event_Time, "Event_Time/i"); - MyTree->Branch("Event_PhysicsDeclared", &Event_PhysicsDeclared, "Event_PhysicsDeclared/O"); - MyTree->Branch("Event_technicalBits", Event_technicalBits, "Event_technicalBits[64]/O"); - MyTree->Branch("Event_triggerL1Bits", Event_triggerL1Bits, "Event_triggerL1Bits[192]/O"); - MyTree->Branch("Event_triggerHLTBits", Event_triggerHLTBits, "Event_triggerHLTBits[128]/O"); - MyTree->Branch("Event_BField", &Event_BField, "Event_BField/F"); - - if (reccordVertexInfo) { - MyTree->Branch("NVertices", &NVertices, "NVertices/I"); - MyTree->Branch("Vertex_x", Vertex_x, "Vertex_x[NVertices]/F"); - MyTree->Branch("Vertex_y", Vertex_y, "Vertex_y[NVertices]/F"); - MyTree->Branch("Vertex_z", Vertex_z, "Vertex_z[NVertices]/F"); - MyTree->Branch("Vertex_x_err", Vertex_x_err, "Vertex_x_err[NVertices]/F"); - MyTree->Branch("Vertex_y_err", Vertex_y_err, "Vertex_y_err[NVertices]/F"); - MyTree->Branch("Vertex_z_err", Vertex_z_err, "Vertex_z_err[NVertices]/F"); - MyTree->Branch("Vertex_TrackSize", Vertex_TrackSize, "Vertex_TrackSize[NVertices]/I"); - MyTree->Branch("Vertex_chi2", Vertex_chi2, "Vertex_chi2[NVertices]/F"); - MyTree->Branch("Vertex_ndof", Vertex_ndof, "Vertex_ndof[NVertices]/F"); - MyTree->Branch("Vertex_isFake", Vertex_isFake, "Vertex_isFake[NVertices]/O"); - } - - MyTree->Branch("NHSCPs", &NHSCPs, "NHSCPs/I"); - MyTree->Branch("Hscp_hasTrack", Hscp_hasTrack, "Hscp_hasTrack[NHSCPs]/O"); - MyTree->Branch("Hscp_hasMuon", Hscp_hasMuon, "Hscp_hasMuon[NHSCPs]/O"); - MyTree->Branch("Hscp_hasRpc", Hscp_hasRpc, "Hscp_hasRpc[NHSCPs]/O"); - MyTree->Branch("Hscp_hasCalo", Hscp_hasCalo, "Hscp_hasCalo[NHSCPs]/O"); - MyTree->Branch("Hscp_type", Hscp_type, "Hscp_type[NHSCPs]/I"); - MyTree->Branch("Track_NOH", Track_NOH, "Track_NOH[NHSCPs]/I"); - MyTree->Branch("Track_p", Track_p, "Track_p[NHSCPs]/F"); - MyTree->Branch("Track_pt", Track_pt, "Track_pt[NHSCPs]/F"); - MyTree->Branch("Track_pt_err", Track_pt_err, "Track_pt_err[NHSCPs]/F"); - MyTree->Branch("Track_chi2", Track_chi2, "Track_chi2[NHSCPs]/F"); - MyTree->Branch("Track_ndof", Track_ndof, "Track_ndof[NHSCPs]/F"); - MyTree->Branch("Track_eta", Track_eta, "Track_eta[NHSCPs]/F"); - MyTree->Branch("Track_eta_err", Track_eta_err, "Track_eta_err[NHSCPs]/F"); - MyTree->Branch("Track_phi", Track_phi, "Track_phi[NHSCPs]/F"); - MyTree->Branch("Track_phi_err", Track_phi_err, "Track_phi_err[NHSCPs]/F"); - MyTree->Branch("Track_d0", Track_d0, "Track_d0[NHSCPs]/F"); - MyTree->Branch("Track_dz", Track_dz, "Track_dz[NHSCPs]/F"); - MyTree->Branch("Track_quality", Track_quality, "Track_quality[NHSCPs]/I"); - MyTree->Branch("Track_charge", Track_charge, "Track_charge[NHSCPs]/I"); - MyTree->Branch("Track_dEdxE1", Track_dEdxE1, "Track_dEdxE1[NHSCPs]/F"); - MyTree->Branch("Track_dEdxE1_NOS", Track_dEdxE1_NOS, "Track_dEdxE1_NOS[NHSCPs]/F"); - MyTree->Branch("Track_dEdxE1_NOM", Track_dEdxE1_NOM, "Track_dEdxE1_NOM[NHSCPs]/I"); - MyTree->Branch("Track_dEdxE2", Track_dEdxE2, "Track_dEdxE2[NHSCPs]/F"); - MyTree->Branch("Track_dEdxE2_NOS", Track_dEdxE2_NOS, "Track_dEdxE2_NOS[NHSCPs]/F"); - MyTree->Branch("Track_dEdxE2_NOM", Track_dEdxE2_NOM, "Track_dEdxE2_NOM[NHSCPs]/I"); - MyTree->Branch("Track_dEdxE3", Track_dEdxE3, "Track_dEdxE3[NHSCPs]/F"); - MyTree->Branch("Track_dEdxE3_NOS", Track_dEdxE3_NOS, "Track_dEdxE3_NOS[NHSCPs]/F"); - MyTree->Branch("Track_dEdxE3_NOM", Track_dEdxE3_NOM, "Track_dEdxE3_NOM[NHSCPs]/I"); - MyTree->Branch("Track_dEdxD1", Track_dEdxD1, "Track_dEdxD1[NHSCPs]/F"); - MyTree->Branch("Track_dEdxD1_NOS", Track_dEdxD1_NOS, "Track_dEdxD1_NOS[NHSCPs]/F"); - MyTree->Branch("Track_dEdxD1_NOM", Track_dEdxD1_NOM, "Track_dEdxD1_NOM[NHSCPs]/I"); - MyTree->Branch("Track_dEdxD2", Track_dEdxD2, "Track_dEdxD2[NHSCPs]/F"); - MyTree->Branch("Track_dEdxD2_NOS", Track_dEdxD2_NOS, "Track_dEdxD2_NOS[NHSCPs]/F"); - MyTree->Branch("Track_dEdxD2_NOM", Track_dEdxD2_NOM, "Track_dEdxD2_NOM[NHSCPs]/I"); - MyTree->Branch("Track_dEdxD3", Track_dEdxD3, "Track_dEdxD3[NHSCPs]/F"); - MyTree->Branch("Track_dEdxD3_NOS", Track_dEdxD3_NOS, "Track_dEdxD3_NOS[NHSCPs]/F"); - MyTree->Branch("Track_dEdxD3_NOM", Track_dEdxD3_NOM, "Track_dEdxD3_NOM[NHSCPs]/I"); - MyTree->Branch("Muon_p", Muon_p, "Muon_p[NHSCPs]/F"); - MyTree->Branch("Muon_pt", Muon_pt, "Muon_pt[NHSCPs]/F"); - MyTree->Branch("Muon_eta", Muon_eta, "Muon_eta[NHSCPs]/F"); - MyTree->Branch("Muon_phi", Muon_phi, "Muon_phi[NHSCPs]/F"); - MyTree->Branch("Muon_type", Muon_type, "Muon_type[NHSCPs]/i"); - MyTree->Branch("Muon_qualityValid", Muon_qualityValid, "Muon_qualityValid[NHSCPs]/O"); - MyTree->Branch("Muon_charge", Muon_charge, "Muon_charge[NHSCPs]/i"); - MyTree->Branch("Muon_dt_IBeta", Muon_dt_IBeta, "Muon_dt_IBeta[NHSCPs]/F"); - MyTree->Branch("Muon_dt_IBeta_err", Muon_dt_IBeta_err, "Muon_dt_IBeta_err[NHSCPs]/F"); - MyTree->Branch("Muon_dt_fIBeta", Muon_dt_fIBeta, "Muon_dt_fIBeta[NHSCPs]/F"); - MyTree->Branch("Muon_dt_fIBeta_err", Muon_dt_fIBeta_err, "Muon_dt_fIBeta_err[NHSCPs]/F"); - MyTree->Branch("Muon_dt_ndof", Muon_dt_ndof, "Muon_dt_ndof[NHSCPs]/I"); - MyTree->Branch("Muon_csc_IBeta", Muon_csc_IBeta, "Muon_csc_IBeta[NHSCPs]/F"); - MyTree->Branch("Muon_csc_IBeta_err", Muon_csc_IBeta_err, "Muon_csc_IBeta_err[NHSCPs]/F"); - MyTree->Branch("Muon_csc_fIBeta", Muon_csc_fIBeta, "Muon_csc_fIBeta[NHSCPs]/F"); - MyTree->Branch("Muon_csc_fIBeta_err", Muon_csc_fIBeta_err, "Muon_csc_fIBeta_err[NHSCPs]/F"); - MyTree->Branch("Muon_csc_ndof", Muon_csc_ndof, "Muon_csc_ndof[NHSCPs]/I"); - MyTree->Branch("Muon_cb_IBeta", Muon_cb_IBeta, "Muon_cb_IBeta[NHSCPs]/F"); - MyTree->Branch("Muon_cb_IBeta_err", Muon_cb_IBeta_err, "Muon_cb_IBeta_err[NHSCPs]/F"); - MyTree->Branch("Muon_cb_fIBeta", Muon_cb_fIBeta, "Muon_cb_fIBeta[NHSCPs]/F"); - MyTree->Branch("Muon_cb_fIBeta_err", Muon_cb_fIBeta_err, "Muon_cb_fIBeta_err[NHSCPs]/F"); - MyTree->Branch("Muon_cb_ndof", Muon_cb_ndof, "Muon_cb_ndof[NHSCPs]/I"); - - MyTree->Branch("Rpc_beta", Rpc_beta, "Rpc_beta[NHSCPs]/F"); - - MyTree->Branch("Calo_ecal_crossedE", Calo_ecal_crossedE, "Calo_ecal_crossedE[NHSCPs]/F"); - MyTree->Branch("Calo_ecal_beta", Calo_ecal_beta, "Calo_ecal_beta[NHSCPs]/F"); - MyTree->Branch("Calo_ecal_beta_err", Calo_ecal_beta_err, "Calo_ecal_beta_err[NHSCPs]/F"); - MyTree->Branch("Calo_ecal_invBeta_err", Calo_ecal_invBeta_err, "Calo_ecal_invBeta_err[NHSCPs]/F"); - MyTree->Branch("Calo_ecal_dEdx", Calo_ecal_dEdx, "Calo_ecal_dEdx[NHSCPs]/F"); - MyTree->Branch("Calo_ecal_time", Calo_ecal_time, "Calo_ecal_time[NHSCPs]/F"); - MyTree->Branch("Calo_ecal_time_err", Calo_ecal_time_err, "Calo_ecal_time_err[NHSCPs]/F"); - MyTree->Branch("Calo_ecal_numCrysCrossed", Calo_ecal_numCrysCrossed, "Calo_ecal_numCrysCrossed[NHSCPs]/I"); - MyTree->Branch("Calo_ecal_swissCrossKs", Calo_ecal_swissCrossKs, "Calo_ecal_swissCrossKs[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_e1OverE9s", Calo_ecal_e1OverE9s, "Calo_ecal_e1OverE9s[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_trackLengths", Calo_ecal_trackLengths, "Calo_ecal_trackLengths[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_trackExitEtas", Calo_ecal_trackExitEtas, "Calo_ecal_trackExitEtas[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_trackExitPhis", Calo_ecal_trackExitPhis, "Calo_ecal_trackExitPhis[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_energies", Calo_ecal_energies, "Calo_ecal_energies[NHSCPs][10]/F"); - MyTree->Branch( - "Calo_ecal_outOfTimeEnergies", Calo_ecal_outOfTimeEnergies, "Calo_ecal_outOfTimeEnergies[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_chi2s", Calo_ecal_chi2s, "Calo_ecal_chi2s[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_outOfTimeChi2s", Calo_ecal_outOfTimeChi2s, "Calo_ecal_outOfTimeChi2s[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_times", Calo_ecal_times, "Calo_ecal_times[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_timeErrors", Calo_ecal_timeErrors, "Calo_ecal_timeErrors[NHSCPs][10]/F"); - MyTree->Branch("Calo_ecal_detIds", Calo_ecal_detIds, "Calo_ecal_detIds[NHSCPs][10]/I"); - - if (reccordGenInfo) { - MyTree->Branch("NGens", &NGens, "NGens/I"); - MyTree->Branch("Gen_pdgId", Gen_pdgId, "Gen_pdgId[NGens]/i"); - MyTree->Branch("Gen_charge", Gen_charge, "Gen_charge[NGens]/F"); - MyTree->Branch("Gen_p", Gen_p, "Gen_p[NGens]/F"); - MyTree->Branch("Gen_px", Gen_px, "Gen_px[NGens]/F"); - MyTree->Branch("Gen_py", Gen_py, "Gen_py[NGens]/F"); - MyTree->Branch("Gen_pz", Gen_pz, "Gen_pz[NGens]/F"); - MyTree->Branch("Gen_pt", Gen_pt, "Gen_pt[NGens]/F"); - MyTree->Branch("Gen_eta", Gen_eta, "Gen_eta[NGens]/F"); - MyTree->Branch("Gen_phi", Gen_phi, "Gen_phi[NGens]/F"); - MyTree->Branch("Gen_beta", Gen_beta, "Gen_beta[NGens]/F"); - MyTree->Branch("Gen_mass", Gen_mass, "Gen_mass[NGens]/F"); - } -} - -void HSCPTreeBuilder::endJob() {} - -bool HSCPTreeBuilder::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) { - bool debug = false; - if (debug) - cout << "I'm in HSCPTreeBuilder::analyze!" << endl; - - Event_EventNumber = iEvent.id().event(); - Event_RunNumber = iEvent.id().run(); - Event_LumiSection = iEvent.eventAuxiliary().luminosityBlock(); - Event_BXCrossing = iEvent.eventAuxiliary().bunchCrossing(); - Event_Orbit = iEvent.eventAuxiliary().orbitNumber(); - Event_Store = iEvent.eventAuxiliary().storeNumber(); - Event_Time = iEvent.eventAuxiliary().time().value(); - - // BField part: - ESHandle MF; - iSetup.get().get(MF); - const MagneticField* theMagneticField = MF.product(); - Event_BField = fabs(theMagneticField->inTesla(GlobalPoint(0, 0, 0)).z()); - - // L1 TRIGGER part: - edm::Handle h_gtReadoutRecord; - iEvent.getByToken(m_gtReadoutRecordToken, h_gtReadoutRecord); - L1GtFdlWord fdlWord = h_gtReadoutRecord->gtFdlWord(); - TechnicalTriggerWord L1technical = fdlWord.gtTechnicalTriggerWord(); - Event_PhysicsDeclared = h_gtReadoutRecord->gtFdlWord().physicsDeclared(); - for (unsigned int i = 0; i < 64; ++i) { - Event_technicalBits[i] = L1technical[i]; - } - DecisionWord L1decision = fdlWord.gtDecisionWord(); - for (unsigned int i = 0; i < 128; ++i) { - Event_triggerL1Bits[i] = L1decision[i]; - } - DecisionWordExtended L1decisionE = fdlWord.gtDecisionWordExtended(); - for (unsigned int i = 0; i < 64; ++i) { - Event_triggerL1Bits[128 + i] = L1decisionE[i]; - } - - // HLT TRIGGER part: - edm::Handle trh; - iEvent.getByToken(m_trToken, trh); - for (unsigned int i = 0; i < trh->size() && i < 128; ++i) { - Event_triggerHLTBits[i] = trh->at(i).accept(); - } - - edm::Handle recoVertexHandle; - iEvent.getByToken(m_recoVertexToken, recoVertexHandle); - reco::VertexCollection recoVertex = *recoVertexHandle; - - if (reccordVertexInfo) { - NVertices = 0; - for (unsigned int i = 0; i < recoVertex.size(); i++) { - Vertex_x[NVertices] = recoVertex[i].x(); - Vertex_y[NVertices] = recoVertex[i].y(); - Vertex_z[NVertices] = recoVertex[i].z(); - Vertex_x_err[NVertices] = recoVertex[i].xError(); - Vertex_y_err[NVertices] = recoVertex[i].yError(); - Vertex_z_err[NVertices] = recoVertex[i].zError(); - Vertex_TrackSize[NVertices] = recoVertex[i].tracksSize(); - Vertex_chi2[NVertices] = recoVertex[i].chi2(); - Vertex_ndof[NVertices] = recoVertex[i].ndof(); - Vertex_isFake[NVertices] = recoVertex[i].isFake(); - NVertices++; - } - } - - // Source Collection - edm::Handle HSCPCollectionHandle; - iEvent.getByToken(m_HSCPsToken, HSCPCollectionHandle); - susybsm::HSCParticleCollection HSCPCollection = *HSCPCollectionHandle.product(); - - NHSCPs = 0; - for (unsigned int i = 0; i < HSCPCollection.size(); i++) { - susybsm::HSCParticle hscp = HSCPCollection[i]; - reco::MuonRef muon = hscp.muonRef(); - reco::TrackRef track = hscp.trackRef(); - ; - - Hscp_hasTrack[NHSCPs] = hscp.hasTrackRef(); - Hscp_hasMuon[NHSCPs] = hscp.hasMuonRef(); - Hscp_hasRpc[NHSCPs] = hscp.hasRpcInfo(); - Hscp_hasCalo[NHSCPs] = hscp.hasCaloInfo(); - Hscp_type[NHSCPs] = hscp.type(); - - if (track.isNonnull() && Hscp_hasTrack[NHSCPs]) { - Track_p[NHSCPs] = track->p(); - Track_pt[NHSCPs] = track->pt(); - Track_pt_err[NHSCPs] = track->ptError(); - Track_eta[NHSCPs] = track->eta(); - Track_eta_err[NHSCPs] = track->etaError(); - Track_phi[NHSCPs] = track->phi(); - Track_phi_err[NHSCPs] = track->phiError(); - Track_NOH[NHSCPs] = track->found(); - Track_chi2[NHSCPs] = track->chi2(); - Track_ndof[NHSCPs] = track->ndof(); - Track_d0[NHSCPs] = -1.0f * track->dxy(recoVertex[0].position()); - Track_dz[NHSCPs] = -1.0f * track->dz(recoVertex[0].position()); - Track_quality[NHSCPs] = track->qualityMask(); - Track_charge[NHSCPs] = track->charge(); - /* Track_dEdxE1 [NHSCPs] = hscp.dedxEstimator1().dEdx(); - Track_dEdxE1_NOM [NHSCPs] = hscp.dedxEstimator1().numberOfMeasurements(); - Track_dEdxE1_NOS [NHSCPs] = hscp.dedxEstimator1().numberOfSaturatedMeasurements(); - Track_dEdxE2 [NHSCPs] = hscp.dedxEstimator2().dEdx(); - Track_dEdxE2_NOM [NHSCPs] = hscp.dedxEstimator2().numberOfMeasurements(); - Track_dEdxE2_NOS [NHSCPs] = hscp.dedxEstimator2().numberOfSaturatedMeasurements(); - Track_dEdxE3 [NHSCPs] = hscp.dedxEstimator3().dEdx(); - Track_dEdxE3_NOM [NHSCPs] = hscp.dedxEstimator3().numberOfMeasurements(); - Track_dEdxE3_NOS [NHSCPs] = hscp.dedxEstimator3().numberOfSaturatedMeasurements(); - Track_dEdxD1 [NHSCPs] = hscp.dedxDiscriminator1().dEdx(); - Track_dEdxD1_NOM [NHSCPs] = hscp.dedxDiscriminator1().numberOfMeasurements(); - Track_dEdxD1_NOS [NHSCPs] = hscp.dedxDiscriminator1().numberOfSaturatedMeasurements(); - Track_dEdxD2 [NHSCPs] = hscp.dedxDiscriminator2().dEdx(); - Track_dEdxD2_NOM [NHSCPs] = hscp.dedxDiscriminator2().numberOfMeasurements(); - Track_dEdxD2_NOS [NHSCPs] = hscp.dedxDiscriminator2().numberOfSaturatedMeasurements(); - Track_dEdxD3 [NHSCPs] = hscp.dedxDiscriminator3().dEdx(); - Track_dEdxD3_NOM [NHSCPs] = hscp.dedxDiscriminator3().numberOfMeasurements(); - Track_dEdxD3_NOS [NHSCPs] = hscp.dedxDiscriminator3().numberOfSaturatedMeasurements(); -*/ - } - - if (muon.isNonnull() && Hscp_hasMuon[NHSCPs]) { - Muon_p[NHSCPs] = muon->p(); - Muon_pt[NHSCPs] = muon->pt(); - Muon_eta[NHSCPs] = muon->eta(); - Muon_phi[NHSCPs] = muon->phi(); - Muon_type[NHSCPs] = muon->type(); - Muon_qualityValid[NHSCPs] = muon->isQualityValid(); - Muon_charge[NHSCPs] = muon->charge(); - /* Muon_dt_IBeta [NHSCPs] = hscp.muonTimeDt().inverseBeta(); - Muon_dt_IBeta_err [NHSCPs] = hscp.muonTimeDt().inverseBetaErr(); - Muon_dt_fIBeta [NHSCPs] = hscp.muonTimeDt().freeInverseBeta(); - Muon_dt_fIBeta_err [NHSCPs] = hscp.muonTimeDt().freeInverseBetaErr(); - Muon_dt_ndof [NHSCPs] = hscp.muonTimeDt().nDof(); - Muon_csc_IBeta [NHSCPs] = hscp.muonTimeCsc().inverseBeta(); - Muon_csc_IBeta_err [NHSCPs] = hscp.muonTimeCsc().inverseBetaErr(); - Muon_csc_fIBeta [NHSCPs] = hscp.muonTimeCsc().freeInverseBeta(); - Muon_csc_fIBeta_err[NHSCPs] = hscp.muonTimeCsc().freeInverseBetaErr(); - Muon_csc_ndof [NHSCPs] = hscp.muonTimeCsc().nDof(); - Muon_cb_IBeta [NHSCPs] = hscp.muonTimeCombined().inverseBeta(); - Muon_cb_IBeta_err [NHSCPs] = hscp.muonTimeCombined().inverseBetaErr(); - Muon_cb_fIBeta [NHSCPs] = hscp.muonTimeCombined().freeInverseBeta(); - Muon_cb_fIBeta_err [NHSCPs] = hscp.muonTimeCombined().freeInverseBetaErr(); - Muon_cb_ndof [NHSCPs] = hscp.muonTimeCombined().nDof(); -*/ - } - - if (hscp.hasCaloInfo()) { - // Calo_ecal_crossedE [NHSCPs] = hscp.calo().ecalCrossedEnergy; - // Calo_ecal_beta [NHSCPs] = hscp.calo().ecalBeta; - // Calo_ecal_beta_err [NHSCPs] = hscp.calo().ecalBetaError; - // Calo_ecal_invBeta_err [NHSCPs] = hscp.calo().ecalInvBetaError; - // Calo_ecal_dEdx [NHSCPs] = hscp.calo().ecalDeDx; - // Calo_ecal_time [NHSCPs] = hscp.calo().ecalTime; - // Calo_ecal_time_err [NHSCPs] = hscp.calo().ecalTimeError; - // Calo_ecal_numCrysCrossed[NHSCPs] = hscp.calo().ecalCrysCrossed; - /* for(int i=0; i < Calo_ecal_numCrysCrossed[NHSCPs] && i < MAX_ECALCRYS; ++i) - { - Calo_ecal_swissCrossKs [NHSCPs][i] = hscp.calo().ecalSwissCrossKs[i]; - Calo_ecal_e1OverE9s [NHSCPs][i] = hscp.calo().ecalE1OverE9s[i]; - Calo_ecal_trackLengths [NHSCPs][i] = hscp.calo().ecalTrackLengths[i]; - GlobalPoint exitPosition = hscp.calo().ecalTrackExitPositions[i]; - Calo_ecal_trackExitEtas [NHSCPs][i] = exitPosition.eta(); - Calo_ecal_trackExitPhis [NHSCPs][i] = exitPosition.phi(); - Calo_ecal_energies [NHSCPs][i] = hscp.calo().ecalEnergies[i]; - Calo_ecal_outOfTimeEnergies[NHSCPs][i] = hscp.calo().ecalOutOfTimeEnergies[i]; - Calo_ecal_chi2s [NHSCPs][i] = hscp.calo().ecalChi2s[i]; - Calo_ecal_outOfTimeChi2s [NHSCPs][i] = hscp.calo().ecalOutOfTimeChi2s[i]; - Calo_ecal_times [NHSCPs][i] = hscp.calo().ecalTimes[i]; - Calo_ecal_timeErrors [NHSCPs][i] = hscp.calo().ecalTimeErrors[i]; - Calo_ecal_detIds [NHSCPs][i] = hscp.calo().ecalDetIds[i]; - } -*/ - } - - if (Hscp_hasRpc[NHSCPs]) { - Rpc_beta[NHSCPs] = hscp.rpc().beta; - } - - NHSCPs++; - } - - if (reccordGenInfo) { - Handle genParticles; - iEvent.getByToken(m_genParticlesToken, genParticles); - NGens = 0; - for (unsigned int i = 0; i < genParticles->size(); i++) { - const GenParticle& part = (*genParticles)[i]; - if (part.status() != 1) - continue; - if (part.pt() < 5) - continue; - // if(fabs(part.pdgId())<1000000) continue; - - Gen_pdgId[NGens] = part.pdgId(); - Gen_charge[NGens] = part.charge(); - Gen_p[NGens] = part.p(); - Gen_px[NGens] = part.px(); - Gen_py[NGens] = part.py(); - Gen_pz[NGens] = part.pz(); - Gen_pt[NGens] = part.pt(); - Gen_eta[NGens] = part.eta(); - Gen_phi[NGens] = part.phi(); - Gen_beta[NGens] = part.p() / part.energy(); - Gen_mass[NGens] = part.mass(); - NGens++; - } - } - - MyTree->Fill(); - return true; -} - -//define this as a plug-in -DEFINE_FWK_MODULE(HSCPTreeBuilder); diff --git a/SUSYBSMAnalysis/HSCP/plugins/HSCPValidator.cc b/SUSYBSMAnalysis/HSCP/plugins/HSCPValidator.cc deleted file mode 100644 index 869cfd9127c8f..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/HSCPValidator.cc +++ /dev/null @@ -1,893 +0,0 @@ -// -*- C++ -*- -// -// Package: HSCP -// Class: HSCPValidator -// -/**\class HSCPValidator HSCPValidator.cc HSCPValidation/HSCPValidator/src/HSCPValidator.cc - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: Seth Cooper,27 1-024,+41227672342, -// Created: Wed Apr 14 14:27:52 CEST 2010 -// -// - -// system include files -#include -#include -#include -#include - -// user include files -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/EcalDetId/interface/EBDetId.h" -#include "DataFormats/EcalDetId/interface/EEDetId.h" -#include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" -#include "DataFormats/RPCDigi/interface/RPCDigi.h" -#include "DataFormats/RPCDigi/interface/RPCDigiCollection.h" -#include "DataFormats/RPCRecHit/interface/RPCRecHit.h" -#include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h" -#include "DataFormats/MuonDetId/interface/RPCDetId.h" -#include -#include -#include "DataFormats/GeometrySurface/interface/Surface.h" -#include "DataFormats/DetId/interface/DetId.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include -#include -#include "DataFormats/GeometrySurface/interface/Surface.h" -#include "DataFormats/MuonDetId/interface/MuonSubdetId.h" -#include "Geometry/RPCGeometry/interface/RPCRoll.h" -#include "Geometry/Records/interface/MuonGeometryRecord.h" -#include "Geometry/RPCGeometry/interface/RPCGeomServ.h" -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include -#include "Geometry/RPCGeometry/interface/RPCGeomServ.h" -#include -#include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "RecoMuon/TrackingTools/interface/MuonPatternRecoDumper.h" -#include "SimDataFormats/TrackingHit/interface/PSimHit.h" -#include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h" -#include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/Track/interface/SimTrack.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/Vertex/interface/SimVertexContainer.h" -#include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h" -#include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h" -#include "TrackingTools/TransientTrack/interface/TransientTrack.h" -#include "TrackingTools/GeomPropagators/interface/Propagator.h" -#include "TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h" -#include "TrackingTools/Records/interface/TrackingComponentsRecord.h" - -#include "DataFormats/TrackReco/interface/DeDxData.h" -#include "DataFormats/TrackReco/interface/TrackToTrackMap.h" - -#include "TH1.h" -#include "TGraph.h" -#include "TCanvas.h" - -#include "SUSYBSMAnalysis/HSCP/plugins/HSCPValidator.h" - -// -// constants, enums and typedefs -// - -// -// static data member definitions -// -edm::Service fileService; - -// -// constructors and destructor -// -HSCPValidator::HSCPValidator(const edm::ParameterSet& iConfig) - : doGenPlots_(iConfig.getParameter("MakeGenPlots")), - doHLTPlots_(iConfig.getParameter("MakeHLTPlots")), - doSimTrackPlots_(iConfig.getParameter("MakeSimTrackPlots")), - doSimDigiPlots_(iConfig.getParameter("MakeSimDigiPlots")), - doRecoPlots_(iConfig.getParameter("MakeRecoPlots")), - token_(consumes(iConfig.getParameter("generatorLabel"))), - simTracksToken_(consumes(edm::InputTag("g4SimHits"))), - trEvToken_(consumes(edm::InputTag("hltTriggerSummaryAOD"))), - tkTracksToken_(consumes(edm::InputTag("generalTracks"))), - dEdxTrackToken_(consumes >(edm::InputTag("dedxHarmonic2"))), - rpcRecHitsToken_(consumes(edm::InputTag("rpcRecHits"))), - triggerResultsToken_(consumes(edm::InputTag("TriggerResults", "", "HLT"))), - particleIds_(iConfig.getParameter >("particleIds")), - particleStatus_(iConfig.getUntrackedParameter("particleStatus", 1)), - ebSimHitToken_(consumes(iConfig.getParameter("EBSimHitCollection"))), - eeSimHitToken_(consumes(iConfig.getParameter("EESimHitCollection"))), - simTrackToken_(consumes(iConfig.getParameter("SimTrackCollection"))), - EBDigiCollectionToken_(consumes(iConfig.getParameter("EBDigiCollection"))), - EEDigiCollectionToken_(consumes(iConfig.getParameter("EEDigiCollection"))) { - //now do what ever initialization is needed - // GEN - particleEtaHist_ = fileService->make("particleEta", "Eta of gen particle", 100, -5, 5); - particlePhiHist_ = fileService->make("particlePhi", "Phi of gen particle", 180, -3.15, 3.15); - particlePHist_ = fileService->make("particleP", "Momentum of gen particle", 500, 0, 2000); - particlePtHist_ = fileService->make("particlePt", "P_{T} of gen particle", 500, 0, 2000); - particleMassHist_ = fileService->make("particleMass", "Mass of gen particle", 1000, 0, 2000); - particleStatusHist_ = fileService->make("particleStatus", "Status of gen particle", 10, 0, 10); - particleBetaHist_ = fileService->make("particleBeta", "Beta of gen particle", 100, 0, 1); - particleBetaInverseHist_ = fileService->make("particleBetaInverse", "1/#beta of gen particle", 100, 0, 5); - - h_genhscp_met = fileService->make("hscp_met", "missing E_{T} hscp", 100, 0., 1500.); - h_genhscp_met_nohscp = fileService->make("hscp_met_nohscp", "missing E_{T} w/o hscp", 100, 0., 1500.); - h_genhscp_scaloret = fileService->make("hscp_scaloret", "scalor E_{T} sum", 100, 0., 1500.); - h_genhscp_scaloret_nohscp = - fileService->make("hscp_scaloret_nohscp", "scalor E_{T} sum w/o hscp", 100, 0., 1500.); - - //SIM track Info - simTrackParticleEtaHist_ = fileService->make("simTrackParticleEta", "Eta of simTrackParticle", 100, -5, 5); - simTrackParticlePhiHist_ = - fileService->make("simTrackParticlePhi", "Phi of simTrackParticle", 180, -3.15, 3.15); - simTrackParticlePHist_ = fileService->make("simTrackParticleP", "Momentum of simTrackParticle", 500, 0, 2000); - simTrackParticlePtHist_ = fileService->make("simTrackParticlePt", "P_{T} of simTrackParticle", 500, 0, 2000); - simTrackParticleBetaHist_ = fileService->make("simTrackParticleBeta", "Beta of simTrackParticle", 100, 0, 1); - //reco track Info - - RecoHSCPPtVsGenPt = fileService->make("Recovsgenpt", "RecovsGen", 100, 0, 1000, 100, 0, 1000); - dedxVsp = fileService->make("dedxvsp", "dedxvsp", 100, 0, 1000, 100, 0, 10); - //HLT Info - hltmet = fileService->make("HLT_MET", "MET", 3, -1, 2); - hltjet = fileService->make("HLT_JET", "JET", 3, -1, 2); - hltmu = fileService->make("HLT_Mu", "Mu", 3, -1, 2); - - // SIM-DIGI: ECAL - simHitsEcalEnergyHistEB_ = - fileService->make("ecalEnergyOfSimHitsEB", "HSCP SimTrack-matching SimHit energy EB [GeV]", 125, -1, 4); - simHitsEcalEnergyHistEE_ = - fileService->make("ecalEnergyOfSimHitsEE", "HSCP SimTrack-matching SimHit energy EE [GeV]", 125, -1, 4); - simHitsEcalTimeHistEB_ = - fileService->make("ecalTimingOfSimHitsEB", "HSCP SimTrack-matching SimHit time EB [ns]", 115, -15, 100); - simHitsEcalTimeHistEE_ = - fileService->make("ecalTimingOfSimHitsEE", "HSCP SimTrack-matching SimHit time EE [ns]", 115, -15, 100); - simHitsEcalNumHistEB_ = fileService->make( - "ecalNumberOfSimHitsEB", "Number of HSCP SimTrack-matching EB sim hits in event", 100, 0, 200); - simHitsEcalNumHistEE_ = fileService->make( - "ecalNumberOfSimHitsEE", "Number of HSCP SimTrack-matching EE sim hits in event", 100, 0, 200); - simHitsEcalEnergyVsTimeHistEB_ = - fileService->make("ecalEnergyVsTimeOfSimHitsEB", - "Energy vs. time of HSCP SimTrack-matching EB sim hits in event", - 115, - -15, - 100, - 125, - -1, - 4); - simHitsEcalEnergyVsTimeHistEE_ = - fileService->make("ecalEnergyVsTimeOfSimHitsEE", - "Energy vs. time of HSCP SimTrack-matching EE sim hits in event", - 115, - -15, - 100, - 125, - -1, - 4); - simHitsEcalDigiMatchEnergyHistEB_ = - fileService->make("ecalEnergyOfDigiMatSimHitsEB", "HSCP digi-matching SimHit energy EB [GeV]", 125, -1, 4); - simHitsEcalDigiMatchEnergyHistEE_ = - fileService->make("ecalEnergyOfDigiMatSimHitsEE", "HSCP digi-matching SimHit energy EE [GeV]", 125, -1, 4); - simHitsEcalDigiMatchTimeHistEB_ = - fileService->make("ecalTimingOfDigiMatSimHitsEB", "HSCP digi-matching SimHit time EB [ns]", 115, -15, 100); - simHitsEcalDigiMatchTimeHistEE_ = - fileService->make("ecalTimingOfDigiMatSimHitsEE", "HSCP digi-matching SimHit time EE [ns]", 115, -15, 100); - simHitsEcalDigiMatchEnergyVsTimeHistEB_ = fileService->make( - "ecalEnergyVsTimeOfDigiMatSimHitsEB", "HSCP digi-matching EB SimHit energy vs. time", 115, -15, 100, 125, -1, 4); - simHitsEcalDigiMatchEnergyVsTimeHistEE_ = fileService->make( - "ecalEnergyVsTimeOfDigiMatSimHitsEE", "HSCP digi-matching EE SimHit energy vs. time", 115, -15, 100, 125, -1, 4); - simHitsEcalDigiMatchIEtaHist_ = - fileService->make("ecalIEtaOfDigiMatchSimHits", "iEta of digi-matching Ecal simHits (EB)", 171, -85, 86); - simHitsEcalDigiMatchIPhiHist_ = - fileService->make("ecalIPhiOfDigiMatchSimHits", "iPhi of digi-matching Ecal simHits (EB)", 360, 1, 361); - digisEcalNumHistEB_ = - fileService->make("ecalDigisNumberEB", "Number of EB digis matching simhits in event", 200, 0, 1000); - digisEcalNumHistEE_ = - fileService->make("ecalDigisNumberEE", "Number of EE digis matching simhits in event", 200, 0, 1000); - digiOccupancyMapEB_ = fileService->make( - "ecalDigiOccupancyMapEB", "Occupancy of simhit-matching digis EB;i#phi;i#eta", 360, 1, 361, 171, -85, 86); - digiOccupancyMapEEP_ = fileService->make( - "ecalDigiOccupancyMapEEM", "Occupancy of simhit-matching digis EEM;ix;iy", 100, 1, 100, 100, 1, 100); - digiOccupancyMapEEM_ = fileService->make( - "ecalDigiOccupancyMapEEP", "Occupancy of simhit-matching digis EEP;ix;iy", 100, 1, 100, 100, 1, 100); - - // SIM-DIGI: RPC - residualsRPCRecHitSimDigis_ = - fileService->make("residualsRPCRecHitSimDigis", "HSCP SimHit - Clossest RPC RecHit", 100, -5, 5); - efficiencyRPCRecHitSimDigis_ = - fileService->make("efficiencyRPCRecHitSimDigis", "HSCP SimHits RecHits Efficiency", 2, -0.5, 1.5); - cluSizeDistribution_ = fileService->make("RPCCluSizeDistro", "RPC HSCP CluSize Distribution", 11, -0.5, 10.5); - rpcTimeOfFlightBarrel_[0] = fileService->make("RPCToFLayer1", "RPC HSCP Time Of Flight Layer 1", 50, 5, 100); - rpcTimeOfFlightBarrel_[1] = fileService->make("RPCToFLayer2", "RPC HSCP Time Of Flight Layer 2", 50, 5, 100); - rpcTimeOfFlightBarrel_[2] = fileService->make("RPCToFLayer3", "RPC HSCP Time Of Flight Layer 3", 50, 5, 100); - rpcTimeOfFlightBarrel_[3] = fileService->make("RPCToFLayer4", "RPC HSCP Time Of Flight Layer 4", 50, 5, 100); - rpcTimeOfFlightBarrel_[4] = fileService->make("RPCToFLayer5", "RPC HSCP Time Of Flight Layer 5", 50, 5, 100); - rpcTimeOfFlightBarrel_[5] = fileService->make("RPCToFLayer6", "RPC HSCP Time Of Flight Layer 6", 50, 5, 100); - rpcBXBarrel_[0] = fileService->make("RPCBXLayer1", "RPC HSCP BX Layer 1", 5, -0.5, 4.5); - rpcBXBarrel_[1] = fileService->make("RPCBXLayer2", "RPC HSCP BX Layer 2", 5, -0.5, 4.5); - rpcBXBarrel_[2] = fileService->make("RPCBXLayer3", "RPC HSCP BX Layer 3", 5, -0.5, 4.5); - rpcBXBarrel_[3] = fileService->make("RPCBXLayer4", "RPC HSCP BX Layer 4", 5, -0.5, 4.5); - rpcBXBarrel_[4] = fileService->make("RPCBXLayer5", "RPC HSCP BX Layer 5", 5, -0.5, 4.5); - rpcBXBarrel_[5] = fileService->make("RPCBXLayer6", "RPC HSCP BX Layer 6", 5, -0.5, 4.5); - rpcTimeOfFlightEndCap_[0] = fileService->make("RPCToFDisk1", "RPC HSCP Time Of Flight Disk 1", 50, 5, 100); - rpcTimeOfFlightEndCap_[1] = fileService->make("RPCToFDisk2", "RPC HSCP Time Of Flight Disk 2", 50, 5, 100); - rpcTimeOfFlightEndCap_[2] = fileService->make("RPCToFDisk3", "RPC HSCP Time Of Flight Disk 3", 50, 5, 100); - rpcBXEndCap_[0] = fileService->make("RPCBXDisk1", "RPC HSCP BX Disk 1", 5, -0.5, 4.5); - rpcBXEndCap_[1] = fileService->make("RPCBXDisk2", "RPC HSCP BX Disk 2", 5, -0.5, 4.5); - rpcBXEndCap_[2] = fileService->make("RPCBXDisk3", "RPC HSCP BX Disk 3", 5, -0.5, 4.5); -} - -HSCPValidator::~HSCPValidator() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - // particleEtaHist_ = fileService->make("particleEta","Eta of gen particle",100,-5,5); - // particlePhiHist_ = fileService->make("particlePhi","Phi of gen particle",180,-3.15,3.15); - // particlePHist_ = fileService->make("particleP","Momentum of gen particle",500,0,2000); - // particlePtHist_ = fileService->make("particlePt","P_{T} of gen particle",500,0,2000); - // particleMassHist_ = fileService->make("particleMass","Mass of gen particle",1000,0,2000); - // particleStatusHist_ = fileService->make("particleStatus","Status of gen particle",10,0,10); - // particleBetaHist_ = fileService->make("particleBeta","Beta of gen particle",100,0,1); - // particleBetaInverseHist_ = fileService->make("particleBetaInverse","1/#beta of gen particle",100,0,5); -} - -// -// member functions -// - -// ------------ method called to for each event ------------ -void HSCPValidator::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - iSetup.get().get(rpcGeo); - - if (doGenPlots_) - makeGenPlots(iEvent); - if (doSimTrackPlots_) - makeSimTrackPlots(iEvent); - if (doSimDigiPlots_) { - makeSimDigiPlotsECAL(iEvent); - makeSimDigiPlotsRPC(iEvent); - } - if (doHLTPlots_) { - makeHLTPlots(iEvent); - } - if (doRecoPlots_) { - makeRecoPlots(iEvent); - } -} - -// ------------ method called once each job just before starting event loop ------------ -void HSCPValidator::beginJob() {} - -// ------------ method called once each job just after ending the event loop ------------ -void HSCPValidator::endJob() { - std::string frequencies = ""; - for (std::map::const_iterator itr = particleIdsFoundMap_.begin(); itr != particleIdsFoundMap_.end(); - ++itr) { - frequencies += "PDG ID: "; - frequencies += intToString(itr->first); - frequencies += " Frequency: "; - frequencies += intToString(itr->second); - frequencies += "\n"; - } - std::cout << "Found PDGIds: " - << "\n\n" - << frequencies << std::endl; -} - -// ------------- Make gen plots --------------------------------------------------------- -void HSCPValidator::makeGenPlots(const edm::Event& iEvent) { - using namespace edm; - - double missingpx = 0; - double missingpy = 0; - double missingpx_nohscp = 0; - double missingpy_nohscp = 0; - double scalorEt = 0; - double scalorEt_nohscp = 0; - - Handle evt; - iEvent.getByToken(token_, evt); - - HepMC::GenEvent* myGenEvent = new HepMC::GenEvent(*(evt->GetEvent())); - for (HepMC::GenEvent::particle_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end(); ++p) { - if ((*p)->status() != particleStatus_) - continue; - //calculate MET(neutrino as MET) - if (abs((*p)->pdg_id()) != 12 && abs((*p)->pdg_id()) != 14 && - abs((*p)->pdg_id()) != 16) { //for non-neutrino particles. - missingpx -= (*p)->momentum().px(); - missingpy -= (*p)->momentum().py(); - scalorEt += (*p)->momentum().perp(); - } - - // Check if the particleId is in our R-hadron list - std::vector::const_iterator partIdItr = find(particleIds_.begin(), particleIds_.end(), (*p)->pdg_id()); - if (partIdItr == particleIds_.end()) { - //calculate MET(neutrino+ HSCP as MET) - if (abs((*p)->pdg_id()) != 12 && abs((*p)->pdg_id()) != 14 && - abs((*p)->pdg_id()) != 16) { //for non-neutrino particles. - missingpx_nohscp -= (*p)->momentum().px(); - missingpy_nohscp -= (*p)->momentum().py(); - scalorEt_nohscp += (*p)->momentum().perp(); - } - } else { - particleStatusHist_->Fill((*p)->status()); - - std::pair::iterator, bool> pair = - particleIdsFoundMap_.insert(std::make_pair((*p)->pdg_id(), 1)); - if (!pair.second) { - ++(pair.first->second); - } - - double mag = sqrt(pow((*p)->momentum().px(), 2) + pow((*p)->momentum().py(), 2) + pow((*p)->momentum().pz(), 2)); - particleEtaHist_->Fill((*p)->momentum().eta()); - particlePhiHist_->Fill((*p)->momentum().phi()); - particlePHist_->Fill(mag); - particlePtHist_->Fill((*p)->momentum().perp()); - particleMassHist_->Fill((*p)->generated_mass()); - float particleP = mag; - float particleM = (*p)->generated_mass(); - particleBetaHist_->Fill(particleP / sqrt(particleP * particleP + particleM * particleM)); - particleBetaInverseHist_->Fill(sqrt(particleP * particleP + particleM * particleM) / particleP); - } - } - - h_genhscp_met->Fill(sqrt(missingpx * missingpx + missingpy * missingpy)); - h_genhscp_met_nohscp->Fill(sqrt(missingpx_nohscp * missingpx_nohscp + missingpy_nohscp * missingpy_nohscp)); - h_genhscp_scaloret->Fill(scalorEt); - h_genhscp_scaloret_nohscp->Fill(scalorEt_nohscp); - - delete myGenEvent; -} - -// ------------- Make SimTrack plots --------------------------------------------------------- -void HSCPValidator::makeSimTrackPlots(const edm::Event& iEvent) { - using namespace edm; - //get sim track infos - Handle simTracksHandle; - iEvent.getByToken(simTracksToken_, simTracksHandle); - const SimTrackContainer simTracks = *(simTracksHandle.product()); - - SimTrackContainer::const_iterator simTrack; - - for (simTrack = simTracks.begin(); simTrack != simTracks.end(); ++simTrack) { - // Check if the particleId is in our list - std::vector::const_iterator partIdItr = find(particleIds_.begin(), particleIds_.end(), simTrack->type()); - if (partIdItr == particleIds_.end()) - continue; - - simTrackParticleEtaHist_->Fill((*simTrack).momentum().eta()); - simTrackParticlePhiHist_->Fill((*simTrack).momentum().phi()); - simTrackParticlePHist_->Fill((*simTrack).momentum().P()); - - simTrackParticlePtHist_->Fill((*simTrack).momentum().pt()); - - simTrackParticleBetaHist_->Fill((*simTrack).momentum().P() / (*simTrack).momentum().e()); - - // std::cout<<"Particle:"<type()<<" Charge:"<charge()< triggerResults; - iEvent.getByToken(triggerResultsToken_, triggerResults); - - edm::TriggerResultsByName tr(nullptr, nullptr); - if (triggerResults.isValid()) { - tr = iEvent.triggerResultsByName(*triggerResults); - } - - if (!tr.isValid()) { - std::cout << "Trigger Results not available" << std::endl; - } - - edm::Handle trEvHandle; - iEvent.getByToken(trEvToken_, trEvHandle); - trigger::TriggerEvent trEv = *trEvHandle; - - unsigned int TrIndex_Unknown = tr.size(); - - // HLT TRIGGER BASED ON 1 MUON! - if (TrIndex_Unknown != tr.triggerIndex("HLT_Mu40_v1")) { - if (tr.accept(tr.triggerIndex("HLT_Mu40_v1"))) - hltmu->Fill(1); - else { - hltmu->Fill(0); - } - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_Mu30_v1")) { - if (IncreasedTreshold(trEv, InputTag("hltSingleMu30L3Filtered30", "", "HLT"), 40, 2.1, 1, false)) - hltmu->Fill(1); - else - hltmu->Fill(0); - } else { - printf("BUG with HLT_Mu\n"); - std::cout << "trigger names are : "; - for (unsigned int i = 0; i < tr.size(); i++) { - std::cout << " " << tr.triggerName(i); - } - std::cout << std::endl; - } - } - - // HLT TRIGGER BASED ON MET! - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v3")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v3"))) - hltmet->Fill(1); - else - hltmet->Fill(0); - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v2")) { - if (tr.accept(tr.triggerIndex("HLT_PFMHT150_v2"))) - hltmet->Fill(1); - else - hltmet->Fill(0); - } else { - printf("BUG with HLT_MET\n"); - } - } - - // HLT TRIGGER BASED ON 1 JET! - if (TrIndex_Unknown != tr.triggerIndex("HLT_Jet370_v1")) { - if (tr.accept(tr.triggerIndex("HLT_Jet370_v1"))) - hltjet->Fill(1); - else - hltjet->Fill(0); - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_Jet100U")) { - if (IncreasedTreshold(trEv, InputTag("hlt1jet100U", "", "HLT"), 140, 5., 1, false)) - hltjet->Fill(1); - else - hltjet->Fill(0); - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_Jet70U")) { - if (IncreasedTreshold(trEv, InputTag("hlt1jet70U", "", "HLT"), 140, 5., 1, false)) - hltjet->Fill(1); - else - hltjet->Fill(0); - } else { - if (TrIndex_Unknown != tr.triggerIndex("HLT_Jet50U")) { - if (IncreasedTreshold(trEv, InputTag("hlt1jet50U", "", "HLT"), 140, 2.5, 1, false)) - hltjet->Fill(1); - else - hltjet->Fill(0); - } else { - printf("BUG with HLT_Jet\n"); - } - } - } - } -} - -// ------------- Make simDigi plots ECAL ------------------------------------------------ -void HSCPValidator::makeSimDigiPlotsECAL(const edm::Event& iEvent) { - using namespace edm; - // EB SimHits - Handle ebSimHits; - iEvent.getByToken(ebSimHitToken_, ebSimHits); - if (!ebSimHits.isValid()) { - std::cout << "Cannot get EBSimHits from event!" << std::endl; - return; - } - // EE SimHits - Handle eeSimHits; - iEvent.getByToken(eeSimHitToken_, eeSimHits); - if (!eeSimHits.isValid()) { - std::cout << "Cannot get EESimHits from event!" << std::endl; - return; - } - // SimTracks - Handle simTracks; - iEvent.getByToken(simTrackToken_, simTracks); - if (!simTracks.isValid()) { - std::cout << "Cannot get SimTracks from event!" << std::endl; - return; - } - // EB Digis - Handle ebDigis; - iEvent.getByToken(EBDigiCollectionToken_, ebDigis); - if (!ebDigis.isValid()) { - std::cout << "Cannot get EBDigis from event!" << std::endl; - return; - } - // EE Digis - Handle eeDigis; - iEvent.getByToken(EEDigiCollectionToken_, eeDigis); - if (!eeDigis.isValid()) { - std::cout << "Cannot get EEDigis from event!" << std::endl; - return; - } - - // EB first - // 1) Look at SimTracks, getting only the HSCP tracks - // 2) Match to PCaloHits - // 3) Match to digis - int numMatchedSimHitsEventEB = 0; - int numMatchedDigisEventEB = 0; - const PCaloHitContainer* phitsEB = nullptr; - phitsEB = ebSimHits.product(); - for (SimTrackContainer::const_iterator simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack) { - // Check if the particleId is in our list - std::vector::const_iterator partIdItr = find(particleIds_.begin(), particleIds_.end(), simTrack->type()); - if (partIdItr == particleIds_.end()) - continue; - - PCaloHitContainer mySimHitsEB; - std::vector myDigisEB; - - //int particleId = simTrack->type(); - int trackId = simTrack->trackId(); - PCaloHitContainer::const_iterator simHitItr = phitsEB->begin(); - while (simHitItr != phitsEB->end()) { - if (simHitItr->geantTrackId() == trackId) - mySimHitsEB.push_back(*simHitItr); - ++simHitItr; - } - if (mySimHitsEB.empty()) { - std::cout << "Could not find matching EB PCaloHits for SimTrack id: " << trackId << ". Skipping this SimTrack" - << std::endl; - continue; - } - - // Loop over matching PCaloHits - for (simHitItr = mySimHitsEB.begin(); simHitItr != mySimHitsEB.end(); ++simHitItr) { - simHitsEcalEnergyHistEB_->Fill(simHitItr->energy()); - simHitsEcalTimeHistEB_->Fill(simHitItr->time()); - simHitsEcalEnergyVsTimeHistEB_->Fill(simHitItr->time(), simHitItr->energy()); - EBDetId simHitId = EBDetId(simHitItr->id()); - std::cout << "SimHit DetId found: " << simHitId << " for PDGid: " << simTrack->type() << std::endl; - //std::cout << "SimHit hashedIndex: " << simHitId.hashedIndex() << std::endl; - std::cout << "SimHit energy: " << simHitItr->energy() << " time: " << simHitItr->time() << std::endl; - ++numMatchedSimHitsEventEB; - - EBDigiCollection::const_iterator digiItr = ebDigis->begin(); - while (digiItr != ebDigis->end() && (digiItr->id() != simHitId)) - ++digiItr; - if (digiItr == ebDigis->end()) { - // Commented out for debugging ease, Aug 3 2009 - std::cout << "Could not find simHit detId: " << simHitId << "in EBDigiCollection!" << std::endl; - continue; - } - std::vector::const_iterator myDigiItr = myDigisEB.begin(); - while (myDigiItr != myDigisEB.end() && (digiItr->id() != myDigiItr->id())) - ++myDigiItr; - if (myDigiItr != myDigisEB.end()) - continue; // if this digi is already in the list, skip it - - ++numMatchedDigisEventEB; - EBDataFrame df = *digiItr; - myDigisEB.push_back(df); - std::cout << "SAMPLE ADCs: " - << "\t"; - for (int i = 0; i < 10; ++i) - std::cout << i << "\t"; - std::cout << std::endl << "\t\t"; - for (int i = 0; i < df.size(); ++i) { - std::cout << df.sample(i).adc() << "\t"; - } - std::cout << std::endl << std::endl; - - simHitsEcalDigiMatchEnergyHistEB_->Fill(simHitItr->energy()); - simHitsEcalDigiMatchTimeHistEB_->Fill(simHitItr->time()); - simHitsEcalDigiMatchEnergyVsTimeHistEB_->Fill(simHitItr->time(), simHitItr->energy()); - simHitsEcalDigiMatchIEtaHist_->Fill(((EBDetId)digiItr->id()).ieta()); - simHitsEcalDigiMatchIPhiHist_->Fill(((EBDetId)digiItr->id()).iphi()); - digiOccupancyMapEB_->Fill(((EBDetId)digiItr->id()).iphi(), ((EBDetId)digiItr->id()).ieta()); - } - } - simHitsEcalNumHistEB_->Fill(numMatchedSimHitsEventEB); - digisEcalNumHistEB_->Fill(numMatchedDigisEventEB); - - // EE next - int numMatchedSimHitsEventEE = 0; - int numMatchedDigisEventEE = 0; - const PCaloHitContainer* phitsEE = nullptr; - phitsEE = eeSimHits.product(); - for (SimTrackContainer::const_iterator simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack) { - // Check if the particleId is in our list - std::vector::const_iterator partIdItr = find(particleIds_.begin(), particleIds_.end(), simTrack->type()); - if (partIdItr == particleIds_.end()) - continue; - - PCaloHitContainer mySimHitsEE; - std::vector myDigisEE; - - //int particleId = simTrack->type(); - int trackId = simTrack->trackId(); - PCaloHitContainer::const_iterator simHitItr = phitsEE->begin(); - while (simHitItr != phitsEE->end()) { - if (simHitItr->geantTrackId() == trackId) - mySimHitsEE.push_back(*simHitItr); - ++simHitItr; - } - if (mySimHitsEE.empty()) { - std::cout << "Could not find matching EE PCaloHits for SimTrack id: " << trackId << ". Skipping this SimTrack" - << std::endl; - continue; - } - - // Loop over matching PCaloHits - for (simHitItr = mySimHitsEE.begin(); simHitItr != mySimHitsEE.end(); ++simHitItr) { - simHitsEcalEnergyHistEE_->Fill(simHitItr->energy()); - simHitsEcalTimeHistEE_->Fill(simHitItr->time()); - simHitsEcalEnergyVsTimeHistEE_->Fill(simHitItr->time(), simHitItr->energy()); - EEDetId simHitId = EEDetId(simHitItr->id()); - std::cout << "SimHit DetId found: " << simHitId << " for PDGid: " << simTrack->type() << std::endl; - //std::cout << "SimHit hashedIndex: " << simHitId.hashedIndex() << std::endl; - std::cout << "SimHit energy: " << simHitItr->energy() << " time: " << simHitItr->time() << std::endl; - ++numMatchedSimHitsEventEE; - - EEDigiCollection::const_iterator digiItr = eeDigis->begin(); - while (digiItr != eeDigis->end() && (digiItr->id() != simHitId)) - ++digiItr; - if (digiItr == eeDigis->end()) { - // Commented out for debugging ease, Aug 3 2009 - std::cout << "Could not find simHit detId: " << simHitId << "in EEDigiCollection!" << std::endl; - continue; - } - std::vector::const_iterator myDigiItr = myDigisEE.begin(); - while (myDigiItr != myDigisEE.end() && (digiItr->id() != myDigiItr->id())) - ++myDigiItr; - if (myDigiItr != myDigisEE.end()) - continue; // if this digi is already in the list, skip it - - ++numMatchedDigisEventEE; - EEDataFrame df = *digiItr; - myDigisEE.push_back(df); - std::cout << "SAMPLE ADCs: " - << "\t"; - for (int i = 0; i < 10; ++i) - std::cout << i << "\t"; - std::cout << std::endl << "\t\t"; - for (int i = 0; i < df.size(); ++i) { - std::cout << df.sample(i).adc() << "\t"; - } - std::cout << std::endl << std::endl; - - simHitsEcalDigiMatchEnergyHistEE_->Fill(simHitItr->energy()); - simHitsEcalDigiMatchTimeHistEE_->Fill(simHitItr->time()); - simHitsEcalDigiMatchEnergyVsTimeHistEE_->Fill(simHitItr->time(), simHitItr->energy()); - if (((EEDetId)digiItr->id()).zside() > 0) - digiOccupancyMapEEP_->Fill(((EEDetId)digiItr->id()).ix(), ((EEDetId)digiItr->id()).iy()); - else if (((EEDetId)digiItr->id()).zside() < 0) - digiOccupancyMapEEM_->Fill(((EEDetId)digiItr->id()).ix(), ((EEDetId)digiItr->id()).iy()); - } - } - simHitsEcalNumHistEE_->Fill(numMatchedSimHitsEventEE); - digisEcalNumHistEE_->Fill(numMatchedDigisEventEE); -} -// ------------- Make Reco plots --------------------------------------------------------- -void HSCPValidator::makeRecoPlots(const edm::Event& iEvent) { - using namespace edm; - using namespace reco; - - Handle evt; - iEvent.getByToken(token_, evt); - - Handle tkTracks; - iEvent.getByToken(tkTracksToken_, tkTracks); - const reco::TrackCollection tkTC = *(tkTracks.product()); - - Handle > dEdxTrackHandle; - iEvent.getByToken(dEdxTrackToken_, dEdxTrackHandle); - const ValueMap dEdxTrack = *dEdxTrackHandle.product(); - - for (size_t i = 0; i < tkTracks->size(); i++) { - reco::TrackRef trkRef = reco::TrackRef(tkTracks, i); - - if (trkRef->pt() < 5 || trkRef->normalizedChi2() > 10) - continue; - - double minR = 999; - double hscpgenPt = -1; - - HepMC::GenEvent* myGenEvent = new HepMC::GenEvent(*(evt->GetEvent())); - for (HepMC::GenEvent::particle_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end(); ++p) { - if ((*p)->status() != particleStatus_) - continue; - // Check if the particleId is in our R-hadron list - std::vector::const_iterator partIdItr = find(particleIds_.begin(), particleIds_.end(), (*p)->pdg_id()); - if (partIdItr != particleIds_.end()) { - //calculate DeltaR - double distance = - pow((*p)->momentum().eta() - trkRef->eta(), 2) + pow((*p)->momentum().phi() - trkRef->phi(), 2); - distance = sqrt(distance); - if (distance < minR) { - minR = distance; - hscpgenPt = (*p)->momentum().perp(); - } - } - } - RecoHSCPPtVsGenPt->Fill(trkRef->pt(), hscpgenPt); - - delete myGenEvent; - double dedx = dEdxTrack[trkRef].dEdx(); - dedxVsp->Fill(trkRef->p(), dedx); - } -} - -// ------------- Make simDigi plots RPC ------------------------------------------------- -void HSCPValidator::makeSimDigiPlotsRPC(const edm::Event& iEvent) { - using namespace edm; - - //std::cout << " Getting the SimHits " < > theSimHitContainers; - iEvent.getManyByType(theSimHitContainers); - //std::cout << " The Number of sim Hits is " << theSimHitContainers.size() < rpcRecHits; - iEvent.getByToken(rpcRecHitsToken_, rpcRecHits); - - //SimTrack Stuff - std::vector theSimHits; - - for (int i = 0; i < int(theSimHitContainers.size()); i++) { - theSimHits.insert(theSimHits.end(), theSimHitContainers.at(i)->begin(), theSimHitContainers.at(i)->end()); - } - - for (std::vector::const_iterator iHit = theSimHits.begin(); iHit != theSimHits.end(); iHit++) { - std::vector::const_iterator partIdItr = find(particleIds_.begin(), particleIds_.end(), (*iHit).particleType()); - if (partIdItr == particleIds_.end()) - continue; - - DetId theDetUnitId((*iHit).detUnitId()); - - DetId simdetid = DetId((*iHit).detUnitId()); - - if (simdetid.det() == DetId::Muon && simdetid.subdetId() == MuonSubdetId::RPC) { //Only RPCs - - RPCDetId rollId(theDetUnitId); - RPCGeomServ rpcsrv(rollId); - - //std::cout << " Reading the Roll"<roll(rollId); - - //std::cout << " Getting the Surface"<surface(); - - GlobalPoint SimHitInGlobal = RPCSurface.toGlobal((*iHit).localPosition()); - - std::cout << "\t\t We have an RPC Sim Hit! in t=" << (*iHit).timeOfFlight() << "ns " << rpcsrv.name() - << " Global postition=" << SimHitInGlobal << std::endl; - - int layer = 0; - - if (rollId.station() == 1 && rollId.layer() == 1) - layer = 1; - else if (rollId.station() == 1 && rollId.layer() == 2) - layer = 2; - else if (rollId.station() == 2 && rollId.layer() == 1) - layer = 3; - else if (rollId.station() == 2 && rollId.layer() == 2) - layer = 4; - else if (rollId.station() == 3) - layer = 5; - else if (rollId.station() == 4) - layer = 6; - - if (rollId.region() == 0) { - rpcTimeOfFlightBarrel_[layer - 1]->Fill((*iHit).timeOfFlight()); - } else { - rpcTimeOfFlightEndCap_[rollId.station() - 1]->Fill((*iHit).timeOfFlight()); - } - - std::cout << "\t\t r=" << SimHitInGlobal.mag() << " phi=" << SimHitInGlobal.phi() - << " eta=" << SimHitInGlobal.eta() << std::endl; - - int cluSize = 0; - int bx = 100; - float minres = 3000.; - - std::cout << "\t \t \t \t Getting RecHits in Roll Asociated" << std::endl; - - typedef std::pair rangeRecHits; - rangeRecHits recHitCollection = rpcRecHits->get(rollId); - RPCRecHitCollection::const_iterator recHit; - - efficiencyRPCRecHitSimDigis_->Fill(0); - - for (recHit = recHitCollection.first; recHit != recHitCollection.second; recHit++) { - LocalPoint recHitPos = recHit->localPosition(); - float res = (*iHit).localPosition().x() - recHitPos.x(); - if (fabs(res) < fabs(minres)) { - minres = res; - cluSize = recHit->clusterSize(); - bx = recHit->BunchX(); - std::cout << "\t New Min Res " << res << "cm." << std::endl; - } - } - - if (minres < 3000.) { - residualsRPCRecHitSimDigis_->Fill(minres); - efficiencyRPCRecHitSimDigis_->Fill(1); - cluSizeDistribution_->Fill(cluSize); - if (rollId.region() == 0) - rpcBXBarrel_[layer - 1]->Fill(bx); - else - rpcBXEndCap_[rollId.station() - 1]->Fill(bx); - } - } - } -} - -// ------------- Convert int to string for printing ------------------------------------- -std::string HSCPValidator::intToString(int num) { - using namespace std; - ostringstream myStream; - myStream << num << flush; - return (myStream.str()); //returns the string form of the stringstream object -} - -//------Increase trigger thresold---- - -bool HSCPValidator::IncreasedTreshold(const trigger::TriggerEvent& trEv, - const edm::InputTag& InputPath, - double NewThreshold, - double etaCut, - int NObjectAboveThreshold, - bool averageThreshold) { - unsigned int filterIndex = trEv.filterIndex(InputPath); - //if(filterIndex %s XXX %s\n",filterIndex,trEv.filterTag(filterIndex).label().c_str(), trEv.filterTag(filterIndex).process().c_str()); - - if (filterIndex < trEv.sizeFilters()) { - const trigger::Vids& VIDS(trEv.filterIds(filterIndex)); - const trigger::Keys& KEYS(trEv.filterKeys(filterIndex)); - const int nI(VIDS.size()); - const int nK(KEYS.size()); - assert(nI == nK); - const int n(std::max(nI, nK)); - const trigger::TriggerObjectCollection& TOC(trEv.getObjects()); - - if (!averageThreshold) { - int NObjectAboveThresholdObserved = 0; - for (int i = 0; i != n; ++i) { - if (TOC[KEYS[i]].pt() > NewThreshold && fabs(TOC[KEYS[i]].eta()) < etaCut) - NObjectAboveThresholdObserved++; - //cout << " " << i << " " << VIDS[i] << "/" << KEYS[i] << ": "<< TOC[KEYS[i]].id() << " " << TOC[KEYS[i]].pt() << " " << TOC[KEYS[i]].eta() << " " << TOC[KEYS[i]].phi() << " " << TOC[KEYS[i]].mass()<< endl; - } - if (NObjectAboveThresholdObserved >= NObjectAboveThreshold) - return true; - - } else { - std::vector ObjPt; - - for (int i = 0; i != n; ++i) { - ObjPt.push_back(TOC[KEYS[i]].pt()); - //cout << " " << i << " " << VIDS[i] << "/" << KEYS[i] << ": "<< TOC[KEYS[i]].id() << " " << TOC[KEYS[i]].pt() << " " << TOC[KEYS[i]].eta() << " " << TOC[KEYS[i]].phi() << " " << TOC[KEYS[i]].mass()<< endl; - } - if ((int)(ObjPt.size()) < NObjectAboveThreshold) - return false; - std::sort(ObjPt.begin(), ObjPt.end()); - - double Average = 0; - for (int i = 0; i < NObjectAboveThreshold; i++) { - Average += ObjPt[ObjPt.size() - 1 - i]; - } - Average /= NObjectAboveThreshold; - //cout << "AVERAGE = " << Average << endl; - - if (Average > NewThreshold) - return true; - } - } - return false; -} - -//define this as a plug-in -DEFINE_FWK_MODULE(HSCPValidator); diff --git a/SUSYBSMAnalysis/HSCP/plugins/HSCPValidator.h b/SUSYBSMAnalysis/HSCP/plugins/HSCPValidator.h deleted file mode 100644 index 7c02041f393e9..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/HSCPValidator.h +++ /dev/null @@ -1,150 +0,0 @@ -// -*- C++ -*- -// -// Package: HSCP -// Class: HSCPValidator -// -/**\class HSCPValidator HSCPValidator.cc HSCPValidation/HSCPValidator/src/HSCPValidator.cc - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: Seth Cooper,27 1-024,+41227672342, -// Created: Wed Apr 14 14:27:52 CEST 2010 -// -// -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "Geometry/RPCGeometry/interface/RPCGeometry.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "FWCore/Common/interface/TriggerResultsByName.h" -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/TrackReco/interface/DeDxData.h" -#include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" -#include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" - -// - -#include "TH2F.h" -// -// class declaration -// - -class HSCPValidator : public edm::EDAnalyzer { -public: - explicit HSCPValidator(const edm::ParameterSet&); - ~HSCPValidator() override; - -private: - void beginJob() override; - void analyze(const edm::Event&, const edm::EventSetup&) override; - void endJob() override; - std::string intToString(int num); - void makeGenPlots(const edm::Event& iEvent); - void makeSimTrackPlots(const edm::Event& iEvent); - void makeSimDigiPlotsECAL(const edm::Event& iEvent); - void makeSimDigiPlotsRPC(const edm::Event& iEvent); - void makeHLTPlots(const edm::Event& iEvent); - void makeRecoPlots(const edm::Event& iEvent); - bool IncreasedTreshold(const trigger::TriggerEvent& trEv, - const edm::InputTag& InputPath, - double NewThreshold, - double etaCut, - int NObjectAboveThreshold, - bool averageThreshold); - // ----------member data --------------------------- - bool doGenPlots_; - bool doHLTPlots_; - bool doSimTrackPlots_; - bool doSimDigiPlots_; - bool doRecoPlots_; - - // GEN section - edm::EDGetTokenT token_; - edm::EDGetTokenT simTracksToken_; - edm::EDGetTokenT trEvToken_; - edm::EDGetTokenT tkTracksToken_; - edm::EDGetTokenT > dEdxTrackToken_; - edm::EDGetTokenT rpcRecHitsToken_; - edm::EDGetTokenT triggerResultsToken_; - std::vector particleIds_; - int particleStatus_; - std::map particleIdsFoundMap_; - TH1F* particleEtaHist_; - TH1F* particlePhiHist_; - TH1F* particlePHist_; - TH1F* particlePtHist_; - TH1F* particleMassHist_; - TH1F* particleStatusHist_; - TH1F* particleBetaHist_; - TH1F* particleBetaInverseHist_; - TH1F* h_genhscp_met; - TH1F* h_genhscp_met_nohscp; - TH1F* h_genhscp_scaloret; - TH1F* h_genhscp_scaloret_nohscp; - - //SIM-Track section - TH1F* simTrackParticleEtaHist_; - TH1F* simTrackParticlePhiHist_; - TH1F* simTrackParticlePHist_; - TH1F* simTrackParticlePtHist_; - TH1F* simTrackParticleBetaHist_; - - // SIM-DIGI section - edm::EDGetTokenT ebSimHitToken_; - edm::EDGetTokenT eeSimHitToken_; - edm::EDGetTokenT simTrackToken_; - edm::EDGetTokenT EBDigiCollectionToken_; - edm::EDGetTokenT EEDigiCollectionToken_; - edm::ESHandle rpcGeo; - // ECAL - TH1F* simHitsEcalEnergyHistEB_; - TH1F* simHitsEcalTimeHistEB_; - TH1F* simHitsEcalNumHistEB_; - TH2F* simHitsEcalEnergyVsTimeHistEB_; - TH1F* simHitsEcalEnergyHistEE_; - TH1F* simHitsEcalTimeHistEE_; - TH1F* simHitsEcalNumHistEE_; - TH2F* simHitsEcalEnergyVsTimeHistEE_; - TH1F* simHitsEcalDigiMatchEnergyHistEB_; - TH1F* simHitsEcalDigiMatchTimeHistEB_; - TH2F* simHitsEcalDigiMatchEnergyVsTimeHistEB_; - TH1F* simHitsEcalDigiMatchEnergyHistEE_; - TH1F* simHitsEcalDigiMatchTimeHistEE_; - TH2F* simHitsEcalDigiMatchEnergyVsTimeHistEE_; - TH1F* simHitsEcalDigiMatchIEtaHist_; - TH1F* simHitsEcalDigiMatchIPhiHist_; - TH1F* digisEcalNumHistEB_; - TH1F* digisEcalNumHistEE_; - TH2F* digiOccupancyMapEB_; - TH2F* digiOccupancyMapEEP_; - TH2F* digiOccupancyMapEEM_; - // RPC - TH1F* residualsRPCRecHitSimDigis_; - TH1F* efficiencyRPCRecHitSimDigis_; - TH1F* cluSizeDistribution_; - TH1F* rpcTimeOfFlightBarrel_[6]; - TH1F* rpcBXBarrel_[6]; - TH1F* rpcTimeOfFlightEndCap_[3]; - TH1F* rpcBXEndCap_[3]; - //HLT - TH1F* hltmet; - TH1F* hltjet; - TH1F* hltmu; - //RECO - TH2F* RecoHSCPPtVsGenPt; - TH2F* dedxVsp; -}; diff --git a/SUSYBSMAnalysis/HSCP/plugins/HSCParticleProducer.cc b/SUSYBSMAnalysis/HSCP/plugins/HSCParticleProducer.cc deleted file mode 100644 index 3933f177d839a..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/HSCParticleProducer.cc +++ /dev/null @@ -1,363 +0,0 @@ -// -*- C++ -*- -// -// Package: HSCParticleProducer -// Class: HSCParticleProducer -// -/**\class HSCParticleProducer HSCParticleProducer.cc SUSYBSMAnalysis/HSCParticleProducer/src/HSCParticleProducer.cc - - Description: Producer for HSCP candidates, merging tracker dt information and rpc information - - Implementation: - -*/ -// -// Original Author: Loic Quertenmont -// Created: Wed Oct 10 12:01:28 CEST 2007 -// -// - -// user include files -#include "SUSYBSMAnalysis/HSCP/plugins/HSCParticleProducer.h" - -using namespace susybsm; -using namespace reco; - -HSCParticleProducer::HSCParticleProducer(const edm::ParameterSet& iConfig) { - using namespace edm; - using namespace std; - - // the Act as Event filter - Filter_ = iConfig.getParameter("filter"); - - // the input collections - m_trackToken = consumes(iConfig.getParameter("tracks")); - m_muonsToken = consumes(iConfig.getParameter("muons")); - m_MTmuonsToken = consumes(iConfig.getParameter("MTmuons")); - m_trackIsoToken = consumes(iConfig.getParameter("tracksIsolation")); - - useBetaFromTk = iConfig.getParameter("useBetaFromTk"); - useBetaFromMuon = iConfig.getParameter("useBetaFromMuon"); - useBetaFromRpc = iConfig.getParameter("useBetaFromRpc"); - useBetaFromEcal = iConfig.getParameter("useBetaFromEcal"); - - // the parameters - minTkP = iConfig.getParameter("minTkP"); // 30 - maxTkChi2 = iConfig.getParameter("maxTkChi2"); // 5 - minTkHits = iConfig.getParameter("minTkHits"); // 9 - minMuP = iConfig.getParameter("minMuP"); // 30 - minDR = iConfig.getParameter("minDR"); // 0.1 - minSAMuPt = iConfig.getParameter("minSAMuPt"); // 70 - minMTMuPt = iConfig.getParameter("minMTMuPt"); // 70 - minMTDR = iConfig.getParameter("minMTDR"); // 0.3 - maxInvPtDiff = iConfig.getParameter("maxInvPtDiff"); // 0.005 - - if (useBetaFromTk) - beta_calculator_TK = new BetaCalculatorTK(iConfig, consumesCollector()); - if (useBetaFromMuon) - beta_calculator_MUON = new BetaCalculatorMUON(iConfig, consumesCollector()); - if (useBetaFromRpc) - beta_calculator_RPC = new BetaCalculatorRPC(iConfig, consumesCollector()); - if (useBetaFromEcal) - beta_calculator_ECAL = new BetaCalculatorECAL(iConfig, consumesCollector()); - - // Load all the selections - std::vector SelectionParameters = - iConfig.getParameter >("SelectionParameters"); - for (unsigned int i = 0; i < SelectionParameters.size(); i++) { - Selectors.push_back(new CandidateSelector(SelectionParameters[i])); - } - - // what I produce - produces(); - if (useBetaFromEcal) - produces(); -} - -HSCParticleProducer::~HSCParticleProducer() { - // 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 HSCParticleProducer::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - using namespace reco; - using namespace std; - using namespace susybsm; - - // information from the muons - edm::Handle muonCollectionHandle; - iEvent.getByToken(m_muonsToken, muonCollectionHandle); - - //information from the mean timer muons - edm::Handle MTmuonCollectionHandle; - iEvent.getByToken(m_MTmuonsToken, MTmuonCollectionHandle); - - // information from the tracks - edm::Handle trackCollectionHandle; - iEvent.getByToken(m_trackToken, trackCollectionHandle); - - // information from the tracks iso - edm::Handle trackIsoCollectionHandle; - iEvent.getByToken(m_trackIsoToken, trackIsoCollectionHandle); - - // creates the output collection - susybsm::HSCParticleCollection* hscp = new susybsm::HSCParticleCollection; - std::unique_ptr result(hscp); - - susybsm::HSCPCaloInfoCollection* caloInfoColl = new susybsm::HSCPCaloInfoCollection; - std::unique_ptr caloInfoCollaptr(caloInfoColl); - - // Fill the output collection with HSCP Candidate (the candiate only contains ref to muon AND/OR track object) - *hscp = getHSCPSeedCollection(trackCollectionHandle, muonCollectionHandle, MTmuonCollectionHandle); - - // find the track ref for isolation purposed (main track is supposed to be the Iso track after refitting) - for (susybsm::HSCParticleCollection::iterator hscpcandidate = hscp->begin(); hscpcandidate != hscp->end(); - ++hscpcandidate) { - // Matching is needed because input track collection and muon inner track may lightly differs due to track refit - reco::TrackRef track = hscpcandidate->trackRef(); - if (track.isNull()) - continue; - float dRMin = 1000; - int found = -1; - for (unsigned int t = 0; t < trackIsoCollectionHandle->size(); t++) { - reco::TrackRef Isotrack = reco::TrackRef(trackIsoCollectionHandle, t); - if (fabs((1.0 / track->pt()) - (1.0 / Isotrack->pt())) > maxInvPtDiff) - continue; - float dR = deltaR(track->momentum(), Isotrack->momentum()); - if (dR <= minDR && dR < dRMin) { - dRMin = dR; - found = t; - } - } - if (found >= 0) - hscpcandidate->setTrackIso(reco::TrackRef(trackIsoCollectionHandle, found)); - } - - // compute the TRACKER contribution - if (useBetaFromTk) { - for (susybsm::HSCParticleCollection::iterator hscpcandidate = hscp->begin(); hscpcandidate != hscp->end(); - ++hscpcandidate) { - beta_calculator_TK->addInfoToCandidate(*hscpcandidate, iEvent, iSetup); - } - } - - // compute the MUON contribution - if (useBetaFromMuon) { - for (susybsm::HSCParticleCollection::iterator hscpcandidate = hscp->begin(); hscpcandidate != hscp->end(); - ++hscpcandidate) { - beta_calculator_MUON->addInfoToCandidate(*hscpcandidate, iEvent, iSetup); - } - } - - // compute the RPC contribution - if (useBetaFromRpc) { - for (susybsm::HSCParticleCollection::iterator hscpcandidate = hscp->begin(); hscpcandidate != hscp->end(); - ++hscpcandidate) { - beta_calculator_RPC->addInfoToCandidate(*hscpcandidate, iEvent, iSetup); - } - } - - // compute the ECAL contribution - if (useBetaFromEcal) { - int Index = 0; - caloInfoColl->resize(hscp->size()); - for (susybsm::HSCParticleCollection::iterator hscpcandidate = hscp->begin(); hscpcandidate != hscp->end(); - ++hscpcandidate, Index++) { - beta_calculator_ECAL->addInfoToCandidate( - *hscpcandidate, trackCollectionHandle, iEvent, iSetup, (*caloInfoColl)[Index]); - } - } - - // cleanup the collection based on the input selection - for (int i = 0; i < (int)hscp->size(); i++) { - susybsm::HSCParticleCollection::iterator hscpcandidate = hscp->begin() + i; - bool decision = false; - for (unsigned int s = 0; s < Selectors.size(); s++) { - decision |= Selectors[s]->isSelected(*hscpcandidate); - } - if (!decision) { - hscp->erase(hscpcandidate); - if (useBetaFromEcal) - caloInfoColl->erase(caloInfoColl->begin() + i); - i--; - } - } - bool filterResult = !Filter_ || (Filter_ && !hscp->empty()); - - // output result - if (useBetaFromEcal) { - edm::OrphanHandle caloInfoHandle = iEvent.put(std::move(caloInfoCollaptr)); - // adding the reftoCaloInfoObject to the HSCP Object - for (int i = 0; i < (int)hscp->size(); i++) { - susybsm::HSCParticleCollection::iterator hscpcandidate = hscp->begin() + i; - hscpcandidate->setCaloInfo(HSCPCaloInfoRef(caloInfoHandle, i)); - } - } - - // output result - - edm::OrphanHandle putHandle = iEvent.put(std::move(result)); - // if(useBetaFromEcal){ - // edm::RefProd hscpCollectionHandle = iEvent.getRefBeforePut(); - // filler.insert(putHandle, CaloInfoColl.begin(), CaloInfoColl.end()); - // filler.fill(); - // iEvent.put(std::move(CaloInfoMap)); - // } - - return filterResult; -} - -// ------------ method called once each job just before starting event loop ------------ -void HSCParticleProducer::beginJob() {} - -// ------------ method called once each job just after ending the event loop ------------ -void HSCParticleProducer::endJob() {} - -std::vector HSCParticleProducer::getHSCPSeedCollection( - edm::Handle& trackCollectionHandle, - edm::Handle& muonCollectionHandle, - edm::Handle& MTmuonCollectionHandle) { - std::vector HSCPCollection; - - // Store a local vector of track ref (that can be modified if matching) - std::vector tracks; - for (unsigned int i = 0; i < trackCollectionHandle->size(); i++) { - TrackRef track = reco::TrackRef(trackCollectionHandle, i); - - //If track is from muon always keep it - bool isMuon = false; - for (unsigned int m = 0; m < muonCollectionHandle->size(); m++) { - reco::MuonRef muon = reco::MuonRef(muonCollectionHandle, m); - TrackRef innertrack = muon->innerTrack(); - if (innertrack.isNull()) - continue; - if (fabs((1.0 / innertrack->pt()) - (1.0 / track->pt())) > maxInvPtDiff) - continue; - float dR = deltaR(innertrack->momentum(), track->momentum()); - if (dR <= minDR) - isMuon = true; - } - - if ((track->p() < minTkP || (track->chi2() / track->ndof()) > maxTkChi2 || track->found() < minTkHits) && !isMuon) - continue; - tracks.push_back(track); - } - - // Loop on muons with inner track ref and create Muon HSCP Candidate - for (unsigned int m = 0; m < muonCollectionHandle->size(); m++) { - reco::MuonRef muon = reco::MuonRef(muonCollectionHandle, m); - double SApt = -1; - if (muon->isStandAloneMuon()) - SApt = muon->standAloneMuon()->pt(); - if (muon->p() < minMuP && SApt < minSAMuPt) - continue; - TrackRef innertrack = muon->innerTrack(); - if (innertrack.isNull()) - continue; - - // Check if the inner track match any track in order to create a Muon+Track HSCP Candidate - // Matching is needed because input track collection and muon inner track may lightly differs due to track refit - float dRMin = 1000; - int found = -1; - for (unsigned int t = 0; t < tracks.size(); t++) { - reco::TrackRef track = tracks[t]; - if (fabs((1.0 / innertrack->pt()) - (1.0 / track->pt())) > maxInvPtDiff) - continue; - float dR = deltaR(innertrack->momentum(), track->momentum()); - if (dR <= minDR && dR < dRMin) { - dRMin = dR; - found = t; - } - } - - HSCParticle candidate; - candidate.setMuon(muon); - if (found >= 0) { - // printf("MUON with Inner Track Matching --> DR = %6.2f (%6.2f %+6.2f %+6.2f):(%6.2f %+6.2f %+6.2f) vs (%6.2f %+6.2f %+6.2f)\n",dRMin,muon->pt(), muon->eta(), muon->phi(), innertrack->pt(), innertrack->eta(), innertrack->phi(), tracks[found]->pt(), tracks[found]->eta(), tracks[found]->phi() ); - candidate.setTrack(tracks[found]); - tracks.erase(tracks.begin() + found); - } - HSCPCollection.push_back(candidate); - } - - // Loop on muons without inner tracks and create Muon HSCP Candidate - for (unsigned int m = 0; m < muonCollectionHandle->size(); m++) { - reco::MuonRef muon = reco::MuonRef(muonCollectionHandle, m); - double SApt = -1; - if (muon->isStandAloneMuon()) - SApt = muon->standAloneMuon()->pt(); - if (muon->p() < minMuP && SApt < minSAMuPt) - continue; - TrackRef innertrack = muon->innerTrack(); - if (innertrack.isNonnull()) - continue; - - // Check if the muon match any track in order to create a Muon+Track HSCP Candidate - float dRMin = 1000; - int found = -1; - for (unsigned int t = 0; t < tracks.size(); t++) { - reco::TrackRef track = tracks[t]; - if (fabs((1.0 / muon->pt()) - (1.0 / track->pt())) > maxInvPtDiff) - continue; - float dR = deltaR(muon->momentum(), track->momentum()); - if (dR <= minDR && dR < dRMin) { - dRMin = dR; - found = t; - } - } - - HSCParticle candidate; - candidate.setMuon(muon); - if (found >= 0) { - // printf("MUON without Inner Track Matching --> DR = %6.2f (%6.2f %+6.2f %+6.2f) vs (%6.2f %+6.2f %+6.2f)\n",dRMin,muon->pt(), muon->eta(), muon->phi(), tracks[found]->pt(), tracks[found]->eta(), tracks[found]->phi() ); - candidate.setTrack(tracks[found]); - tracks.erase(tracks.begin() + found); - } - HSCPCollection.push_back(candidate); - } - - //Loop on MT muons and add to collection - for (unsigned int m = 0; m < MTmuonCollectionHandle->size(); m++) { - reco::MuonRef MTmuon = reco::MuonRef(MTmuonCollectionHandle, m); - if (MTmuon->pt() < minMTMuPt) - continue; - - //Check if matches muon HSCP candidate and add reference - float dRMin = 1000; - int found = -1; - for (unsigned int i = 0; i < HSCPCollection.size(); i++) { - if (!HSCPCollection[i].hasMuonRef()) - continue; - reco::MuonRef muon = HSCPCollection[i].muonRef(); - float dR = deltaR(muon->momentum(), MTmuon->momentum()); - if (dR <= minMTDR && dR < dRMin) { - dRMin = dR; - found = i; - } - } - if (found > -1) - HSCPCollection[found].setMTMuon(MTmuon); - else { - HSCParticle candidate; - candidate.setMTMuon(MTmuon); - HSCPCollection.push_back(candidate); - } - } - - // Loop on tracks not matching muon and create Track HSCP Candidate - for (unsigned int i = 0; i < tracks.size(); i++) { - HSCParticle candidate; - candidate.setTrack(tracks[i]); - HSCPCollection.push_back(candidate); - } - - return HSCPCollection; -} - -//define this as a plug-in -DEFINE_FWK_MODULE(HSCParticleProducer); diff --git a/SUSYBSMAnalysis/HSCP/plugins/HSCParticleProducer.h b/SUSYBSMAnalysis/HSCP/plugins/HSCParticleProducer.h deleted file mode 100644 index 7b9a2a3d568cf..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/HSCParticleProducer.h +++ /dev/null @@ -1,95 +0,0 @@ -// -*- C++ -*- -// -// Package: HSCParticleProducer -// Class: HSCParticleProducer -// -/**\class HSCParticleProducer HSCParticleProducer.h SUSYBSMAnalysis/HSCParticleProducer/interface/HSCParticleProducer.h - - Description: Producer for HSCP candidates, merging tracker dt information and rpc information - - Implementation: - -*/ -// -// Original Author: Loic Quertenmont -// Created: Wed Oct 10 12:01:28 CEST 2007 - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "CommonTools/UtilAlgos/interface/DeltaR.h" - -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorTK.h" -#include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorMUON.h" -#include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorRPC.h" -#include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorECAL.h" -#include "SUSYBSMAnalysis/HSCP/interface/CandidateSelector.h" - -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" -#include "Math/GenVector/VectorUtil.h" - -#include -#include - -#include -#include - -// -// class decleration -// -class HSCParticleProducer : public edm::EDFilter { -public: - explicit HSCParticleProducer(const edm::ParameterSet&); - ~HSCParticleProducer() override; - -private: - void beginJob() override; - bool filter(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - std::vector getHSCPSeedCollection(edm::Handle& trackCollectionHandle, - edm::Handle& muonCollectionHandle, - edm::Handle& MTmuonCollectionHandle); - - // ----------member data --------------------------- - bool Filter_; - - edm::EDGetTokenT m_trackToken; - edm::EDGetTokenT m_trackIsoToken; - edm::EDGetTokenT m_muonsToken; - edm::EDGetTokenT m_MTmuonsToken; - - bool useBetaFromTk; - bool useBetaFromMuon; - bool useBetaFromRpc; - bool useBetaFromEcal; - - float minTkP; - float maxTkChi2; - unsigned int minTkHits; - float minMuP; - float minSAMuPt; - float minMTMuPt; - float minDR; - float minMTDR; - float maxInvPtDiff; - - BetaCalculatorTK* beta_calculator_TK; - BetaCalculatorMUON* beta_calculator_MUON; - BetaCalculatorRPC* beta_calculator_RPC; - BetaCalculatorECAL* beta_calculator_ECAL; - - std::vector Selectors; -}; diff --git a/SUSYBSMAnalysis/HSCP/plugins/HSCParticleSelector.cc b/SUSYBSMAnalysis/HSCP/plugins/HSCParticleSelector.cc deleted file mode 100644 index 83006d412f6b9..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/HSCParticleSelector.cc +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/EDFilter.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/View.h" - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" -#include "SUSYBSMAnalysis/HSCP/interface/CandidateSelector.h" - -// -// class declaration -// -class HSCParticleSelector : public edm::EDFilter { -public: - explicit HSCParticleSelector(const edm::ParameterSet&); - ~HSCParticleSelector() override; - -private: - void beginJob() override; - bool filter(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - edm::EDGetTokenT sourceToken_; - - bool Filter_; - std::vector Selectors; -}; - -///////////////////////////////////////////////////////////////////////////////////// -HSCParticleSelector::HSCParticleSelector(const edm::ParameterSet& iConfig) { - // What is being produced - produces(); - - // Input products - sourceToken_ = consumes(iConfig.getParameter("source")); - Filter_ = iConfig.getParameter("filter"); - - // Load all the selections - std::vector SelectionParameters = - iConfig.getParameter >("SelectionParameters"); - for (unsigned int i = 0; i < SelectionParameters.size(); i++) { - Selectors.push_back(new CandidateSelector(SelectionParameters[i])); - } -} - -///////////////////////////////////////////////////////////////////////////////////// -HSCParticleSelector::~HSCParticleSelector() {} - -///////////////////////////////////////////////////////////////////////////////////// -void HSCParticleSelector::beginJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -void HSCParticleSelector::endJob() {} - -///////////////////////////////////////////////////////////////////////////////////// -bool HSCParticleSelector::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) { - // Source Collection - edm::Handle SourceHandle; - if (!iEvent.getByToken(sourceToken_, SourceHandle)) { - edm::LogError("") << ">>> HSCParticleCollection does not exist !!!"; - return false; - } - susybsm::HSCParticleCollection Source = *SourceHandle.product(); - - // Output Collection - susybsm::HSCParticleCollection* output = new susybsm::HSCParticleCollection; - std::unique_ptr result(output); - - // cleanup the collection based on the input selection - for (susybsm::HSCParticleCollection::iterator hscpcandidate = Source.begin(); hscpcandidate < Source.end(); - ++hscpcandidate) { - bool decision = false; - for (unsigned int i = 0; i < Selectors.size(); i++) { - decision |= Selectors[i]->isSelected(*hscpcandidate); - } - if (decision) { - susybsm::HSCParticle* newhscp = new susybsm::HSCParticle(*hscpcandidate); - output->push_back(*newhscp); - } - } - - bool filterResult = !Filter_ || (Filter_ && !output->empty()); - - iEvent.put(std::move(result)); - - return filterResult; -} - -DEFINE_FWK_MODULE(HSCParticleSelector); diff --git a/SUSYBSMAnalysis/HSCP/plugins/MuonSegmentProducer.cc b/SUSYBSMAnalysis/HSCP/plugins/MuonSegmentProducer.cc deleted file mode 100644 index 09fc65cf524c3..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/MuonSegmentProducer.cc +++ /dev/null @@ -1,136 +0,0 @@ -// -*- C++ -*- -// -// Package: MuonSegmentProducer -// Class: MuonSegmentProducer -// -/**\class MuonSegmentProducer MuonSegmentProducer.cc SUSYBSMAnalysis/MuonSegmentProducer/src/MuonSegmentProducer.cc - - Description: Producer muon segments with global position info to be used in FWLite - - Implementation: - -*/ -// -// Original Author: Rizzi Andrea -// Reworked and Ported to CMSSW_3_0_0 by Christophe Delaere -// Created: Wed Oct 10 12:01:28 CEST 2007 -// $Id: MuonSegmentProducer.cc,v 1.1 2012/04/27 20:49:41 farrell3 Exp $ -// -// - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Framework/interface/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/MuonSegment.h" - -#include "Geometry/Records/interface/MuonGeometryRecord.h" -#include "DataFormats/MuonDetId/interface/MuonSubdetId.h" -#include "Geometry/DTGeometry/interface/DTGeometry.h" -#include "Geometry/DTGeometry/interface/DTLayer.h" -#include "Geometry/DTGeometry/interface/DTChamber.h" -#include "Geometry/DTGeometry/interface/DTSuperLayer.h" -#include "Geometry/CSCGeometry/interface/CSCGeometry.h" -#include "TrackingTools/Records/interface/TrackingComponentsRecord.h" - -#include -#include - -// -// class decleration -// -class MuonSegmentProducer : public edm::EDProducer { -public: - explicit MuonSegmentProducer(const edm::ParameterSet&); - ~MuonSegmentProducer() override; - -private: - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - edm::EDGetTokenT m_cscSegmentToken; - edm::EDGetTokenT m_dtSegmentToken; -}; - -using namespace susybsm; - -MuonSegmentProducer::MuonSegmentProducer(const edm::ParameterSet& iConfig) { - using namespace edm; - using namespace std; - - m_cscSegmentToken = consumes(iConfig.getParameter("CSCSegments")); - m_dtSegmentToken = consumes(iConfig.getParameter("DTSegments")); - - produces(); -} - -MuonSegmentProducer::~MuonSegmentProducer() { - // 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 ------------ -void MuonSegmentProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - using namespace std; - using namespace susybsm; - - susybsm::MuonSegmentCollection* segments = new susybsm::MuonSegmentCollection; - std::unique_ptr resultSeg(segments); - - edm::ESHandle dtGeom; - iSetup.get().get(dtGeom); - - edm::ESHandle cscGeom; - iSetup.get().get(cscGeom); - - edm::Handle dtSegments; - iEvent.getByToken(m_dtSegmentToken, dtSegments); - - for (unsigned int d = 0; d < dtSegments->size(); d++) { - DTRecSegment4DRef SegRef = DTRecSegment4DRef(dtSegments, d); - MuonSegment muonSegment; - muonSegment.setDTSegmentRef(SegRef); - - const GeomDet* dtDet = dtGeom->idToDet(SegRef->geographicalId()); - GlobalPoint point = dtDet->toGlobal(SegRef->localPosition()); - muonSegment.setGP(point); - segments->push_back(muonSegment); - } - - edm::Handle cscSegments; - iEvent.getByToken(m_cscSegmentToken, cscSegments); - - for (unsigned int c = 0; c < cscSegments->size(); c++) { - CSCSegmentRef SegRef = CSCSegmentRef(cscSegments, c); - MuonSegment muonSegment; - muonSegment.setCSCSegmentRef(SegRef); - - const GeomDet* cscDet = cscGeom->idToDet(SegRef->geographicalId()); - GlobalPoint point = cscDet->toGlobal(SegRef->localPosition()); - muonSegment.setGP(point); - segments->push_back(muonSegment); - } - - edm::OrphanHandle putHandleSeg = iEvent.put(std::move(resultSeg)); -} - -// ------------ method called once each job just before starting event loop ------------ -void MuonSegmentProducer::beginJob() {} - -// ------------ method called once each job just after ending the event loop ------------ -void MuonSegmentProducer::endJob() {} - -//define this as a plug-in -DEFINE_FWK_MODULE(MuonSegmentProducer); diff --git a/SUSYBSMAnalysis/HSCP/plugins/SimHitShifter.cc b/SUSYBSMAnalysis/HSCP/plugins/SimHitShifter.cc deleted file mode 100644 index 2b81e915fd09a..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/SimHitShifter.cc +++ /dev/null @@ -1,308 +0,0 @@ -// -*- C++ -*- -// -// Package: SimHitShifter -// Class: SimHitShifter -// -/**\class SimHitShifter SimHitShifter.cc simhitshifter/SimHitShifter/src/SimHitShifter.cc - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: Camilo Andres Carrillo Montoya,40 2-B15,+41227671625, -// Created: Mon Aug 30 18:35:05 CEST 2010 -// -// - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "DataFormats/RPCDigi/interface/RPCDigi.h" -#include "DataFormats/RPCDigi/interface/RPCDigiCollection.h" -#include -#include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h" -#include -#include -#include "Geometry/RPCGeometry/interface/RPCGeomServ.h" -#include -#include -#include "DataFormats/GeometrySurface/interface/Surface.h" -#include "DataFormats/DetId/interface/DetId.h" -#include -#include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" -#include "DataFormats/Candidate/interface/Candidate.h" -#include "DataFormats/Candidate/interface/CandMatchMap.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h" - -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include -#include -#include "DataFormats/GeometrySurface/interface/Surface.h" -#include "TrackingTools/TransientTrack/interface/TransientTrack.h" - -#include "TrackingTools/GeomPropagators/interface/Propagator.h" -#include "TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h" -#include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h" - -#include "SimDataFormats/Track/interface/SimTrack.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/Vertex/interface/SimVertexContainer.h" - -#include "TrackingTools/Records/interface/TrackingComponentsRecord.h" -#include "RecoMuon/TrackingTools/interface/MuonPatternRecoDumper.h" - -#include "DataFormats/MuonDetId/interface/MuonSubdetId.h" - -#include "DataFormats/MuonDetId/interface/CSCDetId.h" - -#include "Geometry/RPCGeometry/interface/RPCGeometry.h" -#include -#include -#include -#include - -#include - -//Root -#include "TFile.h" -#include "TF1.h" -#include "TH1F.h" -#include "TH1.h" -#include "TH2F.h" -#include "TROOT.h" -#include "TMath.h" -#include "TCanvas.h" - -//Track -#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" -#include "TrackingTools/PatternTools/interface/Trajectory.h" -#include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" -#include "DataFormats/TrackCandidate/interface/TrackCandidate.h" -#include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h" - -#include - -// -// class declaration -// - -class SimHitShifter : public edm::EDProducer { -public: - explicit SimHitShifter(const edm::ParameterSet&); - ~SimHitShifter() override; - //edm::ESHandle rpcGeo; - void beginRun(const edm::Run&, const edm::EventSetup&) override; - std::map shiftinfo; - -private: - std::string ShiftFileName; - void beginJob() override; - void produce(edm::Event&, const edm::EventSetup&) override; - void endJob() override; -}; - -SimHitShifter::SimHitShifter(const edm::ParameterSet& iConfig) { - std::cout << "in the constructor" << std::endl; - - ShiftFileName = - iConfig.getUntrackedParameter("ShiftFileName", - "/afs/cern.ch/user/c/carrillo/simhits/CMSSW_3_5_8_patch2/src/" - "simhitshifter/SimHitShifter/Merged_Muon_RawId_Shift.txt"); - - //iSetup.get().get(rpcGeo); - - std::ifstream ifin(ShiftFileName.c_str()); - - int rawId; - float offset; - - std::cout << "In the constructor, The name of the file is " << ShiftFileName.c_str() << std::endl; - - if (!ifin) - std::cout << "Problem reading the map rawId shift " << ShiftFileName.c_str() << std::endl; - assert(ifin); - - while (ifin.good()) { - ifin >> rawId >> offset; - shiftinfo[rawId] = offset; - std::cout << "rawId =" << rawId << " offset=" << offset << std::endl; - } - - produces("MuonCSCHits"); - produces("MuonDTHits"); - produces("MuonRPCHits"); -} - -SimHitShifter::~SimHitShifter() {} - -void SimHitShifter::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - - //std::cout << " Getting the SimHits " < > theSimHitContainers; - iEvent.getManyByType(theSimHitContainers); - //std::cout << " The Number of sim Hits is " << theSimHitContainers.size() < pcsc(new edm::PSimHitContainer); - std::unique_ptr pdt(new edm::PSimHitContainer); - std::unique_ptr prpc(new edm::PSimHitContainer); - - std::vector theSimHits; - - using std::dec; - using std::oct; - - for (int i = 0; i < int(theSimHitContainers.size()); i++) { - theSimHits.insert(theSimHits.end(), theSimHitContainers.at(i)->begin(), theSimHitContainers.at(i)->end()); - } - - for (std::vector::const_iterator iHit = theSimHits.begin(); iHit != theSimHits.end(); iHit++) { - DetId theDetUnitId((*iHit).detUnitId()); - DetId simdetid = DetId((*iHit).detUnitId()); - - if (simdetid.det() != DetId::Muon) - continue; - - float newtof = 0; - - if (simdetid.det() == DetId::Muon && simdetid.subdetId() == MuonSubdetId::RPC) { //Only RPCs - //std::cout<<"\t\t We have an RPC Sim Hit! in t="<<(*iHit).timeOfFlight()<<" DetId="<<(*iHit).detUnitId()<push_back(hit); - } else if (simdetid.det() == DetId::Muon && simdetid.subdetId() == MuonSubdetId::DT) { //Only DTs - int RawId = simdetid.rawId(); - std::cout << "We found a DT simhit the RawId in Dec is"; - std::cout << dec << RawId << std::endl; - std::cout << "and in oct" << std::endl; - std::cout << oct << RawId << std::endl; - std::cout << "once masked in oct " << std::endl; - int compressedRawId = RawId / 8 / 8 / 8 / 8 / 8; - std::cout << compressedRawId << std::endl; - std::cout << "extendedRawId" << std::endl; - int extendedRawId = compressedRawId * 8 * 8 * 8 * 8 * 8; - std::cout << extendedRawId << std::endl; - std::cout << "converted again in decimal" << std::endl; - std::cout << dec << extendedRawId << std::endl; - - if (shiftinfo.find(extendedRawId) == shiftinfo.end()) { - //std::cout<<"DT Warning the RawId = "<push_back(hit); - } - } - - std::cout << "Putting collections in the event" << std::endl; - - iEvent.put(std::move(pcsc), "MuonCSCHits"); - iEvent.put(std::move(pdt), "MuonDTHits"); - iEvent.put(std::move(prpc), "MuonRPCHits"); -} - -void SimHitShifter::beginRun(const edm::Run& run, const edm::EventSetup& iSetup) {} - -// ------------ method called once each job just before starting event loop ------------ -void SimHitShifter::beginJob() {} - -// ------------ method called once each job just after ending the event loop ------------ -void SimHitShifter::endJob() {} - -//define this as a plug-in -DEFINE_FWK_MODULE(SimHitShifter); diff --git a/SUSYBSMAnalysis/HSCP/plugins/Skim_HSCPFilter.cc b/SUSYBSMAnalysis/HSCP/plugins/Skim_HSCPFilter.cc deleted file mode 100644 index 7134b1135c7d7..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/Skim_HSCPFilter.cc +++ /dev/null @@ -1,163 +0,0 @@ -// -*- C++ -*- -// -// Package: HSCPFilter -// Class: HSCPFilter -// -/**\class HSCPFilter HSCPFilter.cc HSCPFilter/HSCPFilter/src/HSCPFilter.cc - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: Jie Chen -// Created: Thu Apr 29 16:32:10 CDT 2010 -// -// - -// 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" - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/TrackReco/interface/TrackExtra.h" - -#include "DataFormats/TrackReco/interface/TrackToTrackMap.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" - -#include "DataFormats/TrackReco/interface/DeDxData.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" - -#include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" - -// -// class declaration -// - -class HSCPFilter : public edm::global::EDFilter<> { -public: - explicit HSCPFilter(const edm::ParameterSet&); - -private: - bool filter(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; - bool filterFlag; - edm::EDGetTokenT recoVertexToken; - edm::EDGetTokenT input_muon_collectionToken; - edm::EDGetTokenT input_track_collectionToken; - edm::EDGetTokenT > input_dedx_collectionToken; - int ndedxHits; - double dedxMin, dedxMaxLeft, trkPtMin, SAMuPtMin, etaMin, etaMax, chi2nMax, dxyMax, dzMax; - - // ----------member data --------------------------- -}; - -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - -// -// constructors and destructor -// -HSCPFilter::HSCPFilter(const edm::ParameterSet& iConfig) { - filterFlag = iConfig.getParameter("filter"); - recoVertexToken = consumes(edm::InputTag("offlinePrimaryVertices")); - input_muon_collectionToken = - consumes(iConfig.getParameter("inputMuonCollection")); - input_track_collectionToken = - consumes(iConfig.getParameter("inputTrackCollection")); - input_dedx_collectionToken = - consumes >(iConfig.getParameter("inputDedxCollection")); - dedxMin = iConfig.getParameter("dedxMin"); - dedxMaxLeft = iConfig.getParameter("dedxMaxLeft"); - trkPtMin = iConfig.getParameter("trkPtMin"); - etaMin = iConfig.getParameter("etaMin"); - etaMax = iConfig.getParameter("etaMax"); - ndedxHits = iConfig.getParameter("ndedxHits"); - chi2nMax = iConfig.getParameter("chi2nMax"); - dxyMax = iConfig.getParameter("dxyMax"); - dzMax = iConfig.getParameter("dzMax"); - SAMuPtMin = iConfig.getParameter("SAMuPtMin"); -} - -// -// member functions -// - -// ------------ method called on each new Event ------------ -bool HSCPFilter::filter(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const { - using namespace edm; - - using namespace reco; - - reco::VertexCollection const& recoVertex = iEvent.get(recoVertexToken); - - if (!filterFlag) - return true; - - if (recoVertex.empty()) - return false; - - const reco::MuonCollection& muonC = iEvent.get(input_muon_collectionToken); - for (auto const& muon : muonC) { - if (!muon.standAloneMuon().isNull()) { - TrackRef SATrack = muon.standAloneMuon(); - if (SATrack->pt() > SAMuPtMin) - return true; - } - } - - Handle tkTracks = iEvent.getHandle(input_track_collectionToken); - - const ValueMap& dEdxTrack = iEvent.get(input_dedx_collectionToken); - - for (size_t i = 0; i < tkTracks->size(); i++) { - reco::TrackRef trkRef = reco::TrackRef(tkTracks, i); - - if (trkRef->pt() > trkPtMin && trkRef->eta() < etaMax && trkRef->eta() > etaMin && - trkRef->normalizedChi2() < chi2nMax) { - double dz = trkRef->dz(recoVertex[0].position()); - double dxy = trkRef->dxy(recoVertex[0].position()); - double distancemin = sqrt(dxy * dxy + dz * dz); - int closestvertex = 0; - for (unsigned int i = 1; i < recoVertex.size(); i++) { - dz = trkRef->dz(recoVertex[i].position()); - dxy = trkRef->dxy(recoVertex[i].position()); - double distance = sqrt(dxy * dxy + dz * dz); - if (distance < distancemin) { - distancemin = distance; - closestvertex = i; - } - } - - dz = trkRef->dz(recoVertex[closestvertex].position()); - dxy = trkRef->dxy(recoVertex[closestvertex].position()); - - if (fabs(dz) < dzMax && fabs(dxy) < dxyMax) { - double dedx = dEdxTrack[trkRef].dEdx(); - int dedxnhits = dEdxTrack[trkRef].numberOfMeasurements(); - if ((dedx > dedxMin || dedx < dedxMaxLeft) && dedxnhits > ndedxHits) - return true; - } - } - } - return false; -} - -//define this as a plug-in -DEFINE_FWK_MODULE(HSCPFilter); diff --git a/SUSYBSMAnalysis/HSCP/plugins/Skim_HighPtTrackEcalDetIdProducer.cc b/SUSYBSMAnalysis/HSCP/plugins/Skim_HighPtTrackEcalDetIdProducer.cc deleted file mode 100644 index 32905afc9ee8f..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/Skim_HighPtTrackEcalDetIdProducer.cc +++ /dev/null @@ -1,141 +0,0 @@ -// -*- C++ -*- -// -// Package: HighPtTrackEcalDetIdProducer -// Class: HighPtTrackEcalDetIdProducer -// -/*\class HighPtTrackEcalDetIdProducer HighPtTrackEcalDetIdProducer.cc - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: Jie Chen -// Created: Mon Apr 12 16:41:46 CDT 2010 -// -// - -// 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 "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/TrackReco/interface/TrackExtra.h" - -#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" -#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" - -#include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h" -#include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h" -#include "TrackingTools/TrackAssociator/interface/TrackDetMatchInfo.h" - -#include "DataFormats/EcalDetId/interface/EBDetId.h" -#include "DataFormats/EcalDetId/interface/EEDetId.h" -#include "DataFormats/DetId/interface/DetIdCollection.h" - -#include "Geometry/CaloEventSetup/interface/CaloTopologyRecord.h" -#include "Geometry/CaloTopology/interface/CaloTopology.h" -#include "Geometry/CaloTopology/interface/CaloSubdetectorTopology.h" - -// -// class declaration -// - -class HighPtTrackEcalDetIdProducer : public edm::stream::EDProducer<> { -public: - explicit HighPtTrackEcalDetIdProducer(const edm::ParameterSet&); - ~HighPtTrackEcalDetIdProducer() override; - void beginRun(const edm::Run&, const edm::EventSetup&) override; - void produce(edm::Event&, const edm::EventSetup&) override; - -private: - edm::EDGetTokenT inputCollectionToken_; - const CaloTopology* caloTopology_; - TrackDetectorAssociator trackAssociator_; - TrackAssociatorParameters parameters_; - double ptcut_; - // ----------member data --------------------------- -}; - -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - -// -// constructors and destructor -// -HighPtTrackEcalDetIdProducer::HighPtTrackEcalDetIdProducer(const edm::ParameterSet& iConfig) { - inputCollectionToken_ = consumes(iConfig.getParameter("inputCollection")); - ptcut_ = iConfig.getParameter("TrackPt"); - - produces(); - // TrackAssociator parameters - edm::ParameterSet parameters = iConfig.getParameter("TrackAssociatorParameters"); - edm::ConsumesCollector iC = consumesCollector(); - parameters_.loadParameters(parameters, iC); - trackAssociator_.useDefaultPropagator(); -} - -HighPtTrackEcalDetIdProducer::~HighPtTrackEcalDetIdProducer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) -} - -// -// member functions -// - -void HighPtTrackEcalDetIdProducer::beginRun(const edm::Run& run, const edm::EventSetup& iSetup) { - edm::ESHandle theCaloTopology; - iSetup.get().get(theCaloTopology); - caloTopology_ = &(*theCaloTopology); -} - -// ------------ method called to produce the data ------------ -void HighPtTrackEcalDetIdProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - using reco::TrackCollection; - // if(!iSetup) continue; - Handle tkTracks; - iEvent.getByToken(inputCollectionToken_, tkTracks); - std::unique_ptr interestingDetIdCollection(new DetIdCollection()); - for (TrackCollection::const_iterator itTrack = tkTracks->begin(); itTrack != tkTracks->end(); ++itTrack) { - if (itTrack->pt() > ptcut_) { - TrackDetMatchInfo info = - trackAssociator_.associate(iEvent, iSetup, *itTrack, parameters_, TrackDetectorAssociator::InsideOut); - if (info.crossedEcalIds.empty()) - break; - - if (!info.crossedEcalIds.empty()) { - DetId centerId = info.crossedEcalIds.front(); - - const CaloSubdetectorTopology* topology = - caloTopology_->getSubdetectorTopology(DetId::Ecal, centerId.subdetId()); - const std::vector& ids = topology->getWindow(centerId, 5, 5); - for (std::vector::const_iterator id = ids.begin(); id != ids.end(); ++id) - if (std::find(interestingDetIdCollection->begin(), interestingDetIdCollection->end(), *id) == - interestingDetIdCollection->end()) - interestingDetIdCollection->push_back(*id); - } - } - } - iEvent.put(std::move(interestingDetIdCollection)); -} -//define this as a plug-in -DEFINE_FWK_MODULE(HighPtTrackEcalDetIdProducer); diff --git a/SUSYBSMAnalysis/HSCP/plugins/Skim_MonoPhotonSkimmer.cc b/SUSYBSMAnalysis/HSCP/plugins/Skim_MonoPhotonSkimmer.cc deleted file mode 100644 index 63fcaf5b34e2e..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/Skim_MonoPhotonSkimmer.cc +++ /dev/null @@ -1,190 +0,0 @@ -// -*- C++ -*- -// -// Package: MonoPhotonSkimmer -// Class: MonoPhotonSkimmer -// -/**\class MonoPhotonSkimmer MonoPhotonSkimmer.cc MonoPhotonSkimmer/MonoPhotonSkimmer/src/MonoPhotonSkimmer.cc - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: Jie Chen -// Created: Wed Nov 17 14:33:08 CST 2010 -// -// - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.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 "DataFormats/EgammaCandidates/interface/Photon.h" -#include "DataFormats/EgammaCandidates/interface/PhotonFwd.h" -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include - -// -// class declaration -// - -class MonoPhotonSkimmer : public edm::EDFilter { -public: - explicit MonoPhotonSkimmer(const edm::ParameterSet&); - ~MonoPhotonSkimmer() override; - -private: - void beginJob() override; - bool filter(edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - // ----------member data --------------------------- - edm::EDGetTokenT _phoToken; - bool _selectEE; //Do you want to select EE photons? - //True enables this. - - double _ecalisoOffsetEB; //Photon Preselection has linearized cuts. - double _ecalisoSlopeEB; //slope * photonpt + offset is the isolation - //threshold. This is ECAL EB. - - double _hcalisoOffsetEB; //Linearized cut on HCAL towers, EB. - double _hcalisoSlopeEB; - - double _hadoveremEB; //Flat selection cut on HadOverEM. - - double _minPhoEtEB; //Minimum Photon ET threshold, EB. - - double _trackisoOffsetEB; //Linearized cut on track isolation EB - double _trackisoSlopeEB; - - double _etawidthEB; //eta width for EB - - double _ecalisoOffsetEE; //As above, but separately set for EE. - double _ecalisoSlopeEE; - double _hcalisoOffsetEE; - double _hcalisoSlopeEE; - double _hadoveremEE; - double _minPhoEtEE; - double _trackisoOffsetEE; - double _trackisoSlopeEE; - double _etawidthEE; -}; - -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - -// -// constructors and destructor -// -MonoPhotonSkimmer::MonoPhotonSkimmer(const edm::ParameterSet& iConfig) { - //now do what ever initialization is needed - _phoToken = consumes(iConfig.getParameter("phoTag")); - _selectEE = iConfig.getParameter("selectEE"); - - _ecalisoOffsetEB = iConfig.getParameter("ecalisoOffsetEB"); - _ecalisoSlopeEB = iConfig.getParameter("ecalisoSlopeEB"); - - _hcalisoOffsetEB = iConfig.getParameter("hcalisoOffsetEB"); - _hcalisoSlopeEB = iConfig.getParameter("hcalisoSlopeEB"); - - _hadoveremEB = iConfig.getParameter("hadoveremEB"); - _minPhoEtEB = iConfig.getParameter("minPhoEtEB"); - - _trackisoOffsetEB = iConfig.getParameter("trackIsoOffsetEB"); - _trackisoSlopeEB = iConfig.getParameter("trackIsoSlopeEB"); - _etawidthEB = iConfig.getParameter("etaWidthEB"); - - _ecalisoOffsetEE = iConfig.getParameter("ecalisoOffsetEE"); - _ecalisoSlopeEE = iConfig.getParameter("ecalisoSlopeEE"); - - _hcalisoOffsetEE = iConfig.getParameter("hcalisoOffsetEE"); - _hcalisoSlopeEE = iConfig.getParameter("hcalisoSlopeEE"); - - _hadoveremEE = iConfig.getParameter("hadoveremEE"); - _minPhoEtEE = iConfig.getParameter("minPhoEtEE"); - - _trackisoOffsetEE = iConfig.getParameter("trackIsoOffsetEE"); - _trackisoSlopeEE = iConfig.getParameter("trackIsoSlopeEE"); - - _etawidthEE = iConfig.getParameter("etaWidthEE"); -} - -MonoPhotonSkimmer::~MonoPhotonSkimmer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) -} - -// -// member functions -// - -// ------------ method called on each new Event ------------ -bool MonoPhotonSkimmer::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - Handle photonColl; - iEvent.getByToken(_phoToken, photonColl); - const reco::PhotonCollection* photons = photonColl.product(); - //Iterate over photon collection. - // std::vector PreselPhotons; - int PreselPhotons = 0; - reco::PhotonCollection::const_iterator pho; - for (pho = (*photons).begin(); pho != (*photons).end(); pho++) { - if (!pho->isEB() && !_selectEE) - continue; - - double ecalisocut = 0; - double hcalisocut = 0; - double hadoverem = 0; - double minphoet = 0; - double trackiso = 0; - double etawidth = 0; - if (pho->isEB()) { - ecalisocut = _ecalisoOffsetEB + _ecalisoSlopeEB * pho->pt(); - hcalisocut = _hcalisoOffsetEB + _hcalisoSlopeEB * pho->pt(); - hadoverem = _hadoveremEB; - minphoet = _minPhoEtEB; - trackiso = _trackisoOffsetEB + _trackisoSlopeEB * pho->pt(); - etawidth = _etawidthEB; - } else { - ecalisocut = _ecalisoOffsetEE + _ecalisoSlopeEE * pho->pt(); - hcalisocut = _hcalisoOffsetEE + _hcalisoSlopeEE * pho->pt(); - hadoverem = _hadoveremEE; - minphoet = _minPhoEtEE; - trackiso = _trackisoOffsetEE + _trackisoSlopeEE * pho->pt(); - etawidth = _etawidthEE; - } - - if (pho->ecalRecHitSumEtConeDR04() < ecalisocut && pho->hcalTowerSumEtConeDR04() < hcalisocut && - pho->hadronicOverEm() < hadoverem && pho->pt() > minphoet && pho->trkSumPtHollowConeDR04() < trackiso && - pho->sigmaIetaIeta() < etawidth) - PreselPhotons++; - - } //Loop over Photons - if (PreselPhotons > 0) - return true; - return false; -} - -// ------------ method called once each job just before starting event loop ------------ -void MonoPhotonSkimmer::beginJob() {} - -// ------------ method called once each job just after ending the event loop ------------ -void MonoPhotonSkimmer::endJob() {} - -//define this as a plug-in -DEFINE_FWK_MODULE(MonoPhotonSkimmer); diff --git a/SUSYBSMAnalysis/HSCP/plugins/Skim_ProduceIsolationMap.cc b/SUSYBSMAnalysis/HSCP/plugins/Skim_ProduceIsolationMap.cc deleted file mode 100644 index 633456eb59222..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/Skim_ProduceIsolationMap.cc +++ /dev/null @@ -1,175 +0,0 @@ -// -*- C++ -*- -// -// Package: ProduceIsolationMap -// Class: ProduceIsolationMap -// -/*\class ProduceIsolationMap ProduceIsolationMap.cc - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: Loic Quertenmont -// Created: Wed Nov 10 16:41:46 CDT 2010 -// -// - -// 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/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/TrackReco/interface/TrackExtra.h" - -#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" -#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" -#include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" -#include "DataFormats/HcalDetId/interface/HcalSubdetector.h" -#include "DataFormats/HcalDetId/interface/HcalDetId.h" -#include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h" -#include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h" -#include "TrackingTools/TrackAssociator/interface/TrackDetMatchInfo.h" - -#include "DataFormats/EcalDetId/interface/EBDetId.h" -#include "DataFormats/EcalDetId/interface/EEDetId.h" -#include "DataFormats/DetId/interface/DetIdCollection.h" - -#include "Geometry/CaloEventSetup/interface/CaloTopologyRecord.h" -#include "Geometry/CaloTopology/interface/CaloTopology.h" -#include "Geometry/CaloTopology/interface/CaloSubdetectorTopology.h" - -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCPIsolation.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/Math/interface/deltaR.h" -#include - -// -// class declaration -// - -using namespace susybsm; -using namespace edm; - -class ProduceIsolationMap : public edm::stream::EDProducer<> { -public: - explicit ProduceIsolationMap(const edm::ParameterSet&); - ~ProduceIsolationMap() override; - void produce(edm::Event&, const edm::EventSetup&) override; - -private: - edm::EDGetTokenT TKToken_; - edm::EDGetTokenT inputCollectionToken_; - double TKIsolationPtcut_; - double IsolationConeDR_; - TrackDetectorAssociator trackAssociator_; - TrackAssociatorParameters parameters_; - // ----------member data --------------------------- -}; - -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - -// -// constructors and destructor -// -ProduceIsolationMap::ProduceIsolationMap(const edm::ParameterSet& iConfig) { - TKToken_ = consumes(iConfig.getParameter("TKLabel")); - inputCollectionToken_ = consumes(iConfig.getParameter("inputCollection")); - TKIsolationPtcut_ = iConfig.getParameter("TkIsolationPtCut"); - IsolationConeDR_ = iConfig.getParameter("IsolationConeDR"); - - // TrackAssociator parameters - edm::ParameterSet parameters = iConfig.getParameter("TrackAssociatorParameters"); - edm::ConsumesCollector iC = consumesCollector(); - parameters_.loadParameters(parameters, iC); - trackAssociator_.useDefaultPropagator(); - - //register your products - produces >(); -} - -ProduceIsolationMap::~ProduceIsolationMap() {} - -void ProduceIsolationMap::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - using namespace std; - - using reco::TrackCollection; - - Handle TKHandle; - iEvent.getByToken(TKToken_, TKHandle); - if (!TKHandle.isValid()) { - edm::LogError("ProduceIsolationMap") << "TK Tracks collection not found"; - return; - } - - //Create empty output collections - unique_ptr > trackHSCPIsolMap(new ValueMap); - ValueMap::Filler filler(*trackHSCPIsolMap); - - //loop through tracks. - Handle tkTracks; - iEvent.getByToken(inputCollectionToken_, tkTracks); - std::vector IsolationInfoColl(tkTracks->size()); - - int TkIndex = 0; - for (TrackCollection::const_iterator itTrack = tkTracks->begin(); itTrack != tkTracks->end(); ++itTrack, TkIndex++) { - TrackDetMatchInfo info = - trackAssociator_.associate(iEvent, iSetup, *itTrack, parameters_, TrackDetectorAssociator::InsideOut); - - if (!info.ecalRecHits.empty()) { - IsolationInfoColl[TkIndex].Set_ECAL_Energy(info.coneEnergy(IsolationConeDR_, TrackDetMatchInfo::EcalRecHits)); - } - if (!info.hcalRecHits.empty()) { - IsolationInfoColl[TkIndex].Set_HCAL_Energy(info.coneEnergy(IsolationConeDR_, TrackDetMatchInfo::HcalRecHits)); - } - // if(info.hcalRecHits.size()>0){IsolationInfoColl[TkIndex].Set_HCAL_Energy(info.hcalConeEnergy());} - // if(info.ecalRecHits.size()>0){IsolationInfoColl[TkIndex].Set_ECAL_Energy(info.ecalConeEnergy());} - - double SumPt = 0; - double Count = 0; - double CountHighPt = 0; - for (TrackCollection::const_iterator itTrack2 = TKHandle->begin(); itTrack2 != TKHandle->end(); ++itTrack2) { - if (fabs(itTrack->pt() - itTrack2->pt()) < 0.1 && fabs(itTrack->eta() - itTrack2->eta()) < 0.05) - continue; - float dR = deltaR(itTrack->momentum(), itTrack2->momentum()); - if (dR > IsolationConeDR_) - continue; - SumPt += itTrack2->pt(); - Count++; - if (itTrack2->pt() < TKIsolationPtcut_) - continue; - CountHighPt++; - } - IsolationInfoColl[TkIndex].Set_TK_CountHighPt(CountHighPt); - IsolationInfoColl[TkIndex].Set_TK_Count(Count); - IsolationInfoColl[TkIndex].Set_TK_SumEt(SumPt); - } - - filler.insert(tkTracks, IsolationInfoColl.begin(), IsolationInfoColl.end()); - filler.fill(); - iEvent.put(std::move(trackHSCPIsolMap)); -} -//define this as a plug-in -DEFINE_FWK_MODULE(ProduceIsolationMap); diff --git a/SUSYBSMAnalysis/HSCP/plugins/Skim_ReduceHcalRecHitCollectionProducer.cc b/SUSYBSMAnalysis/HSCP/plugins/Skim_ReduceHcalRecHitCollectionProducer.cc deleted file mode 100644 index 7a33d0b82e746..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/Skim_ReduceHcalRecHitCollectionProducer.cc +++ /dev/null @@ -1,162 +0,0 @@ -// -*- C++ -*- -// -// Package: ReduceHcalRecHitCollectionProducer -// Class: ReduceHcalRecHitCollectionProducer -// -/*\class ReduceHcalRecHitCollectionProducer ReduceHcalRecHitCollectionProducer.cc - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: Jie Chen -// Created: Mon Apr 12 16:41:46 CDT 2010 -// -// - -// 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/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/TrackReco/interface/TrackExtra.h" - -#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" -#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" -#include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" -#include "DataFormats/HcalDetId/interface/HcalSubdetector.h" -#include "DataFormats/HcalDetId/interface/HcalDetId.h" -#include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h" -#include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h" -#include "TrackingTools/TrackAssociator/interface/TrackDetMatchInfo.h" - -#include "DataFormats/EcalDetId/interface/EBDetId.h" -#include "DataFormats/EcalDetId/interface/EEDetId.h" -#include "DataFormats/DetId/interface/DetIdCollection.h" - -#include "Geometry/CaloEventSetup/interface/CaloTopologyRecord.h" -#include "Geometry/CaloTopology/interface/CaloTopology.h" -#include "Geometry/CaloTopology/interface/CaloSubdetectorTopology.h" - -#include - -// -// class declaration -// - -class ReduceHcalRecHitCollectionProducer : public edm::stream::EDProducer<> { -public: - explicit ReduceHcalRecHitCollectionProducer(const edm::ParameterSet&); - ~ReduceHcalRecHitCollectionProducer() override; - void produce(edm::Event&, const edm::EventSetup&) override; - -private: - edm::EDGetTokenT recHitsToken_; - std::string reducedHitsCollection_; - edm::EDGetTokenT inputCollectionToken_; - TrackDetectorAssociator trackAssociator_; - TrackAssociatorParameters parameters_; - double ptcut_; - // ----------member data --------------------------- -}; - -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - -// -// constructors and destructor -// -ReduceHcalRecHitCollectionProducer::ReduceHcalRecHitCollectionProducer(const edm::ParameterSet& iConfig) { - recHitsToken_ = consumes(iConfig.getParameter("recHitsLabel")); - - reducedHitsCollection_ = iConfig.getParameter("reducedHitsCollection"); - - //register your products - produces(reducedHitsCollection_); - - inputCollectionToken_ = consumes(iConfig.getParameter("inputCollection")); - ptcut_ = iConfig.getParameter("TrackPt"); - - produces(); - // TrackAssociator parameters - edm::ParameterSet parameters = iConfig.getParameter("TrackAssociatorParameters"); - edm::ConsumesCollector iC = consumesCollector(); - parameters_.loadParameters(parameters, iC); - trackAssociator_.useDefaultPropagator(); -} - -ReduceHcalRecHitCollectionProducer::~ReduceHcalRecHitCollectionProducer() { - // 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 ------------ -void ReduceHcalRecHitCollectionProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - - using namespace std; - - using reco::TrackCollection; - - Handle recHitsHandle; - iEvent.getByToken(recHitsToken_, recHitsHandle); - if (!recHitsHandle.isValid()) { - edm::LogError("ReduceHcalRecHitCollectionProducer") << "RecHit collection not found"; - return; - } - - //Create empty output collections - std::unique_ptr miniRecHitCollection(new HBHERecHitCollection); - - //loop through tracks. - Handle tkTracks; - iEvent.getByToken(inputCollectionToken_, tkTracks); - std::unique_ptr interestingDetIdCollection(new DetIdCollection()); - for (TrackCollection::const_iterator itTrack = tkTracks->begin(); itTrack != tkTracks->end(); ++itTrack) { - if (itTrack->pt() > ptcut_) { - TrackDetMatchInfo info = - trackAssociator_.associate(iEvent, iSetup, *itTrack, parameters_, TrackDetectorAssociator::InsideOut); - - if (!info.crossedHcalIds.empty()) { - //loop through hits in the cone - for (std::vector::const_iterator hit = info.hcalRecHits.begin(); - hit != info.hcalRecHits.end(); - ++hit) { - DetId hitid = (*hit)->id(); - HBHERecHitCollection::const_iterator iRecHit = recHitsHandle->find(hitid); - if ((iRecHit != recHitsHandle->end()) && (miniRecHitCollection->find(hitid) == miniRecHitCollection->end())) - miniRecHitCollection->push_back(*iRecHit); - } - } - } - } - - iEvent.put(std::move(miniRecHitCollection), reducedHitsCollection_); -} -//define this as a plug-in -DEFINE_FWK_MODULE(ReduceHcalRecHitCollectionProducer); diff --git a/SUSYBSMAnalysis/HSCP/plugins/Skim_UpdatedMuonInnerTrackRef.cc b/SUSYBSMAnalysis/HSCP/plugins/Skim_UpdatedMuonInnerTrackRef.cc deleted file mode 100644 index 27b9f786d7fb6..0000000000000 --- a/SUSYBSMAnalysis/HSCP/plugins/Skim_UpdatedMuonInnerTrackRef.cc +++ /dev/null @@ -1,126 +0,0 @@ -#include -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/global/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/TrackReco/interface/Track.h" - -#include "CommonTools/UtilAlgos/interface/DeltaR.h" - -// -// class declaration -// -class UpdatedMuonInnerTrackRef : public edm::global::EDProducer<> { -public: - explicit UpdatedMuonInnerTrackRef(const edm::ParameterSet&); - -private: - void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; - - reco::TrackRef findNewRef(reco::TrackRef const& oldTrackRef, - edm::Handle const& newTrackCollection) const; - - edm::EDGetTokenT > muonToken_; - edm::EDGetTokenT oldTrackToken_; - edm::EDGetTokenT newTrackToken_; - - double maxInvPtDiff; - double minDR; -}; - -///////////////////////////////////////////////////////////////////////////////////// -UpdatedMuonInnerTrackRef::UpdatedMuonInnerTrackRef(const edm::ParameterSet& pset) { - // What is being produced - produces >(); - - // Input products - muonToken_ = - consumes >(pset.getUntrackedParameter("MuonTag", edm::InputTag("muons"))); - oldTrackToken_ = consumes( - pset.getUntrackedParameter("OldTrackTag", edm::InputTag("generalTracks"))); - newTrackToken_ = consumes( - pset.getUntrackedParameter("NewTrackTag", edm::InputTag("generalTracksSkim"))); - - // matching criteria products - maxInvPtDiff = pset.getUntrackedParameter("maxInvPtDiff", 0.005); - minDR = pset.getUntrackedParameter("minDR", 0.1); -} - -///////////////////////////////////////////////////////////////////////////////////// -void UpdatedMuonInnerTrackRef::produce(edm::StreamID, edm::Event& ev, const edm::EventSetup& iSetup) const { - // Muon collection - edm::Handle > muonCollectionHandle; - if (!ev.getByToken(muonToken_, muonCollectionHandle)) { - edm::LogError("") << ">>> Muon collection does not exist !!!"; - return; - } - - edm::Handle oldTrackCollection; - if (!ev.getByToken(oldTrackToken_, oldTrackCollection)) { - edm::LogError("") << ">>> Old Track collection does not exist !!!"; - return; - } - - edm::Handle newTrackCollection; - if (!ev.getByToken(newTrackToken_, newTrackCollection)) { - edm::LogError("") << ">>> New Track collection does not exist !!!"; - return; - } - - unsigned int muonCollectionSize = muonCollectionHandle->size(); - std::unique_ptr newmuons(new reco::MuonCollection); - - for (unsigned int i = 0; i < muonCollectionSize; i++) { - edm::RefToBase mu = muonCollectionHandle->refAt(i); - std::unique_ptr newmu{mu->clone()}; - - if (mu->innerTrack().isNonnull()) { - reco::TrackRef newTrackRef = findNewRef(mu->innerTrack(), newTrackCollection); - /* printf(" %6.2f %+6.2f %+6.2f --> ",mu->innerTrack()->pt (), mu->innerTrack()->eta(), mu->innerTrack()->phi()); - if(newTrackRef.isNonnull()){ - printf(" %6.2f %+6.2f %+6.2f\n",newTrackRef->pt (), newTrackRef->eta(), newTrackRef->phi()); - }else{ - printf("\n"); - } -*/ - newmu->setInnerTrack(newTrackRef); - } - - newmuons->push_back(*newmu); - } - - ev.put(std::move(newmuons)); -} - -reco::TrackRef UpdatedMuonInnerTrackRef::findNewRef( - reco::TrackRef const& oldTrackRef, edm::Handle const& newTrackCollection) const { - float dRMin = 1000; - int found = -1; - for (unsigned int i = 0; i < newTrackCollection->size(); i++) { - reco::TrackRef newTrackRef = reco::TrackRef(newTrackCollection, i); - if (newTrackRef.isNull()) - continue; - - if (fabs((1.0 / newTrackRef->pt()) - (1.0 / oldTrackRef->pt())) > maxInvPtDiff) - continue; - float dR = deltaR(newTrackRef->momentum(), oldTrackRef->momentum()); - if (dR <= minDR && dR < dRMin) { - dRMin = dR; - found = i; - } - } - - if (found >= 0) { - return reco::TrackRef(newTrackCollection, found); - } else { - return reco::TrackRef(); - } -} - -DEFINE_FWK_MODULE(UpdatedMuonInnerTrackRef); diff --git a/SUSYBSMAnalysis/HSCP/python/HSCPSelections_cff.py b/SUSYBSMAnalysis/HSCP/python/HSCPSelections_cff.py deleted file mode 100644 index 9672c3f0f17eb..0000000000000 --- a/SUSYBSMAnalysis/HSCP/python/HSCPSelections_cff.py +++ /dev/null @@ -1,59 +0,0 @@ - -import FWCore.ParameterSet.Config as cms - -HSCPSelectionEmpty = cms.PSet( - cms.PSet( - onlyConsiderTrack = cms.bool(False), - onlyConsiderMuon = cms.bool(False), - onlyConsiderMuonSTA = cms.bool(False), - onlyConsiderMuonGB = cms.bool(False), - onlyConsiderMuonTK = cms.bool(False), - onlyConsiderMTMuon = cms.bool(False), - onlyConsiderRpc = cms.bool(False), - onlyConsiderEcal = cms.bool(False), - - minTrackHits = cms.int32 (-1), - minTrackP = cms.double(-1), - minTrackPt = cms.double(-1), - - minDedx = cms.double(-1), - - minMuonP = cms.double(-1), - minMuonPt = cms.double(-1), - minMTMuonPt = cms.double(-1), - minSAMuonPt = cms.double(-1), - - maxMuTimeDtBeta = cms.double(-1), - minMuTimeDtNdof = cms.double(-1), - maxMuTimeCscBeta = cms.double(-1), - minMuTimeCscNdof = cms.double(-1), - maxMuTimeCombinedBeta = cms.double(-1), - minMuTimeCombinedNdof = cms.double(-1), - - maxBetaRpc = cms.double(-1), - maxBetaEcal = cms.double(-1), - ), -) - - -HSCPSelectionDefault = HSCPSelectionEmpty.clone() -HSCPSelectionDefault.minTrackHits = cms.int32(3) -HSCPSelectionDefault.minTrackPt = cms.double(45.0) -HSCPSelectionDefault.minMuonPt = cms.double(5.0) - -HSCPSelectionHighdEdx = HSCPSelectionDefault.clone() -HSCPSelectionHighdEdx.onlyConsiderTrack = cms.bool(True) -HSCPSelectionHighdEdx.minDedxEstimator1 = cms.double(3.5) - -HSCPSelectionHighTOF = HSCPSelectionDefault.clone() -HSCPSelectionHighTOF.onlyConsiderMuon = cms.bool(True) -HSCPSelectionHighTOF.maxMuTimeDtBeta = cms.double(0.9) - -HSCPSelectionMTMuonOnly = HSCPSelectionEmpty.clone() -HSCPSelectionMTMuonOnly.onlyConsiderMTMuon = cms.bool(True) -HSCPSelectionMTMuonOnly.minMTMuonPt = cms.double(70.0) - - -HSCPSelectionSAMuonOnly = HSCPSelectionEmpty.clone() -HSCPSelectionSAMuonOnly.onlyConsiderMuonSTA = cms.bool(True) -HSCPSelectionSAMuonOnly.minSAMuonPt = cms.double(70.0) \ No newline at end of file diff --git a/SUSYBSMAnalysis/HSCP/python/HSCPVersion_cff.py b/SUSYBSMAnalysis/HSCP/python/HSCPVersion_cff.py deleted file mode 100644 index 4d1747cc0298b..0000000000000 --- a/SUSYBSMAnalysis/HSCP/python/HSCPVersion_cff.py +++ /dev/null @@ -1,3 +0,0 @@ -#Set whether running in CMSSW4_2 or CMSSW5 -CMSSW4_2=False -CMSSW4_4=False diff --git a/SUSYBSMAnalysis/HSCP/python/HSCParticleProducerFromSkim_cff.py b/SUSYBSMAnalysis/HSCP/python/HSCParticleProducerFromSkim_cff.py deleted file mode 100644 index 2d142f86ffe1b..0000000000000 --- a/SUSYBSMAnalysis/HSCP/python/HSCParticleProducerFromSkim_cff.py +++ /dev/null @@ -1,17 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from SUSYBSMAnalysis.HSCP.HSCParticleProducer_cff import * - -TrackRefitter.src = "generalTracksSkim" -muontiming.MuonCollection = cms.InputTag("muonsSkim") -HSCParticleProducer.tracksIsolation = cms.InputTag("generalTracksSkim") -HSCParticleProducer.muons = cms.InputTag("muonsSkim") -HSCParticleProducer.MTmuons = cms.InputTag("muonsSkim") -HSCParticleProducer.EBRecHitCollection = cms.InputTag("reducedHSCPEcalRecHitsEB") -HSCParticleProducer.EERecHitCollection = cms.InputTag("reducedHSCPEcalRecHitsEE") - -HSCParticleProducer.TrackAssociatorParameters.EBRecHitCollectionLabel = 'reducedHSCPEcalRecHitsEB' -HSCParticleProducer.TrackAssociatorParameters.EERecHitCollectionLabel = 'reducedHSCPEcalRecHitsEE' -HSCParticleProducer.TrackAssociatorParameters.HBHERecHitCollectionLabel = 'reducedHSCPhbhereco' -HSCParticleProducer.TrackAssociatorParameters.HBHERecHitCollectionLabel = 'reducedHSCPhbhereco' -HSCParticleProducer.TrackAssociatorParameters.useHO = False diff --git a/SUSYBSMAnalysis/HSCP/python/HSCParticleProducer_cff.py b/SUSYBSMAnalysis/HSCP/python/HSCParticleProducer_cff.py deleted file mode 100644 index a2e7f899ae2fc..0000000000000 --- a/SUSYBSMAnalysis/HSCP/python/HSCParticleProducer_cff.py +++ /dev/null @@ -1,116 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -#################################################################################### -# BEAMSPOT + TRAJECTORY BUILDERS -#################################################################################### - -from RecoTracker.MeasurementDet.MeasurementTrackerEventProducer_cfi import * -from RecoVertex.BeamSpotProducer.BeamSpot_cff import * -from RecoTracker.TrackProducer.TrackRefitters_cff import * - -#################################################################################### -# HIT-DEDX Information -#################################################################################### - -dedxHitInfo = cms.EDProducer("HSCPDeDxInfoProducer", - tracks = cms.InputTag("TrackRefitter"), - trajectoryTrackAssociation = cms.InputTag("TrackRefitter"), - - Reccord = cms.untracked.string("SiStripDeDxMip_3D_Rcd"), - Formula = cms.untracked.uint32(0), - ProbabilityMode = cms.untracked.string("Accumulation"), - - UseStrip = cms.bool(True), - UsePixel = cms.bool(True), - MeVperADCStrip = cms.double(3.61e-06*265), - MeVperADCPixel = cms.double(3.61e-06), - - UseCalibration = cms.bool(False), - calibrationPath = cms.string("file:Gains.root"), - ShapeTest = cms.bool(True), -) - - -#################################################################################### -# MUON TIMING -#################################################################################### - -from RecoMuon.MuonIdentification.muonTiming_cfi import * -muontiming.MuonCollection = cms.InputTag("muons") -muontiming.TimingFillerParameters.UseECAL=False - -#################################################################################### -# HSCParticle Producer -#################################################################################### - -#ALL THIS IS NEEDED BY ECAL BETA CALCULATOR (TrackAssociator) -from TrackingTools.TrackAssociator.DetIdAssociatorESProducer_cff import * -from TrackingTools.TrackAssociator.default_cfi import * -from TrackPropagation.SteppingHelixPropagator.SteppingHelixPropagatorAlong_cfi import * -from TrackPropagation.SteppingHelixPropagator.SteppingHelixPropagatorOpposite_cfi import * -from TrackPropagation.SteppingHelixPropagator.SteppingHelixPropagatorAny_cfi import * - -from SUSYBSMAnalysis.HSCP.HSCPSelections_cff import * -HSCParticleProducer = cms.EDFilter("HSCParticleProducer", - TrackAssociatorParameterBlock, #Needed for ECAL/Track Matching - - #DOES THE PRODUCER ACT AS AN EDFILTER? - filter = cms.bool(True), - - #WHAT (BETA) INFORMATION TO COMPUTE - useBetaFromTk = cms.bool(True), - useBetaFromMuon = cms.bool(True), - useBetaFromRpc = cms.bool(True), - useBetaFromEcal = cms.bool(True), - - #TAG OF THE REQUIRED INPUT COLLECTION (ONLY ACTIVATED CALCULATOR) - tracks = cms.InputTag("TrackRefitter"), - tracksIsolation = cms.InputTag("generalTracks"), - muons = cms.InputTag("muons"), - MTmuons = cms.InputTag("muons"), - EBRecHitCollection = cms.InputTag("ecalRecHit:EcalRecHitsEB"), - EERecHitCollection = cms.InputTag("ecalRecHit:EcalRecHitsEE"), - rpcRecHits = cms.InputTag("rpcRecHits"), - - #TRACK SELECTION FOR THE HSCP SEED - minMuP = cms.double(25), - minTkP = cms.double(25), - maxTkChi2 = cms.double(25), - minTkHits = cms.uint32(3), - minSAMuPt = cms.double(70), - minMTMuPt = cms.double(70), - - #MUON/TRACK MATCHING THRESHOLDS (ONLY IF NO MUON INNER TRACK) - minDR = cms.double(0.1), - maxInvPtDiff = cms.double(0.005), - minMTDR = cms.double(0.3), - - #SELECTION ON THE PRODUCED HSCP CANDIDATES (WILL STORE ONLY INTERESTING CANDIDATES) - SelectionParameters = cms.VPSet( - HSCPSelectionDefault, - HSCPSelectionMTMuonOnly, - HSCPSelectionSAMuonOnly, - ), -) - -#################################################################################### -# HSCParticle Selector (Just an Example of what we can do) -#################################################################################### - -HSCParticleSelector = cms.EDFilter("HSCParticleSelector", - source = cms.InputTag("HSCParticleProducer"), - filter = cms.bool(True), - - SelectionParameters = cms.VPSet( - HSCPSelectionHighdEdx, #THE OR OF THE TWO SELECTION WILL BE APPLIED - HSCPSelectionHighTOF, - ), -) - -#################################################################################### -# HSCP Candidate Sequence -#################################################################################### - -HSCParticleProducerSeq = cms.Sequence(offlineBeamSpot + MeasurementTrackerEvent + TrackRefitter + dedxHitInfo + muontiming + HSCParticleProducer) - - diff --git a/SUSYBSMAnalysis/HSCP/python/LaunchOnCondor.py b/SUSYBSMAnalysis/HSCP/python/LaunchOnCondor.py deleted file mode 100644 index c14b514f3e45c..0000000000000 --- a/SUSYBSMAnalysis/HSCP/python/LaunchOnCondor.py +++ /dev/null @@ -1,379 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -import urllib -import string -import os -import sys -import glob -import fnmatch -import commands - -CopyRights = '####################################\n' -CopyRights += '# LaunchOnFarm Script #\n' -CopyRights += '# Loic.quertenmont@cern.ch #\n' -CopyRights += '# April 2010 #\n' -CopyRights += '####################################\n' - -Farm_Directories = [] -Path_Cmd = '' -Path_Shell = '' -Path_Log = '' -Path_Cfg = '' -Jobs_Count = 0 -Jobs_Name = '' -Jobs_Index = '' -Jobs_Seed = 0 -Jobs_NEvent =-1 -Jobs_Skip = 0 -Jobs_Queue = '8nh' -Jobs_Inputs = [] -Jobs_FinalCmds = [] -Jobs_RunHere = 0 - -useLSF = True -LSFlog = True -runInteractively = False - -def CreateTheConfigFile(argv): - global Jobs_Name - global Jobs_Index - global Jobs_Count - global Jobs_Seed - global Jobs_Skip - global Jobs_NEvent - global Jobs_Inputs - global Jobs_FinalCmds - global Path_Cfg - global CopyRights - Path_Cfg = Farm_Directories[1]+Jobs_Index+Jobs_Name+'_cfg.py' - - config_file=open(argv[1],'r') - config_txt = '\n\n' + CopyRights + '\n\n' - config_txt += config_file.read() - config_file.close() - i = 2 - while i < len(argv)-1: - config_txt = config_txt.replace(argv[i],argv[i+1]) - i+=2 - - #Default Replacements - config_txt = config_txt.replace("XXX_I_XXX" ,"%04i"%Jobs_Count) - config_txt = config_txt.replace("XXX_PATH_XXX" ,os.getcwd()) - config_txt = config_txt.replace("XXX_OUTPUT_XXX" ,Jobs_Name) - config_txt = config_txt.replace("XXX_NAME_XXX" ,Jobs_Index+Jobs_Name) - config_txt = config_txt.replace("XXX_SEED_XXX" ,str(Jobs_Seed+Jobs_Count)) - config_txt = config_txt.replace("XXX_NEVENTS_XXX" ,str(Jobs_NEvent)) - config_txt = config_txt.replace("XXX_SKIP_XXX" ,str(Jobs_Skip)) - if Jobs_Count < len(Jobs_Inputs): - config_txt = config_txt.replace("XXX_INPUT_XXX" ,Jobs_Inputs[Jobs_Count]) - - config_file=open(Path_Cfg,'w') - config_file.write(config_txt) - config_file.close() - -def CreateTheShellFile(argv): - global Path_Shell - global Path_Cfg - global CopyRights - global Jobs_RunHere - global Jobs_FinalCmds - Path_Shell = Farm_Directories[1]+Jobs_Index+Jobs_Name+'.sh' - - function_argument='(' - for i in range(2,len(argv)): - function_argument+="%s" % argv[i] - if i != len(argv)-1: - function_argument+=', ' - function_argument+=')' - - shell_file=open(Path_Shell,'w') - shell_file.write('#! /bin/sh\n') - shell_file.write(CopyRights + '\n') - shell_file.write('export SCRAM_ARCH='+os.getenv("SCRAM_ARCH","slc5_amd64_gcc462")+'\n') - shell_file.write('export BUILD_ARCH='+os.getenv("BUILD_ARCH","slc5_amd64_gcc462")+'\n') - shell_file.write('export VO_CMS_SW_DIR='+os.getenv("VO_CMS_SW_DIR","/nfs/soft/cms")+'\n') - #shell_file.write('source /nfs/soft/cms/cmsset_default.sh\n') - shell_file.write('cd ' + os.getcwd() + '\n') - shell_file.write('eval `scramv1 runtime -sh`\n') - - if argv[0]=='BASH': - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write(argv[1] + " %s\n" % function_argument) - elif argv[0]=='ROOT': - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write('root -l -b << EOF\n') - shell_file.write(' TString makeshared(gSystem->GetMakeSharedLib());\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-W ", "-Wno-deprecated-declarations -Wno-deprecated -Wno-unused-local-typedefs ");\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-Wshadow ", " -std=c++0x -D__USE_XOPEN2K8 ");\n') - shell_file.write(' cout << "Compilling with the following arguments: " << makeshared << endl;\n') - shell_file.write(' gSystem->SetMakeSharedLib(makeshared);\n') - shell_file.write(' gSystem->SetIncludePath( "-I$ROOFITSYS/include" );\n') - shell_file.write(' .x %s+' % argv[1] + function_argument + '\n') - shell_file.write(' .q\n') - shell_file.write('EOF\n\n') - elif argv[0]=='FWLITE': - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write('root -l -b << EOF\n') - shell_file.write(' TString makeshared(gSystem->GetMakeSharedLib());\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-W ", "-Wno-deprecated-declarations -Wno-deprecated ");\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-Wshadow ", " -std=c++0x -D__USE_XOPEN2K8 ");\n') - shell_file.write(' cout << "Compilling with the following arguments: " << makeshared << endl;\n') - shell_file.write(' gSystem->SetMakeSharedLib(makeshared);\n') - shell_file.write(' gSystem->SetIncludePath("-I$ROOFITSYS/include");\n') - shell_file.write(' gSystem->Load("libFWCoreFWLite");\n') - shell_file.write(' FWLiteEnabler::enable();\n') - shell_file.write(' gSystem->Load("libDataFormatsFWLite.so");\n') - shell_file.write(' gSystem->Load("libAnalysisDataFormatsSUSYBSMObjects.so");\n') - shell_file.write(' gSystem->Load("libDataFormatsVertexReco.so");\n') - shell_file.write(' gSystem->Load("libDataFormatsHepMCCandidate.so");\n') - shell_file.write(' gSystem->Load("libPhysicsToolsUtilities.so");\n') - shell_file.write(' gSystem->Load("libdcap.so");\n') - shell_file.write(' .x %s+' % argv[1] + function_argument + '\n') - shell_file.write(' .q\n') - shell_file.write('EOF\n\n') - elif argv[0]=='CMSSW': - CreateTheConfigFile(argv); - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write('cmsRun ' + os.getcwd() + '/'+Path_Cfg + '\n') - else: - print() #Program to use is not specified... Guess it is bash command - shell_file.write('#Program to use is not specified... Guess it is bash command\n') - shell_file.write(argv[1] + " %s\n" % function_argument) - - for i in range(len(Jobs_FinalCmds)): - shell_file.write(Jobs_FinalCmds[i]+'\n') - shell_file.write('mv '+ Jobs_Name+'* '+os.getcwd()+'/'+Farm_Directories[3]+'\n') - shell_file.close() - os.system("chmod 777 "+Path_Shell) - - -def CreateTheCmdFile(): - global useLSF - global Path_Cmd - global CopyRights - Path_Cmd = Farm_Directories[1]+Jobs_Name+'.cmd' - cmd_file=open(Path_Cmd,'w') - - if useLSF: - cmd_file.write(CopyRights + '\n') - else: - cmd_file.write('Universe = vanilla\n') - cmd_file.write('Environment = CONDORJOBID=$(Process)\n') - cmd_file.write('notification = Error\n') - #code specific for louvain - if(commands.getstatusoutput("uname -n")[1].find("ucl.ac.be")!=-1): - cmd_file.write('requirements = (CMSFARM=?=True)&&(Memory > 200)\n') - else: - cmd_file.write('requirements = (Memory > 200)\n') - cmd_file.write('should_transfer_files = YES\n') - cmd_file.write('when_to_transfer_output = ON_EXIT\n') - cmd_file.close() - -def AddJobToCmdFile(): - global runInteractively - global useLSF - global Path_Shell - global Path_Cmd - global Path_Log - Path_Log = Farm_Directories[2]+Jobs_Index+Jobs_Name - cmd_file=open(Path_Cmd,'a') - - if runInteractively: - cmd_file.write("sh "+ os.getcwd() + "/"+Path_Shell + "\n") - elif useLSF: - if LSFlog : - cmd_file.write("bsub -q " + Jobs_Queue + " -J " + Jobs_Name+Jobs_Index + " '" + os.getcwd() + "/"+Path_Shell + " 0 ele'\n") - else : - cmd_file.write("bsub -o /dev/null -q " + Jobs_Queue + " -J " + Jobs_Name+Jobs_Index + " '" + os.getcwd() + "/"+Path_Shell + " 0 ele'\n") - else: - cmd_file.write('\n') - cmd_file.write('Executable = %s\n' % Path_Shell) - cmd_file.write('output = %s.out\n' % Path_Log) - cmd_file.write('error = %s.err\n' % Path_Log) - cmd_file.write('log = %s.log\n' % Path_Log) - cmd_file.write('Queue 1\n') - cmd_file.close() - -def CreateDirectoryStructure(FarmDirectory): - global Jobs_Name - global Farm_Directories - Farm_Directories = [FarmDirectory+'/', FarmDirectory+'/inputs/', FarmDirectory+'/logs/', FarmDirectory+'/outputs/'] - for i in range(0,len(Farm_Directories)): - if os.path.isdir(Farm_Directories[i]) == False: - os.system('mkdir ' + Farm_Directories[i]) - -def SendCluster_LoadInputFiles(path, NJobs): - global Jobs_Inputs - input_file = open(path,'r') - input_lines = input_file.readlines() - input_file.close() - #input_lines.sort() - - BlockSize = (len(input_lines)/NJobs) - LineIndex = 0 - JobIndex = 0 - BlockIndex = 0 - Jobs_Inputs = [""] - while LineIndex < len(input_lines): - Jobs_Inputs[JobIndex] += input_lines[LineIndex] - LineIndex +=1 - BlockIndex+=1 - if BlockIndex>BlockSize: - BlockIndex = 0 - JobIndex += 1 - Jobs_Inputs.append("") - return JobIndex+1 - -def SendCluster_Create(FarmDirectory, JobName): - global useLSF - global Jobs_Name - global Jobs_Count - global Farm_Directories - global runInteractively - - if(runInteractively): useLSF=True - - #determine if the submission system is LSF batch or condor - command_out = commands.getstatusoutput("bjobs")[1] - if(command_out.find("command not found")<0): useLSF = True - else: useLSF = False; - - Jobs_Name = JobName - Jobs_Count = 0 - CreateDirectoryStructure(FarmDirectory) - CreateTheCmdFile() - -def SendCluster_Push(Argv): - global Farm_Directories - global Jobs_Count - global Jobs_Index - global Path_Shell - global Path_Log - - Jobs_Index = "%04i_" % Jobs_Count - if Jobs_Count==0 and (Argv[0]=="ROOT" or Argv[0]=="FWLITE"): - #First Need to Compile the macro --> Create a temporary shell path with no arguments - print("Compiling the Macro...") - CreateTheShellFile([Argv[0],Argv[1]]) - os.system('sh '+Path_Shell) - os.system('rm '+Path_Shell) - print("Getting the jobs...") - print(Argv) - CreateTheShellFile(Argv) - AddJobToCmdFile() - Jobs_Count = Jobs_Count+1 - -def SendCluster_Submit(): - global useLSF - global CopyRights - global Jobs_Count - global Path_Cmd - - if useLSF: - os.system("sh " + Path_Cmd) - else: - os.system("condor_submit " + Path_Cmd) - - print('\n'+CopyRights) - print('%i Job(s) has/have been submitted on the Computing Cluster' % Jobs_Count) - -def SendSingleJob(FarmDirectory, JobName, Argv): - SendCluster_Create(FarmDirectory, JobName, Argv) - SendCluster_Push(FarmDirectory, JobName, Argv) - SendCluster_Submit(FarmDirectory, JobName,Argv) - -def SendCMSJobs(FarmDirectory, JobName, ConfigFile, InputFiles, NJobs, Argv): - SendCluster_Create(FarmDirectory, JobName) - NJobs = SendCluster_LoadInputFiles(InputFiles, NJobs) - for i in range(NJobs): - LaunchOnCondor.SendCluster_Push (["CMSSW", ConfigFile]) - LaunchOnCondor.SendCluster_Submit() - - - -def GetListOfFiles(Prefix, InputPattern, Suffix): - List = [] - - if(InputPattern.find('/store/cmst3')==0) : - index = InputPattern.rfind('/') - Listtmp = commands.getstatusoutput('cmsLs ' + InputPattern[0:index] + ' | awk \'{print $5}\'')[1].split('\n') - pattern = InputPattern[index+1:len(InputPattern)] - for file in Listtmp: - if fnmatch.fnmatch(file, pattern): List.append(InputPattern[0:index]+'/'+file) - elif(InputPattern.find('/castor/')==0): - index = InputPattern.rfind('/') - Listtmp = commands.getstatusoutput('rfdir ' + InputPattern[0:index] + ' | awk \'{print $9}\'')[1].split('\n') - pattern = InputPattern[index+1:len(InputPattern)] - for file in Listtmp: - if fnmatch.fnmatch(file, pattern): List.append(InputPattern[0:index]+'/'+file) - else : - List = glob.glob(InputPattern) - - List = sorted(List) - for i in range(len(List)): - List[i] = Prefix + List[i] + Suffix - return List - - -def ListToString(InputList): - outString = "" - for i in range(len(InputList)): - outString += InputList[i] - return outString - -def ListToFile(InputList, outputFile): - out_file=open(outputFile,'w') - for i in range(len(InputList)): - out_file.write(' ' + InputList[i] + '\n') - out_file.close() - -def FileToList(path): - input_file = open(path,'r') - input_lines = input_file.readlines() - input_file.close() - input_lines.sort() - return input_lines - - -def SendCMSMergeJob(FarmDirectory, JobName, InputFiles, OutputFile, KeepStatement): - SendCluster_Create(FarmDirectory, JobName) - Temp_Cfg = Farm_Directories[1]+Jobs_Index+Jobs_Name+'_TEMP_cfg.py' - - if len(InputFiles)==0: - print('Empty InputFile List for Job named "%s", Job will not be submitted' % JobName) - return - - InputFilesString = "" - for i in range(len(InputFiles)): - InputFilesString += " " + InputFiles[i] + '\n' - - cfg_file=open(Temp_Cfg,'w') - cfg_file.write('import FWCore.ParameterSet.Config as cms\n') - cfg_file.write('process = cms.Process("Merge")\n') - cfg_file.write('\n') - cfg_file.write('process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )\n') - cfg_file.write('process.load("FWCore.MessageService.MessageLogger_cfi")\n') - cfg_file.write('\n') - cfg_file.write('process.MessageLogger.cerr.FwkReport.reportEvery = 50000\n') - cfg_file.write('process.source = cms.Source("PoolSource",\n') - cfg_file.write(' fileNames = cms.untracked.vstring(\n') - cfg_file.write('%s' % InputFilesString) - cfg_file.write(' )\n') - cfg_file.write(')\n') - cfg_file.write('\n') - cfg_file.write('process.OUT = cms.OutputModule("PoolOutputModule",\n') - cfg_file.write(' outputCommands = cms.untracked.vstring(%s),\n' % KeepStatement) - cfg_file.write(' fileName = cms.untracked.string(%s)\n' % OutputFile) - cfg_file.write(')\n') - cfg_file.write('\n') - cfg_file.write('process.endPath = cms.EndPath(process.OUT)\n') - cfg_file.close() - SendCluster_Push (["CMSSW", Temp_Cfg]) - SendCluster_Submit() - os.system('rm '+ Temp_Cfg) - diff --git a/SUSYBSMAnalysis/HSCP/src/BetaCalculatorECAL.cc b/SUSYBSMAnalysis/HSCP/src/BetaCalculatorECAL.cc deleted file mode 100644 index 57ef23068b9c9..0000000000000 --- a/SUSYBSMAnalysis/HSCP/src/BetaCalculatorECAL.cc +++ /dev/null @@ -1,336 +0,0 @@ -#include "DataFormats/EcalDetId/interface/EBDetId.h" -#include "DataFormats/EcalDetId/interface/EEDetId.h" - -#include "Geometry/CaloGeometry/interface/TruncatedPyramid.h" -#include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" -#include "Geometry/CaloTopology/interface/CaloSubdetectorTopology.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" -#include "TrackingTools/Records/interface/DetIdAssociatorRecord.h" -#include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixStateInfo.h" -#include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h" - -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgo.h" - -#include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorECAL.h" - -using namespace susybsm; - -BetaCalculatorECAL::BetaCalculatorECAL(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC) - : EBRecHitCollectionToken_( - iC.consumes(iConfig.getParameter("EBRecHitCollection"))), - EERecHitCollectionToken_( - iC.consumes(iConfig.getParameter("EERecHitCollection"))), - ecalDetIdAssociatorToken_(iC.esConsumes(edm::ESInputTag("", "EcalDetIdAssociator"))), - bFieldToken_(iC.esConsumes()), - theCaloGeometryToken_(iC.esConsumes()), - caloTopologyToken_(iC.esConsumes()) { - edm::ParameterSet trkParameters = iConfig.getParameter("TrackAssociatorParameters"); - parameters_.loadParameters(trkParameters, iC); - trackAssociator_.useDefaultPropagator(); -} - -void BetaCalculatorECAL::addInfoToCandidate(HSCParticle& candidate, - edm::Handle& tracks, - edm::Event& iEvent, - const edm::EventSetup& iSetup, - HSCPCaloInfo& caloInfo) { - bool setCalo = false; - HSCPCaloInfo result; - - // EcalDetIdAssociator - const auto& ecalDetIdAssociator_ = iSetup.getData(ecalDetIdAssociatorToken_); - // Get the Bfield - bField_ = &iSetup.getData(bFieldToken_); - // Geometry - const CaloGeometry* theGeometry = &iSetup.getData(theCaloGeometryToken_); - // Topology - const CaloTopology* theCaloTopology = &iSetup.getData(caloTopologyToken_); - // EcalRecHits - edm::Handle ebRecHits; - iEvent.getByToken(EBRecHitCollectionToken_, ebRecHits); - edm::Handle eeRecHits; - iEvent.getByToken(EERecHitCollectionToken_, eeRecHits); - - // select the track - reco::Track track; - if (candidate.hasTrackRef()) - track = *(candidate.trackRef()); - else - return; // in case there is no track ref, we can't do much - - // compute the track isolation - result.trkIsoDr = 100; - for (reco::TrackCollection::const_iterator ndTrack = tracks->begin(); ndTrack != tracks->end(); ++ndTrack) { - double dr = - sqrt(pow((track.outerEta() - ndTrack->outerEta()), 2) + pow((track.outerPhi() - ndTrack->outerPhi()), 2)); - if (dr > 0.00001 && dr < result.trkIsoDr) - result.trkIsoDr = dr; - } - - // use the track associator to propagate to the calo - TrackDetMatchInfo info = - trackAssociator_.associate(iEvent, iSetup, trackAssociator_.getFreeTrajectoryState(bField_, track), parameters_); - - // do a custom propagation through Ecal - std::map trackExitPositionMap; // rawId to exit position (subtracting cry center) - std::map trackCrossedXtalCurvedMap; // rawId to trackLength - - FreeTrajectoryState tkInnerState = trajectoryStateTransform::innerFreeState(track, bField_); - // Build set of points in Ecal (necklace) using the propagator - std::vector neckLace; - neckLace = calcEcalDeposit(&tkInnerState, ecalDetIdAssociator_); - // Initialize variables to be filled by the track-length function - double totalLengthCurved = 0.; - GlobalPoint internalPointCurved(0., 0., 0.); - GlobalPoint externalPointCurved(0., 0., 0.); - if (neckLace.size() > 1) { - getDetailedTrackLengthInXtals(trackExitPositionMap, - trackCrossedXtalCurvedMap, - totalLengthCurved, - internalPointCurved, - externalPointCurved, - &(*theGeometry), - &(*theCaloTopology), - neckLace); - } - - // Make weighted sum of times - float sumWeightedTime = 0; - float sumTimeErrorSqr = 0; - float sumEnergy = 0; - float sumTrackLength = 0; - std::vector crossedRecHits; - EcalRecHitCollection::const_iterator thisHit; - - std::map::const_iterator trackExitMapIt = trackExitPositionMap.begin(); - for (std::map::const_iterator mapIt = trackCrossedXtalCurvedMap.begin(); - mapIt != trackCrossedXtalCurvedMap.end(); - ++mapIt) { - if (DetId(mapIt->first).subdetId() == EcalBarrel) { - EBDetId ebDetId(mapIt->first); - thisHit = ebRecHits->find(ebDetId); - if (thisHit == ebRecHits->end()) { - //std::cout << "\t Could not find crossedEcal detId: " << ebDetId << " in EBRecHitCollection!" << std::endl; - continue; - } - const EcalRecHit hit = *thisHit; - // Cut out badly-reconstructed hits - if (!hit.isTimeValid()) - continue; - uint32_t rhFlag = hit.recoFlag(); - if ((rhFlag != EcalRecHit::kGood) && (rhFlag != EcalRecHit::kOutOfTime) && (rhFlag != EcalRecHit::kPoorCalib)) - continue; - - float errorOnThis = hit.timeError(); - sumTrackLength += mapIt->second; - sumEnergy += hit.energy(); - crossedRecHits.push_back(hit); - // result.ecalSwissCrossKs.push_back(EcalSeverityLevelAlgo::spikeFromNeighbours(ebDetId,(*ebRecHits),0.2,EcalSeverityLevelAlgo::kSwissCross)); - // result.ecalE1OverE9s.push_back(EcalSeverityLevelAlgo::spikeFromNeighbours(ebDetId,(*ebRecHits),0.2,EcalSeverityLevelAlgo::kE1OverE9)); - result.ecalTrackLengths.push_back(mapIt->second); - result.ecalTrackExitPositions.push_back(trackExitMapIt->second); - result.ecalEnergies.push_back(hit.energy()); - result.ecalTimes.push_back(hit.time()); - result.ecalTimeErrors.push_back(hit.timeError()); - result.ecalOutOfTimeEnergies.push_back(0.); - result.ecalOutOfTimeChi2s.push_back(0.); - result.ecalChi2s.push_back(hit.chi2()); - result.ecalDetIds.push_back(ebDetId); - // SIC DEBUG - //std::cout << " SIC DEBUG: time error on this crossed RecHit: " << errorOnThis << " energy of hit: " - // << hit.energy() << " time of hit: " << hit.time() << " trackLength: " << mapIt->second << std::endl; - - if (hit.isTimeErrorValid()) // use hit time for weighted time average - { - sumWeightedTime += hit.time() / (errorOnThis * errorOnThis); - sumTimeErrorSqr += 1 / (errorOnThis * errorOnThis); - } - } - trackExitMapIt++; - } - - if (!crossedRecHits.empty()) { - setCalo = true; - sort(crossedRecHits.begin(), crossedRecHits.end(), [](auto& x, auto& y) { return (x.energy() > y.energy()); }); - result.ecalCrossedEnergy = sumEnergy; - result.ecalCrysCrossed = crossedRecHits.size(); - result.ecalDeDx = sumEnergy / sumTrackLength; - // replace the below w/o trackassociator quantities? - result.ecal3by3dir = info.nXnEnergy(TrackDetMatchInfo::EcalRecHits, 1); - result.ecal5by5dir = info.nXnEnergy(TrackDetMatchInfo::EcalRecHits, 2); - - if (sumTimeErrorSqr > 0) { - result.ecalTime = sumWeightedTime / sumTimeErrorSqr; - result.ecalTimeError = sqrt(1 / sumTimeErrorSqr); - DetId maxEnergyId = crossedRecHits.begin()->id(); - - if (maxEnergyId != DetId()) // double check - { - // To get beta, we assume photon propagation time is about the same for muons and e/gamma - // Since the typical path length is >> crystal length, this shouldn't be too bad - GlobalPoint position = info.getPosition(maxEnergyId); // position of crystal center on front face - double frontFaceR = sqrt(pow(position.x(), 2) + pow(position.y(), 2) + pow(position.z(), 2)); - double muonShowerMax = frontFaceR + 11.5; // assume muon "showerMax" is halfway into the crystal - double gammaShowerMax = frontFaceR + 6.23; // 7 X0 for e/gamma showerMax - double speedOfLight = 29.979; // cm/ns - result.ecalBeta = (muonShowerMax) / (result.ecalTime * speedOfLight + gammaShowerMax); - result.ecalBetaError = (speedOfLight * muonShowerMax * result.ecalTimeError) / - pow(speedOfLight * result.ecalTime + gammaShowerMax, 2); - result.ecalInvBetaError = speedOfLight * result.ecalTimeError / muonShowerMax; - } - // SIC debug - //std::cout << "BetaCalcEcal: CrossedRecHits: " << crossedRecHits.size() - // << " ecalTime: " << result.ecalTime << " timeError: " << result.ecalTimeError - // << " ecalCrossedEnergy: " << result.ecalCrossedEnergy << " ecalBeta: " << result.ecalBeta - // << " ecalBetaError: " << result.ecalBetaError << " ecalDeDx (MeV/cm): " << 1000*result.ecalDeDx << std::endl; - } - } - - if (!info.crossedHcalRecHits.empty()) { - // HCAL (not ECAL) info - result.hcalCrossedEnergy = info.crossedEnergy(TrackDetMatchInfo::HcalRecHits); - result.hoCrossedEnergy = info.crossedEnergy(TrackDetMatchInfo::HORecHits); - //maxEnergyId = info.findMaxDeposition(TrackDetMatchInfo::HcalRecHits); - result.hcal3by3dir = info.nXnEnergy(TrackDetMatchInfo::HcalRecHits, 1); - result.hcal5by5dir = info.nXnEnergy(TrackDetMatchInfo::HcalRecHits, 2); - } - - if (setCalo) - caloInfo = result; -} - -std::vector BetaCalculatorECAL::calcEcalDeposit(const FreeTrajectoryState* tkInnerState, - const DetIdAssociator& associator) { - // Set some parameters - double minR = associator.volume().minR(); - double minZ = associator.volume().minZ(); - double maxR = associator.volume().maxR(); - double maxZ = associator.volume().maxZ(); - - // Define the TrackOrigin (where the propagation starts) - SteppingHelixStateInfo trackOrigin(*tkInnerState); - - // Define Propagator - auto prop = std::make_unique(bField_, alongMomentum); - prop->setMaterialMode(false); - prop->applyRadX0Correction(true); - - return propagateThoughFromIP(trackOrigin, prop.get(), associator.volume(), 500, 0.1, minR, minZ, maxR, maxZ); -} - -int BetaCalculatorECAL::getDetailedTrackLengthInXtals(std::map& trackExitPositionMap, - std::map& trackCrossedXtalMap, - double& totalLengthCurved, - GlobalPoint& internalPointCurved, - GlobalPoint& externalPointCurved, - const CaloGeometry* theGeometry, - const CaloTopology* theTopology, - const std::vector& neckLace) { - GlobalPoint origin(0., 0., 0.); - internalPointCurved = origin; - externalPointCurved = origin; - - bool firstPoint = false; - trackCrossedXtalMap.clear(); - - const CaloSubdetectorGeometry* theBarrelSubdetGeometry = theGeometry->getSubdetectorGeometry(DetId::Ecal, 1); - const CaloSubdetectorGeometry* theEndcapSubdetGeometry = theGeometry->getSubdetectorGeometry(DetId::Ecal, 2); - - for (std::vector::const_iterator itr = (neckLace.begin() + 1); itr != neckLace.end(); ++itr) { - GlobalPoint probe_gp = (*itr).position(); - std::vector surroundingMatrix; - - EBDetId closestBarrelDetIdToProbe = ((theBarrelSubdetGeometry->getClosestCell(probe_gp)).rawId()); - EEDetId closestEndcapDetIdToProbe = ((theEndcapSubdetGeometry->getClosestCell(probe_gp)).rawId()); - - // check if the probe is inside the xtal - if ((closestEndcapDetIdToProbe) && (theGeometry->getSubdetectorGeometry(closestEndcapDetIdToProbe) - ->getGeometry(closestEndcapDetIdToProbe) - ->inside(probe_gp))) { - double step = ((*itr).position() - (*(itr - 1)).position()).mag(); - GlobalPoint point = itr->position(); - addStepToXtal( - trackExitPositionMap, trackCrossedXtalMap, closestEndcapDetIdToProbe, step, point, theEndcapSubdetGeometry); - totalLengthCurved += step; - - if (firstPoint == false) { - internalPointCurved = probe_gp; - firstPoint = true; - } - - externalPointCurved = probe_gp; - } - - if ((closestBarrelDetIdToProbe) && (theGeometry->getSubdetectorGeometry(closestBarrelDetIdToProbe) - ->getGeometry(closestBarrelDetIdToProbe) - ->inside(probe_gp))) { - double step = ((*itr).position() - (*(itr - 1)).position()).mag(); - GlobalPoint point = itr->position(); - addStepToXtal( - trackExitPositionMap, trackCrossedXtalMap, closestBarrelDetIdToProbe, step, point, theBarrelSubdetGeometry); - totalLengthCurved += step; - - if (firstPoint == false) { - internalPointCurved = probe_gp; - firstPoint = true; - } - - externalPointCurved = probe_gp; - } else { - // 3x3 matrix surrounding the probe - surroundingMatrix = - theTopology->getSubdetectorTopology(closestBarrelDetIdToProbe)->getWindow(closestBarrelDetIdToProbe, 3, 3); - - for (unsigned int k = 0; k < surroundingMatrix.size(); ++k) { - if (theGeometry->getSubdetectorGeometry(surroundingMatrix.at(k)) - ->getGeometry(surroundingMatrix.at(k)) - ->inside(probe_gp)) { - double step = ((*itr).position() - (*(itr - 1)).position()).mag(); - GlobalPoint point = itr->position(); - addStepToXtal(trackExitPositionMap, - trackCrossedXtalMap, - surroundingMatrix[k], - step, - point, - theGeometry->getSubdetectorGeometry(surroundingMatrix.at(k))); - totalLengthCurved += step; - - if (firstPoint == false) { - internalPointCurved = probe_gp; - firstPoint = true; - } - - externalPointCurved = probe_gp; - } - } - - // clear neighborhood matrix - surroundingMatrix.clear(); - } - } - - return 0; -} - -void BetaCalculatorECAL::addStepToXtal(std::map& trackExitPositionMap, - std::map& trackCrossedXtalMap, - DetId aDetId, - float step, - GlobalPoint point, - const CaloSubdetectorGeometry* theSubdetGeometry) { - auto cell_p = theSubdetGeometry->getGeometry(aDetId); - GlobalPoint p = cell_p->getPosition(23); - GlobalPoint diff(point.x() - p.x(), point.y() - p.y(), point.z() - p.z()); - - std::map::iterator xtal = trackExitPositionMap.find(aDetId.rawId()); - if (xtal != trackExitPositionMap.end()) - ((*xtal).second) = diff; - else - trackExitPositionMap.insert(std::pair(aDetId.rawId(), diff)); - - std::map::iterator xtal2 = trackCrossedXtalMap.find(aDetId.rawId()); - if (xtal2 != trackCrossedXtalMap.end()) - ((*xtal2).second) += step; - else - trackCrossedXtalMap.insert(std::pair(aDetId.rawId(), step)); -} diff --git a/SUSYBSMAnalysis/HSCP/src/BetaCalculatorMUON.cc b/SUSYBSMAnalysis/HSCP/src/BetaCalculatorMUON.cc deleted file mode 100644 index 20ac60e11be7a..0000000000000 --- a/SUSYBSMAnalysis/HSCP/src/BetaCalculatorMUON.cc +++ /dev/null @@ -1,36 +0,0 @@ -#include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorMUON.h" - -using namespace edm; -using namespace reco; -using namespace susybsm; - -BetaCalculatorMUON::BetaCalculatorMUON(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC) { - // m_muontiming_dt = iC.consumes(iConfig.getParameter("muontimingDt" )); - // m_muontiming_csc = iC.consumes(iConfig.getParameter("muontimingCsc" )); - // m_muontiming_combined = iC.consumes(iConfig.getParameter("muontimingCombined")); -} - -void BetaCalculatorMUON::addInfoToCandidate(HSCParticle& candidate, edm::Event& iEvent, const edm::EventSetup& iSetup) { - //Do nothing since all muonTiming object are external and get be accessed via reference - return; - /* - if(!candidate.hasMuonRef())return; - reco::MuonRef muon = candidate.muonRef(); - - Handle timeMap_Dt_h; - iEvent.getByToken(m_muontiming_dt,timeMap_Dt_h); - const reco::MuonTimeExtraMap& timeMap_Dt = *timeMap_Dt_h; - - Handle timeMap_Csc_h; - iEvent.getByToken(m_muontiming_dt,timeMap_Csc_h); - const reco::MuonTimeExtraMap& timeMap_Csc = *timeMap_Csc_h; - - Handle timeMap_Combined_h; - iEvent.getByToken(m_muontiming_dt,timeMap_Combined_h); - const reco::MuonTimeExtraMap& timeMap_Combined = *timeMap_Combined_h; - - candidate.setMuonTimeDt (timeMap_Dt [muon]); - candidate.setMuonTimeCsc (timeMap_Csc [muon]); - candidate.setMuonTimeCombined(timeMap_Combined[muon]); -*/ -} diff --git a/SUSYBSMAnalysis/HSCP/src/BetaCalculatorRPC.cc b/SUSYBSMAnalysis/HSCP/src/BetaCalculatorRPC.cc deleted file mode 100644 index 441ed344f349f..0000000000000 --- a/SUSYBSMAnalysis/HSCP/src/BetaCalculatorRPC.cc +++ /dev/null @@ -1,200 +0,0 @@ -#include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorRPC.h" - -using namespace susybsm; - -BetaCalculatorRPC::BetaCalculatorRPC(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC) { - rpcRecHitsToken = iC.consumes(iConfig.getParameter("rpcRecHits")); -} - -void BetaCalculatorRPC::algo(const std::vector& uHSCPRPCRecHits) { - std::vector HSCPRPCRecHits = uHSCPRPCRecHits; - int lastbx = -7; - bool outOfTime = false; - bool increasing = true; - bool anydifferentzero = true; - bool anydifferentone = true; - - //std::cout<<"Inside BetaCalculatorRPC \t \t Preliminar loop on the RPCHit4D!!!"<::iterator point = HSCPRPCRecHits.begin(); point < HSCPRPCRecHits.end(); ++point) { - outOfTime |= (point->bx != 0); //condition 1: at least one measurement must have BX!=0 - increasing &= (point->bx >= lastbx); //condition 2: BX must be increase when going inside-out. - anydifferentzero &= (!(point->bx == 0)); //to check one knee withoutzeros - anydifferentone &= (!(point->bx == 1)); //to check one knee withoutones - lastbx = point->bx; - //float r=point->gp.mag(); - //std::cout<<"Inside BetaCalculatorRPC \t \t r="<::iterator point = HSCPRPCRecHits.begin(); point < HSCPRPCRecHits.end(); ++point) { - if (lastbx == -7) { - maginfirstknee = point->gp.mag(); - } else if ((lastbx != point->bx)) { - //std::cout<<"Inside BetaCalculatorRPC \t \t \t one knee between"<bx<gp.mag(); - knees++; - } - lastbx = point->bx; - } - - if (knees == 0) { - //std::cout<<"Inside BetaCalculatorRPC \t \t \t \t knees="<bx<gp.mag(); - betavalue1 = maginknee / (25 - delay + maginknee / 30.) / 30.; - float dr = (maginknee - maginsecondknee); - betavalue2 = dr / (25. + dr / 30.); - //std::cout<<"Inside BetaCalculatorRPC \t \t \t \t \t betavalue1="< rpcGeo; - iSetup.get().get(rpcGeo); - - edm::Handle rpcHits; - iEvent.getByToken(rpcRecHitsToken, rpcHits); - - // here we do basically as in RPCHSCPCANDIDATE.cc, but just for the hits on the muon of interest - RPCBetaMeasurement result; - std::vector hits; - // so, loop on the RPC hits of the muon - trackingRecHit_iterator start, stop; - reco::Track track; - - if (candidate.hasMuonRef() && candidate.muonRef()->combinedMuon().isNonnull()) { - start = candidate.muonRef()->combinedMuon()->recHitsBegin(); - stop = candidate.muonRef()->combinedMuon()->recHitsEnd(); - } else if (candidate.hasMuonRef() && candidate.muonRef()->standAloneMuon().isNonnull()) { - track = *(candidate.muonRef()->standAloneMuon()); - start = candidate.muonRef()->standAloneMuon()->recHitsBegin(); - stop = candidate.muonRef()->standAloneMuon()->recHitsEnd(); - } else - return; - /* - if(candidate.hasMuonCombinedTrack()) { - start = candidate.combinedTrack().recHitsBegin(); - stop = candidate.combinedTrack().recHitsEnd(); - } else if(candidate.hasMuonStaTrack()) { - start = candidate.staTrack().recHitsBegin(); - stop = candidate.staTrack().recHitsEnd(); - } else return; -*/ - - for (trackingRecHit_iterator recHit = start; recHit != stop; ++recHit) { - if ((*recHit)->geographicalId().subdetId() != MuonSubdetId::RPC) - continue; - if ((*recHit)->geographicalId().det() != DetId::Muon) - continue; - if (!(*recHit)->isValid()) - continue; //Is Valid? - - RPCDetId rollId = (RPCDetId)(*recHit)->geographicalId(); - - typedef std::pair rangeRecHits; - rangeRecHits recHitCollection = rpcHits->get(rollId); - RPCRecHitCollection::const_iterator recHitC; - int size = 0; - int clusterS = 0; - - for (recHitC = recHitCollection.first; recHitC != recHitCollection.second; recHitC++) { - clusterS = (*recHitC).clusterSize(); - // RPCDetId rollId = (RPCDetId)(*recHitC).geographicalId(); - // std::cout<<"\t \t \t \t"< 1) - continue; //Is the only RecHit in this roll.? - if (clusterS > 4) - continue; //Is the Cluster Size 5 or bigger? - - LocalPoint recHitPos = (*recHit)->localPosition(); - const RPCRoll* rollasociated = rpcGeo->roll(rollId); - const BoundPlane& RPCSurface = rollasociated->surface(); - - RPCHit4D ThisHit; - ThisHit.bx = ((RPCRecHit*)(&(**recHit)))->BunchX(); - ThisHit.gp = RPCSurface.toGlobal(recHitPos); - ThisHit.id = (RPCDetId)(*recHit)->geographicalId().rawId(); - hits.push_back(ThisHit); - } - // here we go on with the RPC procedure - std::sort(hits.begin(), hits.end()); - int lastbx = -7; - bool increasing = true; - bool outOfTime = false; - for (std::vector::iterator point = hits.begin(); point < hits.end(); ++point) { - outOfTime |= (point->bx != 0); //condition 1: at least one measurement must have BX!=0 - increasing &= (point->bx >= lastbx); //condition 2: BX must increase when going inside-out. - lastbx = point->bx; - } - result.isCandidate = (outOfTime && increasing); - - //result.beta = 1; // here we should get some pattern-based estimate - algo(hits); - result.beta = beta(); - candidate.setRpc(result); -} diff --git a/SUSYBSMAnalysis/HSCP/src/BetaCalculatorTK.cc b/SUSYBSMAnalysis/HSCP/src/BetaCalculatorTK.cc deleted file mode 100644 index ca60849deae24..0000000000000 --- a/SUSYBSMAnalysis/HSCP/src/BetaCalculatorTK.cc +++ /dev/null @@ -1,92 +0,0 @@ -#include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorTK.h" - -using namespace edm; -using namespace reco; -using namespace susybsm; - -BetaCalculatorTK::BetaCalculatorTK(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC) { - /* - m_dedxEstimator1Token = consumes(iConfig.getParameter("dedxEstimator1")); - m_dedxEstimator2Token = consumes(iConfig.getParameter("dedxEstimator2")); - m_dedxEstimator3Token = consumes(iConfig.getParameter("dedxEstimator3")); - m_dedxEstimator4Token = consumes(iConfig.getParameter("dedxEstimator4")); - m_dedxEstimator5Token = consumes(iConfig.getParameter("dedxEstimator5")); - m_dedxEstimator6Token = consumes(iConfig.getParameter("dedxEstimator6")); - m_dedxDiscriminator1Token = consumes(iConfig.getParameter("dedxDiscriminator1")); - m_dedxDiscriminator2Token = consumes(iConfig.getParameter("dedxDiscriminator2")); - m_dedxDiscriminator3Token = consumes(iConfig.getParameter("dedxDiscriminator3")); - m_dedxDiscriminator4Token = consumes(iConfig.getParameter("dedxDiscriminator4")); - m_dedxDiscriminator5Token = consumes(iConfig.getParameter("dedxDiscriminator5")); - m_dedxDiscriminator6Token = consumes(iConfig.getParameter("dedxDiscriminator6")); -*/ -} - -void BetaCalculatorTK::addInfoToCandidate(HSCParticle& candidate, edm::Event& iEvent, const edm::EventSetup& iSetup) { - //Do nothing since all dE/dx object are external and get be accessed via reference - return; - /* - if(!candidate.hasTrackRef())return; - - edm::Handle Estimator1H; - iEvent.getByToken(m_dedxEstimator1Token,Estimator1H); - const ValueMap Estimator1 = *Estimator1H.product(); - - edm::Handle Estimator2H; - iEvent.getByToken(m_dedxEstimator2Token,Estimator2H); - const ValueMap Estimator2 = *Estimator2H.product(); - - edm::Handle Estimator3H; - iEvent.getByToken(m_dedxEstimator3Token,Estimator3H); - const ValueMap Estimator3 = *Estimator3H.product(); - - edm::Handle Estimator4H; - iEvent.getByToken(m_dedxEstimator4Token,Estimator4H); - const ValueMap Estimator4 = *Estimator4H.product(); - - edm::Handle Estimator5H; - iEvent.getByToken(m_dedxEstimator5Token,Estimator5H); - const ValueMap Estimator5 = *Estimator5H.product(); - - edm::Handle Estimator6H; - iEvent.getByToken(m_dedxEstimator6Token,Estimator6H); - const ValueMap Estimator6 = *Estimator6H.product(); - - edm::Handle Discriminator1H; - iEvent.getByToken(m_dedxDiscriminator1Token,Discriminator1H); - const ValueMap Discriminator1 = *Discriminator1H.product(); - - edm::Handle Discriminator2H; - iEvent.getByToken(m_dedxDiscriminator2Token,Discriminator2H); - const ValueMap Discriminator2 = *Discriminator2H.product(); - - edm::Handle Discriminator3H; - iEvent.getByToken(m_dedxDiscriminator3Token,Discriminator3H); - const ValueMap Discriminator3 = *Discriminator3H.product(); - - edm::Handle Discriminator4H; - iEvent.getByToken(m_dedxDiscriminator4Token,Discriminator4H); - const ValueMap Discriminator4 = *Discriminator4H.product(); - - edm::Handle Discriminator5H; - iEvent.getByToken(m_dedxDiscriminator5Token,Discriminator5H); - const ValueMap Discriminator5 = *Discriminator5H.product(); - - edm::Handle Discriminator6H; - iEvent.getByToken(m_dedxDiscriminator6Token,Discriminator6H); - const ValueMap Discriminator6 = *Discriminator6H.product(); - - reco::TrackRef track = candidate.trackRef(); - candidate.setDedxEstimator1 (Estimator1 [track]); - candidate.setDedxEstimator2 (Estimator2 [track]); - candidate.setDedxEstimator3 (Estimator3 [track]); - candidate.setDedxEstimator4 (Estimator4 [track]); - candidate.setDedxEstimator5 (Estimator5 [track]); - candidate.setDedxEstimator6 (Estimator6 [track]); - candidate.setDedxDiscriminator1(Discriminator1[track]); - candidate.setDedxDiscriminator2(Discriminator2[track]); - candidate.setDedxDiscriminator3(Discriminator3[track]); - candidate.setDedxDiscriminator4(Discriminator4[track]); - candidate.setDedxDiscriminator5(Discriminator5[track]); - candidate.setDedxDiscriminator6(Discriminator6[track]); -*/ -} diff --git a/SUSYBSMAnalysis/HSCP/src/CandidateSelector.cc b/SUSYBSMAnalysis/HSCP/src/CandidateSelector.cc deleted file mode 100644 index 33b63c2daed3e..0000000000000 --- a/SUSYBSMAnalysis/HSCP/src/CandidateSelector.cc +++ /dev/null @@ -1,120 +0,0 @@ -#include "SUSYBSMAnalysis/HSCP/interface/CandidateSelector.h" - -using namespace edm; -using namespace reco; -using namespace susybsm; - -CandidateSelector::CandidateSelector(const edm::ParameterSet& iConfig) { - isTrack = iConfig.getParameter("onlyConsiderTrack"); - isMuon = iConfig.getParameter("onlyConsiderMuon"); - isMuonSTA = iConfig.getParameter("onlyConsiderMuonSTA"); - isMuonGB = iConfig.getParameter("onlyConsiderMuonGB"); - isMuonTK = iConfig.getParameter("onlyConsiderMuonTK"); - isMTMuon = iConfig.getParameter("onlyConsiderMTMuon"); - isRpc = iConfig.getParameter("onlyConsiderRpc"); - isEcal = iConfig.getParameter("onlyConsiderEcal"); - - minTrackHits = iConfig.getParameter("minTrackHits"); - minTrackP = iConfig.getParameter("minTrackP"); - minTrackPt = iConfig.getParameter("minTrackPt"); - - minDedx = iConfig.getParameter("minDedx"); - - minMuonP = iConfig.getParameter("minMuonP"); - minMuonPt = iConfig.getParameter("minMuonPt"); - minSAMuonPt = iConfig.getParameter("minMTMuonPt"); - minMTMuonPt = iConfig.getParameter("minMTMuonPt"); - - maxMuTimeDtBeta = iConfig.getParameter("maxMuTimeDtBeta"); - minMuTimeDtNdof = iConfig.getParameter("minMuTimeDtNdof"); - maxMuTimeCscBeta = iConfig.getParameter("maxMuTimeCscBeta"); - minMuTimeCscNdof = iConfig.getParameter("minMuTimeCscNdof"); - maxMuTimeCombinedBeta = iConfig.getParameter("maxMuTimeCombinedBeta"); - minMuTimeCombinedNdof = iConfig.getParameter("minMuTimeCombinedNdof"); - - maxBetaRpc = iConfig.getParameter("maxBetaRpc"); - maxBetaEcal = iConfig.getParameter("maxBetaEcal"); -} - -bool CandidateSelector::isSelected(HSCParticle& candidate) { - if (isTrack && !candidate.hasTrackRef()) { - return false; - } - if (isMuon && !candidate.hasMuonRef()) { - return false; - } - if (isMuonSTA && (!candidate.hasMuonRef() || candidate.muonRef()->standAloneMuon().isNull())) { - return false; - } - if (isMuonGB && (!candidate.hasMuonRef() || candidate.muonRef()->combinedMuon().isNull())) { - return false; - } - if (isMuonTK && (!candidate.hasMuonRef() || candidate.muonRef()->innerTrack().isNull())) { - return false; - } - if (isMTMuon && !candidate.hasMTMuonRef()) { - return false; - } - if (isRpc && !candidate.hasRpcInfo()) { - return false; - } - if (isEcal && !candidate.hasCaloInfo()) { - return false; - } - - if (candidate.hasTrackRef()) { - if (candidate.trackRef()->found() < minTrackHits) { - return false; - } - if (candidate.trackRef()->p() < minTrackP) { - return false; - } - if (candidate.trackRef()->pt() < minTrackPt) { - return false; - } - - // Need to be implemented using external dE/dx object - // if(candidate.hasDedxEstim1() && minDedxEstimator1>=0 && candidate.dedxEstimator1 ().dEdx()=0 && candidate.dedxDiscriminator1().dEdx()p() < minMuonP) { - return false; - } - if (candidate.muonRef()->pt() < minMuonPt) { - return false; - } - - // Need to be implemented using external timing object - // if(maxMuTimeDtBeta >=0 && 1.0/candidate.muonTimeDt().inverseBeta() > maxMuTimeDtBeta ){return false;} - // if(minMuTimeDtNdof >=0 && 1.0/candidate.muonTimeDt().nDof() < minMuTimeDtNdof ){return false;} - // if(maxMuTimeCscBeta >=0 && 1.0/candidate.muonTimeCsc().inverseBeta() > maxMuTimeCscBeta ){return false;} - // if(minMuTimeCscNdof >=0 && 1.0/candidate.muonTimeCsc().nDof() < minMuTimeCscNdof ){return false;} - // if(maxMuTimeCombinedBeta>=0 && 1.0/candidate.muonTimeCombined().inverseBeta() > maxMuTimeCombinedBeta){return false;} - // if(minMuTimeCombinedNdof>=0 && 1.0/candidate.muonTimeCombined().nDof() < minMuTimeCombinedNdof){return false;} - } - - if (candidate.hasRpcInfo() && maxBetaRpc >= 0 && candidate.rpc().beta > maxBetaRpc) { - return false; - } - - if (candidate.hasMuonRef() && candidate.muonRef()->isStandAloneMuon()) { - if (candidate.muonRef()->standAloneMuon()->pt() < minSAMuonPt) { - return false; - } - } - - if (candidate.hasMTMuonRef()) { - if (!candidate.MTMuonRef()->standAloneMuon().isNull()) { - if (candidate.MTMuonRef()->standAloneMuon()->pt() < minMTMuonPt) { - return false; - } - } - } - - // Need to be implemented using external dE/dx object - // if(candidate.hasCaloInfo() && maxBetaEcal>=0 && candidate.calo().ecalBeta > maxBetaEcal){return false;} - - return true; -} diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/HSCParticleProducer_cfg.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/HSCParticleProducer_cfg.py deleted file mode 100644 index e71898e901915..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/HSCParticleProducer_cfg.py +++ /dev/null @@ -1,199 +0,0 @@ -from __future__ import print_function -import FWCore.ParameterSet.Config as cms - -process = cms.Process("HSCPAnalysis") - -from SUSYBSMAnalysis.HSCP.HSCPVersion_cff import * - -process.load("FWCore.MessageService.MessageLogger_cfi") -if CMSSW4_2 or CMSSW4_4:process.load("Configuration.StandardSequences.Geometry_cff") -else: process.load("Configuration.Geometry.GeometryIdeal_cff") - -process.load("Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(100) ) - -if CMSSW4_4: process.GlobalTag.globaltag = 'FT_R_44_V11::All' -elif CMSSW4_2: process.GlobalTag.globaltag = 'GR_P_V14::All' -else: - import FWCore.ParameterSet.VarParsing as VarParsing - options = VarParsing.VarParsing("analysis") - options.register("globalTag", - "GR_P_V32::All", # default value - VarParsing.VarParsing.multiplicity.singleton, # singleton or list - VarParsing.VarParsing.varType.string, # string, int, or float - "Global tag to be used." - ) - # get and parse the command line arguments - options.parseArguments() - process.GlobalTag.globaltag = options.globalTag - -readFiles = cms.untracked.vstring() -process.source = cms.Source("PoolSource", - fileNames = readFiles -) - -if CMSSW4_2: readFiles.extend(['/store/data/Run2011B/SingleMu/USER/EXOHSCP-PromptSkim-v1/0000/FC298F26-65FF-E011-977F-00237DA13C76.root']) -else: readFiles.extend(['/store/data/Run2012D/SingleMu/USER/EXOHSCP-PromptSkim-v1/000/208/391/00000/78225FEA-B23E-E211-B4DE-485B39800C17.root']) - -process.source.inputCommands = cms.untracked.vstring("keep *", "drop *_MEtoEDMConverter_*_*") - -######################################################################## -process.load("SUSYBSMAnalysis.HSCP.HSCParticleProducerFromSkim_cff") #IF RUNNING ON HSCP SKIM - -if CMSSW4_2: - process.load('SUSYBSMAnalysis.Skimming.EXOHSCP_cff') - process.load('SUSYBSMAnalysis.Skimming.EXOHSCP_EventContent_cfi') - -else: - process.load('Configuration.Skimming.PDWG_EXOHSCP_cff') - -######################################################################## INCREASING HSCP TRIGGER TRESHOLD FOR OLD DATA -process.load('HLTrigger.HLTfilters.hltHighLevel_cfi') -if CMSSW4_2 or CMSSW4_4: - process.HSCPTrigger = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(1), #Activated - PFMetTriggerMask = cms.int32(1), #Activated - L2MuMETTriggerMask = cms.int32(1), #Activated - ) -else: - process.HSCPTrigger = process.hltHighLevel.clone() - process.HSCPTrigger.TriggerResultsTag = cms.InputTag( "TriggerResults", "", "HLT" ) - process.HSCPTrigger.HLTPaths = [ - "HLT_*_dEdx*", - "HLT_Mu40_eta2p1*", - "HLT_Mu50_eta2p1*", - "HLT_HT650_*", - "HLT_MET80_*", - "HLT_L2Mu*MET*", - "HLT_L2Mu*NoBPTX*", - "HLT_PFMET150_*", - ] - process.HSCPTrigger.andOr = cms.bool( True ) #OR - process.HSCPTrigger.throw = cms.bool( False ) - -######################################################################## SPECIAL CASE FOR DATA -process.GlobalTag.toGet = cms.VPSet( - cms.PSet( record = cms.string('SiStripDeDxMip_3D_Rcd'), - tag = cms.string('Data7TeV_Deco_3D_Rcd_38X'), - connect = cms.untracked.string("sqlite_file:Data7TeV_Deco_SiStripDeDxMip_3D_Rcd.db")), -) - -if not CMSSW4_2 and not CMSSW4_4: - print ("WARNING: You are using Data7TeV_Deco_SiStripDeDxMip_3D_Rcd.db for dEdx computation... These constants are a priori not valid for 2012 samples\nThe constants need to be redone for 2012 samples") - - -######################################################################## -process.nEventsBefSkim = cms.EDProducer("EventCountProducer") -process.nEventsBefEDM = cms.EDProducer("EventCountProducer") -######################################################################## - -if not CMSSW4_2 and not CMSSW4_4: - #bug fix in 52 - process.HSCParticleProducer.useBetaFromEcal = cms.bool(False) - - #skim the jet collection to keep only 15GeV jets - process.ak5PFJetsPt15 = cms.EDFilter( "EtMinPFJetSelector", - src = cms.InputTag( "ak5PFJets" ), - filter = cms.bool( False ), - etMin = cms.double( 15.0 ) - ) - -process.Out = cms.OutputModule("PoolOutputModule", - outputCommands = cms.untracked.vstring( - "drop *", - 'keep EventAux_*_*_*', - 'keep LumiSummary_*_*_*', - 'keep edmMergeableCounter_*_*_*', - "keep *_genParticles_*_*", - "keep GenEventInfoProduct_generator_*_*", - "keep *_offlinePrimaryVertices_*_*", - "keep SiStripClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep SiPixelClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep *_TrackRefitter_*_*", - "keep *_standAloneMuons_*_*", - "keep *_globalMuons_*_*", # - "keep *_muonsSkim_*_*", - "keep edmTriggerResults_TriggerResults_*_*", - "keep *_ak5PFJetsPt15__*", # - "keep recoPFMETs_pfMet__*", # - "keep *_HSCParticleProducer_*_*", - "keep *_HSCPIsolation01__*", - "keep *_HSCPIsolation03__*", - "keep *_HSCPIsolation05__*", - "keep *_dedx*_*_HSCPAnalysis", - "keep *_muontiming_*_HSCPAnalysis", - "keep triggerTriggerEvent_hltTriggerSummaryAOD_*_*", - "keep *_RefitMTSAMuons_*_*", - "keep *_MTMuons_*_*", - "keep *_MTSAMuons_*_*", - "keep *_MTmuontiming_*_*", - "keep *_refittedStandAloneMuons_*_*", - "keep *_offlineBeamSpot_*_*", - "keep *_MuonSegmentProducer_*_*", - "drop TrajectorysToOnerecoTracksAssociation_TrackRefitter__", - "drop recoTrackExtras_*_*_*", - "keep recoTrackExtras_TrackRefitter_*_*", - "drop TrackingRecHitsOwned_*Muon*_*_*", - ), - fileName = cms.untracked.string('HSCP.root'), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('p1') - ), -) - -if CMSSW4_2: - process.Out.outputCommands.extend(["keep recoPFJets_ak5PFJets__*"]) - - from CondCore.DBCommon.CondDBSetup_cfi import CondDBSetup - process.tTrigDB = cms.ESSource("PoolDBESSource", - CondDBSetup, - timetype = cms.string('runnumber'), - toGet = cms.VPSet(cms.PSet( - record = cms.string('DTTtrigRcd'), - tag = cms.string('DTTtrig_offline_prep_V03'), - label = cms.untracked.string('') - )), - connect = cms.string('frontier://FrontierPrep/CMS_COND_DT'), - authenticationMethod = cms.untracked.uint32(0) - ) - #process.tTrigDB.DBParameters.authenticationPath = '/afs/cern.ch/cms/DB/conddb' - process.es_prefer_tTrigDB = cms.ESPrefer('PoolDBESSource','tTrigDB') - - process.vDriftDB = cms.ESSource("PoolDBESSource", - CondDBSetup, - timetype = cms.string('runnumber'), - toGet = cms.VPSet(cms.PSet( - record = cms.string('DTMtimeRcd'), - tag = cms.string('DTVdrift_offline_prep_V03'), - label = cms.untracked.string('') - )), - connect = cms.string('frontier://FrontierPrep/CMS_COND_DT'), - authenticationMethod = cms.untracked.uint32(0) - ) - #process.vDriftDB.DBParameters.authenticationPath = '/afs/cern.ch/cms/DB/conddb' - process.es_prefer_vDriftDB = cms.ESPrefer('PoolDBESSource','vDriftDB') - - - -######################################################################## - - -#LOOK AT SD PASSED PATH IN ORDER to avoid as much as possible duplicated events (make the merging of .root file faster) -#The module ak5PFJetsPt15 does not exist in CMSSW4 -if CMSSW4_2 or CMSSW4_4: process.p1 = cms.Path(process.nEventsBefSkim * process.HSCPTrigger * process.nEventsBefEDM * process.HSCParticleProducerSeq) -else: process.p1 = cms.Path(process.nEventsBefSkim * process.HSCPTrigger * process.nEventsBefEDM * process.ak5PFJetsPt15 * process.HSCParticleProducerSeq) - -#If you are not running from the HSCP skim you need to redo the skim -#process.p1 = cms.Path(process.nEventsBefSkim * process.HSCPTrigger * process.exoticaHSCPSeq * process.nEventsBefEDM * process.ak5PFJetsPt15 * process.HSCParticleProducerSeq) - -process.endPath1 = cms.EndPath(process.Out) -process.schedule = cms.Schedule( process.p1, process.endPath1) - - diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/Merge.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/Merge.py deleted file mode 100644 index d58f4b8b3c56a..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/Merge.py +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env python - -import urllib -import string -import os -import sys -import LaunchOnCondor - -Jobs = [ -#["RunA_*_190645_190999","RunA_190645_190999"], -#["RunA_*_191000_191999","RunA_191000_191999"], -#["RunA_*_192000_192999","RunA_192000_192999"], -#["RunA_*_193000_193621","RunA_193000_193621"], -#["RunB_*_193622_193999","RunB_193622_193999"], -#["RunB_*_194000_194999","RunB_194000_194999"], -#["RunB_*_195000_195999","RunB_195000_195999"], -#["RunB_*_196000_196531","RunB_196000_196531"], -#["RunC_*_197000_197999","RunC_196532_197999"], -#["RunC_*_198000_198345","RunC_198000_198345"], -#["RunC_*_198488_198919","RunC_198488_198919"], -#["RunC_*_198920_198999","RunC_198920_198999"], -#["RunC_*_199000_199999","RunC_199000_199999"], -#["RunC_*_200000_200532","RunC_200000_200532"], -#["RunC_*_200533_202016","RunC_200533_202016"], -#["Run2012C_*_202017_203002","RunC_202017_203002"], - -#["RunD_*_203003_203300","RunD_203003_203300"], -#["RunD_*_203301_203600","RunD_203301_203600"], -#["RunD_*_203601_203900","RunD_203601_203900"], -#["RunD_*_203901_204200","RunD_203901_204200"], -#["RunD_*_204201_204500","RunD_204201_204500"], -#["RunD_*_204501_204800","RunD_204501_204800"], -#["RunD_*_204801_205100","RunD_204801_205100"], -#["RunD_*_205101_205400","RunD_205101_205400"], -#["RunD_*_205401_205700","RunD_205401_205700"], -#["RunD_*_205701_206000","RunD_205701_206000"], -#["RunD_*_206001_206300","RunD_206001_206300"], -#["RunD_*_206301_206600","RunD_206301_206600"], -#["RunD_*_206601_206900","RunD_206601_206900"], -#["RunD_*_206901_207200","RunD_206901_207200"], -#["RunD_*_207201_207500","RunD_207201_207500"], -#["RunD_*_207501_207800","RunD_207501_207800"], -#["RunD_*_207801_208100","RunD_207801_208100"], -#["RunD_*_208101_208357","RunD_208101_208357"], -["RunD_*_208358_208686","RunD_208358_208686"] -] - -FarmDirectory = "MERGE" -for j in Jobs: - LaunchOnCondor.ListToFile(LaunchOnCondor.GetListOfFiles('"dcache:','/pnfs/cms/WAX/11/store/user/farrell3/HSCPEDMUpdateData2012_30Nov2012/'+j[0]+'/HSCP_*.root','",'), FarmDirectory + "InputFile.txt") - #LaunchOnCondor.SendCMSJobs(FarmDirectory, j[1], "Merge_cfg.py", FarmDirectory + "InputFile.txt", 1, ['XXX_SAVEPATH_XXX','file:/storage/data/cms/users/quertenmont/HSCP/CMSSW_4_2_8/12_08_16/']) - LaunchOnCondor.SendCMSJobs(FarmDirectory, j[1], "Merge_cfg.py", FarmDirectory + "InputFile.txt", 1, ['XXX_SAVEPATH_XXX','/uscmst1b_scratch/lpc1/3DayLifetime/farrell/2012Data_04Sep2012']) -os.system("rm " + FarmDirectory + "InputFile.txt") diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/Merge_cfg.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/Merge_cfg.py deleted file mode 100644 index df313357ddeab..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/Merge_cfg.py +++ /dev/null @@ -1,140 +0,0 @@ -import FWCore.ParameterSet.Config as cms -process = cms.Process("MergeHLT") - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -process.load("FWCore.MessageService.MessageLogger_cfi") -from SUSYBSMAnalysis.HSCP.HSCPVersion_cff import * - -process.MessageLogger.cerr.FwkReport.reportEvery = 5000 -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -XXX_INPUT_XXX - ) -) - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -process.HSCPHLTDuplicate = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(True), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(0), #Activated - PFMetTriggerMask = cms.int32(0), #Activated - L2MuMETTriggerMask = cms.int32(0), #Activated -) -process.DuplicateFilter = cms.Path(process.HSCPHLTDuplicate ) - -process.load('HLTrigger.HLTfilters.hltHighLevel_cfi') -process.HSCPHLTTriggerMuDeDx = process.hltHighLevel.clone() -process.HSCPHLTTriggerMuDeDx.TriggerResultsTag = cms.InputTag( "TriggerResults", "", "HLT" ) -process.HSCPHLTTriggerMuDeDx.andOr = cms.bool( True ) #OR -process.HSCPHLTTriggerMuDeDx.throw = cms.bool( False ) -process.HSCPHLTTriggerMuDeDx.HLTPaths = ["HLT_Mu*_dEdx*"] -process.HSCPHLTTriggerMuDeDxFilter = cms.Path(process.HSCPHLTTriggerMuDeDx ) - -process.HSCPHLTTriggerMetDeDx = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerMetDeDx.HLTPaths = ["HLT_MET*_dEdx*"] -process.HSCPHLTTriggerMetDeDxFilter = cms.Path(process.HSCPHLTTriggerMetDeDx ) - -process.HSCPHLTTriggerHtDeDx = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerHtDeDx.HLTPaths = ["HLT_HT*_dEdx*"] -process.HSCPHLTTriggerHtDeDxFilter = cms.Path(process.HSCPHLTTriggerHtDeDx ) - -#process.HSCPHLTTriggerMu -if CMSSW4_2 or CMSSW4_4: - #This needs to be done differently for 2011 data because HLT_Mu40 did not exist in trigger menu at beginning of run - process.HSCPHLTTriggerMu = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(1), #Activated - PFMetTriggerMask = cms.int32(0), #Activated - L2MuMETTriggerMask = cms.int32(0), #Activated - ) -else: - process.HSCPHLTTriggerMu = process.HSCPHLTTriggerMuDeDx.clone() - process.HSCPHLTTriggerMu.HLTPaths = ["HLT_Mu40_*"] - -process.HSCPHLTTriggerMuFilter = cms.Path(process.HSCPHLTTriggerMu ) - -process.HSCPHLTTriggerMet = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerMet.HLTPaths = ["HLT_MET80_*"] -process.HSCPHLTTriggerMetFilter = cms.Path(process.HSCPHLTTriggerMet ) - -process.HSCPHLTTriggerPFMet = process.HSCPHLTTriggerMuDeDx.clone() -#Name change from 2011 to 2012 -if CMSSW4_2 or CMSSW4_4: - process.HSCPHLTTriggerPFMet.HLTPaths = ["HLT_PFMHT150_*"] -else: - process.HSCPHLTTriggerPFMet.HLTPaths = ["HLT_PFMET150_*"] -process.HSCPHLTTriggerPFMetFilter = cms.Path(process.HSCPHLTTriggerPFMet ) - -process.HSCPHLTTriggerHt = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerHt.HLTPaths = ["HLT_HT650_*"] -process.HSCPHLTTriggerHtFilter = cms.Path(process.HSCPHLTTriggerHt ) - -if CMSSW4_2 or CMSSW4_4: - #Needs to be done separately as had lower threshold prescaled trigger in menu in 2011 - process.HSCPHLTTriggerL2Mu = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(0), #Activated - PFMetTriggerMask = cms.int32(0), #Activated - L2MuMETTriggerMask = cms.int32(1), #Activated - ) -else: - process.HSCPHLTTriggerL2Mu = process.HSCPHLTTriggerMuDeDx.clone() - process.HSCPHLTTriggerL2Mu.HLTPaths = ["HLT_L2Mu*MET*"] - -process.HSCPHLTTriggerL2MuFilter = cms.Path(process.HSCPHLTTriggerL2Mu ) - - -process.HSCPHLTTriggerCosmic = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerCosmic.HLTPaths = ["HLT_L2Mu*NoBPTX*"] -process.HSCPHLTTriggerCosmicFilter = cms.Path(process.HSCPHLTTriggerCosmic ) - -process.Out = cms.OutputModule("PoolOutputModule", - outputCommands = cms.untracked.vstring( - "drop *", - "keep EventAux_*_*_*", - "keep LumiSummary_*_*_*", - "keep edmMergeableCounter_*_*_*", - "keep *_genParticles_*_*", - "keep GenEventInfoProduct_generator_*_*", - "keep *_offlinePrimaryVertices_*_*", - "keep SiStripClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep SiPixelClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep *_TrackRefitter_*_*", - "keep *_standAloneMuons_*_*", - "keep *_globalMuons_*_*", - "keep *_muonsSkim_*_*", - "keep edmTriggerResults_TriggerResults_*_*", - "keep *_ak5PFJetsPt15__*", - "keep recoPFMETs_pfMet__*", - "keep *_HSCParticleProducer_*_*", - "keep *_HSCPIsolation01__*", - "keep *_HSCPIsolation03__*", - "keep *_HSCPIsolation05__*", - "keep *_dedx*_*_HSCPAnalysis", - "keep *_muontiming_*_HSCPAnalysis", - "keep triggerTriggerEvent_hltTriggerSummaryAOD_*_*", - "keep *_RefitMTSAMuons_*_*", - "keep *_MTMuons_*_*", - "keep *_MTSAMuons_*_*", - "keep *_MTmuontiming_*_*", - "keep *_refittedStandAloneMuons_*_*", - "keep *_offlineBeamSpot_*_*", - "keep *_MuonSegmentProducer_*_*", - "drop TrajectorysToOnerecoTracksAssociation_TrackRefitter__", - "drop recoTrackExtras_*_*_*", - "keep recoTrackExtras_TrackRefitter_*_*", - "drop TrackingRecHitsOwned_*Muon*_*_*", - ), - #fileName = cms.untracked.string('/uscmst1b_scratch/lpc1/3DayLifetime/farrell/HSCPEDMUpdateData2012_30Nov2012/XXX_OUTPUT_XXX.root'), - fileName = cms.untracked.string('XXX_SAVEPATH_XXX/XXX_OUTPUT_XXX.root'), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('DuplicateFilter') - ), -) - -process.endPath = cms.EndPath(process.Out) - -process.schedule = cms.Schedule(process.DuplicateFilter, process.HSCPHLTTriggerMuDeDxFilter, process.HSCPHLTTriggerMetDeDxFilter, process.HSCPHLTTriggerHtDeDxFilter, process.HSCPHLTTriggerMuFilter, process.HSCPHLTTriggerMetFilter, process.HSCPHLTTriggerPFMetFilter, process.HSCPHLTTriggerHtFilter, process.HSCPHLTTriggerL2MuFilter, process.HSCPHLTTriggerCosmicFilter, process.endPath) diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/OfficialLumi.json b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/OfficialLumi.json deleted file mode 100644 index a6bb7018583d4..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/OfficialLumi.json +++ /dev/null @@ -1 +0,0 @@ -{"190645": [[10, 110]], "190704": [[1, 3]], "190705": [[1, 5], [7, 65], [81, 336], [338, 350], [353, 383]], "190738": [[1, 130], [133, 226], [229, 355]], "191043": [[45, 47]], "191046": [[1, 21], [24, 82], [84, 88], [92, 116], [119, 180], [183, 183], [185, 239]], "191056": [[1, 1], [4, 9], [16, 17], [19, 19]], "191057": [[1, 1], [4, 40]], "191062": [[1, 1], [3, 3], [5, 214], [216, 549]], "191090": [[1, 55]], "191201": [[38, 49], [52, 79]], "191202": [[1, 64], [66, 68], [87, 105], [108, 118]], "191226": [[77, 78], [81, 831], [833, 1454], [1456, 1466], [1469, 1507], [1510, 1686]], "191247": [[1, 153], [156, 280], [283, 606], [608, 620], [622, 818], [821, 834], [837, 1031], [1034, 1046], [1049, 1140], [1143, 1187], [1190, 1214], [1217, 1224]], "191248": [[1, 103]], "191264": [[59, 79], [82, 152], [155, 189]], "191271": [[56, 158]], "191276": [[1, 16]], "191277": [[1, 28], [30, 164], [167, 253], [255, 457], [460, 535], [537, 576], [579, 775], [778, 811], [813, 849]], "191367": [[1, 2]], "191411": [[1, 23]], "191695": [[1, 1]], "191718": [[43, 95], [98, 207]], "191720": [[1, 1], [3, 15], [17, 181]], "191721": [[1, 1], [3, 34], [36, 183], [186, 189]], "191726": [[1, 13]], "191810": [[15, 15], [22, 49], [52, 92]], "191830": [[54, 242], [245, 301], [304, 393]], "191833": [[1, 1], [3, 103]], "191834": [[1, 30], [33, 74], [77, 299], [302, 352]], "191837": [[1, 44], [47, 53], [56, 65]], "191856": [[1, 133]], "191859": [[1, 28], [31, 126]], "193093": [[1, 33]], "193123": [[1, 27]], "193124": [[1, 52]], "193207": [[54, 182]], "193334": [[29, 172]], "193336": [[1, 264], [267, 492], [495, 684], [687, 729], [732, 951]], "193541": [[77, 101], [103, 413], [416, 575], [578, 619]], "193556": [[41, 83]], "193557": [[1, 84]], "193575": [[48, 173], [176, 349], [351, 394], [397, 415], [417, 658], [660, 752]], "193621": [[60, 570], [573, 769], [772, 976], [979, 1053], [1056, 1137], [1139, 1193], [1195, 1371], [1373, 1654]], "193834": [[1, 35]], "193835": [[1, 20], [22, 26]], "193836": [[1, 2]], "193998": [[66, 113], [115, 278]], "193999": [[1, 50]], "194027": [[53, 115]], "194050": [[53, 113], [116, 273], [275, 355], [357, 369], [372, 391], [394, 490], [492, 814], [816, 1435], [1437, 1735], [1760, 1888]], "194051": [[1, 12]], "194052": [[1, 99], [102, 166]], "194075": [[48, 101], [103, 111]], "194076": [[1, 9], [11, 55], [58, 163], [165, 228], [230, 264], [267, 507], [509, 527], [530, 538], [541, 562], [565, 748]], "194108": [[81, 161], [164, 264], [266, 373], [376, 396], [398, 433], [436, 452], [454, 577], [579, 590], [593, 668], [671, 875]], "194115": [[66, 184], [186, 338], [340, 346], [348, 493], [496, 731], [819, 857]], "194117": [[1, 38]], "194119": [[1, 229], [232, 261]], "194120": [[1, 162], [165, 406]], "194150": [[42, 127], [129, 261], [264, 311]], "194151": [[47, 72], [75, 191], [193, 238], [240, 619], [621, 624], [627, 627]], "194153": [[1, 119]], "194199": [[92, 227], [229, 336], [339, 402]], "194210": [[3, 195], [198, 217], [220, 359], [361, 555]], "194223": [[61, 112]], "194224": [[1, 126], [129, 206], [208, 250], [253, 309], [312, 386], [389, 412]], "194225": [[1, 23], [26, 47], [49, 85], [88, 156], [177, 178]], "194270": [[56, 73]], "194303": [[56, 66], [69, 102]], "194304": [[1, 43], [46, 46]], "194305": [[1, 86]], "194314": [[52, 130], [133, 301]], "194315": [[1, 10], [13, 314], [317, 428], [431, 452], [455, 467]], "194317": [[1, 33]], "194424": [[63, 141], [144, 195], [198, 266], [268, 421], [424, 478], [481, 531], [534, 553], [556, 708]], "194428": [[1, 85], [87, 122], [125, 294], [296, 465]], "194429": [[1, 4], [7, 54], [57, 147], [150, 411], [413, 742], [745, 986], [988, 1023]], "194439": [[46, 77], [79, 106]], "194455": [[45, 64], [67, 140], [142, 255], [293, 303]], "194464": [[1, 127], [130, 142], [145, 210]], "194479": [[1, 44], [165, 232], [235, 262], [265, 374], [377, 431], [434, 489], [492, 529], [531, 566]], "194480": [[1, 32], [34, 205], [207, 375], [377, 387], [389, 759], [762, 956], [959, 1402]], "194533": [[46, 379], [382, 415], [417, 618], [620, 872]], "194619": [[31, 110]], "194631": [[1, 42], [44, 100], [102, 169], [171, 222]], "194643": [[1, 287]], "194644": [[1, 168], [171, 181], [184, 185], [187, 319], [321, 424]], "194691": [[61, 104], [107, 155], [158, 251], [254, 268], [271, 272], [275, 289], [292, 313]], "194699": [[1, 30], [32, 52], [55, 64], [67, 71], [73, 154], [157, 215], [218, 238], [241, 259]], "194702": [[1, 138], [141, 191]], "194704": [[1, 41], [44, 545], [548, 592]], "194711": [[1, 7], [9, 619]], "194712": [[1, 56], [61, 418], [420, 625], [627, 759]], "194735": [[44, 71], [74, 101], [104, 130], [133, 136]], "194778": [[60, 118], [120, 219]], "194789": [[1, 18], [21, 32], [34, 80], [82, 166], [168, 269], [272, 405], [409, 414], [417, 427], [430, 566]], "194790": [[1, 45]], "194825": [[72, 117], [120, 221]], "194896": [[34, 55], [58, 79], [82, 103]], "194897": [[1, 6], [8, 78], [80, 107]], "194912": [[53, 70], [72, 96], [98, 444], [446, 450], [453, 467], [470, 561], [564, 660], [663, 813], [815, 840], [843, 864], [866, 1004], [1007, 1025], [1027, 1067], [1069, 1137], [1140, 1166], [1168, 1249], [1251, 1304], [1307, 1444], [1447, 1487], [1489, 1503], [1506, 1662]], "194914": [[1, 38]], "194915": [[1, 74]], "195013": [[94, 144], [146, 185], [187, 206], [208, 299], [302, 324], [326, 366], [369, 447], [450, 526], [528, 541]], "195014": [[1, 6], [9, 119], [121, 148]], "195015": [[1, 13]], "195016": [[1, 21], [23, 55], [58, 63], [65, 174], [177, 184], [186, 241], [243, 246], [248, 251], [254, 367], [370, 422], [425, 560], [563, 569]], "195099": [[70, 144], [147, 186], [189, 208], [211, 224], [227, 265]], "195109": [[98, 241]], "195112": [[1, 12], [15, 26]], "195113": [[1, 209], [212, 388], [391, 403], [406, 419], [422, 492], [495, 579]], "195114": [[1, 69], [72, 103]], "195115": [[1, 7], [10, 36]], "195147": [[132, 282], [285, 294], [297, 331], [334, 363], [366, 442], [445, 536], [539, 562]], "195163": [[72, 138], [140, 224], [227, 240], [243, 243], [246, 347]], "195164": [[1, 64]], "195165": [[1, 4], [7, 41], [44, 54], [56, 153], [156, 260], [263, 277]], "195251": [[1, 131], [134, 137], [140, 152], [154, 165], [167, 249]], "195303": [[109, 191], [194, 277], [280, 310], [312, 316], [318, 409]], "195304": [[1, 3], [6, 22], [27, 80], [83, 100], [103, 154], [157, 341], [344, 588], [590, 727], [729, 1003], [1006, 1079], [1083, 1140], [1143, 1229]], "195378": [[90, 117], [120, 127], [130, 185], [187, 204], [206, 302], [305, 542], [544, 565], [567, 645], [647, 701], [703, 734], [737, 1120], [1122, 1133]], "195390": [[1, 1], [4, 27], [30, 145], [147, 183], [186, 187], [190, 208], [210, 213], [215, 410]], "195396": [[49, 55], [58, 63], [66, 131]], "195397": [[1, 10], [12, 89], [92, 120], [123, 141], [143, 251], [253, 253], [256, 475], [478, 525], [527, 608], [611, 776], [779, 970], [972, 1121], [1123, 1181], [1184, 1198], [1200, 1209]], "195398": [[3, 137], [139, 494], [497, 585], [587, 817], [820, 824], [827, 1225], [1228, 1307], [1309, 1712], [1721, 1736], [1741, 1752], [1767, 1795]], "195399": [[1, 192], [194, 382], [384, 394]], "195530": [[1, 80], [82, 104], [107, 156], [159, 300], [302, 405]], "195540": [[68, 123], [126, 137], [140, 283], [286, 323]], "195551": [[91, 106]], "195552": [[1, 21], [23, 27], [30, 147], [149, 155], [158, 182], [185, 287], [290, 349], [352, 469], [472, 815], [818, 823], [825, 883], [885, 1152], [1154, 1300], [1303, 1789]], "195633": [[40, 42]], "195647": [[1, 41]], "195649": [[1, 69], [72, 151], [154, 181], [183, 247]], "195655": [[1, 129], [131, 184], [186, 260], [263, 350], [353, 446], [448, 483], [485, 498]], "195656": [[1, 362]], "195658": [[1, 37], [40, 362], [364, 382], [384, 386]], "195749": [[1, 8], [10, 33], [36, 131]], "195757": [[1, 82], [85, 115], [118, 161], [163, 206]], "195758": [[1, 18]], "195774": [[1, 13], [16, 137], [139, 151], [154, 162], [164, 256], [258, 276], [279, 362], [365, 466], [469, 618], [620, 649], [651, 830]], "195775": [[1, 57], [60, 100], [103, 170]], "195776": [[1, 63], [66, 283], [286, 337], [340, 399], [401, 409], [411, 477]], "195841": [[74, 90]], "195868": [[1, 88], [90, 107], [110, 205]], "195915": [[1, 109], [111, 275], [278, 390], [393, 417], [419, 429], [432, 505], [507, 747], [749, 785], [787, 828], [830, 850]], "195916": [[1, 16], [19, 68], [71, 212]], "195917": [[1, 4]], "195918": [[1, 44], [46, 46], [49, 64]], "195919": [[1, 15]], "195923": [[1, 14]], "195925": [[1, 12]], "195926": [[1, 1], [3, 19], [21, 34]], "195929": [[1, 29]], "195930": [[1, 77], [80, 176], [179, 526], [529, 596]], "195937": [[1, 28], [31, 186], [188, 400]], "195947": [[23, 62], [64, 88]], "195948": [[51, 116], [119, 144], [147, 147], [150, 352], [355, 369], [372, 402], [404, 500], [503, 540], [543, 565], [567, 602], [605, 615]], "195950": [[1, 71], [73, 138], [141, 169], [172, 332], [335, 350], [353, 382], [385, 421], [424, 450], [453, 483], [485, 616], [619, 715], [718, 787], [789, 800], [803, 829], [831, 831], [833, 1587]], "195963": [[54, 61]], "195970": [[44, 49], [51, 85]], "196019": [[54, 68]], "196027": [[1, 55], [58, 119], [121, 155], [158, 190]], "196046": [[12, 40]], "196047": [[1, 64], [70, 75]], "196048": [[1, 44], [46, 48], [51, 52]], "196197": [[58, 122], [125, 179], [181, 311], [313, 516], [519, 562]], "196199": [[1, 33], [36, 83], [86, 118], [121, 147], [150, 237], [239, 285], [287, 534]], "196200": [[1, 68]], "196202": [[3, 61], [64, 108]], "196203": [[1, 102], [107, 135]], "196218": [[55, 199], [201, 224], [226, 393], [396, 494], [496, 741], [744, 752], [754, 757], [759, 820]], "196239": [[1, 59], [62, 154], [157, 272], [274, 373], [375, 432], [435, 465], [468, 647], [650, 706], [709, 1025]], "196249": [[63, 77], [80, 99]], "196250": [[1, 2], [5, 265], [267, 426], [430, 430]], "196252": [[1, 38]], "196334": [[59, 111], [113, 123], [126, 132], [135, 167], [170, 193], [196, 257], [259, 267], [270, 289], [292, 348]], "196349": [[65, 84], [86, 154], [157, 244], [246, 258]], "196357": [[1, 4]], "196359": [[1, 2]], "196362": [[1, 88]], "196363": [[1, 8], [11, 34]], "196364": [[1, 93], [96, 136], [139, 365], [368, 380], [382, 601], [603, 795], [798, 884], [887, 1196], [1199, 1200], [1203, 1302]], "196437": [[1, 1], [3, 74], [77, 169]], "196438": [[1, 181], [184, 699], [701, 1269]], "196452": [[82, 112], [114, 490], [493, 586], [589, 618], [622, 668], [671, 716], [718, 726], [728, 956], [958, 1004], [1007, 1091]], "196453": [[1, 74], [77, 145], [147, 669], [673, 714], [717, 799], [802, 988], [991, 1178], [1180, 1180], [1182, 1248], [1250, 1528], [1531, 1647]], "196495": [[114, 180], [182, 272]], "196509": [[1, 68]], "196531": [[62, 150], [152, 253], [256, 285], [288, 302], [305, 422], [425, 440]], "198049": [[1, 11], [14, 57]], "198050": [[2, 155]], "198063": [[1, 37], [40, 72], [74, 124], [127, 294]], "198116": [[36, 52], [54, 55], [58, 96], [98, 112]], "198207": [[1, 97]], "198208": [[1, 92], [94, 134], [137, 147], [150, 209]], "198210": [[1, 221]], "198212": [[1, 574]], "198213": [[1, 107]], "198215": [[1, 12]], "198230": [[1, 33], [36, 57], [60, 235], [237, 324], [326, 388], [390, 459], [462, 625], [627, 651], [653, 805], [808, 811], [814, 948], [950, 1090], [1093, 1103], [1106, 1332], [1335, 1380]], "198249": [[1, 7]], "198269": [[3, 199], [201, 201], [203, 203]], "198271": [[1, 91], [93, 170], [173, 299], [301, 450], [453, 513], [516, 616], [619, 628], [631, 791], [793, 797]], "198272": [[1, 185], [188, 245], [248, 314], [317, 433], [436, 444], [454, 625]], "198346": [[44, 57]], "198372": [[57, 114]], "198485": [[68, 109], [112, 134], [136, 181], [184, 239]], "198487": [[1, 145], [147, 514], [517, 668], [671, 733], [736, 757], [760, 852], [854, 994], [997, 1434], [1437, 1612]], "198522": [[65, 144], [147, 208]], "198941": [[102, 189], [191, 220], [222, 241], [243, 249], [252, 291]], "198954": [[108, 156], [159, 277]], "198955": [[1, 45], [47, 50], [53, 220], [223, 269], [271, 284], [286, 338], [340, 580], [583, 742], [744, 910], [913, 946], [949, 1162], [1165, 1169], [1172, 1182], [1185, 1188], [1190, 1246], [1249, 1304], [1306, 1467], [1470, 1485], [1487, 1552]], "198969": [[58, 81], [84, 247], [249, 323], [325, 365], [367, 413], [416, 466], [468, 643], [646, 918], [920, 1011], [1013, 1175], [1178, 1236], [1239, 1277]], "199008": [[75, 93], [95, 121], [124, 208], [211, 331], [333, 373], [376, 482], [485, 605], [608, 644]], "199011": [[1, 11], [13, 27]], "199021": [[59, 88], [91, 128], [130, 133], [136, 309], [311, 333], [335, 410], [414, 469], [471, 533], [535, 563], [565, 1223], [1226, 1479], [1481, 1494]], "199318": [[65, 138]], "199319": [[1, 7], [9, 223], [226, 277], [280, 348], [351, 358], [360, 422], [424, 490], [492, 493], [496, 612], [615, 642], [645, 720], [723, 728], [730, 731], [734, 741], [744, 943], [945, 997]], "199336": [[1, 33], [36, 122], [125, 231], [234, 614], [617, 789], [791, 977]], "199356": [[95, 121], [123, 168], [171, 205], [208, 233]], "199409": [[25, 54], [56, 89], [91, 204], [206, 290], [293, 583], [586, 602], [604, 1014], [1016, 1300]], "199428": [[61, 197], [200, 210], [212, 382], [387, 414], [417, 436], [439, 530], [533, 648]], "199429": [[1, 28], [30, 36], [39, 55], [58, 101], [103, 148], [151, 156]], "199435": [[63, 106], [109, 261], [263, 579], [582, 654], [656, 696], [699, 1034], [1037, 1144], [1147, 1327], [1330, 1411], [1414, 1431], [1434, 1441], [1444, 1487], [1489, 1610]], "199436": [[1, 113], [116, 254], [257, 675], [678, 748]], "199564": [[1, 3]], "199569": [[1, 2], [5, 136], [139, 367]], "199570": [[1, 17]], "199571": [[1, 184], [186, 360], [363, 561]], "199572": [[1, 317]], "199573": [[1, 22]], "199574": [[1, 53], [56, 153], [156, 246]], "199608": [[60, 157], [159, 209], [211, 341], [344, 390], [392, 461], [464, 800], [802, 1064], [1067, 1392], [1395, 1630], [1633, 1904], [1907, 1962], [1965, 2252], [2255, 2422]], "199698": [[72, 94], [96, 127]], "199699": [[1, 154], [157, 169], [172, 410], [412, 756]], "199703": [[1, 94], [97, 482], [485, 539]], "199739": [[66, 174]], "199745": [[137, 143]], "199751": [[103, 119], [121, 127]], "199752": [[1, 141], [144, 180], [182, 186], [188, 211], [214, 322]], "199753": [[1, 59]], "199754": [[1, 203], [205, 325], [328, 457], [459, 607], [610, 613], [615, 806], [808, 998]], "199804": [[78, 88], [90, 181], [183, 235], [238, 278], [281, 290], [292, 519], [522, 575], [577, 628], [631, 638]], "199812": [[70, 141], [144, 163], [182, 211], [214, 471], [474, 505], [508, 557], [560, 571], [574, 623], [626, 751], [754, 802]], "199833": [[1, 13], [16, 103], [105, 250], [253, 493], [496, 794], [797, 1032], [1034, 1185], [1188, 1239]], "199862": [[59, 142]], "199864": [[1, 87], [89, 89], [92, 103], [106, 372], [374, 385], [388, 486]], "199867": [[1, 134], [136, 172], [174, 218], [221, 320]], "199868": [[1, 26]], "199875": [[70, 150], [152, 334]], "199876": [[1, 19], [22, 95], [97, 249], [252, 272], [274, 340], [343, 362], [365, 376]], "199877": [[1, 173], [175, 605], [607, 701], [703, 873]], "199960": [[72, 139], [141, 197], [204, 232], [235, 363], [365, 367], [370, 380], [383, 459], [461, 466], [469, 485]], "199961": [[1, 211], [213, 292]], "199973": [[73, 96]], "200041": [[62, 83], [85, 157], [162, 274], [277, 318], [321, 335], [337, 386], [388, 389], [392, 400], [402, 568], [571, 593], [595, 646], [649, 728], [731, 860], [862, 930], [932, 1096]], "200042": [[1, 110], [112, 536]], "200049": [[1, 177]], "200075": [[76, 139], [142, 232], [256, 326], [329, 422], [425, 431], [434, 500], [502, 605]], "200091": [[67, 67], [70, 151], [154, 172], [174, 187], [190, 196], [199, 201], [204, 425], [428, 535], [537, 607], [610, 879], [881, 943], [946, 999], [1001, 1025], [1027, 1132], [1135, 1339], [1341, 1433], [1435, 1450], [1453, 1523], [1526, 1664], [1667, 1680], [1683, 1710]], "200152": [[74, 152]], "200180": [[1, 18]], "200188": [[1, 24], [27, 28], [31, 76], [79, 271], [274, 352]], "200190": [[1, 4], [6, 76], [79, 143], [146, 159], [162, 256], [258, 321], [324, 401], [403, 453], [456, 457], [460, 565], [567, 588], [591, 591], [593, 595], [597, 646], [649, 880]], "200229": [[1, 33], [41, 219], [222, 244], [247, 290], [293, 624], [627, 629]], "200243": [[69, 103], [106, 139]], "200244": [[3, 304], [307, 442], [445, 507], [510, 619]], "200245": [[1, 103], [105, 128], [131, 248], [251, 357]], "200368": [[72, 180]], "200369": [[1, 5], [8, 61], [64, 360], [363, 439], [441, 578], [580, 603], [606, 684], [686, 686]], "200381": [[8, 15], [18, 36], [38, 89], [91, 198]], "200466": [[134, 274]], "200473": [[96, 157], [159, 224], [226, 304], [306, 469], [472, 524], [527, 542], [545, 619], [622, 688], [691, 730], [733, 738], [740, 1324]], "200491": [[87, 107], [110, 149], [152, 157], [160, 197], [199, 237], [240, 270], [273, 273], [276, 334], [336, 360], [363, 448]], "200515": [[97, 183]], "200519": [[1, 111], [114, 126], [129, 136], [138, 224], [227, 258], [261, 350], [353, 611], [613, 757]], "200525": [[77, 149], [151, 164], [166, 190], [193, 276], [278, 311], [314, 464], [467, 488], [491, 674], [676, 704], [707, 755], [757, 895], [898, 937], [939, 990]], "200532": [[1, 59]], "200599": [[75, 129], [132, 137]], "200600": [[1, 183], [186, 299], [302, 313], [316, 324], [327, 334], [336, 397], [399, 417], [420, 526], [529, 591], [594, 609], [611, 660], [663, 823], [826, 900], [902, 943], [945, 1139], [1141, 1142]], "200961": [[1, 115]], "200976": [[94, 164]], "200990": [[75, 143]], "200991": [[1, 42], [44, 44], [47, 80], [83, 175], [178, 181], [184, 252], [255, 632], [635, 916], [918, 1017], [1019, 1049]], "200992": [[1, 405], [408, 434], [436, 581]], "201062": [[78, 270]], "201097": [[83, 136], [138, 245], [248, 300], [303, 370], [372, 429], [432, 502]], "201114": [[1, 14]], "201115": [[1, 75]], "201159": [[70, 211]], "201164": [[1, 8], [10, 94], [96, 125], [128, 178], [180, 198], [200, 271], [274, 416], [418, 418]], "201168": [[1, 37], [39, 275], [278, 481], [483, 558], [560, 730]], "201173": [[1, 194], [197, 586]], "201174": [[1, 214], [216, 263], [265, 339], [342, 451]], "201193": [[1, 19]], "201196": [[1, 238], [241, 278], [286, 299], [302, 338], [341, 515], [518, 720], [723, 789], [803, 841]], "201197": [[1, 23]], "201202": [[1, 437]], "201229": [[1, 5], [8, 26], [29, 77]], "201278": [[62, 163], [166, 229], [232, 256], [259, 316], [318, 595], [598, 938], [942, 974], [976, 1160], [1163, 1304], [1306, 1793], [1796, 1802], [1805, 1906], [1909, 1929], [1932, 2174]], "201554": [[70, 86], [88, 114], [116, 127]], "201602": [[76, 81], [83, 194], [196, 494], [496, 614], [617, 639]], "201611": [[87, 145], [149, 182], [184, 186]], "201613": [[1, 42], [44, 49], [53, 210], [213, 215], [218, 225], [228, 659]], "201624": [[83, 92], [95, 240], [270, 270]], "201625": [[211, 312], [315, 348], [351, 416], [418, 588], [591, 671], [673, 758], [760, 791], [793, 952]], "201657": [[77, 93], [95, 108], [110, 118]], "201658": [[1, 19], [21, 118], [121, 136], [139, 292]], "201668": [[78, 157]], "201669": [[1, 9], [12, 136], [139, 141], [143, 165]], "201671": [[1, 120], [122, 174], [177, 462], [464, 482], [485, 499], [501, 545], [547, 571], [574, 614], [617, 766], [768, 896], [899, 911], [914, 1007]], "201678": [[1, 120]], "201679": [[1, 110], [112, 241], [244, 298], [302, 321], [324, 461], [463, 493]], "201692": [[78, 81], [83, 180]], "201705": [[65, 73], [75, 109], [111, 187]], "201706": [[1, 62]], "201707": [[1, 23], [26, 42], [45, 115], [118, 130], [133, 160], [163, 276], [279, 471], [473, 511], [514, 545], [547, 570], [572, 622], [625, 735], [738, 806], [809, 876], [879, 964]], "201708": [[1, 87]], "201718": [[58, 113]], "201727": [[67, 185]], "201729": [[6, 20], [22, 75], [77, 126], [129, 154], [156, 216], [219, 244]], "201794": [[58, 100]], "201802": [[68, 209], [211, 214], [216, 220], [223, 288], [290, 296]], "201816": [[1, 72], [74, 105], [107, 157]], "201817": [[1, 274]], "201818": [[1, 1]], "201819": [[1, 94], [96, 241]], "201824": [[1, 139], [141, 176], [179, 286], [289, 492]], "202012": [[98, 121], [126, 131]], "202013": [[1, 2], [5, 35], [38, 57]], "202014": [[1, 5], [8, 14], [16, 18], [20, 77], [79, 102], [104, 174], [177, 190], [192, 196]], "202016": [[1, 48], [51, 134], [137, 177], [179, 743], [745, 831], [834, 890], [893, 896], [898, 932], [934, 1016]], "202044": [[84, 101], [104, 266], [268, 461], [463, 466]], "202045": [[1, 30], [33, 72], [75, 528], [531, 601], [603, 785], [788, 809], [822, 825]], "202054": [[6, 266], [268, 489], [492, 605], [608, 631]], "202060": [[76, 142], [144, 154], [156, 244], [246, 497], [499, 642], [644, 682], [684, 743], [746, 941]], "202074": [[66, 174]], "202075": [[1, 18], [21, 187], [189, 214], [217, 247], [250, 342], [345, 406], [409, 497], [500, 537], [539, 539], [542, 560], [562, 615], [618, 630]], "202084": [[83, 156], [159, 177], [179, 180], [182, 239]], "202087": [[1, 25], [28, 208], [210, 357], [359, 652], [655, 853], [856, 1093]], "202088": [[1, 286]], "202093": [[1, 104], [107, 320], [322, 360]], "202116": [[59, 64]], "202178": [[67, 78], [80, 88], [91, 177], [180, 186], [188, 337], [340, 377], [379, 425], [428, 475], [478, 548], [551, 717], [720, 965], [967, 1444], [1447, 1505], [1508, 1519], [1522, 1558]], "202205": [[94, 114]], "202209": [[1, 48], [51, 159]], "202237": [[39, 128], [131, 131], [134, 219], [222, 235], [238, 275], [277, 289], [291, 316], [319, 419], [422, 538], [540, 936], [939, 950], [952, 976], [979, 1081]], "202272": [[76, 112], [115, 141], [144, 185], [188, 205], [208, 305], [307, 313], [315, 371], [436, 480], [483, 555], [558, 577], [579, 683], [686, 705], [707, 740], [742, 890], [937, 1295], [1299, 1481]], "202299": [[68, 84], [87, 141], [143, 193], [196, 358], [361, 379], [382, 414], [416, 452], [455, 555]], "202305": [[1, 89], [92, 130], [133, 323]], "202314": [[67, 104], [107, 265], [268, 284]], "202328": [[46, 89], [92, 156], [158, 276], [278, 291], [294, 434], [437, 460], [463, 586], [588, 610], [612, 614]], "202333": [[1, 251]], "202389": [[81, 182], [185, 190], [192, 203]], "202469": [[87, 158], [160, 174], [177, 352]], "202472": [[1, 96], [99, 112]], "202477": [[1, 129], [131, 150]], "202478": [[1, 177], [180, 183], [186, 219], [222, 360], [362, 506], [509, 531], [534, 718], [720, 927], [929, 973], [975, 1029], [1031, 1186], [1189, 1212], [1215, 1248]], "202504": [[77, 96], [99, 133], [135, 182], [184, 211], [213, 241], [243, 392], [395, 527], [529, 617], [620, 715], [718, 763], [766, 1172], [1174, 1247], [1250, 1471], [1474, 1679], [1682, 1704]], "202972": [[1, 30], [33, 184], [186, 290], [292, 295], [298, 371], [374, 429], [431, 544]], "202973": [[1, 234], [237, 305], [308, 437], [439, 530], [532, 541], [544, 552], [555, 851], [853, 1408]], "203002": [[77, 128], [130, 141], [144, 207], [209, 267], [270, 360], [362, 501], [504, 641], [643, 669], [671, 671], [674, 717], [720, 1034], [1037, 1070], [1073, 1370], [1372, 1392], [1395, 1410], [1413, 1596]], "203894": [[82, 272], [275, 477], [480, 902], [905, 1322]], "203909": [[79, 113], [116, 117], [120, 140], [143, 382]], "203912": [[1, 306], [308, 566], [569, 609], [611, 698], [701, 820], [823, 865], [867, 1033], [1035, 1321]], "203985": [[1, 10]], "203986": [[1, 45]], "203987": [[1, 9], [12, 241], [243, 339], [342, 781], [784, 1014]], "203991": [[1, 3]], "203992": [[1, 15]], "203994": [[1, 56], [59, 136], [139, 304], [306, 342], [344, 425]], "204100": [[117, 139]], "204101": [[1, 83]], "204113": [[82, 96], [98, 102], [105, 127], [129, 191], [194, 258], [261, 327], [329, 388], [390, 400], [402, 583], [585, 690], [693, 693], [696, 696]], "204114": [[1, 364]], "204238": [[23, 52], [55, 60]], "204250": [[92, 118], [121, 177], [179, 285], [287, 336], [339, 400], [403, 521], [524, 543], [546, 682], [684, 803]], "204511": [[1, 60]], "204541": [[5, 39], [42, 42], [44, 139], [142, 149], [151, 204]], "204544": [[1, 11], [13, 93], [96, 195], [197, 224], [226, 334], [337, 426]], "204552": [[1, 9]], "204553": [[1, 51], [53, 60], [63, 101], [103, 104]], "204554": [[1, 5], [7, 221], [224, 455], [458, 470], [472, 481], [483, 514]], "204555": [[1, 329], [331, 334]], "204563": [[91, 99], [102, 178], [180, 219], [222, 229], [231, 364], [366, 366], [369, 470], [473, 524], [527, 571]], "204564": [[1, 84], [87, 89], [92, 159], [161, 187], [190, 191], [193, 293], [296, 315], [317, 340], [343, 427], [429, 434], [437, 735], [737, 855], [858, 1206], [1209, 1248], [1251, 1284]], "204565": [[1, 48]], "204566": [[1, 12]], "204567": [[1, 38]], "204576": [[49, 192], [195, 301]], "204577": [[1, 46], [49, 64], [67, 105], [107, 170], [173, 181], [183, 193], [196, 653], [656, 669], [671, 740], [742, 913], [915, 1057], [1059, 1115], [1117, 1287]], "204599": [[73, 83], [85, 94], [97, 121], [124, 125], [128, 173], [175, 240], [243, 245], [248, 264], [266, 292], [294, 335]], "204601": [[1, 25], [28, 62], [65, 80], [83, 89], [92, 290], [292, 563], [565, 591], [593, 652], [655, 780], [783, 812], [814, 892], [894, 984], [986, 1003], [1006, 1038], [1040, 1088], [1091, 1102], [1105, 1161], [1164, 1255]], "205086": [[95, 149]], "205111": [[88, 390], [392, 441], [444, 449]], "205158": [[81, 289], [292, 313], [315, 473], [476, 591], [594, 595], [597, 612], [615, 663], [665, 667], [672, 685], [687, 733], [736, 741]], "205193": [[80, 109], [111, 349], [352, 486], [488, 650], [652, 712], [714, 902]], "205217": [[1, 12], [16, 111], [113, 171], [174, 250], [253, 322]], "205233": [[94, 153]], "205236": [[1, 190], [193, 207], [209, 260], [263, 331], [334, 352]], "205238": [[1, 6], [9, 199], [202, 254], [256, 304], [306, 355], [358, 381], [384, 596], [598, 621]], "205303": [[35, 54], [90, 132], [135, 153]], "205310": [[76, 306], [309, 313], [316, 316], [319, 321], [324, 457], [460, 559]], "205311": [[1, 85], [88, 92], [95, 183], [186, 395], [397, 592], [595, 910], [913, 1260]], "205339": [[71, 175], [178, 213], [216, 230], [233, 262], [265, 404]], "205344": [[1, 83], [86, 104], [106, 359], [362, 431], [433, 949], [951, 967], [969, 1127], [1129, 1346], [1348, 1586]], "205515": [[82, 201], [203, 216]], "205519": [[1, 47], [50, 172], [175, 367], [370, 386], [389, 472]], "205526": [[1, 269], [272, 277], [280, 332]], "205614": [[1, 4], [7, 40]], "205617": [[1, 29], [32, 102], [105, 123], [125, 140], [143, 264], [266, 448], [451, 532], [534, 547]], "205618": [[1, 12]], "205620": [[1, 175]], "205666": [[60, 119], [122, 165], [168, 259], [261, 322], [325, 578], [580, 594], [597, 721], [724, 739]], "205667": [[1, 165], [168, 282], [285, 318], [321, 412], [415, 689], [692, 751], [754, 774], [777, 1109]], "205683": [[76, 82], [85, 178], [181, 198], [201, 305]], "205690": [[1, 40]], "205694": [[1, 205], [208, 230], [233, 347], [350, 452], [455, 593], [595, 890]], "205718": [[49, 75], [78, 97], [100, 103], [105, 176], [178, 338], [341, 361], [363, 524], [527, 531], [534, 589], [591, 734]], "205774": [[1, 80]], "205777": [[1, 9]], "205781": [[1, 89], [91, 197], [200, 509]], "205826": [[80, 232], [235, 303], [306, 469]], "205833": [[84, 86], [89, 121], [123, 155], [157, 165], [167, 173], [176, 219], [221, 267], [270, 312], [315, 346], [350, 355], [360, 366]], "205834": [[1, 12], [14, 202]], "205908": [[68, 200], [202, 214]], "205921": [[22, 73], [76, 268], [271, 394], [397, 401], [410, 428], [431, 498], [500, 571], [574, 779], [782, 853]], "206066": [[89, 155]], "206088": [[86, 159], [161, 178], [181, 199], [202, 286]], "206102": [[83, 116], [120, 130], [133, 208], [211, 235], [238, 246], [249, 278], [281, 349]], "206187": [[107, 169], [172, 242], [245, 288], [290, 340], [343, 427], [429, 435], [437, 486], [489, 569], [571, 647], [649, 662], [664, 708]], "206188": [[1, 40], [42, 58]], "206199": [[1, 75], [77, 82], [85, 117]], "206207": [[82, 130], [132, 176], [179, 194], [196, 388], [390, 419], [422, 447], [450, 569], [572, 690]], "206208": [[1, 470], [472, 518]], "206210": [[11, 25], [28, 275], [277, 298], [300, 383], [386, 469]], "206243": [[62, 169], [172, 196], [199, 354], [357, 433], [435, 448], [451, 533], [536, 554], [557, 723], [726, 905]], "206245": [[1, 62]], "206246": [[1, 14], [16, 237], [240, 285], [288, 407], [412, 676], [678, 704], [706, 785], [787, 962], [965, 997], [1000, 1198], [1201, 1290]], "206257": [[1, 29]], "206258": [[1, 36], [39, 223], [226, 249]], "206302": [[1, 8], [11, 33], [36, 44], [47, 82], [84, 108], [110, 149], [151, 186], [189, 229], [231, 232], [234, 241], [243, 276]], "206303": [[1, 19], [23, 286]], "206304": [[1, 4], [6, 70]], "206331": [[91, 222], [225, 314]], "206389": [[88, 185], [187, 249], [252, 272], [275, 392]], "206391": [[1, 55], [57, 98]], "206401": [[69, 90], [92, 194], [197, 210], [212, 249], [251, 265], [267, 411]], "206446": [[92, 141], [143, 159], [162, 205], [208, 301], [304, 442], [445, 445], [448, 474], [476, 616], [619, 872], [874, 910], [912, 948], [950, 989], [992, 1030], [1033, 1075], [1109, 1149]], "206448": [[1, 143], [145, 559], [561, 1170], [1173, 1231], [1235, 1237]], "206466": [[24, 137], [140, 277], [280, 296], [299, 303], [306, 405], [407, 419], [422, 477], [480, 511], [514, 682]], "206476": [[73, 129], [133, 137], [140, 141], [143, 219]], "206477": [[1, 14], [16, 31], [33, 41], [44, 51], [53, 70], [73, 75], [77, 89], [91, 94], [97, 115], [118, 184]], "206478": [[1, 27], [29, 136], [139, 147]], "206484": [[73, 95], [98, 133], [136, 163], [166, 186], [189, 384], [387, 463], [465, 551], [554, 554], [556, 673]], "206512": [[91, 123], [125, 133], [136, 161], [163, 190], [193, 201], [203, 212], [214, 332], [334, 584], [587, 604], [607, 1005], [1008, 1123], [1126, 1163], [1165, 1211]], "206513": [[3, 39], [42, 188], [191, 234], [237, 238], [241, 329]], "206542": [[1, 115], [117, 165], [168, 511], [514, 547], [550, 603], [606, 668], [671, 727], [730, 739], [741, 836]], "206550": [[77, 132], [135, 155]], "206572": [[37, 47]], "206573": [[2, 14]], "206574": [[1, 87]], "206575": [[1, 7], [10, 10], [12, 75]], "206594": [[72, 107], [110, 246], [249, 281]], "206595": [[1, 34], [37, 42], [45, 193]], "206596": [[1, 13], [15, 220], [222, 228], [231, 236], [239, 292], [295, 695], [697, 728], [730, 810]], "206598": [[1, 81], [83, 103], [105, 588], [591, 657], [659, 719]], "206605": [[1, 36], [39, 82]], "206744": [[49, 157], [160, 192], [195, 395], [398, 452]], "206745": [[1, 81], [84, 199], [202, 224], [227, 237], [240, 304], [306, 318], [321, 720], [723, 796], [799, 894], [897, 944], [946, 1106], [1108, 1524], [1527, 1862], [1988, 1996]], "206859": [[79, 210], [212, 258], [260, 323], [325, 356], [359, 609], [612, 681], [684, 732], [734, 768], [771, 808], [811, 827], [830, 848]], "206866": [[1, 30], [33, 113], [115, 274]], "206868": [[1, 3], [10, 16]], "206869": [[1, 251], [253, 271], [274, 502], [507, 520], [522, 566], [568, 752]], "206897": [[1, 34], [38, 61], [63, 102], [109, 109], [111, 112], [114, 131], [133, 137]], "206901": [[1, 98]], "206906": [[1, 31], [38, 94], [96, 136], [138, 139], [142, 149], [151, 175], [177, 218]], "206940": [[1, 151], [153, 153], [155, 298], [301, 382], [384, 712], [715, 803], [805, 960], [963, 1027]], "207099": [[83, 134], [137, 172], [175, 213], [216, 314], [316, 320], [323, 330], [333, 367], [370, 481], [484, 602], [605, 755], [757, 1046], [1048, 1171]], "207100": [[1, 91], [94, 98]], "207214": [[57, 112], [114, 177], [179, 181], [184, 196], [199, 220], [223, 262], [265, 405], [408, 482], [485, 640], [643, 708], [718, 757], [759, 808], [811, 829]], "207217": [[1, 32]], "207219": [[1, 112]], "207220": [[1, 160]], "207221": [[1, 102]], "207222": [[1, 17], [20, 289]], "207231": [[70, 84], [86, 121], [123, 184], [187, 189], [192, 303], [306, 354], [357, 481], [484, 504], [508, 549], [552, 626], [628, 690], [693, 875], [878, 1000], [1003, 1170], [1173, 1187], [1189, 1227], [1229, 1415], [1418, 1445], [1447, 1505]], "207233": [[1, 119], [121, 155]], "207269": [[80, 394], [397, 436], [439, 463], [466, 551], [568, 577]], "207273": [[3, 877]], "207279": [[68, 138], [141, 149], [151, 237], [240, 266], [269, 307], [309, 416], [498, 551], [554, 640], [643, 961], [963, 1095], [1098, 1160]], "207320": [[1, 110], [112, 350]], "207371": [[72, 117], [120, 124]], "207372": [[1, 27], [30, 113], [116, 154], [156, 174], [176, 478], [480, 501]], "207397": [[32, 77], [80, 140], [143, 179]], "207398": [[1, 14], [16, 35]], "207454": [[79, 95], [98, 123], [126, 259], [261, 363], [365, 458], [461, 498], [501, 609], [612, 632], [635, 781], [784, 866], [869, 974], [977, 1064], [1067, 1079], [1081, 1321], [1323, 1464], [1467, 1569], [1571, 1604], [1607, 1712], [1714, 1988]], "207469": [[1, 31], [34, 51]], "207477": [[76, 104], [107, 111], [114, 147], [150, 295], [298, 483], [486, 494], [497, 527], [530, 563], [565, 570]], "207487": [[50, 98], [101, 311], [313, 359], [363, 468], [471, 472]], "207488": [[1, 63], [66, 92], [95, 113], [116, 198], [200, 250], [252, 288], [291, 365], [368, 377], [379, 440]], "207490": [[1, 48], [51, 111]], "207491": [[1, 176], [179, 458]], "207492": [[1, 20], [23, 298]], "207515": [[79, 109], [112, 132], [134, 208], [211, 225], [228, 320], [322, 381], [383, 498], [500, 730], [733, 849], [851, 954], [957, 994], [997, 1052], [1055, 1143], [1145, 1211]], "207517": [[1, 12], [15, 57]], "207518": [[1, 59], [61, 83]], "207882": [[22, 45]], "207883": [[1, 1], [3, 4], [7, 75]], "207884": [[1, 106], [108, 183]], "207885": [[1, 90]], "207886": [[1, 30], [32, 90], [92, 156], [158, 166], [168, 171]], "207889": [[1, 43], [47, 57], [60, 303], [306, 442], [445, 445], [447, 551], [553, 731], [733, 907], [910, 945]], "207898": [[1, 33], [36, 57], [60, 235], [239, 257], [260, 288]], "207905": [[75, 196], [198, 281], [284, 329], [331, 402], [404, 565], [568, 672], [675, 805], [807, 850], [852, 861], [864, 884], [886, 1180], [1183, 1283], [1285, 1331], [1333, 1515], [1518, 1734], [1737, 1796]], "207920": [[84, 146], [149, 241], [243, 261], [264, 291], [294, 486], [489, 518], [520, 598], [600, 708], [710, 826]], "207921": [[1, 37], [40, 58]], "207922": [[1, 69], [71, 100], [103, 126], [129, 242], [274, 291]], "207924": [[1, 52], [54, 171], [173, 178], [181, 339]], "208307": [[2, 42], [45, 45], [47, 70], [72, 147], [150, 252], [256, 259], [262, 275], [278, 342], [345, 450], [453, 527], [530, 583], [586, 605], [608, 616], [618, 667], [670, 761], [763, 798], [800, 889], [891, 893], [896, 1055], [1057, 1205], [1208, 1294], [1297, 1328]], "208339": [[77, 89], [91, 122], [125, 208], [211, 346], [349, 363]], "208341": [[1, 84], [86, 117], [120, 513], [515, 685], [688, 693], [695, 775], [777, 824]], "208351": [[83, 97], [100, 356], [359, 369]], "208353": [[1, 76], [78, 269], [271, 348]], "208357": [[1, 70], [73, 507]], "208390": [[72, 128], [130, 169]], "208391": [[52, 82], [84, 162], [164, 216], [219, 493], [495, 498], [500, 523], [526, 533], [535, 588], [591, 660], [663, 869]], "208427": [[49, 89], [92, 161], [164, 164], [166, 173], [175, 268], [271, 312], [315, 315], [317, 335], [337, 361], [364, 402], [404, 422], [425, 577], [580, 647]], "208428": [[1, 58], [61, 68], [70, 156], [159, 227]], "208429": [[1, 56], [59, 139], [141, 159], [162, 237], [240, 440], [442, 452], [455, 589], [592, 712], [715, 922]], "208487": [[2, 26], [29, 159], [161, 307], [309, 459], [462, 476], [479, 632]], "208509": [[71, 232]], "208538": [[2, 43]], "208540": [[1, 26], [29, 98]], "208541": [[1, 57], [59, 173], [175, 376], [378, 417]], "208551": [[119, 193], [195, 212], [215, 300], [303, 354], [356, 554], [557, 580]], "208686": [[73, 79], [82, 181], [183, 224], [227, 243], [246, 311], [313, 463]]} \ No newline at end of file diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/crab.cfg b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/crab.cfg deleted file mode 100644 index 751898d9fbdfd..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/crab.cfg +++ /dev/null @@ -1,57 +0,0 @@ -[CRAB] - -jobtype = cmssw -scheduler = condor -#scheduler = glite -#scheduler = glidein -#scheduler = lsf -use_server = 0 - - -[CMSSW] -dbs_url = http://cmsdbsprod.cern.ch/cms_dbs_prod_global/servlet/DBSServlet -datasetpath=/Mu/querten-EXOHSCPSkim7TeV-0bc44962c8c6b23d45ce69c867f520ea-EXOHSCP/USER -pset=HSCParticleProducer_cfg.py - -lumi_mask=OfficialLumi.json -total_number_of_lumis =-1 -lumis_per_job = 50 -runselection = 100000-900000 - -pycfg_params=globalTag=GR_P_V42B::All - -### The output files (comma separated list) -#output_file = HSCP.root, HSCP_tree.root -output_file = HSCP.root - -[USER] -return_data = 0 -copy_data = 1 - -#storage_element = ingrid-se02.cism.ucl.ac.be -#storage_path = /srm/managerv2?SFN=/storage/data/cms -#storage_port = 8444 -#user_remote_dir = /store/user/quertenmont/12_08_16_HSCP_EDM2011/FWLite_Data12 -#check_user_remote_dir = 0 -#publish_data = 0 - -check_user_remote_dir = 0 -publish_data = 0 -user_remote_dir = HSCPEDMUpdateData2012_30Nov2012 -storage_element = T3_US_FNALLPC - -additional_input_files = Data7TeV_Deco_SiStripDeDxMip_3D_Rcd.db - -#[GRID] -#ce_black_list = -#rb = CERN -#virtual_organization = cms -#role = priorityuser -#ce_black_list = grid.icm.edu.pl -#ce_white_list = ucl.ac.be,T2_BE_UCL - - -#[LSF] -#queue=8nh - - diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/multicrab.cfg b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/multicrab.cfg deleted file mode 100644 index 994a85ea15dc7..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Data/multicrab.cfg +++ /dev/null @@ -1,733 +0,0 @@ -####################################################### 2012 DATA ####################################################### - -[MULTICRAB] -cfg=crab.cfg - -[COMMON] -CMSSW.pset = HSCParticleProducer_cfg.py -CMSSW.lumi_mask = OfficialLumi.json -CMSSW.dbs_url = http://cmsdbsprod.cern.ch/cms_dbs_prod_global/servlet/DBSServlet - - -#####SingleMu PD - -#[RunA_SingleMu_190645_190999] -#CMSSW.datasetpath = /SingleMu/Run2012A-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 190645-190999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunA_SingleMu_191000_191999] -#CMSSW.datasetpath = /SingleMu/Run2012A-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 191000-191999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -[RunA_SingleMu_192000_192999] -CMSSW.datasetpath = /SingleMu/Run2012A-EXOHSCP-13Jul2012-v1/USER -CMSSW.runselection = 192000-192999 -CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunA_SingleMu_193000_193621] -#CMSSW.datasetpath = /SingleMu/Run2012A-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 193000-193621 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_SingleMu_193622_193999] -#CMSSW.datasetpath = /SingleMu/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 193622-193999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_SingleMu_194000_194999] -#CMSSW.datasetpath = /SingleMu/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 194000-194999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_SingleMu_195000_195999] -#CMSSW.datasetpath = /SingleMu/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 195000-195999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_SingleMu_196000_196531] -#CMSSW.datasetpath = /SingleMu/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 196000-196531 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunC_SingleMu_196532_197999] -#CMSSW.datasetpath = /SingleMu/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 196532-197999 -##To correct bad DT timing calibrations -#CMSSW.pycfg_params=globalTag=FT_53_V10_AN2::All -# -##remove run 198346 to 198487 because of RPC trigger problem -#[RunC_SingleMu_198000_198345] -#CMSSW.datasetpath = /SingleMu/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 198000-198345 -##To correct bad DT timing calibrations -#CMSSW.pycfg_params=globalTag=FT_53_V10_AN2::All -# -#[RunC_SingleMu_198488_198919] -#CMSSW.datasetpath = /SingleMu/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 198488-198919 -# -##move to PrompV3 -#[RunC_SingleMu_198920_198999] -#CMSSW.datasetpath = /SingleMu/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 198920-198999 -# -# -#[RunC_SingleMu_199000_199999] -#CMSSW.datasetpath = /SingleMu/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 199000-199999 -# -#[RunC_SingleMu_200000_200532] -#CMSSW.datasetpath = /SingleMu/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 200000-200532 -# -#[RunC_SingleMu_200533_202016] -#CMSSW.datasetpath = /SingleMu/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 200533-202016 -# -#[RunC_SingleMu_202017_203002] -#CMSSW.datasetpath = /SingleMu/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 202017-203002 - -#[RunD_SingleMu_203003_203300] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203003-203300 - -#[RunD_SingleMu_203301_203600] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203301-203600 - -#[RunD_SingleMu_203601_203900] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203601-203900 - -#[RunD_SingleMu_203901_204200] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203901-204200 - -#[RunD_SingleMu_204201_204500] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204201-204500 - -#[RunD_SingleMu_204501_204800] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204501-204800 - -#[RunD_SingleMu_204801_205100] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204801-205100 - -#[RunD_SingleMu_205101_205400] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205101-205400 - -#[RunD_SingleMu_205401_205700] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205401-205700 - -#[RunD_SingleMu_205701_206000] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205701-206000 - -#[RunD_SingleMu_206001_206300] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206001-206300 - -#[RunD_SingleMu_206301_206600] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206301-206600 - -#[RunD_SingleMu_206601_206900] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206601-206900 - -#[RunD_SingleMu_206901_207200] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206901-207200 - -#[RunD_SingleMu_207201_207500] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207201-207500 - -#[RunD_SingleMu_207501_207800] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207501-207800 - -#[RunD_SingleMu_207801_208100] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207801-208100 - -#[RunD_SingleMu_208101_208357] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 208101-208357 - -#[RunD_SingleMu_208358_208686] -#CMSSW.datasetpath = /SingleMu/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 208358-208686 - -######MET PD -# -#[RunA_MET_190645_190999] -#CMSSW.datasetpath = /MET/Run2012A-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 190645-190999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunA_MET_191000_191999] -#CMSSW.datasetpath = /MET/Run2012A-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 191000-191999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -[RunA_MET_192000_192999] -CMSSW.datasetpath = /MET/Run2012A-EXOHSCP-13Jul2012-v1/USER -CMSSW.runselection = 192000-192999 -CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunA_MET_193000_193621] -#CMSSW.datasetpath = /MET/Run2012A-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 193000-193621 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_MET_193622_193999] -#CMSSW.datasetpath = /MET/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 193622-193999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_MET_194000_194999] -#CMSSW.datasetpath = /MET/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 194000-194999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_MET_195000_195999] -#CMSSW.datasetpath = /MET/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 195000-195999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_MET_196000_196531] -#CMSSW.datasetpath = /MET/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 196000-196531 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunC_MET_196532_197999] -#CMSSW.datasetpath = /MET/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 196532-197999 -##To correct bad DT timing calibrations -#CMSSW.pycfg_params=globalTag=FT_53_V10_AN2::All -# -##remove run 198346 to 198487 because of RPC trigger problem -#[RunC_MET_198000_198345] -#CMSSW.datasetpath = /MET/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 198000-198345 -##To correct bad DT timing calibrations -#CMSSW.pycfg_params=globalTag=FT_53_V10_AN2::All -# -#[RunC_MET_198488_198919] -#CMSSW.datasetpath = /MET/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 198488-198919 -# -##move to PrompV3 -#[RunC_MET_198920_198999] -#CMSSW.datasetpath = /MET/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 198920-198999 -# -# -#[RunC_MET_199000_199999] -#CMSSW.datasetpath = /MET/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 199000-199999 -# -#[RunC_MET_200000_200532] -#CMSSW.datasetpath = /MET/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 200000-200532 -# -#[RunC_MET_200533_202016] -#CMSSW.datasetpath = /MET/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 200533-202016 -# -#[RunC_MET_202017_203002] -#CMSSW.datasetpath = /MET/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 202017-203002 -# - -#[RunD_MET_203003_203300] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203003-203300 - -#[RunD_MET_203301_203600] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203301-203600 - -#[RunD_MET_203601_203900] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203601-203900 - -#[RunD_MET_203901_204200] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203901-204200 - -#[RunD_MET_204201_204500] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204201-204500 - -#[RunD_MET_204501_204800] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204501-204800 - -#[RunD_MET_204801_205100] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204801-205100 - -#[RunD_MET_205101_205400] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205101-205400 - -#[RunD_MET_205401_205700] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205401-205700 - -#[RunD_MET_205701_206000] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205701-206000 - -#[RunD_MET_206001_206300] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206001-206300 - -#[RunD_MET_206301_206600] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206301-206600 - -#[RunD_MET_206601_206900] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206601-206900 - -#[RunD_MET_206901_207200] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206901-207200 - -#[RunD_MET_207201_207500] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207201-207500 - -#[RunD_MET_207501_207800] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207501-207800 - -#[RunD_MET_207801_208100] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207801-208100 - -#[RunD_MET_208101_208357] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 208101-208357 - -#[RunD_MET_208358_208686] -#CMSSW.datasetpath = /MET/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 208358-208686 - -######NoBPTX PD -# -##missing dataset -##[RunA_NoBPTX_190645_190999] -##CMSSW.datasetpath = /NoBPTX/Run2012A-EXOHSCP-13Jul2012-v1/USER -##CMSSW.runselection = 190645-190999 -##CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -##missing dataset -##[RunA_NoBPTX_191000_191999] -##CMSSW.datasetpath = /NoBPTX/Run2012A-EXOHSCP-13Jul2012-v1/USER -##CMSSW.runselection = 191000-191999 -##CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -##missing dataset -##[RunA_NoBPTX_192000_192999] -##CMSSW.datasetpath = /NoBPTX/Run2012A-EXOHSCP-13Jul2012-v1/USER -##CMSSW.runselection = 192000-192999 -##CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -##missing dataset -##[RunA_NoBPTX_193000_193621] -##CMSSW.datasetpath = /NoBPTX/Run2012A-EXOHSCP-13Jul2012-v1/USER -##CMSSW.runselection = 193000-193621 -##CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_NoBPTX_193622_193999] -#CMSSW.datasetpath = /NoBPTX/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 193622-193999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_NoBPTX_194000_194999] -#CMSSW.datasetpath = /NoBPTX/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 194000-194999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_NoBPTX_195000_195999] -#CMSSW.datasetpath = /NoBPTX/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 195000-195999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_NoBPTX_196000_196531] -#CMSSW.datasetpath = /NoBPTX/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 196000-196531 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunC_NoBPTX_196532_197999] -#CMSSW.datasetpath = /NoBPTX/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 196532-197999 -##To correct bad DT timing calibrations -#CMSSW.pycfg_params=globalTag=FT_53_V10_AN2::All -# -##remove run 198346 to 198487 because of RPC trigger problem -#[RunC_NoBPTX_198000_198345] -#CMSSW.datasetpath = /NoBPTX/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 198000-198345 -##To correct bad DT timing calibrations -#CMSSW.pycfg_params=globalTag=FT_53_V10_AN2::All -# -#[RunC_NoBPTX_198488_198919] -#CMSSW.datasetpath = /NoBPTX/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 198488-198919 -# -##move to PrompV3 -#[RunC_NoBPTX_198920_198999] -#CMSSW.datasetpath = /NoBPTX/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 198920-198999 -# -# -#[RunC_NoBPTX_199000_199999] -#CMSSW.datasetpath = /NoBPTX/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 199000-199999 -# -#[RunC_NoBPTX_200000_200532] -#CMSSW.datasetpath = /NoBPTX/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 200000-200532 -# -#[RunC_NoBPTX_200533_202016] -#CMSSW.datasetpath = /NoBPTX/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 200533-202016 -# -#[RunC_NoBPTX_202017_203002] -#CMSSW.datasetpath = /NoBPTX/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 202017-203002 -# - -#[RunD_NoBPTX_203003_203300] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203003-203300 - -#[RunD_NoBPTX_203301_203600] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203301-203600 - -#[RunD_NoBPTX_203601_203900] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203601-203900 - -#[RunD_NoBPTX_203901_204200] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203901-204200 - -#[RunD_NoBPTX_204201_204500] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204201-204500 - -#[RunD_NoBPTX_204501_204800] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204501-204800 - -#[RunD_NoBPTX_204801_205100] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204801-205100 - -#[RunD_NoBPTX_205101_205400] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205101-205400 - -#[RunD_NoBPTX_205401_205700] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205401-205700 - -#[RunD_NoBPTX_205701_206000] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205701-206000 - -#[RunD_NoBPTX_206001_206300] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206001-206300 - -#[RunD_NoBPTX_206301_206600] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206301-206600 - -#[RunD_NoBPTX_206601_206900] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206601-206900 - -#[RunD_NoBPTX_206901_207200] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206901-207200 - -#[RunD_NoBPTX_207201_207500] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207201-207500 - -#[RunD_NoBPTX_207501_207800] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207501-207800 - -#[RunD_NoBPTX_207801_208100] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207801-208100 - -#[RunD_NoBPTX_208101_208357] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 208101-208357 - -#[RunD_NoBPTX_208358_208686] -#CMSSW.datasetpath = /NoBPTX/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 208358-208686 - -######JetHT PD -# -##missing dataset -##[RunA_JetHT_190645_190999] -##CMSSW.datasetpath = /JetHT/Run2012A-EXOHSCP-13Jul2012-v1/USER -##CMSSW.runselection = 190645-190999 -# -##missing dataset -##[RunA_JetHT_191000_191999] -##CMSSW.datasetpath = /JetHT/Run2012A-EXOHSCP-13Jul2012-v1/USER -##CMSSW.runselection = 191000-191999 -# -##missing dataset -##[RunA_JetHT_192000_192999] -##CMSSW.datasetpath = /JetHT/Run2012A-EXOHSCP-13Jul2012-v1/USER -##CMSSW.runselection = 192000-192999 -# -##missing dataset -##[RunA_JetHT_193000_193621] -##CMSSW.datasetpath = /JetHT/Run2012A-EXOHSCP-13Jul2012-v1/USER -##CMSSW.runselection = 193000-193621 -# -#[RunB_JetHT_193622_193999] -#CMSSW.datasetpath = /JetHT/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 193622-193999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_JetHT_194000_194999] -#CMSSW.datasetpath = /JetHT/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 194000-194999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_JetHT_195000_195999] -#CMSSW.datasetpath = /JetHT/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 195000-195999 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunB_JetHT_196000_196531] -#CMSSW.datasetpath = /JetHT/Run2012B-EXOHSCP-13Jul2012-v1/USER -#CMSSW.runselection = 196000-196531 -#CMSSW.pycfg_params=globalTag=FT_53_V6_AN2::All -# -#[RunC_JetHT_196532_197999] -#CMSSW.datasetpath = /JetHT/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 196532-197999 -##To correct bad DT timing calibrations -#CMSSW.pycfg_params=globalTag=FT_53_V10_AN2::All -# -##remove run 198346 to 198487 because of RPC trigger problem -#[RunC_JetHT_198000_198345] -#CMSSW.datasetpath = /JetHT/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 198000-198345 -##To correct bad DT timing calibrations -#CMSSW.pycfg_params=globalTag=FT_53_V10_AN2::All -# -#[RunC_JetHT_198488_198919] -#CMSSW.datasetpath = /JetHT/Run2012C-EXOHSCP-PromptSkim-v2/USER -#CMSSW.runselection = 198488-198919 -# -##move to PrompV3 -#[RunC_JetHT_198920_198999] -#CMSSW.datasetpath = /JetHT/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 198920-198999 -# -# -#[RunC_JetHT_199000_199999] -#CMSSW.datasetpath = /JetHT/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 199000-199999 -# -#[RunC_JetHT_200000_200532] -#CMSSW.datasetpath = /JetHT/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 200000-200532 -# -#[RunC_JetHT_200533_202016] -#CMSSW.datasetpath = /JetHT/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 200533-202016 -# -#[RunC_JetHT_202017_203002] -#CMSSW.datasetpath = /JetHT/Run2012C-EXOHSCP-PromptSkim-v3/USER -#CMSSW.runselection = 202017-203002 -# - -#[RunD_JetHT_203003_203300] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203003-203300 - -#[RunD_JetHT_203301_203600] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203301-203600 - -#[RunD_JetHT_203601_203900] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203601-203900 - -#[RunD_JetHT_203901_204200] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 203901-204200 - -#[RunD_JetHT_204201_204500] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204201-204500 - -#[RunD_JetHT_204501_204800] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204501-204800 - -#[RunD_JetHT_204801_205100] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 204801-205100 - -#[RunD_JetHT_205101_205400] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205101-205400 - -#[RunD_JetHT_205401_205700] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205401-205700 - -#[RunD_JetHT_205701_206000] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 205701-206000 - -#[RunD_JetHT_206001_206300] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206001-206300 - -#[RunD_JetHT_206301_206600] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206301-206600 - -#[RunD_JetHT_206601_206900] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206601-206900 - -#[RunD_JetHT_206901_207200] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 206901-207200 - -#[RunD_JetHT_207201_207500] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207201-207500 - -#[RunD_JetHT_207501_207800] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207501-207800 - -#[RunD_JetHT_207801_208100] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 207801-208100 - -#[RunD_JetHT_208101_208357] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 208101-208357 - -#[RunD_JetHT_208358_208686] -#CMSSW.datasetpath = /JetHT/Run2012D-EXOHSCP-PromptSkim-v1/USER -#CMSSW.runselection = 208358-208686 - -######################################################## 2011 DATA ####################################################### -## -## -##[MULTICRAB] -##cfg=crab.cfg -## -##[COMMON] -##CMSSW.pset = HSCParticleProducer_cfg.py -##CMSSW.lumi_mask = OfficialLumi_2011.json -##CMSSW.dbs_url = http://cmsdbsprod.cern.ch/cms_dbs_prod_global/servlet/DBSServlet -## -######MET PD -## -###run on METBTag PD (this PD is then split on MET and BTAG) -##[RunA_MET_160329_164236] -##CMSSW.datasetpath = /METBTag/Run2011A-EXOHSCP-08Nov2011-v1/USER -##CMSSW.runselection = 160329-164236 -## -###run on MET dataset after we corrected the track max pT cut in the skim (had to rerun the skim by hand) -##[RunA_MET_165071_166033] -##CMSSW.datasetpath = /MET/exotica-EXOHSCPSkimMET2011RunA-v4-V2-bebb20aee6c411fa6cbaa468cdc55ea1-EXOHSCP/USER -##CMSSW.dbs_url = http://cmsdbsprod.cern.ch/cms_dbs_ph_analysis_02/servlet/DBSServlet -##CMSSW.runselection = 165071-166033 -## -###run on MET dataset with latest skim config -##[RunA_MET_166034_168437] -##CMSSW.datasetpath = /MET/Run2011A-EXOHSCP-PromptSkim-v4/USER -##CMSSW.runselection = 166034-168437 -## -###take rereco data where available -##[RunA_MET_170053_172619] -##CMSSW.datasetpath = /MET/Run2011A-EXOHSCP-05Aug2011-v1/USER -##CMSSW.runselection = 170053-172619 -## -###no rereco data available for that period -##[RunA_MET_172791_175770] -##CMSSW.datasetpath = /MET/Run2011A-EXOHSCP-PromptSkim-v6/USER -##CMSSW.runselection = 172791-175770 -## -###rereco data (the following is split in subsamples to keep the final file size reasonable) -##[RunB_MET_175831_177999] -##CMSSW.datasetpath = /MET/Run2011B-EXOHSCP-03Feb2012-v1/USER -##CMSSW.runselection = 175831-177999 -## -##[RunB_MET_178000_178999] -##CMSSW.datasetpath = /MET/Run2011B-EXOHSCP-03Feb2012-v1/USER -##CMSSW.runselection = 178000-178999 -## -##[RunB_MET_179000_180296] -##CMSSW.datasetpath = /MET/Run2011B-EXOHSCP-03Feb2012-v1/USER -##CMSSW.runselection = 179000-180296 -## -######SingleMU PD (here we have rereco everywher, but we split the same way as in MET PD) -## -##[RunA_SingleMu_160329_164236] -##CMSSW.datasetpath = /SingleMu/Run2011A-EXOHSCP-08Nov2011-v1/USER -##CMSSW.runselection = 160329-164236 -## -##[RunA_SingleMu_165071_166033] -##CMSSW.datasetpath = /SingleMu/Run2011A-EXOHSCP-08Nov2011-v1/USER -##CMSSW.runselection = 165071-166033 -## -##[RunA_SingleMu_166034_168437] -##CMSSW.datasetpath = /SingleMu/Run2011A-EXOHSCP-08Nov2011-v1/USER -##CMSSW.runselection = 166034-168437 -## -##[RunA_SingleMu_170053_172619] -##CMSSW.datasetpath = /SingleMu/Run2011A-EXOHSCP-08Nov2011-v1/USER -##CMSSW.runselection = 170053-172619 -## -##[RunA_SingleMu_172791_175770] -##CMSSW.datasetpath = /SingleMu/Run2011A-EXOHSCP-08Nov2011-v1/USER -##CMSSW.runselection = 172791-175770 -## -##[RunB_SingleMu_175831_177999] -##CMSSW.datasetpath = /SingleMu/Run2011B-EXOHSCP-19Nov2011-v1/USER -##CMSSW.runselection = 175831-177999 -## -##[RunB_SingleMu_178000_178999] -##CMSSW.datasetpath = /SingleMu/Run2011B-EXOHSCP-19Nov2011-v1/USER -##CMSSW.runselection = 178000-178999 -## -##[RunB_SingleMu_179000_180296] -##CMSSW.datasetpath = /SingleMu/Run2011B-EXOHSCP-19Nov2011-v1/USER -##CMSSW.runselection = 179000-180296 -## -# \ No newline at end of file diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_Bckg_cfg.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_Bckg_cfg.py deleted file mode 100644 index 5de3726001f48..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_Bckg_cfg.py +++ /dev/null @@ -1,27 +0,0 @@ -import sys, os -import FWCore.ParameterSet.Config as cms - -isSignal = False -isBckg = True -isData = False -isSkimmedSample = False -GTAG = 'POSTLS172_V3::All' - -#debug input files -#this list is overwritten by CRAB -InputFileList = cms.untracked.vstring( - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/2C7EF234-5E21-E411-99D8-0025905A60C6.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/38D93E91-6221-E411-ADF4-0025905A60F4.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/66520EC6-5C21-E411-9A49-0025905A48F2.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/6E65F2CA-6221-E411-88B0-0025905B85F6.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/A0FE331B-5B21-E411-AE0C-0025905A48D6.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/AC325A29-5F21-E411-87C5-0025905B8576.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/B2185429-A121-E411-B6B1-0025905A6088.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/B40BDDCF-9F21-E411-8926-0025905B85E8.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/B467B1A5-5D21-E411-AA34-0025905A611E.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/B4E1729F-6421-E411-B76E-0025905A6122.root', - '/store/relval/CMSSW_7_2_0_pre3/RelValZmumuJets_Pt_20_300_13/GEN-SIM-RECO/PU25ns_POSTLS172_V3_CondDBv2-v1/00000/F2B25D76-5C21-E411-973A-0025905A6136.root', -) - -#main EDM tuple cfg that depends on the above parameters -execfile( os.path.expandvars('${CMSSW_BASE}/src/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_cfg.py') ) diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_Data_cfg.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_Data_cfg.py deleted file mode 100644 index ffc5471383482..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_Data_cfg.py +++ /dev/null @@ -1,39 +0,0 @@ -import sys, os -import FWCore.ParameterSet.Config as cms - -isSignal = False -isBckg = False -isData = True -isSkimmedSample = False -GTAG = 'GR_R_72_V2::All' - -#debug input files -#this list is overwritten by CRAB -InputFileList = cms.untracked.vstring( - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/00346527-C91C-E411-AB5E-02163E00ECEF.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/00ADAB1A-BC1C-E411-8EF1-002590494C40.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/0200D6AF-D41C-E411-8420-0025904B0FC0.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/0268317F-AB1C-E411-8022-02163E00ECFB.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/02F71E4D-B61C-E411-888D-02163E00CFB4.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/02FCA65D-AF1C-E411-BED1-18A90555637A.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/0405F2E2-B01C-E411-BC20-02163E00E5B2.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/041A1E18-C21C-E411-A77A-00259029EF3E.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/044F878E-E91C-E411-B9D8-02163E00CAA2.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/04C9C6B8-D31C-E411-88E9-003048F0E7BE.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/0634987C-A91C-E411-A9B5-02163E009C1E.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/0637E986-BE1C-E411-ACFF-02163E00EF94.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/0644EC20-C91C-E411-A376-02163E008EEA.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/068E6015-CB1C-E411-96C8-02163E00E95C.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/06D99999-BD1C-E411-896E-0025B3203748.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/08361980-BC1C-E411-97CB-003048C9C1D4.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/0836D993-B61C-E411-B245-02163E009BA7.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/08A1A887-C41C-E411-9BCB-02163E00FEC3.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/08B88B4E-D11C-E411-9EDB-02163E00B7A3.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/08CE58CE-EB1C-E411-BABA-02163E010110.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/08D1A881-9F1C-E411-8E09-02163E00ECE6.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/08F06953-BB1C-E411-8F27-003048C9C1D0.root', - '/store/relval/CMSSW_7_2_0_pre3/SingleMu/RECO/GR_R_72_V2_frozenHLT_RelVal_mu2012D-v1/00000/0A44FE81-A71C-E411-862A-02163E0104C0.root', -) - -#main EDM tuple cfg that depends on the above parameters -execfile( os.path.expandvars('${CMSSW_BASE}/src/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_cfg.py') ) diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_Signal_cfg.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_Signal_cfg.py deleted file mode 100644 index a632d364f0b41..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_Signal_cfg.py +++ /dev/null @@ -1,17 +0,0 @@ -import sys, os -import FWCore.ParameterSet.Config as cms - -isSignal = True -isBckg = False -isData = False -isSkimmedSample = False -GTAG = 'START72_V1::All' -InputFileList = cms.untracked.vstring() - -#debug input files -#this list is overwritten by CRAB -for i in range(0,10): - InputFileList.extend(["file:" + os.path.expandvars("${CMSSW_BASE}/src/") + "SampleProd/FARM_RECO/outputs/gluino1TeV_RECO_%04i.root" % i]) - -#main EDM tuple cfg that depends on the above parameters -execfile( os.path.expandvars('${CMSSW_BASE}/src/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_cfg.py') ) diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_cfg.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_cfg.py deleted file mode 100644 index 843987cccbfc2..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/HSCParticleProducer_cfg.py +++ /dev/null @@ -1,159 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("HSCPAnalysis") - -#The following parameters need to be provided -#isSignal, isBckg, isData, isSkimmedSample, GTAG, InputFileList -#isSignal = True -#isBckg = False -#isData = False -#isSkimmedSample = False -#GTAG = 'START72_V1::All' - -process.load("FWCore.MessageService.MessageLogger_cfi") -process.load('Configuration.Geometry.GeometryExtended2015Reco_cff') -process.load('Configuration.StandardSequences.MagneticField_cff') -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load('Configuration.StandardSequences.Services_cff') - -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True), - SkipEvent = cms.untracked.vstring('ProductNotFound'), -) -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -process.source = cms.Source("PoolSource", - fileNames = InputFileList, - inputCommands = cms.untracked.vstring("keep *", "drop *_MEtoEDMConverter_*_*") -) -if(isSignal): process.source.duplicateCheckMode = cms.untracked.string("noDuplicateCheck") - - -#for i in range(0,25): -# process.source.fileNames.extend(["file:/afs/cern.ch/user/q/querten/workspace/public/14_08_12_Run2HSCP/CMSSW_7_2_X_2014-08-18-0200/src/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/../../../../../SampleProd/FARM_RECO/outputs/gluino1TeV_RECO_%04i.root" % i]) - -process.GlobalTag.globaltag = GTAG - -process.HSCPTuplePath = cms.Path() - -######################################################################## -#Run the Skim sequence if necessary -if(not isSkimmedSample): - process.nEventsBefSkim = cms.EDProducer("EventCountProducer") - - process.load('Configuration.Skimming.PDWG_EXOHSCP_cff') - process.load('HLTrigger.HLTfilters.hltHighLevel_cfi') - process.HSCPTrigger = process.hltHighLevel.clone() - process.HSCPTrigger.TriggerResultsTag = cms.InputTag( "TriggerResults", "", "HLT" ) - process.HSCPTrigger.andOr = cms.bool( True ) #OR - process.HSCPTrigger.throw = cms.bool( False ) - if(isData): - process.HSCPTrigger.HLTPaths = [ - "HLT_*_dEdx*", - "HLT_Mu40_eta2p1*", - "HLT_Mu50_eta2p1*", - "HLT_HT650_*", - "HLT_MET80_*", - "HLT_L2Mu*MET*", - "HLT_L2Mu*NoBPTX*", - "HLT_PFMET150_*", - ] - elif(isBckg): - #to be updated to Run2 Triggers, in the meanwhile keep all of them to study trigger efficiency - process.HSCPTrigger.HLTPaths = ["*"] - else: - #do not apply trigger filter on signal - process.HSCPTrigger.HLTPaths = ["*"] - - - - - process.HSCPTuplePath += process.nEventsBefSkim + process.HSCPTrigger + process.exoticaHSCPSeq - -######################################################################## - -#Run the HSCP EDM-tuple Sequence on skimmed sample -process.nEventsBefEDM = cms.EDProducer("EventCountProducer") -process.load("SUSYBSMAnalysis.HSCP.HSCParticleProducerFromSkim_cff") -process.HSCPTuplePath += process.nEventsBefEDM + process.HSCParticleProducerSeq - -######################################################################## -# Only for MC samples, save skimmed genParticles - -if(isSignal or isBckg): - process.load("PhysicsTools.HepMCCandAlgos.genParticles_cfi") - process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") - process.allGenParticles = cms.EDProducer("GenParticleProducer", - saveBarCodes = cms.untracked.bool(False), - src = cms.InputTag("VtxSmeared"), - abortOnUnknownPDGCode = cms.untracked.bool(False) - ) - process.genParticles = cms.EDFilter("GenParticleSelector", - filter = cms.bool(False), - src = cms.InputTag("allGenParticles"), - cut = cms.string('charge != 0 & pt > 5.0'), - stableOnly = cms.bool(True) - ) - - process.HSCPTuplePath += process.allGenParticles + process.genParticles - -######################################################################## - -#make the pool output -process.Out = cms.OutputModule("PoolOutputModule", - outputCommands = cms.untracked.vstring( - "drop *", - "keep EventAux_*_*_*", - "keep LumiSummary_*_*_*", - "keep edmMergeableCounter_*_*_*", - "keep GenRunInfoProduct_*_*_*", - "keep *_genParticles_*_HSCPAnalysis", - "keep GenEventInfoProduct_generator_*_*", - "keep *_offlinePrimaryVertices_*_*", - "keep SiStripClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep SiPixelClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep *_TrackRefitter_*_*", - "keep *_standAloneMuons_*_*", - "keep *_globalMuons_*_*", - "keep *_muonsSkim_*_*", - "keep edmTriggerResults_TriggerResults_*_*", - "keep *_ak5PFJetsPt15__*", - "keep recoPFMETs_pfMet__*", - "keep *_HSCParticleProducer_*_*", - "keep *_HSCPIsolation01__*", - "keep *_HSCPIsolation03__*", - "keep *_HSCPIsolation05__*", - "keep *_dedx*_*_HSCPAnalysis", - "keep *_muontiming_*_HSCPAnalysis", - "keep triggerTriggerEvent_hltTriggerSummaryAOD_*_*", - "keep *_RefitMTSAMuons_*_*", - "keep *_MTMuons_*_*", - "keep *_MTSAMuons_*_*", - "keep *_MTmuontiming_*_*", - "keep *_refittedStandAloneMuons_*_*", - "keep *_offlineBeamSpot_*_*", - "drop *_offlineBeamSpot_*_HSCPAnalysis", #no need to save the BS from this process - "keep *_MuonSegmentProducer_*_*", - "drop TrajectorysToOnerecoTracksAssociation_TrackRefitter__", - "drop recoTrackExtras_*_*_*", - "keep recoTrackExtras_TrackRefitter_*_*", - "drop TrackingRecHitsOwned_*Muon*_*_*", - "keep *_g4SimHits_StoppedParticles*_*", - "keep PileupSummaryInfos_addPileupInfo_*_*" - ), - fileName = cms.untracked.string('HSCP.root'), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('') - ), -) - -if(isBckg or isData): - process.Out.SelectEvents.SelectEvents = cms.vstring('HSCPTuplePath') - - -######################################################################## - -#schedule the sequence -process.endPath1 = cms.EndPath(process.Out) -process.schedule = cms.Schedule(process.HSCPTuplePath, process.endPath1) diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/HSCParticleProducer_cfg.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/HSCParticleProducer_cfg.py deleted file mode 100644 index e639e4193619c..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/HSCParticleProducer_cfg.py +++ /dev/null @@ -1,183 +0,0 @@ -from __future__ import print_function -import FWCore.ParameterSet.Config as cms - -process = cms.Process("HSCPAnalysis") - -process.load("FWCore.MessageService.MessageLogger_cfi") -process.load("Configuration.Geometry.GeometryIdeal_cff") -process.load("Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 -from SUSYBSMAnalysis.HSCP.HSCPVersion_cff import * - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(25000) ) - -if CMSSW4_2: process.GlobalTag.globaltag = 'START42_V9::All' -else: process.GlobalTag.globaltag = 'START53_V7A::All' - - -readFiles = cms.untracked.vstring() -process.source = cms.Source("PoolSource", - fileNames = readFiles -) - -if CMSSW4_2: readFiles.extend(['/store/user/quertenmont/11_07_30_ExoticaMCSkim//QCD_1400to1800/querten/QCD_Pt-1400to1800_TuneZ2_7TeV_pythia6/EXOHSCPMCSkim_V4_QCD_1400to1800/42f0c8f1e4a9169b4429628ad9032dfb/EXOHSCP_103_1_aV8.root']) -else: readFiles.extend(['/store/mc/Summer12_DR53X/WToMuNu_TuneZ2star_8TeV_pythia6/GEN-SIM-RECO/PU_S10_START53_V7A-v1/0001/FE638700-BDE3-E111-A928-002618943906.root']) - - - -process.source.inputCommands = cms.untracked.vstring("keep *", "drop *_MEtoEDMConverter_*_*") - -######################################################################## - -process.load("SUSYBSMAnalysis.HSCP.HSCParticleProducerFromSkim_cff") #IF RUNNING ON HSCP SKIM - - -process.load('HLTrigger.HLTfilters.hltHighLevel_cfi') -if CMSSW4_2: - process.load('SUSYBSMAnalysis.Skimming.EXOHSCP_cff') - process.load('SUSYBSMAnalysis.Skimming.EXOHSCP_EventContent_cfi') - - process.HSCPTrigger = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(1), #Activated - PFMetTriggerMask = cms.int32(1), #Activated - L2MuMETTriggerMask = cms.int32(1), #Activated - ) -else: - process.load('Configuration.Skimming.PDWG_EXOHSCP_cff') - process.HSCParticleProducer.useBetaFromEcal = cms.bool(False) - - process.HSCPTrigger = process.hltHighLevel.clone() - process.HSCPTrigger.TriggerResultsTag = cms.InputTag( "TriggerResults", "", "HLT" ) - process.HSCPTrigger.HLTPaths = [ - "HLT_*_dEdx*", - "HLT_Mu40_eta2p1*", - "HLT_Mu50_eta2p1*", - "HLT_HT650_*", - "HLT_MET80_*", - "HLT_L2Mu*MET*", - "HLT_L2Mu*NoBPTX*", - "HLT_PFMET150_*", - ] - process.HSCPTrigger.andOr = cms.bool( True ) #OR - process.HSCPTrigger.throw = cms.bool( False ) - - #skim the jet collection to keep only 15GeV jets - process.ak5PFJetsPt15 = cms.EDFilter( "EtMinPFJetSelector", - src = cms.InputTag( "ak5PFJets" ), - filter = cms.bool( False ), - etMin = cms.double( 15.0 ) - ) - -######################################################################## SPECIAL CASE FOR MC - -process.load("PhysicsTools.HepMCCandAlgos.genParticles_cfi") -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") -process.genParticles.abortOnUnknownPDGCode = cms.untracked.bool(False) - -process.GlobalTag.toGet = cms.VPSet( - cms.PSet( record = cms.string('SiStripDeDxMip_3D_Rcd'), - tag = cms.string('MC7TeV_Deco_3D_Rcd_38X'), - connect = cms.untracked.string("sqlite_file:MC7TeV_Deco_SiStripDeDxMip_3D_Rcd.db")), -) - -process.dedxHarm2.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxTru40.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxProd.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxASmi.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxNPHarm2.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxNPTru40.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxNSHarm2.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxNSTru40.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxNPProd.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxNPASmi.calibrationPath = cms.string("file:MC7TeVGains.root") -process.dedxHitInfo.calibrationPath = cms.string("file:MC7TeVGains.root") - -process.dedxHarm2.UseCalibration = cms.bool(True) -process.dedxTru40.UseCalibration = cms.bool(True) -process.dedxProd.UseCalibration = cms.bool(True) -process.dedxASmi.UseCalibration = cms.bool(True) -process.dedxNPHarm2.UseCalibration = cms.bool(True) -process.dedxNPTru40.UseCalibration = cms.bool(True) -process.dedxNSHarm2.UseCalibration = cms.bool(True) -process.dedxNSTru40.UseCalibration = cms.bool(True) -process.dedxNPProd.UseCalibration = cms.bool(True) -process.dedxNPASmi.UseCalibration = cms.bool(True) -process.dedxHitInfo.UseCalibration = cms.bool(True) - -if not CMSSW4_2: - print ("WARNING: You are using MC7TeV_Deco_3D_Rcd_38X and MC7TeVGains.root for dEdx computation... These constants are a priori not valid for 2012 MC samples\nThe constants need to be redone for 2012 samples") - -######################################################################## -process.nEventsBefEDM = cms.EDProducer("EventCountProducer") -process.nEventsBefSkim = cms.EDProducer("EventCountProducer") -######################################################################## - -process.Out = cms.OutputModule("PoolOutputModule", - outputCommands = cms.untracked.vstring( - "drop *", - "keep EventAux_*_*_*", - "keep LumiSummary_*_*_*", - "keep edmMergeableCounter_*_*_*", - "keep *_genParticles_*_HSCPAnalysis", - "keep GenEventInfoProduct_generator_*_*", - "keep *_offlinePrimaryVertices_*_*", - "keep SiStripClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep SiPixelClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep *_TrackRefitter_*_*", - "keep *_standAloneMuons_*_*", - "keep *_globalMuons_*_*", - "keep *_muonsSkim_*_*", - "keep edmTriggerResults_TriggerResults_*_*", - "keep *_ak5PFJetsPt15__*", - "keep recoPFMETs_pfMet__*", - "keep *_HSCParticleProducer_*_*", - "keep *_HSCPIsolation01__*", - "keep *_HSCPIsolation03__*", - "keep *_HSCPIsolation05__*", - "keep *_dedx*_*_HSCPAnalysis", - "keep *_muontiming_*_HSCPAnalysis", - "keep triggerTriggerEvent_hltTriggerSummaryAOD_*_*", - "keep *_RefitMTSAMuons_*_*", - "keep *_MTMuons_*_*", - "keep *_MTSAMuons_*_*", - "keep *_MTmuontiming_*_*", - "keep *_refittedStandAloneMuons_*_*", - "keep *_offlineBeamSpot_*_*", - "keep *_MuonSegmentProducer_*_*", - "drop TrajectorysToOnerecoTracksAssociation_TrackRefitter__", - "drop recoTrackExtras_*_*_*", - "keep recoTrackExtras_TrackRefitter_*_*", - "drop TrackingRecHitsOwned_*Muon*_*_*", - "keep *_g4SimHits_StoppedParticles*_*", - "keep PileupSummaryInfos_addPileupInfo_*_*" - ), - fileName = cms.untracked.string('HSCP.root'), - SelectEvents = cms.untracked.PSet( - SelectEvents = cms.vstring('p1') - ), -) - -if CMSSW4_2: - process.Out.outputCommands.extend(["keep recoPFJets_ak5PFJets__*"]) - - -######################################################################## - -#LOOK AT SD PASSED PATH IN ORDER to avoid as much as possible duplicated events (make the merging of .root file faster) -#The module ak5PFJetsPt15 does not exist in CMSSW4 -if CMSSW4_2: process.p1 = cms.Path(process.nEventsBefEDM + process.HSCPTrigger + process.HSCParticleProducerSeq) -#else: process.p1 = cms.Path(process.nEventsBefEDM + process.HSCPTrigger + process.ak5PFJetsPt15 + process.HSCParticleProducerSeq) -else: process.p1 = cms.Path(process.nEventsBefSkim * process.HSCPTrigger * process.exoticaHSCPSeq * process.nEventsBefEDM * process.ak5PFJetsPt15 * process.HSCParticleProducerSeq) - -print("You are going to run the following sequence: " + str(process.p1)) - -#process.p1 = cms.Path(process.HSCParticleProducerSeq) -process.endPath1 = cms.EndPath(process.Out) -process.schedule = cms.Schedule( process.p1, process.endPath1) - - diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/Merge.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/Merge.py deleted file mode 100644 index ed50d9e7f793c..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/Merge.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python - -import urllib -import string -import os -import sys -import LaunchOnCondor - - - - - -#Jobs = ["MC_7TeV_ZZ", "MC_7TeV_ZJetToMuMu_Pt-80to120", "MC_7TeV_ZJetToMuMu_Pt-50to80", "MC_7TeV_ZJetToMuMu_Pt-30to50", "MC_7TeV_ZJetToMuMu_Pt-300", "MC_7TeV_ZJetToMuMu_Pt-230to300", "MC_7TeV_ZJetToMuMu_Pt-20to30", "MC_7TeV_ZJetToMuMu_Pt-170to230", "MC_7TeV_ZJetToMuMu_Pt-15to20", "MC_7TeV_ZJetToMuMu_Pt-120to170", "MC_7TeV_ZJetToMuMu_Pt-0to15", "MC_7TeV_WZ", "MC_7TeV_WW", "MC_7TeV_WJetsToLNu", "MC_7TeV_TTJets", "MC_7TeV_QCD_Pt-80to120", "MC_7TeV_QCD_Pt-800to1000", "MC_7TeV_QCD_Pt-600to800", "MC_7TeV_QCD_Pt-50to80", "MC_7TeV_QCD_Pt-470to600", "MC_7TeV_QCD_Pt-30to50", "MC_7TeV_QCD_Pt-300to470", "MC_7TeV_QCD_Pt-1800", "MC_7TeV_QCD_Pt-170to300", "MC_7TeV_QCD_Pt-1400to1800", "MC_7TeV_QCD_Pt-120to170", "MC_7TeV_QCD_Pt-1000to1400", "MC_7TeV_DYToTauTau", "MC_7TeV_DYToMuMu"] - -Jobs = ["MC_8TeV_DYToMuMu"] - -FarmDirectory = "MERGE" -for JobName in Jobs: - LaunchOnCondor.ListToFile(LaunchOnCondor.GetListOfFiles('"file:','/storage/data/cms/store/user/quertenmont/12_08_16_HSCP_EDM2011/FWLite_MC/' + JobName + '/HSCP_*.root','",'), FarmDirectory + "InputFile.txt") - #LaunchOnCondor.ListToFile(LaunchOnCondor.GetListOfFiles('"dcache:','/pnfs/cms/WAX/11/store/user/farrell3/HSCPEDMUpdateData2012_12Sep2012/'+ JobName +'/HSCP_*.root','",'), FarmDirectory + "InputFile.txt") - LaunchOnCondor.SendCMSJobs(FarmDirectory, JobName, "Merge_cfg.py", FarmDirectory + "InputFile.txt", 1, ['XXX_SAVEPATH_XXX','file:/storage/data/cms/users/quertenmont/HSCP/CMSSW_4_2_8/12_08_16/']) - - -os.system("rm " + FarmDirectory + "InputFile.txt") diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/Merge_cfg.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/Merge_cfg.py deleted file mode 100644 index bd5d53797c014..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/Merge_cfg.py +++ /dev/null @@ -1,144 +0,0 @@ -import FWCore.ParameterSet.Config as cms -process = cms.Process("MergeHLT") - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -process.load("FWCore.MessageService.MessageLogger_cfi") -from SUSYBSMAnalysis.HSCP.HSCPVersion_cff import * - -process.MessageLogger.cerr.FwkReport.reportEvery = 5000 -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -XXX_INPUT_XXX - ) -) - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -process.HSCPHLTDuplicate = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(True), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(0), #Activated - PFMetTriggerMask = cms.int32(0), #Activated - L2MuMETTriggerMask = cms.int32(0), #Activated -) -process.DuplicateFilter = cms.Path(process.HSCPHLTDuplicate ) - - -process.load('HLTrigger.HLTfilters.hltHighLevel_cfi') -process.HSCPHLTTriggerMuDeDx = process.hltHighLevel.clone() -process.HSCPHLTTriggerMuDeDx.TriggerResultsTag = cms.InputTag( "TriggerResults", "", "HLT" ) -process.HSCPHLTTriggerMuDeDx.andOr = cms.bool( True ) #OR -process.HSCPHLTTriggerMuDeDx.throw = cms.bool( False ) -process.HSCPHLTTriggerMuDeDx.HLTPaths = ["HLT_Mu*_dEdx*"] -process.HSCPHLTTriggerMuDeDxFilter = cms.Path(process.HSCPHLTTriggerMuDeDx ) - -process.HSCPHLTTriggerMetDeDx = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerMetDeDx.HLTPaths = ["HLT_MET*_dEdx*"] -process.HSCPHLTTriggerMetDeDxFilter = cms.Path(process.HSCPHLTTriggerMetDeDx ) - -process.HSCPHLTTriggerHtDeDx = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerHtDeDx.HLTPaths = ["HLT_HT*_dEdx*"] -process.HSCPHLTTriggerHtDeDxFilter = cms.Path(process.HSCPHLTTriggerHtDeDx ) - -process.HSCPHLTTriggerMu = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerMu.HLTPaths = ["HLT_Mu40_*"] -process.HSCPHLTTriggerMuFilter = cms.Path(process.HSCPHLTTriggerMu ) - -process.HSCPHLTTriggerMet = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerMet.HLTPaths = ["HLT_MET80_*"] -process.HSCPHLTTriggerMetFilter = cms.Path(process.HSCPHLTTriggerMet ) - -process.HSCPHLTTriggerPFMet = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerPFMet.HLTPaths = ["HLT_PFMET150_*"] -process.HSCPHLTTriggerPFMetFilter = cms.Path(process.HSCPHLTTriggerPFMet ) - -process.HSCPHLTTriggerHt = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerHt.HLTPaths = ["HLT_HT650_*"] -process.HSCPHLTTriggerHtFilter = cms.Path(process.HSCPHLTTriggerHt ) - -process.HSCPHLTTriggerL2Mu = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerL2Mu.HLTPaths = ["HLT_L2Mu*MET*"] -process.HSCPHLTTriggerL2MuFilter = cms.Path(process.HSCPHLTTriggerL2Mu ) - -process.HSCPHLTTriggerCosmic = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerCosmic.HLTPaths = ["HLT_L2Mu*NoBPTX*"] -process.HSCPHLTTriggerCosmicFilter = cms.Path(process.HSCPHLTTriggerCosmic ) - -if CMSSW4_2: - #special treatment for SingleMu and PFMet trigger in 42X (2011 analysis) because threshold have changed over the year - process.HSCPHLTTriggerPFMet = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(0), #Activated - PFMetTriggerMask = cms.int32(1), #Activated - L2MuMETTriggerMask = cms.int32(0), #Activated - ) - process.HSCPHLTTriggerPFMetFilter = cms.Path(process.HSCPHLTTriggerPFMet ) - - process.HSCPHLTTriggerMu = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(1), #Activated - PFMetTriggerMask = cms.int32(0), #Activated - L2MuMETTriggerMask = cms.int32(0), #Activated - ) - process.HSCPHLTTriggerMuFilter = cms.Path(process.HSCPHLTTriggerMu ) - - process.HSCPHLTTriggerL2Mu = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(0), #Activated - PFMetTriggerMask = cms.int32(0), #Activated - L2MuMETTriggerMask = cms.int32(2), #Activated for special case of background MC - ) - - process.HSCPHLTTriggerL2MuFilter = cms.Path(process.HSCPHLTTriggerL2Mu ) - - -process.Out = cms.OutputModule("PoolOutputModule", - outputCommands = cms.untracked.vstring( - "drop *", - "keep EventAux_*_*_*", - "keep LumiSummary_*_*_*", - "keep edmMergeableCounter_*_*_*", - "keep *_genParticles_*_*", - "keep GenEventInfoProduct_generator_*_*", - "keep *_offlinePrimaryVertices_*_*", - "keep SiStripClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep SiPixelClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep *_TrackRefitter_*_*", - "keep *_standAloneMuons_*_*", - "keep *_globalMuons_*_*", - "keep *_muonsSkim_*_*", - "keep edmTriggerResults_TriggerResults_*_*", - "keep *_ak5PFJetsPt15__*", - "keep recoPFMETs_pfMet__*", - "keep *_HSCParticleProducer_*_*", - "keep *_HSCPIsolation01__*", - "keep *_HSCPIsolation03__*", - "keep *_HSCPIsolation05__*", - "keep *_dedx*_*_HSCPAnalysis", - "keep *_muontiming_*_HSCPAnalysis", - "keep triggerTriggerEvent_hltTriggerSummaryAOD_*_*", - "keep *_RefitMTSAMuons_*_*", - "keep *_MTMuons_*_*", - "keep *_MTSAMuons_*_*", - "keep *_MTmuontiming_*_*", - "keep *_refittedStandAloneMuons_*_*", - "keep *_offlineBeamSpot_*_*", - "keep *_MuonSegmentProducer_*_*", - "drop TrajectorysToOnerecoTracksAssociation_TrackRefitter__", - "drop recoTrackExtras_*_*_*", - "keep recoTrackExtras_TrackRefitter_*_*", - "drop TrackingRecHitsOwned_*Muon*_*_*", - "keep *_g4SimHits_StoppedParticles*_*", - "keep PileupSummaryInfos_addPileupInfo_*_*" - ), - fileName = cms.untracked.string('XXX_SAVEPATH_XXX/XXX_OUTPUT_XXX.root'), -) - -if CMSSW4_2: - process.Out.outputCommands.extend(["keep recoPFJets_ak5PFJets__*"]) - -process.endPath = cms.EndPath(process.Out) -process.schedule = cms.Schedule(process.DuplicateFilter, process.HSCPHLTTriggerMuDeDxFilter, process.HSCPHLTTriggerMetDeDxFilter, process.HSCPHLTTriggerHtDeDxFilter, process.HSCPHLTTriggerMuFilter, process.HSCPHLTTriggerMetFilter, process.HSCPHLTTriggerPFMetFilter, process.HSCPHLTTriggerHtFilter, process.HSCPHLTTriggerL2MuFilter, process.HSCPHLTTriggerCosmicFilter, process.endPath) diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/crab.cfg b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/crab.cfg deleted file mode 100644 index 18334a622e193..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/crab.cfg +++ /dev/null @@ -1,41 +0,0 @@ -[CMSSW] -dbs_url = http://cmsdbsprod.cern.ch/cms_dbs_ph_analysis_02/servlet/DBSServlet -pset = HSCParticleProducer_cfg.py -datasetpath = /EXO_HSCP_stau126_3112_GEN_SIM_HLT/exotica-EXO_HSCP_Stau126_3112_GEN_SIM_RECO-50be3cf8c18545830b9f25e393ea078f/USER -output_file = HSCP.root -total_number_of_events = -1 -number_of_jobs = 1 - -[USER] -additional_input_files = MC7TeVGains.root, MC7TeV_Deco_SiStripDeDxMip_3D_Rcd.db -copy_data = 1 -publish_data = 0 -check_user_remote_dir = 0 -return_data = 0 - -#stage out to UCL -storage_element = ingrid-se02.cism.ucl.ac.be -storage_port = 8444 -user_remote_dir = /store/user/quertenmont/12_08_16_HSCP_EDM2011/FWLite_MC/ -storage_path = /srm/managerv2?SFN=/storage/data/cms - -#stage out the result to FNAL -#storage_element = cmssrm.fnal.gov -#storage_path = /srm/managerv2?SFN=/11 -#user_remote_dir = /store/user/jchen/HSCP -#user_remote_dir = HSCPEDMSignal23Dec2011 -#storage_element = T3_US_FNALLPC -#check_user_remote_dir = 0 - -[CRAB] -cfg = crab.cfg -scheduler = glite -jobtype = cmssw -use_server = 0 - -[GRID] -role = priorityuser -virtual_organization = cms -rb = CERN - - diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/multicrab.cfg b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/multicrab.cfg deleted file mode 100644 index 7b0fec6073603..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/MC/multicrab.cfg +++ /dev/null @@ -1,99 +0,0 @@ -[MULTICRAB] -cfg=crab.cfg - -[COMMON] -#USER.user_remote_dir = /store/user/quertenmont/11_07_31_HSCP2011/FWLite_MC -CMSSW.number_of_jobs = 20 - -[MC_8TeV_DYToMuMu] -CMSSW.datasetpath = /DYToMuMu_M_20_TuneZ2star_8TeV_pythia6/Summer12_DR53X-PU_S10_START53_V7A-v1/GEN-SIM-RECO - -[MC_7TeV_ZZ] -CMSSW.datasetpath = /ZZ_TuneZ2_7TeV_pythia6_tauola/querten-EXOHSCPMCSkim_V4_ZZ-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-80to120] -CMSSW.datasetpath = /ZJetToMuMu_Pt-80to120_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_80to120-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-50to80] -CMSSW.datasetpath = /ZJetToMuMu_Pt-50to80_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_50to80-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-30to50] -CMSSW.datasetpath = /ZJetToMuMu_Pt-30to50_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_30to50-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-300] -CMSSW.datasetpath = /ZJetToMuMu_Pt-300_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_300toInf-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-230to300] -CMSSW.datasetpath = /ZJetToMuMu_Pt-230to300_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_230to300-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-20to30] -CMSSW.datasetpath = /ZJetToMuMu_Pt-20to30_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_20to30-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-170to230] -CMSSW.datasetpath = /ZJetToMuMu_Pt-170to230_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_170to230-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-15to20] -CMSSW.datasetpath = /ZJetToMuMu_Pt-15to20_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_15to20-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-120to170] -CMSSW.datasetpath = /ZJetToMuMu_Pt-120to170_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_120to170-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_ZJetToMuMu_Pt-0to15] -CMSSW.datasetpath = /ZJetToMuMu_Pt-0to15_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_ZJetToMuMu_Pt_0to15-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_WZ] -CMSSW.datasetpath = /WZ_TuneZ2_7TeV_pythia6_tauola/querten-EXOHSCPMCSkim_V4_WZ-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_WW] -CMSSW.datasetpath = /WW_TuneZ2_7TeV_pythia6_tauola/querten-EXOHSCPMCSkim_V4_WW-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_WJetsToLNu] -CMSSW.datasetpath = /WJetsToLNu_TuneZ2_7TeV-madgraph-tauola/querten-EXOHSCPMCSkim_V4_WJetsToLNu-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_TTJets] -CMSSW.datasetpath = /TTJets_TuneZ2_7TeV-madgraph-tauola/querten-EXOHSCPMCSkim_V4_TTBar-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-80to120] -CMSSW.datasetpath = /QCD_Pt-80to120_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_80to120-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-800to1000] -CMSSW.datasetpath = /QCD_Pt-800to1000_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_800to1000-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-600to800] -CMSSW.datasetpath = /QCD_Pt-600to800_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_600to800-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-50to80] -CMSSW.datasetpath = /QCD_Pt-50to80_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_Pt-50to80-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-470to600] -CMSSW.datasetpath = /QCD_Pt-470to600_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_470to600-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-30to50] -CMSSW.datasetpath = /QCD_Pt-30to50_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_30to50-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-300to470] -CMSSW.datasetpath = /QCD_Pt-300to470_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_300to470-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-1800] -CMSSW.datasetpath = /QCD_Pt-1800_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_1800toInf-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-170to300] -CMSSW.datasetpath = /QCD_Pt-170to300_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_170to300-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-15to30] -CMSSW.datasetpath = /QCD_Pt-15to30_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_15to30-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-1400to1800] -CMSSW.datasetpath = /QCD_Pt-1400to1800_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_1400to1800-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-120to170] -CMSSW.datasetpath = /QCD_Pt-120to170_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_120to170-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_QCD_Pt-1000to1400] -CMSSW.datasetpath = /QCD_Pt-1000to1400_TuneZ2_7TeV_pythia6/querten-EXOHSCPMCSkim_V4_QCD_1000to1400-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_DYToTauTau] -CMSSW.datasetpath = /DYToTauTau_M-20_TuneZ2_7TeV-pythia6-tauola/querten-EXOHSCPMCSkim_V4_DYToTauTau-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER - -[MC_7TeV_DYToMuMu] -CMSSW.datasetpath = /DYToMuMu_M-20_TuneZ2_7TeV-pythia6/querten-EXOHSCPMCSkim_V4_DYToMuMu-42f0c8f1e4a9169b4429628ad9032dfb-EXOHSCP/USER diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/Merge.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/Merge.py deleted file mode 100644 index d5f59591414ae..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/Merge.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env python - -import urllib -import string -import os -import sys -import LaunchOnCondor - -Jobs = ["GMStau_8TeV_M557", "PPStau_8TeV_M557"] - -FarmDirectory = "MERGE" -for JobName in Jobs: - LaunchOnCondor.ListToFile(LaunchOnCondor.GetListOfFiles('"file:','/afs/cern.ch/user/q/querten/workspace/public/GMSB_XSec/EDMproduction/CMSSW_5_3_2_patch4/src/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/'+ JobName + '/res/HSCP_*.root','",'), FarmDirectory + "InputFile.txt") -# LaunchOnCondor.ListToFile(LaunchOnCondor.GetListOfFiles('"dcache:','/pnfs/cms/WAX/11/store/user/farrell3/store/user/jchen/11_10_28_HSCP2011/FWLite_Signal/'+ JobName + '/HSCP_*.root','",'), FarmDirectory + "InputFile.txt") -# LaunchOnCondor.ListToFile(LaunchOnCondor.GetListOfFiles('"file:','/uscmst1b_scratch/lpc1/lpcphys/jchen/HSCPEDM_08_02_11/'+ JobName + '.root','",'), FarmDirectory + "InputFile.txt") - LaunchOnCondor.SendCMSJobs(FarmDirectory, JobName, "Merge_cfg.py", FarmDirectory + "InputFile.txt", 1, []) - -os.system("rm " + FarmDirectory + "InputFile.txt") diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/Merge_cfg.py b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/Merge_cfg.py deleted file mode 100644 index 139b5a01fdc20..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/Merge_cfg.py +++ /dev/null @@ -1,144 +0,0 @@ -import FWCore.ParameterSet.Config as cms -process = cms.Process("MergeHLT") - -process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) -process.load("FWCore.MessageService.MessageLogger_cfi") -from SUSYBSMAnalysis.HSCP.HSCPVersion_cff import * - -process.MessageLogger.cerr.FwkReport.reportEvery = 5000 -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( -XXX_INPUT_XXX - ) -) - -process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) ) - -process.HSCPHLTDuplicate = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(True), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(0), #Activated - PFMetTriggerMask = cms.int32(0), #Activated - L2MuMETTriggerMask = cms.int32(0), -) -process.DuplicateFilter = cms.Path(process.HSCPHLTDuplicate ) - - -process.load('HLTrigger.HLTfilters.hltHighLevel_cfi') -process.HSCPHLTTriggerMuDeDx = process.hltHighLevel.clone() -process.HSCPHLTTriggerMuDeDx.TriggerResultsTag = cms.InputTag( "TriggerResults", "", "HLT" ) -process.HSCPHLTTriggerMuDeDx.andOr = cms.bool( True ) #OR -process.HSCPHLTTriggerMuDeDx.throw = cms.bool( False ) -process.HSCPHLTTriggerMuDeDx.HLTPaths = ["HLT_Mu*_dEdx*"] -process.HSCPHLTTriggerMuDeDxFilter = cms.Path(process.HSCPHLTTriggerMuDeDx ) - -process.HSCPHLTTriggerMetDeDx = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerMetDeDx.HLTPaths = ["HLT_MET*_dEdx*"] -process.HSCPHLTTriggerMetDeDxFilter = cms.Path(process.HSCPHLTTriggerMetDeDx ) - -process.HSCPHLTTriggerHtDeDx = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerHtDeDx.HLTPaths = ["HLT_HT*_dEdx*"] -process.HSCPHLTTriggerHtDeDxFilter = cms.Path(process.HSCPHLTTriggerHtDeDx ) - -process.HSCPHLTTriggerMu = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerMu.HLTPaths = ["HLT_Mu40_*"] -process.HSCPHLTTriggerMuFilter = cms.Path(process.HSCPHLTTriggerMu ) - -process.HSCPHLTTriggerMet = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerMet.HLTPaths = ["HLT_MET80_*"] -process.HSCPHLTTriggerMetFilter = cms.Path(process.HSCPHLTTriggerMet ) - -process.HSCPHLTTriggerPFMet = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerPFMet.HLTPaths = ["HLT_PFMET150_*"] -process.HSCPHLTTriggerPFMetFilter = cms.Path(process.HSCPHLTTriggerPFMet ) - -process.HSCPHLTTriggerHt = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerHt.HLTPaths = ["HLT_HT650_*"] -process.HSCPHLTTriggerHtFilter = cms.Path(process.HSCPHLTTriggerHt ) - -process.HSCPHLTTriggerL2Mu = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerL2Mu.HLTPaths = ["HLT_L2Mu*MET*"] -process.HSCPHLTTriggerL2MuFilter = cms.Path(process.HSCPHLTTriggerL2Mu ) - -process.HSCPHLTTriggerCosmic = process.HSCPHLTTriggerMuDeDx.clone() -process.HSCPHLTTriggerCosmic.HLTPaths = ["HLT_L2Mu*NoBPTX*"] -process.HSCPHLTTriggerCosmicFilter = cms.Path(process.HSCPHLTTriggerCosmic ) - -if CMSSW4_2: - #special treatment for SingleMu and PFMet trigger in 42X (2011 analysis) because threshold have changed over the year - process.HSCPHLTTriggerPFMet = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(0), #Activated - PFMetTriggerMask = cms.int32(1), #Activated - L2MuMETTriggerMask = cms.int32(0), - ) - process.HSCPHLTTriggerPFMetFilter = cms.Path(process.HSCPHLTTriggerPFMet ) - - process.HSCPHLTTriggerMu = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HLT"), - MuonTrigger1Mask = cms.int32(1), #Activated - PFMetTriggerMask = cms.int32(0), #Activated - L2MuMETTriggerMask = cms.int32(0), - ) - process.HSCPHLTTriggerMuFilter = cms.Path(process.HSCPHLTTriggerMu ) - - process.HSCPHLTTriggerL2Mu = cms.EDFilter("HSCPHLTFilter", - RemoveDuplicates = cms.bool(False), - TriggerProcess = cms.string("HSCPAnalysis"), - MuonTrigger1Mask = cms.int32(0), #Activated - PFMetTriggerMask = cms.int32(0), #Activated - L2MuMETTriggerMask = cms.int32(1), #Activated - ) - - process.HSCPHLTTriggerL2MuFilter = cms.Path(process.HSCPHLTTriggerL2Mu ) - - -process.Out = cms.OutputModule("PoolOutputModule", - outputCommands = cms.untracked.vstring( - "drop *", - "keep EventAux_*_*_*", - "keep LumiSummary_*_*_*", - "keep edmMergeableCounter_*_*_*", - "keep *_genParticles_*_*", - "keep GenEventInfoProduct_generator_*_*", - "keep *_offlinePrimaryVertices_*_*", - "keep SiStripClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep SiPixelClusteredmNewDetSetVector_generalTracksSkim_*_*", - "keep *_TrackRefitter_*_*", - "keep *_standAloneMuons_*_*", - "keep *_globalMuons_*_*", - "keep *_muonsSkim_*_*", - "keep edmTriggerResults_TriggerResults_*_*", - "keep *_ak5PFJetsPt15__*", - "keep recoPFMETs_pfMet__*", - "keep *_HSCParticleProducer_*_*", - "keep *_HSCPIsolation01__*", - "keep *_HSCPIsolation03__*", - "keep *_HSCPIsolation05__*", - "keep *_dedx*_*_HSCPAnalysis", - "keep *_muontiming_*_HSCPAnalysis", - "keep triggerTriggerEvent_hltTriggerSummaryAOD_*_*", - "keep *_RefitMTSAMuons_*_*", - "keep *_MTMuons_*_*", - "keep *_MTSAMuons_*_*", - "keep *_MTmuontiming_*_*", - "keep *_refittedStandAloneMuons_*_*", - "keep *_offlineBeamSpot_*_*", - "keep *_MuonSegmentProducer_*_*", - "drop TrajectorysToOnerecoTracksAssociation_TrackRefitter__", - "drop recoTrackExtras_*_*_*", - "keep recoTrackExtras_TrackRefitter_*_*", - "drop TrackingRecHitsOwned_*Muon*_*_*", - "keep *_g4SimHits_StoppedParticles*_*", - "keep PileupSummaryInfos_addPileupInfo_*_*" - ), - fileName = cms.untracked.string('XXX_OUTPUT_XXX.root'), -) - -if CMSSW4_2: - process.Out.outputCommands.extend(["keep recoPFJets_ak5PFJets__*"]) - -process.endPath = cms.EndPath(process.Out) -process.schedule = cms.Schedule(process.DuplicateFilter, process.HSCPHLTTriggerMuDeDxFilter, process.HSCPHLTTriggerMetDeDxFilter, process.HSCPHLTTriggerHtDeDxFilter, process.HSCPHLTTriggerMuFilter, process.HSCPHLTTriggerMetFilter, process.HSCPHLTTriggerPFMetFilter, process.HSCPHLTTriggerHtFilter, process.HSCPHLTTriggerL2MuFilter, process.HSCPHLTTriggerCosmicFilter, process.endPath) diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/crab.cfg b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/crab.cfg deleted file mode 100644 index fcb7155351cdf..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/crab.cfg +++ /dev/null @@ -1,47 +0,0 @@ -[CMSSW] -#dbs_url = http://cmsdbsprod.cern.ch/cms_dbs_prod_global/servlet/DBSServlet -dbs_url = http://cmsdbsprod.cern.ch/cms_dbs_ph_analysis_02/servlet/DBSServlet -pset = HSCParticleProducer_cfg.py -datasetpath = /EXO_HSCP_stau126_3112_GEN_SIM_HLT/exotica-EXO_HSCP_Stau126_3112_GEN_SIM_RECO-50be3cf8c18545830b9f25e393ea078f/USER -output_file = HSCP.root -total_number_of_events = -1 -#number_of_jobs = 1 -events_per_job = 10000 -#use_parent = 1 - -[USER] -additional_input_files = MC7TeVGains.root, MC7TeV_Deco_SiStripDeDxMip_3D_Rcd.db -#ui_working_dir = GMStau126 -copy_data = 0 -publish_data = 0 -check_user_remote_dir = 0 -return_data = 1 - -#stage out to UCL -#storage_element = ingrid-se02.cism.ucl.ac.be -#storage_port = 8444 -#user_remote_dir = /store/user/quertenmont/11_03_31_HSCP2011/FWLite_Sign/ -#storage_path = /srm/managerv2?SFN=/storage/data/cms - -#stage out the result to FNAL -#storage_element = cmssrm.fnal.gov -#storage_path = /srm/managerv2?SFN=/11 -#user_remote_dir = /store/user/jchen/HSCP - -check_user_remote_dir = 0 -publish_data = 0 -user_remote_dir = HSCPToBeMerged_09Oct2012 -storage_element = T3_US_FNALLPC -check_user_remote_dir = 0 - -[CRAB] -scheduler = glite -jobtype = cmssw -use_server = 0 - -#[GRID] -#role = priorityuser -#virtual_organization = cms -#rb = CERN - - diff --git a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/multicrab.cfg b/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/multicrab.cfg deleted file mode 100644 index ae329545c4785..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/BuildHSCParticles/Signals/multicrab.cfg +++ /dev/null @@ -1,15 +0,0 @@ -[MULTICRAB] -cfg=crab.cfg - -[COMMON] -#USER.user_remote_dir = /store/user/jchen/11_10_28_HSCP2011/FWLite_Signal -#CMSSW.number_of_jobs = 3 -CMSSW.events_per_job=1000 - -[GMStau_8TeV_M557] -CMSSW.datasetpath = /EXOHSCP2012_gmstauM557_GEN_SIM/querten-EXOHSCP2012_gmstauM557_RECO-34bad132481b136881b4ce69c955de16/USER - -[PPStau_8TeV_M557] -CMSSW.datasetpath = /EXOHSCP2012_ppstauM557_GEN_SIM/querten-EXOHSCP2012_ppstauM557_RECO-34bad132481b136881b4ce69c955de16/USER - - diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_CommonFunction.h b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_CommonFunction.h deleted file mode 100644 index c797b764d0482..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_CommonFunction.h +++ /dev/null @@ -1,206 +0,0 @@ - -#include "Analysis_Global.h" -#include "Analysis_PlotFunction.h" - - - -/////////////////////////////////////////////////////////////////////////////////////// STUFF RELATED TO THE SUBSAMPLES - - -double Efficiency(TH1* Histo, double CutX){ - double Entries = Histo->Integral(0,Histo->GetNbinsX()+1); - double Integral = Histo->Integral(Histo->GetXaxis()->FindBin(CutX),Histo->GetNbinsX()+1); - return Integral/Entries; -} - -double Efficiency(TH2* Histo, double CutX, double CutY){ - double Entries = Histo->Integral(0,Histo->GetNbinsX()+1, 0,Histo->GetNbinsY()+1); - double Integral = Histo->Integral(Histo->GetXaxis()->FindBin(CutX),Histo->GetNbinsX()+1, Histo->GetYaxis()->FindBin(CutY),Histo->GetNbinsY()+1); - return Integral/Entries; -} - - -double EfficiencyAndError(TH1* Histo, double CutX, double& error){ - double Entries = Histo->Integral(0,Histo->GetNbinsX()+1); - double Integral = 0; - error = 0; - for(Int_t binx = Histo->GetXaxis()->FindBin(CutX); binx<= Histo->GetNbinsX()+1; ++binx){ - Integral += Histo->GetBinContent(binx); - error += Histo->GetBinError(binx)*Histo->GetBinError(binx); - } - error = sqrt(error); - error /= Entries; - return Integral/Entries; -} - - - - -double GetEventInRange(double min, double max, TH1D* hist, double& error){ - int binMin = hist->GetXaxis()->FindBin(min); - int binMax = hist->GetXaxis()->FindBin(max); - error = 0; for(int i=binMin;iGetBinError(i),2); } error = sqrt(error); - return hist->Integral(binMin,binMax); -} - -double GetMassFromBeta(double P, double beta){ - double gamma = 1/sqrt(1-beta*beta); - return P/(beta*gamma); -} - -double GetTOFMass(double P, double TOF){ - return GetMassFromBeta(P, 1/TOF); -} - - -double GetIBeta(double I, bool MC=false){ - double K, C; - - if(MC){ - K = dEdxK_MC; - C = dEdxC_MC; - }else{ - K = dEdxK_Data; - C = dEdxC_Data; - } - - double a = K / (I-C); - double b2 = a / (a+1); - - if(b2<0)return -1*sqrt(b2); - return sqrt(b2); -} - - - -double GetMass(double P, double I, bool MC=false){ - if(MC){ - const double& K = dEdxK_MC; - const double& C = dEdxC_MC; - - if(I-C<0)return -1; - return sqrt((I-C)/K)*P; - }else{ - const double& K = dEdxK_Data; - const double& C = dEdxC_Data; - - if(I-C<0)return -1; - return sqrt((I-C)/K)*P; - } - - return -1; -} - -TF1* GetMassLine(double M, bool MC=false) -{ - double K; double C; - if(MC){ - K = dEdxK_MC; - C = dEdxC_MC; - }else{ - K = dEdxK_Data; - C = dEdxC_Data; - } - - double BetaMax = 0.9; - double PMax = sqrt((BetaMax*BetaMax*M*M)/(1-BetaMax*BetaMax)); - - double BetaMin = 0.2; - double PMin = sqrt((BetaMin*BetaMin*M*M)/(1-BetaMin*BetaMin)); - - TF1* MassLine = new TF1("MassLine","[2] + ([0]*[0]*[1])/(x*x)", PMin, PMax); - MassLine->SetParName (0,"M"); - MassLine->SetParName (1,"K"); - MassLine->SetParName (2,"C"); - MassLine->SetParameter(0, M); - MassLine->SetParameter(1, K); - MassLine->SetParameter(2, C); - MassLine->SetLineWidth(2); - return MassLine; -} - - - -double deltaR(double eta1, double phi1, double eta2, double phi2) { - double deta = eta1 - eta2; - double dphi = phi1 - phi2; - while (dphi > M_PI) dphi -= 2*M_PI; - while (dphi <= -M_PI) dphi += 2*M_PI; - return sqrt(deta*deta + dphi*dphi); -} - - -std::string LegendFromType(const std::string& InputPattern){ - if(InputPattern.find("Type0",0) DValue; - std::vector PValue; - - for(float WP_Pt=0;WP_Pt>=-5;WP_Pt-=0.5f){ - for(float WP_I =0;WP_I >=-5;WP_I -=0.5f){ - char Buffer[2048]; - sprintf(Buffer,"%sWPPt%+03i/WPI%+03i/DumpHistos.root",InputPattern.c_str(),(int)(10*WP_Pt),(int)(10*WP_I)); - TFile* InputFile = new TFile(Buffer); - if(!InputFile || InputFile->IsZombie() || !InputFile->IsOpen() || InputFile->TestBit(TFile::kRecovered) )continue; - - double d=0, p=0;//, m=0; - double error =0; - TH1D* Hd = (TH1D*)GetObjectFromPath(InputFile, "Mass_Data");if(Hd){d=GetEventInRange(0,75,Hd,error);delete Hd;} - TH1D* Hp = (TH1D*)GetObjectFromPath(InputFile, "Mass_Pred");if(Hp){p=GetEventInRange(0,75,Hp,error);delete Hp;} -// TH1D* Hm = (TH1D*)GetObjectFromPath(InputFile, "Mass_MCTr");if(Hm){m=GetEventInRange(0,75,Hm);delete Hm;} - -// if(!(d!=d) && p>0 && d>10 && (WP_Pt+WP_I)<=-3){ -// if(!(d!=d) && p>0 && d>20 && (WP_Pt+WP_I)<=-3){ - if(!(d!=d) && p>0 && d>20 && (WP_Pt+WP_I)<=-2){ -// if(!(d!=d) && p>0 && d>500 && (WP_Pt+WP_I)<=-2){ - DValue.push_back(d); - PValue.push_back(p); - printf("%6.2f %6.2f (eff=%6.2E) --> %f (d=%6.2E)\n",WP_Pt,WP_I, pow(10,WP_Pt+WP_I),d/p, d); - Rescale += (d/p); - NPoints++; - } - InputFile->Close(); - }} - printf("----------------------------\n"); - Rescale /= NPoints; - - for(unsigned int i=0;iGet(firstPart.c_str()); - if(TMP!=NULL)return GetObjectFromPath(TMP,endPart,GetACopy); - - printf("BUG: %s\n",Path.c_str()); - return NULL; - }else{ - if(GetACopy){ - return (File->Get(Path.c_str()))->Clone(); - }else{ - return File->Get(Path.c_str()); - } - } -} - -TObject* GetObjectFromPath(TDirectory* Container, TDirectory* File, std::string Path, bool GetACopy=false){ - TObject* toreturn = GetObjectFromPath(File,Path,GetACopy); - if(TH1* th1 = dynamic_cast(toreturn))th1->SetDirectory(Container); - return toreturn; -} - - -void MakeDirectories(std::string path){ -/* size_t pos = 0; - - while(pos!=std::string::npos){ - pos = path.find("/",pos+1); - if(pos!=std::string::npos){ - system( (std::string("mkdir -p ") + path.substr(0,pos)).c_str()); - } - } -*/ - - system( (std::string("mkdir -p ") + path).c_str()); -} - -void SaveCanvas(TCanvas* c, std::string path, std::string name, bool OnlyPPNG=false){ - std::string tmppath = path; - if(tmppath[tmppath.length()-1]!='/')tmppath += "_"; - tmppath += name; - - std::string filepath; - filepath = tmppath + ".png"; c->SaveAs(filepath.c_str()); if(OnlyPPNG)return; - filepath = tmppath + ".eps"; c->SaveAs(filepath.c_str()); - filepath = tmppath + ".C" ; c->SaveAs(filepath.c_str()); - filepath = tmppath + ".pdf"; c->SaveAs(filepath.c_str()); -} - -//void DrawPreliminary(int Type, double X=0.28, double Y=0.98, double W=0.85, double H=0.95){ -//void DrawPreliminary(double Lumi, double X=0.12, double Y=1.00, double W=0.80, double H=0.945){ //USED FOR PAS -//void DrawPreliminary(double Lumi, double X=0.42, double Y=0.98, double W=0.82, double H=0.945){ -void DrawPreliminary(double Lumi, double X=0.40, double Y=0.995, double W=0.82, double H=0.945){ - TPaveText* T = new TPaveText(X,Y,W,H, "NDC"); - T->SetFillColor(0); - T->SetTextAlign(22); - if(Lumi<0 )T->AddText("CMS Preliminary #sqrt{s} = 7 TeV"); - - if(Lumi>0 ){ - char tmp[2048]; -// sprintf(tmp,"CMS Preliminary 2010 : L_{int} =%4.1f nb^{-1} at #sqrt{s} = 7 TeV",Lumi*1000.0); -// sprintf(tmp,"CMS Preliminary 2010 : %4.1f nb^{-1} #sqrt{s} = 7 TeV",Lumi*1000.0); -// sprintf(tmp,"CMS Preliminary 2010 #sqrt{s} = 7TeV %4.1f nb ^{-1}",Lumi*1000.0); -// sprintf(tmp,"CMS Preliminary 2010 #sqrt{s} = 7TeV %3.0f nb ^{-1}",Lumi*1000.0); -// sprintf(tmp,"CMS Preliminary 2010 #sqrt{s} = 7TeV %4.2f pb ^{-1}",Lumi*1.0); //USED FOR PAS -// sprintf(tmp,"CMS 2010 #sqrt{s} = 7 TeV %4.2f pb ^{-1}",Lumi*1.0); -// sprintf(tmp,"CMS #sqrt{s} = 7 TeV %4.2f pb ^{-1}",Lumi*1.0); - sprintf(tmp,"CMS Preliminary #sqrt{s} = 7 TeV %1.1f fb ^{-1}",Lumi*0.001); - - T->AddText(tmp); - } - T->Draw("same"); -} - -void DrawLegend (TObject** Histos, std::vector legend, std::string Title, std::string Style, double X=0.79, double Y=0.92, double W=0.20, double H=0.05) -{ - int N = legend.size(); - - if(legend[0]!=""){ - TLegend* leg; - leg = new TLegend(X,Y,X-W,Y - N*H); - leg->SetFillColor(0); - leg->SetBorderSize(0); - //leg->SetTextAlign(32); - if(Title!="")leg->SetHeader(Title.c_str()); - - if(Style=="DataMC"){ - for(int i=0;iClone(); - temp->SetMarkerSize(1.3); - if(i==0){ - leg->AddEntry(temp, legend[i].c_str() ,"P"); - }else{ - leg->AddEntry(temp, legend[i].c_str() ,"L"); - } - } - }else{ - for(int i=0;iClone(); - temp->SetMarkerSize(1.3); - leg->AddEntry(temp, legend[i].c_str() ,Style.c_str()); - } - } - leg->Draw(); - } -} - - -void DrawStatBox(TObject** Histos, std::vector legend, bool Mean, double X=0.15, double Y=0.93, double W=0.15, double H=0.03) -{ - int N = legend.size(); - char buffer[255]; - - if(Mean)H*=3; - for(int i=0;iGetEntries()); - stat->AddText(buffer); - - if(Mean){ - sprintf(buffer,"Mean : %6.2f\n",Histo->GetMean()); - stat->AddText(buffer); - - sprintf(buffer,"RMS : %6.2f\n",Histo->GetRMS()); - stat->AddText(buffer); - } - - stat->SetFillColor(0); - stat->SetLineColor(Color[i]); - stat->SetTextColor(Color[i]); - stat->SetBorderSize(0); - stat->SetMargin(0.05); - stat->SetTextAlign(12); - stat->Draw(); - } -} - - - -void DrawTH2D(TH2D** Histos, std::vector legend, std::string Style, std::string Xlegend, std::string Ylegend, double xmin, double xmax, double ymin, double ymax) -{ - int N = legend.size(); - - for(int i=0;iSetTitle(""); - Histos[i]->SetStats(kFALSE); - Histos[i]->GetXaxis()->SetTitle(Xlegend.c_str()); - Histos[i]->GetYaxis()->SetTitle(Ylegend.c_str()); - Histos[i]->GetYaxis()->SetTitleOffset(1.60); - if(xmin!=xmax)Histos[i]->SetAxisRange(xmin,xmax,"X"); - if(ymin!=ymax)Histos[i]->SetAxisRange(ymin,ymax,"Y"); - Histos[i]->SetMarkerStyle(Marker[i]); - Histos[i]->SetMarkerColor(Color[i]); - Histos[i]->SetMarkerSize(0.3); - } - - char Buffer[256]; - Histos[0]->Draw(Style.c_str()); - for(int i=1;iDraw(Buffer); - } -} - - -void DrawSuperposedHistos(TH1** Histos, std::vector legend, std::string Style, std::string Xlegend, std::string Ylegend, double xmin, double xmax, double ymin, double ymax, bool Normalize=false) -{ - int N = legend.size(); - - double HistoMax = -1; - int HistoHeighest = -1; - - for(int i=0;iIntegral()!=0)Histos[i]->Scale(1.0/Histos[i]->Integral()); - Histos[i]->SetTitle(""); - Histos[i]->SetStats(kFALSE); - Histos[i]->GetXaxis()->SetTitle(Xlegend.c_str()); - Histos[i]->GetYaxis()->SetTitle(Ylegend.c_str()); - Histos[i]->GetXaxis()->SetTitleOffset(1.1); - Histos[i]->GetYaxis()->SetTitleOffset(1.70); - Histos[i]->GetXaxis()->SetNdivisions(505); - Histos[i]->GetYaxis()->SetNdivisions(505); - if(xmin!=xmax)Histos[i]->SetAxisRange(xmin,xmax,"X"); - if(ymin!=ymax)Histos[i]->SetAxisRange(ymin,ymax,"Y"); - Histos[i]->SetFillColor(0); - Histos[i]->SetMarkerStyle(Marker[i]); - Histos[i]->SetMarkerColor(Color[i]); - Histos[i]->SetMarkerSize(1.5); - Histos[i]->SetLineColor(Color[i]); - Histos[i]->SetLineWidth(2); - if(Style=="DataMC" && i==0){ - Histos[i]->SetFillColor(0); - Histos[i]->SetMarkerStyle(20); - Histos[i]->SetMarkerColor(1); - Histos[i]->SetMarkerSize(1); - Histos[i]->SetLineColor(1); - Histos[i]->SetLineWidth(2); - } - - if(Histos[i]->GetMaximum() >= HistoMax){ - HistoMax = Histos[i]->GetMaximum(); - HistoHeighest = i; - } - - } - - char Buffer[256]; - if(Style=="DataMC"){ - if(HistoHeighest==0){ - Histos[HistoHeighest]->Draw("E1"); - }else{ - Histos[HistoHeighest]->Draw("HIST"); - } - for(int i=0;iDraw("same E1"); - }else{ - Histos[i]->Draw("same"); - } - } - }else{ - Histos[HistoHeighest]->Draw(Style.c_str()); - for(int i=0;iDraw(Buffer); - } - } -} - - -void Smart_SetAxisRange(TH2D* histo){ - double Min=1E50; - double Max=1E-50; - for(int x=1;x<=histo->GetNbinsX();x++){ - for(int y=1;y<=histo->GetNbinsY();y++){ - double c = histo->GetBinContent(x,y); - if(c0)Min=c; - if(c>Max)Max=c; - }} - if(Max/Min<10 ){Max*= 5.0; Min/= 5.0;} - else if(Max/Min<100){Max*=10.0; Min/=10.0;} - histo->SetAxisRange(Min,Max,"Z"); -} - - -#endif diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_PlotStructure.h b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_PlotStructure.h deleted file mode 100644 index 0472e2e7136e6..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_PlotStructure.h +++ /dev/null @@ -1,965 +0,0 @@ - -#include "Analysis_Samples.h" - - -struct stPlots { - bool SelPlot; - std::string Name; - TDirectory* Directory; - TTree* Tree; - unsigned int NCuts; - unsigned int Tree_Run; - unsigned int Tree_Event; - unsigned int Tree_Hscp; - float Tree_Pt; - float Tree_I; - float Tree_TOF; - float Tree_Mass; - - TH2F* Mass; - TH2F* MassTOF; - TH2F* MassComb; - TH2F* MaxEventMass; - - TH2F* Mass_SystP; - TH2F* MassTOF_SystP; - TH2F* MassComb_SystP; - TH2F* MaxEventMass_SystP; - - TH2F* Mass_SystI; - TH2F* MassTOF_SystI; - TH2F* MassComb_SystI; - TH2F* MaxEventMass_SystI; - - TH2F* Mass_SystM; - TH2F* MassTOF_SystM; - TH2F* MassComb_SystM; - TH2F* MaxEventMass_SystM; - - TH2F* Mass_SystT; - TH2F* MassTOF_SystT; - TH2F* MassComb_SystT; - TH2F* MaxEventMass_SystT; - - TH1F* TotalE; - TH1F* TotalTE; - TH1F* Total; - TH1F* V3D; - TH1F* Chi2; - TH1F* Qual; - TH1F* TNOH; - TH1F* TNOM; - TH1F* nDof; - TH1F* Pterr; - TH1F* MPt; - TH1F* MI; - TH1F* MTOF; - TH1F* TIsol; - TH1F* EIsol; - TH1F* Pt; - TH1F* I; - TH1F* TOF; - TH1F* HSCPE; - - TH1F* HSCPE_SystP; - TH1F* HSCPE_SystI; - TH1F* HSCPE_SystM; - TH1F* HSCPE_SystT; - - TH1F* Beta_Gen; - TH1F* Beta_GenCharged; - TH1F* Beta_Triggered; - TH1F* Beta_Matched; - TH1F* Beta_PreselectedA; - TH1F* Beta_PreselectedB; - TH1F* Beta_PreselectedC; - TH2F* Beta_SelectedP; - TH2F* Beta_SelectedI; - TH2F* Beta_SelectedT; - - TH1F* BS_V3D; - TH1F* BS_Chi2; - TH1F* BS_Qual; - TH1F* BS_TNOH; - TH1F* BS_TNOHFraction; - TH1F* BS_Eta; - TH1F* BS_TNOM; - TH1F* BS_nDof; - TH1F* BS_Pterr; - TH1F* BS_MPt; - TH1F* BS_MIs; - TH1F* BS_MIm; - TH1F* BS_MTOF; - TH1F* BS_TIsol; - TH1F* BS_EIsol; - - TH1F* BS_P; TH2F* AS_P; - TH1F* BS_Pt; TH2F* AS_Pt; - TH1F* BS_Is; TH2F* AS_Is; - TH1F* BS_Im; TH2F* AS_Im; - TH1F* BS_TOF; TH2F* AS_TOF; - - TH2F* BS_EtaIs; //TH3F* AS_EtaIs; - TH2F* BS_EtaIm; //TH3F* AS_EtaIm; - TH2F* BS_EtaP; //TH3F* AS_EtaP; - TH2F* BS_EtaPt; //TH3F* AS_EtaPt; - TH2F* BS_EtaTOF; //TH3F* AS_EtaTOF; - - TH2F* BS_PIs; TH3F* AS_PIs; - TH2F* BS_PIm; TH3F* AS_PIm; - TH2F* BS_PtIs; TH3F* AS_PtIs; - TH2F* BS_PtIm; TH3F* AS_PtIm; - TH2F* BS_TOFIs; TH3F* AS_TOFIs; - TH2F* BS_TOFIm; TH3F* AS_TOFIm; -}; - -void stPlots_Init(TFile* HistoFile, stPlots& st, std::string BaseName, unsigned int NCuts, bool SkipSelectionPlot=false) -{ - st.SelPlot = !SkipSelectionPlot; - st.Name = BaseName; - st.NCuts = NCuts; - - std::string Name; - Name = BaseName; st.Directory = HistoFile->mkdir(Name.c_str(), Name.c_str()); - st.Directory->cd(); - - Name = "TotalE"; st.TotalE = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "TotalTE"; st.TotalTE= new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "Total"; st.Total = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "V3D"; st.V3D = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "Chi2"; st.Chi2 = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "Qual"; st.Qual = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "TNOH"; st.TNOH = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "TNOM"; st.TNOM = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "nDof"; st.nDof = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "Pterr"; st.Pterr = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "TIsol"; st.TIsol = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "EIsol"; st.EIsol = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "MPt"; st.MPt = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "MI"; st.MI = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "MTOF"; st.MTOF = new TH1F(Name.c_str(), Name.c_str(), 1 , 0, 1); - Name = "Pt"; st.Pt = new TH1F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts); - Name = "I"; st.I = new TH1F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts); - Name = "TOF"; st.TOF = new TH1F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts); - Name = "HSCPE"; st.HSCPE = new TH1F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts); - - Name = "HSCPE_SystP"; st.HSCPE_SystP = new TH1F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts); - Name = "HSCPE_SystI"; st.HSCPE_SystI = new TH1F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts); - Name = "HSCPE_SystM"; st.HSCPE_SystM = new TH1F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts); - Name = "HSCPE_SystT"; st.HSCPE_SystT = new TH1F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts); - - - - Name = "Mass"; st.Mass = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.Mass ->Sumw2(); - Name = "MassTOF"; st.MassTOF = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassTOF ->Sumw2(); - Name = "MassComb"; st.MassComb = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassComb->Sumw2(); - Name = "MaxEventMass"; st.MaxEventMass = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MaxEventMass ->Sumw2(); - - Name = "Mass_SystP"; st.Mass_SystP = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.Mass_SystP ->Sumw2(); - Name = "MassTOF_SystP"; st.MassTOF_SystP = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassTOF_SystP ->Sumw2(); - Name = "MassComb_SystP"; st.MassComb_SystP = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassComb_SystP->Sumw2(); - Name = "MaxEventMass_SystP"; st.MaxEventMass_SystP = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound);st.MaxEventMass_SystP->Sumw2(); - - Name = "Mass_SystI"; st.Mass_SystI = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.Mass_SystI ->Sumw2(); - Name = "MassTOF_SystI"; st.MassTOF_SystI = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassTOF_SystI ->Sumw2(); - Name = "MassComb_SystI"; st.MassComb_SystI = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassComb_SystI->Sumw2(); - Name = "MaxEventMass_SystI"; st.MaxEventMass_SystI = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound);st.MaxEventMass_SystI->Sumw2(); - - Name = "Mass_SystM"; st.Mass_SystM = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.Mass_SystM ->Sumw2(); - Name = "MassTOF_SystM"; st.MassTOF_SystM = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassTOF_SystM ->Sumw2(); - Name = "MassComb_SystM"; st.MassComb_SystM = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassComb_SystM->Sumw2(); - Name = "MaxEventMass_SystM"; st.MaxEventMass_SystM = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound);st.MaxEventMass_SystM->Sumw2(); - - Name = "Mass_SystT"; st.Mass_SystT = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.Mass_SystT ->Sumw2(); - Name = "MassTOF_SystT"; st.MassTOF_SystT = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassTOF_SystT ->Sumw2(); - Name = "MassComb_SystT"; st.MassComb_SystT = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound); st.MassComb_SystT->Sumw2(); - Name = "MaxEventMass_SystT"; st.MaxEventMass_SystT = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, MassNBins, 0, MassHistoUpperBound);st.MaxEventMass_SystT->Sumw2(); - - - if(SkipSelectionPlot)return; - Name = "Beta_Gen" ; st.Beta_Gen = new TH1F(Name.c_str(), Name.c_str(), 20, 0, 1); st.Beta_Gen ->Sumw2(); - Name = "Beta_GenChaged" ; st.Beta_GenCharged = new TH1F(Name.c_str(), Name.c_str(), 20, 0, 1); st.Beta_GenCharged ->Sumw2(); - Name = "Beta_Triggered" ; st.Beta_Triggered = new TH1F(Name.c_str(), Name.c_str(), 20, 0, 1); st.Beta_Triggered ->Sumw2(); - Name = "Beta_Matched" ; st.Beta_Matched = new TH1F(Name.c_str(), Name.c_str(), 20, 0, 1); st.Beta_Matched ->Sumw2(); - Name = "Beta_PreselectedA"; st.Beta_PreselectedA= new TH1F(Name.c_str(), Name.c_str(), 20, 0, 1); st.Beta_PreselectedA->Sumw2(); - Name = "Beta_PreselectedB"; st.Beta_PreselectedB= new TH1F(Name.c_str(), Name.c_str(), 20, 0, 1); st.Beta_PreselectedB->Sumw2(); - Name = "Beta_PreselectedC"; st.Beta_PreselectedC= new TH1F(Name.c_str(), Name.c_str(), 20, 0, 1); st.Beta_PreselectedC->Sumw2(); - Name = "Beta_SelectedP" ; st.Beta_SelectedP = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, 20, 0, 1); st.Beta_SelectedP ->Sumw2(); - Name = "Beta_SelectedI" ; st.Beta_SelectedI = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, 20, 0, 1); st.Beta_SelectedI ->Sumw2(); - Name = "Beta_SelectedT" ; st.Beta_SelectedT = new TH2F(Name.c_str(), Name.c_str(),NCuts,0,NCuts, 20, 0, 1); st.Beta_SelectedT ->Sumw2(); - - Name = "BS_V3D" ; st.BS_V3D = new TH1F(Name.c_str(), Name.c_str(), 20, 0, 5); st.BS_V3D->Sumw2(); - Name = "BS_Chi2" ; st.BS_Chi2 = new TH1F(Name.c_str(), Name.c_str(), 20, 0, 5); st.BS_Chi2->Sumw2(); - Name = "BS_Qual" ; st.BS_Qual = new TH1F(Name.c_str(), Name.c_str(), 20, 0, 20); st.BS_Qual->Sumw2(); - Name = "BS_TNOH" ; st.BS_TNOH = new TH1F(Name.c_str(), Name.c_str(), 50, 0, 40); st.BS_TNOH->Sumw2(); - Name = "BS_TNOHFraction" ; st.BS_TNOHFraction = new TH1F(Name.c_str(), Name.c_str(), 50, 0, 1); st.BS_TNOHFraction->Sumw2(); - Name = "BS_Eta" ; st.BS_Eta = new TH1F(Name.c_str(), Name.c_str(), 50, -2.6, 2.6); st.BS_Eta->Sumw2(); - Name = "BS_TNOM" ; st.BS_TNOM = new TH1F(Name.c_str(), Name.c_str(), 40, 0, 40); st.BS_TNOM->Sumw2(); - Name = "BS_nDof" ; st.BS_nDof = new TH1F(Name.c_str(), Name.c_str(), 20, 0, 40); st.BS_nDof->Sumw2(); - Name = "BS_PtErr"; st.BS_Pterr = new TH1F(Name.c_str(), Name.c_str(), 40, 0, 1); st.BS_Pterr->Sumw2(); - Name = "BS_MPt" ; st.BS_MPt = new TH1F(Name.c_str(), Name.c_str(), 50, 0, PtHistoUpperBound); st.BS_MPt->Sumw2(); - Name = "BS_MIs" ; st.BS_MIs = new TH1F(Name.c_str(), Name.c_str(), 50, 0, dEdxS_UpLim); st.BS_MIs->Sumw2(); - Name = "BS_MIm" ; st.BS_MIm = new TH1F(Name.c_str(), Name.c_str(), 50, 0, dEdxM_UpLim); st.BS_MIm->Sumw2(); - Name = "BS_MTOF" ; st.BS_MTOF = new TH1F(Name.c_str(), Name.c_str(), 50, -2, 5); st.BS_MTOF->Sumw2(); - Name = "BS_TIsol"; st.BS_TIsol = new TH1F(Name.c_str(), Name.c_str(), 25, 0, 100); st.BS_TIsol->Sumw2(); - Name = "BS_EIsol"; st.BS_EIsol = new TH1F(Name.c_str(), Name.c_str(), 25, 0, 1.5); st.BS_EIsol->Sumw2(); - - Name = "BS_P" ; st.BS_P = new TH1F(Name.c_str(), Name.c_str(), 50, 0, PtHistoUpperBound); st.BS_P->Sumw2(); - Name = "BS_Pt" ; st.BS_Pt = new TH1F(Name.c_str(), Name.c_str(), 50, 0, PtHistoUpperBound); st.BS_Pt->Sumw2(); - Name = "BS_Is" ; st.BS_Is = new TH1F(Name.c_str(), Name.c_str(), 50, 0, dEdxS_UpLim); st.BS_Is->Sumw2(); - Name = "BS_Im" ; st.BS_Im = new TH1F(Name.c_str(), Name.c_str(), 50, 0, dEdxM_UpLim); st.BS_Im->Sumw2(); - Name = "BS_TOF" ; st.BS_TOF = new TH1F(Name.c_str(), Name.c_str(), 50, 1, 5); st.BS_TOF->Sumw2(); - - Name = "AS_P" ; st.AS_P = new TH2F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 0, PtHistoUpperBound); st.AS_P->Sumw2(); - Name = "AS_Pt" ; st.AS_Pt = new TH2F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 0, PtHistoUpperBound); st.AS_Pt->Sumw2(); - Name = "AS_Is" ; st.AS_Is = new TH2F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 0, dEdxS_UpLim); st.AS_Is->Sumw2(); - Name = "AS_Im" ; st.AS_Im = new TH2F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 0, dEdxM_UpLim); st.AS_Im->Sumw2(); - Name = "AS_TOF" ; st.AS_TOF = new TH2F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 1, 5); st.AS_TOF->Sumw2(); - - - Name = "BS_EtaIs"; st.BS_EtaIs = new TH2F(Name.c_str(), Name.c_str(), 50,-3, 3, 50, 0, dEdxS_UpLim); - Name = "BS_EtaIm"; st.BS_EtaIm = new TH2F(Name.c_str(), Name.c_str(), 50,-3, 3, 50, 2.8, dEdxM_UpLim); - Name = "BS_EtaP" ; st.BS_EtaP = new TH2F(Name.c_str(), Name.c_str(), 50,-3, 3, 50, 0, PtHistoUpperBound); - Name = "BS_EtaPt"; st.BS_EtaPt = new TH2F(Name.c_str(), Name.c_str(), 50,-3, 3, 50, 0, PtHistoUpperBound); - Name = "BS_EtaTOF" ; st.BS_EtaTOF = new TH2F(Name.c_str(), Name.c_str(), 50,-3, 3, 50, 0, 3); - Name = "BS_PIs" ; st.BS_PIs = new TH2F(Name.c_str(), Name.c_str(), 50, 0, PtHistoUpperBound, 50, 0, dEdxS_UpLim); - Name = "BS_PIm" ; st.BS_PIm = new TH2F(Name.c_str(), Name.c_str(), 50, 0, PtHistoUpperBound, 50, 0, dEdxM_UpLim); - Name = "BS_PtIs" ; st.BS_PtIs = new TH2F(Name.c_str(), Name.c_str(), 50, 0, PtHistoUpperBound, 50, 0, dEdxS_UpLim); - Name = "BS_PtIm" ; st.BS_PtIm = new TH2F(Name.c_str(), Name.c_str(), 50, 0, PtHistoUpperBound, 50, 0, dEdxM_UpLim); - Name = "BS_TOFIs"; st.BS_TOFIs = new TH2F(Name.c_str(), Name.c_str(), 50, 1, 5, 50, 0, dEdxS_UpLim); - Name = "BS_TOFIm"; st.BS_TOFIm = new TH2F(Name.c_str(), Name.c_str(), 50, 1, 5, 50, 0, dEdxM_UpLim); - -// Name = "AS_EtaIs"; st.AS_EtaIs = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50,-3, 3, 50, 0, dEdxS_UpLim); -// Name = "AS_EtaIm"; st.AS_EtaIm = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50,-3, 3, 50, 0, dEdxM_UpLim); -// Name = "AS_EtaP" ; st.AS_EtaP = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50,-3, 3, 50, 0, PtHistoUpperBound); -// Name = "AS_EtaPt"; st.AS_EtaPt = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50,-3, 3, 50, 0, PtHistoUpperBound); -// Name = "AS_EtaTOF"; st.AS_EtaTOF = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50,-3, 3, 50, 0, 3); - Name = "AS_PIs" ; st.AS_PIs = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 0, PtHistoUpperBound, 50, 0, dEdxS_UpLim); - Name = "AS_PIm" ; st.AS_PIm = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 0, PtHistoUpperBound, 50, 0, dEdxM_UpLim); - Name = "AS_PtIs" ; st.AS_PtIs = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 0, PtHistoUpperBound, 50, 0, dEdxS_UpLim); - Name = "AS_PtIm" ; st.AS_PtIm = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 0, PtHistoUpperBound, 50, 0, dEdxM_UpLim); - Name = "AS_TOFIs"; st.AS_TOFIs = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 1, 5, 50, 0, dEdxS_UpLim); - Name = "AS_TOFIm"; st.AS_TOFIm = new TH3F(Name.c_str(), Name.c_str(), NCuts, 0, NCuts, 50, 1, 5, 50, 0, dEdxM_UpLim); - - - st.Tree = new TTree("HscpCandidates", "HscpCandidates"); - st.Tree->SetDirectory(0); - st.Tree->Branch("Run" ,&st.Tree_Run ,"Run/i"); - st.Tree->Branch("Event" ,&st.Tree_Event ,"Event/i"); - st.Tree->Branch("Hscp" ,&st.Tree_Hscp ,"Hscp/i"); - st.Tree->Branch("Pt" ,&st.Tree_Pt ,"Pt/F"); - st.Tree->Branch("I" ,&st.Tree_I ,"I/F"); - st.Tree->Branch("TOF" ,&st.Tree_TOF ,"TOF/F"); - st.Tree->Branch("Mass" ,&st.Tree_Mass ,"Mass/F"); - - HistoFile->cd(); -} - - -void stPlots_InitFromFile(TFile* HistoFile, stPlots& st, std::string BaseName, TFile* InputFile) -{ - st.Name = BaseName; - std::string Name; - Name = BaseName; - - st.Directory = new TDirectory((Name+"ReadFromFile").c_str(), (Name+"ReadFromFile").c_str()); - st.Directory->cd(); - TDirectory::AddDirectory(kTRUE); - TH1::AddDirectory(kTRUE); - - st.TotalE = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/TotalE"); - st.TotalTE = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/TotalTE"); - st.Total = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Total"); - st.V3D = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/V3D"); - st.Chi2 = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Chi2"); - st.Qual = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Qual"); - st.TNOH = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/TNOH"); - st.TNOM = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/TNOM"); - st.nDof = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/nDof"); - st.Pterr = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Pterr"); - st.TIsol = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/TIsol"); - st.EIsol = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/EIsol"); - st.MPt = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MPt"); - st.MI = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MI"); - st.MTOF = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MTOF"); - st.Pt = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Pt"); - st.I = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/I"); - st.TOF = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/TOF"); - st.HSCPE = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/HSCPE"); - - st.HSCPE_SystP = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/HSCPE_SystP"); - st.HSCPE_SystI = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/HSCPE_SystI"); - st.HSCPE_SystM = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/HSCPE_SystM"); - st.HSCPE_SystT = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/HSCPE_SystT"); - - st.Mass = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Mass"); - st.MassTOF = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MassTOF"); - st.MassComb = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MassComb"); - st.MaxEventMass = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MaxEventMass"); - - st.Mass_SystP = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Mass_SystP"); - st.MassTOF_SystP = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MassTOF_SystP"); - st.MassComb_SystP = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MassComb_SystP"); - st.MaxEventMass_SystP= (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MaxEventMass_SystP"); - - st.Mass_SystI = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Mass_SystI"); - st.MassTOF_SystI = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MassTOF_SystI"); - st.MassComb_SystI = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MassComb_SystI"); - st.MaxEventMass_SystI = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MaxEventMass_SystI"); - - st.Mass_SystT = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Mass_SystT"); - st.MassTOF_SystT = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MassTOF_SystT"); - st.MassComb_SystT = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MassComb_SystT"); - st.MaxEventMass_SystT = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/MaxEventMass_SystT"); - - - st.Beta_Gen = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_Gen"); - st.Beta_GenCharged = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_GenCharged"); - st.Beta_Triggered = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_Triggered"); - st.Beta_Matched = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_Matched"); - st.Beta_PreselectedA = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_PreselectedA"); - st.Beta_PreselectedB = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_PreselectedB"); - st.Beta_PreselectedC = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_PreselectedC"); - st.Beta_SelectedP = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_SelectedP"); - st.Beta_SelectedI = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_SelectedI"); - st.Beta_SelectedT = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/Beta_SelectedT"); - - st.BS_V3D = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_V3D"); - st.BS_Chi2 = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_Chi2"); - st.BS_Qual = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_Qual"); - st.BS_TNOH = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_TNOH"); - st.BS_TNOHFraction = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_TNOHFraction"); - st.BS_Eta = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_Eta"); - st.BS_TNOM = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_TNOM"); - st.BS_nDof = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_nDof"); - st.BS_Pterr = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_PtErr"); - st.BS_MPt = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_MPt"); - st.BS_MIm = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_MIm"); - st.BS_MIs = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_MIs"); - st.BS_MTOF = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_MTOF"); - st.BS_TIsol = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_TIsol"); - st.BS_EIsol = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_EIsol"); - st.BS_P = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_P"); - st.AS_P = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_P"); - st.BS_Pt = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_Pt"); - st.AS_Pt = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_Pt"); - st.BS_Im = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_Im"); - st.AS_Im = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_Im"); - st.BS_Is = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_Is"); - st.AS_Is = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_Is"); - st.BS_TOF = (TH1F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_TOF"); - st.AS_TOF = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_TOF"); - st.BS_EtaIs = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_EtaIs"); - //st.AS_EtaIs = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_EtaIs"); - st.BS_EtaIm = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_EtaIm"); - //st.AS_EtaIm = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_EtaIm"); - st.BS_EtaP = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_EtaP"); - //st.AS_EtaP = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_EtaP"); - st.BS_EtaPt = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_EtaPt"); - //st.AS_EtaPt = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_EtaPt"); - st.BS_EtaTOF = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_EtaTOF"); - //st.AS_EtaTOF = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_EtaTOF"); - st.BS_PIs = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_PIs"); - st.AS_PIs = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_PIs"); - st.BS_PIm = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_PIm"); - st.AS_PIm = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_PIm"); - st.BS_PtIs = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_PtIs"); - st.AS_PtIs = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_PtIs"); - st.BS_PtIm = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_PtIm"); - st.AS_PtIm = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_PtIm"); - st.BS_TOFIs = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_TOFIs"); - st.AS_TOFIs = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_TOFIs"); - st.BS_TOFIm = (TH2F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/BS_TOFIm"); - st.AS_TOFIm = (TH3F*)GetObjectFromPath(st.Directory, InputFile, BaseName + "/AS_TOFIm"); - HistoFile->cd(); -} - -void stPlots_Clear(stPlots& st, bool WriteFirst=false) -{ - if(WriteFirst){ - st.Tree->SetDirectory(st.Directory); - st.Directory->Write(); - } - delete st.Directory; -} - - -void stPlots_FillTree(stPlots& st, unsigned int Run, unsigned int Event, unsigned int Hscp, double Pt, double I, double TOF, double Mass, int MaxEntry=20000){ - if(MaxEntry>0 && st.Tree->GetEntries()>=MaxEntry)return; - st.Tree_Run = Run; - st.Tree_Event = Event; - st.Tree_Hscp = Hscp; - st.Tree_Pt = Pt; - st.Tree_I = I; - st.Tree_TOF = TOF; - st.Tree_Mass = Mass; - st.Tree->Fill(); -} - - -void stPlots_Dump(stPlots& st, FILE* pFile, int CutIndex){ - - fprintf(pFile,"---------- %10s ----------\n",st.Name.c_str()); - fprintf(pFile,"#Events = %4.2E\n",st.TotalE->GetBinContent(1 )); - fprintf(pFile,"#Triggered Events = %4.2E Eff=%4.3E\n",st.TotalTE->GetBinContent(1 ),st.TotalTE->GetBinContent(1 )/st.TotalE->GetBinContent(1 )); - fprintf(pFile,"#Tracks = %4.2E\n",st.Total->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing TNOH cuts = %4.2E Eff=%4.3E\n",st.TNOH ->GetBinContent(1 ), st.TNOH ->GetBinContent(1 ) /st.Total->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing TNOM cuts = %4.2E Eff=%4.3E\n",st.TNOM ->GetBinContent(1 ), st.TNOM ->GetBinContent(1 ) /st.TNOH ->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing nDof cuts = %4.2E Eff=%4.3E\n",st.nDof ->GetBinContent(1 ), st.nDof ->GetBinContent(1 ) /st.TNOM ->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing Qual cuts = %4.2E Eff=%4.3E\n",st.Qual ->GetBinContent(1 ), st.Qual ->GetBinContent(1 ) /st.nDof ->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing Chi2 cuts = %4.2E Eff=%4.3E\n",st.Chi2 ->GetBinContent(1 ), st.Chi2 ->GetBinContent(1 ) /st.Qual ->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing Min Pt cuts = %4.2E Eff=%4.3E\n",st.MPt ->GetBinContent(1 ), st.MPt ->GetBinContent(1 ) /st.Chi2 ->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing Min I cuts = %4.2E Eff=%4.3E\n",st.MI ->GetBinContent(1 ), st.MI ->GetBinContent(1 ) /st.MPt ->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing Min TOFcuts = %4.2E Eff=%4.3E\n",st.MTOF ->GetBinContent(1 ), st.MTOF ->GetBinContent(1 ) /st.MI ->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing V3D cuts = %4.2E Eff=%4.3E\n",st.V3D ->GetBinContent(1 ), st.V3D ->GetBinContent(1 ) /st.MI ->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing TIsol cuts = %4.2E Eff=%4.3E\n",st.TIsol->GetBinContent(1 ), st.TIsol->GetBinContent(1 ) /st.V3D ->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing EIsol cuts = %4.2E Eff=%4.3E\n",st.EIsol->GetBinContent(1 ), st.EIsol->GetBinContent(1 ) /st.TIsol->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing PtErr cuts = %4.2E Eff=%4.3E\n",st.Pterr->GetBinContent(1 ), st.Pterr->GetBinContent(1 ) /st.EIsol->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing Basic cuts = %4.2E Eff=%4.3E\n",st.Pterr->GetBinContent(1 ), st.Pterr->GetBinContent(1 ) /st.Total->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing Pt cuts = %4.2E Eff=%4.3E\n",st.Pt ->GetBinContent(CutIndex+1), st.Pt ->GetBinContent(CutIndex+1) /st.Pterr->GetBinContent(1 )); - fprintf(pFile,"#Tracks passing I cuts = %4.2E Eff=%4.3E\n",st.I ->GetBinContent(CutIndex+1), st.I ->GetBinContent(CutIndex+1) /st.Pt ->GetBinContent(CutIndex+1)); - fprintf(pFile,"#Tracks passing TOF cuts = %4.2E Eff=%4.3E\n",st.TOF ->GetBinContent(CutIndex+1), st.TOF ->GetBinContent(CutIndex+1) /st.I ->GetBinContent(CutIndex+1)); - fprintf(pFile,"#Tracks passing selection = %4.2E Eff=%4.3E\n",st.TOF ->GetBinContent(CutIndex+1), st.TOF ->GetBinContent(CutIndex+1) /st.Total->GetBinContent(1 )); - fprintf(pFile,"--------------------\n"); - fprintf(pFile,"HSCP Detection Efficiency Before Trigger Eff=%4.3E\n",st.TOF->GetBinContent(CutIndex+1) /(2*st.TotalE ->GetBinContent(1 ))); - fprintf(pFile,"HSCP Detection Efficiency After Trigger Eff=%4.3E\n",st.TOF->GetBinContent(CutIndex+1) /(2*st.TotalTE->GetBinContent(1 ))); - fprintf(pFile,"#HSCPTrack per HSCPEvent (with at least one HSCPTrack) Eff=%4.3E\n",st.TOF->GetBinContent(CutIndex+1) /( st.HSCPE ->GetBinContent(CutIndex+1))); - fprintf(pFile,"--------------------\n"); -} - - -void stPlots_Draw(stPlots& st, std::string SavePath, std::string LegendTitle, unsigned int CutIndex) -{ - TObject** Histos = new TObject*[10]; - std::vector legend; - TCanvas* c1; - - char CutIndexStr[255];sprintf(CutIndexStr,"_%03i",CutIndex); - - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_EtaIs; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", dEdxS_Legend.c_str(), 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"EtaIs_BS", true); - delete c1; - -// c1 = new TCanvas("c1","c1,",600,600); legend.clear(); -// st.AS_EtaIs->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); -// Histos[0] = (TH1*)st.AS_EtaIs->Project3D("zy"); legend.push_back("After Cut"); -// DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", dEdxS_Legend.c_str(), 0,0, 0,0, false); -// c1->SetLogz(true); -// DrawPreliminary(IntegratedLuminosity); -// SaveCanvas(c1,SavePath,std::string("EtaIs_AS")+CutIndexStr, true); -// delete Histos[0]; -// delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_EtaIm; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", dEdxM_Legend.c_str(), 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"EtaIm_BS", true); - delete c1; - -// c1 = new TCanvas("c1","c1,",600,600); legend.clear(); -// st.AS_EtaIm->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); -// Histos[0] = (TH1*)st.AS_EtaIm->Project3D("zy");legend.push_back("After Cut"); -// DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", dEdxM_Legend.c_str(), 0,0, 0,0, false); -// c1->SetLogz(true); -// DrawPreliminary(IntegratedLuminosity); -// SaveCanvas(c1,SavePath,std::string("EtaIm_AS")+CutIndexStr, true); -// delete Histos[0]; -// delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_EtaP; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", "p (GeV/c)", 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"EtaP_BS", true); - delete c1; - -// c1 = new TCanvas("c1","c1,",600,600); legend.clear(); -// st.AS_EtaP->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); -// Histos[0] = (TH1*)st.AS_EtaP->Project3D("zy"); legend.push_back("After Cut"); -// DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", "p (GeV/c)", 0,0, 0,0, false); -// c1->SetLogz(true); -// DrawPreliminary(IntegratedLuminosity); -// SaveCanvas(c1,SavePath,std::string("EtaP_AS")+CutIndexStr, true); -// delete Histos[0]; -// delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_EtaPt; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", "p_{T} (GeV/c)", 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"EtaPt_BS", true); - delete c1; - -// c1 = new TCanvas("c1","c1,",600,600); legend.clear(); -// st.AS_EtaPt->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); -// Histos[0] = (TH1*)st.AS_EtaPt->Project3D("zy");legend.push_back("After Cut"); -// DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", "p_{T} (GeV/c)", 0,0, 0,0, false); -// c1->SetLogz(true); -// DrawPreliminary(IntegratedLuminosity); -// SaveCanvas(c1,SavePath,std::string("EtaPt_AS")+CutIndexStr, true); -// delete Histos[0]; -// delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_EtaTOF; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", "1/#beta", 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"EtaTOF_BS", true); - delete c1; - -// c1 = new TCanvas("c1","c1,",600,600); legend.clear(); -// st.AS_EtaTOF->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); -// Histos[0] = (TH1*)st.AS_EtaTOF->Project3D("zy");legend.push_back("After Cut"); -// DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "#eta", "1/#beta", 0,0, 0,0, false); -// c1->SetLogz(true); -// DrawPreliminary(IntegratedLuminosity); -// SaveCanvas(c1,SavePath,std::string("EtaTOF_AS")+CutIndexStr, true); -// delete Histos[0]; -// delete c1; - - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_PIs; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "p (GeV/c)", dEdxS_Legend.c_str(), 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"PIs_BS", true); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_PIm; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "p (GeV/c)", dEdxM_Legend.c_str(), 0,0, 0,15, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"PIm_BS", true); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_PtIs; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "p_{T} (GeV/c)", dEdxS_Legend.c_str(), 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"PtIs_BS", true); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_PtIm; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "p_{T} (GeV/c)", dEdxM_Legend.c_str(), 0,0, 0,15, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"PtIm_BS", true); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - st.AS_PIs->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); - Histos[0] = (TH1*)st.AS_PIs->Project3D("zy"); legend.push_back("After Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "p (GeV/c)", dEdxS_Legend.c_str(), 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("PIs_AS")+CutIndexStr, true); - delete Histos[0]; - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - st.AS_PIm->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); - Histos[0] = (TH1*)st.AS_PIm->Project3D("zy"); legend.push_back("After Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "p (GeV/c)", dEdxM_Legend.c_str(), 0,0, 0,15, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("PIm_AS")+CutIndexStr, true); - delete Histos[0]; - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - st.AS_PtIs->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); - Histos[0] = (TH1*)st.AS_PtIs->Project3D("zy"); legend.push_back("After Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "p_{T} (GeV/c)", dEdxS_Legend.c_str(), 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("PtIs_AS")+CutIndexStr, true); - delete Histos[0]; - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - st.AS_PtIm->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); - Histos[0] = (TH1*)st.AS_PtIm->Project3D("zy"); legend.push_back("After Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "p_{T} (GeV/c)", dEdxM_Legend.c_str(), 0,0, 0,15, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("PtIm_AS")+CutIndexStr, true); - delete Histos[0]; - delete c1; - - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_TOFIs; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "1/#beta", dEdxS_Legend.c_str(), 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"TOFIs_BS", true); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st.BS_TOFIm; legend.push_back("Before Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "1/#beta", dEdxM_Legend.c_str(), 0,0, 0,15, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"TOFIm_BS", true); - delete c1; - - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - st.AS_TOFIs->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); - Histos[0] = (TH1*)st.AS_TOFIs->Project3D("zy");legend.push_back("After Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "1/#beta", dEdxS_Legend.c_str(), 0,0, 0,0, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("TOFIs_AS")+CutIndexStr, true); - delete Histos[0]; - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - st.AS_TOFIm->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); - Histos[0] = (TH1*)st.AS_TOFIm->Project3D("zy");legend.push_back("After Cut"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "1/#beta", dEdxM_Legend.c_str(), 0,0, 0,15, false); - c1->SetLogz(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("TOFIm_AS")+CutIndexStr, true); - delete Histos[0]; - delete c1; -} - -void stPlots_DrawComparison(std::string SavePath, std::string LegendTitle, unsigned int CutIndex, stPlots* st1, stPlots* st2=NULL, stPlots* st3=NULL, stPlots* st4=NULL, stPlots* st5=NULL, stPlots* st6=NULL, stPlots* st7=NULL) -{ - char CutIndexStr[255];sprintf(CutIndexStr,"_%03i",CutIndex); - - bool IsTkOnly = (SavePath.find("Type0",0) lg; - std::vector st; - if(st1)st.push_back(st1); - if(st2)st.push_back(st2); - if(st3)st.push_back(st3); - if(st4)st.push_back(st4); - if(st5)st.push_back(st5); - if(st6)st.push_back(st6); - if(st7)st.push_back(st7); - - std::vector signals; - GetSignalDefinition(signals); - for(unsigned int i=0;iName){Index=s;break;} - } - if(st[i]->Name=="MCTr"){lg.push_back("MC");}else if(Index==-1){lg.push_back(st[i]->Name);}else{lg.push_back(signals[Index].Legend);} - } - - TH1** Histos = new TH1*[10]; - std::vector legend; - TCanvas* c1; - - for(unsigned int i=0;iName=="Data")continue; - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)st[i]->Beta_Gen; legend.push_back("Gen"); -// Histos[1] = (TH1*)st[i]->Beta_GenCharged; legend.push_back("Charged Gen"); - Histos[1] = (TH1*)st[i]->Beta_Triggered; legend.push_back("Triggered"); - DrawSuperposedHistos((TH1**)Histos, legend,"HIST E1", "#beta", "# HSCP", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,"","P", 0.36, 0.92, 0.20, 0.04); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,st[i]->Name + "_GenBeta", true); - delete c1; - } - - for(unsigned int i=0;iName=="Data")continue; - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); -// Histos[0] = (TH1*)st[i]->Beta_Gen; legend.push_back("Gen"); -// Histos[1] = (TH1*)st[i]->Beta_GenCharged; legend.push_back("Charged Gen"); - Histos[0] = (TH1*)st[i]->Beta_Triggered; legend.push_back("Triggered"); - Histos[1] = (TH1*)st[i]->Beta_Matched; legend.push_back("Reconstructed"); -// Histos[0] = (TH1*)st[i]->Beta_PreselectedA; legend.push_back("PreselectedA"); -// Histos[0] = (TH1*)st[i]->Beta_PreselectedB; legend.push_back("PreselectedB"); - Histos[2] = (TH1*)st[i]->Beta_PreselectedC; legend.push_back("Preselected"); - Histos[3] = (TH1*)st[i]->Beta_SelectedP->ProjectionY("A",CutIndex+1,CutIndex+1); legend.push_back("p_{T}>Cut"); - Histos[4] = (TH1*)st[i]->Beta_SelectedI->ProjectionY("B",CutIndex+1,CutIndex+1); legend.push_back("I >Cut"); - if(!IsTkOnly){Histos[5] = (TH1*)st[i]->Beta_SelectedT->ProjectionY("C",CutIndex+1,CutIndex+1); legend.push_back("ToF>Cut");} - DrawSuperposedHistos((TH1**)Histos, legend,"HIST E1", "#beta", "# HSCP", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P", 0.36, 0.92, 0.20, 0.025); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,st[i]->Name + "_Beta", true); - delete Histos[3]; delete Histos[4]; - if(!IsTkOnly)delete Histos[5]; - delete c1; - } - - - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - for(unsigned int i=0;iBS_V3D->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "V3D (cm)", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"V3D_BS", true); - for(unsigned int i=0;iBS_Chi2->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "#chi^{2}/ndof", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Chi2_BS", true); - for(unsigned int i=0;iBS_Qual->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "quality", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Quality_BS", true); - for(unsigned int i=0;iBS_TNOH->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "#NOH", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"NOH_BS", true); - for(unsigned int i=0;iBS_TNOHFraction->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "Fraction of hits", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P",0.49); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"NOHFraction_BS", true); - for(unsigned int i=0;iBS_Eta->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "#eta", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Eta_BS", true); - for(unsigned int i=0;iBS_TNOM->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "#NOM", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"NOM_BS", true); - for(unsigned int i=0;iBS_nDof->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "TOF_{nDof}", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"nDof_BS", true); - for(unsigned int i=0;iBS_Pterr->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "p_{T} Err / p_{T}", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Pterr_BS", true); - for(unsigned int i=0;iBS_MPt->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "p_{T} (GeV/c)", "arbitrary units", 0,1250, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"MPt_BS", true); - for(unsigned int i=0;iBS_MIs->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", dEdxS_Legend.c_str(), "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P", 0.79, 0.19); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"MIs_BS", true); - for(unsigned int i=0;iBS_MIm->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", dEdxM_Legend.c_str(), "arbitrary units", 0,20, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"MIm_BS", true); - for(unsigned int i=0;iBS_MTOF->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "1/#beta", "arbitrary units", -2,5, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - //DrawLegend((TObject**)Histos,legend,LegendTitle,"P",0.35); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"MTOF_BS", true); - for(unsigned int i=0;iBS_TIsol->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "Isolation: Track SumPt (GeV/c)", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"IsolT_BS", true); - for(unsigned int i=0;iBS_EIsol->Clone(); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "Isolation: (Ecal + Hcal) Energy / p", "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"IsolE_BS", true); - for(unsigned int i=0;iBS_Is; legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - char tmp[2048]; - sprintf(tmp,"Fraction of tracks/%0.2f",Histos[0]->GetBinWidth(1)); - DrawSuperposedHistos((TH1**)Histos, legend, "E1", dEdxS_Legend.c_str(), tmp, 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P", 0.76, 0.65); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Is_BS"); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - for(unsigned int i=0;iBS_Im; legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", dEdxM_Legend.c_str(), "arbitrary units", 0,20, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Im_BS"); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - for(unsigned int i=0;iAS_Is->ProjectionY((st[i]->Name+"A").c_str(),CutIndex+1,CutIndex+1)); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", dEdxS_Legend.c_str(), "arbitrary units", 0,0, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P", 0.79, 0.35); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("Is_AS")+CutIndexStr); - for(unsigned int i=0;iAS_Im->ProjectionY((st[i]->Name+"B").c_str(),CutIndex+1,CutIndex+1); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", dEdxM_Legend.c_str(), "arbitrary units", 0,20, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("Im_AS")+CutIndexStr); - for(unsigned int i=0;iBS_Pt; legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - sprintf(tmp,"Fraction of tracks/%2.0f GeV/c",Histos[0]->GetBinWidth(1)); - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "p_{T} (GeV/c)", tmp, 0,1250, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P", 0.86, 0.94); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Pt_BS"); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - for(unsigned int i=0;iAS_Pt->ProjectionY((st[i]->Name+"C").c_str(),CutIndex+1,CutIndex+1); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "p_{T} (GeV/c)", "arbitrary units", 0,1250, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P"); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("Pt_AS")+CutIndexStr); - for(unsigned int i=0;iBS_TOF; legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - //char tmp[2048]; - sprintf(tmp,"Fraction of tracks/%0.2f",Histos[0]->GetBinWidth(1)); - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "1/#beta", tmp, 1,4, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P", 0.82);//,0.35); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"TOF_BS", true); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - for(unsigned int i=0;iAS_TOF->ProjectionY((st[i]->Name+"D").c_str(),CutIndex+1,CutIndex+1); legend.push_back(lg[i]); if(Histos[i]->Integral()>0) Histos[i]->Scale(1.0/Histos[i]->Integral()); } - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "1/#beta", "arbitrary units", 1,4, 0,0); - DrawLegend((TObject**)Histos,legend,LegendTitle,"P");//, 0.35); - c1->SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,std::string("TOF_AS")+CutIndexStr, true); - for(unsigned int i=0;i& signals){ - signals.push_back(stSignal("Gluino", "Gluino300", "Gluino300" , "#tilde{g} 300" , 300, 1, 1, 65.800000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino400", "Gluino400" , "#tilde{g} 400" , 400, 1, 1, 11.20000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino500", "Gluino500" , "#tilde{g} 500" , 500, 1, 1, 2.540000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino600", "Gluino600" , "#tilde{g} 600" , 600, 1, 1, 0.693000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino700", "Gluino700" , "#tilde{g} 700" , 700, 1, 1, 0.214000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino800", "Gluino800" , "#tilde{g} 800" , 800, 1, 1, 0.072500) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino900", "Gluino900" , "#tilde{g} 900" , 900, 1, 1, 0.026200) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino1000", "Gluino1000" , "#tilde{g} 1000" ,1000, 1, 1, 0.0098700) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino1100", "Gluino1100" , "#tilde{g} 1100" ,1100, 1, 1, 0.0038600) ); //NLO - //signals.push_back(stSignal("Gluino", "Gluino1200", "Gluino1200" , "#tilde{g} 1200" ,1200, 1, 1, 0.004300) ); //NLO - - signals.push_back(stSignal("Gluino", "Gluino300N", "Gluinoneutralonly300" , "#tilde{g} 300 CS" , 300, 1, 1, 65.800000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino400N", "Gluinoneutralonly400" , "#tilde{g} 400 CS" , 400, 1, 1, 11.20000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino500N", "Gluinoneutralonly500" , "#tilde{g} 500 CS" , 500, 1, 1, 2.540000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino600N", "Gluinoneutralonly600" , "#tilde{g} 600 CS" , 600, 1, 1, 0.693000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino700N", "Gluinoneutralonly700" , "#tilde{g} 700 CS" , 700, 1, 1, 0.214000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino800N", "Gluinoneutralonly800" , "#tilde{g} 800 CS" , 800, 1, 1, 0.072500) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino900N", "Gluinoneutralonly900" , "#tilde{g} 900 CS" , 900, 1, 1, 0.026200) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino1000N", "Gluinoneutralonly1000" , "#tilde{g} 1000 CS" ,1000, 1, 1, 0.0098700) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino1100N", "Gluinoneutralonly1100" , "#tilde{g} 1100 CS" ,1100, 1, 1, 0.0038600) ); //NLO - //signals.push_back(stSignal("Gluino", "Gluino1200N", "Gluinoneutralonly1200" , "#tilde{g} 1200 CS" ,1200, 1, 1, ) ); //NLO - - //signals.push_back(stSignal("Gluino", "Gluino600Z" , "#tilde{g} 600 Z2" , 600, 1, 1, 0.465000) ); //NLO - //signals.push_back(stSignal("Gluino", "Gluino700Z" , "#tilde{g} 700 Z2" , 700, 1, 1, 0.130000) ); //NLO - //signals.push_back(stSignal("Gluino", "Gluino800Z" , "#tilde{g} 800 Z2" , 800, 1, 1, 0.039600) ); //NLO - - signals.push_back(stSignal("Stop" , "Stop130", "stop_M-130" , "#tilde{t}_{1} 130" , 130, 1, 1, 120.000000) ); //NLO - signals.push_back(stSignal("Stop" , "Stop200", "stop_M-200" , "#tilde{t}_{1} 200" , 200, 1, 1, 13.000000) ); //NLO - signals.push_back(stSignal("Stop" , "Stop300", "stop_M-300" , "#tilde{t}_{1} 300" , 300, 1, 1, 1.310000) ); //NLO - signals.push_back(stSignal("Stop" , "Stop400", "stop_M-400" , "#tilde{t}_{1} 400" , 400, 1, 1, 0.218000) ); //NLO - signals.push_back(stSignal("Stop" , "Stop500", "stop_M-500" , "#tilde{t}_{1} 500" , 500, 0, 1, 0.047800) ); //NLO - signals.push_back(stSignal("Stop" , "Stop600", "stop_M-600" , "#tilde{t}_{1} 600" , 600, 1, 1, 0.012500) ); //NLO - signals.push_back(stSignal("Stop" , "Stop700", "stop_M-700" , "#tilde{t}_{1} 700" , 700, 1, 1, 0.003560) ); //NLO - signals.push_back(stSignal("Stop" , "Stop800", "stop_M-800" , "#tilde{t}_{1} 800" , 800, 1, 1, 0.001140) ); //NLO - - signals.push_back(stSignal("Stop" , "Stop130N", "stoponlyneutral_M-130" , "#tilde{t}_{1} 130 CS" , 130, 1, 1, 120.000000) ); //NLO - signals.push_back(stSignal("Stop" , "Stop200N", "stoponlyneutral_M-200" , "#tilde{t}_{1} 200 CS" , 200, 1, 1, 13.000000) ); //NLO - signals.push_back(stSignal("Stop" , "Stop300N", "stoponlyneutral_M-300" , "#tilde{t}_{1} 300 CS" , 300, 1, 1, 1.310000) ); //NLO - signals.push_back(stSignal("Stop" , "Stop400N", "stoponlyneutral_M-400" , "#tilde{t}_{1} 400 CS" , 400, 1, 1, 0.218000) ); //NLO - signals.push_back(stSignal("Stop" , "Stop500N", "stoponlyneutral_M-500" , "#tilde{t}_{1} 500 CS" , 500, 0, 1, 0.047800) ); //NLO - signals.push_back(stSignal("Stop" , "Stop600N", "stoponlyneutral_M-600" , "#tilde{t}_{1} 600 CS" , 600, 1, 1, 0.012500) ); //NLO - signals.push_back(stSignal("Stop" , "Stop700N", "stoponlyneutral_M-700" , "#tilde{t}_{1} 700 CS" , 700, 1, 1, 0.003560) ); //NLO - signals.push_back(stSignal("Stop" , "Stop800N", "stoponlyneutral_M-800" , "#tilde{t}_{1} 800 CS" , 800, 1, 1, 0.001140) ); //NLO - - //signals.push_back(stSignal("Stop" , "Stop300Z" , "#tilde{t}_{1} 300 Z2" , 300, 1, 1, 1.310000) ); //NLO - //signals.push_back(stSignal("Stop" , "Stop400Z" , "#tilde{t}_{1} 400 Z2" , 400, 1, 1, 0.218000) ); //NLO - //signals.push_back(stSignal("Stop" , "Stop500Z" , "#tilde{t}_{1} 500 Z2" , 500, 0, 0.047800) ); //NLO - - signals.push_back(stSignal("Stau" , "GMStau100", "stau_M-100" , "GMSB #tilde{#tau}_{1} 100" , 100, 1, 1, 1.3398) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau126", "stau_M-126" , "GMSB #tilde{#tau}_{1} 126" , 126, 1, 1, 0.274591) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau156", "stau_M-156" , "GMSB #tilde{#tau}_{1} 156" , 156, 0, 1, 0.0645953) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau200", "stau_M-200" , "GMSB #tilde{#tau}_{1} 200" , 200, 1, 1, 0.0118093) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau247", "stau_M-247" , "GMSB #tilde{#tau}_{1} 247" , 247, 0, 1, 0.00342512) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau308", "stau_M-308" , "GMSB #tilde{#tau}_{1} 308" , 308, 1, 1, 0.00098447 ) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau370", "stau_M-370" , "GMSB #tilde{#tau}_{1} 370" , 370, 1, 1, 0.000353388) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau432", "stau_M-432" , "GMSB #tilde{#tau}_{1} 432" , 432, 1, 1, 0.000141817) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau494", "stau_M-494" , "GMSB #tilde{#tau}_{1} 494" , 494, 1, 1, 0.00006177) ); //NLO - - signals.push_back(stSignal("Stau" , "PPStau100", "PPStau100", "Pair #tilde{#tau}_{1} 100" , 100, 1, 1, 0.0382) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau126", "PPStau126", "Pair #tilde{#tau}_{1} 126" , 126, 0, 1, 0.0161) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau156", "PPStau156", "Pair #tilde{#tau}_{1} 156" , 156, 0, 1, 0.00704) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau200", "PPStau200", "Pair #tilde{#tau}_{1} 200" , 200, 1, 1, 0.00247) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau247", "PPStau247", "Pair #tilde{#tau}_{1} 247" , 247, 0, 1, 0.00101) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau308", "PPStau308", "Pair #tilde{#tau}_{1} 308" , 308, 0, 1, 0.000353) ); //NLO - - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK100" , "DCRho08HyperK100" , "DICHAMP #tilde{K} 100" , 100, 1, 1, 1.405000) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK121" , "DCRho08HyperK121" , "DICHAMP #tilde{K} 121" , 121, 1, 1, 0.979000) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK182" , "DCRho08HyperK182" , "DICHAMP #tilde{K} 182" , 182, 0, 1, 0.560000) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK242" , "DCRho08HyperK242" , "DICHAMP #tilde{K} 242" , 242, 0, 1, 0.489000) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK302" , "DCRho08HyperK302" , "DICHAMP #tilde{K} 302" , 302, 1, 1, 0.463000) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK350" , "DCRho08HyperK350" , "DICHAMP #tilde{K} 350" , 350, 1, 1, 0.473000) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK370" , "DCRho08HyperK370" , "DICHAMP #tilde{K} 370" , 370, 1, 1, 0.48288105) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK390" , "DCRho08HyperK390" , "DICHAMP #tilde{K} 390" , 390, 1, 1, 0.47132496) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK395" , "DCRho08HyperK395" , "DICHAMP #tilde{K} 395" , 395, 1, 1, 0.420000) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK400" , "DCRho08HyperK400" , "DICHAMP #tilde{K} 400" , 400, 1, 1, 0.473000) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK410" , "DCRho08HyperK410" , "DICHAMP #tilde{K} 410" , 410, 1, 1, 0.0060812129) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK420" , "DCRho08HyperK420" , "DICHAMP #tilde{K} 420" , 420, 1, 1, 0.003500) ); //LO - signals.push_back(stSignal("DCRho08HyperK" , "DCRho08HyperK500" , "DCRho08HyperK500" , "DICHAMP #tilde{K} 500" , 500, 1, 1, 0.0002849) ); //LO - - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK100" , "DCRho12HyperK100" , "DICHAMP #tilde{K} 100" , 100, 1, 1, 0.8339415992) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK182" , "DCRho12HyperK182" , "DICHAMP #tilde{K} 182" , 182, 1, 1, 0.168096952140) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK302" , "DCRho12HyperK302" , "DICHAMP #tilde{K} 302" , 302, 1, 1, 0.079554948387) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK500" , "DCRho12HyperK500" , "DICHAMP #tilde{K} 500" , 500, 1, 1, 0.063996737) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK530" , "DCRho12HyperK530" , "DICHAMP #tilde{K} 530" , 530, 1, 1, 0.064943882) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK570" , "DCRho12HyperK570" , "DICHAMP #tilde{K} 570" , 570, 1, 1, 0.0662920530) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK590" , "DCRho12HyperK590" , "DICHAMP #tilde{K} 590" , 590, 1, 1, 0.060748383) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK595" , "DCRho12HyperK595" , "DICHAMP #tilde{K} 595" , 595, 1, 1, 0.04968409) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK600" , "DCRho12HyperK600" , "DICHAMP #tilde{K} 600" , 600, 1, 1, 0.0026232721237) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK610" , "DCRho12HyperK610" , "DICHAMP #tilde{K} 610" , 610, 1, 1, 0.00127431) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK620" , "DCRho12HyperK620" , "DICHAMP #tilde{K} 620" , 620, 1, 1, 0.00056965104319) ); //LO - signals.push_back(stSignal("DCRho12HyperK" , "DCRho12HyperK700" , "DCRho12HyperK700" , "DICHAMP #tilde{K} 700" , 700, 1, 1, 0.00006122886211) ); //LO - - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK100" , "DCRho16HyperK100" , "DICHAMP #tilde{K} 100" , 100, 1, 1, 0.711518686800) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK182" , "DCRho16HyperK182" , "DICHAMP #tilde{K} 182" , 182, 1, 1, 0.089726059780) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK302" , "DCRho16HyperK302" , "DICHAMP #tilde{K} 302" , 302, 1, 1, 0.019769637301) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK500" , "DCRho16HyperK500" , "DICHAMP #tilde{K} 500" , 500, 1, 1, 0.0063302286576) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK700" , "DCRho16HyperK700" , "DICHAMP #tilde{K} 700" , 700, 1, 1, 0.002536779850) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK730" , "DCRho16HyperK730" , "DICHAMP #tilde{K} 730" , 730, 1, 1, 0.00213454921) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK770" , "DCRho16HyperK770" , "DICHAMP #tilde{K} 770" , 770, 1, 1, 0.001737551) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK790" , "DCRho16HyperK790" , "DICHAMP #tilde{K} 790" , 790, 1, 1, 0.00161578593) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK795" , "DCRho16HyperK795" , "DICHAMP #tilde{K} 795" , 795, 1, 1, 0.00153513713) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK800" , "DCRho16HyperK800" , "DICHAMP #tilde{K} 800" , 800, 1, 1, 0.000256086965) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK810" , "DCRho16HyperK810" , "DICHAMP #tilde{K} 810" , 810, 1, 1, 0.000140664) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK820" , "DCRho16HyperK820" , "DICHAMP #tilde{K} 820" , 820, 1, 1, 0.000097929923655) ); //LO - signals.push_back(stSignal("DCRho16HyperK" , "DCRho16HyperK900" , "DCRho16HyperK900" , "DICHAMP #tilde{K} 900" , 900, 1, 1, 0.000013146066) ); //LO - -} - -struct stMC{ - std::string Name; - double XSection; - double MaxPtHat; - double MaxEvent; - bool IsS4PileUp; - - stMC(); - stMC(std::string Name_, double XSection_, double MaxPtHat_, int MaxEvent_, bool IsS4PileUp_){Name = Name_; XSection = XSection_; MaxPtHat = MaxPtHat_; MaxEvent = MaxEvent_;IsS4PileUp = IsS4PileUp_;} -}; - -void GetMCDefinition(std::vector& MC){ - - MC.push_back(stMC("MC_DYToTauTau" , 1.300E3 , -1, -1, 0)); - MC.push_back(stMC("MC_DYToMuMu" , 1.300E3 , -1, -1, 0)); - MC.push_back(stMC("MC_WJetsToLNu" , 2.777E4 , -1, -1, 1)); - MC.push_back(stMC("MC_TTJets" , 9.400E1 , -1, -1, 1)); - MC.push_back(stMC("MC_QCD_Pt-15to30" , 8.16E8 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-30to50" , 5.310E7 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-50to80" , 6.360E6 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-80to120" , 7.840E5 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-120to170" , 1.150E5 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-170to300" , 2.430E4 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-300to470" , 1.170E3 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-470to600" , 7.020E1 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-600to800" , 1.560E1 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-800to1000" , 1.84 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-1000to1400" , 3.320E-1 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-1400to1800" , 1.090E-2 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-1800" , 3.580E-4 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-0to15" , 4.280E3 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-15to20" , 1.450E2 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-20to30" , 1.310E2 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-30to50" , 8.400E1 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-50to80" , 3.220E1 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-80to120" , 9.98 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-120to170", 2.73 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-170to230", 7.21E-1 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-230to300", 1.94E-1 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-300" , 7.59E-2 , -1, -1, 0)); - MC.push_back(stMC("MC_ZZ" , 4.287 , -1, -1, 1)); - MC.push_back(stMC("MC_WW" , 2.783E1 , -1, -1, 1)); - MC.push_back(stMC("MC_WZ" , 1.47E1 , -1, -1, 1)); -} - -void GetInputFiles(std::vector& inputFiles, std::string SampleName, int period=0){ -// std::string BaseDirectory = "/storage/data/cms/users/quertenmont/HSCP/CMSSW_4_2_3/11_08_03/"; -// std::string BaseDirectory = "dcache:/pnfs/cms/WAX/11/store/user/jchen/11_09_13_HSCP2011EDM/"; - std::string BaseDirectory = "/uscmst1b_scratch/lpc1/lpcphys/jchen/HSCPEDM_11_01_11/"; - if(SampleName=="Data"){ - inputFiles.push_back(BaseDirectory + "Data_RunA_160404_163869.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_165001_166033.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_166034_166500.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_166501_166893.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_166894_167151.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_167153_167913.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_170826_171500.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_171501_172619.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_172620_172790.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_172791_172802.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_172803_172900.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_172901_173243.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_173244_173692.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_175860_176099.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_176100_176309.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_176467_176800.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_176801_177053.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_177074_177783.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_177788_178380.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_178420_179411.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_179434_180252.root"); - }else if(SampleName.find("MC_",0) - -#include "TROOT.h" -#include "TFile.h" -#include "TDirectory.h" -#include "TChain.h" -#include "TObject.h" -#include "TCanvas.h" -#include "TMath.h" -#include "TLegend.h" -#include "TGraph.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include "TTree.h" -#include "TF1.h" -#include "TGraphAsymmErrors.h" -#include "TPaveText.h" -#include "tdrstyle.C" -#include "TRandom3.h" -#include "TProfile.h" -#include "TDirectory.h" - -namespace reco { class Vertex; class Track; class GenParticle; class DeDxData; class MuonTimeExtra;} -namespace susybsm { class HSCParticle; class HSCPIsolation;} -namespace fwlite { class ChainEvent;} -namespace trigger { class TriggerEvent;} -namespace edm {class TriggerResults; class TriggerResultsByName; class InputTag; class LumiReWeighting;} - -#if !defined(__CINT__) && !defined(__MAKECINT__) -#include "DataFormats/FWLite/interface/Handle.h" -#include "DataFormats/FWLite/interface/Event.h" -#include "DataFormats/FWLite/interface/ChainEvent.h" -#include "DataFormats/Common/interface/MergeableCounter.h" - -#include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCPIsolation.h" -#include "DataFormats/MuonReco/interface/MuonTimeExtraMap.h" -#include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h" - -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "PhysicsTools/Utilities/interface/LumiReWeighting.h" -#include "SimDataFormats/PileupSummaryInfo/interface/PileupSummaryInfo.h" - -using namespace fwlite; -using namespace reco; -using namespace susybsm; -using namespace std; -using namespace edm; -using namespace trigger; -#endif - -#include "Analysis_Global.h" -#include "Analysis_CommonFunction.h" -#include "Analysis_PlotFunction.h" -#include "Analysis_PlotStructure.h" -#include "Analysis_Samples.h" - -/////////////////////////// FUNCTION DECLARATION ///////////////////////////// - -void Analysis_Step3(char* SavePath); -void Analysis_Step4(char* SavePath); - -void InitHistos(); - -double DistToHSCP (const susybsm::HSCParticle& hscp, const std::vector& genColl, int& IndexOfClosest); -int HowManyChargedHSCP (const std::vector& genColl); -void GetGenHSCPBeta (const std::vector& genColl, double& beta1, double& beta2, bool onlyCharged=true); -bool PassPreselection(const susybsm::HSCParticle& hscp, const reco::DeDxData& dedxSObj, const reco::DeDxData& dedxMObj, const reco::MuonTimeExtra* tof, const reco::MuonTimeExtra* dttof, const reco::MuonTimeExtra* csctof, const fwlite::ChainEvent& ev, stPlots* st=NULL, const double& GenBeta=-1, bool RescaleP=false, const double& RescaleI=0.0, const double& RescaleT=0.0); -bool PassSelection(const susybsm::HSCParticle& hscp, const reco::DeDxData& dedxSObj, const reco::DeDxData& dedxMObj, const reco::MuonTimeExtra* tof, const fwlite::ChainEvent& ev, const int& CutIndex=0, stPlots* st=NULL, const double& GenBeta=-1, bool RescaleP=false, const double& RescaleI=0.0, const double& RescaleT=0.0); - -bool PassTrigger (const fwlite::ChainEvent& ev); -bool hasGoodPtHat (const fwlite::ChainEvent& ev, const double& PtMax); - -double GetPUWeight(const fwlite::ChainEvent& ev, const bool& Iss4pileup); -double GetSampleWeight(const double& IntegratedLuminosityInPb=-1, const double& IntegratedLuminosityInPbBeforeTriggerChange=-1, const double& CrossSection=0, const double& MCEvents=0, int period=0); -double GetSampleWeightMC(const double& IntegratedLuminosityInPb, const std::vector fileNames, const double& XSection, const double& SampleSize, double MaxEvent); -double RescaledPt(const double& pt, const double& eta, const double& phi, const int& charge); -unsigned long GetInitialNumberOfMCEvent(const vector& fileNames); -/////////////////////////// VARIABLE DECLARATION ///////////////////////////// - -class DuplicatesClass{ - private : - typedef std::map, bool > RunEventHashMap; - RunEventHashMap map; - public : - DuplicatesClass(){} - ~DuplicatesClass(){} - void Clear(){map.clear();} - bool isDuplicate(unsigned int Run, unsigned int Event){ - RunEventHashMap::iterator it = map.find(std::make_pair(Run,Event)); - if(it==map.end()){ - map[std::make_pair(Run,Event)] = true; - return false; - } - return true; - } -}; - - -TFile* HistoFile; - -TH1D* Hist_Pt ; -TH1D* Hist_Is ; -TH1D* Hist_TOF; - -TH2D* Pred_Mass; -TH2D* Pred_MassTOF; -TH2D* Pred_MassComb; - -TH1D* H_A; -TH1D* H_B; -TH1D* H_C; -TH1D* H_D; -TH1D* H_E; -TH1D* H_F; -TH1D* H_G; -TH1D* H_H; -TH1D* H_P; - -std::vector CutPt ; -std::vector CutI ; -std::vector CutTOF; - -TH1D* HCuts_Pt; -TH1D* HCuts_I; -TH1D* HCuts_TOF; - -TH3D* Pred_EtaP ; -TH2D* Pred_I ; -TH2D* Pred_TOF ; -TH2D* Pred_EtaB; -TH2D* Pred_EtaS; -TH2D* Pred_EtaS2; - -TH2D* RegionD_P ; -TH2D* RegionD_I ; -TH2D* RegionD_TOF ; - -TH1D* CtrlPt_S1_Is; -TH1D* CtrlPt_S1_Im; -TH1D* CtrlPt_S1_TOF; -TH1D* CtrlPt_S2_Is; -TH1D* CtrlPt_S2_Im; -TH1D* CtrlPt_S2_TOF; -TH1D* CtrlPt_S3_Is; -TH1D* CtrlPt_S3_Im; -TH1D* CtrlPt_S3_TOF; -TH1D* CtrlPt_S4_Is; -TH1D* CtrlPt_S4_Im; -TH1D* CtrlPt_S4_TOF; -TH1D* CtrlIs_S1_TOF; -TH1D* CtrlIs_S2_TOF; -TH1D* CtrlIs_S3_TOF; -TH1D* CtrlIs_S4_TOF; - -std::vector signals; -std::vector MCsample; -std::vector DataFileName; - -stPlots DataPlots; -std::vector SignPlots; -std::vector MCPlots; -stPlots MCTrPlots; -//for initializing PileUpReweighting utility. -const float TrueDist2011_f[35] = {0.00285942, 0.0125603, 0.0299631, 0.051313, 0.0709713, 0.0847864, 0.0914627, 0.0919255, 0.0879994, 0.0814127, 0.0733995, 0.0647191, 0.0558327, 0.0470663, 0.0386988, 0.0309811, 0.0241175, 0.018241, 0.0133997, 0.00956071, 0.00662814, 0.00446735, 0.00292946, 0.00187057, 0.00116414, 0.000706805, 0.000419059, 0.000242856, 0.0001377, 7.64582e-05, 4.16101e-05, 2.22135e-05, 1.16416e-05, 5.9937e-06, 5.95542e-06};//from 2011 Full dataset - -const float Pileup_MC[35]= {1.45346E-01, 6.42802E-02, 6.95255E-02, 6.96747E-02, 6.92955E-02, 6.84997E-02, 6.69528E-02, 6.45515E-02, 6.09865E-02, 5.63323E-02, 5.07322E-02, 4.44681E-02, 3.79205E-02, 3.15131E-02, 2.54220E-02, 2.00184E-02, 1.53776E-02, 1.15387E-02, 8.47608E-03, 6.08715E-03, 4.28255E-03, 2.97185E-03, 2.01918E-03, 1.34490E-03, 8.81587E-04, 5.69954E-04, 3.61493E-04, 2.28692E-04, 1.40791E-04, 8.44606E-05, 5.10204E-05, 3.07802E-05, 1.81401E-05, 1.00201E-05, 5.80004E-06}; - - -edm::LumiReWeighting LumiWeightsMC_; -std::vector< float > BgLumiMC; //MC -std::vector< float > TrueDist2011; - -/////////////////////////// CODE PARAMETERS ///////////////////////////// - -void Analysis_Step234(string MODE="COMPILE", int TypeMode_=0, string dEdxSel_="dedxASmi", string dEdxMass_="dedxHarm2", string TOF_Label_="combined", double CutPt_=-1.0, double CutI_=-1, double CutTOF_=-1, float MinPt_=GlobalMinPt, float MaxEta_=GlobalMaxEta, float MaxPtErr_=GlobalMaxPterr) -{ - if(MODE=="COMPILE")return; - - setTDRStyle(); - gStyle->SetPadTopMargin (0.05); - gStyle->SetPadBottomMargin(0.10); - gStyle->SetPadRightMargin (0.18); - gStyle->SetPadLeftMargin (0.13); - gStyle->SetTitleSize(0.04, "XYZ"); - gStyle->SetTitleXOffset(1.1); - gStyle->SetTitleYOffset(1.35); - gStyle->SetPalette(1); - gStyle->SetNdivisions(505); - TH1::AddDirectory(kTRUE); - - GetSignalDefinition(signals); - GetMCDefinition(MCsample); - - char Buffer[2048]; - char Command[2048]; - DataFileName.clear(); - GetInputFiles(DataFileName, "Data"); - - dEdxS_Label = dEdxSel_; - dEdxM_Label = dEdxMass_; - TOF_Label = TOF_Label_; - InitdEdx(dEdxS_Label); - - TypeMode = TypeMode_; - GlobalMaxEta = MaxEta_; - GlobalMaxPterr = MaxPtErr_; - GlobalMinPt = MinPt_; - - if(TypeMode!=2){ - GlobalMinNDOF = 0; - GlobalMinTOF = 0; - }else{ - GlobalMaxTIsol *= 2; - GlobalMaxEIsol *= 2; - } - - CutPt .push_back(GlobalMinPt); CutI .push_back(GlobalMinIs); CutTOF.push_back(GlobalMinTOF); - - if(TypeMode!=2){ - for(double Pt =GlobalMinPt+5 ; Pt <200;Pt+=5){ - for(double I =GlobalMinIs+0.025 ; I <0.45 ;I+=0.025){ - CutPt .push_back(Pt); CutI .push_back(I); CutTOF.push_back(-1); - }} - }else{ - for(double Pt =GlobalMinPt+5 ; Pt <120; Pt+=5){ - for(double I =GlobalMinIs +0.025; I <0.40; I+=0.025){ - for(double TOF=GlobalMinTOF+0.025; TOF<1.35;TOF+=0.025){ - CutPt .push_back(Pt); CutI .push_back(I); CutTOF.push_back(TOF); - }}} - } - printf("%i Different Final Selection will be tested\n",(int)CutPt.size()); - - //initialize LumiReWeighting - for(int i=0; i<35; ++i) BgLumiMC.push_back(Pileup_MC[i]); - for(int i=0; i<35; ++i) TrueDist2011.push_back(TrueDist2011_f[i]); - LumiWeightsMC_ = edm::LumiReWeighting(BgLumiMC, TrueDist2011); - - sprintf(Buffer,"Results/" ); sprintf(Command,"mkdir %s",Buffer); system(Command); - sprintf(Buffer,"%s%s/" ,Buffer,dEdxS_Label.c_str()); sprintf(Command,"mkdir %s",Buffer); system(Command); - sprintf(Buffer,"%s%s/" ,Buffer,TOF_Label.c_str()); sprintf(Command,"mkdir %s",Buffer); system(Command); - sprintf(Buffer,"%sEta%02.0f/" ,Buffer,10.0*GlobalMaxEta); sprintf(Command,"mkdir %s",Buffer); system(Command); - sprintf(Buffer,"%sPtMin%02.0f/",Buffer,GlobalMinPt); sprintf(Command,"mkdir %s",Buffer); system(Command); - sprintf(Buffer,"%sType%i/" ,Buffer,TypeMode); sprintf(Command,"mkdir %s",Buffer); system(Command); -// sprintf(Buffer,"%sPt%03.0f/" ,Buffer,CutPt [0]); sprintf(Command,"mkdir %s",Buffer); system(Command); -// sprintf(Buffer,"%sI%05.2f/" ,Buffer,CutI [0]); sprintf(Command,"mkdir %s",Buffer); system(Command); -// sprintf(Buffer,"%sTOF%05.2f/" ,Buffer,CutTOF[0]); sprintf(Command,"mkdir %s",Buffer); system(Command); - - time_t start = time(NULL); - if(MODE=="ANALYSE_DATA"){ - signals.clear(); //Remove all signal samples - MCsample.clear(); - HistoFile = new TFile((string(Buffer) + "/Histos_Data.root").c_str(),"RECREATE"); - }else if(MODE=="ANALYSE_SIGNAL"){ - DataFileName.clear(); //Remove all data files - MCsample.clear(); - HistoFile = new TFile((string(Buffer) + "/Histos.root").c_str(),"RECREATE"); - }else if(MODE=="ANALYSE_MC"){ - DataFileName.clear(); //Remove all data files - signals.clear(); //Remove all signal samples - HistoFile = new TFile((string(Buffer) + "/Histos_MC.root").c_str(),"RECREATE"); - }else{ - printf("You must select a MODE:\n"); - printf("MODE='ANALYSE_DATA' : Will run the analysis on Data\n"); - printf("MODE='ANALYSE_SIGNAL' : Will run the analysis on Signal MC\n"); - printf("MODE='ANALYSE_MC' : Will run the analysis on Background MC\n"); - return; - } - - InitHistos(); - Analysis_Step3(Buffer); - Analysis_Step4(Buffer); - HistoFile->Write(); - HistoFile->Close(); - time_t end = time(NULL); - printf("RUN TIME = %i sec\n",(int)(end-start)); - return; -} - -bool hasGoodPtHat(const fwlite::ChainEvent& ev, const double& PtMax){ - if(PtMax<0)return true; - fwlite::Handle< GenEventInfoProduct > genInfo; - genInfo.getByLabel(ev, "generator"); - if(!genInfo.isValid()){printf("genInfo NotFound\n");return false;} - if((genInfo->binningValues()[0]) hTriggerResults; - hTriggerResults.getByLabel(ev, "TriggerResults", "", "MergeHLT"); - if(!hTriggerResults.isValid()) return false; - - edm::TriggerResultsByName tr = ev.triggerResultsByName(*hTriggerResults); - if(!tr.isValid())return false; - - if(tr.accept(tr.triggerIndex("HscpPathSingleMu")))return true; -// if(tr.accept(tr.triggerIndex("HscpPathDoubleMu")))return true; - if(tr.accept(tr.triggerIndex("HscpPathPFMet")))return true; -// if(tr.accept(tr.triggerIndex("HscpPathCaloMet")))return true; - return false; -} - -bool PassPreselection(const susybsm::HSCParticle& hscp, const reco::DeDxData& dedxSObj, const reco::DeDxData& dedxMObj, const reco::MuonTimeExtra* tof, const reco::MuonTimeExtra* dttof, const reco::MuonTimeExtra* csctof, const fwlite::ChainEvent& ev, stPlots* st, const double& GenBeta, bool RescaleP, const double& RescaleI, const double& RescaleT) -{ - if(TypeMode==1 && !(hscp.type() == HSCParticleType::trackerMuon || hscp.type() == HSCParticleType::globalMuon))return false; - if(TypeMode==2 && hscp.type() != HSCParticleType::globalMuon)return false; - reco::TrackRef track = hscp.trackRef(); if(track.isNull())return false; - - if(st){st->Total->Fill(0.0,Event_Weight); - if(GenBeta>=0)st->Beta_Matched->Fill(GenBeta, Event_Weight); - st->BS_TNOH->Fill(track->found(),Event_Weight); - st->BS_TNOHFraction->Fill(track->validFraction(),Event_Weight); - } - - if(track->found()validFraction()<0.80)return false; - if(track->hitPattern().numberOfValidPixelHits()<2)return false; - - if(st){st->TNOH ->Fill(0.0,Event_Weight); - st->BS_TNOM->Fill(dedxSObj.numberOfMeasurements(),Event_Weight); - } - if(dedxSObj.numberOfMeasurements()TNOM ->Fill(0.0,Event_Weight);} - - if(tof){ - if(st){st->BS_nDof->Fill(tof->nDof(),Event_Weight);} - if(TypeMode==2 && tof->nDof()nDof()nDof()nDof ->Fill(0.0,Event_Weight); - st->BS_Qual->Fill(track->qualityMask(),Event_Weight); - } - - if(track->qualityMask()Qual ->Fill(0.0,Event_Weight); - st->BS_Chi2->Fill(track->chi2()/track->ndof(),Event_Weight); - } - if(track->chi2()/track->ndof()>GlobalMaxChi2 )return false; - if(st){st->Chi2 ->Fill(0.0,Event_Weight);} - - if(st && GenBeta>=0)st->Beta_PreselectedA->Fill(GenBeta, Event_Weight); - - if(st){st->BS_MPt ->Fill(track->pt(),Event_Weight);} - if(RescaleP){ if(RescaledPt(track->pt(),track->eta(),track->phi(),track->charge())pt()MPt ->Fill(0.0,Event_Weight); - st->BS_MIs->Fill(dedxSObj.dEdx(),Event_Weight); - st->BS_MIm->Fill(dedxMObj.dEdx(),Event_Weight); - } - if(dedxSObj.dEdx()+RescaleIMI ->Fill(0.0,Event_Weight);} - if(tof){ - if(st){st->BS_MTOF ->Fill(tof->inverseBeta(),Event_Weight);} - if(TypeMode==2 && tof->inverseBeta()+RescaleTinverseBetaErr()>GlobalMaxTOFErr)return false; - } - if(st){st->MTOF ->Fill(0.0,Event_Weight); - if(GenBeta>=0)st->Beta_PreselectedB->Fill(GenBeta, Event_Weight); - } - - fwlite::Handle< std::vector > vertexCollHandle; - vertexCollHandle.getByLabel(ev,"offlinePrimaryVertices"); - if(!vertexCollHandle.isValid()){printf("Vertex Collection NotFound\n");return false;} - const std::vector& vertexColl = *vertexCollHandle; - if(vertexColl.size()<1){printf("NO VERTEX\n"); return false;} - - double dz = track->dz (vertexColl[0].position()); - double dxy = track->dxy(vertexColl[0].position()); - for(unsigned int i=1;idz (vertexColl[i].position())) < fabs(dz) ){ - dz = track->dz (vertexColl[i].position()); - dxy = track->dxy(vertexColl[i].position()); - } - } - double v3d = sqrt(dz*dz+dxy*dxy); - - if(st){st->BS_V3D->Fill(v3d,Event_Weight);} - if(v3d>GlobalMaxV3D )return false; - if(st){st->V3D ->Fill(0.0,Event_Weight);} - - fwlite::Handle IsolationH; - IsolationH.getByLabel(ev, "HSCPIsolation03"); - if(!IsolationH.isValid()){printf("Invalid IsolationH\n");return false;} - const ValueMap& IsolationMap = *IsolationH.product(); - - HSCPIsolation hscpIso = IsolationMap.get((size_t)track.key()); - - if(st){st->BS_TIsol ->Fill(hscpIso.Get_TK_SumEt(),Event_Weight);} - if(hscpIso.Get_TK_SumEt()>GlobalMaxTIsol)return false; - if(st){st->TIsol ->Fill(0.0,Event_Weight);} - - double EoP = (hscpIso.Get_ECAL_Energy() + hscpIso.Get_HCAL_Energy())/track->p(); - if(st){st->BS_EIsol ->Fill(EoP,Event_Weight);} - if(EoP>GlobalMaxEIsol)return false; - if(st){st->EIsol ->Fill(0.0,Event_Weight);} - - if(st){st->BS_Pterr ->Fill(track->ptError()/track->pt(),Event_Weight);} - if((track->ptError()/track->pt())>GlobalMaxPterr)return false; - - if(std::max(0.0,track->pt())Pterr ->Fill(0.0,Event_Weight);} - - if(st){st->BS_EtaIs->Fill(track->eta(),dedxSObj.dEdx(),Event_Weight); - st->BS_EtaIm->Fill(track->eta(),dedxMObj.dEdx(),Event_Weight); - st->BS_EtaP ->Fill(track->eta(),track->p(),Event_Weight); - st->BS_EtaPt->Fill(track->eta(),track->pt(),Event_Weight); - if(tof)st->BS_EtaTOF->Fill(track->eta(),tof->inverseBeta(),Event_Weight); - st->BS_Eta->Fill(track->eta(),Event_Weight); - } - if(fabs(track->eta())>GlobalMaxEta) return false; - - if(st){if(GenBeta>=0)st->Beta_PreselectedC->Fill(GenBeta, Event_Weight); - st->BS_P ->Fill(track->p(),Event_Weight); - st->BS_Pt ->Fill(track->pt(),Event_Weight); - st->BS_Is ->Fill(dedxSObj.dEdx(),Event_Weight); - st->BS_Im ->Fill(dedxMObj.dEdx(),Event_Weight); - if(tof)st->BS_TOF->Fill(tof->inverseBeta(),Event_Weight); - st->BS_PIs ->Fill(track->p() ,dedxSObj.dEdx(),Event_Weight); - st->BS_PIm ->Fill(track->p() ,dedxMObj.dEdx(),Event_Weight); - st->BS_PtIs ->Fill(track->pt() ,dedxSObj.dEdx(),Event_Weight); - st->BS_PtIm ->Fill(track->pt() ,dedxMObj.dEdx(),Event_Weight); - if(tof)st->BS_TOFIs->Fill(tof->inverseBeta(),dedxSObj.dEdx(),Event_Weight); - if(tof)st->BS_TOFIm->Fill(tof->inverseBeta(),dedxMObj.dEdx(),Event_Weight); - } - - return true; -} - -bool PassSelection(const susybsm::HSCParticle& hscp, const reco::DeDxData& dedxSObj, const reco::DeDxData& dedxMObj, const reco::MuonTimeExtra* tof, const fwlite::ChainEvent& ev, const int& CutIndex, stPlots* st, const double& GenBeta, bool RescaleP, const double& RescaleI, const double& RescaleT){ - reco::TrackRef track = hscp.trackRef(); if(track.isNull())return false; - - double MuonTOF = GlobalMinTOF; - double NDOF = 9999; - if(tof){ - MuonTOF = tof->inverseBeta(); - NDOF = tof->nDof(); - } - - if(RescaleP) - { - if(RescaledPt(track->pt(),track->eta(),track->phi(),track->charge())pt() - track->ptError(),track->eta(),track->phi(),track->charge()))pt()pt() - track->ptError()))Pt ->Fill(CutIndex,Event_Weight); - if(GenBeta>=0)st->Beta_SelectedP->Fill(CutIndex,GenBeta, Event_Weight); - } - - if(dedxSObj.dEdx()+RescaleII ->Fill(CutIndex,Event_Weight); - if(GenBeta>=0)st->Beta_SelectedI->Fill(CutIndex, GenBeta, Event_Weight); - } - - if(TypeMode==2 && MuonTOF+RescaleTTOF ->Fill(CutIndex,Event_Weight); - if(GenBeta>=0)st->Beta_SelectedT->Fill(CutIndex, GenBeta, Event_Weight); - st->AS_P ->Fill(CutIndex,track->p(),Event_Weight); - st->AS_Pt ->Fill(CutIndex,track->pt(),Event_Weight); - st->AS_Is ->Fill(CutIndex,dedxSObj.dEdx(),Event_Weight); - st->AS_Im ->Fill(CutIndex,dedxMObj.dEdx(),Event_Weight); - st->AS_TOF->Fill(CutIndex,MuonTOF,Event_Weight); -// st->AS_EtaIs->Fill(CutIndex,track->eta(),dedxSObj.dEdx(),Event_Weight); -// st->AS_EtaIm->Fill(CutIndex,track->eta(),dedxMObj.dEdx(),Event_Weight); -// st->AS_EtaP ->Fill(CutIndex,track->eta(),track->p(),Event_Weight); -// st->AS_EtaPt->Fill(CutIndex,track->eta(),track->pt(),Event_Weight); - st->AS_PIs ->Fill(CutIndex,track->p() ,dedxSObj.dEdx(),Event_Weight); - st->AS_PIm ->Fill(CutIndex,track->p() ,dedxMObj.dEdx(),Event_Weight); - st->AS_PtIs ->Fill(CutIndex,track->pt() ,dedxSObj.dEdx(),Event_Weight); - st->AS_PtIm ->Fill(CutIndex,track->pt() ,dedxMObj.dEdx(),Event_Weight); - st->AS_TOFIs->Fill(CutIndex,MuonTOF ,dedxSObj.dEdx(),Event_Weight); - st->AS_TOFIm->Fill(CutIndex,MuonTOF ,dedxMObj.dEdx(),Event_Weight); - } - - return true; -} - -void Analysis_FillControlAndPredictionHist(const susybsm::HSCParticle& hscp, const reco::DeDxData& dedxSObj, const reco::DeDxData& dedxMObj, const reco::MuonTimeExtra* tof){ - reco::TrackRef track = hscp.trackRef(); if(track.isNull())return; - - double MuonTOF = GlobalMinTOF; - if(tof){MuonTOF = tof->inverseBeta(); } - - Hist_Pt->Fill(track->pt(),Event_Weight); - Hist_Is->Fill(dedxSObj.dEdx(),Event_Weight); - Hist_TOF->Fill(MuonTOF,Event_Weight); - - -// /\ I -// /\ |---------------------------- -// | | | | | -// | | | | | -// | | | B | D | -// | | | | | -// | ------------------------------ -// | | | | | -// | | | A | C | -// | | | | | -// | |---|-----------|-------------| -// | | | | | -// | /---15---------------------------> PT -// | / -// /-------------------------------> -// / -// TOF - - if(track->pt()>100){ - CtrlPt_S4_Is->Fill(dedxSObj.dEdx(), Event_Weight); - CtrlPt_S4_Im->Fill(dedxMObj.dEdx(), Event_Weight); - if(tof)CtrlPt_S4_TOF->Fill(MuonTOF, Event_Weight); - }else if(track->pt()>60){ - CtrlPt_S3_Is->Fill(dedxSObj.dEdx(), Event_Weight); - CtrlPt_S3_Im->Fill(dedxMObj.dEdx(), Event_Weight); - if(tof)CtrlPt_S3_TOF->Fill(MuonTOF, Event_Weight); - }else if(track->pt()>45){ - CtrlPt_S2_Is->Fill(dedxSObj.dEdx(), Event_Weight); - CtrlPt_S2_Im->Fill(dedxMObj.dEdx(), Event_Weight); - if(tof)CtrlPt_S2_TOF->Fill(MuonTOF, Event_Weight); - }else{ - CtrlPt_S1_Is->Fill(dedxSObj.dEdx(), Event_Weight); - CtrlPt_S1_Im->Fill(dedxMObj.dEdx(), Event_Weight); - if(tof)CtrlPt_S1_TOF->Fill(MuonTOF, Event_Weight); - } - - if(dedxSObj.dEdx()>0.4){ if(tof)CtrlIs_S4_TOF->Fill(MuonTOF, Event_Weight); - }else if(dedxSObj.dEdx()>0.3){ if(tof)CtrlIs_S3_TOF->Fill(MuonTOF, Event_Weight); - }else if(dedxSObj.dEdx()>0.2){ if(tof)CtrlIs_S2_TOF->Fill(MuonTOF, Event_Weight); - }else{ if(tof)CtrlIs_S1_TOF->Fill(MuonTOF, Event_Weight); - } - - - for(unsigned int CutIndex=0;CutIndexpt()>=CutPt[CutIndex]; - bool PassICut = (dedxSObj.dEdx()>=CutI[CutIndex]); - bool PassTOFCut = MuonTOF>=CutTOF[CutIndex]; - if( PassTOFCut && PassPtCut && PassICut){ //Region D - H_D ->Fill(CutIndex, Event_Weight); - RegionD_P ->Fill(CutIndex,track->p(), Event_Weight); - RegionD_I ->Fill(CutIndex,dedxMObj.dEdx(),Event_Weight); - RegionD_TOF->Fill(CutIndex,MuonTOF, Event_Weight); - }else if( PassTOFCut && PassPtCut && !PassICut){ //Region C - H_C ->Fill(CutIndex, Event_Weight); - if(TypeMode!=2)Pred_EtaP ->Fill(CutIndex,track->eta(), track->p(), Event_Weight); -// Pred_TOF->Fill(CutIndex,MuonTOF, Event_Weight); - }else if( PassTOFCut && !PassPtCut && PassICut){ //Region B - H_B ->Fill(CutIndex, Event_Weight); - if(TypeMode!=2)Pred_I ->Fill(CutIndex,dedxMObj.dEdx(), Event_Weight); - if(TypeMode!=2)Pred_EtaS->Fill(CutIndex,track->eta(), Event_Weight); -// Pred_TOF->Fill(CutIndex,MuonTOF, Event_Weight); - }else if( PassTOFCut && !PassPtCut && !PassICut){ //Region A - H_A ->Fill(CutIndex, Event_Weight); - if(TypeMode==2)Pred_TOF->Fill(CutIndex,MuonTOF, Event_Weight); - if(TypeMode!=2)Pred_EtaB->Fill(CutIndex,track->eta(), Event_Weight); - if(TypeMode==2)Pred_EtaS2->Fill(CutIndex,track->eta(), Event_Weight); - }else if(!PassTOFCut && PassPtCut && PassICut){ //Region H - H_H ->Fill(CutIndex, Event_Weight); -// Pred_P->Fill(CutIndex,track->p(), Event_Weight); -// Pred_I->Fill(CutIndex,dedxMObj.dEdx(), Event_Weight); - }else if(!PassTOFCut && PassPtCut && !PassICut){ //Region G - H_G ->Fill(CutIndex, Event_Weight); - if(TypeMode==2)Pred_EtaP ->Fill(CutIndex,track->eta(),track->p(), Event_Weight); - }else if(!PassTOFCut && !PassPtCut && PassICut){ //Region F - H_F ->Fill(CutIndex, Event_Weight); - if(TypeMode==2)Pred_I ->Fill(CutIndex,dedxMObj.dEdx(), Event_Weight); - if(TypeMode==2)Pred_EtaS->Fill(CutIndex,track->eta(), Event_Weight); - }else if(!PassTOFCut && !PassPtCut && !PassICut){ //Region E - H_E ->Fill(CutIndex, Event_Weight); - if(TypeMode==2)Pred_EtaB->Fill(CutIndex,track->eta(), Event_Weight); - } - } - -} - - - - - -void Analysis_Step3(char* SavePath) -{ - printf("Step3: Building Mass Spectrum for B and S\n"); - - int TreeStep; - ////////////////////////////////////////////////// BUILD BACKGROUND MASS SPECTRUM - - if(DataFileName.size())stPlots_Init(HistoFile, DataPlots,"Data", CutPt.size()); - HistoFile->cd(); - - DuplicatesClass Duplicates; - Duplicates.Clear(); - - fwlite::ChainEvent treeD(DataFileName); - double SampleWeight = GetSampleWeight(-1); - Event_Weight = SampleWeight; - printf("Progressing Bar :0%% 20%% 40%% 60%% 80%% 100%%\n"); - printf("Building Mass Spectrum for D :"); - TreeStep = treeD.size()/50;if(TreeStep==0)TreeStep=1; - - bool* HSCPTk = new bool[CutPt.size()]; - double* MaxMass = new double[CutPt.size()]; - for(Long64_t ientry=0;ientry0 && ientry>MaxEntry)break; - if(ientry%TreeStep==0){printf(".");fflush(stdout);} - - if(Duplicates.isDuplicate(treeD.eventAuxiliary().run(),treeD.eventAuxiliary().event())){continue;} - - DataPlots.TotalE->Fill(0.0,Event_Weight); - if(!PassTrigger(treeD) )continue; - DataPlots.TotalTE->Fill(0.0,Event_Weight); - - fwlite::Handle hscpCollHandle; - hscpCollHandle.getByLabel(treeD,"HSCParticleProducer"); - if(!hscpCollHandle.isValid()){printf("HSCP Collection NotFound\n");continue;} - const susybsm::HSCParticleCollection& hscpColl = *hscpCollHandle; - - fwlite::Handle dEdxSCollH; - dEdxSCollH.getByLabel(treeD, dEdxS_Label.c_str()); - if(!dEdxSCollH.isValid()){printf("Invalid dEdx Selection collection\n");continue;} - - fwlite::Handle dEdxMCollH; - dEdxMCollH.getByLabel(treeD, dEdxM_Label.c_str()); - if(!dEdxMCollH.isValid()){printf("Invalid dEdx Mass collection\n");continue;} - - fwlite::Handle TOFCollH; - TOFCollH.getByLabel(treeD, "muontiming",TOF_Label.c_str()); - if(!TOFCollH.isValid()){printf("Invalid TOF collection\n");return;} - - fwlite::Handle TOFDTCollH; - TOFDTCollH.getByLabel(treeD, "muontiming",TOFdt_Label.c_str()); - if(!TOFDTCollH.isValid()){printf("Invalid DT TOF collection\n");return;} - - fwlite::Handle TOFCSCCollH; - TOFCSCCollH.getByLabel(treeD, "muontiming",TOFcsc_Label.c_str()); - if(!TOFCSCCollH.isValid()){printf("Invalid CSC TOF collection\n");return;} - - for(unsigned int CutIndex=0;CutIndexget(track.key()); - const DeDxData& dedxMObj = dEdxMCollH->get(track.key()); - const reco::MuonTimeExtra* tof = NULL; - const reco::MuonTimeExtra* dttof = NULL; - const reco::MuonTimeExtra* csctof = NULL; - if(TypeMode==2 && !hscp.muonRef().isNull()){ tof = &TOFCollH->get(hscp.muonRef().key()); dttof = &TOFDTCollH->get(hscp.muonRef().key()); csctof = &TOFCSCCollH->get(hscp.muonRef().key());} - - - double MuonTOF = GlobalMinTOF; - if(tof){MuonTOF = tof->inverseBeta(); } - - if(!PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, treeD, &DataPlots))continue; - - Analysis_FillControlAndPredictionHist(hscp, dedxSObj, dedxMObj, tof); - - - double Mass = GetMass(track->p(),dedxMObj.dEdx()); - double MassTOF = -1; if(tof)MassTOF=GetTOFMass(track->p(),tof->inverseBeta()); - double MassComb = Mass;if(tof)MassComb=GetMassFromBeta(track->p(), (GetIBeta(dedxMObj.dEdx()) + (1/tof->inverseBeta()))*0.5 ) ; - bool PassNonTrivialSelection=false; - for(unsigned int CutIndex=0;CutIndexMaxMass[CutIndex]) MaxMass[CutIndex]=Mass; - - DataPlots.Mass->Fill(CutIndex, Mass,Event_Weight); - if(tof){ - DataPlots.MassTOF ->Fill(CutIndex, MassTOF , Event_Weight); - } - DataPlots.MassComb->Fill(CutIndex, MassComb, Event_Weight); - } //end of Cut loop -// if(track->pt()>40 && Mass>75)stPlots_FillTree(DataPlots, treeD.eventAuxiliary().run(),treeD.eventAuxiliary().event(), c, track->pt(), dedxSObj.dEdx(), tof ? tof->inverseBeta() : -1); - if (PassNonTrivialSelection) stPlots_FillTree(DataPlots, treeD.eventAuxiliary().run(),treeD.eventAuxiliary().event(), c, track->pt(), dedxSObj.dEdx(), tof ? tof->inverseBeta() : -1, Mass, -1); - } // end of Track Loop - for(unsigned int CutIndex=0;CutIndexFill(CutIndex,Event_Weight); DataPlots.MaxEventMass->Fill(CutIndex,MaxMass[CutIndex],Event_Weight);} } - }// end of Event Loop - delete [] HSCPTk; - delete [] MaxMass; - printf("\n"); - if(DataFileName.size())stPlots_Clear(DataPlots, true); - - - ////////////////////////////////////////////////// BUILD MCTRUTH MASS SPECTRUM - if(MCsample.size())stPlots_Init(HistoFile, MCTrPlots,"MCTr", CutPt.size()); - - for(unsigned int m=0;m FileName; - GetInputFiles(FileName, MCsample[m].Name); - - fwlite::ChainEvent treeM(FileName); - double SampleWeight = GetSampleWeightMC(IntegratedLuminosity,FileName, MCsample[m].XSection, treeM.size(), MCsample[m].MaxEvent); - - printf("Progressing Bar :0%% 20%% 40%% 60%% 80%% 100%%\n"); - printf("Building Mass for %10s :",MCsample[m].Name.c_str()); - TreeStep = treeM.size()/50;if(TreeStep==0)TreeStep=1; - - bool* HSCPTk = new bool[CutPt.size()]; - double* MaxMass = new double[CutPt.size()]; - for(Long64_t ientry=0;ientry0 && ientry>MaxEntry)break; - if(MCsample[m].MaxEvent>0 && ientry>MCsample[m].MaxEvent)break; - if(ientry%TreeStep==0){printf(".");fflush(stdout);} - - if(!hasGoodPtHat(treeM, MCsample[m].MaxPtHat)){continue;} - Event_Weight = SampleWeight * GetPUWeight(treeM, MCsample[m].IsS4PileUp); - - MCTrPlots .TotalE->Fill(0.0,Event_Weight); - MCPlots[m].TotalE->Fill(0.0,Event_Weight); - if(!PassTrigger(treeM) )continue; - MCTrPlots .TotalTE->Fill(0.0,Event_Weight); - MCPlots[m].TotalTE->Fill(0.0,Event_Weight); - - fwlite::Handle hscpCollHandle; - hscpCollHandle.getByLabel(treeM,"HSCParticleProducer"); - if(!hscpCollHandle.isValid()){printf("HSCP Collection NotFound\n");continue;} - const susybsm::HSCParticleCollection& hscpColl = *hscpCollHandle; - - fwlite::Handle dEdxSCollH; - dEdxSCollH.getByLabel(treeM, dEdxS_Label.c_str()); - if(!dEdxSCollH.isValid()){printf("Invalid dEdx Selection collection\n");continue;} - - fwlite::Handle dEdxMCollH; - dEdxMCollH.getByLabel(treeM, dEdxM_Label.c_str()); - if(!dEdxMCollH.isValid()){printf("Invalid dEdx Mass collection\n");continue;} - - fwlite::Handle TOFCollH; - TOFCollH.getByLabel(treeM, "muontiming",TOF_Label.c_str()); - if(!TOFCollH.isValid()){printf("Invalid TOF collection\n");continue;} - - fwlite::Handle TOFDTCollH; - TOFDTCollH.getByLabel(treeM, "muontiming",TOFdt_Label.c_str()); - if(!TOFDTCollH.isValid()){printf("Invalid DT TOF collection\n");continue;} - - fwlite::Handle TOFCSCCollH; - TOFCSCCollH.getByLabel(treeM, "muontiming",TOFcsc_Label.c_str()); - if(!TOFCSCCollH.isValid()){printf("Invalid CSCTOF collection\n");continue;} - - for(unsigned int CutIndex=0;CutIndexget(track.key()); - const DeDxData& dedxMObj = dEdxMCollH->get(track.key()); - const reco::MuonTimeExtra* tof = NULL; - const reco::MuonTimeExtra* dttof = NULL; - const reco::MuonTimeExtra* csctof = NULL; - if(TypeMode==2 && !hscp.muonRef().isNull()){ tof = &TOFCollH->get(hscp.muonRef().key()); dttof = &TOFDTCollH->get(hscp.muonRef().key()); csctof = &TOFCSCCollH->get(hscp.muonRef().key());} - - PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, treeM, &MCPlots[m]); - if(!PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, treeM, &MCTrPlots))continue; - Analysis_FillControlAndPredictionHist(hscp, dedxSObj, dedxMObj, tof); - - double Mass = GetMass(track->p(),dedxMObj.dEdx()); - double MassTOF = -1; if(tof)MassTOF = GetTOFMass(track->p(),tof->inverseBeta()); - double MassComb = Mass;if(tof)MassComb=GetMassFromBeta(track->p(), (GetIBeta(dedxMObj.dEdx()) + (1/tof->inverseBeta()))*0.5 ) ; - - - for(unsigned int CutIndex=0;CutIndexMaxMass[CutIndex]) MaxMass[CutIndex]=Mass; - - MCTrPlots .Mass->Fill(CutIndex , Mass,Event_Weight); - MCPlots[m].Mass->Fill(CutIndex, Mass,Event_Weight); - - if(tof){ - MCTrPlots .MassTOF ->Fill(CutIndex, MassTOF , Event_Weight); - MCPlots[m].MassTOF ->Fill(CutIndex, MassTOF , Event_Weight); - } - MCTrPlots .MassComb->Fill(CutIndex, MassComb, Event_Weight); - MCPlots[m].MassComb->Fill(CutIndex, MassComb, Event_Weight); - } //end of Cut loo - if(track->pt()>35)stPlots_FillTree(MCTrPlots , treeM.eventAuxiliary().run(),treeM.eventAuxiliary().event(), c, track->pt(), dedxSObj.dEdx(), tof ? tof->inverseBeta() : -1, Mass); - if(track->pt()>35)stPlots_FillTree(MCPlots[m], treeM.eventAuxiliary().run(),treeM.eventAuxiliary().event(), c, track->pt(), dedxSObj.dEdx(), tof ? tof->inverseBeta() : -1, Mass); - - } // end of Track Loop - for(unsigned int CutIndex=0;CutIndexFill(CutIndex,Event_Weight);MCPlots[m].HSCPE->Fill(CutIndex,Event_Weight); - MCTrPlots.MaxEventMass->Fill(CutIndex,MaxMass[CutIndex],Event_Weight);MCPlots[m].MaxEventMass->Fill(CutIndex,MaxMass[CutIndex],Event_Weight); - } } - }// end of Event Loop - delete [] HSCPTk; - delete [] MaxMass; - stPlots_Clear(MCPlots[m], true); - printf("\n"); - } - if(MCsample.size())stPlots_Clear(MCTrPlots, true); - - - ////////////////////////////////////////////////// BUILD SIGNAL MASS SPECTRUM - - for(unsigned int s=0;s SignFileName; -// GetInputFiles(SignFileName, signals[s].FileName, period); - GetInputFiles(SignFileName, signals[s].Name, period); - - fwlite::ChainEvent treeS(SignFileName); - - if (period==0) printf("Building Mass for %10s for before RPC change :",signals[s].Name.c_str()); - if (period==1) printf("\nBuilding Mass for %10s for after RPC change :",signals[s].Name.c_str()); - TreeStep = treeS.size()/50;if(TreeStep==0)TreeStep=1; - - double SampleWeight = GetSampleWeight(IntegratedLuminosity,IntegratedLuminosityBeforeTriggerChange,signals[s].XSec,(double)treeS.size(), period); - for(Long64_t ientry=0;ientry0 && ientry>MaxEntry)break; - if(ientry%TreeStep==0){printf(".");fflush(stdout);} - Event_Weight = SampleWeight * GetPUWeight(treeS, signals[s].IsS4PileUp); - - fwlite::Handle< std::vector > genCollHandle; - genCollHandle.getByLabel(treeS, "genParticles"); - if(!genCollHandle.isValid()){printf("GenParticle Collection NotFound\n");continue;} - std::vector genColl = *genCollHandle; - int NChargedHSCP=HowManyChargedHSCP(genColl); - - double HSCPGenBeta1, HSCPGenBeta2; - GetGenHSCPBeta(genColl,HSCPGenBeta1,HSCPGenBeta2,false); - if(HSCPGenBeta1>=0)SignPlots[4*s].Beta_Gen->Fill(HSCPGenBeta1, Event_Weight); if(HSCPGenBeta2>=0)SignPlots[4*s].Beta_Gen->Fill(HSCPGenBeta2, Event_Weight); - GetGenHSCPBeta(genColl,HSCPGenBeta1,HSCPGenBeta2,true); - if(HSCPGenBeta1>=0)SignPlots[4*s].Beta_GenCharged->Fill(HSCPGenBeta1, Event_Weight); if(HSCPGenBeta2>=0)SignPlots[4*s].Beta_GenCharged->Fill(HSCPGenBeta2, Event_Weight); - - SignPlots[4*s] .TotalE ->Fill(0.0,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].TotalE ->Fill(0.0,Event_Weight); - if(!PassTrigger(treeS) )continue; - SignPlots[4*s] .TotalTE->Fill(0.0,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].TotalTE->Fill(0.0,Event_Weight); - - if(HSCPGenBeta1>=0)SignPlots[4*s].Beta_Triggered->Fill(HSCPGenBeta1, Event_Weight); if(HSCPGenBeta2>=0)SignPlots[4*s].Beta_Triggered->Fill(HSCPGenBeta2, Event_Weight); - - fwlite::Handle hscpCollHandle; - hscpCollHandle.getByLabel(treeS,"HSCParticleProducer"); - if(!hscpCollHandle.isValid()){printf("HSCP Collection NotFound\n");continue;} - const susybsm::HSCParticleCollection& hscpColl = *hscpCollHandle; - - fwlite::Handle dEdxSCollH; - dEdxSCollH.getByLabel(treeS, dEdxS_Label.c_str()); - if(!dEdxSCollH.isValid()){printf("Invalid dEdx Selection collection\n");continue;} - - fwlite::Handle dEdxMCollH; - dEdxMCollH.getByLabel(treeS, dEdxM_Label.c_str()); - if(!dEdxMCollH.isValid()){printf("Invalid dEdx Mass collection\n");continue;} - - fwlite::Handle TOFCollH; - TOFCollH.getByLabel(treeS, "muontiming",TOF_Label.c_str()); - if(!TOFCollH.isValid()){printf("Invalid TOF collection\n");continue;} - - fwlite::Handle TOFDTCollH; - TOFDTCollH.getByLabel(treeS, "muontiming",TOFdt_Label.c_str()); - if(!TOFDTCollH.isValid()){printf("Invalid DT TOF collection\n");continue;} - - fwlite::Handle TOFCSCCollH; - TOFCSCCollH.getByLabel(treeS, "muontiming",TOFcsc_Label.c_str()); - if(!TOFCSCCollH.isValid()){printf("Invalid CSC TOF collection\n");continue;} - - for(unsigned int CutIndex=0;CutIndex0.03)continue; - - const DeDxData& dedxSObj = dEdxSCollH->get(track.key()); - const DeDxData& dedxMObj = dEdxMCollH->get(track.key()); - const reco::MuonTimeExtra* tof = NULL; - const reco::MuonTimeExtra* dttof = NULL; - const reco::MuonTimeExtra* csctof = NULL; - if(TypeMode==2 && !hscp.muonRef().isNull()){ tof = &TOFCollH->get(hscp.muonRef().key()); dttof = &TOFDTCollH->get(hscp.muonRef().key()); csctof = &TOFCSCCollH->get(hscp.muonRef().key()); } - - - ///////////// START COMPUTATION OF THE SYSTEMATIC ////////// - bool PRescale = true; - double IRescale = -0.0438; // added to the Ias value - double MRescale = 0.97; - double TRescale = -0.00694; // added to the 1/beta value - - // Systematic on P - if(PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, treeS, NULL, -1, PRescale, 0, 0)){ - double Mass = GetMass(track->p()*PRescale,dedxMObj.dEdx()); - double MassTOF = -1; if(tof)MassTOF = GetTOFMass(track->p()*PRescale,tof->inverseBeta()); - double MassComb = Mass;if(tof)MassComb=GetMassFromBeta(track->p()*PRescale, (GetIBeta(dedxMObj.dEdx()) + (1/tof->inverseBeta()))*0.5 ) ; - - for(unsigned int CutIndex=0;CutIndexMaxMass_SystP[CutIndex]) MaxMass_SystP[CutIndex]=Mass; - SignPlots[4*s ].Mass_SystP->Fill(CutIndex, Mass,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].Mass_SystP->Fill(CutIndex, Mass,Event_Weight); - if(tof){ - SignPlots[4*s ].MassTOF_SystP ->Fill(CutIndex, MassTOF , Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassTOF_SystP ->Fill(CutIndex, MassTOF , Event_Weight); - } - SignPlots[4*s ].MassComb_SystP->Fill(CutIndex, MassComb, Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassComb_SystP->Fill(CutIndex, MassComb, Event_Weight); - } - } - } - - // Systematic on I - if(PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, treeS, NULL, -1, 0, IRescale, 0)){ - double Mass = GetMass(track->p(),dedxMObj.dEdx()); - double MassTOF = -1; if(tof)MassTOF = GetTOFMass(track->p(),tof->inverseBeta()); - double MassComb = Mass;if(tof)MassComb=GetMassFromBeta(track->p(), (GetIBeta(dedxMObj.dEdx()) + (1/tof->inverseBeta()))*0.5 ) ; - - for(unsigned int CutIndex=0;CutIndexMaxMass_SystI[CutIndex]) MaxMass_SystI[CutIndex]=Mass; - SignPlots[4*s ].Mass_SystI->Fill(CutIndex, Mass,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].Mass_SystI->Fill(CutIndex, Mass,Event_Weight); - if(tof){ - SignPlots[4*s ].MassTOF_SystI ->Fill(CutIndex, MassTOF , Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassTOF_SystI ->Fill(CutIndex, MassTOF , Event_Weight); - } - SignPlots[4*s ].MassComb_SystI->Fill(CutIndex, MassComb, Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassComb_SystI->Fill(CutIndex, MassComb, Event_Weight); - } - } - } - - - // Systematic on M - if(PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, treeS, NULL, -1, 0, 0, 0)){ - double Mass = GetMass(track->p(),dedxMObj.dEdx()*MRescale); - double MassTOF = -1; if(tof)MassTOF = GetTOFMass(track->p(),tof->inverseBeta()); - double MassComb = Mass;if(tof)MassComb=GetMassFromBeta(track->p(), (GetIBeta(dedxMObj.dEdx()*MRescale) + (1/tof->inverseBeta()))*0.5 ) ; - - for(unsigned int CutIndex=0;CutIndexMaxMass_SystM[CutIndex]) MaxMass_SystM[CutIndex]=Mass; - SignPlots[4*s ].Mass_SystM->Fill(CutIndex, Mass,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].Mass_SystM->Fill(CutIndex, Mass,Event_Weight); - if(tof){ - SignPlots[4*s ].MassTOF_SystM ->Fill(CutIndex, MassTOF , Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassTOF_SystM ->Fill(CutIndex, MassTOF , Event_Weight); - } - SignPlots[4*s ].MassComb_SystM->Fill(CutIndex, MassComb, Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassComb_SystM->Fill(CutIndex, MassComb, Event_Weight); - } - } - } - - - // Systematic on T - if(PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, treeS, NULL, -1, 0, 0, TRescale)){ - double Mass = GetMass(track->p(),dedxMObj.dEdx()); - double MassTOF = -1; if(tof)MassTOF = GetTOFMass(track->p(),tof->inverseBeta()*TRescale); - double MassComb = Mass;if(tof)MassComb=GetMassFromBeta(track->p(), (GetIBeta(dedxMObj.dEdx()) + ((1/tof->inverseBeta())*TRescale ))*0.5 ) ; - - for(unsigned int CutIndex=0;CutIndexMaxMass_SystT[CutIndex]) MaxMass_SystT[CutIndex]=Mass; - SignPlots[4*s ].Mass_SystT->Fill(CutIndex, Mass,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].Mass_SystT->Fill(CutIndex, Mass,Event_Weight); - if(tof){ - SignPlots[4*s ].MassTOF_SystT ->Fill(CutIndex, MassTOF , Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassTOF_SystT ->Fill(CutIndex, MassTOF , Event_Weight); - } - SignPlots[4*s ].MassComb_SystT->Fill(CutIndex, MassComb, Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassComb_SystT->Fill(CutIndex, MassComb, Event_Weight); - } - } - } - - ///////////// END COMPUTATION OF THE SYSTEMATIC ////////// - - - - PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, treeS, &SignPlots[4*s+NChargedHSCP+1], genColl[ClosestGen].p()/genColl[ClosestGen].energy()); - if(!PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, treeS, &SignPlots[4*s ], genColl[ClosestGen].p()/genColl[ClosestGen].energy()))continue; - - double Mass = GetMass(track->p(),dedxMObj.dEdx()); - double MassTOF = -1; if(tof)MassTOF = GetTOFMass(track->p(),tof->inverseBeta()); - double MassComb = Mass;if(tof)MassComb=GetMassFromBeta(track->p(), (GetIBeta(dedxMObj.dEdx()) + (1/tof->inverseBeta()))*0.5 ) ; - - - for(unsigned int CutIndex=0;CutIndexMaxMass[CutIndex]) MaxMass[CutIndex]=Mass; - - SignPlots[4*s ].Mass->Fill(CutIndex, Mass,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].Mass->Fill(CutIndex, Mass,Event_Weight); - if(tof){ - SignPlots[4*s ].MassTOF ->Fill(CutIndex, MassTOF , Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassTOF ->Fill(CutIndex, MassTOF , Event_Weight); - } - SignPlots[4*s ].MassComb->Fill(CutIndex, MassComb, Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MassComb->Fill(CutIndex, MassComb, Event_Weight); - } //end of Cut loop - if(track->pt()>35 && Mass>35)stPlots_FillTree(SignPlots[4*s ] , treeS.eventAuxiliary().run(),treeS.eventAuxiliary().event(), c, track->pt(), dedxSObj.dEdx(), tof ? tof->inverseBeta() : -1, Mass); - } // end of Track Loop - for(unsigned int CutIndex=0;CutIndexFill(CutIndex,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].HSCPE ->Fill(CutIndex,Event_Weight); - SignPlots[4*s ].MaxEventMass ->Fill(CutIndex,MaxMass[CutIndex],Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MaxEventMass ->Fill(CutIndex,MaxMass[CutIndex],Event_Weight); } } - for(unsigned int CutIndex=0;CutIndexFill(CutIndex,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].HSCPE_SystP ->Fill(CutIndex,Event_Weight); - SignPlots[4*s ].MaxEventMass_SystP->Fill(CutIndex,MaxMass_SystP[CutIndex],Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MaxEventMass_SystP->Fill(CutIndex,MaxMass_SystP[CutIndex],Event_Weight); } } - for(unsigned int CutIndex=0;CutIndexFill(CutIndex,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].HSCPE_SystI ->Fill(CutIndex,Event_Weight); - SignPlots[4*s ].MaxEventMass_SystI->Fill(CutIndex,MaxMass_SystI[CutIndex],Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MaxEventMass_SystI->Fill(CutIndex,MaxMass_SystI[CutIndex],Event_Weight); } } - for(unsigned int CutIndex=0;CutIndexFill(CutIndex,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].HSCPE_SystM ->Fill(CutIndex,Event_Weight); - SignPlots[4*s ].MaxEventMass_SystM->Fill(CutIndex,MaxMass_SystM[CutIndex],Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MaxEventMass_SystM->Fill(CutIndex,MaxMass_SystM[CutIndex],Event_Weight); } } - for(unsigned int CutIndex=0;CutIndexFill(CutIndex,Event_Weight); - SignPlots[4*s+NChargedHSCP+1].HSCPE_SystT ->Fill(CutIndex,Event_Weight); - SignPlots[4*s ].MaxEventMass_SystT->Fill(CutIndex,MaxMass_SystT[CutIndex],Event_Weight); - SignPlots[4*s+NChargedHSCP+1].MaxEventMass_SystT->Fill(CutIndex,MaxMass_SystT[CutIndex],Event_Weight); } } - - }// end of Event Loop - } - printf("\n"); - delete [] HSCPTk; - delete [] HSCPTk_SystP; - delete [] HSCPTk_SystI; - delete [] HSCPTk_SystT; - delete [] HSCPTk_SystM; - delete [] MaxMass; - delete [] MaxMass_SystP; - delete [] MaxMass_SystI; - delete [] MaxMass_SystT; - delete [] MaxMass_SystM; - - - stPlots_Clear(SignPlots[4*s+0], true); - stPlots_Clear(SignPlots[4*s+1], true); - stPlots_Clear(SignPlots[4*s+2], true); - stPlots_Clear(SignPlots[4*s+3], true); - }// end of signal Type loop -} - -TH1D* GetPDF(TH1D* pdf){ - char NewName[2048]; - sprintf(NewName,"%s_PDF", pdf->GetName()); - - TH1D* PDF = new TH1D(NewName,NewName,pdf->GetNbinsX(),pdf->GetXaxis()->GetXmin(),pdf->GetXaxis()->GetXmax()); - for(int i=0;i<=pdf->GetNbinsX();i++){ - if(i==0){ - PDF->SetBinContent(i, pdf->GetBinContent(i) ); - }else{ - PDF->SetBinContent(i, pdf->GetBinContent(i)+PDF->GetBinContent(i-1) ); - } - } - PDF->Scale(1.0/PDF->GetBinContent(PDF->GetNbinsX())); - return PDF; -} - -double GetRandValue(TH1D* PDF){ - int randNumber = rand(); - double uniform = randNumber / (double)RAND_MAX; - for(int i=1;i<=PDF->GetNbinsX();i++){ - if(PDF->GetBinContent(i)>uniform){ - return PDF->GetXaxis()->GetBinUpEdge(i); -// return PDF->GetXaxis()->GetBinUpEdge(i-1)+(rand()/(double)RAND_MAX)*PDF->GetXaxis()->GetBinWidth(i-1); - } - } - return PDF->GetXaxis()->GetBinLowEdge(PDF->GetNbinsX()); -} - -void Analysis_Step4(char* SavePath) -{ - if(! (DataFileName.size() || MCsample.size()))return; - printf("Step4: Doing final computations\n"); - - ////////////////////////////////////////////////// MAKING THE PREDICTION - for(unsigned int CutIndex=0;CutIndexGetBinContent(CutIndex+1); - const double& B=H_B->GetBinContent(CutIndex+1); - const double& C=H_C->GetBinContent(CutIndex+1); - const double& D=H_D->GetBinContent(CutIndex+1); - const double& E=H_E->GetBinContent(CutIndex+1); - const double& F=H_F->GetBinContent(CutIndex+1); - const double& G=H_G->GetBinContent(CutIndex+1); - const double& H=H_H->GetBinContent(CutIndex+1); - double P=0; - double Perr=0; - - printf("%4i --> Pt>%7.2f I>%6.2f TOF>%+5.2f --> A=%6.2E B=%6.E C=%6.2E D=%6.2E E=%6.2E F=%6.2E G=%6.2E H=%6.2E\n",CutIndex,CutPt[CutIndex], CutI[CutIndex], CutTOF[CutIndex],A, B, C, D, E, F, G, H ); - - if(E>0){ - P = (A*F*G)/(E*E); - Perr = sqrt( ((pow(F*G,2)* A + pow(A*G,2)*F + pow(A*F,2)*G)/pow(E,4)) + (pow((2*A*F*G)/pow(E,3),2)*E)); - }else if(A>0){ - P = ((C*B)/A); - Perr = sqrt( (pow(B/A,2)*C) + (pow(C/A,2)*B) + (pow((B*(C)/(A*A)),2)*A) ); - } - - H_P->SetBinContent(CutIndex+1,P); - H_P->SetBinError (CutIndex+1,Perr); - if(P==0 || isnan(P))continue; //Skip this CutIndex --> No Prediction possible - - printf("%4i --> Pt>%7.2f I>%6.2f TOF>%+5.2f --> D=%6.2E vs Pred = %6.2E +- %6.2E (%6.2E%%)\n", CutIndex,CutPt[CutIndex], CutI[CutIndex], CutTOF[CutIndex],D, P, Perr, 100.0*Perr/P ); - - TH1D* Pred_EtaB_Proj = Pred_EtaB->ProjectionY("ProjEtaB",CutIndex+1,CutIndex+1); // Pred_EtaB_Proj->Scale(1.0/Pred_EtaB_Proj->Integral()); - TH1D* Pred_EtaS_Proj = Pred_EtaS->ProjectionY("ProjEtaS",CutIndex+1,CutIndex+1); // Pred_EtaS_Proj->Scale(1.0/Pred_EtaS_Proj->Integral()); - TH1D* Pred_EtaS2_Proj = Pred_EtaS2->ProjectionY("ProjEtaS2",CutIndex+1,CutIndex+1);// Pred_EtaS2_Proj->Scale(1.0/Pred_EtaS2_Proj->Integral()); - TH1D* Pred_EtaB_Proj_PE = (TH1D*)Pred_EtaB_Proj->Clone("Pred_EtaB_Proj_PE"); Pred_EtaB_Proj_PE->Reset(); - TH1D* Pred_EtaS_Proj_PE = (TH1D*)Pred_EtaS_Proj->Clone("Pred_EtaS_Proj_PE"); Pred_EtaS_Proj_PE->Reset(); - TH1D* Pred_EtaS2_Proj_PE = (TH1D*)Pred_EtaS2_Proj->Clone("Pred_EtaS2_Proj_PE"); Pred_EtaS2_Proj_PE->Reset(); - - Pred_EtaP->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); - TH2D* Pred_EtaPWeighted = (TH2D*)Pred_EtaP->Project3D("zy"); - TH2D* Pred_EtaPWeighted_PE = (TH2D*)Pred_EtaPWeighted->Clone("Pred_EtaPWeightedPE"); Pred_EtaPWeighted_PE->Reset(); - -/* - for(int x=0;x<=Pred_EtaPWeighted->GetXaxis()->GetNbins();x++){ - double WeightP = 0.0; - if(Pred_EtaB_Proj->GetBinContent(x)>0){ - WeightP = Pred_EtaS_Proj->GetBinContent(x)/Pred_EtaB_Proj->GetBinContent(x); - if(TypeMode==2)WeightP*= Pred_EtaS2_Proj->GetBinContent(x)/Pred_EtaB_Proj->GetBinContent(x); - } - - for(int y=0;y<=Pred_EtaPWeighted->GetYaxis()->GetNbins();y++){ - Pred_EtaPWeighted->SetBinContent(x,y,Pred_EtaPWeighted->GetBinContent(x,y)*WeightP); - } - } -*/ -// TH1D* Pred_P_Proj = Pred_EtaPWeighted->ProjectionY("ProjP"); - TH1D* Pred_I_Proj = Pred_I->ProjectionY("ProjI",CutIndex+1,CutIndex+1); - TH1D* Pred_T_Proj = Pred_TOF->ProjectionY("ProjT",CutIndex+1,CutIndex+1); - TH1D* Pred_I_ProjPE = (TH1D*) Pred_I_Proj->Clone("Pred_I_ProjPE"); Pred_I_ProjPE->Reset(); - TH1D* Pred_T_ProjPE = (TH1D*) Pred_T_Proj->Clone("Pred_T_ProjPE"); Pred_T_ProjPE->Reset(); - - -// TH1D* Pred_P_PDF = GetPDF(Pred_P_Proj); -// TH1D* Pred_I_PDF = GetPDF(Pred_I_Proj); -// TH1D* Pred_T_PDF = GetPDF(Pred_T_Proj); - - TH2D* Pred_Prof_Mass = new TH2D("Pred_Prof_Mass" ,"Pred_Prof_Mass" ,MassNBins,0,MassHistoUpperBound, 100, 0, 100); - TH2D* Pred_Prof_MassTOF = new TH2D("Pred_Prof_MassTOF" ,"Pred_Prof_MassTOF" ,MassNBins,0,MassHistoUpperBound, 100, 0, 100); - TH2D* Pred_Prof_MassComb = new TH2D("Pred_Prof_MassComb","Pred_Prof_MassComb",MassNBins,0,MassHistoUpperBound, 100, 0, 100); - - - for(int x=0;xGetNbinsY()+1;x++){ - for(unsigned int pe=0;pe<100;pe++){ - Pred_Prof_Mass ->SetBinContent(x, pe, 0); - Pred_Prof_MassTOF ->SetBinContent(x, pe, 0); - Pred_Prof_MassComb->SetBinContent(x, pe, 0); - } - } - - - - TRandom3* RNG = new TRandom3(); - printf("Predicting (%4i / %4i) :",CutIndex+1,(int)CutPt.size()); - int TreeStep = 100/50;if(TreeStep==0)TreeStep=1; - for(unsigned int pe=0;pe<100;pe++){ - if(pe%TreeStep==0){printf(".");fflush(stdout);} - - TH1D* tmpH_Mass = new TH1D("tmpH_Mass" ,"tmpH_Mass" ,MassNBins,0,MassHistoUpperBound); - TH1D* tmpH_MassTOF = new TH1D("tmpH_MassTOF" ,"tmpH_MassTOF" ,MassNBins,0,MassHistoUpperBound); - TH1D* tmpH_MassComb = new TH1D("tmpH_MassComb","tmpH_MassComb",MassNBins,0,MassHistoUpperBound); - - - double PE_A=RNG->Poisson(A); - double PE_B=RNG->Poisson(B); - double PE_C=RNG->Poisson(C); - //double PE_D=RNG->Poisson(D); - double PE_E=RNG->Poisson(E); - double PE_F=RNG->Poisson(F); - double PE_G=RNG->Poisson(G); - //double PE_H=RNG->Poisson(H); - double PE_P = 0; - - if(E>0){ - PE_P = (PE_E>0 ? (PE_A*PE_F*PE_G)/(PE_E*PE_E) : 0); - }else if(A>0){ - PE_P = (PE_A>0 ? ((PE_C*PE_B)/PE_A) : 0); - } - - for(int i=0;iGetNbinsX()+1;i++){Pred_EtaB_Proj_PE->SetBinContent(i,RNG->Poisson(Pred_EtaB_Proj->GetBinContent(i)) );} Pred_EtaB_Proj_PE->Scale(1.0/Pred_EtaB_Proj_PE->Integral()); - for(int i=0;iGetNbinsX()+1;i++){Pred_EtaS_Proj_PE->SetBinContent(i,RNG->Poisson(Pred_EtaS_Proj->GetBinContent(i)) );} Pred_EtaS_Proj_PE->Scale(1.0/Pred_EtaS_Proj_PE->Integral()); - for(int i=0;iGetNbinsX()+1;i++){Pred_EtaS2_Proj_PE->SetBinContent(i,RNG->Poisson(Pred_EtaS2_Proj->GetBinContent(i)) );} Pred_EtaS2_Proj_PE->Scale(1.0/Pred_EtaS2_Proj_PE->Integral()); - - - for(int i=0;iGetNbinsX()+1;i++){ - for(int j=0;jGetNbinsY()+1;j++){ - Pred_EtaPWeighted_PE->SetBinContent(i,j,RNG->Poisson(Pred_EtaPWeighted->GetBinContent(i,j))); - }} - - double WeightP = 0.0; - for(int x=0;x<=Pred_EtaPWeighted_PE->GetXaxis()->GetNbins();x++){ - WeightP = 0.0; - if(Pred_EtaB_Proj_PE->GetBinContent(x)>0){ - WeightP = Pred_EtaS_Proj_PE ->GetBinContent(x)/Pred_EtaB_Proj_PE->GetBinContent(x); - if(TypeMode==2)WeightP*= Pred_EtaS2_Proj_PE->GetBinContent(x)/Pred_EtaB_Proj_PE->GetBinContent(x); - } - - for(int y=0;y<=Pred_EtaPWeighted_PE->GetYaxis()->GetNbins();y++){ - Pred_EtaPWeighted_PE->SetBinContent(x,y,Pred_EtaPWeighted_PE->GetBinContent(x,y)*WeightP); - } - } - TH1D* Pred_P_ProjPE = Pred_EtaPWeighted_PE->ProjectionY("Pred_P_ProjPE"); Pred_P_ProjPE->Scale(1.0/Pred_P_ProjPE->Integral()); - for(int i=0;iGetNbinsX()+1;i++){Pred_I_ProjPE->SetBinContent(i,RNG->Poisson(Pred_I_Proj->GetBinContent(i)) );} Pred_I_ProjPE->Scale(1.0/Pred_I_ProjPE->Integral()); - for(int i=0;iGetNbinsX()+1;i++){Pred_T_ProjPE->SetBinContent(i,RNG->Poisson(Pred_T_Proj->GetBinContent(i)) );} Pred_T_ProjPE->Scale(1.0/Pred_T_ProjPE->Integral()); - - double Proba, MI, MComb, MT=0, ProbaT=0; - for(int x=0;xGetNbinsX()+1;x++){ if(Pred_P_ProjPE->GetBinContent(x)<=0.0){continue;} const double& p = Pred_P_ProjPE->GetBinCenter(x); - for(int y=0;yGetNbinsX()+1;y++){ if(Pred_I_ProjPE->GetBinContent(y)<=0.0){continue;} const double& i = Pred_I_ProjPE->GetBinCenter(y); - Proba = Pred_P_ProjPE->GetBinContent(x) * Pred_I_ProjPE->GetBinContent(y); if(Proba<=0 || isnan(Proba))continue; - MI = GetMass(p,i); - MComb = MI; - tmpH_Mass->Fill(MI,Proba); - -// if(TypeMode==2){ -// for(int z=0;zGetNbinsX()+1;z++){ if(Pred_T_ProjPE->GetBinContent(z)<=0.0){continue;} const double& t = Pred_T_ProjPE->GetBinCenter(z); -// ProbaT = Proba * Pred_T_ProjPE->GetBinContent(z); if(ProbaT<=0 || isnan(ProbaT))continue; -// MT = GetTOFMass(p,t); -// tmpH_MassTOF->Fill(MT,ProbaT); -// MComb = GetMassFromBeta(p, (GetIBeta(i) + (1/t))*0.5 ); -// tmpH_MassComb->Fill(MComb,ProbaT); -// }}else{ - tmpH_MassComb->Fill(MComb,Proba); -// } - }} - -// printf("PE_P = %f\n",PE_P); - - for(int x=0;xGetNbinsX()+1;x++){ - //const double& M = tmpH_Mass->GetXaxis()->GetBinCenter(x); - Pred_Prof_Mass ->SetBinContent(x, pe, tmpH_Mass ->GetBinContent(x) * PE_P); - Pred_Prof_MassTOF ->SetBinContent(x, pe, tmpH_MassTOF ->GetBinContent(x) * PE_P); - Pred_Prof_MassComb->SetBinContent(x, pe, tmpH_MassComb->GetBinContent(x) * PE_P); - if(isnan(tmpH_Mass ->GetBinContent(x) * PE_P)){printf("%f x %f\n",tmpH_Mass ->GetBinContent(x),PE_P); fflush(stdout);exit(0);} - } - - delete Pred_P_ProjPE; - delete tmpH_Mass; - delete tmpH_MassTOF; - delete tmpH_MassComb; - }printf("\n"); - - for(int x=0;xGetNbinsY()+1;x++){ -// Pred_Mass ->SetBinContent(CutIndex+1,x,Pred_Prof_Mass ->GetBinContent(x)); Pred_Mass ->SetBinError(CutIndex+1,x,sqrt(pow(Pred_Prof_Mass ->GetBinError(x),2) + Pred_Prof_Mass ->GetBinContent(x)*(Perr/P))); -// Pred_MassTOF ->SetBinContent(CutIndex+1,x,Pred_Prof_MassTOF ->GetBinContent(x)); Pred_MassTOF ->SetBinError(CutIndex+1,x,sqrt(pow(Pred_Prof_MassTOF ->GetBinError(x),2) + Pred_Prof_MassTOF ->GetBinContent(x)*(Perr/P))); -// Pred_MassComb->SetBinContent(CutIndex+1,x,Pred_Prof_MassComb->GetBinContent(x)); Pred_MassComb ->SetBinError(CutIndex+1,x,sqrt(pow(Pred_Prof_MassComb->GetBinError(x),2) + Pred_Prof_MassComb->GetBinContent(x)*(Perr/P))); - - double Mean=0, MeanTOF=0, MeanComb=0; - for(unsigned int pe=0;pe<100;pe++){ - //if(CutIndex==4){printf("Bin=%4i pe=%3i --> BinCOntent=%f\n",x,pe,Pred_Prof_Mass ->GetBinContent(x, pe));} - Mean += Pred_Prof_Mass ->GetBinContent(x, pe); - MeanTOF += Pred_Prof_MassTOF ->GetBinContent(x, pe); - MeanComb += Pred_Prof_MassComb->GetBinContent(x, pe); - }Mean/=100.0; MeanTOF/=100.0; MeanComb/=100.0; - - //if(CutIndex==4){printf("MEAN = %f\n",Mean);} - - - double Err=0, ErrTOF=0, ErrComb=0; - for(unsigned int pe=0;pe<100;pe++){ - //if(CutIndex==4){printf("Bin=%4i pe=%3i --> DeltaM=%f\n",x,pe,sqrt(pow(Mean - Pred_Prof_Mass ->GetBinContent(x, pe),2)));} - Err += pow(Mean - Pred_Prof_Mass ->GetBinContent(x, pe),2); - ErrTOF += pow(MeanTOF - Pred_Prof_MassTOF ->GetBinContent(x, pe),2); - ErrComb += pow(MeanComb - Pred_Prof_MassComb->GetBinContent(x, pe),2); - }Err=sqrt(Err/99.0); ErrTOF=sqrt(ErrTOF/99.0); ErrComb=sqrt(ErrComb/99.0); - //if(CutIndex==4){printf("ERROR = %f\n",Err);} - - - Pred_Mass ->SetBinContent(CutIndex+1,x,Mean ); Pred_Mass ->SetBinError(CutIndex+1,x,Err ); - Pred_MassTOF ->SetBinContent(CutIndex+1,x,MeanTOF ); Pred_MassTOF ->SetBinError(CutIndex+1,x,ErrTOF ); - Pred_MassComb->SetBinContent(CutIndex+1,x,MeanComb); Pred_MassComb ->SetBinError(CutIndex+1,x,ErrComb); - } -// printf("MassInt %f\n",Pred_Prof_Mass->Integral()); - - - delete Pred_EtaB_Proj_PE; - delete Pred_EtaS_Proj_PE; - delete Pred_EtaS2_Proj_PE; - - delete Pred_Prof_Mass; - delete Pred_Prof_MassTOF; - delete Pred_Prof_MassComb; - delete Pred_EtaPWeighted_PE; - delete Pred_I_ProjPE; - delete Pred_T_ProjPE; - -// delete Pred_P_PDF; -// delete Pred_I_PDF; -// delete Pred_T_PDF; -// delete Pred_P_Proj; - delete Pred_I_Proj; - delete Pred_T_Proj; - delete Pred_EtaB_Proj; - delete Pred_EtaS_Proj; - delete Pred_EtaS2_Proj; - delete Pred_EtaPWeighted; - } - - - ////////////////////////////////////////////////// DUMP USEFUL INFORMATION - if(DataFileName.size()>0 || MCsample.size()){ //Dump info only if we are looking at some datasamples. - char Buffer[2048]; - if(DataFileName.size()>0){sprintf(Buffer,"%s/Info.txt",SavePath); - }else{ sprintf(Buffer,"%s/Info_MC.txt",SavePath);} - FILE* pFile = fopen(Buffer,"w"); - fprintf(pFile,"Selection = %s\n",dEdxS_Label.c_str()); - fprintf(pFile,"Mass = %s\n",dEdxM_Label.c_str()); - fprintf(pFile,"TOF = %s\n",TOF_Label.c_str()); - fprintf(pFile,"|eta| < %f\n",GlobalMaxEta); - fprintf(pFile,"pT_err/pT < %f\n",GlobalMaxPterr); - fprintf(pFile,"#Hit > %02i\n",GlobalMinNOH); - fprintf(pFile,"#dEdx Hit > %02i\n",GlobalMinNOM); - fprintf(pFile,"nDoF > %02i\n",GlobalMinNOH); - fprintf(pFile,"Chi2/ndf < %6.2f\n",GlobalMaxChi2); - fprintf(pFile,"SumPt < %6.2f\n",GlobalMaxTIsol); - fprintf(pFile,"E/p < %6.2f\n",GlobalMaxEIsol); - - for(unsigned int CutIndex=0;CutIndexGetBinContent(CutIndex+1); - const double& B=H_B->GetBinContent(CutIndex+1); - const double& C=H_C->GetBinContent(CutIndex+1); - const double& D=H_D->GetBinContent(CutIndex+1); - const double& E=H_E->GetBinContent(CutIndex+1); - const double& F=H_F->GetBinContent(CutIndex+1); - const double& G=H_G->GetBinContent(CutIndex+1); - const double& H=H_H->GetBinContent(CutIndex+1); - - fprintf(pFile ,"CutIndex=%4i --> (Pt>%6.2f I>%6.3f TOF>%6.3f) Ndata=%+6.2E NPred=%6.3E+-%6.3E <--> A=%6.2E B=%6.E C=%6.2E D=%6.2E E=%6.2E F=%6.2E G=%6.2E H=%6.2E\n",CutIndex,HCuts_Pt ->GetBinContent(CutIndex+1), HCuts_I ->GetBinContent(CutIndex+1), HCuts_TOF->GetBinContent(CutIndex+1), D,H_P->GetBinContent(CutIndex+1),H_P->GetBinError(CutIndex+1) ,A, B, C, D, E, F, G, H); - } - fprintf(pFile,"--------------------\n"); - fclose(pFile); - } - ////////////////////////////////////////////////// CREATE EFFICIENCY FILE - - fflush(stdout); -} - - -void InitHistos(){ - for(unsigned int m=0;mcd(); - - HCuts_Pt = new TH1D("HCuts_Pt" ,"HCuts_Pt" ,CutPt.size(),0,CutPt.size()); - HCuts_I = new TH1D("HCuts_I" ,"HCuts_I" ,CutPt.size(),0,CutPt.size()); - HCuts_TOF = new TH1D("HCuts_TOF","HCuts_TOF",CutPt.size(),0,CutPt.size()); - for(unsigned int i=0;iFill(i,CutPt[i]); HCuts_I->Fill(i,CutI[i]); HCuts_TOF->Fill(i,CutTOF[i]); } - - if(DataFileName.size() || MCsample.size()){ - H_A = new TH1D("H_A" ,"H_A" ,CutPt.size(),0,CutPt.size()); - H_B = new TH1D("H_B" ,"H_B" ,CutPt.size(),0,CutPt.size()); - H_C = new TH1D("H_C" ,"H_C" ,CutPt.size(),0,CutPt.size()); - H_D = new TH1D("H_D" ,"H_D" ,CutPt.size(),0,CutPt.size()); - H_E = new TH1D("H_E" ,"H_E" ,CutPt.size(),0,CutPt.size()); - H_F = new TH1D("H_F" ,"H_F" ,CutPt.size(),0,CutPt.size()); - H_G = new TH1D("H_G" ,"H_G" ,CutPt.size(),0,CutPt.size()); - H_H = new TH1D("H_H" ,"H_H" ,CutPt.size(),0,CutPt.size()); - H_P = new TH1D("H_P" ,"H_P" ,CutPt.size(),0,CutPt.size()); - - CtrlPt_S1_Is = new TH1D("CtrlPt_S1_Is" ,"CtrlPt_S1_Is" ,200,0,dEdxS_UpLim); CtrlPt_S1_Is ->Sumw2(); - CtrlPt_S1_Im = new TH1D("CtrlPt_S1_Im" ,"CtrlPt_S1_Im" ,200,0,dEdxM_UpLim); CtrlPt_S1_Im ->Sumw2(); - CtrlPt_S1_TOF = new TH1D("CtrlPt_S1_TOF","CtrlPt_S1_TOF",200,0,5); CtrlPt_S1_TOF->Sumw2(); - CtrlPt_S2_Is = new TH1D("CtrlPt_S2_Is" ,"CtrlPt_S2_Is" ,200,0,dEdxS_UpLim); CtrlPt_S2_Is ->Sumw2(); - CtrlPt_S2_Im = new TH1D("CtrlPt_S2_Im" ,"CtrlPt_S2_Im" ,200,0,dEdxM_UpLim); CtrlPt_S2_Im ->Sumw2(); - CtrlPt_S2_TOF = new TH1D("CtrlPt_S2_TOF","CtrlPt_S2_TOF",200,0,5); CtrlPt_S2_TOF->Sumw2(); - CtrlPt_S3_Is = new TH1D("CtrlPt_S3_Is" ,"CtrlPt_S3_Is" ,200,0,dEdxS_UpLim); CtrlPt_S3_Is ->Sumw2(); - CtrlPt_S3_Im = new TH1D("CtrlPt_S3_Im" ,"CtrlPt_S3_Im" ,200,0,dEdxM_UpLim); CtrlPt_S3_Im ->Sumw2(); - CtrlPt_S3_TOF = new TH1D("CtrlPt_S3_TOF","CtrlPt_S3_TOF",200,0,5); CtrlPt_S3_TOF->Sumw2(); - CtrlPt_S4_Is = new TH1D("CtrlPt_S4_Is" ,"CtrlPt_S4_Is" ,200,0,dEdxS_UpLim); CtrlPt_S4_Is ->Sumw2(); - CtrlPt_S4_Im = new TH1D("CtrlPt_S4_Im" ,"CtrlPt_S4_Im" ,200,0,dEdxM_UpLim); CtrlPt_S4_Im ->Sumw2(); - CtrlPt_S4_TOF = new TH1D("CtrlPt_S4_TOF","CtrlPt_S4_TOF",200,0,5); CtrlPt_S4_TOF->Sumw2(); - - CtrlIs_S1_TOF = new TH1D("CtrlIs_S1_TOF","CtrlIs_S1_TOF",200,0,5); CtrlIs_S1_TOF->Sumw2(); - CtrlIs_S2_TOF = new TH1D("CtrlIs_S2_TOF","CtrlIs_S2_TOF",200,0,5); CtrlIs_S2_TOF->Sumw2(); - CtrlIs_S3_TOF = new TH1D("CtrlIs_S3_TOF","CtrlIs_S3_TOF",200,0,5); CtrlIs_S3_TOF->Sumw2(); - CtrlIs_S4_TOF = new TH1D("CtrlIs_S4_TOF","CtrlIs_S4_TOF",200,0,5); CtrlIs_S4_TOF->Sumw2(); - - char Name [1024]; - sprintf(Name,"Is"); - Hist_Is = new TH1D(Name,Name, 200,0,dEdxS_UpLim); - Hist_Is->Sumw2(); - - sprintf(Name,"Pt"); - Hist_Pt = new TH1D(Name,Name,200,0,PtHistoUpperBound); - Hist_Pt->Sumw2(); - - sprintf(Name,"TOF"); - Hist_TOF = new TH1D(Name,Name,200,-10,20); - Hist_TOF->Sumw2(); - - sprintf(Name,"Pred_Mass"); - Pred_Mass = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(),MassNBins,0,MassHistoUpperBound); - Pred_Mass->Sumw2(); - - sprintf(Name,"Pred_MassTOF"); - Pred_MassTOF = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(), MassNBins,0,MassHistoUpperBound); - Pred_MassTOF->Sumw2(); - - sprintf(Name,"Pred_MassComb"); - Pred_MassComb = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(),MassNBins,0,MassHistoUpperBound); - Pred_MassComb->Sumw2(); - - sprintf(Name,"Pred_I"); - Pred_I = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(), 200,GlobalMinIm,dEdxM_UpLim); - Pred_I->Sumw2(); - - sprintf(Name,"Pred_EtaB"); - Pred_EtaB = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(), 50,-3,3); - Pred_EtaB->Sumw2(); - - sprintf(Name,"Pred_EtaS"); - Pred_EtaS = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(), 50,-3,3); - Pred_EtaS->Sumw2(); - - sprintf(Name,"Pred_EtaS2"); - Pred_EtaS2 = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(), 50,-3,3); - Pred_EtaS2->Sumw2(); - - - sprintf(Name,"Pred_EtaP"); - Pred_EtaP = new TH3D(Name,Name,CutPt.size(),0,CutPt.size(), 50, -3, 3, 200,GlobalMinPt,PtHistoUpperBound); - Pred_EtaP->Sumw2(); - - sprintf(Name,"Pred_TOF"); - Pred_TOF = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(), 200,GlobalMinTOF,5); - Pred_TOF->Sumw2(); - - - sprintf(Name,"RegionD_I"); - RegionD_I = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(), 200,GlobalMinIm,dEdxM_UpLim); - RegionD_I->Sumw2(); - - sprintf(Name,"RegionD_P"); - RegionD_P = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(), 200,GlobalMinPt,PtHistoUpperBound); - RegionD_P->Sumw2(); - - sprintf(Name,"RegionD_TOF"); - RegionD_TOF = new TH2D(Name,Name,CutPt.size(),0,CutPt.size(), 200,GlobalMinTOF,5); - RegionD_TOF->Sumw2(); - } -} - - -double DistToHSCP (const susybsm::HSCParticle& hscp, const std::vector& genColl, int& IndexOfClosest){ - reco::TrackRef track = hscp.trackRef(); if(track.isNull())return false; - - double RMin = 9999; IndexOfClosest=-1; - for(unsigned int g=0;geta(), track->phi(), genColl[g].eta(), genColl[g].phi()); - if(dR=IntegratedLuminosityInPbBeforeTriggerChange && IntegratedLuminosityInPb>0){ - double NMCEvents = MCEvents; - if(MaxEntry>0)NMCEvents=std::min(MCEvents,(double)MaxEntry); - if (period==0)Weight = (CrossSection * IntegratedLuminosityInPbBeforeTriggerChange) / NMCEvents; - else if (period==1)Weight = (CrossSection * (IntegratedLuminosityInPb-IntegratedLuminosityInPbBeforeTriggerChange)) / NMCEvents; - } - return Weight; -} - - -double GetSampleWeightMC(const double& IntegratedLuminosityInPb, const std::vector fileNames, const double& XSection, const double& SampleSize, double MaxEvent){ - double Weight = 1.0; - unsigned long InitNumberOfEvents = GetInitialNumberOfMCEvent(fileNames); - double SampleEquivalentLumi = InitNumberOfEvents / XSection; - if(MaxEvent<0)MaxEvent=SampleSize; - printf("GetSampleWeight MC: IntLumi = %6.2E SampleLumi = %6.2E --> EventWeight = %6.2E --> ",IntegratedLuminosityInPb,SampleEquivalentLumi, IntegratedLuminosityInPb/SampleEquivalentLumi); -// printf("Sample NEvent = %6.2E SampleEventUsed = %6.2E --> Weight Rescale = %6.2E\n",SampleSize, MaxEvent, SampleSize/MaxEvent); - Weight = (IntegratedLuminosityInPb/SampleEquivalentLumi) * (SampleSize/MaxEvent); - printf("FinalWeight = %6.2f\n",Weight); - return Weight; -} - -double GetPUWeight(const fwlite::ChainEvent& ev, const bool& Iss4pileup){ - //get pile up weight for this event - fwlite::Handle > PupInfo; - PupInfo.getByLabel(ev, "addPileupInfo"); - if(!PupInfo.isValid()){printf("PileupSummaryInfo Collection NotFound\n");return 1.0;} - double PUWeight_thisevent=1; - std::vector::const_iterator PVI; - int npv = -1; - if(Iss4pileup){ - float sum_nvtx = 0; - for(PVI = PupInfo->begin(); PVI != PupInfo->end(); ++PVI) { - npv = PVI->getPU_NumInteractions(); - sum_nvtx += float(npv); - } - float ave_nvtx = sum_nvtx/3.; - PUWeight_thisevent = LumiWeightsMC_.weight3BX( ave_nvtx ); - }else{ - for(PVI = PupInfo->begin(); PVI != PupInfo->end(); ++PVI) { - int BX = PVI->getBunchCrossing(); - if(BX == 0) { - npv = PVI->getPU_NumInteractions(); - continue; - } - } - PUWeight_thisevent = LumiWeightsMC_.weight( npv ); - } - return PUWeight_thisevent; -} - - -int HowManyChargedHSCP (const std::vector& genColl){ - int toReturn = 0; - for(unsigned int g=0;g& genColl, double& beta1, double& beta2, bool onlyCharged){ - beta1=-1; beta2=-1; - for(unsigned int g=0;g& fileNames) -{ - unsigned long Total = 0; - fwlite::ChainEvent tree(fileNames); - - for(unsigned int f=0;f nEventsTotalCounter; - nEventsTotalCounter.getByLabel(ls,"nEventsBefSkim"); - if(!nEventsTotalCounter.isValid()){printf("Invalid nEventsTotalCounterH\n");continue;} - Total+= nEventsTotalCounter->value; - } - } - return Total; -} diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step234.sh b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step234.sh deleted file mode 100644 index 8c9fb713fad7e..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step234.sh +++ /dev/null @@ -1,18 +0,0 @@ -root -l -b << EOF - TString makeshared(gSystem->GetMakeSharedLib()); - TString dummy = makeshared.ReplaceAll("-W ", ""); - TString dummy = makeshared.ReplaceAll("-Wshadow ", ""); - gSystem->SetMakeSharedLib(makeshared); - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - gSystem->Load("libDataFormatsFWLite.so"); - gSystem->Load("libAnalysisDataFormatsSUSYBSMObjects.so"); - gSystem->Load("libDataFormatsVertexReco.so"); - gSystem->Load("libDataFormatsCommon.so"); - gSystem->Load("libDataFormatsHepMCCandidate.so"); - gSystem->Load("libPhysicsToolsUtilities.so"); - .x Analysis_Step234.C++("ANALYSE_DATA", 2, "dedxASmi", "dedxHarm2", "combined", 0, 0, 0, 45.0, 2.1); - //.x Analysis_Step234.C++("ANALYSE_SIGNAL", 2, "dedxASmi", "dedxHarm2", "combined", 40.0, 0.10, 2.1); - //.x Analysis_Step234.C++("PLOT" , 2, 0, "dedxASmi", "dedxHarm2", "combined", -0.6,-0.6,-0.6); -EOF - diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step5.C b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step5.C deleted file mode 100644 index 892c01f86df30..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step5.C +++ /dev/null @@ -1,1762 +0,0 @@ - -#include -#include - -#include "TROOT.h" -#include "TFile.h" -#include "TDirectory.h" -#include "TChain.h" -#include "TObject.h" -#include "TCanvas.h" -#include "TMath.h" -#include "TLegend.h" -#include "TGraph.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include "TTree.h" -#include "TF1.h" -#include "TGraphErrors.h" -#include "TGraphAsymmErrors.h" -#include "TMultiGraph.h" -#include "TPaveText.h" -#include "tdrstyle.C" - - -#include "Analysis_CommonFunction.h" -#include "Analysis_Global.h" -#include "Analysis_PlotFunction.h" -#include "Analysis_PlotStructure.h" -#include "Analysis_Samples.h" - -using namespace std; - -/////////////////////////// FUNCTION DECLARATION ///////////////////////////// - -void CutFlow(string InputPattern, unsigned int CutIndex=0); -void SelectionPlot (string InputPattern, unsigned int CutIndex, unsigned int GluinoCutIndex); -void MassPrediction(string InputPattern, unsigned int CutIndex, string HistoSuffix="Mass"); -void PredictionAndControlPlot(string InputPattern, unsigned int CutIndex); -void Make2DPlot_Core(string ResultPattern, unsigned int CutIndex); -void SignalMassPlot(string InputPattern, unsigned int CutIndex); -void GetSystematicOnPrediction(string InputPattern); -int JobIdToIndex(string JobId); -void MassPredictionTight(string InputPattern, unsigned int CutIndex, string HistoSuffix="Mass"); -void MakeExpLimitpLot(string Input, string Output); - -std::vector signals; -std::vector MCsample; - -string LegendTitle; - -/////////////////////////// CODE PARAMETERS ///////////////////////////// - -void Analysis_Step5() -{ - setTDRStyle(); - gStyle->SetPadTopMargin (0.06); - gStyle->SetPadBottomMargin(0.12); - gStyle->SetPadRightMargin (0.16); - gStyle->SetPadLeftMargin (0.14); - gStyle->SetTitleSize(0.04, "XYZ"); - gStyle->SetTitleXOffset(1.1); - gStyle->SetTitleYOffset(1.45); - gStyle->SetPalette(1); - gStyle->SetNdivisions(505); - - - GetSignalDefinition(signals); - GetMCDefinition(MCsample); - - string InputDir; unsigned int CutIndex; - std::vector Legends; std::vector Inputs; - int GluinoCutIndex; -/* - MakeExpLimitpLot("Results_1toys_lp/dedxASmi/combined/Eta15/PtMin35/Type0/EXCLUSION/Stop200.info","tmp1.png"); - MakeExpLimitpLot("Results_3toys_lp/dedxASmi/combined/Eta15/PtMin35/Type0/EXCLUSION/Stop200.info","tmp3.png"); - MakeExpLimitpLot("Results/dedxASmi/combined/Eta15/PtMin35/Type0/EXCLUSION/Stop200.info","tmp10.png"); - return; -*/ - - -// InputDir = "Results/dedxASmi/combined/Eta25/PtMin15/Type0/SplitMode0/WPPt20/WPI20/WPTOF00/"; -// InputDir = "Results/dedxASmi/combined/Eta25/PtMin20/Type2/SplitMode0/WPPt05/WPI05/WPTOF05/"; -// InputDir = "Results/dedxASmi/combined/Eta25/PtMin20/Type2/SplitMode0/WPPt20/WPI20/WPTOF20/"; -// MassPrediction(InputDir); -// Make2DPlot_Core(InputDir); -// SelectionPlot(InputDir); -// PredictionAndControlPlot(InputDir); - - - //InputDir = "Results/dedxASmi/combined/Eta15/PtMin35/Type0/"; CutIndex = 4;//25;//24;//41 -// Make2DPlot_Core(InputDir,CutIndex); -// CutFlow(InputDir); -// SelectionPlot(InputDir, CutIndex); - //MassPrediction(InputDir, CutIndex, "Mass"); -// MassPrediction(InputDir, CutIndex, "MassTOF"); -// MassPrediction(InputDir, CutIndex, "MassComb"); -// PredictionAndControlPlot(InputDir, CutIndex); -// SignalMassPlot(InputDir,0);return; -// GetSystematicOnPrediction(InputDir); - - InputDir = "Results/dedxASmi/combined/Eta15/PtMin45/Type0/"; CutIndex = 4; - MassPrediction(InputDir, CutIndex, "Mass"); - PredictionAndControlPlot(InputDir, CutIndex); -// CutFlow(InputDir); -// SelectionPlot(InputDir, CutIndex, 0); - InputDir = "Results/dedxASmi/combined/Eta15/PtMin45/Type2/"; CutIndex = 16; - MassPrediction(InputDir, CutIndex, "Mass"); -// CutFlow(InputDir); -// SelectionPlot(InputDir, CutIndex, 0);return; - //GetSystematicOnPrediction(InputDir); - //PredictionAndControlPlot(InputDir, CutIndex); - - //SelectionPlot(InputDir, CutIndex); - //PredictionAndControlPlot(InputDir, CutIndex); - //GetSystematicOnPrediction(InputDir); - return; - - InputDir = "Results/dedxASmi/combined/Eta15/PtMin45/Type0/"; CutIndex = 11;/*65;*//*39;*/ MassPredictionTight(InputDir, CutIndex, "Mass"); - CutIndex=50; - GluinoCutIndex=11; - SelectionPlot(InputDir, CutIndex, GluinoCutIndex); - - InputDir = "Results/dedxASmi/combined/Eta15/PtMin45/Type2/"; CutIndex = 275;/*211;*//*167;95;*/ MassPredictionTight(InputDir, CutIndex, "Mass"); - GluinoCutIndex=845; - SelectionPlot(InputDir, CutIndex, GluinoCutIndex); -// InputDir = "Results/dedxASmi/combined/Eta25/PtMin45/Type0/"; CutIndex = 64; Make2DPlot_Core(InputDir,CutIndex); - - -// 31, 65, 44, 64 - - return; -} - - - -TH2D* GetCutIndexSliceFromTH3(TH3D* tmp, unsigned int CutIndex, string Name="zy"){ - tmp->GetXaxis()->SetRange(CutIndex+1,CutIndex+1); - return (TH2D*)tmp->Project3D(Name.c_str()); -} - - -TH1D* GetCutIndexSliceFromTH2(TH2D* tmp, unsigned int CutIndex, string Name="_py"){ - return tmp->ProjectionY(Name.c_str(),CutIndex+1,CutIndex+1); -} - - -////////////////////////////////////////////////// CREATE PLOTS OF SELECTION - -void GetSystematicOnPrediction(string InputPattern){ - string Input = InputPattern + "Histos_Data.root"; - TFile* InputFile = new TFile(Input.c_str()); - string SavePath = InputPattern + "Systematic/"; - - MakeDirectories(SavePath); - - TH1D* HCuts_Pt = (TH1D*)GetObjectFromPath(InputFile, "HCuts_Pt"); - TH1D* HCuts_I = (TH1D*)GetObjectFromPath(InputFile, "HCuts_I"); - TH1D* HCuts_TOF = (TH1D*)GetObjectFromPath(InputFile, "HCuts_TOF"); - TH1D* H_A = (TH1D*)GetObjectFromPath(InputFile, "H_A"); - TH1D* H_B = (TH1D*)GetObjectFromPath(InputFile, "H_B"); - TH1D* H_C = (TH1D*)GetObjectFromPath(InputFile, "H_C"); - TH1D* H_D = (TH1D*)GetObjectFromPath(InputFile, "H_D"); - TH1D* H_E = (TH1D*)GetObjectFromPath(InputFile, "H_E"); - TH1D* H_F = (TH1D*)GetObjectFromPath(InputFile, "H_F"); - TH1D* H_G = (TH1D*)GetObjectFromPath(InputFile, "H_G"); - TH1D* H_H = (TH1D*)GetObjectFromPath(InputFile, "H_H"); - TH1D* H_P = (TH1D*)GetObjectFromPath(InputFile, "H_P"); - - int ArrN[6]; ArrN[0] = 0; ArrN[1] = 0; ArrN[2] = 0; ArrN[3] = 0; ArrN[4] = 0; ArrN[5] = 0; - double ArrPred[5][6][20]; double ArrErr[5][6][20]; int ArrPredN[5][6]; for(unsigned int i=0;i<5;i++){for(unsigned int j=0;j<6;j++){ArrPredN[i][j]=0;}} - double ArrMean[6][20]; - double ArrSigma[6][20]; - double ArrDist[6][20]; - double ArrMaxDist[6][20]; - double ArrSum[6][20]; - double ArrSyst[6][20]; - double ArrStat[6][20]; - double ArrStatB[6][20]; - double ArrPt[6][20]; - double ArrI[6][20]; - double ArrT[6][20]; - - - std::vector Index; std::vector Plot; -//vary respective to TOF cut 50, 0.05 1.05->1.2 - Index.push_back(16); Plot.push_back(0); - Index.push_back(17); Plot.push_back(0); - Index.push_back(18); Plot.push_back(0); - Index.push_back(19); Plot.push_back(0); - Index.push_back(20); Plot.push_back(0); - Index.push_back(21); Plot.push_back(0); - Index.push_back(22); Plot.push_back(0); -//vary respective to I cut 50, 0.05->0.225 1.05 - Index.push_back(16); Plot.push_back(1); - Index.push_back(30); Plot.push_back(1); - Index.push_back(44); Plot.push_back(1); - Index.push_back(58); Plot.push_back(1); - Index.push_back(72); Plot.push_back(1); - Index.push_back(86); Plot.push_back(1); - Index.push_back(100); Plot.push_back(1); - Index.push_back(114); Plot.push_back(1); -//vary respective to Pt cut 50->115 0.05 1.05 - Index.push_back(16); Plot.push_back(2); - Index.push_back(436); Plot.push_back(2); - Index.push_back(856); Plot.push_back(2); - Index.push_back(1276); Plot.push_back(2); - Index.push_back(1696); Plot.push_back(2); - Index.push_back(2116); Plot.push_back(2); - Index.push_back(2536); Plot.push_back(2); - Index.push_back(2746); Plot.push_back(2); -//vary respective to Pt cut 50->115 0.1 1.1 - Index.push_back(46); Plot.push_back(3); - Index.push_back(466); Plot.push_back(3); - Index.push_back(886); Plot.push_back(3); - Index.push_back(1306); Plot.push_back(3); - Index.push_back(1726); Plot.push_back(3); - Index.push_back(2146); Plot.push_back(3); - Index.push_back(2566); Plot.push_back(3); - Index.push_back(2776); Plot.push_back(3); -//vary respective to Pt cut 50->115 0.15 1.05 - Index.push_back(72); Plot.push_back(4); - Index.push_back(492); Plot.push_back(4); - Index.push_back(912); Plot.push_back(4); - Index.push_back(1332); Plot.push_back(4); - Index.push_back(1752); Plot.push_back(4); - Index.push_back(2172); Plot.push_back(4); - Index.push_back(2592); Plot.push_back(4); - Index.push_back(2802); Plot.push_back(4); - //Not used - Index.push_back(82 + 4); Plot.push_back(5); - Index.push_back(154+ 4); Plot.push_back(5); - Index.push_back(226+ 4); Plot.push_back(5); - Index.push_back(298+ 4); Plot.push_back(5); - Index.push_back(370+ 4); Plot.push_back(5); - Index.push_back(442+ 4); Plot.push_back(5); - Index.push_back(514+ 4); Plot.push_back(5); - Index.push_back(586+ 4); Plot.push_back(5); - Index.push_back(658+ 4); Plot.push_back(5); - Index.push_back(730+ 4); Plot.push_back(5); - Index.push_back(802+ 4); Plot.push_back(5); - - - for(unsigned int i=0;iGetBinContent(CutIndex+1); - const double& B=H_B->GetBinContent(CutIndex+1); - const double& C=H_C->GetBinContent(CutIndex+1); - const double& D=H_D->GetBinContent(CutIndex+1); - const double& E=H_E->GetBinContent(CutIndex+1); - const double& F=H_F->GetBinContent(CutIndex+1); - const double& G=H_G->GetBinContent(CutIndex+1); - const double& H=H_H->GetBinContent(CutIndex+1); - - - double Pred[5]; - double Err [5]; - double N = 0; - double Sigma = 0; - double Mean = 0; - - for(unsigned int p=0;p<4;p++){ - Pred[p] = -1; - Err [p] = -1; - if(p==0){ - if(A<25 || F<25 || G<25 || E<25)continue; - Pred[p] = (A*F*G)/(E*E); - Err [p] = Pred [p] * sqrt( 1/A + 1/F + 1/G + 4/E); - }else if(p==1){ - if(A<25 || H<25 || E<25)continue; - Pred[p] = ((A*H)/E); - Err [p] = Pred[p] * sqrt( 1/A+1/H+1/E ); - }else if (p==2){ - if(B<25 || G<25 || E<25)continue; - Pred[p] = ((B*G)/E); - Err [p] = Pred[p] * sqrt( 1/B+ 1/G+ 1/E ); - }else if (p==3){ - if(F<25 || C<25 || E<25)continue; - Pred[p] = ((F*C)/E); - Err [p] = Pred[p] * sqrt( 1/F + 1/C + 1/E ); - } - - if(Pred[p]>=0){ - N++; - Mean += Pred[p]/pow(Err [p],2); - Sigma += 1 /pow(Err [p],2); - } - - ArrPred [p][Plot[i]][ArrN[Plot[i]]] = Pred[p]; - ArrErr [p][Plot[i]][ArrN[Plot[i]]] = Err [p]; - if(Pred[p]>=0)ArrPredN[p][Plot[i]]++; - } - - Mean = Mean/Sigma; - Sigma = sqrt(Sigma); - - double Dist = fabs(Pred[0] - Mean); - double Sum=0, Stat=0, Syst=0, StatB=0; - - for(unsigned int p=0;p<4;p++){ - if(Pred[p]>=0){ - Sum += pow(Pred[p]-Mean,2); - Stat += pow(Err [p],2); - StatB += Err [p]; - } - } - Sum = sqrt(Sum/(N-1)); - Stat = sqrt(Stat)/N; - StatB= StatB/N; - Syst = sqrt(Sum*Sum - Stat*Stat); - -// printf("pT>%6.2f I> %6.2f TOF>%6.2f : ", HCuts_Pt ->GetBinContent(CutIndex+1), HCuts_I ->GetBinContent(CutIndex+1), HCuts_TOF->GetBinContent(CutIndex+1)); -// printf("A =%6.2E, B=%6.2E, C=%6.2E, D=%6.2E E =%6.2E, F=%6.2E, G=%6.2E, H=%6.2E\n", A,B,C,D, E, F, G, H); - -// for(unsigned int p=0;p<4;p++){printf("Method %i --> P =%6.2E+-%6.2E\n", p,Pred[p], Err [p]);} - printf("--> N = %1.0f Mean = %8.2E Sigma=%8.2E Dist=%8.2E Sum=%8.2E Stat=%8.2E Syst=%8.2E\n", N, Mean, Sigma/Mean, Dist/Mean, Sum/Mean, Stat/Mean, Syst/Mean); - if(N>0){ - ArrMean [Plot[i]][ArrN[Plot[i]]] = Mean; - ArrSigma [Plot[i]][ArrN[Plot[i]]] = Sigma/Mean; - ArrDist [Plot[i]][ArrN[Plot[i]]] = Dist/Mean; - ArrSum [Plot[i]][ArrN[Plot[i]]] = Sum/Mean; - ArrSyst [Plot[i]][ArrN[Plot[i]]] = Syst/Mean; - ArrStat [Plot[i]][ArrN[Plot[i]]] = Stat/Mean; - ArrStatB [Plot[i]][ArrN[Plot[i]]] = StatB/Mean; - ArrPt [Plot[i]][ArrN[Plot[i]]] = HCuts_Pt ->GetBinContent(CutIndex+1); ; - ArrI [Plot[i]][ArrN[Plot[i]]] = HCuts_I ->GetBinContent(CutIndex+1); ; - ArrT [Plot[i]][ArrN[Plot[i]]] = HCuts_TOF->GetBinContent(CutIndex+1); ; - ArrN[Plot[i]]++; - } - } - - - TGraphErrors* graph_T0 = new TGraphErrors(ArrPredN[0][0],ArrT [0],ArrPred[0][0],0,ArrErr[0][0]); graph_T0->SetLineColor(1); graph_T0->SetMarkerColor(1); graph_T0->SetMarkerStyle(20); - TGraphErrors* graph_T1 = new TGraphErrors(ArrPredN[1][0],ArrT [0],ArrPred[1][0],0,ArrErr[1][0]); graph_T1->SetLineColor(2); graph_T1->SetMarkerColor(2); graph_T1->SetMarkerStyle(21); - TGraphErrors* graph_T2 = new TGraphErrors(ArrPredN[2][0],ArrT [0],ArrPred[2][0],0,ArrErr[2][0]); graph_T2->SetLineColor(4); graph_T2->SetMarkerColor(4); graph_T2->SetMarkerStyle(22); - TGraphErrors* graph_T3 = new TGraphErrors(ArrPredN[3][0],ArrT [0],ArrPred[3][0],0,ArrErr[3][0]); graph_T3->SetLineColor(8); graph_T3->SetMarkerColor(8); graph_T3->SetMarkerStyle(23); - - TGraphErrors* graph_I0 = new TGraphErrors(ArrPredN[0][1],ArrI [1],ArrPred[0][1],0,ArrErr[0][1]); graph_I0->SetLineColor(1); graph_I0->SetMarkerColor(1); graph_I0->SetMarkerStyle(20); - TGraphErrors* graph_I1 = new TGraphErrors(ArrPredN[1][1],ArrI [1],ArrPred[1][1],0,ArrErr[1][1]); graph_I1->SetLineColor(2); graph_I1->SetMarkerColor(2); graph_I1->SetMarkerStyle(21); - TGraphErrors* graph_I2 = new TGraphErrors(ArrPredN[2][1],ArrI [1],ArrPred[2][1],0,ArrErr[2][1]); graph_I2->SetLineColor(4); graph_I2->SetMarkerColor(4); graph_I2->SetMarkerStyle(22); - TGraphErrors* graph_I3 = new TGraphErrors(ArrPredN[3][1],ArrI [1],ArrPred[3][1],0,ArrErr[3][1]); graph_I3->SetLineColor(8); graph_I3->SetMarkerColor(8); graph_I3->SetMarkerStyle(23); - - TGraphErrors* graph_P0 = new TGraphErrors(ArrPredN[0][2],ArrPt[2],ArrPred[0][2],0,ArrErr[0][2]); graph_P0->SetLineColor(1); graph_P0->SetMarkerColor(1); graph_P0->SetMarkerStyle(20); - TGraphErrors* graph_P1 = new TGraphErrors(ArrPredN[1][2],ArrPt[2],ArrPred[1][2],0,ArrErr[1][2]); graph_P1->SetLineColor(2); graph_P1->SetMarkerColor(2); graph_P1->SetMarkerStyle(21); - TGraphErrors* graph_P2 = new TGraphErrors(ArrPredN[2][2],ArrPt[2],ArrPred[2][2],0,ArrErr[2][2]); graph_P2->SetLineColor(4); graph_P2->SetMarkerColor(4); graph_P2->SetMarkerStyle(22); - TGraphErrors* graph_P3 = new TGraphErrors(ArrPredN[3][2],ArrPt[2],ArrPred[3][2],0,ArrErr[3][2]); graph_P3->SetLineColor(8); graph_P3->SetMarkerColor(8); graph_P3->SetMarkerStyle(23); - - TLegend* LEG = new TLegend(0.50,0.65,0.80,0.90); - LEG->SetFillColor(0); - LEG->SetBorderSize(0); - LEG->AddEntry(graph_T0, "D=AFG/EE" ,"LP"); - LEG->AddEntry(graph_T1, "D=AH/E" ,"LP"); - LEG->AddEntry(graph_T2, "D=BG/E" ,"LP"); - LEG->AddEntry(graph_T3, "D=FC/E" ,"LP"); - - TCanvas* c1; - c1 = new TCanvas("c1", "c1",600,600); - c1->SetLogy(true); - TMultiGraph* MGTOF = new TMultiGraph(); - MGTOF->Add(graph_T0 ,"LP"); - MGTOF->Add(graph_T1 ,"LP"); - MGTOF->Add(graph_T2 ,"LP"); - MGTOF->Add(graph_T3 ,"LP"); - MGTOF->Draw("A"); - MGTOF->SetTitle(""); - MGTOF->GetXaxis()->SetTitle("1/#beta cut"); - MGTOF->GetYaxis()->SetTitle("Number of expected backgrounds"); - MGTOF->GetYaxis()->SetTitleOffset(1.70); - MGTOF->GetYaxis()->SetRangeUser(10,1E6); - LEG->Draw(); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"TOF_Value","true"); - delete c1; - - c1 = new TCanvas("c1", "c1",600,600); - TMultiGraph* MGI = new TMultiGraph(); - c1->SetLogy(true); - MGI->Add(graph_I0 ,"LP"); - MGI->Add(graph_I1 ,"LP"); - MGI->Add(graph_I2 ,"LP"); - MGI->Add(graph_I3 ,"LP"); - MGI->Draw("A"); - MGI->SetTitle(""); - MGI->GetXaxis()->SetTitle("I_{as} cut"); - MGI->GetYaxis()->SetTitle("Number of expected backgrounds"); - MGI->GetYaxis()->SetTitleOffset(1.70); - MGI->GetYaxis()->SetRangeUser(10,1E6); - LEG->Draw(); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"I_Value","true"); - delete c1; - - c1 = new TCanvas("c1", "c1",600,600); - c1->SetLogy(true); - TMultiGraph* MGP = new TMultiGraph(); - MGP->Add(graph_P0 ,"LP"); - MGP->Add(graph_P1 ,"LP"); - MGP->Add(graph_P2 ,"LP"); - MGP->Add(graph_P3 ,"LP"); - MGP->Draw("A"); - MGP->SetTitle(""); - MGP->GetXaxis()->SetTitle("p_{T} cut"); - MGP->GetYaxis()->SetTitle("Number of expected backgrounds"); - MGP->GetYaxis()->SetTitleOffset(1.70); - MGP->GetYaxis()->SetRangeUser(10,1E6); - LEG->Draw(); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"P_Value","true"); - delete c1; - - - - - - for(unsigned int p=0;p<3;p++){ - string Title; string Name; - if(p==0){ Title = "1/#beta cut"; Name="TOF_"; } - if(p==1){ Title = "dEdx cut"; Name="I_"; } - if(p==2){ Title = "p_{T} cut"; Name="pT_"; } - - - c1 = new TCanvas("c1","c1", 600, 600); - TGraph* graph_s; - if(p==0)graph_s = new TGraph(ArrN[p],ArrT [p],ArrSigma[p]); - if(p==1)graph_s = new TGraph(ArrN[p],ArrI [p],ArrSigma[p]); - if(p==2)graph_s = new TGraph(ArrN[p],ArrPt[p],ArrSigma[p]); - graph_s->SetTitle(""); - graph_s->GetYaxis()->SetTitle("Prediction #sigma/#mu"); - graph_s->GetYaxis()->SetTitleOffset(1.70); - graph_s->GetXaxis()->SetTitle(Title.c_str()); - graph_s->Draw("AC*"); - SaveCanvas(c1,SavePath,Name+"Sigma","true"); - delete c1; - - - c1 = new TCanvas("c1","c1", 600, 600); - TGraph* graph_d; - if(p==0)graph_d = new TGraph(ArrN[p],ArrT [p],ArrDist[p]); - if(p==1)graph_d = new TGraph(ArrN[p],ArrI [p],ArrDist[p]); - if(p==2)graph_d = new TGraph(ArrN[p],ArrPt[p],ArrDist[p]); - graph_d->SetTitle(""); - graph_d->GetYaxis()->SetTitle("Prediction Dist/#mu"); - graph_d->GetYaxis()->SetTitleOffset(1.70); - graph_d->GetXaxis()->SetTitle(Title.c_str()); - graph_d->Draw("AC*"); - SaveCanvas(c1,SavePath,Name+"Dist","true"); - delete c1; - - c1 = new TCanvas("c1","c1", 600, 600); - TGraph* graph_sum; - if(p==0)graph_sum = new TGraph(ArrN[p],ArrT [p],ArrSum[p]); - if(p==1)graph_sum = new TGraph(ArrN[p],ArrI [p],ArrSum[p]); - if(p==2)graph_sum = new TGraph(ArrN[p+2],ArrPt[p+2],ArrSum[p+2]); - graph_sum->SetTitle(""); - graph_sum->GetYaxis()->SetTitle("Prediction #sigma_{Stat+Syst}/#mu"); - graph_sum->GetYaxis()->SetTitleOffset(1.70); - graph_sum->GetXaxis()->SetTitle(Title.c_str()); - - graph_sum->Draw("AC*"); - graph_sum->GetYaxis()->SetRangeUser(0,0.25); - - if(p==2){ - TGraph* graph_sum2 = new TGraph(ArrN[p+1],ArrPt[p+1],ArrSum[p+1]); - graph_sum2->SetLineColor(2); - graph_sum2->SetMarkerColor(2); - graph_sum2->Draw("C*"); - - TGraph* graph_sum3 = new TGraph(ArrN[p+0],ArrPt[p+0],ArrSum[p+0]); - graph_sum3->SetLineColor(4); - graph_sum3->SetMarkerColor(4); - graph_sum3->Draw("C*"); -/* - TGraph* graph_sum4 = new TGraph(ArrN[p+3],ArrPt[p+3],ArrSum[p+3]); - graph_sum4->SetLineColor(8); - graph_sum4->SetMarkerColor(8); - graph_sum4->Draw("C*"); -*/ - - TLegend* LEG = new TLegend(0.50,0.65,0.80,0.90); - LEG->SetFillColor(0); - LEG->SetBorderSize(0); - LEG->AddEntry(graph_sum, "I_{as}>0.15 & 1/#beta>1.05", "L"); - LEG->AddEntry(graph_sum2, "I_{as}>0.05 & 1/#beta>1.05", "L"); - LEG->AddEntry(graph_sum3, "I_{as}>0.10 & 1/#beta>1.10", "L"); - LEG->Draw(); - } - SaveCanvas(c1,SavePath,Name+"Sum","true"); - delete c1; - - - - - c1 = new TCanvas("c1","c1", 600, 600); - TGraph* graph_stat; - if(p==0)graph_stat = new TGraph(ArrN[p],ArrT [p],ArrStat[p]); - if(p==1)graph_stat = new TGraph(ArrN[p],ArrI [p],ArrStat[p]); - if(p==2)graph_stat = new TGraph(ArrN[p+2],ArrPt[p+2],ArrStat[p+2]); - graph_stat->SetTitle(""); - graph_stat->GetYaxis()->SetTitle("Prediction #sigma_{Stat}/#mu"); - graph_stat->GetYaxis()->SetTitleOffset(1.70); - graph_stat->GetXaxis()->SetTitle(Title.c_str()); - - graph_stat->Draw("AC*"); - graph_stat->GetYaxis()->SetRangeUser(0,0.25); - - if(p==2){ - TGraph* graph_stat2 = new TGraph(ArrN[p+1],ArrPt[p+1],ArrStat[p+1]); - graph_stat2->SetLineColor(2); - graph_stat2->SetMarkerColor(2); - graph_stat2->Draw("C*"); - - TGraph* graph_stat3 = new TGraph(ArrN[p+0],ArrPt[p+0],ArrStat[p+0]); - graph_stat3->SetLineColor(4); - graph_stat3->SetMarkerColor(4); - graph_stat3->Draw("C*"); -/* - TGraph* graph_stat4 = new TGraph(ArrN[p+3],ArrPt[p+3],ArrStat[p+3]); - graph_stat4->SetLineColor(8); - graph_stat4->SetMarkerColor(8); - graph_stat4->Draw("C*"); -*/ - - TLegend* LEG = new TLegend(0.50,0.65,0.80,0.90); - LEG->SetFillColor(0); - LEG->SetBorderSize(0); - LEG->AddEntry(graph_stat, "I_{as}>0.15 & 1/#beta>1.05", "L"); - LEG->AddEntry(graph_stat2, "I_{as}>0.05 & 1/#beta>1.05", "L"); - LEG->AddEntry(graph_stat3, "I_{as}>0.10 & 1/#beta>1.10", "L"); - LEG->Draw(); - } - SaveCanvas(c1,SavePath,Name+"Stat","true"); - delete c1; - - - - - c1 = new TCanvas("c1","c1", 600, 600); - TGraph* graph_statB; - if(p==0)graph_statB = new TGraph(ArrN[p],ArrT [p],ArrStat[p]); - if(p==1)graph_statB = new TGraph(ArrN[p],ArrI [p],ArrStat[p]); - if(p==2)graph_statB = new TGraph(ArrN[p+2],ArrPt[p+2],ArrStatB[p+2]); - graph_statB->SetTitle(""); - graph_statB->GetYaxis()->SetTitle("Prediction #sigma_{Stat}/#mu"); - graph_statB->GetYaxis()->SetTitleOffset(1.70); - graph_statB->GetXaxis()->SetTitle(Title.c_str()); - - graph_statB->Draw("AC*"); - graph_statB->GetYaxis()->SetRangeUser(0,0.25); - - if(p==2){ - TGraph* graph_statB2 = new TGraph(ArrN[p+1],ArrPt[p+1],ArrStatB[p+1]); - graph_statB2->SetLineColor(2); - graph_statB2->SetMarkerColor(2); - graph_statB2->Draw("C*"); - - TGraph* graph_statB3 = new TGraph(ArrN[p+0],ArrPt[p+0],ArrStatB[p+0]); - graph_statB3->SetLineColor(4); - graph_statB3->SetMarkerColor(4); - graph_statB3->Draw("C*"); -/* - TGraph* graph_statB4 = new TGraph(ArrN[p+3],ArrPt[p+3],ArrStat[p+3]); - graph_statB4->SetLineColor(8); - graph_statB4->SetMarkerColor(8); - graph_statB4->Draw("C*"); -*/ - - TLegend* LEG = new TLegend(0.50,0.65,0.80,0.90); - LEG->SetFillColor(0); - LEG->SetBorderSize(0); - LEG->AddEntry(graph_statB, "I_{as}>0.15 & 1/#beta>1.05", "L"); - LEG->AddEntry(graph_statB2, "I_{as}>0.05 & 1/#beta>1.05", "L"); - LEG->AddEntry(graph_statB3, "I_{as}>0.10 & 1/#beta>1.10", "L"); - LEG->Draw(); - } - SaveCanvas(c1,SavePath,Name+"StatB","true"); - delete c1; - - - - - - - - - - c1 = new TCanvas("c1","c1", 600, 600); - TGraph* graph_syst; - if(p==0)graph_syst = new TGraph(ArrN[p],ArrT [p],ArrSyst[p]); - if(p==1)graph_syst = new TGraph(ArrN[p],ArrI [p],ArrSyst[p]); - if(p==2)graph_syst = new TGraph(ArrN[p+2],ArrPt[p+2],ArrSyst[p+2]); - graph_syst->SetTitle(""); - graph_syst->GetYaxis()->SetTitle("Prediction #sigma_{Syst}/#mu"); - graph_syst->GetYaxis()->SetTitleOffset(1.70); - graph_syst->GetXaxis()->SetTitle(Title.c_str()); - - graph_syst->Draw("AC*"); - graph_syst->GetXaxis()->SetRangeUser(40,100); - graph_syst->GetYaxis()->SetRangeUser(0,0.25); - - if(p==2){ - TGraph* graph_syst2 = new TGraph(ArrN[p+1],ArrPt[p+1],ArrSyst[p+1]); - graph_syst2->SetLineColor(2); - graph_syst2->SetMarkerColor(2); - graph_syst2->Draw("C*"); - - TGraph* graph_syst3 = new TGraph(ArrN[p+0],ArrPt[p+0],ArrSyst[p+0]); - graph_syst3->SetLineColor(4); - graph_syst3->SetMarkerColor(4); - graph_syst3->Draw("C*"); -/* - TGraph* graph_syst4 = new TGraph(ArrN[p+3],ArrPt[p+3],ArrSyst[p+3]); - graph_syst4->SetLineColor(8); - graph_syst4->SetMarkerColor(8); - graph_syst4->Draw("C*"); -*/ - - TLegend* LEG = new TLegend(0.50,0.65,0.80,0.90); - LEG->SetFillColor(0); - LEG->SetBorderSize(0); - LEG->AddEntry(graph_syst, "I_{as}>0.15 & 1/#beta>1.05", "L"); - LEG->AddEntry(graph_syst2, "I_{as}>0.05 & 1/#beta>1.05", "L"); - LEG->AddEntry(graph_syst3, "I_{as}>0.10 & 1/#beta>1.10", "L"); - LEG->Draw(); - } - - - SaveCanvas(c1,SavePath,Name+"Syst","true"); - delete c1; - - - } -} - - -void CutFlow(string InputPattern, unsigned int CutIndex){ - string Input = InputPattern + "Histos.root"; - string SavePath = InputPattern + "/CutFlow/"; - MakeDirectories(SavePath); - - TFile* InputFile = new TFile(Input.c_str()); - TFile* InputFileData = new TFile((InputPattern + "Histos_Data.root").c_str()); - TFile* InputFileMC = new TFile((InputPattern + "Histos_MC.root").c_str()); - if(!InputFileMC)std::cout << "FileProblem\n"; - - TH1D* HCuts_Pt = (TH1D*)GetObjectFromPath(InputFileData, "HCuts_Pt"); - TH1D* HCuts_I = (TH1D*)GetObjectFromPath(InputFileData, "HCuts_I"); - TH1D* HCuts_TOF = (TH1D*)GetObjectFromPath(InputFileData, "HCuts_TOF"); - - char Buffer[1024]; sprintf(Buffer,"%s/CutFlow_%03i_Pt%03.0f_I%05.3f_TOF%04.3f.txt",SavePath.c_str(),CutIndex,HCuts_Pt->GetBinContent(CutIndex+1),HCuts_I->GetBinContent(CutIndex+1),HCuts_TOF->GetBinContent(CutIndex+1)); - FILE* pFile = fopen(Buffer,"w"); - stPlots DataPlots; - stPlots_InitFromFile(InputFile, DataPlots,"Data", InputFileData); - stPlots_Dump(DataPlots, pFile, CutIndex); - stPlots_Clear(DataPlots); - - stPlots MCTrPlots; - stPlots_InitFromFile(InputFile, MCTrPlots,"MCTr", InputFileMC); - stPlots_Dump(MCTrPlots, pFile, CutIndex); - stPlots_Clear(MCTrPlots); - - for(unsigned int s=0;sScale(1.0/Mass->Integral()); - - char YAxisLegend[1024]; - sprintf(YAxisLegend,"#tracks / %2.0f GeV/c^{2}",Mass->GetXaxis()->GetBinWidth(1)); - - - TCanvas* c1 = new TCanvas("c1","c1", 600, 600); - Mass->SetAxisRange(0,1250,"X"); -// Mass->SetAxisRange(Min,Max,"Y"); - Mass->SetTitle(""); -// Mass->SetStats(kFALSE); - Mass->GetXaxis()->SetTitle("m (GeV/c^{2})"); - Mass->GetYaxis()->SetTitle(YAxisLegend); - Mass->SetLineWidth(2); - Mass->SetLineColor(Color[0]); - Mass->SetMarkerColor(Color[0]); - Mass->SetMarkerStyle(Marker[0]); - Mass->Draw("HIST E1"); - c1->SetLogy(true); - SaveCanvas(c1,SavePath,signals[s].Name,"true"); - delete c1; - } -} - - - -void SelectionPlot(string InputPattern, unsigned int CutIndex, unsigned int GluinoCutIndex){ - - string LegendTitle = LegendFromType(InputPattern);; - - string Input = InputPattern + "Histos.root"; - string SavePath = InputPattern; - MakeDirectories(SavePath); - - TFile* InputFile = new TFile(Input.c_str()); - TFile* InputFileData = new TFile((InputPattern + "Histos_Data.root").c_str()); - TFile* InputFileMC = new TFile((InputPattern + "Histos_MC.root").c_str()); - - stPlots DataPlots, MCTrPlots, SignPlots[signals.size()]; - stPlots_InitFromFile(InputFile, DataPlots,"Data", InputFileData); - stPlots_InitFromFile(InputFile, MCTrPlots,"MCTr", InputFileMC); - - for(unsigned int s=0;s legend; - - string LegendTitle = LegendFromType(InputPattern);; - string Input = InputPattern + "Histos_Data.root"; - string SavePath = InputPattern; - MakeDirectories(SavePath); - - TFile* InputFile = new TFile(Input.c_str()); - TH2D* Pred_P = (TH2D*)GetObjectFromPath(InputFile, "Pred_P"); - TH2D* Pred_I = (TH2D*)GetObjectFromPath(InputFile, "Pred_I"); - TH2D* Pred_TOF = (TH2D*)GetObjectFromPath(InputFile, "Pred_TOF"); - TH2D* Data_I = (TH2D*)GetObjectFromPath(InputFile, "RegionD_I"); - TH2D* Data_P = (TH2D*)GetObjectFromPath(InputFile, "RegionD_P"); - TH2D* Data_TOF = (TH2D*)GetObjectFromPath(InputFile, "RegionD_TOF"); - - TH1D* H_A = (TH1D*)GetObjectFromPath(InputFile, "H_A"); - TH1D* H_B = (TH1D*)GetObjectFromPath(InputFile, "H_B"); - TH1D* H_C = (TH1D*)GetObjectFromPath(InputFile, "H_C"); - TH1D* H_D = (TH1D*)GetObjectFromPath(InputFile, "H_D"); - TH1D* H_E = (TH1D*)GetObjectFromPath(InputFile, "H_E"); - TH1D* H_F = (TH1D*)GetObjectFromPath(InputFile, "H_F"); - TH1D* H_G = (TH1D*)GetObjectFromPath(InputFile, "H_G"); - TH1D* H_H = (TH1D*)GetObjectFromPath(InputFile, "H_H"); - TH1D* H_P = (TH1D*)GetObjectFromPath(InputFile, "H_P"); - - TH1D* HCuts_Pt = (TH1D*)GetObjectFromPath(InputFile, "HCuts_Pt"); - TH1D* HCuts_I = (TH1D*)GetObjectFromPath(InputFile, "HCuts_I"); - TH1D* HCuts_TOF = (TH1D*)GetObjectFromPath(InputFile, "HCuts_TOF"); - - TH1D* CtrlPt_S1_Is = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S1_Is" ); CtrlPt_S1_Is ->Rebin(5); - TH1D* CtrlPt_S1_Im = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S1_Im" ); CtrlPt_S1_Im ->Rebin(1); - TH1D* CtrlPt_S1_TOF = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S1_TOF"); CtrlPt_S1_TOF->Rebin(1); - TH1D* CtrlPt_S2_Is = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S2_Is" ); CtrlPt_S2_Is ->Rebin(5); - TH1D* CtrlPt_S2_Im = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S2_Im" ); CtrlPt_S2_Im ->Rebin(1); - TH1D* CtrlPt_S2_TOF = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S2_TOF"); CtrlPt_S2_TOF->Rebin(1); - TH1D* CtrlPt_S3_Is = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S3_Is" ); CtrlPt_S3_Is ->Rebin(5); - TH1D* CtrlPt_S3_Im = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S3_Im" ); CtrlPt_S3_Im ->Rebin(1); - TH1D* CtrlPt_S3_TOF = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S3_TOF"); CtrlPt_S3_TOF->Rebin(1); - TH1D* CtrlPt_S4_Is = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S4_Is" ); CtrlPt_S4_Is ->Rebin(5); - TH1D* CtrlPt_S4_Im = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S4_Im" ); CtrlPt_S4_Im ->Rebin(1); - TH1D* CtrlPt_S4_TOF = (TH1D*)GetObjectFromPath(InputFile, "CtrlPt_S4_TOF"); CtrlPt_S4_TOF->Rebin(1); - - TH1D* CtrlIs_S1_TOF = (TH1D*)GetObjectFromPath(InputFile, "CtrlIs_S1_TOF"); CtrlIs_S1_TOF->Rebin(1); - TH1D* CtrlIs_S2_TOF = (TH1D*)GetObjectFromPath(InputFile, "CtrlIs_S2_TOF"); CtrlIs_S2_TOF->Rebin(1); - TH1D* CtrlIs_S3_TOF = (TH1D*)GetObjectFromPath(InputFile, "CtrlIs_S3_TOF"); CtrlIs_S3_TOF->Rebin(1); - TH1D* CtrlIs_S4_TOF = (TH1D*)GetObjectFromPath(InputFile, "CtrlIs_S4_TOF"); CtrlIs_S4_TOF->Rebin(1); - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - if(CtrlPt_S1_Is->Integral()>0)CtrlPt_S1_Is->Scale(1/CtrlPt_S1_Is->Integral()); - if(CtrlPt_S2_Is->Integral()>0)CtrlPt_S2_Is->Scale(1/CtrlPt_S2_Is->Integral()); - if(CtrlPt_S3_Is->Integral()>0)CtrlPt_S3_Is->Scale(1/CtrlPt_S3_Is->Integral()); - if(CtrlPt_S4_Is->Integral()>0)CtrlPt_S4_Is->Scale(1/CtrlPt_S4_Is->Integral()); -// Histos[0] = CtrlPt_S1_Is; legend.push_back(" 25SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"ControlPt_IsSpectrum"); - delete c1; - - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - if(CtrlPt_S1_Im->Integral()>0)CtrlPt_S1_Im->Scale(1/CtrlPt_S1_Im->Integral()); - if(CtrlPt_S2_Im->Integral()>0)CtrlPt_S2_Im->Scale(1/CtrlPt_S2_Im->Integral()); - if(CtrlPt_S3_Im->Integral()>0)CtrlPt_S3_Im->Scale(1/CtrlPt_S3_Im->Integral()); - if(CtrlPt_S4_Im->Integral()>0)CtrlPt_S4_Im->Scale(1/CtrlPt_S4_Im->Integral()); -// Histos[0] = CtrlPt_S1_Im; legend.push_back(" 25SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"ControlPt_ImSpectrum"); - delete c1; - - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - if(CtrlPt_S1_TOF->Integral()>0)CtrlPt_S1_TOF->Scale(1/CtrlPt_S1_TOF->Integral()); - if(CtrlPt_S2_TOF->Integral()>0)CtrlPt_S2_TOF->Scale(1/CtrlPt_S2_TOF->Integral()); - if(CtrlPt_S3_TOF->Integral()>0)CtrlPt_S3_TOF->Scale(1/CtrlPt_S3_TOF->Integral()); - if(CtrlPt_S4_TOF->Integral()>0)CtrlPt_S4_TOF->Scale(1/CtrlPt_S4_TOF->Integral()); -// Histos[0] = CtrlPt_S1_TOF; legend.push_back(" 25SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"ControlPt_TOFSpectrum"); - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - if(CtrlIs_S1_TOF->Integral()>0)CtrlIs_S1_TOF->Scale(1/CtrlIs_S1_TOF->Integral()); - if(CtrlIs_S2_TOF->Integral()>0)CtrlIs_S2_TOF->Scale(1/CtrlIs_S2_TOF->Integral()); - if(CtrlIs_S3_TOF->Integral()>0)CtrlIs_S3_TOF->Scale(1/CtrlIs_S3_TOF->Integral()); - if(CtrlIs_S4_TOF->Integral()>0)CtrlIs_S4_TOF->Scale(1/CtrlIs_S4_TOF->Integral()); - Histos[0] = CtrlIs_S1_TOF; legend.push_back("0.0SetLogy(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"ControlIs_TOFSpectrum"); - delete c1; - -/* - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - c1->SetLogy(true); - Histos[0] = (TH1D*)(Data_P->ProjectionY("PA",CutIndex+1,CutIndex+1,"o")); legend.push_back("Observed"); - Histos[1] = (TH1D*)(Pred_P->ProjectionY("PB",CutIndex+1,CutIndex+1,"o")); legend.push_back("Predicted"); - ((TH1D*)Histos[0])->Scale(1/std::max(((TH1D*)Histos[0])->Integral(),1.0)); - ((TH1D*)Histos[1])->Scale(1/std::max(((TH1D*)Histos[1])->Integral(),1.0)); - ((TH1D*)Histos[0])->Rebin(10); - ((TH1D*)Histos[1])->Rebin(10); - DrawSuperposedHistos((TH1**)Histos, legend, "Hist E1", "p (Gev/c)", "u.a.", 0,1500, 0,0); - DrawLegend(Histos,legend,LegendTitle,"P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Prediction_PSpectrum"); - delete Histos[0]; delete Histos[1]; - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - c1->SetLogy(true); - Histos[0] = (TH1D*)(Data_I->ProjectionY("IA",CutIndex+1,CutIndex+1,"o")); legend.push_back("Observed"); - Histos[1] = (TH1D*)(Pred_I->ProjectionY("IB",CutIndex+1,CutIndex+1,"o")); legend.push_back("Predicted"); - ((TH1D*)Histos[0])->Scale(1/std::max(((TH1D*)Histos[0])->Integral(),1.0)); - ((TH1D*)Histos[1])->Scale(1/std::max(((TH1D*)Histos[1])->Integral(),1.0)); - ((TH1D*)Histos[0])->Rebin(2); - ((TH1D*)Histos[1])->Rebin(2); - DrawSuperposedHistos((TH1**)Histos, legend, "Hist E1", dEdxM_Legend, "u.a.", 0,15, 0,0); - DrawLegend(Histos,legend,LegendTitle,"P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Prediction_ISpectrum"); - delete Histos[0]; delete Histos[1]; - delete c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - c1->SetLogy(true); - Histos[0] = (TH1D*)(Data_TOF->ProjectionY("TA",CutIndex+1,CutIndex+1,"o")); legend.push_back("Observed"); - Histos[1] = (TH1D*)(Pred_TOF->ProjectionY("TB",CutIndex+1,CutIndex+1,"o")); legend.push_back("Predicted"); - ((TH1D*)Histos[0])->Scale(1/std::max(((TH1D*)Histos[0])->Integral(),1.0)); - ((TH1D*)Histos[1])->Scale(1/std::max(((TH1D*)Histos[1])->Integral(),1.0)); - ((TH1D*)Histos[0])->Rebin(2); - ((TH1D*)Histos[1])->Rebin(2); - DrawSuperposedHistos((TH1**)Histos, legend, "Hist E1", "1/#beta", "u.a.", 0,0, 0,0); - DrawLegend(Histos,legend,LegendTitle,"P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Prediction_TOFSpectrum"); - delete Histos[0]; delete Histos[1]; - delete c1; - - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - TH2D* DataVsPred = new TH2D("DataVsPred","DataVsPred",17,30,200, 8,0.05,0.5); - TH2D* DataMap = new TH2D("DataMap" ,"DataMap" ,17,30,200, 8,0.05,0.5); - TH2D* PredMap = new TH2D("PredMap" ,"PredMap" ,17,30,200, 8,0.05,0.5); - for(unsigned int CutIndex=0;CutIndexGetNbinsX();CutIndex++){ - double P = H_P->GetBinContent(CutIndex+1); - double D = H_D->GetBinContent(CutIndex+1); - double Err = sqrt( pow(H_P->GetBinError(CutIndex+1),2) + std::max(D,1.0) ); -// double Err = sqrt( pow(H_P->GetBinError(CutIndex+1),2) + pow(P*0.1,2) ); - double NSigma = (D-P)/Err; - - DataMap->SetBinContent(DataVsPred->GetXaxis()->FindBin(HCuts_Pt->GetBinContent(CutIndex+1)), DataVsPred->GetYaxis()->FindBin(HCuts_I->GetBinContent(CutIndex+1)), D); - PredMap->SetBinContent(DataVsPred->GetXaxis()->FindBin(HCuts_Pt->GetBinContent(CutIndex+1)), DataVsPred->GetYaxis()->FindBin(HCuts_I->GetBinContent(CutIndex+1)), P); - - -// if(D==0)continue; - if(isnan(P))continue; - if(P<=0){continue;} //Is <=0 only when prediction failed or is not meaningful (i.e. WP=(0,0,0) ) - //if( H_B->GetBinContent(CutIndex+1)>=H_A->GetBinContent(CutIndex+1) || H_C->GetBinContent(CutIndex+1)>=H_A->GetBinContent(CutIndex+1))continue; - - printf("CutIndex=%3i Pt>%6.2f I>%6.2f --> D=%6.2E P=%6.2E+-%6.2E(%6.2f+%6.2f) (%f Sigma)\n",CutIndex, HCuts_Pt->GetBinContent(CutIndex+1),HCuts_I->GetBinContent(CutIndex+1),D,P,Err,H_P->GetBinError(CutIndex+1),sqrt(D),NSigma); - DataVsPred->SetBinContent(DataVsPred->GetXaxis()->FindBin(HCuts_Pt->GetBinContent(CutIndex+1)), DataVsPred->GetYaxis()->FindBin(HCuts_I->GetBinContent(CutIndex+1)), NSigma); -// DataVsPred->Fill(HCuts_Pt->GetBinContent(CutIndex+1), HCuts_I->GetBinContent(CutIndex+1), NSigma); - } - DataVsPred->SetMinimum(-3); - DataVsPred->SetMaximum(3); - Histos[0] = DataVsPred; legend.push_back("Observed"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "PtCut", "ICut", 0,0, 0,0); - //DrawLegend(Histos,legend,LegendTitle,"P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Prediction_PredVsObs"); - delete c1; - - PredMap->SetMinimum(1E-2); - DataMap->SetMinimum(1E-2); - PredMap->SetMaximum(std::max(PredMap->GetMaximum(),DataMap->GetMaximum())); - DataMap->SetMaximum(std::max(PredMap->GetMaximum(),DataMap->GetMaximum())); - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - c1->SetLogz(true); - Histos[0] = PredMap; legend.push_back("Observed"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "PtCut", "ICut", 0,0, 0,0); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Prediction_Pred"); - delete c1; - - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - c1->SetLogz(true); - Histos[0] = DataMap; legend.push_back("Observed"); - DrawSuperposedHistos((TH1**)Histos, legend, "COLZ", "PtCut", "ICut", 0,0, 0,0); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,SavePath,"Prediction_Data"); - delete c1; - -*/ - -} - - - -void Make2DPlot_Core(string InputPattern, unsigned int CutIndex){ - TCanvas* c1; - TLegend* leg; - - - string Input = InputPattern + "Histos.root"; - string outpath = InputPattern; - MakeDirectories(outpath); - - TFile* InputFile = new TFile(Input.c_str()); - TFile* InputFileData = new TFile((InputPattern + "Histos_Data.root").c_str()); - - - TH1D* Gluino300_Mass = GetCutIndexSliceFromTH2((TH2D*)GetObjectFromPath(InputFile, "Gluino300/Mass" ), CutIndex, "G300Mass"); - TH2D* Gluino300_PIs = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino300/AS_PIs" ), CutIndex, "G300PIs_zy"); - TH2D* Gluino300_PIm = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino300/AS_PIm" ), CutIndex, "G300PIm_zy"); - TH2D* Gluino300_TOFIs= GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino300/AS_TOFIs"), CutIndex, "G300TIs_zy"); - TH2D* Gluino300_TOFIm= GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino300/AS_TOFIm"), CutIndex, "G300TIm_zy"); - TH1D* Gluino500_Mass = GetCutIndexSliceFromTH2((TH2D*)GetObjectFromPath(InputFile, "Gluino500/Mass" ), CutIndex, "G500Mass"); - TH2D* Gluino500_PIs = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino500/AS_PIs" ), CutIndex, "G500PIs_zy"); - TH2D* Gluino500_PIm = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino500/AS_PIm" ), CutIndex, "G500PIm_zy"); - TH2D* Gluino500_TOFIs= GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino500/AS_TOFIs"), CutIndex, "G500TIs_zy"); - TH2D* Gluino500_TOFIm= GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino500/AS_TOFIm"), CutIndex, "G500TIm_zy"); - TH1D* Gluino800_Mass = GetCutIndexSliceFromTH2((TH2D*)GetObjectFromPath(InputFile, "Gluino800/Mass" ), CutIndex, "G800Mass"); - TH2D* Gluino800_PIs = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino800/AS_PIs" ), CutIndex, "G800PIs_zy"); - TH2D* Gluino800_PIm = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino800/AS_PIm" ), CutIndex, "G800PIm_zy"); - TH2D* Gluino800_TOFIs= GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino800/AS_TOFIs"), CutIndex, "G800TIs_zy"); - TH2D* Gluino800_TOFIm= GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFile, "Gluino800/AS_TOFIm"), CutIndex, "G800TIm_zy"); - TH2D* Data_PIs = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFileData, "Data/AS_PIs" ), CutIndex); - TH2D* Data_PIm = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFileData, "Data/AS_PIm" ), CutIndex); - TH2D* Data_TOFIs = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFileData, "Data/AS_TOFIs" ), CutIndex); - TH2D* Data_TOFIm = GetCutIndexSliceFromTH3((TH3D*)GetObjectFromPath(InputFileData, "Data/AS_TOFIm" ), CutIndex); - TH2D* Data_PIm_075 = (TH2D*)Data_PIm->Clone(); Data_PIm_075->Reset(); - TH2D* Data_PIm_150 = (TH2D*)Data_PIm->Clone(); Data_PIm_150->Reset(); - TH2D* Data_PIm_300 = (TH2D*)Data_PIm->Clone(); Data_PIm_300->Reset(); - TH2D* Data_PIm_450 = (TH2D*)Data_PIm->Clone(); Data_PIm_450->Reset(); - TH2D* Data_PIm_All = (TH2D*)Data_PIm->Clone(); Data_PIm_All->Reset(); - - for(unsigned int i=0;i<(unsigned int)Data_PIm->GetNbinsX();i++){ - for(unsigned int j=0;j<(unsigned int)Data_PIm->GetNbinsY();j++){ - if(Data_PIm->GetBinContent(i,j)<=0)continue; - double M = GetMass(Data_PIm->GetXaxis ()->GetBinCenter(i), Data_PIm->GetYaxis ()->GetBinCenter(j)); - if(isnan(M))continue; - if (M<100){ Data_PIm_075->SetBinContent(i,j, Data_PIm->GetBinContent(i,j) ); } - else if(M<200){ Data_PIm_150->SetBinContent(i,j, Data_PIm->GetBinContent(i,j) ); } - else if(M<300){ Data_PIm_300->SetBinContent(i,j, Data_PIm->GetBinContent(i,j) ); } - else if(M<395){ Data_PIm_450->SetBinContent(i,j, Data_PIm->GetBinContent(i,j) ); } - else { Data_PIm_All->SetBinContent(i,j, Data_PIm->GetBinContent(i,j) ); } - }} - - Gluino300_Mass = (TH1D*) Gluino300_Mass->Rebin(2); - Gluino500_Mass = (TH1D*) Gluino500_Mass->Rebin(2); - Gluino800_Mass = (TH1D*) Gluino800_Mass->Rebin(2); - - double Min = 1E-3; - double Max = 1E4; - - char YAxisLegend[1024]; - sprintf(YAxisLegend,"#tracks / %2.0f GeV/c^{2}",Gluino300_Mass->GetXaxis()->GetBinWidth(1)); - - - c1 = new TCanvas("c1","c1", 600, 600); - Gluino300_Mass->SetAxisRange(0,1250,"X"); - Gluino300_Mass->SetAxisRange(Min,Max,"Y"); - Gluino300_Mass->SetTitle(""); - Gluino300_Mass->SetStats(kFALSE); - Gluino300_Mass->GetXaxis()->SetTitle("m (GeV/c^{2})"); - Gluino300_Mass->GetYaxis()->SetTitle(YAxisLegend); - Gluino300_Mass->SetLineWidth(2); - Gluino300_Mass->SetLineColor(Color[0]); - Gluino300_Mass->SetMarkerColor(Color[0]); - Gluino300_Mass->SetMarkerStyle(Marker[0]); - Gluino300_Mass->Draw("HIST E1"); - Gluino500_Mass->Draw("HIST E1 same"); - Gluino500_Mass->SetLineColor(Color[1]); - Gluino500_Mass->SetMarkerColor(Color[1]); - Gluino500_Mass->SetMarkerStyle(Marker[1]); - Gluino500_Mass->SetLineWidth(2); - Gluino800_Mass->SetLineWidth(2); - Gluino800_Mass->SetLineColor(Color[2]); - Gluino800_Mass->SetMarkerColor(Color[2]); - Gluino800_Mass->SetMarkerStyle(Marker[2]); - Gluino800_Mass->Draw("HIST E1 same"); - c1->SetLogy(true); - - TLine* line300 = new TLine(300, Min, 300, Max); - line300->SetLineWidth(2); - line300->SetLineColor(Color[0]); - line300->SetLineStyle(2); - line300->Draw("same"); - - TLine* line500 = new TLine(500, Min, 500, Max); - line500->SetLineWidth(2); - line500->SetLineColor(Color[1]); - line500->SetLineStyle(2); - line500->Draw("same"); - - TLine* line800 = new TLine(800, Min, 800, Max); - line800->SetLineWidth(2); - line800->SetLineColor(Color[2]); - line800->SetLineStyle(2); - line800->Draw("same"); - - leg = new TLegend(0.80,0.93,0.80 - 0.20,0.93 - 6*0.03); - leg->SetHeader(LegendFromType(InputPattern).c_str()); - leg->SetFillColor(0); - leg->SetBorderSize(0); - leg->AddEntry(Gluino300_Mass, "Gluino300" ,"P"); - leg->AddEntry(Gluino500_Mass, "Gluino500" ,"P"); - leg->AddEntry(Gluino800_Mass, "Gluino800" ,"P"); - leg->Draw(); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Gluino_Mass"); - delete c1; - - - c1 = new TCanvas("c1","c1", 600, 600); - c1->SetLogz(true); - Data_PIs->SetTitle(""); - Data_PIs->SetStats(kFALSE); - Data_PIs->GetXaxis()->SetTitle("p (GeV/c)"); - Data_PIs->GetYaxis()->SetTitle(dEdxS_Legend.c_str()); - Data_PIs->SetAxisRange(0,1250,"X"); - Data_PIs->SetMarkerSize (0.2); - Data_PIs->SetMarkerColor(Color[4]); - Data_PIs->SetFillColor(Color[4]); - Data_PIs->Draw("COLZ"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Data_PIs", true); - delete c1; - - c1 = new TCanvas("c1","c1", 600, 600); - c1->SetLogz(true); - Data_PIm->SetTitle(""); - Data_PIm->SetStats(kFALSE); - Data_PIm->GetXaxis()->SetTitle("p (GeV/c)"); - Data_PIm->GetYaxis()->SetTitle(dEdxM_Legend.c_str()); - Data_PIm->SetAxisRange(0,1250,"X"); - Data_PIm->SetAxisRange(0,15,"Y"); - Data_PIm->SetMarkerSize (0.2); - Data_PIm->SetMarkerColor(Color[4]); - Data_PIm->SetFillColor(Color[4]); - Data_PIm->Draw("COLZ"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Data_PIm", true); - delete c1; - - - c1 = new TCanvas("c1","c1", 600, 600); - c1->SetLogz(true); - Data_TOFIs->SetTitle(""); - Data_TOFIs->SetStats(kFALSE); - Data_TOFIs->GetXaxis()->SetTitle("1/#beta_{TOF}"); - Data_TOFIs->GetYaxis()->SetTitle(dEdxS_Legend.c_str()); - Data_TOFIs->SetAxisRange(0,1250,"X"); - Data_TOFIs->SetMarkerSize (0.2); - Data_TOFIs->SetMarkerColor(Color[4]); - Data_TOFIs->SetFillColor(Color[4]); - Data_TOFIs->Draw("COLZ"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Data_TOFIs", true); - delete c1; - - - c1 = new TCanvas("c1","c1", 600, 600); - c1->SetLogz(true); - Data_TOFIm->SetTitle(""); - Data_TOFIm->SetStats(kFALSE); - Data_TOFIm->GetXaxis()->SetTitle("1/#beta_{TOF}"); - Data_TOFIm->GetYaxis()->SetTitle(dEdxM_Legend.c_str()); - Data_TOFIm->SetAxisRange(0,15,"Y"); - Data_TOFIm->SetMarkerSize (0.2); - Data_TOFIm->SetMarkerColor(Color[4]); - Data_TOFIm->SetFillColor(Color[4]); - Data_TOFIm->Draw("COLZ"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Data_TOFIm", true); - delete c1; - - c1 = new TCanvas("c1","c1", 600, 600); - Gluino800_PIs->SetTitle(""); - Gluino800_PIs->SetStats(kFALSE); - Gluino800_PIs->GetXaxis()->SetTitle("p (GeV/c)"); - Gluino800_PIs->GetYaxis()->SetTitle(dEdxS_Legend.c_str()); - Gluino800_PIs->SetAxisRange(0,1250,"X"); - Gluino800_PIs->Scale(1/Gluino800_PIs->Integral()); - Gluino800_PIs->SetMarkerSize (0.2); - Gluino800_PIs->SetMarkerColor(Color[2]); - Gluino800_PIs->SetFillColor(Color[2]); - Gluino800_PIs->Draw("BOX"); - Gluino500_PIs->Scale(1/Gluino500_PIs->Integral()); - Gluino500_PIs->SetMarkerSize (0.2); - Gluino500_PIs->SetMarkerColor(Color[1]); - Gluino500_PIs->SetFillColor(Color[1]); - Gluino500_PIs->Draw("BOX same"); - Gluino300_PIs->Scale(1/Gluino300_PIs->Integral()); - Gluino300_PIs->SetMarkerSize (0.2); - Gluino300_PIs->SetMarkerColor(Color[0]); - Gluino300_PIs->SetFillColor(Color[0]); - Gluino300_PIs->Draw("BOX same"); - - leg = new TLegend(0.80,0.93,0.80 - 0.20,0.93 - 6*0.03); - leg->SetHeader(LegendFromType(InputPattern).c_str()); - leg->SetFillColor(0); - leg->SetBorderSize(0); - leg->AddEntry(Gluino300_PIs, "Gluino300" ,"F"); - leg->AddEntry(Gluino500_PIs, "Gluino500" ,"F"); - leg->AddEntry(Gluino800_PIs, "Gluino800" ,"F"); - leg->Draw(); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Gluino_PIs", true); - delete c1; - - c1 = new TCanvas("c1","c1", 600, 600); - Gluino300_PIm->SetTitle(""); - Gluino300_PIm->SetStats(kFALSE); - Gluino300_PIm->GetXaxis()->SetTitle("p (GeV/c)"); - Gluino300_PIm->GetYaxis()->SetTitle(dEdxM_Legend.c_str()); - Gluino300_PIm->SetAxisRange(0,1250,"X"); - Gluino300_PIm->SetAxisRange(0,15,"Y"); - Gluino300_PIm->Scale(1/Gluino300_PIm->Integral()); - Gluino300_PIm->SetMarkerSize (0.2); - Gluino300_PIm->SetMarkerColor(Color[2]); - Gluino300_PIm->SetFillColor(Color[2]); - Gluino300_PIm->Draw("BOX"); - Gluino500_PIm->Scale(1/Gluino500_PIm->Integral()); - Gluino500_PIm->SetMarkerSize (0.2); - Gluino500_PIm->SetMarkerColor(Color[1]); - Gluino500_PIm->SetFillColor(Color[1]); - Gluino500_PIm->Draw("BOX same"); - Gluino800_PIm->Scale(1/Gluino800_PIm->Integral()); - Gluino800_PIm->SetMarkerSize (0.2); - Gluino800_PIm->SetMarkerColor(Color[0]); - Gluino800_PIm->SetFillColor(Color[0]); - Gluino800_PIm->Draw("BOX same"); - - TF1* MassLine800 = GetMassLine(800, true); - MassLine800->SetLineColor(kGray+3); - MassLine800->SetLineWidth(2); - MassLine800->Draw("same"); - TF1* MassLine500 = GetMassLine(500, true); - MassLine500->SetLineColor(kBlue-7); - MassLine500->SetLineWidth(2); - MassLine500->Draw("same"); - TF1* MassLine300 = GetMassLine(300, true); - MassLine300->SetLineColor(kRed-7); - MassLine300->SetLineWidth(2); - MassLine300->Draw("same"); - - leg = new TLegend(0.80,0.93,0.80 - 0.20,0.93 - 6*0.03); - leg->SetHeader(LegendFromType(InputPattern).c_str()); - leg->SetFillColor(0); - leg->SetBorderSize(0); - leg->AddEntry(Gluino300_PIm, "Gluino300" ,"F"); - leg->AddEntry(Gluino500_PIm, "Gluino500" ,"F"); - leg->AddEntry(Gluino800_PIm, "Gluino800" ,"F"); - leg->Draw(); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Gluino_PIm", true); - delete c1; - - c1 = new TCanvas("c1","c1", 600, 600); - Gluino800_TOFIs->SetTitle(""); - Gluino800_TOFIs->SetStats(kFALSE); - Gluino800_TOFIs->GetXaxis()->SetTitle("1/#beta_{TOF}"); - Gluino800_TOFIs->GetYaxis()->SetTitle(dEdxS_Legend.c_str()); - Gluino800_TOFIs->SetAxisRange(0,1250,"X"); - Gluino800_TOFIs->Scale(1/Gluino800_TOFIs->Integral()); - Gluino800_TOFIs->SetMarkerSize (0.2); - Gluino800_TOFIs->SetMarkerColor(Color[2]); - Gluino800_TOFIs->SetFillColor(Color[2]); - Gluino800_TOFIs->Draw("BOX"); - Gluino500_TOFIs->Scale(1/Gluino500_TOFIs->Integral()); - Gluino500_TOFIs->SetMarkerSize (0.2); - Gluino500_TOFIs->SetMarkerColor(Color[1]); - Gluino500_TOFIs->SetFillColor(Color[1]); - Gluino500_TOFIs->Draw("BOX same"); - Gluino300_TOFIs->Scale(1/Gluino300_TOFIs->Integral()); - Gluino300_TOFIs->SetMarkerSize (0.2); - Gluino300_TOFIs->SetMarkerColor(Color[0]); - Gluino300_TOFIs->SetFillColor(Color[0]); - Gluino300_TOFIs->Draw("BOX same"); - - leg = new TLegend(0.80,0.93,0.80 - 0.20,0.93 - 6*0.03); - leg->SetHeader(LegendFromType(InputPattern).c_str()); - leg->SetFillColor(0); - leg->SetBorderSize(0); - leg->AddEntry(Gluino300_TOFIs, "Gluino300" ,"F"); - leg->AddEntry(Gluino500_TOFIs, "Gluino500" ,"F"); - leg->AddEntry(Gluino800_TOFIs, "Gluino800" ,"F"); - leg->Draw(); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Gluino_TOFIs", true); - delete c1; - - c1 = new TCanvas("c1","c1", 600, 600); - Gluino800_TOFIm->SetTitle(""); - Gluino800_TOFIm->SetStats(kFALSE); - Gluino800_TOFIm->GetXaxis()->SetTitle("1/#beta_{TOF}"); - Gluino800_TOFIm->GetYaxis()->SetTitle(dEdxM_Legend.c_str()); - Gluino800_TOFIm->SetAxisRange(0,1250,"X"); - Gluino800_TOFIm->SetAxisRange(0,15,"Y"); - Gluino800_TOFIm->Scale(1/Gluino800_TOFIm->Integral()); - Gluino800_TOFIm->SetMarkerSize (0.2); - Gluino800_TOFIm->SetMarkerColor(Color[2]); - Gluino800_TOFIm->SetFillColor(Color[2]); - Gluino800_TOFIm->Draw("BOX"); - Gluino500_TOFIm->Scale(1/Gluino500_TOFIm->Integral()); - Gluino500_TOFIm->SetMarkerSize (0.2); - Gluino500_TOFIm->SetMarkerColor(Color[1]); - Gluino500_TOFIm->SetFillColor(Color[1]); - Gluino500_TOFIm->Draw("BOX same"); - Gluino300_TOFIm->Scale(1/Gluino300_TOFIm->Integral()); - Gluino300_TOFIm->SetMarkerSize (0.2); - Gluino300_TOFIm->SetMarkerColor(Color[0]); - Gluino300_TOFIm->SetFillColor(Color[0]); - Gluino300_TOFIm->Draw("BOX same"); - - leg = new TLegend(0.80,0.93,0.80 - 0.20,0.93 - 6*0.03); - leg->SetHeader(LegendFromType(InputPattern).c_str()); - leg->SetFillColor(0); - leg->SetBorderSize(0); - leg->AddEntry(Gluino300_TOFIm, "Gluino300" ,"F"); - leg->AddEntry(Gluino500_TOFIm, "Gluino500" ,"F"); - leg->AddEntry(Gluino800_TOFIm, "Gluino800" ,"F"); - leg->Draw(); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Gluino_TOFIm", true); - delete c1; - - c1 = new TCanvas("c1","c1", 600, 600); - Data_PIm_075->SetTitle(""); - Data_PIm_075->SetStats(kFALSE); - Data_PIm_075->GetXaxis()->SetTitle("p (GeV/c)"); - Data_PIm_075->GetYaxis()->SetTitle(dEdxM_Legend.c_str()); -// Data_PIm_075->SetAxisRange(0,15,"Y"); -// Data_PIm_075->SetAxisRange(0,1250,"X"); - Data_PIm_075->SetAxisRange(3,10,"Y"); - Data_PIm_075->SetAxisRange(0,2000,"X"); - Data_PIm_075->SetMarkerSize (0.6); - Data_PIm_075->SetMarkerColor(Color[4]); - Data_PIm_075->SetMarkerStyle(Marker[4]); - Data_PIm_075->SetFillColor(Color[4]); - Data_PIm_075->Draw(""); - Data_PIm_150->SetMarkerSize (0.8); - Data_PIm_150->SetMarkerColor(Color[3]); - Data_PIm_150->SetMarkerStyle(Marker[3]); - Data_PIm_150->SetFillColor(Color[3]); - Data_PIm_150->Draw("same"); - Data_PIm_300->SetMarkerSize (1.0); - Data_PIm_300->SetMarkerColor(Color[2]); - Data_PIm_300->SetMarkerStyle(Marker[2]); - Data_PIm_300->SetFillColor(Color[2]); - Data_PIm_300->Draw("same"); - Data_PIm_450->SetMarkerSize (1.2); - Data_PIm_450->SetMarkerColor(Color[1]); - Data_PIm_450->SetMarkerStyle(Marker[1]); - Data_PIm_450->SetFillColor(Color[1]); - Data_PIm_450->Draw("same"); - Data_PIm_All->SetMarkerSize (1.4); - Data_PIm_All->SetMarkerColor(Color[0]); - Data_PIm_All->SetFillColor(Color[0]); - Data_PIm_All->Draw("same"); - - for(double m=100;m<1000;m+=100){ - TF1* MassLine = GetMassLine(m); - MassLine->SetLineColor(1); - MassLine->SetLineWidth(1); - MassLine->Draw("same"); - } - - leg = new TLegend(0.80,0.93,0.80 - 0.30,0.93 - 6*0.03); - leg->SetHeader(LegendFromType(InputPattern).c_str()); - leg->SetFillColor(0); - leg->SetBorderSize(0); - leg->AddEntry(Data_PIm_075, "M < 100 GeV","P"); - leg->AddEntry(Data_PIm_150, "100 < M < 200 GeV","P"); - leg->AddEntry(Data_PIm_300, "200 < M < 300 GeV","P"); - leg->AddEntry(Data_PIm_450, "300 < M < 400 GeV","P"); - leg->AddEntry(Data_PIm_All, "400 < M GeV" ,"P"); - leg->Draw(); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1, outpath, "Data_PIm_Colored", true); - delete c1; -} - -void MassPrediction(string InputPattern, unsigned int CutIndex, string HistoSuffix) -{ - bool IsTkOnly = (InputPattern.find("Type0",0) legend; - TCanvas* c1; - - char Buffer[2048]; - sprintf(Buffer,"%s/Histos_Data.root",InputPattern.c_str()); - - InputFile_Data = new TFile(Buffer); - - if(!InputFile_Data || InputFile_Data->IsZombie() || !InputFile_Data->IsOpen() || InputFile_Data->TestBit(TFile::kRecovered) )return; - TH1D* Pred = ((TH2D*)GetObjectFromPath(InputFile_Data, string("Pred_") + HistoSuffix ))->ProjectionY("TmpPredMass" ,CutIndex+1,CutIndex+1,"o"); - TH1D* Data = ((TH2D*)GetObjectFromPath(InputFile_Data, string("Data/") + HistoSuffix ))->ProjectionY("TmpDataMass" ,CutIndex+1,CutIndex+1,"o"); - - TFile* InputFile = new TFile((InputPattern+"/Histos.root").c_str()); - TH1D* Gluino600 = ((TH2D*)GetObjectFromPath(InputFile, string("Gluino600/") + HistoSuffix ))->ProjectionY("TmpG600Mass" ,CutIndex+1,CutIndex+1,"o"); - TH1D* GMStau156 = ((TH2D*)GetObjectFromPath(InputFile, string("GMStau156/") + HistoSuffix ))->ProjectionY("TmpS156Mass" ,CutIndex+1,CutIndex+1,"o"); - - TFile* InputFile_MC = new TFile((InputPattern+"/Histos_MC.root").c_str()); - TH1D* MC = ((TH2D*)GetObjectFromPath(InputFile_MC, string("MCTr/") + HistoSuffix ))->ProjectionY("TmpMCMass" ,CutIndex+1,CutIndex+1,"o"); - TH1D* MCPred = ((TH2D*)GetObjectFromPath(InputFile_MC, string("Pred_") + HistoSuffix ))->ProjectionY("TmpMCPred" ,CutIndex+1,CutIndex+1,"o"); - - TH1D* H_A = (TH1D*)GetObjectFromPath(InputFile_Data, "H_A"); - TH1D* H_B = (TH1D*)GetObjectFromPath(InputFile_Data, "H_B"); - TH1D* H_C = (TH1D*)GetObjectFromPath(InputFile_Data, "H_C"); - TH1D* H_D = (TH1D*)GetObjectFromPath(InputFile_Data, "H_D"); - TH1D* H_E = (TH1D*)GetObjectFromPath(InputFile_Data, "H_E"); - TH1D* H_F = (TH1D*)GetObjectFromPath(InputFile_Data, "H_F"); - TH1D* H_G = (TH1D*)GetObjectFromPath(InputFile_Data, "H_G"); - TH1D* H_H = (TH1D*)GetObjectFromPath(InputFile_Data, "H_H"); - TH1D* H_P = (TH1D*)GetObjectFromPath(InputFile_Data, "H_P"); - printf("OBSERVED EVENTS = %6.2E\n",H_D->GetBinContent(CutIndex+1)); - printf("PREDICTED EVENTS = %6.2E+-%6.2E\n",H_P->GetBinContent(CutIndex+1), H_P->GetBinError(CutIndex+1)); - - - //MCPred->Scale(H_P->GetBinContent(CutIndex+1)/MC->Integral()); - //MC ->Scale(H_P->GetBinContent(CutIndex+1)/MC->Integral()); - - MC ->Scale(H_P->GetBinContent(CutIndex+1)/MCPred->Integral()); - MCPred->Scale(H_P->GetBinContent(CutIndex+1)/MCPred->Integral()); - - for(double M=0;M<=1000;M+=200){ - double D,P,Perr; - D = Data->Integral( Data->GetXaxis()->FindBin(M), Data->GetXaxis()->FindBin(2000.0)); - P = Pred->Integral( Pred->GetXaxis()->FindBin(M), Pred->GetXaxis()->FindBin(2000.0)); - Perr = 0; for(int i=Pred->GetXaxis()->FindBin(M);iGetXaxis()->FindBin(2000.0);i++){ Perr += pow(Pred->GetBinError(i),2); } Perr = sqrt(Perr); - double MD,MDerr, MP,MPerr; - MD = MC->Integral( MC->GetXaxis()->FindBin(M), MC->GetXaxis()->FindBin(2000.0)); - MP = MCPred->Integral( MCPred->GetXaxis()->FindBin(M), MCPred->GetXaxis()->FindBin(2000.0)); - MDerr = 0; for(int i=MC->GetXaxis()->FindBin(M);iGetXaxis()->FindBin(2000.0);i++){ MDerr += pow(MC->GetBinError(i),2); } MDerr = sqrt(MDerr); - MPerr = 0; for(int i=MCPred->GetXaxis()->FindBin(M);iGetXaxis()->FindBin(2000.0);i++){ MPerr += pow(MCPred->GetBinError(i),2); } MPerr = sqrt(MPerr); - printf("%4.0f Obs=%9.3f Data-Pred = %9.3f +- %8.3f(syst+stat) %9.3f (syst) %9.3f (stat) MC=%9.3f+-%8.3f MC-Pred = %8.3f +- %9.3f (syst+stat) %9.3f (syst) %9.3f (stat)\n", M, D, P, sqrt(Perr*Perr + pow(P*(2*RMS),2)), P*(2*RMS), Perr, MD, MDerr, MP, sqrt(MPerr*MPerr + pow(MP*(2*RMS),2)), MP*(2*RMS), MPerr ); - } - printf("FullSpectrum --> D=%9.3f P = %9.3f +- %6.3f(stat) +- %6.3f(syst) (=%6.3f)\n", Data->Integral(), Pred->Integral(), 0.0, 0.0, 0.0 ); - printf("UnderFlow = %6.2f OverFlow = %6.2f\n", Pred->GetBinContent(0), Pred->GetBinContent(Pred->GetNbinsX()+1) ); - - Pred->Rebin(4); - Data->Rebin(4); - TH1D* Signal = Gluino600; - if(!IsTkOnly)Signal = GMStau156; - Signal->Rebin(4); - MC->Rebin(4); - MCPred->Rebin(4); - - double Max = 2.0 * std::max(std::max(Data->GetMaximum(), Pred->GetMaximum()), Signal->GetMaximum()); - double Min = 0.01;// 0.1 * std::min(0.01,Pred->GetMaximum()); - - TLegend* leg; - c1 = new TCanvas("c1","c1,",600,600); - - char YAxisLegend[1024]; - sprintf(YAxisLegend,"Tracks / %2.0f GeV/c^{2}",Data->GetXaxis()->GetBinWidth(1)); - - TH1D* PredErr = (TH1D*) Pred->Clone("PredErr"); - TH1D* MCPredErr = (TH1D*) MCPred->Clone("MCPredErr"); - for(unsigned int i=0;i<(unsigned int)Pred->GetNbinsX();i++){ - double error = sqrt(pow(PredErr->GetBinError(i),2) + pow(PredErr->GetBinContent(i)*2*RMS,2)); - PredErr->SetBinError(i,error); - if(PredErr->GetBinContent(i)5){for(unsigned int j=i+1;j<(unsigned int)PredErr->GetNbinsX();j++)PredErr->SetBinContent(j,0);} - - error = sqrt(pow(MCPredErr->GetBinError(i),2) + pow(MCPredErr->GetBinContent(i)*2*RMS,2)); - MCPredErr->SetBinError(i,error); - if(MCPredErr->GetBinContent(i)5){for(unsigned int j=i+1;j<(unsigned int)MCPredErr->GetNbinsX();j++)MCPredErr->SetBinContent(j,0);} - } - PredErr->SetLineColor(8); - PredErr->SetFillColor(8); - PredErr->SetFillStyle(3001); - PredErr->SetMarkerStyle(22); - PredErr->SetMarkerColor(2); - PredErr->SetMarkerSize(1.0); - PredErr->GetXaxis()->SetNdivisions(505); - PredErr->SetTitle(""); - PredErr->SetStats(kFALSE); - PredErr->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - PredErr->GetYaxis()->SetTitle(YAxisLegend); - PredErr->GetYaxis()->SetTitleOffset(1.50); - PredErr->SetMaximum(Max); - PredErr->SetMinimum(Min); - PredErr->SetAxisRange(0,1400,"X"); - PredErr->Draw("AXIS"); - - Signal->SetMarkerStyle(21); - Signal->SetMarkerColor(4); - Signal->SetMarkerSize(1.5); - Signal->SetLineColor(4); - Signal->SetFillColor(38); - Signal->Draw("same HIST"); - - MCPredErr->SetLineColor(5); - MCPredErr->SetFillColor(5); - MCPredErr->SetFillStyle(3017); - MCPredErr->SetMarkerStyle(23); - MCPredErr->SetMarkerColor(5); - MCPredErr->SetMarkerSize(1.0); - MCPredErr->Draw("same E5"); - - MCPred->SetMarkerStyle(23); - MCPred->SetMarkerColor(5); - MCPred->SetMarkerSize(1.5); - MCPred->SetLineColor(5); - MCPred->SetFillColor(0); - MCPred->Draw("same HIST P"); - - //MC->SetFillStyle(3002); - //MC->SetLineColor(22); - //MC->SetFillColor(11); - //MC->SetMarkerStyle(0); - //MC->Draw("same HIST E1"); - PredErr->Draw("same E5"); - - Pred->SetMarkerStyle(22); - Pred->SetMarkerColor(2); - Pred->SetMarkerSize(1.5); - Pred->SetLineColor(2); - Pred->SetFillColor(0); - Pred->Draw("same HIST P"); - - Data->SetBinContent(Data->GetNbinsX(), Data->GetBinContent(Data->GetNbinsX()) + Data->GetBinContent(Data->GetNbinsX()+1)); - Data->SetMarkerStyle(20); - Data->SetMarkerColor(1); - Data->SetMarkerSize(1.0); - Data->SetLineColor(1); - Data->SetFillColor(0); - Data->Draw("E1 same"); - - leg = new TLegend(0.79,0.93,0.40,0.68); - leg->SetHeader(LegendFromType(InputPattern).c_str()); - leg->SetFillColor(0); - leg->SetBorderSize(0); - TH1D* PredLeg = (TH1D*) Pred->Clone("RescLeg"); - PredLeg->SetFillColor(PredErr->GetFillColor()); - PredLeg->SetFillStyle(PredErr->GetFillStyle()); - leg->AddEntry(Data, "Data" ,"P"); - leg->AddEntry(PredLeg, "Data-based SM prediction" ,"PF"); - //leg->AddEntry(MC, "Simulation" ,"LF"); - TH1D* MCPredLeg = (TH1D*) MCPred->Clone("RescMCLeg"); - MCPredLeg->SetFillColor(MCPredErr->GetFillColor()); - MCPredLeg->SetFillStyle(MCPredErr->GetFillStyle()); - leg->AddEntry(MCPredLeg, "SM prediction (MC)" ,"PF"); - if(IsTkOnly)leg->AddEntry(Signal, "MC - Gluino (M=600 GeV/c^{2})" ,"F"); - else leg->AddEntry(Signal, "MC - Stau (M=156 GeV/c^{2})" ,"F"); - leg->Draw(); - - DrawPreliminary(IntegratedLuminosity); - c1->SetLogy(true); - SaveCanvas(c1, outpath, string("Rescale_") + HistoSuffix); - delete c1; - InputFile->Close(); -} - -void MassPredictionTight(string InputPattern, unsigned int CutIndex, string HistoSuffix) -{ - bool IsTkOnly = (InputPattern.find("Type0",0) legend; - TCanvas* c1; - - char Buffer[2048]; - sprintf(Buffer,"%s/Histos_Data.root",InputPattern.c_str()); - InputFile_Data = new TFile(Buffer); - if(!InputFile_Data || InputFile_Data->IsZombie() || !InputFile_Data->IsOpen() || InputFile_Data->TestBit(TFile::kRecovered) )return; - TH1D* Pred = ((TH2D*)GetObjectFromPath(InputFile_Data, string("Pred_") + HistoSuffix ))->ProjectionY("TmpPredMass" ,CutIndex+1,CutIndex+1,"o"); - TH1D* Data = ((TH2D*)GetObjectFromPath(InputFile_Data, string("Data/") + HistoSuffix ))->ProjectionY("TmpDataMass" ,CutIndex+1,CutIndex+1,"o"); - - TFile* InputFile = new TFile((InputPattern+"/Histos.root").c_str()); - TH1D* GMStau247 = ((TH2D*)GetObjectFromPath(InputFile, string("GMStau247/") + HistoSuffix ))->ProjectionY("TmpS247Mass" ,CutIndex+1,CutIndex+1,"o"); - TH1D* GMStau156 = ((TH2D*)GetObjectFromPath(InputFile, string("GMStau156/") + HistoSuffix ))->ProjectionY("TmpS156Mass" ,CutIndex+1,CutIndex+1,"o"); - - TH1D* Gluino800 = ((TH2D*)GetObjectFromPath(InputFile, string("Gluino800/") + HistoSuffix ))->ProjectionY("TmpG800Mass" ,CutIndex+1,CutIndex+1,"o"); - - - Pred->Rebin(4); - Data->Rebin(4); - TH1D* Signal = GMStau156; - if(!IsTkOnly)Signal = GMStau247; - Signal->Rebin(4); - Gluino800->Rebin(4); - - double Max = 10.0 * std::max(std::max(Data->GetMaximum(), Pred->GetMaximum()), std::max(Signal->GetMaximum(), Gluino800->GetMaximum())); - double Min = 0.01;// 0.1 * std::min(0.01,Pred->GetMaximum()); - double maxRange=1200; - - TLegend* leg; - c1 = new TCanvas("c1","c1,",600,600); - - char YAxisLegend[1024]; - sprintf(YAxisLegend,"Tracks / %2.0f GeV/c^{2}",Data->GetXaxis()->GetBinWidth(1)); - - - double predOverFlow=0; - for (int i=Pred->GetNbinsX(); i>0; i--) { - if(Pred->GetBinLowEdge(i)>maxRange) predOverFlow+=Pred->GetBinContent(i); - else {Pred->SetBinContent(i,predOverFlow+Pred->GetBinContent(i)); i=-1;} - } - - double dataOverFlow=0; - for (int i=Data->GetNbinsX(); i=0; i--) { - if(Data->GetBinLowEdge(i)>maxRange) dataOverFlow+=Data->GetBinContent(i); - else { - Data->SetBinContent(i,dataOverFlow+Data->GetBinContent(i)); - Data->SetBinError(i,sqrt(dataOverFlow+Data->GetBinContent(i))); - i=-1; - } - } - - - TH1D* PredErr = (TH1D*) Pred->Clone("PredErr"); - for(unsigned int i=0;i<(unsigned int)Pred->GetNbinsX();i++){ - double error = sqrt(pow(PredErr->GetBinError(i+1),2) + pow(PredErr->GetBinContent(i+1)*2*RMS,2)); - PredErr->SetBinError(i+1,error); - if((PredErr->GetBinContent(i+1)5) || Pred->GetBinLowEdge(i+2)>maxRange){ - for(unsigned int j=i+1;j<(unsigned int)PredErr->GetNbinsX();j++)PredErr->SetBinContent(j+1,0); - i=(unsigned int)Pred->GetNbinsX()+1; - } - } - - PredErr->SetLineColor(8); - PredErr->SetFillColor(8); - PredErr->SetFillStyle(3001); - PredErr->SetMarkerStyle(22); - PredErr->SetMarkerColor(2); - PredErr->SetMarkerSize(1.0); - PredErr->GetXaxis()->SetNdivisions(505); - PredErr->SetTitle(""); - PredErr->SetStats(kFALSE); - PredErr->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - PredErr->GetYaxis()->SetTitle(YAxisLegend); - PredErr->GetYaxis()->SetTitleOffset(1.50); - PredErr->SetMaximum(Max); - PredErr->SetMinimum(Min); - PredErr->SetAxisRange(0,maxRange,"X"); - PredErr->Draw("AXIS"); - - Gluino800->SetMarkerStyle(21); - Gluino800->SetMarkerColor(46); - Gluino800->SetMarkerSize(1.5); - Gluino800->SetLineColor(46); - Gluino800->SetFillColor(46); - Gluino800->Draw("same HIST"); - - Signal->SetMarkerStyle(21); - Signal->SetMarkerColor(4); - Signal->SetMarkerSize(1.5); - Signal->SetLineColor(4); - Signal->SetFillColor(38); - Signal->Draw("same HIST"); - - - PredErr->Draw("same E5"); - - Pred->SetMarkerStyle(22); - Pred->SetMarkerColor(2); - Pred->SetMarkerSize(1.5); - Pred->SetLineColor(2); - Pred->SetFillColor(0); - Pred->Draw("same HIST P"); - - Data->SetBinContent(Data->GetNbinsX(), Data->GetBinContent(Data->GetNbinsX()) + Data->GetBinContent(Data->GetNbinsX()+1)); - Data->SetMarkerStyle(20); - Data->SetMarkerColor(1); - Data->SetMarkerSize(1.0); - Data->SetLineColor(1); - Data->SetFillColor(0); - Data->Draw("E1 same"); - - leg = new TLegend(0.79,0.93,0.40,0.68); - leg->SetHeader(LegendFromType(InputPattern).c_str()); - leg->SetFillColor(0); - leg->SetBorderSize(0); - TH1D* PredLeg = (TH1D*) Pred->Clone("RescLeg"); - PredLeg->SetFillColor(PredErr->GetFillColor()); - PredLeg->SetFillStyle(PredErr->GetFillStyle()); - leg->AddEntry(Data, "Data" ,"P"); - leg->AddEntry(PredLeg, "Data-based prediction" ,"PF"); - if(IsTkOnly)leg->AddEntry(Signal, "MC - Stau (M=156 GeV/c^{2})" ,"F"); - else leg->AddEntry(Signal, "MC - Stau (M=247 GeV/c^{2})" ,"F"); - leg->AddEntry(Gluino800, "MC - Gluino (M=800 GeV/c^{2})" ,"F"); - leg->Draw(); - - DrawPreliminary(IntegratedLuminosity); - c1->SetLogy(true); - SaveCanvas(c1, outpath, string("RescaleTight_") + HistoSuffix); - delete c1; - - InputFile->Close(); -} - - - -int JobIdToIndex(string JobId){ - for(unsigned int s=0;s VectPt; - std::vector VectI; - std::vector VectExpLim; - FILE* pFile = fopen(Input.c_str(),"r"); - if(!pFile){ - printf("Not Found: %s\n",Input.c_str()); - return; - } - - unsigned int Index; - double Pt, I, TOF, MassMin, MassMax; - double NData, NPred, NPredErr, SignalEff; - double ExpLimit; - char Model[256], Tmp[2048]; - while ( ! feof (pFile) ){ - fscanf(pFile,"%s Testing CutIndex= %d (Pt>%lf I>%lf TOF>%lf) %lf %lE expected",Model,&Index,&Pt,&I,&TOF,&MassMin,&MassMax,&NData,&NPred,&NPredErr,&SignalEff,&ExpLimit); - fgets(Tmp, 256 , pFile); -// if(Pt<80 && I<0.38)printf("%s Testing CutIndex= %d (Pt>%f I>%f TOF>%f) %f %E expected %s",Model,Index,Pt,I,TOF,MassMin,MassMax,NData,NPred,NPredErr,SignalEff,ExpLimit, Tmp); -// ExpLimitPlot->SetBinContent(PtMap[Pt],IsMap[I],ExpLimit); - ExpLimitPlot->Fill(Pt,I,ExpLimit); - } - fclose(pFile); - - - TCanvas* c1 = new TCanvas("c1","c1",600,600); - c1->SetLogz(true); - ExpLimitPlot->SetTitle(""); - ExpLimitPlot->SetStats(kFALSE); - ExpLimitPlot->GetXaxis()->SetTitle("Pt Cut"); - ExpLimitPlot->GetYaxis()->SetTitle("I Cut"); - ExpLimitPlot->GetXaxis()->SetTitleOffset(1.1); - ExpLimitPlot->GetYaxis()->SetTitleOffset(1.70); - ExpLimitPlot->GetXaxis()->SetNdivisions(505); - ExpLimitPlot->GetYaxis()->SetNdivisions(505); - ExpLimitPlot->SetMaximum(1E0); - ExpLimitPlot->SetMinimum(1E-2); - ExpLimitPlot->Draw("COLZ"); - c1->SaveAs(Output.c_str()); - delete c1; - return; -} diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step6.C b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step6.C deleted file mode 100644 index ad2f3d12a3b64..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step6.C +++ /dev/null @@ -1,2002 +0,0 @@ -#include - -#include "TROOT.h" -#include "TFile.h" -#include "TDirectory.h" -#include "TChain.h" -#include "TObject.h" -#include "TCanvas.h" -#include "TMath.h" -#include "TLegend.h" -#include "TLegendEntry.h" -#include "TGraph.h" -#include "TMultiGraph.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include "TTree.h" -#include "TF1.h" -#include "TGraphErrors.h" -#include "TGraphAsymmErrors.h" -#include "TCutG.h" -#include "TPaveText.h" -#include "tdrstyle.C" -#include "Analysis_CommonFunction.h" -#include "Analysis_PlotFunction.h" -#include "Analysis_Samples.h" -//#include "CL95.h" -#include "roostats_cl95.C" -#include "nSigma.C" - -using namespace std; - - - -struct stAllInfo{ - double Mass; - double MassMean; - double MassSigma; - double MassCut; - double XSec_Th; - double XSec_Err; - double XSec_Exp; - double XSec_ExpUp; - double XSec_ExpDown; - double XSec_Exp2Up; - double XSec_Exp2Down; - double XSec_Obs; - double Eff; - double Eff_SYSTP; - double Eff_SYSTI; - double Eff_SYSTM; - double Eff_SYSTT; - double Significance; - double Index; - double WP_Pt; - double WP_I; - double WP_TOF; - float NData; - float NPred; - float NPredErr; - float NSign; - - stAllInfo(string path=""){ - Mass=-1; XSec_Th=-1; XSec_Err=-1; XSec_Exp=-1; XSec_ExpUp=-1;XSec_ExpDown=-1;XSec_Exp2Up=-1;XSec_Exp2Down=-1; XSec_Obs=-1; Eff=-1; Eff_SYSTP=-1; Eff_SYSTI=-1; Eff_SYSTM=-1; Eff_SYSTT=-1; - if(path=="")return; - FILE* pFile = fopen(path.c_str(),"r"); - if(!pFile){printf("Can't open %s\n",path.c_str()); return;} - fscanf(pFile,"Mass : %lf\n",&Mass); - fscanf(pFile,"MassMean : %lf\n",&MassMean); - fscanf(pFile,"MassSigma : %lf\n",&MassSigma); - fscanf(pFile,"MassCut : %lf\n",&MassCut); - fscanf(pFile,"Index : %lf\n",&Index); - fscanf(pFile,"WP_Pt : %lf\n",&WP_Pt); - fscanf(pFile,"WP_I : %lf\n",&WP_I); - fscanf(pFile,"WP_TOF : %lf\n",&WP_TOF); - fscanf(pFile,"Eff : %lf\n",&Eff); - fscanf(pFile,"Eff_SystP : %lf\n",&Eff_SYSTP); - fscanf(pFile,"Eff_SystI : %lf\n",&Eff_SYSTI); - fscanf(pFile,"Eff_SystM : %lf\n",&Eff_SYSTM); - fscanf(pFile,"Eff_SystT : %lf\n",&Eff_SYSTT); - fscanf(pFile,"Signif : %lf\n",&Significance); - fscanf(pFile,"XSec_Th : %lf\n",&XSec_Th); - fscanf(pFile,"XSec_Exp : %lf\n",&XSec_Exp); - fscanf(pFile,"XSec_ExpUp : %lf\n",&XSec_ExpUp); - fscanf(pFile,"XSec_ExpDown : %lf\n",&XSec_ExpDown); - fscanf(pFile,"XSec_Exp2Up : %lf\n",&XSec_Exp2Up); - fscanf(pFile,"XSec_Exp2Down: %lf\n",&XSec_Exp2Down); - fscanf(pFile,"XSec_Obs : %lf\n",&XSec_Obs); - fscanf(pFile,"NData : %E\n" ,&NData); - fscanf(pFile,"NPred : %E\n" ,&NPred); - fscanf(pFile,"NPredErr : %E\n" ,&NPredErr); - fscanf(pFile,"NSign : %E\n" ,&NSign); - fclose(pFile); - } - -}; - - -struct stGraph{ - TGraph* Stop; - TGraph* StopN; - TGraph* GluinoF0; - TGraph* GluinoF1; - TGraph* GluinoF5; - TGraph* GluinoNF0; - TGraph* GluinoNF1; - TGraph* GluinoNF5; - TGraph* GMStau; - TGraph* PPStau; - TGraph* DCRho08HyperK; - TGraph* DCRho12HyperK; - TGraph* DCRho16HyperK; - TGraph* GluinoTh; - TGraph* StopTh; - TGraph* GMStauTh; - TCutG* GluinoThErr; - TCutG* StopThErr; -}; - -double PlotMinScale = 0.0005; -double PlotMaxScale = 3; - -TGraph* MakePlot(FILE* pFile, FILE* talkFile, string InputPattern, string syst, string ModelName, int XSectionType=2, string Mass0="", string Mass1="", string Mass2="", string Mass3="", string Mass4="", string Mass5="", string Mass6="", string Mass7="", string Mass8="", string Mass9="",string Mass10="", string Mass11="", string Mass12="", string Mass13=""); - - -stAllInfo Exclusion(string pattern, string modelName, string signal, double Ratio_0C=-1, double Ratio_1C=-1, double Ratio_2C=-1, string syst=""); -int JobIdToIndex(string JobId); - -void GetSignalMeanHSCPPerEvent(string InputPattern, unsigned int CutIndex, double MinRange, double MaxRange); -double FindIntersection(TGraph* obs, TGraph* th, double Min, double Max, double Step, double ThUncertainty=0, bool debug=false); -int ReadXSection(string InputFile, double* Mass, double* XSec, double* Low, double* High, double* ErrLow, double* ErrHigh); -TCutG* GetErrorBand(string name, int N, double* Mass, double* Low, double* High, double MinLow=PlotMinScale, double MaxHigh=PlotMaxScale); -void CheckSignalUncertainty(FILE* pFile, FILE* talkFile, string InputPattern); -void DrawModelLimitWithBand(string InputPattern, string inputmodel); -std::vector GetModels(string inputmodel); -string GetModelName(string inputmodel); -void DrawRatioBands(string InputPattern, string inputmodel); - -double MinRange = 0; -double MaxRange = 1999; - -char Buffer[2048]; - -int CurrentSampleIndex; -string InputPath; -string OutputPath; - -TH1D* MassSign = NULL; -TH1D* MassMCTr = NULL; -TH1D* MassData = NULL; -TH1D* MassPred = NULL; -TH1D* MassSignPDF = NULL; -TH1D* MassPredPDF = NULL; -double FitParam[10]; -TF1* Stau_MMC_Fit = NULL; -TF1* Stop_MMC_Fit = NULL; -TF1* MGStop_MMC_Fit = NULL; -TF1* Gluino_MMC_Fit = NULL; -TF1* Stau_SMC_Fit = NULL; -TF1* Stop_SMC_Fit = NULL; -TF1* MGStop_SMC_Fit = NULL; -TF1* Gluino_SMC_Fit = NULL; - -std::vector signals; -std::vector signalsMeanHSCPPerEvent; -std::vector signalsMeanHSCPPerEvent_SYSTP; -std::vector signalsMeanHSCPPerEvent_SYSTT; -std::vector signalsMeanHSCPPerEvent_SYSTM; -std::vector signalsMeanHSCPPerEvent_SYSTI; - -double RescaleFactor; -double RescaleError; -int Mode=0; -void Analysis_Step6(string MODE="COMPILE", string InputPattern="", string modelName="", string signal="", double Ratio_0C=-1, double Ratio_1C=-1, double Ratio_2C=-1, string syst=""){ - setTDRStyle(); - gStyle->SetPadTopMargin (0.06); - gStyle->SetPadBottomMargin(0.10); - gStyle->SetPadRightMargin (0.18); - gStyle->SetPadLeftMargin (0.12); - gStyle->SetTitleSize(0.04, "XYZ"); - gStyle->SetTitleXOffset(1.1); - gStyle->SetTitleYOffset(1.35); - gStyle->SetPalette(1); - gStyle->SetNdivisions(505,"X"); - gStyle->SetNdivisions(550,"Y"); - - if(MODE=="COMPILE")return; - - if(MODE=="ANALYSE"){ - stAllInfo result = Exclusion(InputPattern, modelName, signal, Ratio_0C, Ratio_1C, Ratio_2C, syst); - return; - } - - string MuPattern = "Results/dedxASmi/combined/Eta15/PtMin45/Type2/"; - string TkPattern = "Results/dedxASmi/combined/Eta15/PtMin45/Type0/"; - - string outpath = string("Results/EXCLUSION/"); - MakeDirectories(outpath); - - std::vector ModelNames; -// ModelNames.push_back("Hyperk"); - ModelNames.push_back("All"); - - for(int i=0;i Models; - Models.push_back("Gluinof1"); - Models.push_back("Gluinof5"); - Models.push_back("GluinoN"); - Models.push_back("Stop"); - Models.push_back("StopN"); - Models.push_back("GMStau"); - Models.push_back("PPStau"); - Models.push_back("DCRho08"); - Models.push_back("DCRho12"); - Models.push_back("DCRho16"); - - for(int i=0;iSetTitle(""); - GluinoXSec->GetYaxis()->SetTitleOffset(1.70); - TCutG* GluinoXSecErr = GetErrorBand("gluinoErr",ThGluinoN,ThGluinoMass,ThGluinoLow,ThGluinoHigh); - - double ThStopMass [100]; double ThStopXSec [100]; double ThStopLow [100]; double ThStopHigh [100]; double ThStopErrLow [100]; double ThStopErrHigh [100]; - int ThStopN = ReadXSection("stop_XSec.txt", ThStopMass,ThStopXSec,ThStopLow,ThStopHigh, ThStopErrLow, ThStopErrHigh); - TGraph* StopXSec = new TGraph(ThStopN,ThStopMass,ThStopXSec); - TGraph* StopXSecLow = new TGraph(ThStopN,ThStopMass,ThStopLow); - StopXSec->SetTitle(""); - StopXSec->GetYaxis()->SetTitleOffset(1.70); - TCutG* StopXSecErr = GetErrorBand("StopErr", ThStopN,ThStopMass,ThStopLow,ThStopHigh); - - - int ThStauN = 9 ; double ThStauMass [100]; double ThStauXSec [100]; double ThStauLow [100]; double ThStauHigh [100]; - ThStauMass[0] = 100; ThStauXSec[0] = 1.3398; ThStauLow[0] = 1.18163; ThStauHigh[0] = 1.48684; - ThStauMass[1] = 126; ThStauXSec[1] = 0.274591; ThStauLow[1] = 0.242982; ThStauHigh[1] = 0.304386; - ThStauMass[2] = 156; ThStauXSec[2] = 0.0645953; ThStauLow[2] = 0.0581651; ThStauHigh[2] = 0.0709262; - ThStauMass[3] = 200; ThStauXSec[3] = 0.0118093; ThStauLow[3] = 0.0109992; ThStauHigh[3] = 0.012632; - ThStauMass[4] = 247; ThStauXSec[4] = 0.00342512; ThStauLow[4] = 0.00324853; ThStauHigh[4] = 0.00358232; - ThStauMass[5] = 308; ThStauXSec[5] = 0.00098447; ThStauLow[5] = 0.00093519; ThStauHigh[5] = 0.00102099; - ThStauMass[6] = 370; ThStauXSec[6] = 0.000353388; ThStauLow[6] = 0.000335826; ThStauHigh[6] = 0.000366819; - ThStauMass[7] = 432; ThStauXSec[7] = 0.000141817; ThStauLow[7] = 0.000134024; ThStauHigh[7] = 0.000147665; - ThStauMass[8] = 494; ThStauXSec[8] = 6.17749e-05; ThStauLow[8] =5.83501e-05 ; ThStauHigh[8] = 6.45963e-05; - TCutG* StauXSecErr = GetErrorBand("StauErr", ThStauN,ThStauMass,ThStauLow,ThStauHigh); - - int ThPPStauN = 6 ; double ThPPStauMass [100]; double ThPPStauXSec [100]; double ThPPStauLow [100]; double ThPPStauHigh [100]; - ThPPStauMass[0] = 100; ThPPStauXSec[0] = 0.038200; ThPPStauLow[0] = 0.037076; ThPPStauHigh[0] = 0.0391443; - ThPPStauMass[1] = 126; ThPPStauXSec[1] = 0.0161; ThPPStauLow[1] = 0.0155927; ThPPStauHigh[1] = 0.016527; - ThPPStauMass[2] = 156; ThPPStauXSec[2] = 0.007040; ThPPStauLow[2] = 0.0067891; ThPPStauHigh[2] = 0.00723151; - ThPPStauMass[3] = 200; ThPPStauXSec[3] = 0.002470; ThPPStauLow[3] = 0.00237277; ThPPStauHigh[3] = 0.00253477; - ThPPStauMass[4] = 247; ThPPStauXSec[4] = 0.001010; ThPPStauLow[4] = 0.00096927; ThPPStauHigh[4] = 0.00103844; - ThPPStauMass[5] = 308; ThPPStauXSec[5] = 0.000353; ThPPStauLow[5] = 0.000335308; ThPPStauHigh[5] = 0.000363699; - TCutG* PPStauXSecErr = GetErrorBand("PPStauErr", ThPPStauN,ThPPStauMass,ThPPStauLow,ThPPStauHigh); - - int ThDCRho08HyperKN = 13; double ThDCRho08HyperKMass [100]; double ThDCRho08HyperKXSec [100]; double ThDCRho08HyperKLow [100]; double ThDCRho08HyperKHigh [100]; - ThDCRho08HyperKMass[0] = 100; ThDCRho08HyperKXSec[0] = 1.405000; ThDCRho08HyperKLow[0] = ThDCRho08HyperKXSec[0]*0.85; ThDCRho08HyperKHigh[0] = ThDCRho08HyperKXSec[0]*1.15; - ThDCRho08HyperKMass[1] = 121; ThDCRho08HyperKXSec[1] = 0.979000; ThDCRho08HyperKLow[1] = ThDCRho08HyperKXSec[1]*0.85; ThDCRho08HyperKHigh[1] = ThDCRho08HyperKXSec[1]*1.15; - ThDCRho08HyperKMass[2] = 182; ThDCRho08HyperKXSec[2] = 0.560000; ThDCRho08HyperKLow[2] = ThDCRho08HyperKXSec[2]*0.85; ThDCRho08HyperKHigh[2] = ThDCRho08HyperKXSec[2]*1.15; - ThDCRho08HyperKMass[3] = 242; ThDCRho08HyperKXSec[3] = 0.489000; ThDCRho08HyperKLow[3] = ThDCRho08HyperKXSec[3]*0.85; ThDCRho08HyperKHigh[3] = ThDCRho08HyperKXSec[3]*1.15; - ThDCRho08HyperKMass[4] = 302; ThDCRho08HyperKXSec[4] = 0.463000; ThDCRho08HyperKLow[4] = ThDCRho08HyperKXSec[4]*0.85; ThDCRho08HyperKHigh[4] = ThDCRho08HyperKXSec[4]*1.15; - ThDCRho08HyperKMass[5] = 350; ThDCRho08HyperKXSec[5] = 0.473000; ThDCRho08HyperKLow[5] = ThDCRho08HyperKXSec[5]*0.85; ThDCRho08HyperKHigh[5] = ThDCRho08HyperKXSec[5]*1.15; - ThDCRho08HyperKMass[6] = 370; ThDCRho08HyperKXSec[6] = 0.48288105; ThDCRho08HyperKLow[6] = ThDCRho08HyperKXSec[6]*0.85; ThDCRho08HyperKHigh[6] = ThDCRho08HyperKXSec[6]*1.15; - ThDCRho08HyperKMass[7] = 390; ThDCRho08HyperKXSec[7] = 0.47132496; ThDCRho08HyperKLow[7] = ThDCRho08HyperKXSec[7]*0.85; ThDCRho08HyperKHigh[7] = ThDCRho08HyperKXSec[7]*1.15; - ThDCRho08HyperKMass[8] = 395; ThDCRho08HyperKXSec[8] = 0.420000; ThDCRho08HyperKLow[8] = ThDCRho08HyperKXSec[8]*0.85; ThDCRho08HyperKHigh[8] = ThDCRho08HyperKXSec[8]*1.15; - ThDCRho08HyperKMass[9] = 400; ThDCRho08HyperKXSec[9] = 0.473000; ThDCRho08HyperKLow[9] = ThDCRho08HyperKXSec[9]*0.85; ThDCRho08HyperKHigh[9] = ThDCRho08HyperKXSec[9]*1.15; - ThDCRho08HyperKMass[10] = 410; ThDCRho08HyperKXSec[10] = 0.0060812129; ThDCRho08HyperKLow[10] = ThDCRho08HyperKXSec[10]*0.85; ThDCRho08HyperKHigh[10] = ThDCRho08HyperKXSec[10]*1.15; - ThDCRho08HyperKMass[11] = 420; ThDCRho08HyperKXSec[11] = 0.0035; ThDCRho08HyperKLow[11] = ThDCRho08HyperKXSec[11]*0.85; ThDCRho08HyperKHigh[11] = ThDCRho08HyperKXSec[11]*1.15; - ThDCRho08HyperKMass[12] = 500; ThDCRho08HyperKXSec[12] = 0.0002849; ThDCRho08HyperKLow[12] = ThDCRho08HyperKXSec[12]*0.85; ThDCRho08HyperKHigh[12] = ThDCRho08HyperKXSec[12]*1.15; - TCutG* DCRho08HyperKXSecErr = GetErrorBand("DCRho08HyperKErr", ThDCRho08HyperKN,ThDCRho08HyperKMass,ThDCRho08HyperKLow,ThDCRho08HyperKHigh); - - int ThDCRho12HyperKN = 12; double ThDCRho12HyperKMass [100]; double ThDCRho12HyperKXSec [100]; double ThDCRho12HyperKLow [100]; double ThDCRho12HyperKHigh [100]; - ThDCRho12HyperKMass[0] = 100; ThDCRho12HyperKXSec[0] = 0.8339415992; ThDCRho12HyperKLow[0] = ThDCRho12HyperKXSec[0]*0.85; ThDCRho12HyperKHigh[0] = ThDCRho12HyperKXSec[0]*1.15; - ThDCRho12HyperKMass[1] = 182; ThDCRho12HyperKXSec[1] = 0.168096952140; ThDCRho12HyperKLow[1] = ThDCRho12HyperKXSec[1]*0.85; ThDCRho12HyperKHigh[1] = ThDCRho12HyperKXSec[1]*1.15; - ThDCRho12HyperKMass[2] = 302; ThDCRho12HyperKXSec[2] = 0.079554948387; ThDCRho12HyperKLow[2] = ThDCRho12HyperKXSec[2]*0.85; ThDCRho12HyperKHigh[2] = ThDCRho12HyperKXSec[2]*1.15; - ThDCRho12HyperKMass[3] = 500; ThDCRho12HyperKXSec[3] = 0.063996737; ThDCRho12HyperKLow[3] = ThDCRho12HyperKXSec[3]*0.85; ThDCRho12HyperKHigh[3] = ThDCRho12HyperKXSec[3]*1.15; - ThDCRho12HyperKMass[4] = 530; ThDCRho12HyperKXSec[4] = 0.064943882; ThDCRho12HyperKLow[4] = ThDCRho12HyperKXSec[4]*0.85; ThDCRho12HyperKHigh[4] = ThDCRho12HyperKXSec[4]*1.15; - ThDCRho12HyperKMass[5] = 570; ThDCRho12HyperKXSec[5] = 0.0662920530; ThDCRho12HyperKLow[5] = ThDCRho12HyperKXSec[5]*0.85; ThDCRho12HyperKHigh[5] = ThDCRho12HyperKXSec[5]*1.15; - ThDCRho12HyperKMass[6] = 590; ThDCRho12HyperKXSec[6] = 0.060748383; ThDCRho12HyperKLow[6] = ThDCRho12HyperKXSec[6]*0.85; ThDCRho12HyperKHigh[6] = ThDCRho12HyperKXSec[6]*1.15; - ThDCRho12HyperKMass[7] = 595; ThDCRho12HyperKXSec[7] = 0.04968409; ThDCRho12HyperKLow[7] = ThDCRho12HyperKXSec[7]*0.85; ThDCRho12HyperKHigh[7] = ThDCRho12HyperKXSec[7]*1.15; - ThDCRho12HyperKMass[8] = 600; ThDCRho12HyperKXSec[8] = 0.0026232721237; ThDCRho12HyperKLow[8] = ThDCRho12HyperKXSec[8]*0.85; ThDCRho12HyperKHigh[8] = ThDCRho12HyperKXSec[8]*1.15; - ThDCRho12HyperKMass[9] = 610; ThDCRho12HyperKXSec[9] = 0.00127431; ThDCRho12HyperKLow[9] = ThDCRho12HyperKXSec[9]*0.85; ThDCRho12HyperKHigh[9] = ThDCRho12HyperKXSec[9]*1.15; - ThDCRho12HyperKMass[10] = 620; ThDCRho12HyperKXSec[10] = 0.00056965104319; ThDCRho12HyperKLow[10] = ThDCRho12HyperKXSec[10]*0.85; ThDCRho12HyperKHigh[10] = ThDCRho12HyperKXSec[10]*1.15; - ThDCRho12HyperKMass[11] = 700; ThDCRho12HyperKXSec[11] = 0.00006122886211; ThDCRho12HyperKLow[11] = ThDCRho12HyperKXSec[11]*0.85; ThDCRho12HyperKHigh[11] = ThDCRho12HyperKXSec[11]*1.15; - TCutG* DCRho12HyperKXSecErr = GetErrorBand("DCRho12HyperKErr", ThDCRho12HyperKN,ThDCRho12HyperKMass,ThDCRho12HyperKLow,ThDCRho12HyperKHigh); - - int ThDCRho16HyperKN = 12; double ThDCRho16HyperKMass [100]; double ThDCRho16HyperKXSec [100]; double ThDCRho16HyperKLow [100]; double ThDCRho16HyperKHigh [100]; - ThDCRho16HyperKMass[0] = 100; ThDCRho16HyperKXSec[0] = 0.711518686800; ThDCRho16HyperKLow[0] = ThDCRho16HyperKXSec[0]*0.85; ThDCRho16HyperKHigh[0] = ThDCRho16HyperKXSec[0]*1.15; - ThDCRho16HyperKMass[1] = 182; ThDCRho16HyperKXSec[1] = 0.089726059780; ThDCRho16HyperKLow[1] = ThDCRho16HyperKXSec[1]*0.85; ThDCRho16HyperKHigh[1] = ThDCRho16HyperKXSec[1]*1.15; - ThDCRho16HyperKMass[2] = 302; ThDCRho16HyperKXSec[2] = 0.019769637301; ThDCRho16HyperKLow[2] = ThDCRho16HyperKXSec[2]*0.85; ThDCRho16HyperKHigh[2] = ThDCRho16HyperKXSec[2]*1.15; - ThDCRho16HyperKMass[3] = 500; ThDCRho16HyperKXSec[3] = 0.0063302286576; ThDCRho16HyperKLow[3] = ThDCRho16HyperKXSec[3]*0.85; ThDCRho16HyperKHigh[3] = ThDCRho16HyperKXSec[3]*1.15; - ThDCRho16HyperKMass[4] = 700; ThDCRho16HyperKXSec[4] = 0.002536779850; ThDCRho16HyperKLow[4] = ThDCRho16HyperKXSec[4]*0.85; ThDCRho16HyperKHigh[4] = ThDCRho16HyperKXSec[4]*1.15; - ThDCRho16HyperKMass[5] = 730; ThDCRho16HyperKXSec[5] = 0.00213454921; ThDCRho16HyperKLow[5] = ThDCRho16HyperKXSec[5]*0.85; ThDCRho16HyperKHigh[5] = ThDCRho16HyperKXSec[5]*1.15; - ThDCRho16HyperKMass[6] = 770; ThDCRho16HyperKXSec[6] = 0.001737551; ThDCRho16HyperKLow[6] = ThDCRho16HyperKXSec[6]*0.85; ThDCRho16HyperKHigh[6] = ThDCRho16HyperKXSec[6]*1.15; - ThDCRho16HyperKMass[7] = 790; ThDCRho16HyperKXSec[7] =0.00161578593 ; ThDCRho16HyperKLow[7] = ThDCRho16HyperKXSec[7]*0.85; ThDCRho16HyperKHigh[7] = ThDCRho16HyperKXSec[7]*1.15; - ThDCRho16HyperKMass[8] = 795; ThDCRho16HyperKXSec[8] = 0.00153513713; ThDCRho16HyperKLow[8] = ThDCRho16HyperKXSec[8]*0.85; ThDCRho16HyperKHigh[8] = ThDCRho16HyperKXSec[8]*1.15; - ThDCRho16HyperKMass[9] = 800; ThDCRho16HyperKXSec[9] = 0.000256086965; ThDCRho16HyperKLow[9] = ThDCRho16HyperKXSec[9]*0.85; ThDCRho16HyperKHigh[9] = ThDCRho16HyperKXSec[9]*1.15; - ThDCRho16HyperKMass[10] = 820; ThDCRho16HyperKXSec[10] = 0.000097929923655; ThDCRho16HyperKLow[10] = ThDCRho16HyperKXSec[10]*0.85; ThDCRho16HyperKHigh[10] = ThDCRho16HyperKXSec[10]*1.15; - ThDCRho16HyperKMass[11] = 900; ThDCRho16HyperKXSec[11] = 0.000013146066; ThDCRho16HyperKLow[11] = ThDCRho16HyperKXSec[11]*0.85; ThDCRho16HyperKHigh[11] = ThDCRho16HyperKXSec[11]*1.15; - TCutG* DCRho16HyperKXSecErr = GetErrorBand("DCRho16HyperKErr", ThDCRho16HyperKN,ThDCRho16HyperKMass,ThDCRho16HyperKLow,ThDCRho16HyperKHigh); - - - -/* - fprintf(pFile,"-----------------------\n0%% TK ONLY \n-------------------------\n"); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Gluino2C \n", FindIntersection(Tk_Obs_Gluino2C, GluinoXSecLow, 300, 1000, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF0 \n", FindIntersection(Tk_Obs_GluinoF0, GluinoXSecLow, 300, 1000, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF1 \n", FindIntersection(Tk_Obs_GluinoF1, GluinoXSecLow, 300, 1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF1 Z2\n",FindIntersection(Tk_Obs_GluinoZF1, GluinoXSecLow, 600,800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF5 \n", FindIntersection(Tk_Obs_GluinoF5, GluinoXSecLow, 300, 1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF0\n", FindIntersection(Tk_Obs_GluinoNF0, GluinoXSecLow, 300, 1000, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF1\n", FindIntersection(Tk_Obs_GluinoNF1, GluinoXSecLow, 300, 1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF5\n", FindIntersection(Tk_Obs_GluinoNF5, GluinoXSecLow, 300, 1000, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop2C \n", FindIntersection(Tk_Obs_Stop2C , StopXSecLow , 130, 800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop \n", FindIntersection(Tk_Obs_Stop , StopXSecLow , 130, 800, 1, 0.00)); - //fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop Z2 \n", FindIntersection(Tk_Obs_StopZ , StopXSecLow , 300, 500, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for StopN \n", FindIntersection(Tk_Obs_StopN , StopXSecLow , 130, 800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GMStau \n", FindIntersection(Tk_Obs_GMStau , GMStauXSec , 100, 494, 1, 0.15)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for PPStau \n", FindIntersection(Tk_Obs_PPStau , PPStauXSec , 100, 308, 1, 0.15)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for DCStau \n", FindIntersection(Tk_Obs_DCStau , DCStauXSec , 121, 302, 1, 0.15)); - - fprintf(pFile,"-----------------------\n0%% TK TOF \n-------------------------\n"); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Gluino2C \n", FindIntersection(Mu_Obs_Gluino2C, GluinoXSecLow, 300, 1000, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF0 \n", FindIntersection(Mu_Obs_GluinoF0, GluinoXSecLow, 300, 1000, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF1 \n", FindIntersection(Mu_Obs_GluinoF1, GluinoXSecLow, 300, 1100, 1, 0.00)); - //fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF1 Z2\n",FindIntersection(Mu_Obs_GluinoZF1, GluinoXSecLow, 600,800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF5 \n", FindIntersection(Mu_Obs_GluinoF5, GluinoXSecLow, 300, 1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF0\n", FindIntersection(Mu_Obs_GluinoNF0, GluinoXSecLow, 300, 1000, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF1\n", FindIntersection(Mu_Obs_GluinoNF1, GluinoXSecLow, 300, 1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF5\n", FindIntersection(Mu_Obs_GluinoNF5, GluinoXSecLow, 300, 1000, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop2C \n", FindIntersection(Mu_Obs_Stop2C , StopXSecLow , 130, 800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop \n", FindIntersection(Mu_Obs_Stop , StopXSecLow , 130, 800, 1, 0.00)); - //fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop Z2 \n", FindIntersection(Mu_Obs_StopZ , StopXSecLow , 300, 500, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for StopN \n", FindIntersection(Mu_Obs_StopN , StopXSecLow , 130, 800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GMStau \n", FindIntersection(Mu_Obs_GMStau , GMStauXSec , 100, 494, 1, 0.15)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for PPStau \n", FindIntersection(Mu_Obs_PPStau , PPStauXSec , 100, 308, 1, 0.15)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for DCStau \n", FindIntersection(Mu_Obs_DCStau , DCStauXSec , 121, 302, 1, 0.15)); - -*/ - fprintf(pFile,"-----------------------\nNO TH UNCERTAINTY ACCOUNTED FOR \n-------------------------\n"); - - fprintf(pFile,"-----------------------\n0%% TK ONLY \n-------------------------\n"); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Gluino2C \n", FindIntersection(Tk_Obs_Gluino2C, GluinoXSec, 300, 900, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF0 \n", FindIntersection(Tk_Obs_GluinoF0, GluinoXSec, 300, 900, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF1 \n", FindIntersection(Tk_Obs_GluinoF1, GluinoXSec, 300, 1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF1 Z2\n",FindIntersection(Tk_Obs_GluinoZF1, GluinoXSec, 600,800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF5 \n", FindIntersection(Tk_Obs_GluinoF5, GluinoXSec, 300, 1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF0\n", FindIntersection(Tk_Obs_GluinoNF0, GluinoXSec, 300, 900, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF1\n", FindIntersection(Tk_Obs_GluinoNF1, GluinoXSec, 300, 1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF5\n", FindIntersection(Tk_Obs_GluinoNF5, GluinoXSec, 300, 900, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop2C \n", FindIntersection(Tk_Obs_Stop2C , StopXSec , 130, 800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop \n", FindIntersection(Tk_Obs_Stop , StopXSec , 130, 800, 1, 0.00)); - //fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop Z2 \n", FindIntersection(Tk_Obs_StopZ , StopXSec , 300, 500, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for StopN \n", FindIntersection(Tk_Obs_StopN , StopXSec , 130, 800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GMStau \n", FindIntersection(Tk_Obs_GMStau , GMStauXSec, 100, 494, 1, 0.0)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for PPStau \n", FindIntersection(Tk_Obs_PPStau , PPStauXSec, 100, 308, 1, 0.0)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for DCRho08HyperK \n", FindIntersection(Tk_Obs_DCRho08HyperK , DCRho08HyperKXSec, 100, 500, 1, 0.0)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for DCRho12HyperK \n", FindIntersection(Tk_Obs_DCRho12HyperK , DCRho12HyperKXSec, 100, 700, 1, 0.0)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for DCRho16HyperK \n", FindIntersection(Tk_Obs_DCRho16HyperK , DCRho16HyperKXSec, 100, 900, 1, 0.0)); - - - - - fprintf(pFile,"-----------------------\n0%% TK TOF \n-------------------------\n"); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Gluino2C \n", FindIntersection(Mu_Obs_Gluino2C, GluinoXSec, 300,1000, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF0 \n", FindIntersection(Mu_Obs_GluinoF0, GluinoXSec, 300,1000, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF1 \n", FindIntersection(Mu_Obs_GluinoF1, GluinoXSec, 300,1100, 1, 0.00)); - //fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF1 Z2\n",FindIntersection(Mu_Obs_GluinoZF1, GluinoXSec, 600,800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoF5 \n", FindIntersection(Mu_Obs_GluinoF5, GluinoXSec, 300,1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF0\n", FindIntersection(Mu_Obs_GluinoNF0, GluinoXSec, 300,1000, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF1\n", FindIntersection(Mu_Obs_GluinoNF1, GluinoXSec, 300,1100, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GluinoNF5\n", FindIntersection(Mu_Obs_GluinoNF5, GluinoXSec, 300,1000, 1, 0.00)); -// fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop2C \n", FindIntersection(Mu_Obs_Stop2C , StopXSec , 130, 800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop \n", FindIntersection(Mu_Obs_Stop , StopXSec , 130, 800, 1, 0.00)); - //fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for Stop Z2 \n", FindIntersection(Mu_Obs_StopZ , StopXSec , 300, 500, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for StopN \n", FindIntersection(Mu_Obs_StopN , StopXSec , 130, 800, 1, 0.00)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for GMStau \n", FindIntersection(Mu_Obs_GMStau , GMStauXSec, 100, 494, 1, 0.0)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for PPStau \n", FindIntersection(Mu_Obs_PPStau , PPStauXSec, 100, 308, 1, 0.0)); - - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for DCRho08HyperK \n", FindIntersection(Mu_Obs_DCRho08HyperK , DCRho08HyperKXSec, 100, 500, 1, 0.0)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for DCRho12HyperK \n", FindIntersection(Mu_Obs_DCRho12HyperK , DCRho12HyperKXSec, 100, 700, 1, 0.0)); - fprintf(pFile,"MASS EXCLUDED UP TO %8.3fGeV for DCRho16HyperK \n", FindIntersection(Mu_Obs_DCRho16HyperK , DCRho16HyperKXSec, 100, 900, 1, 0.0)); - - fclose(pFile); - if(syst!="")return; - - - GluinoXSec ->SetLineColor(4); GluinoXSec ->SetMarkerColor(4); GluinoXSec ->SetLineWidth(1); GluinoXSec ->SetLineStyle(3); GluinoXSec ->SetMarkerStyle(1); - Mu_Obs_GluinoF1 ->SetLineColor(4); Mu_Obs_GluinoF1 ->SetMarkerColor(4); Mu_Obs_GluinoF1 ->SetLineWidth(2); Mu_Obs_GluinoF1 ->SetLineStyle(1); Mu_Obs_GluinoF1 ->SetMarkerStyle(22); - Mu_Obs_GluinoF5 ->SetLineColor(4); Mu_Obs_GluinoF5 ->SetMarkerColor(4); Mu_Obs_GluinoF5 ->SetLineWidth(2); Mu_Obs_GluinoF5 ->SetLineStyle(1); Mu_Obs_GluinoF5 ->SetMarkerStyle(23); - Mu_Obs_GluinoNF1->SetLineColor(4); Mu_Obs_GluinoNF1->SetMarkerColor(4); Mu_Obs_GluinoNF1->SetLineWidth(2); Mu_Obs_GluinoNF1->SetLineStyle(1); Mu_Obs_GluinoNF1->SetMarkerStyle(26); - Tk_Obs_GluinoF1 ->SetLineColor(4); Tk_Obs_GluinoF1 ->SetMarkerColor(4); Tk_Obs_GluinoF1 ->SetLineWidth(2); Tk_Obs_GluinoF1 ->SetLineStyle(1); Tk_Obs_GluinoF1 ->SetMarkerStyle(22); - Tk_Obs_GluinoF5 ->SetLineColor(4); Tk_Obs_GluinoF5 ->SetMarkerColor(4); Tk_Obs_GluinoF5 ->SetLineWidth(2); Tk_Obs_GluinoF5 ->SetLineStyle(1); Tk_Obs_GluinoF5 ->SetMarkerStyle(23); - Tk_Obs_GluinoNF1->SetLineColor(4); Tk_Obs_GluinoNF1->SetMarkerColor(4); Tk_Obs_GluinoNF1->SetLineWidth(2); Tk_Obs_GluinoNF1->SetLineStyle(1); Tk_Obs_GluinoNF1->SetMarkerStyle(26); - StopXSec ->SetLineColor(2); StopXSec ->SetMarkerColor(2); StopXSec ->SetLineWidth(1); StopXSec ->SetLineStyle(2); StopXSec ->SetMarkerStyle(1); - Mu_Obs_Stop ->SetLineColor(2); Mu_Obs_Stop ->SetMarkerColor(2); Mu_Obs_Stop ->SetLineWidth(2); Mu_Obs_Stop ->SetLineStyle(1); Mu_Obs_Stop ->SetMarkerStyle(21); - Mu_Obs_StopN ->SetLineColor(2); Mu_Obs_StopN ->SetMarkerColor(2); Mu_Obs_StopN ->SetLineWidth(2); Mu_Obs_StopN ->SetLineStyle(1); Mu_Obs_StopN ->SetMarkerStyle(25); - Tk_Obs_Stop ->SetLineColor(2); Tk_Obs_Stop ->SetMarkerColor(2); Tk_Obs_Stop ->SetLineWidth(2); Tk_Obs_Stop ->SetLineStyle(1); Tk_Obs_Stop ->SetMarkerStyle(21); - Tk_Obs_StopN ->SetLineColor(2); Tk_Obs_StopN ->SetMarkerColor(2); Tk_Obs_StopN ->SetLineWidth(2); Tk_Obs_StopN ->SetLineStyle(1); Tk_Obs_StopN ->SetMarkerStyle(25); - GMStauXSec ->SetLineColor(1); GMStauXSec ->SetMarkerColor(1); GMStauXSec ->SetLineWidth(1); GMStauXSec ->SetLineStyle(1); GMStauXSec ->SetMarkerStyle(1); - PPStauXSec ->SetLineColor(6); PPStauXSec ->SetMarkerColor(6); PPStauXSec ->SetLineWidth(1); PPStauXSec ->SetLineStyle(4); PPStauXSec ->SetMarkerStyle(1); - DCRho08HyperKXSec ->SetLineColor(4); DCRho08HyperKXSec ->SetMarkerColor(4); DCRho08HyperKXSec ->SetLineWidth(1); DCRho08HyperKXSec ->SetLineStyle(3); DCRho08HyperKXSec ->SetMarkerStyle(1); - DCRho12HyperKXSec ->SetLineColor(2); DCRho12HyperKXSec ->SetMarkerColor(2); DCRho12HyperKXSec ->SetLineWidth(1); DCRho12HyperKXSec ->SetLineStyle(2); DCRho12HyperKXSec ->SetMarkerStyle(1); - DCRho16HyperKXSec ->SetLineColor(1); DCRho16HyperKXSec ->SetMarkerColor(1); DCRho16HyperKXSec ->SetLineWidth(1); DCRho16HyperKXSec ->SetLineStyle(1); DCRho16HyperKXSec ->SetMarkerStyle(1); - - - Mu_Obs_GMStau ->SetLineColor(1); Mu_Obs_GMStau ->SetMarkerColor(1); Mu_Obs_GMStau ->SetLineWidth(2); Mu_Obs_GMStau ->SetLineStyle(1); Mu_Obs_GMStau ->SetMarkerStyle(23); - Mu_Obs_PPStau ->SetLineColor(6); Mu_Obs_PPStau ->SetMarkerColor(6); Mu_Obs_PPStau ->SetLineWidth(2); Mu_Obs_PPStau ->SetLineStyle(1); Mu_Obs_PPStau ->SetMarkerStyle(23); - Mu_Obs_DCRho08HyperK ->SetLineColor(4); Mu_Obs_DCRho08HyperK ->SetMarkerColor(4); Mu_Obs_DCRho08HyperK ->SetLineWidth(2); Mu_Obs_DCRho08HyperK ->SetLineStyle(1); Mu_Obs_DCRho08HyperK ->SetMarkerStyle(22); - Mu_Obs_DCRho12HyperK ->SetLineColor(2); Mu_Obs_DCRho12HyperK ->SetMarkerColor(2); Mu_Obs_DCRho12HyperK ->SetLineWidth(2); Mu_Obs_DCRho12HyperK ->SetLineStyle(1); Mu_Obs_DCRho12HyperK ->SetMarkerStyle(23); - Mu_Obs_DCRho16HyperK ->SetLineColor(1); Mu_Obs_DCRho16HyperK ->SetMarkerColor(1); Mu_Obs_DCRho16HyperK ->SetLineWidth(2); Mu_Obs_DCRho16HyperK ->SetLineStyle(1); Mu_Obs_DCRho16HyperK ->SetMarkerStyle(26); - - - Tk_Obs_GMStau ->SetLineColor(1); Tk_Obs_GMStau ->SetMarkerColor(1); Tk_Obs_GMStau ->SetLineWidth(2); Tk_Obs_GMStau ->SetLineStyle(1); Tk_Obs_GMStau ->SetMarkerStyle(20); - Tk_Obs_PPStau ->SetLineColor(6); Tk_Obs_PPStau ->SetMarkerColor(6); Tk_Obs_PPStau ->SetLineWidth(2); Tk_Obs_PPStau ->SetLineStyle(1); Tk_Obs_PPStau ->SetMarkerStyle(20); - Tk_Obs_DCRho08HyperK ->SetLineColor(4); Tk_Obs_DCRho08HyperK ->SetMarkerColor(4); Tk_Obs_DCRho08HyperK ->SetLineWidth(2); Tk_Obs_DCRho08HyperK ->SetLineStyle(1); Tk_Obs_DCRho08HyperK ->SetMarkerStyle(22); - Tk_Obs_DCRho12HyperK ->SetLineColor(2); Tk_Obs_DCRho12HyperK ->SetMarkerColor(2); Tk_Obs_DCRho12HyperK ->SetLineWidth(2); Tk_Obs_DCRho12HyperK ->SetLineStyle(1); Tk_Obs_DCRho12HyperK ->SetMarkerStyle(23); - Tk_Obs_DCRho16HyperK ->SetLineColor(1); Tk_Obs_DCRho16HyperK ->SetMarkerColor(1); Tk_Obs_DCRho16HyperK ->SetLineWidth(2); Tk_Obs_DCRho16HyperK ->SetLineStyle(1); Tk_Obs_DCRho16HyperK ->SetMarkerStyle(26); - - - - c1 = new TCanvas("c1", "c1",600,600); - TMultiGraph* MGMu = new TMultiGraph(); - MGMu->Add(GluinoXSec ,"L"); - MGMu->Add(StopXSec ,"L"); - MGMu->Add(GMStauXSec ,"L"); - MGMu->Add(PPStauXSec ,"L"); - MGMu->Add(Mu_Obs_GluinoF1 ,"LP"); - MGMu->Add(Mu_Obs_GluinoF5 ,"LP"); -// MGMu->Add(Mu_Obs_GluinoNF1 ,"LP"); - MGMu->Add(Mu_Obs_Stop ,"LP"); -// MGMu->Add(Mu_Obs_StopN ,"LP"); - MGMu->Add(Mu_Obs_GMStau ,"LP"); - MGMu->Add(Mu_Obs_PPStau ,"LP"); - MGMu->Draw("A"); - GluinoXSecErr->Draw("f"); - StopXSecErr ->Draw("f"); - StauXSecErr ->Draw("f"); - PPStauXSecErr ->Draw("f"); - MGMu->Draw("same"); - MGMu->SetTitle(""); - MGMu->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - MGMu->GetYaxis()->SetTitle("#sigma (pb)"); - MGMu->GetYaxis()->SetTitleOffset(1.70); - MGMu->GetYaxis()->SetRangeUser(PlotMinScale,PlotMaxScale); - - DrawPreliminary(IntegratedLuminosity); - TLegend* LEGMu = new TLegend(0.44,0.65,0.67,0.90); -// LEGMu->SetHeader("95% C.L. Limits"); - LEGMu->SetHeader("Tk + TOF"); - LEGMu->SetFillColor(0); - LEGMu->SetBorderSize(0); - LEGMu->AddEntry(Mu_Obs_GluinoF5 , "gluino; 50% #tilde{g}g" ,"LP"); - LEGMu->AddEntry(Mu_Obs_GluinoF1 , "gluino; 10% #tilde{g}g" ,"LP"); -// LEGMu->AddEntry(Mu_Obs_GluinoNF1, "gluino; 10% #tilde{g}g; ch. suppr.","LP"); - LEGMu->AddEntry(Mu_Obs_Stop , "stop" ,"LP"); -// LEGMu->AddEntry(Mu_Obs_StopN , "stop; ch. suppr.","LP"); - LEGMu->AddEntry(Mu_Obs_PPStau , "Pair Prod. stau" ,"LP"); - LEGMu->AddEntry(Mu_Obs_GMStau , "GMSB stau" ,"LP"); - LEGMu->Draw(); - - TLegend* LEGTh = new TLegend(0.14,0.73,0.44,0.93); - LEGTh->SetHeader("Theoretical Prediction"); - LEGTh->SetFillColor(0); - LEGTh->SetBorderSize(0); - TGraph* GlThLeg = (TGraph*) GluinoXSec->Clone("GluinoThLeg"); - GlThLeg->SetFillColor(GluinoXSecErr->GetFillColor()); - LEGTh->AddEntry(GlThLeg, "gluino (NLO+NLL)" ,"LF"); - TGraph* StThLeg = (TGraph*) StopXSec->Clone("StopThLeg"); - StThLeg->SetFillColor(GluinoXSecErr->GetFillColor()); - LEGTh->AddEntry(StThLeg ,"stop (NLO+NLL)" ,"LF"); - - TGraph* PPStauThLeg = (TGraph*) PPStauXSec->Clone("PPStauThLeg"); - PPStauThLeg->SetFillColor(GluinoXSecErr->GetFillColor()); - LEGTh->AddEntry(PPStauThLeg ,"Pair Prod. stau (NLO)" ,"LF"); - TGraph* StauThLeg = (TGraph*) GMStauXSec->Clone("StauThLeg"); - StauThLeg->SetFillColor(GluinoXSecErr->GetFillColor()); - LEGTh->AddEntry(StauThLeg ,"GMSB stau (NLO)" ,"LF"); - - LEGTh->Draw(); - -// c1->SetGridx(true); -// c1->SetGridy(true); - SaveCanvas(c1, outpath, string("MuExclusion")); - c1->SetLogy(true); - SaveCanvas(c1, outpath, string("MuExclusionLog")); - delete c1; - - - c1 = new TCanvas("c1", "c1",600,600); - TMultiGraph* MGTk = new TMultiGraph(); - MGTk->Add(GluinoXSec ,"L"); - MGTk->Add(StopXSec ,"L"); - MGTk->Add(GMStauXSec ,"L"); - MGTk->Add(PPStauXSec ,"L"); - MGTk->Add(Tk_Obs_GluinoF1 ,"LP"); - MGTk->Add(Tk_Obs_GluinoF5 ,"LP"); - MGTk->Add(Tk_Obs_GluinoNF1 ,"LP"); - MGTk->Add(Tk_Obs_Stop ,"LP"); - MGTk->Add(Tk_Obs_StopN ,"LP"); - MGTk->Add(Tk_Obs_GMStau ,"LP"); - MGTk->Add(Tk_Obs_PPStau ,"LP"); - MGTk->Draw("A"); - GluinoXSecErr->Draw("f"); - StopXSecErr ->Draw("f"); - StauXSecErr ->Draw("f"); - PPStauXSecErr ->Draw("f"); - MGTk->Draw("same"); - MGTk->SetTitle(""); - MGTk->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - MGTk->GetYaxis()->SetTitle("#sigma (pb)"); - MGTk->GetYaxis()->SetTitleOffset(1.70); - MGTk->GetYaxis()->SetRangeUser(PlotMinScale,PlotMaxScale); - - DrawPreliminary(IntegratedLuminosity); - - TLegend* LEGTk = new TLegend(0.44,0.58,0.82,0.9); -// LEGTk->SetHeader("95% C.L. Limits"); - LEGTk->SetHeader("Tracker - Only"); - LEGTk->SetFillColor(0); - LEGTk->SetBorderSize(0); - LEGTk->AddEntry(Tk_Obs_GluinoF5 , "gluino; 50% #tilde{g}g" ,"LP"); - LEGTk->AddEntry(Tk_Obs_GluinoF1 , "gluino; 10% #tilde{g}g" ,"LP"); - LEGTk->AddEntry(Tk_Obs_GluinoNF1, "gluino; 10% #tilde{g}g; ch. suppr.","LP"); - LEGTk->AddEntry(Tk_Obs_Stop , "stop" ,"LP"); - LEGTk->AddEntry(Tk_Obs_StopN , "stop; ch. suppr.","LP"); - LEGTk->AddEntry(Tk_Obs_PPStau , "Pair Prod. stau" ,"LP"); - LEGTk->AddEntry(Tk_Obs_GMStau , "GMSB stau" ,"LP"); - LEGTk->Draw(); - - LEGTh->Draw(); - -// c1->SetGridx(true); -// c1->SetGridy(true); - SaveCanvas(c1, outpath, string("TkExclusion")); - c1->SetLogy(true); - SaveCanvas(c1, outpath, string("TkExclusionLog")); - delete c1; - - c1 = new TCanvas("c1", "c1",600,600); - TMultiGraph* MGDCMu = new TMultiGraph(); - MGDCMu->Add(DCRho08HyperKXSec ,"L"); - MGDCMu->Add(Mu_Obs_DCRho08HyperK ,"LP"); - MGDCMu->Add(DCRho12HyperKXSec ,"L"); - MGDCMu->Add(Mu_Obs_DCRho12HyperK ,"LP"); - MGDCMu->Add(DCRho16HyperKXSec ,"L"); - MGDCMu->Add(Mu_Obs_DCRho16HyperK ,"LP"); - MGDCMu->Draw("A"); -// DCRho08HyperKXSecErr ->Draw("f"); -// DCRho12HyperKXSecErr ->Draw("f"); -// DCRho16HyperKXSecErr ->Draw("f"); - MGDCMu->Draw("same"); - MGDCMu->SetTitle(""); - MGDCMu->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - MGDCMu->GetYaxis()->SetTitle("#sigma (pb)"); - MGDCMu->GetYaxis()->SetTitleOffset(1.70); - MGDCMu->GetYaxis()->SetRangeUser(PlotMinScale,PlotMaxScale); - - DrawPreliminary(IntegratedLuminosity); - - TLegend* LEGDCMu = new TLegend(0.50,0.65,0.80,0.90); - LEGDCMu->SetHeader("Tk + TOF"); - LEGDCMu->SetFillColor(0); - LEGDCMu->SetBorderSize(0); - LEGDCMu->AddEntry(Mu_Obs_DCRho08HyperK , "Hyperk #tilde{#rho} = 0.8 TeV" ,"LP"); - LEGDCMu->AddEntry(Mu_Obs_DCRho12HyperK , "Hyperk #tilde{#rho} = 1.2 TeV" ,"LP"); - LEGDCMu->AddEntry(Mu_Obs_DCRho16HyperK , "Hyperk #tilde{#rho} = 1.6 TeV" ,"LP"); - LEGDCMu->Draw(); - - TLegend* LEGDCTh = new TLegend(0.15,0.73,0.46,0.93); - LEGDCTh->SetHeader("Theoretical Prediction"); - LEGDCTh->SetFillColor(0); - LEGDCTh->SetBorderSize(0); - TGraph* DCRho08HyperKThLeg = (TGraph*) DCRho08HyperKXSec->Clone("DCRho08HyperKThLeg"); - DCRho08HyperKThLeg->SetFillColor(GluinoXSecErr->GetFillColor()); - LEGDCTh->AddEntry(DCRho08HyperKThLeg ,"Hyperk #tilde{#rho} = 0.8 TeV (LO)" ,"L"); - TGraph* DCRho12HyperKThLeg = (TGraph*) DCRho12HyperKXSec->Clone("DCRho12HyperKThLeg"); - DCRho12HyperKThLeg->SetFillColor(GluinoXSecErr->GetFillColor()); - LEGDCTh->AddEntry(DCRho12HyperKThLeg ,"Hyperk #tilde{#rho} = 1.2 TeV (LO)" ,"L"); - TGraph* DCRho16HyperKThLeg = (TGraph*) DCRho16HyperKXSec->Clone("DCRho16HyperKThLeg"); - DCRho16HyperKThLeg->SetFillColor(GluinoXSecErr->GetFillColor()); - LEGDCTh->AddEntry(DCRho16HyperKThLeg ,"Hyperk #tilde{#rho} = 1.6 TeV (LO)" ,"L"); - LEGDCTh->Draw(); - SaveCanvas(c1, outpath, string("MuDCExclusion")); - c1->SetLogy(true); - SaveCanvas(c1, outpath, string("MuDCExclusionLog")); - delete c1; - - c1 = new TCanvas("c1", "c1",600,600); - TMultiGraph* MGDCTk = new TMultiGraph(); - MGDCTk->Add(DCRho08HyperKXSec ,"L"); - MGDCTk->Add(Tk_Obs_DCRho08HyperK ,"LP"); - MGDCTk->Add(DCRho12HyperKXSec ,"L"); - MGDCTk->Add(Tk_Obs_DCRho12HyperK ,"LP"); - MGDCTk->Add(DCRho16HyperKXSec ,"L"); - MGDCTk->Add(Tk_Obs_DCRho16HyperK ,"LP"); - MGDCTk->Draw("A"); -// DCRho08HyperKXSecErr ->Draw("f"); -// DCRho12HyperKXSecErr ->Draw("f"); -// DCRho16HyperKXSecErr ->Draw("f"); - MGDCTk->Draw("same"); - MGDCTk->SetTitle(""); - MGDCTk->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - MGDCTk->GetYaxis()->SetTitle("#sigma (pb)"); - MGDCTk->GetYaxis()->SetTitleOffset(1.70); - MGDCTk->GetYaxis()->SetRangeUser(PlotMinScale,PlotMaxScale); - DrawPreliminary(IntegratedLuminosity); - - TLegend* LEGDCTk = new TLegend(0.50,0.65,0.80,0.90); -// LEGDCTk->SetHeader("95% C.L. Limits"); - LEGDCTk->SetHeader("Tracker - Only"); - LEGDCTk->SetFillColor(0); - LEGDCTk->SetBorderSize(0); - LEGDCTk->AddEntry(Tk_Obs_DCRho08HyperK , "Hyperk #tilde{#rho} = 0.8 TeV" ,"LP"); - LEGDCTk->AddEntry(Tk_Obs_DCRho12HyperK , "Hyperk #tilde{#rho} = 1.2 TeV" ,"LP"); - LEGDCTk->AddEntry(Tk_Obs_DCRho16HyperK , "Hyperk #tilde{#rho} = 1.6 TeV" ,"LP"); - LEGDCTk->Draw(); - - LEGDCTh->Draw(); - - SaveCanvas(c1, outpath, string("TkDCExclusion")); - c1->SetLogy(true); - SaveCanvas(c1, outpath, string("TkDCExclusionLog")); - delete c1; - - - - return; -} - - -void CheckSignalUncertainty(FILE* pFile, FILE* talkFile, string InputPattern){ - - bool IsTkOnly = (InputPattern.find("Type0",0) Models; - Models.push_back("Gluino300_f1"); - Models.push_back("Gluino400_f1"); - Models.push_back("Gluino500_f1"); - Models.push_back("Gluino600_f1"); - Models.push_back("Gluino700_f1"); - Models.push_back("Gluino800_f1"); - Models.push_back("Gluino900_f1"); - Models.push_back("Gluino1000_f1"); - Models.push_back("Gluino1100_f1"); - Models.push_back("Gluino300_f5"); - Models.push_back("Gluino400_f5"); - Models.push_back("Gluino500_f5"); - Models.push_back("Gluino600_f5"); - Models.push_back("Gluino700_f5"); - Models.push_back("Gluino800_f5"); - Models.push_back("Gluino900_f5"); - Models.push_back("Gluino1000_f5"); - Models.push_back("Gluino1100_f5"); - Models.push_back("Gluino300N_f1"); - Models.push_back("Gluino400N_f1"); - Models.push_back("Gluino500N_f1"); - Models.push_back("Gluino600N_f1"); - Models.push_back("Gluino700N_f1"); - Models.push_back("Gluino800N_f1"); - Models.push_back("Gluino900N_f1"); - Models.push_back("Gluino1000N_f1"); - Models.push_back("Gluino1100N_f1"); - Models.push_back("Stop130"); - Models.push_back("Stop200"); - Models.push_back("Stop300"); - Models.push_back("Stop400"); - Models.push_back("Stop500"); - Models.push_back("Stop600"); - Models.push_back("Stop700"); - Models.push_back("Stop800"); - Models.push_back("Stop130N"); - Models.push_back("Stop200N"); - Models.push_back("Stop300N"); - Models.push_back("Stop400N"); - Models.push_back("Stop500N"); - Models.push_back("Stop600N"); - Models.push_back("Stop700N"); - Models.push_back("Stop800N"); - Models.push_back("GMStau100"); - Models.push_back("GMStau126"); - Models.push_back("GMStau156"); - Models.push_back("GMStau200"); - Models.push_back("GMStau247"); - Models.push_back("GMStau308"); - Models.push_back("GMStau370"); - Models.push_back("GMStau432"); - Models.push_back("GMStau494"); - Models.push_back("PPStau100"); - Models.push_back("PPStau126"); - Models.push_back("PPStau156"); - Models.push_back("PPStau200"); - Models.push_back("PPStau247"); - Models.push_back("PPStau308"); - Models.push_back("DCRho08HyperK100"); - Models.push_back("DCRho08HyperK121"); - Models.push_back("DCRho08HyperK182"); - Models.push_back("DCRho08HyperK242"); - Models.push_back("DCRho08HyperK302"); - Models.push_back("DCRho08HyperK350"); - Models.push_back("DCRho08HyperK370"); - Models.push_back("DCRho08HyperK390"); - Models.push_back("DCRho08HyperK395"); - Models.push_back("DCRho08HyperK400"); - Models.push_back("DCRho08HyperK410"); - Models.push_back("DCRho08HyperK420"); - Models.push_back("DCRho08HyperK500"); - Models.push_back("DCRho12HyperK100"); - Models.push_back("DCRho12HyperK182"); - Models.push_back("DCRho12HyperK302"); - Models.push_back("DCRho12HyperK500"); - Models.push_back("DCRho12HyperK530"); - Models.push_back("DCRho12HyperK570"); - Models.push_back("DCRho12HyperK590"); - Models.push_back("DCRho12HyperK595"); - Models.push_back("DCRho12HyperK600"); - Models.push_back("DCRho12HyperK610"); - Models.push_back("DCRho12HyperK620"); - Models.push_back("DCRho12HyperK700"); - Models.push_back("DCRho16HyperK100"); - Models.push_back("DCRho16HyperK182"); - Models.push_back("DCRho16HyperK302"); - Models.push_back("DCRho16HyperK500"); - Models.push_back("DCRho16HyperK700"); - Models.push_back("DCRho16HyperK730"); - Models.push_back("DCRho16HyperK770"); - Models.push_back("DCRho16HyperK790"); - Models.push_back("DCRho16HyperK795"); - Models.push_back("DCRho16HyperK800"); - Models.push_back("DCRho16HyperK820"); - Models.push_back("DCRho16HyperK900"); - - - if(IsTkOnly){ - fprintf(pFile, "%20s Eff --> PScale | EstimScale | DiscrimScale || TotalUncertainty\n","Model"); - fprintf(talkFile, "\\hline\n%20s & Eff & PScale & EstimScale & DiscrimScale & TotalUncertainty \\\\\n","Model"); - } - else { - fprintf(pFile, "%20s Eff --> PScale | EstimScale | DiscrimScale | TOFScale || TotalUncertainty\n","Model"); - fprintf(talkFile, "\\hline\n%20s & Eff & PScale & EstimScale & DiscrimScale & TOFScale & TotalUncertainty \\\\\n","Model"); - } - - for(unsigned int s=0;s %7.3f | %7.3f | %7.3f || %7.3f\n",+Models[s].c_str(), tmp.Eff, P/tmp.Eff, M/tmp.Eff, I/tmp.Eff, sqrt(P*P + I*I + M*M + T*T)/tmp.Eff); - - else if(!IsNeutral) fprintf(pFile, "%20s %7.3f --> %7.3f | %7.3f | %7.3f | %7.3f || %7.3f\n",+Models[s].c_str(), tmp.Eff, P/tmp.Eff, M/tmp.Eff, I/tmp.Eff, T/tmp.Eff, sqrt(P*P + I*I + M*M + T*T)/tmp.Eff); - - if(IsTkOnly && (IsStau || (int)tmp.Mass%200==0)) { - fprintf(talkFile, "\\hline\n%20s & %7.1f\\% & %7.1f\\% & %7.1f\\% & %7.1f\\% & %7.1f\\% \\\\\n",+Models[s].c_str(), 100.*tmp.Eff, 100.*P/tmp.Eff, 100.*M/tmp.Eff, 100.*I/tmp.Eff, 100.*sqrt(P*P + I*I + M*M + T*T)/tmp.Eff); - } - if(!IsTkOnly && !IsNeutral) fprintf(talkFile, "\\hline\n%20s & %7.1f\\% & %7.1f\\% & %7.1f\\% & %7.1f\\% & %7.1f\\% & %7.1f\\% \\\\\n",+Models[s].c_str(), 100.*tmp.Eff, 100.*P/tmp.Eff, 100.*M/tmp.Eff, 100.*I/tmp.Eff, 100.*T/tmp.Eff, 100.*sqrt(P*P + I*I + M*M + T*T)/tmp.Eff); - - } -} - - - -TGraph* MakePlot(FILE* pFile, FILE* talkFile, string InputPattern, string syst, string ModelName, int XSectionType, string Mass0, string Mass1, string Mass2, string Mass3, string Mass4, string Mass5, string Mass6, string Mass7, string Mass8, string Mass9,string Mass10, string Mass11, string Mass12, string Mass13){ - unsigned int N=0; - stAllInfo Infos[14]; - - if(Mass0!=""){Infos[0] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass0+".txt"); N=1;} - if(Mass1!=""){Infos[1] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass1+".txt"); N=2;} - if(Mass2!=""){Infos[2] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass2+".txt"); N=3;} - if(Mass3!=""){Infos[3] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass3+".txt"); N=4;} - if(Mass4!=""){Infos[4] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass4+".txt"); N=5;} - if(Mass5!=""){Infos[5] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass5+".txt"); N=6;} - if(Mass6!=""){Infos[6] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass6+".txt"); N=7;} - if(Mass7!=""){Infos[7] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass7+".txt"); N=8;} - if(Mass8!=""){Infos[8] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass8+".txt"); N=9;} - if(Mass9!=""){Infos[9] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass9+".txt"); N=10;} - if(Mass10!=""){Infos[10] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass10+".txt"); N=11;} - if(Mass11!=""){Infos[11] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass11+".txt"); N=12;} - if(Mass12!=""){Infos[12] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass12+".txt"); N=13;} - if(Mass13!=""){Infos[13] = stAllInfo(InputPattern+"/EXCLUSION" + syst + "/"+Mass13+".txt"); N=14;} - - double Mass [14];for(unsigned int i=0;i<14;i++){Mass [i]=Infos[i].Mass; } - double XSecTh [14];for(unsigned int i=0;i<14;i++){XSecTh [i]=Infos[i].XSec_Th; } - double XSecObs[14];for(unsigned int i=0;i<14;i++){XSecObs[i]=Infos[i].XSec_Obs;} - double XSecExp[14];for(unsigned int i=0;i<14;i++){XSecExp[i]=Infos[i].XSec_Exp;} - - - -/* - if(pFile){ - fprintf(pFile,"%40s",(ModelName + " mass (GeV/$c^2$)").c_str());for(unsigned int i=0;i0 && syst=="")for(unsigned int i=0;i Pt>%+6.1f & I>%+5.3f & TOF>%+4.3f & M>%3.0f--> NData=%2.0f NPred=%6.1E+-%6.1E NSign=%6.1E (Eff=%3.2f) Local Significance %3.2f\n",ModelName.c_str(),Infos[i].Mass,Infos[i].WP_Pt,Infos[i].WP_I,Infos[i].WP_TOF,Infos[i].MassCut, Infos[i].NData, Infos[i].NPred, Infos[i].NPredErr, Infos[i].NSign, Infos[i].Eff, Infos[i].Significance); - - if(XSectionType>0){ - for(unsigned int i=0;iSetTitle(""); - graph->GetYaxis()->SetTitle("CrossSection ( pb )"); - graph->GetYaxis()->SetTitleOffset(1.70); - return graph; -} - -stAllInfo Exclusion(string pattern, string modelName, string signal, double Ratio_0C, double Ratio_1C, double Ratio_2C, string syst){ - GetSignalDefinition(signals); - CurrentSampleIndex = JobIdToIndex(signal); if(CurrentSampleIndex<0){ printf("There is no signal corresponding to the JobId Given\n"); return stAllInfo(); } - - stAllInfo toReturn; - toReturn.Mass = signals[JobIdToIndex(signal)].Mass; - toReturn.MassMean = 0; - toReturn.MassSigma = 0; - toReturn.MassCut = 0; - toReturn.Index = 0; - toReturn.WP_Pt = 0; - toReturn.WP_I = 0; - toReturn.WP_TOF = 0; - toReturn.XSec_Th = signals[JobIdToIndex(signal)].XSec; - toReturn.XSec_Err = signals[JobIdToIndex(signal)].XSec * 0.15; - toReturn.XSec_Exp = 1E50; - toReturn.XSec_ExpUp = 1E50; - toReturn.XSec_ExpDown = 1E50; - toReturn.XSec_Exp2Up = 1E50; - toReturn.XSec_Exp2Down = 1E50; - toReturn.XSec_Obs = 1E50; - toReturn.Eff = 0; - toReturn.Eff_SYSTP = 0; - toReturn.Eff_SYSTI = 0; - toReturn.Eff_SYSTM = 0; - toReturn.Eff_SYSTT = 0; - toReturn.NData = 0; - toReturn.NPred = 0; - toReturn.NPredErr = 0; - toReturn.NSign = 0; - - - - double RescaleFactor = 1.0; - double RescaleError = 0.1; - - double RatioValue[] = {Ratio_0C, Ratio_1C, Ratio_2C}; - - double MaxSOverB=-1; - int MaxSOverBIndex=-1; - - string outpath = pattern + "/EXCLUSION/"; - if(syst!=""){outpath = pattern + "/EXCLUSION" + syst + "/";} - MakeDirectories(outpath); - - FILE* pFile = fopen((outpath+"/"+modelName+".info").c_str(),"w"); - if(!pFile)printf("Can't open file : %s\n",(outpath+"/"+modelName+".info").c_str()); - - string InputPath = pattern + "Histos_Data.root"; - TFile* InputFile = new TFile(InputPath.c_str()); - - TH1D* HCuts_Pt = (TH1D*)GetObjectFromPath(InputFile, "HCuts_Pt"); - TH1D* HCuts_I = (TH1D*)GetObjectFromPath(InputFile, "HCuts_I"); - TH1D* HCuts_TOF = (TH1D*)GetObjectFromPath(InputFile, "HCuts_TOF"); - TH1D* H_A = (TH1D*)GetObjectFromPath(InputFile, "H_A"); - TH1D* H_B = (TH1D*)GetObjectFromPath(InputFile, "H_B"); - TH1D* H_C = (TH1D*)GetObjectFromPath(InputFile, "H_C"); - TH1D* H_D = (TH1D*)GetObjectFromPath(InputFile, "H_D"); - TH1D* H_E = (TH1D*)GetObjectFromPath(InputFile, "H_E"); - TH1D* H_F = (TH1D*)GetObjectFromPath(InputFile, "H_F"); - TH1D* H_G = (TH1D*)GetObjectFromPath(InputFile, "H_G"); - TH1D* H_H = (TH1D*)GetObjectFromPath(InputFile, "H_H"); - TH2D* MassData = (TH2D*)GetObjectFromPath(InputFile, "Data/Mass"); - TH2D* MassPred = (TH2D*)GetObjectFromPath(InputFile, "Pred_Mass"); - TH2D* MassSign[4]; - TH2D* MassSignP[4]; - TH2D* MassSignI[4]; - TH2D* MassSignM[4]; - TH2D* MassSignT[4]; - - string InputPathSign = pattern + "Histos.root"; - TFile* InputFileSign = new TFile(InputPathSign.c_str()); - - MassSign[0] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "/Mass" + syst); - MassSign[1] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC0/Mass" + syst); - MassSign[2] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC1/Mass" + syst); - MassSign[3] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC2/Mass" + syst); - - MassSignP[0] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "/Mass_SystP"); - MassSignP[1] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC0/Mass_SystP"); - MassSignP[2] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC1/Mass_SystP"); - MassSignP[3] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC2/Mass_SystP"); - - MassSignI[0] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "/Mass_SystI"); - MassSignI[1] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC0/Mass_SystI"); - MassSignI[2] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC1/Mass_SystI"); - MassSignI[3] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC2/Mass_SystI"); - - MassSignM[0] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "/Mass_SystM"); - MassSignM[1] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC0/Mass_SystM"); - MassSignM[2] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC1/Mass_SystM"); - MassSignM[3] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC2/Mass_SystM"); - - MassSignT[0] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "/Mass_SystT"); - MassSignT[1] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC0/Mass_SystT"); - MassSignT[2] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC1/Mass_SystT"); - MassSignT[3] = (TH2D*)GetObjectFromPath(InputFileSign, signals[CurrentSampleIndex].Name + "_NC2/Mass_SystT"); - - - TH1D* MassSignProj[4]; - TH1D* MassSignPProj[4]; - TH1D* MassSignIProj[4]; - TH1D* MassSignMProj[4]; - TH1D* MassSignTProj[4]; - ///##############################################################################" - MassSignProj[0] = MassSign[0]->ProjectionY("MassSignProj0",1,1); - double Mean = MassSignProj[0]->GetMean(); - double Width = MassSignProj[0]->GetRMS(); - MinRange = std::max(0.0, Mean-2*Width); - MinRange = MassSignProj[0]->GetXaxis()->GetBinLowEdge(MassSignProj[0]->GetXaxis()->FindBin(MinRange)); //Round to a bin value to avoid counting prpoblem due to the binning. - delete MassSignProj[0]; - ///##############################################################################" - - //Going to first loop and find the cut with the min S over sqrt(B) because this is quick and normally gives a cut with a reach near the minimum - stAllInfo CutInfo[MassData->GetNbinsX()]; - for(int CutIndex=0;CutIndexGetNbinsX();CutIndex++) CutInfo[CutIndex]=toReturn; - - for(int CutIndex=0;CutIndexGetNbinsX();CutIndex++){ - if(HCuts_Pt ->GetBinContent(CutIndex+1) < 45 ) continue; // Be sure the pT cut is high enough to get some statistic for both ABCD and mass shape - if(H_E->GetBinContent(CutIndex+1) >0 && (H_A->GetBinContent(CutIndex+1)<25 || H_F->GetBinContent(CutIndex+1)<25 || H_G->GetBinContent(CutIndex+1)<25))continue; //Skip events where Prediction (AFG/EE) is not reliable - if(H_E->GetBinContent(CutIndex+1)==0 && (H_C->GetBinContent(CutIndex+1)<25 || H_B->GetBinContent(CutIndex+1)<25))continue; //Skip events where Prediction (CB/A) is not reliable - GetSignalMeanHSCPPerEvent(pattern,CutIndex, MinRange, MaxRange); - TH1D* MassDataProj = MassData->ProjectionY("MassDataProj",CutIndex+1,CutIndex+1); - TH1D* MassPredProj = MassPred->ProjectionY("MassPredProj",CutIndex+1,CutIndex+1); - MassSignProj[0] = MassSign [0]->ProjectionY("MassSignProj0",CutIndex+1,CutIndex+1); - MassSignProj[1] = MassSign [1]->ProjectionY("MassSignProj1",CutIndex+1,CutIndex+1); - MassSignProj[2] = MassSign [2]->ProjectionY("MassSignProj2",CutIndex+1,CutIndex+1); - MassSignProj[3] = MassSign [3]->ProjectionY("MassSignProj3",CutIndex+1,CutIndex+1); - - MassSignPProj[0] = MassSignP[0]->ProjectionY("MassSignProP0",CutIndex+1,CutIndex+1); - MassSignPProj[1] = MassSignP[1]->ProjectionY("MassSignProP1",CutIndex+1,CutIndex+1); - MassSignPProj[2] = MassSignP[2]->ProjectionY("MassSignProP2",CutIndex+1,CutIndex+1); - MassSignPProj[3] = MassSignP[3]->ProjectionY("MassSignProP3",CutIndex+1,CutIndex+1); - MassSignIProj[0] = MassSignI[0]->ProjectionY("MassSignProI0",CutIndex+1,CutIndex+1); - MassSignIProj[1] = MassSignI[1]->ProjectionY("MassSignProI1",CutIndex+1,CutIndex+1); - MassSignIProj[2] = MassSignI[2]->ProjectionY("MassSignProI2",CutIndex+1,CutIndex+1); - MassSignIProj[3] = MassSignI[3]->ProjectionY("MassSignProI3",CutIndex+1,CutIndex+1); - MassSignMProj[0] = MassSignM[0]->ProjectionY("MassSignProM0",CutIndex+1,CutIndex+1); - MassSignMProj[1] = MassSignM[1]->ProjectionY("MassSignProM1",CutIndex+1,CutIndex+1); - MassSignMProj[2] = MassSignM[2]->ProjectionY("MassSignProM2",CutIndex+1,CutIndex+1); - MassSignMProj[3] = MassSignM[3]->ProjectionY("MassSignProM3",CutIndex+1,CutIndex+1); - MassSignTProj[0] = MassSignT[0]->ProjectionY("MassSignProT0",CutIndex+1,CutIndex+1); - MassSignTProj[1] = MassSignT[1]->ProjectionY("MassSignProT1",CutIndex+1,CutIndex+1); - MassSignTProj[2] = MassSignT[2]->ProjectionY("MassSignProT2",CutIndex+1,CutIndex+1); - MassSignTProj[3] = MassSignT[3]->ProjectionY("MassSignProT3",CutIndex+1,CutIndex+1); - - - double NData = MassDataProj->Integral(MassDataProj->GetXaxis()->FindBin(MinRange), MassDataProj->GetXaxis()->FindBin(MaxRange)); - double NPred = MassPredProj->Integral(MassPredProj->GetXaxis()->FindBin(MinRange), MassPredProj->GetXaxis()->FindBin(MaxRange)); - double NPredErr = pow(NPred*RescaleError,2); - for(int i=MassPredProj->GetXaxis()->FindBin(MinRange); i<=MassPredProj->GetXaxis()->FindBin(MaxRange) ;i++){NPredErr+=pow(MassPredProj->GetBinError(i),2);}NPredErr=sqrt(NPredErr); - - if(isnan(NPred))continue; - if(NPred<=0){continue;} //Is <=0 only when prediction failed or is not meaningful (i.e. WP=(0,0,0) ) -// if(NPred<1E-4){continue;} //This will never be the selection which gives the best expected limit (cutting too much on signal) --> Slowdown computation for nothing... - if(NPred>1000){continue;} //When NPred is too big, expected limits just take an infinite time! - - double Eff = 0; - double EffP = 0; - double EffI = 0; - double EffM = 0; - double EffT = 0; - if(RatioValue[0]<0 && RatioValue[1]<0 && RatioValue[2]<0){ - CurrentSampleIndex = JobIdToIndex(signal); if(CurrentSampleIndex<0){ printf("There is no signal corresponding to the JobId Given\n"); return toReturn; } - double INTERN_ESign = MassSignProj[0]->Integral(MassSignProj[0] ->GetXaxis()->FindBin(MinRange), MassSignProj[0] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [0]; - double INTERN_Eff = INTERN_ESign / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - Eff = INTERN_Eff; - //fprintf(pFile ,"%10s: INTERN_ESign=%6.2E INTERN_Eff=%6.E XSec=%6.2E Lumi=%6.2E\n",signal.c_str(),INTERN_ESign,INTERN_Eff,signals[CurrentSampleIndex].XSec, IntegratedLuminosity);fflush(stdout); - - double INTERN_ESignP = MassSignPProj[0]->Integral(MassSignPProj[0] ->GetXaxis()->FindBin(MinRange), MassSignPProj[0] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [0]; - double INTERN_EffP = INTERN_ESignP / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - EffP = INTERN_EffP; - - double INTERN_ESignI = MassSignIProj[0]->Integral(MassSignIProj[0] ->GetXaxis()->FindBin(MinRange), MassSignIProj[0] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [0]; - double INTERN_EffI = INTERN_ESignI / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - EffI = INTERN_EffI; - - double INTERN_ESignM = MassSignMProj[0]->Integral(MassSignMProj[0] ->GetXaxis()->FindBin(MinRange), MassSignMProj[0] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [0]; - double INTERN_EffM = INTERN_ESignM / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - EffM = INTERN_EffM; - - double INTERN_ESignT = MassSignTProj[0]->Integral(MassSignTProj[0] ->GetXaxis()->FindBin(MinRange), MassSignTProj[0] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [0]; - double INTERN_EffT = INTERN_ESignT / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - EffT = INTERN_EffT; - }else{ - for(unsigned int i=0;i<3;i++){ - CurrentSampleIndex = JobIdToIndex(signal); if(CurrentSampleIndex<0){ printf("There is no signal corresponding to the JobId Given\n"); return toReturn; } - double INTERN_ESign = MassSignProj[i+1]->Integral(MassSignProj[i+1] ->GetXaxis()->FindBin(MinRange), MassSignProj[i+1] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [1+i]; - double INTERN_Eff = INTERN_ESign / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - Eff += INTERN_Eff * RatioValue[i]; - - double INTERN_ESignP = MassSignPProj[i+1]->Integral(MassSignPProj[i+1] ->GetXaxis()->FindBin(MinRange), MassSignPProj[i+1] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [1+i]; - double INTERN_EffP = INTERN_ESignP / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - EffP += INTERN_EffP * RatioValue[i]; - - double INTERN_ESignI = MassSignIProj[i+1]->Integral(MassSignIProj[i+1] ->GetXaxis()->FindBin(MinRange), MassSignIProj[i+1] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [1+i]; - double INTERN_EffI = INTERN_ESignI / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - EffI += INTERN_EffI * RatioValue[i]; - - double INTERN_ESignM = MassSignMProj[i+1]->Integral(MassSignMProj[i+1] ->GetXaxis()->FindBin(MinRange), MassSignMProj[i+1] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [1+i]; - double INTERN_EffM = INTERN_ESignM / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - EffM += INTERN_EffM * RatioValue[i]; - - double INTERN_ESignT = MassSignTProj[i+1]->Integral(MassSignTProj[i+1] ->GetXaxis()->FindBin(MinRange), MassSignTProj[i+1] ->GetXaxis()->FindBin(MaxRange))/signalsMeanHSCPPerEvent [1+i]; - double INTERN_EffT = INTERN_ESignT / (signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - EffT += INTERN_EffT * RatioValue[i]; - } - } - if(Eff==0)continue; - NPred*=RescaleFactor; - - - - //fprintf(pFile ,"CutIndex=%4i ManHSCPPerEvents = %6.2f %6.2f %6.2f %6.2f NTracks = %6.3f %6.3f %6.3f %6.3f\n",CutIndex,signalsMeanHSCPPerEvent[0], signalsMeanHSCPPerEvent[1],signalsMeanHSCPPerEvent[2],signalsMeanHSCPPerEvent[3], MassSignProj[0]->Integral(), MassSignProj[1]->Integral(), MassSignProj[2]->Integral(), MassSignProj[3]->Integral()); - - fprintf(pFile ,"%10s: Testing CutIndex=%4i (Pt>%6.2f I>%6.3f TOF>%6.3f) %3.0fGetBinContent(CutIndex+1), HCuts_I ->GetBinContent(CutIndex+1), HCuts_TOF->GetBinContent(CutIndex+1), MinRange,NData,NPred, NPredErr,Eff);fflush(stdout); - fprintf(stdout ,"%10s: Testing CutIndex=%4i (Pt>%6.2f I>%6.3f TOF>%6.3f) %3.0fGetBinContent(CutIndex+1), HCuts_I ->GetBinContent(CutIndex+1), HCuts_TOF->GetBinContent(CutIndex+1), MinRange,NData,NPred, NPredErr,Eff);fflush(stdout); - - if(Eff/sqrt(max(0.1, NPred))>MaxSOverB) {MaxSOverB=Eff/sqrt(max(0.1, NPred)); MaxSOverBIndex=CutIndex;} - - toReturn.MassMean = Mean; - toReturn.MassSigma = Width; - toReturn.MassCut = MinRange; - toReturn.Index = CutIndex; - toReturn.WP_Pt = HCuts_Pt ->GetBinContent(CutIndex+1); - toReturn.WP_I = HCuts_I ->GetBinContent(CutIndex+1); - toReturn.WP_TOF = HCuts_TOF->GetBinContent(CutIndex+1); - toReturn.XSec_Th = signals[JobIdToIndex(signal)].XSec; - toReturn.XSec_Err = signals[JobIdToIndex(signal)].XSec * 0.15; - toReturn.Eff = Eff; - toReturn.Eff_SYSTP = EffP; - toReturn.Eff_SYSTI = EffI; - toReturn.Eff_SYSTM = EffM; - toReturn.Eff_SYSTT = EffT; - toReturn.NData = NData; - toReturn.NPred = NPred; - toReturn.NPredErr = NPredErr; - toReturn.NSign = Eff*(signals[CurrentSampleIndex].XSec*IntegratedLuminosity); - - CutInfo[CutIndex]=toReturn; - } - - fclose(pFile); - - //Find reach for point with best S Over sqrt(B) first. - double NPredSB=CutInfo[MaxSOverBIndex].NPred; - double NPredErrSB=CutInfo[MaxSOverBIndex].NPredErr; - double EffSB=CutInfo[MaxSOverBIndex].Eff; - - double FiveSigma=1E50; - for (int n_obs=5; n_obs<1000; n_obs++) { - if(nSigma(NPredSB, n_obs, NPredErrSB/NPredSB)>=5) { - FiveSigma=n_obs; - break; - } - } - - double MinReach=(FiveSigma-NPredSB)/(EffSB*IntegratedLuminosity); - toReturn=CutInfo[MaxSOverBIndex]; // In case this point does give the best reach avoids rounding errors - - for(int CutIndex=0;CutIndexGetNbinsX();CutIndex++){ - double NPred=CutInfo[CutIndex].NPred; - double NPredErr=CutInfo[CutIndex].NPredErr; - double Eff=CutInfo[CutIndex].Eff; - if(Eff==0) continue; //Eliminate points where prediction could not be made - double FiveSigma=1E50; - for (int n_obs=5; n_obs<1000; n_obs++) { - if(n_obs<(NPred+3*sqrt(NPred))) continue; //5 sigma implies more than 5 times sqrt(B) excess so can cut these points, put it at 3 to be safe - double thisReach=(n_obs-NPred)/(Eff*IntegratedLuminosity); - if(thisReach>=MinReach) break; // This selection point will not give the optimum reach so move on - if(nSigma(NPred, n_obs, NPredErr/NPred)>=5) { - FiveSigma=n_obs; - break; - } - } - - double Reach=(FiveSigma-NPred)/(Eff*IntegratedLuminosity); - if(Reach>MinReach) continue; - MinReach=Reach; - toReturn=CutInfo[CutIndex]; - } - - LimitResult CLMResults; - double signalUncertainty=0.10; - if (signals[JobIdToIndex(signal)].Mass<450) signalUncertainty=0.15; - double NPred=toReturn.NPred; - double NPredErr=toReturn.NPredErr; - double Eff=toReturn.Eff; - double NData=toReturn.NData; - - CLMResults = roostats_limit(IntegratedLuminosity, IntegratedLuminosity*0.06, Eff, Eff*signalUncertainty,NPred, NPredErr, NData, false, 1, "cls", "", 12345); - - double ExpLimit=CLMResults.GetExpectedLimit(); - double ExpLimitup = CLMResults.GetOneSigmaHighRange(); - double ExpLimitdown = CLMResults.GetOneSigmaLowRange(); - double ExpLimit2up = CLMResults.GetTwoSigmaHighRange(); - double ExpLimit2down = CLMResults.GetTwoSigmaLowRange(); - double ObsLimit = CLMResults.GetObservedLimit(); - - toReturn.XSec_Exp = CLMResults.GetExpectedLimit(); - toReturn.XSec_ExpUp = CLMResults.GetOneSigmaHighRange(); - toReturn.XSec_ExpDown = CLMResults.GetOneSigmaLowRange(); - toReturn.XSec_Exp2Up = CLMResults.GetTwoSigmaHighRange(); - toReturn.XSec_Exp2Down = CLMResults.GetTwoSigmaLowRange(); - toReturn.XSec_Obs = CLMResults.GetObservedLimit(); - toReturn.Significance = nSigma(NPred, NData, NPredErr/NPred); - - FILE* pFile2 = fopen((outpath+"/"+modelName+".txt").c_str(),"w"); - if(!pFile2)printf("Can't open file : %s\n",(outpath+"/"+modelName+".txt").c_str()); - fprintf(pFile2,"Mass : %f\n",signals[JobIdToIndex(signal)].Mass); - fprintf(pFile2,"MassMean : %f\n",toReturn.MassMean); - fprintf(pFile2,"MassSigma : %f\n",toReturn.MassSigma); - fprintf(pFile2,"MassCut : %f\n",toReturn.MassCut); - fprintf(pFile2,"Index : %f\n",toReturn.Index); - fprintf(pFile2,"WP_Pt : %f\n",toReturn.WP_Pt); - fprintf(pFile2,"WP_I : %f\n",toReturn.WP_I); - fprintf(pFile2,"WP_TOF : %f\n",toReturn.WP_TOF); - fprintf(pFile2,"Eff : %f\n",toReturn.Eff); - fprintf(pFile2,"Eff_SystP : %f\n",toReturn.Eff_SYSTP); - fprintf(pFile2,"Eff_SystI : %f\n",toReturn.Eff_SYSTI); - fprintf(pFile2,"Eff_SystM : %f\n",toReturn.Eff_SYSTM); - fprintf(pFile2,"Eff_SystT : %f\n",toReturn.Eff_SYSTT); - fprintf(pFile2,"Signif : %f\n",toReturn.Significance); - fprintf(pFile2,"XSec_Th : %f\n",toReturn.XSec_Th); - fprintf(pFile2,"XSec_Exp : %f\n",toReturn.XSec_Exp); - fprintf(pFile2,"XSec_ExpUp : %f\n",toReturn.XSec_ExpUp); - fprintf(pFile2,"XSec_ExpDown : %f\n",toReturn.XSec_ExpDown); - fprintf(pFile2,"XSec_Exp2Up : %f\n",toReturn.XSec_Exp2Up); - fprintf(pFile2,"XSec_Exp2Down: %f\n",toReturn.XSec_Exp2Down); - fprintf(pFile2,"XSec_Obs : %f\n",toReturn.XSec_Obs); - fprintf(pFile2,"NData : %+6.2E\n",toReturn.NData); - fprintf(pFile2,"NPred : %+6.2E\n",toReturn.NPred); - fprintf(pFile2,"NPredErr : %+6.2E\n",toReturn.NPredErr); - fprintf(pFile2,"NSign : %+6.2E\n",toReturn.NSign); - - fclose(pFile2); - - return toReturn; -} - - - - - - -int JobIdToIndex(string JobId){ - for(unsigned int s=0;sProjectionY("NTracksPassingSelection",CutIndex+1,CutIndex+1); - TH1D* NEventsPassingSelection = MaxEventMass->ProjectionY("NEventsPassingSelection",CutIndex+1,CutIndex+1); - - TH2D* Mass_NC0 = (TH2D*)GetObjectFromPath(InputFile, signals[CurrentSampleIndex].Name + "_NC0/Mass"); - TH2D* MaxEventMass_NC0 = (TH2D*)GetObjectFromPath(InputFile, signals[CurrentSampleIndex].Name + "_NC0/MaxEventMass"); - TH1D* NTracksPassingSelection_NC0 = Mass_NC0->ProjectionY("NTracksPassingSelection_NC0",CutIndex+1,CutIndex+1); - TH1D* NEventsPassingSelection_NC0 = MaxEventMass_NC0->ProjectionY("NEventsPassingSelection_NC0",CutIndex+1,CutIndex+1); - - TH2D* Mass_NC1 = (TH2D*)GetObjectFromPath(InputFile, signals[CurrentSampleIndex].Name + "_NC1/Mass"); - TH2D* MaxEventMass_NC1 = (TH2D*)GetObjectFromPath(InputFile, signals[CurrentSampleIndex].Name + "_NC1/MaxEventMass"); - TH1D* NTracksPassingSelection_NC1 = Mass_NC1->ProjectionY("NTracksPassingSelection_NC1",CutIndex+1,CutIndex+1); - TH1D* NEventsPassingSelection_NC1 = MaxEventMass_NC1->ProjectionY("NEventsPassingSelection_NC1",CutIndex+1,CutIndex+1); - - TH2D* Mass_NC2 = (TH2D*)GetObjectFromPath(InputFile, signals[CurrentSampleIndex].Name + "_NC2/Mass"); - TH2D* MaxEventMass_NC2 = (TH2D*)GetObjectFromPath(InputFile, signals[CurrentSampleIndex].Name + "_NC2/MaxEventMass"); - TH1D* NTracksPassingSelection_NC2 = Mass_NC2->ProjectionY("NTracksPassingSelection_NC2",CutIndex+1,CutIndex+1); - TH1D* NEventsPassingSelection_NC2 = MaxEventMass_NC2->ProjectionY("NEventsPassingSelection_NC2",CutIndex+1,CutIndex+1); - - double NTracks = NTracksPassingSelection->Integral(NTracksPassingSelection->GetXaxis()->FindBin(MinRange), NTracksPassingSelection->GetXaxis()->FindBin(MaxRange)); - double NEvents = NEventsPassingSelection->Integral(NEventsPassingSelection->GetXaxis()->FindBin(MinRange), NEventsPassingSelection->GetXaxis()->FindBin(MaxRange)); - double NTracks_NC0 = NTracksPassingSelection_NC0->Integral(NTracksPassingSelection_NC0->GetXaxis()->FindBin(MinRange), NTracksPassingSelection_NC0->GetXaxis()->FindBin(MaxRange)); - double NEvents_NC0 = NEventsPassingSelection_NC0->Integral(NEventsPassingSelection_NC0->GetXaxis()->FindBin(MinRange), NEventsPassingSelection_NC0->GetXaxis()->FindBin(MaxRange)); - - double NTracks_NC1 = NTracksPassingSelection_NC1->Integral(NTracksPassingSelection_NC1->GetXaxis()->FindBin(MinRange), NTracksPassingSelection_NC1->GetXaxis()->FindBin(MaxRange)); - double NEvents_NC1 = NEventsPassingSelection_NC1->Integral(NEventsPassingSelection_NC1->GetXaxis()->FindBin(MinRange), NEventsPassingSelection_NC1->GetXaxis()->FindBin(MaxRange)); - - double NTracks_NC2 = NTracksPassingSelection_NC2->Integral(NTracksPassingSelection_NC2->GetXaxis()->FindBin(MinRange), NTracksPassingSelection_NC2->GetXaxis()->FindBin(MaxRange)); - double NEvents_NC2 = NEventsPassingSelection_NC2->Integral(NEventsPassingSelection_NC2->GetXaxis()->FindBin(MinRange), NEventsPassingSelection_NC2->GetXaxis()->FindBin(MaxRange)); - - signalsMeanHSCPPerEvent[0] = (float)std::max(1.0,NTracks/ NEvents); - signalsMeanHSCPPerEvent[1] = (float)std::max(1.0,NTracks_NC0/ NEvents_NC0); - signalsMeanHSCPPerEvent[2] = (float)std::max(1.0,NTracks_NC1/ NEvents_NC1); - signalsMeanHSCPPerEvent[3] = (float)std::max(1.0,NTracks_NC2/ NEvents_NC2); - - delete Mass; - delete MaxEventMass; - delete Mass_NC0; - delete MaxEventMass_NC0; - delete Mass_NC1; - delete MaxEventMass_NC1; - delete Mass_NC2; - delete MaxEventMass_NC2; - delete NTracksPassingSelection; - delete NEventsPassingSelection; - delete NTracksPassingSelection_NC0; - delete NEventsPassingSelection_NC0; - delete NTracksPassingSelection_NC1; - delete NEventsPassingSelection_NC1; - delete NTracksPassingSelection_NC2; - delete NEventsPassingSelection_NC2; - - delete InputFile; - return; -} - -double FindIntersection(TGraph* obs, TGraph* th, double Min, double Max, double Step, double ThUncertainty, bool debug){ - - double Intersection = -1; - - double ThShift = 1.0-ThUncertainty; - double PreviousX = Min; - double PreviousV = obs->Eval(PreviousX, 0, "") - (ThShift * th->Eval(PreviousX, 0, "")) ; - if(PreviousV>0)return -1; - for(double x=Min+=Step;xEval(x, 0, "") - (ThShift * th->Eval(x, 0, "") ); - if(debug){ - printf("%7.2f --> Obs=%6.2E Th=%6.2E",x,obs->Eval(x, 0, ""),ThShift * th->Eval(x, 0, "")); - if(V>=0)printf(" X\n"); - else printf("\n"); - } - if(V<0){ - PreviousX = x; - PreviousV = V; - }else{ - Intersection = PreviousX; - } - } - return Intersection; -} - - - -int ReadXSection(string InputFile, double* Mass, double* XSec, double* Low, double* High, double* ErrLow, double* ErrHigh) -{ - FILE* pFile = fopen(InputFile.c_str(),"r"); - if(!pFile){ - printf("Not Found: %s\n",InputFile.c_str()); - return -1; - } - - float tmpM, tmpX, tmpL, tmpH; - - int NPoints = 0; - while ( ! feof (pFile) ){ - fscanf(pFile,"%f %E %E %E\n",&tmpM,&tmpX,&tmpH,&tmpL); - Mass [NPoints] = tmpM; - XSec [NPoints] = tmpX; - Low [NPoints] = tmpL; - High [NPoints] = tmpH; - ErrLow [NPoints] = tmpX-tmpL; - ErrHigh[NPoints] = tmpH-tmpX; - NPoints++; - - //printf("%fGeV --> Error = %f\n", tmpM, 0.5*(tmpH-tmpL)/tmpX); - } - - fclose(pFile); - - return NPoints; -} - - -TCutG* GetErrorBand(string name, int N, double* Mass, double* Low, double* High, double MinLow, double MaxHigh) -{ - TCutG* cutg = new TCutG(name.c_str(),2*N); - cutg->SetFillColor(kGreen-7); - for(int i=0;iSetPoint( i,Mass[i], Min); - } - for(int i=0;iSetPoint(N+i,Mass[N-1-i], Max); - } - return cutg; -} - -void DrawModelLimitWithBand(string InputPattern, string inputmodel) -{ - std::vector Models; - string modelname; - if(inputmodel == "Gluinof1"){ - Models.push_back("Gluino300_f1"); - Models.push_back("Gluino400_f1"); - Models.push_back("Gluino500_f1"); - Models.push_back("Gluino600_f1"); - Models.push_back("Gluino700_f1"); - Models.push_back("Gluino800_f1"); - Models.push_back("Gluino900_f1"); - Models.push_back("Gluino1000_f1"); - modelname="gluino; 10% #tilde{g}g (NLO+NLL)"; - } - else if(inputmodel == "Gluinof5"){ - Models.push_back("Gluino300_f5"); - Models.push_back("Gluino400_f5"); - Models.push_back("Gluino500_f5"); - Models.push_back("Gluino600_f5"); - Models.push_back("Gluino700_f5"); - Models.push_back("Gluino800_f5"); - Models.push_back("Gluino900_f5"); - Models.push_back("Gluino1000_f5"); - modelname="gluino; 50% #tilde{g}g (NLO+NLL)"; - } - else if(inputmodel == "GluinoN"){ - Models.push_back("Gluino300N_f1"); - Models.push_back("Gluino400N_f1"); - Models.push_back("Gluino500N_f1"); - Models.push_back("Gluino600N_f1"); - Models.push_back("Gluino700N_f1"); - Models.push_back("Gluino800N_f1"); - Models.push_back("Gluino900N_f1"); - Models.push_back("Gluino1000N_f1"); - modelname="gluino; 10% #tilde{g}g; ch. suppr.(NLO+NLL)"; - - } - else if(inputmodel == "Stop"){ - Models.push_back("Stop130"); - Models.push_back("Stop200"); - Models.push_back("Stop300"); - Models.push_back("Stop400"); - Models.push_back("Stop500"); - Models.push_back("Stop600"); - Models.push_back("Stop700"); - Models.push_back("Stop800"); - modelname="stop (NLO+NLL)"; - } - else if(inputmodel == "StopN"){ - Models.push_back("Stop130N"); - Models.push_back("Stop200N"); - Models.push_back("Stop300N"); - Models.push_back("Stop400N"); - Models.push_back("Stop500N"); - Models.push_back("Stop600N"); - Models.push_back("Stop700N"); - Models.push_back("Stop800N"); - modelname="stop;ch. suppr. (NLO+NLL)"; - } - else if(inputmodel == "GMStau"){ - Models.push_back("GMStau100"); - Models.push_back("GMStau126"); - Models.push_back("GMStau156"); - Models.push_back("GMStau200"); - Models.push_back("GMStau247"); - Models.push_back("GMStau308"); - Models.push_back("GMStau370"); - Models.push_back("GMStau432"); - Models.push_back("GMStau494"); - modelname="GMSB stau (NLO)"; - } - else if(inputmodel == "PPStau"){ - Models.push_back("PPStau100"); - Models.push_back("PPStau126"); - Models.push_back("PPStau156"); - Models.push_back("PPStau200"); - Models.push_back("PPStau247"); - Models.push_back("PPStau308"); - modelname="Pair Prod. stau (NLO)"; - } - else if(inputmodel == "DCRho08"){ - Models.push_back("DCRho08HyperK100"); - Models.push_back("DCRho08HyperK121"); - Models.push_back("DCRho08HyperK182"); - Models.push_back("DCRho08HyperK242"); - Models.push_back("DCRho08HyperK302"); - Models.push_back("DCRho08HyperK350"); - Models.push_back("DCRho08HyperK370"); - Models.push_back("DCRho08HyperK390"); - Models.push_back("DCRho08HyperK395"); - Models.push_back("DCRho08HyperK400"); - Models.push_back("DCRho08HyperK410"); - Models.push_back("DCRho08HyperK420"); - Models.push_back("DCRho08HyperK500"); - modelname="Hyperk #tilde{#rho} = 0.8 TeV (LO)"; - } - else if(inputmodel == "DCRho12"){ - Models.push_back("DCRho12HyperK100"); - Models.push_back("DCRho12HyperK182"); - Models.push_back("DCRho12HyperK302"); - Models.push_back("DCRho12HyperK500"); - Models.push_back("DCRho12HyperK530"); - Models.push_back("DCRho12HyperK570"); - Models.push_back("DCRho12HyperK590"); - Models.push_back("DCRho12HyperK595"); - Models.push_back("DCRho12HyperK600"); - Models.push_back("DCRho12HyperK610"); - Models.push_back("DCRho12HyperK620"); - Models.push_back("DCRho12HyperK700"); - modelname="Hyperk #tilde{#rho} = 1.2 TeV (LO)"; - } - else if(inputmodel == "DCRho16"){ - Models.push_back("DCRho16HyperK100"); - Models.push_back("DCRho16HyperK182"); - Models.push_back("DCRho16HyperK302"); - Models.push_back("DCRho16HyperK500"); - Models.push_back("DCRho16HyperK700"); - Models.push_back("DCRho16HyperK730"); - Models.push_back("DCRho16HyperK770"); - Models.push_back("DCRho16HyperK790"); - Models.push_back("DCRho16HyperK795"); - Models.push_back("DCRho16HyperK800"); - Models.push_back("DCRho16HyperK820"); - Models.push_back("DCRho16HyperK900"); - modelname="Hyperk #tilde{#rho} = 1.6 TeV (LO)"; - } - else{cout<<"no model specified"<SetLineStyle(3); - graphtheory->SetFillColor(kBlue); - graphexp->SetLineStyle(4); - graphexp->SetLineColor(kRed); - graphexp->SetMarkerStyle(); - graphexp->SetMarkerSize(0.); - Exp2SigmaErr->SetFillColor(kYellow); - Exp2SigmaErr->SetLineColor(kWhite); - ExpErr->SetFillColor(kGreen); - ExpErr->SetLineColor(kWhite); - graphobs->SetLineColor(kBlack); - graphobs->SetLineWidth(2); - graphobs->SetMarkerColor(kBlack); - graphobs->SetMarkerStyle(23); - - TCanvas* c1 = new TCanvas("c1", "c1",600,600); - TMultiGraph* MG = new TMultiGraph(); - - MG->Add(graphexp ,"LP"); - MG->Add(graphobs ,"LP"); - MG->Add(graphtheory ,"L"); - MG->Draw("A"); - Exp2SigmaErr->Draw("f"); - ExpErr ->Draw("f"); - MG->Draw("same"); - MG->SetTitle(""); - MG->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - MG->GetYaxis()->SetTitle("#sigma (pb)"); - MG->GetYaxis()->SetTitleOffset(1.70); - MG->GetYaxis()->SetRangeUser(PlotMinScale,PlotMaxScale); - DrawPreliminary(IntegratedLuminosity); - - TLegend* LEG = new TLegend(0.40,0.65,0.8,0.90); - string headerstr; - headerstr = "95% C.L. Limits (Tk + TOF)"; - if(IsTkOnly) headerstr = "95% C.L. Limits (Tracker - Only)"; - LEG->SetHeader(headerstr.c_str()); - LEG->SetFillColor(0); - LEG->SetBorderSize(0); - LEG->AddEntry(graphtheory, modelname.c_str() ,"L"); - LEG->AddEntry(graphexp, "Expected" ,"L"); - LEG->AddEntry(ExpErr, "Expected #pm 1#sigma","F"); - LEG->AddEntry(Exp2SigmaErr, "Expected #pm 2#sigma " ,"F"); - LEG->AddEntry(graphobs, "Observed" ,"LP"); - LEG->Draw(); - - c1->SetLogy(true); - - - if(IsTkOnly) SaveCanvas(c1,"Results/EXCLUSION/", string("Tk"+ inputmodel + "ExclusionLog")); - else SaveCanvas(c1,"Results/EXCLUSION/", string("Mu"+ inputmodel + "ExclusionLog")); - delete c1; - - -} -std::vector GetModels(string inputmodel) -{ - std::vector Models; - string modelname; - if(inputmodel == "Gluinof1"){ - Models.push_back("Gluino300_f1"); - Models.push_back("Gluino400_f1"); - Models.push_back("Gluino500_f1"); - Models.push_back("Gluino600_f1"); - Models.push_back("Gluino700_f1"); - Models.push_back("Gluino800_f1"); - Models.push_back("Gluino900_f1"); - Models.push_back("Gluino1000_f1"); -// Models.push_back("Gluino1100_f1"); - modelname="gluino; 10% #tilde{g}g (NLO+NLL)"; - } - else if(inputmodel == "Gluinof5"){ - Models.push_back("Gluino300_f5"); - Models.push_back("Gluino400_f5"); - Models.push_back("Gluino500_f5"); - Models.push_back("Gluino600_f5"); - Models.push_back("Gluino700_f5"); - Models.push_back("Gluino800_f5"); - Models.push_back("Gluino900_f5"); - Models.push_back("Gluino1000_f5"); -// Models.push_back("Gluino1100_f5"); - modelname="gluino; 50% #tilde{g}g (NLO+NLL)"; - } - else if(inputmodel == "GluinoN"){ - Models.push_back("Gluino300N_f1"); - Models.push_back("Gluino400N_f1"); - Models.push_back("Gluino500N_f1"); - Models.push_back("Gluino600N_f1"); - Models.push_back("Gluino700N_f1"); - Models.push_back("Gluino800N_f1"); - Models.push_back("Gluino900N_f1"); - Models.push_back("Gluino1000N_f1"); -// Models.push_back("Gluino1100N_f1"); - modelname="gluino; 10% #tilde{g}g; ch. suppr.(NLO+NLL)"; - } - else if(inputmodel == "Stop"){ - Models.push_back("Stop130"); - Models.push_back("Stop200"); - Models.push_back("Stop300"); - Models.push_back("Stop400"); - Models.push_back("Stop500"); - Models.push_back("Stop600"); - Models.push_back("Stop700"); - Models.push_back("Stop800"); - modelname="stop (NLO+NLL)"; - } - else if(inputmodel == "StopN"){ - Models.push_back("Stop130N"); - Models.push_back("Stop200N"); - Models.push_back("Stop300N"); - Models.push_back("Stop400N"); - Models.push_back("Stop500N"); - Models.push_back("Stop600N"); - Models.push_back("Stop700N"); - Models.push_back("Stop800N"); - modelname="stop;ch. suppr. (NLO+NLL)"; - } - else if(inputmodel == "GMStau"){ - Models.push_back("GMStau100"); - Models.push_back("GMStau126"); - Models.push_back("GMStau156"); - Models.push_back("GMStau200"); - Models.push_back("GMStau247"); - Models.push_back("GMStau308"); - Models.push_back("GMStau370"); - Models.push_back("GMStau432"); - Models.push_back("GMStau494"); - modelname="GMSB stau (NLO)"; - } - else if(inputmodel == "PPStau"){ - Models.push_back("PPStau100"); - Models.push_back("PPStau126"); - Models.push_back("PPStau156"); - Models.push_back("PPStau200"); - Models.push_back("PPStau247"); - Models.push_back("PPStau308"); - modelname="Pair Prod. stau (NLO)"; - } - else if(inputmodel == "DCRho08"){ - Models.push_back("DCRho08HyperK100"); - Models.push_back("DCRho08HyperK121"); - Models.push_back("DCRho08HyperK182"); - Models.push_back("DCRho08HyperK242"); - Models.push_back("DCRho08HyperK302"); - Models.push_back("DCRho08HyperK350"); - Models.push_back("DCRho08HyperK370"); - Models.push_back("DCRho08HyperK390"); - Models.push_back("DCRho08HyperK395"); - Models.push_back("DCRho08HyperK400"); - Models.push_back("DCRho08HyperK410"); - Models.push_back("DCRho08HyperK420"); - Models.push_back("DCRho08HyperK500"); - modelname="Hyperk #tilde{#rho} = 0.8 TeV (LO)"; - } - else if(inputmodel == "DCRho12"){ - Models.push_back("DCRho12HyperK100"); - Models.push_back("DCRho12HyperK182"); - Models.push_back("DCRho12HyperK302"); - Models.push_back("DCRho12HyperK500"); - Models.push_back("DCRho12HyperK530"); - Models.push_back("DCRho12HyperK570"); - Models.push_back("DCRho12HyperK590"); - Models.push_back("DCRho12HyperK595"); - Models.push_back("DCRho12HyperK600"); - Models.push_back("DCRho12HyperK610"); - Models.push_back("DCRho12HyperK620"); - Models.push_back("DCRho12HyperK700"); - modelname="Hyperk #tilde{#rho} = 1.2 TeV (LO)"; - } - else if(inputmodel == "DCRho16"){ - Models.push_back("DCRho16HyperK100"); - Models.push_back("DCRho16HyperK182"); - Models.push_back("DCRho16HyperK302"); - Models.push_back("DCRho16HyperK500"); - Models.push_back("DCRho16HyperK700"); - Models.push_back("DCRho16HyperK730"); - Models.push_back("DCRho16HyperK770"); - Models.push_back("DCRho16HyperK790"); - Models.push_back("DCRho16HyperK795"); - Models.push_back("DCRho16HyperK800"); - Models.push_back("DCRho16HyperK820"); - Models.push_back("DCRho16HyperK900"); - modelname="Hyperk #tilde{#rho} = 1.6 TeV (LO)"; - } - else{cout<<"no model specified"< TModels; - if(inputmodel == "Gluino"){ - TModels.push_back("Gluinof1"); - TModels.push_back("Gluinof5"); - if(IsTkOnly) TModels.push_back("GluinoN"); - } - - else if(inputmodel == "Stop"){ - TModels.push_back("Stop"); - if(IsTkOnly) TModels.push_back("StopN"); - } - - else if(inputmodel == "Stau"){ - TModels.push_back("GMStau"); - TModels.push_back("PPStau"); - } - else if(inputmodel == "Hyperk"){ - TModels.push_back("DCRho08"); - TModels.push_back("DCRho12"); - TModels.push_back("DCRho16"); - } - else if(inputmodel == "All"){ - TModels.push_back("Gluinof1"); - TModels.push_back("Gluinof5"); - if(IsTkOnly) TModels.push_back("GluinoN"); - TModels.push_back("Stop"); - if(IsTkOnly) TModels.push_back("StopN"); - TModels.push_back("GMStau"); - TModels.push_back("PPStau"); - TModels.push_back("DCRho08"); - TModels.push_back("DCRho12"); - TModels.push_back("DCRho16"); - } - - - else { - cout<<"no model specified"<SetBottomMargin(0.); - pad->SetLeftMargin(0.1); - pad->SetRightMargin(0.); - pad->SetTopMargin(0.); - padA[k] = pad; - padA[k]->Draw(); - } - - for(int k=0;k Models = GetModels(TModels[k]); - ModelNames[k]=GetModelName(TModels[k]); - - TMultiGraph* MG = new TMultiGraph(); - unsigned int N = Models.size(); - stAllInfo Infos;double Mass[N], XSecTh[N], XSecExp[N],XSecObs[N], XSecExpUp[N],XSecExpDown[N],XSecExp2Up[N],XSecExp2Down[N]; - for(int i=0;iSetLineStyle(3); - graphAexp[k]->SetLineStyle(4); - graphAexp[k]->SetLineColor(kRed); - graphAexp[k]->SetMarkerStyle(); - graphAexp[k]->SetMarkerSize(0.); - Exp2SigmaAErr[k]->SetFillColor(kYellow); - Exp2SigmaAErr[k]->SetLineColor(kWhite); - ExpAErr[k]->SetFillColor(kGreen); - ExpAErr[k]->SetLineColor(kWhite); - graphAobs[k]->SetLineColor(kBlack); - graphAobs[k]->SetLineWidth(2); - graphAobs[k]->SetMarkerColor(kBlack); - graphAobs[k]->SetMarkerStyle(23); - - - padA[k]->cd(); - - int masst[2] = {50,1050}; - int xsect[2] = {2, 1}; - TGraph* graph = new TGraph(2,masst,xsect); //fake graph to set xaxis right - graph->SetMarkerSize(0.); - MG->Add(graph ,"P"); - MG->Add(graphAobs[k] ,"LP"); - MG->Draw("A"); - if(k==0){ - TLegend* LEG = new TLegend(0.11,0.01,0.7,0.99); - string headerstr; - headerstr = " Tk + TOF"; - if(IsTkOnly) headerstr = " Tracker - Only"; - LEG->SetHeader(headerstr.c_str()); - LEG->SetFillColor(0); - LEG->SetBorderSize(0); - LEG->AddEntry(ExpAErr[0], "Expected #pm 1#sigma","F"); - LEG->AddEntry(Exp2SigmaAErr[0], "Expected #pm 2#sigma " ,"F"); - LEG->AddEntry(graphAobs[0],"Observed" ,"LP"); - LEG->SetMargin(0.1); - LEG->Draw(); - } - - Exp2SigmaAErr[k]->Draw("f"); - ExpAErr[k] ->Draw("f"); - MG->Draw("same"); - MG->SetTitle(""); - if(k==TModels.size()-1) { - MG->GetXaxis()->SetTitle("Mass (GeV/c^{2})"); - MG->GetXaxis()->SetTitleSize(0.4); - MG->GetXaxis()->SetLabelSize(0.4); - } - - TPaveText *pt; - if(IsTkOnly) pt = new TPaveText(0.45, 0.6, 0.95, 0.87,"LBNDC"); - else pt = new TPaveText(0.65, 0.7, 0.95, 0.85,"LBNDC"); - pt->SetBorderSize(0); - pt->SetLineWidth(0); - pt->SetFillColor(kWhite); - TText *text = pt->AddText(ModelNames[k].c_str()); - text ->SetTextAlign(11); - text ->SetTextSize(0.3); - if(IsTkOnly) text ->SetTextSize(0.35); - pt->Draw(); - - MG->GetXaxis()->SetRangeUser(50,1050); - MG->GetXaxis()->SetNdivisions(506,"Z"); - - MG->GetYaxis()->SetRangeUser(0.5,2.5); - MG->GetYaxis()->SetNdivisions(202,"Z"); - MG->GetYaxis()->SetLabelSize(0.2); - - - } - c1->cd(); - DrawPreliminary(IntegratedLuminosity); - - TPaveText *pt = new TPaveText(0.1, 0.01, 0.15, 0.85,"NDC"); - string tmp = "95% C.L. Limits (Relative to Expected Limit)"; - TText *text = pt->AddText(tmp.c_str()); - text ->SetTextAlign(11); - text ->SetTextAngle(90); - text ->SetTextSize(0.025); - pt->SetBorderSize(0); - pt->SetFillColor(0); - pt->Draw(); - - - - if(IsTkOnly) SaveCanvas(c1,"Results/EXCLUSION/", string("Tk"+ inputmodel + "LimitsRatio")); - else SaveCanvas(c1,"Results/EXCLUSION/", string("Mu"+ inputmodel + "LimitsRatio")); - - delete c1; - - -} - - - diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step6.sh b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step6.sh deleted file mode 100644 index aa92c2259cd74..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Analysis_Step6.sh +++ /dev/null @@ -1,8 +0,0 @@ -root -l -b << EOF - .x Analysis_Step6.C++("Final", "", "", "", -1, -1, -1, ""); -// .x Analysis_Step6.C+ ("Final", "", "", "", -1, -1, -1, "_SystP"); -// .x Analysis_Step6.C+ ("Final", "", "", "", -1, -1, -1, "_SystI"); -// .x Analysis_Step6.C+ ("Final", "", "", "", -1, -1, -1, "_SystM"); -// .x Analysis_Step6.C+ ("Final", "", "", "", -1, -1, -1, "_SystT"); -EOF - diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/CL95.h b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/CL95.h deleted file mode 100644 index 572c422b93f3d..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/CL95.h +++ /dev/null @@ -1,437 +0,0 @@ -/* -------------------------------------------------------------------------------- - Bayesian 95% CL limit and expected (average) 95% CL limit calculator for Poisson statistics - - The code shoudl be run from root in the compiled mode: - -.L cl95cms.c++ - - Usage: sigma95 = CL95(ilum, slum, eff, seff, bck, sbck, n, gauss = false, bckmodel = 0) - sigma95A = CLA(ilum, slum, eff, seff, bck, sbck, bckmodel = 0) - - Inputs: ilum - Nominal integrated luminosity (pb^-1) - slum - Absolute error on the integrated luminosity - eff - Nominal value of the efficiency times acceptance - seff - Absolute error on the efficiency times acceptance - bck - Nominal value of the background estimate - sbck - Absolute error on the background - n - Number of observed events (not used for the expected limit) - gauss - if true, use Gaussian statistics; automatically false for n = 0. Always false for expected limit calculations - bckmodel - distribution function used in integration over nuisance parameters: - 0 - Gaussian, 1 - lognormal, 2 - gamma; automatically 0 for gauss == true - - Written by Greg Landsberg; v1.0 February 27, 2003 - Modified by Greg Landsberg; v1.1 March 18, 2003 - some bugs fixed; - automatic graph scaling - Modified by Greg Landsberg; v1.2 May 15, 2003 - clean-up of the code - Modified by Greg Landsberg; v1.3 June 2, 2005 - further clean-up; - protection against numeric instability; - increased table for Poisson distribution; - Modified by Greg Landsberg; v1.3 June 2, 2010 - lognormal and Gamma nuisance - parameter integration --------------------------------------------------------------------------------- */ -#include -#include -#include "TMath.h" -#include "TF1.h" -#include "TArrow.h" -#include "TCanvas.h" - -static Double_t A0, sA, B0, sB, epsilon, MaxSig = 100.; -static Double_t MinLike = 1.e-6, Precision = 1.e-5; -static Int_t N; -static bool lGauss = kFALSE, plot = kFALSE; -static Int_t I = 0; -static Double_t sigma_a = 0., sigma_b = 0., tau_a = 0., tau_b = 0.; - -Double_t Likelihood(Double_t *x, Double_t *p); -Double_t Inner(Double_t *x, Double_t *par); -Double_t Outer(Double_t *x, Double_t *p); -Double_t Poisson(Double_t Mu, Int_t n); -Double_t CL95(Double_t ilum, Double_t slum, Double_t eff, Double_t seff, Double_t bck, Double_t sbck, Int_t n, Bool_t gauss = kFALSE, Int_t bckmodel = 0); -Double_t CLA(Double_t ilum, Double_t slum, Double_t eff, Double_t seff, Double_t bck, Double_t sbck, Int_t bckint = 0); - -Double_t CL95(Double_t ilum, Double_t slum, Double_t eff, Double_t seff, Double_t bck, Double_t sbck, Int_t n, Bool_t gauss, Int_t bckmodel) -{ - Double_t xmax = MaxSig; - Double_t x[1], p[1]; -// - A0 = ilum*eff; - sA = sqrt(ilum*seff*ilum*seff + eff*slum*eff*slum); - B0 = bck; - sB = sbck; - epsilon = TMath::Max(Precision/ilum,1.e-4); - // - lGauss = gauss; - if (n == 0) lGauss = kFALSE; - - if (!gauss) - { - if (bckmodel < 0 || bckmodel > 2) - { - //cout << "Incorrect nuissance parameter integration model. Gaussian will be used." << endl; - bckmodel = 0; - } - //if (plot) cout << "Poisson 95% CL limit with "; - I = bckmodel; - if (bckmodel == 0) - { - // if (plot) cout << "Gaussian "; - } - else if (bckmodel == 1) // Lognormal distribution is used - { - if (B0 > 0) sigma_b = TMath::Log(1. + sB/B0); - sigma_a = TMath::Log(1. + sA/A0); - // if (plot) cout << "Lognormal "; - } - else if (bckmodel == 2) // Gamma distribution is used - { - // if (plot) cout << "Gamma "; - if (sA > 0) - { - sigma_a = 1. + A0*A0/sA/sA; - tau_a = A0/sA/sA; - } - if (sB > 0) - { - sigma_b = 1. + B0*B0/sB/sB; - tau_b = B0/sB/sB; - } - } - }// else if (plot) cout << "Gaussian 95% CL limit with Gaussian "; -// if (plot) cout << "nuisance parameter integration will be used" << endl; - // - N = n; - x[0] = xmax; - p[0] = 0.; - // - Double_t delta = (Likelihood(x,p) - MinLike)/MinLike; - while (delta > 0) - { -// if (plot) cout << "delta = " << delta << endl; - - xmax = 2.*xmax; - x[0] = xmax; - delta = (Likelihood(x,p) - MinLike)/MinLike; - } - // - Double_t x1 = 0, x2 = xmax; - while (fabs(delta) > epsilon) - { - if (delta > 0) x1 = x[0]; - else x2 = x[0]; - x[0] = (x1 + x2)/2.; - delta = (Likelihood(x,p) - MinLike)/MinLike; - } - xmax = x[0]; - // - Int_t i = 0; - if (xmax > 1) - { - while (xmax > 10.) - { - xmax /= 10.; - i++; - } - xmax = (Int_t)(xmax + 1)*pow(10,i); - } - else - { - while (xmax < 1.) - { - xmax *= 10.; - i++; - } - xmax = (Int_t)(xmax + 1)*pow(10,-i); - } - // - TF1 like("Likelihood",Likelihood,0.,xmax,0); -// if (plot) cout << "Likelihood function is evaluated over [0," << xmax << "] " << endl; - // - Double_t Norm = like.Integral(0.,xmax,p,epsilon); -// if (plot) cout << "likelihood normalization: " << Norm << endl; - // - // Double_t x1, x2, delta; - x1 = 0; - x2 = xmax; - xmax = (x1 + x2)/2.; - delta = like.Integral(0,xmax,p,epsilon)/Norm - 0.95; - // - while (fabs(delta) > epsilon) - { - if (delta < 0) x1 = xmax; - else x2 = xmax; - xmax = (x1 + x2)/2.; - delta = like.Integral(0,xmax,p,epsilon)/Norm - 0.95; - } - - x[0] = like.GetMaximumX(0.,MaxSig); - if (plot) - { - TCanvas c("Likelihood"); - like.Draw(); - TArrow arrow(xmax,Likelihood(x,p)/7.,xmax,0,0.04); - arrow.SetLineWidth(3.); - arrow.Draw(); - c.Print("Likelihood.eps"); - } - if (plot) std::cout << "Upper 95% C.L. limit on signal = " << xmax << " pb" << std::endl; - // - return xmax; -} - -Double_t Likelihood(Double_t *x, Double_t *p) -{ - p=p; - Double_t retval = 0.; - if (sB == 0.) - { - if (sA == 0.) - { - if (lGauss) retval = TMath::Gaus(N-B0-x[0]*A0,0.,TMath::Sqrt(N),kTRUE); - else retval = Poisson(B0+x[0]*A0,N); - } - else - { - Double_t par[2]; - // TF1 *in = new TF1("Inner",Inner,0.,TMath::Max(A0 + 5.*sA,2); - TF1 *in = new TF1("Inner",Inner,0.,A0 + 5.*sA,2); - par[0]=B0; // background value - par[1]=x[0]; // signal cross section value - if (I == 0) - { - Double_t low = A0 > 5.*sA ? A0 - 5.*sA : 0.; - retval = in->Integral(low,A0+5.*sA,par,epsilon); - } else { - Double_t low = 0., high = A0 + 5.*sA, tmp = 1.; - while (tmp > epsilon) - { - tmp = in->Integral(low,high,par,epsilon); - retval += tmp; - low = high; - high *= 2; - } - } - delete in; - } - } - else - { - // TF1 *out = new TF1("Outer",Outer,0.,TMath::Max(B0 + 5.*sB,1000.),1); - TF1 *out = new TF1("Outer",Outer,0.,B0 + 5.*sB,1); - if (I == 0) - { - Double_t low = B0 > 5.*sB ? B0 - 5.*sB : 0.; - retval = out->Integral(low,B0+5.*sB,x,epsilon); - } else { - Double_t low = 0., high = B0 + 5.*sB, tmp = 1.; - while (tmp > epsilon) - { - tmp = out->Integral(low,high,x,epsilon); - retval += tmp; - low = high; - high *= 2; - } - } - delete out; - } - return retval; -} - -Double_t Outer(Double_t *x, Double_t *p) -{ - Double_t retval; - if (sA == 0.) - { - // cout << "x, sigma_b, B0 = " << x[0] << ", " << sigma_b << ", " << B0 << endl; - if (lGauss) retval = TMath::Gaus(x[0],B0,sB,kTRUE)*TMath::Gaus(N-x[0]-p[0]*A0,0.,TMath::Sqrt(N),kTRUE); - else if (I == 0) retval = TMath::Gaus(x[0],B0,sB,kTRUE)*Poisson(x[0]+p[0]*A0,N); - else if (I == 1) retval = TMath::LogNormal(x[0], sigma_b, 0., B0)*Poisson(x[0]+p[0]*A0,N); - else if (I == 2) retval = TMath::GammaDist(x[0], sigma_b, 0., 1./tau_b)*Poisson(x[0]+p[0]*A0,N); - else return 0; - } - else - { - Double_t par[2]; - // TF1 *in = new TF1("Inner",Inner,0.,TMath::Max(A0 + 5.*sA,1000.),2); - TF1 *in = new TF1("Inner",Inner,0.,A0 + 5.*sA,2); - par[0]=x[0]; // background value - par[1]=p[0]; // signal cross section value - Double_t low = A0 > 5.*sA ? A0 - 5.*sA : 0.; - if (I == 0) retval = TMath::Gaus(x[0],B0,sB,kTRUE)*in->Integral(low,A0+5.*sA,par,epsilon); - else if (I == 1) retval = TMath::LogNormal(x[0], sigma_b, 0., B0)*in->Integral(0.,A0+5.*sA,par,epsilon); - else if (I == 2) retval = TMath::GammaDist(x[0], sigma_b, 0., 1./tau_b)*in->Integral(0.,A0+5.*sA,par,epsilon); - else return 0; - delete in; - } - return retval; -} - -Double_t Inner(Double_t *x, Double_t *par) -{ - Double_t sigma, B; - // - B = par[0]; - sigma = par[1]; - if (lGauss) return TMath::Gaus(x[0],A0,sA,kTRUE)*TMath::Gaus(N-B-sigma*x[0],0.,TMath::Sqrt(N),kTRUE); - else if (I == 0) return TMath::Gaus(x[0],A0,sA,kTRUE)*Poisson(B+sigma*x[0],N); - else if (I == 1) return TMath::LogNormal(x[0], sigma_a, 0., A0)*Poisson(B+sigma*x[0],N); - else if (I == 2) return TMath::GammaDist(x[0], sigma_a, 0., 1./tau_a)*Poisson(B+sigma*x[0],N); - else return 0; -} - -Double_t Poisson(Double_t Mu, Int_t n) -{ - Double_t logP; - // - // Tabulate values of -\sum log(i+2) up to n=1000 for faster calculation - // - - // Double_t sum = 0.; - // for (Int_t j = 0; j < 999; j++) - // { - // sum -= log(j+2.); - // printf("%10f, ",sum); - // if (((j+1)/10)*10 == j + 1) printf("\n"); - // } - - Double_t logTable[999] = {-0.693147, -1.791759, -3.178054, -4.787492, -6.579251, -8.525161, -10.604603, -12.801827, -15.104413, -17.502308, - -19.987214, -22.552164, -25.191221, -27.899271, -30.671860, -33.505073, -36.395445, -39.339884, -42.335616, -45.380139, - -48.471181, -51.606676, -54.784729, -58.003605, -61.261702, -64.557539, -67.889743, -71.257039, -74.658236, -78.092224, - -81.557959, -85.054467, -88.580828, -92.136176, -95.719695, -99.330612, -102.968199, -106.631760, -110.320640, -114.034212, - -117.771881, -121.533082, -125.317271, -129.123934, -132.952575, -136.802723, -140.673924, -144.565744, -148.477767, -152.409593, - -156.360836, -160.331128, -164.320112, -168.327445, -172.352797, -176.395848, -180.456291, -184.533829, -188.628173, -192.739047, - -196.866182, -201.009316, -205.168199, -209.342587, -213.532241, -217.736934, -221.956442, -226.190548, -230.439044, -234.701723, - -238.978390, -243.268849, -247.572914, -251.890402, -256.221136, -260.564941, -264.921650, -269.291098, -273.673124, -278.067573, - -282.474293, -286.893133, -291.323950, -295.766601, -300.220949, -304.686857, -309.164194, -313.652830, -318.152640, -322.663499, - -327.185288, -331.717887, -336.261182, -340.815059, -345.379407, -349.954118, -354.539086, -359.134205, -363.739376, -368.354496, - -372.979469, -377.614198, -382.258589, -386.912549, -391.575988, -396.248817, -400.930948, -405.622296, -410.322777, -415.032307, - -419.750806, -424.478193, -429.214392, -433.959324, -438.712914, -443.475088, -448.245773, -453.024896, -457.812388, -462.608179, - -467.412200, -472.224384, -477.044665, -481.872979, -486.709261, -491.553448, -496.405478, -501.265291, -506.132825, -511.008023, - -515.890825, -520.781174, -525.679014, -530.584288, -535.496943, -540.416924, -545.344178, -550.278652, -555.220294, -560.169054, - -565.124881, -570.087726, -575.057539, -580.034273, -585.017879, -590.008312, -595.005524, -600.009471, -605.020106, -610.037386, - -615.061266, -620.091704, -625.128657, -630.172082, -635.221938, -640.278184, -645.340779, -650.409683, -655.484857, -660.566261, - -665.653857, -670.747608, -675.847474, -680.953420, -686.065407, -691.183401, -696.307365, -701.437264, -706.573062, -711.714726, - -716.862220, -722.015512, -727.174567, -732.339353, -737.509837, -742.685987, -747.867770, -753.055156, -758.248113, -763.446610, - -768.650617, -773.860103, -779.075039, -784.295395, -789.521141, -794.752250, -799.988692, -805.230439, -810.477463, -815.729736, - -820.987232, -826.249922, -831.517780, -836.790780, -842.068894, -847.352098, -852.640365, -857.933670, -863.231987, -868.535292, - -873.843560, -879.156766, -884.474886, -889.797896, -895.125772, -900.458491, -905.796029, -911.138363, -916.485471, -921.837329, - -927.193915, -932.555207, -937.921183, -943.291821, -948.667100, -954.046997, -959.431492, -964.820564, -970.214191, -975.612354, - -981.015031, -986.422203, -991.833849, -997.249950, -1002.670485, -1008.095435, -1013.524780, -1018.958502, -1024.396582, -1029.838999, - -1035.285737, -1040.736775, -1046.192096, -1051.651682, -1057.115514, -1062.583574, -1068.055844, -1073.532308, -1079.012947, -1084.497744, - -1089.986681, -1095.479743, -1100.976911, -1106.478169, -1111.983501, -1117.492889, -1123.006318, -1128.523771, -1134.045232, -1139.570685, - -1145.100114, -1150.633503, -1156.170838, -1161.712101, -1167.257279, -1172.806355, -1178.359314, -1183.916142, -1189.476824, -1195.041344, - -1200.609689, -1206.181843, -1211.757792, -1217.337522, -1222.921018, -1228.508267, -1234.099254, -1239.693965, -1245.292387, -1250.894506, - -1256.500308, -1262.109780, -1267.722908, -1273.339679, -1278.960080, -1284.584097, -1290.211718, -1295.842930, -1301.477720, -1307.116075, - -1312.757982, -1318.403428, -1324.052403, -1329.704892, -1335.360884, -1341.020366, -1346.683326, -1352.349753, -1358.019634, -1363.692957, - -1369.369711, -1375.049884, -1380.733463, -1386.420439, -1392.110798, -1397.804530, -1403.501624, -1409.202067, -1414.905850, -1420.612960, - -1426.323387, -1432.037120, -1437.754148, -1443.474460, -1449.198045, -1454.924892, -1460.654992, -1466.388333, -1472.124906, -1477.864699, - -1483.607702, -1489.353905, -1495.103298, -1500.855871, -1506.611613, -1512.370515, -1518.132566, -1523.897757, -1529.666078, -1535.437519, - -1541.212071, -1546.989723, -1552.770467, -1558.554292, -1564.341189, -1570.131149, -1575.924163, -1581.720221, -1587.519313, -1593.321432, - -1599.126567, -1604.934709, -1610.745850, -1616.559981, -1622.377092, -1628.197175, -1634.020221, -1639.846221, -1645.675166, -1651.507049, - -1657.341860, -1663.179590, -1669.020232, -1674.863776, -1680.710215, -1686.559540, -1692.411742, -1698.266814, -1704.124747, -1709.985533, - -1715.849165, -1721.715633, -1727.584930, -1733.457047, -1739.331978, -1745.209714, -1751.090247, -1756.973569, -1762.859673, -1768.748551, - -1774.640196, -1780.534598, -1786.431752, -1792.331650, -1798.234283, -1804.139645, -1810.047728, -1815.958524, -1821.872027, -1827.788229, - -1833.707123, -1839.628702, -1845.552957, -1851.479884, -1857.409473, -1863.341718, -1869.276612, -1875.214148, -1881.154319, -1887.097119, - -1893.042539, -1898.990574, -1904.941217, -1910.894460, -1916.850298, -1922.808722, -1928.769728, -1934.733307, -1940.699454, -1946.668161, - -1952.639423, -1958.613233, -1964.589584, -1970.568470, -1976.549884, -1982.533820, -1988.520272, -1994.509233, -2000.500698, -2006.494659, - -2012.491111, -2018.490048, -2024.491463, -2030.495350, -2036.501703, -2042.510516, -2048.521784, -2054.535499, -2060.551656, -2066.570249, - -2072.591272, -2078.614720, -2084.640586, -2090.668864, -2096.699550, -2102.732636, -2108.768117, -2114.805988, -2120.846243, -2126.888876, - -2132.933881, -2138.981253, -2145.030987, -2151.083076, -2157.137515, -2163.194299, -2169.253423, -2175.314879, -2181.378665, -2187.444773, - -2193.513198, -2199.583936, -2205.656981, -2211.732327, -2217.809969, -2223.889902, -2229.972121, -2236.056620, -2242.143395, -2248.232440, - -2254.323750, -2260.417320, -2266.513144, -2272.611219, -2278.711537, -2284.814096, -2290.918889, -2297.025912, -2303.135160, -2309.246627, - -2315.360309, -2321.476201, -2327.594299, -2333.714596, -2339.837089, -2345.961772, -2352.088641, -2358.217692, -2364.348918, -2370.482316, - -2376.617881, -2382.755608, -2388.895493, -2395.037530, -2401.181716, -2407.328045, -2413.476513, -2419.627116, -2425.779849, -2431.934707, - -2438.091686, -2444.250781, -2450.411988, -2456.575303, -2462.740721, -2468.908238, -2475.077848, -2481.249549, -2487.423335, -2493.599202, - -2499.777146, -2505.957163, -2512.139248, -2518.323397, -2524.509606, -2530.697870, -2536.888185, -2543.080548, -2549.274953, -2555.471397, - -2561.669876, -2567.870385, -2574.072920, -2580.277478, -2586.484054, -2592.692644, -2598.903244, -2605.115850, -2611.330458, -2617.547065, - -2623.765665, -2629.986255, -2636.208831, -2642.433390, -2648.659926, -2654.888437, -2661.118919, -2667.351367, -2673.585777, -2679.822147, - -2686.060472, -2692.300747, -2698.542971, -2704.787138, -2711.033244, -2717.281287, -2723.531263, -2729.783166, -2736.036995, -2742.292745, - -2748.550413, -2754.809994, -2761.071486, -2767.334884, -2773.600185, -2779.867386, -2786.136482, -2792.407471, -2798.680348, -2804.955110, - -2811.231753, -2817.510275, -2823.790671, -2830.072937, -2836.357071, -2842.643070, -2848.930928, -2855.220644, -2861.512213, -2867.805632, - -2874.100898, -2880.398007, -2886.696957, -2892.997742, -2899.300361, -2905.604810, -2911.911085, -2918.219184, -2924.529102, -2930.840837, - -2937.154385, -2943.469743, -2949.786908, -2956.105876, -2962.426644, -2968.749209, -2975.073568, -2981.399718, -2987.727655, -2994.057376, - -3000.388877, -3006.722157, -3013.057211, -3019.394037, -3025.732631, -3032.072990, -3038.415112, -3044.758992, -3051.104629, -3057.452018, - -3063.801157, -3070.152043, -3076.504672, -3082.859042, -3089.215150, -3095.572992, -3101.932566, -3108.293868, -3114.656896, -3121.021647, - -3127.388118, -3133.756305, -3140.126206, -3146.497818, -3152.871137, -3159.246162, -3165.622889, -3172.001315, -3178.381438, -3184.763254, - -3191.146760, -3197.531955, -3203.918834, -3210.307396, -3216.697636, -3223.089553, -3229.483144, -3235.878406, -3242.275335, -3248.673930, - -3255.074188, -3261.476105, -3267.879679, -3274.284908, -3280.691788, -3287.100316, -3293.510491, -3299.922310, -3306.335768, -3312.750865, - -3319.167598, -3325.585963, -3332.005958, -3338.427580, -3344.850827, -3351.275696, -3357.702184, -3364.130290, -3370.560009, -3376.991340, - -3383.424280, -3389.858827, -3396.294977, -3402.732729, -3409.172079, -3415.613026, -3422.055566, -3428.499697, -3434.945417, -3441.392723, - -3447.841612, -3454.292083, -3460.744132, -3467.197757, -3473.652955, -3480.109725, -3486.568063, -3493.027968, -3499.489436, -3505.952465, - -3512.417053, -3518.883198, -3525.350897, -3531.820147, -3538.290947, -3544.763293, -3551.237184, -3557.712616, -3564.189589, -3570.668098, - -3577.148143, -3583.629720, -3590.112827, -3596.597463, -3603.083624, -3609.571308, -3616.060512, -3622.551236, -3629.043476, -3635.537230, - -3642.032495, -3648.529270, -3655.027552, -3661.527339, -3668.028629, -3674.531419, -3681.035707, -3687.541491, -3694.048769, -3700.557538, - -3707.067797, -3713.579542, -3720.092772, -3726.607485, -3733.123678, -3739.641349, -3746.160496, -3752.681117, -3759.203210, -3765.726773, - -3772.251802, -3778.778297, -3785.306255, -3791.835674, -3798.366551, -3804.898886, -3811.432675, -3817.967916, -3824.504607, -3831.042747, - -3837.582333, -3844.123363, -3850.665835, -3857.209747, -3863.755097, -3870.301882, -3876.850101, -3883.399752, -3889.950832, -3896.503340, - -3903.057274, -3909.612630, -3916.169409, -3922.727607, -3929.287222, -3935.848253, -3942.410697, -3948.974552, -3955.539817, -3962.106490, - -3968.674567, -3975.244049, -3981.814932, -3988.387214, -3994.960895, -4001.535970, -4008.112440, -4014.690301, -4021.269553, -4027.850192, - -4034.432217, -4041.015626, -4047.600417, -4054.186589, -4060.774139, -4067.363066, -4073.953367, -4080.545040, -4087.138085, -4093.732498, - -4100.328279, -4106.925425, -4113.523934, -4120.123804, -4126.725034, -4133.327622, -4139.931566, -4146.536864, -4153.143514, -4159.751515, - -4166.360864, -4172.971560, -4179.583601, -4186.196985, -4192.811711, -4199.427776, -4206.045179, -4212.663918, -4219.283991, -4225.905397, - -4232.528133, -4239.152198, -4245.777591, -4252.404308, -4259.032350, -4265.661713, -4272.292396, -4278.924398, -4285.557717, -4292.192350, - -4298.828297, -4305.465555, -4312.104122, -4318.743998, -4325.385180, -4332.027667, -4338.671457, -4345.316548, -4351.962938, -4358.610627, - -4365.259611, -4371.909890, -4378.561462, -4385.214325, -4391.868478, -4398.523918, -4405.180645, -4411.838656, -4418.497950, -4425.158525, - -4431.820380, -4438.483512, -4445.147921, -4451.813605, -4458.480562, -4465.148790, -4471.818288, -4478.489054, -4485.161087, -4491.834385, - -4498.508947, -4505.184770, -4511.861853, -4518.540196, -4525.219795, -4531.900649, -4538.582758, -4545.266119, -4551.950731, -4558.636592, - -4565.323700, -4572.012055, -4578.701654, -4585.392497, -4592.084580, -4598.777904, -4605.472466, -4612.168265, -4618.865299, -4625.563567, - -4632.263068, -4638.963799, -4645.665759, -4652.368947, -4659.073361, -4665.779001, -4672.485863, -4679.193947, -4685.903251, -4692.613774, - -4699.325515, -4706.038471, -4712.752642, -4719.468025, -4726.184620, -4732.902424, -4739.621438, -4746.341658, -4753.063083, -4759.785713, - -4766.509546, -4773.234579, -4779.960813, -4786.688244, -4793.416873, -4800.146697, -4806.877715, -4813.609926, -4820.343328, -4827.077919, - -4833.813700, -4840.550666, -4847.288819, -4854.028156, -4860.768675, -4867.510376, -4874.253256, -4880.997315, -4887.742552, -4894.488964, - -4901.236550, -4907.985310, -4914.735241, -4921.486343, -4928.238613, -4934.992051, -4941.746655, -4948.502424, -4955.259356, -4962.017451, - -4968.776706, -4975.537121, -4982.298694, -4989.061423, -4995.825308, -5002.590347, -5009.356539, -5016.123882, -5022.892375, -5029.662017, - -5036.432806, -5043.204742, -5049.977822, -5056.752046, -5063.527412, -5070.303919, -5077.081566, -5083.860351, -5090.640273, -5097.421330, - -5104.203522, -5110.986848, -5117.771305, -5124.556892, -5131.343609, -5138.131454, -5144.920426, -5151.710523, -5158.501745, -5165.294089, - -5172.087555, -5178.882142, -5185.677848, -5192.474671, -5199.272612, -5206.071668, -5212.871838, -5219.673121, -5226.475515, -5233.279021, - -5240.083635, -5246.889358, -5253.696187, -5260.504122, -5267.313161, -5274.123304, -5280.934548, -5287.746893, -5294.560338, -5301.374881, - -5308.190521, -5315.007257, -5321.825087, -5328.644011, -5335.464028, -5342.285135, -5349.107333, -5355.930619, -5362.754992, -5369.580452, - -5376.406998, -5383.234627, -5390.063339, -5396.893133, -5403.724007, -5410.555960, -5417.388992, -5424.223101, -5431.058286, -5437.894545, - -5444.731878, -5451.570283, -5458.409759, -5465.250306, -5472.091921, -5478.934605, -5485.778355, -5492.623170, -5499.469050, -5506.315993, - -5513.163998, -5520.013065, -5526.863191, -5533.714376, -5540.566618, -5547.419917, -5554.274272, -5561.129681, -5567.986143, -5574.843657, - -5581.702222, -5588.561837, -5595.422500, -5602.284212, -5609.146970, -5616.010773, -5622.875621, -5629.741512, -5636.608445, -5643.476419, - -5650.345434, -5657.215487, -5664.086579, -5670.958707, -5677.831871, -5684.706069, -5691.581301, -5698.457566, -5705.334862, -5712.213188, - -5719.092544, -5725.972928, -5732.854339, -5739.736777, -5746.620240, -5753.504726, -5760.390236, -5767.276768, -5774.164320, -5781.052893, - -5787.942484, -5794.833093, -5801.724719, -5808.617361, -5815.511017, -5822.405687, -5829.301370, -5836.198064, -5843.095769, -5849.994483, - -5856.894207, -5863.794937, -5870.696674, -5877.599417, -5884.503164, -5891.407915, -5898.313668, -5905.220423, -5912.128178 }; - - logP = -Mu + n*log(Mu); - if (n >= 2) logP += logTable[TMath::Min(n,1000)-2]; - - for (Int_t i = 1001; i <= n; i++) logP -= log((Double_t) i); - - return exp(logP); -}// - -Double_t CLA(Double_t ilum, Double_t slum, Double_t eff, Double_t seff, Double_t bck, Double_t sbck, Int_t bckint) -{ - plot = kFALSE; - Double_t CL95A = 0, precision = 1.e-4; - Int_t i; - for (i = bck; i >= 0; i--) - { -// - Double_t s95 = CL95(ilum, slum, eff, seff, bck, sbck, i, kFALSE, bckint); - Double_t s95w =s95*Poisson(bck,i); - CL95A += s95w; -// cout << "n = " << i << "; 95% C.L. = " << s95 << " pb; weighted 95% C.L. = " << s95w << " pb; running = " << CL95A << " pb" << endl; -// - if (s95w < CL95A*precision) break; - } -// cout << "Lower bound on n has been found at " << i+1 << endl; -// - for (i = bck+1; ; i++) - { - Double_t s95 = CL95(ilum, slum, eff, seff, bck, sbck, i, kFALSE, bckint); - Double_t s95w =s95*Poisson(bck,i); - CL95A += s95w; -// cout << "n = " << i << "; 95% C.L. = " << s95 << " pb; weighted 95% C.L. = " << s95w << " pb; running = " << CL95A << " pb" << endl; -// - if (s95w < CL95A*precision) break; - } -// cout << "Upper bound on n has been found at " << i << endl; -// -// cout << "Average upper 95% C.L. limit = " << CL95A << " pb" << endl; - return CL95A; -} - diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/DumpInfo.C b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/DumpInfo.C deleted file mode 100644 index 56b66aa0450c5..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/DumpInfo.C +++ /dev/null @@ -1,551 +0,0 @@ - -#include - -#include "TROOT.h" -#include "TFile.h" -#include "TDirectory.h" -#include "TChain.h" -#include "TObject.h" -#include "TCanvas.h" -#include "TMath.h" -#include "TLegend.h" -#include "TGraph.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include "TTree.h" -#include "TF1.h" -#include "TGraphAsymmErrors.h" -#include "TPaveText.h" -#include "tdrstyle.C" -#include "TRandom3.h" -#include "TProfile.h" -#include "TDirectory.h" - - -class SiStripCluster; -namespace reco { class Vertex; class Track; class GenParticle; class DeDxData; class MuonTimeExtra;} -namespace susybsm { class HSCParticle; class HSCPIsolation;} -namespace fwlite { class ChainEvent;} -namespace trigger { class TriggerEvent;} -namespace edm {class TriggerResults; class TriggerResultsByName; class InputTag;} - - -#if !defined(__CINT__) && !defined(__MAKECINT__) -#include "DataFormats/FWLite/interface/Handle.h" -#include "DataFormats/FWLite/interface/Event.h" -#include "DataFormats/FWLite/interface/ChainEvent.h" - -#include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCPIsolation.h" -#include "DataFormats/MuonReco/interface/MuonTimeExtraMap.h" -#include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h" - -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" -#include "DataFormats/Common/interface/TriggerResults.h" - -#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h" -#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" -#include "DataFormats/TrackerRecHit2D/interface/ProjectedSiStripRecHit2D.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit1D.h" - -using namespace fwlite; -using namespace reco; -using namespace susybsm; -using namespace std; -using namespace edm; -using namespace trigger; -#endif - - -#include "Analysis_Global.h" -#include "Analysis_CommonFunction.h" -#include "Analysis_PlotFunction.h" -#include "Analysis_PlotStructure.h" -#include "Analysis_Samples.h" - - -std::vector signals; -std::vector MCsample; -std::vector DataFileName; -double CutMass; - -double CutPt; -double CutI; -double CutTOF; - -bool shapeSelection(const std::vector & ampls) -{ - // ---------------- COMPTAGE DU NOMBRE DE MAXIMA -------------------------- - //---------------------------------------------------------------------------- -// printf("ShapeTest \n"); - Int_t NofMax=0; Int_t recur255=1; Int_t recur254=1; - bool MaxOnStart=false;bool MaxInMiddle=false, MaxOnEnd =false; - Int_t MaxPos=0; - // Début avec max - if(ampls.size()!=1 && ((ampls[0]>ampls[1]) - || (ampls.size()>2 && ampls[0]==ampls[1] && ampls[1]>ampls[2] && ampls[0]!=254 && ampls[0]!=255) - || (ampls.size()==2 && ampls[0]==ampls[1] && ampls[0]!=254 && ampls[0]!=255)) ){ - NofMax=NofMax+1; MaxOnStart=true; } - - // Maximum entouré - if(ampls.size()>2){ - for (unsigned int i =1; i < ampls.size()-1; i++) { - if( (ampls[i]>ampls[i-1] && ampls[i]>ampls[i+1]) - || (ampls.size()>3 && i>0 && iampls[i-1] && ampls[i]>ampls[i+2] && ampls[i]!=254 && ampls[i]!=255) ){ - NofMax=NofMax+1; MaxInMiddle=true; MaxPos=i; - } - if(ampls[i]==255 && ampls[i]==ampls[i-1]) { - recur255=recur255+1; - MaxPos=i-(recur255/2); - if(ampls[i]>ampls[i+1]){NofMax=NofMax+1;MaxInMiddle=true;} - } - if(ampls[i]==254 && ampls[i]==ampls[i-1]) { - recur254=recur254+1; - MaxPos=i-(recur254/2); - if(ampls[i]>ampls[i+1]){NofMax=NofMax+1;MaxInMiddle=true;} - } - } - } - // Fin avec un max - if(ampls.size()>1){ - if(ampls[ampls.size()-1]>ampls[ampls.size()-2] - || (ampls.size()>2 && ampls[ampls.size()-1]==ampls[ampls.size()-2] && ampls[ampls.size()-2]>ampls[ampls.size()-3] ) - || ampls[ampls.size()-1]==255){ - NofMax=NofMax+1; MaxOnEnd=true; } - } - // Si une seule strip touchée - if(ampls.size()==1){ NofMax=1;} - - // --- SELECTION EN FONCTION DE LA FORME POUR LES MAXIMA UNIQUES --------- - //------------------------------------------------------------------------ - /* - ____ - | |____ - ____| | | - | | | |____ - ____| | | | | - | | | | | |____ - __|____|____|____|____|____|____|__ - C_Mnn C_Mn C_M C_D C_Dn C_Dnn - */ -// bool shapetest=true; - bool shapecdtn=false; - -// Float_t C_M; Float_t C_D; Float_t C_Mn; Float_t C_Dn; Float_t C_Mnn; Float_t C_Dnn; - Float_t C_M=0.0; Float_t C_D=0.0; Float_t C_Mn=10000; Float_t C_Dn=10000; Float_t C_Mnn=10000; Float_t C_Dnn=10000; - Int_t CDPos; - Float_t coeff1=1.7; Float_t coeff2=2.0; - Float_t coeffn=0.10; Float_t coeffnn=0.02; Float_t noise=4.0; - - if(NofMax==1){ - - if(MaxOnStart==true){ - C_M=(Float_t)ampls[0]; C_D=(Float_t)ampls[1]; - if(ampls.size()<3) shapecdtn=true ; - else if(ampls.size()==3){C_Dn=(Float_t)ampls[2] ; if(C_Dn<=coeff1*coeffn*C_D+coeff2*coeffnn*C_M+2*noise || C_D==255) shapecdtn=true;} - else if(ampls.size()>3){ C_Dn=(Float_t)ampls[2]; C_Dnn=(Float_t)ampls[3] ; - if((C_Dn<=coeff1*coeffn*C_D+coeff2*coeffnn*C_M+2*noise || C_D==255) - && C_Dnn<=coeff1*coeffn*C_Dn+coeff2*coeffnn*C_D+2*noise){ - shapecdtn=true;} - } - } - - if(MaxOnEnd==true){ - C_M=(Float_t)ampls[ampls.size()-1]; C_D=(Float_t)ampls[ampls.size()-2]; - if(ampls.size()<3) shapecdtn=true ; - else if(ampls.size()==3){C_Dn=(Float_t)ampls[0] ; if(C_Dn<=coeff1*coeffn*C_D+coeff2*coeffnn*C_M+2*noise || C_D==255) shapecdtn=true;} - else if(ampls.size()>3){C_Dn=(Float_t)ampls[ampls.size()-3] ; C_Dnn=(Float_t)ampls[ampls.size()-4] ; - if((C_Dn<=coeff1*coeffn*C_D+coeff2*coeffnn*C_M+2*noise || C_D==255) - && C_Dnn<=coeff1*coeffn*C_Dn+coeff2*coeffnn*C_D+2*noise){ - shapecdtn=true;} - } - } - if(MaxInMiddle==true){ - C_M=(Float_t)ampls[MaxPos]; - int LeftOfMaxPos=MaxPos-1;if(LeftOfMaxPos<=0)LeftOfMaxPos=0; - int RightOfMaxPos=MaxPos+1;if(RightOfMaxPos>=(int)ampls.size())RightOfMaxPos=ampls.size()-1; - //int after = RightOfMaxPos; int before = LeftOfMaxPos; if (after>=(int)ampls.size() || before<0) std::cout<<"invalid read MaxPos:"<3){ - if(CDPos>MaxPos){ - if(ampls.size()-CDPos-1==0){ - C_Dn=0; C_Dnn=0; - } - if(ampls.size()-CDPos-1==1){ - C_Dn=(Float_t)ampls[CDPos+1]; - C_Dnn=0; - } - if(ampls.size()-CDPos-1>1){ - C_Dn=(Float_t)ampls[CDPos+1]; - C_Dnn=(Float_t)ampls[CDPos+2]; - } - if(MaxPos>=2){ - C_Mnn=(Float_t)ampls[MaxPos-2]; - } - else if(MaxPos<2) C_Mnn=0; - } - if(CDPos1){ - C_Dn=(Float_t)ampls[CDPos-1]; - C_Dnn=(Float_t)ampls[CDPos-2]; - } - if(ampls.size()-LeftOfMaxPos>1 && MaxPos+2<(int)(ampls.size())-1){ - C_Mnn=(Float_t)ampls[MaxPos+2]; - }else C_Mnn=0; - } - if((C_Dn<=coeff1*coeffn*C_D+coeff2*coeffnn*C_M+2*noise || C_D==255) - && C_Mnn<=coeff1*coeffn*C_Mn+coeff2*coeffnn*C_M+2*noise - && C_Dnn<=coeff1*coeffn*C_Dn+coeff2*coeffnn*C_D+2*noise) { - shapecdtn=true; - } - - } - } - } - } - if(ampls.size()==1){shapecdtn=true;} - - return shapecdtn; -} - - -void printCluster(FILE* pFile, const SiStripCluster* Cluster) -{ -// const vector& Ampls = Cluster->amplitudes(); - const vector& Ampls = Cluster->amplitudes(); - uint32_t DetId = Cluster->geographicalId(); - - int Charge=0; - for(unsigned int i=0;i %4i = %3i ",DetId,Charge,Ampls[0]); - for(unsigned int i=1;i > vertexCollHandle; - vertexCollHandle.getByLabel(ev,"offlinePrimaryVertices"); - if(!vertexCollHandle.isValid()){printf("Vertex Collection NotFound\n");return;} - std::vector vertexColl = *vertexCollHandle; - if(vertexColl.size()<1){printf("NO VERTEX\n"); return;} - const reco::Vertex& vertex = vertexColl[0]; - - fwlite::Handle dEdxSCollH; - dEdxSCollH.getByLabel(ev, dEdxS_Label.c_str()); - if(!dEdxSCollH.isValid()){printf("Invalid dEdx Selection collection\n");return;} - DeDxData dedxSObj = dEdxSCollH->get(track.key()); - - fwlite::Handle dEdxMCollH; - dEdxMCollH.getByLabel(ev, dEdxM_Label.c_str()); - if(!dEdxMCollH.isValid()){printf("Invalid dEdx Mass collection\n");return;} - DeDxData dedxMObj = dEdxMCollH->get(track.key()); - - fwlite::Handle dEdxMNPCollH; - dEdxMNPCollH.getByLabel(ev, "dedxNPHarm2"); - if(!dEdxMNPCollH.isValid()){printf("Invalid dEdx Mass collection\n");return;} - DeDxData dedxMNPObj = dEdxMNPCollH->get(track.key()); - - fwlite::Handle TOFDTCollH; - TOFDTCollH.getByLabel(ev, "muontiming","dt"); - if(!TOFDTCollH.isValid()){printf("Invalid TOF DT collection\n");return;} - - fwlite::Handle TOFCSCCollH; - TOFCSCCollH.getByLabel(ev, "muontiming","csc"); - if(!TOFDTCollH.isValid()){printf("Invalid TOF CSC collection\n");return;} - - fwlite::Handle TOFCombCollH; - TOFCombCollH.getByLabel(ev, "muontiming","combined"); - if(!TOFCombCollH.isValid()){printf("Invalid TOF Combined collection\n");return;} - const reco::MuonTimeExtra* tof = NULL; - if(!hscp.muonRef().isNull()){ tof = &TOFCombCollH->get(hscp.muonRef().key()); } - - - if(track->pt()<=CutPt || dedxSObj.dEdx()<=CutI)return; - if(CutTOF>-1 && tof && tof->inverseBeta()<=CutTOF)return; - - double Mass = GetMass(track->p(),dedxMObj.dEdx()); - if(Massdz (vertex.position()); - double dxy = track->dxy(vertex.position()); - for(unsigned int i=1;idz (vertexColl[i].position())) < fabs(dz) ){ - dz = track->dz (vertexColl[i].position()); - dxy = track->dxy(vertexColl[i].position()); - } - } - double v3d = sqrt(dz*dz+dxy*dxy); - - fprintf(pFile,"\n"); - fprintf(pFile,"---------------------------------------------------------------------------------------------------\n"); - fprintf(pFile,"Candidate Type = %i --> Mass : %7.2f\n",hscp.type(),Mass); - fprintf(pFile,"------------------------------------------ EVENT INFO ---------------------------------------------\n"); - fprintf(pFile,"Run=%i Lumi=%i Event=%i BX=%i Orbit=%i Store=%i\n",ev.eventAuxiliary().run(),ev.eventAuxiliary().luminosityBlock(),ev.eventAuxiliary().event(),ev.eventAuxiliary().luminosityBlock(),ev.eventAuxiliary().orbitNumber(),ev.eventAuxiliary().storeNumber()); - //edm::TriggerResultsByName tr = ev.triggerResultsByName("Merge"); - //fprintf(pFile,"Trigger: SingleMu=%i DoubleMu=%i PFMHT=%i (CaloMET=%i)\n",(int)tr.accept(tr.triggerIndex("HscpPathSingleMu")), (int)tr.accept(tr.triggerIndex("HscpPathDoubleMu")), (int)tr.accept(tr.triggerIndex("HscpPathPFMet")), (int)tr.accept(tr.triggerIndex("HscpPathCaloMet"))); - fprintf(pFile,"------------------------------------------ INNER TRACKER ------------------------------------------\n"); - fprintf(pFile,"Quality = %i Chi2/NDF=%6.2f dz=+%6.2f dxy=%+6.2f V3D=%+6.2f charge:%+i\n",track->qualityMask(), track->chi2()/track->ndof(), dz, dxy, v3d, track->charge()); - fprintf(pFile,"P=%7.2f Pt=%7.2f+-%6.2f (Cut=%6.2f) Eta=%+6.2f Phi=%+6.2f NOH=%2i\n",track->p(),track->pt(), track->ptError(), CutPt, track->eta(), track->phi(), track->found() ); - - fprintf(pFile,"------------------------------------------ DEDX INFO ----------------------------------------------\n"); - fprintf(pFile,"dEdx for selection :%6.2f (Cut=%6.2f) NOM %2i NOS %2i\n",dedxSObj.dEdx(),CutI,dedxSObj.numberOfMeasurements(),dedxSObj.numberOfSaturatedMeasurements()); - fprintf(pFile,"dEdx for mass reco :%6.2f NOM %2i NOS %2i --> Beta dEdx = %6.2f\n",dedxMObj.dEdx(),dedxMObj.numberOfMeasurements(),dedxMObj.numberOfSaturatedMeasurements(), GetIBeta(dedxMObj.dEdx()) ); - fprintf(pFile,"dEdx for mass reco (NP):%6.2f NOM %2i NOS %2i --> Beta dEdx = %6.2f\n",dedxMNPObj.dEdx(),dedxMNPObj.numberOfMeasurements(),dedxMNPObj.numberOfSaturatedMeasurements(), GetIBeta(dedxMNPObj.dEdx()) ); - - fprintf(pFile,"dEdx mass error :%6.2f (1Sigma dEdx) or %6.2f (1Sigma P)\n", GetMass(track->p(),0.95*dedxMObj.dEdx()), GetMass(track->p()*(1-track->ptError()/track->pt()),dedxMObj.dEdx()) ); - - for(unsigned int h=0;hrecHitsSize();h++){ - TrackingRecHit* recHit = (track->recHit(h))->clone(); - if(const SiStripMatchedRecHit2D* matchedHit=dynamic_cast(recHit)){ - fprintf(pFile,"Mono Hit "); printCluster(pFile,(matchedHit->monoHit()->cluster()).get()); - fprintf(pFile,"StereoHit ");printCluster(pFile,(matchedHit->stereoHit()->cluster()).get()); - }else if(const SiStripRecHit2D* singleHit=dynamic_cast(recHit)){ - fprintf(pFile,"2D Hit ");printCluster(pFile,(singleHit->cluster()).get()); - }else if(const SiStripRecHit1D* single1DHit=dynamic_cast(recHit)){ - fprintf(pFile,"1D Hit ");printCluster(pFile,(single1DHit->cluster()).get()); - }else if(const SiPixelRecHit* pixelHit=dynamic_cast(recHit)){ - fprintf(pFile,"Pixel Hit --> Charge = %i\n",(int)pixelHit->cluster()->charge()); - } - } - - if(!muon.isNull()){ - fprintf(pFile,"------------------------------------------ MUON INFO ----------------------------------------------\n"); - MuonTimeExtra tofDT = TOFDTCollH->get(hscp.muonRef().key()); - MuonTimeExtra tofCSC = TOFCSCCollH->get(hscp.muonRef().key()); - MuonTimeExtra tofComb = TOFCombCollH->get(hscp.muonRef().key()); - - fprintf(pFile,"MassTOF = %7.2fGeV\n",GetTOFMass(track->p(),tofComb.inverseBeta())); - - fprintf(pFile,"Quality=%i type=%i P=%7.2f Pt=%7.2f Eta=%+6.2f Phi=%+6.2f #Chambers=%i\n" ,muon->isQualityValid(),muon->type(),muon->p(),muon->pt(),muon->eta(),muon->phi(),muon->numberOfChambers()); - fprintf(pFile,"muonTimeDT : NDOF=%2i InvBeta=%6.2f+-%6.2f (Cut=%6.2f) --> beta=%6.2f FreeInvBeta=%6.2f+-%6.2f\n",tofDT .nDof(),tofDT .inverseBeta(), tofDT .inverseBetaErr(), CutTOF, (1.0/tofDT .inverseBeta()), tofDT .freeInverseBeta(),tofDT .freeInverseBetaErr()); - fprintf(pFile,"muonTimeCSC : NDOF=%2i InvBeta=%6.2f+-%6.2f (Cut=%6.2f) --> beta=%6.2f FreeInvBeta=%6.2f+-%6.2f\n",tofCSC .nDof(),tofCSC .inverseBeta(), tofCSC .inverseBetaErr(), CutTOF, (1.0/tofCSC .inverseBeta()), tofCSC .freeInverseBeta(),tofCSC .freeInverseBetaErr()); - fprintf(pFile,"muonTimeCombined: NDOF=%2i InvBeta=%6.2f+-%6.2f (Cut=%6.2f) --> beta=%6.2f FreeInvBeta=%6.2f+-%6.2f\n",tofComb.nDof(),tofComb.inverseBeta(), tofComb.inverseBetaErr(), CutTOF, (1.0/tofComb.inverseBeta()), tofComb.freeInverseBeta(),tofComb.freeInverseBetaErr()); - } - if(hscp.hasRpcInfo()){ - fprintf(pFile,"------------------------------------------ RPC INFO -----------------------------------------------\n"); - fprintf(pFile,"isCandidate %i Beta=%6.2f\n",hscp.rpc().isCandidate,hscp.rpc().beta); - } - if(hscp.hasCaloInfo() && hscp.caloInfoRef()->ecalTime!=-9999){ - fprintf(pFile,"------------------------------------------ CALO INFO ----------------------------------------------\n"); - fprintf(pFile,"HCAL: E=%6.2f E3x3=%6.2f E5x5=%6.2f HO E=%6.2f\n",hscp.caloInfoRef()->hcalCrossedEnergy,hscp.caloInfoRef()->hcal3by3dir, hscp.caloInfoRef()->hcal5by5dir, hscp.caloInfoRef()->hoCrossedEnergy); - fprintf(pFile,"ECAL: E=%6.2f E3x3=%6.2f E5x5=%6.2f\n" ,hscp.caloInfoRef()->ecalCrossedEnergy,hscp.caloInfoRef()->ecal3by3dir, hscp.caloInfoRef()->ecal5by5dir); - fprintf(pFile,"ECAL: time=%6.2f beta=%6.2f trkisodr=%6.2f\n" ,hscp.caloInfoRef()->ecalTime ,hscp.caloInfoRef()->ecalBeta , hscp.caloInfoRef()->trkIsoDr); - } - - fprintf(pFile,"------------------------------------------ ISOL INFO ----------------------------------------------\n"); - fwlite::Handle IsolationH05; - IsolationH05.getByLabel(ev, "HSCPIsolation05"); - if(!IsolationH05.isValid()){printf("Invalid IsolationH\n");return;} - const ValueMap& IsolationMap05 = *IsolationH05.product(); - - fwlite::Handle IsolationH03; - IsolationH03.getByLabel(ev, "HSCPIsolation03"); - if(!IsolationH03.isValid()){printf("Invalid IsolationH\n");return;} - const ValueMap& IsolationMap03 = *IsolationH03.product(); - - fwlite::Handle IsolationH01; - IsolationH01.getByLabel(ev, "HSCPIsolation01"); - if(!IsolationH01.isValid()){printf("Invalid IsolationH\n");return;} - const ValueMap& IsolationMap01 = *IsolationH01.product(); - - HSCPIsolation hscpIso05 = IsolationMap05.get((size_t)track.key()); - HSCPIsolation hscpIso03 = IsolationMap03.get((size_t)track.key()); - HSCPIsolation hscpIso01 = IsolationMap01.get((size_t)track.key()); - fprintf(pFile,"Isolation05 --> TkCount=%6.2f TkSumEt=%6.2f EcalE/P=%6.2f HcalE/P=%6.2f --> E/P=%6.2f\n",hscpIso05.Get_TK_Count(), hscpIso05.Get_TK_SumEt(), hscpIso05.Get_ECAL_Energy()/track->p(), hscpIso05.Get_HCAL_Energy()/track->p(), (hscpIso05.Get_ECAL_Energy()+hscpIso05.Get_HCAL_Energy())/track->p()); - fprintf(pFile,"Isolation03 --> TkCount=%6.2f TkSumEt=%6.2f EcalE/P=%6.2f HcalE/P=%6.2f --> E/P=%6.2f\n",hscpIso03.Get_TK_Count(), hscpIso03.Get_TK_SumEt(), hscpIso03.Get_ECAL_Energy()/track->p(), hscpIso03.Get_HCAL_Energy()/track->p(), (hscpIso03.Get_ECAL_Energy()+hscpIso03.Get_HCAL_Energy())/track->p()); - fprintf(pFile,"Isolation01 --> TkCount=%6.2f TkSumEt=%6.2f EcalE/P=%6.2f HcalE/P=%6.2f --> E/P=%6.2f\n",hscpIso01.Get_TK_Count(), hscpIso01.Get_TK_SumEt(), hscpIso01.Get_ECAL_Energy()/track->p(), hscpIso01.Get_HCAL_Energy()/track->p(), (hscpIso01.Get_ECAL_Energy()+hscpIso01.Get_HCAL_Energy())/track->p()); - fprintf(pFile,"\n"); -} - -bool PassTrigger(const fwlite::ChainEvent& ev) -{ - fwlite::Handle hTriggerResults; - hTriggerResults.getByLabel(ev, "TriggerResults", "", "Merge"); - if(!hTriggerResults.isValid()) return false; - - edm::TriggerResultsByName tr = ev.triggerResultsByName(*hTriggerResults); - if(!tr.isValid())return false; - if(tr.accept(tr.triggerIndex("HscpPathMu")))return true; - if(tr.accept(tr.triggerIndex("HscpPathMet")))return true; - return false; -} - - -void DumpInfo(string Pattern, int CutIndex=0, double MassMin=0) -{ - CutMass = MassMin; - - - setTDRStyle(); - gStyle->SetPadTopMargin (0.05); - gStyle->SetPadBottomMargin(0.10); - gStyle->SetPadRightMargin (0.18); - gStyle->SetPadLeftMargin (0.13); - gStyle->SetTitleSize(0.04, "XYZ"); - gStyle->SetTitleXOffset(1.1); - gStyle->SetTitleYOffset(1.35); - gStyle->SetPalette(1); - gStyle->SetNdivisions(505); - TH1::AddDirectory(kTRUE); - - - GetSignalDefinition(signals); - GetMCDefinition(MCsample); - GetInputFiles(DataFileName, "Data"); - - TFile* InputFile = new TFile((Pattern + "/Histos_Data.root").c_str()); - TH1D* HCuts_Pt = (TH1D*)GetObjectFromPath(InputFile, "HCuts_Pt"); - TH1D* HCuts_I = (TH1D*)GetObjectFromPath(InputFile, "HCuts_I"); - TH1D* HCuts_TOF = (TH1D*)GetObjectFromPath(InputFile, "HCuts_TOF"); - TH1D* H_A = (TH1D*)GetObjectFromPath(InputFile, "H_A"); - TH1D* H_B = (TH1D*)GetObjectFromPath(InputFile, "H_B"); - TH1D* H_C = (TH1D*)GetObjectFromPath(InputFile, "H_C"); - TH1D* H_D = (TH1D*)GetObjectFromPath(InputFile, "H_D"); - TH1D* H_E = (TH1D*)GetObjectFromPath(InputFile, "H_E"); - TH1D* H_F = (TH1D*)GetObjectFromPath(InputFile, "H_F"); - TH1D* H_G = (TH1D*)GetObjectFromPath(InputFile, "H_G"); - TH1D* H_H = (TH1D*)GetObjectFromPath(InputFile, "H_H"); - TH1D* H_P = (TH1D*)GetObjectFromPath(InputFile, "H_P"); - CutPt = HCuts_Pt ->GetBinContent(CutIndex+1); - CutI = HCuts_I ->GetBinContent(CutIndex+1); - CutTOF = HCuts_TOF->GetBinContent(CutIndex+1); - - - - TTree* tree = (TTree*)GetObjectFromPath(InputFile, "Data/HscpCandidates"); - printf("Tree Entries=%lli\n",tree->GetEntries()); - - fwlite::ChainEvent ev(DataFileName); - - - unsigned int Run, Event, HscpI; - float Pt, I, TOF; - - tree->SetBranchAddress("Run" ,&Run); - tree->SetBranchAddress("Event",&Event); - tree->SetBranchAddress("Hscp" ,&HscpI); - tree->SetBranchAddress("Pt" ,&Pt); - tree->SetBranchAddress("I" ,&I); - tree->SetBranchAddress("TOF" ,&TOF); - - FILE* pFile = fopen("DumpInfo.txt","w"); - fprintf(pFile, "A = %6.2E\n",H_A->GetBinContent(CutIndex+1)); - fprintf(pFile, "B = %6.2E\n",H_B->GetBinContent(CutIndex+1)); - fprintf(pFile, "C = %6.2E\n",H_C->GetBinContent(CutIndex+1)); - fprintf(pFile, "D = %6.2E\n",H_D->GetBinContent(CutIndex+1)); - fprintf(pFile, "E = %6.2E\n",H_E->GetBinContent(CutIndex+1)); - fprintf(pFile, "F = %6.2E\n",H_F->GetBinContent(CutIndex+1)); - fprintf(pFile, "G = %6.2E\n",H_G->GetBinContent(CutIndex+1)); - fprintf(pFile, "H = %6.2E\n",H_H->GetBinContent(CutIndex+1)); - fprintf(pFile, "OBSERVED EVENTS = %6.2E\n",H_D->GetBinContent(CutIndex+1)); - fprintf(pFile, "PREDICTED EVENTS = %6.2E+-%6.2E\n",H_P->GetBinContent(CutIndex+1), H_P->GetBinError(CutIndex+1)); - - - printf("Progressing Bar :0%% 20%% 40%% 60%% 80%% 100%%\n"); - printf("Scanning D :"); - int TreeStep = tree->GetEntries()/50;if(TreeStep==0)TreeStep=1; - for (Int_t i=0;iGetEntries();i++){ - if(i%TreeStep==0){printf(".");fflush(stdout);} - tree->GetEntry(i); -// printf("%6i %9i %1i %6.2f %6.2f %6.2f\n",Run,Event,HscpI,Pt,I,TOF); - - if(Pt<=CutPt || I<=CutI || (CutTOF>-1 && TOF<=CutTOF))continue; - - ev.to(Run, Event); - fwlite::Handle hscpCollHandle; - hscpCollHandle.getByLabel(ev,"HSCParticleProducer"); - if(!hscpCollHandle.isValid()){printf("HSCP Collection NotFound\n");continue;} - const susybsm::HSCParticleCollection& hscpColl = *hscpCollHandle; - - susybsm::HSCParticle hscp = hscpColl[HscpI]; - DumpCandidateInfo(hscp, ev, pFile); - - }printf("\n"); - fclose(pFile); - - - - - -/* - fwlite::ChainEvent treeD(DataFileName); - SetWeight(-1); - printf("Progressing Bar :0%% 20%% 40%% 60%% 80%% 100%%\n"); - printf("Scanning D :"); - TreeStep = treeD.size()/50;if(TreeStep==0)TreeStep=1; - - for(Long64_t ientry=0;ientry0 && ientry>MaxEntry)break; - if(ientry%TreeStep==0){printf(".");fflush(stdout);} - - DataPlots.TotalE->Fill(0.0,Event_Weight); - if(!PassTrigger(treeD) )continue; - DataPlots.TotalTE->Fill(0.0,Event_Weight); - - fwlite::Handle hscpCollHandle; - hscpCollHandle.getByLabel(treeD,"HSCParticleProducer"); - if(!hscpCollHandle.isValid()){printf("HSCP Collection NotFound\n");continue;} - const susybsm::HSCParticleCollection& hscpColl = *hscpCollHandle; - - fwlite::Handle dEdxSCollH; - dEdxSCollH.getByLabel(treeD, dEdxS_Label.c_str()); - if(!dEdxSCollH.isValid()){printf("Invalid dEdx Selection collection\n");continue;} - - fwlite::Handle dEdxMCollH; - dEdxMCollH.getByLabel(treeD, dEdxM_Label.c_str()); - if(!dEdxMCollH.isValid()){printf("Invalid dEdx Mass collection\n");continue;} - - fwlite::Handle TOFCollH; - TOFCollH.getByLabel(treeD, "muontiming",TOF_Label.c_str()); - if(!TOFCollH.isValid()){printf("Invalid TOF collection\n");return;} - - bool* HSCPTk = new bool[CutPt.size()]; for(unsigned int CutIndex=0;CutIndexget(track.key()); - const DeDxData& dedxMObj = dEdxMCollH->get(track.key()); - const reco::MuonTimeExtra* tof = NULL; - if(TypeMode==2 && !hscp.muonRef().isNull()){ tof = &TOFCollH->get(hscp.muonRef().key()); } - - - double MuonTOF = GlobalMinTOF; - if(tof){MuonTOF = tof->inverseBeta(); } - if(track->pt()>40 && Mass>75)stPlots_FillTree(DataPlots, treeD.eventAuxiliary().run(),treeD.eventAuxiliary().event(), c, track->pt(), dedxSObj.dEdx(), tof ? tof->inverseBeta() : -1); - } // end of Track Loop - for(unsigned int CutIndex=0;CutIndexFill(CutIndex,Event_Weight); } } - }// end of Event Loop - //stPlots_CloseTree(DataPlots); - printf("\n"); -*/ -} diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/DumpInfo.sh b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/DumpInfo.sh deleted file mode 100644 index d464ec66c43e9..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/DumpInfo.sh +++ /dev/null @@ -1,16 +0,0 @@ -root -l -b << EOF - TString makeshared(gSystem->GetMakeSharedLib()); - TString dummy = makeshared.ReplaceAll("-W ", ""); - TString dummy = makeshared.ReplaceAll("-Wshadow ", ""); - gSystem->SetMakeSharedLib(makeshared); - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - gSystem->Load("libDataFormatsFWLite.so"); - gSystem->Load("libAnalysisDataFormatsSUSYBSMObjects.so"); - gSystem->Load("libDataFormatsVertexReco.so"); - gSystem->Load("libDataFormatsCommon.so"); - gSystem->Load("libDataFormatsHepMCCandidate.so"); - gSystem->Load("libDataFormatsTrackerRecHit2D.so"); - .x DumpInfo.C++("Results/dedxASmi/combined/Eta15/PtMin35/Type0/",2,500); -EOF - diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Launch.py b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Launch.py deleted file mode 100644 index ba90f857ff6ed..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/Launch.py +++ /dev/null @@ -1,232 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -import urllib -import string -import os -import sys -import LaunchOnCondor -import glob - -def ComputeLimits(InputPattern, syst): -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino300_2C"' , '"Gluino300"', 0.0 / 0.3029 , 0.0 / 0.4955 , 1.0 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino400_2C"' , '"Gluino400"', 0.0 / 0.3029 , 0.0 / 0.4955 , 1.0 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino500_2C"' , '"Gluino500"', 0.0 / 0.3029 , 0.0 / 0.4955 , 1.0 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino600_2C"' , '"Gluino600"', 0.0 / 0.3029 , 0.0 / 0.4955 , 1.0 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino700_2C"' , '"Gluino700"', 0.0 / 0.3029 , 0.0 / 0.4955 , 1.0 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino800_2C"' , '"Gluino800"', 0.0 / 0.3029 , 0.0 / 0.4955 , 1.0 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino900_2C"' , '"Gluino900"', 0.0 / 0.3029 , 0.0 / 0.4955 , 1.0 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1000_2C"', '"Gluino1000"',0.0 / 0.3029 , 0.0 / 0.4955 , 1.0 / 0.2015 , syst]) - -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino300_f0"' , '"Gluino300"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino400_f0"' , '"Gluino400"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino500_f0"' , '"Gluino500"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino600_f0"' , '"Gluino600"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino700_f0"' , '"Gluino700"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino800_f0"' , '"Gluino800"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino900_f0"' , '"Gluino900"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1000_f0"', '"Gluino1000"',0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino300_f1"' , '"Gluino300"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino400_f1"' , '"Gluino400"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino500_f1"' , '"Gluino500"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino600_f1"' , '"Gluino600"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino700_f1"' , '"Gluino700"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino800_f1"' , '"Gluino800"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino900_f1"' , '"Gluino900"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1000_f1"', '"Gluino1000"',0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1100_f1"', '"Gluino1100"',0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino300_f5"' , '"Gluino300"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino400_f5"' , '"Gluino400"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino500_f5"' , '"Gluino500"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino600_f5"' , '"Gluino600"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino700_f5"' , '"Gluino700"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino800_f5"' , '"Gluino800"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino900_f5"' , '"Gluino900"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1000_f5"', '"Gluino1000"',0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1100_f5"', '"Gluino1100"',0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino300N_f0"', '"Gluino300N"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino400N_f0"', '"Gluino400N"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino500N_f0"', '"Gluino500N"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino600N_f0"', '"Gluino600N"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino700N_f0"', '"Gluino700N"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino800N_f0"', '"Gluino800N"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino900N_f0"', '"Gluino900N"', 0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) -# launchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1000N_f0"','"Gluino1000N"',0.2524 / 0.3029 , 0.4893 / 0.4955 , 0.2583 / 0.2015 , syst]) - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino300N_f1"', '"Gluino300N"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino400N_f1"', '"Gluino400N"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino500N_f1"', '"Gluino500N"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino600N_f1"', '"Gluino600N"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino700N_f1"', '"Gluino700N"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino800N_f1"', '"Gluino800N"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino900N_f1"', '"Gluino900N"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1000N_f1"','"Gluino1000N"',0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1100N_f1"','"Gluino1100N"',0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino300N_f5"', '"Gluino300N"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino400N_f5"', '"Gluino400N"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino500N_f5"', '"Gluino500N"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) -# launchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino600N_f5"', '"Gluino600N"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino700N_f5"', '"Gluino700N"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino800N_f5"', '"Gluino800N"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino900N_f5"', '"Gluino900N"', 0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino1000N_f5"','"Gluino1000N"',0.5739 / 0.3029 , 0.3704 / 0.4955 , 0.0557 / 0.2015 , syst]) - -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino600Z_f1"' , '"Gluino600Z"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino700Z_f1"' , '"Gluino700Z"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Gluino800Z_f1"' , '"Gluino800Z"', 0.3029 / 0.3029 , 0.4955 / 0.4955 , 0.2015 / 0.2015 , syst]) - -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop130_2C"' , '"Stop130"', 0.0 / 0.1705 , 0.0 / 0.4868 , 1.0 / 0.3427 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop200_2C"' , '"Stop200"', 0.0 / 0.1705 , 0.0 / 0.4868 , 1.0 / 0.3427 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop300_2C"' , '"Stop300"', 0.0 / 0.1705 , 0.0 / 0.4868 , 1.0 / 0.3427 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop400_2C"' , '"Stop400"', 0.0 / 0.1705 , 0.0 / 0.4868 , 1.0 / 0.3427 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop500_2C"' , '"Stop500"', 0.0 / 0.1705 , 0.0 / 0.4868 , 1.0 / 0.3427 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop600_2C"' , '"Stop600"', 0.0 / 0.1705 , 0.0 / 0.4868 , 1.0 / 0.3427 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop700_2C"' , '"Stop700"', 0.0 / 0.1705 , 0.0 / 0.4868 , 1.0 / 0.3427 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop800_2C"' , '"Stop800"', 0.0 / 0.1705 , 0.0 / 0.4868 , 1.0 / 0.3427 , syst]) - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop130"' , '"Stop130"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop200"' , '"Stop200"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop300"' , '"Stop300"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop400"' , '"Stop400"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop500"' , '"Stop500"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop600"' , '"Stop600"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop700"' , '"Stop700"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop800"' , '"Stop800"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop130N"' , '"Stop130N"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop200N"' , '"Stop200N"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop300N"' , '"Stop300N"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop400N"' , '"Stop400N"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop500N"' , '"Stop500N"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop600N"' , '"Stop600N"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop700N"' , '"Stop700N"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop800N"' , '"Stop800N"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop300Z"' , '"Stop300Z"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop400Z"' , '"Stop400Z"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) -# LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"Stop500Z"' , '"Stop500Z"', 0.1705 / 0.1705 , 0.4868 / 0.4868 , 0.3427 / 0.3427 , syst]) - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"GMStau100"', '"GMStau100"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"GMStau126"', '"GMStau126"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"GMStau156"', '"GMStau156"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"GMStau200"', '"GMStau200"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"GMStau247"', '"GMStau247"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"GMStau308"', '"GMStau308"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"GMStau370"', '"GMStau370"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"GMStau432"', '"GMStau432"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"GMStau494"', '"GMStau494"' ,-1, -1, -1 , syst]) - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"PPStau100"', '"PPStau100"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"PPStau126"', '"PPStau126"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"PPStau156"', '"PPStau156"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"PPStau200"', '"PPStau200"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"PPStau247"', '"PPStau247"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"PPStau308"', '"PPStau308"' ,-1, -1, -1 , syst]) - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK100"', '"DCRho08HyperK100"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK121"', '"DCRho08HyperK121"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK182"', '"DCRho08HyperK182"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK242"', '"DCRho08HyperK242"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK302"', '"DCRho08HyperK302"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK350"', '"DCRho08HyperK350"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK370"', '"DCRho08HyperK370"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK390"', '"DCRho08HyperK390"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK395"', '"DCRho08HyperK395"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK400"', '"DCRho08HyperK400"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK410"', '"DCRho08HyperK410"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK420"', '"DCRho08HyperK420"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho08HyperK500"', '"DCRho08HyperK500"' ,-1, -1, -1 , syst]) - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK100"', '"DCRho12HyperK100"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK182"', '"DCRho12HyperK182"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK302"', '"DCRho12HyperK302"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK500"', '"DCRho12HyperK500"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK530"', '"DCRho12HyperK530"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK570"', '"DCRho12HyperK570"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK590"', '"DCRho12HyperK590"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK595"', '"DCRho12HyperK595"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK600"', '"DCRho12HyperK600"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK610"', '"DCRho12HyperK610"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK620"', '"DCRho12HyperK620"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho12HyperK700"', '"DCRho12HyperK700"' ,-1, -1, -1 , syst]) - - - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK100"', '"DCRho16HyperK100"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK182"', '"DCRho16HyperK182"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK302"', '"DCRho16HyperK302"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK500"', '"DCRho16HyperK500"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK700"', '"DCRho16HyperK700"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK730"', '"DCRho16HyperK730"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK770"', '"DCRho16HyperK770"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK790"', '"DCRho16HyperK790"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK795"', '"DCRho16HyperK795"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK800"', '"DCRho16HyperK800"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK810"', '"DCRho16HyperK810"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK820"', '"DCRho16HyperK820"' ,-1, -1, -1 , syst]) - LaunchOnCondor.SendCluster_Push(["ROOT", os.getcwd()+"/Analysis_Step6.C", '"ANALYSE"', InputPattern, '"DCRho16HyperK900"', '"DCRho16HyperK900"' ,-1, -1, -1 , syst]) - - -if len(sys.argv)==1: - print("Please pass in argument a number between 0 and 2") - print(" 0 - Submit the Core of the (TkOnly+TkTOF) Analysis --> submitting 2x 3 jobs") - print(" 1 - Run the control plot macro --> submitting 0 jobs") - print(" 2 - Run the Optimization macro based on best Exp Limit --> submitting 2xSignalPoints jobs") - print(" 3 - Run the exclusion plot macro --> submitting 0 jobs") - sys.exit() - -elif sys.argv[1]=='0': - print('ANALYSIS') - FarmDirectory = "FARM" - JobName = "HscpAnalysis" - LaunchOnCondor.Jobs_RunHere = 1 - LaunchOnCondor.SendCluster_Create(FarmDirectory, JobName) - LaunchOnCondor.SendCluster_Push(["FWLITE", os.getcwd()+"/Analysis_Step234.C", '"ANALYSE_DATA"' , 0, '"dedxASmi"' ,'"dedxHarm2"' , '"combined"', 0.0, 0.0, 0.0, 45, 1.5]) #TkOnly - LaunchOnCondor.SendCluster_Push(["FWLITE", os.getcwd()+"/Analysis_Step234.C", '"ANALYSE_SIGNAL"', 0, '"dedxASmi"' ,'"dedxHarm2"' , '"combined"', 0.0, 0.0, 0.0, 45, 1.5]) #TkOnly - LaunchOnCondor.SendCluster_Push(["FWLITE", os.getcwd()+"/Analysis_Step234.C", '"ANALYSE_MC"' , 0, '"dedxASmi"' ,'"dedxHarm2"' , '"combined"', 0.0, 0.0, 0.0, 45, 1.5]) #TkOnly - LaunchOnCondor.SendCluster_Push(["FWLITE", os.getcwd()+"/Analysis_Step234.C", '"ANALYSE_DATA"' , 2, '"dedxASmi"' ,'"dedxHarm2"' , '"combined"', 0.0, 0.0, 0.0, 45, 1.5]) #TkTOF - LaunchOnCondor.SendCluster_Push(["FWLITE", os.getcwd()+"/Analysis_Step234.C", '"ANALYSE_SIGNAL"', 2, '"dedxASmi"' ,'"dedxHarm2"' , '"combined"', 0.0, 0.0, 0.0, 45, 1.5]) #TkTOF - LaunchOnCondor.SendCluster_Push(["FWLITE", os.getcwd()+"/Analysis_Step234.C", '"ANALYSE_MC"' , 2, '"dedxASmi"' ,'"dedxHarm2"' , '"combined"', 0.0, 0.0, 0.0, 45, 1.5]) #TkTOF - LaunchOnCondor.SendCluster_Submit() - -elif sys.argv[1]=='1': - print('PLOTTING') - os.system('root Analysis_Step5.C++ -l -b -q') - - -elif sys.argv[1]=='2': - print('OPTIMIZATION') - FarmDirectory = "FARM" - JobName = "HscpLimits" - LaunchOnCondor.Jobs_RunHere = 1 - LaunchOnCondor.SendCluster_Create(FarmDirectory, JobName) -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type0/"', '""') -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type2/"', '""') -# ComputeLimits('"Results/dedxASmi/combined/Eta20/PtMin45/Type0/"', '""') -# ComputeLimits('"Results/dedxASmi/combined/Eta20/PtMin45/Type2/"', '""') - ComputeLimits('"Results/dedxASmi/combined/Eta15/PtMin45/Type0/"', '""') - ComputeLimits('"Results/dedxASmi/combined/Eta15/PtMin45/Type2/"', '""') - -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type0/"', '"_SystP"') -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type2/"', '"_SystP"') -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type0/"', '"_SystI"') -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type2/"', '"_SystI"') -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type0/"', '"_SystM"') -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type2/"', '"_SystM"') -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type0/"', '"_SystT"') -# ComputeLimits('"Results/dedxASmi/combined/Eta25/PtMin45/Type2/"', '"_SystT"') - LaunchOnCondor.SendCluster_Submit() - - -elif sys.argv[1]=='3': - print('EXCLUSION') -# os.system('root Analysis_Step6.C++\'(\"tmp\")\' -l -b -q') - os.system('sh Analysis_Step6.sh') -else: - print('Unknwon case: use an other argument or no argument to get help') - - - diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/LaunchOnCondor.py b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/LaunchOnCondor.py deleted file mode 100644 index c98ccce6134d9..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/LaunchOnCondor.py +++ /dev/null @@ -1,299 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -import urllib -import string -import os -import sys -import glob - -CopyRights = '####################################\n' -CopyRights += '# LaunchOnFarm Script #\n' -CopyRights += '# Loic.quertenmont@cern.ch #\n' -CopyRights += '# April 2010 #\n' -CopyRights += '####################################\n' - -Farm_Directories = [] -Path_Cmd = '' -Path_Shell = '' -Path_Log = '' -Path_Cfg = '' -Jobs_Count = 0 -Jobs_Name = '' -Jobs_Index = '' -Jobs_Seed = 0 -Jobs_NEvent =-1 -Jobs_Skip = 0 -Jobs_Inputs = [] -Jobs_FinalCmds = [] -Jobs_RunHere = 0 - -def CreateTheConfigFile(argv): - global Jobs_Name - global Jobs_Index - global Jobs_Count - global Jobs_Seed - global Jobs_Skip - global Jobs_NEvent - global Jobs_Inputs - global Jobs_FinalCmds - global Path_Cfg - global CopyRights - Path_Cfg = Farm_Directories[1]+Jobs_Index+Jobs_Name+'_cfg.py' - - config_file=open(argv[1],'r') - config_txt = '\n\n' + CopyRights + '\n\n' - config_txt += config_file.read() - config_file.close() - i = 2 - while i < len(argv)-1: - config_txt = config_txt.replace(argv[i],argv[i+1]) - i+=2 - - #Default Replacements - config_txt = config_txt.replace("XXX_I_XXX" ,"%04i"%Jobs_Count) - config_txt = config_txt.replace("XXX_PATH_XXX" ,os.getcwd()) - config_txt = config_txt.replace("XXX_OUTPUT_XXX" ,Jobs_Name) - config_txt = config_txt.replace("XXX_NAME_XXX" ,Jobs_Index+Jobs_Name) - config_txt = config_txt.replace("XXX_SEED_XXX" ,str(Jobs_Seed+Jobs_Count)) - config_txt = config_txt.replace("XXX_NEVENTS_XXX" ,str(Jobs_NEvent)) - config_txt = config_txt.replace("XXX_SKIP_XXX" ,str(Jobs_Skip)) - if Jobs_Count < len(Jobs_Inputs): - config_txt = config_txt.replace("XXX_INPUT_XXX" ,Jobs_Inputs[Jobs_Count]) - - config_file=open(Path_Cfg,'w') - config_file.write(config_txt) - config_file.close() - -def CreateTheShellFile(argv): - global Path_Shell - global Path_Cfg - global CopyRights - global Jobs_RunHere - global Jobs_FinalCmds - Path_Shell = Farm_Directories[1]+Jobs_Index+Jobs_Name+'.sh' - - function_argument='(' - for i in range(2,len(argv)): - function_argument+="%s" % argv[i] - if i != len(argv)-1: - function_argument+=', ' - function_argument+=')' - - shell_file=open(Path_Shell,'w') - shell_file.write('#! /bin/sh\n') - shell_file.write(CopyRights + '\n') - shell_file.write('export SCRAM_ARCH=slc5_amd64_gcc434\n') - shell_file.write('export BUILD_ARCH=slc5_amd64_gcc434\n') - shell_file.write('export VO_CMS_SW_DIR=/nfs/soft/cms\n') - #shell_file.write('source /nfs/soft/cms/cmsset_default.sh\n') - shell_file.write('cd ' + os.getcwd() + '\n') - shell_file.write('eval `scramv1 runtime -sh`\n') - - if argv[0]=='BASH': - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write(argv[1] + " %s\n" % function_argument) - elif argv[0]=='ROOT': - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write('source setstandaloneroot.sh\n') - shell_file.write('root -l -b << EOF\n') - shell_file.write(' TString makeshared(gSystem->GetMakeSharedLib());\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-W ", "");\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-Wshadow ", "");\n') - shell_file.write(' gSystem->SetMakeSharedLib(makeshared);\n') - shell_file.write(' .x %s+' % argv[1] + function_argument + '\n') -# shell_file.write("root -l -b -q %s" % argv[1] + "+'%s'\n" % function_argument) - shell_file.write(' .q\n') - shell_file.write('EOF\n\n') - elif argv[0]=='FWLITE': - if Jobs_RunHere==0: - shell_file.write('cd -\n') -# shell_file.write('eval `scramv1 runtime -sh`\n') - shell_file.write('root -l -b << EOF\n') - shell_file.write(' TString makeshared(gSystem->GetMakeSharedLib());\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-W ", "");\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-Wshadow ", "");\n') - shell_file.write(' gSystem->SetMakeSharedLib(makeshared);\n') - shell_file.write(' gSystem->SetIncludePath("-I$ROOFITSYS/include");\n') - shell_file.write(' gSystem->Load("libFWCoreFWLite");\n') - shell_file.write(' FWLiteEnabler::enable();\n') - shell_file.write(' gSystem->Load("libDataFormatsFWLite.so");\n') - shell_file.write(' gSystem->Load("libAnalysisDataFormatsSUSYBSMObjects.so");\n') - shell_file.write(' gSystem->Load("libDataFormatsVertexReco.so");\n') - shell_file.write(' gSystem->Load("libDataFormatsHepMCCandidate.so");\n') - shell_file.write(' gSystem->Load("libPhysicsToolsUtilities.so");\n') - shell_file.write(' .x %s+' % argv[1] + function_argument + '\n') - shell_file.write(' .q\n') - shell_file.write('EOF\n\n') - elif argv[0]=='CMSSW': - CreateTheConfigFile(argv); - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write('cmsRun ' + os.getcwd() + '/'+Path_Cfg + '\n') - else: - print() #Program to use is not specified... Guess it is bash command - shell_file.write('#Program to use is not specified... Guess it is bash command\n') - shell_file.write(argv[1] + " %s\n" % function_argument) - - for i in range(len(Jobs_FinalCmds)): - shell_file.write(Jobs_FinalCmds[i]+'\n') - shell_file.write('mv '+ Jobs_Name+'* '+os.getcwd()+'/'+Farm_Directories[3]+'\n') - shell_file.close() - os.system("chmod 777 "+Path_Shell) - - -def CreateTheCmdFile(): - global Path_Cmd - global CopyRights - Path_Cmd = Farm_Directories[1]+Jobs_Name+'.cmd' - cmd_file=open(Path_Cmd,'w') - cmd_file.write(CopyRights + '\n') - cmd_file.write('Universe = vanilla\n') - cmd_file.write('Environment = CONDORJOBID=$(Process)\n') - cmd_file.write('notification = Error\n') - #cmd_file.write('requirements = (CMSFARM=?=True)&&(Memory > 200)\n') - cmd_file.write('requirements = (Memory > 200)\n') - cmd_file.write('should_transfer_files = YES\n') - cmd_file.write('when_to_transfer_output = ON_EXIT\n') - cmd_file.close() - -def AddJobToCmdFile(): - global Path_Shell - global Path_Cmd - global Path_Log - Path_Log = Farm_Directories[2]+Jobs_Index+Jobs_Name - cmd_file=open(Path_Cmd,'a') - cmd_file.write('\n') - cmd_file.write('Executable = %s\n' % Path_Shell) - cmd_file.write('output = %s.out\n' % Path_Log) - cmd_file.write('error = %s.err\n' % Path_Log) - cmd_file.write('log = %s.log\n' % Path_Log) - cmd_file.write('Queue 1\n') - cmd_file.close() - -def CreateDirectoryStructure(FarmDirectory): - global Jobs_Name - global Farm_Directories - Farm_Directories = [FarmDirectory+'/', FarmDirectory+'/inputs/', FarmDirectory+'/logs/', FarmDirectory+'/outputs/'] - for i in range(0,len(Farm_Directories)): - if os.path.isdir(Farm_Directories[i]) == False: - os.system('mkdir ' + Farm_Directories[i]) - -def SendCluster_LoadInputFiles(path, NJobs): - global Jobs_Inputs - input_file = open(path,'r') - input_lines = input_file.readlines() - input_file.close() - #input_lines.sort() - - BlockSize = (len(input_lines)/NJobs) - LineIndex = 0 - JobIndex = 0 - BlockIndex = 0 - Jobs_Inputs = [""] - while LineIndex < len(input_lines): - Jobs_Inputs[JobIndex] += input_lines[LineIndex] - LineIndex +=1 - BlockIndex+=1 - if BlockIndex>BlockSize: - BlockIndex = 0 - JobIndex += 1 - Jobs_Inputs.append("") - return JobIndex+1 - -def SendCluster_Create(FarmDirectory, JobName): - global Jobs_Name - global Jobs_Count - global Farm_Directories - Jobs_Name = JobName - Jobs_Count = 0 - CreateDirectoryStructure(FarmDirectory) - CreateTheCmdFile() - -def SendCluster_Push(Argv): - global Farm_Directories - global Jobs_Count - global Jobs_Index - global Path_Shell - global Path_Log - - Jobs_Index = "%04i_" % Jobs_Count - if Jobs_Count==0 and (Argv[0]=="ROOT" or Argv[0]=="FWLITE"): - #First Need to Compile the macro --> Create a temporary shell path with no arguments - print("Compiling the Macro...") - CreateTheShellFile([Argv[0],Argv[1]]) - os.system('sh '+Path_Shell) - os.system('rm '+Path_Shell) - print("Getting the jobs...") - print(Argv) - CreateTheShellFile(Argv) - AddJobToCmdFile() - Jobs_Count = Jobs_Count+1 - -def SendCluster_Submit(): - global CopyRights - global Jobs_Count - global Path_Cmd - os.system("condor_submit " + Path_Cmd) - print('\n'+CopyRights) - print('%i Job(s) has/have been submitted on the Computing Cluster' % Jobs_Count) - -def SendSingleJob(FarmDirectory, JobName, Argv): - SendCluster_Create(FarmDirectory, JobName, Argv) - SendCluster_Push(FarmDirectory, JobName, Argv) - SendCluster_Submit(FarmDirectory, JobName,Argv) - -def SendCMSJobs(FarmDirectory, JobName, ConfigFile, InputFiles, NJobs, Argv): - SendCluster_Create(FarmDirectory, JobName) - NJobs = SendCluster_LoadInputFiles(InputFiles, NJobs) - for i in range(NJobs): - LaunchOnCondor.SendCluster_Push (["CMSSW", ConfigFile]) - LaunchOnCondor.SendCluster_Submit() - - - -def GetListOfFiles(Prefix, InputPattern, Suffix): - List = sorted(glob.glob(InputPattern)) - for i in range(len(List)): - List[i] = Prefix + List[i] + Suffix - return List - -def SendCMSMergeJob(FarmDirectory, JobName, InputFiles, OutputFile, KeepStatement): - SendCluster_Create(FarmDirectory, JobName) - Temp_Cfg = Farm_Directories[1]+Jobs_Index+Jobs_Name+'_TEMP_cfg.py' - - if len(InputFiles)==0: - print('Empty InputFile List for Job named "%s", Job will not be submitted' % JobName) - return - - InputFilesString = "" - for i in range(len(InputFiles)): - InputFilesString += " " + InputFiles[i] + '\n' - - cfg_file=open(Temp_Cfg,'w') - cfg_file.write('import FWCore.ParameterSet.Config as cms\n') - cfg_file.write('process = cms.Process("Merge")\n') - cfg_file.write('\n') - cfg_file.write('process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )\n') - cfg_file.write('process.load("FWCore.MessageService.MessageLogger_cfi")\n') - cfg_file.write('\n') - cfg_file.write('process.MessageLogger.cerr.FwkReport.reportEvery = 50000\n') - cfg_file.write('process.source = cms.Source("PoolSource",\n') - cfg_file.write(' fileNames = cms.untracked.vstring(\n') - cfg_file.write('%s' % InputFilesString) - cfg_file.write(' )\n') - cfg_file.write(')\n') - cfg_file.write('\n') - cfg_file.write('process.OUT = cms.OutputModule("PoolOutputModule",\n') - cfg_file.write(' outputCommands = cms.untracked.vstring(%s),\n' % KeepStatement) - cfg_file.write(' fileName = cms.untracked.string(%s)\n' % OutputFile) - cfg_file.write(')\n') - cfg_file.write('\n') - cfg_file.write('process.endPath = cms.EndPath(process.OUT)\n') - cfg_file.close() - SendCluster_Push (["CMSSW", Temp_Cfg]) - SendCluster_Submit() - os.system('rm '+ Temp_Cfg) - diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/gluino_XSec.txt b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/gluino_XSec.txt deleted file mode 100644 index 7cfe569c0b0c8..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/gluino_XSec.txt +++ /dev/null @@ -1,41 +0,0 @@ - 300.000000 6.580000E+01 7.553474E+01 5.742197E+01 - 320.000000 4.480000E+01 5.146393E+01 3.883067E+01 - 340.000000 3.100000E+01 3.566432E+01 2.678981E+01 - 360.000000 2.170000E+01 2.512864E+01 1.876433E+01 - 380.000000 1.550000E+01 1.804830E+01 1.338010E+01 - 400.000000 1.120000E+01 1.304305E+01 9.580894E+00 - 420.000000 8.150000E+00 9.556500E+00 6.973463E+00 - 440.000000 6.010000E+00 7.044302E+00 5.091237E+00 - 460.000000 4.470000E+00 5.271630E+00 3.788946E+00 - 480.000000 3.360000E+00 3.988566E+00 2.845079E+00 - 500.000000 2.540000E+00 3.018432E+00 2.130996E+00 - 520.000000 1.930000E+00 2.308958E+00 1.626191E+00 - 540.000000 1.480000E+00 1.773087E+00 1.243271E+00 - 560.000000 1.140000E+00 1.374688E+00 9.589442E-01 - 580.000000 8.880000E-01 1.070057E+00 7.381439E-01 - 600.000000 6.930000E-01 8.414255E-01 5.751390E-01 - 620.000000 5.430000E-01 6.640146E-01 4.515518E-01 - 640.000000 4.280000E-01 5.237697E-01 3.522239E-01 - 660.000000 3.390000E-01 4.145975E-01 2.787396E-01 - 680.000000 2.690000E-01 3.315876E-01 2.208681E-01 - 700.000000 2.140000E-01 2.657578E-01 1.759448E-01 - 720.000000 1.720000E-01 2.134368E-01 1.397393E-01 - 740.000000 1.370000E-01 1.716366E-01 1.116011E-01 - 760.000000 1.110000E-01 1.387783E-01 8.996432E-02 - 780.000000 8.950000E-02 1.127959E-01 7.195999E-02 - 800.000000 7.250000E-02 9.142058E-02 5.827633E-02 - 820.000000 5.880000E-02 7.469319E-02 4.733762E-02 - 840.000000 4.790000E-02 6.086165E-02 3.809243E-02 - 860.000000 3.910000E-02 4.999024E-02 3.105941E-02 - 880.000000 3.200000E-02 4.092504E-02 2.538284E-02 - 900.000000 2.620000E-02 3.378647E-02 2.054873E-02 - 920.000000 2.150000E-02 2.791464E-02 1.688133E-02 - 940.000000 1.760000E-02 2.286025E-02 1.379495E-02 - 960.000000 1.450000E-02 1.896689E-02 1.136371E-02 - 980.000000 1.190000E-02 1.560576E-02 9.251707E-03 - 1000.000000 9.870000E-03 1.300309E-02 7.653260E-03 - 1020.000000 8.150000E-03 1.082652E-02 6.325800E-03 - 1040.000000 6.740000E-03 8.957356E-03 5.168580E-03 - 1060.000000 5.590000E-03 7.480351E-03 4.283127E-03 - 1080.000000 4.640000E-03 6.255235E-03 3.515531E-03 - 1100.000000 3.860000E-03 5.204033E-03 2.919556E-03 diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/nSigma.C b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/nSigma.C deleted file mode 100644 index 55207b3a2c52d..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/nSigma.C +++ /dev/null @@ -1,99 +0,0 @@ -//-------------------------------------------------------------------------------------------- -// -// nSigma.cc -// v1.1, updated by Greg Landsberg 5/21/09 -// -// This Root code computes the probability for the expectd background Bkgr with the FRACTIONAL -// uncertainty sFfrac (i.e., B = Bkgr*(1 +/- sBfrac)) to fluctuate to or above the -// observed number of events nobs -// -// To find 3/5 sigma evidence/discovery points, one should use nobs = int(), -// where is the expected mean of the signal + background. -// -// Usage: nSigma(Double_t Bkgr, Int_t nobs, Double_t sBfrac) returns the one sided probability -// of an upward backround fluctuations, expressed in Gaussian sigmas. It is suggested to run -// this code in the compiled mode, i.e. .L nSigma.cc++ -// -// 5 sigma corresponds to the p-value of 2.85E-7; 3 sigma corresponds to p-value of 1.35E-3 -// -//--------------------------------------------------------------------------------------------- -#include "TMath.h" -#include "TF1.h" - -Double_t nSigma(Double_t Bkgr, Int_t nobs, Double_t sBfrac); -Double_t Poisson(Double_t Mu, Int_t n); -Double_t PoissonAve(Double_t Mu, Int_t n, Double_t ErrMu); -Double_t Inner(Double_t *x, Double_t *par); -Double_t ErfcInverse(Double_t x); - -static const Double_t Eps = 1.e-9; - -Double_t nSigma(Double_t Bkgr, Int_t nobs, Double_t sBfrac) { - //caluculate poisson probability - Double_t probLess = 0.; - Int_t i = nobs; - Double_t eps = 0; - do { - eps = 2.*PoissonAve(Bkgr, i++, sBfrac*Bkgr); - probLess += eps; - } while (eps > 0.); -// - return TMath::Sqrt(2.)*ErfcInverse(probLess); -} - -Double_t Poisson(Double_t Mu, Int_t n) -{ - Double_t logP; -// - logP = -Mu + n*TMath::Log(Mu); - for (Int_t i = 2; i <= n; i++) logP -= TMath::Log((Double_t) i); -// - return TMath::Exp(logP); -} - -Double_t PoissonAve(Double_t Mu, Int_t n, Double_t ErrMu) -{ - Double_t par[3], retval; - par[0]=Mu; // background value - par[1]=ErrMu; // background error - par[2]=n; // n - TF1 *in = new TF1("Inner",Inner,0.,Mu + 5.*ErrMu,3); - Double_t low = Mu > 5.*ErrMu ? Mu - 5.*ErrMu : 0.; - if (ErrMu < Eps) { - Double_t x[1]; - x[0] = Mu; - par[1] = 1./sqrt(2.*TMath::Pi()); - retval = Inner(x,par); - } else retval = in->Integral(low,Mu+5.*ErrMu,par); - delete in; - return retval; -} - -Double_t Inner(Double_t *x, Double_t *par) -{ - Double_t B, sB; - B = par[0]; - sB = par[1]; - Int_t n = par[2]; -// - return 1./sqrt(2.*TMath::Pi())/sB*exp(-(x[0]-B)*(x[0]-B)/2./sB/sB)*Poisson(x[0],n); -} - -Double_t ErfcInverse(Double_t x) -{ - Double_t xmin = 0., xmax = 20.; - Double_t sig = xmin; - if (x >=1) return sig; -// - do { - Double_t erf = TMath::Erfc(sig); - if (erf > x) { - xmin = sig; - sig = (sig+xmax)/2.; - } else { - xmax = sig; - sig = (xmin + sig)/2.; - } - } while (xmax - xmin > Eps); - return sig; -} \ No newline at end of file diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/roostats_cl95.C b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/roostats_cl95.C deleted file mode 100644 index b94dcb091503a..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/roostats_cl95.C +++ /dev/null @@ -1,2065 +0,0 @@ -static const char* desc = -"=====================================================================\n" -"| \n" -"|\033[1m roostats_cl95.C version 1.15 \033[0m\n" -"| \n" -"| Standard c++ routine for 95% C.L. limit calculation \n" -"| for cross section in a 'counting experiment' \n" -"| Fully backwards-compatible with the CL95 macro \n" -"| \n" -"| also known as 'CL95 with RooStats' \n" -"| \n" -"|\033[1m Gena Kukartsev, Stefan Schmitz, Gregory Schott \033[0m\n" -"|\033[1m Lorenzo Moneta (CLs core) \033[0m\n" -"|\033[1m Michael Segala (Feldman-Cousins) \033[0m\n" -"| \n" -"| July 2010: first version \n" -"| March 2011: restructuring, interface change, expected limits \n" -"| May 2011: added expected limit median, \n" -"| 68%, 95% quantile bands and actual coverage \n" -"| July 2011: added CLs observed and expected limits \n" -"| added option to run using Feldman Cousins \n" -"| \n" -"=====================================================================\n" -" \n" -"Prerequisites: \n" -" ROOT version 5.30.00 or higher \n" -" \n" -" \n" -" \n" -"The code should be compiled in ROOT: \n" -" \n" -"root -l \n" -" \n" -".L roostats_cl95.C+ \n" -" \n" -"Usage: \n" -" Double_t limit = roostats_cl95(ilum, slum, eff, seff, bck, sbck, n, gauss = false, nuisanceModel, method, plotFileName, seed); \n" -" LimitResult expected_limit = roostats_clm(ilum, slum, eff, seff, bck, sbck, ntoys, nuisanceModel, method, seed); \n" -" Double_t average_limit = roostats_cla(ilum, slum, eff, seff, bck, sbck, nuisanceModel, method, seed); \n" -" \n" -" LimitResult limit = roostats_limit(ilum, slum, eff, seff, bck, sbck, n, gauss = false, nuisanceModel, method, plotFileName, seed); \n" -" Double_t obs_limit = limit.GetObservedLimit(); \n" -" Double_t exp_limit = limit.GetExpectedLimit(); \n" -" Double_t exp_up = limit.GetOneSigmaHighRange(); \n" -" Double_t exp_down = limit.GetOneSigmaLowRange(); \n" -" Double_t exp_2up = limit.GetTwoSigmaHighRange(); \n" -" Double_t exp_2down = limit.GetTwoSigmaLowRange(); \n" -" \n" -"Inputs: \n" -" ilum - Nominal integrated luminosity (pb^-1) \n" -" slum - Absolute error on the integrated luminosity \n" -" eff - Nominal value of the efficiency times \n" -" acceptance (in range 0 to 1) \n" -" seff - Absolute error on the efficiency times \n" -" acceptance \n" -" bck - Nominal value of the background estimate \n" -" sbck - Absolute error on the background \n" -" n - Number of observed events (not used for the \n" -" expected limit) \n" -" ntoys - Number of pseudoexperiments to perform for \n" -" expected limit calculation) \n" -" gauss - if true, use Gaussian statistics for signal \n" -" instead of Poisson; automatically false \n" -" for n = 0. \n" -" Always false for expected limit calculations \n" -" nuisanceModel - distribution function used in integration over\n" -" nuisance parameters: \n" -" 0 - Gaussian (default), 1 - lognormal, \n" -" 2 - gamma; \n" -" (automatically 0 when gauss == true) \n" -" method - method of statistical inference: \n" -" \"bayesian\" - Bayesian with numeric \n" -" integration (default), \n" -" \"mcmc\" - another implementation of \n" -" Bayesian, not optimized, \n" -" to be used for cross checks \n" -" only! \n" -" \"cls\" - CLs observed limit. We suggest\n" -" using the dedicated interface \n" -" roostats_cls() instead \n" -" \"fc\" - Feldman Cousins with numeric \n" -" integration, \n" -" \"workspace\" - only create workspace and save\n" -" to file, no interval calculation\n" -" plotFileName - file name for the control plot to be created \n" -" file name extension will define the format, \n" -" is the default value, \n" -" specify empty string if you do not want \n" -" the plot to be created (saves time) \n" -" seed - seed for random number generation, \n" -" specify 0 for unique irreproducible seed \n" -" \n" -" \n" -"The statistics model in this routine: the routine addresses the task \n" -"of a Bayesian evaluation of limits for a one-bin counting experiment \n" -"with systematic uncertainties on luminosity and efficiency for the \n" -"signal and a global uncertainty on the expected background (implying \n" -"no correlated error on the luminosity for signal and background, \n" -"which will not be suitable for all use cases!). The observable is the\n" -"measured number of events. \n" -" \n" -"For more details see \n" -" https://twiki.cern.ch/twiki/bin/view/CMS/RooStatsCl95 \n" -" \n" -"\033[1m Note! \033[0m\n" -"If you are running nonstandard ROOT environment, e.g. in CMSSW, \n" -"you need to make sure that the RooFit and RooStats header files \n" -"can be found since they might be in a nonstandard location. \n" -" \n" -"For CMSSW_4_2_0_pre8 and later, add the following line to your \n" -"rootlogon.C: \n" -" gSystem -> SetIncludePath( \"-I$ROOFITSYS/include\" ); \n"; - - -#include - -#include "TCanvas.h" -#include "TMath.h" -#include "TRandom3.h" -#include "TUnixSystem.h" -#include "TStopwatch.h" -#include "TFile.h" -#include "TGraphErrors.h" -#include "TGraphAsymmErrors.h" -#include "TLine.h" - -#include "RooPlot.h" -#include "RooRealVar.h" -#include "RooProdPdf.h" -#include "RooWorkspace.h" -#include "RooDataSet.h" -#include "RooFitResult.h" -#include "RooRandom.h" - -#include "RooStats/ModelConfig.h" -#include "RooStats/SimpleInterval.h" -#include "RooStats/BayesianCalculator.h" -#include "RooStats/MCMCCalculator.h" -#include "RooStats/MCMCInterval.h" -#include "RooStats/MCMCIntervalPlot.h" -#include "RooStats/FeldmanCousins.h" -#include "RooStats/PointSetInterval.h" -#include "RooStats/ConfidenceBelt.h" -#include "RooStats/ProposalHelper.h" -#include "RooStats/HybridCalculator.h" -#include "RooStats/FrequentistCalculator.h" -#include "RooStats/ToyMCSampler.h" -#include "RooStats/HypoTestPlot.h" -#include "RooStats/NumEventsTestStat.h" -#include "RooStats/ProfileLikelihoodTestStat.h" -#include "RooStats/SimpleLikelihoodRatioTestStat.h" -#include "RooStats/RatioOfProfiledLikelihoodsTestStat.h" -#include "RooStats/MaxLikelihoodEstimateTestStat.h" -#include "RooStats/HypoTestInverter.h" -#include "RooStats/HypoTestInverterResult.h" -#include "RooStats/HypoTestInverterPlot.h" - -// FIXME: remove namespaces -using namespace RooFit; -using namespace RooStats; -using namespace std; - -class LimitResult; - -Double_t roostats_cl95(Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t n, - Bool_t gauss = kFALSE, - Int_t nuisanceModel = 0, - std::string method = "bayesian", - std::string plotFileName = "plot_cl95.pdf", - UInt_t seed = 12345, - LimitResult * pLimitResult = 0); - -LimitResult roostats_clm(Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t nit = 200, Int_t nuisanceModel = 0, - std::string method = "bayesian", - UInt_t seed = 12345); - -// legacy support: use roostats_clm() instead -Double_t roostats_cla(Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t nuisanceModel = 0, - std::string method = "bayesian", - UInt_t seed = 12345); - - - - -// ---> implementation below -------------------------------------------- - - -class LimitResult{ - - friend class CL95Calc; - -public: - LimitResult(): - _observed_limit(0), - _observed_limit_error(0), - _expected_limit(0), - _low68(0), - _high68(0), - _low95(0), - _high95(0), - _cover68(0), - _cover95(0){}; - - // copy constructor - LimitResult(const LimitResult & other): - _observed_limit(other._observed_limit), - _observed_limit_error(other._observed_limit_error), - _expected_limit(other._expected_limit), - _low68(other._low68), - _high68(other._high68), - _low95(other._low95), - _high95(other._high95), - _cover68(other._cover68), - _cover95(other._cover95){} - - ~LimitResult(){}; - - Double_t GetObservedLimit(){return _observed_limit;}; - Double_t GetObservedLimitError(){return _observed_limit_error;}; - Double_t GetExpectedLimit(){return _expected_limit;}; - - Double_t GetOneSigmaLowRange(){return _low68;}; - Double_t GetOneSigmaHighRange(){return _high68;}; - Double_t GetOneSigmaCoverage(){return _cover68;}; - - Double_t GetTwoSigmaLowRange(){return _low95;}; - Double_t GetTwoSigmaHighRange(){return _high95;}; - Double_t GetTwoSigmaCoverage(){return _cover95;}; - -private: - Double_t _observed_limit; - Double_t _observed_limit_error; - Double_t _expected_limit; - Double_t _low68; - Double_t _high68; - Double_t _low95; - Double_t _high95; - Double_t _cover68; - Double_t _cover95; -}; - - -class CL95Calc{ - -public: - CL95Calc(); - CL95Calc( UInt_t seed ); - ~CL95Calc(); - - RooWorkspace * makeWorkspace(Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Bool_t gauss, - Int_t nuisanceModel); - RooWorkspace * getWorkspace(){ return ws;} - - RooAbsData * makeData(Int_t n); - - Double_t cl95(std::string method = "bayesian", LimitResult * result = 0); - - Double_t cla( Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t nuisanceModel, - std::string method ); - - LimitResult clm(Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t nit = 200, Int_t nuisanceModel = 0, - std::string method = "bayesian"); - - int makePlot( std::string method, - std::string plotFileName = "plot_cl95.pdf" ); - - Double_t FC_calc(int Nbins, float conf_int, float ULprecision, bool UseAdaptiveSampling = true, bool CreateConfidenceBelt = true); - -private: - - void init( UInt_t seed ); // to be called by constructor - - // methods - Double_t GetRandom( std::string pdf, std::string var ); - Long64_t LowBoundarySearch(std::vector * cdf, Double_t value); - Long64_t HighBoundarySearch(std::vector * cdf, Double_t value); - MCMCInterval * GetMcmcInterval(double conf_level, - int n_iter, - int n_burn, - double left_side_tail_fraction, - int n_bins); - void makeMcmcPosteriorPlot( std::string filename ); - double printMcmcUpperLimit( std::string filename = "" ); - - Double_t RoundUpperBound(Double_t bound); - - // data members - RooWorkspace * ws; - RooStats::ModelConfig SbModel; - RooStats::ModelConfig BModel; - RooAbsData * data; - BayesianCalculator * bcalc; - RooStats::SimpleInterval * sInt; - double nsig_rel_err; - double nbkg_rel_err; - Int_t _nuisance_model; - - // attributes - bool hasSigErr; - bool hasBgErr; - - // for Bayesian MCMC calculation - MCMCInterval * mcInt; - - // for Feldman-Cousins Calculator - FeldmanCousins * fcCalc; - - // random numbers - TRandom3 r; - - // expected limits - Double_t _expected_limit; - Double_t _low68; - Double_t _high68; - Double_t _low95; - Double_t _high95; - -}; - - - -// CLs limit calculator -std::vector -GetClsLimits(RooWorkspace * pWs, - const char * modelSBName = "SbModel", - const char * modelBName = "BModel", - const char * dataName = "observed_data", - int calculatorType = 0, // calculator type - int testStatType = 3, // test stat type - bool useCls = true, - int npoints = 10, - double poimin = 1, // use default is poimin >= poimax - double poimax = 0, - int ntoys=10000, - std::string suffix = "test"); - - - -// default constructor -CL95Calc::CL95Calc(){ - init(0); -} - - -CL95Calc::CL95Calc(UInt_t seed){ - init(seed); -} - - -void CL95Calc::init(UInt_t seed){ - ws = new RooWorkspace("ws"); - data = 0; - - sInt = 0; - bcalc = 0; - mcInt = 0; - fcCalc = 0; - SbModel.SetName("SbModel"); - SbModel.SetTitle("ModelConfig for roostats_cl95"); - - nsig_rel_err = -1.0; // default non-initialized value - nbkg_rel_err = -1.0; // default non-initialized value - - // set random seed - if (seed == 0){ - r.SetSeed(); - UInt_t _seed = r.GetSeed(); - UInt_t _pid = gSystem->GetPid(); - std::cout << "[CL95Calc]: random seed: " << _seed << std::endl; - std::cout << "[CL95Calc]: process ID: " << _pid << std::endl; - _seed = 31*_seed+_pid; - std::cout << "[CL95Calc]: new random seed (31*seed+pid): " << _seed << std::endl; - r.SetSeed(_seed); - - // set RooFit random seed (it has a private copy) - RooRandom::randomGenerator()->SetSeed(_seed); - } - else{ - std::cout << "[CL95Calc]: random seed: " << seed << std::endl; - r.SetSeed(seed); - - // set RooFit random seed (it has a private copy) - RooRandom::randomGenerator()->SetSeed(seed); - } - - // default Gaussian nuisance model - _nuisance_model = 0; - - // set default attributes - hasSigErr = false; - hasBgErr = false; -} - - -CL95Calc::~CL95Calc(){ - delete ws; - delete data; - delete sInt; - delete bcalc; - delete mcInt; - delete fcCalc; -} - - -RooWorkspace * CL95Calc::makeWorkspace(Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Bool_t gauss, - Int_t nuisanceModel){ - - if ( bck>0.0 && (sbck/bck)<5.0 ){ - // check that bck is not too close to zero, - // so lognormal and gamma modls still make sense - std::cout << "[CL95Calc]: checking background expectation and its uncertainty - ok" << std::endl; - _nuisance_model = nuisanceModel; - } - else{ - _nuisance_model = 0; - std::cout << "[CL95Calc]: background expectation is too close to zero compared to its uncertainty" << std::endl; - std::cout << "[CL95Calc]: switching to the Gaussian nuisance model" << std::endl; - - // FIXME: is this appropriate fix for 0 bg expectation? - if (bck<0.001){ - bck = std::max(bck,sbck/1000.0); - } - } - - // Workspace - // RooWorkspace * ws = new RooWorkspace("ws",true); - - // observable: number of events - ws->factory( "n[0]" ); - - // integrated luminosity - ws->factory( "lumi[0]" ); - - // cross section - parameter of interest - ws->factory( "xsec[0]" ); - - // selection efficiency * acceptance - ws->factory( "efficiency[0]" ); - - // nuisance parameter: factor 1 with combined relative uncertainty - ws->factory( "nsig_nuis[1.0]" ); // will adjust range below - - // signal yield - ws->factory( "prod::nsig(lumi,xsec,efficiency, nsig_nuis)" ); - - // estimated background yield - ws->factory( "bkg_est[1.0]" ); - ws->factory( "lbkg_est[0]" ); // for special case of lognormal prior - - // nuisance parameter: factor 1 with background relative uncertainty - //ws->factory( "nbkg_nuis[1.0]" ); // will adjust range below - - // background yield - ws->factory( "nbkg[1.0]" ); // will adjust value and range below - - // core model: - ws->factory("sum::yield(nsig,nbkg)"); - if (gauss){ - // Poisson probability with mean signal+bkg - std::cout << "[CL95Calc]: creating Gaussian probability as core model..." << std::endl; - ws->factory( "Gaussian::model_core(n,yield,expr('sqrt(yield)',yield))" ); - } - else{ - // Poisson probability with mean signal+bkg - std::cout << "[CL95Calc]: creating Poisson probability as core model..." << std::endl; - ws->factory( "Poisson::model_core(n,yield)" ); - } - - - // systematic uncertainties - nsig_rel_err = sqrt(slum*slum/ilum/ilum+seff*seff/eff/eff); - nbkg_rel_err = sbck/bck; - if (nsig_rel_err > 1.0e-10) hasSigErr = true; - if (nbkg_rel_err > 1.0e-10) hasBgErr = true; - - if (_nuisance_model == 0){ // gaussian model for nuisance parameters - - std::cout << "[roostats_cl95]: Gaussian PDFs for nuisance parameters" << endl; - - // cumulative signal uncertainty - ws->factory( "nsig_sigma[0.1]" ); - ws->factory( "nsig_global[1.0,0.1,10.0]" ); // mean of the nsig nuisance par - if (hasSigErr){ - // non-zero overall signal sensitivity systematics: need to create - // the corresponding constraint term for the likelihood - std::cout << "[roostats_cl95]: non-zero systematics on overall signal sensitivity, creating constraint term" << endl; - ws->factory( "Gaussian::syst_nsig(nsig_nuis, nsig_global, nsig_sigma)" ); - } - // background uncertainty - ws->factory( "nbkg_sigma[0.1]" ); - if (hasBgErr){ - // non-zero background systematics: need to create - // the corresponding constraint term for the likelihood - std::cout << "[roostats_cl95]: non-zero background systematics, creating constraint term" << endl; - ws->factory( "Gaussian::syst_nbkg(nbkg, bkg_est, nbkg_sigma)" ); - } - - ws->var("nsig_sigma")->setVal(nsig_rel_err); - ws->var("nbkg_sigma")->setVal(sbck); - ws->var("nsig_global")->setConstant(kTRUE); - ws->var("nsig_sigma")->setConstant(kTRUE); - ws->var("nbkg_sigma")->setConstant(kTRUE); - } - else if (_nuisance_model == 1){// Lognormal model for nuisance parameters - // this is the "old" implementation of the lognormal model, better use - // the new one, nuisance_model=3 - - std::cout << "[roostats_cl95]: Lognormal PDFs for nuisance parameters" << endl; - - // cumulative signal uncertainty - ws->factory( "nsig_kappa[1.1]" ); - ws->factory( "nsig_global[1.0,0.1,10.0]" ); // mean of the nsig nuisance par - - if (hasSigErr){ - // non-zero overall signal sensitivity systematics: need to create - // the corresponding constraint term for the likelihood - std::cout << "[roostats_cl95]: non-zero systematics on overall signal sensitivity, creating constraint term" << endl; - ws->factory( "Lognormal::syst_nsig(nsig_nuis, nsig_global, nsig_kappa)" ); - } - - // background uncertainty - ws->factory( "nbkg_kappa[1.1]" ); - if (hasBgErr){ - // non-zero background systematics: need to create - // the corresponding constraint term for the likelihood - std::cout << "[roostats_cl95]: non-zero background systematics, creating constraint term" << endl; - ws->factory( "Lognormal::syst_nbkg(nbkg, bkg_est, nbkg_kappa)" ); - } - - ws->var("nsig_kappa")->setVal(1.0 + nsig_rel_err); - ws->var("nbkg_kappa")->setVal(1.0 + nbkg_rel_err); - ws->var("nsig_global")->setConstant(kTRUE); - ws->var("nsig_kappa")->setConstant(kTRUE); - ws->var("nbkg_kappa")->setConstant(kTRUE); - } - else if (_nuisance_model == 3){ - // - // Lognormal nuisance model implemented as Gaussian of - // a log of the parameter. The corresponding global observable - // is the log of the estimate for the parameter. - // - - std::cout << "[roostats_cl95]: Lognormal PDFs for nuisance parameters" << endl; - - // cumulative signal uncertainty - ws->factory( "lnsig_sigma[0.1]" ); - ws->factory( "nsig_global[0.0,-0.5,0.5]" ); // log of mean of the nsig nuisance par - //ws->factory( "Gaussian::syst_nsig(cexpr::lnsig('log(nsig_nuis)', nsig_nuis), nsig_global, lnsig_sigma)" ); - if (hasSigErr){ - // non-zero overall signal sensitivity systematics: need to create - // the corresponding constraint term for the likelihood - std::cout << "[roostats_cl95]: non-zero systematics on overall signal sensitivity, creating constraint term" << endl; - ws->factory( "Gaussian::syst_nsig(cexpr::lnsig('log(nsig_nuis)', nsig_nuis), nsig_global, lnsig_sigma)" ); - } - - // background uncertainty - ws->factory( "lnbkg_sigma[0.1]" ); - if (hasBgErr){ - // non-zero background systematics: need to create - // the corresponding constraint term for the likelihood - std::cout << "[roostats_cl95]: non-zero background systematics, creating constraint term" << endl; - ws->factory( "Gaussian::syst_nbkg(cexpr::lnbkg('log(nbkg)',nbkg), lbkg_est, lnbkg_sigma)" ); - } - - ws->var("lnsig_sigma")->setVal(nsig_rel_err); - ws->var("lnbkg_sigma")->setVal(nbkg_rel_err); - ws->var("nsig_global")->setConstant(kTRUE); - ws->var("lnsig_sigma")->setConstant(kTRUE); - ws->var("lnbkg_sigma")->setConstant(kTRUE); - } - else if (_nuisance_model == 2){ // Gamma model for nuisance parameters - - std::cout << "[roostats_cl95]: Gamma PDFs for nuisance parameters" << endl; - - // cumulative signal uncertainty - ws->factory( "nsig_global[1.0,0.1,10.0]" ); // mean of the nsig nuisance par - ws->factory( "nsig_rel_err[0.1, 0.0, 1.0]" ); - ws->factory( "expr::nsig_beta('nsig_rel_err*nsig_rel_err/nsig_global',nsig_rel_err,nsig_global)" ); - ws->factory( "expr::nsig_gamma('nsig_global*nsig_global/nsig_rel_err/nsig_rel_err+1.0',nsig_global,nsig_rel_err)" ); - ws->var("nsig_rel_err") ->setVal(nsig_rel_err); - if (hasSigErr){ - // non-zero overall signal sensitivity systematics: need to create - // the corresponding constraint term for the likelihood - std::cout << "[roostats_cl95]: non-zero systematics on overall signal sensitivity, creating constraint term" << endl; - ws->factory( "Gamma::syst_nsig(nsig_nuis, nsig_gamma, nsig_beta, 0.0)" ); - } - - // background uncertainty - //ws->factory( "nbkg_global[1.0]" ); // mean of the nbkg nuisance par - ws->factory( "nbkg_rel_err[0.1, 0.0, 1.0]" ); - ws->factory( "expr::nbkg_beta('nbkg_rel_err*nbkg_rel_err/bkg_est',nbkg_rel_err,bkg_est)" ); - ws->factory( "expr::nbkg_gamma('bkg_est*bkg_est/nbkg_rel_err/nbkg_rel_err+1.0',bkg_est,nbkg_rel_err)" ); - //ws->var("nbkg_global") ->setVal( bck ); - ws->var("nbkg_rel_err")->setVal(nbkg_rel_err); - if (hasBgErr){ - // non-zero background systematics: need to create - // the corresponding constraint term for the likelihood - std::cout << "[roostats_cl95]: non-zero background systematics, creating constraint term" << endl; - ws->factory( "Gamma::syst_nbkg(nbkg, nbkg_gamma, nbkg_beta, 0.0)" ); - } - - ws->var("nsig_rel_err")->setConstant(kTRUE); - ws->var("nsig_global")->setConstant(kTRUE); - ws->var("nbkg_rel_err")->setConstant(kTRUE); - //ws->var("nbkg_global")->setConstant(kTRUE); - - } - else{ - std::cout <<"[roostats_cl95]: undefined nuisance parameter model specified, exiting" << std::endl; - } - - // model with systematics - if (hasSigErr && hasBgErr){ - std::cout << "[roostats_cl95]: factoring in signal sensitivity and background rate systematics constraint terms" << endl; - ws->factory( "PROD::model(model_core, syst_nsig, syst_nbkg)" ); - ws->var("nsig_nuis") ->setConstant(kFALSE); // nuisance - ws->var("nbkg") ->setConstant(kFALSE); // nuisance - ws->factory( "PROD::nuis_prior(syst_nsig,syst_nbkg)" ); - } - else if (hasSigErr && !hasBgErr){ - std::cout << "[roostats_cl95]: factoring in signal sensitivity systematics constraint term" << endl; - ws->factory( "PROD::model(model_core, syst_nsig)" ); - ws->var("nsig_nuis") ->setConstant(kFALSE); // nuisance - ws->var("nbkg") ->setConstant(kTRUE); // nuisance - ws->factory( "PROD::nuis_prior(syst_nsig)" ); - } - else if (!hasSigErr && hasBgErr){ - std::cout << "[roostats_cl95]: factoring in background rate systematics constraint term" << endl; - ws->factory( "PROD::model(model_core, syst_nbkg)" ); - ws->var("nsig_nuis") ->setConstant(kTRUE); // nuisance - ws->var("nbkg") ->setConstant(kFALSE); // nuisance - ws->factory( "PROD::nuis_prior(syst_nbkg)" ); - } - else{ - ws->factory( "PROD::model(model_core)" ); - ws->var("nsig_nuis") ->setConstant(kTRUE); // nuisance - ws->var("nbkg") ->setConstant(kTRUE); // nuisance - } - - // flat prior for the parameter of interest - ws->factory( "Uniform::prior(xsec)" ); - - // parameter values - ws->var("lumi") ->setVal(ilum); - ws->var("efficiency")->setVal(eff); - ws->var("bkg_est") ->setVal(bck); - ws->var("lbkg_est") ->setVal(TMath::Log(bck)); - ws->var("xsec") ->setVal(0.0); - ws->var("nsig_nuis") ->setVal(1.0); - ws->var("nbkg") ->setVal(bck); - - // set some parameters as constants - ws->var("lumi") ->setConstant(kTRUE); - ws->var("efficiency")->setConstant(kTRUE); - ws->var("bkg_est") ->setConstant(kTRUE); - ws->var("lbkg_est") ->setConstant(kTRUE); - ws->var("n") ->setConstant(kFALSE); // observable - ws->var("xsec") ->setConstant(kFALSE); // parameter of interest - //ws->var("nsig_nuis") ->setConstant(kFALSE); // nuisance - //ws->var("nbkg") ->setConstant(kFALSE); // nuisance - - // floating parameters ranges - // crude estimates! Need to know data to do better - ws->var("n") ->setRange( 0.0, bck+(5.0*sbck)+10.0); // ad-hoc range for obs - ws->var("xsec") ->setRange( 0.0, 15.0*(1.0+nsig_rel_err)/ilum/eff ); // ad-hoc range for POI - ws->var("nsig_nuis")->setRange( std::max(0.0, 1.0 - 5.0*nsig_rel_err), 1.0 + 5.0*nsig_rel_err); - ws->var("nbkg") ->setRange( std::max(0.0, bck - 5.0*sbck), bck + 5.0*sbck); - ws->var("bkg_est") ->setRange( std::max(0.0, bck - 5.0*sbck), bck + 5.0*sbck); - // FIXME: check for zeros in the log - ws->var("lbkg_est") ->setRange( TMath::Log(ws->var("bkg_est")->getMin()), TMath::Log(ws->var("bkg_est")->getMin())); - - // Definition of observables and parameters of interest - - // observables - RooArgSet obs(*ws->var("n"), "obs"); - - // global observables - //RooArgSet globalObs(*ws->var("nsig_global"), *ws->var("bkg_est"), "global_obs"); - //RooArgSet globalObs(*ws->var("nsig_global"), "global_obs"); - RooArgSet globalObs("global_obs"); - if (hasSigErr) globalObs.add( *ws->var("nsig_global") ); - if (hasBgErr){ - if (_nuisance_model == 3){ - globalObs.add( *ws->var("lbkg_est") ); - } - else{ - globalObs.add( *ws->var("bkg_est") ); - } - } - - // parameters of interest - RooArgSet poi(*ws->var("xsec"), "poi"); - - // nuisance parameters - //RooArgSet nuis(*ws->var("nsig_nuis"), *ws->var("nbkg"), "nuis"); - RooArgSet nuis("nuis"); - if (hasSigErr) nuis.add( *ws->var("nsig_nuis") ); - if (hasBgErr) nuis.add( *ws->var("nbkg") ); - - // setup the S+B model - SbModel.SetWorkspace(*ws); - SbModel.SetPdf(*(ws->pdf("model"))); - SbModel.SetParametersOfInterest(poi); - SbModel.SetPriorPdf(*(ws->pdf("prior"))); - SbModel.SetNuisanceParameters(nuis); - SbModel.SetObservables(obs); - SbModel.SetGlobalObservables(globalObs); - - // will import the model config once the snapshot is saved - - // background-only model - // use the same PDF as s+b, with xsec=0 - // (poi zero value will be set in the snapshot) - //BModel = *(RooStats::ModelConfig *)ws->obj("SbModel"); - BModel = SbModel; - BModel.SetName("BModel"); - BModel.SetWorkspace(*ws); - - // We also need to set up parameter snapshots for the models - // but we need data for that, so it is done in makeData() - - return ws; -} - - -RooAbsData * CL95Calc::makeData( Int_t n ){ - // - // make the dataset owned by the class - // the current one is deleted - // - // set ranges as well - // - - // make RooFit quiet - // cash the current message level first - RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBelow(); - RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); - - // floating parameters ranges - if (nsig_rel_err < 0.0 || nbkg_rel_err < 0.0){ - std::cout << "[roostats_cl95]: Workspace not initialized, cannot create a dataset" << std::endl; - return 0; - } - - double ilum = ws->var("lumi")->getVal(); - double eff = ws->var("efficiency")->getVal(); - double bck = ws->var("bkg_est")->getVal(); - double sbck = nbkg_rel_err*bck; - - ws->var("n") ->setRange( 0.0, bck+(5.0*sbck)+10.0*(n+1.0)); // ad-hoc range for obs - Double_t xsec_upper_bound = 4.0*(std::max(3.0,n-bck)+sqrt(n)+sbck)/ilum/eff; // ad-hoc range for POI - xsec_upper_bound = RoundUpperBound(xsec_upper_bound); - ws->var("xsec") ->setRange( 0.0, xsec_upper_bound ); - ws->var("nsig_nuis")->setRange( std::max(0.0, 1.0 - 5.0*nsig_rel_err), 1.0 + 5.0*nsig_rel_err); - ws->var("nbkg") ->setRange( std::max(0.0, bck - 5.0*sbck), bck + 5.0*sbck); - - // create data - ws->var("n") ->setVal(n); - delete data; - data = new RooDataSet("data","",*(SbModel.GetObservables())); - data->add( *(SbModel.GetObservables())); - - - // Now set up parameter snapshots for the S+B and B models - - // find global maximum with the signal+background model - // with conditional MLEs for nuisance parameters - // and save the parameter point snapshot in the Workspace - // - safer to keep a default name because some RooStats calculators - // will anticipate it - RooAbsReal * pNll = SbModel.GetPdf()->createNLL(*data); - RooAbsReal * pProfile = pNll->createProfile(RooArgSet()); - pProfile->getVal(); // this will do fit and set POI and nuisance parameters to fitted values - RooArgSet * pPoiAndNuisance = new RooArgSet("poiAndNuisance"); - if(SbModel.GetNuisanceParameters()) - pPoiAndNuisance->add(*SbModel.GetNuisanceParameters()); - pPoiAndNuisance->add(*SbModel.GetParametersOfInterest()); - std::cout << "\nWill save these parameter points that correspond to the fit to data" << std::endl; - pPoiAndNuisance->Print("v"); - SbModel.SetSnapshot(*pPoiAndNuisance); - delete pProfile; - delete pNll; - delete pPoiAndNuisance; - - // Find a parameter point for generating pseudo-data - // with the background-only data. - // Save the parameter point snapshot in the Workspace - // - // POI value under the background hypothesis - Double_t poiValueForBModel = 0.0; - pNll = BModel.GetPdf()->createNLL(*data); - const RooArgSet * poi = BModel.GetParametersOfInterest(); - pProfile = pNll->createProfile(*poi); - ((RooRealVar *)poi->first())->setVal(poiValueForBModel); - pProfile->getVal(); // this will do fit and set nuisance parameters to profiled values - pPoiAndNuisance = new RooArgSet("poiAndNuisance"); - if(BModel.GetNuisanceParameters()) - pPoiAndNuisance->add(*BModel.GetNuisanceParameters()); - pPoiAndNuisance->add(*BModel.GetParametersOfInterest()); - std::cout << "\nShould use these parameter points to generate pseudo data for bkg only" << std::endl; - pPoiAndNuisance->Print("v"); - BModel.SetSnapshot(*pPoiAndNuisance); - delete pProfile; - delete pNll; - delete pPoiAndNuisance; - - // import the model configs, has to be after all snapshots are saved - ws->import(SbModel); - ws->import(BModel); - - // restore RooFit messaging level - RooMsgService::instance().setGlobalKillBelow(msglevel); - - return data; -} - - -MCMCInterval * CL95Calc::GetMcmcInterval(double conf_level, - int n_iter, - int n_burn, - double left_side_tail_fraction, - int n_bins){ - // use MCMCCalculator (takes about 1 min) - // Want an efficient proposal function, so derive it from covariance - // matrix of fit - - RooFitResult * fit = ws->pdf("model")->fitTo(*data,Save(), - Verbose(kFALSE), - PrintLevel(-1), - Warnings(0), - PrintEvalErrors(-1)); - ProposalHelper ph; - ph.SetVariables((RooArgSet&)fit->floatParsFinal()); - ph.SetCovMatrix(fit->covarianceMatrix()); - ph.SetUpdateProposalParameters(kTRUE); // auto-create mean vars and add mappings - ph.SetCacheSize(100); - ProposalFunction* pf = ph.GetProposalFunction(); - - MCMCCalculator mcmc( *data, SbModel ); - mcmc.SetConfidenceLevel(conf_level); - mcmc.SetNumIters(n_iter); // Metropolis-Hastings algorithm iterations - mcmc.SetProposalFunction(*pf); - mcmc.SetNumBurnInSteps(n_burn); // first N steps to be ignored as burn-in - mcmc.SetLeftSideTailFraction(left_side_tail_fraction); - mcmc.SetNumBins(n_bins); - - delete mcInt; - mcInt = mcmc.GetInterval(); - - return mcInt; -} - - -void CL95Calc::makeMcmcPosteriorPlot( std::string filename ){ - - TCanvas c1("c1"); - MCMCIntervalPlot plot(*mcInt); - plot.Draw(); - c1.SaveAs(filename.c_str()); - - return; -} - - -double CL95Calc::printMcmcUpperLimit( std::string filename ){ - // - // print out the upper limit on the first Parameter of Interest - // - - RooRealVar * firstPOI = (RooRealVar*) SbModel.GetParametersOfInterest()->first(); - double _limit = mcInt->UpperLimit(*firstPOI); - cout << "\n95% upper limit on " <GetName()<<" is : "<< - _limit <var("xsec")->getMin() << ", " - << ws->var("xsec")->getMax() << "]" << std::endl; - - - //prepare Feldman-Cousins Calulator - - delete fcCalc; - fcCalc = new FeldmanCousins(*data,SbModel); - - fcCalc->SetConfidenceLevel(conf_int); // confidence interval - //fcCalc->AdditionalNToysFactor(0.1); // to speed up the result - fcCalc->UseAdaptiveSampling(UseAdaptiveSampling); // speed it up a bit - fcCalc->SetNBins(Nbins); // set how many points per parameter of interest to scan - fcCalc->CreateConfBelt(CreateConfidenceBelt); // save the information in the belt for plotting - - - if(!SbModel.GetPdf()->canBeExtended()){ - if(data->numEntries()==1) - fcCalc->FluctuateNumDataEntries(false); - else - cout <<"Not sure what to do about this model" <first(); - - double max = firstPOI->getMax(); - double min = firstPOI->getMin(); - double med = (max + min)/2.0; - - double maxPerm = firstPOI->getMax(); - double minPerm = firstPOI->getMin(); - - double UpperLimit = 0; - - PointSetInterval* interval = 0; - - while ( 1 ){ - - ++cnt; - firstPOI->setMax( max ); - firstPOI->setMin( min ); - - if ( verbose ) std::cout << "[FeldmanCousins]: Setting max/min/med to = " << max << " / " << min << " / " << med << std::endl; - - interval = fcCalc->GetInterval(); - interval -> Delete(); - - UpperLimit = interval -> UpperLimit(*firstPOI); - if ( verbose ) std::cout <<"[FeldmanCousins]: Updating Upper Limt to = "<< UpperLimit << std::endl; - - if ( UpperLimit > 0.000001 ){ - - min = med; - med = (max + min)/2.0; - - } - else{ - - max = med; - med = (max + min)/2.0; - - } - - if ( ( UpperLimit > 0.000001 ) && ( (max - min) < ULprecision) ) { - upper_limit = UpperLimit; - std::cout <<"[FeldmanCousins]: In "<< cnt << " steps Upper Limt converged to " << upper_limit << std::endl; - break; - } - - if ( cnt > 50 ) { - upper_limit = -1; - std::cout << std::endl; - std::cout <<"[FeldmanCousins WARNING!!!!!!!!!!!! ]: Calculator could not converge in under 50 steps. Returning Upper Limit of -1." << std::endl; - std::cout << std::endl; - break; - } - - } - - ws->var("xsec")->setMax( maxPerm ); - ws->var("xsec")->setMin( minPerm ); - - return upper_limit; - -} - - - - - -Double_t CL95Calc::cl95( std::string method, LimitResult * result ){ - // - // Compute the observed limit - // For some methods - CLs - compute the expected limts too. - // Extended results are returned via reference as LimitResul object - // - // this method assumes that the workspace, - // data and model config are ready - // - - Double_t upper_limit = -1.0; - - // make RooFit quiet - // cash the current message level first - RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBelow(); - // get ugly RooFit print out of the way - // FIXME: uncomment - RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); - - Int_t _attempt = 0; // allow several attempts for limit calculation, stop after that - while(1){ - - ++_attempt; - - // too many attempts - if (_attempt > 5){ - std::cout << "[roostats_cl95]: limit calculation did not converge, exiting..." << std::endl; - return -1.0; - } - - if (method.find("bayesian") != std::string::npos){ - - std::cout << "[roostats_cl95]: Range of allowed cross section values: [" - << ws->var("xsec")->getMin() << ", " - << ws->var("xsec")->getMax() << "]" << std::endl; - - //prepare Bayesian Calulator - delete bcalc; - bcalc = new BayesianCalculator(*data, SbModel); - TString namestring = "mybc"; - bcalc->SetName(namestring); - bcalc->SetConfidenceLevel(0.95); - bcalc->SetLeftSideTailFraction(0.0); - //bcalc->SetIntegrationType("ROOFIT"); - - delete sInt; - sInt = bcalc->GetInterval(); - upper_limit = sInt->UpperLimit(); - delete sInt; - sInt = 0; - - } - else if (method.find("mcmc") != std::string::npos){ - - std::cout << "[roostats_cl95]: Bayesian MCMC calculation is still experimental in this context!!!" << std::endl; - - std::cout << "[roostats_cl95]: Range of allowed cross section values: [" - << ws->var("xsec")->getMin() << ", " - << ws->var("xsec")->getMax() << "]" << std::endl; - - //prepare Bayesian Markov Chain MC Calulator - mcInt = GetMcmcInterval(0.95, 50000, 100, 0.0, 40); - upper_limit = printMcmcUpperLimit(); - } - else if (method.find("cls") != std::string::npos){ - // - // testing CLs - // - - std::cout << "[roostats_cl95]: CLs calculation is still experimental in this context!!!" << std::endl; - - std::cout << "[roostats_cl95]: Range of allowed cross section values: [" - << ws->var("xsec")->getMin() << ", " - << ws->var("xsec")->getMax() << "]" << std::endl; - - // timer - TStopwatch t; - t.Start(); - - // load parameter point with the best fit to data - SbModel.LoadSnapshot(); - RooRealVar * pPoi = (RooRealVar *)(SbModel.GetParametersOfInterest()->first()); - // get POI upper error from the fit - Double_t poi_err = pPoi->getErrorHi(); - // get POI upper range boundary - Double_t poi_upper_range = pPoi->getMax(); - // get the upper range boundary for CLs as min of poi range and 5*error - Double_t upper_range = std::min(10.0*poi_err,poi_upper_range); - // debug output - //std::cout << "range, error, new range " << poi_upper_range << ", "<< poi_err << ", " << upper_range << std::endl; - - RooMsgService::instance().setGlobalKillBelow(RooFit::PROGRESS); - - std::vector lim = - GetClsLimits( ws, - "SbModel", - "BModel", - "observed_data", - 0, // calculator type, 0-freq, 1-hybrid - 3, // test statistic, 0-lep, 1-tevatron, 2-PL, 3-PL 1-sided - true, // useCls - 10, // npoints in the scan - 0, // poimin: use default is poimin >= poimax - upper_range, - 10000,// ntoys - "test" ); - - t.Stop(); - t.Print(); - - if (result){ - result->_observed_limit = lim[0]; - result->_observed_limit_error = lim[1]; - result->_expected_limit = lim[2]; - result->_low68 = lim[3]; - result->_high68 = lim[4]; - result->_low95 = lim[5]; - result->_high95 = lim[6]; - result->_cover68 = -1.0; - result->_cover95 = -1.0; - } - - upper_limit = lim[0]; - - } // end of the CLs block - else if (method.find("fc") != std::string::npos){ - - int Nbins = 1; - float conf_int = 0.95; - float ULprecision = 0.1; - bool UseAdaptiveSampling = true; - bool CreateConfidenceBelt = true; - - - upper_limit = FC_calc(Nbins, conf_int, ULprecision, UseAdaptiveSampling, CreateConfidenceBelt); - - } // end of the FC block - else{ - - std::cout << "[roostats_cl95]: method " << method - << " is not implemented, exiting" <var("xsec")->getMax(); - - if (method.find("cls")!=std::string::npos) break; - if (method.find("fc") != std::string::npos ) break; - // range too wide - else if (upper_limit < _poi_max_range/10.0){ - std::cout << "[roostats_cl95]: POI range is too wide, will narrow the range and rerun" << std::endl; - ws->var("xsec")->setMax(RoundUpperBound(_poi_max_range/2.0)); - } - // range too narrow - else if (upper_limit > _poi_max_range/2.0){ - std::cout << "[roostats_cl95]: upper limit is too narrow, will widen the range and rerun" << std::endl; - ws->var("xsec")->setMax(RoundUpperBound(2.0*_poi_max_range)); - } - // all good, limit is ready - else{ - break; - } - - } // end of while(1) loop - - // restore RooFit messaging level - RooMsgService::instance().setGlobalKillBelow(msglevel); - - return upper_limit; - -} - - -Double_t CL95Calc::cla( Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t nuisanceModel, - std::string method ){ - - makeWorkspace( ilum, slum, - eff, seff, - bck, sbck, - kFALSE, - nuisanceModel ); - - Double_t CL95A = 0, precision = 1.e-4; - - Int_t i; - for (i = bck; i >= 0; i--) - { - makeData( i ); - - Double_t s95 = cl95( method ); - Double_t s95w =s95*TMath::Poisson( (Double_t)i, bck ); - CL95A += s95w; - cout << "[roostats_cla]: n = " << i << "; 95% C.L. = " << s95 << " pb; weighted 95% C.L. = " << s95w << " pb; running = " << CL95A << " pb" << endl; - - if (s95w < CL95A*precision) break; - } - cout << "[roostats_cla]: Lower bound on n has been found at " << i+1 << endl; - - for (i = bck+1; ; i++) - { - makeData( i ); - Double_t s95 = cl95( method ); - Double_t s95w =s95*TMath::Poisson( (Double_t)i, bck ); - CL95A += s95w; - cout << "[roostats_cla]: n = " << i << "; 95% C.L. = " << s95 << " pb; weighted 95% C.L. = " << s95w << " pb; running = " << CL95A << " pb" << endl; - - if (s95w < CL95A*precision) break; - } - cout << "[roostats_cla]: Upper bound on n has been found at " << i << endl; - cout << "[roostats_cla]: Average upper 95% C.L. limit = " << CL95A << " pb" << endl; - - return CL95A; -} - - - -LimitResult CL95Calc::clm( Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t nit, Int_t nuisanceModel, - std::string method ){ - - makeWorkspace( ilum, slum, - eff, seff, - bck, sbck, - kFALSE, - nuisanceModel ); - - Double_t CLM = 0.0; - LimitResult _result; - - Double_t b68[2] = {0.0, 0.0}; // 1-sigma expected band - Double_t b95[2] = {0.0, 0.0}; // 2-sigma expected band - - std::vector pe; - - // timer - TStopwatch t; - t.Start(); // start timer - Double_t _realtime = 0.0; - Double_t _cputime = 0.0; - Double_t _realtime_last = 0.0; - Double_t _cputime_last = 0.0; - Double_t _realtime_average = 0.0; - Double_t _cputime_average = 0.0; - - // throw pseudoexperiments - if (nit <= 0)return _result; - std::map cached_limit; - for (Int_t i = 0; i < nit; i++) - { - // throw random nuisance parameter (bkg yield) - Double_t bmean = GetRandom("syst_nbkg", "nbkg"); - - std::cout << "[roostats_clm]: generatin pseudo-data with bmean = " << bmean << std::endl; - Int_t n = r.Poisson(bmean); - - // check if the limit for this n is already cached - Double_t _pe = -1.0; - if (cached_limit.find(n)==cached_limit.end()){ - - makeData( n ); - std::cout << "[roostats_clm]: invoking CL95 with n = " << n << std::endl; - - _pe = cl95( method ); - cached_limit[n] = _pe; - } - else{ - std::cout << "[roostats_clm]: returning previously cached limit for n = " << n << std::endl; - _pe = cached_limit[n]; - } - - pe.push_back(_pe); - CLM += pe[i]; - - _realtime_last = t.RealTime() - _realtime; - _cputime_last = t.CpuTime() - _cputime; - _realtime = t.RealTime(); - _cputime = t.CpuTime(); - t.Continue(); - _realtime_average = _realtime/((Double_t)(i+1)); - _cputime_average = _cputime/((Double_t)(i+1)); - - std::cout << "n = " << n << "; 95% C.L. = " << _pe << " pb; running = " << CLM/(i+1.) << std::endl; - std::cout << "Real time (s), this iteration: " << _realtime_last << ", average per iteration: " << _realtime_average << ", total: " << _realtime << std::endl; - std::cout << "CPU time (s), this iteration: " << _cputime_last << ", average per iteration: " << _cputime_average << ", total: " << _cputime << std::endl << std::endl; - } - - CLM /= nit; - - // sort the vector with limits - std::sort(pe.begin(), pe.end()); - - // median for the expected limit - Double_t _median = TMath::Median(nit, &pe[0]); - - // quantiles for the expected limit bands - Double_t _prob[4]; // array with quantile boundaries - _prob[0] = 0.021; - _prob[1] = 0.159; - _prob[2] = 0.841; - _prob[3] = 0.979; - - Double_t _quantiles[4]; // array for the results - - TMath::Quantiles(nit, 4, &pe[0], _quantiles, _prob); // evaluate quantiles - - b68[0] = _quantiles[1]; - b68[1] = _quantiles[2]; - b95[0] = _quantiles[0]; - b95[1] = _quantiles[3]; - - // let's get actual coverages now - - Long64_t lc68 = LowBoundarySearch(&pe, _quantiles[1]); - Long64_t uc68 = HighBoundarySearch(&pe, _quantiles[2]); - Long64_t lc95 = LowBoundarySearch(&pe, _quantiles[0]); - Long64_t uc95 = HighBoundarySearch(&pe, _quantiles[3]); - - Double_t _cover68 = (nit - lc68 - uc68)*100./nit; - Double_t _cover95 = (nit - lc95 - uc95)*100./nit; - - std::cout << "[CL95Calc::clm()]: median limit: " << _median << std::endl; - std::cout << "[CL95Calc::clm()]: 1 sigma band: [" << b68[0] << "," << b68[1] << - "]; actual coverage: " << _cover68 << - "%; lower/upper percentile: " << lc68*100./nit <<"/" << uc68*100./nit << std::endl; - std::cout << "[CL95Calc::clm()]: 2 sigma band: [" << b95[0] << "," << b95[1] << - "]; actual coverage: " << _cover95 << - "%; lower/upper percentile: " << lc95*100./nit <<"/" << uc95*100./nit << std::endl; - - t.Print(); - - _result._expected_limit = _median; - _result._low68 = b68[0]; - _result._high68 = b68[1]; - _result._low95 = b95[0]; - _result._high95 = b95[1]; - _result._cover68 = _cover68; - _result._cover95 = _cover95; - - return _result; -} - - - -int CL95Calc::makePlot( std::string method, - std::string plotFileName ){ - - if (method.find("bayesian") != std::string::npos){ - - std::cout << "[roostats_cl95]: making Bayesian posterior plot" << endl; - - TCanvas c1("posterior"); - bcalc->SetScanOfPosterior(100); - RooPlot * plot = bcalc->GetPosteriorPlot(); - plot->Draw(); - c1.SaveAs(plotFileName.c_str()); - } - else if (method.find("mcmc") != std::string::npos){ - - std::cout << "[roostats_cl95]: making Bayesian MCMC posterior plot" << endl; - - makeMcmcPosteriorPlot(plotFileName); - - } - else{ - std::cout << "[roostats_cl95]: plot for method " << method - << " is not implemented" <pdf(pdf.c_str())->generate(*ws->var(var.c_str()), 1); - - Double_t _result = ((RooRealVar *)(_ds->get(0)->first()))->getVal(); - delete _ds; - - return _result; -} - - -Long64_t CL95Calc::LowBoundarySearch(std::vector * cdf, Double_t value){ - // - // return number of elements which are < value with precision 1e-10 - // - - Long64_t result = 0; - std::vector::const_iterator i = cdf->begin(); - while( (*i1.0e-10 && (i!=cdf->end()) ){ - ++i; - ++result; - } - return result; -} - - -Long64_t CL95Calc::HighBoundarySearch(std::vector * cdf, Double_t value){ - // - // return number of elements which are > value with precision 1e-10 - // - - Long64_t result = 0; - std::vector::const_iterator i = cdf->end(); - while(1){ // (*ibegin()) ){ - --i; - if (*i>value && fabs(*i-value)>1.0e-10 ){ - ++result; - } - else break; - if (i==cdf->begin()) break; - } - return result; -} - - - -Double_t CL95Calc::RoundUpperBound(Double_t bound){ - // - // find a round upper bound for a floating point - // - Double_t power = log10(bound); - Int_t int_power = power>0.0 ? (Int_t)power : (Int_t)(power-1.0); - Int_t int_bound = (Int_t)(bound/pow(10,(Double_t)int_power) * 10.0 + 1.0); - bound = (Double_t)(int_bound/10.0*pow(10,(Double_t)int_power)); - return bound; -} - - - -Int_t banner(){ - //#define __ROOFIT_NOBANNER // banner temporary off -#ifndef __EXOST_NOBANNER -// std::cout << desc << std::endl; -#endif - return 0 ; -} -static Int_t dummy_ = banner() ; - - - -Double_t roostats_cl95(Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t n, - Bool_t gauss, - Int_t nuisanceModel, - std::string method, - std::string plotFileName, - UInt_t seed, - LimitResult * result){ - // - // Global function to run the CL95 routine - // - // If a non-null pointer to a LimitResult object is provided, - // it will be filled, and the caller keeps the ownership of - // the object. This is mainly an internal interface design solution, - // users are not expected to use that (but they can of course) - // - - std::cout << "[roostats_cl95]: estimating 95% C.L. upper limit" << endl; - if (method.find("bayesian") != std::string::npos){ - std::cout << "[roostats_cl95]: using Bayesian calculation via numeric integration" << endl; - } - else if (method.find("mcmc") != std::string::npos){ - std::cout << "[roostats_cl95]: using Bayesian calculation via numeric integration" << endl; - } - else if (method.find("cls") != std::string::npos){ - std::cout << "[roostats_cl95]: using CLs calculation" << endl; - } - else if (method.find("fc") != std::string::npos){ - std::cout << "[roostats_cl95]: using Feldman-Cousins approach" << endl; - } - else if (method.find("workspace") != std::string::npos){ - std::cout << "[roostats_cl95]: no interval calculation, only create and save workspace" << endl; - } - else{ - std::cout << "[roostats_cl95]: method " << method - << " is not implemented, exiting" <Clone() ); - data->SetName("observed_data"); - ws->import(*data); - - //ws->Print(); - - ws->SaveAs("ws.root"); - - // if only workspace requested, exit here - if ( method.find("workspace") != std::string::npos ) return 0.0; - - Double_t limit = theCalc.cl95( method, &limitResult ); - std::cout << "[roostats_cl95]: 95% C.L. upper limit: " << limit << std::endl; - - // check if the plot is requested - if (plotFileName.size() != 0){ - theCalc.makePlot(method, plotFileName); - } - - if (result) *result = limitResult; - - return limit; -} - - - -LimitResult roostats_limit(Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t n, - Bool_t gauss, - Int_t nuisanceModel, - std::string method, - std::string plotFileName, - UInt_t seed){ - // - // Global function to run the CL95 routine - // - - LimitResult limitResult; - - roostats_cl95(ilum, slum, - eff, seff, - bck, sbck, - n, - gauss, - nuisanceModel, - method, - plotFileName, - seed, - &limitResult); - - std::cout << " expected limit (median) " << limitResult.GetExpectedLimit() << std::endl; - std::cout << " expected limit (-1 sig) " << limitResult.GetOneSigmaLowRange() << std::endl; - std::cout << " expected limit (+1 sig) " << limitResult.GetOneSigmaHighRange() << std::endl; - std::cout << " expected limit (-2 sig) " << limitResult.GetTwoSigmaLowRange() << std::endl; - std::cout << " expected limit (+2 sig) " << limitResult.GetTwoSigmaHighRange() << std::endl; - - return limitResult; -} - - - -Double_t roostats_cla(Double_t ilum, Double_t slum, - Double_t eff, Double_t seff, - Double_t bck, Double_t sbck, - Int_t nuisanceModel, - std::string method, - UInt_t seed){ - // - // Global function to run old-style average limit routine. - // Please use roostats_clm() instead. - // - - Double_t limit = -1.0; - - std::cout << "[roostats_cla]: estimating average 95% C.L. upper limit" << endl; - if (method.find("bayesian") != std::string::npos){ - std::cout << "[roostats_cla]: using Bayesian calculation via numeric integration" << endl; - } - else if (method.find("mcmc") != std::string::npos){ - std::cout << "[roostats_cl95]: using Bayesian calculation via numeric integration" << endl; - } - else if (method.find("cls") != std::string::npos){ - std::cout << "[roostats_cl95]: using CLs calculation" << endl; - } - else if (method.find("fc") != std::string::npos){ - std::cout << "[roostats_cl95]: using Feldman-Cousins approach" << endl; - } - else{ - std::cout << "[roostats_cla]: method " << method - << " is not implemented, exiting" < -GetClsLimits(RooWorkspace * pWs, - const char * modelSBName, - const char * modelBName, - const char * dataName, - int calculatorType, // calculator type - int testStatType, // test stat type - bool useCls, - int npoints, - double poimin, // use default is poimin >= poimax - double poimax, - int ntoys, - std::string suffix) -{ - - // - // Return a vector of numbers (terrible design, I know) ordered as - // - observed limit - // - observed limit error - // - expected limit median - // - expected limit -1 sigma - // - expected limit +1 sigma - // - expected limit -2 sigma - // - expected limit +2 sigma - // - -/* - - Other Parameter to pass in tutorial - apart from standard for filename, ws, modelconfig and data - - type = 0 Freq calculator - type = 1 Hybrid - - testStatType = 0 LEP - = 1 Tevatron - = 2 Profile Likelihood - = 3 Profile Likelihood one sided (i.e. = 0 if mu < mu_hat) - - useCLs scan for CLs (otherwise for CLs+b) - - npoints: number of points to scan , for autoscan set npoints = -1 - - poimin,poimax: min/max value to scan in case of fixed scans - (if min >= max, try to find automatically) - - ntoys: number of toys to use - - extra options are available as global paramters of the macro. They are: - - plotHypoTestResult plot result of tests at each point (TS distributions) - useProof = true; - writeResult = true; - nworkers = 4; - - - */ - - - // result - std::vector result; - - // check that workspace is present - if (!pWs){ - std::cout << "No workspace found, null pointer" << std::endl; - return result; - } - - HypoTestInverterResult * r = 0; - HypoTestInverterResult * r2 = 0; - - // terrible hack to check appending results - if (suffix.find("merge")!=std::string::npos){ - std::string resFile = "Freq_CLs_grid_ts2_test_1.root"; - std::string resFile2 = "Freq_CLs_grid_ts2_test_2.root"; - std::string resName = "result_xsec"; - //std::cout << "Reading an HypoTestInverterResult with name " << resName << " from file " << resFile << std::endl; - TFile * file = new TFile(resFile.c_str(), "read"); - TFile * file2 = new TFile(resFile2.c_str(), "read"); - r = dynamic_cast( file->Get(resName.c_str()) ); - r2 = dynamic_cast( file2->Get(resName.c_str()) ); - r->Add(*r2); - } - else{ - r = RunInverter(pWs, modelSBName, modelBName, dataName, calculatorType, testStatType, npoints, poimin, poimax, ntoys, useCls ); - if (!r) { - std::cerr << "Error running the HypoTestInverter - Exit " << std::endl; - return result; - } - } - - - double upperLimit = r->UpperLimit(); - double ulError = r->UpperLimitEstimatedError(); - result.push_back(upperLimit); - result.push_back(ulError); - - - //std::cout << "The computed upper limit is: " << upperLimit << " +/- " << ulError << std::endl; - - // const int nEntries = r->ArraySize(); - - const char * limitType = (useCls) ? "CLs" : "Cls+b"; - const char * scanType = (npoints < 0) ? "auto" : "grid"; - - const char * typeName = (calculatorType == 0) ? "Frequentist" : "Hybrid"; - const char * resultName = (pWs) ? pWs->GetName() : r->GetName(); - TString plotTitle = TString::Format("%s CL Scan for workspace %s",typeName,resultName); - - /* - HypoTestInverterPlot *plot = new HypoTestInverterPlot("HTI_Result_Plot",plotTitle,r); - TCanvas c1; - //plot->Draw("CLb 2CL"); // plot all and Clb - plot->Draw("2CL"); // plot all and Clb - TString resultFileName = TString::Format("%s_%s_ts%d_scan_",limitType,scanType,testStatType); - resultFileName += suffix; - resultFileName += ".pdf"; - c1.SaveAs(resultFileName); - - if (plotHypoTestResult) { - TCanvas * c2 = new TCanvas(); - c2->Divide( 2, TMath::Ceil(nEntries/2)); - for (int i=0; icd(i+1); - SamplingDistPlot * pl = plot->MakeTestStatPlot(i); - pl->SetLogYaxis(true); - pl->Draw(); - } - } - */ - - Double_t q[5]; - q[0] = r->GetExpectedUpperLimit(0); - q[1] = r->GetExpectedUpperLimit(-1); - q[2] = r->GetExpectedUpperLimit(1); - q[3] = r->GetExpectedUpperLimit(-2); - q[4] = r->GetExpectedUpperLimit(2); - //std::cout << " expected limit (median) " << q[0] << std::endl; - //std::cout << " expected limit (-1 sig) " << q[1] << std::endl; - //std::cout << " expected limit (+1 sig) " << q[2] << std::endl; - //std::cout << " expected limit (-2 sig) " << q[3] << std::endl; - //std::cout << " expected limit (+2 sig) " << q[4] << std::endl; - result.push_back(q[0]); - result.push_back(q[1]); - result.push_back(q[2]); - result.push_back(q[3]); - result.push_back(q[4]); - - - if (pWs != NULL && writeResult) { - - // write to a file the results - const char * calcType = (calculatorType == 0) ? "Freq" : "Hybr"; - //const char * limitType = (useCls) ? "CLs" : "Cls+b"; - //const char * scanType = (npoints < 0) ? "auto" : "grid"; - TString resultFileName = TString::Format("%s_%s_%s_ts%d_",calcType,limitType,scanType,testStatType); - //resultFileName += fileName; - resultFileName += suffix; - resultFileName += ".root"; - - TFile * fileOut = new TFile(resultFileName,"RECREATE"); - r->Write(); - fileOut->Close(); - } - - return result; -} - - -// internal routine to run the inverter -HypoTestInverterResult * RunInverter(RooWorkspace * w, const char * modelSBName, const char * modelBName, - const char * dataName, int type, int testStatType, - int npoints, double poimin, double poimax, - int ntoys, bool useCls ) -{ - - //std::cout << "Running HypoTestInverter on the workspace " << w->GetName() << std::endl; - - //w->Print(); - - - RooAbsData * data = w->data(dataName); - if (!data) { - Error("StandardHypoTestDemo","Not existing data %s",dataName); - return 0; - } - //else - // std::cout << "Using data set " << dataName << std::endl; - - - // get models from WS - // get the modelConfig out of the file - ModelConfig* bModel = (ModelConfig*) w->obj(modelBName); - ModelConfig* sbModel = (ModelConfig*) w->obj(modelSBName); - - if (!sbModel) { - Error("StandardHypoTestDemo","Not existing ModelConfig %s",modelSBName); - return 0; - } - // check the model - if (!sbModel->GetPdf()) { - Error("StandardHypoTestDemo","Model %s has no pdf ",modelSBName); - return 0; - } - if (!sbModel->GetParametersOfInterest()) { - Error("StandardHypoTestDemo","Model %s has no poi ",modelSBName); - return 0; - } - if (!sbModel->GetParametersOfInterest()) { - Error("GetClsLimits","Model %s has no poi ",modelSBName); - return 0; - } - if (!sbModel->GetSnapshot() ) { - Info("GetClsLimits","Model %s has no snapshot - make one using model poi",modelSBName); - sbModel->SetSnapshot( *sbModel->GetParametersOfInterest() ); - } - - - if (!bModel || bModel == sbModel) { - Info("GetClsLimits","The background model %s does not exist",modelBName); - Info("GetClsLimits","Copy it from ModelConfig %s and set POI to zero",modelSBName); - bModel = (ModelConfig*) sbModel->Clone(); - bModel->SetName(TString(modelSBName)+TString("_with_poi_0")); - RooRealVar * var = dynamic_cast(bModel->GetParametersOfInterest()->first()); - if (!var) return 0; - double oldval = var->getVal(); - var->setVal(0); - bModel->SetSnapshot( RooArgSet(*var) ); - var->setVal(oldval); - } - else { - if (!bModel->GetSnapshot() ) { - Info("GetClsLimits","Model %s has no snapshot - make one using model poi and 0 values ",modelBName); - RooRealVar * var = dynamic_cast(bModel->GetParametersOfInterest()->first()); - if (var) { - double oldval = var->getVal(); - var->setVal(0); - bModel->SetSnapshot( RooArgSet(*var) ); - var->setVal(oldval); - } - else { - Error("GetClsLimits","Model %s has no valid poi",modelBName); - return 0; - } - } - } - - - SimpleLikelihoodRatioTestStat slrts(*sbModel->GetPdf(),*bModel->GetPdf()); - if (sbModel->GetSnapshot()) slrts.SetNullParameters(*sbModel->GetSnapshot()); - if (bModel->GetSnapshot()) slrts.SetAltParameters(*bModel->GetSnapshot()); - - // ratio of profile likelihood - need to pass snapshot for the alt - RatioOfProfiledLikelihoodsTestStat - ropl(*sbModel->GetPdf(), *bModel->GetPdf(), bModel->GetSnapshot()); - ropl.SetSubtractMLE(false); - - ProfileLikelihoodTestStat profll(*sbModel->GetPdf()); - if (testStatType == 3) profll.SetOneSided(1); - if (optimize) profll.SetReuseNLL(true); - - TestStatistic * testStat = &slrts; - if (testStatType == 1) testStat = &ropl; - if (testStatType == 2 || testStatType == 3) testStat = &profll; - - - HypoTestCalculatorGeneric * hc = 0; - if (type == 0) hc = new FrequentistCalculator(*data, *bModel, *sbModel); - else hc = new HybridCalculator(*data, *bModel, *sbModel); - - ToyMCSampler *toymcs = (ToyMCSampler*)hc->GetTestStatSampler(); - // FIXME: - toymcs->SetNEventsPerToy(1); - toymcs->SetTestStatistic(testStat); - if (optimize) toymcs->SetUseMultiGen(true); - - - if (type == 1) { - HybridCalculator *hhc = (HybridCalculator*) hc; - hhc->SetToys(ntoys,ntoys); - - // check for nuisance prior pdf - //if (bModel->GetPriorPdf() && sbModel->GetPriorPdf() ) { - // hhc->ForcePriorNuisanceAlt(*bModel->GetPriorPdf()); - // hhc->ForcePriorNuisanceNull(*sbModel->GetPriorPdf()); - //} - RooAbsPdf * nuis_prior = w->pdf("nuis_prior"); - if (nuis_prior ) { - hhc->ForcePriorNuisanceAlt(*nuis_prior); - hhc->ForcePriorNuisanceNull(*nuis_prior); - } - else { - if (bModel->GetNuisanceParameters() || sbModel->GetNuisanceParameters() ) { - Error("GetClsLimits","Cannnot run Hybrid calculator because no prior on the nuisance parameter is specified"); - return 0; - } - } - } - else - ((FrequentistCalculator*) hc)->SetToys(ntoys,ntoys); - - // Get the result - RooMsgService::instance().getStream(1).removeTopic(RooFit::NumIntegration); - - - TStopwatch tw; tw.Start(); - const RooArgSet * poiSet = sbModel->GetParametersOfInterest(); - RooRealVar *poi = (RooRealVar*)poiSet->first(); - - // fit the data first - - sbModel->GetPdf()->fitTo(*data, - Verbose(0), PrintLevel(-1), Warnings(0), PrintEvalErrors(-1)); - - double poihat = poi->getVal(); - - - HypoTestInverter calc(*hc); - calc.SetConfidenceLevel(0.95); - - calc.UseCLs(useCls); - calc.SetVerbose(true); - - // can speed up using proof-lite - if (useProof && nworkers > 1) { - ProofConfig pc(*w, nworkers, "", kFALSE); - toymcs->SetProofConfig(&pc); // enable proof - } - - - if (npoints > 0) { - if (poimin >= poimax) { - // if no min/max given scan between MLE and +4 sigma - poimin = int(poihat); - poimax = int(poihat + 4 * poi->getError()); - } - //std::cout << "Doing a fixed scan in interval : " << poimin << " , " << poimax << std::endl; - calc.SetFixedScan(npoints,poimin,poimax); - } - else { - //poi->setMax(10*int( (poihat+ 10 *poi->getError() )/10 ) ); - //std::cout << "Doing an automatic scan in interval : " << poi->getMin() << " , " << poi->getMax() << std::endl; - } - - HypoTestInverterResult * r = calc.GetInterval(); - - return r; -} diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/setstandaloneroot.csh b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/setstandaloneroot.csh deleted file mode 100644 index 226852edfdca4..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/setstandaloneroot.csh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/tcsh -# -set arch = slc5_ia32_gcc434 -setenv CMS_PATH /uscmst1/prod/sw/cms - -setenv PYTHONDIR /uscmst1/prod/sw/cms/slc5_ia32_gcc434/external/python/2.6.4-cms6 -setenv PATH ${PYTHONDIR}/bin:/uscmst1b_scratch/lpc1/lpcphys/jchen/root/root_v5.30.02/bin:$PATH -setenv ROOTSYS /uscmst1b_scratch/lpc1/lpcphys/jchen/root/root_v5.30.02 -setenv PYTHONPATH ${ROOTSYS}/lib:${PYTHONPATH} -setenv LD_LIBRARY_PATH ${PYTHONDIR}/lib:${CMS_PATH}/$arch/external/gcc/4.3.4/lib:${ROOTSYS}:${ROOTSYS}/lib:${LD_LIBRARY_PATH} -setenv ROOT_INCLUDE ${ROOTSYS}/include diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/setstandaloneroot.sh b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/setstandaloneroot.sh deleted file mode 100755 index 3f907e7a3155a..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/setstandaloneroot.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# -arch=slc5_ia32_gcc434 -export CMS_PATH=/uscmst1/prod/sw/cms - -export PYTHONDIR=/uscmst1/prod/sw/cms/slc5_ia32_gcc434/external/python/2.6.4-cms6 -export PATH=${PYTHONDIR}/bin:/uscmst1b_scratch/lpc1/lpcphys/jchen/root/root_v5.30.02/bin:$PATH -export ROOTSYS=/uscmst1b_scratch/lpc1/lpcphys/jchen/root/root_v5.30.02 -export PYTHONPATH=${ROOTSYS}/lib:${PYTHONPATH} -export LD_LIBRARY_PATH=${PYTHONDIR}/lib:${CMS_PATH}/$arch/external/gcc/4.3.4/lib:${ROOTSYS}:${ROOTSYS}/lib:${LD_LIBRARY_PATH} -export ROOT_INCLUDE=${ROOTSYS}/include diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/stop_XSec.txt b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/stop_XSec.txt deleted file mode 100644 index 47290723480a0..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/stop_XSec.txt +++ /dev/null @@ -1,45 +0,0 @@ - 100. 4.23E+02 4.86E+02 3.74E+02 - 120. 1.77E+02 2.02E+02 1.56E+02 - 140. 8.27E+01 9.41E+01 7.29E+01 - 160. 4.20E+01 4.76E+01 3.70E+01 - 180. 2.27E+01 2.57E+01 2.01E+01 - 200. 1.30E+01 1.47E+01 1.14E+01 - 220. 7.71E+00 8.72E+00 6.77E+00 - 240. 4.75E+00 5.37E+00 4.17E+00 - 260. 3.02E+00 3.41E+00 2.65E+00 - 280. 1.97E+00 2.22E+00 1.72E+00 - 300. 1.31E+00 1.48E+00 1.14E+00 - 320. 8.86E-01 1.00E+00 7.73E-01 - 340. 6.11E-01 6.92E-01 5.31E-01 - 360. 4.28E-01 4.84E-01 3.70E-01 - 380. 3.03E-01 3.44E-01 2.63E-01 - 400. 2.18E-01 2.47E-01 1.88E-01 - 420. 1.58E-01 1.79E-01 1.36E-01 - 440. 1.16E-01 1.32E-01 9.93E-02 - 460. 8.55E-02 9.75E-02 7.31E-02 - 480. 6.37E-02 7.28E-02 5.44E-02 - 500. 4.78E-02 5.47E-02 4.06E-02 - 520. 3.62E-02 4.15E-02 3.07E-02 - 540. 2.75E-02 3.15E-02 2.33E-02 - 560. 2.10E-02 2.42E-02 1.77E-02 - 580. 1.62E-02 1.87E-02 1.36E-02 - 600. 1.25E-02 1.44E-02 1.05E-02 - 620. 9.68E-03 1.12E-02 8.11E-03 - 640. 7.51E-03 8.71E-03 6.27E-03 - 660. 5.84E-03 6.78E-03 4.87E-03 - 680. 4.55E-03 5.29E-03 3.78E-03 - 700. 3.56E-03 4.14E-03 2.95E-03 - 720. 2.78E-03 3.23E-03 2.30E-03 - 740. 2.17E-03 2.52E-03 1.79E-03 - 760. 1.67E-03 1.94E-03 1.38E-03 - 800. 1.14E-03 1.35E-03 9.31E-04 - 820. 9.14E-04 1.08E-03 7.42E-04 - 840. 7.33E-04 8.68E-04 5.93E-04 - 860. 5.89E-04 7.01E-04 4.74E-04 - 880. 4.75E-04 5.65E-04 3.81E-04 - 900. 3.82E-04 4.56E-04 3.06E-04 - 920. 3.09E-04 3.69E-04 2.47E-04 - 940. 2.50E-04 3.00E-04 1.98E-04 - 960. 2.03E-04 2.44E-04 1.60E-04 - 980. 1.64E-04 1.98E-04 1.29E-04 - 1000. 1.33E-04 1.61E-04 1.04E-04 diff --git a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/tdrstyle.C b/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/tdrstyle.C deleted file mode 100644 index 6e2de47e66928..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/ICHEP_Analysis/tdrstyle.C +++ /dev/null @@ -1,169 +0,0 @@ -// -// TDR style macro for plots in ROOT -// .L tdrstyle.C -// setTDRStyle() -// -#include "TStyle.h" -#include "TPad.h" - -/* -// tdrGrid: Turns the grid lines on (true) or off (false) - -void tdrGrid(bool gridOn) { - tdrStyle->SetPadGridX(gridOn); - tdrStyle->SetPadGridY(gridOn); -} -*/ - -// fixOverlay: Redraws the axis - -void fixOverlay() { - gPad->RedrawAxis(); -} - -void setTDRStyle() { -// TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); - -// For the canvas: - gStyle->SetCanvasBorderMode(0); - gStyle->SetCanvasColor(kWhite); - gStyle->SetCanvasDefH(600); //Height of canvas - gStyle->SetCanvasDefW(600); //Width of canvas - gStyle->SetCanvasDefX(0); //POsition on screen - gStyle->SetCanvasDefY(0); - -// For the Pad: - gStyle->SetPadBorderMode(0); - // gStyle->SetPadBorderSize(Width_t size = 1); - gStyle->SetPadColor(kWhite); - gStyle->SetPadGridX(false); - gStyle->SetPadGridY(false); - gStyle->SetGridColor(0); - gStyle->SetGridStyle(3); - gStyle->SetGridWidth(1); - -// For the frame: - gStyle->SetFrameBorderMode(0); - gStyle->SetFrameBorderSize(1); - gStyle->SetFrameFillColor(0); - gStyle->SetFrameFillStyle(0); - gStyle->SetFrameLineColor(1); - gStyle->SetFrameLineStyle(1); - gStyle->SetFrameLineWidth(1); - -// For the histo: - // gStyle->SetHistFillColor(1); - // gStyle->SetHistFillStyle(0); - gStyle->SetHistLineColor(1); - gStyle->SetHistLineStyle(0); - gStyle->SetHistLineWidth(1); - // gStyle->SetLegoInnerR(Float_t rad = 0.5); - // gStyle->SetNumberContours(Int_t number = 20); - - gStyle->SetEndErrorSize(2); - //gStyle->SetErrorMarker(20); - gStyle->SetErrorX(0.); - - gStyle->SetMarkerStyle(20); - -//For the fit/function: - gStyle->SetOptFit(1); - gStyle->SetFitFormat("5.4g"); - gStyle->SetFuncColor(2); - gStyle->SetFuncStyle(1); - gStyle->SetFuncWidth(1); - -//For the date: - gStyle->SetOptDate(0); - // gStyle->SetDateX(Float_t x = 0.01); - // gStyle->SetDateY(Float_t y = 0.01); - -// For the statistics box: - gStyle->SetOptFile(0); - //gStyle->SetOptStat(0); - gStyle->SetOptStat("mr"); - gStyle->SetStatColor(kWhite); - gStyle->SetStatFont(42); - gStyle->SetStatFontSize(0.04);///---> gStyle->SetStatFontSize(0.025); - gStyle->SetStatTextColor(1); - gStyle->SetStatFormat("6.4g"); - gStyle->SetStatBorderSize(1); - gStyle->SetStatH(0.1); - gStyle->SetStatW(0.2);///---> gStyle->SetStatW(0.15); - - // gStyle->SetStatStyle(Style_t style = 1001); - // gStyle->SetStatX(Float_t x = 0); - // gStyle->SetStatY(Float_t y = 0); - -// Margins: - gStyle->SetPadTopMargin(0.05); - gStyle->SetPadBottomMargin(0.13); - gStyle->SetPadLeftMargin(0.16); - gStyle->SetPadRightMargin(0.02); - -// For the Global title: - - gStyle->SetOptTitle(0); - gStyle->SetTitleFont(42); - gStyle->SetTitleColor(1); - gStyle->SetTitleTextColor(1); - gStyle->SetTitleFillColor(10); - gStyle->SetTitleFontSize(0.05); - // gStyle->SetTitleH(0); // Set the height of the title box - // gStyle->SetTitleW(0); // Set the width of the title box - // gStyle->SetTitleX(0); // Set the position of the title box - // gStyle->SetTitleY(0.985); // Set the position of the title box - // gStyle->SetTitleStyle(Style_t style = 1001); - // gStyle->SetTitleBorderSize(2); - -// For the axis titles: - - gStyle->SetTitleColor(1, "XYZ"); - gStyle->SetTitleFont(42, "XYZ"); - gStyle->SetTitleSize(0.06, "XYZ"); - // gStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size? - // gStyle->SetTitleYSize(Float_t size = 0.02); - gStyle->SetTitleXOffset(0.9); - gStyle->SetTitleYOffset(1.25); - // gStyle->SetTitleOffset(1.1, "Y"); // Another way to set the Offset - -// For the axis labels: - - gStyle->SetLabelColor(1, "XYZ"); - gStyle->SetLabelFont(42, "XYZ"); - gStyle->SetLabelOffset(0.007, "XYZ"); - gStyle->SetLabelSize(0.05, "XYZ"); - -// For the axis: - - gStyle->SetAxisColor(1, "XYZ"); - gStyle->SetStripDecimals(kTRUE); - gStyle->SetTickLength(0.03, "XYZ"); - gStyle->SetNdivisions(510, "XYZ"); - gStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame - gStyle->SetPadTickY(1); - -// Change for log plots: - gStyle->SetOptLogx(0); - gStyle->SetOptLogy(0); - gStyle->SetOptLogz(0); - -// Postscript options: - gStyle->SetPaperSize(20.,20.); - // gStyle->SetLineScalePS(Float_t scale = 3); - // gStyle->SetLineStyleString(Int_t i, const char* text); - // gStyle->SetHeaderPS(const char* header); - // gStyle->SetTitlePS(const char* pstitle); - - // gStyle->SetBarOffset(Float_t baroff = 0.5); - // gStyle->SetBarWidth(Float_t barwidth = 0.5); - // gStyle->SetPaintTextFormat(const char* format = "g"); - // gStyle->SetPalette(Int_t ncolors = 0, Int_t* colors = 0); - // gStyle->SetTimeOffset(Double_t toffset); - // gStyle->SetHistMinimumZero(kTRUE); - -// gStyle->cd(); - - gROOT->ForceStyle(); - -} diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/GetLuminosity/GetLuminosity.C b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/GetLuminosity/GetLuminosity.C deleted file mode 100644 index ded1ba86b25f6..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/GetLuminosity/GetLuminosity.C +++ /dev/null @@ -1,131 +0,0 @@ - -#include -#include - -#include "TROOT.h" -#include "TFile.h" -#include "TDirectory.h" -#include "TChain.h" -#include "TObject.h" -#include "TCanvas.h" -#include "TMath.h" -#include "TLegend.h" -#include "TGraph.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include "TTree.h" -#include "TF1.h" -#include "TGraphAsymmErrors.h" -#include "TPaveText.h" - - -#if !defined(__CINT__) && !defined(__MAKECINT__) -#include "DataFormats/FWLite/interface/Handle.h" -#include "DataFormats/FWLite/interface/Event.h" - -#include "DataFormats/FWLite/interface/LuminosityBlock.h" -#include "DataFormats/FWLite/interface/Run.h" -#include "DataFormats/Luminosity/interface/LumiSummary.h" - -#include "../../ICHEP_Analysis/Analysis_Samples.h" - -using namespace fwlite; - -#endif - -struct stRun { - unsigned int runId; - std::vector lumiId; -}; - -void GetLumiBlocks_Core(vector& fileNames, std::vector& RunMap); -void DumpJson(const std::vector& RunMap, char* FileName); -void RemoveRunsAfter(unsigned int RunMax, const std::vector& RunMap, std::vector& NewRunMap); - -void GetLuminosity() -{ - //std::string BaseDirectory = "/storage/data/cms/users/quertenmont/HSCP/CMSSW_4_2_3/11_08_03/"; - vector inputFiles; - GetInputFiles(inputFiles, "Data"); - std::vector RunMap; - GetLumiBlocks_Core(inputFiles, RunMap); - DumpJson(RunMap, "out.json"); - - std::vector RunMapBefRPC; - RemoveRunsAfter(165970, RunMap, RunMapBefRPC); - DumpJson(RunMapBefRPC, "out_beforeRPCChange.json"); -} - -void GetLumiBlocks_Core(vector& fileNames, std::vector& RunMap) -{ - printf("Running\n"); - for(unsigned int f=0;f Lumi =%lu\n",ls.luminosityBlockAuxiliary().run(), (unsigned long)ls.luminosityBlockAuxiliary().id().value()); - int RunIndex = -1; - for(unsigned int r=0;rrunId==ls.luminosityBlockAuxiliary().run()){ - RunIndex = (int)r; - break; - } - } - - if(RunIndex<0){ - stRun* tmp = new stRun(); - tmp->runId=ls.luminosityBlockAuxiliary().run(); - tmp->lumiId.push_back(ls.luminosityBlockAuxiliary().id().value()); - RunMap.push_back(tmp); - //std::sort(RunMap.begin(), RunMap.end(), stRunLess); - }else{ - stRun* tmp = RunMap[RunIndex]; - int LumiIndex = -1; - for(unsigned int l=0;llumiId.size();l++){ - //printf("%lu vs %lu\n",tmp->lumiId[l], (unsigned long) ls.luminosityBlockAuxiliary().id().value() ); - if(tmp->lumiId[l]== (unsigned int) ls.luminosityBlockAuxiliary().id().value()){ - LumiIndex = (int)l; - break; - } - } - if(LumiIndex<0){ - tmp->lumiId.push_back((unsigned int) ls.luminosityBlockAuxiliary().id().value()); - std::sort(tmp->lumiId.begin(), tmp->lumiId.end()); - } - } - }printf("\n"); - } -} - -void RemoveRunsAfter(unsigned int RunMax, const std::vector& RunMap, std::vector& NewRunMap){ - for(unsigned int r=0;rrunId& RunMap, char* FileName){ - FILE* json = fopen(FileName,"w"); - fprintf(json,"{"); - for(unsigned int r=0;rrunId); - unsigned int l=0; - while(llumiId.size()){ - unsigned int FirstLumi = tmp->lumiId[l]; - unsigned Size=0; - for(unsigned int l2=l;l2lumiId.size() && FirstLumi+l2-l==tmp->lumiId[l2]; l2++){Size++;} - fprintf(json,"[%i, %i]",FirstLumi,FirstLumi+Size-1); - l+=Size; - if(llumiId.size()) fprintf(json,","); - } - fprintf(json,"] "); - if(rGetMakeSharedLib()); - TString dummy = makeshared.ReplaceAll("-W ", ""); - gSystem->SetMakeSharedLib(makeshared); - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable();; - gSystem->Load("libDataFormatsFWLite.so"); - gSystem->Load("libDataFormatsCommon.so"); - .x GetLuminosity.C+ -EOF -lumiCalc2.py --nowarning -c frontier://LumiCalc/CMS_LUMI_PROD -i out.json overview -b stable > LUMI_TABLE -lumiCalc2.py --nowarning -c frontier://LumiCalc/CMS_LUMI_PROD -i out_beforeRPCChange.json overview -b stable > LUMI_TABLE_BEFORE_RPC_CHANGE diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/Launch.py b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/Launch.py deleted file mode 100644 index 1ab6dbfce7c90..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/Launch.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -import urllib -import string -import os -import sys -import LaunchOnCondor -import glob - -print('OPTIMIZATION') -FarmDirectory = "FARM" -JobName = "HSCPStability" -LaunchOnCondor.Jobs_RunHere = 1 -LaunchOnCondor.SendCluster_Create(FarmDirectory, JobName) -LaunchOnCondor.SendCluster_Push(["FWLITE", os.getcwd()+"/StabilityCheck.C", '"ANALYSE"']) -LaunchOnCondor.SendCluster_Submit() diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/LaunchOnCondor.py b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/LaunchOnCondor.py deleted file mode 100644 index cb1a3d28b3a37..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/LaunchOnCondor.py +++ /dev/null @@ -1,300 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -import urllib -import string -import os -import sys -import glob - -CopyRights = '####################################\n' -CopyRights += '# LaunchOnFarm Script #\n' -CopyRights += '# Loic.quertenmont@cern.ch #\n' -CopyRights += '# April 2010 #\n' -CopyRights += '####################################\n' - -Farm_Directories = [] -Path_Cmd = '' -Path_Shell = '' -Path_Log = '' -Path_Cfg = '' -Jobs_Count = 0 -Jobs_Name = '' -Jobs_Index = '' -Jobs_Seed = 0 -Jobs_NEvent =-1 -Jobs_Skip = 0 -Jobs_Inputs = [] -Jobs_FinalCmds = [] -Jobs_RunHere = 0 - -def CreateTheConfigFile(argv): - global Jobs_Name - global Jobs_Index - global Jobs_Count - global Jobs_Seed - global Jobs_Skip - global Jobs_NEvent - global Jobs_Inputs - global Jobs_FinalCmds - global Path_Cfg - global CopyRights - Path_Cfg = Farm_Directories[1]+Jobs_Index+Jobs_Name+'_cfg.py' - - config_file=open(argv[1],'r') - config_txt = '\n\n' + CopyRights + '\n\n' - config_txt += config_file.read() - config_file.close() - i = 2 - while i < len(argv)-1: - config_txt = config_txt.replace(argv[i],argv[i+1]) - i+=2 - - #Default Replacements - config_txt = config_txt.replace("XXX_I_XXX" ,"%04i"%Jobs_Count) - config_txt = config_txt.replace("XXX_PATH_XXX" ,os.getcwd()) - config_txt = config_txt.replace("XXX_OUTPUT_XXX" ,Jobs_Name) - config_txt = config_txt.replace("XXX_NAME_XXX" ,Jobs_Index+Jobs_Name) - config_txt = config_txt.replace("XXX_SEED_XXX" ,str(Jobs_Seed+Jobs_Count)) - config_txt = config_txt.replace("XXX_NEVENTS_XXX" ,str(Jobs_NEvent)) - config_txt = config_txt.replace("XXX_SKIP_XXX" ,str(Jobs_Skip)) - if Jobs_Count < len(Jobs_Inputs): - config_txt = config_txt.replace("XXX_INPUT_XXX" ,Jobs_Inputs[Jobs_Count]) - - config_file=open(Path_Cfg,'w') - config_file.write(config_txt) - config_file.close() - -def CreateTheShellFile(argv): - global Path_Shell - global Path_Cfg - global CopyRights - global Jobs_RunHere - global Jobs_FinalCmds - Path_Shell = Farm_Directories[1]+Jobs_Index+Jobs_Name+'.sh' - - function_argument='(' - for i in range(2,len(argv)): - function_argument+="%s" % argv[i] - if i != len(argv)-1: - function_argument+=', ' - function_argument+=')' - - shell_file=open(Path_Shell,'w') - shell_file.write('#! /bin/sh\n') - shell_file.write(CopyRights + '\n') - shell_file.write('export SCRAM_ARCH=slc5_amd64_gcc434\n') - shell_file.write('export BUILD_ARCH=slc5_amd64_gcc434\n') - shell_file.write('export VO_CMS_SW_DIR=/nfs/soft/cms\n') - #shell_file.write('source /nfs/soft/cms/cmsset_default.sh\n') - shell_file.write('cd ' + os.getcwd() + '\n') - shell_file.write('eval `scramv1 runtime -sh`\n') - - if argv[0]=='BASH': - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write(argv[1] + " %s\n" % function_argument) - elif argv[0]=='ROOT': - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write('source setstandaloneroot.sh\n') - shell_file.write('root -l -b << EOF\n') - shell_file.write(' TString makeshared(gSystem->GetMakeSharedLib());\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-W ", "");\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-Wshadow ", "");\n') - shell_file.write(' gSystem->SetMakeSharedLib(makeshared);\n') - shell_file.write(' .x %s+' % argv[1] + function_argument + '\n') -# shell_file.write("root -l -b -q %s" % argv[1] + "+'%s'\n" % function_argument) - shell_file.write(' .q\n') - shell_file.write('EOF\n\n') - elif argv[0]=='FWLITE': - if Jobs_RunHere==0: - shell_file.write('cd -\n') -# shell_file.write('eval `scramv1 runtime -sh`\n') - shell_file.write('root -l -b << EOF\n') - shell_file.write(' TString makeshared(gSystem->GetMakeSharedLib());\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-W ", "");\n') - shell_file.write(' TString dummy = makeshared.ReplaceAll("-Wshadow ", "");\n') - shell_file.write(' gSystem->SetMakeSharedLib(makeshared);\n') - shell_file.write(' gSystem->SetIncludePath("-I$ROOFITSYS/include");\n') - shell_file.write(' gSystem->Load("libFWCoreFWLite");\n') - shell_file.write(' FWLiteEnabler::enable();;\n') - shell_file.write(' gSystem->Load("libDataFormatsFWLite.so");\n') - shell_file.write(' gSystem->Load("libAnalysisDataFormatsSUSYBSMObjects.so");\n') - shell_file.write(' gSystem->Load("libDataFormatsVertexReco.so");\n') - shell_file.write(' gSystem->Load("libDataFormatsHepMCCandidate.so");\n') - shell_file.write(' gSystem->Load("libPhysicsToolsUtilities.so");\n') - shell_file.write(' .x %s+' % argv[1] + function_argument + '\n') - shell_file.write(' .q\n') - shell_file.write('EOF\n\n') - elif argv[0]=='CMSSW': - CreateTheConfigFile(argv); - if Jobs_RunHere==0: - shell_file.write('cd -\n') - shell_file.write('cmsRun ' + os.getcwd() + '/'+Path_Cfg + '\n') - else: - print() #Program to use is not specified... Guess it is bash command - shell_file.write('#Program to use is not specified... Guess it is bash command\n') - shell_file.write(argv[1] + " %s\n" % function_argument) - - for i in range(len(Jobs_FinalCmds)): - shell_file.write(Jobs_FinalCmds[i]+'\n') - shell_file.write('mv '+ Jobs_Name+'* '+os.getcwd()+'/'+Farm_Directories[3]+'\n') - shell_file.close() - os.system("chmod 777 "+Path_Shell) - - -def CreateTheCmdFile(): - global Path_Cmd - global CopyRights - Path_Cmd = Farm_Directories[1]+Jobs_Name+'.cmd' - cmd_file=open(Path_Cmd,'w') - cmd_file.write(CopyRights + '\n') - cmd_file.write('Universe = vanilla\n') - cmd_file.write('Environment = CONDORJOBID=$(Process)\n') - cmd_file.write('notification = Error\n') - #cmd_file.write('requirements = (CMSFARM=?=True)&&(Memory > 200)\n') - cmd_file.write('requirements = (Memory > 200)\n') - cmd_file.write('should_transfer_files = YES\n') - cmd_file.write('when_to_transfer_output = ON_EXIT\n') - cmd_file.close() - -def AddJobToCmdFile(): - global Path_Shell - global Path_Cmd - global Path_Log - Path_Log = Farm_Directories[2]+Jobs_Index+Jobs_Name - cmd_file=open(Path_Cmd,'a') - cmd_file.write('\n') - cmd_file.write('Executable = %s\n' % Path_Shell) - cmd_file.write('output = %s.out\n' % Path_Log) - cmd_file.write('error = %s.err\n' % Path_Log) - cmd_file.write('log = %s.log\n' % Path_Log) - cmd_file.write('Queue 1\n') - cmd_file.close() - -def CreateDirectoryStructure(FarmDirectory): - global Jobs_Name - global Farm_Directories - Farm_Directories = [FarmDirectory+'/', FarmDirectory+'/inputs/', FarmDirectory+'/logs/', FarmDirectory+'/outputs/'] - for i in range(0,len(Farm_Directories)): - if os.path.isdir(Farm_Directories[i]) == False: - os.system('mkdir ' + Farm_Directories[i]) - -def SendCluster_LoadInputFiles(path, NJobs): - global Jobs_Inputs - input_file = open(path,'r') - input_lines = input_file.readlines() - input_file.close() - #input_lines.sort() - - BlockSize = (len(input_lines)/NJobs) - LineIndex = 0 - JobIndex = 0 - BlockIndex = 0 - Jobs_Inputs = [""] - while LineIndex < len(input_lines): - Jobs_Inputs[JobIndex] += input_lines[LineIndex] - LineIndex +=1 - BlockIndex+=1 - if BlockIndex>BlockSize: - BlockIndex = 0 - JobIndex += 1 - Jobs_Inputs.append("") - return JobIndex+1 - -def SendCluster_Create(FarmDirectory, JobName): - global Jobs_Name - global Jobs_Count - global Farm_Directories - Jobs_Name = JobName - Jobs_Count = 0 - CreateDirectoryStructure(FarmDirectory) - CreateTheCmdFile() - -def SendCluster_Push(Argv): - global Farm_Directories - global Jobs_Count - global Jobs_Index - global Path_Shell - global Path_Log - - Jobs_Index = "%04i_" % Jobs_Count - if Jobs_Count==0 and (Argv[0]=="ROOT" or Argv[0]=="FWLITE"): - #First Need to Compile the macro --> Create a temporary shell path with no arguments - print("Compiling the Macro...") - CreateTheShellFile([Argv[0],Argv[1]]) - os.system('sh '+Path_Shell) - os.system('rm '+Path_Shell) - print("Getting the jobs...") - print(Argv) - CreateTheShellFile(Argv) - AddJobToCmdFile() - Jobs_Count = Jobs_Count+1 - -def SendCluster_Submit(): - global CopyRights - global Jobs_Count - global Path_Cmd - print("condor_submit " + Path_Cmd) - os.system("condor_submit " + Path_Cmd) - print('\n'+CopyRights) - print('%i Job(s) has/have been submitted on the Computing Cluster' % Jobs_Count) - -def SendSingleJob(FarmDirectory, JobName, Argv): - SendCluster_Create(FarmDirectory, JobName, Argv) - SendCluster_Push(FarmDirectory, JobName, Argv) - SendCluster_Submit(FarmDirectory, JobName,Argv) - -def SendCMSJobs(FarmDirectory, JobName, ConfigFile, InputFiles, NJobs, Argv): - SendCluster_Create(FarmDirectory, JobName) - NJobs = SendCluster_LoadInputFiles(InputFiles, NJobs) - for i in range(NJobs): - LaunchOnCondor.SendCluster_Push (["CMSSW", ConfigFile]) - LaunchOnCondor.SendCluster_Submit() - - - -def GetListOfFiles(Prefix, InputPattern, Suffix): - List = sorted(glob.glob(InputPattern)) - for i in range(len(List)): - List[i] = Prefix + List[i] + Suffix - return List - -def SendCMSMergeJob(FarmDirectory, JobName, InputFiles, OutputFile, KeepStatement): - SendCluster_Create(FarmDirectory, JobName) - Temp_Cfg = Farm_Directories[1]+Jobs_Index+Jobs_Name+'_TEMP_cfg.py' - - if len(InputFiles)==0: - print('Empty InputFile List for Job named "%s", Job will not be submitted' % JobName) - return - - InputFilesString = "" - for i in range(len(InputFiles)): - InputFilesString += " " + InputFiles[i] + '\n' - - cfg_file=open(Temp_Cfg,'w') - cfg_file.write('import FWCore.ParameterSet.Config as cms\n') - cfg_file.write('process = cms.Process("Merge")\n') - cfg_file.write('\n') - cfg_file.write('process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )\n') - cfg_file.write('process.load("FWCore.MessageService.MessageLogger_cfi")\n') - cfg_file.write('\n') - cfg_file.write('process.MessageLogger.cerr.FwkReport.reportEvery = 50000\n') - cfg_file.write('process.source = cms.Source("PoolSource",\n') - cfg_file.write(' fileNames = cms.untracked.vstring(\n') - cfg_file.write('%s' % InputFilesString) - cfg_file.write(' )\n') - cfg_file.write(')\n') - cfg_file.write('\n') - cfg_file.write('process.OUT = cms.OutputModule("PoolOutputModule",\n') - cfg_file.write(' outputCommands = cms.untracked.vstring(%s),\n' % KeepStatement) - cfg_file.write(' fileName = cms.untracked.string(%s)\n' % OutputFile) - cfg_file.write(')\n') - cfg_file.write('\n') - cfg_file.write('process.endPath = cms.EndPath(process.OUT)\n') - cfg_file.close() - SendCluster_Push (["CMSSW", Temp_Cfg]) - SendCluster_Submit() - os.system('rm '+ Temp_Cfg) - diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/MakePlot.C b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/MakePlot.C deleted file mode 100644 index 69e5efd7e96f3..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/MakePlot.C +++ /dev/null @@ -1,659 +0,0 @@ - -#include - -#include "TROOT.h" -#include "TFile.h" -#include "TDirectory.h" -#include "TChain.h" -#include "TObject.h" -#include "TCanvas.h" -#include "TMath.h" -#include "TLegend.h" -#include "TGraph.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include "TTree.h" -#include "TF1.h" -#include "TGraphErrors.h" -#include "TGraphAsymmErrors.h" -#include "TPaveText.h" -#include "tdrstyle.C" -#include "TProfile.h" - -#include "../../ICHEP_Analysis/Analysis_PlotFunction.h" -#include "../../ICHEP_Analysis/Analysis_Samples.h" - -std::map RunToIntLumi; - -bool LoadLumiToRun() -{ - float TotalIntLuminosity = 0; - - FILE* pFile = fopen("out.txt","r"); - if(!pFile){ - printf("Not Found: %s\n","out.txt"); - return false; - } - - unsigned int Run; float IntLumi; - unsigned int DeliveredLs; double DeliveredLumi; - char Line[2048], Tmp1[2048], Tmp2[2048], Tmp3[2048]; - while ( ! feof (pFile) ){ - fscanf(pFile,"%s\n",Line); -// printf("%s\n",Line); - for(unsigned int i=0;Line[i]!='\0';i++){if(Line[i]==',')Line[i]=' ';} - sscanf(Line,"%d %s %s %s %f\n",&Run,Tmp1,Tmp2,Tmp3,&IntLumi); - TotalIntLuminosity+= IntLumi/1000000.0; -// printf("%6i --> %f/pb (%s | %s | %s)\n",Run,TotalIntLuminosity,Tmp1,Tmp2,Tmp3); - RunToIntLumi[Run] = TotalIntLuminosity; - } - fclose(pFile); - return true; -} - - -TGraph* ConvertFromRunToIntLumi(TProfile* Object, const char* DrawOption, string YLabel, double YRange_Min=3.1, double YRange_Max=3.7){ - TGraphErrors* graph = new TGraphErrors(Object->GetXaxis()->GetNbins()); - for(unsigned int i=1;iGetXaxis()->GetNbins()+1;i++){ - int RunNumber; - sscanf(Object->GetXaxis()->GetBinLabel(i),"%d",&RunNumber); - graph->SetPoint(i-1, RunToIntLumi[RunNumber], Object->GetBinContent(i)); - graph->SetPointError(i-1, 0.0*RunToIntLumi[RunNumber], Object->GetBinError(i)); - } - graph->Draw(DrawOption); - graph->SetTitle(""); - graph->GetYaxis()->SetTitle(Object->GetYaxis()->GetTitle()); - graph->GetYaxis()->SetTitleOffset(1.10); - graph->GetXaxis()->SetTitle("Int. Luminosity (/pb)"); - graph->GetYaxis()->SetTitle(YLabel.c_str()); - graph->SetMarkerColor(Object->GetMarkerColor()); - graph->SetMarkerStyle(Object->GetMarkerStyle()); - graph->GetXaxis()->SetNdivisions(510); - if(YRange_Min!=YRange_Max)graph->GetYaxis()->SetRangeUser(YRange_Min,YRange_Max); - return graph; -} - -void MakedEdxPlot() -{ - setTDRStyle(); - gStyle->SetPadTopMargin (0.06); - gStyle->SetPadBottomMargin(0.15); - gStyle->SetPadRightMargin (0.03); - gStyle->SetPadLeftMargin (0.09); - gStyle->SetTitleSize(0.04, "XYZ"); - gStyle->SetTitleXOffset(1.1); - gStyle->SetTitleYOffset(1.35); - gStyle->SetPalette(1); - gStyle->SetNdivisions(505); - - TCanvas* c1; - TObject** Histos = new TObject*[10]; - std::vector legend; - - TFile* InputFile = new TFile("pictures/Histos.root"); - - TProfile* SingleMu_PtProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuPtProf"); - TProfile* SingleMu_dEdxProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxProf"); - TProfile* SingleMu_dEdxMProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMProf"); - TProfile* SingleMu_dEdxMSProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMSProf"); - TProfile* SingleMu_dEdxMPProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMPProf"); - TProfile* SingleMu_dEdxMSCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMSCProf"); - TProfile* SingleMu_dEdxMPCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMPCProf"); - TProfile* SingleMu_dEdxMSFProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMSFProf"); - TProfile* SingleMu_dEdxMPFProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMPFProf"); - - TProfile* SingleMu_NVertProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuNVertProf"); - - SingleMu_NVertProf->LabelsDeflate("X"); - SingleMu_NVertProf->LabelsOption("av","X"); - -/* - TFile* InputFileLumi166380 = new TFile("pictures/HistosLumi166380.root"); - TFile* InputFileLumi166512 = new TFile("pictures/HistosLumi166512.root"); - TFile* InputFileLumi167807 = new TFile("pictures/HistosLumi167807.root"); - TFile* InputFileLumi167898 = new TFile("pictures/HistosLumi167898.root"); - - TProfile* SingleMu_dEdxMProfLumi166380 = (TProfile*)GetObjectFromPath(InputFileLumi166380, "HscpPathSingleMudEdxMProf"); - TProfile* SingleMu_dEdxMProfLumi166512 = (TProfile*)GetObjectFromPath(InputFileLumi166512, "HscpPathSingleMudEdxMProf"); - TProfile* SingleMu_dEdxMProfLumi167807 = (TProfile*)GetObjectFromPath(InputFileLumi167807, "HscpPathSingleMudEdxMProf"); - TProfile* SingleMu_dEdxMProfLumi167898 = (TProfile*)GetObjectFromPath(InputFileLumi167898, "HscpPathSingleMudEdxMProf"); -*/ - - if(LoadLumiToRun()){ - TLegend* leg; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - TGraph* graph = ConvertFromRunToIntLumi(SingleMu_dEdxMProf , "A*", "I_{h} (MeV/cm)"); - TGraph* graphS = ConvertFromRunToIntLumi(SingleMu_dEdxMSProf, "*" , "I_{h} (MeV/cm)"); - TGraph* graphP = ConvertFromRunToIntLumi(SingleMu_dEdxMPProf, "*" , "I_{h} (MeV/cm)"); - graphS->SetMarkerColor(2); graphS->SetMarkerStyle(26); - graphP->SetMarkerColor(4); graphP->SetMarkerStyle(32); - - - TF1* myfunc = new TF1("Fitgraph" ,"pol1",250,5000); graph ->Fit(myfunc ,"QN","",250,5000); myfunc ->SetLineWidth(2); myfunc ->SetLineColor(graph ->GetMarkerColor()); myfunc ->Draw("same"); - TF1* myfuncS= new TF1("FitgraphS","pol1",250,5000); graphS->Fit(myfuncS,"QN","",250,5000); myfuncS->SetLineWidth(2); myfuncS->SetLineColor(graphS->GetMarkerColor()); myfuncS->Draw("same"); - TF1* myfuncP= new TF1("FitgraphP","pol1",250,5000); graphP->Fit(myfuncP,"QN","",250,5000); myfuncP->SetLineWidth(2); myfuncP->SetLineColor(graphP->GetMarkerColor()); myfuncP->Draw("same"); - printf("%25s --> Chi2/ndf = %6.2f --> a=%6.2E+-%6.2E b=%6.2E+-%6.2E\n","dE/dx (Strip+Pixel)", myfunc ->GetChisquare()/ myfunc ->GetNDF(), myfunc ->GetParameter(0),myfunc ->GetParError(0),myfunc ->GetParameter(1),myfunc ->GetParError(1)); - printf("%25s --> Chi2/ndf = %6.2f --> a=%6.2E+-%6.2E b=%6.2E+-%6.2E\n","dE/dx (Strip)" , myfuncS->GetChisquare()/ myfuncS->GetNDF(), myfuncS->GetParameter(0),myfuncS->GetParError(0),myfuncS->GetParameter(1),myfuncS->GetParError(1)); - printf("%25s --> Chi2/ndf = %6.2f --> a=%6.2E+-%6.2E b=%6.2E+-%6.2E\n","dE/dx (Pixel)" , myfuncP->GetChisquare()/ myfuncP->GetNDF(), myfuncP->GetParameter(0),myfuncP->GetParError(0),myfuncP->GetParameter(1),myfuncP->GetParError(1)); - leg = new TLegend(0.79,0.92,0.79-0.20,0.92 - 3*0.05); leg->SetFillColor(0); leg->SetBorderSize(0); - leg->AddEntry(graph, "dE/dx (Strip+Pixel)" ,"P"); - leg->AddEntry(graphS, "dE/dx (Strip)" ,"P"); - leg->AddEntry(graphP, "dE/dx (Pixel)" ,"P"); - leg->Draw(); - SaveCanvas(c1,"pictures/","GraphdEdx_Profile_dEdxM"); - delete c1; delete leg; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - TGraph* graphSC = ConvertFromRunToIntLumi(SingleMu_dEdxMSCProf, "A*", "I_{h} (MeV/cm)"); - TGraph* graphSF = ConvertFromRunToIntLumi(SingleMu_dEdxMSFProf, "*" , "I_{h} (MeV/cm)"); - graphSC->SetMarkerColor(2); graphSC->SetMarkerStyle(26); - graphSF->SetMarkerColor(4); graphSF->SetMarkerStyle(32); - TF1* myfuncSC= new TF1("FitgraphSC","pol1",250,5000); graphSC->Fit(myfuncSC,"QN","",250,5000); myfuncSC->SetLineWidth(2); myfuncSC->SetLineColor(graphSC->GetMarkerColor()); myfuncSC->Draw("same"); - TF1* myfuncSF= new TF1("FitgraphSF","pol1",250,5000); graphSF->Fit(myfuncSF,"QN","",250,5000); myfuncSF->SetLineWidth(2); myfuncSF->SetLineColor(graphSF->GetMarkerColor()); myfuncSF->Draw("same"); - printf("%25s --> Chi2/ndf = %6.2f --> a=%6.2E+-%6.2E b=%6.2E+-%6.2E\n","dE/dx (Strip) |eta|<0.5", myfuncSC->GetChisquare()/ myfuncSC->GetNDF(), myfuncSC->GetParameter(0),myfuncSC->GetParError(0),myfuncSC->GetParameter(1),myfuncSC->GetParError(1)); - printf("%25s --> Chi2/ndf = %6.2f --> a=%6.2E+-%6.2E b=%6.2E+-%6.2E\n","dE/dx (Strip) |eta|>1.5", myfuncSF->GetChisquare()/ myfuncSF->GetNDF(), myfuncSF->GetParameter(0),myfuncSF->GetParError(0),myfuncSF->GetParameter(1),myfuncSF->GetParError(1)); - leg = new TLegend(0.79,0.92,0.79-0.20,0.92 - 3*0.05); leg->SetFillColor(0); leg->SetBorderSize(0); - leg->AddEntry(graphSC, "dE/dx (Strip) |#eta|<0.5" ,"P"); - leg->AddEntry(graphSF, "dE/dx (Strip) |#eta|>1.5" ,"P"); - leg->Draw(); - SaveCanvas(c1,"pictures/","GraphdEdx_Profile_dEdxMS"); - delete c1; delete leg; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - TGraph* graphPC = ConvertFromRunToIntLumi(SingleMu_dEdxMPCProf, "A*", "I_{h} (MeV/cm)"); - TGraph* graphPF = ConvertFromRunToIntLumi(SingleMu_dEdxMPFProf, "*" , "I_{h} (MeV/cm)"); - graphPC->SetMarkerColor(2); graphPC->SetMarkerStyle(26); - graphPF->SetMarkerColor(4); graphPF->SetMarkerStyle(32); - TF1* myfuncPC= new TF1("FitgraphPC","pol1",250,5000); graphPC->Fit(myfuncPC,"QN","",250,5000); myfuncPC->SetLineWidth(2); myfuncPC->SetLineColor(graphPC->GetMarkerColor()); myfuncPC->Draw("same"); - TF1* myfuncPF= new TF1("FitgraphPF","pol1",250,5000); graphPF->Fit(myfuncPF,"QN","",250,5000); myfuncPF->SetLineWidth(2); myfuncPF->SetLineColor(graphPF->GetMarkerColor()); myfuncPF->Draw("same"); - printf("%25s --> Chi2/ndf = %6.2f --> a=%6.2E+-%6.2E b=%6.2E+-%6.2E\n","dE/dx (Pixel) |eta|<0.5", myfuncPC->GetChisquare()/ myfuncPC->GetNDF(), myfuncPC->GetParameter(0),myfuncPC->GetParError(0),myfuncPC->GetParameter(1),myfuncPC->GetParError(1)); - printf("%25s --> Chi2/ndf = %6.2f --> a=%6.2E+-%6.2E b=%6.2E+-%6.2E\n","dE/dx (Pixel) |eta|>1.5", myfuncPF->GetChisquare()/ myfuncPF->GetNDF(), myfuncPF->GetParameter(0),myfuncPF->GetParError(0),myfuncPF->GetParameter(1),myfuncPF->GetParError(1)); - leg = new TLegend(0.79,0.92,0.79-0.20,0.92 - 3*0.05); leg->SetFillColor(0); leg->SetBorderSize(0); - leg->AddEntry(graphPC, "dE/dx (Pixel) |#eta|<0.5" ,"P"); - leg->AddEntry(graphPF, "dE/dx (Pixel) |#eta|>1.5" ,"P"); - leg->Draw(); - SaveCanvas(c1,"pictures/","GraphdEdx_Profile_dEdxMP"); - delete c1; delete leg; - - - - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - TGraph* graphNV = ConvertFromRunToIntLumi(SingleMu_NVertProf, "A*" , "<#Reco Vertices>",0,0); - SaveCanvas(c1,"pictures/","GraphdEdx_Profile_Vert"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - TGraph* graphpT = ConvertFromRunToIntLumi(SingleMu_PtProf, "A*" , " (GeV/c)",0,0); - SaveCanvas(c1,"pictures/","GraphdEdx_Profile_pT"); - delete c1; - - - }else{ - printf("TEST TEST TEST\n"); - } - - - for(unsigned int i=0;iGetXaxis()->GetNbins();i++){ - if((i+3)%4==0)continue; - SingleMu_PtProf->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxProf->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxMProf->GetXaxis()->SetBinLabel(i,""); - SingleMu_NVertProf->GetXaxis()->SetBinLabel(i,""); - } - - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = SingleMu_NVertProf; legend.push_back("SingleMu40"); - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "<#Reco Vertices>", 0,0, 0,0); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","dEdx_Profile_NVert"); - delete c1; - - - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = SingleMu_PtProf; legend.push_back("SingleMu40"); - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "p_{T} (GeV/c)", 0,0, 0,0); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","dEdx_Profile_Pt"); - delete c1; - - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = SingleMu_dEdxProf; legend.push_back("SingleMu40"); - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{as}", 0,0, 0.02,0.06); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","dEdx_Profile_dEdx"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = SingleMu_dEdxMProf; legend.push_back("SingleMu40"); - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{h}", 0,0, 3.2,3.4); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","dEdx_Profile_dEdxM"); - delete c1; - -/* - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = SingleMu_dEdxMProfLumi166380; legend.push_back("SingleMu40 - Run166380"); - Histos[1] = SingleMu_dEdxMProfLumi166512; legend.push_back("SingleMu40 - Run166512"); - Histos[2] = SingleMu_dEdxMProfLumi167807; legend.push_back("SingleMu40 - Run167807"); - Histos[3] = SingleMu_dEdxMProfLumi167898; legend.push_back("SingleMu40 - Run167898"); - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "Lumi", "I_{h}", 0,0, 3.2,3.4); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","dEdx_Profile_dEdxMRun"); - delete c1; -*/ - - -} - - - - - -void MakePlot() -{ - setTDRStyle(); - gStyle->SetPadTopMargin (0.06); - gStyle->SetPadBottomMargin(0.15); - gStyle->SetPadRightMargin (0.03); - gStyle->SetPadLeftMargin (0.07); - gStyle->SetTitleSize(0.04, "XYZ"); - gStyle->SetTitleXOffset(1.1); - gStyle->SetTitleYOffset(1.35); - gStyle->SetPalette(1); - gStyle->SetNdivisions(505); - - TCanvas* c1; - TObject** Histos = new TObject*[10]; - std::vector legend; - - TFile* InputFile = new TFile("pictures/Histos.root"); - - TProfile* Any_PtProf = (TProfile*)GetObjectFromPath(InputFile, "AnyPtProf"); - TProfile* SingleMu_PtProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuPtProf"); - TProfile* PFMet_PtProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetPtProf"); - - TProfile* Any_dEdxProf = (TProfile*)GetObjectFromPath(InputFile, "AnydEdxProf"); - TProfile* SingleMu_dEdxProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxProf"); - TProfile* PFMet_dEdxProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetdEdxProf"); - - TProfile* Any_dEdxMProf = (TProfile*)GetObjectFromPath(InputFile, "AnydEdxMProf"); - TProfile* SingleMu_dEdxMProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMProf"); - TProfile* PFMet_dEdxMProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetdEdxMProf"); - - TProfile* Any_dEdxMSProf = (TProfile*)GetObjectFromPath(InputFile, "AnydEdxMSProf"); - TProfile* SingleMu_dEdxMSProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMSProf"); - TProfile* PFMet_dEdxMSProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetdEdxMSProf"); - - TProfile* Any_dEdxMPProf = (TProfile*)GetObjectFromPath(InputFile, "AnydEdxMPProf"); - TProfile* SingleMu_dEdxMPProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMPProf"); - TProfile* PFMet_dEdxMPProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetdEdxMPProf"); - - TProfile* Any_dEdxMSCProf = (TProfile*)GetObjectFromPath(InputFile, "AnydEdxMSCProf"); - TProfile* SingleMu_dEdxMSCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMSCProf"); - TProfile* PFMet_dEdxMSCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetdEdxMSCProf"); - - TProfile* Any_dEdxMPCProf = (TProfile*)GetObjectFromPath(InputFile, "AnydEdxMPCProf"); - TProfile* SingleMu_dEdxMPCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMPCProf"); - TProfile* PFMet_dEdxMPCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetdEdxMPCProf"); - - TProfile* Any_dEdxMSFProf = (TProfile*)GetObjectFromPath(InputFile, "AnydEdxMSFProf"); - TProfile* SingleMu_dEdxMSFProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMSFProf"); - TProfile* PFMet_dEdxMSFProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetdEdxMSFProf"); - - TProfile* Any_dEdxMPFProf = (TProfile*)GetObjectFromPath(InputFile, "AnydEdxMPFProf"); - TProfile* SingleMu_dEdxMPFProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMudEdxMPFProf"); - TProfile* PFMet_dEdxMPFProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetdEdxMPFProf"); - - TProfile* Any_TOFProf = (TProfile*)GetObjectFromPath(InputFile, "AnyTOFProf"); - TProfile* SingleMu_TOFProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuTOFProf"); - TProfile* PFMet_TOFProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetTOFProf"); - - TProfile* Any_TOFDTProf = (TProfile*)GetObjectFromPath(InputFile, "AnyTOFDTProf"); - TProfile* SingleMu_TOFDTProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuTOFDTProf"); - TProfile* PFMet_TOFDTProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetTOFDTProf"); - - TProfile* Any_TOFCSCProf = (TProfile*)GetObjectFromPath(InputFile, "AnyTOFCSCProf"); - TProfile* SingleMu_TOFCSCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuTOFCSCProf"); - TProfile* PFMet_TOFCSCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetTOFCSCProf"); - - TProfile* Any_VertexProf = (TProfile*)GetObjectFromPath(InputFile, "AnyVertexProf"); - TProfile* SingleMu_VertexProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuVertexProf"); - TProfile* PFMet_VertexProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetVertexProf"); - - TProfile* Any_VertexDTProf = (TProfile*)GetObjectFromPath(InputFile, "AnyVertexDTProf"); - TProfile* SingleMu_VertexDTProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuVertexDTProf"); - TProfile* PFMet_VertexDTProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetVertexDTProf"); - - TProfile* Any_VertexCSCProf = (TProfile*)GetObjectFromPath(InputFile, "AnyVertexCSCProf"); - TProfile* SingleMu_VertexCSCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuVertexCSCProf"); - TProfile* PFMet_VertexCSCProf = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetVertexCSCProf"); - - TProfile* Any_HdEdx = (TProfile*)GetObjectFromPath(InputFile, "AnyHdEdx"); - TProfile* SingleMu_HdEdx = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuHdEdx"); - TProfile* PFMet_HdEdx = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetHdEdx"); - - TProfile* Any_HPt = (TProfile*)GetObjectFromPath(InputFile, "AnyHPt"); - TProfile* SingleMu_HPt = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuHPt"); - TProfile* PFMet_HPt = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetHPt"); - - TProfile* Any_HTOF = (TProfile*)GetObjectFromPath(InputFile, "AnyHTOF"); - TProfile* SingleMu_HTOF = (TProfile*)GetObjectFromPath(InputFile, "HscpPathSingleMuHTOF"); - TProfile* PFMet_HTOF = (TProfile*)GetObjectFromPath(InputFile, "HscpPathPFMetHTOF"); - - for(unsigned int i=0;iGetXaxis()->GetNbins();i++){ - if((i+3)%12==0)continue; - Any_PtProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_PtProf ->GetXaxis()->SetBinLabel(i,""); - PFMet_PtProf ->GetXaxis()->SetBinLabel(i,""); - - Any_dEdxProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxProf ->GetXaxis()->SetBinLabel(i,""); - PFMet_dEdxProf ->GetXaxis()->SetBinLabel(i,""); - - Any_dEdxMProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxMProf ->GetXaxis()->SetBinLabel(i,""); - PFMet_dEdxMProf ->GetXaxis()->SetBinLabel(i,""); - - Any_dEdxMSProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxMSProf ->GetXaxis()->SetBinLabel(i,""); - PFMet_dEdxMSProf ->GetXaxis()->SetBinLabel(i,""); - - Any_dEdxMPProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxMPProf ->GetXaxis()->SetBinLabel(i,""); - PFMet_dEdxMPProf ->GetXaxis()->SetBinLabel(i,""); - - Any_dEdxMSCProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxMSCProf->GetXaxis()->SetBinLabel(i,""); - PFMet_dEdxMSCProf ->GetXaxis()->SetBinLabel(i,""); - - Any_dEdxMPCProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxMPCProf->GetXaxis()->SetBinLabel(i,""); - PFMet_dEdxMPCProf ->GetXaxis()->SetBinLabel(i,""); - - Any_dEdxMSFProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxMSFProf->GetXaxis()->SetBinLabel(i,""); - PFMet_dEdxMSFProf ->GetXaxis()->SetBinLabel(i,""); - - Any_dEdxMPFProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_dEdxMPFProf->GetXaxis()->SetBinLabel(i,""); - PFMet_dEdxMPFProf ->GetXaxis()->SetBinLabel(i,""); - - Any_TOFProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_TOFProf ->GetXaxis()->SetBinLabel(i,""); - PFMet_TOFProf ->GetXaxis()->SetBinLabel(i,""); - - Any_TOFDTProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_TOFDTProf ->GetXaxis()->SetBinLabel(i,""); - PFMet_TOFDTProf ->GetXaxis()->SetBinLabel(i,""); - - Any_TOFCSCProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_TOFCSCProf->GetXaxis()->SetBinLabel(i,""); - PFMet_TOFCSCProf ->GetXaxis()->SetBinLabel(i,""); - - Any_VertexProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_VertexProf ->GetXaxis()->SetBinLabel(i,""); - PFMet_VertexProf ->GetXaxis()->SetBinLabel(i,""); - - Any_VertexDTProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_VertexDTProf ->GetXaxis()->SetBinLabel(i,""); - PFMet_VertexDTProf ->GetXaxis()->SetBinLabel(i,""); - - Any_VertexCSCProf ->GetXaxis()->SetBinLabel(i,""); - SingleMu_VertexCSCProf->GetXaxis()->SetBinLabel(i,""); - PFMet_VertexCSCProf ->GetXaxis()->SetBinLabel(i,""); - - Any_HdEdx ->GetXaxis()->SetBinLabel(i,""); - SingleMu_HdEdx ->GetXaxis()->SetBinLabel(i,""); - PFMet_HdEdx ->GetXaxis()->SetBinLabel(i,""); - - Any_HPt ->GetXaxis()->SetBinLabel(i,""); - SingleMu_HPt ->GetXaxis()->SetBinLabel(i,""); - PFMet_HPt ->GetXaxis()->SetBinLabel(i,""); - - Any_HTOF ->GetXaxis()->SetBinLabel(i,""); - SingleMu_HTOF ->GetXaxis()->SetBinLabel(i,""); - PFMet_HTOF ->GetXaxis()->SetBinLabel(i,""); - } - - - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_PtProf; legend.push_back("Any"); - //Histos[1] = SingleMu_PtProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_PtProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "p_{T} (GeV/c)", 0,0, 0,150); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_Pt"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_dEdxProf; legend.push_back("Any"); - //Histos[1] = SingleMu_dEdxProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_dEdxProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{as}", 0,0, 0.02,0.05); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_dEdx"); - delete c1; - - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_dEdxMProf; legend.push_back("Any"); - //Histos[1] = SingleMu_dEdxMProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_dEdxMProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{h}", 0,0, 3.1,3.6); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_dEdxM"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_dEdxMSProf; legend.push_back("Any"); - //Histos[1] = SingleMu_dEdxMSProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_dEdxMSProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{h} S", 0,0, 3.1,3.6); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_dEdxMS"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_dEdxMPProf; legend.push_back("Any"); - //Histos[1] = SingleMu_dEdxMPProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_dEdxMPProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{h} P", 0,0, 3.1,3.6); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_dEdxMP"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_dEdxMSCProf; legend.push_back("Any"); - //Histos[1] = SingleMu_dEdxMSCProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_dEdxMSCProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{h} SC", 0,0, 3.1,3.6); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_dEdxMSC"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_dEdxMPCProf; legend.push_back("Any"); - //Histos[1] = SingleMu_dEdxMPCProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_dEdxMPCProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{h} PC", 0,0, 3.1,3.6); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_dEdxMPC"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_dEdxMSFProf; legend.push_back("Any"); - //Histos[1] = SingleMu_dEdxMSFProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_dEdxMSFProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{h} SF", 0,0, 3.1,3.6); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_dEdxMSF"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_dEdxMPFProf; legend.push_back("Any"); - //Histos[1] = SingleMu_dEdxMPFProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_dEdxMPFProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{h} PF", 0,0, 3.1,3.6); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_dEdxMPF"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_TOFProf; legend.push_back("Any"); - //Histos[1] = SingleMu_TOFProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_TOFProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "1/#beta_{TOF}", 0,0, 0.95,1.05); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_TOF"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_TOFDTProf; legend.push_back("Any"); - //Histos[1] = SingleMu_TOFDTProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_TOFDTProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "1/#beta_{TOF_DT}", 0,0, 0.95,1.05); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_TOFDT"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_TOFCSCProf; legend.push_back("Any"); - //Histos[1] = SingleMu_TOFCSCProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_TOFCSCProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "1/#beta_{TOF_CSC}", 0,0, 0.95,1.05); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_TOFCSC"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_VertexProf; legend.push_back("Any"); - //Histos[1] = SingleMu_VertexProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_VertexProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "Vertex time [ns]", 0,0, -2,2); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_Vertex"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_VertexDTProf; legend.push_back("Any"); - //Histos[1] = SingleMu_VertexDTProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_VertexDTProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "Vertex Time DT [ns]", 0,0, -2,2); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_VertexDT"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - Histos[0] = Any_VertexCSCProf; legend.push_back("Any"); - //Histos[1] = SingleMu_VertexCSCProf; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_VertexCSCProf; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "Vertex Time CSC [ns]", 0,0, -2,2); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_Profile_VertexCSC"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - //Histos[0] = Any_HdEdx; legend.push_back("Any"); - Histos[0] = Any_HdEdx; legend.push_back("I_{as} > 0.15"); - //Histos[1] = SingleMu_HdEdx; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_HdEdx; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "I_{h} ROT", 0,0, 0,0.05); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_ROT_dEdx"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - //Histos[0] = Any_HPt; legend.push_back("Any"); - Histos[0] = Any_HPt; legend.push_back("p_{T} > 60 GeV/c"); - //Histos[1] = SingleMu_HPt; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_HPt; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "Pt ROT", 0,0, 0.15,0.5); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_ROT_Pt"); - delete c1; - - c1 = new TCanvas("c1","c1,",1200,600); legend.clear(); - //Histos[0] = Any_HTOF; legend.push_back("Any"); - Histos[0] = Any_HTOF; legend.push_back("1/#beta > 1.1"); - //Histos[1] = SingleMu_HTOF; legend.push_back("SingleMu40"); - //Histos[2] = PFMet_HTOF; legend.push_back("PFMHT150"); - - DrawSuperposedHistos((TH1**)Histos, legend, "E1", "", "1/#beta_{TOF} ROT", 0,0, 0,0.2); - for(unsigned int i=0;iSetMarkerSize(0.5); ((TProfile*)Histos[i])->GetYaxis()->SetTitleOffset(0.9);} - //DrawLegend(Histos,legend,"","P"); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,"pictures/","Summary_ROT_TOF"); - delete c1; - - MakedEdxPlot(); -} - - diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/MakePlot.sh b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/MakePlot.sh deleted file mode 100755 index d498f59b296c2..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/MakePlot.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -root -l -b << EOF - TString makeshared(gSystem->GetMakeSharedLib()); - TString dummy = makeshared.ReplaceAll("-W ", ""); - TString dummy = makeshared.ReplaceAll("-Wshadow ", ""); - gSystem->SetMakeSharedLib(makeshared); - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable();; - gSystem->Load("libDataFormatsFWLite.so"); - gSystem->Load("libDataFormatsHepMCCandidate.so"); - gSystem->Load("libDataFormatsCommon.so"); - gSystem->Load("libDataFormatsTrackerRecHit2D.so"); - gSystem->Load("libAnalysisDataFormatsSUSYBSMObjects.so"); - .x MakePlot.C+ -EOF diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/StabilityCheck.C b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/StabilityCheck.C deleted file mode 100644 index c85b817119a92..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/StabilityCheck.C +++ /dev/null @@ -1,1005 +0,0 @@ - -#include -#include - -#include "TROOT.h" -#include "TFile.h" -#include "TDirectory.h" -#include "TChain.h" -#include "TObject.h" -#include "TCanvas.h" -#include "TMath.h" -#include "TLegend.h" -#include "TGraph.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include "TTree.h" -#include "TF1.h" -#include "TGraphAsymmErrors.h" -#include "TProfile.h" -#include "TPaveText.h" -#include "tdrstyle.C" - - -namespace reco { class Vertex; class Track; class GenParticle; class DeDxData; class MuonTimeExtra;} -namespace susybsm { class HSCParticle;} -namespace fwlite { class ChainEvent;} -namespace trigger { class TriggerEvent;} -namespace edm {class TriggerResults; class TriggerResultsByName; class InputTag;} - -#if !defined(__CINT__) && !defined(__MAKECINT__) -#include "DataFormats/FWLite/interface/Handle.h" -#include "DataFormats/FWLite/interface/Event.h" -#include "DataFormats/FWLite/interface/ChainEvent.h" - -#include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" -#include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h" -#include "FWCore/Common/interface/TriggerResultsByName.h" - -#include "DataFormats/MuonReco/interface/MuonTimeExtraMap.h" -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCPIsolation.h" - -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" -#include "DataFormats/Common/interface/TriggerResults.h" - -using namespace fwlite; -using namespace reco; -using namespace susybsm; -using namespace std; -using namespace edm; -using namespace trigger; - - -#include "../../ICHEP_Analysis/Analysis_PlotFunction.h" -#include "../../ICHEP_Analysis/Analysis_Samples.h" -#include "../../ICHEP_Analysis/Analysis_Global.h" - - -#endif - - -bool PassPreselection(const susybsm::HSCParticle& hscp, const reco::DeDxData& dedxSObj, const reco::DeDxData& dedxMObj, const reco::MuonTimeExtra* tof, const reco::MuonTimeExtra* dttof, const reco::MuonTimeExtra* csctof, const fwlite::ChainEvent& ev); -bool IncreasedTreshold(const trigger::TriggerEvent& trEv, const edm::InputTag& InputPath, double NewThreshold, int NObjectAboveThreshold, bool averageThreshold=false); - - -bool PassPreselection(const susybsm::HSCParticle& hscp, const reco::DeDxData& dedxSObj, const reco::DeDxData& dedxMObj, const reco::MuonTimeExtra* tof, const reco::MuonTimeExtra* dttof, const reco::MuonTimeExtra* csctof, const fwlite::ChainEvent& ev) -{ - if(TypeMode==1 && !(hscp.type() == HSCParticleType::trackerMuon || hscp.type() == HSCParticleType::globalMuon))return false; - if(TypeMode==2 && hscp.type() != HSCParticleType::globalMuon)return false; - reco::TrackRef track = hscp.trackRef(); if(track.isNull())return false; - - if(fabs(track->eta())>GlobalMaxEta) return false; - if(track->found()hitPattern().numberOfValidPixelHits()<2)return false; - if(dedxSObj.numberOfMeasurements()nDof()nDof()nDof()qualityMask()chi2()/track->ndof()>GlobalMaxChi2 )return false; - if(track->pt()inverseBeta()inverseBetaErr()>GlobalMaxTOFErr)return false; - - fwlite::Handle< std::vector > vertexCollHandle; - vertexCollHandle.getByLabel(ev,"offlinePrimaryVertices"); - if(!vertexCollHandle.isValid()){printf("Vertex Collection NotFound\n");return false;} - const std::vector& vertexColl = *vertexCollHandle; - if(vertexColl.size()<1){printf("NO VERTEX\n"); return false;} - - double dz = track->dz (vertexColl[0].position()); - double dxy = track->dxy(vertexColl[0].position()); - for(unsigned int i=1;idz (vertexColl[i].position())) < fabs(dz) ){ - dz = track->dz (vertexColl[i].position()); - dxy = track->dxy(vertexColl[i].position()); - } - } - double v3d = sqrt(dz*dz+dxy*dxy); - if(v3d>GlobalMaxV3D )return false; - - fwlite::Handle IsolationH; - IsolationH.getByLabel(ev, "HSCPIsolation03"); - if(!IsolationH.isValid()){printf("Invalid IsolationH\n");return false;} - const ValueMap& IsolationMap = *IsolationH.product(); - - HSCPIsolation hscpIso = IsolationMap.get((size_t)track.key()); - if(hscpIso.Get_TK_SumEt()>GlobalMaxTIsol)return false; - - double EoP = (hscpIso.Get_ECAL_Energy() + hscpIso.Get_HCAL_Energy())/track->p(); - if(EoP>GlobalMaxEIsol)return false; - - if((track->ptError()/track->pt())>GlobalMaxPterr)return false; - if(std::max(0.0,track->pt() - track->ptError()) hTriggerResults; - hTriggerResults.getByLabel(ev, "TriggerResults", "", "MergeHLT"); - if(!hTriggerResults.isValid()) return false; - - edm::TriggerResultsByName tr = ev.triggerResultsByName(*hTriggerResults); - if(!tr.isValid())return false; - - bool Accept = false; - if(TriggerName=="Any"){ - Accept = true; - }else{ - Accept = tr.accept(tr.triggerIndex(TriggerName.c_str())); - } - - return Accept; -} - - - - -void StabilityCheck(string MODE="COMPILE") -{ - if(MODE=="COMPILE") return; - - Event_Weight = 1; - MaxEntry = -1; - - - system("mkdir pictures"); - - setTDRStyle(); - gStyle->SetPadTopMargin (0.06); - gStyle->SetPadBottomMargin(0.15); - gStyle->SetPadRightMargin (0.03); - gStyle->SetPadLeftMargin (0.07); - gStyle->SetTitleSize(0.04, "XYZ"); - gStyle->SetTitleXOffset(1.1); - gStyle->SetTitleYOffset(1.35); - gStyle->SetPalette(1); - gStyle->SetNdivisions(505,"X"); - TH1::AddDirectory(kTRUE); - - std::map RunBinIndex; - unsigned int NextIndex=0; - - vector DataFileName; - GetInputFiles(DataFileName, "Data"); -// DataFileName.push_back(" /storage/data/cms/users/quertenmont/HSCP/CMSSW_3_8_6/10_01_11/Data_135821_141887.root"); -// DataFileName.push_back(" /storage/data/cms/users/quertenmont/HSCP/CMSSW_3_8_6/10_01_11/Data_141888_144114.root"); -// DataFileName.push_back(" /storage/data/cms/users/quertenmont/HSCP/CMSSW_3_8_6/10_01_11/Data_146240_148000.root"); -// DataFileName.push_back(" /storage/data/cms/users/quertenmont/HSCP/CMSSW_3_8_6/10_01_11/Data_148001_149711.root"); - - - std::vector triggers; - triggers.push_back("Any"); -// triggers.push_back("HscpPathMu"); -// triggers.push_back("HscpPathMet"); - - triggers.push_back("HscpPathSingleMu"); -// triggers.push_back("HscpPathDoubleMu"); - triggers.push_back("HscpPathPFMet"); -// triggers.push_back("HscpPathCaloMet"); - - -/* triggers.push_back("HLT_MET100"); - triggers.push_back("HLT_Jet140U"); - triggers.push_back("HLT_DiJetAve140U"); - triggers.push_back("HLT_QuadJet25U"); - triggers.push_back("HLT_QuadJet30U"); - triggers.push_back("HLT_QuadJet35U"); - triggers.push_back("HLT_Mu15"); - triggers.push_back("HLT_DoubleMu3"); -*/ - - TProfile** NVertProf = new TProfile*[triggers.size()]; - TProfile** dEdxProf = new TProfile*[triggers.size()]; - TProfile** dEdxMProf = new TProfile*[triggers.size()]; - TProfile** dEdxMSProf = new TProfile*[triggers.size()]; - TProfile** dEdxMPProf = new TProfile*[triggers.size()]; - TProfile** dEdxMSCProf = new TProfile*[triggers.size()]; - TProfile** dEdxMPCProf = new TProfile*[triggers.size()]; - TProfile** dEdxMSFProf = new TProfile*[triggers.size()]; - TProfile** dEdxMPFProf = new TProfile*[triggers.size()]; - TProfile** PtProf = new TProfile*[triggers.size()]; - TProfile** TOFProf = new TProfile*[triggers.size()]; - TProfile** TOFDTProf = new TProfile*[triggers.size()]; - TProfile** TOFCSCProf = new TProfile*[triggers.size()]; - TProfile** TOFOverMinProf = new TProfile*[triggers.size()]; - TProfile** TOFDTOverMinProf = new TProfile*[triggers.size()]; - TProfile** TOFCSCOverMinProf = new TProfile*[triggers.size()]; - TProfile** VertexProf = new TProfile*[triggers.size()]; - TProfile** VertexDTProf = new TProfile*[triggers.size()]; - TProfile** VertexCSCProf = new TProfile*[triggers.size()]; - TH1D** Count = new TH1D* [triggers.size()]; - TH1D** CountMu = new TH1D* [triggers.size()]; - TH1D** HdEdx = new TH1D* [triggers.size()]; - TH1D** HPt = new TH1D* [triggers.size()]; - TH1D** HTOF = new TH1D* [triggers.size()]; - - - - system("mkdir pictures/"); - TFile* OutputHisto = new TFile((string("pictures/") + "/Histos.root").c_str(),"RECREATE"); - for(unsigned int i=0;iSumw2(); - CountMu [i] = new TH1D( (triggers[i] + "CountMu" ).c_str(), "CountMu" , 10000 ,0, 10000); CountMu[i]->Sumw2(); - HdEdx [i] = new TH1D( (triggers[i] + "HdEdx" ).c_str(), "HdEdx" , 10000 ,0, 10000); HdEdx [i]->Sumw2(); - HPt [i] = new TH1D( (triggers[i] + "HPt" ).c_str(), "HPt" , 10000 ,0, 10000); HPt [i]->Sumw2(); - HTOF [i] = new TH1D( (triggers[i] + "HTOF" ).c_str(), "HTOF" , 10000 ,0, 10000); HTOF [i]->Sumw2(); - } - - TypeMode = 0; - - fwlite::ChainEvent tree(DataFileName); - printf("Progressing Bar :0%% 20%% 40%% 60%% 80%% 100%%\n"); - printf("Looping on Tree :"); - int TreeStep = tree.size()/50;if(TreeStep==0)TreeStep=1; - for(Long64_t e=0;e10)break; - tree.to(e); - if(e%TreeStep==0){printf(".");fflush(stdout);} -// if(!PassTrigger(tree))continue; - - if(RunBinIndex.find(tree.eventAuxiliary().run()) == RunBinIndex.end()){ - RunBinIndex[tree.eventAuxiliary().run()] = NextIndex; - for(unsigned int i=0;iGetXaxis()->FindBin(NextIndex); - char Label[2048]; sprintf(Label,"%6i",tree.eventAuxiliary().run()); - HdEdx[i]->GetXaxis()->SetBinLabel(Bin, Label); - HPt[i]->GetXaxis()->SetBinLabel(Bin, Label); - HTOF[i]->GetXaxis()->SetBinLabel(Bin, Label); - Count[i]->GetXaxis()->SetBinLabel(Bin, Label); - NVertProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - dEdxProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - dEdxMProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - dEdxMSProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - dEdxMPProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - dEdxMSCProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - dEdxMPCProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - dEdxMSFProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - dEdxMPFProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - PtProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - TOFProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - TOFDTProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - TOFCSCProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - TOFOverMinProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - TOFDTOverMinProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - TOFCSCOverMinProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - VertexProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - VertexDTProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - VertexCSCProf[i]->GetXaxis()->SetBinLabel(Bin, Label); - } - NextIndex++; - } - unsigned int CurrentRunIndex = RunBinIndex[tree.eventAuxiliary().run()]; - - fwlite::Handle hscpCollHandle; - hscpCollHandle.getByLabel(tree,"HSCParticleProducer"); - if(!hscpCollHandle.isValid()){printf("HSCP Collection NotFound\n");continue;} - susybsm::HSCParticleCollection hscpColl = *hscpCollHandle; - - fwlite::Handle dEdxSCollH; - dEdxSCollH.getByLabel(tree, dEdxS_Label.c_str()); - if(!dEdxSCollH.isValid()){printf("Invalid dEdx Selection collection\n");continue;} - - fwlite::Handle dEdxMCollH; - dEdxMCollH.getByLabel(tree, dEdxM_Label.c_str()); - if(!dEdxMCollH.isValid()){printf("Invalid dEdx Mass collection\n");continue;} - - fwlite::Handle dEdxMSCollH; - dEdxMSCollH.getByLabel(tree, "dedxNPHarm2"); - if(!dEdxMSCollH.isValid()){printf("Invalid dEdx Mass collection\n");continue;} - - fwlite::Handle dEdxMPCollH; - dEdxMPCollH.getByLabel(tree, "dedxNSHarm2"); - if(!dEdxMPCollH.isValid()){printf("Invalid dEdx Mass collection\n");continue;} - - - fwlite::Handle TOFCollH; - TOFCollH.getByLabel(tree, "muontiming",TOF_Label.c_str()); - if(!TOFCollH.isValid()){printf("Invalid TOF collection\n");return;} - - - fwlite::Handle TOFDTCollH; - TOFDTCollH.getByLabel(tree, "muontiming",TOFdt_Label.c_str()); - if(!TOFDTCollH.isValid()){printf("Invalid DT TOF collection\n");continue;} - - fwlite::Handle TOFCSCCollH; - TOFCSCCollH.getByLabel(tree, "muontiming",TOFcsc_Label.c_str()); - if(!TOFCSCCollH.isValid()){printf("Invalid CSCTOF collection\n");continue;} - - fwlite::Handle< std::vector > vertexCollHandle; - vertexCollHandle.getByLabel(tree,"offlinePrimaryVertices"); - if(!vertexCollHandle.isValid()){printf("Vertex Collection NotFound\n");continue;} - const std::vector& vertexColl = *vertexCollHandle; - - - for(unsigned int c=0;cget(track.key()); - const DeDxData& dedxMObj = dEdxMCollH->get(track.key()); - const DeDxData& dedxMSObj = dEdxMSCollH->get(track.key()); - const DeDxData& dedxMPObj = dEdxMPCollH->get(track.key()); - const reco::MuonTimeExtra* tof = NULL; - const reco::MuonTimeExtra* dttof = NULL; - const reco::MuonTimeExtra* csctof = NULL; - if(!hscp.muonRef().isNull()){ tof = &TOFCollH->get(hscp.muonRef().key()); dttof = &TOFDTCollH->get(hscp.muonRef().key()); csctof = &TOFCSCCollH->get(hscp.muonRef().key());} - - - if(!PassPreselection(hscp, dedxSObj, dedxMObj, tof, dttof, csctof, tree))continue; - - for(unsigned int i=0;iFill(CurrentRunIndex, vertexColl.size()); - - if(tof && tof->nDof()>=GlobalMinNDOF && (dttof->nDof()>=GlobalMinNDOFDT || csctof->nDof()>=GlobalMinNDOFCSC) && tof->inverseBetaErr()<=GlobalMaxTOFErr){ - if(tof->inverseBeta()>=GlobalMinTOF)CountMu[i]->Fill(CurrentRunIndex); - if(tof->inverseBeta()>=GlobalMinTOF)TOFOverMinProf[i]->Fill(CurrentRunIndex, tof->inverseBeta()); - if(dttof->inverseBeta()>=GlobalMinTOF)TOFDTOverMinProf[i]->Fill(CurrentRunIndex, dttof->inverseBeta()); - if(csctof->inverseBeta()>=GlobalMinTOF)TOFCSCOverMinProf[i]->Fill(CurrentRunIndex, csctof->inverseBeta()); - TOFProf[i]->Fill(CurrentRunIndex, tof->inverseBeta()); - if(dttof->nDof()>=GlobalMinNDOFDT) TOFDTProf[i]->Fill(CurrentRunIndex, dttof->inverseBeta()); - if(csctof->nDof()>=GlobalMinNDOFCSC) TOFCSCProf[i]->Fill(CurrentRunIndex, csctof->inverseBeta()); - if(tof->inverseBeta() > 1.1 ) HTOF[i]->Fill(CurrentRunIndex); - VertexProf[i]->Fill(CurrentRunIndex, tof->timeAtIpInOut()); - if(dttof->nDof()>=GlobalMinNDOFDT) VertexDTProf[i]->Fill(CurrentRunIndex, dttof->timeAtIpInOut()); - if(csctof->nDof()>=GlobalMinNDOFCSC) VertexCSCProf[i]->Fill(CurrentRunIndex, csctof->timeAtIpInOut()); - } - - if(hscp.trackRef()->pt() >60 ) HPt[i]->Fill(CurrentRunIndex); - if(dedxSObj.dEdx() > 0.15 ) HdEdx[i]->Fill(CurrentRunIndex); - Count[i]->Fill(CurrentRunIndex); - - dEdxProf[i]->Fill(CurrentRunIndex, dedxSObj.dEdx()); - dEdxMProf[i]->Fill(CurrentRunIndex, dedxMObj.dEdx()); - dEdxMSProf[i]->Fill(CurrentRunIndex, dedxMSObj.dEdx()); - dEdxMPProf[i]->Fill(CurrentRunIndex, dedxMPObj.dEdx()); - if(fabs(track->eta())<0.5){ - dEdxMSCProf[i]->Fill(CurrentRunIndex, dedxMSObj.dEdx()); - dEdxMPCProf[i]->Fill(CurrentRunIndex, dedxMPObj.dEdx()); - } - if(fabs(track->eta())>1.5){ - dEdxMSFProf[i]->Fill(CurrentRunIndex, dedxMSObj.dEdx()); - dEdxMPFProf[i]->Fill(CurrentRunIndex, dedxMPObj.dEdx()); - } - PtProf[i]->Fill(CurrentRunIndex, hscp.trackRef()->pt()); - } - - } - }printf("\n"); - - TCanvas* c1; - TLegend* leg; - - for(unsigned int i=0;iDivide(Count[i]); - HdEdx[i]->LabelsDeflate("X"); - HdEdx[i]->LabelsOption("av","X"); - HdEdx[i]->GetXaxis()->SetNdivisions(505); - HdEdx[i]->SetTitle(""); - HdEdx[i]->SetStats(kFALSE); - HdEdx[i]->GetXaxis()->SetTitle(""); - HdEdx[i]->GetYaxis()->SetTitle("Ratio over Threshold"); - HdEdx[i]->GetYaxis()->SetTitleOffset(0.9); - HdEdx[i]->GetXaxis()->SetLabelSize(0.04); - HdEdx[i]->SetLineColor(Color[0]); - HdEdx[i]->SetFillColor(Color[0]); - HdEdx[i]->SetMarkerSize(0.4); - HdEdx[i]->SetMarkerStyle(Marker[0]); - HdEdx[i]->SetMarkerColor(Color[0]); - HdEdx[i]->Draw("E1"); - - leg = new TLegend(0.55,0.86,0.79,0.93,NULL,"brNDC"); - leg->SetBorderSize(0); - leg->SetFillColor(0); - leg->AddEntry(HdEdx[i],"I_{as} > 0.15","P"); - leg->Draw(); - - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"ROT_Is"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - HPt[i]->Divide(Count[i]); - HPt[i]->LabelsDeflate("X"); - HPt[i]->LabelsOption("av","X"); - HPt[i]->GetXaxis()->SetNdivisions(505); - HPt[i]->SetTitle(""); - HPt[i]->SetStats(kFALSE); - HPt[i]->GetXaxis()->SetTitle(""); - HPt[i]->GetYaxis()->SetTitle("Ratio over Threshold"); - HPt[i]->GetYaxis()->SetTitleOffset(0.9); - HPt[i]->GetXaxis()->SetLabelSize(0.04); - HPt[i]->SetLineColor(Color[0]); - HPt[i]->SetFillColor(Color[0]); - HPt[i]->SetMarkerSize(0.4); - HPt[i]->SetMarkerStyle(Marker[0]); - HPt[i]->SetMarkerColor(Color[0]); - HPt[i]->Draw("E1"); - - leg = new TLegend(0.55,0.86,0.79,0.93,NULL,"brNDC"); - leg->SetBorderSize(0); - leg->SetFillColor(0); - leg->AddEntry(HPt[i],"p_{T} > 60 GeV/c","P"); - leg->Draw(); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"ROT_Pt"); - delete c1; - - - - c1 = new TCanvas("c1","c1",600,600); - HTOF[i]->Divide(CountMu[i]); - HTOF[i]->LabelsDeflate("X"); - HTOF[i]->LabelsOption("av","X"); - HTOF[i]->GetXaxis()->SetNdivisions(505); - HTOF[i]->SetTitle(""); - HTOF[i]->SetStats(kFALSE); - HTOF[i]->GetXaxis()->SetTitle(""); - HTOF[i]->GetYaxis()->SetTitle("Ratio over Threshold"); - HTOF[i]->GetYaxis()->SetTitleOffset(0.9); - HTOF[i]->GetXaxis()->SetLabelSize(0.04); - HTOF[i]->SetLineColor(Color[0]); - HTOF[i]->SetFillColor(Color[0]); - HTOF[i]->SetMarkerSize(0.4); - HTOF[i]->SetMarkerStyle(Marker[0]); - HTOF[i]->SetMarkerColor(Color[0]); - HTOF[i]->Draw("E1"); - - leg = new TLegend(0.55,0.86,0.79,0.93,NULL,"brNDC"); - leg->SetBorderSize(0); - leg->SetFillColor(0); - leg->AddEntry(HTOF[i],"1/#beta > 1.1","P"); - leg->Draw(); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"ROT_TOF"); - delete c1; - - - c1 = new TCanvas("c1","c1",600,600); - c1->SetLogy(true); - Count[i]->LabelsDeflate("X"); - Count[i]->LabelsOption("av","X"); - Count[i]->GetXaxis()->SetNdivisions(505); - Count[i]->SetTitle(""); - Count[i]->SetStats(kFALSE); - Count[i]->GetXaxis()->SetTitle(""); - Count[i]->GetYaxis()->SetTitle("#Tracks"); - Count[i]->GetYaxis()->SetTitleOffset(0.9); - Count[i]->GetXaxis()->SetLabelSize(0.04); - Count[i]->SetLineColor(Color[0]); - Count[i]->SetFillColor(Color[0]); - Count[i]->SetMarkerSize(0.4); - Count[i]->SetMarkerStyle(Marker[0]); - Count[i]->SetMarkerColor(Color[0]); - Count[i]->Draw("E1"); - - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Count"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - NVertProf[i]->LabelsDeflate("X"); - NVertProf[i]->LabelsOption("av","X"); - NVertProf[i]->GetXaxis()->SetNdivisions(505); - NVertProf[i]->SetTitle(""); - NVertProf[i]->SetStats(kFALSE); - NVertProf[i]->GetXaxis()->SetTitle(""); - NVertProf[i]->GetYaxis()->SetTitle("#RecoVertex"); - NVertProf[i]->GetYaxis()->SetTitleOffset(0.9); - NVertProf[i]->GetXaxis()->SetLabelSize(0.04); - NVertProf[i]->SetLineColor(Color[0]); - NVertProf[i]->SetFillColor(Color[0]); - NVertProf[i]->SetMarkerSize(0.4); - NVertProf[i]->SetMarkerStyle(Marker[0]); - NVertProf[i]->SetMarkerColor(Color[0]); - NVertProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_NVert"); - delete c1; - - - c1 = new TCanvas("c1","c1",600,600); - dEdxProf[i]->LabelsDeflate("X"); - dEdxProf[i]->LabelsOption("av","X"); - dEdxProf[i]->GetXaxis()->SetNdivisions(505); - dEdxProf[i]->SetTitle(""); - dEdxProf[i]->SetStats(kFALSE); - dEdxProf[i]->GetXaxis()->SetTitle(""); - dEdxProf[i]->GetYaxis()->SetTitle("dE/dx discriminator"); - dEdxProf[i]->GetYaxis()->SetTitleOffset(0.9); - dEdxProf[i]->GetXaxis()->SetLabelSize(0.04); - dEdxProf[i]->SetLineColor(Color[0]); - dEdxProf[i]->SetFillColor(Color[0]); - dEdxProf[i]->SetMarkerSize(0.4); - dEdxProf[i]->SetMarkerStyle(Marker[0]); - dEdxProf[i]->SetMarkerColor(Color[0]); - dEdxProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_Is"); - delete c1; - - - - c1 = new TCanvas("c1","c1",600,600); - dEdxMProf[i]->LabelsDeflate("X"); - dEdxMProf[i]->LabelsOption("av","X"); - dEdxMProf[i]->GetXaxis()->SetNdivisions(505); - dEdxMProf[i]->SetTitle(""); - dEdxMProf[i]->SetStats(kFALSE); - dEdxMProf[i]->GetXaxis()->SetTitle(""); - dEdxMProf[i]->GetYaxis()->SetTitle("dE/dx estimator"); - dEdxMProf[i]->GetYaxis()->SetTitleOffset(0.9); - dEdxMProf[i]->GetXaxis()->SetLabelSize(0.04); - dEdxMProf[i]->SetLineColor(Color[0]); - dEdxMProf[i]->SetFillColor(Color[0]); - dEdxMProf[i]->SetMarkerSize(0.4); - dEdxMProf[i]->SetMarkerStyle(Marker[0]); - dEdxMProf[i]->SetMarkerColor(Color[0]); - dEdxMProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_Im"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - dEdxMSProf[i]->LabelsDeflate("X"); - dEdxMSProf[i]->LabelsOption("av","X"); - dEdxMSProf[i]->GetXaxis()->SetNdivisions(505); - dEdxMSProf[i]->SetTitle(""); - dEdxMSProf[i]->SetStats(kFALSE); - dEdxMSProf[i]->GetXaxis()->SetTitle(""); - dEdxMSProf[i]->GetYaxis()->SetTitle("dE/dx estimator"); - dEdxMSProf[i]->GetYaxis()->SetTitleOffset(0.9); - dEdxMSProf[i]->GetXaxis()->SetLabelSize(0.04); - dEdxMSProf[i]->SetLineColor(Color[0]); - dEdxMSProf[i]->SetFillColor(Color[0]); - dEdxMSProf[i]->SetMarkerSize(0.4); - dEdxMSProf[i]->SetMarkerStyle(Marker[0]); - dEdxMSProf[i]->SetMarkerColor(Color[0]); - dEdxMSProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_ImS"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - dEdxMPProf[i]->LabelsDeflate("X"); - dEdxMPProf[i]->LabelsOption("av","X"); - dEdxMPProf[i]->GetXaxis()->SetNdivisions(505); - dEdxMPProf[i]->SetTitle(""); - dEdxMPProf[i]->SetStats(kFALSE); - dEdxMPProf[i]->GetXaxis()->SetTitle(""); - dEdxMPProf[i]->GetYaxis()->SetTitle("dE/dx estimator"); - dEdxMPProf[i]->GetYaxis()->SetTitleOffset(0.9); - dEdxMPProf[i]->GetXaxis()->SetLabelSize(0.04); - dEdxMPProf[i]->SetLineColor(Color[0]); - dEdxMPProf[i]->SetFillColor(Color[0]); - dEdxMPProf[i]->SetMarkerSize(0.4); - dEdxMPProf[i]->SetMarkerStyle(Marker[0]); - dEdxMPProf[i]->SetMarkerColor(Color[0]); - dEdxMPProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_ImP"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - dEdxMSCProf[i]->LabelsDeflate("X"); - dEdxMSCProf[i]->LabelsOption("av","X"); - dEdxMSCProf[i]->GetXaxis()->SetNdivisions(505); - dEdxMSCProf[i]->SetTitle(""); - dEdxMSCProf[i]->SetStats(kFALSE); - dEdxMSCProf[i]->GetXaxis()->SetTitle(""); - dEdxMSCProf[i]->GetYaxis()->SetTitle("dE/dx estimator"); - dEdxMSCProf[i]->GetYaxis()->SetTitleOffset(0.9); - dEdxMSCProf[i]->GetXaxis()->SetLabelSize(0.04); - dEdxMSCProf[i]->SetLineColor(Color[0]); - dEdxMSCProf[i]->SetFillColor(Color[0]); - dEdxMSCProf[i]->SetMarkerSize(0.4); - dEdxMSCProf[i]->SetMarkerStyle(Marker[0]); - dEdxMSCProf[i]->SetMarkerColor(Color[0]); - dEdxMSCProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_ImSC"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - dEdxMPCProf[i]->LabelsDeflate("X"); - dEdxMPCProf[i]->LabelsOption("av","X"); - dEdxMPCProf[i]->GetXaxis()->SetNdivisions(505); - dEdxMPCProf[i]->SetTitle(""); - dEdxMPCProf[i]->SetStats(kFALSE); - dEdxMPCProf[i]->GetXaxis()->SetTitle(""); - dEdxMPCProf[i]->GetYaxis()->SetTitle("dE/dx estimator"); - dEdxMPCProf[i]->GetYaxis()->SetTitleOffset(0.9); - dEdxMPCProf[i]->GetXaxis()->SetLabelSize(0.04); - dEdxMPCProf[i]->SetLineColor(Color[0]); - dEdxMPCProf[i]->SetFillColor(Color[0]); - dEdxMPCProf[i]->SetMarkerSize(0.4); - dEdxMPCProf[i]->SetMarkerStyle(Marker[0]); - dEdxMPCProf[i]->SetMarkerColor(Color[0]); - dEdxMPCProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_ImPC"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - dEdxMSFProf[i]->LabelsDeflate("X"); - dEdxMSFProf[i]->LabelsOption("av","X"); - dEdxMSFProf[i]->GetXaxis()->SetNdivisions(505); - dEdxMSFProf[i]->SetTitle(""); - dEdxMSFProf[i]->SetStats(kFALSE); - dEdxMSFProf[i]->GetXaxis()->SetTitle(""); - dEdxMSFProf[i]->GetYaxis()->SetTitle("dE/dx estimator"); - dEdxMSFProf[i]->GetYaxis()->SetTitleOffset(0.9); - dEdxMSFProf[i]->GetXaxis()->SetLabelSize(0.04); - dEdxMSFProf[i]->SetLineColor(Color[0]); - dEdxMSFProf[i]->SetFillColor(Color[0]); - dEdxMSFProf[i]->SetMarkerSize(0.4); - dEdxMSFProf[i]->SetMarkerStyle(Marker[0]); - dEdxMSFProf[i]->SetMarkerColor(Color[0]); - dEdxMSFProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_ImSF"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - dEdxMPFProf[i]->LabelsDeflate("X"); - dEdxMPFProf[i]->LabelsOption("av","X"); - dEdxMPFProf[i]->GetXaxis()->SetNdivisions(505); - dEdxMPFProf[i]->SetTitle(""); - dEdxMPFProf[i]->SetStats(kFALSE); - dEdxMPFProf[i]->GetXaxis()->SetTitle(""); - dEdxMPFProf[i]->GetYaxis()->SetTitle("dE/dx estimator"); - dEdxMPFProf[i]->GetYaxis()->SetTitleOffset(0.9); - dEdxMPFProf[i]->GetXaxis()->SetLabelSize(0.04); - dEdxMPFProf[i]->SetLineColor(Color[0]); - dEdxMPFProf[i]->SetFillColor(Color[0]); - dEdxMPFProf[i]->SetMarkerSize(0.4); - dEdxMPFProf[i]->SetMarkerStyle(Marker[0]); - dEdxMPFProf[i]->SetMarkerColor(Color[0]); - dEdxMPFProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_ImPF"); - delete c1; - - - - c1 = new TCanvas("c1","c1",600,600); - PtProf[i]->LabelsDeflate("X"); - PtProf[i]->LabelsOption("av","X"); - PtProf[i]->GetXaxis()->SetNdivisions(505); - PtProf[i]->SetTitle(""); - PtProf[i]->SetStats(kFALSE); - PtProf[i]->GetXaxis()->SetTitle(""); - PtProf[i]->GetYaxis()->SetTitle("p_{T} (GeV/c)"); - PtProf[i]->GetYaxis()->SetTitleOffset(0.9); - PtProf[i]->GetXaxis()->SetLabelSize(0.04); - PtProf[i]->SetLineColor(Color[0]); - PtProf[i]->SetFillColor(Color[0]); - PtProf[i]->SetMarkerSize(0.4); - PtProf[i]->SetMarkerStyle(Marker[0]); - PtProf[i]->SetMarkerColor(Color[0]); - PtProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_Pt"); - delete c1; - - - c1 = new TCanvas("c1","c1",600,600); - TOFProf[i]->LabelsDeflate("X"); - TOFProf[i]->LabelsOption("av","X"); - TOFProf[i]->GetXaxis()->SetNdivisions(505); - TOFProf[i]->SetTitle(""); - TOFProf[i]->SetStats(kFALSE); - TOFProf[i]->GetXaxis()->SetTitle(""); - TOFProf[i]->GetYaxis()->SetTitle("1/#beta"); - TOFProf[i]->GetYaxis()->SetTitleOffset(0.9); - TOFProf[i]->GetXaxis()->SetLabelSize(0.04); - TOFProf[i]->SetLineColor(Color[0]); - TOFProf[i]->SetFillColor(Color[0]); - TOFProf[i]->SetMarkerSize(0.4); - TOFProf[i]->SetMarkerStyle(Marker[0]); - TOFProf[i]->SetMarkerColor(Color[0]); - TOFProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_TOF"); - delete c1; - - - c1 = new TCanvas("c1","c1",600,600); - TOFDTProf[i]->LabelsDeflate("X"); - TOFDTProf[i]->LabelsOption("av","X"); - TOFDTProf[i]->GetXaxis()->SetNdivisions(505); - TOFDTProf[i]->SetTitle(""); - TOFDTProf[i]->SetStats(kFALSE); - TOFDTProf[i]->GetXaxis()->SetTitle(""); - TOFDTProf[i]->GetYaxis()->SetTitle("1/#beta"); - TOFDTProf[i]->GetYaxis()->SetTitleOffset(0.9); - TOFDTProf[i]->GetXaxis()->SetLabelSize(0.04); - TOFDTProf[i]->SetLineColor(Color[0]); - TOFDTProf[i]->SetFillColor(Color[0]); - TOFDTProf[i]->SetMarkerSize(0.4); - TOFDTProf[i]->SetMarkerStyle(Marker[0]); - TOFDTProf[i]->SetMarkerColor(Color[0]); - TOFDTProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_TOFDT"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - TOFCSCProf[i]->LabelsDeflate("X"); - TOFCSCProf[i]->LabelsOption("av","X"); - TOFCSCProf[i]->GetXaxis()->SetNdivisions(505); - TOFCSCProf[i]->SetTitle(""); - TOFCSCProf[i]->SetStats(kFALSE); - TOFCSCProf[i]->GetXaxis()->SetTitle(""); - TOFCSCProf[i]->GetYaxis()->SetTitle("1/#beta"); - TOFCSCProf[i]->GetYaxis()->SetTitleOffset(0.9); - TOFCSCProf[i]->GetXaxis()->SetLabelSize(0.04); - TOFCSCProf[i]->SetLineColor(Color[0]); - TOFCSCProf[i]->SetFillColor(Color[0]); - TOFCSCProf[i]->SetMarkerSize(0.4); - TOFCSCProf[i]->SetMarkerStyle(Marker[0]); - TOFCSCProf[i]->SetMarkerColor(Color[0]); - TOFCSCProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_TOFCSC"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - TOFOverMinProf[i]->LabelsDeflate("X"); - TOFOverMinProf[i]->LabelsOption("av","X"); - TOFOverMinProf[i]->GetXaxis()->SetNdivisions(505); - TOFOverMinProf[i]->SetTitle(""); - TOFOverMinProf[i]->SetStats(kFALSE); - TOFOverMinProf[i]->GetXaxis()->SetTitle(""); - TOFOverMinProf[i]->GetYaxis()->SetTitle("1/#beta"); - TOFOverMinProf[i]->GetYaxis()->SetTitleOffset(0.9); - TOFOverMinProf[i]->GetXaxis()->SetLabelSize(0.04); - TOFOverMinProf[i]->SetLineColor(Color[0]); - TOFOverMinProf[i]->SetFillColor(Color[0]); - TOFOverMinProf[i]->SetMarkerSize(0.4); - TOFOverMinProf[i]->SetMarkerStyle(Marker[0]); - TOFOverMinProf[i]->SetMarkerColor(Color[0]); - TOFOverMinProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_TOFOverMin"); - delete c1; - - - c1 = new TCanvas("c1","c1",600,600); - TOFDTOverMinProf[i]->LabelsDeflate("X"); - TOFDTOverMinProf[i]->LabelsOption("av","X"); - TOFDTOverMinProf[i]->GetXaxis()->SetNdivisions(505); - TOFDTOverMinProf[i]->SetTitle(""); - TOFDTOverMinProf[i]->SetStats(kFALSE); - TOFDTOverMinProf[i]->GetXaxis()->SetTitle(""); - TOFDTOverMinProf[i]->GetYaxis()->SetTitle("1/#beta"); - TOFDTOverMinProf[i]->GetYaxis()->SetTitleOffset(0.9); - TOFDTOverMinProf[i]->GetXaxis()->SetLabelSize(0.04); - TOFDTOverMinProf[i]->SetLineColor(Color[0]); - TOFDTOverMinProf[i]->SetFillColor(Color[0]); - TOFDTOverMinProf[i]->SetMarkerSize(0.4); - TOFDTOverMinProf[i]->SetMarkerStyle(Marker[0]); - TOFDTOverMinProf[i]->SetMarkerColor(Color[0]); - TOFDTOverMinProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_TOFDTOverMin"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - TOFCSCOverMinProf[i]->LabelsDeflate("X"); - TOFCSCOverMinProf[i]->LabelsOption("av","X"); - TOFCSCOverMinProf[i]->GetXaxis()->SetNdivisions(505); - TOFCSCOverMinProf[i]->SetTitle(""); - TOFCSCOverMinProf[i]->SetStats(kFALSE); - TOFCSCOverMinProf[i]->GetXaxis()->SetTitle(""); - TOFCSCOverMinProf[i]->GetYaxis()->SetTitle("1/#beta"); - TOFCSCOverMinProf[i]->GetYaxis()->SetTitleOffset(0.9); - TOFCSCOverMinProf[i]->GetXaxis()->SetLabelSize(0.04); - TOFCSCOverMinProf[i]->SetLineColor(Color[0]); - TOFCSCOverMinProf[i]->SetFillColor(Color[0]); - TOFCSCOverMinProf[i]->SetMarkerSize(0.4); - TOFCSCOverMinProf[i]->SetMarkerStyle(Marker[0]); - TOFCSCOverMinProf[i]->SetMarkerColor(Color[0]); - TOFCSCOverMinProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_TOFCSCOverMin"); - delete c1; - - - c1 = new TCanvas("c1","c1",600,600); - VertexProf[i]->LabelsDeflate("X"); - VertexProf[i]->LabelsOption("av","X"); - VertexProf[i]->GetXaxis()->SetNdivisions(505); - VertexProf[i]->SetTitle(""); - VertexProf[i]->SetStats(kFALSE); - VertexProf[i]->GetXaxis()->SetTitle(""); - VertexProf[i]->GetYaxis()->SetTitle("1/#beta"); - VertexProf[i]->GetYaxis()->SetTitleOffset(0.9); - VertexProf[i]->GetXaxis()->SetLabelSize(0.04); - VertexProf[i]->SetLineColor(Color[0]); - VertexProf[i]->SetFillColor(Color[0]); - VertexProf[i]->SetMarkerSize(0.4); - VertexProf[i]->SetMarkerStyle(Marker[0]); - VertexProf[i]->SetMarkerColor(Color[0]); - VertexProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_Vertex"); - delete c1; - - - c1 = new TCanvas("c1","c1",600,600); - VertexDTProf[i]->LabelsDeflate("X"); - VertexDTProf[i]->LabelsOption("av","X"); - VertexDTProf[i]->GetXaxis()->SetNdivisions(505); - VertexDTProf[i]->SetTitle(""); - VertexDTProf[i]->SetStats(kFALSE); - VertexDTProf[i]->GetXaxis()->SetTitle(""); - VertexDTProf[i]->GetYaxis()->SetTitle("1/#beta"); - VertexDTProf[i]->GetYaxis()->SetTitleOffset(0.9); - VertexDTProf[i]->GetXaxis()->SetLabelSize(0.04); - VertexDTProf[i]->SetLineColor(Color[0]); - VertexDTProf[i]->SetFillColor(Color[0]); - VertexDTProf[i]->SetMarkerSize(0.4); - VertexDTProf[i]->SetMarkerStyle(Marker[0]); - VertexDTProf[i]->SetMarkerColor(Color[0]); - VertexDTProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_VertexDT"); - delete c1; - - c1 = new TCanvas("c1","c1",600,600); - VertexCSCProf[i]->LabelsDeflate("X"); - VertexCSCProf[i]->LabelsOption("av","X"); - VertexCSCProf[i]->GetXaxis()->SetNdivisions(505); - VertexCSCProf[i]->SetTitle(""); - VertexCSCProf[i]->SetStats(kFALSE); - VertexCSCProf[i]->GetXaxis()->SetTitle(""); - VertexCSCProf[i]->GetYaxis()->SetTitle("1/#beta"); - VertexCSCProf[i]->GetYaxis()->SetTitleOffset(0.9); - VertexCSCProf[i]->GetXaxis()->SetLabelSize(0.04); - VertexCSCProf[i]->SetLineColor(Color[0]); - VertexCSCProf[i]->SetFillColor(Color[0]); - VertexCSCProf[i]->SetMarkerSize(0.4); - VertexCSCProf[i]->SetMarkerStyle(Marker[0]); - VertexCSCProf[i]->SetMarkerColor(Color[0]); - VertexCSCProf[i]->Draw("E1"); - c1->Modified(); - c1->SetGridx(true); - DrawPreliminary(IntegratedLuminosity); - SaveCanvas(c1,string("pictures/") + triggers[i],"Profile_VertexCSC"); - delete c1; - } - - - OutputHisto->Write(); - OutputHisto->Close(); -} - - - -bool IncreasedTreshold(const trigger::TriggerEvent& trEv, const edm::InputTag& InputPath, double NewThreshold, int NObjectAboveThreshold, bool averageThreshold) -{ - unsigned int filterIndex = trEv.filterIndex(InputPath); - //if(filterIndex %s XXX %s\n",filterIndex,trEv.filterTag(filterIndex).label().c_str(), trEv.filterTag(filterIndex).process().c_str()); - - if (filterIndex NewThreshold) NObjectAboveThresholdObserved++; - //cout << " " << i << " " << VIDS[i] << "/" << KEYS[i] << ": "<< TO.id() << " " << TO.pt() << " " << TO.eta() << " " << TO.phi() << " " << TO.mass()<< endl; - } - if(NObjectAboveThresholdObserved>=NObjectAboveThreshold)return true; - - }else{ - std::vector ObjPt; - - for (size_type i=0; i!=n; ++i) { - const TriggerObject& TO(TOC[KEYS[i]]); - ObjPt.push_back(TO.pt()); - //cout << " " << i << " " << VIDS[i] << "/" << KEYS[i] << ": "<< TO.id() << " " << TO.pt() << " " << TO.eta() << " " << TO.phi() << " " << TO.mass()<< endl; - } - if((int)(ObjPt.size())SetMakeSharedLib(makeshared); - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable();; - gSystem->Load("libDataFormatsFWLite.so"); - gSystem->Load("libDataFormatsHepMCCandidate.so"); - gSystem->Load("libDataFormatsCommon.so"); - gSystem->Load("libDataFormatsTrackerRecHit2D.so"); - gSystem->Load("libAnalysisDataFormatsSUSYBSMObjects.so"); - .x StabilityCheck.C+("Analyze"); - .x MakePlot.C+ -EOF diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/out.txt b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/out.txt deleted file mode 100644 index ab3188471bcb3..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/out.txt +++ /dev/null @@ -1,276 +0,0 @@ -160431,231,8414.98074055,[19-218],7321.79470587 -160577,330,10968.7166384,[254-306],1623.35908951 -160578,457,13618.2091939,"[6-53274-400]",4931.22827091 -160871,185,140756.85364,[68-208],104581.580536 -160872,76,55684.168438,"[1-925-3538-55]",23604.4895365 -160873,200,139342.567973,[1-147],101535.788089 -160874,131,86059.2956471,"[1-5197-113]",42010.6046365 -160939,147,182287.159989,[1-123],149609.289563 -160940,88,105176.111857,[2-79],90806.8680228 -160942,25,29302.2104804,[1-12],12209.2417212 -160943,68,77824.2878847,[2-54],59003.2284764 -160955,227,778968.167484,"[1-130133-138140-151153-154156-172175-201204-206]",413915.671739 -160956,72,232412.877625,[2-65],198545.794749 -160957,966,2638347.89871,[2-953],2506557.3968 -160998,284,779254.065083,[2-252],679400.910206 -161008,282,704933.165052,"[1-25-77]",188103.746213 -161016,326,742078.294109,[2-300],671576.539449 -161103,111,437926.743029,[2-100],379484.837111 -161106,39,145837.891222,[2-26],92352.2665127 -161107,39,142131.502676,[2-29],100872.579052 -161113,44,154974.140743,[2-24],79631.6551331 -161116,20,69466.13694,[2-11],34416.2304419 -161117,30,102992.319763,[2-24],77689.7359027 -161176,44,120750.881458,[2-31],83271.8576996 -161217,787,3881878.24921,[37-753],3487478.24949 -161222,135,562214.235386,[1-97],401163.352428 -161223,408,1568134.8395,[1-375],1432966.45402 -161233,39,195776.637456,[33-49],94093.2460692 -161310,95,537554.591315,[39-116],434664.277615 -161311,703,3364438.68966,"[1-554559-649]",3095074.95215 -161312,1049,3761445.21315,"[2-826835-1027]",3648710.88836 -162762,110,414308.25972,[1-102],377521.039903 -162765,22,81373.3325653,[2-23],77304.3841435 -162803,94,497305.042136,"[60-124135-139]",369886.695019 -162808,62,330898.717075,[1-51],263374.813721 -162811,346,1678742.05495,[1-340],1652215.312 -162822,246,1280178.91271,[73-307],1207529.21619 -162825,201,966964.568504,[1-184],869533.642256 -162826,42,195316.7254,[1-24],104126.210228 -162828,83,358042.003648,[2-84],354227.766274 -162909,249,1847126.78874,[54-290],1788678.89091 -163046,247,1623362.60773,"[1-133135-238]",1592748.91553 -163069,583,4197607.19171,"[73-452468-633]",3897614.77322 -163071,193,1254503.95955,[1-161],1035106.72479 -163078,36,223131.14959,[2-23],134938.961088 -163232,76,513403.287392,"[128-128130-134129-129136-149135-135110-127]",265598.164599 -163233,301,1940034.91078,[1-283],1802189.81456 -163234,73,444371.099063,[1-66],390925.090137 -163235,473,2684945.08337,[1-461],2591070.40918 -163237,219,1134882.57917,[1-213],1090349.13325 -163238,13,56783.1776908,[9-14],21147.7406896 -163252,101,908360.326195,[60-137],676648.137586 -163255,1066,7977222.73868,"[1-359412-844846-846848-977]",6872321.70854 -163261,138,901848.577884,"[2-310-126]",771047.274478 -163270,926,8228118.07035,"[2-7679-9699-475479-527529-685695-927]",7975359.86541 -163286,306,2003344.73722,[112-401],1883655.7274 -163289,386,2248731.9923,[2-387],2207535.47476 -163296,562,5505622.34885,"[59-230232-585]",5090286.80243 -163297,226,1993499.00479,[1-219],1902939.61413 -163300,622,4965283.36319,[1-616],4870837.25868 -163301,197,1442737.91233,[1-192],1387738.08642 -163302,252,1775292.60947,[1-190],1329960.8688 -163332,775,8030210.86007,"[43-118224-264266-599601-639641-801]",6518025.20815 -163333,111,1039916.31203,[2-106],969457.547016 -163334,562,4921466.57723,"[1-3537-37156-556]",3762186.31263 -163337,474,3797972.31658,"[2-1827-201203-426434-461]",3520933.8843 -163338,170,1288643.16507,[1-164],1224274.68623 -163339,187,1376114.75994,[1-172],1250985.87565 -163340,486,3334046.54206,[2-487],3311117.53762 -163358,28,253658.997981,[39-62],210049.295014 -163369,103,1093590.02262,[2-94],978081.270359 -163370,175,1771034.94222,[1-147],1469069.3552 -163371,374,3371677.61543,"[1-107148-363]",2916936.28265 -163372,111,973269.032662,[1-52],450198.526043 -163374,872,6834028.93577,"[1-599603-863]",6693696.94849 -163375,16,113609.902852,[1-10],65474.7863691 -163376,251,1755691.37546,"[2-2022-246]",1689867.60792 -163378,628,4047982.6421,"[1-8189-272306-615]",3675226.22696 -163385,389,3521201.74558,"[52-240244-406]",3165808.77395 -163387,254,2076076.37534,[2-255],2060762.55659 -163402,793,7635208.01101,"[37-582586-801]",6888939.50202 -163475,284,3172838.47889,[30-295],2801262.39679 -163476,235,2428706.21862,"[1-9498-212]",2047895.27265 -163478,82,804552.227683,[1-70],461653.491416 -163479,185,1795900.01149,[2-175],1675799.42056 -163480,198,1844561.41078,"[1-9296-188190-191]",1698481.89359 -163481,88,792243.919594,"[2-7274-7779-79]",648811.541224 -163482,57,504899.518386,"[1-2748-48]",232276.056673 -163483,55,375949.423158,[2-56],373030.956776 -163582,65,1013636.50931,[1-22],250115.492378 -163583,231,3440059.87874,"[2-6365-9296-155157-173175-219]",2833201.86859 -163584,84,1202621.48761,[1-56],763846.716298 -163585,41,576618.4866,[1-32],435016.313849 -163586,102,1408523.17576,[1-75],1018116.91406 -163587,84,1133718.087,[1-52],688476.842977 -163588,455,5779331.08272,"[1-810-446]",5581423.0508 -163589,165,1961718.11817,"[1-4951-160]",1870697.03347 -163596,27,259084.232793,[2-28],256517.221653 -163630,113,1498884.94972,"[76-164176-184]",1267218.24566 -163655,38,603852.461485,[15-23],131570.030415 -163657,152,2344200.26022,[1-140],2112593.51136 -163658,18,270262.942714,[1-3],6227.23645473 -163659,717,9766460.40928,"[1-374376-650652-705]",9398580.59537 -163660,84,1037427.41973,[1-74],742331.459513 -163661,26,317176.810141,[1-17],112647.246935 -163662,175,2090156.5458,[1-154],1811893.02787 -163663,250,2844227.37148,"[1-106109-246]",2650543.3342 -163664,188,2041698.17162,"[1-119121-178]",1865904.23544 -163668,226,2276933.12766,"[2-5357-136140-213]",2043000.97521 -163738,282,4155550.63346,[34-311],4045672.73443 -163757,46,681739.781555,[1-40],567118.406647 -163758,599,8200161.03384,"[1-1719-220222-224236-276283-374376-466468-591]",7374737.28907 -163759,525,6340800.36054,"[1-6062-7274-456458-461463-482504-510]",5771647.53825 -163760,362,3988897.39878,"[1-162165-340]",3663314.39213 -163761,228,2369179.52662,[1-203],2092341.83111 -163763,92,927458.312591,[1-79],785421.820916 -163765,319,2997046.19532,[2-320],2958872.96734 -163795,48,907464.969632,"[10-3436-3638-43]",455200.645017 -163796,181,3201354.94312,[1-181],3140248.24833 -163817,934,16331051.1045,"[50-140154-205216-295305-346358-457561-603618-966]",12995056.8558 -163869,62,794784.26904,[79-123],703226.284048 -165088,200,5033.14315988,[107-266],4027.24667231 -165098,320,31634.0241532,"[124-187190-193195-248250-254256-331333-367369-415]",27494.7168256 -165099,125,10722.9234966,[1-105],8853.81811289 -165102,200,17821.2059787,[1-185],16471.5121216 -165103,451,47752.2640626,"[1-111113-185187-440]",46318.7727982 -165120,56,271064.353653,[82-97],76376.0541126 -165121,483,2150273.48546,[1-466],2049530.29623 -165205,195,2014997.13583,[80-248],1718665.04037 -165208,113,1092776.42376,[1-101],947586.544961 -165364,1260,19663072.2591,"[45-111114-147160-807809-12201260-1300]",18325190.0912 -165402,27,453343.958084,[1-27],416093.259316 -165415,1342,20342180.2248,"[58-8588-640643-707712-777780-13561360-1383]",19461690.7405 -165467,701,12981980.9996,[39-708],11771142.6807 -165472,897,13552369.6526,"[1-184186-882]",12975111.1141 -165486,89,1982783.83758,[37-102],1401620.65209 -165487,153,3081718.29317,[1-151],2951557.70338 -165506,123,2132631.49734,[54-170],1915687.36581 -165514,501,11719375.565,"[72-244246-560562-567]",10989892.4374 -165548,630,9555553.26693,"[1-363365-381384-589]",8692129.23393 -165558,74,1041015.97316,[1-62],817620.165532 -165567,601,13100586.7931,"[54-109114-309315-631]",11997559.9979 -165570,951,16975291.303,"[1-25-8388-942944-946]",16353284.4565 -165617,395,9373634.75478,"[26-5254-143145-288]",5961626.51143 -165620,62,1254769.02217,[14-19],126889.333296 -165633,460,10508290.8339,"[56-6264-6466-317319-500]",9736393.7879 -165970,273,6726395.74181,"[67-329331-334]",6455019.12668 -165993,1655,33003329.6806,"[71-873879-16601665-1697]",31886444.6556 -166011,82,1908392.56233,[1-81],1824319.05591 -166033,1234,31401148.8941,"[35-5359-330336-355360-444450-606613-707713-1233]",29217718.715 -166034,392,7837380.88704,"[1-109115-228234-307]",6139717.61151 -166049,874,22459338.1616,"[53-8688-236242-674]",15977693.5883 -166149,30,861685.881379,[1-2],2056.72166173 -166150,115,2816687.36122,"[1-99101-115]",2685688.33148 -166161,103,2830140.20353,"[38-120122-123126-126]",2036315.14558 -166163,45,1210484.32114,"[1-1214-33]",618588.576263 -166164,39,871554.061007,"[1-3234-39]",779210.082154 -166346,173,4514561.46041,"[48-210212-214]",4262681.13703 -166374,166,4455219.70279,"[46-6466-188]",3703035.44929 -166380,1816,36195478.4924,"[1-367373-711715-14001406-1809]",35285507.369 -166408,1174,28610880.3156,"[67-283291-947953-1235]",27659856.2856 -166429,60,1570155.08353,[33-88],1384676.41161 -166438,861,19223685.2747,"[32-8587-856858-866]",18299957.1097 -166462,453,9998790.23799,"[78-102108-317323-525]",9373541.59329 -166486,126,2599067.05988,"[54-7580-9597-173]",2309576.38181 -166502,72,1732666.52134,"[43-7883-108]",1418875.44372 -166512,1870,39555515.9139,"[42-430432-487491-605611-12791281-18181821-18621868-18681870-18711873-1874]",37881928.6552 -166514,464,7478831.59355,"[1-455460-464]",7344050.04666 -166530,25,609102.443212,[43-62],458028.421126 -166554,709,17157550.1772,"[46-218224-287290-317320-595597-730732-734736-736]",16048597.2305 -166563,582,11724479.6912,"[1-276492-748]",10602518.9622 -166565,897,15311356.7324,"[1-147153-312316-467469-897]",14947492.1784 -166699,868,18561429.42,"[55-234240-415421-477483-677681-912]",17714966.7498 -166701,791,13447916.7688,"[1-1316-319324-506513-551557-672681-705712-724731-757764-777783-791]",12494070.256 -166763,608,13783356.9884,"[46-168174-649]",13382624.1316 -166781,356,8619467.7499,"[41-111115-115117-233236-253255-382]",7883392.38339 -166782,581,12298792.1961,[1-569],11874764.2749 -166784,389,7416940.7984,"[1-114119-276281-365]",6529162.53148 -166787,363,6298378.04801,"[1-5560-127132-363]",6067651.4651 -166839,277,7063757.67623,"[43-173178-297299-302]",5661014.60968 -166841,1023,22258235.6607,"[1-845851-876882-977984-984988-992998-1015]",21326298.0351 -166842,186,3105464.09973,[1-170],3050240.7266 -166859,394,9801079.65832,"[62-418421-421423-423]",8592344.53354 -166860,36,836026.225779,[1-21],404800.810106 -166861,50,1144319.09115,"[1-68-13]",183308.79539 -166864,536,11229730.3099,"[1-2931-7779-99102-119125-247249-307311-365367-374378-454478-536]",9656523.5075 -166888,434,11159142.8508,"[56-9093-154156-394398-470]",10197877.9395 -166889,241,5657210.41872,"[1-7379-228]",5033271.34576 -166890,548,11686248.4227,[1-441],9352932.45564 -166894,219,4235575.43356,[1-190],3567642.91208 -166895,601,10583831.2684,"[1-6672-597599-601]",10324470.1823 -166911,53,1310844.48819,"[58-7681-103]",985533.830822 -166922,789,19323827.1208,"[1-3941-105110-340345-418423-747752-769773-773]",18087372.9961 -166923,469,9834537.63758,"[1-382389-469]",9574934.68799 -166946,177,4676804.5692,"[41-7275-201]",4094190.37932 -166950,1450,31152027.7464,"[1-18-3136-210216-877883-950956-10121018-13211327-13451347-1438]",29471678.2293 -166960,199,3581057.01068,"[1-137143-166]",2848308.38991 -166966,254,4369662.00153,[1-238],3982274.53867 -166967,219,3523537.41869,[1-219],3470552.49649 -167039,235,5794662.11932,"[20-9298-228]",4966266.48301 -167041,676,14236404.4617,"[1-336339-391396-462467-663]",13557524.5216 -167043,236,4190348.15069,"[1-125130-235]",4047396.54368 -167078,142,3442631.50535,[40-174],3199550.88808 -167098,420,9203275.90808,"[62-9092-162167-406448-461]",8268219.81867 -167102,440,8696024.53956,"[1-4248-233235-317323-430]",7994765.7512 -167103,94,1672790.55089,[1-94],1620367.7347 -167151,68,1609365.35366,[1-42],986514.520111 -167281,597,15162351.0877,"[18-140146-315317-593]",14228353.6823 -167282,457,9430205.46987,[1-441],8978024.9576 -167284,1708,27121997.5517,"[1-315320-346356-395399-474476-11571160-16281633-1644]",25661201.6712 -167551,424,11486598.7976,"[56-190196-471]",10901788.5107 -167673,308,8124158.63429,"[210-236239-305309-418423-447]",5835658.36445 -167674,355,8581257.29186,[1-345],8154943.75729 -167675,1069,22077738.8337,"[1-129133-299301-617690-707710-712715-716719-719721-725740-741748-758762-770774-787793-797811-1062]",19135324.1219 -167676,452,7852382.43856,"[1-278289-450]",7573033.78584 -167740,104,2568626.74124,"[79-126132-168170-173]",2182348.10028 -167746,351,8663533.21295,[56-384],8356871.77556 -167754,50,1178506.79916,[62-103],994275.70673 -167784,100,2700042.04841,[51-67],428485.824255 -167786,176,4437277.5523,"[1-111-7581-176]",3976056.0921 -167807,1824,42747050.3904,"[60-159178-204210-482484-558560-872878-14411444-1842]",40518266.8011 -167830,1248,20891346.9366,"[1-437442-587590-828834-1242]",20338891.2263 -167898,1692,39842133.3829,"[108-619621-9951001-10101013-10531057-12951298-1762]",37970327.1026 -167913,440,7880615.44492,"[1-126128-432]",7609374.18581 -170826,289,8176812.71389,"[50-122139-310]",6838185.02805 -170842,350,8636294.71965,"[1-2732-96102-331]",7832462.97876 -170854,659,13659370.1765,"[1-336341-578]",11820091.9338 -170876,520,9025941.52699,"[1-110115-516518-518]",8824636.25454 -170896,212,3396899.02642,[1-212],3332858.05116 -170899,84,1282584.15701,[1-84],1266554.03064 -170901,199,2770920.83266,"[1-153159-199]",2661567.52209 -171050,625,19258906.5893,"[54-7480-337342-369371-379384-423427-467471-648]",17363625.4134 -171091,147,3786658.42276,[1-135],3345608.29696 -171098,32,803962.60649,[1-8],90585.1509462 -171102,34,844793.879269,[1-19],419904.054386 -171106,303,7138755.0006,"[1-2732-288]",6579464.16195 -171117,83,1730554.27722,"[1-5456-7880-83]",1636907.43193 -171156,722,21052680.4516,"[212-686688-692]",12994621.3644 -171178,1043,22802573.3225,"[1-9297-205210-1043]",22220414.9807 -171219,120,4088921.68085,"[48-151153-162]",3841882.55076 -171274,78,3112909.3225,"[128-137140-14388-127]",1981402.07353 -171282,171,6363145.07024,"[1-1214-99104-134140-171]",5826810.06001 -171315,178,6298546.9338,[53-225],6021751.92429 -171369,125,4359551.21303,"[61-138144-161]",3229311.99736 -171446,812,26116093.9103,"[58-394401-451456-645650-750754-864]",25110648.6991 -171484,377,13177251.2439,"[80-202207-371376-432]",11817950.3291 -171578,935,24019521.705,"[47-150156-174179-315319-347353-481487-572578-974]",22801716.2136 -171812,384,13505109.9103,"[59-296301-437]",12900860.3738 -171921,116,4758943.12785,[51-141],3645079.75593 -171926,264,9500127.56857,"[1-4951-155161-172177-264]",8840320.06649 -172014,256,10491393.5551,"[1-6466-143149-243]",9162063.37357 -172024,161,6011174.87354,[1-74],2706268.06439 -172033,749,23844058.2451,"[1-6571-277282-473478-749]",23111389.8996 -172163,758,27325645.613,"[36-109115-784]",26360824.9395 -172208,145,6022619.06373,[61-199],5631834.48805 -172252,41,1886732.36233,[32-54],1002278.24955 -172254,51,2297020.74473,[1-42],1747445.29588 -172255,39,1588560.76608,[1-39],1469308.07169 -172268,118,5195362.65314,[56-169],4901026.50334 -172286,176,6858085.79775,"[52-177184-216]",6323228.14862 -172389,431,17038858.3827,"[34-144150-429433-460]",16277584.869 -172399,195,8207447.93789,[57-226],7011462.71572 -172400,720,25016318.6045,"[1-495500-691696-705]",23740997.6608 -172401,147,4346538.14924,"[1-25-147]",4129319.70644 -172411,897,32249709.3678,[85-349],10822034.5957 -172478,154,3960810.52744,[1-110],2808787.97451 -172619,97,1934690.19692,[1-77],1490279.97138 -172620,501,9429412.62173,[1-495],9223673.6403 -172630,146,6495846.52015,"[36-6468-135139-160]",5157011.2129 -172635,267,10673883.2373,"[1-1824-267]",10203002.4754 -172778,57,2356692.19507,[48-97],1986746.54585 -172791,1624,54163297.7466,"[68-413418-569571-715720-12961300-15371542-16451649-1658]",51814818.7692 -172798,36,930462.220239,[1-31],721446.731769 -172799,379,9325201.55334,[1-367],8913553.28481 -172801,1155,24025859.2164,"[1-679681-750753-766768-815819-837839-861863-909911-1139]",22775746.8358 -172802,796,13681208.5952,"[1-629634-784]",13203586.6448 diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/tdrstyle.C b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/tdrstyle.C deleted file mode 100644 index 6e2de47e66928..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/StabilityCheck/tdrstyle.C +++ /dev/null @@ -1,169 +0,0 @@ -// -// TDR style macro for plots in ROOT -// .L tdrstyle.C -// setTDRStyle() -// -#include "TStyle.h" -#include "TPad.h" - -/* -// tdrGrid: Turns the grid lines on (true) or off (false) - -void tdrGrid(bool gridOn) { - tdrStyle->SetPadGridX(gridOn); - tdrStyle->SetPadGridY(gridOn); -} -*/ - -// fixOverlay: Redraws the axis - -void fixOverlay() { - gPad->RedrawAxis(); -} - -void setTDRStyle() { -// TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); - -// For the canvas: - gStyle->SetCanvasBorderMode(0); - gStyle->SetCanvasColor(kWhite); - gStyle->SetCanvasDefH(600); //Height of canvas - gStyle->SetCanvasDefW(600); //Width of canvas - gStyle->SetCanvasDefX(0); //POsition on screen - gStyle->SetCanvasDefY(0); - -// For the Pad: - gStyle->SetPadBorderMode(0); - // gStyle->SetPadBorderSize(Width_t size = 1); - gStyle->SetPadColor(kWhite); - gStyle->SetPadGridX(false); - gStyle->SetPadGridY(false); - gStyle->SetGridColor(0); - gStyle->SetGridStyle(3); - gStyle->SetGridWidth(1); - -// For the frame: - gStyle->SetFrameBorderMode(0); - gStyle->SetFrameBorderSize(1); - gStyle->SetFrameFillColor(0); - gStyle->SetFrameFillStyle(0); - gStyle->SetFrameLineColor(1); - gStyle->SetFrameLineStyle(1); - gStyle->SetFrameLineWidth(1); - -// For the histo: - // gStyle->SetHistFillColor(1); - // gStyle->SetHistFillStyle(0); - gStyle->SetHistLineColor(1); - gStyle->SetHistLineStyle(0); - gStyle->SetHistLineWidth(1); - // gStyle->SetLegoInnerR(Float_t rad = 0.5); - // gStyle->SetNumberContours(Int_t number = 20); - - gStyle->SetEndErrorSize(2); - //gStyle->SetErrorMarker(20); - gStyle->SetErrorX(0.); - - gStyle->SetMarkerStyle(20); - -//For the fit/function: - gStyle->SetOptFit(1); - gStyle->SetFitFormat("5.4g"); - gStyle->SetFuncColor(2); - gStyle->SetFuncStyle(1); - gStyle->SetFuncWidth(1); - -//For the date: - gStyle->SetOptDate(0); - // gStyle->SetDateX(Float_t x = 0.01); - // gStyle->SetDateY(Float_t y = 0.01); - -// For the statistics box: - gStyle->SetOptFile(0); - //gStyle->SetOptStat(0); - gStyle->SetOptStat("mr"); - gStyle->SetStatColor(kWhite); - gStyle->SetStatFont(42); - gStyle->SetStatFontSize(0.04);///---> gStyle->SetStatFontSize(0.025); - gStyle->SetStatTextColor(1); - gStyle->SetStatFormat("6.4g"); - gStyle->SetStatBorderSize(1); - gStyle->SetStatH(0.1); - gStyle->SetStatW(0.2);///---> gStyle->SetStatW(0.15); - - // gStyle->SetStatStyle(Style_t style = 1001); - // gStyle->SetStatX(Float_t x = 0); - // gStyle->SetStatY(Float_t y = 0); - -// Margins: - gStyle->SetPadTopMargin(0.05); - gStyle->SetPadBottomMargin(0.13); - gStyle->SetPadLeftMargin(0.16); - gStyle->SetPadRightMargin(0.02); - -// For the Global title: - - gStyle->SetOptTitle(0); - gStyle->SetTitleFont(42); - gStyle->SetTitleColor(1); - gStyle->SetTitleTextColor(1); - gStyle->SetTitleFillColor(10); - gStyle->SetTitleFontSize(0.05); - // gStyle->SetTitleH(0); // Set the height of the title box - // gStyle->SetTitleW(0); // Set the width of the title box - // gStyle->SetTitleX(0); // Set the position of the title box - // gStyle->SetTitleY(0.985); // Set the position of the title box - // gStyle->SetTitleStyle(Style_t style = 1001); - // gStyle->SetTitleBorderSize(2); - -// For the axis titles: - - gStyle->SetTitleColor(1, "XYZ"); - gStyle->SetTitleFont(42, "XYZ"); - gStyle->SetTitleSize(0.06, "XYZ"); - // gStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size? - // gStyle->SetTitleYSize(Float_t size = 0.02); - gStyle->SetTitleXOffset(0.9); - gStyle->SetTitleYOffset(1.25); - // gStyle->SetTitleOffset(1.1, "Y"); // Another way to set the Offset - -// For the axis labels: - - gStyle->SetLabelColor(1, "XYZ"); - gStyle->SetLabelFont(42, "XYZ"); - gStyle->SetLabelOffset(0.007, "XYZ"); - gStyle->SetLabelSize(0.05, "XYZ"); - -// For the axis: - - gStyle->SetAxisColor(1, "XYZ"); - gStyle->SetStripDecimals(kTRUE); - gStyle->SetTickLength(0.03, "XYZ"); - gStyle->SetNdivisions(510, "XYZ"); - gStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame - gStyle->SetPadTickY(1); - -// Change for log plots: - gStyle->SetOptLogx(0); - gStyle->SetOptLogy(0); - gStyle->SetOptLogz(0); - -// Postscript options: - gStyle->SetPaperSize(20.,20.); - // gStyle->SetLineScalePS(Float_t scale = 3); - // gStyle->SetLineStyleString(Int_t i, const char* text); - // gStyle->SetHeaderPS(const char* header); - // gStyle->SetTitlePS(const char* pstitle); - - // gStyle->SetBarOffset(Float_t baroff = 0.5); - // gStyle->SetBarWidth(Float_t barwidth = 0.5); - // gStyle->SetPaintTextFormat(const char* format = "g"); - // gStyle->SetPalette(Int_t ncolors = 0, Int_t* colors = 0); - // gStyle->SetTimeOffset(Double_t toffset); - // gStyle->SetHistMinimumZero(kTRUE); - -// gStyle->cd(); - - gROOT->ForceStyle(); - -} diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/TriggerStudy/Analysis_Samples.h b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/TriggerStudy/Analysis_Samples.h deleted file mode 100644 index 091e1a1da0dd9..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/TriggerStudy/Analysis_Samples.h +++ /dev/null @@ -1,214 +0,0 @@ - -#ifndef HSCP_ANALYSIS_SAMPLE -#define HSCP_ANALYSIS_SAMPLE - -#define SID_GL300 0 -#define SID_GL400 1 -#define SID_GL500 2 -#define SID_GL600 3 -#define SID_GL700 4 -#define SID_GL800 5 -#define SID_GL900 6 -#define SID_GL1000 7 -#define SID_GL1100 8 -#define SID_GL300N 9 -#define SID_GL400N 10 -#define SID_GL500N 11 -#define SID_GL600N 12 -#define SID_GL700N 13 -#define SID_GL800N 14 -#define SID_GL900N 15 -#define SID_GL1000N 16 -#define SID_GL1100N 17 -#define SID_ST130 18 -#define SID_ST200 19 -#define SID_ST300 20 -#define SID_ST400 21 -#define SID_ST500 22 -#define SID_ST600 23 -#define SID_ST700 24 -#define SID_ST800 25 -#define SID_ST130N 26 -#define SID_ST200N 27 -#define SID_ST300N 28 -#define SID_ST400N 29 -#define SID_ST500N 30 -#define SID_ST600N 31 -#define SID_ST700N 32 -#define SID_ST800N 33 -#define SID_GS100 34 -#define SID_GS126 35 -#define SID_GS156 36 -#define SID_GS200 37 -#define SID_GS247 38 -#define SID_GS308 39 -#define SID_GS370 40 -#define SID_GS432 41 -#define SID_GS494 42 -#define SID_PS100 43 -#define SID_PS126 44 -#define SID_PS156 45 -#define SID_PS200 46 -#define SID_PS247 47 -#define SID_PS308 48 -#define SID_D08K100 49 -#define SID_D08K121 50 -#define SID_D08K182 51 -#define SID_D08K242 52 -#define SID_D08K302 53 -#define SID_D08K350 54 -#define SID_D08K370 55 -#define SID_D08K390 56 -#define SID_D08K395 57 -#define SID_D08K400 58 -#define SID_D08K410 59 -#define SID_D08K420 60 -#define SID_D08K500 61 -#define SID_D12K100 62 -#define SID_D12K182 63 -#define SID_D12K302 64 -#define SID_D12K500 65 -#define SID_D12K530 66 -#define SID_D12K570 67 -#define SID_D12K590 68 -#define SID_D12K595 69 -#define SID_D12K600 70 -#define SID_D12K610 71 -#define SID_D12K620 72 -#define SID_D12K700 73 -#define SID_D16K100 74 -#define SID_D16K182 75 -#define SID_D16K302 76 -#define SID_D16K500 77 -#define SID_D16K700 78 -#define SID_D16K730 79 -#define SID_D16K770 80 -#define SID_D16K790 81 -#define SID_D16K795 82 -#define SID_D16K800 83 -#define SID_D16K820 84 -#define SID_D16K900 85 - - -int RunningPeriods = 2; -double IntegratedLuminosity = 4679;//2125; //2080; //1912; //1947; //1631; //976.204518023; //705.273820; //342.603275; //204.160928; //191.04; -double IntegratedLuminosityBeforeTriggerChange = 353.494; // Total luminosity taken before RPC L1 trigger change (went into effect on run 165970) -float Event_Weight = 1; -int MaxEntry = 10000; - - -class stSignal{ - public: - std::string Type; - std::string Name; - std::string FileName; - std::string Legend; - double Mass; - double XSec; - bool MakePlot; - bool IsS4PileUp; - - stSignal(); - stSignal(std::string Type_, std::string Name_, std::string FileName_, std::string Legend_, double Mass_, bool MakePlot_, bool IsS4PileUp_, double XSec_){Type=Type_; Name=Name_; FileName=FileName_; Legend=Legend_; Mass=Mass_; MakePlot=MakePlot_; IsS4PileUp=IsS4PileUp_;XSec=XSec_;} -}; - - -void GetSignalDefinition(std::vector& signals){ - signals.push_back(stSignal("Gluino", "Gluino300", "Gluino300" , "#tilde{g} 300" , 300, 1, 1, 65.800000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino300S", "Gluino300S" , "#tilde{g} 300S" , 300, 1, 1, 65.800000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino600", "Gluino600" , "#tilde{g} 600" , 600, 1, 1, 0.693000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino600S", "Gluino600S" , "#tilde{g} 600S" , 600, 1, 1, 0.693000) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino1100", "Gluino1100" , "#tilde{g} 1100" ,1100, 1, 1, 0.0038600) ); //NLO - signals.push_back(stSignal("Gluino", "Gluino1100S", "Gluino1100S" , "#tilde{g} 1100S" ,1100, 1, 1, 0.0038600) ); //NLO - - signals.push_back(stSignal("Stau" , "GMStau100", "stau_M-100" , "GMSB #tilde{#tau}_{1} 100" , 100, 1, 1, 1.3398) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau100S", "stau_M-100S" , "GMSB #tilde{#tau}_{1} 100S" , 100, 1, 1, 1.3398) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau200", "stau_M-200" , "GMSB #tilde{#tau}_{1} 200" , 200, 1, 1, 0.0118093) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau200S", "stau_M-200S" , "GMSB #tilde{#tau}_{1} 200S" , 200, 1, 1, 0.0118093) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau308", "stau_M-308" , "GMSB #tilde{#tau}_{1} 308" , 308, 1, 1, 0.00098447 ) ); //NLO - signals.push_back(stSignal("Stau" , "GMStau308S", "stau_M-308S" , "GMSB #tilde{#tau}_{1} 308S" , 308, 1, 1, 0.00098447 ) ); //NLO - - signals.push_back(stSignal("Stau" , "PPStau100", "PPStau100", "Pair #tilde{#tau}_{1} 100" , 100, 1, 1, 0.0382) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau100S", "PPStau100S", "Pair #tilde{#tau}_{1} 100S" , 100, 1, 1, 0.0382) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau200", "PPStau200", "Pair #tilde{#tau}_{1} 200" , 200, 1, 1, 0.00247) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau200S", "PPStau200S", "Pair #tilde{#tau}_{1} 200S" , 200, 1, 1, 0.00247) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau308", "PPStau308", "Pair #tilde{#tau}_{1} 308" , 308, 0, 1, 0.000353) ); //NLO - signals.push_back(stSignal("Stau" , "PPStau308S", "PPStau308S", "Pair #tilde{#tau}_{1} 308S" , 308, 0, 1, 0.000353) ); //NLO - - -} - -struct stMC{ - std::string Name; - double XSection; - double MaxPtHat; - double MaxEvent; - bool IsS4PileUp; - - stMC(); - stMC(std::string Name_, double XSection_, double MaxPtHat_, int MaxEvent_, bool IsS4PileUp_){Name = Name_; XSection = XSection_; MaxPtHat = MaxPtHat_; MaxEvent = MaxEvent_;IsS4PileUp = IsS4PileUp_;} -}; - -void GetMCDefinition(std::vector& MC){ - - MC.push_back(stMC("MC_DYToTauTau" , 1.300E3 , -1, -1, 0)); - MC.push_back(stMC("MC_DYToMuMu" , 1.300E3 , -1, -1, 0)); - MC.push_back(stMC("MC_WJetsToLNu" , 2.777E4 , -1, -1, 1)); - MC.push_back(stMC("MC_TTJets" , 9.400E1 , -1, -1, 1)); - MC.push_back(stMC("MC_QCD_Pt-15to30" , 8.16E8 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-30to50" , 5.310E7 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-50to80" , 6.360E6 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-80to120" , 7.840E5 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-120to170" , 1.150E5 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-170to300" , 2.430E4 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-300to470" , 1.170E3 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-470to600" , 7.020E1 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-600to800" , 1.560E1 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-800to1000" , 1.84 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-1000to1400" , 3.320E-1 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-1400to1800" , 1.090E-2 , -1, -1, 0)); - MC.push_back(stMC("MC_QCD_Pt-1800" , 3.580E-4 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-0to15" , 4.280E3 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-15to20" , 1.450E2 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-20to30" , 1.310E2 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-30to50" , 8.400E1 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-50to80" , 3.220E1 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-80to120" , 9.98 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-120to170", 2.73 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-170to230", 7.21E-1 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-230to300", 1.94E-1 , -1, -1, 0)); - MC.push_back(stMC("MC_ZJetToMuMu_Pt-300" , 7.59E-2 , -1, -1, 0)); - MC.push_back(stMC("MC_ZZ" , 4.287 , -1, -1, 1)); - MC.push_back(stMC("MC_WW" , 2.783E1 , -1, -1, 1)); - MC.push_back(stMC("MC_WZ" , 1.47E1 , -1, -1, 1)); -} - -void GetInputFiles(std::vector& inputFiles, std::string SampleName, int period=0){ -// std::string BaseDirectory = "/storage/data/cms/users/quertenmont/HSCP/CMSSW_4_2_3/11_08_03/"; -// std::string BaseDirectory = "dcache:/pnfs/cms/WAX/11/store/user/jchen/11_09_13_HSCP2011EDM/"; - std::string BaseDirectory = "/uscmst1b_scratch/lpc1/lpcphys/jchen/HSCPEDM_11_01_11/"; - if(SampleName=="Data"){ - inputFiles.push_back(BaseDirectory + "Data_RunA_160404_163869.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_165001_166033.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_166034_166500.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_166501_166893.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_166894_167151.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_167153_167913.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_170826_171500.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_171501_172619.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_172620_172790.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_172791_172802.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_172803_172900.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_172901_173243.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_173244_173692.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_175860_176099.root"); - inputFiles.push_back(BaseDirectory + "Data_RunA_176100_176309.root"); - }else if(SampleName.find("MC_",0) -#include -#include - -#include "TROOT.h" -#include "TFile.h" -#include "TDirectory.h" -#include "TChain.h" -#include "TObject.h" -#include "TCanvas.h" -#include "TMath.h" -#include "TLegend.h" -#include "TGraph.h" -#include "TH1.h" -#include "TH2.h" -#include "TH3.h" -#include "TTree.h" -#include "TF1.h" -#include "TGraphAsymmErrors.h" -#include "TPaveText.h" -#include "tdrstyle.C" - - class stSignal; - namespace edm {class TriggerResults; class TriggerResultsByName; class InputTag;} - namespace reco { class Vertex; class Track; class GenParticle;} - namespace susybsm {class HSCParticle;} - namespace fwlite { class ChainEvent;} - namespace trigger {class TriggerEvent;} - - -#if !defined(__CINT__) && !defined(__MAKECINT__) -#include "DataFormats/FWLite/interface/Handle.h" -#include "DataFormats/FWLite/interface/Event.h" -#include "DataFormats/FWLite/interface/ChainEvent.h" - - -#include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" -#include "FWCore/Common/interface/TriggerResultsByName.h" - -#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h" -#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" -#include "DataFormats/TrackerRecHit2D/interface/ProjectedSiStripRecHit2D.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit1D.h" - -#include "DataFormats/HLTReco/interface/TriggerEvent.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/HLTReco/interface/TriggerObject.h" - - - using namespace fwlite; - using namespace reco; - using namespace edm; - using namespace std; - using namespace trigger; - -#include "Analysis_Samples.h" -#include "../../ICHEP_Analysis/Analysis_PlotFunction.h" - - -#endif - -std::vector signals; -vector JetMetSD_triggers; -vector MuSD_triggers; -vector All_triggers; -map All_mask; - -class stPlot{ - public: - TH1D* Histo; - TH1D* HistoInc; - TH1D* BetaCount; - TH1D* BetaTotal; - TH1D* BetaMuon; - TH1D* BetaJet; - - stPlot(string SignalName){ - int numberofbins=JetMetSD_triggers.size()+MuSD_triggers.size()+1; - Histo = new TH1D((SignalName + "Abs").c_str(),(SignalName + "Abs").c_str(),numberofbins,0,numberofbins); - HistoInc = new TH1D((SignalName + "Inc").c_str(),(SignalName + "Inc").c_str(),numberofbins,0,numberofbins); - - for(unsigned int i=0;iGetXaxis()->SetBinLabel(i+1,MuSD_triggers[i].c_str()); } - for(unsigned int i=0;iGetXaxis()->SetBinLabel(MuSD_triggers.size()+1+i,JetMetSD_triggers[i].c_str()); } -// Histo->GetXaxis()->SetBinLabel(numberofbins-2,"Mu Paths"); -// Histo->GetXaxis()->SetBinLabel(numberofbins-1,"JetMET Paths"); - Histo->GetXaxis()->SetBinLabel(numberofbins,"Total"); - - for(unsigned int i=0;iGetXaxis()->SetBinLabel(i+1,MuSD_triggers[i].c_str()); } - for(unsigned int i=0;iGetXaxis()->SetBinLabel(MuSD_triggers.size()+1+i,JetMetSD_triggers[i].c_str()); } -// HistoInc->GetXaxis()->SetBinLabel(numberofbins-2,"Mu Paths"); -// HistoInc->GetXaxis()->SetBinLabel(numberofbins-1,"JetMET Paths"); - HistoInc->GetXaxis()->SetBinLabel(numberofbins,"Total"); - - Histo->Sumw2(); - HistoInc->Sumw2(); - - BetaCount = new TH1D((SignalName + "BetaMuCount").c_str() ,(SignalName + "BetaCount").c_str() ,20,0,1); BetaCount ->Sumw2(); - BetaTotal = new TH1D((SignalName + "BetaTotal" ).c_str() ,(SignalName + "BetaTotal").c_str() ,20,0,1); BetaTotal ->Sumw2(); - BetaMuon = new TH1D((SignalName + "BetaMuon" ).c_str() ,(SignalName + "BetaMuon" ).c_str() ,20,0,1); BetaMuon ->Sumw2(); - BetaJet = new TH1D((SignalName + "BetaJet" ).c_str() ,(SignalName + "BetaJet" ).c_str() ,20,0,1); BetaJet ->Sumw2(); - } - -}; - - -void TriggerStudy_Core(string SignalName, FILE* pFile, stPlot* plot); -double FastestHSCP(const fwlite::ChainEvent& ev); -bool IncreasedTreshold(const trigger::TriggerEvent& trEv, const edm::InputTag& InputPath, double NewThreshold, double etaCut,int NObjectAboveThreshold, bool averageThreshold=false); -void layout(vector& plots, vector& sigs, string name); -int JobIdToIndex(string JobId); -void SetWeight(const double& IntegratedLuminosityInPb=-1, const double& IntegratedLuminosityInPbBeforeTriggerChange=-1, const double& CrossSection=0, const double& MCEvents=0, int period=0); - - -void SetWeight(const double& IntegratedLuminosityInPb, const double& IntegratedLuminosityInPbBeforeTriggerChange, const double& CrossSection, const double& MCEvents, int period){ - if(IntegratedLuminosityInPb>=IntegratedLuminosityInPbBeforeTriggerChange && IntegratedLuminosityInPb>0){ - double NMCEvents = MCEvents; - if(MaxEntry>0)NMCEvents=std::min(MCEvents,(double)MaxEntry); - if (period==0) Event_Weight = (CrossSection * IntegratedLuminosityInPbBeforeTriggerChange) / NMCEvents; - else if (period==1)Event_Weight = (CrossSection * (IntegratedLuminosityInPb-IntegratedLuminosityInPbBeforeTriggerChange)) / NMCEvents; - }else{ - Event_Weight=1; - } -} - - - -void TriggerStudy() -{ - system("mkdir pictures"); - - setTDRStyle(); - gStyle->SetPadTopMargin (0.06); - gStyle->SetPadBottomMargin(0.10); - gStyle->SetPadRightMargin (0.18); - gStyle->SetPadLeftMargin (0.14); - gStyle->SetTitleSize(0.04, "XYZ"); - gStyle->SetTitleXOffset(1.1); - gStyle->SetTitleYOffset(1.35); - gStyle->SetPalette(1); - gStyle->SetNdivisions(505,"X"); - -// std::vector signals; - GetSignalDefinition(signals); - - - /////////////////////////////////////////////////////// - JetMetSD_triggers.push_back("HLT_PFMHT150_v2"); -// JetMetSD_triggers.push_back("HLT_MET100_v1"); - - MuSD_triggers.push_back("HLT_Mu40_eta2p1_v1"); -// MuSD_triggers.push_back("HLT_DoubleMu7_v1"); - - All_triggers.clear(); - for(unsigned int i=0;i objs; vector leg; - - objs.clear(); leg.clear(); - Id = JobIdToIndex("Gluino300"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("Gluino600"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("Gluino1100"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - layout(objs, leg, "summary_Gluino"); - - objs.clear(); leg.clear(); - Id = JobIdToIndex("Gluino300S"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("Gluino600S"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("Gluino1100S"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - layout(objs, leg, "summary_GluinoS"); - - - objs.clear(); leg.clear(); - Id = JobIdToIndex("GMStau100"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("GMStau200"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("GMStau308"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - layout(objs, leg, "summary_GMStau"); - - objs.clear(); leg.clear(); - Id = JobIdToIndex("GMStau100S"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("GMStau200S"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("GMStau308S"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - layout(objs, leg, "summary_GMStauS"); - - - - objs.clear(); leg.clear(); - Id = JobIdToIndex("PPStau100"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("PPStau200"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("PPStau308"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - layout(objs, leg, "summary_PPStau"); - - objs.clear(); leg.clear(); - Id = JobIdToIndex("PPStau100S"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("PPStau200S"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("PPStau308S"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - layout(objs, leg, "summary_PPStauS"); - - - -/* - - objs.clear(); leg.clear(); - Id = JobIdToIndex("DCStau121"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("DCStau242"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("DCStau302"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - layout(objs, leg, "summary_DCStau"); - - int Id; vector objs; vector leg; - - objs.clear(); leg.clear(); - Id = JobIdToIndex("Gluino300"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("Gluino500"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("Gluino800"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("Gluino900"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("Gluino1000"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - layout(objs, leg, "summary_Gluino"); - - - - objs.clear(); leg.clear(); - Id = JobIdToIndex("Gluino600"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - objs.push_back(plotsG600Z2);leg.push_back("Gluino600 Z2"); - Id = JobIdToIndex("Stop300"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - Id = JobIdToIndex("GMStau126"); objs.push_back(plots[Id]); leg.push_back(signals[Id].Name); - layout(objs, leg, "summary_Mixed"); -*/ - - fflush(pFile); - fclose(pFile); - -} - -void TriggerStudy_Core(string SignalName, FILE* pFile, stPlot* plot) -{ - - double Total = 0; - double SDJetMET = 0; - double SDMu = 0; - double SDBoth = 0; - double SDJetMETInc = 0; - double SDMuInc = 0; - double TrJetMET = 0; - double TrMu = 0; - double TrBoth = 0; - - int MaxPrint = 0; - for (int period=0; period fileNames; - GetInputFiles(fileNames,SignalName, period); - string thisname = fileNames[0]; - bool simhitshifted =0; - if(thisname.find("S.",0)0 && e>MaxEntry)break; - ev.to(e); - - fwlite::Handle hTriggerResults; - hTriggerResults.getByLabel(ev, "TriggerResults", "", "HLT"); - edm::TriggerResultsByName tr(nullptr, nullptr); - if(hTriggerResults.isValid()) { - tr = ev.triggerResultsByName(*hTriggerResults); - } - - if(simhitshifted) { - - fwlite::Handle hTriggerResults1; - hTriggerResults1.getByLabel(ev, "TriggerResults", "", "HLTSIMHITSHIFTER"); - tr = edm::TriggerResultsByName(nullptr, nullptr); - if(hTriggerResults1.isValid()) { - tr = ev.triggerResultsByName(*hTriggerResults1); - } - } -// edm::TriggerResultsByName tr = ev.triggerResultsByName("HLT"); if(!tr.isValid())continue; - // for(unsigned int i=0;i %1i\n",i, tr.triggerName(i).c_str(),tr.accept(i)); - //}fflush(stdout); - - fwlite::Handle< trigger::TriggerEvent > trEvHandle; - trEvHandle.getByLabel(ev,"hltTriggerSummaryAOD"); - trigger::TriggerEvent trEv = *trEvHandle; - - //for(unsigned int i=0;isizeFilters();i++){ - // if(strncmp(trEvHandle->filterTag(i).label().c_str(),"hltL1",5)==0)continue; - // printf("%i - %s\n",i,trEvHandle->filterTag(i).label().c_str()); - //} - - - bool JetMetSD = false; - bool MuSD = false; - bool JetMetSDInc = false; - bool MuSDInc = false; - bool JetMetTr = false; - bool MuTr = false; - - - unsigned int TrIndex_Unknown = tr.size(); - - bool AlreadyAccepted = false; - - for(unsigned int i=0;i::iterator whereMuSD = find(MuSD_triggers .begin(), MuSD_triggers .end(),All_triggers[i].c_str() ); - vector::iterator whereJetMetSD = find(JetMetSD_triggers.begin(), JetMetSD_triggers.end(),All_triggers[i].c_str() ); - - - bool Accept = false; - bool Accept2 = false; - - if(All_triggers[i]=="HLT_PFMHT150_v2"){ - if(TrIndex_Unknown != tr.triggerIndex("HLT_PFMHT150_v2")){ - if(eHisto ->Fill(All_triggers[i].c_str(),Event_Weight);} - if(Accept && !AlreadyAccepted){plot->HistoInc->Fill(All_triggers[i].c_str(),Event_Weight);} - - if (whereJetMetSD!=JetMetSD_triggers.end()){ JetMetSD |= Accept; if(!AlreadyAccepted)JetMetSDInc |= Accept;} - else if(whereMuSD !=MuSD_triggers.end()) { MuSD |= Accept; if(!AlreadyAccepted)MuSDInc |= Accept;} - - if (whereJetMetSD!=JetMetSD_triggers.end()){ JetMetTr |= Accept2; } - else if(whereMuSD !=MuSD_triggers.end()) { MuTr |= Accept2; } - - - AlreadyAccepted |= Accept; - } - fflush(stdout); - - - if(JetMetSD||MuSD){ - plot->Histo->Fill("Total",Event_Weight); - plot->HistoInc->Fill("Total",Event_Weight); - } - -// JetMetTr = JetMetSD & ((rand()%100)<90); -// MuTr = MuSD & ((rand()%100)<90); - - Total+=Event_Weight; - if(JetMetSD)SDJetMET+=Event_Weight; - if(MuSD)SDMu+=Event_Weight; - if(JetMetSDInc)SDJetMETInc+=Event_Weight; - if(MuSDInc)SDMuInc+=Event_Weight; - if(JetMetSD||MuSD)SDBoth+=Event_Weight; - if(JetMetTr)TrJetMET+=Event_Weight; - if(MuTr)TrMu+=Event_Weight; - if(JetMetTr||MuTr)TrBoth+=Event_Weight; - - double Beta = 1.0; - if(SignalName!="Data")Beta = FastestHSCP(ev); - plot->BetaCount->Fill(Beta,Event_Weight); - if(MuSD||JetMetSD)plot->BetaTotal->Fill(Beta,Event_Weight); - if(MuSD)plot->BetaMuon->Fill(Beta,Event_Weight); - if(JetMetSD)plot->BetaJet->Fill(Beta,Event_Weight); - - }printf("\n"); - } - -// fprintf(pFile, "%15s --> JetMET = %5.2f%% (was %5.2f%%) Mu = %5.2f%% (was %5.2f%%) JetMET||Mu = %5.2f%% (%5.2f%%)\n",SignalName.c_str(), (100.0*TrJetMET)/Total, (100.0*SDJetMET)/Total, (100.0*TrMu)/Total, (100.0*SDMu)/Total, (100.0*TrBoth)/Total, (100.0*SDBoth)/Total); -// fprintf(stdout, "%15s --> JetMET = %5.2f%% (was %5.2f%%) Mu = %5.2f%% (was %5.2f%%) JetMET||Mu = %5.2f%% (%5.2f%%)\n",SignalName.c_str(), (100.0*TrJetMET)/Total, (100.0*SDJetMET)/Total, (100.0*TrMu)/Total, (100.0*SDMu)/Total, (100.0*TrBoth)/Total, (100.0*SDBoth)/Total); - - - fprintf(pFile, "%15s --> MET = %5.2f%% (modified %5.2f%%) Mu = %5.2f%% (modified %5.2f%%) JetMET||Mu = %5.2f%% (%5.2f%%)\n",SignalName.c_str(), (100.0*SDJetMET)/Total, (100.0*TrJetMET)/Total, (100.0*SDMu)/Total, (100.0*TrMu)/Total, (100.0*SDBoth)/Total, (100.0*TrBoth)/Total); - fprintf(stdout, "%15s --> MET = %5.2f%% (modified %5.2f%%) Mu = %5.2f%% (modified %5.2f%%) JetMET||Mu = %5.2f%% (%5.2f%%)\n",SignalName.c_str(), (100.0*SDJetMET)/Total, (100.0*TrJetMET)/Total, (100.0*SDMu)/Total, (100.0*TrMu)/Total, (100.0*SDBoth)/Total, (100.0*TrBoth)/Total); - - - -// printf("Total %i \n",Total); - plot->Histo->SetStats(0) ; - plot->Histo->LabelsOption("v"); - plot->Histo->Scale(100./Total); - - - plot->HistoInc->SetStats(0) ; - plot->HistoInc->LabelsOption("v"); - plot->HistoInc->Scale(100./Total); - - - plot->BetaTotal->Divide(plot->BetaCount); - plot->BetaMuon ->Divide(plot->BetaCount); - plot->BetaJet ->Divide(plot->BetaCount); - - plot->BetaTotal->Scale(100.0); - plot->BetaMuon ->Scale(100.0); - plot->BetaJet ->Scale(100.0); - - TH1** Histos = new TH1*[10]; - std::vector legend; - TCanvas* c1; - - c1 = new TCanvas("c1","c1,",600,600); legend.clear(); - Histos[0] = (TH1*)plot->BetaMuon; legend.push_back("Muon"); - Histos[1] = (TH1*)plot->BetaTotal; legend.push_back("Overall"); - DrawSuperposedHistos((TH1**)Histos, legend, "HIST E1", "#beta of the fastest HSCP", "Trigger Efficiency (%)", 0,1, 0,100); - DrawLegend((TObject**)Histos,legend,"Trigger:","LP",0.35, 0.93, 0.18, 0.04); - c1->Modified(); - DrawPreliminary(-1); - SaveCanvas(c1,"pictures/",SignalName); - delete c1; -} - -void layout(vector& plots, vector& sigs, string name){ - unsigned int NPath = 0+3; - - std::vector legend; - TObject** Histos1 = new TObject*[plots.size()]; - - -// TLine* line1 = new TLine(plots[0]->Histo->GetBinLowEdge(NPath+1), 0, plots[0]->Histo->GetBinLowEdge(NPath+1), 100); -// line1->SetLineWidth(2); line1->SetLineStyle(1); -// TLine* line2 = new TLine(plots[0]->Histo->GetBinLowEdge(NPath+3), 0, plots[0]->Histo->GetBinLowEdge(NPath+3), 100); -// line2->SetLineWidth(2); line2->SetLineStyle(1); - - TCanvas* c1 = new TCanvas("MyC","Histo",600,600); - legend.clear(); - c1->SetGrid(); - c1->SetBottomMargin(0.3); - - for(unsigned int i=0;iHisto; legend.push_back(sigs[i]); - } -// DrawSuperposedHistos((TH1**)Histos1, legend, "E1", "", "Efficiency (%)", 0,0, 0,100); - if(name=="summary_Gluino")DrawSuperposedHistos((TH1**)Histos1, legend, "E1", "", "Efficiency (%)", 0,0, 0,30); - else DrawSuperposedHistos((TH1**)Histos1, legend, "E1", "", "Efficiency (%)", 0,0, 0,100); - DrawLegend(Histos1,legend,"","P", 0.98, 0.90, 0.13, 0.07); - DrawPreliminary(-1); - - for(unsigned int i=0;iHisto->GetYaxis()->SetTitleOffset(1.55); - plots[i]->Histo->SetMarkerSize(0.8); - } -// line1->Draw(); -// line2->Draw(); - SaveCanvas(c1,"pictures/",name); - delete c1; - - c1 = new TCanvas("MyC","Histo",600,600); - legend.clear(); - c1->SetGrid(); - c1->SetBottomMargin(0.3); - - for(unsigned int i=0;iHistoInc; legend.push_back(sigs[i]); - } - if(name=="summary_Gluino")DrawSuperposedHistos((TH1**)Histos1, legend, "E1", "", "Incremental Efficiency (%)", 0,0, 0,30); - else DrawSuperposedHistos((TH1**)Histos1, legend, "E1", "", "Incremental Efficiency (%)", 0,0, 0,100); - DrawLegend(Histos1,legend,"","P", 0.98, 0.90, 0.13, 0.07); - DrawPreliminary(-1); - - for(unsigned int i=0;iHistoInc->GetYaxis()->SetTitleOffset(1.55); - plots[i]->HistoInc->SetMarkerSize(0.8); - } - -// line1->Draw(); -// line2->Draw(); - SaveCanvas(c1,"pictures/",name + "_inc"); - delete c1; -} - - -double FastestHSCP(const fwlite::ChainEvent& ev){ - fwlite::Handle< std::vector > genCollHandle; - genCollHandle.getByLabel(ev, "genParticles"); - if(!genCollHandle.isValid()){printf("GenParticle Collection NotFound\n");return -1;} - std::vector genColl = *genCollHandle; - - double MaxBeta=-1; - for(unsigned int g=0;g %s XXX %s\n",filterIndex,trEv.filterTag(filterIndex).label().c_str(), trEv.filterTag(filterIndex).process().c_str()); - - if (filterIndex NewThreshold && fabs(TOC[KEYS[i]].eta())=NObjectAboveThreshold)return true; - - }else{ - std::vector ObjPt; - - for (int i=0; i!=n; ++i) { - ObjPt.push_back(TOC[KEYS[i]].pt()); - //cout << " " << i << " " << VIDS[i] << "/" << KEYS[i] << ": "<< TOC[KEYS[i]].id() << " " << TOC[KEYS[i]].pt() << " " << TOC[KEYS[i]].eta() << " " << TOC[KEYS[i]].phi() << " " << TOC[KEYS[i]].mass()<< endl; - } - if((int)(ObjPt.size())SetMakeSharedLib(makeshared); - TString dummy = makeshared.ReplaceAll("-Wshadow ", ""); - gSystem->SetMakeSharedLib(makeshared); - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable();; - gSystem->Load("libDataFormatsFWLite.so"); - gSystem->Load("libDataFormatsHepMCCandidate.so"); - gSystem->Load("libDataFormatsCommon.so"); - gSystem->Load("libDataFormatsTrackerRecHit2D.so"); - gSystem->Load("libAnalysisDataFormatsSUSYBSMObjects.so"); - .x TriggerStudy.C+ -EOF diff --git a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/TriggerStudy/tdrstyle.C b/SUSYBSMAnalysis/HSCP/test/UsefulScripts/TriggerStudy/tdrstyle.C deleted file mode 100644 index 6e2de47e66928..0000000000000 --- a/SUSYBSMAnalysis/HSCP/test/UsefulScripts/TriggerStudy/tdrstyle.C +++ /dev/null @@ -1,169 +0,0 @@ -// -// TDR style macro for plots in ROOT -// .L tdrstyle.C -// setTDRStyle() -// -#include "TStyle.h" -#include "TPad.h" - -/* -// tdrGrid: Turns the grid lines on (true) or off (false) - -void tdrGrid(bool gridOn) { - tdrStyle->SetPadGridX(gridOn); - tdrStyle->SetPadGridY(gridOn); -} -*/ - -// fixOverlay: Redraws the axis - -void fixOverlay() { - gPad->RedrawAxis(); -} - -void setTDRStyle() { -// TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); - -// For the canvas: - gStyle->SetCanvasBorderMode(0); - gStyle->SetCanvasColor(kWhite); - gStyle->SetCanvasDefH(600); //Height of canvas - gStyle->SetCanvasDefW(600); //Width of canvas - gStyle->SetCanvasDefX(0); //POsition on screen - gStyle->SetCanvasDefY(0); - -// For the Pad: - gStyle->SetPadBorderMode(0); - // gStyle->SetPadBorderSize(Width_t size = 1); - gStyle->SetPadColor(kWhite); - gStyle->SetPadGridX(false); - gStyle->SetPadGridY(false); - gStyle->SetGridColor(0); - gStyle->SetGridStyle(3); - gStyle->SetGridWidth(1); - -// For the frame: - gStyle->SetFrameBorderMode(0); - gStyle->SetFrameBorderSize(1); - gStyle->SetFrameFillColor(0); - gStyle->SetFrameFillStyle(0); - gStyle->SetFrameLineColor(1); - gStyle->SetFrameLineStyle(1); - gStyle->SetFrameLineWidth(1); - -// For the histo: - // gStyle->SetHistFillColor(1); - // gStyle->SetHistFillStyle(0); - gStyle->SetHistLineColor(1); - gStyle->SetHistLineStyle(0); - gStyle->SetHistLineWidth(1); - // gStyle->SetLegoInnerR(Float_t rad = 0.5); - // gStyle->SetNumberContours(Int_t number = 20); - - gStyle->SetEndErrorSize(2); - //gStyle->SetErrorMarker(20); - gStyle->SetErrorX(0.); - - gStyle->SetMarkerStyle(20); - -//For the fit/function: - gStyle->SetOptFit(1); - gStyle->SetFitFormat("5.4g"); - gStyle->SetFuncColor(2); - gStyle->SetFuncStyle(1); - gStyle->SetFuncWidth(1); - -//For the date: - gStyle->SetOptDate(0); - // gStyle->SetDateX(Float_t x = 0.01); - // gStyle->SetDateY(Float_t y = 0.01); - -// For the statistics box: - gStyle->SetOptFile(0); - //gStyle->SetOptStat(0); - gStyle->SetOptStat("mr"); - gStyle->SetStatColor(kWhite); - gStyle->SetStatFont(42); - gStyle->SetStatFontSize(0.04);///---> gStyle->SetStatFontSize(0.025); - gStyle->SetStatTextColor(1); - gStyle->SetStatFormat("6.4g"); - gStyle->SetStatBorderSize(1); - gStyle->SetStatH(0.1); - gStyle->SetStatW(0.2);///---> gStyle->SetStatW(0.15); - - // gStyle->SetStatStyle(Style_t style = 1001); - // gStyle->SetStatX(Float_t x = 0); - // gStyle->SetStatY(Float_t y = 0); - -// Margins: - gStyle->SetPadTopMargin(0.05); - gStyle->SetPadBottomMargin(0.13); - gStyle->SetPadLeftMargin(0.16); - gStyle->SetPadRightMargin(0.02); - -// For the Global title: - - gStyle->SetOptTitle(0); - gStyle->SetTitleFont(42); - gStyle->SetTitleColor(1); - gStyle->SetTitleTextColor(1); - gStyle->SetTitleFillColor(10); - gStyle->SetTitleFontSize(0.05); - // gStyle->SetTitleH(0); // Set the height of the title box - // gStyle->SetTitleW(0); // Set the width of the title box - // gStyle->SetTitleX(0); // Set the position of the title box - // gStyle->SetTitleY(0.985); // Set the position of the title box - // gStyle->SetTitleStyle(Style_t style = 1001); - // gStyle->SetTitleBorderSize(2); - -// For the axis titles: - - gStyle->SetTitleColor(1, "XYZ"); - gStyle->SetTitleFont(42, "XYZ"); - gStyle->SetTitleSize(0.06, "XYZ"); - // gStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size? - // gStyle->SetTitleYSize(Float_t size = 0.02); - gStyle->SetTitleXOffset(0.9); - gStyle->SetTitleYOffset(1.25); - // gStyle->SetTitleOffset(1.1, "Y"); // Another way to set the Offset - -// For the axis labels: - - gStyle->SetLabelColor(1, "XYZ"); - gStyle->SetLabelFont(42, "XYZ"); - gStyle->SetLabelOffset(0.007, "XYZ"); - gStyle->SetLabelSize(0.05, "XYZ"); - -// For the axis: - - gStyle->SetAxisColor(1, "XYZ"); - gStyle->SetStripDecimals(kTRUE); - gStyle->SetTickLength(0.03, "XYZ"); - gStyle->SetNdivisions(510, "XYZ"); - gStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame - gStyle->SetPadTickY(1); - -// Change for log plots: - gStyle->SetOptLogx(0); - gStyle->SetOptLogy(0); - gStyle->SetOptLogz(0); - -// Postscript options: - gStyle->SetPaperSize(20.,20.); - // gStyle->SetLineScalePS(Float_t scale = 3); - // gStyle->SetLineStyleString(Int_t i, const char* text); - // gStyle->SetHeaderPS(const char* header); - // gStyle->SetTitlePS(const char* pstitle); - - // gStyle->SetBarOffset(Float_t baroff = 0.5); - // gStyle->SetBarWidth(Float_t barwidth = 0.5); - // gStyle->SetPaintTextFormat(const char* format = "g"); - // gStyle->SetPalette(Int_t ncolors = 0, Int_t* colors = 0); - // gStyle->SetTimeOffset(Double_t toffset); - // gStyle->SetHistMinimumZero(kTRUE); - -// gStyle->cd(); - - gROOT->ForceStyle(); - -} diff --git a/TopQuarkAnalysis/Examples/bin/BuildFile.xml b/TopQuarkAnalysis/Examples/bin/BuildFile.xml deleted file mode 100644 index 5f4223bc2f6b1..0000000000000 --- a/TopQuarkAnalysis/Examples/bin/BuildFile.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TopQuarkAnalysis/Examples/bin/NiceStyle.cc b/TopQuarkAnalysis/Examples/bin/NiceStyle.cc deleted file mode 100644 index a1803b4c6d228..0000000000000 --- a/TopQuarkAnalysis/Examples/bin/NiceStyle.cc +++ /dev/null @@ -1,39 +0,0 @@ -#include - -void setNiceStyle() { - TStyle *MyStyle = new TStyle("MyStyle", "My style for nicer plots"); - - Float_t xoff = MyStyle->GetLabelOffset("X"), yoff = MyStyle->GetLabelOffset("Y"), zoff = MyStyle->GetLabelOffset("Z"); - - MyStyle->SetCanvasBorderMode(0); - MyStyle->SetPadBorderMode(0); - MyStyle->SetPadColor(0); - MyStyle->SetCanvasColor(0); - MyStyle->SetTitleColor(0); - MyStyle->SetStatColor(0); - MyStyle->SetTitleBorderSize(0); - MyStyle->SetTitleFillColor(0); - MyStyle->SetTitleH(0.07); - MyStyle->SetTitleW(1.00); - MyStyle->SetTitleFont(132); - - MyStyle->SetLabelOffset(1.5 * xoff, "X"); - MyStyle->SetLabelOffset(1.5 * yoff, "Y"); - MyStyle->SetLabelOffset(1.5 * zoff, "Z"); - - MyStyle->SetTitleOffset(0.9, "X"); - MyStyle->SetTitleOffset(0.9, "Y"); - MyStyle->SetTitleOffset(0.9, "Z"); - - MyStyle->SetTitleSize(0.045, "X"); - MyStyle->SetTitleSize(0.045, "Y"); - MyStyle->SetTitleSize(0.045, "Z"); - - MyStyle->SetLabelFont(132, "X"); - MyStyle->SetLabelFont(132, "Y"); - MyStyle->SetLabelFont(132, "Z"); - - MyStyle->SetPalette(1); - - MyStyle->cd(); -} diff --git a/TopQuarkAnalysis/Examples/bin/TopElecFWLiteAnalyzer.cc b/TopQuarkAnalysis/Examples/bin/TopElecFWLiteAnalyzer.cc deleted file mode 100644 index 55103efa1927d..0000000000000 --- a/TopQuarkAnalysis/Examples/bin/TopElecFWLiteAnalyzer.cc +++ /dev/null @@ -1,116 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "FWCore/FWLite/interface/FWLiteEnabler.h" -#include "DataFormats/PatCandidates/interface/Electron.h" - -#include "TopQuarkAnalysis/Examples/bin/NiceStyle.cc" -#include "TopQuarkAnalysis/Examples/interface/RootSystem.h" -#include "TopQuarkAnalysis/Examples/interface/RootHistograms.h" -#include "TopQuarkAnalysis/Examples/interface/RootPostScript.h" - -int main(int argc, char* argv[]) { - if (argc < 3) { - // ------------------------------------------------- - std::cerr << "ERROR:: " - << "Wrong number of arguments! Please specify:" << std::endl - << " * filepath" << std::endl - << " * process name" << std::endl; - // ------------------------------------------------- - return -1; - } - - // load framework libraries - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - - // set nice style for histograms - setNiceStyle(); - - // define some histograms - TH1I* noElecs = new TH1I("noElecs", "N_{Elecs}", 10, 0, 10); - TH1F* ptElecs = new TH1F("ptElecs", "pt_{Elecs}", 100, 0., 300.); - TH1F* enElecs = new TH1F("enElecs", "energy_{Elecs}", 100, 0., 300.); - TH1F* etaElecs = new TH1F("etaElecs", "eta_{Elecs}", 100, -3., 3.); - TH1F* phiElecs = new TH1F("phiElecs", "phi_{Elecs}", 100, -5., 5.); - - // ------------------------------------------------- - std::cout << "open file: " << argv[1] << std::endl; - // ------------------------------------------------- - TFile* inFile = TFile::Open(argv[1]); - TTree* events_ = nullptr; - if (inFile) - inFile->GetObject("Events", events_); - if (events_ == nullptr) { - // ------------------------------------------------- - std::cerr << "ERROR:: " - << "Unable to retrieve TTree Events!" << std::endl - << " Eighter wrong file name or the the tree doesn't exists" << std::endl; - // ------------------------------------------------- - return -1; - } - - // acess branch of elecs - char elecName[50]; - sprintf(elecName, "patElectrons_selectedPatElectrons__%s.obj", argv[2]); - TBranch* elecs_ = events_->GetBranch(elecName); - assert(elecs_ != nullptr); - - // loop over events and fill histograms - std::vector elecs; - int nevt = events_->GetEntries(); - - // ------------------------------------------------- - std::cout << "start looping " << nevt << " events..." << std::endl; - // ------------------------------------------------- - for (int evt = 0; evt < nevt; ++evt) { - // set branch address - elecs_->SetAddress(&elecs); - // get event - elecs_->GetEntry(evt); - events_->GetEntry(evt, 0); - - // ------------------------------------------------- - if (evt > 0 && !(evt % 10)) - std::cout << " processing event: " << evt << std::endl; - // ------------------------------------------------- - - // fill histograms - noElecs->Fill(elecs.size()); - for (unsigned idx = 0; idx < elecs.size(); ++idx) { - // fill histograms - ptElecs->Fill(elecs[idx].pt()); - enElecs->Fill(elecs[idx].energy()); - etaElecs->Fill(elecs[idx].eta()); - phiElecs->Fill(elecs[idx].phi()); - } - } - // ------------------------------------------------- - std::cout << "close file" << std::endl; - // ------------------------------------------------- - inFile->Close(); - - // save histograms to file - TFile outFile("analyzeElecs.root", "recreate"); - outFile.mkdir("analyzeElec"); - outFile.cd("analyzeElec"); - noElecs->Write(); - ptElecs->Write(); - enElecs->Write(); - etaElecs->Write(); - phiElecs->Write(); - outFile.Close(); - - // free allocated space - delete noElecs; - delete ptElecs; - delete enElecs; - delete etaElecs; - delete phiElecs; - - return 0; -} diff --git a/TopQuarkAnalysis/Examples/bin/TopHypothesisFWLiteAnalyzer.cc b/TopQuarkAnalysis/Examples/bin/TopHypothesisFWLiteAnalyzer.cc deleted file mode 100644 index 5640fccdbdca9..0000000000000 --- a/TopQuarkAnalysis/Examples/bin/TopHypothesisFWLiteAnalyzer.cc +++ /dev/null @@ -1,159 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "FWCore/FWLite/interface/FWLiteEnabler.h" -#include "AnalysisDataFormats/TopObjects/interface/TtSemiLeptonicEvent.h" - -#include "TopQuarkAnalysis/Examples/bin/NiceStyle.cc" -#include "TopQuarkAnalysis/Examples/interface/RootSystem.h" -#include "TopQuarkAnalysis/Examples/interface/RootHistograms.h" -#include "TopQuarkAnalysis/Examples/interface/RootPostScript.h" - -int main(int argc, char* argv[]) { - if (argc < 4) { - // ------------------------------------------------- - std::cerr << "ERROR: Wrong number of arguments!" << std::endl - << "Please specify: * file name" << std::endl - << " * process name" << std::endl - << " * HypoClassKey" << std::endl - << "Example: TopHypothesisFWLiteAnalyzer ttSemiLepEvtBuilder.root TEST kGeom" << std::endl; - // ------------------------------------------------- - return -1; - } - - // get HypoClassKey - std::string hypoClassKey = argv[3]; - - // load framework libraries - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - - // set nice style for histograms - setNiceStyle(); - - // define some histograms - TH1F* hadWPt_ = new TH1F("hadWPt", "p_{t} (W_{had}) [GeV]", 100, 0., 500.); - TH1F* hadWMass_ = new TH1F("hadWMass", "M (W_{had}) [GeV]", 50, 0., 150.); - TH1F* hadTopPt_ = new TH1F("hadTopPt", "p_{t} (t_{had}) [GeV]", 100, 0., 500.); - TH1F* hadTopMass_ = new TH1F("hadTopMass", "M (t_{had}) [GeV]", 50, 50., 250.); - - TH1F* lepWPt_ = new TH1F("lepWPt", "p_{t} (W_{lep}) [GeV]", 100, 0., 500.); - TH1F* lepWMass_ = new TH1F("lepWMass", "M (W_{lep}) [GeV]", 50, 0., 150.); - TH1F* lepTopPt_ = new TH1F("lepTopPt", "p_{t} (t_{lep}) [GeV]", 100, 0., 500.); - TH1F* lepTopMass_ = new TH1F("lepTopMass", "M (t_{lep}) [GeV]", 50, 50., 250.); - - // ------------------------------------------------- - std::cout << "open file: " << argv[1] << std::endl; - // ------------------------------------------------- - TFile* inFile = TFile::Open(argv[1]); - TTree* events_ = nullptr; - if (inFile) - inFile->GetObject("Events", events_); - if (events_ == nullptr) { - // ------------------------------------------------- - std::cerr << "ERROR: Unable to retrieve TTree Events!" << std::endl - << "Either wrong file name or the tree doesn't exist." << std::endl; - // ------------------------------------------------- - return -1; - } - - // acess branch of ttSemiLepEvent - char decayName[50]; - sprintf(decayName, "recoGenParticles_decaySubset__%s.obj", argv[2]); - TBranch* decay_ = events_->GetBranch(decayName); // referred to from within TtGenEvent class - assert(decay_ != nullptr); - char genEvtName[50]; - sprintf(genEvtName, "TtGenEvent_genEvt__%s.obj", argv[2]); - TBranch* genEvt_ = events_->GetBranch(genEvtName); // referred to from within TtSemiLeptonicEvent class - assert(genEvt_ != nullptr); - char semiLepEvtName[50]; - sprintf(semiLepEvtName, "TtSemiLeptonicEvent_ttSemiLepEvent__%s.obj", argv[2]); - TBranch* semiLepEvt_ = events_->GetBranch(semiLepEvtName); - assert(semiLepEvt_ != nullptr); - - // loop over events and fill histograms - int nevt = events_->GetEntries(); - TtSemiLeptonicEvent semiLepEvt; - // ------------------------------------------------- - std::cout << "start looping " << nevt << " events..." << std::endl; - // ------------------------------------------------- - for (int evt = 0; evt < nevt; ++evt) { - // set branch address - semiLepEvt_->SetAddress(&semiLepEvt); - // get event - decay_->GetEntry(evt); - genEvt_->GetEntry(evt); - semiLepEvt_->GetEntry(evt); - events_->GetEntry(evt, 0); - - // ------------------------------------------------- - if (evt > 0 && !(evt % 10)) - std::cout << " processing event: " << evt << std::endl; - // ------------------------------------------------- - - // fill histograms - if (!semiLepEvt.isHypoAvailable(hypoClassKey)) { - std::cerr << "NonValidHyp:: " - << "Hypothesis not available for this event" << std::endl; - continue; - } - if (!semiLepEvt.isHypoValid(hypoClassKey)) { - std::cerr << "NonValidHyp::" - << "Hypothesis not valid for this event" << std::endl; - continue; - } - - const reco::Candidate* hadTop = semiLepEvt.hadronicDecayTop(hypoClassKey); - const reco::Candidate* hadW = semiLepEvt.hadronicDecayW(hypoClassKey); - const reco::Candidate* lepTop = semiLepEvt.leptonicDecayTop(hypoClassKey); - const reco::Candidate* lepW = semiLepEvt.leptonicDecayW(hypoClassKey); - - if (hadTop && hadW && lepTop && lepW) { - hadWPt_->Fill(hadW->pt()); - hadWMass_->Fill(hadW->mass()); - hadTopPt_->Fill(hadTop->pt()); - hadTopMass_->Fill(hadTop->mass()); - - lepWPt_->Fill(lepW->pt()); - lepWMass_->Fill(lepW->mass()); - lepTopPt_->Fill(lepTop->pt()); - lepTopMass_->Fill(lepTop->mass()); - } - } - // ------------------------------------------------- - std::cout << "close file" << std::endl; - // ------------------------------------------------- - inFile->Close(); - - // save histograms to file - TFile outFile("analyzeHypothesis.root", "recreate"); - // strip the leading "k" from the hypoClassKey to build directory name - TString outDir = "analyze" + std::string(hypoClassKey, 1, hypoClassKey.length()); - outFile.mkdir(outDir); - outFile.cd(outDir); - hadWPt_->Write(); - hadWMass_->Write(); - hadTopPt_->Write(); - hadTopMass_->Write(); - lepWPt_->Write(); - lepWMass_->Write(); - lepTopPt_->Write(); - lepTopMass_->Write(); - outFile.Close(); - - // free allocated space - delete hadWPt_; - delete hadWMass_; - delete hadTopPt_; - delete hadTopMass_; - delete lepWPt_; - delete lepWMass_; - delete lepTopPt_; - delete lepTopMass_; - - return 0; -} diff --git a/TopQuarkAnalysis/Examples/bin/TopJetFWLiteAnalyzer.cc b/TopQuarkAnalysis/Examples/bin/TopJetFWLiteAnalyzer.cc deleted file mode 100644 index 3fb2782652da2..0000000000000 --- a/TopQuarkAnalysis/Examples/bin/TopJetFWLiteAnalyzer.cc +++ /dev/null @@ -1,116 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "FWCore/FWLite/interface/FWLiteEnabler.h" -#include "DataFormats/PatCandidates/interface/Jet.h" - -#include "TopQuarkAnalysis/Examples/bin/NiceStyle.cc" -#include "TopQuarkAnalysis/Examples/interface/RootSystem.h" -#include "TopQuarkAnalysis/Examples/interface/RootHistograms.h" -#include "TopQuarkAnalysis/Examples/interface/RootPostScript.h" - -int main(int argc, char* argv[]) { - if (argc < 3) { - // ------------------------------------------------- - std::cerr << "ERROR:: " - << "Wrong number of arguments! Please specify:" << std::endl - << " * filepath" << std::endl - << " * process name" << std::endl; - // ------------------------------------------------- - return -1; - } - - // load framework libraries - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - - // set nice style for histograms - setNiceStyle(); - - // define some histograms - TH1I* noJets = new TH1I("noJets", "N_{Jets}", 10, 0, 10); - TH1F* ptJets = new TH1F("ptJets", "pt_{Jets}", 100, 0., 300.); - TH1F* enJets = new TH1F("enJets", "energy_{Jets}", 100, 0., 300.); - TH1F* etaJets = new TH1F("etaJets", "eta_{Jets}", 100, -3., 3.); - TH1F* phiJets = new TH1F("phiJets", "phi_{Jets}", 100, -5., 5.); - - // ------------------------------------------------- - std::cout << "open file: " << argv[1] << std::endl; - // ------------------------------------------------- - TFile* inFile = TFile::Open(argv[1]); - TTree* events_ = nullptr; - if (inFile) - inFile->GetObject("Events", events_); - if (events_ == nullptr) { - // ------------------------------------------------- - std::cerr << "ERROR:: " - << "Unable to retrieve TTree Events!" << std::endl - << " Eighter wrong file name or the the tree doesn't exists" << std::endl; - // ------------------------------------------------- - return -1; - } - - // acess branch of elecs - char jetsName[50]; - sprintf(jetsName, "patJets_selectedPatJets__%s.obj", argv[2]); - TBranch* jets_ = events_->GetBranch(jetsName); - assert(jets_ != nullptr); - - // loop over events and fill histograms - std::vector jets; - int nevt = events_->GetEntries(); - - // ------------------------------------------------- - std::cout << "start looping " << nevt << " events..." << std::endl; - // ------------------------------------------------- - for (int evt = 0; evt < nevt; ++evt) { - // set branch address - jets_->SetAddress(&jets); - // get event - jets_->GetEntry(evt); - events_->GetEntry(evt, 0); - - // ------------------------------------------------- - if (evt > 0 && !(evt % 10)) - std::cout << " processing event: " << evt << std::endl; - // ------------------------------------------------- - - // fill histograms - noJets->Fill(jets.size()); - for (unsigned idx = 0; idx < jets.size(); ++idx) { - // fill histograms - ptJets->Fill(jets[idx].pt()); - enJets->Fill(jets[idx].energy()); - etaJets->Fill(jets[idx].eta()); - phiJets->Fill(jets[idx].phi()); - } - } - // ------------------------------------------------- - std::cout << "close file" << std::endl; - // ------------------------------------------------- - inFile->Close(); - - // save histograms to file - TFile outFile("analyzeJets.root", "recreate"); - outFile.mkdir("analyzeJet"); - outFile.cd("analyzeJet"); - noJets->Write(); - ptJets->Write(); - enJets->Write(); - etaJets->Write(); - phiJets->Write(); - outFile.Close(); - - // free allocated space - delete noJets; - delete ptJets; - delete enJets; - delete etaJets; - delete phiJets; - - return 0; -} diff --git a/TopQuarkAnalysis/Examples/bin/TopMuonFWLiteAnalyzer.cc b/TopQuarkAnalysis/Examples/bin/TopMuonFWLiteAnalyzer.cc deleted file mode 100644 index a43795589107f..0000000000000 --- a/TopQuarkAnalysis/Examples/bin/TopMuonFWLiteAnalyzer.cc +++ /dev/null @@ -1,128 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "FWCore/FWLite/interface/FWLiteEnabler.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/Electron.h" - -#include "TopQuarkAnalysis/Examples/bin/NiceStyle.cc" -#include "TopQuarkAnalysis/Examples/interface/RootSystem.h" -#include "TopQuarkAnalysis/Examples/interface/RootHistograms.h" -#include "TopQuarkAnalysis/Examples/interface/RootPostScript.h" - -int main(int argc, char* argv[]) { - if (argc < 3) { - // ------------------------------------------------- - std::cerr << "ERROR:: " - << "Wrong number of arguments! Please specify:" << std::endl - << " * filepath" << std::endl - << " * process name" << std::endl; - // ------------------------------------------------- - return -1; - } - - // load framework libraries - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - - // set nice style for histograms - setNiceStyle(); - - // define some histograms - TH1I* noMuons = new TH1I("noMuons", "N(Muon)", 10, 0, 10); - TH1I* noLepts = new TH1I("noLepts", "N(Lepton)", 10, 0, 10); - TH1F* ptMuons = new TH1F("ptMuons", "pt_{Muons}", 100, 0., 300.); - TH1F* enMuons = new TH1F("enMuons", "energy_{Muons}", 100, 0., 300.); - TH1F* etaMuons = new TH1F("etaMuons", "eta_{Muons}", 100, -3., 3.); - TH1F* phiMuons = new TH1F("phiMuons", "phi_{Muons}", 100, -5., 5.); - - // ------------------------------------------------- - std::cout << "open file: " << argv[1] << std::endl; - // ------------------------------------------------- - TFile* inFile = TFile::Open(argv[1]); - TTree* events_ = nullptr; - if (inFile) - inFile->GetObject("Events", events_); - if (events_ == nullptr) { - // ------------------------------------------------- - std::cerr << "ERROR:: " - << "Unable to retrieve TTree Events!" << std::endl - << " Eighter wrong file name or the the tree doesn't exists" << std::endl; - // ------------------------------------------------- - return -1; - } - - // acess branch of muons and elecs - char muonName[50]; - sprintf(muonName, "patMuons_selectedPatMuons__%s.obj", argv[2]); - TBranch* muons_ = events_->GetBranch(muonName); - assert(muons_ != nullptr); - char elecName[50]; - sprintf(elecName, "patElectrons_selectedPatElectrons__%s.obj", argv[2]); - TBranch* elecs_ = events_->GetBranch(elecName); - assert(elecs_ != nullptr); - - // loop over events and fill histograms - std::vector muons; - std::vector elecs; - int nevt = events_->GetEntries(); - - // ------------------------------------------------- - std::cout << "start looping " << nevt << " events..." << std::endl; - // ------------------------------------------------- - for (int evt = 0; evt < nevt; ++evt) { - // set branch address - muons_->SetAddress(&muons); - elecs_->SetAddress(&elecs); - // get event - muons_->GetEntry(evt); - elecs_->GetEntry(evt); - events_->GetEntry(evt, 0); - - // ------------------------------------------------- - if (evt > 0 && !(evt % 10)) - std::cout << " processing event: " << evt << std::endl; - // ------------------------------------------------- - - // fill histograms - noMuons->Fill(muons.size()); - noLepts->Fill(muons.size() + elecs.size()); - for (unsigned idx = 0; idx < muons.size(); ++idx) { - // fill histograms - ptMuons->Fill(muons[idx].pt()); - enMuons->Fill(muons[idx].energy()); - etaMuons->Fill(muons[idx].eta()); - phiMuons->Fill(muons[idx].phi()); - } - } - // ------------------------------------------------- - std::cout << "close file" << std::endl; - // ------------------------------------------------- - inFile->Close(); - - // save histograms to file - TFile outFile("analyzeMuons.root", "recreate"); - outFile.mkdir("analyzeMuon"); - outFile.cd("analyzeMuon"); - noMuons->Write(); - noLepts->Write(); - ptMuons->Write(); - enMuons->Write(); - etaMuons->Write(); - phiMuons->Write(); - outFile.Close(); - - // free allocated space - delete noMuons; - delete noLepts; - delete ptMuons; - delete enMuons; - delete etaMuons; - delete phiMuons; - - return 0; -} diff --git a/TopQuarkAnalysis/Examples/interface/RootHistograms.h b/TopQuarkAnalysis/Examples/interface/RootHistograms.h deleted file mode 100644 index 7351c73e30385..0000000000000 --- a/TopQuarkAnalysis/Examples/interface/RootHistograms.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef RootHistograms_h -#define RootHistograms_h - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#endif diff --git a/TopQuarkAnalysis/Examples/interface/RootPostScript.h b/TopQuarkAnalysis/Examples/interface/RootPostScript.h deleted file mode 100644 index 4a9a4201640a4..0000000000000 --- a/TopQuarkAnalysis/Examples/interface/RootPostScript.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef RootPostScript_h -#define RootPostScript_h - -#include - -#endif diff --git a/TopQuarkAnalysis/Examples/interface/RootSystem.h b/TopQuarkAnalysis/Examples/interface/RootSystem.h deleted file mode 100644 index ef6a20f67ad5d..0000000000000 --- a/TopQuarkAnalysis/Examples/interface/RootSystem.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef RootSystem_h -#define RootSystem_h - -#include -#include -#include -#include - -#endif diff --git a/TopQuarkAnalysis/Examples/plugins/BuildFile.xml b/TopQuarkAnalysis/Examples/plugins/BuildFile.xml deleted file mode 100644 index 457fc6b29087f..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/BuildFile.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/TopQuarkAnalysis/Examples/plugins/HypothesisAnalyzer.cc b/TopQuarkAnalysis/Examples/plugins/HypothesisAnalyzer.cc deleted file mode 100644 index 96928bb82795b..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/HypothesisAnalyzer.cc +++ /dev/null @@ -1,194 +0,0 @@ -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include "TopQuarkAnalysis/Examples/plugins/HypothesisAnalyzer.h" - -HypothesisAnalyzer::HypothesisAnalyzer(const edm::ParameterSet& cfg) - : semiLepEvtToken_(consumes(cfg.getParameter("semiLepEvent"))), - hypoClassKey_(cfg.getParameter("hypoClassKey")) {} - -void HypothesisAnalyzer::analyze(const edm::Event& event, const edm::EventSetup& setup) { - ////////////////////////////////////////////////////////////////////////////////////////////////// - // get a handle for the TtSemiLeptonicEvent and a key to the hypothesis - ////////////////////////////////////////////////////////////////////////////////////////////////// - - edm::Handle semiLepEvt; - event.getByToken(semiLepEvtToken_, semiLepEvt); - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // check if hypothesis is available and valid in this event - ////////////////////////////////////////////////////////////////////////////////////////////////// - - if (!semiLepEvt->isHypoValid(hypoClassKey_)) { - edm::LogInfo("HypothesisAnalyzer") << "Hypothesis " << hypoClassKey_ << " not valid for this event"; - return; - } - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // get reconstructed top quarks, W bosons, the top pair and the neutrino from the hypothesis - ////////////////////////////////////////////////////////////////////////////////////////////////// - - const reco::Candidate* topPair = semiLepEvt->topPair(hypoClassKey_); - const reco::Candidate* lepTop = semiLepEvt->leptonicDecayTop(hypoClassKey_); - const reco::Candidate* lepW = semiLepEvt->leptonicDecayW(hypoClassKey_); - const reco::Candidate* hadTop = semiLepEvt->hadronicDecayTop(hypoClassKey_); - const reco::Candidate* hadW = semiLepEvt->hadronicDecayW(hypoClassKey_); - const reco::Candidate* neutrino = semiLepEvt->singleNeutrino(hypoClassKey_); - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // fill simple histograms with kinematic variables of the reconstructed particles - ////////////////////////////////////////////////////////////////////////////////////////////////// - - if (topPair) - topPairMass_->Fill(topPair->mass()); - if (hadW) { - hadWPt_->Fill(hadW->pt()); - hadWEta_->Fill(hadW->eta()); - hadWMass_->Fill(hadW->mass()); - } - if (hadTop) { - hadTopPt_->Fill(hadTop->pt()); - hadTopEta_->Fill(hadTop->eta()); - hadTopMass_->Fill(hadTop->mass()); - } - if (lepW) { - lepWPt_->Fill(lepW->pt()); - lepWEta_->Fill(lepW->eta()); - lepWMass_->Fill(lepW->mass()); - } - if (lepTop) { - lepTopPt_->Fill(lepTop->pt()); - lepTopEta_->Fill(lepTop->eta()); - lepTopMass_->Fill(lepTop->mass()); - } - if (neutrino) - neutrinoEta_->Fill(neutrino->eta()); - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // get corresponding genParticles - ////////////////////////////////////////////////////////////////////////////////////////////////// - - const math::XYZTLorentzVector* genTopPair = semiLepEvt->topPair(); - const reco::Candidate* genHadTop = semiLepEvt->hadronicDecayTop(); - const reco::Candidate* genHadW = semiLepEvt->hadronicDecayW(); - const reco::Candidate* genLepTop = semiLepEvt->leptonicDecayTop(); - const reco::Candidate* genLepW = semiLepEvt->leptonicDecayW(); - const reco::Candidate* genNeutrino = semiLepEvt->singleNeutrino(); - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // fill pull histograms of kinematic variables with respect to the generated particles - ////////////////////////////////////////////////////////////////////////////////////////////////// - - if (topPair && genTopPair) - topPairPullMass_->Fill((topPair->mass() - genTopPair->mass()) / genTopPair->mass()); - if (hadW && genHadW) { - hadWPullPt_->Fill((hadW->pt() - genHadW->pt()) / genHadW->pt()); - hadWPullEta_->Fill((hadW->eta() - genHadW->eta()) / genHadW->eta()); - hadWPullMass_->Fill((hadW->mass() - genHadW->mass()) / genHadW->mass()); - } - - if (hadTop && genHadTop) { - hadTopPullPt_->Fill((hadTop->pt() - genHadTop->pt()) / genHadTop->pt()); - hadTopPullEta_->Fill((hadTop->eta() - genHadTop->eta()) / genHadTop->eta()); - hadTopPullMass_->Fill((hadTop->mass() - genHadTop->mass()) / genHadTop->mass()); - } - if (lepW && genLepW) { - lepWPullPt_->Fill((lepW->pt() - genLepW->pt()) / genLepW->pt()); - lepWPullEta_->Fill((lepW->eta() - genLepW->eta()) / genLepW->eta()); - lepWPullMass_->Fill((lepW->mass() - genLepW->mass()) / genLepW->mass()); - } - - if (lepTop && genLepTop) { - lepTopPullPt_->Fill((lepTop->pt() - genLepTop->pt()) / genLepTop->pt()); - lepTopPullEta_->Fill((lepTop->eta() - genLepTop->eta()) / genLepTop->eta()); - lepTopPullMass_->Fill((lepTop->mass() - genLepTop->mass()) / genLepTop->mass()); - } - if (neutrino && genNeutrino) - neutrinoPullEta_->Fill((neutrino->eta() - genNeutrino->eta()) / genNeutrino->eta()); - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // fill histograms with variables describing the quality of the hypotheses - ////////////////////////////////////////////////////////////////////////////////////////////////// - - genMatchDr_->Fill(semiLepEvt->genMatchSumDR()); - kinFitProb_->Fill(semiLepEvt->fitProb()); - - if (hadTop && genHadTop) { - genMatchDrVsHadTopPullMass_->Fill((hadTop->mass() - genHadTop->mass()) / genHadTop->mass(), - semiLepEvt->genMatchSumDR()); - kinFitProbVsHadTopPullMass_->Fill((hadTop->mass() - genHadTop->mass()) / genHadTop->mass(), semiLepEvt->fitProb()); - } -} - -void HypothesisAnalyzer::beginJob() { - edm::Service fs; - if (!fs) - throw edm::Exception(edm::errors::Configuration, "TFile Service is not registered in cfg file"); - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // book histograms - ////////////////////////////////////////////////////////////////////////////////////////////////// - - neutrinoEta_ = fs->make("neutrinoEta", "#eta (neutrino)", 21, -4., 4.); - neutrinoPullEta_ = fs->make("neutrinoPullEta", "(#eta_{rec}-#eta_{gen})/#eta_{gen} (neutrino)", 40, -1., 1.); - - hadWPt_ = fs->make("hadWPt", "p_{T} (W_{had}) [GeV]", 25, 0., 500.); - hadWEta_ = fs->make("hadWEta", "#eta (W_{had})", 21, -4., 4.); - hadWMass_ = fs->make("hadWMass", "M (W_{had}) [GeV]", 25, 0., 200.); - - hadTopPt_ = fs->make("hadTopPt", "p_{T} (t_{had}) [GeV]", 25, 0., 500.); - hadTopEta_ = fs->make("hadTopEta", "#eta (t_{had})", 21, -4., 4.); - hadTopMass_ = fs->make("hadTopMass", "M (t_{had}) [GeV]", 40, 0., 400.); - - lepWPt_ = fs->make("lepWPt", "p_{t} (W_{lep}) [GeV]", 25, 0., 500.); - lepWEta_ = fs->make("lepWEta", "#eta (W_{lep})", 21, -4., 4.); - lepWMass_ = fs->make("lepWMass", "M (W_{lep}) [GeV]", 25, 0., 200.); - - lepTopPt_ = fs->make("lepTopPt", "p_{T} (t_{lep}) [GeV]", 25, 0., 500.); - lepTopEta_ = fs->make("lepTopEta", "#eta (t_{lep})", 21, -4., 4.); - lepTopMass_ = fs->make("lepTopMass", "M (t_{lep}) [GeV]", 40, 0., 400.); - - hadWPullPt_ = fs->make("hadWPullPt", "(p_{T,rec}-p_{T,gen})/p_{T,gen} (W_{had})", 40, -1., 1.); - hadWPullEta_ = fs->make("hadWPullEta", "(#eta_{rec}-#eta_{gen})/#eta_{gen} (W_{had})", 40, -1., 1.); - hadWPullMass_ = fs->make("hadWPullMass", "(M_{rec}-M_{gen})/M_{gen} (W_{had})", 40, -1., 1.); - - hadTopPullPt_ = fs->make("hadTopPullPt", "(p_{T,rec}-p_{T,gen})/p_{T,gen} (t_{had})", 40, -1., 1.); - hadTopPullEta_ = fs->make("hadTopPullEta", "(#eta_{rec}-#eta_{gen})/#eta_{gen} (t_{had})", 40, -1., 1.); - hadTopPullMass_ = fs->make("hadTopPullMass", "(M_{rec}-M_{gen})/M_{gen} (t_{had})", 40, -1., 1.); - - lepWPullPt_ = fs->make("lepWPullPt", "(p_{T,rec}-p_{T,gen})/p_{T,gen} (W_{lep})", 40, -1., 1.); - lepWPullEta_ = fs->make("lepWPullEta", "(#eta_{rec}-#eta_{gen})/#eta_{gen} (W_{lep})", 40, -1., 1.); - lepWPullMass_ = fs->make("lepWPullMass", "(M_{rec}-M_{gen})/M_{gen} (W_{lep})", 40, -1., 1.); - - lepTopPullPt_ = fs->make("lepTopPullPt", "(p_{T,rec}-p_{T,gen})/p_{T,gen} (t_{lep})", 40, -1., 1.); - lepTopPullEta_ = fs->make("lepTopPullEta", "(#eta_{rec}-#eta_{gen})/#eta_{gen} (t_{lep})", 40, -1., 1.); - lepTopPullMass_ = fs->make("lepTopPullMass", "(M_{rec}-M_{gen})/M_{gen} (t_{lep})", 40, -1., 1.); - - topPairMass_ = fs->make("topPairMass", "M (t#bar{t})", 36, 340., 940.); - topPairPullMass_ = fs->make("topPairPullMass", "(M_{rec}-M_{gen})/M_{gen} (t#bar{t})", 40, -1., 1.); - - genMatchDr_ = fs->make("genMatchDr", "GenMatch #Sigma#DeltaR", 40, 0., 4.); - kinFitProb_ = fs->make("kinFitProb", "KinFit probability", 50, 0., 1.); - - genMatchDrVsHadTopPullMass_ = fs->make("genMatchDrVsHadTopPullMass", - "GenMatch #Sigma #Delta R vs. (M_{rec}-M_{gen})/M_{gen} (t_{had}))", - 40, - -1., - 1., - 40, - 0., - 4.); - kinFitProbVsHadTopPullMass_ = fs->make("kinFitProbVsHadTopPullMass", - "KinFit probability vs. (M_{rec}-M_{gen})/M_{gen} (t_{had}))", - 40, - -1., - 1., - 20, - 0., - 1.); -} - -void HypothesisAnalyzer::endJob() {} diff --git a/TopQuarkAnalysis/Examples/plugins/HypothesisAnalyzer.h b/TopQuarkAnalysis/Examples/plugins/HypothesisAnalyzer.h deleted file mode 100644 index c8a1d67622e47..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/HypothesisAnalyzer.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef HypothesisAnalyzer_h -#define HypothesisAnalyzer_h - -#include "TH1F.h" -#include "TH2F.h" - -#include "FWCore/Framework/interface/EDAnalyzer.h" - -#include "AnalysisDataFormats/TopObjects/interface/TtSemiLeptonicEvent.h" - -class HypothesisAnalyzer : public edm::EDAnalyzer { -public: - explicit HypothesisAnalyzer(const edm::ParameterSet&); - ~HypothesisAnalyzer() override{}; - -private: - void beginJob() override; - void analyze(const edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - const edm::EDGetTokenT semiLepEvtToken_; - const std::string hypoClassKey_; - - TH1F* neutrinoEta_; - TH1F* neutrinoPullEta_; - - TH1F* hadWPt_; - TH1F* hadWEta_; - TH1F* hadWMass_; - - TH1F* hadWPullPt_; - TH1F* hadWPullEta_; - TH1F* hadWPullMass_; - - TH1F* hadTopPt_; - TH1F* hadTopEta_; - TH1F* hadTopMass_; - - TH1F* hadTopPullPt_; - TH1F* hadTopPullEta_; - TH1F* hadTopPullMass_; - - TH1F* lepWPt_; - TH1F* lepWEta_; - TH1F* lepWMass_; - - TH1F* lepWPullPt_; - TH1F* lepWPullEta_; - TH1F* lepWPullMass_; - - TH1F* lepTopPt_; - TH1F* lepTopEta_; - TH1F* lepTopMass_; - - TH1F* topPairMass_; - TH1F* topPairPullMass_; - - TH1F* lepTopPullPt_; - TH1F* lepTopPullEta_; - TH1F* lepTopPullMass_; - - TH1F* genMatchDr_; - TH1F* kinFitProb_; - - TH2F* genMatchDrVsHadTopPullMass_; - TH2F* kinFitProbVsHadTopPullMass_; -}; - -#endif diff --git a/TopQuarkAnalysis/Examples/plugins/SealModule.cc b/TopQuarkAnalysis/Examples/plugins/SealModule.cc deleted file mode 100644 index ad75a7faa9665..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/SealModule.cc +++ /dev/null @@ -1,14 +0,0 @@ -#include "TopQuarkAnalysis/Examples/plugins/TopGenEventAnalyzer.h" -#include "TopQuarkAnalysis/Examples/plugins/HypothesisAnalyzer.h" -#include "TopQuarkAnalysis/Examples/plugins/TopMuonAnalyzer.h" -#include "TopQuarkAnalysis/Examples/plugins/TopElecAnalyzer.h" -#include "TopQuarkAnalysis/Examples/plugins/TopTauAnalyzer.h" -#include "TopQuarkAnalysis/Examples/plugins/TopJetAnalyzer.h" - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(TopGenEventAnalyzer); -DEFINE_FWK_MODULE(HypothesisAnalyzer); -DEFINE_FWK_MODULE(TopMuonAnalyzer); -DEFINE_FWK_MODULE(TopElecAnalyzer); -DEFINE_FWK_MODULE(TopTauAnalyzer); -DEFINE_FWK_MODULE(TopJetAnalyzer); diff --git a/TopQuarkAnalysis/Examples/plugins/TopElecAnalyzer.cc b/TopQuarkAnalysis/Examples/plugins/TopElecAnalyzer.cc deleted file mode 100644 index 7647dd69118c3..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopElecAnalyzer.cc +++ /dev/null @@ -1,54 +0,0 @@ -#include "TopQuarkAnalysis/Examples/plugins/TopElecAnalyzer.h" - -TopElecAnalyzer::TopElecAnalyzer(const edm::ParameterSet& cfg) - : inputToken_(consumes >(cfg.getParameter("input"))), - verbose_(cfg.getParameter("verbose")) { - edm::Service fs; - - mult_ = fs->make("mult", "multiplicity (electrons)", 10, 0, 10); - en_ = fs->make("en", "energy (electrons)", 60, 0., 300.); - pt_ = fs->make("pt", "pt (electrons)", 60, 0., 300.); - eta_ = fs->make("eta", "eta (electrons)", 30, -3., 3.); - phi_ = fs->make("phi", "phi (electrons)", 40, -4., 4.); -} - -TopElecAnalyzer::~TopElecAnalyzer() {} - -void TopElecAnalyzer::analyze(const edm::Event& evt, const edm::EventSetup& setup) { - edm::Handle > elecs; - evt.getByToken(inputToken_, elecs); - - // fill histograms - - mult_->Fill(elecs->size()); - for (std::vector::const_iterator elec = elecs->begin(); elec != elecs->end(); ++elec) { - en_->Fill(elec->energy()); - pt_->Fill(elec->pt()); - eta_->Fill(elec->eta()); - phi_->Fill(elec->phi()); - } - - // produce printout if desired - - if (elecs->empty() || !verbose_) - return; - - unsigned i = 0; - - std::cout << "=======================================================" << std::endl; - std::cout << std::setw(5) << "ele :" << std::setw(13) << "et :" << std::setw(13) << "eta :" << std::setw(13) - << "phi :" << std::setw(11) << "relIso" << std::endl; - std::cout << "-------------------------------------------------------" << std::endl; - for (std::vector::const_iterator elec = elecs->begin(); elec != elecs->end(); ++elec) { - std::cout << std::setw(3) << i << " : " << std::setw(10) << elec->pt() << " : " << std::setw(10) << elec->eta() - << " : " << std::setw(10) << elec->phi() << " : " << std::setw(10) - << (elec->dr03TkSumPt() + elec->dr03EcalRecHitSumEt() + elec->dr03HcalTowerSumEt()) / elec->et() - << std::endl; - i++; - } - std::cout << "=======================================================" << std::endl; -} - -void TopElecAnalyzer::beginJob() {} - -void TopElecAnalyzer::endJob() {} diff --git a/TopQuarkAnalysis/Examples/plugins/TopElecAnalyzer.h b/TopQuarkAnalysis/Examples/plugins/TopElecAnalyzer.h deleted file mode 100644 index 651e38e73dbca..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopElecAnalyzer.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef TopElecAnalyzer_h -#define TopElecAnalyzer_h - -#include "TH1F.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/PatCandidates/interface/Electron.h" - -class TopElecAnalyzer : public edm::EDAnalyzer { -public: - explicit TopElecAnalyzer(const edm::ParameterSet &); - ~TopElecAnalyzer() override; - -private: - void beginJob() override; - void analyze(const edm::Event &, const edm::EventSetup &) override; - void endJob() override; - - edm::EDGetTokenT > inputToken_; - bool verbose_; - - TH1F *mult_; - TH1F *en_; - TH1F *pt_; - TH1F *eta_; - TH1F *phi_; -}; - -#endif diff --git a/TopQuarkAnalysis/Examples/plugins/TopGenEventAnalyzer.cc b/TopQuarkAnalysis/Examples/plugins/TopGenEventAnalyzer.cc deleted file mode 100644 index 0debc785767c9..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopGenEventAnalyzer.cc +++ /dev/null @@ -1,57 +0,0 @@ -#include "TopQuarkAnalysis/Examples/plugins/TopGenEventAnalyzer.h" - -TopGenEventAnalyzer::TopGenEventAnalyzer(const edm::ParameterSet& cfg) - : inputGenEventToken_(consumes(cfg.getParameter("genEvent"))) { - edm::Service fs; - nLep_ = fs->make("nLep", "N(Lepton)", 5, 0., 5.); - topPt_ = fs->make("topPt", "pt (top)", 100, 0., 500.); - topEta_ = fs->make("topEta", "eta(top)", 40, -5., 5.); - topPhi_ = fs->make("topPhi", "phi(top)", 60, -3.5, 3.5); - topBarPt_ = fs->make("topBarPt", "pt (topBar)", 100, 0., 500.); - topBarEta_ = fs->make("topBarEta", "eta(topBar)", 40, -5., 5.); - topBarPhi_ = fs->make("topBarPhi", "phi(topBar)", 60, -3.5, 3.5); - ttbarPt_ = fs->make("ttbarPt", "pt (ttbar)", 100, 0., 500.); - ttbarEta_ = fs->make("ttbarEta", "eta(ttbar)", 40, -5., 5.); - ttbarPhi_ = fs->make("ttbarPhi", "phi(ttbar)", 60, -3.5, 3.5); - prodChan_ = fs->make("prodChan", "production mode", 3, 0, 3); - prodChan_->GetXaxis()->SetBinLabel(1, "gg"); - prodChan_->GetXaxis()->SetBinLabel(2, "qqbar"); - prodChan_->GetXaxis()->SetBinLabel(3, "other"); -} - -TopGenEventAnalyzer::~TopGenEventAnalyzer() {} - -void TopGenEventAnalyzer::analyze(const edm::Event& evt, const edm::EventSetup& setup) { - edm::Handle genEvent; - evt.getByToken(inputGenEventToken_, genEvent); - - if (!genEvent->isTtBar()) - return; - - if (genEvent->fromGluonFusion()) - prodChan_->Fill("gg", 1); - else if (genEvent->fromQuarkAnnihilation()) - prodChan_->Fill("qqbar", 1); - else - prodChan_->Fill("other", 1); - - // fill BR's - nLep_->Fill(genEvent->numberOfLeptons()); - - //fill top kinematic - topPt_->Fill(genEvent->top()->pt()); - topEta_->Fill(genEvent->top()->eta()); - topPhi_->Fill(genEvent->top()->phi()); - topBarPt_->Fill(genEvent->topBar()->pt()); - topBarEta_->Fill(genEvent->topBar()->eta()); - topBarPhi_->Fill(genEvent->topBar()->phi()); - - //fill ttbar kinematics - ttbarPt_->Fill(genEvent->topPair()->pt()); - ttbarEta_->Fill(genEvent->topPair()->eta()); - ttbarPhi_->Fill(genEvent->topPair()->phi()); -} - -void TopGenEventAnalyzer::beginJob() {} - -void TopGenEventAnalyzer::endJob() {} diff --git a/TopQuarkAnalysis/Examples/plugins/TopGenEventAnalyzer.h b/TopQuarkAnalysis/Examples/plugins/TopGenEventAnalyzer.h deleted file mode 100644 index ee291cc930e0a..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopGenEventAnalyzer.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef TopGenEventAnalyzer_h -#define TopGenEventAnalyzer_h - -#include "TH1.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "AnalysisDataFormats/TopObjects/interface/TtGenEvent.h" - -class TopGenEventAnalyzer : public edm::EDAnalyzer { -public: - explicit TopGenEventAnalyzer(const edm::ParameterSet &); - ~TopGenEventAnalyzer() override; - -private: - void beginJob() override; - void analyze(const edm::Event &, const edm::EventSetup &) override; - void endJob() override; - - edm::EDGetTokenT inputGenEventToken_; - - TH1F *nLep_; - TH1F *topPt_; - TH1F *topEta_; - TH1F *topPhi_; - TH1F *topBarPt_; - TH1F *topBarEta_; - TH1F *topBarPhi_; - TH1F *ttbarPt_; - TH1F *ttbarEta_; - TH1F *ttbarPhi_; - TH1F *prodChan_; -}; - -#endif diff --git a/TopQuarkAnalysis/Examples/plugins/TopJetAnalyzer.cc b/TopQuarkAnalysis/Examples/plugins/TopJetAnalyzer.cc deleted file mode 100644 index 59d5870ace070..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopJetAnalyzer.cc +++ /dev/null @@ -1,80 +0,0 @@ -#include "TopQuarkAnalysis/Examples/plugins/TopJetAnalyzer.h" - -TopJetAnalyzer::TopJetAnalyzer(const edm::ParameterSet& cfg) - : inputToken_(consumes >(cfg.getParameter("input"))), - verbose_(cfg.getParameter("verbose")) { - edm::Service fs; - - mult_ = fs->make("mult", "multiplicity (jets)", 30, 0, 30); - en_ = fs->make("en", "energy (jets)", 60, 0., 300.); - pt_ = fs->make("pt", "pt (jets)", 60, 0., 300.); - eta_ = fs->make("eta", "eta (jets)", 30, -3., 3.); - phi_ = fs->make("phi", "phi (jets)", 40, -4., 4.); -} - -TopJetAnalyzer::~TopJetAnalyzer() {} - -void TopJetAnalyzer::analyze(const edm::Event& evt, const edm::EventSetup& setup) { - edm::Handle > jets; - evt.getByToken(inputToken_, jets); - - // fill histograms - - mult_->Fill(jets->size()); - for (std::vector::const_iterator jet = jets->begin(); jet != jets->end(); ++jet) { - pt_->Fill(jet->pt()); - en_->Fill(jet->energy()); - eta_->Fill(jet->eta()); - phi_->Fill(jet->phi()); - } - - // produce printout if desired - - if (jets->empty() || !verbose_) - return; - - int lineWidth = 75; - if (jets->begin()->isCaloJet()) - lineWidth = 100; - else if (jets->begin()->isPFJet()) - lineWidth = 120; - - std::cout << std::setfill('=') << std::setw(lineWidth) << "\n" << std::setfill(' '); - std::cout << std::setw(5) << "jet :" << std::setw(11) << "pt :" << std::setw(9) << "eta :" << std::setw(9) - << "phi :" << std::setw(11) << "TCHE :" << std::setw(11) << "TCHP :" << std::setw(9) - << "SSVHE :" << std::setw(9) << "SSVHP :"; - if (jets->begin()->isCaloJet()) { - std::cout << std::setw(8) << "emf :" << std::setw(10) << "n90Hits :" << std::setw(7) << "fHPD"; - } - if (jets->begin()->isPFJet()) { - std::cout << std::setw(9) << "chf : " << std::setw(8) << "nhf : " << std::setw(8) << "cef : " << std::setw(8) - << "nef : " << std::setw(6) << "nCh : " << std::setw(6) << "nConst"; - } - std::cout << std::endl << std::setfill('-') << std::setw(lineWidth) << "\n" << std::setfill(' '); - unsigned i = 0; - for (std::vector::const_iterator jet = jets->begin(); jet != jets->end(); ++jet) { - std::cout << std::setw(3) << i << " : " << std::setprecision(3) << std::fixed << std::setw(8) << jet->pt() << " : " - << std::setw(6) << jet->eta() << " : " << std::setw(6) << jet->phi() << " : " << std::setw(8) - << jet->bDiscriminator("trackCountingHighEffBJetTags") << " : " << std::setw(8) - << jet->bDiscriminator("trackCountingHighPurBJetTags") << " : " << std::setw(6) - << jet->bDiscriminator("simpleSecondaryVertexHighEffBJetTags") << " : " << std::setw(6) - << jet->bDiscriminator("simpleSecondaryVertexHighPurBJetTags") << " : "; - if (jet->isCaloJet()) { - std::cout << std::setw(5) << jet->emEnergyFraction() << " : " << std::setw(7) << jet->jetID().n90Hits << " : " - << std::setw(6) << jet->jetID().fHPD; - } - if (jet->isPFJet()) { - std::cout << std::setw(5) << jet->chargedHadronEnergyFraction() << " : " << std::setw(5) - << jet->neutralHadronEnergyFraction() << " : " << std::setw(5) << jet->chargedEmEnergyFraction() - << " : " << std::setw(5) << jet->neutralEmEnergyFraction() << " : " << std::setw(3) - << jet->chargedMultiplicity() << " : " << std::setw(6) << jet->nConstituents(); - } - std::cout << std::endl; - i++; - } - std::cout << std::setfill('=') << std::setw(lineWidth) << "\n" << std::setfill(' '); -} - -void TopJetAnalyzer::beginJob() {} - -void TopJetAnalyzer::endJob() {} diff --git a/TopQuarkAnalysis/Examples/plugins/TopJetAnalyzer.h b/TopQuarkAnalysis/Examples/plugins/TopJetAnalyzer.h deleted file mode 100644 index 7f0e2d3fb56e1..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopJetAnalyzer.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef TopJetAnalyzer_h -#define TopJetAnalyzer_h - -#include "TH1F.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/PatCandidates/interface/Jet.h" - -class TopJetAnalyzer : public edm::EDAnalyzer { -public: - explicit TopJetAnalyzer(const edm::ParameterSet &); - ~TopJetAnalyzer() override; - -private: - void beginJob() override; - void analyze(const edm::Event &, const edm::EventSetup &) override; - void endJob() override; - - edm::EDGetTokenT > inputToken_; - bool verbose_; - - TH1F *mult_; - TH1F *en_; - TH1F *pt_; - TH1F *eta_; - TH1F *phi_; -}; - -#endif diff --git a/TopQuarkAnalysis/Examples/plugins/TopMuonAnalyzer.cc b/TopQuarkAnalysis/Examples/plugins/TopMuonAnalyzer.cc deleted file mode 100644 index 02ee1ac814a2b..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopMuonAnalyzer.cc +++ /dev/null @@ -1,55 +0,0 @@ -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "TopQuarkAnalysis/Examples/plugins/TopMuonAnalyzer.h" - -TopMuonAnalyzer::TopMuonAnalyzer(const edm::ParameterSet& cfg) - : inputToken_(consumes >(cfg.getParameter("input"))), - verbose_(cfg.getParameter("verbose")) { - edm::Service fs; - - mult_ = fs->make("mult", "multiplicity (muons)", 10, 0, 10); - en_ = fs->make("en", "energy (muons)", 60, 0., 300.); - pt_ = fs->make("pt", "pt (muons)", 60, 0., 300.); - eta_ = fs->make("eta", "eta (muons)", 30, -3., 3.); - phi_ = fs->make("phi", "phi (muons)", 40, -4., 4.); -} - -TopMuonAnalyzer::~TopMuonAnalyzer() {} - -void TopMuonAnalyzer::analyze(const edm::Event& evt, const edm::EventSetup& setup) { - edm::Handle > muons; - evt.getByToken(inputToken_, muons); - - // fill histograms - - mult_->Fill(muons->size()); - for (std::vector::const_iterator muon = muons->begin(); muon != muons->end(); ++muon) { - pt_->Fill(muon->pt()); - en_->Fill(muon->energy()); - eta_->Fill(muon->eta()); - phi_->Fill(muon->phi()); - } - - // produce printout if desired - - if (muons->empty() || !verbose_) - return; - - unsigned i = 0; - - std::cout << "===================================================================" << std::endl; - std::cout << std::setw(5) << "mu :" << std::setw(13) << "pt :" << std::setw(13) << "eta :" << std::setw(13) - << "phi :" << std::setw(13) << "relIso :" << std::setw(6) << "GLB :" << std::setw(4) << "TRK" << std::endl; - std::cout << "-------------------------------------------------------------------" << std::endl; - for (std::vector::const_iterator muon = muons->begin(); muon != muons->end(); ++muon) { - std::cout << std::setw(3) << i << " : " << std::setw(10) << muon->pt() << " : " << std::setw(10) << muon->eta() - << " : " << std::setw(10) << muon->phi() << " : " << std::setw(10) - << (muon->trackIso() + muon->caloIso()) / muon->pt() << " : " << std::setw(3) << muon->isGlobalMuon() - << " : " << std::setw(3) << muon->isTrackerMuon() << std::endl; - i++; - } - std::cout << "===================================================================" << std::endl; -} - -void TopMuonAnalyzer::beginJob() {} - -void TopMuonAnalyzer::endJob() {} diff --git a/TopQuarkAnalysis/Examples/plugins/TopMuonAnalyzer.h b/TopQuarkAnalysis/Examples/plugins/TopMuonAnalyzer.h deleted file mode 100644 index ec324205b9842..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopMuonAnalyzer.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef TopMuonAnalyzer_h -#define TopMuonAnalyzer_h - -#include "TH1F.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/PatCandidates/interface/Muon.h" - -class TopMuonAnalyzer : public edm::EDAnalyzer { -public: - explicit TopMuonAnalyzer(const edm::ParameterSet &); - ~TopMuonAnalyzer() override; - -private: - void beginJob() override; - void analyze(const edm::Event &, const edm::EventSetup &) override; - void endJob() override; - - edm::EDGetTokenT > inputToken_; - bool verbose_; - - TH1F *mult_; - TH1F *en_; - TH1F *pt_; - TH1F *eta_; - TH1F *phi_; -}; - -#endif diff --git a/TopQuarkAnalysis/Examples/plugins/TopTauAnalyzer.cc b/TopQuarkAnalysis/Examples/plugins/TopTauAnalyzer.cc deleted file mode 100644 index f597335814be3..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopTauAnalyzer.cc +++ /dev/null @@ -1,33 +0,0 @@ -#include "TopQuarkAnalysis/Examples/plugins/TopTauAnalyzer.h" - -TopTauAnalyzer::TopTauAnalyzer(const edm::ParameterSet& cfg) - : inputToken_(consumes >(cfg.getParameter("input"))) { - edm::Service fs; - - mult_ = fs->make("mult", "multiplicity (taus)", 30, 0, 30); - en_ = fs->make("en", "energy (taus)", 60, 0., 300.); - pt_ = fs->make("pt", "pt (taus}", 60, 0., 300.); - eta_ = fs->make("eta", "eta (taus)", 30, -3., 3.); - phi_ = fs->make("phi", "phi (taus)", 40, -4., 4.); -} - -TopTauAnalyzer::~TopTauAnalyzer() {} - -void TopTauAnalyzer::analyze(const edm::Event& evt, const edm::EventSetup& setup) { - edm::Handle > taus; - evt.getByToken(inputToken_, taus); - - // fill histograms - - mult_->Fill(taus->size()); - for (std::vector::const_iterator tau = taus->begin(); tau != taus->end(); ++tau) { - en_->Fill(tau->energy()); - pt_->Fill(tau->pt()); - eta_->Fill(tau->eta()); - phi_->Fill(tau->phi()); - } -} - -void TopTauAnalyzer::beginJob() {} - -void TopTauAnalyzer::endJob() {} diff --git a/TopQuarkAnalysis/Examples/plugins/TopTauAnalyzer.h b/TopQuarkAnalysis/Examples/plugins/TopTauAnalyzer.h deleted file mode 100644 index a88cad0a74974..0000000000000 --- a/TopQuarkAnalysis/Examples/plugins/TopTauAnalyzer.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef TopTauAnalyzer_h -#define TopTauAnalyzer_h - -#include "TH1F.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "DataFormats/PatCandidates/interface/Tau.h" - -class TopTauAnalyzer : public edm::EDAnalyzer { -public: - explicit TopTauAnalyzer(const edm::ParameterSet &); - ~TopTauAnalyzer() override; - -private: - void beginJob() override; - void analyze(const edm::Event &, const edm::EventSetup &) override; - void endJob() override; - - edm::EDGetTokenT > inputToken_; - - TH1F *mult_; - TH1F *en_; - TH1F *pt_; - TH1F *eta_; - TH1F *phi_; -}; - -#endif diff --git a/TopQuarkAnalysis/Examples/python/HypothesisAnalyzer_cff.py b/TopQuarkAnalysis/Examples/python/HypothesisAnalyzer_cff.py deleted file mode 100644 index 738e73f300cd5..0000000000000 --- a/TopQuarkAnalysis/Examples/python/HypothesisAnalyzer_cff.py +++ /dev/null @@ -1,17 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# make simple analysis plots for a comparison -# between event hypothesis from different algorithms -# - -# initialize/configure analyzers -from TopQuarkAnalysis.Examples.HypothesisAnalyzer_cfi import * -analyzeGenMatch = analyzeHypothesis.clone(hypoClassKey = "kGenMatch") -analyzeMaxSumPtWMass = analyzeHypothesis.clone(hypoClassKey = "kMaxSumPtWMass") -analyzeKinFit = analyzeHypothesis.clone(hypoClassKey = "kKinFit") - -# define sequence -analyzeHypotheses = cms.Sequence(analyzeGenMatch * - analyzeMaxSumPtWMass * - analyzeKinFit) diff --git a/TopQuarkAnalysis/Examples/python/HypothesisAnalyzer_cfi.py b/TopQuarkAnalysis/Examples/python/HypothesisAnalyzer_cfi.py deleted file mode 100644 index 6479f84b30155..0000000000000 --- a/TopQuarkAnalysis/Examples/python/HypothesisAnalyzer_cfi.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# module to make simple analyses of top event hypotheses -# -analyzeHypothesis = cms.EDAnalyzer("HypothesisAnalyzer", - semiLepEvent = cms.InputTag("ttSemiLepEvent"), - hypoClassKey = cms.string("kMaxSumPtWMass") -) - - diff --git a/TopQuarkAnalysis/Examples/python/TopElecAnalyzer_cfi.py b/TopQuarkAnalysis/Examples/python/TopElecAnalyzer_cfi.py deleted file mode 100644 index e5a959111ffec..0000000000000 --- a/TopQuarkAnalysis/Examples/python/TopElecAnalyzer_cfi.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# module to make simple analyses of electrons -# -analyzeElec = cms.EDAnalyzer("TopElecAnalyzer", - input = cms.InputTag("selectedPatElectrons"), - verbose = cms.bool(True) -) - - diff --git a/TopQuarkAnalysis/Examples/python/TopGenEventAnalyzer_cfi.py b/TopQuarkAnalysis/Examples/python/TopGenEventAnalyzer_cfi.py deleted file mode 100644 index be0cf32cd10c1..0000000000000 --- a/TopQuarkAnalysis/Examples/python/TopGenEventAnalyzer_cfi.py +++ /dev/null @@ -1,10 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# module to make simple analyses based on the TtGenEvent -# -analyzeTopGenEvent = cms.EDAnalyzer("TopGenEventAnalyzer", - genEvent = cms.InputTag("genEvt") -) - - diff --git a/TopQuarkAnalysis/Examples/python/TopJetAnalyzer_cfi.py b/TopQuarkAnalysis/Examples/python/TopJetAnalyzer_cfi.py deleted file mode 100644 index 15a80513c58d9..0000000000000 --- a/TopQuarkAnalysis/Examples/python/TopJetAnalyzer_cfi.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# module to make simple analyses of jets -# -analyzeJet = cms.EDAnalyzer("TopJetAnalyzer", - input = cms.InputTag("selectedPatJets"), - verbose = cms.bool(True) -) - - diff --git a/TopQuarkAnalysis/Examples/python/TopMuonAnalyzer_cfi.py b/TopQuarkAnalysis/Examples/python/TopMuonAnalyzer_cfi.py deleted file mode 100644 index 1a5534f3b930d..0000000000000 --- a/TopQuarkAnalysis/Examples/python/TopMuonAnalyzer_cfi.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# module to make simple analyses of muons -# -analyzeMuon = cms.EDAnalyzer("TopMuonAnalyzer", - input = cms.InputTag("selectedPatMuons"), - verbose = cms.bool(True) -) - - diff --git a/TopQuarkAnalysis/Examples/python/TopTauAnalyzer_cfi.py b/TopQuarkAnalysis/Examples/python/TopTauAnalyzer_cfi.py deleted file mode 100644 index e05b1a2d20cc1..0000000000000 --- a/TopQuarkAnalysis/Examples/python/TopTauAnalyzer_cfi.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# module to make simple analyses of tautrons -# -analyzeTau = cms.EDAnalyzer("TopTauAnalyzer", - input = cms.InputTag("selectedPatTaus"), - verbose = cms.bool(True) -) - - diff --git a/TopQuarkAnalysis/Examples/test/BuildFile.xml b/TopQuarkAnalysis/Examples/test/BuildFile.xml deleted file mode 100644 index 36636d4cfa8a9..0000000000000 --- a/TopQuarkAnalysis/Examples/test/BuildFile.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/TopQuarkAnalysis/Examples/test/analyzeTopElectron_cfg.py b/TopQuarkAnalysis/Examples/test/analyzeTopElectron_cfg.py deleted file mode 100644 index f9d58d2e5d99f..0000000000000 --- a/TopQuarkAnalysis/Examples/test/analyzeTopElectron_cfg.py +++ /dev/null @@ -1,51 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TEST") - -## configure message logger -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string('INFO') -process.MessageLogger.TEST = dict() - -## define input -from TopQuarkAnalysis.TopEventProducers.tqafInputFiles_cff import relValTTbar -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring(relValTTbar) -) - -## define maximal number of events to loop over -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(10) -) - -## configure process options -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -## configure geometry & conditions -process.load("Configuration.Geometry.GeometryRecoDB_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_mc') -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.task = cms.Task() - -## std sequence for PAT -process.load("PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff") -process.task.add(process.patCandidatesTask) -#Temporary customize to the unit tests that fail due to old input samples -process.patTaus.skipMissingTauID = True -process.load("PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff") -process.task.add(process.selectedPatCandidatesTask) - -process.load("TopQuarkAnalysis.Examples.TopElecAnalyzer_cfi") - -# register TFileService -process.TFileService = cms.Service("TFileService", - fileName = cms.string('analyzeTopElec.root') -) - -## end path -process.p1 = cms.Path(process.analyzeElec, process.task) diff --git a/TopQuarkAnalysis/Examples/test/analyzeTopGenEvent_cfg.py b/TopQuarkAnalysis/Examples/test/analyzeTopGenEvent_cfg.py deleted file mode 100644 index 0c499d1b45e8d..0000000000000 --- a/TopQuarkAnalysis/Examples/test/analyzeTopGenEvent_cfg.py +++ /dev/null @@ -1,42 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TEST") - -## configure message logger -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string('INFO') -## dump content of TopGenEvent -process.MessageLogger.TopGenEvent=dict() - -## define input -from TopQuarkAnalysis.TopEventProducers.tqafInputFiles_cff import relValTTbar -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring(relValTTbar) -) - -## define maximal number of events to loop over -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(100) -) - -## configure process options -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -process.task = cms.Task() - -## load modules to produce the TtGenEvent -process.load("TopQuarkAnalysis.TopEventProducers.sequences.ttGenEvent_cff") -process.task.add(process.makeGenEvtTask) - -## load analyzer -process.load("TopQuarkAnalysis.Examples.TopGenEventAnalyzer_cfi") - -## register TFileService -process.TFileService = cms.Service("TFileService", - fileName = cms.string('analyzeTopGenEvent.root') -) - -## end path -process.p1 = cms.Path(process.analyzeTopGenEvent, process.task) diff --git a/TopQuarkAnalysis/Examples/test/analyzeTopHypotheses.C b/TopQuarkAnalysis/Examples/test/analyzeTopHypotheses.C deleted file mode 100644 index 394702ef8214c..0000000000000 --- a/TopQuarkAnalysis/Examples/test/analyzeTopHypotheses.C +++ /dev/null @@ -1,112 +0,0 @@ -#include -#include -#include -#include -#include - -#include -#include - -void setHistStyles(std::vector* hists, const bool normalize) -{ - const int lineColors[3] = {kGreen+1, kBlue, kRed}; - const int lineStyles[3] = {1, 3, 1}; - const int fillColors[3] = {kGreen+1, kBlue, 0}; - const int fillStyles[3] = {3554, 0, 0}; - - for(unsigned h=0; hSetXTitle(hists[0][h]->GetTitle()); - if(normalize) - hists[0][h]->SetYTitle("a.u."); - else - hists[0][h]->SetYTitle("Events"); - hists[0][h]->SetTitle(""); - hists[0][h]->SetStats(kFALSE); - for(unsigned d=0; d<3; d++) { - if(normalize) - hists[d][h]->Scale(1/hists[d][h]->Integral()); - hists[d][h]->SetLineWidth(2); - hists[d][h]->SetLineColor(lineColors[d]); - hists[d][h]->SetLineStyle(lineStyles[d]); - hists[d][h]->SetFillColor(fillColors[d]); - hists[d][h]->SetFillStyle(fillStyles[d]); - } - } -} - -void setYmax() -{ - TIter iter(gPad->GetListOfPrimitives()); - TObject *obj; - TH1 *h_1=0; - TH1 *h_i=0; - Bool_t foundfirstHisto = kFALSE; - while ((obj = (TObject*)iter.Next())) { - if(obj->InheritsFrom("TH1")) { - if(foundfirstHisto == kFALSE) { - h_1 = (TH1*)obj; - foundfirstHisto = kTRUE; - } - else { - h_i = (TH1*)obj; - Double_t max_i = h_i->GetMaximum(); - if(max_i > h_1->GetMaximum()) h_1->SetMaximum(1.05 * max_i); - } - } - } -} - -void analyzeTopHypotheses() -{ - TFile* file = new TFile("analyzeTopHypothesis.root"); - - const bool normalize = true; - - gROOT->cd(); - gROOT->SetStyle("Plain"); - - const TString dirs[3] = {"analyzeGenMatch", - "analyzeMaxSumPtWMass", - "analyzeKinFit"}; - - std::vector hists[3]; - - TIter iter(((TDirectoryFile*) file->Get(dirs[0]))->GetListOfKeys()); - TObject *obj; - while((obj = (TObject*)iter.Next())) { - if(((TDirectoryFile*) file->Get(dirs[0]))->Get(obj->GetName())->InheritsFrom("TH1F")) { - for(unsigned d=0; d<3; d++) - hists[d].push_back((TH1F*) file->Get(dirs[d]+"/"+obj->GetName())->Clone()); - } - } - - file->Close(); - delete file; - - setHistStyles(hists, normalize); - - TCanvas* canvas = new TCanvas("canvas", "canvas", 900, 600); - canvas->Print("analyzeTopHypotheses.ps["); - - TLegend legend(0.6, 0.75, 0.9, 0.9); - legend.SetFillColor(0); - legend.AddEntry(hists[0][0], "GenMatch" , "F"); - legend.AddEntry(hists[1][0], "MaxSumPtWMass", "L"); - legend.AddEntry(hists[2][0], "KinFit" , "L"); - - for(unsigned h=0; hDraw(); - if(!((TString)hists[0][h]->GetName()).Contains("genMatch")) { - hists[1][h]->Draw("same"); - hists[2][h]->Draw("same"); - legend.Draw(); - setYmax(); - } - gPad->RedrawAxis(); - canvas->Print("analyzeTopHypotheses.ps"); - //canvas->Print((TString)"analyzeTopHypotheses/"+hists[0][h]->GetName()+".eps"); - } - - canvas->Print("analyzeTopHypotheses.ps]"); - delete canvas; -} diff --git a/TopQuarkAnalysis/Examples/test/analyzeTopHypotheses_cfg.py b/TopQuarkAnalysis/Examples/test/analyzeTopHypotheses_cfg.py deleted file mode 100644 index 8b0e4a1136fd3..0000000000000 --- a/TopQuarkAnalysis/Examples/test/analyzeTopHypotheses_cfg.py +++ /dev/null @@ -1,90 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TEST") - -## configure message logger -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.TtSemiLeptonicEvent=dict() -process.MessageLogger.TtSemiLepKinFitter=dict() - -## define input -from TopQuarkAnalysis.TopEventProducers.tqafInputFiles_cff import relValTTbar -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring(relValTTbar) -) -#process.source = cms.Source("PoolSource", -# fileNames = cms.untracked.vstring( -# ['rfio:///castor/cern.ch/user/s/snaumann/test/Spring12/TTJets_TuneZ2star_8TeV-madgraph-tauola_AODSIM_PU_S7_START52_V5-v1/PAT_muJets_1.root', -# 'rfio:///castor/cern.ch/user/s/snaumann/test/Spring12/TTJets_TuneZ2star_8TeV-madgraph-tauola_AODSIM_PU_S7_START52_V5-v1/PAT_muJets_2.root', -# 'rfio:///castor/cern.ch/user/s/snaumann/test/Spring12/TTJets_TuneZ2star_8TeV-madgraph-tauola_AODSIM_PU_S7_START52_V5-v1/PAT_muJets_3.root'] -# ) -#) - -## define maximal number of events to loop over -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(100) -) - -## configure process options -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -## configure geometry & conditions -process.load("Configuration.Geometry.GeometryRecoDB_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_mc') -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.task = cms.Task() - -## std sequence for PAT -process.load("PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff") -process.task.add(process.patCandidatesTask) -#Temporary customize to the unit tests that fail due to old input samples -process.patTaus.skipMissingTauID = True -process.load("PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff") -process.task.add(process.selectedPatCandidatesTask) - -## use genParticles to select only muon+jets events -process.load("TopQuarkAnalysis.TopSkimming.ttDecayChannelFilters_cff") -process.task.add(process.ttDecayChannelFiltersTask) -process.ttSemiLeptonicFilter.allowedTopDecays.decayBranchA.electron = False - -## sequences for ttGenEvent and TtSemiLeptonicEvent -process.load("TopQuarkAnalysis.TopEventProducers.sequences.ttGenEvent_cff") -process.task.add(process.makeGenEvtTask) - -process.load("TopQuarkAnalysis.TopEventProducers.sequences.ttSemiLepEvtBuilder_cff") -process.task.add(process.makeTtSemiLepEventTask) -## enable additional per-event printout from the TtSemiLeptonicEvent -process.ttSemiLepEvent.verbosity = 1 - -## choose which hypotheses to produce -from TopQuarkAnalysis.TopEventProducers.sequences.ttSemiLepEvtBuilder_cff import * -addTtSemiLepHypotheses(process, ["kMaxSumPtWMass", "kKinFit"]) -## change some common parameters -#setForAllTtSemiLepHypotheses(process, "maxNJets", 5) -#setForAllTtSemiLepHypotheses(process, "neutrinoSolutionType", 2) -## use b-tagging for hypotheses (neglected for GenMatch) -#setForAllTtSemiLepHypotheses(process, "useBTagging", True) -#setForAllTtSemiLepHypotheses(process, "bTagAlgorithm", "combinedSecondaryVertexBJetTags") -#setForAllTtSemiLepHypotheses(process, "minBDiscBJets" , 0.679) -#setForAllTtSemiLepHypotheses(process, "maxBDiscLightJets", 0.679) - -## change jet-parton matching algorithm -#process.ttSemiLepJetPartonMatch.algorithm = "unambiguousOnly" -## change constraints used in kinematic fit -#process.kinFitTtSemiLepEventHypothesis.constraints = [1,2,6] - -## load HypothesisAnalyzer -process.load("TopQuarkAnalysis.Examples.HypothesisAnalyzer_cff") - -# register TFileService -process.TFileService = cms.Service("TFileService", - fileName = cms.string('analyzeTopHypothesis.root') -) - -## end path -process.path = cms.Path(process.analyzeHypotheses, process.task) diff --git a/TopQuarkAnalysis/Examples/test/analyzeTopJet_cfg.py b/TopQuarkAnalysis/Examples/test/analyzeTopJet_cfg.py deleted file mode 100644 index ddaada8ddcf6d..0000000000000 --- a/TopQuarkAnalysis/Examples/test/analyzeTopJet_cfg.py +++ /dev/null @@ -1,51 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TEST") - -## configure message logger -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string('INFO') -process.MessageLogger.TEST = dict() - -## define input -from TopQuarkAnalysis.TopEventProducers.tqafInputFiles_cff import relValTTbar -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring(relValTTbar) -) - -## define maximal number of events to loop over -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(10) -) - -## configure process options -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -## configure geometry & conditions -process.load("Configuration.Geometry.GeometryRecoDB_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_mc') -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.task = cms.Task() - -## std sequence for PAT -process.load("PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff") -process.task.add(process.patCandidatesTask) -#Temporary customize to the unit tests that fail due to old input samples -process.patTaus.skipMissingTauID = True -process.load("PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff") -process.task.add(process.selectedPatCandidatesTask) - -process.load("TopQuarkAnalysis.Examples.TopJetAnalyzer_cfi") - -# register TFileService -process.TFileService = cms.Service("TFileService", - fileName = cms.string('analyzeTopJet.root') -) - -## end path -process.p1 = cms.Path(process.analyzeJet, process.task) diff --git a/TopQuarkAnalysis/Examples/test/analyzeTopMuon_cfg.py b/TopQuarkAnalysis/Examples/test/analyzeTopMuon_cfg.py deleted file mode 100644 index 88ea370dfb33d..0000000000000 --- a/TopQuarkAnalysis/Examples/test/analyzeTopMuon_cfg.py +++ /dev/null @@ -1,51 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TEST") - -## configure message logger -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string('INFO') -process.MessageLogger.TEST = dict() - -## define input -from TopQuarkAnalysis.TopEventProducers.tqafInputFiles_cff import relValTTbar -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring(relValTTbar) -) - -## define maximal number of events to loop over -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(10) -) - -## configure process options -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -## configure geometry & conditions -process.load("Configuration.Geometry.GeometryRecoDB_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_mc') -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.task = cms.Task() - -## std sequence for PAT -process.load("PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff") -process.task.add(process.patCandidatesTask) -#Temporary customize to the unit tests that fail due to old input samples -process.patTaus.skipMissingTauID = True -process.load("PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff") -process.task.add(process.selectedPatCandidatesTask) - -process.load("TopQuarkAnalysis.Examples.TopMuonAnalyzer_cfi") - -# register TFileService -process.TFileService = cms.Service("TFileService", - fileName = cms.string('analyzeTopMuon.root') -) - -## end path -process.p1 = cms.Path(process.analyzeMuon, process.task) diff --git a/TopQuarkAnalysis/Examples/test/analyzeTopTau_cfg.py b/TopQuarkAnalysis/Examples/test/analyzeTopTau_cfg.py deleted file mode 100644 index 1d09ffdb97b1a..0000000000000 --- a/TopQuarkAnalysis/Examples/test/analyzeTopTau_cfg.py +++ /dev/null @@ -1,51 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TEST") - -## configure message logger -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string('INFO') -process.MessageLogger.TEST = dict() - -## define input -from TopQuarkAnalysis.TopEventProducers.tqafInputFiles_cff import relValTTbar -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring(relValTTbar) -) - -## define maximal number of events to loop over -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(10) -) - -## configure process options -process.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool(True) -) - -## configure geometry & conditions -process.load("Configuration.Geometry.GeometryRecoDB_cff") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_mc') -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.task = cms.Task() - -## std sequence for PAT -process.load("PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff") -process.task.add(process.patCandidatesTask) -#Temporary customize to the unit tests that fail due to old input samples -process.patTaus.skipMissingTauID = True -process.load("PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff") -process.task.add(process.selectedPatCandidatesTask) - -process.load("TopQuarkAnalysis.Examples.TopTauAnalyzer_cfi") - -# register TFileService -process.TFileService = cms.Service("TFileService", - fileName = cms.string('analyzeTopTau.root') -) - -## end path -process.p1 = cms.Path(process.analyzeTau, process.task) diff --git a/TopQuarkAnalysis/Examples/test/runtestTqafExamples.cpp b/TopQuarkAnalysis/Examples/test/runtestTqafExamples.cpp deleted file mode 100644 index b2991bd18ae57..0000000000000 --- a/TopQuarkAnalysis/Examples/test/runtestTqafExamples.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include "FWCore/Utilities/interface/TestHelper.h" - -RUNTEST() diff --git a/TopQuarkAnalysis/Examples/test/runtests.sh b/TopQuarkAnalysis/Examples/test/runtests.sh deleted file mode 100755 index 065bbfc6997bb..0000000000000 --- a/TopQuarkAnalysis/Examples/test/runtests.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -function die { echo $1: status $2 ; exit $2; } - -cmsRun ${LOCAL_TEST_DIR}/analyzeTopElectron_cfg.py || die 'Failure using analyzeTopElectron_cfg.py' $? - -cmsRun ${LOCAL_TEST_DIR}/analyzeTopJet_cfg.py || die 'Failure using analyzeTopJet_cfg.py' $? - -cmsRun ${LOCAL_TEST_DIR}/analyzeTopMuon_cfg.py || die 'Failure using analyzeTopMuon_cfg.py' $? - -cmsRun ${LOCAL_TEST_DIR}/analyzeTopTau_cfg.py || die 'Failure using analyzeTopTau_cfg.py' $? - -cmsRun ${LOCAL_TEST_DIR}/analyzeTopGenEvent_cfg.py || die 'Failure using analyzeTopGenEvent_cfg.py' $? - -cmsRun ${LOCAL_TEST_DIR}/analyzeTopHypotheses_cfg.py || die 'Failure using analyzeTopHypotheses_cfg.py' $? diff --git a/TopQuarkAnalysis/TopPairBSM/BuildFile.xml b/TopQuarkAnalysis/TopPairBSM/BuildFile.xml deleted file mode 100644 index c8b53e8718758..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/BuildFile.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/TopQuarkAnalysis/TopPairBSM/python/BoostedTopProducer_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/BoostedTopProducer_cfi.py deleted file mode 100644 index a4bd11ce62bfb..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/BoostedTopProducer_cfi.py +++ /dev/null @@ -1,11 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -BoostedTopProducer = cms.EDProducer("BoostedTopProducer", - electronLabel = cms.InputTag("selectedLayer1Electrons"), - muonLabel = cms.InputTag("selectedLayer1Muons"), - jetLabel = cms.InputTag("selectedLayer1Jets"), - caloIsoCut = cms.double(0.2), - mTop = cms.double(175.0), - solLabel = cms.InputTag("solutions"), - metLabel = cms.InputTag("layer1METs") -) diff --git a/TopQuarkAnalysis/TopPairBSM/python/CATopJetTagger_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/CATopJetTagger_cfi.py deleted file mode 100644 index 11aebbb6d03e4..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/CATopJetTagger_cfi.py +++ /dev/null @@ -1,18 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# Cambridge-Aachen top jet tagger parameters -# $Id -CATopCaloJetTagInfos = cms.EDProducer("CATopJetTagger", - src = cms.InputTag("caTopCaloJets"), - TopMass = cms.double(171), - WMass = cms.double(80.4), - verbose = cms.bool(False) - ) - - -CATopPFJetTagInfos = cms.EDProducer("CATopJetTagger", - src = cms.InputTag("caTopPFJets"), - TopMass = cms.double(171), - WMass = cms.double(80.4), - verbose = cms.bool(False) - ) diff --git a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_1000_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_1000_cfi.py deleted file mode 100644 index 34d169ec6cd2c..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_1000_cfi.py +++ /dev/null @@ -1,33 +0,0 @@ -# Dataset path /QCDDiJetPt1000to14000/Summer08_IDEAL_V9_v1/GEN-SIM-RECO - -import FWCore.ParameterSet.Config as cms - -def RecoInput() : - - maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - readFiles = cms.untracked.vstring() - secFiles = cms.untracked.vstring() - source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) - readFiles.extend( ( - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0005/948F4772-C29E-DD11-A149-001EC9ED4FAA.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0006/96E4C3A6-379F-DD11-AC24-0019B9E4FCA3.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0006/D0B352A5-379F-DD11-B0FC-0019B9E4FC5D.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0006/F4E391CC-369F-DD11-B8CF-0019B9E7C4D2.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0009/94581C84-D2A2-DD11-AB01-00215AA62C2A.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0009/9A39A082-D2A2-DD11-A755-00215A45F86A.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0009/C20F7A87-D2A2-DD11-A989-0022640631AE.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0009/C28AB37D-B9A2-DD11-98F9-00221981B410.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0009/E2BE2986-D2A2-DD11-BE4A-00215A4909F6.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0010/54204960-E7A2-DD11-A964-0015C5EC47A2.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0010/8C2E8B5F-E7A2-DD11-81D6-0015C5E5B288.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0010/A64BF360-E7A2-DD11-B221-0015C5EC47A2.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0010/A8950B61-E7A2-DD11-AB5F-0015C5E5B335.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0010/B8271362-E7A2-DD11-B1B4-0015C5E5B335.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0010/EA535161-E7A2-DD11-8C3E-0015C5E5B335.root', - '/store/mc/Summer08/QCDDiJetPt1000to14000/GEN-SIM-RECO/IDEAL_V9_v1/0010/FE1F5584-D6A2-DD11-A5EB-001EC9ED840F.root' - ) ); - - secFiles.extend( ( - ) ) - - return source diff --git a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_3000_3500_RelVal_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_3000_3500_RelVal_cfi.py deleted file mode 100644 index 6732d5fc1e66b..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_3000_3500_RelVal_cfi.py +++ /dev/null @@ -1,155 +0,0 @@ -# from /RelValQCD_Pt_3000_3500/CMSSW_2_1_0_pre6-RelVal-1213987236-IDEAL_V2-2nd/GEN-SIM-DIGI-RAW-HLTDEBUG-RECO - -import FWCore.ParameterSet.Config as cms - -# from - -def RecoInput() : - return cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(200), - debugFlag = cms.untracked.bool(True), - - fileNames = cms.untracked.vstring( -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/00245ED2-B840-DD11-A538-001617DBD556.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/06419ADE-B640-DD11-A033-001617C3B6E8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/069AB896-BE40-DD11-8A24-001617C3B6DE.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/0AF3DF03-BE40-DD11-A986-001617C3B79A.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/289B655D-BE40-DD11-9091-000423D6BA18.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/2A1BF1C2-B940-DD11-9CFE-001617DBD5B2.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/3A4F26A9-BE40-DD11-8C35-001617DBD472.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/3E338939-BB40-DD11-9523-000423D992DC.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/4A02ED44-B740-DD11-A693-001617E30D06.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/4E3C4DEC-B740-DD11-B7B9-000423D6CAF2.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/4EDB6C7A-AC40-DD11-885B-001D09F291D7.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/504F84F1-C040-DD11-8DE5-000423D6C8E6.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/52526255-BB40-DD11-8413-001617E30CA4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/54687319-AB40-DD11-9930-001617E30CC8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/58C9301E-C040-DD11-AF45-000423D6CAF2.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/5CBCB348-BC40-DD11-A545-001617DBD472.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/5EFE4BFE-BB40-DD11-9B3A-001617C3B70E.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/60475A8C-C040-DD11-828B-001617E30D52.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/60480812-B940-DD11-A7A7-001617E30E2C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/6C779E46-B840-DD11-9F0A-000423D95030.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/6E704D16-B740-DD11-8DB6-001617E30D00.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/720EF4AD-BD40-DD11-83A2-001617C3B70E.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/7C38F23E-BE40-DD11-9376-001617E30D52.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/8A9C5FD8-BD40-DD11-9556-001617C3B6C6.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/8E42C849-BC40-DD11-901E-001617E30E2C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/928CA538-AC40-DD11-B6A7-000423D8F63C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/9A35C232-0C41-DD11-A82C-0030487A1FEC.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/9EB22EDA-BD40-DD11-95ED-000423D986A8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/A2AA1643-BC40-DD11-9017-001617C3B710.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/A4F2213A-BB40-DD11-8112-000423D98DB4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/B400DAEF-C040-DD11-AC92-000423D98DB4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/BA01D8B0-BE40-DD11-9ADD-000423D6CA42.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/BC94A8B5-BD40-DD11-832E-001617E30D52.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/C2BE8FBE-C040-DD11-A162-001617E30F50.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/C2CC09BE-C040-DD11-8642-001617DBD5AC.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/CC874630-C040-DD11-8C8F-0019DB29C5FC.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/D87B70CE-B640-DD11-B3FD-001617C3B6CE.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/DABBCC99-C040-DD11-985A-001617E30CC8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/DC0D6CE9-AA40-DD11-8686-001D09F252E9.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/DC950CA7-BF40-DD11-B67A-001617C3B6CE.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/DCEEF01C-BC40-DD11-AFA6-001617E30F48.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/DEE0DE2D-BA40-DD11-900A-001617DBD230.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/E022C9E9-C040-DD11-AE3B-000423D6CA02.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/E2B59F5C-BF40-DD11-B579-001617E30D06.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/E4D55F8A-BE40-DD11-AC15-001617C3B778.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/ECE7D536-B940-DD11-8E80-001617E30F50.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/F0AD0F72-BB40-DD11-8F68-001617C3B79A.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/F488383D-BB40-DD11-A245-000423D6CA72.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/FC152FF8-AB40-DD11-AED5-001D09F28EC1.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/FECB1CF3-BF40-DD11-B8F9-001617DBD556.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0003/FEF9BCE4-B940-DD11-A2EE-000423D6BA18.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/046D1063-F640-DD11-9222-000423D6AF24.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/0663F69B-C640-DD11-93C4-001617C3B6C6.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/06E4C246-C940-DD11-BD48-000423D6C8E6.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/0A8748B2-D640-DD11-9534-000423D9870C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/0CB06240-C240-DD11-87D7-0019DB29C5FC.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/122B51C0-1841-DD11-8C55-001617E30F58.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/14EEBABC-0141-DD11-93E9-000423D6CA42.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/1AB5BF97-DC40-DD11-86D8-000423D6CA6E.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/24D31383-CF40-DD11-8985-000423DD2F34.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/260742E7-0141-DD11-8C6B-001617C3B6CC.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/2A2C32C4-CF40-DD11-9BA3-000423D6CA6E.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/2AA7E6B5-EA40-DD11-8A61-000423D992A4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/2C3C0B79-C640-DD11-933A-001617C3B65A.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/2C5B81DA-0141-DD11-B224-001617DBD332.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/3448EFE3-E040-DD11-AB6F-000423D9880C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/38C578C8-EC40-DD11-9496-000423D6C8E6.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/38E664CD-C640-DD11-922A-000423D985E4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/3C49A8A5-C640-DD11-999E-001617E30CA4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/3E83831A-0341-DD11-BC3D-001617E30E2C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/3EB3A5DF-2C41-DD11-8F1A-000423D98804.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/407A124A-E740-DD11-A755-000423D6CA72.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/4C5D2F81-1C41-DD11-B4DA-000423D6AF24.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/5007B749-C940-DD11-A4EC-000423D9853C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/629FEDAB-FE40-DD11-A431-001617E30D12.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/64020560-E240-DD11-A864-000423D6B358.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/660A2A4F-C440-DD11-93B6-001617E30E2C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/6802E1EC-0141-DD11-B6E1-001617C3B778.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/68D84930-E940-DD11-A359-000423D6B358.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/722B15DE-E040-DD11-85D0-001617E30D0A.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/74B78303-CE40-DD11-986F-000423D6A6F4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/82D8EEE6-F040-DD11-8738-000423D986A8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/84280E17-E140-DD11-93DD-000423D98DB4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/86A5CFE7-1541-DD11-B496-001617C3B710.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/8C8688EE-E240-DD11-98F1-001617DBD5B2.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/921FDB28-DF40-DD11-A393-001617C3B64C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/94005236-FF40-DD11-8FA0-001617E30D0A.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/96FF4E3E-C240-DD11-9194-001617C3B6E8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/98460046-C540-DD11-8E21-000423D6CA02.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/9A9D3912-0241-DD11-8394-000423D99F1E.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/9C14BC6F-2B41-DD11-832B-000423D6B42C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/9ECF8D20-C940-DD11-A703-000423D6A6F4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/AA44EE88-E340-DD11-9F99-000423D6BA18.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/AAA031EF-E240-DD11-B0B5-000423D6B358.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/B427504F-E740-DD11-9832-000423D6C8EE.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/B478B697-F640-DD11-BE71-000423D6CA02.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/B4AB91AE-EA40-DD11-9A21-000423D6B48C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/B66F92E2-E040-DD11-A2B2-000423D985E4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/BEA23698-F640-DD11-871D-000423D6B444.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/C26CAB9E-C640-DD11-88C6-001617C3B5D8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/C40AA75F-F640-DD11-A366-000423DD2F34.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/C8FFB6FE-2541-DD11-A5ED-001617C3B6C6.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/CA21BADD-0141-DD11-BA44-001617E30F56.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/CA3F9129-CB40-DD11-B27F-00161757BF42.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/CCC22998-C640-DD11-87FA-001617C3B5E4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/CE82FF01-1041-DD11-947B-000423D6BA18.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/CEA4B62C-E940-DD11-B77C-000423D6CA72.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/D05A1D99-C740-DD11-94ED-001617E30CE8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/D2D2E6BD-D240-DD11-850D-000423D9870C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/D6789E28-E340-DD11-A4B6-000423D6B444.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/D6A91A87-F040-DD11-8F9C-000423D6B48C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/D6CAB298-C640-DD11-B87E-001617E30CC8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/DA7D6E0E-1041-DD11-BF19-001617C3B6CE.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/DC212E18-F140-DD11-94D4-000423D6B358.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/DE2534AE-FE40-DD11-B2D8-000423D98804.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/DE4AA127-DF40-DD11-826C-001617E30D40.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/E0C782B6-EA40-DD11-A4FB-000423D98804.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/E26E1481-EA40-DD11-B126-000423D9870C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/E4B5BBA9-C740-DD11-AA22-000423D6CA6E.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/E4E4472C-CB40-DD11-9F1F-000423D6BA18.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/E671C362-DF40-DD11-AE3C-000423D6CA02.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/EA2A75F0-E240-DD11-934D-001617E30D52.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/EA2AFA2D-E940-DD11-A6BE-000423D98DB4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/EA76D495-EC40-DD11-AC5E-000423D6AF24.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/EC13854B-E740-DD11-AC29-000423D6B444.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/ECA2F249-C940-DD11-B34B-000423D6A6F4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/F05A2447-C540-DD11-B7C7-001617C3B5E4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/F428221E-C940-DD11-BBF5-000423D6B358.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/FA5F70D5-EA40-DD11-892C-000423D9939C.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/FAB238B3-EC40-DD11-A3EA-000423D6CAF2.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/FC7556E1-FE40-DD11-B6B6-000423D992DC.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/FCAAE5F5-E940-DD11-A3A9-000423D6BA18.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0004/FEA1AC47-C940-DD11-936C-000423D98804.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0005/008BCD3B-0F41-DD11-A275-000423D6B5C4.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0005/32474568-0441-DD11-A0CE-000423D99394.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0005/3C038B69-2E41-DD11-A157-001617C3B6E2.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0005/4C7C300F-1E41-DD11-B8DC-000423D6B358.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0005/54C1008A-0841-DD11-AD67-001617DBD316.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0005/A6DAD342-0241-DD11-A5C1-001617C3B5D8.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0005/C60EB11C-1A41-DD11-B8BD-001617DBD5AC.root', -'/store/relval/2008/6/22/RelVal-RelValQCD_Pt_3000_3500-1213987236-IDEAL_V2-2nd/0005/E8801EA4-0941-DD11-8450-001D09F29146.root' -) -) diff --git a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_470_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_470_cfi.py deleted file mode 100644 index 9a615330ab486..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_470_cfi.py +++ /dev/null @@ -1,34 +0,0 @@ -# Dataset path /QCDDiJetPt470to600/Summer08_IDEAL_V9_v1/GEN-SIM-RECO - -import FWCore.ParameterSet.Config as cms - -def RecoInput() : - - maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - readFiles = cms.untracked.vstring() - secFiles = cms.untracked.vstring() - source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) - readFiles.extend( ( - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/1A3CF22E-F595-DD11-8A28-0019B9E4893C.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/1A73AD50-F595-DD11-9F2E-0019B9E4527A.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/22BE613A-F595-DD11-ACD8-0019B9E4ACE1.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/3E517714-F295-DD11-A3AF-001125C472E4.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/465F18C5-F895-DD11-9E6D-0019B9E7C51D.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/4EF8AB34-F595-DD11-893C-0019B9E7C79F.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/52EA201C-FD95-DD11-9C4C-0019B9E4FD57.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/5EEA9C37-F595-DD11-AF61-0019B9E48B8C.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/600BCE3A-FD95-DD11-A279-00145EDD7971.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/64EED024-F295-DD11-A867-001125C49180.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/6EDE172F-F295-DD11-9334-0019B9E48FFC.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/7EEA911F-FD95-DD11-856A-0019B9E7E112.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/949C2459-F595-DD11-BE17-0019B9E7CD78.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/AED94115-F295-DD11-B586-001125C4664A.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/C63D4F42-F595-DD11-8547-001125C464F6.root', - '/store/mc/Summer08/QCDDiJetPt470to600/GEN-SIM-RECO/IDEAL_V9_v1/0000/E065C04F-FD95-DD11-948D-00145EDD7381.root' - ) ); - - - secFiles.extend( ( - ) ) - - return source diff --git a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_500_1000_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_500_1000_cfi.py deleted file mode 100644 index 0907ed3477ab0..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_500_1000_cfi.py +++ /dev/null @@ -1,247 +0,0 @@ -# from /RelValQCD_Pt_3000_3500/CMSSW_2_1_0_pre6-RelVal-1213987236-IDEAL_V2-2nd/GEN-SIM-DIGI-RAW-HLTDEBUG-RECO - -import FWCore.ParameterSet.Config as cms - -# from - -def RecoInput() : - return cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(200), - debugFlag = cms.untracked.bool(True), - - fileNames = cms.untracked.vstring( - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_100.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_101.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_102.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_104.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_105.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_107.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_108.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_109.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_10.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_110.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_111.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_112.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_113.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_114.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_116.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_117.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_118.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_119.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_11.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_120.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_121.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_122.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_123.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_124.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_125.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_126.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_127.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_128.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_12.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_130.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_131.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_132.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_133.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_134.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_135.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_136.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_137.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_138.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_139.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_13.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_140.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_141.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_142.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_143.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_144.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_145.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_146.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_147.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_148.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_149.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_14.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_150.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_151.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_152.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_153.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_154.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_155.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_156.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_157.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_158.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_159.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_15.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_160.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_161.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_162.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_164.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_165.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_166.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_167.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_168.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_169.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_170.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_171.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_172.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_173.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_174.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_176.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_177.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_178.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_179.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_17.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_180.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_181.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_182.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_183.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_184.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_185.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_186.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_187.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_189.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_18.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_190.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_191.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_192.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_193.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_194.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_195.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_196.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_197.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_198.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_199.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_19.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_1.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_200.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_201.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_202.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_203.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_204.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_205.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_206.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_207.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_208.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_209.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_20.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_210.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_212.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_213.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_214.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_216.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_217.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_218.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_21.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_220.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_221.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_222.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_223.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_224.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_225.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_226.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_227.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_228.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_229.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_22.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_230.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_231.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_232.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_233.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_234.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_235.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_236.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_237.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_238.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_239.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_23.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_240.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_241.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_242.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_243.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_244.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_245.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_246.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_247.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_249.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_24.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_250.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_25.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_26.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_27.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_28.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_2.root', -# 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_30.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_31.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_32.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_33.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_34.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_35.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_36.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_37.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_38.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_39.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_3.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_40.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_41.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_42.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_43.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_44.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_45.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_46.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_47.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_48.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_49.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_4.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_50.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_51.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_52.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_53.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_55.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_56.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_57.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_58.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_59.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_5.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_60.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_61.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_62.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_63.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_64.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_65.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_67.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_68.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_69.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_6.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_71.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_72.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_73.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_74.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_75.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_76.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_77.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_78.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_79.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_7.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_80.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_81.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_82.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_83.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_84.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_85.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_86.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_87.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_89.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_8.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_90.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_91.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_92.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_94.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_95.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_96.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_97.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_98.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_99.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/qcd/qcd_500_1000_9.root' - - ) - ) diff --git a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_600_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_600_cfi.py deleted file mode 100644 index 6a1d7b4bdd11e..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_600_cfi.py +++ /dev/null @@ -1,33 +0,0 @@ -# Dataset path /QCDDiJetPt600to800/Summer08_IDEAL_V9_v1/GEN-SIM-RECO - -import FWCore.ParameterSet.Config as cms - -def RecoInput() : - - maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - readFiles = cms.untracked.vstring() - secFiles = cms.untracked.vstring() - source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) - readFiles.extend( ( - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/181EF424-3196-DD11-8120-0019B9E494F3.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/2ECFCD0B-3196-DD11-989E-0019B9E4963E.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/40E116F5-FD95-DD11-A956-001125C49152.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/5CA3BB61-F595-DD11-859C-0019B9E495A4.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/6A0853CB-EF95-DD11-830F-001125C46418.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/7CE76841-F595-DD11-B927-0019B9E48991.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/88C56302-3196-DD11-9E86-0019B9E4FFFF.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/96CF8C67-EF95-DD11-8A51-001125C4910A.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/9E988C1E-F995-DD11-80BB-001D0966E1E9.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/A061971A-3196-DD11-833A-001125C48EE4.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/A414B974-EF95-DD11-9E7E-0019B9E50117.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/AC8F2845-F595-DD11-A709-0019B9E4896E.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/B69CB9F7-3096-DD11-98F7-001D0967D896.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/D0683153-F595-DD11-AC75-0019B9E49600.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/D8EF28E1-3096-DD11-8B24-0019B9E4FE56.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/EA4BD642-F595-DD11-9676-0019B9E48FC0.root', - '/store/mc/Summer08/QCDDiJetPt600to800/GEN-SIM-RECO/IDEAL_V9_v1/0000/FE455340-EF95-DD11-A054-0019B9E4B150.root') ); - - secFiles.extend( ( - ) ) - - return source diff --git a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_800_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_800_cfi.py deleted file mode 100644 index dbf7b1a310b33..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_QCD_800_cfi.py +++ /dev/null @@ -1,29 +0,0 @@ -# Dataset path /QCDDiJetPt800to1000/Summer08_IDEAL_V9_v1/GEN-SIM-RECO - -import FWCore.ParameterSet.Config as cms - -def RecoInput() : - - maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) - readFiles = cms.untracked.vstring() - secFiles = cms.untracked.vstring() - source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) - readFiles.extend( ( - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/08043F8E-24A0-DD11-8F7B-001EC9ED88D8.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/1849B37F-23A0-DD11-8597-00145ED6E7C8.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/3215635E-22A0-DD11-9996-0030487C1154.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/3E0B8639-27A0-DD11-990D-001EC9ED7E46.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/3ED29688-E6A0-DD11-A2A5-001EC9ED88D8.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/700A2B80-23A0-DD11-A73E-001EC9ED8F2B.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/ACA05E81-26A0-DD11-97F2-003048C26CB6.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/AE8F64DA-30A0-DD11-B95F-0015C5E5B335.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/D017F01E-2FA0-DD11-8F66-00192165CCB4.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0006/F2BF165E-22A0-DD11-B63E-0030487C1154.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0008/B4566DA1-05A2-DD11-976A-001D09645B69.root', - '/store/mc/Summer08/QCDDiJetPt800to1000/GEN-SIM-RECO/IDEAL_V9_v1/0009/8EC9BC10-8BA2-DD11-8CB5-001D09645A9D.root' - ) ); - - secFiles.extend( ( - ) ) - - return source diff --git a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_ZPrime2000_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/RecoInput_ZPrime2000_cfi.py deleted file mode 100644 index 8de56cc78ee99..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_ZPrime2000_cfi.py +++ /dev/null @@ -1,247 +0,0 @@ -# from /RelValQCD_Pt_3000_3500/CMSSW_2_1_0_pre6-RelVal-1213987236-IDEAL_V2-2nd/GEN-SIM-DIGI-RAW-HLTDEBUG-RECO - -import FWCore.ParameterSet.Config as cms - -# from - -def RecoInput() : - return cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(200), - debugFlag = cms.untracked.bool(True), - - fileNames = cms.untracked.vstring( - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_100.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_101.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_102.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_104.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_105.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_107.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_108.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_109.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_10.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_110.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_111.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_112.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_113.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_114.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_116.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_117.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_118.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_119.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_11.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_120.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_121.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_122.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_123.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_124.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_125.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_126.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_127.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_128.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_12.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_130.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_131.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_132.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_133.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_134.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_135.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_136.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_137.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_138.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_139.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_13.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_140.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_141.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_142.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_143.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_144.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_145.root', -# 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_146.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_147.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_148.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_149.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_14.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_150.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_151.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_152.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_153.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_154.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_155.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_156.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_157.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_158.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_159.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_15.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_160.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_161.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_162.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_164.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_165.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_166.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_167.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_168.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_169.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_170.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_171.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_172.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_173.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_174.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_176.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_177.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_178.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_179.root', -# 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_17.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_180.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_181.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_182.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_183.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_184.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_185.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_186.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_187.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_189.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_18.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_190.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_191.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_192.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_193.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_194.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_195.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_196.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_197.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_198.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_199.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_19.root', -# 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_1.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_200.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_201.root', -# 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_202.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_203.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_204.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_205.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_206.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_207.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_208.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_209.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_20.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_210.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_212.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_213.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_214.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_216.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_217.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_218.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_21.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_220.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_221.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_222.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_223.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_224.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_225.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_226.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_227.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_228.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_229.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_22.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_230.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_231.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_232.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_233.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_234.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_235.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_236.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_237.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_238.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_239.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_23.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_240.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_241.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_242.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_243.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_244.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_245.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_246.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_247.root', -# 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_249.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_24.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_250.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_25.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_26.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_27.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_28.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_2.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_30.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_31.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_32.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_33.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_34.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_35.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_36.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_37.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_38.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_39.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_3.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_40.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_41.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_42.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_43.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_44.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_45.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_46.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_47.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_48.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_49.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_4.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_50.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_51.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_52.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_53.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_55.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_56.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_57.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_58.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_59.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_5.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_60.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_61.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_62.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_63.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_64.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_65.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_67.root', -# 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_68.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_69.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_6.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_71.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_72.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_73.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_74.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_75.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_76.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_77.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_78.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_79.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_7.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_80.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_81.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_82.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_83.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_84.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_85.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_86.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_87.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_89.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_8.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_90.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_91.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_92.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_94.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_95.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_96.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_97.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_98.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_99.root', - 'dcache:/pnfs/cms/WAX/resilient/rappocc/zprime/zprime_2000GeV_9.root' - - ) - ) diff --git a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_ZPrime5000JJ_RelVal_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/RecoInput_ZPrime5000JJ_RelVal_cfi.py deleted file mode 100644 index 5e2a1baa79f64..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_ZPrime5000JJ_RelVal_cfi.py +++ /dev/null @@ -1,94 +0,0 @@ -# from /RelValZPrime5000JJ/CMSSW_2_1_0_pre6-RelVal-1214239099-STARTUP_V1-2nd/GEN-SIM-DIGI-RAW-HLTDEBUG-RECO - -import FWCore.ParameterSet.Config as cms - -# from - -def RecoInput() : - return cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(200), - debugFlag = cms.untracked.bool(True), - - fileNames = cms.untracked.vstring( -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/02123B00-BC42-DD11-8A59-000423D6CA02.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/022373EC-B342-DD11-8E53-001617E30F4C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/04E4364D-C242-DD11-8481-000423D6CA72.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/0A69E636-C142-DD11-9B5D-000423D992DC.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/0C050842-B542-DD11-B5D4-000423D94E70.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/0C156BF8-B842-DD11-A1E7-000423D9853C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/0C82D302-B642-DD11-8910-0019DB29C5FC.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/0E63D7BD-B442-DD11-9E76-001617DBD332.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/10AB3A52-B442-DD11-9A6B-001617DBD288.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/1448781B-B742-DD11-883B-000423D998BA.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/145049C2-BE42-DD11-83C0-000423D9870C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/1468D509-BF42-DD11-AE17-000423D6BA18.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/1497D214-B542-DD11-A818-001617E30D00.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/163B3739-BD42-DD11-B5E4-001617DBCF1E.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/1853C569-C142-DD11-B955-000423D6CAF2.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/1ACFE920-C242-DD11-8C90-000423D6B444.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/1ADE73A2-C042-DD11-9E30-001617DF785A.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/1E5AAFF3-B342-DD11-BC28-001617C3B6E8.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/22E86C41-B742-DD11-AAB8-000423D94A04.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/22F77CBD-C142-DD11-9761-000423D6AF24.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/269B56F8-B942-DD11-B20D-0019DB29C614.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/26CEEB02-B542-DD11-AF71-00161757BF42.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/2A86C27B-BD42-DD11-ABC5-001617C3B76A.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/2AC44294-B442-DD11-91F0-000423D9870C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/2C145D12-C042-DD11-BFFB-001617E30F58.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/2C811DD2-B442-DD11-B501-001617DBD5B2.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/2ECD8DD9-DA42-DD11-AD6C-000423D6CAF2.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/34F4DD17-B642-DD11-9C7F-001617E30CC8.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/3E07AFA1-C042-DD11-94B6-001617E30E2C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/423AF539-B542-DD11-AD01-000423D98E54.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/4C9EB506-B542-DD11-9DD5-000423D9853C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/50C7B709-B542-DD11-9C50-000423D992DC.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/52644119-B442-DD11-B107-001617DF785A.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/52BA9CAB-B642-DD11-8678-000423D99A8E.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/5A8ED482-D042-DD11-AA45-000423D6B358.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/5E6B8E52-B642-DD11-91F4-000423D99CEE.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/6030B4FD-B442-DD11-B1B3-000423D6C8EE.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/6821370D-B642-DD11-9465-000423D990CC.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/6A575E8C-BE42-DD11-A534-000423D6CAF2.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/6E8B6FCE-BA42-DD11-86CB-000423D985E4.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/704C6DE2-BD42-DD11-857D-000423D9939C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/7201E196-C042-DD11-8619-000423D6BA18.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/7AF8CA3B-B542-DD11-A56A-001617DBD332.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/8030EBE3-D642-DD11-A92F-000423D9870C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/82CAEE7B-BD42-DD11-8075-001617C3B76A.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/861DDE4E-C242-DD11-A7DD-000423D9863C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/88CD0478-0643-DD11-9F29-000423D9853C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/90CC5B4C-B642-DD11-BF7B-0019DB2F3F9B.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/9238E2D5-BA42-DD11-8F68-000423D9939C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/92466FF6-BD42-DD11-A013-001617E30F58.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/9A7E7932-B542-DD11-8DBD-001617DF785A.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/9C27E5CB-BE42-DD11-ABCB-000423D6B358.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/9C6F2DFC-BC42-DD11-8363-000423D992DC.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/A27F84F9-C042-DD11-BA4E-000423DD2F34.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/A287D080-B842-DD11-9B8D-001617E30D0A.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/A6298D5E-B442-DD11-BDD1-001617DBCF1E.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/AE42126E-BD42-DD11-B24F-001617C3B76E.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/B629193F-B542-DD11-8FA0-001617C3B710.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/BAA41619-B442-DD11-A8F1-001617E30D52.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/BAEF42C3-B542-DD11-8008-000423D98EA8.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/C49C9A04-C042-DD11-A1AD-001617E30F50.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/C66658E5-B442-DD11-A28D-000423D98950.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/CA974CA5-B242-DD11-AFE0-001617C3B5D8.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/CAB3A95C-B442-DD11-846A-001617C3B6CC.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/CE3CDA38-C042-DD11-9A73-000423D6C8E6.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/D2940B94-B442-DD11-B5F3-001617C3B706.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/D2DDA5BB-BD42-DD11-A491-001617DBD5AC.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/DAC11869-C042-DD11-8F79-000423D98DB4.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/DC682983-B542-DD11-8DB0-000423D95220.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/DCC90E90-B242-DD11-9969-001617E30D00.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/DCF131B7-C242-DD11-8A65-000423D9880C.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/DE3BC247-B542-DD11-BF36-001617C3B79A.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/DE4AA6E3-BC42-DD11-9F6E-001617C3B778.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/E0C7BA99-B442-DD11-8F2C-001617C3B778.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/E8D00DF6-B242-DD11-9C32-000423D992A4.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/EE7E76CB-BB42-DD11-BCC5-001617C3B6E2.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/F40F9434-B742-DD11-9344-000423D985B0.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/F6745063-BF42-DD11-8000-000423D6B444.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/FA726640-C042-DD11-9035-00161757BF42.root', -'/store/relval/2008/6/25/RelVal-RelValZPrime5000JJ-1214239099-STARTUP_V1-2nd/0007/FE6CFC98-B542-DD11-9608-000423D98BC4.root' -) -) diff --git a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_ttbar_cfi.py b/TopQuarkAnalysis/TopPairBSM/python/RecoInput_ttbar_cfi.py deleted file mode 100644 index fdb69192673c5..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/RecoInput_ttbar_cfi.py +++ /dev/null @@ -1,74 +0,0 @@ -# from /RelValQCD_Pt_3000_3500/CMSSW_2_1_0_pre6-RelVal-1213987236-IDEAL_V2-2nd/GEN-SIM-DIGI-RAW-HLTDEBUG-RECO - -import FWCore.ParameterSet.Config as cms - -# from - -def RecoInput() : - source = cms.Source("PoolSource", - debugVerbosity = cms.untracked.uint32(200), - debugFlag = cms.untracked.bool(True), - - fileNames = cms.untracked.vstring( - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0003/C4807780-C140-DD11-A03E-000423D94700.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/1E214499-FF40-DD11-8FB1-000423D6B48C.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/2C0910EE-0141-DD11-B889-000423D9A212.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/404AF710-1B41-DD11-BCAA-000423D9A2AE.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/44362DF5-0141-DD11-BE89-000423D94E70.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/4893E9E6-0141-DD11-BF9B-000423D174FE.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/4C747DCB-C240-DD11-9FFD-001617C3B654.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/5A8D6CDA-0141-DD11-8385-001617DBCF90.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/6CB037F2-1641-DD11-97F0-000423D60FF6.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/76868FAB-FD40-DD11-B004-000423D985E4.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/98503807-FE40-DD11-BAFD-000423D6B5C4.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/A62D04A2-2E41-DD11-A83A-001617C3B6E8.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/A66AEAF6-E840-DD11-BDAE-000423D6B48C.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/AE397234-CA40-DD11-9413-001617E30F48.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/BED974D0-FD40-DD11-9EE8-000423D992A4.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/DC2591DC-0141-DD11-9BC7-001617C3B710.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/E22815E1-0141-DD11-9A34-000423D94A20.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0004/E2D61307-0241-DD11-AD42-000423D99160.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/027AF342-2D41-DD11-B7C9-000423D6B42C.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/226FAD25-1C41-DD11-8F69-001617DBD556.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/288EEA34-0541-DD11-99F3-001617C3B706.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/2A206EAB-0D41-DD11-93F9-001617C3B77C.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/34AF420E-1A41-DD11-B3B3-000423D6B358.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/3AF6EB27-0A41-DD11-AD0F-001D09F2546F.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/3C5DCCD4-0441-DD11-9DAD-000423D9890C.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/3C7BD8C3-0941-DD11-8F0B-001D09F2525D.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/4448EBFB-1B41-DD11-BDBA-001617C3B6C6.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/4E4F6886-1C41-DD11-B609-001617C3B65A.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/60F01F12-0341-DD11-B2AF-000423D999CA.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/641734FF-0341-DD11-8CEF-001D09F29533.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/64C86292-1841-DD11-8B73-000423D985E4.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/7255AFEF-1941-DD11-B344-000423DD2F34.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/780CDBA3-1841-DD11-ADAA-000423D9870C.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/78FE44A1-0541-DD11-8F39-0016177CA7A0.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/7C0DF817-1E41-DD11-9E09-000423D9880C.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/7C70FC0D-1B41-DD11-935A-000423D9890C.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/7C9FC0F9-2C41-DD11-BD8F-000423D6B5C4.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/80FA9837-1741-DD11-AEF1-001617C3B778.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/8454634B-0341-DD11-BDFB-0019B9F72F97.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/869BFC18-0341-DD11-B513-001617DBD472.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/923E868A-0341-DD11-9140-0030487A18A4.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/92B94E04-0A41-DD11-BB83-001D09F23A84.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/9662B512-1F41-DD11-B784-000423D6B444.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/9C28266C-0B41-DD11-80B1-001D09F2523A.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/9CB53EA6-0841-DD11-B49B-00304879FBB2.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/9EE1C0A7-0641-DD11-9311-000423D98BE8.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/AA70BA5B-1341-DD11-B23B-000423D94534.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/B256FEFB-0941-DD11-BA0E-000423D98930.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/C09D9CC9-0741-DD11-AD14-001D09F232B9.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/C6ED94E3-0841-DD11-8BE5-001D09F2438A.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/C8374E0F-0541-DD11-BFD2-000423D98920.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/D656C8DD-1B41-DD11-AF3A-001617E30F56.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/DCF600E4-1841-DD11-B757-000423D98DB4.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/DE2546D0-0B41-DD11-9999-001D09F248F8.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/DED45D59-0741-DD11-8EB9-001D09F23A34.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/ECF91043-0A41-DD11-9B57-001D09F29538.root', - '/store/relval/2008/6/22/RelVal-RelValTTbar-1213987236-IDEAL_V2-2nd/0005/F25BD264-1E41-DD11-8381-000423D992DC.root' - ) - ) - - - return source diff --git a/TopQuarkAnalysis/TopPairBSM/python/TopAnalysis_Defaults.py b/TopQuarkAnalysis/TopPairBSM/python/TopAnalysis_Defaults.py deleted file mode 100644 index b1eb930a1f6ef..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/TopAnalysis_Defaults.py +++ /dev/null @@ -1,46 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -TopAnalyzer = cms.EDAnalyzer("BooLowMAnalyzer", - debug = cms.bool( False ), - IsMCTop = cms.bool( True ), - genEventSource = cms.InputTag('genEvt'), - muonSource = cms.InputTag('selectedLayer1Muons'), - electronSource = cms.InputTag('selectedLayer1Electrons'), - metSource = cms.InputTag('layer1METs'), - jetSource = cms.InputTag('selectedLayer1Jets'), - rootFilename = cms.string('TopAnalysis.root'), - PdfInfoTag = cms.untracked.InputTag("genEventPdfInfo"), - PdfSetName = cms.untracked.string("cteq66"), # Hard coded to use LHgrid - jetCuts = cms.PSet( - MinJetPt = cms.double( 30. ), - MaxJetEta = cms.double( 2.4), - ApplyAsymmetricCuts = cms.bool(False), - JES = cms.double( 1. ), - ApplyFlavorJEC = cms.bool(False) - ), - muonCuts = cms.PSet( - MinPt = cms.double( 20. ), - MaxEta = cms.double( 2.1 ), - ), - muonIsolation = cms.PSet( - RelIso = cms.double( 0.95 ), - MaxVetoEm = cms.double( 4.0 ), - MaxVetoHad = cms.double( 6.0 ) - ), - electronCuts = cms.PSet( - MinPt = cms.double( 20. ), - MaxEta = cms.double( 2.4 ), - RelIso = cms.double( 0.9 ) - ), - METCuts = cms. PSet( - MinMET = cms.double( 0. ), - Recalculate = cms.bool(False) - ), - UsebTagging = cms.bool(False), - UseMtopConstraint = cms.bool(True), - writeAscii = cms.bool( False), - asciiFilename = cms.string('TopAnalysis.txt'), - processOnlyEvent = cms.int32( -1 ), - makeJetLegoPlots = cms.bool( False ), - ) - diff --git a/TopQuarkAnalysis/TopPairBSM/python/TopAnalysis_sequences.py b/TopQuarkAnalysis/TopPairBSM/python/TopAnalysis_sequences.py deleted file mode 100644 index 3f6c76d8340f8..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/TopAnalysis_sequences.py +++ /dev/null @@ -1,58 +0,0 @@ -import FWCore.ParameterSet.Config as cms - - -## produce ttGenEvent -from TopQuarkAnalysis.TopEventProducers.sequences.ttGenEvent_cff import * -## semi-leptonic decay -import TopQuarkAnalysis.TopEventProducers.producers.TtDecaySelection_cfi - -ttMuonicFilter = TopQuarkAnalysis.TopEventProducers.producers.TtDecaySelection_cfi.ttDecaySelection.clone() -ttMuonicFilter.allowedTopDecays.decayBranchA.electron = cms.bool(False) -ttMuonicFilter.allowedTopDecays.decayBranchA.muon = cms.bool(True) -ttMuonicFilter.allowedTopDecays.decayBranchA.tau = cms.bool(False) -ttMuonicFilter.allowedTopDecays.decayBranchB.electron = cms.bool(False) -ttMuonicFilter.allowedTopDecays.decayBranchB.muon = cms.bool(False) -ttMuonicFilter.allowedTopDecays.decayBranchB.tau = cms.bool(False) -ttMuonicFilter.restrictTauDecays.leptonic = cms.bool(True) -ttMuonicFilter.restrictTauDecays.oneProng = cms.bool(True) -ttMuonicFilter.restrictTauDecays.threeProng = cms.bool(True) - -## invert selection -ttNoMuonicFilter = TopQuarkAnalysis.TopEventProducers.producers.TtDecaySelection_cfi.ttDecaySelection.clone() -ttNoMuonicFilter.allowedTopDecays.decayBranchA.electron = cms.bool(False) -ttNoMuonicFilter.allowedTopDecays.decayBranchA.muon = cms.bool(True) -ttNoMuonicFilter.allowedTopDecays.decayBranchA.tau = cms.bool(False) -ttNoMuonicFilter.allowedTopDecays.decayBranchB.electron = cms.bool(False) -ttNoMuonicFilter.allowedTopDecays.decayBranchB.muon = cms.bool(False) -ttNoMuonicFilter.allowedTopDecays.decayBranchB.tau = cms.bool(False) -ttNoMuonicFilter.restrictTauDecays.leptonic = cms.bool(True) -ttNoMuonicFilter.restrictTauDecays.oneProng = cms.bool(True) -ttNoMuonicFilter.restrictTauDecays.threeProng = cms.bool(True) -ttNoMuonicFilter.invert = cms.bool(True) - - -## setup HLT filter -from TopQuarkAnalysis.TopPairBSM.BooTopHLTFilter import * - -## Analyzer and setup default selection -from TopQuarkAnalysis.TopPairBSM.TopAnalysis_Defaults import * -from TopQuarkAnalysis.TopPairBSM.ABCDAnalysis_Defaults import * -from TopQuarkAnalysis.TopPairBSM.HighAnalysis_Defaults import * - - -TopAnalysisMuFilter = cms.Sequence( - ttMuonicFilter+ - BooTopHLTFilter+ - TopAnalyzer) - -TopAnalysisNoMuFilter = cms.Sequence( - ttNoMuonicFilter+ - BooTopHLTFilter+ - TopAnalyzer) - -TopAnalysis = cms.Sequence(BooTopHLTFilter+ - TopAnalyzer) - -ABCDAnalysis = cms.Sequence(ABCDAnalyzer) - -HighMAnalysis = cms.Sequence(HighMAnalyzer) diff --git a/TopQuarkAnalysis/TopPairBSM/python/caTopJets_cff.py b/TopQuarkAnalysis/TopPairBSM/python/caTopJets_cff.py deleted file mode 100644 index 7eb42129cc8d9..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/caTopJets_cff.py +++ /dev/null @@ -1,36 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from RecoJets.JetProducers.CATopJetParameters_cfi import * -from RecoJets.JetProducers.GenJetParameters_cfi import * -from RecoJets.JetProducers.CaloJetParameters_cfi import * -from RecoJets.JetProducers.PFJetParameters_cfi import * -from RecoJets.JetProducers.AnomalousCellParameters_cfi import * - - -caTopCaloJets = cms.EDProducer("CATopJetProducer", - CATopJetParameters, - CaloJetParameters, - AnomalousCellParameters, - jetAlgorithm = cms.string("CambridgeAachen"), - rParam = cms.double(0.0) #Parameter not used by CATopJetProducer but is necessary. use rbBins in CATopJetParameters_cfi.py - ) - - -caTopGenJets = cms.EDProducer("CATopJetProducer", - CATopJetParameters, - GenJetParameters, - AnomalousCellParameters, - jetAlgorithm = cms.string("CambridgeAachen"), - rParam = cms.double(0.0) #Parameter not used by CATopJetProducer but is necessary. use rbBins in CATopJetParameters_cfi.py - ) - - - -caTopPFJets = cms.EDProducer("CATopJetProducer", - CATopJetParameters, - PFJetParameters, - AnomalousCellParameters, - jetAlgorithm = cms.string("CambridgeAachen"), - rParam = cms.double(0.0) #Parameter not used by CATopJetProducer but is necessary. use rbBins in CATopJetParameters_cfi.py - ) - diff --git a/TopQuarkAnalysis/TopPairBSM/python/filters_cff.py b/TopQuarkAnalysis/TopPairBSM/python/filters_cff.py deleted file mode 100644 index 825c6aa09f1cb..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/python/filters_cff.py +++ /dev/null @@ -1,74 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -def applyFilters( process ) : - - - ## The beam scraping filter __________________________________________________|| - process.noscraping = cms.EDFilter( - "FilterOutScraping", - applyfilter = cms.untracked.bool(True), - debugOn = cms.untracked.bool(False), - numtrack = cms.untracked.uint32(10), - thresh = cms.untracked.double(0.25) - ) - - ## The iso-based HBHE noise filter ___________________________________________|| - #process.load('CommonTools.RecoAlgos.HBHENoiseFilter_cfi') - - ## The CSC beam halo tight filter ____________________________________________|| - #process.load('RecoMET.METAnalyzers.CSCHaloFilter_cfi') - process.load("RecoMET.METFilters.metFilters_cff") - - ## The HCAL laser filter _____________________________________________________|| - process.load("RecoMET.METFilters.hcalLaserEventFilter_cfi") - process.hcalLaserEventFilter.vetoByRunEventNumber=cms.untracked.bool(False) - process.hcalLaserEventFilter.vetoByHBHEOccupancy=cms.untracked.bool(True) - - ## The ECAL dead cell trigger primitive filter _______________________________|| - process.load('RecoMET.METFilters.EcalDeadCellTriggerPrimitiveFilter_cfi') - ## For AOD and RECO recommendation to use recovered rechits - process.EcalDeadCellTriggerPrimitiveFilter.tpDigiCollection = cms.InputTag("ecalTPSkimNA") - - ## The EE bad SuperCrystal filter ____________________________________________|| - process.load('RecoMET.METFilters.eeBadScFilter_cfi') - - ## The Good vertices collection needed by the tracking failure filter ________|| - process.goodVertices = cms.EDFilter( - "VertexSelector", - filter = cms.bool(False), - src = cms.InputTag("offlinePrimaryVertices"), - cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.rho < 2") - ) - - ## The tracking failure filter _______________________________________________|| - process.load('RecoMET.METFilters.trackingFailureFilter_cfi') - process.load('RecoMET.METFilters.trackingPOGFilters_cfi') - - - # Tracking TOBTEC fakes filter ## - # if true, only events passing filter (bad events) will pass - process.tobtecfakesfilter.filter=cms.bool(False) - - - - - ## The good primary vertex filter ____________________________________________|| - pvSrc = 'offlinePrimaryVertices' - process.primaryVertexFilter = cms.EDFilter( - "VertexSelector", - src = cms.InputTag("offlinePrimaryVertices"), - cut = cms.string("!isFake & ndof > 4 & abs(z) <= 24 & position.Rho <= 2"), - filter = cms.bool(True) - ) - - - from PhysicsTools.SelectorUtils.pvSelector_cfi import pvSelector - process.goodOfflinePrimaryVertices = cms.EDFilter( - "PrimaryVertexObjectFilter", - filterParams = pvSelector.clone( maxZ = cms.double(24.0), - minNdof = cms.double(4.0) # this is >= 4 - ), - src=cms.InputTag(pvSrc) - ) - - diff --git a/TopQuarkAnalysis/TopPairBSM/src/BoostedTopProducer.cc b/TopQuarkAnalysis/TopPairBSM/src/BoostedTopProducer.cc deleted file mode 100644 index 752948416eff2..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/src/BoostedTopProducer.cc +++ /dev/null @@ -1,381 +0,0 @@ -#include "BoostedTopProducer.h" -#include "CommonTools/CandUtils/interface/AddFourMomenta.h" - -#include -#include -#include - -using std::cout; -using std::endl; -using std::string; - -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - -// -// constructors and destructor -// -BoostedTopProducer::BoostedTopProducer(const edm::ParameterSet& iConfig) - : eleToken_(consumes >(iConfig.getParameter("electronLabel"))), - muoToken_(consumes >(iConfig.getParameter("muonLabel"))), - jetToken_(consumes >(iConfig.getParameter("jetLabel"))), - metToken_(consumes >(iConfig.getParameter("metLabel"))), - solToken_(mayConsume(iConfig.getParameter("solLabel"))), - caloIsoCut_(iConfig.getParameter("caloIsoCut")), - mTop_(iConfig.getParameter("mTop")) { - //register products - produces >(); -} - -BoostedTopProducer::~BoostedTopProducer() {} - -// -// member functions -// - -// ------------ method called to produce the data ------------ -void BoostedTopProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - - bool debug = false; - - // ----------------------------------------------------- - // get the bare PAT objects - // ----------------------------------------------------- - edm::Handle > muonHandle; - iEvent.getByToken(muoToken_, muonHandle); - std::vector const& muons = *muonHandle; - - edm::Handle > jetHandle; - iEvent.getByToken(jetToken_, jetHandle); - std::vector const& jets = *jetHandle; - - edm::Handle > electronHandle; - iEvent.getByToken(eleToken_, electronHandle); - std::vector const& electrons = *electronHandle; - - edm::Handle > metHandle; - iEvent.getByToken(metToken_, metHandle); - std::vector const& mets = *metHandle; - - // ----------------------------------------------------- - // Event Preselection: - // <= 1 isolated electron or muon - // >= 1 electron or muon - // >= 2 jets - // >= 1 missing et - // - // To explain: - // We want to look at leptons within "top jets" in some - // cases. This means the isolation will kill those events. - // However, if there IS an isolated lepton, we want only - // one of them. - // - // So to select the prompt W lepton, the logic is: - // 1. If there is an isolated lepton, accept it as the W lepton. - // 2. Else, take the highest Pt lepton (possibly non-isolated) - // - // ----------------------------------------------------- - bool preselection = true; - - // This will hold the prompt W lepton candidate, and a - // maximum pt decision variable - double maxWLeptonPt = -1; - //reco::Candidate const * Wlepton = 0; - - // ---------------------- - // Find isolated muons, and highest pt lepton - // ---------------------- - std::vector::const_iterator isolatedMuon = muons.end(); - std::vector::const_iterator muon = muons.end(); - unsigned int nIsolatedMuons = 0; - std::vector::const_iterator muonIt = muons.begin(), muonEnd = muons.end(); - for (; muonIt != muonEnd; ++muonIt) { - // Find highest pt lepton - double pt = muonIt->pt(); - if (pt > maxWLeptonPt) { - maxWLeptonPt = pt; - muon = muonIt; - } - - // Find any isolated muons - double caloIso = muonIt->caloIso(); - if (caloIso >= 0 && caloIso < caloIsoCut_) { - nIsolatedMuons++; - isolatedMuon = muonIt; - } - } - - // ---------------------- - // Find isolated electrons, and highest pt lepton - // ---------------------- - std::vector::const_iterator isolatedElectron = electrons.end(); - std::vector::const_iterator electron = electrons.end(); - unsigned int nIsolatedElectrons = 0; - std::vector::const_iterator electronIt = electrons.begin(), electronEnd = electrons.end(); - for (; electronIt != electronEnd; ++electronIt) { - // Find highest pt lepton - double pt = electronIt->pt(); - if (pt > maxWLeptonPt) { - maxWLeptonPt = pt; - electron = electronIt; - } - - // Find any isolated electrons - double caloIso = electronIt->caloIso(); - if (caloIso >= 0 && caloIso < caloIsoCut_) { - nIsolatedElectrons++; - isolatedElectron = electronIt; - } - } - - // ---------------------- - // Now decide on the "prompt" lepton from the W: - // Choose isolated leptons over all, and if no isolated, - // then take highest pt lepton. - // ---------------------- - bool isMuon = true; - if (isolatedMuon != muonEnd) { - muon = isolatedMuon; - isMuon = true; - } else if (isolatedElectron != electronEnd) { - electron = isolatedElectron; - isMuon = false; - } else { - // Set to the highest pt lepton - if (muon != muonEnd && electron == electronEnd) - isMuon = true; - else if (muon == muonEnd && electron != electronEnd) - isMuon = false; - else if (muon != muonEnd && electron != electronEnd) { - isMuon = muon->pt() > electron->pt(); - } - } - - // ---------------------- - // Veto events that have more than one isolated lepton - // ---------------------- - int nIsolatedLeptons = nIsolatedMuons + nIsolatedElectrons; - if (nIsolatedLeptons > 1) { - preselection = false; - } - - // ---------------------- - // Veto events that have no prompt lepton candidates - // ---------------------- - if (muon == muonEnd && electron == electronEnd) { - preselection = false; - } - - // ---------------------- - // Veto events with < 2 jets or no missing et - // ---------------------- - if (jets.size() < 2 || mets.empty()) { - preselection = false; - } - - bool write = false; - - // ----------------------------------------------------- - // - // CompositeCandidates to store the event solution. - // This will take one of two forms: - // a) lv jj jj Full reconstruction. - // - // ttbar-> - // (hadt -> (hadW -> hadp + hadq) + hadb) + - // (lept -> (lepW -> lepton + neutrino) + lepb) - // - // b) lv jj (j) Partial reconstruction, associate - // at least 1 jet to the lepton - // hemisphere, and at least one jet in - // the opposite hemisphere. - // - // ttbar-> - // (hadt -> (hadJet1 [+ hadJet2] ) ) + - // (lept -> (lepW -> lepton + neutrino) + lepJet1 ) - // - // There will also be two subcategories of (b) that - // will correspond to physics cases: - // - // b1) Lepton is isolated: Moderate ttbar mass. - // b2) Lepton is nonisolated: High ttbar mass. - // - // ----------------------------------------------------- - reco::CompositeCandidate ttbar("ttbar"); - AddFourMomenta addFourMomenta; - - // Main decisions after preselection - if (preselection) { - if (debug) - cout << "Preselection is satisfied" << endl; - - if (debug) - cout << "Jets.size() = " << jets.size() << endl; - - // This will be modified for the z solution, so make a copy - pat::MET neutrino(mets[0]); - - // 1. First examine the low mass case with 4 jets and widely separated - // products. We take out the TtSemiLeptonicEvent from the TQAF and - // form the ttbar invariant mass. - if (jets.size() >= 4) { - if (debug) - cout << "Getting ttbar semileptonic solution" << endl; - - // get the ttbar semileptonic event solution if there are more than 3 jets - edm::Handle eSol; - iEvent.getByToken(solToken_, eSol); - - // Have solution, continue - if (eSol.isValid()) { - if (debug) - cout << "Got a nonzero size solution vector" << endl; - // Just set the ttbar solution to the best ttbar solution from - // TtSemiEvtSolutionMaker - ttbar = eSol->eventHypo(TtSemiLeptonicEvent::kMVADisc); - write = true; - } - // No ttbar solution with 4 jets, something is weird, print a warning - else { - edm::LogWarning("DataNotFound") << "BoostedTopProducer: Cannot find TtSemiEvtSolution\n"; - } - } - // 2. With 2 or 3 jets, we decide based on the separation between - // the lepton and the closest jet in that hemisphere whether to - // consider it "moderate" or "high" mass. - else if (jets.size() == 2 || jets.size() == 3) { - // ------------------------------------------------------------------ - // First create a leptonic W candidate - // ------------------------------------------------------------------ - reco::CompositeCandidate lepW("lepW"); - - if (isMuon) { - if (debug) - cout << "Adding muon as daughter" << endl; - lepW.addDaughter(*muon, "muon"); - } else { - if (debug) - cout << "Adding electron as daughter" << endl; - lepW.addDaughter(*electron, "electron"); - } - if (debug) - cout << "Adding neutrino as daughter" << endl; - lepW.addDaughter(neutrino, "neutrino"); - addFourMomenta.set(lepW); - - //bool nuzHasComplex = false; - METzCalculator zcalculator; - - zcalculator.SetMET(neutrino); - if (isMuon) - zcalculator.SetMuon(*muon); - else - zcalculator.SetMuon(*electron); // This name is misleading, should be setLepton - double neutrinoPz = zcalculator.Calculate(1); // closest to the lepton Pz - //if (zcalculator.IsComplex()) nuzHasComplex = true; - // Set the neutrino pz - neutrino.setPz(neutrinoPz); - - if (debug) - cout << "Set neutrino pz to " << neutrinoPz << endl; - - // ------------------------------------------------------------------ - // Next ensure that there is a jet within the hemisphere of the - // leptonic W, and one in the opposite hemisphere - // ------------------------------------------------------------------ - reco::CompositeCandidate hadt("hadt"); - reco::CompositeCandidate lept("lept"); - if (debug) - cout << "Adding lepW as daughter" << endl; - lept.addDaughter(lepW, "lepW"); - - std::string hadName("hadJet"); - std::string lepName("lepJet"); - - // Get the W momentum - TLorentzVector p4_W(lepW.px(), lepW.py(), lepW.pz(), lepW.energy()); - - // Loop over the jets - std::vector::const_iterator jetit = jets.begin(), jetend = jets.end(); - unsigned long ii = 1; // Count by 1 for naming histograms - for (; jetit != jetend; ++jetit, ++ii) { - // Get this jet's momentum - TLorentzVector p4_jet(jetit->px(), jetit->py(), jetit->pz(), jetit->energy()); - - // Calculate psi (like DeltaR, only more invariant under Rapidity) - double psi = Psi(p4_W, p4_jet, mTop_); - - // Get jets that are in the leptonic hemisphere - if (psi < TMath::Pi()) { - // Add this jet to the leptonic top - std::stringstream s; - s << lepName << ii; - if (debug) - cout << "Adding daughter " << s.str() << endl; - lept.addDaughter(*jetit, s.str()); - } - // Get jets that are in the hadronic hemisphere - if (psi > TMath::Pi()) { - // Add this jet to the hadronic top. We don't - // make any W hypotheses in this case, since - // we cannot determine which of the three - // jets are merged. - std::stringstream s; - s << hadName << ii; - if (debug) - cout << "Adding daughter " << s.str() << endl; - hadt.addDaughter(*jetit, s.str()); - } - } // end loop over jets - - addFourMomenta.set(lept); - addFourMomenta.set(hadt); - - bool lepWHasJet = lept.numberOfDaughters() >= 2; // W and >= 1 jet - bool hadWHasJet = hadt.numberOfDaughters() >= 1; // >= 1 jet - if (lepWHasJet && hadWHasJet) { - if (debug) - cout << "Adding daughters lept and hadt" << endl; - ttbar.addDaughter(lept, "lept"); - ttbar.addDaughter(hadt, "hadt"); - addFourMomenta.set(ttbar); - write = true; - } // end of hadronic jet and leptonic jet - - } // end if there are 2 or 3 jets - - } // end if preselection is satisfied - - // Write the solution to the event record - std::vector ttbarList; - if (write) { - if (debug) - cout << "Writing out" << endl; - ttbarList.push_back(ttbar); - } - std::unique_ptr > pTtbar(new std::vector(ttbarList)); - iEvent.put(std::move(pTtbar)); -} - -double BoostedTopProducer::Psi(const TLorentzVector& p1, const TLorentzVector& p2, double mass) { - TLorentzVector ptot = p1 + p2; - Double_t theta1 = TMath::ACos((p1.Vect().Dot(ptot.Vect())) / (p1.P() * ptot.P())); - Double_t theta2 = TMath::ACos((p2.Vect().Dot(ptot.Vect())) / (p2.P() * ptot.P())); - //Double_t sign = 1.; - //if ( (theta1+theta2) > (TMath::Pi()/2) ) sign = -1.; - double th1th2 = theta1 + theta2; - double psi = (p1.P() + p2.P()) * TMath::Abs(TMath::Sin(th1th2)) / (2. * mass); - if (th1th2 > (TMath::Pi() / 2)) - psi = (p1.P() + p2.P()) * (1. + TMath::Abs(TMath::Cos(th1th2))) / (2. * mass); - - return psi; -} - -//define this as a plug-in -DEFINE_FWK_MODULE(BoostedTopProducer); diff --git a/TopQuarkAnalysis/TopPairBSM/src/BoostedTopProducer.h b/TopQuarkAnalysis/TopPairBSM/src/BoostedTopProducer.h deleted file mode 100644 index 530587006c501..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/src/BoostedTopProducer.h +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef TopQuarkAnalysis_TopPairBSM_interface_BoostedTopProducer_h -#define TopQuarkAnalysis_TopPairBSM_interface_BoostedTopProducer_h - -// -*- C++ -*- -// -// Package: BoostedTopProducer -// Class: BoostedTopProducer -// -/**\class BoostedTopProducer BoostedTopProducer.cc BoostedTopProducer.cc - - Description: Class to examine boosted ttbar pairs in multiple mass regions. - - This will produce a ttbar solution, which will take one of two forms: - a) lv jj jj Full reconstruction. - - ttbar-> - (hadt -> (hadW -> hadp + hadq) + hadb) + - (lept -> (lepW -> lepton + neutrino) + lepb) - - b) lv jj (j) Partial reconstruction, associate - at least 1 jet to the lepton - hemisphere, and at least one jet in - the opposite hemisphere. - - ttbar-> - (hadt -> (hadJet1 [+ hadJet2] ) ) + - (lept -> (lepW -> lepton + neutrino) + lepJet1 ) - - There will also be two subcategories of (b) that - will correspond to physics cases: - - b1) Lepton is isolated: Moderate ttbar mass. - b2) Lepton is nonisolated: High ttbar mass. - - - Implementation: - To implement this, we use the NamedCompositeCandidate structures - from the Candidate model. This provides flexibility in the definition of the - output objects and allows automatic plotting in the Starter Kit. - We use the PAT objects to construct the ttbar solutions in the different ranges - as follows: - a) Full reconstruction: We use TtSemiEventSolutions made upstream of this module. - b) Partial reconstruction: Association of variables using the "Psi" variable, - which is a more rapidity-invariant version of deltaR. -*/ -// -// Original Author: "Salvatore Rappoccio" -// Created: Thu May 1 11:37:48 CDT 2008 -// -// - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/Candidate/interface/CompositeCandidate.h" -#include "DataFormats/PatCandidates/interface/Muon.h" -#include "DataFormats/PatCandidates/interface/Electron.h" -#include "DataFormats/PatCandidates/interface/Jet.h" -#include "DataFormats/PatCandidates/interface/MET.h" -#include "DataFormats/PatCandidates/interface/Hemisphere.h" - -#include "METzCalculator.h" -#include "AnalysisDataFormats/TopObjects/interface/TtSemiLeptonicEvent.h" -#include "TLorentzVector.h" -#include "TMath.h" - -// -// class decleration -// - -class BoostedTopProducer : public edm::EDProducer { -public: - explicit BoostedTopProducer(const edm::ParameterSet&); - ~BoostedTopProducer() override; - -private: - void produce(edm::Event&, const edm::EventSetup&) override; - - // ----------member data --------------------------- - - // data labels - edm::EDGetTokenT > eleToken_; - edm::EDGetTokenT > muoToken_; - edm::EDGetTokenT > jetToken_; - edm::EDGetTokenT > metToken_; - edm::EDGetTokenT solToken_; - - // Cut variables - double caloIsoCut_; // isolation cut to consider a lepton isolated - double mTop_; // input top mass - - // Rapidity-invariant deltaR - double Psi(const TLorentzVector& p1, const TLorentzVector& p2, double mass); -}; - -#endif diff --git a/TopQuarkAnalysis/TopPairBSM/src/JetCombinatorics.cc b/TopQuarkAnalysis/TopPairBSM/src/JetCombinatorics.cc deleted file mode 100644 index c28085e176dbd..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/src/JetCombinatorics.cc +++ /dev/null @@ -1,347 +0,0 @@ -/**_________________________________________________________________ - class: JetCombinatorics.cc - package: Analyzer/TopTools - - - author: Francisco Yumiceva, Fermilab (yumiceva@fnal.gov) - - version $Id: JetCombinatorics.cc,v 1.3 2009/07/30 06:02:21 jengbou Exp $ - -________________________________________________________________**/ - -#include "JetCombinatorics.h" -#include "TMath.h" - -#include - -std::string itoa(int i) { - char temp[20]; - sprintf(temp, "%d", i); - return ((std::string)temp); -} - -//_______________________________________________________________ -JetCombinatorics::JetCombinatorics() { - this->Clear(); - - minMassLepW_ = -999999.; - maxMassLepW_ = 999999.; - minMassHadW_ = -999999.; - maxMassHadW_ = 999999.; - minMassLepTop_ = -999999.; - maxMassLepTop_ = 999999.; - - minPhi_ = -1.; - removeDuplicates_ = true; - maxNJets_ = 9999; - verbosef = false; - UsebTagging_ = false; - UseMtop_ = true; - SigmasTypef = 0; - UseFlv_ = false; - - Template4jCombos_ = NestedCombinatorics(); // 12 combinations - Template5jCombos_ = Combinatorics(4, 5); // 5 combinations of 4 combos - Template6jCombos_ = Combinatorics(4, 6); // 15 combinations of 4 combos - Template7jCombos_ = Combinatorics(4, 7); // xx combinations of 4 combos -} - -//_______________________________________________________________ -JetCombinatorics::~JetCombinatorics() { this->Clear(); } - -//_______________________________________________________________ -void JetCombinatorics::Clear() { - allCombos_.clear(); - allCombosSumEt_.clear(); - Template4jCombos_.clear(); - Template5jCombos_.clear(); - Template6jCombos_.clear(); - Template7jCombos_.clear(); - cand1_.clear(); -} - -//_______________________________________________________________ -std::map JetCombinatorics::Combinatorics(int n, int max) { - // find a combinatorics template - // This is a simple stupid function to make algebratic combinatorics - - int kcombos = n; - int maxcombos = max; - - std::string list; - - for (int m = 0; m < maxcombos; m++) { - list = list + (itoa(m)); - } - - std::string seed; - for (int m = 0; m < kcombos; m++) { - seed = seed + (itoa(m)); - } - - std::map aTemplateCombos; - aTemplateCombos.clear(); - - aTemplateCombos[0] = seed; - - int i = 0; - int totalmatches = seed.size(); - int totalIte = list.size(); - - for (int ite = 0; ite < ((int)totalIte); ite++) { - //cout << "iteration " << ite << endl; - //i = 0; - //for ( Itevec = seed.begin(); Itevec != seed.end(); ++Itevec) { - for (i = 0; i < (int)totalmatches; i++) { - std::string newseed = aTemplateCombos[ite]; - std::string newseed2; - /* - cout << "newseed size= " << newseed.size() << " : "; - for (std::vector< std::string>::iterator iite = newseed.begin(); - iite != newseed.end(); ++iite) { - - cout << *iite << " "; - } - cout << endl; - */ - for (int itemp = 0; itemp < (int)newseed.size(); itemp++) { - if (itemp != i) - newseed2 = newseed2 + (newseed[itemp]); - } - /* - cout << "newseed2: "; - for (std::vector< std::string>::iterator iite = newseed2.begin(); - iite != newseed2.end(); ++iite) { - - cout << *iite << " "; - } - cout << endl; - */ - for (int j = 0; j < (int)list.size(); j++) { - //cout << " j = " << j << endl; - bool Isnewelement = true; - std::string newelement = "0"; - //bool Isnewcombo = true; - for (int k = 0; k < (int)newseed2.size(); k++) { - if (list[j] == newseed2[k]) - Isnewelement = false; - } - if (Isnewelement) { - newelement = list[j]; - //cout << "new element: " << newelement << endl; - - std::string candseed = newseed2; - candseed = candseed + newelement; - - bool IsnewCombo = true; - for (int ic = 0; ic < (int)aTemplateCombos.size(); ++ic) { - int nmatch = 0; - for (int ij = 0; ij < (int)(aTemplateCombos[ic]).size(); ij++) { - for (int ik = 0; ik < (int)candseed.size(); ik++) { - if (candseed[ik] == aTemplateCombos[ic][ij]) - nmatch++; - } - } - if (nmatch == (int)totalmatches) - IsnewCombo = false; - } - if (IsnewCombo) { - //cout << "new combo"<< " before combo size=" << aTemplateCombos.size() << endl; - aTemplateCombos[(int)aTemplateCombos.size()] = candseed; - //cout << " after size = " << aTemplateCombos.size() << endl; - } - } - } - } - } //close iterations - - // debug info - - //std::cout << " build templates for total combos = " << aTemplateCombos.size() << std::endl; - //std::cout << " template combos: " << std::endl; - //for (size_t ic=0; ic != aTemplateCombos.size(); ++ic) { - - //std::cout << aTemplateCombos[ic] << std::endl; - //} - - return aTemplateCombos; -} - -//______________________________________________________________ -std::map JetCombinatorics::NestedCombinatorics() { - // build by hand 12 combinations for semileptonic top decays - - std::map aTemplateCombos; - aTemplateCombos.clear(); - - aTemplateCombos[0] = "0123"; - aTemplateCombos[1] = "0132"; - aTemplateCombos[2] = "0213"; - aTemplateCombos[3] = "0231"; - aTemplateCombos[4] = "0312"; - aTemplateCombos[5] = "0321"; - aTemplateCombos[6] = "1203"; - aTemplateCombos[7] = "1230"; - aTemplateCombos[8] = "1302"; - aTemplateCombos[9] = "1320"; - aTemplateCombos[10] = "2301"; - aTemplateCombos[11] = "2310"; - - return aTemplateCombos; -} - -//______________________________________________________________ -void JetCombinatorics::FourJetsCombinations(const std::vector& jets, - const std::vector& bdiscriminators) { - int n = 0; // total number of combos - std::map allCombos; - std::map allCombosSumEt; - - std::map aTemplateCombos; - aTemplateCombos.clear(); - - if (jets.size() == 4) - aTemplateCombos[0] = std::string("0123"); - if (jets.size() == 5) - aTemplateCombos = Template5jCombos_; - if (jets.size() == 6) - aTemplateCombos = Template6jCombos_; - if (jets.size() == 7) - aTemplateCombos = Template7jCombos_; - - // force to use only 4 jets - if (maxNJets_ == 4) - aTemplateCombos[0] = std::string("0123"); - - if (verbosef) - std::cout << "[JetCombinatorics] size of vector of jets = " << jets.size() << std::endl; - - for (size_t ic = 0; ic != aTemplateCombos.size(); ++ic) { - if (verbosef) - std::cout << "[JetCombinatorics] get 4 jets from the list, cluster # " << ic << "/" << aTemplateCombos.size() - 1 - << std::endl; - - // get a template - std::string aTemplate = aTemplateCombos[ic]; - - if (verbosef) - std::cout << "[JetCombinatorics] template of 4 jets = " << aTemplate << std::endl; - - // make a list of 4 jets - std::vector the4jets; - std::vector the4Ids; - std::vector thebdisc; - std::vector theFlvCorr; - //the4jets[0] = jets[0]; - - for (int ij = 0; ij < 4; ij++) { - //std::cout << "ij= " << ij << std::endl; - //std::cout << "atoi = " << atoi((aTemplate.substr(0,1)).c_str()) << std::endl; - //std::cout << "jets[].Pt = " << jets[ij].Pt() << std::endl; - int tmpi = atoi((aTemplate.substr(ij, 1)).c_str()); - //std::cout << "tmpi= " << tmpi << std::endl; - the4jets.push_back(jets[tmpi]); - the4Ids.push_back(tmpi); - if (UsebTagging_) - thebdisc.push_back(bdiscriminators[tmpi]); - if (UseFlv_) - theFlvCorr.push_back(flavorCorrections_[tmpi]); - } - - if (verbosef) - std::cout << "[JetCombinatorics] with these 4 jets, make 12 combinations: " << std::endl; - - //std::cout << " the4jets[ij].size = " << the4jets.size() << std::endl; - - for (size_t itemplate = 0; itemplate != Template4jCombos_.size(); ++itemplate) { - std::string a4template = Template4jCombos_[itemplate]; - - if (verbosef) - std::cout << "[JetCombinatorics] ==> combination: " << a4template << " is # " << itemplate << "/" - << Template4jCombos_.size() - 1 << std::endl; - - Combo acombo; - - acombo.SetWp(the4jets[atoi((a4template.substr(0, 1)).c_str())]); - acombo.SetWq(the4jets[atoi((a4template.substr(1, 1)).c_str())]); - acombo.SetHadb(the4jets[atoi((a4template.substr(2, 1)).c_str())]); - acombo.SetLepb(the4jets[atoi((a4template.substr(3, 1)).c_str())]); - acombo.SetLepW(theLepW_); - - acombo.SetIdWp(the4Ids[atoi((a4template.substr(0, 1)).c_str())]); - acombo.SetIdWq(the4Ids[atoi((a4template.substr(1, 1)).c_str())]); - acombo.SetIdHadb(the4Ids[atoi((a4template.substr(2, 1)).c_str())]); - acombo.SetIdLepb(the4Ids[atoi((a4template.substr(3, 1)).c_str())]); - //std::cout << " acombo setup" << std::endl; - - if (UseFlv_) { - acombo.SetFlvCorrWp(theFlvCorr[atoi((a4template.substr(0, 1)).c_str())]); - acombo.SetFlvCorrWq(theFlvCorr[atoi((a4template.substr(1, 1)).c_str())]); - acombo.SetFlvCorrHadb(theFlvCorr[atoi((a4template.substr(2, 1)).c_str())]); - acombo.SetFlvCorrLepb(theFlvCorr[atoi((a4template.substr(3, 1)).c_str())]); - acombo.ApplyFlavorCorrections(); - } - if (UsebTagging_) { - acombo.Usebtagging(); - acombo.SetbDiscPdf(bTagPdffilename_); - acombo.SetWp_disc(thebdisc[atoi((a4template.substr(0, 1)).c_str())]); - acombo.SetWq_disc(thebdisc[atoi((a4template.substr(1, 1)).c_str())]); - acombo.SetHadb_disc(thebdisc[atoi((a4template.substr(2, 1)).c_str())]); - acombo.SetLepb_disc(thebdisc[atoi((a4template.substr(3, 1)).c_str())]); - } - - acombo.UseMtopConstraint(UseMtop_); - // choose value of sigmas - acombo.SetSigmas(SigmasTypef); - - acombo.analyze(); - - if (verbosef) { - std::cout << "[JetCombinatorics] ==> combination done:" << std::endl; - acombo.Print(); - } - - // invariant mass cuts - TLorentzVector aHadWP4 = acombo.GetHadW(); - TLorentzVector aLepWP4 = acombo.GetLepW(); - TLorentzVector aLepTopP4 = acombo.GetLepTop(); - - if ((aHadWP4.M() > minMassHadW_ && aHadWP4.M() < maxMassHadW_) && - (aLepWP4.M() > minMassLepW_ && aLepWP4.M() < maxMassLepW_) && - (aLepTopP4.M() > minMassLepTop_ && aLepTopP4.M() < maxMassLepTop_)) { - allCombos[acombo] = n; - allCombosSumEt[acombo] = n; - - n++; - } - } - } - - allCombos_ = allCombos; - allCombosSumEt_ = allCombosSumEt; -} - -Combo JetCombinatorics::GetCombination(int n) { - int j = 0; - Combo a; - for (std::map::const_iterator ite = allCombos_.begin(); ite != allCombos_.end(); ++ite) { - if (j == n) - a = ite->first; - j++; - } - - return a; -} - -Combo JetCombinatorics::GetCombinationSumEt(int n) { - int j = 0; - Combo a; - for (std::map::const_iterator ite = allCombosSumEt_.begin(); ite != allCombosSumEt_.end(); - ++ite) { - if (j == n) - a = ite->first; - j++; - } - - return a; -} diff --git a/TopQuarkAnalysis/TopPairBSM/src/JetCombinatorics.h b/TopQuarkAnalysis/TopPairBSM/src/JetCombinatorics.h deleted file mode 100644 index 0140492091f47..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/src/JetCombinatorics.h +++ /dev/null @@ -1,358 +0,0 @@ -#ifndef JetCombinatorics_h -#define JetCombinatorics_h - -/**_________________________________________________________________ - class: JetCombinatorics.h - package: - - - author: Francisco Yumiceva, Fermilab (yumiceva@fnal.gov) - - version $Id: JetCombinatorics.h,v 1.4 2010/02/05 22:01:38 yumiceva Exp $ - -________________________________________________________________**/ - -#include "TLorentzVector.h" -#include "TString.h" -#include "TH1F.h" -#include "TFile.h" -#include "TMath.h" -#include -#include -#include - -class Combo { -public: - Combo() { - MW = 84.2; //79.8; - Mtop_h = 180.7; //175.; - Mtop_l = 174.9; - sigmaHadW = 10.5; //2.*7.6; - sigmaHadt = 19.2; //2.*12.5; - sigmaLept = 24.2; //2.*15.6; - - SumEt_ = 0.; - usebtag_ = false; - useMtop_ = true; - - useFlv_ = false; - Wp_flv_ = Wq_flv_ = Hadb_flv_ = Lepb_flv_ = 1.; - } - ~Combo(){}; - - void SetWp(const TLorentzVector& Wp) { Wp_ = Wp; } - void SetWq(const TLorentzVector& Wq) { Wq_ = Wq; } - void SetHadb(const TLorentzVector& Hadb) { Hadb_ = Hadb; } - void SetLepW(const TLorentzVector& LepW) { LepW_ = LepW; } - void SetLepb(const TLorentzVector& Lepb) { Lepb_ = Lepb; } - // flavor corrections - void ApplyFlavorCorrections(bool option = true) { useFlv_ = option; } - void SetFlvCorrWp(double corr) { Wp_flv_ = corr; } - void SetFlvCorrWq(double corr) { Wq_flv_ = corr; } - void SetFlvCorrHadb(double corr) { Hadb_flv_ = corr; } - void SetFlvCorrLepb(double corr) { Lepb_flv_ = corr; } - // b tagging - void SetWp_disc(double disc) { Wp_disc_ = disc; } - void SetWq_disc(double disc) { Wq_disc_ = disc; } - void SetHadb_disc(double disc) { Hadb_disc_ = disc; } - void SetLepb_disc(double disc) { Lepb_disc_ = disc; } - void SetbDiscPdf(const TString& filename) { - pdffile_ = TFile::Open(filename); - hdisc_b_ = (TH1F*)gDirectory->Get("hdiscNorm_b"); - hdisc_cl_ = (TH1F*)gDirectory->Get("hdiscNorm_cl"); - } - void SetSigmas(int type = 0) { - // type == 0 take defaults - if (type == 1) { - // JES +10% - MW = 87.2; - Mtop_h = 193.2; - Mtop_l = 179.0; - sigmaHadW = 13.0; - sigmaHadt = 22.8; - sigmaLept = 26.3; - } - if (type == -1) { - // JES -10% - MW = 81.6; - Mtop_h = 169.3; - Mtop_l = 171.4; - sigmaHadW = 8.9; - sigmaHadt = 17.9; - sigmaLept = 22.6; - } - } - void Usebtagging(bool option = true) { usebtag_ = option; } - void SetMinMassLepW(double mass) { minMassLepW_ = mass; } - void SetMaxMassLepW(double mass) { maxMassLepW_ = mass; } - void SetMinMassHadW(double mass) { minMassHadW_ = mass; } - void SetMaxMassHadW(double mass) { maxMassHadW_ = mass; } - void SetMinMassLepTop(double mass) { minMassLepTop_ = mass; } - void SetMaxMassLepTop(double mass) { maxMassLepTop_ = mass; } - void UseMtopConstraint(bool option = true) { useMtop_ = option; } - - void analyze() { - if (useFlv_) { - Wp_ = Wp_flv_ * Wp_; - Wq_ = Wq_flv_ * Wq_; - Hadb_ = Hadb_flv_ * Hadb_; - Lepb_ = Lepb_flv_ * Lepb_; - } - - HadW_ = Wp_ + Wq_; - HadTop_ = HadW_ + Hadb_; - LepTop_ = LepW_ + Lepb_; - TopPair_ = HadTop_ + LepTop_; - - //double sigmaHadW = 10.5;//2.*7.6; - //double sigmaHadt = 19.2;//2.*12.5; - //double sigmaLept = 24.2;//2.*15.6; - - double chiHadW = (HadW_.M() - MW) / sigmaHadW; - double chiHadt = (HadTop_.M() - Mtop_h) / sigmaHadt; - double chiLept = (LepTop_.M() - Mtop_l) / sigmaLept; - - if (useMtop_) { - chi2_ = chiHadW * chiHadW + chiHadt * chiHadt + chiLept * chiLept; - Ndof_ = 3; - } else { - chi2_ = chiHadW * chiHadW + (HadTop_.M() - LepTop_.M()) * (HadTop_.M() - LepTop_.M()) / - (sigmaHadt * sigmaHadt + sigmaLept * sigmaLept); - Ndof_ = 2; - } - - SumEt_ = HadTop_.Pt(); - - if (usebtag_) { - double gauss_norm = (2.) * TMath::Log(sigmaHadW * TMath::Sqrt(2 * TMath::Pi())) + - (2.) * TMath::Log(sigmaHadt * TMath::Sqrt(2 * TMath::Pi())) + - (2.) * TMath::Log(sigmaLept * TMath::Sqrt(2 * TMath::Pi())); - - double LR_Wp; - double LR_Wq; - double LR_Hadb; - double LR_Lepb; - - double LR_den = 0; - LR_den = (getPdfValue("cl", Wp_disc_) + getPdfValue("b", Wp_disc_)); - if (LR_den == 0) - LR_Wp = 1e-5; - else - LR_Wp = getPdfValue("cl", Wp_disc_) / LR_den; - - LR_den = (getPdfValue("cl", Wq_disc_) + getPdfValue("b", Wq_disc_)); - if (LR_den == 0) - LR_Wq = 1e-5; - else - LR_Wq = getPdfValue("cl", Wq_disc_) / LR_den; - - LR_den = (getPdfValue("cl", Hadb_disc_) + getPdfValue("b", Hadb_disc_)); - if (LR_den == 0) - LR_Hadb = 1e-5; - else - LR_Hadb = getPdfValue("b", Hadb_disc_) / LR_den; - - LR_den = (getPdfValue("cl", Lepb_disc_) + getPdfValue("b", Lepb_disc_)); - if (LR_den == 0) - LR_Lepb = 1e-5; - else - LR_Lepb = getPdfValue("b", Lepb_disc_) / LR_den; - - double btag_norm = (-0.25 - TMath::Log(4) / 2); - double btag_N2LL = btag_norm * 4. * - (LR_Wp * TMath::Log(LR_Wp / 4) + LR_Wq * TMath::Log(LR_Wq / 4) + - LR_Hadb * TMath::Log(LR_Hadb / 4) + LR_Lepb * TMath::Log(LR_Lepb / 4)); - - chi2_ += btag_N2LL + gauss_norm; - Ndof_ += 3; - pdffile_->Close(); - } - } - - TLorentzVector GetWp() { return Wp_; } - TLorentzVector GetWq() { return Wq_; } - TLorentzVector GetHadW() { return HadW_; } - TLorentzVector GetLepW() { return LepW_; } - TLorentzVector GetHadb() { return Hadb_; } - TLorentzVector GetLepb() { return Lepb_; } - TLorentzVector GetHadTop() { return HadTop_; } - TLorentzVector GetLepTop() { return LepTop_; } - TLorentzVector GetTopPair() { return TopPair_; } - double GetChi2() const { return chi2_; } - double GetNdof() { return Ndof_; } - double GetSumEt() const { return SumEt_; } - int GetIdHadb() { return IdHadb_; } - int GetIdWp() { return IdWp_; } - int GetIdWq() { return IdWq_; } - int GetIdLepb() { return IdLepb_; } - void SetIdHadb(int id) { IdHadb_ = id; } - void SetIdWp(int id) { IdWp_ = id; } - void SetIdWq(int id) { IdWq_ = id; } - void SetIdLepb(int id) { IdLepb_ = id; } - void Print() { - std::cout << " jet Wp : px = " << Wp_.Px() << " py = " << Wp_.Py() << " pz = " << Wp_.Pz() << " e = " << Wp_.E() - << std::endl; - std::cout << " jet Wq : px = " << Wq_.Px() << " py = " << Wq_.Py() << " pz = " << Wq_.Pz() << " e = " << Wq_.E() - << std::endl; - std::cout << " jet Hadb: px = " << Hadb_.Px() << " py = " << Hadb_.Py() << " pz = " << Hadb_.Pz() - << " e = " << Hadb_.E() << std::endl; - std::cout << " jet Lepb: px = " << Lepb_.Px() << " py = " << Lepb_.Py() << " pz = " << Lepb_.Pz() - << " e = " << Lepb_.E() << std::endl; - std::cout << " chi-squared = " << chi2_ << " sumEt = " << SumEt_ << std::endl; - } - double getPdfValue(std::string flavor, double disc) { - double pdf = 0; - TH1F* hpdf; - if (flavor == "b") - hpdf = hdisc_b_; - else - hpdf = hdisc_cl_; - int bin = hpdf->GetXaxis()->FindBin(disc); - pdf = hpdf->GetBinContent(bin); - if (disc < -10 || disc > 50) - return 0; - //if ( pdf == 0 ) return 1.e-7; - return pdf; - } - -private: - TLorentzVector Wp_; - TLorentzVector Wq_; - TLorentzVector HadW_; - TLorentzVector Hadb_; - TLorentzVector HadTop_; - TLorentzVector LepW_; - TLorentzVector Lepb_; - TLorentzVector LepTop_; - TLorentzVector TopPair_; - - bool usebtag_; - bool useMtop_; - double Wp_disc_; - double Wq_disc_; - double Hadb_disc_; - double Lepb_disc_; - TFile* pdffile_; - TH1F* hdisc_b_; - TH1F* hdisc_cl_; - - double Wp_flv_, Wq_flv_, Hadb_flv_, Lepb_flv_; - bool useFlv_; - double chi2_; - double Ndof_; - double SumEt_; - double minMassLepW_; - double maxMassLepW_; - double minMassHadW_; - double maxMassHadW_; - - double minMassLepTop_; - double maxMassLepTop_; - - double MW; - double Mtop_h; - double Mtop_l; - double sigmaHadW; - double sigmaHadt; - double sigmaLept; - - int IdHadb_; - int IdWp_; - int IdWq_; - int IdLepb_; -}; - -struct minChi2 { - bool operator()(const Combo& s1, const Combo& s2) const { return s1.GetChi2() <= s2.GetChi2(); } -}; - -struct maxSumEt { - bool operator()(const Combo& s1, const Combo& s2) const { return s1.GetSumEt() >= s2.GetSumEt(); } -}; - -class JetCombinatorics { -public: - JetCombinatorics(); - ~JetCombinatorics(); - - void Verbose() { verbosef = true; } - - std::map Combinatorics(int k, int max = 6); - std::map NestedCombinatorics(); - - void FourJetsCombinations(const std::vector& jets, const std::vector& bdiscriminators); - void SetFlavorCorrections(const std::vector& vector) { flavorCorrections_ = vector; } - void SetMaxNJets(int n) { maxNJets_ = n; } - Combo GetCombination(int n = 0); - Combo GetCombinationSumEt(int n = 0); - int GetNumberOfCombos() { return ((int)allCombos_.size()); } - //void SetCandidate( std::vector< TLorentzVector > JetCandidates ); - - void SetSigmas(int type = 0) { SigmasTypef = type; } - void SetLeptonicW(const TLorentzVector& LepW) { theLepW_ = LepW; } - - void SetMinMassLepW(double mass) { minMassLepW_ = mass; } - void SetMaxMassLepW(double mass) { maxMassLepW_ = mass; } - void SetMinMassHadW(double mass) { minMassHadW_ = mass; } - void SetMaxMassHadW(double mass) { maxMassHadW_ = mass; } - void SetMinMassLepTop(double mass) { minMassLepTop_ = mass; } - void SetMaxMassLepTop(double mass) { maxMassLepTop_ = mass; } - - void UsebTagging(bool option = true) { UsebTagging_ = option; } - void ApplyFlavorCorrection(bool option = true) { UseFlv_ = option; } - void UseMtopConstraint(bool option = true) { UseMtop_ = option; } - void SetbTagPdf(const TString& name) { bTagPdffilename_ = name; } - void Clear(); - - std::vector TwoCombos(); - std::vector ThreeCombos(); - - void RemoveDuplicates(bool option) { removeDuplicates_ = option; } - - std::vector GetComposites(); - void AnalyzeCombos(); - -private: - //int kcombos_; - //int maxcombos_; - int SigmasTypef; - bool verbosef; - std::map Template4jCombos_; - std::map Template5jCombos_; - std::map Template6jCombos_; - std::map Template7jCombos_; - - std::vector flavorCorrections_; - int maxNJets_; - bool UsebTagging_; - bool UseMtop_; - TString bTagPdffilename_; - bool UseFlv_; - - TLorentzVector theLepW_; - - double minMassLepW_; - double maxMassLepW_; - double minMassHadW_; - double maxMassHadW_; - double minMassLepTop_; - double maxMassLepTop_; - - std::map allCombos_; - std::map allCombosSumEt_; - - Double_t minPhi_; - double chi2_; - int ndf_; - bool removeDuplicates_; - - std::vector cand1_; - std::vector cand2_; - std::vector cand3_; - - //int nLists_; - - //std::vector< TLorentzVector > composites_; -}; - -#endif diff --git a/TopQuarkAnalysis/TopPairBSM/src/METzCalculator.cc b/TopQuarkAnalysis/TopPairBSM/src/METzCalculator.cc deleted file mode 100644 index 982b41b4d09c3..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/src/METzCalculator.cc +++ /dev/null @@ -1,94 +0,0 @@ - -#include "METzCalculator.h" -#include "TMath.h" - -/// constructor -METzCalculator::METzCalculator() { isComplex_ = false; } - -/// destructor -METzCalculator::~METzCalculator() {} - -/// member functions -double METzCalculator::Calculate(int type) { - double M_W = 80.4; - double M_mu = 0.10566; - double emu = lepton_.energy(); - double pxmu = lepton_.px(); - double pymu = lepton_.py(); - double pzmu = lepton_.pz(); - double pxnu = MET_.px(); - double pynu = MET_.py(); - double pznu = 0.; - - double a = M_W * M_W - M_mu * M_mu + 2.0 * pxmu * pxnu + 2.0 * pymu * pynu; - double A = 4.0 * (emu * emu - pzmu * pzmu); - double B = -4.0 * a * pzmu; - double C = 4.0 * emu * emu * (pxnu * pxnu + pynu * pynu) - a * a; - - double tmproot = B * B - 4.0 * A * C; - - if (tmproot < 0) { - isComplex_ = true; - pznu = -B / (2 * A); // take real part of complex roots - - //std::cout << " Neutrino Solutions: complex, real part " << pznu << std::endl; - } else { - isComplex_ = false; - double tmpsol1 = (-B + TMath::Sqrt(tmproot)) / (2.0 * A); - double tmpsol2 = (-B - TMath::Sqrt(tmproot)) / (2.0 * A); - - //std::cout << " Neutrino Solutions: " << tmpsol1 << ", " << tmpsol2 << std::endl; - - if (type == 0) { - // two real roots, pick the one closest to pz of muon - if (TMath::Abs(tmpsol2 - pzmu) < TMath::Abs(tmpsol1 - pzmu)) { - pznu = tmpsol2; - } else - pznu = tmpsol1; - // if pznu is > 300 pick the most central root - if (pznu > 300.) { - if (TMath::Abs(tmpsol1) < TMath::Abs(tmpsol2)) - pznu = tmpsol1; - else - pznu = tmpsol2; - } - } - if (type == 1) { - // two real roots, pick the one closest to pz of muon - if (TMath::Abs(tmpsol2 - pzmu) < TMath::Abs(tmpsol1 - pzmu)) { - pznu = tmpsol2; - } else - pznu = tmpsol1; - } - if (type == 2) { - // pick the most central root. - if (TMath::Abs(tmpsol1) < TMath::Abs(tmpsol2)) - pznu = tmpsol1; - else - pznu = tmpsol2; - } - if (type == 3) { - // pick the largest value of the cosine - TVector3 p3w, p3mu; - p3w.SetXYZ(pxmu + pxnu, pymu + pynu, pzmu + tmpsol1); - p3mu.SetXYZ(pxmu, pymu, pzmu); - - double sinthcm1 = 2. * (p3mu.Perp(p3w)) / M_W; - p3w.SetXYZ(pxmu + pxnu, pymu + pynu, pzmu + tmpsol2); - double sinthcm2 = 2. * (p3mu.Perp(p3w)) / M_W; - - double costhcm1 = TMath::Sqrt(1. - sinthcm1 * sinthcm1); - double costhcm2 = TMath::Sqrt(1. - sinthcm2 * sinthcm2); - - if (costhcm1 > costhcm2) - pznu = tmpsol1; - else - pznu = tmpsol2; - } - } - - //Particle neutrino; - //neutrino.setP4( LorentzVector(pxnu, pynu, pznu, TMath::Sqrt(pxnu*pxnu + pynu*pynu + pznu*pznu ))) ; - - return pznu; -} diff --git a/TopQuarkAnalysis/TopPairBSM/src/METzCalculator.h b/TopQuarkAnalysis/TopPairBSM/src/METzCalculator.h deleted file mode 100644 index fe109d6f30a21..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/src/METzCalculator.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef METzCalculator_h -#define METzCalculator_h - -/**_________________________________________________________________ - class: METzCalculator.h - - author: Francisco Yumiceva, Fermilab (yumiceva@fnal.gov) - - version $Id: METzCalculator.h,v 1.3 2009/07/30 06:02:19 jengbou Exp $ - -________________________________________________________________**/ - -//#include "FWCore/Framework/interface/Event.h" -//#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/PatCandidates/interface/Particle.h" -#include "DataFormats/PatCandidates/interface/MET.h" - -#include "TLorentzVector.h" - -class METzCalculator { -public: - /// constructor - METzCalculator(); - //METzCalculator(const edm::ParameterSEt& iConf); - /// destructor - virtual ~METzCalculator(); - /// Set MET - void SetMET(const pat::MET& MET) { MET_ = MET; }; - void SetMET(const TLorentzVector& MET) { - pat::Particle::LorentzVector p(MET.Px(), MET.Py(), MET.Pz(), MET.E()); - MET_.setP4(p); - } - /// Set Muon - void SetMuon(const pat::Particle& lepton) { lepton_ = lepton; }; - void SetMuon(const TLorentzVector& lepton) { - pat::Particle::LorentzVector p(lepton.Px(), lepton.Py(), lepton.Pz(), lepton.E()); - lepton_.setP4(p); - } - /// Calculate MEz - /// options to choose roots from quadratic equation: - /// type = 0 (defalut): if real roots, pick the one nearest to - /// the lepton Pz except when the Pz so chosen - /// is greater than 300 GeV in which case pick - /// the most central root. - /// type = 1: if real roots, choose the one closest to the lepton Pz - /// if complex roots, use only the real part. - /// type = 2: if real roots, choose the most central solution. - /// if complex roots, use only the real part. - /// type = 3: if real roots, pick the largest value of the cosine* - double Calculate(int type = 0); - /// check for complex root - bool IsComplex() const { return isComplex_; }; - - void Print() { - std::cout << " METzCalculator: pxmu = " << lepton_.px() << " pzmu= " << lepton_.pz() << std::endl; - std::cout << " METzCalculator: pxnu = " << MET_.px() << " pynu= " << MET_.py() << std::endl; - } - -private: - bool isComplex_; - pat::Particle lepton_; - pat::MET MET_; -}; - -#endif diff --git a/TopQuarkAnalysis/TopPairBSM/test/anaTrain_cfg.py b/TopQuarkAnalysis/TopPairBSM/test/anaTrain_cfg.py deleted file mode 100644 index abf1fa6c99da5..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/anaTrain_cfg.py +++ /dev/null @@ -1,488 +0,0 @@ -from __future__ import print_function -# As of 1 Feb 2017: -# This configuration appears to be already broken. It -# fails to even run only under python. -# For this reason, it was not converted to use Tasks. -# If it is ever fixed, it will also need to be migrated -# to use Tasks to run unscheduled modules. - -## import skeleton process -from PhysicsTools.PatAlgos.patTemplate_cfg import * -## switch to uncheduled mode -process.options.allowUnscheduled = cms.untracked.bool(True) -#process.Tracer = cms.Service("Tracer") - -############################### -####### Parameters ############ -############################### -from FWCore.ParameterSet.VarParsing import VarParsing -options = VarParsing ('python') - - -options.register ('tlbsmTag', - 'tlbsm_71x_v1', - VarParsing.multiplicity.singleton, - VarParsing.varType.string, - 'TLBSM tag use in production') - - -options.register ('usePythia8', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Use status codes from Pythia8 rather than Pythia6") - - -options.register ('usePythia6andPythia8', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Use status codes from Pythia8 and Pythia6") - -options.parseArguments() - -process.load("PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff") -process.load("PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff") -process.load("RecoJets.Configuration.RecoGenJets_cff") -process.load("RecoJets.Configuration.GenJetParticles_cff") -from TopQuarkAnalysis.TopPairBSM.filters_cff import applyFilters - -################################################################################################ -############################ Run filters ####################################################### -################################################################################################ - -######### TO DO : TURN ON FILTERS ########### -#applyFilters(process) -print('CAVEAT : Filters are not yet implemented') - -######### TO DO : TURN ON TRIGGERS! ######### - - -############################### -####### DAF PV's ########## -############################### - -pvSrc = 'offlinePrimaryVertices' - -## The good primary vertex filter ____________________________________________|| -process.primaryVertexFilter = cms.EDFilter( - "VertexSelector", - src = cms.InputTag("offlinePrimaryVertices"), - cut = cms.string("!isFake & ndof > 4 & abs(z) <= 24 & position.Rho <= 2"), - filter = cms.bool(True) - ) - - -from PhysicsTools.SelectorUtils.pvSelector_cfi import pvSelector - -process.goodOfflinePrimaryVertices = cms.EDFilter( - "PrimaryVertexObjectFilter", - filterParams = pvSelector.clone( maxZ = cms.double(24.0), - minNdof = cms.double(4.0) # this is >= 4 - ), - src=cms.InputTag(pvSrc) - ) - -################################################################################################ -############################ Pruned GenParticles ############################################### -################################################################################################ - -# prune gen particles -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") -process.prunedGenParticles = cms.EDProducer("GenParticlePruner", - src = cms.InputTag("genParticles"), - select = cms.vstring( - "drop *" - ,"keep status = 3" #keeps particles from the hard matrix element - ,"keep (abs(pdgId) >= 11 & abs(pdgId) <= 16) & status = 1" #keeps e/mu and nus with status 1 - ,"keep (abs(pdgId) = 15) & status = 3" #keeps taus - ) - ) - -if options.usePythia8 : - process.prunedGenParticles.select = cms.vstring( - "drop *" - ,"keep status = 21" #keeps particles from the hard matrix element - ,"keep status = 22" #keeps particles from the hard matrix element - ,"keep status = 23" #keeps particles from the hard matrix element - ,"keep (abs(pdgId) >= 11 & abs(pdgId) <= 16) & status = 1" #keeps e/mu and nus with status 1 - ,"keep (abs(pdgId) = 15) & (status = 21 || status = 22 || status = 23) " #keeps taus - ) -if options.usePythia6andPythia8 : - process.prunedGenParticles.select = cms.vstring( - "drop *" - ,"keep status = 3" #keeps particles from the hard matrix element - ,"keep status = 21" #keeps particles from the hard matrix element - ,"keep status = 22" #keeps particles from the hard matrix element - ,"keep status = 23" #keeps particles from the hard matrix element - ,"keep (abs(pdgId) >= 11 & abs(pdgId) <= 16) & status = 1" #keeps e/mu and nus with status 1 - ,"keep (abs(pdgId) = 15) & (status = 3 || status = 21 || status = 22 || status = 23)" #keeps taus - ) - - - - - -################################################################################################ -############################ Configure leptons ################################################# -################################################################################################ - - -postfix = 'EI' - -from PhysicsTools.PatAlgos.tools.pfTools import adaptPFMuons, adaptPFElectrons -from PhysicsTools.PatAlgos.tools.helpers import loadWithPostfix -from PhysicsTools.PatAlgos.tools.helpers import applyPostfix - -#loadWithPostfix(process,'PhysicsTools.PatAlgos.patSequences_cff',postfix) - - -# Electrons - -adaptPFElectrons(process, - process.patElectrons, - postfix) - -# Muons - -adaptPFMuons(process, - process.patMuons, - postfix, - muonMatchModule=process.muonMatch - ) - - -# Taus -################ TO DO : We need a tau expert to do this. ################### -#process.patTaus.tauSource = cms.InputTag("pfTaus"+postfix) - - -################################################################################################ -############################ Run extra MET reconstruction ###################################### -################################################################################################ - - -from PhysicsTools.PatAlgos.tools.metTools import addMETCollection -addMETCollection(process, labelName='patMETPF', metSource='pfType1CorrectedMet') - - -################################################################################################ -############################ Run extra jet reconstruction ###################################### -################################################################################################ -from RecoJets.Configuration.RecoPFJets_cff import * -process.ca15PFJetsCHS = ca8PFJetsCHS.clone(rParam=1.5,src='pfNoPileUpJME',doAreaFastjet=False) -process.hepTopTagPFJetsCHS = hepTopTagPFJetsCHS.clone(src='pfNoPileUpJME') - -from RecoJets.JetProducers.caTopTaggers_cff import caTopTagInfos, hepTopTagInfos - -process.caTopTagInfos = caTopTagInfos.clone() - - -################################################################################################ -############################ Configure jets in PAT ############################################# -################################################################################################ - - -## uncomment the following line to add different jet collections -## to the event content -from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection -from PhysicsTools.PatAlgos.tools.jetTools import switchJetCollection - -## uncomment the following lines to add ak4PFJetsCHS to your PAT output -addJetCollection( - process, - labelName = 'AK4PFCHS', - jetSource = cms.InputTag('ak4PFJetsCHS'), - algo='ak', - rParam=0.4, - jetCorrections = ('AK5PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'Type-1'), - btagDiscriminators = [ - 'jetBProbabilityBJetTags' - , 'jetProbabilityBJetTags' - , 'trackCountingHighPurBJetTags' - , 'trackCountingHighEffBJetTags' - , 'simpleSecondaryVertexHighEffBJetTags' - , 'simpleSecondaryVertexHighPurBJetTags' - , 'combinedSecondaryVertexBJetTags' - ], - btagInfos = [ - 'secondaryVertexTagInfos' - ] - ) - -addJetCollection( - process, - labelName = 'CA8PFCHS', - jetSource = cms.InputTag('ca8PFJetsCHS'), - algo='ca', - rParam=0.8, - jetCorrections = ('AK7PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None') - ) - -addJetCollection( - process, - labelName = 'CA8CMSTopTag', - jetSource = cms.InputTag('cmsTopTagPFJetsCHS',''), - getJetMCFlavour=False, - jetCorrections = ('AK7PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None'), - btagInfos = [ - 'caTopTagInfos' - ] - ) - -addJetCollection( - process, - labelName = 'CA8CMSTopTagSubjets', - jetSource = cms.InputTag('cmsTopTagPFJetsCHS','caTopSubJets'), - algo='ca', - rParam=0.8, - jetCorrections = ('AK5PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None'), - btagDiscriminators = [ - 'jetBProbabilityBJetTags' - , 'jetProbabilityBJetTags' - , 'trackCountingHighPurBJetTags' - , 'trackCountingHighEffBJetTags' - , 'simpleSecondaryVertexHighEffBJetTags' - , 'simpleSecondaryVertexHighPurBJetTags' - , 'combinedSecondaryVertexBJetTags' - ], - btagInfos = [ - 'secondaryVertexTagInfos' - ] - ) - -addJetCollection( - process, - labelName = 'CA8Pruned', - jetSource = cms.InputTag('ca8PFJetsCHSPruned',''), - getJetMCFlavour=False, - jetCorrections = ('AK7PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None') - ) - -addJetCollection( - process, - labelName = 'CA8PrunedSubjets', - jetSource = cms.InputTag('ca8PFJetsCHSPruned','SubJets'), - algo='ca', - rParam=0.8, - jetCorrections = ('AK5PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None'), - btagDiscriminators = [ - 'jetBProbabilityBJetTags' - , 'jetProbabilityBJetTags' - , 'trackCountingHighPurBJetTags' - , 'trackCountingHighEffBJetTags' - , 'simpleSecondaryVertexHighEffBJetTags' - , 'simpleSecondaryVertexHighPurBJetTags' - , 'combinedSecondaryVertexBJetTags' - ], - btagInfos = [ - 'secondaryVertexTagInfos' - ] - ) - - -addJetCollection( - process, - labelName = 'CA15HEPTopTag', - jetSource = cms.InputTag('hepTopTagPFJetsCHS',''), - getJetMCFlavour=False, - jetCorrections = ('AK7PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None') - ) - -addJetCollection( - process, - labelName = 'CA15HEPTopTagSubjets', - jetSource = cms.InputTag('hepTopTagPFJetsCHS','caTopSubJets'), - algo='ca', - rParam=1.5, - jetCorrections = ('AK5PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'None'), - btagDiscriminators = [ - 'jetBProbabilityBJetTags' - , 'jetProbabilityBJetTags' - , 'trackCountingHighPurBJetTags' - , 'trackCountingHighEffBJetTags' - , 'simpleSecondaryVertexHighEffBJetTags' - , 'simpleSecondaryVertexHighPurBJetTags' - , 'combinedSecondaryVertexBJetTags' - ], - btagInfos = [ - 'secondaryVertexTagInfos' - ] - ) - -addJetCollection( - process, - labelName = 'EI', - jetSource = cms.InputTag('pfJetsEI'), - algo='ak', - rParam=0.4, - jetCorrections = ('AK5PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'Type-1'), - btagDiscriminators = [ - 'jetBProbabilityBJetTags' - , 'jetProbabilityBJetTags' - , 'trackCountingHighPurBJetTags' - , 'trackCountingHighEffBJetTags' - , 'simpleSecondaryVertexHighEffBJetTags' - , 'simpleSecondaryVertexHighPurBJetTags' - , 'combinedSecondaryVertexBJetTags' - ], - btagInfos = [ - 'secondaryVertexTagInfos' - ] - ) - -switchJetCollection( - process, - jetSource = cms.InputTag('ak4PFJets'), - algo='ak', - rParam=0.4, - jetCorrections = ('AK5PF', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute']), 'Type-1'), - btagDiscriminators = [ - 'jetBProbabilityBJetTags' - , 'jetProbabilityBJetTags' - , 'trackCountingHighPurBJetTags' - , 'trackCountingHighEffBJetTags' - , 'simpleSecondaryVertexHighEffBJetTags' - , 'simpleSecondaryVertexHighPurBJetTags' - , 'combinedSecondaryVertexBJetTags' - ], - btagInfos = [ - 'secondaryVertexTagInfos' - ] - ) - - -# Subjet flavor still requires some manual tweaking until it is better integrated into PAT -# Adjust the flavor of subjets of pruned CA8 jets -process.patJetFlavourAssociationCA8PrunedSubjets = process.patJetFlavourAssociationCA8PrunedSubjets.clone( - jets = cms.InputTag('ca8PFJetsCHS'), - groomedJets = cms.InputTag('ca8PFJetsCHSPruned'), - subjets = cms.InputTag('ca8PFJetsCHSPruned','SubJets') -) -process.patJetsCA8PrunedSubjets.JetFlavourInfoSource = cms.InputTag('patJetFlavourAssociationCA8PrunedSubjets','SubJets') -# Adjust the flavor of subjets of CMSTopTag jets -process.patJetFlavourAssociationCA8CMSTopTagSubjets = process.patJetFlavourAssociationCA8CMSTopTagSubjets.clone( - jets = cms.InputTag('ca8PFJetsCHS'), - groomedJets = cms.InputTag('cmsTopTagPFJetsCHS'), - subjets = cms.InputTag('cmsTopTagPFJetsCHS','caTopSubJets') -) -process.patJetsCA8CMSTopTagSubjets.JetFlavourInfoSource = cms.InputTag('patJetFlavourAssociationCA8CMSTopTagSubjets','SubJets') -# Adjust the flavor of subjets of HEPTopTag jets -process.patJetFlavourAssociationCA15HEPTopTagSubjets = process.patJetFlavourAssociationCA15HEPTopTagSubjets.clone( - jets = cms.InputTag('ca15PFJetsCHS'), - groomedJets = cms.InputTag('hepTopTagPFJetsCHS'), - subjets = cms.InputTag('hepTopTagPFJetsCHS','caTopSubJets') -) -process.patJetsCA15HEPTopTagSubjets.JetFlavourInfoSource = cms.InputTag('patJetFlavourAssociationCA15HEPTopTagSubjets','SubJets') - - -# Add some user functions for the secondary vertex mass. -for mod in [process.patJets, - process.patJetsAK4PFCHS, - process.patJetsEI, - process.patJetsCA8PFCHS, - process.patJetsCA8CMSTopTagSubjets, - process.patJetsCA8PrunedSubjets, - process.patJetsCA15HEPTopTagSubjets ] : - mod.userData.userFunctions = cms.vstring( "? hasTagInfo('secondaryVertex') && tagInfoSecondaryVertex('secondaryVertex').nVertices() > 0 ? " - "tagInfoSecondaryVertex('secondaryVertex').secondaryVertex(0).p4().mass() : 0") - mod.userData.userFunctionLabels = cms.vstring('secvtxMass') - - -# Add the top-tagging info which piggy-backs on the b-tagging tag info -process.patJetsCA8CMSTopTag.addTagInfos = True -process.patJetsCA8CMSTopTag.tagInfoSources = cms.VInputTag( - cms.InputTag('caTopTagInfos') - ) - -process.patJetsCA15HEPTopTag.addTagInfos = True -process.patJetsCA15HEPTopTag.tagInfoSources = cms.VInputTag( - cms.InputTag('hepTopTagInfos') - ) - - - -# Apply jet ID to all of the jets upstream. We aren't going to screw around -# with this, most likely. So, we don't really to waste time with it -# at the analysis level. -from PhysicsTools.SelectorUtils.pfJetIDSelector_cfi import pfJetIDSelector -for ilabel in ['PatJets', - 'PatJetsAK4PFCHS', - 'PatJetsEI', - 'PatJetsCA8PFCHS', - 'PatJetsCA8CMSTopTag', - 'PatJetsCA8Pruned', - 'PatJetsCA15HEPTopTag'] : - ifilter = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selected" + ilabel) - ) - setattr( process, 'good' + ilabel, ifilter ) - - -# Next, "pack" the pat::Jets that use substructure so we can run b-tagging and JEC's on the subjets. - -for ilabel in ['PatJetsCA8CMSTopTag', - 'PatJetsCA8Pruned', - 'PatJetsCA15HEPTopTag'] : - imerger = cms.EDProducer("BoostedJetMerger", - jetSrc=cms.InputTag("good" + ilabel ), - subjetSrc=cms.InputTag("selected" + ilabel + "Subjets") - ) - setattr( process, 'good' + ilabel + 'Packed', imerger ) - - -#print process.out.outputCommands - -## ------------------------------------------------------ -# In addition you usually want to change the following -# parameters: -## ------------------------------------------------------ -# -# process.GlobalTag.globaltag = ... ## (according to https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideFrontierConditions) -# ## -process.source.fileNames = ['/store/relval/CMSSW_7_2_0_pre1/RelValRSKKGluon_m3000GeV_13/GEN-SIM-RECO/POSTLS172_V1-v1/00000/0E9DF649-2BFE-E311-8F3F-0025905B85E8.root'] -# ## -process.maxEvents.input = 10 -# ## -process.out.outputCommands += [ - 'keep GenRunInfoProduct_generator_*_*', - 'keep GenEventInfoProduct_generator_*_*', - 'keep PileupSummaryInfos_*_*_*', - 'keep *_goodOfflinePrimaryVertices*_*_*', - 'keep *_ak4GenJetsNoNu_*_*', - 'keep *_ca8GenJetsNoNu_*_*', - 'keep *_fixedGrid_*_*', - 'drop *_*_rho*_*', - 'drop *_*_sigma*_*', - 'keep patJets_goodPatJets_*_*', - 'keep patJets_goodPatJetsAK4PFCHS_*_*', - 'keep patJets_goodPatJetsCA15HEPTopTagPacked_*_*', - 'keep patJets_goodPatJetsCA8CMSTopTagPacked_*_*', - 'keep patJets_goodPatJetsCA8PFCHS_*_*', - 'keep patJets_goodPatJetsCA8PrunedPacked_*_*', - 'keep patJets_goodPatJetsEI_*_*', - 'drop patJets_selected*_*_*', # Drop all of the "selected" ones as they are duplicates... - 'keep patJets_selected*Subjets_*_*', # ... except subjets - 'drop CaloTowers_*_*_*', - 'drop recoGenJets_*_genJets_*', - 'drop recoPFCandidates_*_pfCandidates_*', - 'keep *_particleFlow__*', - 'keep *_prunedGenParticles_*_*', - 'keep patTriggerObjects_patTrigger_*_*', - 'keep patTriggerFilters_patTrigger_*_*', - 'keep patTriggerPaths_patTrigger_*_*', - 'keep patTriggerEvent_patTriggerEvent_*_*', - 'keep *_cleanPatPhotonsTriggerMatch*_*_*', - 'keep *_cleanPatElectronsTriggerMatch*_*_*', - 'keep *_cleanPatMuonsTriggerMatch*_*_*', - 'keep *_cleanPatTausTriggerMatch*_*_*', - 'keep *_cleanPatJetsTriggerMatch*_*_*', - 'keep *_patMETsTriggerMatch*_*_*', - 'keep *_TriggerResults_*_*', - 'keep *_hltTriggerSummaryAOD_*_*', - ] -# ## -process.out.fileName = 'patTuple_tlbsm_train_' + options.tlbsmTag + '.root' -# ## -# process.options.wantSummary = False ## (to suppress the long output at the end of the job) diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_DYJetsToLL_TuneD6T_madgraph_tauola_ttbsm_v2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_DYJetsToLL_TuneD6T_madgraph_tauola_ttbsm_v2.cfg deleted file mode 100644 index f130d8abd1eef..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_DYJetsToLL_TuneD6T_madgraph_tauola_ttbsm_v2.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /DYJetsToLL_TuneD6T_M-50_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Spring11-PU_S1_-START311_V1G1-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = DYJetsToLL_TuneD6T_7TeV-madgraph-tauola_Spring11-PU_S1_-START311_V1G1-v1_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_DYJetsToLL_TuneD6T_madgraph_tauola_ttbsm_v4.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_DYJetsToLL_TuneD6T_madgraph_tauola_ttbsm_v4.cfg deleted file mode 100644 index 0b103ce3feca4..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_DYJetsToLL_TuneD6T_madgraph_tauola_ttbsm_v4.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /DYJetsToLL_TuneD6T_M-50_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X use41x=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v4_Spring11-PU_S1_-START311_V1G1-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = DYJetsToLL_TuneD6T_7TeV-madgraph-tauola_Spring11-PU_S1_-START311_V1G1-v1_ttbsm_v4 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_HT-Run2011A-PromptReco-v1_ttbsm_v1.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_HT-Run2011A-PromptReco-v1_ttbsm_v1.cfg deleted file mode 100644 index fd022feab239d..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_HT-Run2011A-PromptReco-v1_ttbsm_v1.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /HT/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 40 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160405-161312 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =HT_Run2011A-PromptReco-v1_ttbsm_v1 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_HT-Run2011A-PromptReco-v1_ttbsm_v2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_HT-Run2011A-PromptReco-v1_ttbsm_v2.cfg deleted file mode 100644 index 7465c97f65d71..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_HT-Run2011A-PromptReco-v1_ttbsm_v2.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /HT/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 60 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-163387 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =HT_Run2011A-PromptReco-v1_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_HT-Run2011A-PromptReco-v2_ttbsm_v2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_HT-Run2011A-PromptReco-v2_ttbsm_v2.cfg deleted file mode 100644 index 357c5be96e8f1..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_HT-Run2011A-PromptReco-v2_ttbsm_v2.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /HT/Run2011A-PromptReco-v2/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 60 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-163387 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =HT_Run2011A-PromptReco-v2_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v4.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v4.cfg deleted file mode 100644 index 4efd2b6a212fd..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v4.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = gLite -use_server = 1 - -[CMSSW] -datasetpath = /Jet/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v4_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-May10ReReco-v1_ttbsm_v4 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v5.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v5.cfg deleted file mode 100644 index 9e81885768b2d..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v5.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = glidein -use_server = 1 - -[CMSSW] -datasetpath = /Jet/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v5_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-May10ReReco-v1_ttbsm_v5 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v6.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v6.cfg deleted file mode 100644 index f3b041ab55886..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v6.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = glidein -use_server = 1 - -[CMSSW] -datasetpath = /Jet/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v6_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-May10ReReco-v1_ttbsm_v6 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v8.cfg deleted file mode 100644 index 3d0601fee2b95..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-May10ReReco-v1_ttbsm_v8.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-May10ReReco-v1_ttbsm_v8-submit3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v1_ttbsm_v1.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v1_ttbsm_v1.cfg deleted file mode 100644 index f7864e1be2619..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v1_ttbsm_v1.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 20 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160405-161312 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =Jet_Run2011A-PromptReco-v1_ttbsm_v1 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v1_ttbsm_v2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v1_ttbsm_v2.cfg deleted file mode 100644 index eadd6d53611bb..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v1_ttbsm_v2.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 40 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-163387 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =Jet_Run2011A-PromptReco-v1_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v1_ttbsm_v3.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v1_ttbsm_v3.cfg deleted file mode 100644 index 3b7b0d29941a5..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v1_ttbsm_v3.cfg +++ /dev/null @@ -1,28 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 120 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 use41x=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v3_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v1_ttbsm_v3 -additional_input_files = Jec10V3.db diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v2.cfg deleted file mode 100644 index ad6ccdfa45dec..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v2.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v2/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 40 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-163387 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =Jet_Run2011A-PromptReco-v2_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v2_job18.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v2_job18.cfg deleted file mode 100644 index 53d9b23b5047e..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v2_job18.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v2/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 10 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-163387_range2_jetPD_job18 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =Jet_Run2011A-PromptReco-v2_ttbsm_v2_job18 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v2_job18.cfg~ b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v2_job18.cfg~ deleted file mode 100644 index ad6ccdfa45dec..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v2_job18.cfg~ +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v2/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 40 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-163387 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =Jet_Run2011A-PromptReco-v2_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v3.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v3.cfg deleted file mode 100644 index 28c383bff406c..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v2_ttbsm_v3.cfg +++ /dev/null @@ -1,28 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v2/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 120 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 use41x=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v3_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v2_ttbsm_v3 -additional_input_files = Jec10V3.db diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v5_ttbsm_v8_2fbinv_later.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v5_ttbsm_v8_2fbinv_later.cfg deleted file mode 100644 index 937919c7dc5f6..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v5_ttbsm_v8_2fbinv_later.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v5/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-173692_2fbinv -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v5_ttbsm_v8-2fbinv_later diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v6_ttbsm_v8_2fbinv_later.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v6_ttbsm_v8_2fbinv_later.cfg deleted file mode 100644 index cc27c03b0eb67..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco-v6_ttbsm_v8_2fbinv_later.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v6/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-173692_2fbinv -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v6_ttbsm_v8-2fbinv_later diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v6.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v6.cfg deleted file mode 100644 index 9c5e36035a50e..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v6.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = glidein -use_server = 1 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v6_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v4_ttbsm_v6 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8-again.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8-again.cfg deleted file mode 100644 index 156b93a6cf205..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8-again.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -lumi_mask= jetpromptmissing.json -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v4_ttbsm_v8-submit3-again diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8.cfg deleted file mode 100644 index e4a97b0506fc6..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-166701 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v4_ttbsm_v8-submit3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_EPS.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_EPS.cfg deleted file mode 100644 index 73643ed87ddd1..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_EPS.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-167746-range3 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v4_ttbsm_v8-range3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_missinglumis.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_missinglumis.cfg deleted file mode 100644 index a88c926c168f1..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_missinglumis.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= jet_alleps_missedlumis.json -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v4_ttbsm_v8-missinglumis diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range2.cfg deleted file mode 100644 index 667939fbea7ab..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range2.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-167284_promptreco-v4-range2 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v4_ttbsm_v8-range2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range2_brokenjobs_1_3.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range2_brokenjobs_1_3.cfg deleted file mode 100644 index 211b133c74e7b..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range2_brokenjobs_1_3.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-167284_promptreco-v4-range2-brokenjobs_1_3 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v4_ttbsm_v8-range2_brokenjobs_1_3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range3.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range3.cfg deleted file mode 100644 index 73643ed87ddd1..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range3.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-167746-range3 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v4_ttbsm_v8-range3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range4.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range4.cfg deleted file mode 100644 index 7d8028eeb2822..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_Jet-Run2011A-PromptReco_ttbsm_v8_range4.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /Jet/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-167913_range4 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = Jet_Run2011A-PromptReco-v4_ttbsm_v8-range4 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-PU_S3_ttbsm_v6.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-PU_S3_ttbsm_v6.cfg deleted file mode 100644 index 0c8cf2016004e..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-PU_S3_ttbsm_v6.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /QCD_Pt-15to3000_TuneZ2_Flat_7TeV_pythia6/Summer11-PU_S3_START42_V11-v2/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v6_Summer11-PU_S3_-START42_V11-v2 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = QCD_Pt_15to3000_Flat_Summer11-PU_S3_-START42_V11-v2_ttbsm_v6 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-PU_S3_ttbsm_v6_zvtx2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-PU_S3_ttbsm_v6_zvtx2.cfg deleted file mode 100644 index 9bd7a502aeea1..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-PU_S3_ttbsm_v6_zvtx2.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /QCD_Pt-15to3000_TuneZ2_Flat_7TeV_pythia6/Summer11-PU_S3_START42_V11-v2/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 forceCheckClosestZVertex=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v6_zvtx2_Summer11-PU_S3_-START42_V11-v2 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = QCD_Pt_15to3000_Flat_Summer11-PU_S3_-START42_V11-v2_ttbsm_v6_zvtx2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-PU_S3_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-PU_S3_ttbsm_v8.cfg deleted file mode 100644 index e0152813da59d..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-PU_S3_ttbsm_v8.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /QCD_Pt-15to3000_TuneZ2_Flat_7TeV_pythia6/Summer11-PU_S3_START42_V11-v2/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -pycfg_params = useData=0 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Summer11-PU_S3_-START42_V11-v2 -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = QCD_Pt_15to3000_Flat_Summer11-PU_S3_-START42_V11-v2_ttbsm_v8-submit3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-v1-PU_S1_ttbsm_v1.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-v1-PU_S1_ttbsm_v1.cfg deleted file mode 100644 index 0c8cf2016004e..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-v1-PU_S1_ttbsm_v1.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /QCD_Pt-15to3000_TuneZ2_Flat_7TeV_pythia6/Summer11-PU_S3_START42_V11-v2/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v6_Summer11-PU_S3_-START42_V11-v2 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = QCD_Pt_15to3000_Flat_Summer11-PU_S3_-START42_V11-v2_ttbsm_v6 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-v1-PU_S1_ttbsm_v1.cfg.~1.1.2.1.~ b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-v1-PU_S1_ttbsm_v1.cfg.~1.1.2.1.~ deleted file mode 100644 index 771eca17968d5..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-v1-PU_S1_ttbsm_v1.cfg.~1.1.2.1.~ +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /QCD_Pt_15to3000_TuneZ2_Flat_7TeV_pythia6/Spring11-PU_S1_START311_V1G1-v1/GEN-SIM-RECODEBUG -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 30 -get_edm_output = 1 -pycfg_params = useData=0 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Spring11-PU_S1_-START311_V1A-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = QCD_Pt_15to3000_Flat_Spring11-PU_S1_-START311_V1A-v1_ttbsm_v1 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-v1_ttbsm_v1.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-v1_ttbsm_v1.cfg deleted file mode 100644 index 9a50ebe190f18..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_QCD_Pt_15to3000_Flat_7TeV-v1_ttbsm_v1.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /QCD_Pt_15to3000_Flat_7TeV/Spring11-START311_V1A-v1/GEN-SIM-RECO -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Spring11-START311_V1A-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = QCD_Pt_15to3000_Flat_Spring11-START311_V1A-v1_ttbsm_v1 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleEle-Run2011A-PromptReco-v1_ttbsm_v1.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleEle-Run2011A-PromptReco-v1_ttbsm_v1.cfg deleted file mode 100644 index d135277b4e66b..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleEle-Run2011A-PromptReco-v1_ttbsm_v1.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleEle/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 20 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160405-161312 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =SingleEle_Run2011A-PromptReco-v1_ttbsm_v1 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v4.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v4.cfg deleted file mode 100644 index 5cdfaaf68b938..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v4.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = glidein -use_server = 1 - -[CMSSW] -datasetpath = /SingleElectron/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v4_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleElectron_Run2011A-May10ReReco-v1_ttbsm_v4 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v5.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v5.cfg deleted file mode 100644 index 1169517d35b3f..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v5.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = glidein -use_server = 1 - -[CMSSW] -datasetpath = /SingleElectron/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v5_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleElectron_Run2011A-May10ReReco-v1_ttbsm_v5 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v6.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v6.cfg deleted file mode 100644 index 5c4af51def507..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v6.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = glidein -use_server = 1 - -[CMSSW] -datasetpath = /SingleElectron/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v6_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleElectron_Run2011A-May10ReReco-v1_ttbsm_v6 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v8.cfg deleted file mode 100644 index adf6a3d237484..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-May10ReReco-v1_ttbsm_v8.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleElectron/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 800 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleElectron_Run2011A-May10ReReco-v1_ttbsm_v8-submit3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-PromptReco-v1_ttbsm_v1.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-PromptReco-v1_ttbsm_v1.cfg deleted file mode 100644 index 7d50f84e25961..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-PromptReco-v1_ttbsm_v1.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleElectron/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 20 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160405-161312 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =SingleElectron_Run2011A-PromptReco-v1_ttbsm_v1 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-PromptReco-v1_ttbsm_v2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-PromptReco-v1_ttbsm_v2.cfg deleted file mode 100644 index c229fca0780e6..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-PromptReco-v1_ttbsm_v2.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleElectron/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 40 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-163387 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =SingleElectron_Run2011A-PromptReco-v1_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-PromptReco-v4_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-PromptReco-v4_ttbsm_v8.cfg deleted file mode 100644 index 8ced1471b4f75..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleElectron-Run2011A-PromptReco-v4_ttbsm_v8.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleElectron/Run2011A-PromptReco-v4/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-166701 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleElectron_Run2011A-PromptReco-v4_ttbsm_v8-a-submit3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v4.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v4.cfg deleted file mode 100644 index 0e31329414fc9..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v4.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = glidein -use_server = 1 - -[CMSSW] -datasetpath = /SingleMu/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v4_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleMu_Run2011A-May10ReReco-v1_ttbsm_v4 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v5.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v5.cfg deleted file mode 100644 index e7573d256752e..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v5.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = glidein -use_server = 1 - -[CMSSW] -datasetpath = /SingleMu/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v5_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleMu_Run2011A-May10ReReco-v1_ttbsm_v5 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v6.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v6.cfg deleted file mode 100644 index db63b598a0da5..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v6.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleMu/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v6_Run2011-May10ReReco-submit2 -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleMu_Run2011A-May10ReReco-v1_ttbsm_v6-submit2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v8.cfg deleted file mode 100644 index 035f7602b4b83..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-May10ReReco-v1_ttbsm_v8.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleMu/Run2011A-May10ReReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask= json_DCSONLY.txt_160404-163817 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-May10ReReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleMu_Run2011A-May10ReReco-v1_ttbsm_v8-submit3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v1_ttbsm_v1.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v1_ttbsm_v1.cfg deleted file mode 100644 index 328d654a8e9a3..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v1_ttbsm_v1.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleMu/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 20 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160405-161312 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =SingleMu_Run2011A-PromptReco-v1_ttbsm_v1 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v1_ttbsm_v2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v1_ttbsm_v2.cfg deleted file mode 100644 index c576c32a9dde0..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v1_ttbsm_v2.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleMu/Run2011A-PromptReco-v1/AOD -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 40 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-163387 -pycfg_params = useData=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Run2011A-PromptReco-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir =SingleMu_Run2011A-PromptReco-v1_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v4_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v4_ttbsm_v8.cfg deleted file mode 100644 index 7cf8abea4a7eb..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v4_ttbsm_v8.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleMu/Run2011A-PromptReco-v4/RECO -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-166701 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleMu_Run2011A-PromptReco-v4_ttbsm_v8-submit3 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v4_ttbsm_v8_range2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v4_ttbsm_v8_range2.cfg deleted file mode 100644 index 3efc76eb26d6c..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v4_ttbsm_v8_range2.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleMu/Run2011A-PromptReco-v4/RECO -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-172478_range2only -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleMu_Run2011A-PromptReco-v4_ttbsm_v8_range2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v5_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v5_ttbsm_v8.cfg deleted file mode 100644 index eca600b2883d7..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_SingleMu-Run2011A-PromptReco-v5_ttbsm_v8.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /SingleMu/Run2011A-PromptReco-v5/RECO -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -lumi_mask=json_DCSONLY.txt_160404-172478 -pycfg_params = useData=1 - - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Run2011-PromptReco -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = SingleMu_Run2011A-PromptReco-v5_ttbsm_v8 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneD6T_7TeV_madgraph_tauola_ttbsm_v4.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneD6T_7TeV_madgraph_tauola_ttbsm_v4.cfg deleted file mode 100644 index d9fcdff6d87e2..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneD6T_7TeV_madgraph_tauola_ttbsm_v4.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /TTJets_TuneD6T_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X use41x=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v4_Spring11-PU_S1_-START311_V1G1-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = TTJets_TuneD6T_7TeV-madgraph-tauola_Spring11-PU_S1_-START311_V1G1-v1_ttbsm_v4 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v1.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v1.cfg deleted file mode 100644 index b370bc6c4f860..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v1.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /TTJets_TuneZ2_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/GEN-SIM-RECO -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 40 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Spring11-PU_S1_START311_V1G1-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = TTJets_TuneZ2_7TeV-madgraph-tauola_Spring11-PU_S1_START311_V1G1-v1 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v2.cfg deleted file mode 100644 index f2941ed721a62..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v2.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /TTJets_TuneZ2_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/GEN-SIM-RECO -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 50 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Spring11-PU_S1_START311_V1G1-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = TTJets_TuneZ2_7TeV-madgraph-tauola_Spring11-PU_S1_START311_V1G1-v1_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v3.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v3.cfg deleted file mode 100644 index 5e3212410d7ac..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v3.cfg +++ /dev/null @@ -1,26 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /TTJets_TuneZ2_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/GEN-SIM-RECO -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 50 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X use41x=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v3_Spring11-PU_S1_START311_V1G1-v1 -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = TTJets_TuneZ2_7TeV-madgraph-tauola_Spring11-PU_S1_START311_V1G1-v1_ttbsm_v3 -additional_input_files = Jec10V3.db diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v6.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v6.cfg deleted file mode 100644 index 5e3212410d7ac..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v6.cfg +++ /dev/null @@ -1,26 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /TTJets_TuneZ2_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/GEN-SIM-RECO -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 50 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X use41x=1 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v3_Spring11-PU_S1_START311_V1G1-v1 -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = TTJets_TuneZ2_7TeV-madgraph-tauola_Spring11-PU_S1_START311_V1G1-v1_ttbsm_v3 -additional_input_files = Jec10V3.db diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v8.cfg deleted file mode 100644 index 843551d204eca..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v8.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /TTJets_TuneZ2_7TeV-madgraph-tauola/Summer11-PU_S4_START42_V11-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 400 -get_edm_output = 1 -pycfg_params = useData=0 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Summer11-PU_S4_START42_V11-v1 -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = TTJets_TuneZ2_7TeV-madgraph-tauola_Summer11-PU_S4_START42_V11-v1_ttbsm_v8-submit5 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v9.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v9.cfg deleted file mode 100644 index 239ce5d29a218..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_TTJets_TuneZ2_7TeV-madgraph-tauola_ttbsm_v9.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /TTJets_TuneZ2_7TeV-madgraph-tauola/Summer11-PU_S4_START42_V11-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_events = -1 -number_of_jobs = 400 -get_edm_output = 1 -pycfg_params = useData=0 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v9_Summer11-PU_S4_START42_V11-v1 -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = TTJets_TuneZ2_7TeV-madgraph-tauola_Summer11-PU_S4_START42_V11-v1_ttbsm_v9_submit2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v1.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v1.cfg deleted file mode 100644 index 6d151669e07c2..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v1.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /WJetsToLNu_TuneD6T_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Spring11-PU_S1_-START311_V1G1-v1_v2 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = WJetsToLNu_TuneD6T_7TeV-madgraph-tauola_Spring11-PU_S1_-START311_V1G1-v1_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v1.cfg.~1.1.2.1.~ b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v1.cfg.~1.1.2.1.~ deleted file mode 100644 index 6d151669e07c2..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v1.cfg.~1.1.2.1.~ +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /WJetsToLNu_TuneD6T_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v1_Spring11-PU_S1_-START311_V1G1-v1_v2 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = WJetsToLNu_TuneD6T_7TeV-madgraph-tauola_Spring11-PU_S1_-START311_V1G1-v1_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v2.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v2.cfg deleted file mode 100644 index b2e46235cce50..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v2.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /WJetsToLNu_TuneD6T_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Spring11-PU_S1_-START311_V1G1-v1 -storage_path = /srm/managerv2?SFN=/pnfs/cms/WAX/11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = WJetsToLNu_TuneD6T_7TeV-madgraph-tauola_Spring11-PU_S1_-START311_V1G1-v1_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v2.cfg.~1.1.2.1.~ b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v2.cfg.~1.1.2.1.~ deleted file mode 100644 index ad068bd924e1a..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneD6T_Spring11-PU_ttbsm_v2.cfg.~1.1.2.1.~ +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /WJetsToLNu_TuneD6T_7TeV-madgraph-tauola/Spring11-PU_S1_START311_V1G1-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_lumis = -1 -number_of_jobs = 100 -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = ttbsm_v2_Spring11-PU_S1_-START311_V1G1-v1 -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = WJetsToLNu_TuneD6T_7TeV-madgraph-tauola_Spring11-PU_S1_-START311_V1G1-v1_ttbsm_v2 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneZ2_7TeV-madgraph-tauola_Summer11-PU_S4_START42_V11-v1_ttbsm_v8.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneZ2_7TeV-madgraph-tauola_Summer11-PU_S4_START42_V11-v1_ttbsm_v8.cfg deleted file mode 100644 index 2219d21f2ab4c..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_WJetsToLNu_TuneZ2_7TeV-madgraph-tauola_Summer11-PU_S4_START42_V11-v1_ttbsm_v8.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = condor -use_server = 0 - -[CMSSW] -datasetpath = /WJetsToLNu_TuneZ2_7TeV-madgraph-tauola/Summer11-PU_S4_START42_V11-v1/AODSIM -pset = ttbsm_cfg.py -total_number_of_events = -1 -number_of_jobs = 450 -get_edm_output = 1 -pycfg_params = useData=0 - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = cmssrm.fnal.gov -publish_data = 1 -publish_data_name = ttbsm_v8_Summer11-PU_S4_START42_V11-v1 -storage_path = /srm/managerv2?SFN=11 -user_remote_dir = /store/user/lpctlbsm -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = WJetsToLNu_TuneZ2_7TeV-madgraph-tauola_Summer11-PU_S4_START42_V11-v1_ttbsm_v8-submit4 diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_higgs_dummy.cfg b/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_higgs_dummy.cfg deleted file mode 100644 index 893bf0466975c..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/crab_higgs_dummy.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[CRAB] -jobtype = cmssw -scheduler = gLite -use_server = 1 - -[CMSSW] -datasetpath = DUMMY_DATASET -pset = DUMMY_CMSSW -total_number_of_lumis = -1 -number_of_jobs = DUMMY_NJOBS -get_edm_output = 1 -pycfg_params = useData=0 hltProcess=REDIGI311X - -[USER] -#debug_wrapper = 1 -return_data = 0 -copy_data = 1 -storage_element = T3_US_FNALLPC -publish_data = 1 -publish_data_name = DUMMY_DBNAME -dbs_url_for_publication = https://cmsdbsprod.cern.ch:8443/cms_dbs_ph_analysis_02_writer/servlet/DBSServlet -check_user_remote_dir = 0 -ui_working_dir = DUMMY_UI_DIR diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163387 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163387 deleted file mode 100644 index 230edec8744d5..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163387 +++ /dev/null @@ -1 +0,0 @@ -{"160404": [[15, 24]], "160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160497": [[38, 148], [152, 398]], "160498": [[1, 70]], "160499": [[1, 16]], "160577": [[14, 337]], "160578": [[1, 456]], "160579": [[1, 181]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161156": [[1, 90]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]], "162739": [[1, 35], [37, 42]], "162742": [[1, 85], [97, 127]], "162803": [[60, 148]], "162808": [[1, 63]], "162810": [[1, 40]], "162811": [[1, 347]], "162826": [[1, 43]], "162827": [[1, 144]], "162828": [[1, 85]], "162909": [[54, 299]], "162917": [[122, 134]], "162926": [[1, 714]], "162929": [[1, 299], [358, 433]], "163045": [[51, 56]], "163046": [[1, 247], [311, 313]], "163069": [[73, 648]], "163071": [[1, 194]], "163072": [[1, 44]], "163078": [[1, 23]], "163232": [[110, 174]], "163233": [[1, 302]], "163234": [[1, 73]], "163235": [[1, 474]], "163237": [[1, 220]], "163252": [[60, 157]], "163255": [[1, 1067]], "163261": [[1, 126]], "163269": [[59, 222]], "163270": [[1, 928]], "163286": [[112, 411]], "163289": [[1, 388]], "163296": [[59, 603]], "163297": [[1, 227]], "163300": [[1, 623]], "163301": [[1, 198]], "163302": [[1, 253]], "163308": [[1, 27]], "163332": [[43, 812]], "163333": [[1, 113]], "163334": [[1, 563]], "163337": [[1, 476]], "163338": [[1, 171]], "163339": [[1, 188]], "163358": [[39, 63]], "163369": [[1, 105]], "163370": [[1, 176]], "163371": [[1, 375]], "163372": [[1, 111]], "163374": [[1, 873]], "163378": [[1, 615]], "163385": [[52, 436]], "163387": [[1, 256], [278, 287]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163387_range2_jetPD b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163387_range2_jetPD deleted file mode 100644 index 42becdd827d55..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163387_range2_jetPD +++ /dev/null @@ -1,129 +0,0 @@ -{"160404": [[15, 24]], - "160405": [[14, 15], [27, 35]], - "160406": [[30, 34], [92, 93], [116, 124]], - "160410": [[86, 102]], - "160413": [[43, 44], [84, 95], [137, 140], [179, 184], [228, 231], [272, 276], [323, 325], [379, 382], [436, 437], [491, 495], [549, 553], [611, 613], [665, 667], [729, 730]], - "160431": [[220, 244]], - "160432": [[64, 79]], - "160433": [[13, 21]], - "160442": [[142, 153]], - "160443": [[16, 21]], - "160444": [[11, 11], [69, 74]], - "160445": [[28, 37]], - "160446": [[46, 55]], - "160447": [[50, 65]], - "160449": [[32, 34], [36, 44]], - "160450": [[24, 47]], - "160454": [[33, 41]], - "160455": [[8, 33]], - "160456": [[15, 106]], - "160462": [[24, 30]], - "160463": [[17, 17], [23, 46]], - "160497": [[42, 46], [89, 90], [131, 133], [267, 278], [375, 398]], - "160498": [[44, 70]], - "160577": [[38, 39], [48, 56], [100, 101], [152, 153], [168, 170], [203, 203], [252, 253], [307, 337]], - "160578": [[4, 4], [54, 54], [145, 149], [164, 164], [271, 273], [401, 404], [440, 456]], - "160808": [[9, 19], [76, 80]], - "160815": [[77, 95]], - "160819": [[107, 118]], - "160827": [[37, 55]], - "160835": [[33, 33], [39, 39], [84, 85], [182, 182], [569, 584]], - "160853": [[62, 65]], - "160871": [[209, 236]], - "160872": [[10, 24], [36, 37], [56, 77]], - "160873": [[175, 201]], - "160874": [[52, 96], [114, 132]], - "160875": [[277, 285]], - "160876": [[10, 17]], - "160877": [[79, 83]], - "160888": [[411, 423]], - "160890": [[7, 7], [391, 395]], - "160894": [[203, 220]], - "160898": [[25, 53]], - "160907": [[46, 46], [132, 220]], - "160911": [[290, 301]], - "160913": [[17, 26]], - "160914": [[67, 75]], - "160915": [[360, 382]], - "160935": [[240, 259]], - "160936": [[26, 60]], - "160937": [[193, 209]], - "160938": [[119, 130]], - "160939": [[125, 148]], - "160940": [[80, 90]], - "160942": [[13, 26]], - "160954": [[78, 84]], - "160955": [[202, 202], [208, 228]], - "160956": [[66, 73]], - "160994": [[44, 45]], - "160998": [[253, 288]], - "161008": [[275, 285]], - "161016": [[302, 327]], - "161103": [[102, 111]], - "161106": [[28, 40]], - "161107": [[31, 40]], - "161113": [[26, 45]], - "161116": [[13, 20]], - "161117": [[26, 43]], - "161119": [[59, 68], [109, 114], [142, 144], [174, 178], [211, 350]], - "161156": [[15, 90]], - "161165": [[82, 100]], - "161216": [[42, 53]], - "161217": [[754, 788]], - "161222": [[98, 136]], - "161223": [[376, 409]], - "161233": [[51, 63]], - "161310": [[118, 127]], - "161311": [[680, 704]], - "162739": [[1, 35], [37, 42]], - "162742": [[1, 85], [97, 127]], - "162803": [[60, 148]], - "162808": [[1, 63]], - "162810": [[1, 40]], - "162811": [[1, 347]], - "162826": [[1, 43]], - "162827": [[1, 144]], - "162828": [[1, 85]], - "162909": [[54, 299]], - "162917": [[122, 134]], - "162926": [[1, 714]], - "162929": [[1, 299], [358, 433]], - "163045": [[51, 56]], - "163046": [[1, 247], [311, 313]], - "163069": [[73, 648]], - "163071": [[1, 194]], - "163072": [[1, 44]], - "163078": [[1, 23]], - "163232": [[110, 174]], - "163233": [[1, 302]], - "163234": [[1, 73]], - "163235": [[1, 474]], - "163237": [[1, 220]], - "163252": [[60, 157]], - "163255": [[1, 1067]], - "163261": [[1, 126]], - "163269": [[59, 222]], - "163270": [[1, 928]], - "163286": [[112, 411]], - "163289": [[1, 388]], - "163296": [[59, 603]], - "163297": [[1, 227]], - "163300": [[1, 623]], - "163301": [[1, 198]], - "163302": [[1, 253]], - "163308": [[1, 27]], - "163332": [[43, 812]], - "163333": [[1, 113]], - "163334": [[1, 563]], - "163337": [[1, 476]], - "163338": [[1, 171]], - "163339": [[1, 188]], - "163358": [[39, 63]], - "163369": [[1, 105]], - "163370": [[1, 176]], - "163371": [[1, 375]], - "163372": [[1, 111]], - "163374": [[1, 873]], - "163378": [[1, 615]], - "163385": [[52, 436]], - "163387": [[1, 256], [278, 287]]} diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163387_range2_jetPD_job18 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163387_range2_jetPD_job18 deleted file mode 100644 index 2ce13268fa301..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163387_range2_jetPD_job18 +++ /dev/null @@ -1 +0,0 @@ -{"163046": [[1, 133], [135, 238]]} diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163817 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163817 deleted file mode 100644 index acb97c153a79c..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-163817 +++ /dev/null @@ -1 +0,0 @@ -{"160404": [[15, 24]], "160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160497": [[38, 148], [152, 398]], "160498": [[1, 70]], "160499": [[1, 16]], "160577": [[14, 337]], "160578": [[1, 456]], "160579": [[1, 181]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161156": [[1, 90]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]], "162718": [[1, 202]], "162733": [[1, 47]], "162739": [[1, 35], [37, 42]], "162742": [[1, 85], [97, 127]], "162803": [[60, 148]], "162808": [[1, 63]], "162810": [[1, 40]], "162811": [[1, 347]], "162822": [[73, 314]], "162825": [[1, 202]], "162826": [[1, 43]], "162827": [[1, 144]], "162828": [[1, 85]], "162909": [[54, 299]], "162917": [[122, 134]], "162924": [[69, 151]], "162925": [[1, 319]], "162926": [[1, 714]], "162929": [[1, 299], [358, 433]], "163045": [[51, 56]], "163046": [[1, 247], [311, 313]], "163069": [[73, 648]], "163071": [[1, 194]], "163072": [[1, 44]], "163078": [[1, 23]], "163232": [[110, 174]], "163233": [[1, 302]], "163234": [[1, 73]], "163235": [[1, 474]], "163237": [[1, 220]], "163252": [[60, 157]], "163255": [[1, 1067]], "163261": [[1, 126]], "163269": [[59, 222]], "163270": [[1, 928]], "163286": [[112, 411]], "163289": [[1, 388]], "163296": [[59, 603]], "163297": [[1, 227]], "163300": [[1, 623]], "163301": [[1, 198]], "163302": [[1, 253]], "163308": [[1, 27]], "163332": [[43, 812]], "163333": [[1, 113]], "163334": [[1, 563]], "163337": [[1, 476]], "163338": [[1, 171]], "163339": [[1, 188]], "163340": [[1, 488], [554, 563]], "163358": [[39, 63]], "163369": [[1, 105]], "163370": [[1, 176]], "163371": [[1, 375]], "163372": [[1, 111]], "163374": [[1, 873]], "163378": [[1, 615]], "163385": [[52, 436]], "163387": [[1, 256], [278, 287]], "163402": [[37, 801]], "163475": [[30, 306]], "163476": [[1, 235]], "163478": [[1, 83]], "163479": [[1, 187]], "163480": [[1, 199]], "163481": [[1, 90]], "163482": [[1, 58]], "163483": [[1, 57]], "163581": [[40, 45]], "163582": [[1, 66]], "163583": [[1, 233]], "163584": [[1, 85]], "163585": [[1, 42]], "163586": [[1, 103]], "163587": [[1, 85]], "163588": [[1, 455]], "163589": [[1, 167]], "163591": [[1, 96]], "163592": [[1, 116]], "163593": [[1, 25]], "163596": [[1, 29]], "163630": [[76, 185]], "163655": [[15, 47]], "163657": [[1, 153]], "163658": [[1, 18]], "163659": [[1, 718]], "163660": [[1, 85]], "163661": [[1, 27]], "163662": [[1, 176]], "163663": [[1, 251]], "163664": [[1, 189]], "163665": [[1, 176]], "163668": [[1, 213], [255, 308]], "163738": [[34, 311]], "163753": [[1, 137]], "163754": [[1, 79]], "163757": [[1, 47]], "163758": [[1, 600]], "163759": [[1, 526]], "163760": [[1, 363]], "163761": [[1, 229]], "163763": [[1, 93]], "163765": [[1, 321]], "163795": [[10, 54]], "163796": [[1, 182]], "163817": [[50, 980]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-165620 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-165620 deleted file mode 100644 index d4c0c99dab404..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-165620 +++ /dev/null @@ -1 +0,0 @@ -{"160404": [[15, 24]], "160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160497": [[38, 148], [152, 398]], "160498": [[1, 70]], "160499": [[1, 16]], "160577": [[14, 337]], "160578": [[1, 456]], "160579": [[1, 181]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161156": [[1, 90]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]], "162718": [[1, 202]], "162733": [[1, 47]], "162739": [[1, 35], [37, 42]], "162742": [[1, 85], [97, 127]], "162760": [[1, 56]], "162762": [[1, 111]], "162765": [[1, 66]], "162803": [[60, 148]], "162808": [[1, 63]], "162810": [[1, 40]], "162811": [[1, 347]], "162822": [[73, 314]], "162825": [[1, 202]], "162826": [[1, 43]], "162827": [[1, 144]], "162828": [[1, 85]], "162909": [[54, 299]], "162917": [[122, 134]], "162924": [[69, 151]], "162925": [[1, 319]], "162926": [[1, 714]], "162929": [[1, 299], [358, 433]], "163045": [[51, 56]], "163046": [[1, 247], [311, 313]], "163069": [[73, 648]], "163071": [[1, 194]], "163072": [[1, 44]], "163078": [[1, 23]], "163232": [[110, 174]], "163233": [[1, 302]], "163234": [[1, 73]], "163235": [[1, 474]], "163237": [[1, 220]], "163238": [[1, 15]], "163252": [[60, 157]], "163255": [[1, 1067]], "163261": [[1, 126]], "163269": [[59, 222]], "163270": [[1, 928]], "163286": [[112, 411]], "163289": [[1, 388]], "163296": [[59, 603]], "163297": [[1, 227]], "163300": [[1, 623]], "163301": [[1, 198]], "163302": [[1, 253]], "163308": [[1, 27]], "163332": [[43, 812]], "163333": [[1, 113]], "163334": [[1, 563]], "163337": [[1, 476]], "163338": [[1, 171]], "163339": [[1, 188]], "163340": [[1, 488], [554, 563]], "163358": [[39, 63]], "163369": [[1, 105]], "163370": [[1, 176]], "163371": [[1, 375]], "163372": [[1, 111]], "163374": [[1, 873]], "163375": [[1, 16]], "163376": [[1, 253]], "163378": [[1, 615]], "163385": [[52, 436]], "163387": [[1, 256], [278, 287]], "163402": [[37, 801]], "163475": [[30, 306]], "163476": [[1, 235]], "163478": [[1, 83]], "163479": [[1, 187]], "163480": [[1, 199]], "163481": [[1, 90]], "163482": [[1, 58]], "163483": [[1, 57]], "163581": [[40, 45]], "163582": [[1, 66]], "163583": [[1, 233]], "163584": [[1, 85]], "163585": [[1, 42]], "163586": [[1, 103]], "163587": [[1, 85]], "163588": [[1, 455]], "163589": [[1, 167]], "163591": [[1, 96]], "163592": [[1, 116]], "163593": [[1, 25]], "163596": [[1, 29]], "163630": [[76, 185]], "163655": [[15, 47]], "163657": [[1, 153]], "163658": [[1, 18]], "163659": [[1, 718]], "163660": [[1, 85]], "163661": [[1, 27]], "163662": [[1, 176]], "163663": [[1, 251]], "163664": [[1, 189]], "163665": [[1, 176]], "163668": [[1, 213], [255, 308]], "163738": [[34, 311]], "163753": [[1, 137]], "163754": [[1, 79]], "163757": [[1, 47]], "163758": [[1, 600]], "163759": [[1, 526]], "163760": [[1, 363]], "163761": [[1, 229]], "163763": [[1, 93]], "163765": [[1, 321]], "163795": [[10, 54]], "163796": [[1, 182]], "163817": [[50, 980]], "163869": [[79, 137]], "165088": [[107, 266]], "165098": [[124, 440]], "165099": [[1, 126]], "165102": [[1, 185]], "165103": [[1, 440]], "165120": [[67, 109]], "165121": [[1, 466]], "165205": [[80, 260]], "165208": [[1, 101]], "165364": [[45, 1301], [1331, 1352]], "165400": [[1, 88]], "165402": [[1, 28]], "165415": [[58, 1383]], "165467": [[39, 736]], "165472": [[1, 882]], "165486": [[37, 118]], "165487": [[1, 154]], "165506": [[54, 171]], "165514": [[72, 570]], "165523": [[60, 92]], "165525": [[1, 68]], "165537": [[1, 304]], "165542": [[1, 189]], "165548": [[1, 630]], "165558": [[1, 62]], "165567": [[54, 637]], "165570": [[1, 947]], "165617": [[26, 291]], "165620": [[1, 63]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-166701 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-166701 deleted file mode 100644 index a7f7a7bedf30b..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-166701 +++ /dev/null @@ -1 +0,0 @@ -{"160404": [[15, 24]], "160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160497": [[38, 148], [152, 398]], "160498": [[1, 70]], "160499": [[1, 16]], "160577": [[14, 337]], "160578": [[1, 456]], "160579": [[1, 181]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161156": [[1, 90]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]], "162718": [[1, 202]], "162733": [[1, 47]], "162739": [[1, 35], [37, 42]], "162742": [[1, 85], [97, 127]], "162760": [[1, 56]], "162762": [[1, 111]], "162765": [[1, 66]], "162803": [[60, 148]], "162808": [[1, 63]], "162810": [[1, 40]], "162811": [[1, 347]], "162822": [[73, 314]], "162825": [[1, 202]], "162826": [[1, 43]], "162827": [[1, 144]], "162828": [[1, 85]], "162909": [[54, 299]], "162917": [[122, 134]], "162924": [[69, 151]], "162925": [[1, 319]], "162926": [[1, 714]], "162929": [[1, 299], [358, 433]], "163045": [[51, 56]], "163046": [[1, 247], [311, 313]], "163069": [[73, 648]], "163071": [[1, 194]], "163072": [[1, 44]], "163078": [[1, 23]], "163232": [[110, 174]], "163233": [[1, 302]], "163234": [[1, 73]], "163235": [[1, 474]], "163237": [[1, 220]], "163238": [[1, 15]], "163252": [[60, 157]], "163255": [[1, 1067]], "163261": [[1, 126]], "163269": [[59, 222]], "163270": [[1, 928]], "163286": [[112, 411]], "163289": [[1, 388]], "163296": [[59, 603]], "163297": [[1, 227]], "163300": [[1, 623]], "163301": [[1, 198]], "163302": [[1, 253]], "163308": [[1, 27]], "163332": [[43, 812]], "163333": [[1, 113]], "163334": [[1, 563]], "163337": [[1, 476]], "163338": [[1, 171]], "163339": [[1, 188]], "163340": [[1, 488], [554, 563]], "163358": [[39, 63]], "163369": [[1, 105]], "163370": [[1, 176]], "163371": [[1, 375]], "163372": [[1, 111]], "163374": [[1, 873]], "163375": [[1, 16]], "163376": [[1, 253]], "163378": [[1, 615]], "163385": [[52, 436]], "163387": [[1, 256], [278, 287]], "163402": [[37, 801]], "163475": [[30, 306]], "163476": [[1, 235]], "163478": [[1, 83]], "163479": [[1, 187]], "163480": [[1, 199]], "163481": [[1, 90]], "163482": [[1, 58]], "163483": [[1, 57]], "163581": [[40, 45]], "163582": [[1, 66]], "163583": [[1, 233]], "163584": [[1, 85]], "163585": [[1, 42]], "163586": [[1, 103]], "163587": [[1, 85]], "163588": [[1, 455]], "163589": [[1, 167]], "163591": [[1, 96]], "163592": [[1, 116]], "163593": [[1, 25]], "163596": [[1, 29]], "163630": [[76, 185]], "163655": [[15, 47]], "163657": [[1, 153]], "163658": [[1, 18]], "163659": [[1, 718]], "163660": [[1, 85]], "163661": [[1, 27]], "163662": [[1, 176]], "163663": [[1, 251]], "163664": [[1, 189]], "163665": [[1, 176]], "163668": [[1, 213], [255, 308]], "163738": [[34, 311]], "163753": [[1, 137]], "163754": [[1, 79]], "163757": [[1, 47]], "163758": [[1, 600]], "163759": [[1, 526]], "163760": [[1, 363]], "163761": [[1, 229]], "163763": [[1, 93]], "163765": [[1, 321]], "163795": [[10, 54]], "163796": [[1, 182]], "163817": [[50, 980]], "163869": [[79, 137]], "165088": [[107, 266]], "165098": [[124, 440]], "165099": [[1, 126]], "165102": [[1, 185]], "165103": [[1, 440]], "165120": [[67, 109]], "165121": [[1, 466]], "165205": [[80, 260]], "165208": [[1, 101]], "165364": [[45, 1301], [1331, 1352]], "165400": [[1, 88]], "165402": [[1, 28]], "165415": [[58, 1383]], "165467": [[39, 736]], "165472": [[1, 882]], "165486": [[37, 118]], "165487": [[1, 154]], "165506": [[54, 171]], "165514": [[72, 570]], "165523": [[60, 92]], "165525": [[1, 68]], "165537": [[1, 304]], "165542": [[1, 189]], "165548": [[1, 630]], "165558": [[1, 62]], "165567": [[54, 637]], "165570": [[1, 947]], "165617": [[26, 291]], "165619": [[1, 23]], "165620": [[1, 63]], "165633": [[56, 505]], "165970": [[67, 335]], "165993": [[71, 1697]], "166010": [[50, 180]], "166011": [[1, 83]], "166033": [[35, 1244]], "166034": [[1, 363]], "166049": [[53, 918]], "166051": [[1, 365]], "166052": [[1, 119]], "166149": [[1, 24]], "166150": [[1, 116]], "166161": [[37, 128]], "166163": [[1, 35]], "166164": [[1, 40]], "166346": [[48, 215]], "166374": [[46, 193]], "166377": [[1, 57]], "166379": [[1, 118]], "166380": [[1, 1809]], "166394": [[42, 47]], "166408": [[67, 1236]], "166429": [[33, 89]], "166462": [[78, 526]], "166486": [[54, 174]], "166502": [[43, 109]], "166512": [[42, 1876]], "166514": [[1, 465]], "166530": [[43, 63]], "166554": [[46, 738]], "166563": [[1, 276], [492, 748]], "166699": [[55, 915]], "166701": [[1, 792]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167284 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167284 deleted file mode 100644 index 6fdf48bf3f5a0..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167284 +++ /dev/null @@ -1 +0,0 @@ -{"160404": [[15, 24]], "160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160497": [[38, 148], [152, 398]], "160498": [[1, 70]], "160499": [[1, 16]], "160577": [[14, 337]], "160578": [[1, 456]], "160579": [[1, 181]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161156": [[1, 90]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]], "162718": [[1, 202]], "162733": [[1, 47]], "162739": [[1, 35], [37, 42]], "162742": [[1, 85], [97, 127]], "162760": [[1, 56]], "162762": [[1, 111]], "162765": [[1, 66]], "162803": [[60, 148]], "162808": [[1, 63]], "162810": [[1, 40]], "162811": [[1, 347]], "162822": [[73, 314]], "162825": [[1, 202]], "162826": [[1, 43]], "162827": [[1, 144]], "162828": [[1, 85]], "162909": [[54, 299]], "162917": [[122, 134]], "162924": [[69, 151]], "162925": [[1, 319]], "162926": [[1, 714]], "162929": [[1, 299], [358, 433]], "163045": [[51, 56]], "163046": [[1, 247], [311, 313]], "163069": [[73, 648]], "163071": [[1, 194]], "163072": [[1, 44]], "163078": [[1, 23]], "163232": [[110, 174]], "163233": [[1, 302]], "163234": [[1, 73]], "163235": [[1, 474]], "163237": [[1, 220]], "163238": [[1, 15]], "163252": [[60, 157]], "163255": [[1, 1067]], "163261": [[1, 126]], "163269": [[59, 222]], "163270": [[1, 928]], "163286": [[112, 411]], "163289": [[1, 388]], "163296": [[59, 603]], "163297": [[1, 227]], "163300": [[1, 623]], "163301": [[1, 198]], "163302": [[1, 253]], "163308": [[1, 27]], "163332": [[43, 812]], "163333": [[1, 113]], "163334": [[1, 563]], "163337": [[1, 476]], "163338": [[1, 171]], "163339": [[1, 188]], "163340": [[1, 488], [554, 563]], "163358": [[39, 63]], "163369": [[1, 105]], "163370": [[1, 176]], "163371": [[1, 375]], "163372": [[1, 111]], "163374": [[1, 873]], "163375": [[1, 16]], "163376": [[1, 253]], "163378": [[1, 615]], "163385": [[52, 436]], "163387": [[1, 256], [278, 287]], "163402": [[37, 801]], "163475": [[30, 306]], "163476": [[1, 235]], "163478": [[1, 83]], "163479": [[1, 187]], "163480": [[1, 199]], "163481": [[1, 90]], "163482": [[1, 58]], "163483": [[1, 57]], "163581": [[40, 45]], "163582": [[1, 66]], "163583": [[1, 233]], "163584": [[1, 85]], "163585": [[1, 42]], "163586": [[1, 103]], "163587": [[1, 85]], "163588": [[1, 455]], "163589": [[1, 167]], "163591": [[1, 96]], "163592": [[1, 116]], "163593": [[1, 25]], "163596": [[1, 29]], "163630": [[76, 185]], "163655": [[15, 47]], "163657": [[1, 153]], "163658": [[1, 18]], "163659": [[1, 718]], "163660": [[1, 85]], "163661": [[1, 27]], "163662": [[1, 176]], "163663": [[1, 251]], "163664": [[1, 189]], "163665": [[1, 176]], "163668": [[1, 213], [255, 308]], "163738": [[34, 311]], "163753": [[1, 137]], "163754": [[1, 79]], "163757": [[1, 47]], "163758": [[1, 600]], "163759": [[1, 526]], "163760": [[1, 363]], "163761": [[1, 229]], "163763": [[1, 93]], "163765": [[1, 321]], "163795": [[10, 54]], "163796": [[1, 182]], "163817": [[50, 980]], "163869": [[79, 137]], "165088": [[107, 266]], "165098": [[124, 440]], "165099": [[1, 126]], "165102": [[1, 185]], "165103": [[1, 440]], "165120": [[67, 109]], "165121": [[1, 466]], "165205": [[80, 260]], "165208": [[1, 101]], "165364": [[45, 1301], [1331, 1352]], "165400": [[1, 88]], "165402": [[1, 28]], "165415": [[58, 1383]], "165467": [[39, 736]], "165472": [[1, 882]], "165486": [[37, 118]], "165487": [[1, 154]], "165506": [[54, 171]], "165514": [[72, 570]], "165523": [[60, 92]], "165525": [[1, 68]], "165537": [[1, 304]], "165542": [[1, 189]], "165548": [[1, 630]], "165558": [[1, 62]], "165567": [[54, 637]], "165570": [[1, 947]], "165617": [[26, 291]], "165619": [[1, 23]], "165620": [[1, 63]], "165633": [[56, 505]], "165970": [[67, 335]], "165993": [[71, 1697]], "166010": [[50, 180]], "166011": [[1, 83]], "166033": [[35, 1244]], "166034": [[1, 363]], "166049": [[53, 918]], "166051": [[1, 365]], "166052": [[1, 119]], "166149": [[1, 24]], "166150": [[1, 116]], "166161": [[37, 128]], "166163": [[1, 35]], "166164": [[1, 40]], "166346": [[48, 215]], "166374": [[46, 193]], "166377": [[1, 57]], "166379": [[1, 118]], "166380": [[1, 1809]], "166394": [[42, 47]], "166408": [[67, 1236]], "166429": [[33, 89]], "166438": [[32, 867]], "166462": [[78, 526]], "166486": [[54, 174]], "166502": [[43, 109]], "166512": [[42, 1876]], "166514": [[1, 465]], "166530": [[43, 63]], "166554": [[46, 738]], "166563": [[1, 276], [492, 748]], "166565": [[1, 898]], "166699": [[55, 915]], "166701": [[1, 792]], "166763": [[46, 650]], "166781": [[41, 111], [115, 115], [117, 387]], "166782": [[1, 572]], "166784": [[1, 365]], "166787": [[1, 364]], "166839": [[43, 303]], "166841": [[1, 1017]], "166842": [[1, 170]], "166859": [[62, 425]], "166860": [[1, 25]], "166861": [[1, 44]], "166862": [[1, 5]], "166863": [[1, 3]], "166864": [[1, 537]], "166888": [[56, 476]], "166889": [[1, 231]], "166890": [[1, 446]], "166893": [[1, 3]], "166894": [[1, 203]], "166895": [[1, 603]], "166911": [[58, 104]], "166921": [[39, 68]], "166922": [[1, 776]], "166923": [[1, 470]], "166946": [[41, 208]], "166950": [[1, 1439]], "166960": [[1, 184]], "166966": [[1, 240]], "166967": [[1, 220]], "167039": [[20, 238]], "167041": [[1, 667]], "167043": [[1, 235]], "167078": [[40, 175]], "167098": [[62, 463]], "167102": [[1, 430]], "167103": [[1, 95]], "167151": [[1, 51]], "167281": [[18, 595]], "167282": [[1, 451]], "167284": [[1, 1645]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167284_promptreco-v4-range2 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167284_promptreco-v4-range2 deleted file mode 100644 index 49f14a45ec003..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167284_promptreco-v4-range2 +++ /dev/null @@ -1,281 +0,0 @@ -{"160404": [[15, 24]], - "160405": [[1, 35]], - "160406": [[1, 124]], - "160410": [[1, 102]], - "160413": [[1, 788]], - "160431": [[19, 244]], - "160432": [[2, 79]], - "160433": [[1, 21]], - "160442": [[108, 153]], - "160443": [[1, 21]], - "160444": [[1, 74]], - "160445": [[1, 37]], - "160446": [[1, 55]], - "160447": [[1, 65]], - "160449": [[1, 44]], - "160450": [[1, 47]], - "160454": [[1, 41]], - "160455": [[1, 33]], - "160456": [[1, 106]], - "160462": [[1, 30]], - "160463": [[1, 46]], - "160497": [[38, 148], [152, 398]], - "160498": [[1, 70]], - "160499": [[1, 16]], - "160577": [[14, 337]], - "160578": [[1, 456]], - "160579": [[1, 181]], - "160808": [[7, 80]], - "160815": [[1, 95]], - "160819": [[1, 17], [19, 118]], - "160827": [[1, 55]], - "160835": [[1, 85], [87, 496], [569, 584]], - "160853": [[62, 65]], - "160871": [[68, 236]], - "160872": [[1, 77]], - "160873": [[1, 201]], - "160874": [[1, 132]], - "160875": [[1, 285]], - "160876": [[1, 17]], - "160877": [[1, 12], [79, 83]], - "160888": [[45, 423]], - "160890": [[1, 395]], - "160894": [[1, 220]], - "160898": [[25, 53]], - "160907": [[15, 220]], - "160911": [[1, 301]], - "160913": [[1, 26]], - "160914": [[1, 75]], - "160915": [[1, 382]], - "160916": [[1, 90]], - "160935": [[33, 259]], - "160936": [[1, 60]], - "160937": [[1, 209]], - "160938": [[1, 130]], - "160939": [[1, 148]], - "160940": [[1, 90]], - "160942": [[1, 26]], - "160943": [[1, 54]], - "160954": [[78, 84]], - "160955": [[1, 228]], - "160956": [[1, 73]], - "160957": [[1, 953]], - "160994": [[44, 45]], - "160998": [[1, 288]], - "161008": [[1, 285]], - "161016": [[1, 327]], - "161020": [[1, 22]], - "161103": [[1, 111]], - "161106": [[1, 40]], - "161107": [[1, 40]], - "161113": [[1, 45]], - "161116": [[1, 20]], - "161117": [[1, 43]], - "161119": [[1, 350]], - "161156": [[1, 90]], - "161165": [[1, 100]], - "161176": [[1, 31]], - "161216": [[29, 53]], - "161217": [[1, 788]], - "161222": [[1, 136]], - "161223": [[1, 409]], - "161224": [[1, 2]], - "161233": [[33, 63]], - "161310": [[39, 127]], - "161311": [[1, 704]], - "161312": [[1, 1027]], - "162718": [[1, 202]], - "162733": [[1, 47]], - "162739": [[1, 35], [37, 42]], - "162742": [[1, 85], [97, 127]], - "162760": [[1, 56]], - "162762": [[1, 111]], - "162765": [[1, 66]], - "162803": [[60, 148]], - "162808": [[1, 63]], - "162810": [[1, 40]], - "162811": [[1, 347]], - "162822": [[73, 314]], - "162825": [[1, 202]], - "162826": [[1, 43]], - "162827": [[1, 144]], - "162828": [[1, 85]], - "162909": [[54, 299]], - "162917": [[122, 134]], - "162924": [[69, 151]], - "162925": [[1, 319]], - "162926": [[1, 714]], - "162929": [[1, 299], [358, 433]], - "163045": [[51, 56]], - "163046": [[1, 247], [311, 313]], - "163069": [[73, 648]], - "163071": [[1, 194]], - "163072": [[1, 44]], - "163078": [[1, 23]], - "163232": [[110, 174]], - "163233": [[1, 302]], - "163234": [[1, 73]], - "163235": [[1, 474]], - "163237": [[1, 220]], - "163238": [[1, 15]], - "163252": [[60, 157]], - "163255": [[1, 1067]], - "163261": [[1, 126]], - "163269": [[59, 222]], - "163270": [[1, 928]], - "163286": [[112, 411]], - "163289": [[1, 388]], - "163296": [[59, 603]], - "163297": [[1, 227]], - "163300": [[1, 623]], - "163301": [[1, 198]], - "163302": [[1, 253]], - "163308": [[1, 27]], - "163332": [[43, 812]], - "163333": [[1, 113]], - "163334": [[1, 563]], - "163337": [[1, 476]], - "163338": [[1, 171]], - "163339": [[1, 188]], - "163340": [[1, 488], [554, 563]], - "163358": [[39, 63]], - "163369": [[1, 105]], - "163370": [[1, 176]], - "163371": [[1, 375]], - "163372": [[1, 111]], - "163374": [[1, 873]], - "163375": [[1, 16]], - "163376": [[1, 253]], - "163378": [[1, 615]], - "163385": [[52, 436]], - "163387": [[1, 256], [278, 287]], - "163402": [[37, 801]], - "163475": [[30, 306]], - "163476": [[1, 235]], - "163478": [[1, 83]], - "163479": [[1, 187]], - "163480": [[1, 199]], - "163481": [[1, 90]], - "163482": [[1, 58]], - "163483": [[1, 57]], - "163581": [[40, 45]], - "163582": [[1, 66]], - "163583": [[1, 233]], - "163584": [[1, 85]], - "163585": [[1, 42]], - "163586": [[1, 103]], - "163587": [[1, 85]], - "163588": [[1, 455]], - "163589": [[1, 167]], - "163591": [[1, 96]], - "163592": [[1, 116]], - "163593": [[1, 25]], - "163596": [[1, 29]], - "163630": [[76, 185]], - "163655": [[15, 47]], - "163657": [[1, 153]], - "163658": [[1, 18]], - "163659": [[1, 718]], - "163660": [[1, 85]], - "163661": [[1, 27]], - "163662": [[1, 176]], - "163663": [[1, 251]], - "163664": [[1, 189]], - "163665": [[1, 176]], - "163668": [[1, 213], [255, 308]], - "163738": [[34, 311]], - "163753": [[1, 137]], - "163754": [[1, 79]], - "163757": [[1, 47]], - "163758": [[1, 600]], - "163759": [[1, 526]], - "163760": [[1, 363]], - "163761": [[1, 229]], - "163763": [[1, 93]], - "163765": [[1, 321]], - "163795": [[10, 54]], - "163796": [[1, 182]], - "163817": [[50, 980]], - "163869": [[79, 137]], - "165098": [[188, 189], [194, 194], [249, 249], [255, 255], [332, 332], [368, 368], [416, 440]], - "165099": [[107, 126]], - "165120": [[99, 109]], - "165205": [[249, 260]], - "165364": [[112, 113], [808, 808], [1331, 1352]], - "165400": [[80, 88]], - "165415": [[641, 642], [708, 711], [778, 779]], - "165467": [[710, 736]], - "165472": [[185, 185]], - "165486": [[103, 118]], - "165487": [[152, 154]], - "165506": [[171, 171]], - "165514": [[568, 570]], - "165523": [[60, 92]], - "165525": [[33, 68]], - "165537": [[297, 304]], - "165542": [[176, 189]], - "165548": [[364, 364], [590, 630]], - "165567": [[110, 113], [310, 314], [632, 637]], - "165570": [[3, 4], [84, 87], [947, 947]], - "165617": [[53, 53], [144, 144], [289, 291]], - "165619": [[1, 23]], - "165620": [[1, 63]], - "165633": [[56, 113], [318, 318]], - "166010": [[174, 175], [179, 180]], - "166033": [[1234, 1244]], - "166034": [[363, 363]], - "166049": [[886, 887], [918, 918]], - "166149": [[3, 24]], - "166161": [[121, 121], [124, 125], [127, 128]], - "166163": [[13, 13], [35, 35]], - "166374": [[65, 65], [189, 193]], - "166377": [[57, 57]], - "166380": [[712, 714]], - "166438": [[32, 867]], - "166486": [[96, 96]], - "166512": [[431, 431], [1280, 1280], [1819, 1820], [1863, 1867], [1869, 1869], [1872, 1872], [1875, 1876]], - "166514": [[465, 465]], - "166554": [[288, 289], [318, 319], [731, 731], [735, 735], [737, 738]], - "166565": [[1, 898]], - "166699": [[55, 915]], - "166701": [[1, 792]], - "166763": [[46, 650]], - "166781": [[41, 111], [115, 115], [117, 387]], - "166782": [[1, 572]], - "166784": [[1, 365]], - "166787": [[1, 364]], - "166839": [[43, 303]], - "166841": [[1, 1017]], - "166842": [[1, 170]], - "166859": [[62, 425]], - "166860": [[1, 25]], - "166861": [[1, 44]], - "166862": [[1, 5]], - "166863": [[1, 3]], - "166864": [[1, 537]], - "166888": [[56, 476]], - "166889": [[1, 231]], - "166890": [[1, 446]], - "166893": [[1, 3]], - "166894": [[1, 203]], - "166895": [[1, 603]], - "166911": [[58, 104]], - "166921": [[39, 68]], - "166922": [[1, 776]], - "166923": [[1, 470]], - "166946": [[41, 208]], - "166950": [[1, 1439]], - "166960": [[1, 184]], - "166966": [[1, 240]], - "166967": [[1, 220]], - "167039": [[20, 238]], - "167041": [[1, 667]], - "167043": [[1, 235]], - "167078": [[40, 175]], - "167098": [[62, 463]], - "167102": [[1, 430]], - "167103": [[1, 95]], - "167151": [[1, 51]], - "167281": [[18, 595]], - "167282": [[1, 451]], - "167284": [[1, 1645]]} diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167284_promptreco-v4-range2-brokenjobs_1_3 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167284_promptreco-v4-range2-brokenjobs_1_3 deleted file mode 100644 index d9d81def714ff..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167284_promptreco-v4-range2-brokenjobs_1_3 +++ /dev/null @@ -1,4 +0,0 @@ -{"165619": [[1, 19],[22,22]], - "165620": [[1, 1],[3, 5]], - "165633": [[56,113]] -} diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167746 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167746 deleted file mode 100644 index 3b952a3ae9d87..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167746 +++ /dev/null @@ -1 +0,0 @@ -{"160404": [[15, 24]], "160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160497": [[38, 148], [152, 398]], "160498": [[1, 70]], "160499": [[1, 16]], "160577": [[14, 337]], "160578": [[1, 456]], "160579": [[1, 181]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161156": [[1, 90]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]], "162718": [[1, 202]], "162733": [[1, 47]], "162739": [[1, 35], [37, 42]], "162742": [[1, 85], [97, 127]], "162760": [[1, 56]], "162762": [[1, 111]], "162765": [[1, 66]], "162803": [[60, 148]], "162808": [[1, 63]], "162810": [[1, 40]], "162811": [[1, 347]], "162822": [[73, 314]], "162825": [[1, 202]], "162826": [[1, 43]], "162827": [[1, 144]], "162828": [[1, 85]], "162909": [[54, 299]], "162917": [[122, 134]], "162924": [[69, 151]], "162925": [[1, 319]], "162926": [[1, 714]], "162929": [[1, 299], [358, 433]], "163045": [[51, 56]], "163046": [[1, 247], [311, 313]], "163069": [[73, 648]], "163071": [[1, 194]], "163072": [[1, 44]], "163078": [[1, 23]], "163232": [[110, 174]], "163233": [[1, 302]], "163234": [[1, 73]], "163235": [[1, 474]], "163237": [[1, 220]], "163238": [[1, 15]], "163252": [[60, 157]], "163255": [[1, 1067]], "163261": [[1, 126]], "163269": [[59, 222]], "163270": [[1, 928]], "163286": [[112, 411]], "163289": [[1, 388]], "163296": [[59, 603]], "163297": [[1, 227]], "163300": [[1, 623]], "163301": [[1, 198]], "163302": [[1, 253]], "163308": [[1, 27]], "163332": [[43, 812]], "163333": [[1, 113]], "163334": [[1, 563]], "163337": [[1, 476]], "163338": [[1, 171]], "163339": [[1, 188]], "163340": [[1, 488], [554, 563]], "163358": [[39, 63]], "163369": [[1, 105]], "163370": [[1, 176]], "163371": [[1, 375]], "163372": [[1, 111]], "163374": [[1, 873]], "163375": [[1, 16]], "163376": [[1, 253]], "163378": [[1, 615]], "163385": [[52, 436]], "163387": [[1, 256], [278, 287]], "163402": [[37, 801]], "163475": [[30, 306]], "163476": [[1, 235]], "163478": [[1, 83]], "163479": [[1, 187]], "163480": [[1, 199]], "163481": [[1, 90]], "163482": [[1, 58]], "163483": [[1, 57]], "163581": [[40, 45]], "163582": [[1, 66]], "163583": [[1, 233]], "163584": [[1, 85]], "163585": [[1, 42]], "163586": [[1, 103]], "163587": [[1, 85]], "163588": [[1, 455]], "163589": [[1, 167]], "163591": [[1, 96]], "163592": [[1, 116]], "163593": [[1, 25]], "163596": [[1, 29]], "163630": [[76, 185]], "163655": [[15, 47]], "163657": [[1, 153]], "163658": [[1, 18]], "163659": [[1, 718]], "163660": [[1, 85]], "163661": [[1, 27]], "163662": [[1, 176]], "163663": [[1, 251]], "163664": [[1, 189]], "163665": [[1, 176]], "163668": [[1, 213], [255, 308]], "163738": [[34, 311]], "163753": [[1, 137]], "163754": [[1, 79]], "163757": [[1, 47]], "163758": [[1, 600]], "163759": [[1, 526]], "163760": [[1, 363]], "163761": [[1, 229]], "163763": [[1, 93]], "163765": [[1, 321]], "163795": [[10, 54]], "163796": [[1, 182]], "163817": [[50, 980]], "163869": [[79, 137]], "165088": [[107, 266]], "165098": [[124, 440]], "165099": [[1, 126]], "165102": [[1, 185]], "165103": [[1, 440]], "165120": [[67, 109]], "165121": [[1, 466]], "165205": [[80, 260]], "165208": [[1, 101]], "165364": [[45, 1301], [1331, 1352]], "165400": [[1, 88]], "165402": [[1, 28]], "165415": [[58, 1383]], "165467": [[39, 736]], "165472": [[1, 882]], "165486": [[37, 118]], "165487": [[1, 154]], "165506": [[54, 171]], "165514": [[72, 570]], "165523": [[60, 92]], "165525": [[1, 68]], "165537": [[1, 304]], "165542": [[1, 189]], "165548": [[1, 630]], "165558": [[1, 62]], "165567": [[54, 637]], "165570": [[1, 947]], "165617": [[26, 291]], "165619": [[1, 23]], "165620": [[1, 63]], "165633": [[56, 505]], "165970": [[67, 335]], "165993": [[71, 1697]], "166010": [[50, 180]], "166011": [[1, 83]], "166033": [[35, 1244]], "166034": [[1, 363]], "166049": [[53, 918]], "166051": [[1, 365]], "166052": [[1, 119]], "166149": [[1, 24]], "166150": [[1, 116]], "166161": [[37, 128]], "166163": [[1, 35]], "166164": [[1, 40]], "166346": [[48, 215]], "166374": [[46, 193]], "166377": [[1, 57]], "166379": [[1, 118]], "166380": [[1, 1809]], "166394": [[42, 47]], "166408": [[67, 1236]], "166429": [[33, 89]], "166438": [[32, 867]], "166462": [[78, 526]], "166486": [[54, 174]], "166502": [[43, 109]], "166512": [[42, 1876]], "166514": [[1, 465]], "166530": [[43, 63]], "166554": [[46, 738]], "166563": [[1, 276], [492, 748]], "166565": [[1, 898]], "166699": [[55, 915]], "166701": [[1, 792]], "166763": [[46, 650]], "166781": [[41, 111], [115, 115], [117, 387]], "166782": [[1, 572]], "166784": [[1, 365]], "166787": [[1, 364]], "166839": [[43, 303]], "166841": [[1, 1017]], "166842": [[1, 170]], "166859": [[62, 425]], "166860": [[1, 25]], "166861": [[1, 44]], "166862": [[1, 5]], "166863": [[1, 3]], "166864": [[1, 537]], "166888": [[56, 476]], "166889": [[1, 231]], "166890": [[1, 446]], "166893": [[1, 3]], "166894": [[1, 203]], "166895": [[1, 603]], "166911": [[58, 104]], "166921": [[39, 68]], "166922": [[1, 776]], "166923": [[1, 470]], "166946": [[41, 208]], "166950": [[1, 1439]], "166960": [[1, 184]], "166966": [[1, 240]], "166967": [[1, 220]], "167039": [[20, 238]], "167041": [[1, 667]], "167043": [[1, 235]], "167078": [[40, 175]], "167098": [[62, 463]], "167102": [[1, 430]], "167103": [[1, 95]], "167151": [[1, 51]], "167281": [[18, 595]], "167282": [[1, 451]], "167284": [[1, 1645]], "167551": [[56, 472]], "167673": [[210, 448]], "167674": [[1, 348]], "167675": [[1, 1064]], "167676": [[1, 451]], "167740": [[79, 174]], "167746": [[56, 384]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167746-range3 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167746-range3 deleted file mode 100644 index fb1a64d774e6c..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167746-range3 +++ /dev/null @@ -1,65 +0,0 @@ -{"165088": [[107, 266]], - "165098": [[124, 187], [190, 193], [195, 248], [250, 254], [256, 331], [333, 367], [369, 415]], - "165099": [[1, 106]], - "165102": [[1, 185]], - "165103": [[1, 440]], - "165120": [[67, 98]], - "165121": [[1, 466]], - "165205": [[80, 248]], - "165208": [[1, 101]], - "165364": [[45, 111], [114, 807], [809, 1301]], - "165400": [[1, 79]], - "165402": [[1, 28]], - "165415": [[58, 640], [643, 707], [712, 777], [780, 1383]], - "165467": [[39, 709]], - "165472": [[1, 184], [186, 882]], - "165486": [[37, 102]], - "165487": [[1, 151]], - "165506": [[54, 170]], - "165514": [[72, 567]], - "165525": [[1, 32]], - "165537": [[1, 296]], - "165542": [[1, 175]], - "165548": [[1, 363], [365, 589]], - "165558": [[1, 62]], - "165567": [[54, 109], [114, 309], [315, 631]], - "165570": [[1, 2], [5, 83], [88, 946]], - "165617": [[26, 52], [54, 143], [145, 288]], - "165633": [[114, 317], [319, 505]], - "165970": [[67, 335]], - "165993": [[71, 1697]], - "166010": [[50, 173], [176, 178]], - "166011": [[1, 83]], - "166033": [[35, 1233]], - "166034": [[1, 362]], - "166049": [[53, 885], [888, 917]], - "166051": [[1, 365]], - "166052": [[1, 119]], - "166149": [[1, 2]], - "166150": [[1, 116]], - "166161": [[37, 120], [122, 123], [126, 126]], - "166163": [[1, 12], [14, 34]], - "166164": [[1, 40]], - "166346": [[48, 215]], - "166374": [[46, 64], [66, 188]], - "166377": [[1, 56]], - "166379": [[1, 118]], - "166380": [[1, 711], [715, 1809]], - "166394": [[42, 47]], - "166408": [[67, 1236]], - "166429": [[33, 89]], - "166462": [[78, 526]], - "166486": [[54, 95], [97, 174]], - "166502": [[43, 109]], - "166512": [[42, 430], [432, 1279], [1281, 1818], [1821, 1862], [1868, 1868], [1870, 1871], [1873, 1874]], - "166514": [[1, 464]], - "166530": [[43, 63]], - "166554": [[46, 287], [290, 317], [320, 730], [732, 734], [736, 736]], - "166563": [[1, 276], [492, 748]], - "167551": [[56, 472]], - "167673": [[210, 448]], - "167674": [[1, 348]], - "167675": [[1, 1064]], - "167676": [[1, 451]], - "167740": [[79, 174]], - "167746": [[56, 384]]} diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167913 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167913 deleted file mode 100644 index 4676fb3da7c45..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167913 +++ /dev/null @@ -1 +0,0 @@ -{"160404": [[15, 24]], "160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160497": [[38, 148], [152, 398]], "160498": [[1, 70]], "160499": [[1, 16]], "160577": [[14, 337]], "160578": [[1, 456]], "160579": [[1, 181]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161156": [[1, 90]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]], "162718": [[1, 202]], "162733": [[1, 47]], "162739": [[1, 35], [37, 42]], "162742": [[1, 85], [97, 127]], "162760": [[1, 56]], "162762": [[1, 111]], "162765": [[1, 66]], "162803": [[60, 148]], "162808": [[1, 63]], "162810": [[1, 40]], "162811": [[1, 347]], "162822": [[73, 314]], "162825": [[1, 202]], "162826": [[1, 43]], "162827": [[1, 144]], "162828": [[1, 85]], "162909": [[54, 299]], "162917": [[122, 134]], "162924": [[69, 151]], "162925": [[1, 319]], "162926": [[1, 714]], "162929": [[1, 299], [358, 433]], "163045": [[51, 56]], "163046": [[1, 247], [311, 313]], "163069": [[73, 648]], "163071": [[1, 194]], "163072": [[1, 44]], "163078": [[1, 23]], "163232": [[110, 174]], "163233": [[1, 302]], "163234": [[1, 73]], "163235": [[1, 474]], "163237": [[1, 220]], "163238": [[1, 15]], "163252": [[60, 157]], "163255": [[1, 1067]], "163261": [[1, 126]], "163269": [[59, 222]], "163270": [[1, 928]], "163286": [[112, 411]], "163289": [[1, 388]], "163296": [[59, 603]], "163297": [[1, 227]], "163300": [[1, 623]], "163301": [[1, 198]], "163302": [[1, 253]], "163308": [[1, 27]], "163332": [[43, 812]], "163333": [[1, 113]], "163334": [[1, 563]], "163337": [[1, 476]], "163338": [[1, 171]], "163339": [[1, 188]], "163340": [[1, 488], [554, 563]], "163358": [[39, 63]], "163369": [[1, 105]], "163370": [[1, 176]], "163371": [[1, 375]], "163372": [[1, 111]], "163374": [[1, 873]], "163375": [[1, 16]], "163376": [[1, 253]], "163378": [[1, 615]], "163385": [[52, 436]], "163387": [[1, 256], [278, 287]], "163402": [[37, 801]], "163475": [[30, 306]], "163476": [[1, 235]], "163478": [[1, 83]], "163479": [[1, 187]], "163480": [[1, 199]], "163481": [[1, 90]], "163482": [[1, 58]], "163483": [[1, 57]], "163581": [[40, 45]], "163582": [[1, 66]], "163583": [[1, 233]], "163584": [[1, 85]], "163585": [[1, 42]], "163586": [[1, 103]], "163587": [[1, 85]], "163588": [[1, 455]], "163589": [[1, 167]], "163591": [[1, 96]], "163592": [[1, 116]], "163593": [[1, 25]], "163596": [[1, 29]], "163630": [[76, 185]], "163655": [[15, 47]], "163657": [[1, 153]], "163658": [[1, 18]], "163659": [[1, 718]], "163660": [[1, 85]], "163661": [[1, 27]], "163662": [[1, 176]], "163663": [[1, 251]], "163664": [[1, 189]], "163665": [[1, 176]], "163668": [[1, 213], [255, 308]], "163738": [[34, 311]], "163753": [[1, 137]], "163754": [[1, 79]], "163757": [[1, 47]], "163758": [[1, 600]], "163759": [[1, 526]], "163760": [[1, 363]], "163761": [[1, 229]], "163763": [[1, 93]], "163765": [[1, 321]], "163795": [[10, 54]], "163796": [[1, 182]], "163817": [[50, 980]], "163869": [[79, 137]], "165088": [[107, 266]], "165098": [[124, 440]], "165099": [[1, 126]], "165100": [[1, 410]], "165102": [[1, 185]], "165103": [[1, 440]], "165104": [[1, 137]], "165120": [[67, 109]], "165121": [[1, 466]], "165205": [[80, 260]], "165208": [[1, 101]], "165364": [[45, 1301], [1331, 1352]], "165400": [[1, 88]], "165402": [[1, 28]], "165415": [[58, 1383]], "165467": [[39, 736]], "165472": [[1, 882]], "165486": [[37, 118]], "165487": [[1, 154]], "165506": [[54, 171]], "165514": [[72, 570]], "165523": [[60, 92]], "165525": [[1, 68]], "165529": [[1, 10]], "165537": [[1, 304]], "165542": [[1, 189]], "165548": [[1, 630]], "165558": [[1, 62]], "165567": [[54, 642]], "165570": [[1, 952]], "165617": [[26, 291]], "165619": [[1, 23]], "165620": [[1, 63]], "165633": [[56, 505]], "165970": [[67, 335]], "165993": [[71, 1697]], "166010": [[50, 180]], "166011": [[1, 83]], "166033": [[35, 1244]], "166034": [[1, 363]], "166049": [[53, 918]], "166051": [[1, 365]], "166052": [[1, 119]], "166149": [[1, 24]], "166150": [[1, 116]], "166161": [[37, 128]], "166163": [[1, 35]], "166164": [[1, 40]], "166346": [[48, 215]], "166374": [[46, 193]], "166377": [[1, 57]], "166379": [[1, 118]], "166380": [[1, 1809]], "166394": [[42, 47]], "166408": [[67, 1236]], "166429": [[33, 89]], "166438": [[32, 867]], "166462": [[78, 526]], "166486": [[54, 174]], "166502": [[43, 109]], "166512": [[42, 1876]], "166514": [[1, 465]], "166530": [[43, 63]], "166554": [[46, 738]], "166563": [[1, 276], [492, 748]], "166565": [[1, 898]], "166699": [[55, 915]], "166701": [[1, 792]], "166763": [[46, 650]], "166781": [[41, 111], [115, 115], [117, 387]], "166782": [[1, 572]], "166784": [[1, 365]], "166787": [[1, 364]], "166839": [[43, 303]], "166841": [[1, 1017]], "166842": [[1, 170]], "166859": [[62, 425]], "166860": [[1, 25]], "166861": [[1, 44]], "166862": [[1, 5]], "166863": [[1, 3]], "166864": [[1, 537]], "166888": [[56, 476]], "166889": [[1, 231]], "166890": [[1, 446]], "166893": [[1, 3]], "166894": [[1, 203]], "166895": [[1, 603]], "166911": [[58, 104]], "166921": [[39, 68]], "166922": [[1, 776]], "166923": [[1, 470]], "166946": [[41, 208]], "166950": [[1, 1439]], "166960": [[1, 184]], "166966": [[1, 240]], "166967": [[1, 220]], "167039": [[20, 238]], "167041": [[1, 667]], "167043": [[1, 235]], "167078": [[40, 175]], "167098": [[62, 463]], "167102": [[1, 430]], "167103": [[1, 95]], "167151": [[1, 51]], "167281": [[18, 595]], "167282": [[1, 451]], "167284": [[1, 1645]], "167551": [[56, 472]], "167673": [[210, 448]], "167674": [[1, 348]], "167675": [[1, 1064]], "167676": [[1, 451]], "167740": [[79, 174]], "167746": [[56, 384]], "167754": [[62, 103]], "167784": [[51, 132]], "167786": [[1, 177]], "167807": [[60, 160], [178, 1870]], "167830": [[1, 1242]], "167898": [[108, 1764]], "167913": [[1, 432]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167913_range4 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167913_range4 deleted file mode 100644 index f0b0a3ab20d29..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-167913_range4 +++ /dev/null @@ -1,266 +0,0 @@ -{"160404": [[15, 24]], - "160405": [[14, 15], [27, 35]], - "160406": [[30, 34], [92, 93], [116, 124]], - "160410": [[86, 102]], - "160413": [[43, 44], [84, 95], [137, 140], [179, 184], [228, 231], [272, 276], [323, 325], [379, 382], [436, 437], [491, 495], [549, 553], [611, 613], [665, 667], [729, 730]], - "160431": [[220, 244]], - "160432": [[64, 79]], - "160433": [[13, 21]], - "160442": [[142, 153]], - "160443": [[16, 21]], - "160444": [[11, 11], [69, 74]], - "160445": [[28, 37]], - "160446": [[46, 55]], - "160447": [[50, 65]], - "160449": [[32, 34], [36, 44]], - "160450": [[24, 47]], - "160454": [[33, 41]], - "160455": [[8, 33]], - "160456": [[15, 106]], - "160462": [[24, 30]], - "160463": [[17, 17], [23, 46]], - "160497": [[42, 46], [89, 90], [131, 133], [267, 278], [375, 398]], - "160498": [[44, 70]], - "160577": [[38, 39], [48, 56], [100, 101], [152, 153], [168, 170], [203, 203], [252, 253], [307, 337]], - "160578": [[4, 4], [54, 54], [145, 149], [164, 164], [271, 273], [401, 404], [440, 456]], - "160808": [[9, 19], [76, 80]], - "160815": [[77, 95]], - "160819": [[107, 118]], - "160827": [[37, 55]], - "160835": [[33, 33], [39, 39], [84, 85], [182, 182], [569, 584]], - "160853": [[62, 65]], - "160871": [[209, 236]], - "160872": [[10, 24], [36, 37], [56, 77]], - "160873": [[175, 201]], - "160874": [[52, 96], [114, 132]], - "160875": [[277, 285]], - "160876": [[10, 17]], - "160877": [[79, 83]], - "160888": [[411, 423]], - "160890": [[7, 7], [391, 395]], - "160894": [[203, 220]], - "160898": [[25, 53]], - "160907": [[46, 46], [132, 220]], - "160911": [[290, 301]], - "160913": [[17, 26]], - "160914": [[67, 75]], - "160915": [[360, 382]], - "160935": [[240, 259]], - "160936": [[26, 60]], - "160937": [[193, 209]], - "160938": [[119, 130]], - "160939": [[125, 148]], - "160940": [[80, 90]], - "160942": [[13, 26]], - "160954": [[78, 84]], - "160955": [[202, 202], [208, 228]], - "160956": [[66, 73]], - "160994": [[44, 45]], - "160998": [[253, 288]], - "161008": [[275, 285]], - "161016": [[302, 327]], - "161103": [[102, 111]], - "161106": [[28, 40]], - "161107": [[31, 40]], - "161113": [[26, 45]], - "161116": [[13, 20]], - "161117": [[26, 43]], - "161119": [[59, 68], [109, 114], [142, 144], [174, 178], [211, 350]], - "161156": [[15, 90]], - "161165": [[82, 100]], - "161216": [[42, 53]], - "161217": [[754, 788]], - "161222": [[98, 136]], - "161223": [[376, 409]], - "161233": [[51, 63]], - "161310": [[118, 127]], - "161311": [[680, 704]], - "162718": [[35, 35], [118, 118], [158, 158], [180, 180], [183, 202]], - "162733": [[20, 47]], - "162739": [[12, 35], [37, 42]], - "162742": [[47, 85], [97, 127]], - "162760": [[1, 56]], - "162762": [[1, 111]], - "162765": [[1, 66]], - "162803": [[140, 148]], - "162808": [[53, 63]], - "162810": [[27, 40]], - "162811": [[341, 347]], - "162822": [[308, 314]], - "162825": [[185, 202]], - "162826": [[25, 43]], - "162827": [[135, 144]], - "162909": [[291, 299]], - "162917": [[122, 134]], - "162924": [[131, 151]], - "162925": [[297, 319]], - "162926": [[701, 714]], - "162929": [[296, 299], [358, 433]], - "163045": [[51, 56]], - "163046": [[134, 134], [239, 247], [311, 313]], - "163069": [[634, 648]], - "163071": [[177, 194]], - "163072": [[33, 44]], - "163232": [[150, 174]], - "163233": [[284, 302]], - "163234": [[67, 73]], - "163235": [[462, 474]], - "163237": [[214, 220]], - "163238": [[1, 15]], - "163252": [[138, 157]], - "163255": [[845, 845], [847, 847], [1055, 1067]], - "163269": [[174, 177], [207, 222]], - "163270": [[77, 78], [97, 98], [476, 478], [692, 692]], - "163286": [[402, 411]], - "163296": [[231, 231], [586, 603]], - "163297": [[220, 227]], - "163300": [[618, 623]], - "163301": [[193, 198]], - "163302": [[191, 253]], - "163332": [[158, 158], [265, 265], [600, 600], [803, 812]], - "163333": [[107, 113]], - "163334": [[557, 563]], - "163337": [[462, 476]], - "163338": [[165, 171]], - "163339": [[179, 188]], - "163340": [[554, 563]], - "163369": [[96, 105]], - "163370": [[168, 176]], - "163371": [[364, 375]], - "163372": [[101, 111]], - "163374": [[867, 873]], - "163375": [[1, 16]], - "163376": [[1, 253]], - "163385": [[420, 436]], - "163387": [[278, 287]], - "163475": [[296, 306]], - "163476": [[213, 235]], - "163478": [[71, 83]], - "163479": [[181, 187]], - "163480": [[93, 95], [189, 189], [192, 199]], - "163481": [[73, 73], [78, 78], [80, 90]], - "163482": [[49, 58]], - "163581": [[40, 45]], - "163582": [[23, 66]], - "163583": [[64, 64], [156, 156], [174, 174], [220, 233]], - "163584": [[71, 85]], - "163585": [[34, 42]], - "163586": [[91, 103]], - "163587": [[73, 85]], - "163588": [[9, 9], [447, 455]], - "163589": [[162, 167]], - "163591": [[78, 96]], - "163592": [[108, 108], [113, 116]], - "163593": [[12, 25]], - "163630": [[165, 175]], - "163655": [[24, 47]], - "163657": [[141, 153]], - "163658": [[4, 18]], - "163659": [[375, 375], [651, 651], [706, 718]], - "163660": [[75, 85]], - "163661": [[18, 27]], - "163662": [[155, 176]], - "163663": [[107, 108], [247, 251]], - "163664": [[179, 189]], - "163665": [[162, 176]], - "163668": [[255, 308]], - "163753": [[133, 137]], - "163754": [[39, 39], [52, 79]], - "163757": [[41, 47]], - "163758": [[18, 18], [221, 221], [375, 375], [592, 600]], - "163759": [[511, 526]], - "163760": [[163, 164], [355, 363]], - "163761": [[219, 229]], - "163763": [[87, 93]], - "163795": [[35, 35], [37, 37], [44, 54]], - "163817": [[528, 530], [967, 980]], - "163869": [[79, 137]], - "165098": [[188, 189], [194, 194], [249, 249], [255, 255], [332, 332], [368, 368], [416, 440]], - "165099": [[107, 126]], - "165100": [[1, 410]], - "165104": [[1, 137]], - "165120": [[99, 109]], - "165205": [[249, 260]], - "165364": [[112, 113], [808, 808], [1331, 1352]], - "165400": [[80, 88]], - "165415": [[641, 642], [708, 711], [778, 779]], - "165467": [[710, 736]], - "165472": [[185, 185]], - "165486": [[103, 118]], - "165487": [[152, 154]], - "165506": [[171, 171]], - "165514": [[568, 570]], - "165523": [[60, 92]], - "165525": [[33, 68]], - "165529": [[1, 10]], - "165537": [[297, 304]], - "165542": [[176, 189]], - "165548": [[364, 364], [590, 630]], - "165567": [[110, 113], [310, 314], [632, 642]], - "165570": [[3, 4], [84, 87], [947, 952]], - "165617": [[53, 53], [144, 144], [289, 291]], - "165619": [[20, 21], [23, 23]], - "165620": [[25, 25], [59, 63]], - "165633": [[318, 318]], - "166010": [[174, 175], [179, 180]], - "166033": [[1234, 1244]], - "166034": [[363, 363]], - "166049": [[886, 887], [918, 918]], - "166149": [[3, 24]], - "166161": [[121, 121], [124, 125], [127, 128]], - "166163": [[13, 13], [35, 35]], - "166374": [[65, 65], [189, 193]], - "166377": [[57, 57]], - "166380": [[712, 714]], - "166438": [[86, 86], [857, 857], [867, 867]], - "166486": [[96, 96]], - "166512": [[431, 431], [1280, 1280], [1819, 1820], [1863, 1867], [1869, 1869], [1872, 1872], [1875, 1876]], - "166514": [[465, 465]], - "166554": [[288, 289], [318, 319], [731, 731], [735, 735], [737, 738]], - "166565": [[313, 315], [468, 468]], - "166699": [[678, 680], [913, 915]], - "166701": [[14, 15]], - "166781": [[383, 387]], - "166782": [[570, 571]], - "166839": [[298, 298], [303, 303]], - "166841": [[986, 987], [1017, 1017]], - "166859": [[419, 420], [422, 422], [424, 425]], - "166860": [[22, 25]], - "166861": [[7, 7], [44, 44]], - "166862": [[3, 5]], - "166863": [[2, 3]], - "166864": [[30, 30], [78, 78], [100, 101], [248, 248], [308, 310], [366, 366], [375, 377], [455, 477]], - "166888": [[91, 92], [155, 155], [395, 397], [471, 476]], - "166889": [[229, 231]], - "166890": [[442, 446]], - "166893": [[2, 3]], - "166894": [[191, 203]], - "166895": [[598, 598]], - "166921": [[68, 68]], - "166922": [[770, 772], [774, 776]], - "166946": [[73, 74], [205, 205], [208, 208]], - "166950": [[2, 7], [33, 34], [1346, 1346]], - "166960": [[167, 184]], - "166966": [[240, 240]], - "167039": [[232, 238]], - "167041": [[337, 338], [664, 667]], - "167078": [[175, 175]], - "167098": [[91, 91], [463, 463]], - "167103": [[95, 95]], - "167151": [[43, 51]], - "167281": [[316, 316], [595, 595]], - "167282": [[255, 257], [382, 385], [390, 451]], - "167284": [[1, 1645]], - "167551": [[472, 472]], - "167673": [[238, 238], [448, 448]], - "167674": [[346, 348]], - "167675": [[131, 132], [1064, 1064]], - "167676": [[451, 451]], - "167740": [[174, 174]], - "167754": [[62, 103]], - "167784": [[51, 132]], - "167786": [[1, 177]], - "167807": [[60, 160], [178, 1870]], - "167830": [[1, 1242]], - "167898": [[108, 1764]], - "167913": [[1, 432]]} diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-172478 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-172478 deleted file mode 100644 index c2d8055ea008d..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-172478 +++ /dev/null @@ -1 +0,0 @@ -{"160404": [[15, 24]], "160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160497": [[38, 148], [152, 398]], "160498": [[1, 70]], "160499": [[1, 16]], "160577": [[14, 337]], "160578": [[1, 456]], "160579": [[1, 181]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161156": [[1, 90]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]], "162718": [[1, 202]], "162733": [[1, 47]], "162739": [[1, 35], [37, 42]], "162742": [[1, 85], [97, 127]], "162760": [[1, 56]], "162762": [[1, 111]], "162765": [[1, 66]], "162803": [[60, 148]], "162808": [[1, 63]], "162810": [[1, 40]], "162811": [[1, 347]], "162822": [[73, 314]], "162825": [[1, 202]], "162826": [[1, 43]], "162827": [[1, 144]], "162828": [[1, 85]], "162909": [[54, 299]], "162917": [[122, 134]], "162924": [[69, 151]], "162925": [[1, 319]], "162926": [[1, 714]], "162929": [[1, 299], [358, 433]], "163045": [[51, 56]], "163046": [[1, 247], [311, 313]], "163069": [[73, 648]], "163071": [[1, 194]], "163072": [[1, 44]], "163078": [[1, 23]], "163232": [[110, 174]], "163233": [[1, 302]], "163234": [[1, 73]], "163235": [[1, 474]], "163237": [[1, 220]], "163238": [[1, 15]], "163252": [[60, 157]], "163255": [[1, 1067]], "163261": [[1, 126]], "163269": [[59, 222]], "163270": [[1, 928]], "163286": [[112, 411]], "163289": [[1, 388]], "163296": [[59, 603]], "163297": [[1, 227]], "163300": [[1, 623]], "163301": [[1, 198]], "163302": [[1, 253]], "163308": [[1, 27]], "163332": [[43, 812]], "163333": [[1, 113]], "163334": [[1, 563]], "163337": [[1, 476]], "163338": [[1, 171]], "163339": [[1, 188]], "163340": [[1, 488], [554, 563]], "163358": [[39, 63]], "163369": [[1, 105]], "163370": [[1, 176]], "163371": [[1, 375]], "163372": [[1, 111]], "163374": [[1, 873]], "163375": [[1, 16]], "163376": [[1, 253]], "163378": [[1, 615]], "163385": [[52, 436]], "163387": [[1, 256], [278, 287]], "163402": [[37, 801]], "163475": [[30, 306]], "163476": [[1, 235]], "163478": [[1, 83]], "163479": [[1, 187]], "163480": [[1, 199]], "163481": [[1, 90]], "163482": [[1, 58]], "163483": [[1, 57]], "163581": [[40, 45]], "163582": [[1, 66]], "163583": [[1, 233]], "163584": [[1, 85]], "163585": [[1, 42]], "163586": [[1, 103]], "163587": [[1, 85]], "163588": [[1, 455]], "163589": [[1, 167]], "163591": [[1, 96]], "163592": [[1, 116]], "163593": [[1, 25]], "163596": [[1, 29]], "163630": [[76, 185]], "163655": [[15, 47]], "163657": [[1, 153]], "163658": [[1, 18]], "163659": [[1, 718]], "163660": [[1, 85]], "163661": [[1, 27]], "163662": [[1, 176]], "163663": [[1, 251]], "163664": [[1, 189]], "163665": [[1, 176]], "163668": [[1, 213], [255, 308]], "163738": [[34, 311]], "163753": [[1, 137]], "163754": [[1, 79]], "163757": [[1, 47]], "163758": [[1, 600]], "163759": [[1, 526]], "163760": [[1, 363]], "163761": [[1, 229]], "163763": [[1, 93]], "163765": [[1, 321]], "163795": [[10, 54]], "163796": [[1, 182]], "163817": [[50, 980]], "163869": [[79, 137]], "165088": [[107, 266]], "165098": [[124, 440]], "165099": [[1, 126]], "165100": [[1, 410]], "165102": [[1, 185]], "165103": [[1, 440]], "165104": [[1, 137]], "165120": [[67, 109]], "165121": [[1, 466]], "165205": [[80, 260]], "165208": [[1, 101]], "165364": [[45, 1301], [1331, 1352]], "165400": [[1, 88]], "165402": [[1, 28]], "165415": [[58, 1383]], "165467": [[39, 736]], "165472": [[1, 882]], "165486": [[37, 118]], "165487": [[1, 154]], "165506": [[54, 171]], "165514": [[72, 570]], "165523": [[60, 92]], "165525": [[1, 68]], "165529": [[1, 10]], "165537": [[1, 304]], "165542": [[1, 189]], "165548": [[1, 630]], "165558": [[1, 62]], "165567": [[54, 642]], "165570": [[1, 952]], "165617": [[26, 291]], "165619": [[1, 23]], "165620": [[1, 63]], "165633": [[56, 505]], "165970": [[67, 335]], "165993": [[71, 1697]], "166010": [[50, 180]], "166011": [[1, 83]], "166033": [[35, 1244]], "166034": [[1, 363]], "166049": [[53, 918]], "166051": [[1, 365]], "166052": [[1, 119]], "166149": [[1, 24]], "166150": [[1, 116]], "166161": [[37, 128]], "166163": [[1, 35]], "166164": [[1, 40]], "166346": [[48, 215]], "166374": [[46, 193]], "166377": [[1, 57]], "166379": [[1, 118]], "166380": [[1, 1809]], "166394": [[42, 47]], "166408": [[67, 1236]], "166429": [[33, 89]], "166438": [[32, 867]], "166462": [[78, 526]], "166486": [[54, 174]], "166502": [[43, 109]], "166512": [[42, 1876]], "166514": [[1, 465]], "166530": [[43, 63]], "166554": [[46, 738]], "166563": [[1, 276], [492, 748]], "166565": [[1, 898]], "166699": [[55, 915]], "166701": [[1, 792]], "166763": [[46, 650]], "166781": [[41, 111], [115, 115], [117, 387]], "166782": [[1, 572]], "166784": [[1, 365]], "166787": [[1, 364]], "166839": [[43, 303]], "166841": [[1, 1017]], "166842": [[1, 170]], "166859": [[62, 425]], "166860": [[1, 25]], "166861": [[1, 44]], "166862": [[1, 5]], "166863": [[1, 3]], "166864": [[1, 537]], "166888": [[56, 476]], "166889": [[1, 231]], "166890": [[1, 446]], "166893": [[1, 3]], "166894": [[1, 203]], "166895": [[1, 603]], "166911": [[58, 104]], "166921": [[39, 68]], "166922": [[1, 776]], "166923": [[1, 470]], "166946": [[41, 208]], "166950": [[1, 1439]], "166960": [[1, 184]], "166966": [[1, 240]], "166967": [[1, 220]], "167039": [[20, 238]], "167041": [[1, 667]], "167043": [[1, 235]], "167078": [[40, 175]], "167098": [[62, 463]], "167102": [[1, 430]], "167103": [[1, 95]], "167151": [[1, 51]], "167281": [[18, 595]], "167282": [[1, 451]], "167284": [[1, 1645]], "167551": [[56, 472]], "167673": [[210, 448]], "167674": [[1, 348]], "167675": [[1, 1064]], "167676": [[1, 451]], "167740": [[79, 174]], "167746": [[56, 384]], "167754": [[62, 103]], "167784": [[51, 132]], "167786": [[1, 177]], "167807": [[60, 160], [178, 1870]], "167830": [[1, 1242]], "167898": [[108, 1764]], "167913": [[1, 432]], "169985": [[88, 100]], "169991": [[1, 24]], "170000": [[1, 26], [28, 272]], "170040": [[90, 280], [282, 419]], "170044": [[1, 94]], "170249": [[37, 510]], "170255": [[1, 387]], "170286": [[77, 262]], "170292": [[1, 260]], "170298": [[1, 186]], "170303": [[1, 22]], "170304": [[1, 115]], "170307": [[1, 14]], "170348": [[58, 256]], "170354": [[1, 308]], "170376": [[52, 67]], "170378": [[1, 5]], "170380": [[1, 16]], "170382": [[1, 306]], "170397": [[1, 347]], "170406": [[1, 171]], "170452": [[72, 110]], "170527": [[44, 93]], "170722": [[110, 287]], "170759": [[49, 377]], "170826": [[50, 312]], "170842": [[1, 339]], "170854": [[1, 580]], "170876": [[1, 522]], "170896": [[1, 214]], "170899": [[1, 86]], "170901": [[1, 200]], "171050": [[47, 658]], "171091": [[1, 138]], "171098": [[1, 10]], "171102": [[1, 21]], "171106": [[1, 292]], "171116": [[1, 2]], "171117": [[1, 54], [56, 84]], "171156": [[42, 693]], "171178": [[1, 1044]], "171219": [[48, 162]], "171274": [[88, 148]], "171282": [[1, 171]], "171315": [[53, 226]], "171369": [[42, 162]], "171446": [[58, 865]], "171484": [[61, 432]], "171578": [[47, 974]], "171812": [[59, 438]], "171875": [[54, 60]], "171876": [[1, 541]], "171879": [[1, 103]], "171880": [[1, 207]], "171890": [[1, 43]], "171895": [[1, 36], [38, 67]], "171897": [[1, 25], [27, 51], [53, 77], [79, 103], [105, 180], [182, 543]], "171921": [[51, 152]], "171926": [[1, 264]], "172014": [[1, 244]], "172024": [[1, 79]], "172033": [[1, 749]], "172163": [[36, 784]], "172208": [[61, 200]], "172252": [[32, 63]], "172254": [[1, 43]], "172255": [[1, 40]], "172268": [[56, 169]], "172286": [[52, 217]], "172389": [[34, 460]], "172399": [[57, 231]], "172400": [[1, 706]], "172401": [[1, 148]], "172411": [[85, 382]], "172478": [[1, 154]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-172478_range2only b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-172478_range2only deleted file mode 100644 index 734cd594c7c18..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-172478_range2only +++ /dev/null @@ -1,136 +0,0 @@ -{"165100": [[1, 410]], - "165104": [[1, 137]], - "165529": [[1, 10]], - "165567": [[638, 642]], - "165570": [[948, 952]], - "166438": [[32, 867]], - "166565": [[1, 898]], - "166763": [[46, 650]], - "166781": [[41, 111], [115, 115], [117, 387]], - "166782": [[1, 572]], - "166784": [[1, 365]], - "166787": [[1, 364]], - "166839": [[43, 303]], - "166841": [[1, 1017]], - "166842": [[1, 170]], - "166859": [[62, 425]], - "166860": [[1, 25]], - "166861": [[1, 44]], - "166862": [[1, 5]], - "166863": [[1, 3]], - "166864": [[1, 537]], - "166888": [[56, 476]], - "166889": [[1, 231]], - "166890": [[1, 446]], - "166893": [[1, 3]], - "166894": [[1, 203]], - "166895": [[1, 603]], - "166911": [[58, 104]], - "166921": [[39, 68]], - "166922": [[1, 776]], - "166923": [[1, 470]], - "166946": [[41, 208]], - "166950": [[1, 1439]], - "166960": [[1, 184]], - "166966": [[1, 240]], - "166967": [[1, 220]], - "167039": [[20, 238]], - "167041": [[1, 667]], - "167043": [[1, 235]], - "167078": [[40, 175]], - "167098": [[62, 463]], - "167102": [[1, 430]], - "167103": [[1, 95]], - "167151": [[1, 51]], - "167281": [[18, 595]], - "167282": [[1, 451]], - "167284": [[1, 1645]], - "167551": [[56, 472]], - "167673": [[210, 448]], - "167674": [[1, 348]], - "167675": [[1, 1064]], - "167676": [[1, 451]], - "167740": [[79, 174]], - "167746": [[56, 384]], - "167754": [[62, 103]], - "167784": [[51, 132]], - "167786": [[1, 177]], - "167807": [[60, 160], [178, 1870]], - "167830": [[1, 1242]], - "167898": [[108, 1764]], - "167913": [[1, 432]], - "169985": [[88, 100]], - "169991": [[1, 24]], - "170000": [[1, 26], [28, 272]], - "170040": [[90, 280], [282, 419]], - "170044": [[1, 94]], - "170249": [[37, 510]], - "170255": [[1, 387]], - "170286": [[77, 262]], - "170292": [[1, 260]], - "170298": [[1, 186]], - "170303": [[1, 22]], - "170304": [[1, 115]], - "170307": [[1, 14]], - "170348": [[58, 256]], - "170354": [[1, 308]], - "170376": [[52, 67]], - "170378": [[1, 5]], - "170380": [[1, 16]], - "170382": [[1, 306]], - "170397": [[1, 347]], - "170406": [[1, 171]], - "170452": [[72, 110]], - "170527": [[44, 93]], - "170722": [[110, 287]], - "170759": [[49, 377]], - "170826": [[50, 312]], - "170842": [[1, 339]], - "170854": [[1, 580]], - "170876": [[1, 522]], - "170896": [[1, 214]], - "170899": [[1, 86]], - "170901": [[1, 200]], - "171050": [[47, 658]], - "171091": [[1, 138]], - "171098": [[1, 10]], - "171102": [[1, 21]], - "171106": [[1, 292]], - "171116": [[1, 2]], - "171117": [[1, 54], [56, 84]], - "171156": [[42, 693]], - "171178": [[1, 1044]], - "171219": [[48, 162]], - "171274": [[88, 148]], - "171282": [[1, 171]], - "171315": [[53, 226]], - "171369": [[42, 162]], - "171446": [[58, 865]], - "171484": [[61, 432]], - "171578": [[47, 974]], - "171812": [[59, 438]], - "171875": [[54, 60]], - "171876": [[1, 541]], - "171879": [[1, 103]], - "171880": [[1, 207]], - "171890": [[1, 43]], - "171895": [[1, 36], [38, 67]], - "171897": [[1, 25], [27, 51], [53, 77], [79, 103], [105, 180], [182, 543]], - "171921": [[51, 152]], - "171926": [[1, 264]], - "172014": [[1, 244]], - "172024": [[1, 79]], - "172033": [[1, 749]], - "172163": [[36, 784]], - "172208": [[61, 200]], - "172252": [[32, 63]], - "172254": [[1, 43]], - "172255": [[1, 40]], - "172268": [[56, 169]], - "172286": [[52, 217]], - "172389": [[34, 460]], - "172399": [[57, 231]], - "172400": [[1, 706]], - "172401": [[1, 148]], - "172411": [[85, 382]], - "172478": [[1, 154]]} diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-173692 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-173692 deleted file mode 100644 index 076c8d399d87e..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-173692 +++ /dev/null @@ -1 +0,0 @@ -{"160404": [[15, 24]], "160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160497": [[38, 148], [152, 398]], "160498": [[1, 70]], "160499": [[1, 16]], "160577": [[14, 337]], "160578": [[1, 456]], "160579": [[1, 181]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161156": [[1, 90]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]], "162718": [[1, 202]], "162733": [[1, 47]], "162739": [[1, 35], [37, 42]], "162742": [[1, 85], [97, 127]], "162760": [[1, 56]], "162762": [[1, 111]], "162765": [[1, 66]], "162803": [[60, 148]], "162808": [[1, 63]], "162810": [[1, 40]], "162811": [[1, 347]], "162822": [[73, 314]], "162825": [[1, 202]], "162826": [[1, 43]], "162827": [[1, 144]], "162828": [[1, 85]], "162909": [[54, 299]], "162917": [[122, 134]], "162924": [[69, 151]], "162925": [[1, 319]], "162926": [[1, 714]], "162929": [[1, 299], [358, 433]], "163045": [[51, 56]], "163046": [[1, 247], [311, 313]], "163069": [[73, 648]], "163071": [[1, 194]], "163072": [[1, 44]], "163078": [[1, 23]], "163232": [[110, 174]], "163233": [[1, 302]], "163234": [[1, 73]], "163235": [[1, 474]], "163237": [[1, 220]], "163238": [[1, 15]], "163252": [[60, 157]], "163255": [[1, 1067]], "163261": [[1, 126]], "163269": [[59, 222]], "163270": [[1, 928]], "163286": [[112, 411]], "163289": [[1, 388]], "163296": [[59, 603]], "163297": [[1, 227]], "163300": [[1, 623]], "163301": [[1, 198]], "163302": [[1, 253]], "163308": [[1, 27]], "163332": [[43, 812]], "163333": [[1, 113]], "163334": [[1, 563]], "163337": [[1, 476]], "163338": [[1, 171]], "163339": [[1, 188]], "163340": [[1, 488], [554, 563]], "163358": [[39, 63]], "163369": [[1, 105]], "163370": [[1, 176]], "163371": [[1, 375]], "163372": [[1, 111]], "163374": [[1, 873]], "163375": [[1, 16]], "163376": [[1, 253]], "163378": [[1, 615]], "163385": [[52, 436]], "163387": [[1, 256], [278, 287]], "163402": [[37, 801]], "163475": [[30, 306]], "163476": [[1, 235]], "163478": [[1, 83]], "163479": [[1, 187]], "163480": [[1, 199]], "163481": [[1, 90]], "163482": [[1, 58]], "163483": [[1, 57]], "163581": [[40, 45]], "163582": [[1, 66]], "163583": [[1, 233]], "163584": [[1, 85]], "163585": [[1, 42]], "163586": [[1, 103]], "163587": [[1, 85]], "163588": [[1, 455]], "163589": [[1, 167]], "163591": [[1, 96]], "163592": [[1, 116]], "163593": [[1, 25]], "163596": [[1, 29]], "163630": [[76, 185]], "163655": [[15, 47]], "163657": [[1, 153]], "163658": [[1, 18]], "163659": [[1, 718]], "163660": [[1, 85]], "163661": [[1, 27]], "163662": [[1, 176]], "163663": [[1, 251]], "163664": [[1, 189]], "163665": [[1, 176]], "163668": [[1, 213], [255, 308]], "163738": [[34, 311]], "163753": [[1, 137]], "163754": [[1, 79]], "163757": [[1, 47]], "163758": [[1, 600]], "163759": [[1, 526]], "163760": [[1, 363]], "163761": [[1, 229]], "163763": [[1, 93]], "163765": [[1, 321]], "163795": [[10, 54]], "163796": [[1, 182]], "163817": [[50, 980]], "163869": [[79, 137]], "165088": [[107, 266]], "165098": [[124, 440]], "165099": [[1, 126]], "165100": [[1, 410]], "165102": [[1, 185]], "165103": [[1, 440]], "165104": [[1, 137]], "165120": [[67, 109]], "165121": [[1, 466]], "165205": [[80, 260]], "165208": [[1, 101]], "165364": [[45, 1301], [1331, 1352]], "165400": [[1, 88]], "165402": [[1, 28]], "165415": [[58, 1383]], "165467": [[39, 736]], "165472": [[1, 882]], "165486": [[37, 118]], "165487": [[1, 154]], "165506": [[54, 171]], "165514": [[72, 570]], "165523": [[60, 92]], "165525": [[1, 68]], "165529": [[1, 10]], "165537": [[1, 304]], "165542": [[1, 189]], "165548": [[1, 630]], "165558": [[1, 62]], "165567": [[54, 642]], "165570": [[1, 952]], "165617": [[26, 291]], "165619": [[1, 23]], "165620": [[1, 63]], "165633": [[56, 505]], "165970": [[67, 335]], "165993": [[71, 1697]], "166010": [[50, 180]], "166011": [[1, 83]], "166033": [[35, 1244]], "166034": [[1, 363]], "166049": [[53, 918]], "166051": [[1, 365]], "166052": [[1, 119]], "166149": [[1, 24]], "166150": [[1, 116]], "166161": [[37, 128]], "166163": [[1, 35]], "166164": [[1, 40]], "166346": [[48, 215]], "166374": [[46, 193]], "166377": [[1, 57]], "166379": [[1, 118]], "166380": [[1, 1809]], "166394": [[42, 47]], "166408": [[67, 1236]], "166429": [[33, 89]], "166438": [[32, 867]], "166462": [[78, 526]], "166486": [[54, 174]], "166502": [[43, 109]], "166512": [[42, 1876]], "166514": [[1, 465]], "166530": [[43, 63]], "166554": [[46, 738]], "166563": [[1, 276], [492, 748]], "166565": [[1, 898]], "166699": [[55, 915]], "166701": [[1, 792]], "166763": [[46, 650]], "166781": [[41, 111], [115, 115], [117, 387]], "166782": [[1, 572]], "166784": [[1, 365]], "166787": [[1, 364]], "166839": [[43, 303]], "166841": [[1, 1017]], "166842": [[1, 170]], "166859": [[62, 425]], "166860": [[1, 25]], "166861": [[1, 44]], "166862": [[1, 5]], "166863": [[1, 3]], "166864": [[1, 537]], "166888": [[56, 476]], "166889": [[1, 231]], "166890": [[1, 446]], "166893": [[1, 3]], "166894": [[1, 203]], "166895": [[1, 603]], "166911": [[58, 104]], "166921": [[39, 68]], "166922": [[1, 776]], "166923": [[1, 470]], "166946": [[41, 208]], "166950": [[1, 1439]], "166960": [[1, 184]], "166966": [[1, 240]], "166967": [[1, 220]], "167039": [[20, 238]], "167041": [[1, 667]], "167043": [[1, 235]], "167078": [[40, 175]], "167098": [[62, 463]], "167102": [[1, 430]], "167103": [[1, 95]], "167151": [[1, 51]], "167281": [[18, 595]], "167282": [[1, 451]], "167284": [[1, 1645]], "167551": [[56, 472]], "167673": [[210, 448]], "167674": [[1, 348]], "167675": [[1, 1064]], "167676": [[1, 451]], "167740": [[79, 174]], "167746": [[56, 384]], "167754": [[62, 103]], "167784": [[51, 132]], "167786": [[1, 177]], "167807": [[60, 160], [178, 1870]], "167830": [[1, 1242]], "167898": [[108, 1764]], "167913": [[1, 432]], "169985": [[88, 100]], "169991": [[1, 24]], "170000": [[1, 26], [28, 272]], "170040": [[90, 280], [282, 419]], "170044": [[1, 94]], "170249": [[37, 510]], "170255": [[1, 387]], "170286": [[77, 262]], "170292": [[1, 260]], "170298": [[1, 186]], "170303": [[1, 22]], "170304": [[1, 115]], "170307": [[1, 14]], "170348": [[58, 256]], "170354": [[1, 308]], "170376": [[52, 67]], "170378": [[1, 5]], "170380": [[1, 16]], "170382": [[1, 306]], "170397": [[1, 347]], "170406": [[1, 171]], "170452": [[72, 110]], "170527": [[44, 93]], "170722": [[110, 287]], "170759": [[49, 377]], "170826": [[50, 312]], "170842": [[1, 339]], "170854": [[1, 580]], "170876": [[1, 522]], "170896": [[1, 214]], "170899": [[1, 86]], "170901": [[1, 200]], "171050": [[47, 658]], "171091": [[1, 138]], "171098": [[1, 10]], "171102": [[1, 21]], "171106": [[1, 292]], "171116": [[1, 2]], "171117": [[1, 54], [56, 84]], "171156": [[42, 693]], "171178": [[1, 1044]], "171219": [[48, 162]], "171274": [[88, 148]], "171282": [[1, 171]], "171315": [[53, 226]], "171369": [[42, 162]], "171446": [[58, 865]], "171484": [[61, 432]], "171578": [[47, 974]], "171812": [[59, 438]], "171875": [[54, 60]], "171876": [[1, 541]], "171879": [[1, 103]], "171880": [[1, 207]], "171890": [[1, 43]], "171895": [[1, 36], [38, 67]], "171897": [[1, 25], [27, 51], [53, 77], [79, 103], [105, 180], [182, 543]], "171921": [[51, 152]], "171926": [[1, 264]], "172014": [[1, 244]], "172024": [[1, 79]], "172033": [[1, 749]], "172163": [[36, 784]], "172208": [[61, 200]], "172252": [[32, 63]], "172254": [[1, 43]], "172255": [[1, 40]], "172268": [[56, 169]], "172286": [[52, 217]], "172389": [[34, 460]], "172399": [[57, 231]], "172400": [[1, 706]], "172401": [[1, 148]], "172411": [[85, 382]], "172478": [[1, 154]], "172485": [[41, 544]], "172488": [[1, 38], [40, 54], [56, 67], [69, 79], [81, 104], [106, 146], [149, 150], [152, 157]], "172495": [[1, 157]], "172497": [[1, 25]], "172507": [[1, 43], [45, 68]], "172619": [[1, 82]], "172620": [[1, 495]], "172630": [[36, 167]], "172635": [[1, 268]], "172778": [[48, 97]], "172791": [[65, 1664]], "172798": [[1, 35]], "172799": [[1, 372]], "172801": [[1, 1144]], "172802": [[1, 784]], "172819": [[57, 259]], "172822": [[1, 2338]], "172824": [[1, 54]], "172847": [[62, 131]], "172865": [[36, 386]], "172868": [[1, 1970]], "172949": [[55, 1298]], "172951": [[1, 56]], "172952": [[1, 1562]], "172992": [[52, 79], [81, 327], [329, 363], [365, 954]], "172998": [[1, 84]], "172999": [[1, 294]], "173198": [[49, 823]], "173236": [[128, 238]], "173240": [[1, 129]], "173241": [[1, 764]], "173243": [[1, 95]], "173244": [[1, 97]], "173380": [[75, 218]], "173381": [[1, 294]], "173389": [[18, 653]], "173406": [[37, 286]], "173430": [[72, 174]], "173431": [[1, 17]], "173438": [[32, 67]], "173439": [[1, 756]], "173657": [[59, 95]], "173658": [[1, 112]], "173659": [[1, 321]], "173660": [[1, 369]], "173661": [[1, 134]], "173662": [[1, 18]], "173663": [[1, 123]], "173664": [[1, 16]], "173692": [[50, 2758]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-173692_2fbinv b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-173692_2fbinv deleted file mode 100644 index c4a14789715d6..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160404-173692_2fbinv +++ /dev/null @@ -1,125 +0,0 @@ -{"169985": [[88, 100]], - "169991": [[1, 24]], - "170000": [[1, 26], [28, 272]], - "170040": [[90, 280], [282, 419]], - "170044": [[1, 94]], - "170249": [[37, 510]], - "170255": [[1, 387]], - "170286": [[77, 262]], - "170292": [[1, 260]], - "170298": [[1, 186]], - "170303": [[1, 22]], - "170304": [[1, 115]], - "170307": [[1, 14]], - "170348": [[58, 256]], - "170354": [[1, 308]], - "170376": [[52, 67]], - "170378": [[1, 5]], - "170380": [[1, 16]], - "170382": [[1, 306]], - "170397": [[1, 347]], - "170406": [[1, 171]], - "170452": [[72, 110]], - "170527": [[44, 93]], - "170722": [[110, 287]], - "170759": [[49, 377]], - "170826": [[50, 312]], - "170842": [[1, 339]], - "170854": [[1, 580]], - "170876": [[1, 522]], - "170896": [[1, 214]], - "170899": [[1, 86]], - "170901": [[1, 200]], - "171050": [[47, 658]], - "171091": [[1, 138]], - "171098": [[1, 10]], - "171102": [[1, 21]], - "171106": [[1, 292]], - "171116": [[1, 2]], - "171117": [[1, 54], [56, 84]], - "171156": [[42, 693]], - "171178": [[1, 1044]], - "171219": [[48, 162]], - "171274": [[88, 148]], - "171282": [[1, 171]], - "171315": [[53, 226]], - "171369": [[42, 162]], - "171446": [[58, 865]], - "171484": [[61, 432]], - "171578": [[47, 974]], - "171812": [[59, 438]], - "171875": [[54, 60]], - "171876": [[1, 541]], - "171879": [[1, 103]], - "171880": [[1, 207]], - "171890": [[1, 43]], - "171895": [[1, 36], [38, 67]], - "171897": [[1, 25], [27, 51], [53, 77], [79, 103], [105, 180], [182, 543]], - "171921": [[51, 152]], - "171926": [[1, 264]], - "172014": [[1, 244]], - "172024": [[1, 79]], - "172033": [[1, 749]], - "172163": [[36, 784]], - "172208": [[61, 200]], - "172252": [[32, 63]], - "172254": [[1, 43]], - "172255": [[1, 40]], - "172268": [[56, 169]], - "172286": [[52, 217]], - "172389": [[34, 460]], - "172399": [[57, 231]], - "172400": [[1, 706]], - "172401": [[1, 148]], - "172411": [[85, 382]], - "172478": [[1, 154]], - "172485": [[41, 544]], - "172488": [[1, 38], [40, 54], [56, 67], [69, 79], [81, 104], [106, 146], [149, 150], [152, 157]], - "172495": [[1, 157]], - "172497": [[1, 25]], - "172507": [[1, 43], [45, 68]], - "172619": [[1, 82]], - "172620": [[1, 495]], - "172630": [[36, 167]], - "172635": [[1, 268]], - "172778": [[48, 97]], - "172791": [[65, 1664]], - "172798": [[1, 35]], - "172799": [[1, 372]], - "172801": [[1, 1144]], - "172802": [[1, 784]], - "172819": [[57, 259]], - "172822": [[1, 2338]], - "172824": [[1, 54]], - "172847": [[62, 131]], - "172865": [[36, 386]], - "172868": [[1, 1970]], - "172949": [[55, 1298]], - "172951": [[1, 56]], - "172952": [[1, 1562]], - "172992": [[52, 79], [81, 327], [329, 363], [365, 954]], - "172998": [[1, 84]], - "172999": [[1, 294]], - "173198": [[49, 823]], - "173236": [[128, 238]], - "173240": [[1, 129]], - "173241": [[1, 764]], - "173243": [[1, 95]], - "173244": [[1, 97]], - "173380": [[75, 218]], - "173381": [[1, 294]], - "173389": [[18, 653]], - "173406": [[37, 286]], - "173430": [[72, 174]], - "173431": [[1, 17]], - "173438": [[32, 67]], - "173439": [[1, 756]], - "173657": [[59, 95]], - "173658": [[1, 112]], - "173659": [[1, 321]], - "173660": [[1, 369]], - "173661": [[1, 134]], - "173662": [[1, 18]], - "173663": [[1, 123]], - "173664": [[1, 16]], - "173692": [[50, 2758]]} diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160405-161312 b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160405-161312 deleted file mode 100644 index 8388ce94e9e08..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_DCSONLY.txt_160405-161312 +++ /dev/null @@ -1 +0,0 @@ -{"160405": [[1, 35]], "160406": [[1, 124]], "160410": [[1, 102]], "160413": [[1, 788]], "160431": [[19, 244]], "160432": [[2, 79]], "160433": [[1, 21]], "160442": [[108, 153]], "160443": [[1, 21]], "160444": [[1, 74]], "160445": [[1, 37]], "160446": [[1, 55]], "160447": [[1, 65]], "160449": [[1, 44]], "160450": [[1, 47]], "160454": [[1, 41]], "160455": [[1, 33]], "160456": [[1, 106]], "160462": [[1, 30]], "160463": [[1, 46]], "160808": [[7, 80]], "160815": [[1, 95]], "160819": [[1, 17], [19, 118]], "160827": [[1, 55]], "160835": [[1, 85], [87, 496], [569, 584]], "160853": [[62, 65]], "160871": [[68, 236]], "160872": [[1, 77]], "160873": [[1, 201]], "160874": [[1, 132]], "160875": [[1, 285]], "160876": [[1, 17]], "160877": [[1, 12], [79, 83]], "160888": [[45, 423]], "160890": [[1, 395]], "160894": [[1, 220]], "160898": [[25, 53]], "160907": [[15, 220]], "160911": [[1, 301]], "160913": [[1, 26]], "160914": [[1, 75]], "160915": [[1, 382]], "160916": [[1, 90]], "160935": [[33, 259]], "160936": [[1, 60]], "160937": [[1, 209]], "160938": [[1, 130]], "160939": [[1, 148]], "160940": [[1, 90]], "160942": [[1, 26]], "160943": [[1, 54]], "160954": [[78, 84]], "160955": [[1, 228]], "160956": [[1, 73]], "160957": [[1, 953]], "160994": [[44, 45]], "160998": [[1, 288]], "161008": [[1, 285]], "161016": [[1, 327]], "161020": [[1, 22]], "161103": [[1, 111]], "161106": [[1, 40]], "161107": [[1, 40]], "161113": [[1, 45]], "161116": [[1, 20]], "161117": [[1, 43]], "161119": [[1, 350]], "161165": [[1, 100]], "161176": [[1, 31]], "161216": [[29, 53]], "161217": [[1, 788]], "161222": [[1, 136]], "161223": [[1, 409]], "161224": [[1, 2]], "161233": [[33, 63]], "161310": [[39, 127]], "161311": [[1, 704]], "161312": [[1, 1027]]} \ No newline at end of file diff --git a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_dummy_wjets.txt b/TopQuarkAnalysis/TopPairBSM/test/datasets/json_dummy_wjets.txt deleted file mode 100644 index 391728d5ee6fd..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/datasets/json_dummy_wjets.txt +++ /dev/null @@ -1,2 +0,0 @@ -{"1": [[1, 10000]] -} diff --git a/TopQuarkAnalysis/TopPairBSM/test/prunedGenParticle_unittest.py b/TopQuarkAnalysis/TopPairBSM/test/prunedGenParticle_unittest.py deleted file mode 100644 index 438d66bf23c00..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/prunedGenParticle_unittest.py +++ /dev/null @@ -1,48 +0,0 @@ -#! /usr/bin/env python - -from __future__ import print_function -import ROOT -import sys -from DataFormats.FWLite import Events, Handle - -files = ["ttbsm_42x_mc.root"] -events = Events (files) -handle1 = Handle ("std::vector") - -# for now, label is just a tuple of strings that is initialized just -# like and edm::InputTag -label1 = ("prunedGenParticles") - -f = ROOT.TFile("prunedGenParticle_unittest_fwlite.root", "RECREATE") -f.cd() - - -# loop over events -i = 0 -for event in events: - i = i + 1 - print('--------- Processing Event ' + str(i)) - # use getByLabel, just like in cmsRun - event.getByLabel (label1, handle1) - # get the product - gens = handle1.product() - - - for igen in range(0,len(gens)) : - gen = gens[igen] - if gen.numberOfDaughters() > 1 : - print('{0:6.0f} : pdgid = {1:6.0f}, status = {2:6.0f}, da0 id = {3:6.0f}, da1 = {4:6.0f}, '.format( - igen, gen.pdgId(), gen.status(), gen.daughter(0).pdgId(), gen.daughter(1).pdgId() - )) - elif gen.numberOfDaughters() > 0 : - print('{0:6.0f} : pdgid = {1:6.0f}, status = {2:6.0f}, da0 id = {3:6.0f}, da1 = {4:6.0f}, '.format( - igen, gen.pdgId(), gen.status(), gen.daughter(0).pdgId(), -9999 - )) - else : - print('{0:6.0f} : pdgid = {1:6.0f}, status = {2:6.0f}, da0 id = {3:6.0f}, da1 = {4:6.0f}, '.format( - igen, gen.pdgId(), gen.status(), -9999, -9999 - )) - -f.cd() - -f.Close() diff --git a/TopQuarkAnalysis/TopPairBSM/test/ttbsm_cfg.py b/TopQuarkAnalysis/TopPairBSM/test/ttbsm_cfg.py deleted file mode 100644 index 11b7f9fbac02a..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/ttbsm_cfg.py +++ /dev/null @@ -1,1961 +0,0 @@ -from __future__ import print_function -# Starting with a skeleton process which gets imported with the following line -from PhysicsTools.PatAlgos.patTemplate_cfg import * - -from PhysicsTools.PatAlgos.tools.coreTools import * - -############################### -####### Parameters ############ -############################### -from FWCore.ParameterSet.VarParsing import VarParsing -options = VarParsing ('python') - - -options.register ('tlbsmTag', - 'tlbsm_53x_v3', - VarParsing.multiplicity.singleton, - VarParsing.varType.string, - 'TLBSM tag use in production') - -options.register ('useData', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - 'Run this on real data') - -options.register ('globalTag', - '', - VarParsing.multiplicity.singleton, - VarParsing.varType.string, - 'Overwrite default globalTag') - -options.register ('hltProcess', - 'HLT', - VarParsing.multiplicity.singleton, - VarParsing.varType.string, - "HLT process name to use.") - -options.register ('writePFCands', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Output PF candidates") - - -options.register ('writeFat', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Output tracks and PF candidates (and GenParticles for MC)") - -options.register ('writeSimpleInputs', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Write four-vector and ID of PF candidates") - -options.register ('writeGenParticles', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Output GenParticles collection") - -options.register ('forceCheckClosestZVertex', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Force the check of the closest z vertex") - - -options.register ('useSusyFilter', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Use the SUSY event filter") - - -options.register ('useExtraJetColls', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Write extra jet collections for substructure studies") - - -options.register ('usePythia8', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Use status codes from Pythia8 rather than Pythia6") - - -options.register ('usePythia6andPythia8', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Use status codes from Pythia8 and Pythia6") - - -options.register ('runOnFastSim', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Option needed to run on fastsim.") - - -options.register('doJetTauCrossCleaning', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - "Enable cleaning the jet collections based on taus") - - -options.register ('useExplicitJTA', - False, - VarParsing.multiplicity.singleton, - VarParsing.varType.int, - 'Run the explicit Jet-track association') - -options.parseArguments() - - -if not options.useData : - inputJetCorrLabelAK5PFchs = ('AK5PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute']) - inputJetCorrLabelAK7PFchs = ('AK7PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute']) - - process.source.fileNames = [ - '/store/mc/Summer12_DR53X/TTJets_MassiveBinDECAY_TuneZ2star_8TeV-madgraph-tauola/AODSIM/PU_S10_START53_V7A-v1/0000/0076C8E3-9AE1-E111-917C-003048D439AA.root' - ] - -else : - inputJetCorrLabelAK5PFchs = ('AK5PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute', 'L2L3Residual']) - inputJetCorrLabelAK7PFchs = ('AK7PFchs', ['L1FastJet', 'L2Relative', 'L3Absolute', 'L2L3Residual']) - process.source.fileNames = [ - '/store/data/Run2012A/Jet/AOD/22Jan2013-v1/30002/909488FF-8D72-E211-893B-0026189438EF.root' - ] - -#process.source.eventsToProcess = cms.untracked.VEventRange( ['1:86747'] ) - -#process.source.skipEvents = cms.untracked.uint32(17268) - -print(options) - -print('Running AK5 jet corrections: ') -print(inputJetCorrLabelAK5PFchs) - -print('Running AK7 jet corrections: ') -print(inputJetCorrLabelAK7PFchs) - -import sys - - -############################### -####### Global Setup ########## -############################### - -if options.useData : - if options.globalTag is '': - process.GlobalTag.globaltag = cms.string( 'GR_P_V42_AN4::All' ) - else: - process.GlobalTag.globaltag = cms.string( options.globalTag ) -else : - if options.globalTag is '': - process.GlobalTag.globaltag = cms.string( 'START53_V7G::All' ) - else: - process.GlobalTag.globaltag = cms.string( options.globalTag ) - - -from PhysicsTools.PatAlgos.patTemplate_cfg import * - - -## The beam scraping filter __________________________________________________|| -process.noscraping = cms.EDFilter( - "FilterOutScraping", - applyfilter = cms.untracked.bool(True), - debugOn = cms.untracked.bool(False), - numtrack = cms.untracked.uint32(10), - thresh = cms.untracked.double(0.25) - ) - -## The iso-based HBHE noise filter ___________________________________________|| -process.load('CommonTools.RecoAlgos.HBHENoiseFilter_cfi') - -## The CSC beam halo tight filter ____________________________________________|| -process.load('RecoMET.METAnalyzers.CSCHaloFilter_cfi') - -## The HCAL laser filter _____________________________________________________|| -process.load("RecoMET.METFilters.hcalLaserEventFilter_cfi") -process.hcalLaserEventFilter.vetoByRunEventNumber=cms.untracked.bool(False) -process.hcalLaserEventFilter.vetoByHBHEOccupancy=cms.untracked.bool(True) - -## The ECAL dead cell trigger primitive filter _______________________________|| -process.load('RecoMET.METFilters.EcalDeadCellTriggerPrimitiveFilter_cfi') -## For AOD and RECO recommendation to use recovered rechits -process.EcalDeadCellTriggerPrimitiveFilter.tpDigiCollection = cms.InputTag("ecalTPSkimNA") - -## The EE bad SuperCrystal filter ____________________________________________|| -process.load('RecoMET.METFilters.eeBadScFilter_cfi') - -## The Good vertices collection needed by the tracking failure filter ________|| -process.goodVertices = cms.EDFilter( - "VertexSelector", - filter = cms.bool(False), - src = cms.InputTag("offlinePrimaryVertices"), - cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.rho < 2") -) - -## The tracking failure filter _______________________________________________|| -process.load('RecoMET.METFilters.trackingFailureFilter_cfi') -process.load('RecoMET.METFilters.trackingPOGFilters_cfi') - -# Tracking coherent noise filter -process.manystripclus53X = cms.EDFilter('ByClusterSummaryMultiplicityPairEventFilter', - multiplicityConfig = cms.PSet( - firstMultiplicityConfig = cms.PSet( - clusterSummaryCollection = cms.InputTag("clusterSummaryProducer"), - subDetEnum = cms.int32(5), - subDetVariable = cms.string("pHits") - ), - secondMultiplicityConfig = cms.PSet( - clusterSummaryCollection = cms.InputTag("clusterSummaryProducer"), - subDetEnum = cms.int32(0), - subDetVariable = cms.string("cHits") - ), - ), - cut = cms.string("( mult2 > 20000+7*mult1)") -) - -process.toomanystripclus53X = cms.EDFilter('ByClusterSummaryMultiplicityPairEventFilter', - multiplicityConfig = cms.PSet( - firstMultiplicityConfig = cms.PSet( - clusterSummaryCollection = cms.InputTag("clusterSummaryProducer"), - subDetEnum = cms.int32(5), - subDetVariable = cms.string("pHits") - ), - secondMultiplicityConfig = cms.PSet( - clusterSummaryCollection = cms.InputTag("clusterSummaryProducer"), - subDetEnum = cms.int32(0), - subDetVariable = cms.string("cHits") - ), - ), - cut = cms.string("(mult2>50000) && ( mult2 > 20000+7*mult1)") - ) - -# Tracking TOBTEC fakes filter ## -process.load('RecoMET.METFilters.tobtecfakesfilter_cfi') -# if true, only events passing filter (bad events) will pass -process.tobtecfakesfilter.filter=cms.bool(False) - -## Add the latest Tau discriminators _________________________________________|| -process.load("RecoTauTag.Configuration.RecoPFTauTag_cff") - -# switch on PAT trigger -#from PhysicsTools.PatAlgos.tools.trigTools import switchOnTrigger -#switchOnTrigger( process, hltProcess=options.hltProcess ) - - -############################### -####### DAF PV's ########## -############################### - -pvSrc = 'offlinePrimaryVertices' - -## The good primary vertex filter ____________________________________________|| -process.primaryVertexFilter = cms.EDFilter( - "VertexSelector", - src = cms.InputTag("offlinePrimaryVertices"), - cut = cms.string("!isFake & ndof > 4 & abs(z) <= 24 & position.Rho <= 2"), - filter = cms.bool(True) - ) - - -from PhysicsTools.SelectorUtils.pvSelector_cfi import pvSelector - -process.goodOfflinePrimaryVertices = cms.EDFilter( - "PrimaryVertexObjectFilter", - filterParams = pvSelector.clone( maxZ = cms.double(24.0), - minNdof = cms.double(4.0) # this is >= 4 - ), - src=cms.InputTag(pvSrc) - ) - - -############################### -########## Gen Setup ########## -############################### - -process.load("RecoJets.Configuration.GenJetParticles_cff") -from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets -from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets -process.ca8GenJetsNoNu = ca4GenJets.clone( rParam = cms.double(0.8), - src = cms.InputTag("genParticlesForJetsNoNu")) - -process.ak8GenJetsNoNu = ak5GenJets.clone( rParam = cms.double(0.8), - src = cms.InputTag("genParticlesForJetsNoNu")) - - -process.load("TopQuarkAnalysis.TopEventProducers.sequences.ttGenEvent_cff") - -# add the flavor history -process.load("PhysicsTools.HepMCCandAlgos.flavorHistoryPaths_cfi") - - -# prune gen particles -process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") -process.prunedGenParticles = cms.EDProducer("GenParticlePruner", - src = cms.InputTag("genParticles"), - select = cms.vstring( - "drop *" - ,"keep status = 3" #keeps particles from the hard matrix element - ,"keep (abs(pdgId) >= 11 & abs(pdgId) <= 16) & status = 1" #keeps e/mu and nus with status 1 - ,"keep (abs(pdgId) = 15) & status = 3" #keeps taus - ) - ) - -if options.usePythia8 : - process.prunedGenParticles.select = cms.vstring( - "drop *" - ,"keep status = 21" #keeps particles from the hard matrix element - ,"keep status = 22" #keeps particles from the hard matrix element - ,"keep status = 23" #keeps particles from the hard matrix element - ,"keep (abs(pdgId) >= 11 & abs(pdgId) <= 16) & status = 1" #keeps e/mu and nus with status 1 - ,"keep (abs(pdgId) = 15) & (status = 21 || status = 22 || status = 23) " #keeps taus - ) -if options.usePythia6andPythia8 : - process.prunedGenParticles.select = cms.vstring( - "drop *" - ,"keep status = 3" #keeps particles from the hard matrix element - ,"keep status = 21" #keeps particles from the hard matrix element - ,"keep status = 22" #keeps particles from the hard matrix element - ,"keep status = 23" #keeps particles from the hard matrix element - ,"keep (abs(pdgId) >= 11 & abs(pdgId) <= 16) & status = 1" #keeps e/mu and nus with status 1 - ,"keep (abs(pdgId) = 15) & (status = 3 || status = 21 || status = 22 || status = 23)" #keeps taus - ) - - -## process.prunedGenParticles = cms.EDProducer("GenParticlePruner", -## src = cms.InputTag("genParticles"), -## select = cms.vstring( -## "drop *" -## ,"keep++ (abs(pdgId) =6) " -## ) -## ) - -############################### -#### Jet RECO includes ######## -############################### - -from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters -from RecoJets.JetProducers.PFJetParameters_cfi import * -from RecoJets.JetProducers.CaloJetParameters_cfi import * -from RecoJets.JetProducers.AnomalousCellParameters_cfi import * -from RecoJets.JetProducers.CATopJetParameters_cfi import * -from RecoJets.JetProducers.GenJetParameters_cfi import * - - -############################### -########## PF Setup ########### -############################### - -# Default PF2PAT with AK5 jets. Make sure to turn ON the L1fastjet stuff. -from PhysicsTools.PatAlgos.tools.pfTools import * -postfix = "PFlow" -usePF2PAT(process,runPF2PAT=True, jetAlgo='AK5', runOnMC=not options.useData, postfix=postfix, - jetCorrections=inputJetCorrLabelAK5PFchs, pvCollection=cms.InputTag('goodOfflinePrimaryVertices'), typeIMetCorrections=True) -if not options.forceCheckClosestZVertex : - process.pfPileUpPFlow.checkClosestZVertex = False - -# change the cone size of electron isolation to 0.3 as default. -process.pfIsolatedElectronsPFlow.isolationValueMapsCharged = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFIdPFlow")) -process.pfIsolatedElectronsPFlow.deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFIdPFlow") -process.pfIsolatedElectronsPFlow.isolationValueMapsNeutral = cms.VInputTag(cms.InputTag("elPFIsoValueNeutral03PFIdPFlow"), cms.InputTag("elPFIsoValueGamma03PFIdPFlow")) - -process.pfElectronsPFlow.isolationValueMapsCharged = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFIdPFlow")) -process.pfElectronsPFlow.deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFIdPFlow" ) -process.pfElectronsPFlow.isolationValueMapsNeutral = cms.VInputTag(cms.InputTag( "elPFIsoValueNeutral03PFIdPFlow"), cms.InputTag("elPFIsoValueGamma03PFIdPFlow")) - -process.patElectronsPFlow.isolationValues = cms.PSet( - pfChargedHadrons = cms.InputTag("elPFIsoValueCharged03PFIdPFlow"), - pfChargedAll = cms.InputTag("elPFIsoValueChargedAll03PFIdPFlow"), - pfPUChargedHadrons = cms.InputTag("elPFIsoValuePU03PFIdPFlow"), - pfNeutralHadrons = cms.InputTag("elPFIsoValueNeutral03PFIdPFlow"), - pfPhotons = cms.InputTag("elPFIsoValueGamma03PFIdPFlow") - ) - -postfixLoose = "PFlowLoose" -usePF2PAT(process,runPF2PAT=True, jetAlgo='AK5', runOnMC=not options.useData, postfix=postfixLoose, - jetCorrections=inputJetCorrLabelAK5PFchs, pvCollection=cms.InputTag('goodOfflinePrimaryVertices'), typeIMetCorrections=True) -if not options.forceCheckClosestZVertex : - process.pfPileUpPFlowLoose.checkClosestZVertex = False - - -# change the cone size of electron isolation to 0.3 as default. -process.pfIsolatedElectronsPFlowLoose.isolationValueMapsCharged = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFIdPFlowLoose")) -process.pfIsolatedElectronsPFlowLoose.deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFIdPFlowLoose") -process.pfIsolatedElectronsPFlowLoose.isolationValueMapsNeutral = cms.VInputTag(cms.InputTag("elPFIsoValueNeutral03PFIdPFlowLoose"), cms.InputTag("elPFIsoValueGamma03PFIdPFlowLoose")) - -process.pfElectronsPFlowLoose.isolationValueMapsCharged = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFIdPFlowLoose")) -process.pfElectronsPFlowLoose.deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFIdPFlowLoose" ) -process.pfElectronsPFlowLoose.isolationValueMapsNeutral = cms.VInputTag(cms.InputTag( "elPFIsoValueNeutral03PFIdPFlowLoose"), cms.InputTag("elPFIsoValueGamma03PFIdPFlowLoose")) - -process.patElectronsPFlowLoose.isolationValues = cms.PSet( - pfChargedHadrons = cms.InputTag("elPFIsoValueCharged03PFIdPFlowLoose"), - pfChargedAll = cms.InputTag("elPFIsoValueChargedAll03PFIdPFlowLoose"), - pfPUChargedHadrons = cms.InputTag("elPFIsoValuePU03PFIdPFlowLoose"), - pfNeutralHadrons = cms.InputTag("elPFIsoValueNeutral03PFIdPFlowLoose"), - pfPhotons = cms.InputTag("elPFIsoValueGamma03PFIdPFlowLoose") - ) - -# enable/disable tau cleaning -if not options.doJetTauCrossCleaning: - # if jetCrossCleaning is false, we want to disable - # the cross cleaning (which is on by default) - getattr(process,"pfNoTau"+postfix).enable = False - getattr(process,"pfNoTau"+postfixLoose).enable = False -else: - getattr(process,"pfNoTau"+postfix).enable = False - getattr(process,"pfNoTau"+postfixLoose).enable = False - -# Set up "loose" leptons. - -process.pfIsolatedMuonsPFlowLoose.isolationCut = cms.double(999.0) -process.pfIsolatedElectronsPFlowLoose.isolationCut = cms.double(999.0) -process.patMuonsPFlowLoose.pfMuonSource = "pfMuonsPFlowLoose" -process.patElectronsPFlowLoose.pfElectronSource = "pfElectronsPFlowLoose" - -# Keep additional PF information for taus -# embed in AOD externally stored leading PFChargedHadron candidate -process.patTausPFlow.embedLeadPFChargedHadrCand = cms.bool(True) -# embed in AOD externally stored signal PFChargedHadronCandidates -process.patTausPFlow.embedSignalPFChargedHadrCands = cms.bool(True) -# embed in AOD externally stored signal PFGammaCandidates -process.patTausPFlow.embedSignalPFGammaCands = cms.bool(True) -# embed in AOD externally stored isolation PFChargedHadronCandidates -process.patTausPFlow.embedIsolationPFChargedHadrCands = cms.bool(True) -# embed in AOD externally stored isolation PFGammaCandidates -process.patTausPFlow.embedIsolationPFGammaCands = cms.bool(True) -# embed in AOD externally stored leading PFChargedHadron candidate -process.patTaus.embedLeadPFChargedHadrCand = cms.bool(True) -# embed in AOD externally stored signal PFChargedHadronCandidates -process.patTaus.embedSignalPFChargedHadrCands = cms.bool(True) -# embed in AOD externally stored signal PFGammaCandidates -process.patTaus.embedSignalPFGammaCands = cms.bool(True) -# embed in AOD externally stored isolation PFChargedHadronCandidates -process.patTaus.embedIsolationPFChargedHadrCands = cms.bool(True) -# embed in AOD externally stored isolation PFGammaCandidates -process.patTaus.embedIsolationPFGammaCands = cms.bool(True) - -# turn to false when running on data -if options.useData : - removeMCMatching( process, ['All'] ) - -############################### -###### Electron ID ############ -############################### - -process.load('EGamma.EGammaAnalysisTools.electronIdMVAProducer_cfi') -process.eidMVASequence = cms.Sequence( process.mvaTrigV0 + process.mvaNonTrigV0 ) -#Electron ID -process.patElectronsPFlow.electronIDSources.mvaTrigV0 = cms.InputTag("mvaTrigV0") -process.patElectronsPFlow.electronIDSources.mvaNonTrigV0 = cms.InputTag("mvaNonTrigV0") -process.patPF2PATSequencePFlow.replace( process.patElectronsPFlow, process.eidMVASequence * process.patElectronsPFlow ) - -process.patElectronsPFlowLoose.electronIDSources.mvaTrigV0 = cms.InputTag("mvaTrigV0") -process.patElectronsPFlowLoose.electronIDSources.mvaNonTrigV0 = cms.InputTag("mvaNonTrigV0") -process.patPF2PATSequencePFlowLoose.replace( process.patElectronsPFlowLoose, process.eidMVASequence * process.patElectronsPFlowLoose ) - -#Convesion Rejection -# this should be your last selected electron collection name since currently index is used to match with electron later. We can fix this using reference pointer. -process.patConversionsPFlow = cms.EDProducer("PATConversionProducer", - electronSource = cms.InputTag("selectedPatElectronsPFlow") - ) -process.patPF2PATSequencePFlow += process.patConversionsPFlow -process.patConversionsPFlowLoose = cms.EDProducer("PATConversionProducer", - electronSource = cms.InputTag("selectedPatElectronsPFlowLoose") - ) -process.patPF2PATSequencePFlowLoose += process.patConversionsPFlowLoose - - -############################### -###### Bare KT 0.6 jets ####### -############################### - -from RecoJets.Configuration.RecoPFJets_cff import kt6PFJets -process.kt6PFJetsForIsolation = kt6PFJets.clone( - rParam = 0.6, - doRhoFastjet = True, - Rho_EtaMax = cms.double(2.5), - ) - -############################### -###### Bare CA 0.8 jets ####### -############################### -from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets -process.ca8PFJetsPFlow = ca4PFJets.clone( - rParam = cms.double(0.8), - src = cms.InputTag('pfNoElectron'+postfix), - doAreaFastjet = cms.bool(True), - doRhoFastjet = cms.bool(True), - Rho_EtaMax = cms.double(6.0), - Ghost_EtaMax = cms.double(7.0) - ) - - - -############################### -###### AK 0.7 jets ############ -############################### -process.ak7PFlow = process.pfJetsPFlow.clone( - rParam = cms.double(0.7) - ) - - -############################### -###### AK 0.8 jets ############ -############################### -process.ak8PFlow = process.pfJetsPFlow.clone( - rParam = cms.double(0.8) - ) - - -############################### -###### AK 0.5 jets groomed #### -############################### - -from RecoJets.JetProducers.ak5PFJetsTrimmed_cfi import ak5PFJetsTrimmed -process.ak5TrimmedPFlow = ak5PFJetsTrimmed.clone( - src = process.pfJetsPFlow.src, - doAreaFastjet = cms.bool(True) - ) - -from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered -process.ak5FilteredPFlow = ak5PFJetsFiltered.clone( - src = process.pfJetsPFlow.src, - doAreaFastjet = cms.bool(True) - ) - -from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned -process.ak5PrunedPFlow = ak5PFJetsPruned.clone( - src = process.pfJetsPFlow.src, - doAreaFastjet = cms.bool(True) - ) - - - -############################### -###### AK 0.7 jets groomed #### -############################### - -process.ak7TrimmedPFlow = process.ak5TrimmedPFlow.clone( - src = process.pfJetsPFlow.src, - rParam = cms.double(0.7) - ) - -process.ak7FilteredPFlow = process.ak5FilteredPFlow.clone( - src = process.pfJetsPFlow.src, - rParam = cms.double(0.7) - ) - -process.ak7PrunedPFlow = process.ak5PrunedPFlow.clone( - src = process.pfJetsPFlow.src, - rParam = cms.double(0.7) - ) - - -process.ak7TrimmedGenJetsNoNu = ak5GenJets.clone( - rParam = cms.double(0.7), - src = cms.InputTag("genParticlesForJetsNoNu"), - useTrimming = cms.bool(True), - rFilt = cms.double(0.2), - trimPtFracMin = cms.double(0.03), - ) - -process.ak7FilteredGenJetsNoNu = ak5GenJets.clone( - rParam = cms.double(0.7), - src = cms.InputTag("genParticlesForJetsNoNu"), - useFiltering = cms.bool(True), - nFilt = cms.int32(3), - rFilt = cms.double(0.3), - writeCompound = cms.bool(True), - jetCollInstanceName=cms.string("SubJets") - ) - - - -process.ak7PrunedGenJetsNoNu = ak5GenJets.clone( - SubJetParameters, - rParam = cms.double(0.7), - src = cms.InputTag("genParticlesForJetsNoNu"), - usePruning = cms.bool(True), - writeCompound = cms.bool(True), - jetCollInstanceName=cms.string("SubJets") - ) - - - -############################### -###### AK 0.8 jets groomed #### -############################### - -process.ak8TrimmedPFlow = process.ak5TrimmedPFlow.clone( - src = process.pfJetsPFlow.src, - rParam = cms.double(0.8) - ) - -process.ak8FilteredPFlow = process.ak5FilteredPFlow.clone( - src = process.pfJetsPFlow.src, - rParam = cms.double(0.8) - ) - -process.ak8PrunedPFlow = process.ak5PrunedPFlow.clone( - src = process.pfJetsPFlow.src, - rParam = cms.double(0.8) - ) - -############################### -###### CA8 Pruning Setup ###### -############################### - - -# Pruned PF Jets -process.caPrunedPFlow = process.ak5PrunedPFlow.clone( - jetAlgorithm = cms.string("CambridgeAachen"), - rParam = cms.double(0.8) -) - - -process.caPrunedGen = process.ca8GenJetsNoNu.clone( - SubJetParameters, - usePruning = cms.bool(True), - useExplicitGhosts = cms.bool(True), - writeCompound = cms.bool(True), - jetCollInstanceName=cms.string("SubJets") -) - -############################### -###### CA8 Filtered Setup ##### -############################### - - -# Filtered PF Jets -process.caFilteredPFlow = ak5PFJetsFiltered.clone( - src = cms.InputTag('pfNoElectron'+postfix), - jetAlgorithm = cms.string("CambridgeAachen"), - rParam = cms.double(1.5), - writeCompound = cms.bool(True), - doAreaFastjet = cms.bool(True), - jetPtMin = cms.double(100.0) -) - -from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsMassDropFiltered -process.caMassDropFilteredPFlow = ak5PFJetsMassDropFiltered.clone( - src = cms.InputTag('pfNoElectron'+postfix), - jetAlgorithm = cms.string("CambridgeAachen"), - rParam = cms.double(1.5), - writeCompound = cms.bool(True), - doAreaFastjet = cms.bool(True), - jetPtMin = cms.double(100.0) -) - - -process.caFilteredGenJetsNoNu = process.ca8GenJetsNoNu.clone( - nFilt = cms.int32(2), - rFilt = cms.double(0.3), - useFiltering = cms.bool(True), - useExplicitGhosts = cms.bool(True), - writeCompound = cms.bool(True), - rParam = cms.double(1.5), - jetCollInstanceName=cms.string("SubJets"), - jetPtMin = cms.double(100.0) -) - -process.caMassDropFilteredGenJetsNoNu = process.caFilteredGenJetsNoNu.clone( - src = cms.InputTag('genParticlesForJetsNoNu'), - useMassDropTagger = cms.bool(True), - muCut = cms.double(0.667), - yCut = cms.double(0.08) -) - - - -############################### -#### CATopTag Setup ########### -############################### - -# CATopJet PF Jets -# with adjacency -process.caTopTagPFlow = cms.EDProducer( - "CATopJetProducer", - PFJetParameters.clone( src = cms.InputTag('pfNoElectron'+postfix), - doAreaFastjet = cms.bool(True), - doRhoFastjet = cms.bool(False), - jetPtMin = cms.double(100.0) - ), - AnomalousCellParameters, - CATopJetParameters, - jetAlgorithm = cms.string("CambridgeAachen"), - rParam = cms.double(0.8), - writeCompound = cms.bool(True) - ) - -process.caHEPTopTagPFlow = process.caTopTagPFlow.clone( - rParam = cms.double(1.5), - tagAlgo = cms.int32(2) -) - - -process.CATopTagInfosPFlow = cms.EDProducer("CATopJetTagger", - src = cms.InputTag("caTopTagPFlow"), - TopMass = cms.double(171), - TopMassMin = cms.double(0.), - TopMassMax = cms.double(250.), - WMass = cms.double(80.4), - WMassMin = cms.double(0.0), - WMassMax = cms.double(200.0), - MinMassMin = cms.double(0.0), - MinMassMax = cms.double(200.0), - verbose = cms.bool(False) - ) - -process.CATopTagInfosHEPTopTagPFlow = process.CATopTagInfosPFlow.clone( - src = cms.InputTag("caHEPTopTagPFlow") -) - -process.caTopTagGen = cms.EDProducer( - "CATopJetProducer", - GenJetParameters.clone(src = cms.InputTag("genParticlesForJetsNoNu"), - doAreaFastjet = cms.bool(False), - doRhoFastjet = cms.bool(False)), - AnomalousCellParameters, - CATopJetParameters, - jetAlgorithm = cms.string("CambridgeAachen"), - rParam = cms.double(0.8), - writeCompound = cms.bool(True) - ) - -process.caHEPTopTagGen = process.caTopTagGen.clone( - rParam = cms.double(1.5) -) - -process.CATopTagInfosGen = cms.EDProducer("CATopJetTagger", - src = cms.InputTag("caTopTagGen"), - TopMass = cms.double(171), - TopMassMin = cms.double(0.), - TopMassMax = cms.double(250.), - WMass = cms.double(80.4), - WMassMin = cms.double(0.0), - WMassMax = cms.double(200.0), - MinMassMin = cms.double(0.0), - MinMassMax = cms.double(200.0), - verbose = cms.bool(False) - ) - - - -# CATopJet PF Jets - -for ipostfix in [postfix] : - for module in ( - getattr(process,"ca8PFJets" + ipostfix), - getattr(process,"CATopTagInfos" + ipostfix), - getattr(process,"CATopTagInfosHEPTopTag" + ipostfix), - getattr(process,"caTopTag" + ipostfix), - getattr(process,"caHEPTopTag" + ipostfix), - getattr(process,"caPruned" + ipostfix), - getattr(process,"caFiltered" + ipostfix), - getattr(process,"caMassDropFiltered" + ipostfix) - ) : - getattr(process,"patPF2PATSequence"+ipostfix).replace( getattr(process,"pfNoElectron"+ipostfix), getattr(process,"pfNoElectron"+ipostfix)*module ) - - - if options.useExtraJetColls : - for module in ( - getattr(process,"ak5Trimmed" + ipostfix), - getattr(process,"ak5Filtered" + ipostfix), - getattr(process,"ak5Pruned" + ipostfix), - getattr(process,"ak7Trimmed" + ipostfix), - getattr(process,"ak7Filtered" + ipostfix), - getattr(process,"ak7Pruned" + ipostfix), - getattr(process,"ak7" + ipostfix), - getattr(process,"ak8Trimmed" + ipostfix), - getattr(process,"ak8Filtered" + ipostfix), - getattr(process,"ak8Pruned" + ipostfix), - getattr(process,"ak8" + ipostfix) - ) : - getattr(process,"patPF2PATSequence"+ipostfix).replace( getattr(process,"pfNoElectron"+ipostfix), getattr(process,"pfNoElectron"+ipostfix)*module ) - - - -# Use the good primary vertices everywhere. -for imod in [process.patMuonsPFlow, - process.patMuonsPFlowLoose, - process.patElectronsPFlow, - process.patElectronsPFlowLoose, - process.patMuons, - process.patElectrons] : - imod.pvSrc = "goodOfflinePrimaryVertices" - imod.embedTrack = True - - -addJetCollection(process, - cms.InputTag('ca8PFJetsPFlow'), - 'CA8', 'PF', - doJTA=True, - doBTagging=True, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=False, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ca8GenJetsNoNu"), - doJetID = False - ) - - -addJetCollection(process, - cms.InputTag('caPrunedPFlow'), - 'CA8Pruned', 'PF', - doJTA=False, - doBTagging=True, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=False, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ca8GenJetsNoNu"), - doJetID = False - ) - - -addJetCollection(process, - cms.InputTag('caPrunedPFlow','SubJets'), - 'CA8PrunedSubjets', 'PF', - doJTA=True, - doBTagging=True, - jetCorrLabel=inputJetCorrLabelAK5PFchs, - doType1MET=False, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection=cms.InputTag('caPrunedGen','SubJets'), - doJetID=False - ) - -addJetCollection(process, - cms.InputTag('caTopTagPFlow'), - 'CATopTag', 'PF', - doJTA=True, - doBTagging=True, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=False, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ca8GenJetsNoNu"), - doJetID = False - ) - -addJetCollection(process, - cms.InputTag('caTopTagPFlow', 'caTopSubJets'), - 'CATopTagSubjets', 'PF', - doJTA=True, - doBTagging=True, - jetCorrLabel=inputJetCorrLabelAK5PFchs, - doType1MET=False, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = None, - doJetID = False - ) - - -addJetCollection(process, - cms.InputTag('caHEPTopTagPFlow'), - 'CAHEPTopTag', 'PF', - doJTA=True, - doBTagging=True, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=False, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = None, - doJetID = False - ) - -addJetCollection(process, - cms.InputTag('caHEPTopTagPFlow', 'caTopSubJets'), - 'CAHEPTopTagSubjets', 'PF', - doJTA=True, - doBTagging=True, - jetCorrLabel=inputJetCorrLabelAK5PFchs, - doType1MET=False, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = None, - doJetID = False - ) - -addJetCollection(process, - cms.InputTag('caFilteredPFlow'), - 'CA15Filtered', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ca8GenJetsNoNu"), - doJetID = False - ) - - -addJetCollection(process, - cms.InputTag('caMassDropFilteredPFlow'), - 'CA15MassDropFiltered', 'PF', - doJTA=True, - doBTagging=True, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=False, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = None, - doJetID = False - ) - - -addJetCollection(process, - cms.InputTag('caMassDropFilteredPFlow', 'SubJets'), # Jet collection; must be already in the event when patLayer0 sequence is executed - 'CA15MassDropFilteredSubjets', 'PF', - doJTA=True, # Run Jet-Track association & JetCharge - doBTagging=True, # Run b-tagging - jetCorrLabel=inputJetCorrLabelAK5PFchs, - doType1MET=False, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = None, - doJetID = False - ) - -############################################################## -### For subjet b tagging with explicit jet-track association -### -### This requires the following additional packages -### -### addpkg RecoJets/JetAssociationAlgorithms V03-01-01-00 -### addpkg RecoJets/JetAssociationProducers V03-02-01 - -### Substitute the standard jet-track association with the explicit jet-track association -### (this will keep the original module names unchanged so might be a bit misleading at first glance) - -if options.useExplicitJTA : - for xtrplabel in ['CA8PrunedSubjets', 'CATopTagSubjets', 'CAHEPTopTagSubjets' , 'CA15MassDropFilteredSubjets'] : - if hasattr( process, 'jetTracksAssociatorAtVertex' + xtrplabel + 'PF' ): - from RecoJets.JetAssociationProducers.ak5JTA_cff import ak5JetTracksAssociatorExplicit - m = 'jetTracksAssociatorAtVertex' + xtrplabel + 'PF' - print('Switching ' + m + ' to explicit jet-track association') - setattr( process, m, ak5JetTracksAssociatorExplicit.clone(jets = getattr(getattr(process,m),'jets')) ) - -### -############################################################## - - - -if options.useExtraJetColls: - - - addJetCollection(process, - cms.InputTag('ak5PrunedPFlow'), - 'AK5Pruned', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK5PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak5GenJetsNoNu"), - doJetID = False - ) - - - addJetCollection(process, - cms.InputTag('ak5FilteredPFlow'), - 'AK5Filtered', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK5PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak5GenJetsNoNu"), - doJetID = False - ) - - addJetCollection(process, - cms.InputTag('ak5TrimmedPFlow'), - 'AK5Trimmed', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK5PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak5GenJetsNoNu"), - doJetID = False - ) - - - addJetCollection(process, - cms.InputTag('ak7PFlow'), - 'AK7', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak7GenJetsNoNu"), - doJetID = False - ) - - addJetCollection(process, - cms.InputTag('ak7PrunedPFlow'), - 'AK7Pruned', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak7GenJetsNoNu"), - doJetID = False - ) - - - addJetCollection(process, - cms.InputTag('ak7FilteredPFlow'), - 'AK7Filtered', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak7GenJetsNoNu"), - doJetID = False - ) - - addJetCollection(process, - cms.InputTag('ak7TrimmedPFlow'), - 'AK7Trimmed', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak7GenJetsNoNu"), - doJetID = False - ) - - - - - - addJetCollection(process, - cms.InputTag('ak8PFlow'), - 'AK8', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak8GenJetsNoNu"), - doJetID = False - ) - - addJetCollection(process, - cms.InputTag('ak8PrunedPFlow'), - 'AK8Pruned', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak8GenJetsNoNu"), - doJetID = False - ) - - - addJetCollection(process, - cms.InputTag('ak8FilteredPFlow'), - 'AK8Filtered', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak8GenJetsNoNu"), - doJetID = False - ) - - addJetCollection(process, - cms.InputTag('ak8TrimmedPFlow'), - 'AK8Trimmed', 'PF', - doJTA=False, - doBTagging=False, - jetCorrLabel=inputJetCorrLabelAK7PFchs, - doType1MET=True, - doL1Cleaning=False, - doL1Counters=False, - genJetCollection = cms.InputTag("ak8GenJetsNoNu"), - doJetID = False - ) - -switchJetCollection(process,cms.InputTag('ak5PFJets'), - doJTA = False, - doBTagging = False, - jetCorrLabel = inputJetCorrLabelAK5PFchs, - doType1MET = True, - genJetCollection=cms.InputTag("ak5GenJetsNoNu"), - doJetID = False - ) - -for icorr in [process.patJetCorrFactors, - process.patJetCorrFactorsCATopTagPF, - process.patJetCorrFactorsCAHEPTopTagPF, - process.patJetCorrFactorsCA8PrunedPF, - process.patJetCorrFactorsCA15FilteredPF, - process.patJetCorrFactorsCA15MassDropFilteredPF, - process.patJetCorrFactorsCATopTagSubjetsPF, - process.patJetCorrFactorsCAHEPTopTagSubjetsPF, - process.patJetCorrFactorsCA8PrunedSubjetsPF, - process.patJetCorrFactorsCA15MassDropFilteredSubjetsPF, - process.patJetCorrFactorsCA8PF ] : - icorr.rho = cms.InputTag("kt6PFJets", "rho") - - -if options.useExtraJetColls: - for icorr in [process.patJetCorrFactorsAK5PrunedPF, - process.patJetCorrFactorsAK5FilteredPF, - process.patJetCorrFactorsAK5TrimmedPF, - process.patJetCorrFactorsAK7PF, - process.patJetCorrFactorsAK7PrunedPF, - process.patJetCorrFactorsAK7FilteredPF, - process.patJetCorrFactorsAK7TrimmedPF, - process.patJetCorrFactorsAK8PF, - process.patJetCorrFactorsAK8PrunedPF, - process.patJetCorrFactorsAK8FilteredPF, - process.patJetCorrFactorsAK8TrimmedPF] : - icorr.rho = cms.InputTag("kt6PFJets", "rho") - - - -############################### -### TagInfo and Matching Setup# -############################### - -# Do some configuration of the jet substructure things -for jetcoll in (process.patJetsPFlow, - process.patJets, - process.patJetsCA8PF, - process.patJetsCA8PrunedPF, - process.patJetsCATopTagPF, - process.patJetsCAHEPTopTagPF, - process.patJetsCA15FilteredPF, - process.patJetsCA15MassDropFilteredPF, - process.patJetsCA8PrunedSubjetsPF, - process.patJetsCATopTagSubjetsPF, - process.patJetsCAHEPTopTagSubjetsPF, - process.patJetsCA15MassDropFilteredSubjetsPF - ) : - if options.useData == False : - jetcoll.embedGenJetMatch = False - jetcoll.getJetMCFlavour = True - jetcoll.addGenPartonMatch = True - # Add the calo towers and PFCandidates. - # I'm being a little tricksy here, because I only - # actually keep the products if the "writeFat" switch - # is on. However, this allows for overlap checking - # with the Refs so satisfies most use cases without - # having to add to the object size - jetcoll.addBTagInfo = False - jetcoll.embedCaloTowers = True - if not options.writeFat and not options.writePFCands : - jetcoll.embedPFCandidates = True - -# Add CATopTag and b-tag info... piggy-backing on b-tag functionality -process.patJetsPFlow.addBTagInfo = True -process.patJetsCATopTagPF.addBTagInfo = True -process.patJetsCAHEPTopTagPF.addBTagInfo = True -process.patJetsCA8PrunedPF.addBTagInfo = True -process.patJetsCA8PrunedSubjetsPF.addBTagInfo = True -process.patJetsCA15MassDropFilteredSubjetsPF.addBTagInfo = True -process.patJetsCATopTagSubjetsPF.addBTagInfo = True -process.patJetsCAHEPTopTagSubjetsPF.addBTagInfo = True - - -process.patJetsCA8PrunedSubjetsPF.embedPFCandidates = False - -# Do some configuration of the jet substructure things -if options.useExtraJetColls: - for jetcoll in (process.patJetsAK5TrimmedPF, - process.patJetsAK5PrunedPF, - process.patJetsAK5FilteredPF, - process.patJetsAK7PF, - process.patJetsAK7TrimmedPF, - process.patJetsAK7PrunedPF, - process.patJetsAK7FilteredPF, - process.patJetsAK8PF, - process.patJetsAK8TrimmedPF, - process.patJetsAK8PrunedPF, - process.patJetsAK8FilteredPF - ) : - if options.useData == False : - jetcoll.embedGenJetMatch = False - jetcoll.getJetMCFlavour = True - jetcoll.addGenPartonMatch = True - # Add the calo towers and PFCandidates. - # I'm being a little tricksy here, because I only - # actually keep the products if the "writeFat" switch - # is on. However, this allows for overlap checking - # with the Refs so satisfies most use cases without - # having to add to the object size - jetcoll.addBTagInfo = False - jetcoll.embedCaloTowers = True - if not options.writeFat and not options.writePFCands : - jetcoll.embedPFCandidates = True - - - - -################################################# -#### Fix the PV collections for the future ###### -################################################# -for module in [process.patJetCorrFactors, - process.patJetCorrFactorsPFlow, - process.patJetCorrFactorsCATopTagPF, - process.patJetCorrFactorsCAHEPTopTagPF, - process.patJetCorrFactorsCA8PrunedPF, - process.patJetCorrFactorsCA15FilteredPF, - process.patJetCorrFactorsCA15MassDropFilteredPF, - process.patJetCorrFactorsCATopTagSubjetsPF, - process.patJetCorrFactorsCAHEPTopTagSubjetsPF, - process.patJetCorrFactorsCA8PrunedSubjetsPF, - process.patJetCorrFactorsCA15MassDropFilteredSubjetsPF, - process.patJetCorrFactorsCA8PF - ]: - module.primaryVertices = "goodOfflinePrimaryVertices" - - -if options.useExtraJetColls: - for module in [process.patJetCorrFactorsAK5TrimmedPF, - process.patJetCorrFactorsAK5PrunedPF, - process.patJetCorrFactorsAK5FilteredPF, - process.patJetCorrFactorsAK7PF, - process.patJetCorrFactorsAK7TrimmedPF, - process.patJetCorrFactorsAK7PrunedPF, - process.patJetCorrFactorsAK7FilteredPF, - process.patJetCorrFactorsAK8PF, - process.patJetCorrFactorsAK8TrimmedPF, - process.patJetCorrFactorsAK8PrunedPF, - process.patJetCorrFactorsAK8FilteredPF - ]: - module.primaryVertices = "goodOfflinePrimaryVertices" - - -############################### -#### Selections Setup ######### -############################### - -# AK5 Jets -process.selectedPatJetsPFlow.cut = cms.string("pt > 5") -process.selectedPatJetsPFlowLoose.cut = cms.string("pt > 20") -process.patJetsPFlow.addTagInfos = True -process.patJetsPFlow.tagInfoSources = cms.VInputTag( - cms.InputTag("secondaryVertexTagInfosAODPFlow") - ) -process.patJetsPFlow.userData.userFunctions = cms.vstring( "? hasTagInfo('secondaryVertex') && tagInfoSecondaryVertex('secondaryVertex').nVertices() > 0 ? " - "tagInfoSecondaryVertex('secondaryVertex').secondaryVertex(0).p4().mass() : 0") -process.patJetsPFlow.userData.userFunctionLabels = cms.vstring('secvtxMass') - -# CA8 jets -process.selectedPatJetsCA8PF.cut = cms.string("pt > 20") - -# CA8 Pruned jets -process.selectedPatJetsCA8PrunedPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") -process.patJetsCA8PrunedSubjetsPF.addTagInfos = False -#process.selectedPatJetsCA8PrunedSubjetsPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - - -# CA8 TopJets -process.selectedPatJetsCATopTagPF.cut = cms.string("pt > 150 & abs(rapidity) < 2.5") -#process.selectedPatJetsCATopTagSubjetsPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") -process.patJetsCATopTagPF.addTagInfos = True -process.patJetsCATopTagPF.tagInfoSources = cms.VInputTag( - cms.InputTag('CATopTagInfosPFlow') - ) - -# CA1.5 HEPTopTagTopJets -process.selectedPatJetsCAHEPTopTagPF.cut = cms.string("pt > 150 & abs(rapidity) < 2.5") -#process.selectedPatJetsCAHEPTopTagSubjetsPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") -process.patJetsCAHEPTopTagPF.addTagInfos = True -process.patJetsCAHEPTopTagPF.tagInfoSources = cms.VInputTag( - cms.InputTag('CATopTagInfosHEPTopTagPFlow') - ) - - -# CA15 Filtered jets -process.selectedPatJetsCA15FilteredPF.cut = cms.string("pt > 150 & abs(rapidity) < 2.5") -process.selectedPatJetsCA15MassDropFilteredPF.cut = cms.string("pt > 150 & abs(rapidity) < 2.5") -#process.selectedPatJetsCA15MassDropFilteredSubjetsPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - -if options.useExtraJetColls: - - # AK5 groomed jets - process.selectedPatJetsAK5PrunedPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - process.selectedPatJetsAK5TrimmedPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - process.selectedPatJetsAK5FilteredPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - - - # AK7 groomed jets - process.selectedPatJetsAK7PF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - process.selectedPatJetsAK7PrunedPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - process.selectedPatJetsAK7TrimmedPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - process.selectedPatJetsAK7FilteredPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - - - # AK8 groomed jets - process.selectedPatJetsAK8PF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - process.selectedPatJetsAK8PrunedPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - process.selectedPatJetsAK8TrimmedPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - process.selectedPatJetsAK8FilteredPF.cut = cms.string("pt > 20 & abs(rapidity) < 2.5") - - - -# electrons -process.selectedPatElectrons.cut = cms.string('pt > 10.0 & abs(eta) < 2.5') -process.patElectrons.embedTrack = cms.bool(True) -process.selectedPatElectronsPFlow.cut = cms.string('pt > 10.0 & abs(eta) < 2.5') -process.patElectronsPFlow.embedTrack = cms.bool(True) -process.selectedPatElectronsPFlowLoose.cut = cms.string('pt > 10.0 & abs(eta) < 2.5') -process.patElectronsPFlowLoose.embedTrack = cms.bool(True) -# muons -process.selectedPatMuons.cut = cms.string('pt > 10.0 & abs(eta) < 2.5') -process.patMuons.embedTrack = cms.bool(True) -process.selectedPatMuonsPFlow.cut = cms.string("pt > 10.0 & abs(eta) < 2.5") -process.patMuonsPFlow.embedTrack = cms.bool(True) -process.selectedPatMuonsPFlowLoose.cut = cms.string("pt > 10.0 & abs(eta) < 2.5") -process.patMuonsPFlowLoose.embedTrack = cms.bool(True) -# taus -process.selectedPatTausPFlow.cut = cms.string("pt > 10.0 & abs(eta) < 3") -process.selectedPatTaus.cut = cms.string("pt > 10.0 & abs(eta) < 3") -process.patTausPFlow.isoDeposits = cms.PSet() -process.patTaus.isoDeposits = cms.PSet() -# photons -process.patPhotonsPFlow.isoDeposits = cms.PSet() -process.patPhotons.isoDeposits = cms.PSet() - - -# Apply jet ID to all of the jets upstream. We aren't going to screw around -# with this, most likely. So, we don't really to waste time with it -# at the analysis level. -from PhysicsTools.SelectorUtils.pfJetIDSelector_cfi import pfJetIDSelector -process.goodPatJetsPFlow = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsPFlow") - ) -process.goodPatJetsCA8PF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsCA8PF") - ) -process.goodPatJetsCA8PrunedPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsCA8PrunedPF") - ) - -process.goodPatJetsCATopTagPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsCATopTagPF") - ) - -process.goodPatJetsCAHEPTopTagPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsCAHEPTopTagPF") - ) - -process.goodPatJetsCA15FilteredPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsCA15FilteredPF") - ) - -process.goodPatJetsCA15MassDropFilteredPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsCA15MassDropFilteredPF") - ) - -if options.useExtraJetColls: - - - process.goodPatJetsAK5PrunedPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK5PrunedPF") - ) - process.goodPatJetsAK5FilteredPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK5FilteredPF") - ) - process.goodPatJetsAK5TrimmedPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK5TrimmedPF") - ) - - process.goodPatJetsAK7PF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK7PF") - ) - process.goodPatJetsAK7PrunedPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK7PrunedPF") - ) - process.goodPatJetsAK7FilteredPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK7FilteredPF") - ) - process.goodPatJetsAK7TrimmedPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK7TrimmedPF") - ) - - - - process.goodPatJetsAK8PF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK8PF") - ) - process.goodPatJetsAK8PrunedPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK8PrunedPF") - ) - process.goodPatJetsAK8FilteredPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK8FilteredPF") - ) - process.goodPatJetsAK8TrimmedPF = cms.EDFilter("PFJetIDSelectionFunctorFilter", - filterParams = pfJetIDSelector.clone(), - src = cms.InputTag("selectedPatJetsAK8TrimmedPF") - ) - - - -process.goodPatJetsCA8PrunedPFPacked = cms.EDProducer("BoostedJetMerger", - jetSrc=cms.InputTag("goodPatJetsCA8PrunedPF"), - subjetSrc=cms.InputTag("selectedPatJetsCA8PrunedSubjetsPF") - ) - -process.goodPatJetsCATopTagPFPacked = cms.EDProducer("BoostedJetMerger", - jetSrc=cms.InputTag("goodPatJetsCATopTagPF"), - subjetSrc=cms.InputTag("selectedPatJetsCATopTagSubjetsPF") - ) - - -process.goodPatJetsCAHEPTopTagPFPacked = cms.EDProducer("BoostedJetMerger", - jetSrc=cms.InputTag("goodPatJetsCAHEPTopTagPF"), - subjetSrc=cms.InputTag("selectedPatJetsCAHEPTopTagSubjetsPF") - ) - -process.goodPatJetsCA15MassDropFilteredPFPacked = cms.EDProducer("BoostedJetMerger", - jetSrc=cms.InputTag("goodPatJetsCA15MassDropFilteredPF"), - subjetSrc=cms.InputTag("selectedPatJetsCA15MassDropFilteredSubjetsPF") - ) - - -if options.writeSimpleInputs : - process.pfInputs = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag('selectedPatJetsCA8PF', 'pfCandidates'), - lazyParser = cms.untracked.bool(True), - eventInfo = cms.untracked.bool(False), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("px"), - quantity = cms.untracked.string("px") - ), - cms.PSet( - tag = cms.untracked.string("py"), - quantity = cms.untracked.string("py") - ), - cms.PSet( - tag = cms.untracked.string("pz"), - quantity = cms.untracked.string("pz") - ), - cms.PSet( - tag = cms.untracked.string("energy"), - quantity = cms.untracked.string("energy") - ), - cms.PSet( - tag = cms.untracked.string("pdgId"), - quantity = cms.untracked.string("pdgId") - ) - ) - ) - - -if options.useExtraJetColls: - process.ak5Lite = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag('goodPatJetsPFlow'), - lazyParser = cms.untracked.bool(True), - eventInfo = cms.untracked.bool(False), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("px"), - quantity = cms.untracked.string("px") - ), - cms.PSet( - tag = cms.untracked.string("py"), - quantity = cms.untracked.string("py") - ), - cms.PSet( - tag = cms.untracked.string("pz"), - quantity = cms.untracked.string("pz") - ), - cms.PSet( - tag = cms.untracked.string("energy"), - quantity = cms.untracked.string("energy") - ), - cms.PSet( - tag = cms.untracked.string("jetArea"), - quantity = cms.untracked.string("jetArea") - ), - cms.PSet( - tag = cms.untracked.string("jecFactor"), - quantity = cms.untracked.string("jecFactor(0)") - ) - ) - ) - - - process.ak5TrimmedLite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK5TrimmedPF') - ) - - process.ak5PrunedLite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK5PrunedPF') - ) - - process.ak5FilteredLite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK5FilteredPF') - ) - - process.ak7Lite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK7PF') - ) - - process.ak7TrimmedLite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK7TrimmedPF') - ) - - process.ak7PrunedLite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK7PrunedPF') - ) - - process.ak7FilteredLite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK7FilteredPF') - ) - - - - - process.ak7TrimmedGenLite = cms.EDProducer( - "CandViewNtpProducer", - src = cms.InputTag('ak7TrimmedGenJetsNoNu'), - lazyParser = cms.untracked.bool(True), - eventInfo = cms.untracked.bool(False), - variables = cms.VPSet( - cms.PSet( - tag = cms.untracked.string("px"), - quantity = cms.untracked.string("px") - ), - cms.PSet( - tag = cms.untracked.string("py"), - quantity = cms.untracked.string("py") - ), - cms.PSet( - tag = cms.untracked.string("pz"), - quantity = cms.untracked.string("pz") - ), - cms.PSet( - tag = cms.untracked.string("energy"), - quantity = cms.untracked.string("energy") - ) - ) - ) - - - process.ak7PrunedGenLite = process.ak7TrimmedGenLite.clone( - src = cms.InputTag('ak7PrunedGenJetsNoNu') - ) - - process.ak7FilteredGenLite = process.ak7TrimmedGenLite.clone( - src = cms.InputTag('ak7FilteredGenJetsNoNu') - ) - - process.ca8PrunedGenLite = process.ak7TrimmedGenLite.clone( - src = cms.InputTag('caPrunedGen') - ) - - process.ca12FilteredGenLite = process.ak7TrimmedGenLite.clone( - src = cms.InputTag('caFilteredGenJetsNoNu') - ) - - process.ca12MassDropFilteredGenLite = process.ak7TrimmedGenLite.clone( - src = cms.InputTag('caMassDropFilteredGenJetsNoNu') - ) - - - - process.ak8Lite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK8PF') - ) - - process.ak8TrimmedLite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK8TrimmedPF') - ) - - process.ak8PrunedLite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK8PrunedPF') - ) - - process.ak8FilteredLite = process.ak5Lite.clone( - src = cms.InputTag('goodPatJetsAK8FilteredPF') - ) - - -## IVF and BCandidate producer for Vbb cross check analysis -process.load('RecoVertex/AdaptiveVertexFinder/inclusiveVertexing_cff') - - -# let it run - -process.filtersSeq = cms.Sequence( - process.primaryVertexFilter * - process.noscraping * - process.HBHENoiseFilter * - process.CSCTightHaloFilter * - process.hcalLaserEventFilter * - process.EcalDeadCellTriggerPrimitiveFilter * - process.goodVertices * process.trackingFailureFilter * - process.tobtecfakesfilter * - ~process.manystripclus53X * - ~process.toomanystripclus53X * - ~process.logErrorTooManyClusters * - ~process.logErrorTooManyTripletsPairs * - ~process.logErrorTooManySeeds * - process.eeBadScFilter -) - - - -process.patseq = cms.Sequence( - process.filtersSeq* - process.goodOfflinePrimaryVertices* - process.softElectronCands* - process.inclusiveVertexing* - process.genParticlesForJetsNoNu* - process.ca8GenJetsNoNu* - process.ak8GenJetsNoNu* - process.caFilteredGenJetsNoNu* - process.caMassDropFilteredGenJetsNoNu* - process.caPrunedGen* - process.caTopTagGen* - process.CATopTagInfosGen* - process.caHEPTopTagGen* - getattr(process,"patPF2PATSequence"+postfix)* - process.patDefaultSequence* - process.goodPatJetsPFlow* - process.goodPatJetsCA8PF* - process.goodPatJetsCA8PrunedPF* - process.goodPatJetsCATopTagPF* - process.goodPatJetsCAHEPTopTagPF* - process.goodPatJetsCA15MassDropFilteredPF* - process.goodPatJetsCA8PrunedPFPacked* - process.goodPatJetsCATopTagPFPacked* - process.goodPatJetsCAHEPTopTagPFPacked* - process.goodPatJetsCA15MassDropFilteredPFPacked* - process.flavorHistorySeq* - process.prunedGenParticles* - process.kt6PFJetsForIsolation* - process.recoTauClassicHPSSequence* - getattr(process,"patPF2PATSequence"+postfixLoose)#* -# process.miniPFLeptonSequence - ) - -if options.useExtraJetColls: - process.extraJetSeq = cms.Sequence( - process.ak7TrimmedGenJetsNoNu* - process.ak7FilteredGenJetsNoNu* - process.ak7PrunedGenJetsNoNu* - process.goodPatJetsCA15FilteredPF* - process.goodPatJetsCA15MassDropFilteredPF* - process.goodPatJetsAK5TrimmedPF* - process.goodPatJetsAK5FilteredPF* - process.goodPatJetsAK5PrunedPF* - process.goodPatJetsAK7PF* - process.goodPatJetsAK7TrimmedPF* - process.goodPatJetsAK7FilteredPF* - process.goodPatJetsAK7PrunedPF* - process.goodPatJetsAK8PF* - process.goodPatJetsAK8TrimmedPF* - process.goodPatJetsAK8FilteredPF* - process.goodPatJetsAK8PrunedPF* - process.ak5Lite* - process.ak5TrimmedLite* - process.ak5FilteredLite* - process.ak5PrunedLite* - process.ak7Lite* - process.ak7TrimmedLite* - process.ak7FilteredLite* - process.ak7PrunedLite* - process.ak7TrimmedGenLite* - process.ak7FilteredGenLite* - process.ak7PrunedGenLite* - process.ak8Lite* - process.ak8TrimmedLite* - process.ak8FilteredLite* - process.ak8PrunedLite* - process.ca8PrunedGenLite* - process.ca12FilteredGenLite* - process.ca12MassDropFilteredGenLite - ) - process.patseq *= process.extraJetSeq - - -if options.useData : - process.patseq.remove( process.genParticlesForJetsNoNu ) - process.patseq.remove( process.genJetParticles ) - process.patseq.remove( process.ak8GenJetsNoNu ) - process.patseq.remove( process.ca8GenJetsNoNu ) - process.patseq.remove( process.caFilteredGenJetsNoNu ) - process.patseq.remove( process.flavorHistorySeq ) - process.patseq.remove( process.caPrunedGen ) - process.patseq.remove( process.caHEPTopTagGen) - process.patseq.remove( process.caTopTagGen ) - process.patseq.remove( process.CATopTagInfosGen ) - process.patseq.remove( process.prunedGenParticles ) - process.patseq.remove( process.caMassDropFilteredGenJetsNoNu ) - - if options.useExtraJetColls: - process.patseq.remove( process.ak8GenJetsNoNu ) - process.patseq.remove( process.caFilteredGenJetsNoNu ) - process.patseq.remove( process.ak7TrimmedGenJetsNoNu ) - process.patseq.remove( process.ak7FilteredGenJetsNoNu ) - process.patseq.remove( process.ak7PrunedGenJetsNoNu ) - process.patseq.remove( process.ak7TrimmedGenLite ) - process.patseq.remove( process.ak7FilteredGenLite ) - process.patseq.remove( process.ak7PrunedGenLite ) - process.patseq.remove( process.ca8PrunedGenLite ) - process.patseq.remove( process.ca12FilteredGenLite ) - process.patseq.remove( process.ca12MassDropFilteredGenLite ) - -if options.runOnFastSim: - process.patseq.remove( process.HBHENoiseFilter ) - process.patseq.remove( process.CSCTightHaloFilter ) - -if options.writeSimpleInputs : - process.patseq *= cms.Sequence(process.pfInputs) - -if options.useSusyFilter : - process.patseq.remove( process.HBHENoiseFilter ) - process.load( 'PhysicsTools.HepMCCandAlgos.modelfilter_cfi' ) - process.modelSelector.parameterMins = [500., 0.] # mstop, mLSP - process.modelSelector.parameterMaxs = [7000., 200.] # mstop, mLSP - process.p0 = cms.Path( - process.modelSelector * - process.patseq - ) - - - -else : - process.p0 = cms.Path( - process.patseq - ) - - - - - -process.out.SelectEvents.SelectEvents = cms.vstring('p0') - -# rename output file -if options.useData : - if options.writeFat : - process.out.fileName = cms.untracked.string(options.tlbsmTag + '_data_fat.root') - else : - process.out.fileName = cms.untracked.string(options.tlbsmTag + '_data.root') -else : - if options.writeFat : - process.out.fileName = cms.untracked.string(options.tlbsmTag + '_mc_fat.root') - else : - process.out.fileName = cms.untracked.string(options.tlbsmTag + '_mc.root') - - -# reduce verbosity -process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(100) - - -# process all the events -process.maxEvents.input = 100 -process.options.wantSummary = True -process.out.dropMetaData = cms.untracked.string("DROPPED") - - -process.source.inputCommands = cms.untracked.vstring("keep *", "drop *_MEtoEDMConverter_*_*") - - - -process.out.outputCommands = [ - 'drop *_cleanPat*_*_*', - 'keep *_selectedPat*_*_*', - # Drop the PAT jets with jet ID applied, - # they are duplicated. - 'keep *_goodPat*_*_*', - 'drop *_goodPatJetsCA8PrunedPF_*_*', - 'drop *_goodPatJetsCATopTagPF_*_*', - 'drop *_goodPatJetsCAHEPTopTagPF_*_*', - 'drop *_goodPatJetsCA15MassDropFilteredPF_*_*', - # Drop the PAT jets without jet ID applied, - # they are duplicated. - 'drop patJets_selectedPat*_*_*', - # However, KEEP the PAT jets corresponding - # to the subjets. - 'keep patJets_selectedPat*Subjets*_*_*', - # And finally, keep the "packed" pat jets - # which contain the subjets, as pat jets. - 'keep patJets_goodPatJets*Packed_*_*', - 'drop *_selectedPatJets_*_*', - 'keep *_patMETs*_*_*', -# 'keep *_offlinePrimaryVertices*_*_*', -# 'keep *_kt6PFJets*_*_*', - 'keep *_goodOfflinePrimaryVertices*_*_*', - 'drop patPFParticles_*_*_*', - 'drop recoPFJets_*_*_*', -# 'drop patTaus_*_*_*', -# 'keep recoPFJets_caPruned*_*_*', - 'keep recoPFJets_caFiltered*_*_*', -# 'keep recoPFJets_caTopTag*_*_*', -# 'keep recoPFJets_caHEPTopTag*_*_*', - 'keep patTriggerObjects_patTriggerPFlow_*_*', - 'keep patTriggerFilters_patTriggerPFlow_*_*', - 'keep patTriggerPaths_patTriggerPFlow_*_*', - 'keep patTriggerEvent_patTriggerEventPFlow_*_*', - 'keep *_cleanPatPhotonsTriggerMatch*_*_*', - 'keep *_cleanPatElectronsTriggerMatch*_*_*', - 'keep *_cleanPatMuonsTriggerMatch*_*_*', - 'keep *_cleanPatTausTriggerMatch*_*_*', - 'keep *_cleanPatJetsTriggerMatch*_*_*', - 'keep *_patMETsTriggerMatch*_*_*', - 'keep double_*_*_PAT', - 'keep *_TriggerResults_*_*', - 'keep *_hltTriggerSummaryAOD_*_*', - #'keep *_caTopTagPFlow_*_*', - #'keep *_caPrunedPFlow_*_*', - 'keep *_CATopTagInfosPFlow_*_*', - 'keep *_prunedGenParticles_*_*', - 'drop recoPFCandidates_selectedPatJets*_*_*', - 'keep recoPFCandidates_selectedPatJetsPFlow_*_*', - 'keep recoPFCandidates_selectedPatJetsCA8PF_*_*', - 'drop CaloTowers_selectedPatJets*_*_*', - 'drop recoBasicJets_*_*_*', - 'keep *_*Lite_*_*', - 'drop patJets_goodPatJetsAK5FilteredPF_*_*', - 'drop patJets_goodPatJetsAK5PrunedPF_*_*', - 'drop patJets_goodPatJetsAK5TrimmedPF_*_*', - 'drop patJets_goodPatJetsAK7PF_*_*', - 'drop patJets_goodPatJetsAK7FilteredPF_*_*', - 'drop patJets_goodPatJetsAK7PrunedPF_*_*', - 'drop patJets_goodPatJetsAK7TrimmedPF_*_*', - 'drop patJets_goodPatJetsAK8PF_*_*', - 'drop patJets_goodPatJetsAK8FilteredPF_*_*', - 'drop patJets_goodPatJetsAK8PrunedPF_*_*', - 'drop patJets_goodPatJetsAK8TrimmedPF_*_*', - 'drop recoGenJets_selectedPatJets*_*_*', - 'keep *_*_rho_*', - 'drop *_*PFlowLoose*_*_*', - 'keep patElectrons_selected*PFlowLoose*_*_*', - 'keep patMuons_selected*PFlowLoose*_*_*', - 'keep patJets_selectedPatJetsPFlowLoose_*_*', - 'keep *_patConversions*_*_*', - #'keep patTaus_*PFlowLoose*_*_*', - 'keep *_offlineBeamSpot_*_*', - 'drop *_*atTaus_*_*', - 'keep *_pfType1CorrectedMet_*_*', - 'keep *_pfType1p2CorrectedMet_*_*', - 'keep *_phoPFIso_*_*', - 'keep *_photon*_*_*', - 'keep *_allConversions__*', - 'keep *_gsfElectron*__*', - 'keep *_correctedHybridSuperClusters_*_*', - 'keep *_correctedMulti5x5SuperClustersWithPreshower_*_*', - 'keep recoGsfTracks_electronGsfTracks__*' - #'keep recoTracks_generalTracks_*_*' - ] - -if options.useData : - process.out.outputCommands += ['drop *_MEtoEDMConverter_*_*', - 'keep LumiSummary_lumiProducer_*_*' - ] -else : - process.out.outputCommands += ['keep recoGenJets_ca8GenJetsNoNu_*_*', - 'keep recoGenJets_ak5GenJetsNoNu_*_*', - 'keep recoGenJets_ak7GenJetsNoNu_*_*', - 'keep recoGenJets_ak8GenJetsNoNu_*_*', - 'keep recoGenJets_caFilteredGenJetsNoNu_*_*', - 'keep recoGenJets_caPrunedGen_*_*', - 'keep *_caTopTagGen_*_*', - 'keep GenRunInfoProduct_generator_*_*', - 'keep GenEventInfoProduct_generator_*_*', - 'keep *_flavorHistoryFilter_*_*', - 'keep PileupSummaryInfos_*_*_*', - 'keep recoGenJets_selectedPatJetsPFlow_*_*', - ] - -if options.writePFCands or options.writeFat : - - process.out.outputCommands += [ - 'keep *_pfNoElectronPFlow_*_*', - 'drop recoPFCandidates_selectedPatJets*_*_*' - ] - -if options.writeFat : - - process.out.outputCommands += [ - 'keep recoTracks_generalTracks_*_*', - 'keep recoBaseTagInfosOwned_selectedPatJets*_*_*', - 'keep CaloTowers_selectedPatJets*_*_*' - ] - - -if options.writeGenParticles : - if options.useData == False : - process.out.outputCommands += [ - 'keep *_genParticles_*_*' - ] - - -if options.writeSimpleInputs : - process.out.outputCommands += [ - 'keep *_pfInputs_*_*' - ] - -if options.usePythia8 : - process.patJetPartonMatch.mcStatus = cms.vint32(23) - process.patJetPartonMatchPFlow.mcStatus = cms.vint32(23) - process.patJetPartonMatchPFlowLoose.mcStatus = cms.vint32(23) - -if options.usePythia6andPythia8 : - process.patJetPartonMatch.mcStatus = cms.vint32(3,23) - process.patJetPartonMatchPFlow.mcStatus = cms.vint32(3,23) - process.patJetPartonMatchPFlowLoose.mcStatus = cms.vint32(3,23) - - - -open('junk.py','w').write(process.dumpPython()) diff --git a/TopQuarkAnalysis/TopPairBSM/test/ttbsm_ljets_def.py b/TopQuarkAnalysis/TopPairBSM/test/ttbsm_ljets_def.py deleted file mode 100644 index 8105ceaebf80c..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/ttbsm_ljets_def.py +++ /dev/null @@ -1,26 +0,0 @@ -def isTightMu(lep): - isPF = lep.isPFMuon() - isGlob = lep.isGlobalMuon() - if isPF and isGlob: - normChi2 = lep.globalTrack().normalizedChi2() - trkLayers = lep.track().hitPattern().trackerLayersWithMeasurement() - mVMuHits = lep.globalTrack().hitPattern().numberOfValidMuonHits() - dB = fabs( lep.dB() ) - #diffVz = fabs( lep.vertex().z() - PVz ) - mPixHits = lep.innerTrack().hitPattern().numberOfValidPixelHits() - matchStat = lep.numberOfMatchedStations() - - #if(isPF and isGlob and normChi2<10 and trkLayers>5 and mVMuHits>0 and dB<0.2 and diffVz<0.5 and mPixHits>0 and matchStat >1): - if(isPF and isGlob and normChi2<10 and trkLayers>5 and mVMuHits>0 and dB<0.2 and mPixHits>0 and matchStat >1): - return True - else: - return False - -def isLooseMu(lep): - isPF = lep.isPFMuon() - isGlob = lep.isGlobalMuon() - isTrack = lep.isTrackerMuon() - if isPF and (isGlob or isTrack): - return True - else: - return False diff --git a/TopQuarkAnalysis/TopPairBSM/test/ttbsm_unittest_fwlite.py b/TopQuarkAnalysis/TopPairBSM/test/ttbsm_unittest_fwlite.py deleted file mode 100644 index 67c3cef19bdbc..0000000000000 --- a/TopQuarkAnalysis/TopPairBSM/test/ttbsm_unittest_fwlite.py +++ /dev/null @@ -1,174 +0,0 @@ -#! /usr/bin/env python - -from __future__ import print_function -import ROOT -import sys -from DataFormats.FWLite import Events, Handle - -files = ["patTuple_tlbsm_train_tlbsm_71x_v1.root"] -printGen = True -events = Events (files) -handle0 = Handle ("std::vector") -handle1 = Handle ("std::vector") -handle2 = Handle ("std::vector") -handle3 = Handle ("std::vector") -handle4 = Handle ("std::vector") -handle5 = Handle ("std::vector") -handle6 = Handle ("std::vector") -handle7 = Handle ("std::vector") -handle8 = Handle ("GenEventInfoProduct") - -# for now, label is just a tuple of strings that is initialized just -# like and edm::InputTag -label0 = ("goodPatJets") -label1 = ("goodPatJetsCA8PrunedPacked") -label2 = ("goodPatJetsCA8CMSTopTagPacked") -label3 = ("goodPatJetsCA15HEPTopTagPacked") -label4 = ("selectedPatMuons") -label5 = ("selectedPatElectrons") -label6 = ("goodOfflinePrimaryVertices") -label7 = ("addPileupInfo") -label8 = ("generator") - -f = ROOT.TFile("outplots.root", "RECREATE") -f.cd() - - -# loop over events -i = 0 -for event in events: - i = i + 1 - print('--------- Processing Event ' + str(i)) - - print('---- ' + label0) - # use getByLabel, just like in cmsRun - event.getByLabel (label0, handle0) - # get the product - jets0 = handle0.product() - - - ijet = 0 - for jet in jets0 : - print(("Jet {0:4.0f}, pt = {1:10.2f}, eta = {2:6.2f}, phi = {3:6.2f}, m = {4:6.2f}, " + - "nda = {5:3.0f}, vtxmass = {6:6.2f}, area = {7:6.2f}, L1 = {8:6.2f}, L2 = {9:6.2f}, L3 = {10:6.2f}, " + - "currLevel = {11:s}").format( - ijet, jet.pt(), jet.eta(), jet.phi(), jet.mass(), jet.numberOfDaughters(), jet.userFloat('secvtxMass'), - jet.jetArea(), jet.jecFactor("L1FastJet"), jet.jecFactor("L2Relative"), jet.jecFactor("L3Absolute"), jet.currentJECLevel() - ), end=' ') - if printGen : - genPt = 0. - if jet.genJetFwdRef().isNonnull() and jet.genJetFwdRef().isAvailable() : - genPt = jet.genJetFwdRef().pt() - else : - genPt = -1.0 - print((", gen pt = {0:6.2f}").format( genPt )) - else : - print('') - ijet += 1 - - print('---- ' + label1) - # use getByLabel, just like in cmsRun - event.getByLabel (label1, handle1) - # get the product - jets1 = handle1.product() - - ijet = 0 - for jet in jets1 : - print('Jet {0:4.0f}, pt = {1:10.2f}, eta = {2:6.2f}, phi = {3:6.2f}, m = {4:6.2f}, nda = {5:3.0f}'.format( - ijet, jet.pt(), jet.eta(), jet.phi(), jet.mass(), jet.numberOfDaughters() - ), end=' ') - if jet.numberOfDaughters() > 1 : - print(', ptda1 = {0:6.2f}, ptda1 = {1:6.2f}'.format( jet.daughter(0).pt(), jet.daughter(1).pt() )) - else : - print('') - ijet += 1 - - - print('---- ' + label2) - # use getByLabel, just like in cmsRun - event.getByLabel (label2, handle2) - # get the product - jets2 = handle2.product() - - ijet = 0 - for jet in jets2 : - print('Jet {0:4.0f}, pt = {1:10.2f}, eta = {2:6.2f}, phi = {3:6.2f}, m = {4:6.2f}, nda = {5:3.0f}, topmass = {6:6.2f}, minmass = {7:6.2f}'.format( - ijet, jet.pt(), jet.eta(), jet.phi(), jet.mass(), jet.numberOfDaughters(), jet.tagInfo('CATop').properties().topMass, jet.tagInfo('CATop').properties().minMass - )) - ijet += 1 - - - print('---- ' + label3) - # use getByLabel, just like in cmsRun - event.getByLabel (label3, handle3) - # get the product - jets3 = handle3.product() - - ijet = 0 - for jet in jets3 : - print('Jet {0:4.0f}, pt = {1:10.2f}, eta = {2:6.2f}, phi = {3:6.2f}, m = {4:6.2f}, nda = {5:3.0f}'.format( - ijet, jet.pt(), jet.eta(), jet.phi(), jet.mass(), jet.numberOfDaughters() - ), end=' ') - if jet.numberOfDaughters() > 2 : - print(', ptda1 = {0:6.2f}, ptda1 = {1:6.2f}, ptda2 = {2:6.2f}'.format( jet.daughter(0).pt(), jet.daughter(1).pt(), jet.daughter(2).pt() )) - else : - print('') - ijet += 1 - - - print('---- ' + label4) - # use getByLabel, just like in cmsRun - event.getByLabel (label4, handle4) - # get the product - muons1 = handle4.product() - - imuon = 0 - for muon in muons1 : - if not muon.isGlobalMuon() : - continue - print('Muon {0:4.0f}, pt = {1:10.2f}, eta = {2:6.2f}, phi = {3:6.2f}, m = {4:6.2f}, nda = {5:3.0f}, chi2/dof = {6:6.2f}'.format( - imuon, muon.pt(), muon.eta(), muon.phi(), muon.mass(), muon.numberOfDaughters(), muon.normChi2() - )) - imuon += 1 - - print('---- ' + label5) - # use getByLabel, just like in cmsRun - event.getByLabel (label5, handle5) - # get the product - electrons1 = handle5.product() - - ielectron = 0 - for electron in electrons1 : - print('Electron {0:4.0f}, pt = {1:10.2f}, eta = {2:6.2f}, phi = {3:6.2f}, m = {4:6.2f}, nda = {5:3.0f}, eidTight = {6:6.2f}'.format( - ielectron, electron.pt(), electron.eta(), electron.phi(), electron.mass(), electron.numberOfDaughters(), electron.electronID('eidTight') - )) - ielectron += 1 - - print('---- ' + label6) - # use getByLabel, just like in cmsRun - event.getByLabel (label6, handle6) - # get the product - goodPVs = handle6.product() - igoodPV = 0 - for goodPV in goodPVs: - print('PV {0:4.0f}, ndof = {1:10.2f}, nTracks = {2:d}, normalizedChi2 = {3:4.2f}, x= {4:4.2f}, y = {5:4.2f}, z = {6:4.2f}'.format(igoodPV, goodPV.ndof(), goodPV.nTracks(), goodPV.normalizedChi2(), goodPV.x(), goodPV.y(), goodPV.z())) - igoodPV += 1 - - print('---- ' + label7) - # use getByLabel, just like in cmsRun - event.getByLabel (label7, handle7) - # get the product - pusummarys = handle7.product() - for pusummary in pusummarys: - print('PU true interaction = {0:f}, PU interactions = {1:f}'.format(pusummary.getTrueNumInteractions(), pusummary.getPU_NumInteractions())) - - print('---- ' + label8) - # use getByLabel, just like in cmsRun - event.getByLabel (label8, handle8) - # get the product - geninfo = handle8.product() - print('GenInfoProduct has pdf = {0:b}, pdfid1 = {1:d}, pdfid2 = {2:d}'.format(geninfo.hasPDF(), geninfo.pdf().id.first, geninfo.pdf().id.second)) - -f.cd() - -f.Close()