1 #ifndef PionInteractionSystematic_h 2 #define PionInteractionSystematic_h 4 #include "Interaction.hxx" 5 #include "SelectionBase.hxx" 6 #include "PionCrossSections.hxx" 9 #include <TGeoManager.h> 11 #include <TGeoVolume.h> 12 #include <TGeoMaterial.h> 28 Float_t weightMCToData;
44 Float_t* pInteraction;
46 Int_t* typeInteraction;
48 Float_t MCSumNSigmaStepLength;
50 Float_t DataSumNSigmaStepLength;
55 Float_t DataProbNoInt;
66 std::vector<Float_t> testFinalMom;
67 std::vector<TLorentzVector> testFinalPos;
68 std::vector<Int_t> testInteractionType;
84 Float_t MCSumNSigmaStepLength;
87 Float_t DataSumNSigmaStepLength;
90 std::vector<Float_t> stepLengths;
96 TLorentzVector finalPos;
99 SteppingResult(Float_t, Float_t, std::vector<Float_t>,Float_t,TLorentzVector);
106 Double_t DScattCentres(TGeoMixture* mixture);
108 Int_t GetMaterialSeries(std::string matName);
110 Double_t GetIElement(Int_t Z);
112 Double_t GetZoverAMaterial(TGeoMixture* mat);
114 Double_t GetIMaterial(TGeoMixture* mat, Double_t ZoverA);
116 Double_t computeEkinFromMom(Double_t mom);
118 Double_t Interpolate(
double xsec1,
double xsec2,
double mom1,
double mom);
122 std::pair<TLorentzVector,TVector3> TakeSmallStep(Int_t charge,
123 TLorentzVector initPos,
126 TGeoMaterial* material,
127 std::string materialName,
128 TGeoMixture* mixture);
144 virtual Bool_t InVOI(SubDetId_h det, Float_t* pos)
const;
145 virtual Bool_t InVOI1(Float_t* pos)
const;
146 virtual Bool_t InVOI2(Float_t* pos)
const;
147 virtual Bool_t InVOIext(Float_t* pos)
const;
151 TLorentzVector initPos,
153 TLorentzVector finalPos,
155 TGeoManager* geom)
const;
167 return ComputePionWeightInfo(event, sel.
GetDetectorFV(branch));
175 extern TGeoManager *pionSIGeom;
179 TGeoManager* GetPionSIGeometry();
virtual ~PionSIManager()
dtor
Representation of a true Monte Carlo trajectory/particle.
SubDetId_h GetDetectorFV(Int_t ibranch=0) const
Get the detector in which the Fiducial Volume is defined.