Uploading Survey Information to Database

Complete: 3


Survey measurements are used for application to alignment jointly with tracks. Currently, these measurements are being implemented for use in Alignment using the HIP Algorithm, and implementation in other algorithms (Millepede, Kalman Filter) is under development. The output of uploading the survey information is two POOL-ORA objects. They are the 'TrackerSurveyRcd', which holds values of the alignment parameters from survey, and the 'TrackerSurveyErrorRcd', which holds the errors of the alignment parameters of hierarchical structures from survey and mechanical stability estimates.. These data records are filled by the use of a text file of a certain format which initially holds all survey information.

Database Objects

The database objects 'TrackerSurveyRcd' and 'TrackerSurveyErrorRcd' hold the survey measurements. 'TrackerSurveyRcd' stores the global positions and orientations of each module, the lowest hierarchical object. The 'TrackerSurveyRcd' contains the module ID, a 32-bit unsigned integer, 3 values for the global position of the module, and 3 values for the Euler angles of the orientation. 'TrackerSurveyErrorRcd' holds the errors in a symmetric 6x6 covariance matrix, where the 6 elements define the structure's displacement as a translation and a rotation vector. Transaltions are given in units of centimeters and rotations are given in units of radians. This requires 21 elements numbered below:

2 3        
4 5 6      
7 8 9 10    
11 12 13 14 15  
16 17 18 19 20 21
In addition, the 'TrackerSurveyRcd' holds a covariance matrix for each hierarchical object, not just the lowest level. The errors are given in the local coordinate system of the structure in question. For example, the hierarchy for the Pixels is given as:


Input Formats

To create these database object, survey measurements must be inputted from a source. This can be currently done in two ways: using a text file or using another database object holding "prior information" in 'TrackerAlignmentRcd'. The second option is currently being used for inputting a misalignment scenario as "survey information"

From a Text File

Each alignable object is defined by its RawId and AlignableObjectId. The RawId is defined for lowest level hierarchical objects (modules) and for composite objects (higher level structures) are defined as the RawId of its first daughter. Each alignable object has associated with it a displacements and rotation (6 values) and elements for its covariance matrix (21 elements). Comments are allowed in this text file by preceeding a line with '#'. To defined an alignable's AlignableObjectId, the syntax is as follows:

!Structure AlignableObjectId

The AlignableObjectId strings are defined in Alignment/CommonAlignment/interface/AlignableObjectId.h

Within the text file, an AlignableObjectId is defined, then we fill the values for each alignable object into 28 columns. The first column is the RawId, then 6 columns for displacements and rotations, and 21 columns for the covariance matrix. An example of a text file is given here.

Survey Values From a Database Object

One is also able to fill the 'TrackerSurveyRcd' using another database file that contains positions/orientations of modules using the 'TrackerAlignmentRcd'. It reads directly from one database file and copies the values into the 'TrackerSurveyRcd'. It is important to note that it does not copy the 'TrackerAlignmentErrorRcd' valus to the 'TrackerSurveyErrorRcd'. The two records are incompatible. Errors are still taken from the text file.

Technical Implementation

This package resides in Alignment/SurveyAnalysis. Below is given a sample configuration for a text file input:

process TEST =
  include "FWCore/CMS.MessageService/data/MessageLogger.cfi"
  include "Geometry/CMSCommonData/data/cmsIdealGeometryXML.cfi"
  include "Geometry/TrackerNumberingBuilder/data/trackerNumberingGeometry.cfi"
  include "CondCore/DBCommon/data/CondDBSetup.cfi"
  include "Alignment/SurveyAnalysis/test/dbSetup.cfi"

  source = EmptySource {}

  untracked PSet maxEvents = { untracked int32 input = 0 }

  module tracker = SurveyInputTrackerFromDB {
    string textFileName = "dummyResults.txt"

  module uploader = SurveyDBUploader
    string valueRcd = "TrackerSurveyRcd"
    string errorRcd = "TrackerSurveyErrorRcd"

  service = PoolDBOutputService
    using CondDBSetup

    string connect  = "sqlite_file:../Alignments.db"    
    string timetype = "runnumber"    
    untracked string catalog = "file:../conddbcatalog.xml"

    VPSet toPut = { {using surveyValueRcd}, {using surveyErrorRcd} }

  path p = { tracker, uploader }

Review Status

Editor/Reviewer and date Comments
Main.ntran - 14 Jun 2007 Page content last edited

Responsible: Main.ntran
Last reviewed by:

  • chi-pixel-lhc-v2.PNG:

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng chi-pixel-lhc-v2.PNG r1 manage 246.0 K 2007-06-26 - 20:25 UnknownUser  
Unknown file formateps chi-pixel-lhc-v2.eps r1 manage 2040.3 K 2007-06-26 - 20:14 UnknownUser  
Edit | Attach | Watch | Print version | History: r7 < r6 < r5 < r4 < r3 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r7 - 2007-10-11 - NhanTran

    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback