2020-11-16 13:38:39 -05:00
|
|
|
#ifndef SABREEFFICIENCY_H
|
|
|
|
#define SABREEFFICIENCY_H
|
|
|
|
|
2022-02-08 11:44:32 -05:00
|
|
|
#include "MaskFile.h"
|
2021-08-27 16:41:27 -04:00
|
|
|
#include "DetectorEfficiency.h"
|
2020-11-16 13:38:39 -05:00
|
|
|
#include "SabreDetector.h"
|
2021-03-10 15:00:35 -05:00
|
|
|
#include "Target.h"
|
2021-12-06 13:19:54 -05:00
|
|
|
#include "SabreDeadChannelMap.h"
|
2021-09-03 17:03:41 -04:00
|
|
|
#include "Nucleus.h"
|
2020-11-16 13:38:39 -05:00
|
|
|
|
2021-08-27 16:41:27 -04:00
|
|
|
class SabreEfficiency : public DetectorEfficiency {
|
2020-11-16 13:38:39 -05:00
|
|
|
public:
|
|
|
|
SabreEfficiency();
|
|
|
|
~SabreEfficiency();
|
2021-04-12 10:22:35 -04:00
|
|
|
void SetDeadChannelMap(std::string& filename) { dmap.LoadMapfile(filename); };
|
2021-09-03 17:03:41 -04:00
|
|
|
void CalculateEfficiency(const std::string& inputname, const std::string& outputname, const std::string& statsname) override;
|
2021-08-27 16:41:27 -04:00
|
|
|
void DrawDetectorSystem(const std::string& filename) override;
|
|
|
|
double RunConsistencyCheck() override;
|
2020-11-16 13:38:39 -05:00
|
|
|
|
|
|
|
private:
|
2021-09-03 17:03:41 -04:00
|
|
|
std::pair<bool,double> IsSabre(Mask::Nucleus& nucleus);
|
2022-02-08 11:44:32 -05:00
|
|
|
void CountCoincidences(const Mask::MaskFileData& data, std::vector<int>& counts, Mask::RxnType rxn_type);
|
2020-11-16 13:38:39 -05:00
|
|
|
|
2020-12-09 17:07:58 -05:00
|
|
|
std::vector<SabreDetector> detectors;
|
2021-08-23 10:00:36 -04:00
|
|
|
|
2021-09-06 16:18:49 -04:00
|
|
|
Mask::Target deadlayer;
|
|
|
|
Mask::Target sabre_eloss;
|
2021-12-06 13:19:54 -05:00
|
|
|
SabreDeadChannelMap dmap;
|
2020-11-16 13:38:39 -05:00
|
|
|
|
|
|
|
//Sabre constants
|
|
|
|
const double INNER_R = 0.0326;
|
|
|
|
const double OUTER_R = 0.1351;
|
|
|
|
const double TILT = 40.0;
|
2020-12-09 17:07:58 -05:00
|
|
|
const double DIST_2_TARG = -0.1245;
|
2020-11-16 13:38:39 -05:00
|
|
|
const double PHI_COVERAGE = 54.4; //delta phi for each det
|
2020-12-09 17:07:58 -05:00
|
|
|
const double PHI0 = 234.0; //center phi values for each det in array
|
|
|
|
const double PHI1 = 162.0; //# is equal to detID in channel map
|
|
|
|
const double PHI2 = 306.0;
|
|
|
|
const double PHI3 = 18.0;
|
|
|
|
const double PHI4 = 90.0;
|
2020-11-16 13:38:39 -05:00
|
|
|
const double DEG2RAD = M_PI/180.0;
|
2021-03-10 15:00:35 -05:00
|
|
|
static constexpr double DEADLAYER_THIN = 50 * 1e-7 * 2.3296 * 1e6; // ug/cm^2 (50 nm thick * density)
|
2021-08-23 10:00:36 -04:00
|
|
|
static constexpr double SABRE_THICKNESS = 500 * 1e-4 * 2.3926 * 1e6; // ug/cm^2 (500 um thick * density)
|
2020-11-16 13:38:39 -05:00
|
|
|
|
2021-03-10 15:00:35 -05:00
|
|
|
const double ENERGY_THRESHOLD = 0.2; //in MeV
|
2020-11-16 13:38:39 -05:00
|
|
|
|
|
|
|
};
|
|
|
|
|
2021-03-10 15:00:35 -05:00
|
|
|
#endif
|