FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndLmdAlignPar Class Reference

Alignment Parameter Class for LMD. More...

#include <PndLmdAlignPar.h>

Inheritance diagram for PndLmdAlignPar:

Public Member Functions

 PndLmdAlignPar (const char *name="PndLmdAlignPar", const char *title="PndLmd alignment parameter", const char *context="TestDefaultContext")
 
 ~PndLmdAlignPar (void)
 
void clear (void)
 
void putParams (FairParamList *list)
 
Bool_t getParams (FairParamList *list)
 
void Print ()
 
Double_t GetShiftX (int j) const
 
Double_t GetShiftY (int j) const
 
Double_t GetShiftZ (int j) const
 
Double_t GetRotateX (int j) const
 
Double_t GetRotateY (int j) const
 
Double_t GetRotateZ (int j) const
 
Int_t GetNsensors ()
 
Int_t GetNsides ()
 
Int_t GetNplanes ()
 
Int_t GetNhalfs ()
 
Int_t GetNmodules ()
 

Private Member Functions

 ClassDef (PndLmdAlignPar, 6)
 

Private Attributes

Int_t fsensors
 
Int_t fsides
 
Int_t fplanes
 
Int_t fhalfs
 
Int_t fmodules
 
vector< double > fshift_x
 
vector< double > fshift_y
 
vector< double > fshift_z
 
vector< double > frotate_x
 
vector< double > frotate_y
 
vector< double > frotate_z
 

Detailed Description

Alignment Parameter Class for LMD.

Definition at line 17 of file PndLmdAlignPar.h.

Constructor & Destructor Documentation

PndLmdAlignPar::PndLmdAlignPar ( const char *  name = "PndLmdAlignPar",
const char *  title = "PndLmd alignment parameter",
const char *  context = "TestDefaultContext" 
)

Definition at line 6 of file PndLmdAlignPar.cxx.

References clear().

7  : FairParGenericSet(name,title,context),fshift_x(0),fshift_y(0),fshift_z(0),frotate_x(0),frotate_y(0),frotate_z(0)
8 {
9  clear();
10 }
vector< double > fshift_z
vector< double > fshift_x
vector< double > frotate_y
TString name
vector< double > frotate_x
vector< double > frotate_z
void clear(void)
vector< double > fshift_y
PndLmdAlignPar::~PndLmdAlignPar ( void  )
inline

Definition at line 23 of file PndLmdAlignPar.h.

23 {};

Member Function Documentation

PndLmdAlignPar::ClassDef ( PndLmdAlignPar  ,
 
)
private
void PndLmdAlignPar::clear ( void  )
inline

Definition at line 24 of file PndLmdAlignPar.h.

Referenced by PndLmdAlignPar().

24 {};
Int_t PndLmdAlignPar::GetNhalfs ( )
inline

Definition at line 40 of file PndLmdAlignPar.h.

40 {return fhalfs;}
Int_t PndLmdAlignPar::GetNmodules ( )
inline

Definition at line 41 of file PndLmdAlignPar.h.

41 {return fmodules;}
Int_t PndLmdAlignPar::GetNplanes ( )
inline

Definition at line 38 of file PndLmdAlignPar.h.

38 {return fplanes;}
Int_t PndLmdAlignPar::GetNsensors ( )
inline

Definition at line 36 of file PndLmdAlignPar.h.

36 {return fsensors;}
Int_t PndLmdAlignPar::GetNsides ( )
inline

Definition at line 37 of file PndLmdAlignPar.h.

37 {return fsides;}
Bool_t PndLmdAlignPar::getParams ( FairParamList *  list)

Definition at line 71 of file PndLmdAlignPar.cxx.

References fhalfs, fmodules, fplanes, frotate_x, frotate_y, frotate_z, fsensors, fshift_x, fshift_y, fshift_z, fsides, and TString.

72 {
73  if (!list) return kFALSE;
74  if (!list->fill("num_halfs", &fhalfs)) return kFALSE;
75  if (!list->fill("num_planes", &fplanes)) return kFALSE;
76  if (!list->fill("num_modules", &fmodules)) return kFALSE;
77  if (!list->fill("num_sensors", &fsensors)) return kFALSE;
78  if (!list->fill("num_sides", &fsides)) return kFALSE;
79 
80  fshift_x.resize(fhalfs*fplanes*fmodules,0);
81  fshift_y.resize(fhalfs*fplanes*fmodules,0);
82  fshift_z.resize(fhalfs*fplanes*fmodules,0);
83  frotate_x.resize(fhalfs*fplanes*fmodules,0);
84  frotate_y.resize(fhalfs*fplanes*fmodules,0);
85  frotate_z.resize(fhalfs*fplanes*fmodules,0);
86 
87  for (int ihalf = 0; ihalf < fhalfs; ihalf++){ // loop over detector halves
88  for (int iplane = 0; iplane < fplanes; iplane++){ // loop over planes
89  for (int imodule = 0; imodule < fmodules; imodule++){ // loop over modules
90  int curpos = (ihalf*fplanes*fmodules)+(iplane*fmodules)+imodule;
91  TString name_shx = "shift_x_";
92  name_shx +=ihalf;
93  name_shx +="_";
94  name_shx +=iplane;
95  name_shx +="_";
96  name_shx +=imodule;
97 
98  TString name_shy = "shift_y_";
99  name_shy +=ihalf;
100  name_shy +="_";
101  name_shy +=iplane;
102  name_shy +="_";
103  name_shy +=imodule;
104 
105  TString name_shz = "shift_z_";
106  name_shz +=ihalf;
107  name_shz +="_";
108  name_shz +=iplane;
109  name_shz +="_";
110  name_shz +=imodule;
111 
112  TString name_rotx = "rotate_x_";
113  name_rotx +=ihalf;
114  name_rotx +="_";
115  name_rotx +=iplane;
116  name_rotx +="_";
117  name_rotx +=imodule;
118 
119  TString name_roty = "rotate_y_";
120  name_roty +=ihalf;
121  name_roty +="_";
122  name_roty +=iplane;
123  name_roty +="_";
124  name_roty +=imodule;
125 
126  TString name_rotz = "rotate_z_";
127  name_rotz +=ihalf;
128  name_rotz +="_";
129  name_rotz +=iplane;
130  name_rotz +="_";
131  name_rotz +=imodule;
132 
133  if (!list->fill(name_shx, &fshift_x[curpos])) return kFALSE;
134  if (!list->fill(name_shy, &fshift_y[curpos])) return kFALSE;
135  if (!list->fill(name_shz, &fshift_z[curpos])) return kFALSE;
136  if (!list->fill(name_rotx, &frotate_x[curpos])) return kFALSE;
137  if (!list->fill(name_roty, &frotate_y[curpos])) return kFALSE;
138  if (!list->fill(name_rotz, &frotate_z[curpos])) return kFALSE;
139  }
140  }
141  }
142  return kTRUE;
143 }
vector< double > fshift_z
vector< double > fshift_x
vector< double > frotate_y
vector< double > frotate_x
vector< double > frotate_z
vector< double > fshift_y
Double_t PndLmdAlignPar::GetRotateX ( int  j) const
inline

Definition at line 33 of file PndLmdAlignPar.h.

Referenced by PndLmdDim::Read_DB_offsets().

33 {return frotate_x[j];}
vector< double > frotate_x
Double_t PndLmdAlignPar::GetRotateY ( int  j) const
inline

Definition at line 34 of file PndLmdAlignPar.h.

Referenced by PndLmdDim::Read_DB_offsets().

34 {return frotate_y[j];}
vector< double > frotate_y
Double_t PndLmdAlignPar::GetRotateZ ( int  j) const
inline

Definition at line 35 of file PndLmdAlignPar.h.

Referenced by PndLmdDim::Read_DB_offsets().

35 {return frotate_z[j];}
vector< double > frotate_z
Double_t PndLmdAlignPar::GetShiftX ( int  j) const
inline

Accessor functions

Definition at line 30 of file PndLmdAlignPar.h.

Referenced by PndLmdDim::Read_DB_offsets().

30 {return fshift_x[j];}
vector< double > fshift_x
Double_t PndLmdAlignPar::GetShiftY ( int  j) const
inline

Definition at line 31 of file PndLmdAlignPar.h.

Referenced by PndLmdDim::Read_DB_offsets().

31 {return fshift_y[j];}
vector< double > fshift_y
Double_t PndLmdAlignPar::GetShiftZ ( int  j) const
inline

Definition at line 32 of file PndLmdAlignPar.h.

Referenced by PndLmdDim::Read_DB_offsets().

32 {return fshift_z[j];}
vector< double > fshift_z
void PndLmdAlignPar::Print ( )

Definition at line 147 of file PndLmdAlignPar.cxx.

References fhalfs, fmodules, fplanes, frotate_x, frotate_y, frotate_z, fshift_x, fshift_y, and fshift_z.

148 {
149  std::cout<<"LUMI Alignment Parameters for geometry with :"<<std::endl;
150  std::cout<<" Halfs = "<<fhalfs<<std::endl;
151  std::cout<<" Planes = "<<fplanes<<std::endl;
152  std::cout<<" Modules = "<<fmodules<<std::endl;
153  std::cout<<" fshift_x.size() = "<< fshift_x.size()<<std::endl;
154  std::cout<<" fshift_y.size() = "<< fshift_z.size()<<std::endl;
155  std::cout<<" fshift_z.size() = "<< fshift_z.size()<<std::endl;
156  std::cout<<" frotate_x.size() = "<< frotate_x.size()<<std::endl;
157  std::cout<<" frotate_y.size() = "<< frotate_y.size()<<std::endl;
158  std::cout<<" frotate_z.size() = "<< frotate_z.size()<<std::endl;
159 
160  for(size_t ix=0; ix<fshift_x.size();ix++){
161  if(fshift_x[ix]!=0) cout<<"fshift_x["<<ix<<"]="<<fshift_x[ix]<<endl;
162  if(fshift_y[ix]!=0) cout<<"fshift_y["<<ix<<"]="<<fshift_y[ix]<<endl;
163  if(fshift_z[ix]!=0) cout<<"fshift_z["<<ix<<"]="<<fshift_z[ix]<<endl;
164  if(frotate_x[ix]!=0) cout<<"frotate_x["<<ix<<"]="<<frotate_x[ix]<<endl;
165  if(frotate_y[ix]!=0) cout<<"frotate_y["<<ix<<"]="<<frotate_y[ix]<<endl;
166  if(frotate_z[ix]!=0) cout<<"frotate_z["<<ix<<"]="<<frotate_z[ix]<<endl;
167  }
168  return;
169 }
vector< double > fshift_z
vector< double > fshift_x
vector< double > frotate_y
vector< double > frotate_x
vector< double > frotate_z
vector< double > fshift_y
void PndLmdAlignPar::putParams ( FairParamList *  list)

Definition at line 12 of file PndLmdAlignPar.cxx.

References Double_t, fhalfs, fmodules, fplanes, frotate_x, frotate_y, frotate_z, fsensors, fshift_x, fshift_y, fshift_z, fsides, and TString.

13 {
14  if(!list) return;
15  list->add("num_halfs", (Int_t)fhalfs);
16  list->add("num_planes", (Int_t)fplanes);
17  list->add("num_modules", (Int_t)fmodules);
18  list->add("num_sensors", (Int_t)fsensors);
19  list->add("num_sides", (Int_t)fsides);
20  for (int ihalf = 0; ihalf < fhalfs; ihalf++){ // loop over detector halves
21  for (int iplane = 0; iplane < fplanes; iplane++){ // loop over planes
22  for (int imodule = 0; imodule < fmodules; imodule++){ // loop over modules
23  int curpos = (ihalf*fplanes*fmodules)+(iplane*fmodules)+imodule;
24  TString name_shx = "shift_x_";
25  name_shx +=ihalf;
26  name_shx +="_";
27  name_shx +=iplane;
28  name_shx +="_";
29  name_shx +=imodule;
30  list->add(name_shx, (Double_t)fshift_x[curpos]);
31  TString name_shy = "shift_y_";
32  name_shy +=ihalf;
33  name_shy +="_";
34  name_shy +=iplane;
35  name_shy +="_";
36  name_shy +=imodule;
37  list->add(name_shy, (Double_t)fshift_y[curpos]);
38  TString name_shz = "shift_z_";
39  name_shz +=ihalf;
40  name_shz +="_";
41  name_shz +=iplane;
42  name_shz +="_";
43  name_shz +=imodule;
44  list->add(name_shz, (Double_t)fshift_z[curpos]);
45  TString name_rotx = "rotate_x_";
46  name_rotx +=ihalf;
47  name_rotx +="_";
48  name_rotx +=iplane;
49  name_rotx +="_";
50  name_rotx +=imodule;
51  list->add(name_rotx, (Double_t)frotate_x[curpos]);
52  TString name_roty = "rotate_y_";
53  name_roty +=ihalf;
54  name_roty +="_";
55  name_roty +=iplane;
56  name_roty +="_";
57  name_roty +=imodule;
58  list->add(name_roty, (Double_t)frotate_y[curpos]);
59  TString name_rotz = "rotate_z_";
60  name_rotz +=ihalf;
61  name_rotz +="_";
62  name_rotz +=iplane;
63  name_rotz +="_";
64  name_rotz +=imodule;
65  list->add(name_rotz, (Double_t)frotate_z[curpos]);
66  }
67  }
68  }
69 }
vector< double > fshift_z
vector< double > fshift_x
Double_t
vector< double > frotate_y
vector< double > frotate_x
vector< double > frotate_z
vector< double > fshift_y

Member Data Documentation

Int_t PndLmdAlignPar::fhalfs
private

Definition at line 47 of file PndLmdAlignPar.h.

Referenced by getParams(), Print(), and putParams().

Int_t PndLmdAlignPar::fmodules
private

Definition at line 48 of file PndLmdAlignPar.h.

Referenced by getParams(), Print(), and putParams().

Int_t PndLmdAlignPar::fplanes
private

Definition at line 46 of file PndLmdAlignPar.h.

Referenced by getParams(), Print(), and putParams().

vector<double> PndLmdAlignPar::frotate_x
private

Definition at line 53 of file PndLmdAlignPar.h.

Referenced by getParams(), Print(), and putParams().

vector<double> PndLmdAlignPar::frotate_y
private

Definition at line 54 of file PndLmdAlignPar.h.

Referenced by getParams(), Print(), and putParams().

vector<double> PndLmdAlignPar::frotate_z
private

Definition at line 55 of file PndLmdAlignPar.h.

Referenced by getParams(), Print(), and putParams().

Int_t PndLmdAlignPar::fsensors
private

Definition at line 44 of file PndLmdAlignPar.h.

Referenced by getParams(), and putParams().

vector<double> PndLmdAlignPar::fshift_x
private

Definition at line 50 of file PndLmdAlignPar.h.

Referenced by getParams(), Print(), and putParams().

vector<double> PndLmdAlignPar::fshift_y
private

Definition at line 51 of file PndLmdAlignPar.h.

Referenced by getParams(), Print(), and putParams().

vector<double> PndLmdAlignPar::fshift_z
private

Definition at line 52 of file PndLmdAlignPar.h.

Referenced by getParams(), Print(), and putParams().

Int_t PndLmdAlignPar::fsides
private

Definition at line 45 of file PndLmdAlignPar.h.

Referenced by getParams(), and putParams().


The documentation for this class was generated from the following files: