| 60 |  | seleMan2_.setSelectionSet(evaluator2_.evaluate()); | 
| 61 |  | } | 
| 62 |  |  | 
| 63 | + | if (!evaluator1_.isDynamic() && !evaluator2_.isDynamic()) { | 
| 64 | + | //if all selections are static,  we can precompute the number of real pairs | 
| 65 | + |  | 
| 66 | + | int nSelected1 = seleMan1_->getSelectionCount(); | 
| 67 | + | int nSelected2 = seleMan2_->getSelectionCount(); | 
| 68 | + |  | 
| 69 | + | BitSet bs = seleMan1_.getSelectionSet(); | 
| 70 | + | bs &= seleMan2_.getSelectionSet(); | 
| 71 | + | int nIntersect = bs.countBits(); | 
| 72 | + |  | 
| 73 | + | nRealPairs_ = nSelected1 * nSelected2 - (nIntersect +1) * nIntersect/2; | 
| 74 | + | } | 
| 75 | + |  | 
| 76 |  | } | 
| 77 |  |  | 
| 78 |  | void RadialDistrFunc::process() { | 
| 80 |  | RigidBody* rb; | 
| 81 |  | SimInfo::MoleculeIterator mi; | 
| 82 |  | Molecule::RigidBodyIterator rbIter; | 
| 83 | + |  | 
| 84 |  | preProcess(); | 
| 85 |  |  | 
| 86 |  | DumpReader reader(info_, dumpFilename_); | 
| 114 |  | StuntDouble* sd2; | 
| 115 |  | int k; | 
| 116 |  | for (sd2 = seleMan2_.beginSelected(k); sd2 != NULL; sd2 = seleMan2_.nextSelected(k)) { | 
| 117 | < | collectHistogram(sd1, sd2); | 
| 117 | > | if (sd1 != sd2) { | 
| 118 | > | collectHistogram(sd1, sd2); | 
| 119 | > | } | 
| 120 |  | } | 
| 121 |  | } | 
| 122 |  |  | 
| 129 |  | writeRdf(); | 
| 130 |  | } | 
| 131 |  |  | 
| 132 | + | int RadialDistrFunc::getNRealPairs() { | 
| 133 | + | if (evaluator1_.isDynamic() || evaluator2_.isDynamic()) { | 
| 134 | + | //if one of the selection is static,  need to recompute it | 
| 135 | + |  | 
| 136 | + | int nSelected1 = seleMan1_->getSelectionCount(); | 
| 137 | + | int nSelected2 = seleMan2_->getSelectionCount(); | 
| 138 | + |  | 
| 139 | + | BitSet bs = seleMan1_.getSelectionSet(); | 
| 140 | + | bs &= seleMan2_.getSelectionSet(); | 
| 141 | + | int nIntersect = bs.countBits(); | 
| 142 | + |  | 
| 143 | + | nRealPairs_ = nSelected1 * nSelected2 - (nIntersect +1) * nIntersect/2; | 
| 144 | + | } | 
| 145 | + |  | 
| 146 | + | return nRealPairs_ | 
| 147 |  | } | 
| 148 | + |  | 
| 149 | + | } |