mirror of
https://github.com/gwm17/Mask.git
synced 2025-10-02 12:48:49 -04:00
59 lines
2.3 KiB
C++
59 lines
2.3 KiB
C++
#ifndef ANASEN_ARRAY_H
|
|
#define ANASEN_ARRAY_H
|
|
|
|
#include <string>
|
|
|
|
#include "DetectorArray.h"
|
|
#include "SX3Detector.h"
|
|
#include "QQQDetector.h"
|
|
#include "Mask/Target.h"
|
|
#include "Mask/Nucleus.h"
|
|
#include "AnasenDeadChannelMap.h"
|
|
|
|
class AnasenArray : public DetectorArray
|
|
{
|
|
public:
|
|
AnasenArray();
|
|
~AnasenArray();
|
|
virtual DetectorResult IsDetected(const Mask::Nucleus& nucleus);
|
|
virtual void DrawDetectorSystem(const std::string& filename) override;
|
|
virtual double RunConsistencyCheck() override;
|
|
virtual void SetDeadChannelMap(const std::string& filename) override { dmap.LoadMapfile(filename); }
|
|
|
|
private:
|
|
DetectorResult IsRing1(const Mask::Nucleus& nucleus);
|
|
DetectorResult IsRing2(const Mask::Nucleus& nucleus);
|
|
DetectorResult IsQQQ(const Mask::Nucleus& nucleus);
|
|
|
|
std::vector<SX3Detector> m_Ring1;
|
|
std::vector<SX3Detector> m_Ring2;
|
|
std::vector<QQQDetector> m_forwardQQQs;
|
|
std::vector<QQQDetector> m_backwardQQQs;
|
|
|
|
Mask::Target m_detectorEloss;
|
|
|
|
AnasenDeadChannelMap dmap;
|
|
|
|
/**** ANASEN geometry constants *****/
|
|
static constexpr int s_nSX3PerBarrel = 12;
|
|
static constexpr int s_nQQQ = 4;
|
|
static constexpr double s_sx3Length = 0.075;
|
|
static constexpr double s_barrelGap = 0.0254;
|
|
static constexpr double s_sx3FrameGap = 0.049; //0.049 is base gap due to frames
|
|
static constexpr double s_barrel1Z = s_sx3Length/2.0 + s_sx3FrameGap + s_barrelGap/2.0;
|
|
static constexpr double s_barrel2Z = (-1.0)*(s_barrelGap/2.0 + s_sx3Length/2.0);
|
|
static constexpr double s_qqqZ = 0.0125 + s_sx3Length + s_sx3FrameGap + s_barrelGap/2.0;
|
|
static constexpr double s_qqqZList[4] = {s_qqqZ, s_qqqZ, s_qqqZ, s_qqqZ};
|
|
static constexpr double s_qqqPhiList[4] = {5.49779, 0.785398, 2.35619, 3.92699};
|
|
static constexpr double s_barrelRhoList[12] = {0.0890601, 0.0889871, 0.0890354, 0.0890247, 0.0890354, 0.0890354, 0.0890247,
|
|
0.0890354, 0.0890354, 0.0890247, 0.0890354, 0.0890354};
|
|
static constexpr double s_barrelPhiList[12] = {4.97426, 5.49739, 6.02132, 0.261868, 0.785398, 1.30893, 1.83266, 2.35619, 2.87972,
|
|
3.40346, 3.92699, 4.45052};
|
|
/*************************/
|
|
|
|
static constexpr double s_energyThreshold = 0.6; //MeV
|
|
static constexpr double s_deg2rad = M_PI/180.0;
|
|
static constexpr double s_detectorThickness = 1000 * 1e-4 * 2.3926 * 1e6; //thickness in um -> eff thickness in ug/cm^2 for detector
|
|
};
|
|
|
|
#endif |