Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,7 @@ class AlignmentProducerBase {
const bool saveToDB_, saveApeToDB_, saveDeformationsToDB_;
const bool useSurvey_;
const bool enableAlignableUpdates_;
const std::string tkAliRcdName_;

/*** ESTokens ***/
const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> ttopoToken_;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import FWCore.ParameterSet.Config as cms

OutALCARECOPromptCalibProdSiPixelAliHG_noDrop = cms.PSet(
SelectEvents = cms.untracked.PSet(
SelectEvents = cms.vstring('pathALCARECOPromptCalibProdSiPixelAliHG')
),
outputCommands = cms.untracked.vstring(
'keep *_SiPixelAliMillePedeFileConverterHG_*_*')
)

OutALCARECOPromptCalibProdSiPixelAliHG=OutALCARECOPromptCalibProdSiPixelAliHG_noDrop.clone()
OutALCARECOPromptCalibProdSiPixelAliHG.outputCommands.insert(0, "drop *")
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import FWCore.ParameterSet.Config as cms

# ------------------------------------------------------------------------------
# configure a filter to run only on the events selected by TkAlMinBias AlcaReco
from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAli_cff import *
ALCARECOTkAlMinBiasFilterForSiPixelAliHG = ALCARECOTkAlMinBiasFilterForSiPixelAli.clone()


from Alignment.CommonAlignmentProducer.LSNumberFilter_cfi import *

# Ingredient: offlineBeamSpot
from RecoVertex.BeamSpotProducer.BeamSpot_cfi import offlineBeamSpot

# Ingredient: AlignmentTrackSelector
# track selector for HighPurity tracks
#-- AlignmentTrackSelector
SiPixelAliHighPuritySelectorHG = SiPixelAliHighPuritySelector.clone()

# track selection for alignment
SiPixelAliTrackSelectorHG = SiPixelAliTrackSelector.clone(
src = 'SiPixelAliTrackFitterHG'
)

# Ingredient: SiPixelAliTrackRefitter0
# refitting
SiPixelAliTrackRefitterHG0 = SiPixelAliTrackRefitter0.clone(
src = 'SiPixelAliHighPuritySelectorHG'
)
SiPixelAliTrackRefitterHG1 = SiPixelAliTrackRefitterHG0.clone(
src = 'SiPixelAliTrackSelectorHG'
)

#-- Alignment producer
SiPixelAliMilleAlignmentProducerHG = SiPixelAliMilleAlignmentProducer.clone(
ParameterBuilder = dict(
Selector = cms.PSet(
alignParams = cms.vstring(
"TrackerP1PXBLadder,111111",
"TrackerP1PXECPanel,111111",
)
)
),
tjTkAssociationMapTag = 'SiPixelAliTrackRefitterHG1',
algoConfig = MillePedeAlignmentAlgorithm.clone(
binaryFile = 'milleBinaryHG_0.dat',
treeFile = 'treeFileHG.root',
monitorFile = 'millePedeMonitorHG.root'
)
)

# Ingredient: SiPixelAliTrackerTrackHitFilter
SiPixelAliTrackerTrackHitFilterHG = SiPixelAliTrackerTrackHitFilter.clone(
src = 'SiPixelAliTrackRefitterHG0'
)

# Ingredient: SiPixelAliSiPixelAliTrackFitter
SiPixelAliTrackFitterHG = SiPixelAliTrackFitter.clone(
src = 'SiPixelAliTrackerTrackHitFilterHG'
)

SiPixelAliMillePedeFileConverterHG = cms.EDProducer("MillePedeFileConverter",
fileDir = cms.string(SiPixelAliMilleAlignmentProducerHG.algoConfig.fileDir.value()),
inputBinaryFile = cms.string(SiPixelAliMilleAlignmentProducerHG.algoConfig.binaryFile.value()),
fileBlobLabel = cms.string(''),
)



seqALCARECOPromptCalibProdSiPixelAliHG = cms.Sequence(ALCARECOTkAlMinBiasFilterForSiPixelAliHG*
lsNumberFilter*
offlineBeamSpot*
SiPixelAliHighPuritySelectorHG*
SiPixelAliTrackRefitterHG0*
SiPixelAliTrackerTrackHitFilterHG*
SiPixelAliTrackFitterHG*
SiPixelAliTrackSelectorHG*
SiPixelAliTrackRefitterHG1*
SiPixelAliMilleAlignmentProducerHG*
SiPixelAliMillePedeFileConverterHG)
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,5 @@
'keep *_SiPixelAliMillePedeFileConverter_*_*')
)

import copy

OutALCARECOPromptCalibProdSiPixelAli=copy.deepcopy(OutALCARECOPromptCalibProdSiPixelAli_noDrop)
OutALCARECOPromptCalibProdSiPixelAli=OutALCARECOPromptCalibProdSiPixelAli_noDrop.clone()
OutALCARECOPromptCalibProdSiPixelAli.outputCommands.insert(0, "drop *")
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import FWCore.ParameterSet.Config as cms

SiPixelAliMilleFileExtractorHG = cms.EDAnalyzer("MillePedeFileExtractor",
fileBlobInputTag = cms.InputTag("SiPixelAliMillePedeFileConverterHG",''),
fileDir = cms.string('HGalignment/'),
# File names the Extractor will use to write the fileblobs in the root
# file as real binary files to disk, so that the pede step can read them.
# This includes the formatting directive "%04d" which will be expanded to
# 0000, 0001, 0002,...
outputBinaryFile = cms.string('pedeBinaryHG%04d.dat'))

from Alignment.MillePedeAlignmentAlgorithm.MillePedeAlignmentAlgorithm_cfi import *
from Alignment.CommonAlignmentProducer.AlignmentProducerAsAnalyzer_cff import AlignmentProducer
from Alignment.MillePedeAlignmentAlgorithm.MillePedeDQMModule_cff import *

SiPixelAliPedeAlignmentProducerHG = AlignmentProducer.clone(
ParameterBuilder = dict(
Selector = cms.PSet(
alignParams = cms.vstring(
"TrackerP1PXBLadder,111111",
"TrackerP1PXECPanel,111111",
)
)
),
doMisalignmentScenario = False,
checkDbAlignmentValidity = False,
applyDbAlignment = True,
tjTkAssociationMapTag = 'TrackRefitter2',
saveToDB = True,
trackerAlignmentRcdName = "TrackerAlignmentHGRcd"
)

SiPixelAliPedeAlignmentProducerHG.algoConfig = MillePedeAlignmentAlgorithm.clone(
mode = 'pede',
runAtPCL = True,
mergeBinaryFiles = [SiPixelAliMilleFileExtractorHG.outputBinaryFile.value()],
binaryFile = '',
TrajectoryFactory = cms.PSet(BrokenLinesTrajectoryFactory),
minNumHits = 10,
fileDir = 'HGalignment/',
pedeSteerer = dict(
pedeCommand = 'pede',
method = 'inversion 5 0.8',
options = [
#'regularisation 1.0 0.05', # non-stated pre-sigma 50 mrad or 500 mum
'entries 500',
'chisqcut 30.0 4.5',
'threads 1 1',
'closeandreopen',
'skipemptycons'
#'outlierdownweighting 3','dwfractioncut 0.1'
#'outlierdownweighting 5','dwfractioncut 0.2'
],
fileDir = 'HGalignment/',
runDir = 'HGalignment/',
steerFile = 'pedeSteerHG',
pedeDump = 'pedeHG.dump'
),
pedeReader = dict(
fileDir = 'HGalignment/'
),
MillePedeFileReader = dict(
fileDir = "HGalignment/",
isHG = True
)
)

SiPixelAliDQMModuleHG = SiPixelAliDQMModule.clone()
SiPixelAliDQMModuleHG.MillePedeFileReader.fileDir = "HGalignment/"
SiPixelAliDQMModuleHG.MillePedeFileReader.isHG = True

from DQMServices.Core.DQMEDHarvester import DQMEDHarvester
dqmEnvSiPixelAliHG = DQMEDHarvester('DQMHarvestingMetadata',
subSystemFolder = cms.untracked.string('AlCaReco'))

ALCAHARVESTSiPixelAliHG = cms.Sequence(SiPixelAliMilleFileExtractorHG*
SiPixelAliPedeAlignmentProducerHG*
SiPixelAliDQMModuleHG*
dqmEnvSiPixelAliHG)
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@

# update alignables if triggered by corresponding input IOV boundary
enableAlignableUpdates = cms.bool(False),

# Change tracker alignment record name to avoid confusion bettwen HG and LG PCL alignment
trackerAlignmentRcdName = cms.string("TrackerAlignmentRcd")
)
import Geometry.DTGeometryBuilder.dtGeometryDB_cfi
DTGeometryAlignmentProducerAsAnalyzer = Geometry.DTGeometryBuilder.dtGeometryDB_cfi.DTGeometryESModule.clone()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@

# update alignables if triggered by corresponding input IOV boundary
enableAlignableUpdates = cms.bool(False),

# Change tracker alignment record name to avoid confusion bettwen HG and LG PCL alignment
trackerAlignmentRcdName = cms.string("TrackerAlignmentRcd")
)

import Geometry.DTGeometryBuilder.dtGeometryDB_cfi
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import FWCore.ParameterSet.Config as cms

##
## Do not filter out the first 20 LS when
## running the PCL alignment in the RelVal case
##

def doNotFilterLS(process):
if hasattr(process,'lsNumberFilter'):
process.lsNumberFilter.minLS = 1
return process

##
## Required 10 instead of 500 hits per structure
## when running the HG PCL alignment in the RelVal case
##

def lowerHitsPerStructure(process):
if hasattr(process,'SiPixelAliPedeAlignmentProducerHG'):
process.SiPixelAliPedeAlignmentProducerHG.algoConfig.pedeSteerer.options = cms.vstring(
'entries 10',
'chisqcut 30.0 4.5',
'threads 1 1',
'closeandreopen'
)
return process
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ AlignmentProducerBase::AlignmentProducerBase(const edm::ParameterSet& config, ed
saveDeformationsToDB_{config.getParameter<bool>("saveDeformationsToDB")},
useSurvey_{config.getParameter<bool>("useSurvey")},
enableAlignableUpdates_{config.getParameter<bool>("enableAlignableUpdates")},
tkAliRcdName_{config.getParameter<std::string>("trackerAlignmentRcdName")},
ttopoToken_(iC.esConsumes<edm::Transition::BeginRun>()),
geomDetToken_(iC.esConsumes<edm::Transition::BeginRun>()),
ptpToken_(iC.esConsumes<edm::Transition::BeginRun>()),
Expand Down Expand Up @@ -853,8 +854,7 @@ void AlignmentProducerBase::writeForRunRange(cond::Time_t time) {

auto alignments = alignableTracker_->alignments();
auto alignmentErrors = alignableTracker_->alignmentErrors();
this->writeDB(
alignments, "TrackerAlignmentRcd", alignmentErrors, "TrackerAlignmentErrorExtendedRcd", trackerGlobal, time);
this->writeDB(alignments, tkAliRcdName_, alignmentErrors, "TrackerAlignmentErrorExtendedRcd", trackerGlobal, time);

// Save surface deformations to database
if (saveDeformationsToDB_) {
Expand Down
Loading