OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
LaserProfile.h
Go to the documentation of this file.
1#ifndef OPAL_LASERPROFILE_HH
2#define OPAL_LASERPROFILE_HH
3// ------------------------------------------------------------------------
4// $RCSfile: LaserProfile.h,v $
5// ------------------------------------------------------------------------
6// $Revision: 1.3.4.1 $
7// ------------------------------------------------------------------------
8// Copyright: see Copyright.readme
9// ------------------------------------------------------------------------
10//
11// Class: LaserProfile
12//
13// ------------------------------------------------------------------------
14
15#include "OPALTypes.h"
16
17#include <string>
19#include "Utilities/Random.h"
20#include "hdf5.h"
21
23public:
25 const std::string& fileName, const std::string& imageName, double intensityCut,
26 short flags);
27
29
30 void getXY(double& x, double& y);
31
32 enum { FLIPX = 1, FLIPY = 2, ROTATE90 = 4, ROTATE180 = 8, ROTATE270 = 16 };
33
34private:
35 unsigned short* readFile(const std::string& fileName, const std::string& imageName);
36 unsigned short* readPGMFile(const std::string& fileName);
37 unsigned short* readHDF5File(const std::string& fileName, const std::string& imageName);
38 void flipX(unsigned short* image);
39 void flipY(unsigned short* image);
40 void swapXY(unsigned short* image);
41 void filterSpikes(unsigned short* image);
42 void normalizeProfileData(double intensityCut, unsigned short* image);
43 void computeProfileStatistics(unsigned short* image);
44 void fillHistrogram(unsigned short* image);
45 void setupRNG();
46 void printInfo();
47
48 void saveData(const std::string& fname, unsigned short* image);
49 void saveHistogram();
50 void sampleDist();
51
52 unsigned short getProfileMax(unsigned short* image);
53
54 hsize_t sizeX_m, sizeY_m;
58
61};
62#endif
ippl::Vector< T, Dim > Vector_t
hsize_t sizeY_m
void normalizeProfileData(double intensityCut, unsigned short *image)
Vector_t< double, 3 > centerMass_m
void getXY(double &x, double &y)
void saveData(const std::string &fname, unsigned short *image)
void fillHistrogram(unsigned short *image)
void flipY(unsigned short *image)
void flipX(unsigned short *image)
gsl_histogram2d * hist2d_m
unsigned short * readPGMFile(const std::string &fileName)
unsigned short * readFile(const std::string &fileName, const std::string &imageName)
gsl_rng * rng_m
void swapXY(unsigned short *image)
unsigned short getProfileMax(unsigned short *image)
hsize_t sizeX_m
unsigned short * readHDF5File(const std::string &fileName, const std::string &imageName)
void computeProfileStatistics(unsigned short *image)
gsl_histogram2d_pdf * pdf_m
void filterSpikes(unsigned short *image)
Vector_t< double, 3 > standardDeviation_m
2D PDF derived from histogram for sampling.
2D histogram with explicit x/y bin edges.