00001 /** 00002 * \file PermutationSampler.h 00003 * \brief The class samples all permutations of transformations to particles 00004 * Copyright 2007-2010 IMP Inventors. All rights reserved. 00005 */ 00006 #ifndef IMPDOMINO_TRANSFORMATION_PERMUTATION_SAMPLER_H 00007 #define IMPDOMINO_TRANSFORMATION_PERMUTATION_SAMPLER_H 00008 00009 #include "IMP/Particle.h" 00010 #include <map> 00011 #include <sstream> 00012 #include "IMP/domino/PermutationSampler.h" 00013 #include "IMP/domino/TransformationMappedDiscreteSet.h" 00014 #include "IMP/base_types.h" 00015 #include "DiscreteSet.h" 00016 #include <algorithm> 00017 #include "IMP/domino/TransformationUtils.h" 00018 IMPDOMINO_BEGIN_NAMESPACE 00019 00020 //! Sample all permutations of transformations on particles 00021 /** 00022 */ 00023 class IMPDOMINOEXPORT TransformationPermutationSampler:public PermutationSampler 00024 { 00025 public: 00026 TransformationPermutationSampler(){} 00027 //! Create a permutation sampler. 00028 /** 00029 \param[in] ds the discrete sampling space 00030 \param[in] ps the sampled particles 00031 \param[in] trans_from_orig 00032 */ 00033 TransformationPermutationSampler(DiscreteSet *ds, 00034 const Particles &ps,bool trans_from_orig); 00035 void move2state(const CombState *cs); 00036 protected: 00037 TransformationUtils tu_; 00038 }; 00039 00040 IMPDOMINO_END_NAMESPACE 00041 00042 #endif /* IMPDOMINO_TRANSFORMATION_PERMUTATION_SAMPLER_H */