mirror of
https://github.com/gwm17/Mask.git
synced 2024-11-10 12:48:50 -05:00
Now passes intial testing, seems fully functional. Need to do some optimization tests against old way to see if actually improved anything.
This commit is contained in:
parent
0b7b06e4f1
commit
ba023b48dd
|
@ -41,7 +41,7 @@ namespace Mask {
|
|||
MassLookup::~MassLookup() {}
|
||||
|
||||
//Returns nuclear mass in MeV
|
||||
double MassLookup::FindMass(int Z, int A)
|
||||
double MassLookup::FindMass(uint32_t Z, uint32_t A)
|
||||
{
|
||||
KeyPair key({Z, A});
|
||||
auto data = massTable.find(key.GetID());
|
||||
|
@ -52,7 +52,7 @@ namespace Mask {
|
|||
}
|
||||
|
||||
//returns element symbol
|
||||
std::string MassLookup::FindSymbol(int Z, int A)
|
||||
std::string MassLookup::FindSymbol(uint32_t Z, uint32_t A)
|
||||
{
|
||||
KeyPair key({Z, A});
|
||||
auto data = elementTable.find(key.GetID());
|
||||
|
|
|
@ -35,9 +35,9 @@ namespace Mask {
|
|||
};
|
||||
|
||||
~MassLookup();
|
||||
double FindMass(int Z, int A);
|
||||
double FindMassU(int Z, int A) { return FindMass(Z, A)/u_to_mev; }
|
||||
std::string FindSymbol(int Z, int A);
|
||||
double FindMass(uint32_t Z, uint32_t A);
|
||||
double FindMassU(uint32_t Z, uint32_t A) { return FindMass(Z, A)/u_to_mev; }
|
||||
std::string FindSymbol(uint32_t Z, uint32_t A);
|
||||
|
||||
static MassLookup& GetInstance() { return *s_instance; }
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace Mask {
|
||||
|
||||
Nucleus CreateNucleus(int z, int a)
|
||||
Nucleus CreateNucleus(uint32_t z, uint32_t a)
|
||||
{
|
||||
Nucleus nuc;
|
||||
nuc.Z = z;
|
||||
|
|
|
@ -37,8 +37,8 @@ namespace Mask {
|
|||
return vec4.M() - groundStateMass;
|
||||
}
|
||||
|
||||
int Z = 0;
|
||||
int A = 0;
|
||||
uint32_t Z = 0;
|
||||
uint32_t A = 0;
|
||||
double groundStateMass = 0.0;
|
||||
std::string isotopicSymbol = "";
|
||||
double thetaCM = 0.0;
|
||||
|
@ -50,7 +50,7 @@ namespace Mask {
|
|||
double detectedPhi = 0.0;
|
||||
};
|
||||
|
||||
Nucleus CreateNucleus(int z, int a);
|
||||
Nucleus CreateNucleus(uint32_t z, uint32_t a);
|
||||
|
||||
bool EnforceDictionaryLinked();
|
||||
|
||||
|
|
|
@ -5,6 +5,11 @@
|
|||
|
||||
#include <iostream>
|
||||
|
||||
static double FullPhi(double phi)
|
||||
{
|
||||
return phi < 0.0 ? 2.0*M_PI + phi : phi;
|
||||
}
|
||||
|
||||
RootPlotter::RootPlotter()
|
||||
{
|
||||
TH1::AddDirectory(kFALSE);
|
||||
|
@ -46,7 +51,7 @@ void RootPlotter::Run(const std::string& inputname, const std::string& outputnam
|
|||
|
||||
output->cd();
|
||||
for(auto& obj : m_map)
|
||||
obj.second->Write(obj.second->GetName(), TObject::kOverwrite);
|
||||
obj.second->Write();
|
||||
output->Close();
|
||||
}
|
||||
|
||||
|
@ -68,19 +73,17 @@ void RootPlotter::FillData(const Mask::Nucleus& nuc)
|
|||
std::string angdist_name = sym + modifier +"_angDist";
|
||||
std::string angdist_title = angdist_name+";cos#right(#theta_{CM}#left);counts";
|
||||
|
||||
|
||||
MyFill(ke_vs_th_name.c_str(), ke_vs_th_title.c_str(), nuc.vec4.Theta()*s_rad2deg, nuc.GetKE(), 2);
|
||||
MyFill(ke_vs_ph_name.c_str(), ke_vs_ph_title.c_str(), FullPhi(nuc.vec4.Phi())*s_rad2deg, nuc.GetKE(), 4);
|
||||
MyFill(th_vs_ph_name.c_str(), th_vs_ph_title.c_str(), nuc.vec4.Theta()*s_rad2deg, FullPhi(nuc.vec4.Phi())*s_rad2deg, 2);
|
||||
MyFill(ex_name.c_str(),ex_title.c_str(),260,-1.0,25,nuc.GetExcitationEnergy());
|
||||
MyFill(angdist_name.c_str(), angdist_title.c_str(),20,-1.0,1.0,std::cos(nuc.thetaCM));
|
||||
if(nuc.isDetected)
|
||||
{
|
||||
MyFill(ke_vs_th_name.c_str(), ke_vs_th_title.c_str(), nuc.vec4.Theta()*s_rad2deg, nuc.GetKE(), 2);
|
||||
MyFill(ke_vs_ph_name.c_str(), ke_vs_ph_title.c_str(), nuc.vec4.Phi()*s_rad2deg, nuc.GetKE(), 4);
|
||||
MyFill(th_vs_ph_name.c_str(), th_vs_ph_title.c_str(), nuc.vec4.Theta()*s_rad2deg, nuc.vec4.Phi()*s_rad2deg, 2);
|
||||
MyFill(ex_name.c_str(),ex_title.c_str(),260,-1.0,25,nuc.GetExcitationEnergy());
|
||||
MyFill(angdist_name.c_str(), angdist_title.c_str(),20,-1.0,1.0,std::cos(nuc.thetaCM));
|
||||
}
|
||||
else
|
||||
{
|
||||
MyFill(ke_vs_th_name.c_str(), ke_vs_th_title.c_str(), nuc.vec4.Theta()*s_rad2deg, nuc.detectedKE, 2);
|
||||
MyFill(ke_vs_ph_name.c_str(), ke_vs_ph_title.c_str(), nuc.vec4.Phi()*s_rad2deg, nuc.detectedKE, 4);
|
||||
MyFill(th_vs_ph_name.c_str(), th_vs_ph_title.c_str(), nuc.vec4.Theta()*s_rad2deg, nuc.vec4.Phi()*s_rad2deg, 2);
|
||||
MyFill(ke_vs_ph_name.c_str(), ke_vs_ph_title.c_str(), FullPhi(nuc.vec4.Phi())*s_rad2deg, nuc.detectedKE, 4);
|
||||
MyFill(th_vs_ph_name.c_str(), th_vs_ph_title.c_str(), nuc.vec4.Theta()*s_rad2deg, FullPhi(nuc.vec4.Phi())*s_rad2deg, 2);
|
||||
MyFill(ex_name.c_str(),ex_title.c_str(),260,-1.0,25,nuc.GetExcitationEnergy());
|
||||
MyFill(angdist_name.c_str(), angdist_title.c_str(),20,-1.0,1.0,std::cos(nuc.thetaCM));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user