24 cout<<
"Number of strips: "<<numStrips<<
'\n';
25 cout<<
"Distance between strips: "<<stripDistance<<
'\n';
26 cout<<
"Lab transformation:\n"<<
" ";
31 const Char_t* context)
64 for(Int_t k=0;k<9;k++) transform.SetAt(r(k), i*12 + k);
65 transform.SetAt(v.
getX(), i*12 + 9);
66 transform.SetAt(v.
getY(), i*12 + 10);
67 transform.SetAt(v.
getZ(), i*12 + 11);
69 l->
add(
"numDetectors", numDetectors);
70 l->
add(
"numStrips", nStrips);
71 l->
add(
"stripDistance", dist);
72 l->
add(
"labTransform", transform);
77 if (!l)
return kFALSE;
79 if (!l->
fill(
"numDetectors", &nDet))
return kFALSE;
80 TArrayI nStrips(nDet);
81 if (!l->
fill(
"numStrips", &nStrips))
return kFALSE;
82 if (nStrips.GetSize()!=nDet) {
83 Error(
"HPionTrackerGeomPar::getParams(HParamList* l)",
84 "Array size of numStrips does not fit to number of detectors");
88 if (!l->
fill(
"stripDistance", &dist))
return kFALSE;
89 if (dist.GetSize()!=nDet) {
90 Error(
"HPionTrackerGeomPar::getParams(HParamList* l)",
91 "Array size of stripDistance does not fit to number of detectors");
94 Int_t nData = nDet*12;
95 Double_t* tValues =
new Double_t[nData];
96 Bool_t
rc = l->
fill(
"labTransform",tValues,nData);
98 Error(
"HPionTrackerGeomPar::getParams(HParamList* l)",
99 "Array size of labTransform does not fit to number of detectors");
111 for(Int_t k=0;k<9;k++) r[k] = tValues[i*12+k];
112 for(Int_t k=0;k<3;k++) v[k] = tValues[i*12+9+k];
123 cout<<
"----- Geometry of Pion Tracker detectors ------------------"<<endl;
126 cout<<
"Detector number: "<<i<<
'\n';
128 cout<<
"-------------------------"<<endl;
134 Int_t maxDetectors = 0;
137 if (nDet >= maxDetectors) {
140 for (Int_t i=0;i<nDet;++i) {
145 Error(
"HPionTrackerGeomPar::setNumDetectors(const Int_t nDet)",
146 "Number of detectors too small for number of active modules in the setup");
150 Error(
"HPionTrackerGeomPar::setNumDetectors(const Int_t nDet",
"nDet must be larger than 0");
Bool_t getParams(HParamList *)
Float_t getNumStrips(void) const
HPionTrackerDetGeomPar * getDetector(const Int_t)
void putParams(HParamList *)
Int_t getMaxModInSetup(void)
void setStripDistance(const Float_t d)
HPionTrackerGeomPar(const Char_t *name="PionTrackerGeomPar", const Char_t *title="Geometry parameters of the PionTracker", const Char_t *context="GeomProduction")
HSpectrometer * getSetup(void)
Float_t getStripDistance(void) const
HDetector * getDetector(const Char_t *name)
void setNumStrips(const Int_t n)
HGeomTransform & getLabTransform(void)
ClassImp(HPionTrackerDetGeomPar) ClassImp(HPionTrackerGeomPar) void HPionTrackerDetGeomPar
Bool_t setNumDetectors(const Int_t)
~HPionTrackerGeomPar(void)
Bool_t fill(const Text_t *, Text_t *, const Int_t)