CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

LASEndcapAlignmentParameterSet Class Reference

#include <LASEndcapAlignmentParameterSet.h>

List of all members.

Public Member Functions

std::pair< double, double > & GetBeamParameter (int aSubdetector, int aRing, int aBeam, int aParameter)
std::pair< double, double > & GetDiskParameter (int aSubdetector, int aDisk, int aParameter)
std::pair< double, double > & GetGlobalParameter (int aSubdetector, int aParameter)
 LASEndcapAlignmentParameterSet ()
void Print (void)

Private Member Functions

void Init (void)

Private Attributes

std::vector< std::vector
< std::vector< std::pair
< double, double > > > > 
tecMinusBeamParameters
std::vector< std::vector
< std::pair< double, double > > > 
tecMinusDiskParameters
std::vector< std::pair< double,
double > > 
tecMinusGlobalParameters
std::vector< std::vector
< std::vector< std::pair
< double, double > > > > 
tecPlusBeamParameters
std::vector< std::vector
< std::pair< double, double > > > 
tecPlusDiskParameters
std::vector< std::pair< double,
double > > 
tecPlusGlobalParameters

Detailed Description

container for storing the alignment parameters calculated by class LASEndcapAlgorithm

structure: for each of the 2 subdetectors (TEC+, TEC-) there's a vector each of these contains nine vector<pair<>>, one for each disk each of those vector has three pair<> entries, one for each parameter (rot, deltaX, deltaY) each entry is a pair containing <parameter,error>

TODO: implement beam & global parameters

Definition at line 27 of file LASEndcapAlignmentParameterSet.h.


Constructor & Destructor Documentation

LASEndcapAlignmentParameterSet::LASEndcapAlignmentParameterSet ( )

Definition at line 10 of file LASEndcapAlignmentParameterSet.cc.

References Init().

                                                               {

  Init();
  
}

Member Function Documentation

std::pair< double, double > & LASEndcapAlignmentParameterSet::GetBeamParameter ( int  aSubdetector,
int  aRing,
int  aBeam,
int  aParameter 
)

function for accessing a single beam parameter (pair<>); indices are: aSubdetector = 0 (TEC+), 1 (TEC-) aBeam = 0..7 aParameter: 0 (deltaPhi on disk0), 1 (deltaPhi on disk8),

Definition at line 143 of file LASEndcapAlignmentParameterSet.cc.

References Exception, tecMinusBeamParameters, and tecPlusBeamParameters.

Referenced by LASEndcapAlgorithm::CalculateParameters(), LASEndcapAlgorithm::GetAlignmentParameterCorrection(), and Print().

                                                                                                                                 {
  
  if( aSubdetector < 0 || aSubdetector > 1 ) {
    throw cms::Exception( "Laser Alignment" ) << " [LASEndcapAlignmentParameterSet::GetBeamParameter] ERROR ** Illegal subdetector index: " << aSubdetector << "." << std::endl;
  }

  if( aRing < 0 || aRing > 1 ) {
    throw cms::Exception( "Laser Alignment" ) << " [LASEndcapAlignmentParameterSet::GetBeamParameter] ERROR ** Illegal ring index: " << aRing << "." << std::endl;
  }

  if( aBeam < 0 || aBeam > 7 ) {
    throw cms::Exception( "Laser Alignment" ) << " [LASEndcapAlignmentParameterSet::GetBeamParameter] ERROR ** Illegal beam index: " << aBeam << "." << std::endl;
  }

  if( aParameter < 0 || aParameter > 5 ) {
    throw cms::Exception( "Laser Alignment" ) << " [LASEndcapAlignmentParameterSet::GetBeamParameter] ERROR ** Illegal parameter index: " << aParameter << "." << std::endl;
  }

  if( aSubdetector == 0 ) return tecPlusBeamParameters.at( aBeam ).at( aRing ).at( aParameter );
  return tecMinusBeamParameters.at( aBeam ).at( aRing ).at( aParameter );

}
std::pair< double, double > & LASEndcapAlignmentParameterSet::GetDiskParameter ( int  aSubdetector,
int  aDisk,
int  aParameter 
)

function for accessing a single disk parameter (pair<>); indices are: aSubdetector = 0 (TEC+), 1 (TEC-) aDisk = 0..8 (from inner to outer) aParameter: 0 (rotation angle), 1 (x displacement), 2 (y displacement)

Definition at line 85 of file LASEndcapAlignmentParameterSet.cc.

References Exception, tecMinusDiskParameters, and tecPlusDiskParameters.

Referenced by LASEndcapAlgorithm::CalculateParameters(), LASGeometryUpdater::EndcapUpdate(), LASEndcapAlgorithm::GetAlignmentParameterCorrection(), Print(), and LASGeometryUpdater::TrackerUpdate().

                                                                                                                      {

  if( aSubdetector < 0 || aSubdetector > 1 ) {
    throw cms::Exception( "Laser Alignment" ) << " [LASEndcapAlignmentParameterSet::GetDiskParameter] ERROR ** Illegal subdetector index: " << aSubdetector << "." << std::endl;
  }

  if( aDisk < 0 || aDisk > 8 ) {
    throw cms::Exception( "Laser Alignment" ) << " [LASEndcapAlignmentParameterSet::GetDiskParameter] ERROR ** Illegal disk index: " << aDisk << "." << std::endl;
  }
  
  if( aParameter < 0 || aParameter > 2 ) {
    throw cms::Exception( "Laser Alignment" ) << " [LASEndcapAlignmentParameterSet::GetDiskParameter] ERROR ** Illegal parameter index: " << aParameter << "." << std::endl;
  }


  if( aSubdetector == 0 ) return tecPlusDiskParameters.at( aDisk ).at( aParameter );
  return tecMinusDiskParameters.at( aDisk ).at( aParameter );

}
std::pair< double, double > & LASEndcapAlignmentParameterSet::GetGlobalParameter ( int  aSubdetector,
int  aParameter 
)

function for accessing a single global parameter (pair<>); indices are: aSubdetector = 0 (TEC+), 1 (TEC-) aParameter: 0 (global rotation), 1 (global torsion), 2 (global x shift), 3 (global x shear), 4 (global y shift), 5 (global y shear)

Definition at line 117 of file LASEndcapAlignmentParameterSet.cc.

References Exception, tecMinusGlobalParameters, and tecPlusGlobalParameters.

Referenced by LASEndcapAlgorithm::CalculateParameters(), LASEndcapAlgorithm::GetAlignmentParameterCorrection(), and Print().

                                                                                                             {
  
  if( aSubdetector < 0 || aSubdetector > 1 ) {
    throw cms::Exception( "Laser Alignment" ) << " [LASEndcapAlignmentParameterSet::GetGlobalParameter] ERROR ** Illegal subdetector index: " << aSubdetector << "." << std::endl;
  }

  if( aParameter < 0 || aParameter > 5 ) {
    throw cms::Exception( "Laser Alignment" ) << " [LASEndcapAlignmentParameterSet::GetGlobalParameter] ERROR ** Illegal parameter index: " << aParameter << "." << std::endl;
  }

  if( aSubdetector == 0 ) return tecPlusGlobalParameters.at( aParameter );
  return tecMinusGlobalParameters.at( aParameter );

}
void LASEndcapAlignmentParameterSet::Init ( void  ) [private]

whatever initialization is needed

Definition at line 23 of file LASEndcapAlignmentParameterSet.cc.

References relativeConstraints::ring, tecMinusBeamParameters, tecMinusDiskParameters, tecMinusGlobalParameters, tecPlusBeamParameters, tecPlusDiskParameters, and tecPlusGlobalParameters.

Referenced by LASEndcapAlignmentParameterSet().

                                                {

  // could use a single vector<vector<vector<pair<> > > >
  // but better split it in 2 parts

  for( unsigned int disk = 0; disk < 9; ++disk ) { // nine times; once for each disk
    tecPlusDiskParameters.push_back ( std::vector<std::pair<double,double> >( 3 ) );
    tecMinusDiskParameters.push_back( std::vector<std::pair<double,double> >( 3 ) );
    
    // compiler won't let me init the pairs within push_back call..
    for( unsigned int par = 0; par < 3; ++par ) {
      tecPlusDiskParameters.at( disk ).at( par ) = std::pair<double,double>( 0., 0. );
      tecMinusDiskParameters.at( disk ).at( par ) = std::pair<double,double>( 0., 0. );
    }

  }

  // once for each parameter
  for( unsigned int par = 0; par < 6; ++par ) {
    tecPlusGlobalParameters.push_back( std::pair<double,double>( 0., 0. ) );
    tecMinusGlobalParameters.push_back( std::pair<double,double>( 0., 0. ) );
  }


  // beam parameters
  tecPlusBeamParameters.resize( 8 );
  tecMinusBeamParameters.resize( 8 );
  
  // now once for each beam: the 2 rings
  for( unsigned int beam = 0; beam < 8; ++beam ) {
    
    tecPlusBeamParameters.at( beam ).resize( 2 );
    tecMinusBeamParameters.at( beam ).resize( 2 );
    
    // now once for each ring: the 2 parameters
    for( unsigned int ring = 0; ring < 2; ++ring ) {
      tecPlusBeamParameters.at( beam ).at( ring ).resize( 2 );
      tecMinusBeamParameters.at( beam ).at( ring ).resize( 2 );
      
      // now once for each parameter: the pairs (value/error)
      for( unsigned int par = 0; par < 2; ++par ) {
        tecPlusBeamParameters.at( beam ).at( ring ).at( par ) = std::pair<double,double>( 0., 0. );
        tecMinusBeamParameters.at( beam ).at( ring ).at( par ) = std::pair<double,double>( 0., 0. );
      }

    }
      
  }

}
void LASEndcapAlignmentParameterSet::Print ( void  )

pretty-printout of all parameter and error values

Definition at line 173 of file LASEndcapAlignmentParameterSet.cc.

References gather_cfg::cout, GetBeamParameter(), GetDiskParameter(), GetGlobalParameter(), and relativeConstraints::ring.

Referenced by LaserAlignment::endRun().

                                                 {
  
  std::cout << " [LASEndcapAlignmentParameterSet::Print] -- Listing parameters:" << std::endl;
  std::cout << std::endl;
  std::cout << "  Disk parameters:" << std::endl;
  std:: cout << " ----------------" << std::endl;
  for( int det = 0; det < 2; ++det ) {
    std::cout << "  " << (det==0 ? "TEC+" : "TEC-") << ":          dPHI \xb1  \bE                 dX \xb1  \bE                 dY \xb1  \bE          (rad/mm): " << std::endl;
    for( int disk = 0; disk < 9; ++disk ) {
      std::cout << "  disk " << disk << ": ";
      for( int par = 0; par < 3; ++par ) std::cout << std::right << std::setw( 11 ) << std::fixed << std::setprecision( 6 ) << GetDiskParameter( det, disk, par ).first 
                                                   << " \xb1 " << std::left << std::setw( 9 ) << std::fixed << std::setprecision( 6 ) << GetDiskParameter( det, disk, par ).second;
      std::cout << std::endl;
    }
  }

  for( int det = 0; det < 2; ++det ) {
    std::cout << "  " << (det==0 ? "TEC+" : "TEC-") << " global parameters in format: dPhi0\xb1 \be  dPhiT\xb1 \be  dX0\xb1 \be  dXT\xb1 \be  dY0\xb1 \be  dYT\xb1 \be (rad/mm): " << std::endl;
    for( int par = 0; par < 6; ++par ) std::cout << std::setw( 11 ) << std::setprecision( 6 ) << std::right << GetGlobalParameter( det, par ).first 
                                                 << " \xb1 " << std::setw( 9 ) << std::setprecision( 6 ) << std::left << GetGlobalParameter( det, par ).second;
    std::cout << std::endl;
  }

  for( int det = 0; det < 2; ++det ) {
    std::cout << "  " << (det==0 ? "TEC+" : "TEC-") << " beam parameters in format: dPhi1\xb1 \be dPhi2\xb1 \be (rad): " << std::endl;
    for( int ring = 0; ring < 2; ++ring ) {
      std::cout << "   ring " << (ring==0?"4":"6") << ": " << std::endl;
      for( int beam = 0; beam < 8; ++beam ) {
        std::cout << "     beam " << beam << ": ";
        for( int par = 0; par < 2; ++par ) std::cout << std::setw( 11 ) << std::setprecision( 6 ) << std::right << GetBeamParameter( det, ring, beam, par ).first 
                                                     << " \xb1 " << std::setw( 9 ) << std::setprecision( 6 ) << std::left << GetBeamParameter( det, ring, beam, par ).second;
        std::cout << std::endl;
      }
    }
  }

  std::cout << " [LASEndcapAlignmentParameterSet::Print] -- End of list." << std::endl << std::endl;

}

Member Data Documentation

std::vector<std::vector<std::vector<std::pair<double,double> > > > LASEndcapAlignmentParameterSet::tecMinusBeamParameters [private]

Definition at line 44 of file LASEndcapAlignmentParameterSet.h.

Referenced by GetBeamParameter(), and Init().

std::vector<std::vector<std::pair<double,double> > > LASEndcapAlignmentParameterSet::tecMinusDiskParameters [private]

Definition at line 40 of file LASEndcapAlignmentParameterSet.h.

Referenced by GetDiskParameter(), and Init().

std::vector<std::pair<double,double> > LASEndcapAlignmentParameterSet::tecMinusGlobalParameters [private]

Definition at line 42 of file LASEndcapAlignmentParameterSet.h.

Referenced by GetGlobalParameter(), and Init().

std::vector<std::vector<std::vector<std::pair<double,double> > > > LASEndcapAlignmentParameterSet::tecPlusBeamParameters [private]

Definition at line 43 of file LASEndcapAlignmentParameterSet.h.

Referenced by GetBeamParameter(), and Init().

std::vector<std::vector<std::pair<double,double> > > LASEndcapAlignmentParameterSet::tecPlusDiskParameters [private]

Definition at line 39 of file LASEndcapAlignmentParameterSet.h.

Referenced by GetDiskParameter(), and Init().

std::vector<std::pair<double,double> > LASEndcapAlignmentParameterSet::tecPlusGlobalParameters [private]

Definition at line 41 of file LASEndcapAlignmentParameterSet.h.

Referenced by GetGlobalParameter(), and Init().