KaliVeda
Toolkit for HIC analysis
|
Build INDRA geometry from Huguet CAO infos.
N.B. - the Ring 1 Si-CsI detectors (>=INDRA_camp4) are described using the same geometry as for the 1st campaign phoswich detectors (no CAO data available)
Definition at line 27 of file INDRAGeometryBuilder.h.
#include <INDRAGeometryBuilder.h>
Public Member Functions | |
INDRAGeometryBuilder () | |
Default constructor. | |
INDRAGeometryBuilder (const INDRAGeometryBuilder &) | |
virtual | ~INDRAGeometryBuilder () |
Destructor. | |
void | Build (Bool_t withTarget=kTRUE, Bool_t closeGeometry=kTRUE) |
void | Build (const KVNumberList &rings, const KVNameValueList &detectors) |
void | BuildTarget () |
void | CalculateBackPlaneCoordinates (TVector3 *frontcoords, TVector3 centre, Double_t depth, TVector3 *backcoords) |
void | CalculateCentre (TVector3 *corners, TVector3 ¢re) |
void | CalculateCornersInPlane (TVector3 *plane, Double_t thetamin, Double_t thetamax, Double_t phimin, Double_t phimax, TVector3 *corners) |
Bool_t | CheckDetectorPresent (TString detname) |
ClassDef (INDRAGeometryBuilder, 0) void BuildEtalonVolumes() | |
void | CloseAndDraw () |
void | Copy (TObject &) const |
void | MakeDetector (const Char_t *det, TVector3 *som, TVector3 cen) |
make volume corresponding to the actual detector | |
void | MakeEtalon (int RING) |
void | MakeFrame (TString det_type, Int_t ring_num) |
void | MakeRing (const Char_t *det, int ring) |
void | PlaceDetector () |
position detector inside frame | |
void | PlaceFrame (Double_t phi, Int_t copy_no) |
position frame (dead zone) volume in geometry | |
void | Print (Option_t *="") const |
void | ReadDetCAO (const Char_t *detname, Int_t ring) |
void | ReflectPad (TVector3 *orig, Double_t phicentre, TVector3 *newpad) |
void | TransformToOwnFrame (TVector3 *orig, TVector3 ¢re, TVector3 *ownframe) |
Public Member Functions inherited from KVBase | |
KVBase () | |
Default constructor. | |
KVBase (const Char_t *name, const Char_t *title="") | |
Ctor for object with given name and type. | |
KVBase (const KVBase &) | |
copy ctor | |
virtual | ~KVBase () |
virtual void | Clear (Option_t *opt="") |
Clear object properties : name, type/title, number, label. | |
const Char_t * | GetLabel () const |
UInt_t | GetNumber () const |
UInt_t | GetNumberOfObjects () const |
virtual TObject * | GetObject () const |
virtual const Char_t * | GetType () const |
Bool_t | HasLabel () const |
virtual Bool_t | IsCalled (const Char_t *name) const |
Bool_t | IsLabelled (const Char_t *l) const |
virtual Bool_t | IsType (const Char_t *typ) const |
virtual void | List () |
KVBase & | operator= (const KVBase &) |
copy assignment operator | |
Double_t | ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const |
void | SetLabel (const Char_t *lab) |
virtual void | SetNumber (UInt_t num) |
virtual void | SetType (const Char_t *str) |
Public Member Functions inherited from TNamed | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TNamed &named) | |
TNamed (const TString &name, const TString &title) | |
virtual | ~TNamed () |
void | Clear (Option_t *option="") override |
TObject * | Clone (const char *newname="") const override |
Int_t | Compare (const TObject *obj) const override |
void | Copy (TObject &named) const override |
virtual void | FillBuffer (char *&buffer) |
const char * | GetName () const override |
const char * | GetTitle () const override |
ULong_t | Hash () const override |
TClass * | IsA () const override |
Bool_t | IsSortable () const override |
void | ls (Option_t *option="") const override |
TNamed & | operator= (const TNamed &rhs) |
void | Print (Option_t *option="") const override |
virtual void | SetName (const char *name) |
virtual void | SetNameTitle (const char *name, const char *title) |
virtual void | SetTitle (const char *title="") |
virtual Int_t | Sizeof () const |
void | Streamer (TBuffer &) override |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TObject | |
TObject () | |
TObject (const TObject &object) | |
virtual | ~TObject () |
void | AbstractMethod (const char *method) const |
virtual void | AppendPad (Option_t *option="") |
virtual void | Browse (TBrowser *b) |
ULong_t | CheckedHash () |
virtual const char * | ClassName () const |
virtual void | Delete (Option_t *option="") |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
virtual void | Draw (Option_t *option="") |
virtual void | DrawClass () const |
virtual TObject * | DrawClone (Option_t *option="") const |
virtual void | Dump () const |
virtual void | Error (const char *method, const char *msgfmt,...) const |
virtual void | Execute (const char *method, const char *params, Int_t *error=nullptr) |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
virtual TObject * | FindObject (const char *name) const |
virtual TObject * | FindObject (const TObject *obj) const |
virtual Option_t * | GetDrawOption () const |
virtual const char * | GetIconName () const |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
virtual Option_t * | GetOption () const |
virtual UInt_t | GetUniqueID () const |
virtual Bool_t | HandleTimer (TTimer *timer) |
Bool_t | HasInconsistentHash () const |
virtual void | Info (const char *method, const char *msgfmt,...) const |
virtual Bool_t | InheritsFrom (const char *classname) const |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
virtual void | Inspect () const |
void | InvertBit (UInt_t f) |
Bool_t | IsDestructed () const |
virtual Bool_t | IsEqual (const TObject *obj) const |
virtual Bool_t | IsFolder () const |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
void | MayNotUse (const char *method) const |
virtual Bool_t | Notify () |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *vp) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, void *vp) |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
virtual void | Paint (Option_t *option="") |
virtual void | Pop () |
virtual Int_t | Read (const char *name) |
virtual void | RecursiveRemove (TObject *obj) |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
virtual void | SetDrawOption (Option_t *option="") |
virtual void | SetUniqueID (UInt_t uid) |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
Private Member Functions | |
void | CorrectCoordinates (Double_t *, Double_t &, Double_t &) |
Additional Inherited Members | |
Public Types inherited from KVBase | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
Public Types inherited from TObject | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
Static Public Member Functions inherited from KVBase | |
static Bool_t | AreEqual (Double_t x, Double_t y, Long64_t maxdif=1) |
Comparison between two 64-bit floating-point values. | |
static void | BackupFileWithDate (const Char_t *path) |
static void | CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE) |
static void | Deprecated (const char *method, const char *advice) |
static Bool_t | FindClassSourceFiles (const Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *dir_name=".") |
static Bool_t | FindExecutable (TString &exec, const Char_t *path="$(PATH)") |
static const Char_t * | FindFile (const Char_t *search, TString &wfil) |
static const Char_t * | GetBINDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetDATABASEFilePath () |
static const Char_t * | GetDATADIRFilePath (const Char_t *namefile="") |
static Bool_t | GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval) |
static const Char_t * | GetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval) |
static Double_t | GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t defval) |
static const Char_t * | GetETCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetExampleFilePath (const Char_t *library, const Char_t *namefile) |
Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) | |
static const Char_t * | GetINCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetKVBuildDate () |
Returns KaliVeda build date. | |
static const Char_t * | GetKVBuildDir () |
Returns top-level directory used for build. | |
static const Char_t * | GetKVBuildTime () |
Returns KaliVeda build time. | |
static const Char_t * | GetKVBuildType () |
Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) | |
static const Char_t * | GetKVBuildUser () |
Returns username of person who performed build. | |
static const Char_t * | GetKVSourceDir () |
Returns top-level directory of source tree used for build. | |
static const Char_t * | GetKVVersion () |
Returns KaliVeda version string. | |
static const Char_t * | GetLIBDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetListOfPlugins (const Char_t *base) |
static const Char_t * | GetListOfPluginURIs (const Char_t *base) |
static const Char_t * | GetPluginURI (const Char_t *base, const Char_t *plugin) |
static void | GetTempFileName (TString &base) |
static const Char_t * | GetTEMPLATEDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetWORKDIRFilePath (const Char_t *namefile="") |
static const Char_t * | gitBranch () |
Returns git branch of sources. | |
static const Char_t * | gitCommit () |
Returns last git commit of sources. | |
static void | InitEnvironment () |
static bool | is_gnuinstall () |
static Bool_t | IsThisAPlugin (const TString &uri, TString &base) |
static TPluginHandler * | LoadPlugin (const Char_t *base, const Char_t *uri="0") |
static Bool_t | OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="") |
static void | OpenTempFile (TString &base, std::ofstream &fp) |
static void | PrintSplashScreen () |
Prints welcome message and infos on version etc. | |
static Bool_t | SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="") |
static Bool_t | SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0) |
static Bool_t | SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0) |
static Bool_t | SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="") |
static const Char_t * | WorkingDirectory () |
Static Public Member Functions inherited from TNamed | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static Longptr_t | GetDtorOnly () |
static Bool_t | GetObjectStat () |
static void | SetDtorOnly (void *obj) |
static void | SetObjectStat (Bool_t stat) |
Public Attributes inherited from TObject | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
void | MakeZombie () |
Protected Attributes inherited from TNamed | |
TString | fName |
TString | fTitle |
Protected Attributes inherited from TObject | |
kOnlyPrepStep | |
INDRAGeometryBuilder::INDRAGeometryBuilder | ( | ) |
Default constructor.
Definition at line 52 of file INDRAGeometryBuilder.cpp.
INDRAGeometryBuilder::INDRAGeometryBuilder | ( | const INDRAGeometryBuilder & | obj | ) |
Copy constructor This ctor is used to make a copy of an existing object (for example when a method returns an object), and it is always a good idea to implement it. If your class allocates memory in its constructor(s) then it is ESSENTIAL :-)
Definition at line 68 of file INDRAGeometryBuilder.cpp.
|
virtual |
Destructor.
Definition at line 85 of file INDRAGeometryBuilder.cpp.
Definition at line 809 of file INDRAGeometryBuilder.cpp.
void INDRAGeometryBuilder::Build | ( | const KVNumberList & | rings, |
const KVNameValueList & | detectors | ||
) |
Build geometry, using only the ring numbers in the KVNumberList, and only the detectors which are in the KVNameValueList:
KVNameValueList dets; dets.SetValue("CI",1); dets.SetValue("SI",1); igb.Build("2-9", dets); // use INDRAGeometryBuilder object 'igb' to build // ChIo and Silicon detectors of rings 2-9
Possible detector types are "CI", "SI", "CSI", "PHOS" If you want to see the target in the previous example, use dets.SetValue("TARGET",1)
Include "ring+100" in number list to build etalon telescope for "ring"
This method will not destroy any pre-existing geometry (gGeoManager), but will create one if none exists. Also it will not close the geometry, leaving the possibility to add ancillary detectors.
Definition at line 867 of file INDRAGeometryBuilder.cpp.
void INDRAGeometryBuilder::BuildTarget | ( | ) |
TO DO: multi-layer targets + target with angle to beam target holder
Definition at line 783 of file INDRAGeometryBuilder.cpp.
void INDRAGeometryBuilder::CalculateBackPlaneCoordinates | ( | TVector3 * | frontcoords, |
TVector3 | normal, | ||
Double_t | depth, | ||
TVector3 * | backcoords | ||
) |
Given an array of ncoords points frontcoords[ncoords] which lie in a plane calculate the corresponding points on a parallel plane which is at a distance from the origin which is greater by depth (distance plane-origin = length of normal to plane passing through origin) 'normal' is vector point of intersection plane-normal to origin
Definition at line 123 of file INDRAGeometryBuilder.cpp.
TVector3 corners[4] array of corner coordinates in usual order: corners[3] : theta-min, phi-min corners[2] : theta-max, phi-min corners[1] : theta-max, phi-max corners[0] : theta-min, phi-max
Calculate the intersection of the normal to the plane passing through the origin.
Definition at line 698 of file INDRAGeometryBuilder.cpp.
void INDRAGeometryBuilder::CalculateCornersInPlane | ( | TVector3 * | plane, |
Double_t | thetamin, | ||
Double_t | thetamax, | ||
Double_t | phimin, | ||
Double_t | phimax, | ||
TVector3 * | corners | ||
) |
fill TVector3 corners[4] array in usual order: corners[3] : theta-min, phi-min corners[2] : theta-max, phi-min corners[1] : theta-max, phi-max corners[0] : theta-min, phi-max theta, phi in degrees These points lie in the plane defined by the equivalent TVEctor3 plane[4] corners
Definition at line 727 of file INDRAGeometryBuilder.cpp.
Definition at line 357 of file INDRAGeometryBuilder.cpp.
INDRAGeometryBuilder::ClassDef | ( | INDRAGeometryBuilder | , |
0 | |||
) |
void INDRAGeometryBuilder::CloseAndDraw | ( | ) |
Definition at line 758 of file INDRAGeometryBuilder.cpp.
This method copies the current state of 'this' object into 'obj' You should add here any member variables, for example: (supposing a member variable INDRAGeometryBuilder::fToto) CastedObj.fToto = fToto; or CastedObj.SetToto( GetToto() );
Reimplemented from KVBase.
Definition at line 101 of file INDRAGeometryBuilder.cpp.
|
private |
calculate offset in X and Y correct coordinates for offset return offset TGeoTranslation
Definition at line 28 of file INDRAGeometryBuilder.cpp.
make volume corresponding to the actual detector
Definition at line 593 of file INDRAGeometryBuilder.cpp.
void INDRAGeometryBuilder::MakeEtalon | ( | int | RING | ) |
Build and add etalon telescope for ring Double_t theta[] = {51.075000,63.340000,79.435000,100.685000,118.235000,133.905000,149.790000,166.435000}; Double_t phi[] = {37.500000,37.500000,37.500000,90.000000,78.750000,78.750000,90.000000,90.000000};
Definition at line 988 of file INDRAGeometryBuilder.cpp.
Create the TGeoVolume corresponding to the outer casing (dead zone) of the detector
Definition at line 254 of file INDRAGeometryBuilder.cpp.
Definition at line 386 of file INDRAGeometryBuilder.cpp.
void INDRAGeometryBuilder::PlaceDetector | ( | ) |
position detector inside frame
Definition at line 345 of file INDRAGeometryBuilder.cpp.
position frame (dead zone) volume in geometry
Definition at line 320 of file INDRAGeometryBuilder.cpp.
Reimplemented from KVBase.
Definition at line 230 of file INDRAGeometryBuilder.cpp.
Read infos in CAO file for this detector. We look for a TEnv file with name "detname.cao"
Definition at line 144 of file INDRAGeometryBuilder.cpp.
Definition at line 770 of file INDRAGeometryBuilder.cpp.
void INDRAGeometryBuilder::TransformToOwnFrame | ( | TVector3 * | orig, |
TVector3 & | centre, | ||
TVector3 * | ownframe | ||
) |
takes the four points (TVector3) in the array and transforms them to a reference frame in which the +ve z-axis goes through their centre
Definition at line 300 of file INDRAGeometryBuilder.cpp.
|
private |
Definition at line 41 of file INDRAGeometryBuilder.h.
|
private |
index of active layer of current detector
Definition at line 34 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 50 of file INDRAGeometryBuilder.h.
|
private |
name of detector
Definition at line 28 of file INDRAGeometryBuilder.h.
|
private |
geo volume representing frame
Definition at line 43 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 53 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 52 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 51 of file INDRAGeometryBuilder.h.
|
private |
centre of frame
Definition at line 39 of file INDRAGeometryBuilder.h.
|
private |
coords of outer front face
Definition at line 31 of file INDRAGeometryBuilder.h.
|
private |
material of outer frame
Definition at line 35 of file INDRAGeometryBuilder.h.
|
private |
geo volume representing frame
Definition at line 42 of file INDRAGeometryBuilder.h.
|
private |
centre of inner face
Definition at line 37 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 46 of file INDRAGeometryBuilder.h.
|
private |
coords of inner front face
Definition at line 29 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 47 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 44 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 45 of file INDRAGeometryBuilder.h.
|
private |
list of materials making up layers of current detector
Definition at line 32 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 48 of file INDRAGeometryBuilder.h.
|
private |
centre of outer face
Definition at line 38 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 46 of file INDRAGeometryBuilder.h.
|
private |
coords of outer front face
Definition at line 30 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 47 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 44 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 45 of file INDRAGeometryBuilder.h.
|
private |
detector used for last fLayers look up
Definition at line 33 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 49 of file INDRAGeometryBuilder.h.
|
private |
sum of thicknesses of layers of current detector
Definition at line 36 of file INDRAGeometryBuilder.h.
|
private |
number of detectors in ring
Definition at line 40 of file INDRAGeometryBuilder.h.
|
private |
theoretical geometry
Definition at line 41 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 41 of file INDRAGeometryBuilder.h.
|
private |
Definition at line 41 of file INDRAGeometryBuilder.h.