fclose(pf);
}
//______________________________________________________________________
-AliITSgeom::AliITSgeom(AliITSgeom &source) : TObject(source){
+AliITSgeom::AliITSgeom(const AliITSgeom &source) : TObject(source){
// The copy constructor for the AliITSgeom class. It calls the
// = operator function. See the = operator function for more details.
// Inputs are:
return;
}
//______________________________________________________________________
-AliITSgeom& AliITSgeom::operator=(AliITSgeom &source){
+AliITSgeom& AliITSgeom::operator=(const AliITSgeom &source){
// The = operator function for the AliITSgeom class. It makes an
// independent copy of the class in such a way that any changes made
// to the copied class will not affect the source class in any way.
return *this;
}
//______________________________________________________________________
-inline Int_t AliITSgeom::GetNdetectors(Int_t lay) const {
- // Return the number of detectors/ladder for the given layer
- // Inputs:
- // Int_t lay the layer number
- // Outputs:
- // none.
- // Return:
- // Int_t the number of detectors/ladders for the give layer
- Int_t ndet;
-
- ndet = fNdet[lay-1];
- return ndet;
-}
-//______________________________________________________________________
-inline Int_t AliITSgeom::GetNladders(Int_t lay) const {
- // Return the number of ladders for the given layer
- // Inputs:
- // Int_t lay the layer number
- // Outputs:
- // none.
- // Return:
- // Int_t the number of ladders for the give layer
- Int_t nlad;
-
- nlad = fNlad[lay-1];
- return nlad;
-}
-//______________________________________________________________________
Int_t AliITSgeom::GetModuleIndex(Int_t lay,Int_t lad,Int_t det){
// This routine computes the module index number from the layer,
// ladder, and detector numbers. The number of ladders and detectors
j = 0;
for(k=0;k<lay-1;k++) j += fNdet[k]*fNlad[k];
i = i+j;
+ if(i>=fNmodules) return -1;
GetGeomMatrix(i)->GetIndex(id);
if(id[0]==lay&&id[1]==lad&&id[2]==det) return i;
// Array of modules fGm is not in expected order. Search for this index
return 0;
}
//______________________________________________________________________
-inline void AliITSgeom::GetCenterThetaPhi(Int_t lay,Int_t lad,Int_t det,
- TVector &x){
- // This function returns the Cartesian translation [cm] and the
- // 6 GEANT rotation angles [degrees]for a given layer ladder and
- // detector number, in the TVector x (at least 9 elements large).
- // Inputs:
- // Int_t lay ITS Layer number
- // Int_t lad ITS Ladder number
- // Int_t det ITS Detector number
- // Outputs:
- // TVector &x The translation vector and the 6 rotaion angles
- // Return:
- // none.
- Double_t t[3],ang[6];
- Int_t index=GetModuleIndex(lay,lad,det);
-
- GetTrans(index,t);
- GetGeantAngles(index,ang);
- x(0) = t[0];x(1) = t[1];x(2) = t[2];
- x(3) = ang[0];x(4) = ang[1];x(5) = ang[2];
- x(6) = ang[3];x(7) = ang[4];x(8) = ang[5];
-}
-//______________________________________________________________________
void AliITSgeom::PrintComparison(FILE *fp,AliITSgeom *other){
// This function was primarily created for diagnostic reasons. It
// print to a file pointed to by the file pointer fp the difference