# | Line 68 | Line 68 | void ObjectCount::process() { | |
---|---|---|
68 | SimInfo::MoleculeIterator mi; | |
69 | Molecule::RigidBodyIterator rbIter; | |
70 | ||
71 | + | counts_.clear(); |
72 | + | counts_.resize(10, 0); |
73 | DumpReader reader(info_, dumpFilename_); | |
74 | int nFrames = reader.getNFrames(); | |
75 | + | unsigned long int nsum = 0; |
76 | + | unsigned long int n2sum = 0; |
77 | + | |
78 | for (int i = 0; i < nFrames; i += step_) { | |
79 | reader.readFrame(i); | |
80 | currentSnapshot_ = info_->getSnapshotManager()->getCurrentSnapshot(); | |
# | Line 87 | Line 92 | void ObjectCount::process() { | |
92 | seleMan_.setSelectionSet(evaluator_.evaluate()); | |
93 | } | |
94 | ||
95 | < | int count = 0; |
91 | < | int k; |
95 | > | int count = seleMan_.getSelectionCount(); |
96 | ||
97 | < | for (StuntDouble* sd = seleMan_.beginSelected(k); |
98 | < | sd != NULL; sd = seleMan_.nextSelected(k)) { |
95 | < | count++; |
97 | > | if (counts_.size() <= count) { |
98 | > | counts_.resize(count, 0); |
99 | } | |
100 | < | |
98 | < | if (counts_.size() < count) counts_.resize(count); |
100 | > | |
101 | counts_[count]++; | |
102 | + | |
103 | + | nsum += count; |
104 | + | n2sum += count * count; |
105 | } | |
106 | ||
107 | int nProcessed = nFrames /step_; | |
108 | ||
104 | – | vector<int>::iterator it; |
105 | – | unsigned long int n; |
106 | – | unsigned long int nsum = 0; |
107 | – | unsigned long int n2sum = 0; |
108 | – | for (it = counts_.begin(); it != counts_.end(); ++it) { |
109 | – | n = (*it); |
110 | – | nsum += n; |
111 | – | n2sum += n*n; |
112 | – | } |
113 | – | |
109 | nAvg = nsum / nProcessed; | |
110 | n2Avg = n2sum / nProcessed; | |
111 | sDev = sqrt(n2Avg - nAvg*nAvg); | |
# | Line 125 | Line 120 | void ObjectCount::process() { | |
120 | ofs << "# <N> = "<< nAvg << "\n"; | |
121 | ofs << "# <N^2> = " << n2Avg << "\n"; | |
122 | ofs << "# sqrt(<N^2> - <N>^2) = " << sDev << "\n"; | |
123 | < | ofs << "# N\tcount(N)\n"; |
129 | < | |
123 | > | ofs << "# N\tcounts[N]\n"; |
124 | for (int i = 0; i < counts_.size(); ++i) { | |
125 | < | ofs << i <<"\t" << counts_[i]<< std::endl; |
126 | < | } |
125 | > | ofs << i << "\t" << counts_[i] << "\n"; |
126 | > | } |
127 | > | |
128 | } else { | |
129 | ||
130 | sprintf(painCave.errMsg, "ObjectCount: unable to open %s\n", outputFilename_.c_str()); |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |