13 #ifndef BSEMCCRYSTALPOSITIONPAR_HH 14 #define BSEMCCRYSTALPOSITIONPAR_HH 22 #include "RtypesCore.h" 23 #include "TObjArray.h" 27 #include "FairParGenericSet.h" 28 #include "FairParamList.h" 34 class TMemberInspector;
71 BSEmcCrystalPositionPar(
const char *t_name =
"BSEmcCrystalPositionPar",
const char *t_title =
"Center front face position of BSEmc crystals",
72 const char *t_context =
"TestDefaultContext");
76 void putParams(FairParamList * ) ;
77 Bool_t getParams(FairParamList * ) ;
83 void SetPositionMethod(
const TString &t_positionMethod);
87 TVector3 GetPosition(Int_t t_detectorId)
const;
92 void InitFromTextFile(
const TString &t_filename);
93 void WriteToTextFile(
const TString &t_filename)
const;
95 void UpdatePositionArray();
97 Bool_t
IsSet() {
return fPositions->GetEntriesFast() != 0; }
100 std::unique_ptr<TObjArray> fPositions{
nullptr};
101 std::map<Int_t, BSEmcCrystalPositionData> fPositionMap{};
102 Double_t fRescaleFactor{-1};
103 Double_t fCrystalPositionDepth{-1};
104 std::function<TVector3(const BSEmcCrystalPositionData &, Double_t)> fDigiPosMethod{};
105 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