ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
|
Go to the documentation of this file.
8 #include <Math/Point3D.h>
9 #include <Math/Point3Dfwd.h>
10 #include <Math/Vector3D.h>
11 #include <Math/Vector3Dfwd.h>
12 #include <Math/Vector4D.h>
13 #include <Math/Vector4Dfwd.h>
14 #include <TClonesArray.h>
32 std::function<double(
const std::vector<double> &exp,
const std::vector<double> &sim,
const double *par)>;
62 static double ObjectiveChargeChi2(
const std::vector<double> &exp,
const std::vector<double> &sim,
const double *par);
66 ObjectiveChargeDiff2(
const std::vector<double> &exp,
const std::vector<double> &sim,
const double *par);
78 double ObjectiveCharge(
const std::array<std::vector<double>, 2> &exp,
const std::array<std::vector<double>, 2> &sim,
102 static double violaEn(
int A,
int Z) {
return 0.1189 * Z * Z / std::pow(A, 1.0 / 3.0) + 7.3; }
107 #endif // ATMCFISSION_H
double ObjectivePosition(const AtFissionEvent &expEvent, int SimEventID)
XYZVector GetBeamDirSample(AtMCResult &, const std::array< XYZVector, 2 > &ffDir)
virtual void CreateParamDistros() override
Create the parameter distributions to use for the fit.
double ObjectiveChargePads(const AtFissionEvent &expEvent, int SimEventID, AtMCResult &def)
ROOT::Math::PxPyPzEVector XYZEVector
virtual TClonesArray SimulateEvent(AtMCResult &definition) override
ROOT::Math::XYZVector XYZVector
void SetMomMagnitude(std::array< XYZVector, 2 > &mom, double pTrans)
ObjectiveFuncCharge fObjCharge
Objective function to minimize the difference between A*sim and exp charge curves.
static double ObjectiveChargeChi2(const std::vector< double > &exp, const std::vector< double > &sim, const double *par)
void SetChargeObjective(ObjectiveFuncCharge obj)
double ObjectivePosition3(double uE, double sE, double uO, double sO)
static double ObjectiveChargeDiff2(const std::vector< double > &exp, const std::vector< double > &sim, const double *par)
ROOT::Math::XYZPoint XYZPoint
double ObjectivePosition2(double uE, double sE, double uO, double sO)
void SetZRange(int Zmin, int Zmax)
std::vector< size_t > cluster
std::shared_ptr< AtPulse > PulsePtr
std::shared_ptr< AtClusterize > ClusterPtr
ROOT::Math::PxPyPzEVector PxPyPzEVector
XYZPoint GetVertex(AtMCResult &)
std::function< double(const std::vector< double > &exp, const std::vector< double > &sim, const double *par)> ObjectiveFuncCharge
Base class for all event types in ATTPCROOT.
double ObjectivePositionPads(const AtFissionEvent &expEvent, int SimEventID)
AtMCFission(SimPtr sim, ClusterPtr cluster, PulsePtr pulse)
virtual double ObjectiveFunction(const AtBaseEvent &expEvent, int SimEventID, AtMCResult &definition) override
This is the thing we are minimizing between events (SimEventID is index in TClonesArray)
ROOT::Math::XYZPoint XYZPoint
static double ObjectiveChargeChi2Norm(const std::vector< double > &exp, const std::vector< double > &sim, const double *par)
std::array< Ion, 2 > GetFragmentSpecies(AtMCResult &, const Ion &CN)
XYZVector GetBeamDir(AtMCResult &, const std::array< XYZVector, 2 > &ffDir, double pTrans)
std::shared_ptr< AtSimpleSimulation > SimPtr
virtual AtMCResult DefineEvent() override
virtual ~AtMCFission()=default
std::array< XYZVector, 2 > GetMomDirLab(AtMCResult &)
ROOT::Math::XYZVector XYZVector
double ObjectiveCharge(const AtFissionEvent &expEvent, int SimEventID, AtMCResult &def)
double ObjectivePosition4(double uE, double sE, double uO, double sO)
XYZVector fNominalBeamDir
virtual void SetParamDistributions(const AtPatternEvent &event) override
Set parameter distributions (mean/spread) from the event.
static double violaEn(int A, int Z)
XYZVector GetBeamDirSameV(AtMCResult &, const std::array< XYZVector, 2 > &ffDir)