Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
nptool
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Admin message
Gitlab has been updated. More info
here
and
there
.
Show more breadcrumbs
np
nptool
Commits
63d84242
Commit
63d84242
authored
4 years ago
by
flavigny
Browse files
Options
Downloads
Patches
Plain Diff
* Prepare analysis for missing mass + update geometries
parent
39165bb9
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
Projects/Strasse/Analysis.cxx
+62
-30
62 additions, 30 deletions
Projects/Strasse/Analysis.cxx
Projects/Strasse/strasse_optimized.detector
+1
-1
1 addition, 1 deletion
Projects/Strasse/strasse_optimized.detector
Projects/Strasse/strasse_ref.detector
+13
-5
13 additions, 5 deletions
Projects/Strasse/strasse_ref.detector
with
76 additions
and
36 deletions
Projects/Strasse/Analysis.cxx
+
62
−
30
View file @
63d84242
...
@@ -45,44 +45,76 @@ void Analysis::Init(){
...
@@ -45,44 +45,76 @@ void Analysis::Init(){
InitInputBranch
();
InitInputBranch
();
Strasse
=
(
TStrassePhysics
*
)
m_DetectorManager
->
GetDetector
(
"Strasse"
);
Strasse
=
(
TStrassePhysics
*
)
m_DetectorManager
->
GetDetector
(
"Strasse"
);
myReaction
=
new
NPL
::
Reaction
();
// reaction properties
myReaction
->
ReadConfigurationFile
(
NPOptionManager
::
getInstance
()
->
GetReactionFile
());
myQFS
=
new
NPL
::
QFS
();
myQFS
->
ReadConfigurationFile
(
NPOptionManager
::
getInstance
()
->
GetReactionFile
());
// reaction properties
myBeam
=
new
NPL
::
Beam
();
myBeam
->
ReadConfigurationFile
(
NPOptionManager
::
getInstance
()
->
GetReactionFile
());
InitialBeamEnergy
=
myBeam
->
GetEnergy
()
*
myBeam
->
GetA
();
// target thickness
// target thickness
TargetThickness
=
m_DetectorManager
->
GetTargetThickness
();
TargetThickness
=
m_DetectorManager
->
GetTargetThickness
();
string
TargetMaterial
=
m_DetectorManager
->
GetTargetMaterial
();
string
TargetMaterial
=
m_DetectorManager
->
GetTargetMaterial
();
// EnergyLoss Tables
string
BeamName
=
NPL
::
ChangeNameToG4Standard
(
myBeam
->
GetName
());
BeamTarget
=
NPL
::
EnergyLoss
(
BeamName
+
"_"
+
TargetMaterial
+
".G4Table"
,
"G4Table"
,
10000
);
}
}
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void
Analysis
::
TreatEvent
(){
void
Analysis
::
TreatEvent
(){
// Reinitiate calculated variable
// Reinitiate calculated variable
ReInitValue
();
ReInitValue
();
unsigned
int
size
=
Strasse
->
GetEventMultiplicity
();
unsigned
int
size
=
Strasse
->
GetEventMultiplicity
();
if
(
size
==
2
){
// 2 proton detected
if
(
size
==
2
){
// 2 proton detected
// Proton 1
// Proton 1
TVector3
InnerPos1
=
Strasse
->
GetInnerPositionOfInteraction
(
0
);
TVector3
InnerPos1
=
Strasse
->
GetInnerPositionOfInteraction
(
0
);
TVector3
OuterPos1
=
Strasse
->
GetOuterPositionOfInteraction
(
0
);
TVector3
OuterPos1
=
Strasse
->
GetOuterPositionOfInteraction
(
0
);
TVector3
Proton1
=
OuterPos1
-
InnerPos1
;
TVector3
Proton1
=
OuterPos1
-
InnerPos1
;
// Proton 2
// Proton 2
TVector3
InnerPos2
=
Strasse
->
GetInnerPositionOfInteraction
(
1
);
TVector3
InnerPos2
=
Strasse
->
GetInnerPositionOfInteraction
(
1
);
TVector3
OuterPos2
=
Strasse
->
GetOuterPositionOfInteraction
(
1
);
TVector3
OuterPos2
=
Strasse
->
GetOuterPositionOfInteraction
(
1
);
TVector3
Proton2
=
OuterPos2
-
InnerPos2
;
TVector3
Proton2
=
OuterPos2
-
InnerPos2
;
double
deltaPhi
=
abs
(
Proton1
.
Phi
()
/
deg
-
Proton2
.
Phi
()
/
deg
);
double
deltaPhi
=
abs
(
Proton1
.
Phi
()
/
deg
-
Proton2
.
Phi
()
/
deg
);
double
sumTheta
=
Proton1
.
Theta
()
/
deg
+
Proton2
.
Theta
()
/
deg
;
double
sumTheta
=
Proton1
.
Theta
()
/
deg
+
Proton2
.
Theta
()
/
deg
;
double
OpeningAngle
=
Proton1
.
Angle
(
Proton2
)
/
deg
;
double
OpeningAngle
=
Proton1
.
Angle
(
Proton2
)
/
deg
;
cout
<<
OpeningAngle
<<
endl
;
cout
<<
OpeningAngle
<<
endl
;
// reject event that make no physical sense
// reject event that make no physical sense
if
(
deltaPhi
<
170
&&
sumTheta
<
80
){
if
(
deltaPhi
<
170
&&
sumTheta
<
80
){
return
;
return
;
}
}
// computing minimum distance of the two lines
// computing minimum distance of the two lines
TVector3
Vertex
;
TVector3
Vertex
;
Distance
=
NPL
::
MinimumDistance
(
InnerPos1
,
OuterPos1
,
InnerPos2
,
OuterPos2
,
Vertex
);
Distance
=
NPL
::
MinimumDistance
(
InnerPos1
,
OuterPos1
,
InnerPos2
,
OuterPos2
,
Vertex
);
VertexX
=
Vertex
.
X
();
VertexX
=
Vertex
.
X
();
VertexY
=
Vertex
.
Y
();
VertexY
=
Vertex
.
Y
();
VertexZ
=
Vertex
.
Z
();
VertexZ
=
Vertex
.
Z
();
}
}
//double thickness_before = 0;
//double EA_vertex = BeamTarget.Slow(InitialBeamEnergy,thickness_before,0);
// setting up Lorentz Vector from measured trajectories and energies
//LV_A.SetVect(PA); LV_p1.SetE(EA_vertex);
//LV_p1.SetVect(P1); LV_p1.SetE(E1);
//LV_p2.SetVect(P2); LV_p1.SetE(E2);
// computing Ex from Missing Mass
//double EB = LV_A.E() + LV_T.E() - LV_p1.E() - LV_p2.E();
//TVector3 PB = LV_A.Vect() + LV_p1.Vect() - LV_p2.Vect();
//Ex = TMath::Sqrt( EB*EB - PB.Mag2() ) - myQFS->GetNucleusB()->Mass();
}
////////////////////////////////////////////////////////////////////////////////
TVector3
Analysis
::
InterpolateInPlaneZ
(
TVector3
V0
,
TVector3
V1
,
double
Zproj
){
TVector3
Vproj
(
-
999
,
-
999
,
-
999
);
double
t
=
(
Zproj
-
V1
.
Z
())
/
(
V1
.
Z
()
-
V0
.
Z
());
double
Xproj
=
V1
.
X
()
+
(
V1
.
X
()
-
V0
.
X
())
*
t
;
double
Yproj
=
V1
.
Y
()
+
(
V1
.
Y
()
-
V0
.
Y
())
*
t
;
Vproj
.
SetXYZ
(
Xproj
,
Yproj
,
Zproj
);
return
Vproj
;
}
}
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
...
...
This diff is collapsed.
Click to expand it.
Projects/Strasse/strasse_optimized.detector
+
1
−
1
View file @
63d84242
...
@@ -90,7 +90,7 @@ Strasse Inner
...
@@ -90,7 +90,7 @@ Strasse Inner
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
Strasse Outer
Strasse Outer
Radius= @OuterRadius mm
Radius= @OuterRadius mm
Z=
91
.0 mm
Z=
78
.0 mm
Phi= @OuterPhi deg
Phi= @OuterPhi deg
Shift= @OuterShift mm
Shift= @OuterShift mm
...
...
This diff is collapsed.
Click to expand it.
Projects/Strasse/strasse_ref.detector
+
13
−
5
View file @
63d84242
...
@@ -43,9 +43,17 @@ Strasse Info
...
@@ -43,9 +43,17 @@ Strasse Info
Outer_PCB_Thickness= 1.6 mm
Outer_PCB_Thickness= 1.6 mm
Outer_Wafer_TransverseStrips= 605
Outer_Wafer_TransverseStrips= 605
Outer_Wafer_LongitudinalStrips= 325
Outer_Wafer_LongitudinalStrips= 325
% all radius are external, internal deduced from thickness
Chamber_Thickness= 3 mm
Chamber_Thickness= 3 mm
Chamber_Length= 500 mm
Chamber_Cylinder_Length= 360 mm
Chamber_Radius= 100 mm
Chamber_Radius= 180 mm
Chamber_ExitTube_Radius= 79.5 mm
Chamber_ExitTube_Length= 100 mm
Chamber_Flange_Inner_Radius= 50 mm
Chamber_Sphere_Radius= 220 mm
Chamber_Sphere_Shift= 60 mm
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
Alias InnerShift
Alias InnerShift
...
@@ -83,7 +91,7 @@ Strasse Inner
...
@@ -83,7 +91,7 @@ Strasse Inner
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
Strasse Outer
Strasse Outer
Radius= @OuterRadius mm
Radius= @OuterRadius mm
Z=
91
.0 mm
Z=
78
.0 mm
Phi= @OuterPhi deg
Phi= @OuterPhi deg
Shift= @OuterShift mm
Shift= @OuterShift mm
...
@@ -92,6 +100,6 @@ Strasse Chamber
...
@@ -92,6 +100,6 @@ Strasse Chamber
Z= -30 mm
Z= -30 mm
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Catana Dummy
%
Catana Dummy
Z= 300 mm
%
Z= 300 mm
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment