#include <LASGlobalData.h>
Public Types | |
enum | Beam { BEAM0, BEAM1, BEAM2, BEAM3, BEAM4, BEAM5, BEAM6, BEAM7 } |
enum | Subdetector { TECPLUS, TECMINUS, TIB, TOB } |
enum | TecDisk { DISK1, DISK2, DISK3, DISK4, DISK5, DISK6, DISK7, DISK8, DISK9 } |
enum | TecRing { RING4, RING6 } |
enum | TibTobPosition { MINUS3, MINUS2, MINUS1, PLUS1, PLUS2, PLUS3 } |
Public Member Functions | |
T & | GetTEC2TECEntry (int subdetector, int beam, int tecDisk) |
T & | GetTECEntry (int subdetector, int tecRing, int beam, int tecDisk) |
T & | GetTIBTOBEntry (int subdetector, int beam, int tibTobPosition) |
LASGlobalData (const T &) | |
LASGlobalData () | |
void | SetTEC2TECEntry (int subdetector, int beam, int tecDisk, T) |
void | SetTECEntry (int subdetector, int tecRing, int beam, int tecDisk, T) |
void | SetTIBTOBEntry (int subdetector, int beam, int tibTobPosition, T) |
Private Member Functions | |
ClassDef (LASGlobalData, 2) | |
void | Init (const T &in=T()) |
Private Attributes | |
std::vector< std::vector< T > > | tecMinusATData |
std::vector< std::vector < std::vector< T > > > | tecMinusData |
std::vector< std::vector< T > > | tecPlusATData |
std::vector< std::vector < std::vector< T > > > | tecPlusData |
std::vector< std::vector< T > > | tibData |
std::vector< std::vector< T > > | tobData |
Container class for storing and easy access to global LAS data
There is one entry of type T for each LAS module, e.g. beam profiles, position, name, ... All identifiers (beam,subdetector,position,...) start with index 0. Note that some ring 4 TEC modules are hit by either TEC internal as well as by AT beams and are therefore considered twice in the container (once in tec<X>Data and once in tec<X>ATData). Do not instantiate this class with bool.
Short LAS geometry reminder:
Definition at line 31 of file LASGlobalData.h.
enum LASGlobalData::Beam |
enum LASGlobalData::Subdetector |
enum LASGlobalData::TecDisk |
enum LASGlobalData::TecRing |
enum LASGlobalData::TibTobPosition |
LASGlobalData< T >::LASGlobalData | ( | ) |
LASGlobalData< T >::LASGlobalData | ( | const T & | in | ) |
Definition at line 79 of file LASGlobalData.h.
LASGlobalData< T >::ClassDef | ( | LASGlobalData< T > | , |
2 | |||
) | [private] |
T & LASGlobalData< T >::GetTEC2TECEntry | ( | int | theDetector, |
int | theBeam, | ||
int | theDisk | ||
) |
get a tec AT entry (ring 4) from the container according to subdetector, beam and disk number
Definition at line 142 of file LASGlobalData.h.
References benchmark_cfg::cerr.
Referenced by LaserAlignment::ApplyATMaskingCorrections(), LaserAlignment::beginJob(), LASAlignmentTubeAlgorithm::CalculateParameters(), RawDataConverter::ClearData(), LaserAlignment::DumpPosFileSet(), LASGeometryUpdater::EndcapUpdate(), LaserAlignment::endRun(), fcn(), LaserAlignment::fillDataProfiles(), LaserAlignmentT0ProducerDQM::FillFromProcessedDigis(), LaserAlignmentT0ProducerDQM::FillFromRawDigis(), LaserAlignment::fillPedestalProfiles(), RawDataConverter::GetDigis(), LASAlignmentTubeAlgorithm::GetTEC2TECAlignmentParameterCorrection(), LaserAlignment::produce(), LASAlignmentTubeAlgorithm::ReadMisalignmentFromFile(), LASBarrelAlgorithm::ReadMisalignmentFromFile(), and LaserAlignment::testRoutine().
{ // do a range check first if( !( ( theDetector == 0 || theDetector == 1 ) && // TEC+ or TEC- ( theBeam >= 0 && theBeam < 8 ) && // eight AT beams in a TEC ( theDisk >= 0 && theDisk < 6 ) ) ) { // disk1...disk5 are hit by AT std::cerr << " [LASGlobalData::GetTEC2TECEntry] ** ERROR: illegal coordinates:" << std::endl; std::cerr << " detector " << theDetector << ", beam " << theBeam << ", disk " << theDisk << "." << std::endl; throw " Bailing out."; // @@@ REPLACE THIS BY cms::Exception (<FWCore/Utilities/interface/Exception.h> in 1_3_6) } else { if( theDetector == 0 ) return( tecPlusATData.at( theBeam ).at( theDisk ) ); else return( tecMinusATData.at( theBeam ).at( theDisk ) ); } }
T & LASGlobalData< T >::GetTECEntry | ( | int | theDetector, |
int | theRing, | ||
int | theBeam, | ||
int | theDisk | ||
) |
get a tec entry from the container according to subdetector, ring, beam and disk number
Definition at line 91 of file LASGlobalData.h.
References benchmark_cfg::cerr.
Referenced by LASGeometryUpdater::ApplyBeamKinkCorrections(), LaserAlignment::ApplyEndcapMaskingCorrections(), LaserAlignment::beginJob(), LASEndcapAlgorithm::CalculateParameters(), RawDataConverter::ClearData(), LaserAlignment::DumpHitmaps(), LaserAlignment::DumpPosFileSet(), LaserAlignment::endRun(), LaserAlignment::fillDataProfiles(), LaserAlignmentT0ProducerDQM::FillFromProcessedDigis(), LaserAlignmentT0ProducerDQM::FillFromRawDigis(), LaserAlignment::fillPedestalProfiles(), LASEndcapAlgorithm::GetAlignmentParameterCorrection(), RawDataConverter::GetDigis(), LaserAlignment::isTECBeam(), LaserAlignment::produce(), LASAlignmentTubeAlgorithm::ReadMisalignmentFromFile(), LASBarrelAlgorithm::ReadMisalignmentFromFile(), and LaserAlignment::testRoutine().
{ // do a range check first if( !( ( theDetector == 0 || theDetector == 1 ) && // TEC+ or TEC- ( theRing == 0 || theRing == 1 ) && // ring4 or ring6 ( theBeam >= 0 && theBeam < 8 ) && // eight beams in a TEC ( theDisk >= 0 && theDisk < 9 ) ) ) { // disk1..disk9 std::cerr << " [LASGlobalData::GetTECEntry] ** ERROR: illegal input coordinates:" << std::endl; std::cerr << " detector " << theDetector << ", ring " << theRing << ", beam " << theBeam << ", disk " << theDisk << "." << std::endl; throw " Bailing out."; // @@@ REPLACE THIS BY cms::Exception (<FWCore/Utilities/interface/Exception.h> in 1_3_6) } else { if( theDetector == 0 ) return( tecPlusData.at( theRing ).at( theBeam ).at( theDisk ) ); else return( tecMinusData.at( theRing ).at( theBeam ).at( theDisk ) ); } }
T & LASGlobalData< T >::GetTIBTOBEntry | ( | int | theDetector, |
int | theBeam, | ||
int | thePosition | ||
) |
get a tib/tob entry from the container according to subdetector, beam and position (z) number
Definition at line 117 of file LASGlobalData.h.
References benchmark_cfg::cerr.
Referenced by LaserAlignment::ApplyATMaskingCorrections(), LaserAlignment::beginJob(), LASAlignmentTubeAlgorithm::CalculateParameters(), RawDataConverter::ClearData(), LaserAlignment::DumpPosFileSet(), LaserAlignment::endRun(), fcn(), LaserAlignment::fillDataProfiles(), LaserAlignmentT0ProducerDQM::FillFromProcessedDigis(), LaserAlignmentT0ProducerDQM::FillFromRawDigis(), LaserAlignment::fillPedestalProfiles(), RawDataConverter::GetDigis(), LASAlignmentTubeAlgorithm::GetTIBTOBAlignmentParameterCorrection(), LaserAlignment::isATBeam(), LaserAlignment::produce(), LASAlignmentTubeAlgorithm::ReadMisalignmentFromFile(), LASBarrelAlgorithm::ReadMisalignmentFromFile(), and LaserAlignment::testRoutine().
{ // do a range check first if( !( ( theDetector == 2 || theDetector == 3 ) && // TIB or TOB ( theBeam >= 0 && theBeam < 8 ) && // there are eight AT beams ( thePosition >= 0 && thePosition < 6 ) ) ) { // z-pos -3 .. z-pos +3 std::cerr << " [LASGlobalData::GetTIBTOBEntry] ** ERROR: illegal coordinates:" << std::endl; std::cerr << " detector " << theDetector << ", beam " << theBeam << ", position " << thePosition << "." << std::endl; throw " Bailing out."; // @@@ REPLACE THIS BY cms::Exception (<FWCore/Utilities/interface/Exception.h> in 1_3_6) } else { if( theDetector == 2 ) return( tibData.at( theBeam ).at( thePosition ) ); else return( tobData.at( theBeam ).at( thePosition ) ); } }
void LASGlobalData< T >::Init | ( | const T & | in = T() | ) | [private] |
Definition at line 282 of file LASGlobalData.h.
References relativeConstraints::ring.
{ // create TEC+ subdetector "multi"-vector of T tecPlusData.resize( 2 ); // create ring4 and ring6 for( unsigned int ring = 0; ring < tecPlusData.size(); ++ring ) { tecPlusData.at( ring ).resize( 8 ); // create 8 beams for each ring for( unsigned int beam = 0; beam < tecPlusData.at( ring ).size(); ++beam ) { tecPlusData.at( ring ).at( beam ).resize( 9 , in); // create 9 disks for each beam } } // same for TEC- tecMinusData.resize( 2 ); // create ring4 and ring6 for( unsigned int ring = 0; ring < tecMinusData.size(); ++ring ) { tecMinusData.at( ring ).resize( 8 ); // create 8 beams for each ring for( unsigned int beam = 0; beam < tecMinusData.at( ring ).size(); ++beam ) { tecMinusData.at( ring ).at( beam ).resize( 9, in ); // create 9 disks for each beam } } // same for TEC+ AT tecPlusATData.resize( 8 ); // create 8 beams for( unsigned int beam = 0; beam < tecPlusATData.size(); ++beam ) { tecPlusATData.at( beam ).resize( 5, in ); // five TEC disks hit by each AT beam } // same for TEC- AT tecMinusATData.resize( 8 ); // create 8 beams for( unsigned int beam = 0; beam < tecMinusATData.size(); ++beam ) { tecMinusATData.at( beam ).resize( 5, in ); // five TEC disks hit by each AT beam } // same for TIB.. tibData.resize( 8 ); // create 8 beams for( unsigned int beam = 0; beam < tibData.size(); ++ beam ) { tibData.at( beam ).resize( 6, in ); // six TIB modules hit by each beam } // ..and for TOB tobData.resize( 8 ); // create 8 beams for( unsigned int beam = 0; beam < tobData.size(); ++ beam ) { tobData.at( beam ).resize( 6, in ); // six TOB modules hit by each beam } }
void LASGlobalData< T >::SetTEC2TECEntry | ( | int | theDetector, |
int | theBeam, | ||
int | theDisk, | ||
T | theEntry | ||
) |
set a tec AT entry (ring 4) in the container according to subdetector, beam and disk number
Definition at line 221 of file LASGlobalData.h.
References benchmark_cfg::cerr.
Referenced by LaserAlignment::beginJob(), LaserAlignment::CalculateNominalCoordinates(), LaserAlignment::endRun(), LaserAlignmentT0ProducerDQM::FillDetectorId(), LaserAlignment::fillDetectorId(), and RawDataConverter::fillDetectorId().
{ // do a range check first if( !( ( theDetector == 0 || theDetector == 1 ) && // TEC+ or TEC- ( theBeam >= 0 && theBeam < 8 ) && // eight beams in a TEC ( theDisk >= 0 && theDisk < 6 ) ) ) { // disk1..disk5 for TEC AT std::cerr << " [LASGlobalData::SetTEC2TECEntry] ** ERROR: illegal coordinates:" << std::endl; std::cerr << " detector " << theDetector << ", beam " << theBeam << ", disk " << theDisk << "." << std::endl; throw " Bailing out."; // @@@ REPLACE THIS BY cms::Exception (<FWCore/Utilities/interface/Exception.h> in 1_3_6) } else { if( theDetector == 0 ) tecPlusATData.at( theBeam ).at( theDisk ) = theEntry; else tecMinusATData.at( theBeam ).at( theDisk ) = theEntry; } }
void LASGlobalData< T >::SetTECEntry | ( | int | theDetector, |
int | theRing, | ||
int | theBeam, | ||
int | theDisk, | ||
T | theEntry | ||
) |
set a tec entry int the container according to subdetector, ring, beam and disk number
Definition at line 168 of file LASGlobalData.h.
References benchmark_cfg::cerr.
Referenced by LaserAlignment::beginJob(), LaserAlignment::CalculateNominalCoordinates(), LaserAlignment::endRun(), LaserAlignmentT0ProducerDQM::FillDetectorId(), LaserAlignment::fillDetectorId(), RawDataConverter::fillDetectorId(), and LaserAlignment::produce().
{ // do a range check first if( !( ( theDetector == 0 || theDetector == 1 ) && // TEC+ or TEC- ( theRing == 0 || theRing == 1 ) && // ring4 or ring6 ( theBeam >= 0 && theBeam < 8 ) && // eight beams in a TEC ( theDisk >= 0 && theDisk < 9 ) ) ) { // disk1..disk9 std::cerr << " [LASGlobalData::SetTECEntry] ** ERROR: illegal coordinates:" << std::endl; std::cerr << " detector " << theDetector << ", ring " << theRing << ", beam " << theBeam << ", disk " << theDisk << "." << std::endl; throw " Bailing out."; // @@@ REPLACE THIS BY cms::Exception (<FWCore/Utilities/interface/Exception.h> in 1_3_6) } else { if( theDetector == 0 ) tecPlusData.at( theRing ).at( theBeam ).at( theDisk ) = theEntry; else tecMinusData.at( theRing ).at( theBeam ).at( theDisk ) = theEntry; } }
void LASGlobalData< T >::SetTIBTOBEntry | ( | int | theDetector, |
int | theBeam, | ||
int | thePosition, | ||
T | theEntry | ||
) |
set a tib/tob entry in the container accord subdetector, beam and position (z) number
Definition at line 195 of file LASGlobalData.h.
References benchmark_cfg::cerr.
Referenced by LaserAlignment::beginJob(), LaserAlignment::CalculateNominalCoordinates(), LaserAlignment::endRun(), LaserAlignmentT0ProducerDQM::FillDetectorId(), LaserAlignment::fillDetectorId(), RawDataConverter::fillDetectorId(), and LaserAlignment::produce().
{ // do a range check first if( !( ( theDetector == 2 || theDetector == 3 ) && // TIB or TOB ( theBeam >= 0 && theBeam < 8 ) && // there are eight AT beams ( thePosition >= 0 && thePosition < 6 ) ) ) { // pos-3..pos+3 std::cerr << " [LASGlobalData::SetTIBTOBEntry] ** ERROR: illegal coordinates:" << std::endl; std::cerr << " detector " << theDetector << ", beam " << theBeam << ", position " << thePosition << "." << std::endl; throw " Bailing out."; // @@@ REPLACE THIS BY cms::Exception (<FWCore/Utilities/interface/Exception.h> in 1_3_6) } else { if( theDetector == 2 ) tibData.at( theBeam ).at( thePosition ) = theEntry; else tobData.at( theBeam ).at( thePosition ) = theEntry; } }
std::vector<std::vector<T> > LASGlobalData< T >::tecMinusATData [private] |
Definition at line 57 of file LASGlobalData.h.
std::vector<std::vector<std::vector<T> > > LASGlobalData< T >::tecMinusData [private] |
Definition at line 55 of file LASGlobalData.h.
std::vector<std::vector<T> > LASGlobalData< T >::tecPlusATData [private] |
Definition at line 56 of file LASGlobalData.h.
std::vector<std::vector<std::vector<T> > > LASGlobalData< T >::tecPlusData [private] |
Definition at line 54 of file LASGlobalData.h.
std::vector<std::vector<T> > LASGlobalData< T >::tibData [private] |
Definition at line 58 of file LASGlobalData.h.
std::vector<std::vector<T> > LASGlobalData< T >::tobData [private] |
Definition at line 59 of file LASGlobalData.h.