Class Reference for E1039 Core & Analysis Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SQBeamlineObject.h
Go to the documentation of this file.
1 /*=====================================================================================================
2 Author: Abinash Pun, Kun Liu
3 Sep, 2019
4 Goal: Beamline volumes work to import the primary vertex generator of E906 experiment(DPVertexGenerator)
5 from Kun to E1039 experiment in Fun4All framework
6 ========================================================================================================*/
7 
8 #ifndef __SQBEAMLINEOBJECT_H__
9 #define __SQBEAMLINEOBJECT_H__
10 
11 #include <iostream>
12 
13 #include <TGeoMaterial.h>
14 #include <TString.h>
15 
17 {
18 public:
20  SQBeamlineObject(const TGeoMaterial* pMaterial);
21  //BeamlineObject(const TGeoMixture* pMaterial);
23  double getZ();
24 
26  bool inAcceptance(double x, double y);
27 
28  bool operator < (const SQBeamlineObject& obj) const;
29  friend std::ostream& operator << (std::ostream& os, const SQBeamlineObject& obj);
30 
31 public:
32  TString name;
33 
34  //intialized by geometry
35  double z_up, z_down, z0;
36  double length;
37  double radiusX;
38  double radiusY;
39 
40  //initialized by material property
41  double nucIntLen;
42  double density;
43  double Z, A, N;
44 
45  //intialized by its neighbours
46  double attenuationSelf;
47  double attenuation;
48  double prob;
49  double accumulatedProb;
50 
51  double protonPerc() { return Z/A; }
52 };
53 
54 
55 #endif
double prob
beam attenuation factor by this object
double nucIntLen
radiusY
double protonPerc()
sum of all the previous/upstream probs
double Z
density in g/cm3
double getZ()
get the expotential z distribution
double accumulatedProb
probability of having collision
double attenuationSelf
number of protons, nucleons, neutrons
bool inAcceptance(double x, double y)
check if the beam is in acceptance
double length
the z position of upstram/downstream face and center
double density
nuclear interaction length in cm
friend std::ostream & operator<<(std::ostream &os, const SQBeamlineObject &obj)
double attenuation
beam attenuation percentage by itself
bool operator<(const SQBeamlineObject &obj) const
double radiusX
length of the stuff
double radiusY
radiusX