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
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(){
InitInputBranch
();
Strasse
=
(
TStrassePhysics
*
)
m_DetectorManager
->
GetDetector
(
"Strasse"
);
myReaction
=
new
NPL
::
Reaction
();
myReaction
->
ReadConfigurationFile
(
NPOptionManager
::
getInstance
()
->
GetReactionFile
());
// reaction properties
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
TargetThickness
=
m_DetectorManager
->
GetTargetThickness
();
string
TargetMaterial
=
m_DetectorManager
->
GetTargetMaterial
();
// EnergyLoss Tables
string
BeamName
=
NPL
::
ChangeNameToG4Standard
(
myBeam
->
GetName
());
BeamTarget
=
NPL
::
EnergyLoss
(
BeamName
+
"_"
+
TargetMaterial
+
".G4Table"
,
"G4Table"
,
10000
);
}
////////////////////////////////////////////////////////////////////////////////
void
Analysis
::
TreatEvent
(){
// Reinitiate calculated variable
ReInitValue
();
unsigned
int
size
=
Strasse
->
GetEventMultiplicity
();
if
(
size
==
2
){
// 2 proton detected
// Proton 1
TVector3
InnerPos1
=
Strasse
->
GetInnerPositionOfInteraction
(
0
);
TVector3
OuterPos1
=
Strasse
->
GetOuterPositionOfInteraction
(
0
);
TVector3
Proton1
=
OuterPos1
-
InnerPos1
;
// Proton 2
TVector3
InnerPos2
=
Strasse
->
GetInnerPositionOfInteraction
(
1
);
TVector3
OuterPos2
=
Strasse
->
GetOuterPositionOfInteraction
(
1
);
TVector3
Proton2
=
OuterPos2
-
InnerPos2
;
double
deltaPhi
=
abs
(
Proton1
.
Phi
()
/
deg
-
Proton2
.
Phi
()
/
deg
);
double
sumTheta
=
Proton1
.
Theta
()
/
deg
+
Proton2
.
Theta
()
/
deg
;
double
OpeningAngle
=
Proton1
.
Angle
(
Proton2
)
/
deg
;
cout
<<
OpeningAngle
<<
endl
;
// reject event that make no physical sense
if
(
deltaPhi
<
170
&&
sumTheta
<
80
){
return
;
}
// computing minimum distance of the two lines
TVector3
Vertex
;
Distance
=
NPL
::
MinimumDistance
(
InnerPos1
,
OuterPos1
,
InnerPos2
,
OuterPos2
,
Vertex
);
VertexX
=
Vertex
.
X
();
VertexY
=
Vertex
.
Y
();
VertexZ
=
Vertex
.
Z
();
// Reinitiate calculated variable
ReInitValue
();
unsigned
int
size
=
Strasse
->
GetEventMultiplicity
();
if
(
size
==
2
){
// 2 proton detected
// Proton 1
TVector3
InnerPos1
=
Strasse
->
GetInnerPositionOfInteraction
(
0
);
TVector3
OuterPos1
=
Strasse
->
GetOuterPositionOfInteraction
(
0
);
TVector3
Proton1
=
OuterPos1
-
InnerPos1
;
// Proton 2
TVector3
InnerPos2
=
Strasse
->
GetInnerPositionOfInteraction
(
1
);
TVector3
OuterPos2
=
Strasse
->
GetOuterPositionOfInteraction
(
1
);
TVector3
Proton2
=
OuterPos2
-
InnerPos2
;
double
deltaPhi
=
abs
(
Proton1
.
Phi
()
/
deg
-
Proton2
.
Phi
()
/
deg
);
double
sumTheta
=
Proton1
.
Theta
()
/
deg
+
Proton2
.
Theta
()
/
deg
;
double
OpeningAngle
=
Proton1
.
Angle
(
Proton2
)
/
deg
;
cout
<<
OpeningAngle
<<
endl
;
// reject event that make no physical sense
if
(
deltaPhi
<
170
&&
sumTheta
<
80
){
return
;
}
// computing minimum distance of the two lines
TVector3
Vertex
;
Distance
=
NPL
::
MinimumDistance
(
InnerPos1
,
OuterPos1
,
InnerPos2
,
OuterPos2
,
Vertex
);
VertexX
=
Vertex
.
X
();
VertexY
=
Vertex
.
Y
();
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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
Strasse Outer
Radius= @OuterRadius mm
Z=
91
.0 mm
Z=
78
.0 mm
Phi= @OuterPhi deg
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
Outer_PCB_Thickness= 1.6 mm
Outer_Wafer_TransverseStrips= 605
Outer_Wafer_LongitudinalStrips= 325
% all radius are external, internal deduced from thickness
Chamber_Thickness= 3 mm
Chamber_Length= 500 mm
Chamber_Radius= 100 mm
Chamber_Cylinder_Length= 360 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
Alias InnerShift
...
...
@@ -83,7 +91,7 @@ Strasse Inner
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
Strasse Outer
Radius= @OuterRadius mm
Z=
91
.0 mm
Z=
78
.0 mm
Phi= @OuterPhi deg
Shift= @OuterShift mm
...
...
@@ -92,6 +100,6 @@ Strasse Chamber
Z= -30 mm
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Catana Dummy
Z= 300 mm
%
Catana Dummy
%
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