Skip to content

Commit 42011e2

Browse files
committed
Merge pull request cms-sw#2389 from hroskes/systematic-misalignments-angles-71X
Alignment/TrackerAlignment -- Update to tracker alignment systematic misalignment tools
2 parents 81da19f + b48f1e6 commit 42011e2

4 files changed

+53
-18
lines changed

Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.cc

+14-9
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,11 @@ TrackerSystematicMisalignments::TrackerSystematicMisalignments(const edm::Parame
4848
m_twistEpsilon = cfg.getUntrackedParameter< double > ("twistEpsilon");
4949
m_ellipticalEpsilon = cfg.getUntrackedParameter< double > ("ellipticalEpsilon");
5050
m_skewEpsilon = cfg.getUntrackedParameter< double > ("skewEpsilon");
51-
m_saggitaEpsilon = cfg.getUntrackedParameter< double > ("saggitaEpsilon");
51+
m_sagittaEpsilon = cfg.getUntrackedParameter< double > ("sagittaEpsilon");
52+
53+
m_ellipticalDelta = cfg.getUntrackedParameter< double > ("ellipticalDelta");
54+
m_skewDelta = cfg.getUntrackedParameter< double > ("skewDelta");
55+
m_sagittaDelta = cfg.getUntrackedParameter< double > ("sagittaDelta");
5256

5357
if (m_radialEpsilon > -990.0){
5458
edm::LogWarning("MisalignedTracker") << "Applying radial ...";
@@ -74,8 +78,8 @@ TrackerSystematicMisalignments::TrackerSystematicMisalignments(const edm::Parame
7478
if (m_skewEpsilon > -990.0){
7579
edm::LogWarning("MisalignedTracker") << "Applying skew ...";
7680
}
77-
if (m_saggitaEpsilon > -990.0){
78-
edm::LogWarning("MisalignedTracker") << "Applying saggita ...";
81+
if (m_sagittaEpsilon > -990.0){
82+
edm::LogWarning("MisalignedTracker") << "Applying sagitta ...";
7983
}
8084

8185
// get flag for suppression of blind movements
@@ -239,15 +243,16 @@ align::GlobalVector TrackerSystematicMisalignments::findSystematicMis( const ali
239243
deltaY += (yP - oldY);
240244
}
241245
if (m_ellipticalEpsilon > -990.0 && !blindToR){
242-
deltaX += oldX*m_ellipticalEpsilon*cos(2.0*oldPhi);
243-
deltaY += oldY*m_ellipticalEpsilon*cos(2.0*oldPhi);
246+
deltaX += oldX*m_ellipticalEpsilon*cos(2.0*oldPhi + m_ellipticalDelta);
247+
deltaY += oldY*m_ellipticalEpsilon*cos(2.0*oldPhi + m_ellipticalDelta);
244248
}
245249
if (m_skewEpsilon > -990.0 && !blindToZ){
246-
deltaZ += m_skewEpsilon*cos(oldPhi);
250+
deltaZ += m_skewEpsilon*cos(oldPhi + m_skewDelta);
247251
}
248-
if (m_saggitaEpsilon > -990.0){
249-
// deltaX += oldX/fabs(oldX)*m_saggitaEpsilon; // old one...
250-
deltaY += oldR*m_saggitaEpsilon;
252+
if (m_sagittaEpsilon > -990.0){
253+
// deltaX += oldX/fabs(oldX)*m_sagittaEpsilon; // old one...
254+
deltaX += oldR*m_sagittaEpsilon*sin(m_sagittaDelta);
255+
deltaY += oldR*m_sagittaEpsilon*cos(m_sagittaDelta); //Delta y is cos so that delta=0 reflects the old behavior
251256
}
252257

253258
// Compatibility with old version <= 1.5

Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.h

+6-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,12 @@ public edm::EDAnalyzer
5757
double m_twistEpsilon;
5858
double m_ellipticalEpsilon;
5959
double m_skewEpsilon;
60-
double m_saggitaEpsilon;
60+
double m_sagittaEpsilon;
61+
62+
//misalignment phases
63+
double m_ellipticalDelta;
64+
double m_skewDelta;
65+
double m_sagittaDelta;
6166

6267
// flag to steer suppression of blind movements
6368
bool suppressBlindMvmts;

Alignment/TrackerAlignment/python/TrackerSystematicMisalignments_cfi.py

+14-5
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,22 @@
66
#epsilons
77
radialEpsilon = cms.untracked.double(-999.0), # default 5e-4 ~ 600 um
88
telescopeEpsilon = cms.untracked.double(-999.0), # default 5e-4 ~ 600 um
9-
layerRotEpsilon = cms.untracked.double(-999.0), # 9.43e-6
10-
bowingEpsilon = cms.untracked.double(-999.0), #6.77e-9
9+
layerRotEpsilon = cms.untracked.double(-999.0), # 9.43e-6 mm^-1
10+
bowingEpsilon = cms.untracked.double(-999.0), #6.77e-9 mm^-2
1111
zExpEpsilon = cms.untracked.double(-999.0), # 2.02e-4
12-
twistEpsilon = cms.untracked.double(-999.0),# 2.04e-6
12+
twistEpsilon = cms.untracked.double(-999.0),# 2.04e-6 mm^-1
1313
ellipticalEpsilon = cms.untracked.double(-999.0), # 5e-4
14-
skewEpsilon = cms.untracked.double(-999.0), # 5.5e-2
15-
saggitaEpsilon = cms.untracked.double(-999.0), #5.0e-4
14+
skewEpsilon = cms.untracked.double(-999.0), # 5.5e-2 mm
15+
sagittaEpsilon = cms.untracked.double(-999.0), #5.0e-4
16+
17+
#misalignment phases
18+
#0 <= delta < 2pi, epsilon >= 0 for unique results
19+
#delta=0 reproduces the old behavior
20+
21+
ellipticalDelta = cms.untracked.double(0),
22+
skewDelta = cms.untracked.double(0),
23+
sagittaDelta = cms.untracked.double(0),
24+
1625
# suppress blind movements
1726
suppressBlindMvmts = cms.untracked.bool(False),
1827
# compatibility flag for old z convention

Alignment/TrackerAlignment/test/testProduceSystematicMisalignment_cfg.py

+19-3
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,30 @@
3131
record = cms.string('TrackerAlignmentErrorRcd'),
3232
tag = cms.string('AlignmentErrors')
3333
)),
34-
connect = cms.string('sqlite_file:/afs/cern.ch/cms/CAF/CMSALCA/ALCA_TRACKERALIGN/HIP/alignmentRcds/AllSurveyButTIBTIDGlobal_FPixBPix_wErrs_v2.db')
34+
connect = cms.string('sqlite_file:inputdbfile.db')
3535
)
3636

3737

3838
# input
3939
process.load("Alignment.TrackerAlignment.TrackerSystematicMisalignments_cfi")
4040
process.TrackerSystematicMisalignments.fromDBGeom = True
41-
process.TrackerSystematicMisalignments.radialEpsilon = 5e-4 # default 5e-4 ~ 600 um
41+
42+
#uncomment one or more of these to apply the misalignment(s)
43+
44+
#process.TrackerSystematicMisalignments.radialEpsilon = 5.00e-4 # default 5e-4 ~ 600 um
45+
#process.TrackerSystematicMisalignments.telescopeEpsilon = 5.00e-4 # default 5e-4 ~ 600 um
46+
#process.TrackerSystematicMisalignments.layerRotEpsilon = 9.43e-6 # 9.43e-6
47+
#process.TrackerSystematicMisalignments.bowingEpsilon = 6.77e-9 # 6.77e-9
48+
#process.TrackerSystematicMisalignments.zExpEpsilon = 2.02e-4 # 2.02e-4
49+
#process.TrackerSystematicMisalignments.twistEpsilon = 2.04e-6 # 2.04e-6
50+
#process.TrackerSystematicMisalignments.ellipticalEpsilon = 5.00e-4 # 5e-4
51+
#process.TrackerSystematicMisalignments.skewEpsilon = 5.5e-2 # 5.5e-2
52+
#process.TrackerSystematicMisalignments.sagittaEpsilon = 5.00e-4 # 5.0e-4
53+
54+
#misalignment phases
55+
process.TrackerSystematicMisalignments.ellipticalDelta = 0
56+
process.TrackerSystematicMisalignments.skewDelta = 0
57+
process.TrackerSystematicMisalignments.sagittaDelta = 0
4258

4359
# output
4460
process.PoolDBOutputService = cms.Service("PoolDBOutputService",
@@ -51,7 +67,7 @@
5167
record = cms.string('TrackerAlignmentErrorRcd'),
5268
tag = cms.string('AlignmentErrors')
5369
)),
54-
connect = cms.string('sqlite_file:test.db')
70+
connect = cms.string('sqlite_file:outputdbfile.db')
5571
)
5672

5773
process.p = cms.Path( process.TrackerSystematicMisalignments )

0 commit comments

Comments
 (0)