diff --git a/c_tools/libzobov/particleInfo.cpp b/c_tools/libzobov/particleInfo.cpp index 9711db6..fa6f467 100644 --- a/c_tools/libzobov/particleInfo.cpp +++ b/c_tools/libzobov/particleInfo.cpp @@ -10,6 +10,7 @@ bool loadParticleInfo(ParticleInfo& info, const std::string& extra_info) { int numpart; + int isObservation; NcFile f_info(extra_info.c_str()); @@ -23,6 +24,7 @@ bool loadParticleInfo(ParticleInfo& info, info.ranges[2][0] = f_info.get_att("range_z_min")->as_double(0); info.ranges[2][1] = f_info.get_att("range_z_max")->as_double(0); info.mask_index = f_info.get_att("mask_index")->as_int(0); //PMS + isObservation = f_info.get_att("is_observation")->as_int(0); //PMS for (int i = 0; i < 3; i++) info.length[i] = info.ranges[i][1] - info.ranges[i][0]; @@ -59,6 +61,14 @@ bool loadParticleInfo(ParticleInfo& info, for (int i = 0; i < numpart; i++) info.particles[i].z = mul*f.readReal32(); f.endCheckpoint(); + + if (!isObservation) { + for (int i = 0; i < numpart; i++) { + info.particles[i].x += info.ranges[0][0]; + info.particles[i].y += info.ranges[1][0]; + info.particles[i].z += info.ranges[2][0]; + } + } } catch (const NoSuchFileException& e) { diff --git a/c_tools/mock/generateFromCatalog.cpp b/c_tools/mock/generateFromCatalog.cpp index d5a0aca..54cbf87 100644 --- a/c_tools/mock/generateFromCatalog.cpp +++ b/c_tools/mock/generateFromCatalog.cpp @@ -466,6 +466,7 @@ void saveForZobov(ParticleData& pdata, const string& fname, const string& paramn fp.add_att("range_z_min", -Lmax/100.); fp.add_att("range_z_max", Lmax/100.); fp.add_att("mask_index", pdata.mask_index); // PMS + fp.add_att("is_observation", 1); // PMS int nOutputPart = pdata.mask_index; //int nOutputPart = pdata.pos.size(); diff --git a/c_tools/mock/generateMock.cpp b/c_tools/mock/generateMock.cpp index a7830dd..fe21928 100644 --- a/c_tools/mock/generateMock.cpp +++ b/c_tools/mock/generateMock.cpp @@ -338,6 +338,7 @@ void saveBox(SimuData *&boxed, const std::string& outbox) f.add_att("range_z_min", ranges[4]); f.add_att("range_z_max", ranges[5]); f.add_att("mask_index", -1); + f.add_att("is_observation", 0); NcDim *NumPart_dim = f.add_dim("numpart_dim", boxed->NumPart); NcDim *NumSnap_dim = f.add_dim("numsnap_dim", num_snapshots);