#include <Alignment/CommonAlignmentAlgorithm/interface/AlignableDataIO.h>
Protected Types | |
enum | PosType { Abs, Org, Rel } |
Protected Member Functions | |
AlignableDataIO (PosType p) | |
Constructor. | |
virtual int | close (void)=0 |
Close IO handle. | |
virtual int | open (const char *filename, int iteration, bool writemode)=0 |
Open IO handle. | |
AlignablePositions | readAbsPos (const align::Alignables &alivec, int &ierr) |
Read absolute positions of many Alignables. | |
AlignableAbsData | readAbsPos (Alignable *ali, int &ierr) |
Read absolute positions of one Alignable. | |
virtual AlignableAbsData | readAbsRaw (Alignable *ali, int &ierr)=0 |
Read absolute positions. | |
AlignablePositions | readOrgPos (const align::Alignables &alivec, int &ierr) |
Read original positions of many Alignables. | |
AlignableAbsData | readOrgPos (Alignable *ali, int &ierr) |
Read original positions of one Alignable. | |
AlignableShifts | readRelPos (const align::Alignables &alivec, int &ierr) |
Read relative positions of many Alignables. | |
AlignableRelData | readRelPos (Alignable *ali, int &ierr) |
Read relative positions of one Alignable. | |
virtual AlignableRelData | readRelRaw (Alignable *ali, int &ierr)=0 |
Read relative positions. | |
int | writeAbsPos (const align::Alignables &alivec, bool validCheck) |
Write absolute positions of many Alignables. | |
int | writeAbsPos (Alignable *ali, bool validCheck) |
Write absolute positions of one Alignable. | |
virtual int | writeAbsRaw (const AlignableAbsData &ad)=0 |
Write absolute positions. | |
int | writeOrgPos (const align::Alignables &alivec, bool validCheck) |
Write original positions of many Alignables. | |
int | writeOrgPos (Alignable *ali, bool validCheck) |
Write original positions of one Alignable. | |
int | writeRelPos (const align::Alignables &alivec, bool validCheck) |
Write relative positions of many Alignables. | |
int | writeRelPos (Alignable *ali, bool validCheck) |
Write relative positions of one Alignable. | |
virtual int | writeRelRaw (const AlignableRelData &ad)=0 |
Write relative positions. | |
virtual | ~AlignableDataIO () |
Destructor. | |
Protected Attributes | |
PosType | thePosType |
Derived concrete class must implement raw read/write methods
Definition at line 9 of file AlignableDataIO.h.
enum AlignableDataIO::PosType [protected] |
AlignableDataIO::AlignableDataIO | ( | PosType | p | ) | [inline, protected] |
virtual AlignableDataIO::~AlignableDataIO | ( | ) | [inline, protected, virtual] |
AlignablePositions AlignableDataIO::readAbsPos | ( | const align::Alignables & | alivec, | |
int & | ierr | |||
) | [protected] |
Read absolute positions of many Alignables.
Definition at line 108 of file AlignableDataIO.cc.
References it, LogDebug, and readAbsPos().
00109 { 00110 00111 AlignablePositions retvec; 00112 int ierr2=0; 00113 ierr=0; 00114 for( align::Alignables::const_iterator it=alivec.begin(); 00115 it!=alivec.end(); it++ ) 00116 { 00117 AlignableAbsData ad=readAbsPos(*it, ierr2); 00118 if (ierr2==0) retvec.push_back(ad); 00119 } 00120 00121 LogDebug("ReadAbsPos") << "all,written: " << alivec.size() <<"," << retvec.size(); 00122 00123 return retvec; 00124 00125 }
AlignableAbsData AlignableDataIO::readAbsPos | ( | Alignable * | ali, | |
int & | ierr | |||
) | [protected] |
Read absolute positions of one Alignable.
Definition at line 9 of file AlignableDataIO.cc.
References readAbsRaw().
Referenced by readAbsPos(), and AlignmentIORoot::readAlignableAbsolutePositions().
00010 { 00011 return readAbsRaw(ali,ierr); 00012 }
virtual AlignableAbsData AlignableDataIO::readAbsRaw | ( | Alignable * | ali, | |
int & | ierr | |||
) | [protected, pure virtual] |
Read absolute positions.
Implemented in AlignableDataIORoot.
Referenced by readAbsPos(), and readOrgPos().
AlignablePositions AlignableDataIO::readOrgPos | ( | const align::Alignables & | alivec, | |
int & | ierr | |||
) | [protected] |
Read original positions of many Alignables.
Definition at line 149 of file AlignableDataIO.cc.
References it, LogDebug, and readOrgPos().
00150 { 00151 00152 AlignablePositions retvec; 00153 int ierr2=0; 00154 ierr=0; 00155 for( align::Alignables::const_iterator it=alivec.begin(); 00156 it!=alivec.end(); it++ ) 00157 { 00158 AlignableAbsData ad=readOrgPos(*it, ierr2); 00159 if (ierr2==0) retvec.push_back(ad); 00160 } 00161 00162 LogDebug("ReadOrgPos") << "all,read: " << alivec.size() <<", "<< retvec.size(); 00163 00164 return retvec; 00165 00166 }
AlignableAbsData AlignableDataIO::readOrgPos | ( | Alignable * | ali, | |
int & | ierr | |||
) | [protected] |
Read original positions of one Alignable.
Definition at line 16 of file AlignableDataIO.cc.
References readAbsRaw().
Referenced by AlignmentIORoot::readAlignableOriginalPositions(), and readOrgPos().
00017 { 00018 return readAbsRaw(ali,ierr); 00019 }
AlignableShifts AlignableDataIO::readRelPos | ( | const align::Alignables & | alivec, | |
int & | ierr | |||
) | [protected] |
Read relative positions of many Alignables.
Definition at line 188 of file AlignableDataIO.cc.
References it, LogDebug, and readRelPos().
00189 { 00190 00191 AlignableShifts retvec; 00192 int ierr2=0; 00193 ierr=0; 00194 for( align::Alignables::const_iterator it=alivec.begin(); 00195 it!=alivec.end(); it++ ) 00196 { 00197 AlignableRelData ad=readRelPos(*it, ierr2); 00198 if (ierr2==0) retvec.push_back(ad); 00199 } 00200 LogDebug("ReadRelPos") << "all,read: " << alivec.size() <<", "<< retvec.size(); 00201 00202 return retvec; 00203 00204 }
AlignableRelData AlignableDataIO::readRelPos | ( | Alignable * | ali, | |
int & | ierr | |||
) | [protected] |
Read relative positions of one Alignable.
Definition at line 23 of file AlignableDataIO.cc.
References readRelRaw().
Referenced by AlignmentIORoot::readAlignableRelativePositions(), and readRelPos().
00024 { 00025 return readRelRaw(ali,ierr); 00026 }
virtual AlignableRelData AlignableDataIO::readRelRaw | ( | Alignable * | ali, | |
int & | ierr | |||
) | [protected, pure virtual] |
int AlignableDataIO::writeAbsPos | ( | const align::Alignables & | alivec, | |
bool | validCheck | |||
) | [protected] |
Write absolute positions of many Alignables.
Definition at line 88 of file AlignableDataIO.cc.
References it, LogDebug, and writeAbsPos().
00090 { 00091 00092 int icount=0; 00093 for( align::Alignables::const_iterator it=alivec.begin(); 00094 it!=alivec.end(); it++ ) 00095 { 00096 int iret = writeAbsPos(*it,validCheck); 00097 if (iret==0) icount++; 00098 } 00099 LogDebug("WriteAbsPos") << "all,written: " << alivec.size() <<","<< icount; 00100 00101 return 0; 00102 00103 }
Write absolute positions of one Alignable.
Definition at line 30 of file AlignableDataIO.cc.
References Alignable::alignableObjectId(), Alignable::alignmentParameters(), Alignable::id(), AlignmentParameters::isValid(), GloballyPositioned< T >::position(), rot, GloballyPositioned< T >::rotation(), Alignable::surface(), and writeAbsRaw().
Referenced by writeAbsPos(), and AlignmentIORoot::writeAlignableAbsolutePositions().
00031 { 00032 00033 if ( !(validCheck) || ali->alignmentParameters()->isValid() ) 00034 { 00035 // position in global frame 00036 align::PositionType pos = ali->surface().position(); 00037 // global rotation 00038 align::RotationType rot = ali->surface().rotation(); 00039 // write 00040 return writeAbsRaw( 00041 AlignableAbsData( pos,rot, 00042 ali->id(), 00043 ali->alignableObjectId() ) 00044 ); 00045 } 00046 00047 return 1; 00048 }
virtual int AlignableDataIO::writeAbsRaw | ( | const AlignableAbsData & | ad | ) | [protected, pure virtual] |
Write absolute positions.
Implemented in AlignableDataIORoot.
Referenced by writeAbsPos(), and writeOrgPos().
int AlignableDataIO::writeOrgPos | ( | const align::Alignables & | alivec, | |
bool | validCheck | |||
) | [protected] |
Write original positions of many Alignables.
Definition at line 129 of file AlignableDataIO.cc.
References it, LogDebug, and writeOrgPos().
00131 { 00132 00133 int icount=0; 00134 for( align::Alignables::const_iterator it=alivec.begin(); 00135 it!=alivec.end(); it++ ) 00136 { 00137 int iret=writeOrgPos(*it,validCheck); 00138 if (iret==0) icount++; 00139 } 00140 00141 LogDebug("WriteOrgPos") << "all,written: " << alivec.size() <<"," << icount; 00142 return 0; 00143 00144 }
Write original positions of one Alignable.
Definition at line 70 of file AlignableDataIO.cc.
References Alignable::alignableObjectId(), Alignable::alignmentParameters(), Alignable::displacement(), Alignable::globalPosition(), Alignable::globalRotation(), Alignable::id(), AlignmentParameters::isValid(), rot, Alignable::rotation(), and writeAbsRaw().
Referenced by AlignmentIORoot::writeAlignableOriginalPositions(), and writeOrgPos().
00071 { 00072 if ( !(validCheck) || ali->alignmentParameters()->isValid() ) 00073 { 00074 // orig position 00075 align::PositionType pos = ali->globalPosition() - ali->displacement(); 00076 // orig rotation 00077 align::RotationType rot = ali->globalRotation() * ali->rotation().transposed(); 00078 // write 00079 return writeAbsRaw(AlignableAbsData(pos,rot,ali->id(), 00080 ali->alignableObjectId())); 00081 } 00082 00083 return 1; 00084 }
int AlignableDataIO::writeRelPos | ( | const align::Alignables & | alivec, | |
bool | validCheck | |||
) | [protected] |
Write relative positions of many Alignables.
Definition at line 170 of file AlignableDataIO.cc.
References it, LogDebug, and writeRelPos().
00172 { 00173 00174 int icount=0; 00175 for( align::Alignables::const_iterator it=alivec.begin(); 00176 it!=alivec.end(); it++ ) { 00177 int iret=writeRelPos(*it,validCheck); 00178 if (iret==0) icount++; 00179 } 00180 LogDebug("WriteRelPos") << "all,written: " << alivec.size() <<", "<< icount; 00181 return 0; 00182 00183 }
Write relative positions of one Alignable.
Definition at line 52 of file AlignableDataIO.cc.
References Alignable::alignableObjectId(), Alignable::alignmentParameters(), Alignable::displacement(), Alignable::id(), AlignmentParameters::isValid(), rot, Alignable::rotation(), and writeRelRaw().
Referenced by AlignmentIORoot::writeAlignableRelativePositions(), and writeRelPos().
00053 { 00054 if ( !(validCheck) || ali->alignmentParameters()->isValid() ) 00055 { 00056 // rel. shift in global frame 00057 align::GlobalVector pos = ali->displacement(); 00058 // rel. rotation in global frame 00059 align::RotationType rot = ali->rotation(); 00060 // write 00061 return writeRelRaw(AlignableRelData(pos,rot,ali->id(), 00062 ali->alignableObjectId())); 00063 } 00064 00065 return 1; 00066 }
virtual int AlignableDataIO::writeRelRaw | ( | const AlignableRelData & | ad | ) | [protected, pure virtual] |
PosType AlignableDataIO::thePosType [protected] |
Definition at line 79 of file AlignableDataIO.h.
Referenced by AlignableDataIORoot::AlignableDataIORoot().