OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
LaserProfile Class Reference

#include <LaserProfile.h>

Collaboration diagram for LaserProfile:

Public Types

enum  {
  FLIPX = 1 , FLIPY = 2 , ROTATE90 = 4 , ROTATE180 = 8 ,
  ROTATE270 = 16
}

Public Member Functions

 LaserProfile (const std::string &fileName, const std::string &imageName, double intensityCut, short flags)
 ~LaserProfile ()
void getXY (double &x, double &y)

Private Member Functions

unsigned short * readFile (const std::string &fileName, const std::string &imageName)
unsigned short * readPGMFile (const std::string &fileName)
unsigned short * readHDF5File (const std::string &fileName, const std::string &imageName)
void flipX (unsigned short *image)
void flipY (unsigned short *image)
void swapXY (unsigned short *image)
void filterSpikes (unsigned short *image)
void normalizeProfileData (double intensityCut, unsigned short *image)
void computeProfileStatistics (unsigned short *image)
void fillHistrogram (unsigned short *image)
void setupRNG ()
void printInfo ()
void saveData (const std::string &fname, unsigned short *image)
void saveHistogram ()
void sampleDist ()
unsigned short getProfileMax (unsigned short *image)

Private Attributes

hsize_t sizeX_m
hsize_t sizeY_m
gsl_histogram2d * hist2d_m
gsl_rng * rng_m
gsl_histogram2d_pdf * pdf_m
Vector_t centerMass_m
Vector_t standardDeviation_m

Detailed Description

Definition at line 23 of file LaserProfile.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
FLIPX 
FLIPY 
ROTATE90 
ROTATE180 
ROTATE270 

Definition at line 35 of file LaserProfile.h.

Constructor & Destructor Documentation

◆ LaserProfile()

LaserProfile::LaserProfile ( const std::string & fileName,
const std::string & imageName,
double intensityCut,
short flags )

Definition at line 28 of file LaserProfile.cpp.

References centerMass_m, computeProfileStatistics(), fillHistrogram(), filterSpikes(), FLIPX, flipX(), FLIPY, flipY(), hist2d_m, normalizeProfileData(), pdf_m, printInfo(), readFile(), rng_m, ROTATE180, ROTATE270, ROTATE90, sampleDist(), saveHistogram(), setupRNG(), sizeX_m, sizeY_m, standardDeviation_m, and swapXY().

Here is the call graph for this function:

◆ ~LaserProfile()

LaserProfile::~LaserProfile ( )

Definition at line 76 of file LaserProfile.cpp.

References hist2d_m, pdf_m, and rng_m.

Member Function Documentation

◆ computeProfileStatistics()

void LaserProfile::computeProfileStatistics ( unsigned short * image)
private

Definition at line 257 of file LaserProfile.cpp.

References centerMass_m, sizeX_m, sizeY_m, and standardDeviation_m.

Referenced by LaserProfile().

◆ fillHistrogram()

void LaserProfile::fillHistrogram ( unsigned short * image)
private

Definition at line 282 of file LaserProfile.cpp.

References hist2d_m, saveHistogram(), sizeX_m, sizeY_m, and standardDeviation_m.

Referenced by LaserProfile().

Here is the call graph for this function:

◆ filterSpikes()

void LaserProfile::filterSpikes ( unsigned short * image)
private

Definition at line 211 of file LaserProfile.cpp.

References sizeX_m, and sizeY_m.

Referenced by LaserProfile().

◆ flipX()

void LaserProfile::flipX ( unsigned short * image)
private

Definition at line 166 of file LaserProfile.cpp.

References sizeX_m, and sizeY_m.

Referenced by LaserProfile().

◆ flipY()

void LaserProfile::flipY ( unsigned short * image)
private

Definition at line 178 of file LaserProfile.cpp.

References sizeX_m, and sizeY_m.

Referenced by LaserProfile().

◆ getProfileMax()

unsigned short LaserProfile::getProfileMax ( unsigned short * image)
private

Definition at line 388 of file LaserProfile.cpp.

References sizeX_m, and sizeY_m.

Referenced by normalizeProfileData(), and saveData().

◆ getXY()

void LaserProfile::getXY ( double & x,
double & y )

Definition at line 382 of file LaserProfile.cpp.

References pdf_m, and rng_m.

Referenced by sampleDist().

◆ normalizeProfileData()

void LaserProfile::normalizeProfileData ( double intensityCut,
unsigned short * image )
private

Definition at line 243 of file LaserProfile.cpp.

References getProfileMax(), sizeX_m, and sizeY_m.

Referenced by LaserProfile().

Here is the call graph for this function:

◆ printInfo()

void LaserProfile::printInfo ( )
private

Definition at line 327 of file LaserProfile.cpp.

References centerMass_m, endl(), INFOMSG, level3(), sizeX_m, sizeY_m, and standardDeviation_m.

Referenced by LaserProfile().

Here is the call graph for this function:

◆ readFile()

unsigned short * LaserProfile::readFile ( const std::string & fileName,
const std::string & imageName )
private

Definition at line 82 of file LaserProfile.cpp.

References readHDF5File(), and readPGMFile().

Referenced by LaserProfile().

Here is the call graph for this function:

◆ readHDF5File()

unsigned short * LaserProfile::readHDF5File ( const std::string & fileName,
const std::string & imageName )
private

Definition at line 120 of file LaserProfile.cpp.

References sizeX_m, and sizeY_m.

Referenced by readFile().

◆ readPGMFile()

unsigned short * LaserProfile::readPGMFile ( const std::string & fileName)
private

Definition at line 103 of file LaserProfile.cpp.

References PortableGraymapReader::getHeight(), PortableGraymapReader::getPixel(), PortableGraymapReader::getWidth(), sizeX_m, and sizeY_m.

Referenced by readFile().

Here is the call graph for this function:

◆ sampleDist()

void LaserProfile::sampleDist ( )
private

Definition at line 365 of file LaserProfile.cpp.

References Util::combineFilePath(), OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), and getXY().

Referenced by LaserProfile().

Here is the call graph for this function:

◆ saveData()

void LaserProfile::saveData ( const std::string & fname,
unsigned short * image )
private

Definition at line 336 of file LaserProfile.cpp.

References Util::combineFilePath(), OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), getProfileMax(), sizeX_m, and sizeY_m.

Here is the call graph for this function:

◆ saveHistogram()

void LaserProfile::saveHistogram ( )
private

Definition at line 355 of file LaserProfile.cpp.

References Util::combineFilePath(), OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), and hist2d_m.

Referenced by fillHistrogram(), and LaserProfile().

Here is the call graph for this function:

◆ setupRNG()

void LaserProfile::setupRNG ( )
private

Definition at line 315 of file LaserProfile.cpp.

References hist2d_m, pdf_m, and rng_m.

Referenced by LaserProfile().

◆ swapXY()

void LaserProfile::swapXY ( unsigned short * image)
private

Definition at line 191 of file LaserProfile.cpp.

References sizeX_m, and sizeY_m.

Referenced by LaserProfile().

Member Data Documentation

◆ centerMass_m

Vector_t LaserProfile::centerMass_m
private

Definition at line 67 of file LaserProfile.h.

Referenced by computeProfileStatistics(), LaserProfile(), and printInfo().

◆ hist2d_m

gsl_histogram2d* LaserProfile::hist2d_m
private

Definition at line 63 of file LaserProfile.h.

Referenced by fillHistrogram(), LaserProfile(), saveHistogram(), setupRNG(), and ~LaserProfile().

◆ pdf_m

gsl_histogram2d_pdf* LaserProfile::pdf_m
private

Definition at line 65 of file LaserProfile.h.

Referenced by getXY(), LaserProfile(), setupRNG(), and ~LaserProfile().

◆ rng_m

gsl_rng* LaserProfile::rng_m
private

Definition at line 64 of file LaserProfile.h.

Referenced by getXY(), LaserProfile(), setupRNG(), and ~LaserProfile().

◆ sizeX_m

◆ sizeY_m

◆ standardDeviation_m

Vector_t LaserProfile::standardDeviation_m
private

Definition at line 68 of file LaserProfile.h.

Referenced by computeProfileStatistics(), fillHistrogram(), LaserProfile(), and printInfo().


The documentation for this class was generated from the following files: