KaliVeda
Toolkit for HIC analysis
KVGeoImport.h
1 
4 #ifndef __KVGEOIMPORT_H
5 #define __KVGEOIMPORT_H
6 
7 #include "KVGeoNavigator.h"
8 #include "KVGeoDNTrajectory.h"
9 #include "KVNucleusEvent.h"
10 #include <KVSegmentedDetector.h>
11 class KVMultiDetArray;
12 class KVIonRangeTable;
14 class KVGroup;
15 
69 class KVGeoImport : public KVGeoNavigator {
70 
73  KVDetector* fLastDetector;
77  std::unique_ptr<TVector3> fOrigin;
78 
79  KVDetector* GetCurrentDetector();
80  KVDetector* BuildDetector(TString det_name, TGeoVolume* det_vol, bool segment = false);
81  void AddLayer(KVDetector*, TGeoVolume*);
82  KVDetector* AddSubDetector(KVSegmentedDetector*, TGeoVolume*, Int_t node_number);
85 
86 protected:
87  int ndets0;
88  int count;
93  void ImportGeometry_test_trajectory(double theta, double phi);
95 
96  virtual KVDetector* instantiate_new_detector(const TString& det_name, bool segmented = false);
97 public:
99 
100  void ParticleEntersNewVolume(KVNucleus*) override;
101 
102  void ImportGeometry(Double_t dTheta = 0.1/*degrees*/, Double_t dPhi = 1.0/*degrees*/,
103  Double_t ThetaMin = 0.0/*degrees*/, Double_t PhiMin = 0.0/*degrees*/,
104  Double_t ThetaMax = 180.0/*degrees*/, Double_t PhiMax = 360.0/*degrees*/);
105 
106  void SetLastDetector(KVDetector* d)
107  {
108  fLastDetector = d;
109  }
110 
111  void SetDetectorPlugin(const TString& name)
112  {
114  }
115  void PropagateParticle(KVNucleus*, TVector3* TheOrigin = nullptr) override;
116 
117  void SetOrigin(double x, double y, double z)
118  {
123  fOrigin = std::make_unique<TVector3>(x, y, z);
124  }
125 
126  void AddAcceptedDetectorName(const char* name);
127 
128  ClassDefOverride(KVGeoImport, 0) //Import a ROOT geometry into a KVMultiDetArray object
129 };
130 
131 #endif
int Int_t
#define d(i)
bool Bool_t
double Double_t
#define ClassDefOverride(name, id)
char name[80]
Abstract base class container for multi-particle events.
Definition: KVEvent.h:67
Path taken by particles through multidetector geometry.
Import detector array described by ROOT geometry and set up corresponding KVMultiDetArray object.
Definition: KVGeoImport.h:69
void ParticleEntersNewVolume(KVNucleus *) override
All detectors crossed by the particle's trajectory are added to the multidetector.
Definition: KVGeoImport.cpp:65
KVDetector * AddSubDetector(KVSegmentedDetector *, TGeoVolume *, Int_t node_number)
KVNameValueList fAcceptedDetectorNames
Definition: KVGeoImport.h:83
KVDetector * GetCurrentDetector()
KVDetector * BuildDetector(TString det_name, TGeoVolume *det_vol, bool segment=false)
virtual KVDetector * instantiate_new_detector(const TString &det_name, bool segmented=false)
KVGeoImport(TGeoManager *, KVIonRangeTable *, KVMultiDetArray *, Bool_t create=kTRUE)
Definition: KVGeoImport.cpp:29
KVGeoDNTrajectory fCurrentTrajectory
Definition: KVGeoImport.h:76
Bool_t fCheckDetVolNames
Definition: KVGeoImport.h:84
void ImportGeometry_test_trajectory(double theta, double phi)
Definition: KVGeoImport.cpp:84
KVNucleus * nuc
Definition: KVGeoImport.h:91
KVEvent * evt
Definition: KVGeoImport.h:90
void AddAcceptedDetectorName(const char *name)
TString fDetectorPlugin
Definition: KVGeoImport.h:75
void SetLastDetector(KVDetector *d)
Definition: KVGeoImport.h:106
KVDetector * fLastDetector
Definition: KVGeoImport.h:73
KVIonRangeTable * fRangeTable
Definition: KVGeoImport.h:72
void SetOrigin(double x, double y, double z)
Definition: KVGeoImport.h:117
KVNucleusEvent EVT
Definition: KVGeoImport.h:89
std::unique_ptr< TVector3 > fOrigin
Definition: KVGeoImport.h:77
void SetDetectorPlugin(const TString &name)
Definition: KVGeoImport.h:111
void AddLayer(KVDetector *, TGeoVolume *)
void ImportGeometry_setup_geo()
Definition: KVGeoImport.cpp:99
KVMultiDetArray * fArray
Definition: KVGeoImport.h:71
void ImportGeometry_init_import()
Bool_t fCreateArray
Definition: KVGeoImport.h:74
void PropagateParticle(KVNucleus *, TVector3 *TheOrigin=nullptr) override
void ImportGeometry(Double_t dTheta=0.1, Double_t dPhi=1.0, Double_t ThetaMin=0.0, Double_t PhiMin=0.0, Double_t ThetaMax=180.0, Double_t PhiMax=360.0)
Base class for propagation of particles through array geometry.
Group of detectors which can be treated independently of all others in array.
Definition: KVGroup.h:19
Material for use in energy loss & range calculations.
Abstract base class for calculation of range & energy loss of charged particles in matter.
Base class for describing the geometry of a detector array.
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
An event container for KVNucleus objects.
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:123
A position-sensitive detector made up of several or many numbered sub-detector segments.
Double_t y[n]
Double_t x[n]