Commit b358b40f authored by Naomi Davis's avatar Naomi Davis Committed by Simon Spannagel
Browse files

Adapted the scale of the histogram 'incident track position' to the size

of the detector. The incident_track_position_vector_ is now filled with
the global position to also adapt to the detector position.
parent 0a9996e2
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -408,7 +408,7 @@ void DepositionGeant4Module::run(Event* event) {
                double deposited_energy = static_cast<double>(Units::convert(sensor->getDepositedEnergy(), "keV"));
                energy_per_event_[sensor->getName()]->Fill(deposited_energy);

                for(auto track_position : sensor->getIncidentPosition()){
                for(auto track_position : sensor->getIncidentPositions()){
                    incident_track_position_[sensor->getName()]->Fill(track_position.x(), track_position.y());
                }
            }
@@ -543,6 +543,9 @@ void DepositionGeant4Module::construct_sensitive_detectors_and_fields() {
                (static_cast<int>(maximum_charge / 2. * Units::convert(charge_creation_energy, "eV")) / 10) * 10 + 10;
            int nbins = 5 * maximum_charge;

            // Get detector model size
            auto sensor_size = detector->getModel()->getSensorSize();

            // Create histograms if needed
            {
                std::lock_guard<std::mutex> lock(histogram_mutex_);
@@ -574,12 +577,12 @@ void DepositionGeant4Module::construct_sensitive_detectors_and_fields() {
                    incident_track_position_[sensitive_detector_action->getName()] =
                        CreateHistogram<TH2D>(plot_name.c_str(),
                                             "incident track position;X [mm];Y [mm];Z",
                                              2000, 
                                              -50, 
                                              50, 
                                              6000, 
                                              -30, 
                                              30);
                                             500,
                                             -sensor_size.X() / 2,
                                             sensor_size.X() / 2,
                                             500,
                                             -sensor_size.Y() / 2,
                                             sensor_size.Y() / 2);
                }
            }
        }
+3 −2
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ double SensitiveDetectorActionG4::getTotalDepositedEnergy() const { return total

double SensitiveDetectorActionG4::getDepositedEnergy() const { return deposited_energy_; }

std::vector<ROOT::Math::XYZPoint> SensitiveDetectorActionG4::getIncidentPosition() const {    
std::vector<ROOT::Math::XYZPoint> SensitiveDetectorActionG4::getIncidentPositions() const {
    return incident_track_position_;
}

@@ -192,7 +192,8 @@ void SensitiveDetectorActionG4::dispatchMessages(Module* module, Messenger* mess
        mc_particles.back().setKineticEnergyStart(track_kinetic_energy_start_.at(track_id));
        id_to_particle_[track_id] = mc_particles.size() - 1;

        incident_track_position_.push_back(local_begin);
        // incident_track_position_.emplace_back(local_begin);
        incident_track_position_.emplace_back(global_begin);

        LOG(DEBUG) << "Found MC particle " << pdg_code << " crossing detector " << detector_->getName() << " from "
                   << Units::display(local_begin, {"mm", "um"}) << " to " << Units::display(local_end, {"mm", "um"})