1 #ifndef BSEMCCRYSTALPOSITIONPAR_HH 2 #define BSEMCCRYSTALPOSITIONPAR_HH 10 #include "RtypesCore.h" 11 #include "TObjArray.h" 15 #include "FairParGenericSet.h" 16 #include "FairParamList.h" 22 class TMemberInspector;
59 BSEmcCrystalPositionPar(
const char *t_name =
"BSEmcCrystalPositionPar",
const char *t_title =
"Center front face position of BSEmc crystals",
60 const char *t_context =
"TestDefaultContext");
64 void putParams(FairParamList * ) ;
65 Bool_t getParams(FairParamList * ) ;
71 void SetPositionMethod(
const TString &t_positionMethod);
75 TVector3 GetPosition(Int_t t_detectorId)
const;
80 void InitFromTextFile(
const TString &t_filename);
81 void WriteToTextFile(
const TString &t_filename)
const;
83 void UpdatePositionArray();
85 Bool_t
IsSet() {
return fPositions->GetEntriesFast() != 0; }
88 std::unique_ptr<TObjArray> fPositions{
nullptr};
89 std::map<Int_t, BSEmcCrystalPositionData> fPositionMap{};
90 Double_t fRescaleFactor{-1};
91 Double_t fCrystalPositionDepth{-1};
92 std::function<TVector3(const BSEmcCrystalPositionData &, Double_t)> fDigiPosMethod{};
93 Bool_t fDigiPosMethodIsSet{kFALSE};
TObjArray * GetPositions() const
const TVector3 & GetAxisVector() const
void SetPositionDepth(Double_t t_depth)
Double_t GetRescaleFactor() const
const TVector3 & GetFrontCentre() const
void SetRescaleFactor(Double_t t_factor)
static std::string fgParameterName
Struct containing crystal position data.
const TVector3 & GetNormalToFrontFace() const
Parameter for crystal positions.
BSEmcCrystalPositionData(const TVector3 ¢er, const TVector3 &fcenter, const TVector3 &frontfacenormal, const TVector3 &axis)
const TVector3 & GetCentre() const
BSEmcCrystalPositionData()=default