IMP  2.2.1
The Integrative Modeling Platform
PairContainerStatistics.h
Go to the documentation of this file.
1 /**
2  * \file IMP/container/PairContainerStatistics.h
3  * \brief A container for Pairs.
4  *
5  * WARNING This file was generated from PairContainerStatistics.h
6  * in /tmp/nightly-build-90828/imp-2.2.1/tools/build/container_templates/container
7  * by tools/maintenance/setup_containers.py.
8  *
9  * Copyright 2007-2014 IMP Inventors. All rights reserved.
10  */
11 
12 #ifndef IMPCONTAINER_PAIR_CONTAINER_STATISTICS_H
13 #define IMPCONTAINER_PAIR_CONTAINER_STATISTICS_H
14 
15 #include <IMP/container/container_config.h>
16 #include <IMP/PairContainer.h>
17 #include <IMP/ScoreState.h>
18 #include <boost/unordered_set.hpp>
19 
20 IMPCONTAINER_BEGIN_NAMESPACE
21 
22 //! Track statistics on a PairContainer
23 /** The current statistics are average and min/max occupancy. Other
24  statistics can be added on request, but we probably want to
25  restrict it to ones that are cheap to gather. */
26 class IMPCONTAINEREXPORT PairContainerStatistics : public ScoreState {
28  unsigned int total_;
29  unsigned int checks_;
30  unsigned int max_;
31  unsigned int min_;
32  bool track_unique_;
33  boost::unordered_set<kernel::ParticlePair> unique_;
34 
35  public:
36  PairContainerStatistics(PairContainerAdaptor c);
37  void show_statistics(std::ostream &out) const;
38  /** Keeping track of the number of unique entries seen is
39  expensive, so it is not done by default.
40  */
41  void set_track_unique(bool tf);
42  virtual void do_before_evaluate() IMP_OVERRIDE;
43  virtual void do_after_evaluate(DerivativeAccumulator *da) IMP_OVERRIDE;
44  virtual kernel::ModelObjectsTemp do_get_inputs() const IMP_OVERRIDE;
45  virtual kernel::ModelObjectsTemp do_get_outputs() const IMP_OVERRIDE;
47 };
48 
49 IMPCONTAINER_END_NAMESPACE
50 
51 #endif /* IMPCONTAINER_PAIR_CONTAINER_STATISTICS_H */
Class for adding derivatives from restraints to the model.
A smart pointer to a reference counted object.
Definition: base/Pointer.h:87
ScoreStates maintian invariants in the Model.
Import IMP/kernel/PairContainer.h in the namespace.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Import IMP/kernel/ScoreState.h in the namespace.
Track statistics on a PairContainer.
virtual ModelObjectsTemp do_get_inputs() const =0
virtual ModelObjectsTemp do_get_outputs() const =0