diff --git a/c_tools/mock/loaders/gadget_loader.cpp b/c_tools/mock/loaders/gadget_loader.cpp index a76416a..ff7fd17 100644 --- a/c_tools/mock/loaders/gadget_loader.cpp +++ b/c_tools/mock/loaders/gadget_loader.cpp @@ -71,32 +71,7 @@ public: d->BoxSize *= unitMpc; applyTransformations(d); - - long numAccepted = 0; - bool *accepted = new bool[d->NumPart]; - for (long i = 0; i < d->NumPart; i++) - { - SingleParticle p; - - for (int k = 0; k < 3; k++) - { - p.Pos[k] = (d->Pos[k]) ? 0 : d->Pos[k][i]; - p.Vel[k] = (d->Vel[k]) ? 0 : d->Vel[k][i]; - } - p.ID = (d->Id) ? 0 : d->Id[i]; - - accepted[i] = preproc->accept(p); - numAccepted += accepted[i]; - } - - for (int k = 0; k < 3; k++) - { - filteredCopy(d->Pos[k], accepted, d->NumPart); - filteredCopy(d->Vel[k], accepted, d->NumPart); - } - filteredCopy(d->Id, accepted, d->NumPart); - filteredCopy(d->type, accepted, d->NumPart); - delete[] accepted; + basicPreprocessing(d, preproc); return d; } diff --git a/c_tools/mock/loaders/simulation_loader.cpp b/c_tools/mock/loaders/simulation_loader.cpp index 7befab0..864e19a 100644 --- a/c_tools/mock/loaders/simulation_loader.cpp +++ b/c_tools/mock/loaders/simulation_loader.cpp @@ -39,3 +39,35 @@ void SimulationLoader::applyTransformations(SimuData *s) redshift_gravity*s->Vel[redshift_axis][i]/100.; } } + + +void SimulationLoader::basicPreprocessing(SimuData *d, + SimulationPreprocessor *preproc) +{ + long numAccepted = 0; + bool *accepted = new bool[d->NumPart]; + for (long i = 0; i < d->NumPart; i++) + { + SingleParticle p; + + for (int k = 0; k < 3; k++) + { + p.Pos[k] = (d->Pos[k]) ? 0 : d->Pos[k][i]; + p.Vel[k] = (d->Vel[k]) ? 0 : d->Vel[k][i]; + } + p.ID = (d->Id) ? 0 : d->Id[i]; + + accepted[i] = preproc->accept(p); + numAccepted += accepted[i]; + } + + for (int k = 0; k < 3; k++) + { + filteredCopy(d->Pos[k], accepted, d->NumPart); + filteredCopy(d->Vel[k], accepted, d->NumPart); + } + filteredCopy(d->Id, accepted, d->NumPart); + filteredCopy(d->type, accepted, d->NumPart); + delete[] accepted; + +} diff --git a/c_tools/mock/loaders/simulation_loader.hpp b/c_tools/mock/loaders/simulation_loader.hpp index e03b385..6fdb462 100644 --- a/c_tools/mock/loaders/simulation_loader.hpp +++ b/c_tools/mock/loaders/simulation_loader.hpp @@ -40,6 +40,8 @@ protected: void reallocSimu(CosmoTool::SimuData *s, long newNumPart); + + void basicPreprocessor(SimuData *d, SimulationPreprocessor *preproc); void applyTransformations(CosmoTool::SimuData *s); void copyParticleToSimu(const SingleParticle& p, CosmoTool::SimuData *s, long index)