IMP  2.1.0
The Integrative Modeling Platform
CrossLinkData.h
Go to the documentation of this file.
1 /**
2  * \file isd/CrossLinkData.h \brief Normal distribution of Function
3  *
4  * Copyright 2007-2013 IMP Inventors. All rights reserved.
5  */
6 
7 #ifndef IMPISD_CROSS_LINK_DATA_H
8 #define IMPISD_CROSS_LINK_DATA_H
9 
10 #include "isd_config.h"
11 #include <IMP/macros.h>
12 #include <IMP/kernel/Model.h>
13 #include <IMP/constants.h>
14 #include <math.h>
15 
16 IMPISD_BEGIN_NAMESPACE
17 
18 //! CrossLinkData
19 /**
20  */
21 
22 class IMPISDEXPORT CrossLinkData : public base::Object
23 {
24  double lexp_;//length of the linker
25  Floats dist_grid_;
26  Floats sigma_grid_;
27  Floats omega_grid_;
28  Floats pot_x_grid_;
29  Floats pot_value_grid_;
30  int prior_type_;
31  bool bias_;
32  std::vector<Floats> grid_;
33  double get_unbiased_element(double dist, double sigmai) const;
34  double get_biased_element(double dist, double sigmai) const;
35 
36 
37  public:
38 
39  CrossLinkData(Floats dist_grid, Floats omega_grid,
40  Floats sigma_grid, double lexp_,
41  double don=std::numeric_limits<double>::max(),
42  double doff=std::numeric_limits<double>::max(),
43  int prior_type=0);
44  CrossLinkData(Floats dist_grid, Floats omega_grid, Floats sigma_grid,
45  Floats pot_x_grid, Floats pot_value_grid,
46  double don=std::numeric_limits<double>::max(),
47  double doff=std::numeric_limits<double>::max(),
48  int prior_type=0);
49  int get_closest(std::vector<double> const& vec, double value) const;
50  Floats get_omegas(double sigma, Floats dists) const;
51  double get_omega_prior(double omega, double omega0) const;
52  Floats get_nonmarginal_elements(double sigmai, Floats dists) const;
53  Floats get_marginal_elements(double sigma, Floats dists) const ;
54  double get_marginal_maximum(double sigma) const;
55  double get_marginal_maximum() const;
56 
58 
59 };
60 
61 IMPISD_END_NAMESPACE
62 
63 #endif /* IMPISD_CROSS_LINK_DATA_H */
Import IMP/kernel/constants.h in the namespace.
Import IMP/kernel/macros.h in the namespace.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Storage of a model, its restraints, constraints and particles.
Common base class for heavy weight IMP objects.