8 #ifndef IMPNPCTRANSPORT_BIPARTITE_PAIRS_STATISTICS_OPTIMIZER_STATE_H
9 #define IMPNPCTRANSPORT_BIPARTITE_PAIRS_STATISTICS_OPTIMIZER_STATE_H
11 #include "npctransport_config.h"
16 #include <boost/unordered_set.hpp>
19 IMPNPCTRANSPORT_BEGIN_NAMESPACE
31 typedef IMP_KERNEL_LARGE_ORDERED_SET<ParticleIndex> t_particle_index_ordered_set;
32 typedef IMP_KERNEL_LARGE_ORDERED_SET<ParticleIndexPair> t_particle_index_pair_ordered_set;
40 double stats_time_ns_;
41 double off_stats_time_ns_;
43 double off_I_stats_time_ns_;
44 double off_II_stats_time_ns_;
45 double on_stats_time_ns_;
47 double on_I_stats_time_ns_;
49 double on_II_stats_time_ns_;
58 close_bipartite_pair_container_;
65 double avg_ncontacts_;
69 t_particle_index_ordered_set bounds_I_;
70 t_particle_index_ordered_set bounds_II_;
71 t_particle_index_pair_ordered_set contacts_;
74 double avg_pct_bound_particles_I_;
75 double avg_pct_bound_particles_II_;
76 double avg_fraction_bound_sites_I_;
77 double avg_fraction_bound_sites_II_;
78 double avg_fraction_nonspecific_I_;
79 double avg_fraction_nonspecific_II_;
80 double avg_off_per_contact_per_ns_;
81 double avg_off_per_bound_I_per_ns_;
82 double avg_off_per_bound_II_per_ns_;
83 double avg_on_per_unbound_I_per_ns_;
84 double avg_on_per_unbound_II_per_ns_;
85 double avg_on_per_missing_contact_per_ns_;
88 unsigned int n_particles_I_;
89 unsigned int n_particles_II_;
90 unsigned int n_bounds_I_;
91 unsigned int n_bounds_II_;
94 unsigned int n_sites_I_;
95 unsigned int n_sites_II_;
121 double contact_range = 1.0,
double slack = 1.0);
139 {
return avg_off_per_contact_per_ns_; }
145 {
return avg_off_per_bound_I_per_ns_; }
151 {
return avg_off_per_bound_II_per_ns_; }
158 {
return avg_on_per_missing_contact_per_ns_; }
164 {
return avg_on_per_unbound_I_per_ns_; }
170 {
return avg_on_per_unbound_II_per_ns_; }
177 return avg_pct_bound_particles_I_;
185 return avg_pct_bound_particles_II_;
191 return avg_fraction_bound_sites_I_;
197 return avg_fraction_bound_sites_II_;
204 return avg_fraction_nonspecific_I_;
211 return avg_fraction_nonspecific_II_;
228 void reset()
override;
230 double get_misc_stats_period_ns()
const
231 {
return stats_time_ns_; };
233 double get_off_stats_period_ns()
const
234 {
return off_stats_time_ns_; };
236 double get_off_I_stats_period_ns()
const
237 {
return off_I_stats_time_ns_; };
239 double get_off_II_stats_period_ns()
const
240 {
return off_II_stats_time_ns_; };
242 double get_on_stats_period_ns()
const
243 {
return on_stats_time_ns_; };
245 double get_on_I_stats_period_ns()
const
246 {
return on_I_stats_time_ns_; };
248 double get_on_II_stats_period_ns()
const
249 {
return on_II_stats_time_ns_; };
253 virtual void do_update(
unsigned int call_num)
override;
274 IMPNPCTRANSPORT_END_NAMESPACE
std::pair< IMP::core::ParticleType, IMP::core::ParticleType > InteractionType
an interaction that involves particles of two types
Smart pointer to Object-derived classes that does not refcount.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
virtual void do_update(unsigned int)
Statistics and order parameters about the simulations.
Return all pairs from a SingletonContainer.
virtual void reset()
Reset counters, as if at the start of an optimize run.
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Shared optimizer state that is invoked upon commitment of new coordinates.
int Int
Basic integer value.