16 #ifndef INCLUDED_protocols_match_upstream_ProteinUpstreamBuilder_hh
17 #define INCLUDED_protocols_match_upstream_ProteinUpstreamBuilder_hh
40 #include <numeric/HomogeneousTransform.hh>
41 #include <numeric/xyzVector.hh>
45 #include <utility/pointer/ReferenceCount.hh>
48 #include <utility/vector1.hh>
129 std::string const & name() const {
130 return restype_name_;
134 Size natoms() const {
135 return controlling_chi_for_atom_.size();
139 return chitip_atoms_.size();
142 bool atom_controlled_by_any_chi( Size atomno ) const {
143 return controlling_chi_for_atom_[ atomno ] != 0;
146 bool atom_is_chitip( Size atomno ) const {
147 return controlling_chi_for_atom_[ atomno ] != 0 && which_point_for_atom_[ atomno ] == 0;
150 utility::vector1< Size > const &
151 controlling_chi_for_atom() const { return controlling_chi_for_atom_; }
153 utility::vector1< Size > const &
154 which_point_for_atom() const { return which_point_for_atom_; }
156 utility::vector1< Size > const &
157 chitip_atoms() const { return chitip_atoms_; }
160 chitip_atom( Size chi ) const {
161 return chitip_atoms_[ chi ];
164 utility::vector1< HTReal > const &
165 ht_for_chitip_atoms() const { return ht_for_chitip_atoms_; }
168 ht_for_chitip_atom( Size chi ) const {
169 return ht_for_chitip_atoms_[ chi ];
173 n_nonchitip_atoms_for_chi( Size chi ) const {
174 return nonchitip_atoms_[ chi ].size();
177 utility::vector1< utility::vector1< Size > > const &
178 nonchitip_atoms() const { return nonchitip_atoms_; }
181 nonchitip_atom( Size chi, Size which_nonchitip_atom_for_chi ) const {
182 return nonchitip_atoms_[ chi ][ which_nonchitip_atom_for_chi ];
185 utility::vector1< utility::vector1< Vector > > const &
186 points_for_nonchitip_atoms() const { return points_for_nonchitip_atoms_; }
188 utility::vector1< Vector > const &
189 points_for_nonchitip_atoms( Size chi ) const {
190 return points_for_nonchitip_atoms_[ chi ];
197 point_for_nonchitip_atom( Size atom ) {
198 assert( atom_controlled_by_any_chi( atom ) && !atom_is_chitip( atom ) );
199 return points_for_nonchitip_atoms_[ controlling_chi_for_atom_[ atom ] ]
200 [ which_point_for_atom_[ atom ] ];
207 std::string restype_name_;
209 utility::vector1< Size > controlling_chi_for_atom_;
210 utility::vector1< Size > which_point_for_atom_;
212 utility::vector1< Size > chitip_atoms_;
213 utility::vector1< HTReal > ht_for_chitip_atoms_;
216 utility::vector1< utility::vector1< Size > > nonchitip_atoms_;
217 utility::vector1< utility::vector1< Vector > > points_for_nonchitip_atoms_;
348 typedef numeric::HomogeneousTransform< Real >
HTReal;
388 assert( chi <=
frames_.size() );
389 return frames_[ chi ][ sample_id ];
440 typedef numeric::HomogeneousTransform< Real >
HTReal;
477 std::list< Hit >::const_iterator hits_begin,
478 std::list< Hit >::const_iterator hits_end,
495 Hit const & other_hit,
497 bool first_dispatch =
true
504 Hit const & other_hit,
506 bool first_dispatch =
true