mirror of
https://github.com/gwm17/Mask.git
synced 2024-11-22 18:28:51 -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() {}
|
MassLookup::~MassLookup() {}
|
||||||
|
|
||||||
//Returns nuclear mass in MeV
|
//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});
|
KeyPair key({Z, A});
|
||||||
auto data = massTable.find(key.GetID());
|
auto data = massTable.find(key.GetID());
|
||||||
|
@ -52,7 +52,7 @@ namespace Mask {
|
||||||
}
|
}
|
||||||
|
|
||||||
//returns element symbol
|
//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});
|
KeyPair key({Z, A});
|
||||||
auto data = elementTable.find(key.GetID());
|
auto data = elementTable.find(key.GetID());
|
||||||
|
|
|
@ -35,9 +35,9 @@ namespace Mask {
|
||||||
};
|
};
|
||||||
|
|
||||||
~MassLookup();
|
~MassLookup();
|
||||||
double FindMass(int Z, int A);
|
double FindMass(uint32_t Z, uint32_t A);
|
||||||
double FindMassU(int Z, int A) { return FindMass(Z, A)/u_to_mev; }
|
double FindMassU(uint32_t Z, uint32_t A) { return FindMass(Z, A)/u_to_mev; }
|
||||||
std::string FindSymbol(int Z, int A);
|
std::string FindSymbol(uint32_t Z, uint32_t A);
|
||||||
|
|
||||||
static MassLookup& GetInstance() { return *s_instance; }
|
static MassLookup& GetInstance() { return *s_instance; }
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace Mask {
|
namespace Mask {
|
||||||
|
|
||||||
Nucleus CreateNucleus(int z, int a)
|
Nucleus CreateNucleus(uint32_t z, uint32_t a)
|
||||||
{
|
{
|
||||||
Nucleus nuc;
|
Nucleus nuc;
|
||||||
nuc.Z = z;
|
nuc.Z = z;
|
||||||
|
|
|
@ -37,8 +37,8 @@ namespace Mask {
|
||||||
return vec4.M() - groundStateMass;
|
return vec4.M() - groundStateMass;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Z = 0;
|
uint32_t Z = 0;
|
||||||
int A = 0;
|
uint32_t A = 0;
|
||||||
double groundStateMass = 0.0;
|
double groundStateMass = 0.0;
|
||||||
std::string isotopicSymbol = "";
|
std::string isotopicSymbol = "";
|
||||||
double thetaCM = 0.0;
|
double thetaCM = 0.0;
|
||||||
|
@ -50,7 +50,7 @@ namespace Mask {
|
||||||
double detectedPhi = 0.0;
|
double detectedPhi = 0.0;
|
||||||
};
|
};
|
||||||
|
|
||||||
Nucleus CreateNucleus(int z, int a);
|
Nucleus CreateNucleus(uint32_t z, uint32_t a);
|
||||||
|
|
||||||
bool EnforceDictionaryLinked();
|
bool EnforceDictionaryLinked();
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,11 @@
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
static double FullPhi(double phi)
|
||||||
|
{
|
||||||
|
return phi < 0.0 ? 2.0*M_PI + phi : phi;
|
||||||
|
}
|
||||||
|
|
||||||
RootPlotter::RootPlotter()
|
RootPlotter::RootPlotter()
|
||||||
{
|
{
|
||||||
TH1::AddDirectory(kFALSE);
|
TH1::AddDirectory(kFALSE);
|
||||||
|
@ -46,7 +51,7 @@ void RootPlotter::Run(const std::string& inputname, const std::string& outputnam
|
||||||
|
|
||||||
output->cd();
|
output->cd();
|
||||||
for(auto& obj : m_map)
|
for(auto& obj : m_map)
|
||||||
obj.second->Write(obj.second->GetName(), TObject::kOverwrite);
|
obj.second->Write();
|
||||||
output->Close();
|
output->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,19 +73,17 @@ void RootPlotter::FillData(const Mask::Nucleus& nuc)
|
||||||
std::string angdist_name = sym + modifier +"_angDist";
|
std::string angdist_name = sym + modifier +"_angDist";
|
||||||
std::string angdist_title = angdist_name+";cos#right(#theta_{CM}#left);counts";
|
std::string angdist_title = angdist_name+";cos#right(#theta_{CM}#left);counts";
|
||||||
|
|
||||||
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_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(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, nuc.vec4.Phi()*s_rad2deg, 2);
|
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(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));
|
MyFill(angdist_name.c_str(), angdist_title.c_str(),20,-1.0,1.0,std::cos(nuc.thetaCM));
|
||||||
}
|
if(nuc.isDetected)
|
||||||
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_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(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, nuc.vec4.Phi()*s_rad2deg, 2);
|
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(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));
|
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