IMP
2.3.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Applications
Related Pages
Groups
Classes
Files
Examples
Indexes
File List
File Members
CollisionCrossSection.h
Go to the documentation of this file.
1
/**
2
* \file IMP/em2d/CollisionCrossSection.h
3
* \brief
4
*
5
* Copyright 2007-2014 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPEM2D_COLLISION_CROSS_SECTION_H
10
#define IMPEM2D_COLLISION_CROSS_SECTION_H
11
12
#include "
IMP/em2d/ProjectionMask.h
"
13
#include "
IMP/em2d/RegistrationResult.h
"
14
#include "
IMP/em2d/project.h
"
15
#include "
IMP/macros.h
"
16
#include "
IMP/Particle.h
"
17
18
IMPEM2D_BEGIN_NAMESPACE
19
20
//! Determine the collision cross section for some projections of particles
21
class
IMPEM2DEXPORT
CollisionCrossSection
:
public
IMP::base::Object
{
22
public
:
23
/*!
24
\param[in] n_projections Number of projections to use for obtaining the CCS
25
\param[in] resolution "Resolution" to use to generate the projections.
26
\param[in] pixel_size size in A/pix to use when generating the projections
27
\param[in] projection_image_size The size of the projections to generate;
28
for this value you should request a size so that
29
pixel_size * projection_image_size >= Max distance between two
30
particles.
31
*/
32
CollisionCrossSection
(
unsigned
int
n_projections,
double
resolution,
33
double
pixel_size,
double
projection_image_size);
34
35
/**
36
* kernel::Particles used to calculate their collision cross section
37
* @param ps The particles
38
*/
39
void
set_model_particles(
const
kernel::ParticlesTemp
&ps);
40
41
//! Returns the collision cross section.
42
/** Before using this function you need
43
to set the particles with set_model_particles()
44
@return The collision cross section
45
*/
46
double
get_ccs()
const
;
47
48
//! Shows information about the class
49
/** @param out Stream used to show the information
50
*/
51
void
show
(std::ostream &out)
const
{
52
out <<
"Collision Cross section."
<< std::endl;
53
}
54
IMP_OBJECT_METHODS
(
CollisionCrossSection
);
55
56
protected
:
57
//! Gets the sum of the values in the pixels with value > 0
58
/** \param[in] m The projected area is computed for this matrix
59
\return Values of the area
60
*/
61
double
get_projected_area(
const
cv::Mat &m)
const
;
62
63
unsigned
int
n_projections_;
64
double
resolution_;
65
double
pixel_size_;
66
unsigned
int
img_size_;
67
bool
particles_set_;
68
em2d::RegistrationResults
regs_;
69
cv::Mat average_projection_;
70
em2d::MasksManagerPtr masks_manager_;
71
double
collision_cross_section_;
72
};
73
IMP_OBJECTS
(
CollisionCrossSection
,
CollisionCrossSections
);
74
75
IMPEM2D_END_NAMESPACE
76
77
#endif
/* IMPEM2D_COLLISION_CROSS_SECTION_H */
project.h
Generation of projections from models or density maps Copyright 2007-2014 IMP Inventors. All rights reserved.
ProjectionMask.h
projection masks Copyright 2007-2014 IMP Inventors. All rights reserved.
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
IMP::em2d::CollisionCrossSection::show
void show(std::ostream &out) const
Shows information about the class.
Definition:
CollisionCrossSection.h:51
macros.h
Import IMP/kernel/macros.h in the namespace.
IMP::base::Vector< base::WeakPointer< Particle > >
IMP::base::Object
Common base class for heavy weight IMP objects.
Definition:
Object.h:106
Particle.h
Import IMP/kernel/Particle.h in the namespace.
IMP_OBJECTS
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
Definition:
object_macros.h:52
IMP::em2d::CollisionCrossSection
Determine the collision cross section for some projections of particles.
Definition:
CollisionCrossSection.h:21
RegistrationResult.h
Registration results class Copyright 2007-2014 IMP Inventors. All rights reserved.