00001 /** 00002 * \file RefinedPairsPairScore.h 00003 * \brief Generate pairs by applying a Refiner to the paricles. 00004 * 00005 * Copyright 2007-2010 IMP Inventors. All rights reserved. 00006 */ 00007 00008 #ifndef IMPCORE_REFINED_PAIRS_PAIR_SCORE_H 00009 #define IMPCORE_REFINED_PAIRS_PAIR_SCORE_H 00010 00011 #include "core_config.h" 00012 #include <IMP/PairScore.h> 00013 #include <IMP/UnaryFunction.h> 00014 #include <IMP/Pointer.h> 00015 #include <IMP/Refiner.h> 00016 00017 IMPCORE_BEGIN_NAMESPACE 00018 00019 //! Generate pairs to score by applying a Refiner. 00020 /** Each passed particle refined and then the PairScore applied 00021 to all resulting pairs. 00022 */ 00023 class IMPCOREEXPORT RefinedPairsPairScore : public PairScore 00024 { 00025 IMP::internal::OwnerPointer<Refiner> r_; 00026 IMP::internal::OwnerPointer<PairScore> f_; 00027 public: 00028 /** \param[in] r The Refiner to call on each particle 00029 \param[in] f The pair score to apply to the generated pairs 00030 */ 00031 RefinedPairsPairScore(Refiner *r, PairScore *f); 00032 IMP_PAIR_SCORE(RefinedPairsPairScore); 00033 }; 00034 00035 IMPCORE_END_NAMESPACE 00036 00037 #endif /* IMPCORE_REFINED_PAIRS_PAIR_SCORE_H */