From c041444f8fe020ca40720f8cedada58419cff7dc Mon Sep 17 00:00:00 2001 From: cvetan Date: Thu, 30 Mar 2006 08:54:13 +0000 Subject: [PATCH] Correct layer index for LayerSize() and LayerName() methods --- STEER/AliAlignObj.cxx | 57 ++++++++++++++++++++++++-------- STEER/AliAlignObj.h | 4 +-- STEER/AliAlignmentTracks.cxx | 28 ++++++++-------- STEER/AliTrackFitterRieman.cxx | 6 ++-- STEER/AliTrackFitterStraight.cxx | 3 +- 5 files changed, 63 insertions(+), 35 deletions(-) diff --git a/STEER/AliAlignObj.cxx b/STEER/AliAlignObj.cxx index 594ba6dee04..7aeec580c18 100644 --- a/STEER/AliAlignObj.cxx +++ b/STEER/AliAlignObj.cxx @@ -291,15 +291,46 @@ void AliAlignObj::Print(Option_t *) const TGeoHMatrix m; GetMatrix(m); const Double_t *rot = m.GetRotationMatrix(); -// printf("Volume=%s ID=%u\n", GetVolPath(),GetVolUID()); - ELayerID layerId; - Int_t modId; - GetVolUID(layerId,modId); - printf("Volume=%s LayerID=%d ModuleID=%d\n", GetVolPath(),layerId,modId); - printf("%12.6f%12.6f%12.6f Tx = %12.6f Psi = %12.6f\n", rot[0], rot[1], rot[2], tr[0], angles[0]); - printf("%12.6f%12.6f%12.6f Ty = %12.6f Theta = %12.6f\n", rot[3], rot[4], rot[5], tr[1], angles[1]); - printf("%12.6f%12.6f%12.6f Tz = %12.6f Phi = %12.6f\n", rot[6], rot[7], rot[8], tr[2], angles[2]); + printf("Volume=%s\n",GetVolPath()); + if (GetVolUID() != 0) { + ELayerID layerId; + Int_t modId; + GetVolUID(layerId,modId); + printf("VolumeID=%d LayerID=%d ( %s ) ModuleID=%d\n", GetVolUID(),layerId,LayerName(layerId),modId); + } + printf("%12.8f%12.8f%12.8f Tx = %12.8f Psi = %12.8f\n", rot[0], rot[1], rot[2], tr[0], angles[0]); + printf("%12.8f%12.8f%12.8f Ty = %12.8f Theta = %12.8f\n", rot[3], rot[4], rot[5], tr[1], angles[1]); + printf("%12.8f%12.8f%12.8f Tz = %12.8f Phi = %12.8f\n", rot[6], rot[7], rot[8], tr[2], angles[2]); + +} + +//_____________________________________________________________________________ +Int_t AliAlignObj::LayerSize(Int_t layerId) +{ + // Get the corresponding layer size. + // Implemented only for ITS,TPC,TRD,TOF and RICH + if (layerId < kFirstLayer || layerId >= kLastLayer) { + AliErrorClass(Form("Invalid layer index %d ! Layer range is (%d -> %d) !",layerId,kFirstLayer,kLastLayer)); + return 0; + } + else { + return fgLayerSize[layerId - kFirstLayer]; + } +} + +//_____________________________________________________________________________ +const char* AliAlignObj::LayerName(Int_t layerId) +{ + // Get the corresponding layer name. + // Implemented only for ITS,TPC,TRD,TOF and RICH + if (layerId < kFirstLayer || layerId >= kLastLayer) { + AliErrorClass(Form("Invalid layer index %d ! Layer range is (%d -> %d) !",layerId,kFirstLayer,kLastLayer)); + return "Invalid Layer!"; + } + else { + return fgLayerName[layerId - kFirstLayer]; + } } //_____________________________________________________________________________ @@ -493,13 +524,13 @@ void AliAlignObj::InitAlignObjFromGeometry() InitVolPaths(); - for (Int_t iLayer = 0; iLayer < (AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer); iLayer++) { - fgAlignObjs[iLayer] = new AliAlignObj*[AliAlignObj::LayerSize(iLayer)]; + for (Int_t iLayer = kFirstLayer; iLayer < AliAlignObj::kLastLayer; iLayer++) { + fgAlignObjs[iLayer-kFirstLayer] = new AliAlignObj*[AliAlignObj::LayerSize(iLayer)]; for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) { - UShort_t volid = AliAlignObj::LayerToVolUID(iLayer+ AliAlignObj::kFirstLayer,iModule); - fgAlignObjs[iLayer][iModule] = new AliAlignObjAngles("",volid,0,0,0,0,0,0); + UShort_t volid = AliAlignObj::LayerToVolUID(iLayer,iModule); + fgAlignObjs[iLayer-kFirstLayer][iModule] = new AliAlignObjAngles("",volid,0,0,0,0,0,0); const char *path = GetVolPath(volid); - if (!GetFromGeometry(path, *fgAlignObjs[iLayer][iModule])) + if (!GetFromGeometry(path, *fgAlignObjs[iLayer-kFirstLayer][iModule])) AliErrorClass(Form("Failed to extract the alignment object for the volume (ID=%d and path=%s) !",volid,path)); } } diff --git a/STEER/AliAlignObj.h b/STEER/AliAlignObj.h index 6810d5336c7..c8c54a6b57f 100644 --- a/STEER/AliAlignObj.h +++ b/STEER/AliAlignObj.h @@ -72,8 +72,8 @@ class AliAlignObj : public TObject { void Print(Option_t *) const; - static Int_t LayerSize(Int_t layer) { return fgLayerSize[layer]; } - static const char* LayerName(Int_t layer) { return fgLayerName[layer]; } + static Int_t LayerSize(Int_t layerId); + static const char* LayerName(Int_t layerId); static UShort_t LayerToVolUID(ELayerID layerId, Int_t modId); static UShort_t LayerToVolUID(Int_t layerId, Int_t modId); diff --git a/STEER/AliAlignmentTracks.cxx b/STEER/AliAlignmentTracks.cxx index faf89f1c85c..1aa1a3082d9 100644 --- a/STEER/AliAlignmentTracks.cxx +++ b/STEER/AliAlignmentTracks.cxx @@ -289,9 +289,9 @@ void AliAlignmentTracks::InitIndex() fLastIndex = new Int_t*[nLayers]; fArrayIndex = new TArrayI**[nLayers]; for (Int_t iLayer = 0; iLayer < (AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer); iLayer++) { - fLastIndex[iLayer] = new Int_t[AliAlignObj::LayerSize(iLayer)]; - fArrayIndex[iLayer] = new TArrayI*[AliAlignObj::LayerSize(iLayer)]; - for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) { + fLastIndex[iLayer] = new Int_t[AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer)]; + fArrayIndex[iLayer] = new TArrayI*[AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer)]; + for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer); iModule++) { fLastIndex[iLayer][iModule] = 0; fArrayIndex[iLayer][iModule] = 0; } @@ -307,7 +307,7 @@ void AliAlignmentTracks::ResetIndex() fIsIndexBuilt = kFALSE; for (Int_t iLayer = 0; iLayer < AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer; iLayer++) { - for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) { + for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer); iModule++) { fLastIndex[iLayer][iModule] = 0; } } @@ -319,7 +319,7 @@ void AliAlignmentTracks::DeleteIndex() // Delete the index arrays // Called by the destructor for (Int_t iLayer = 0; iLayer < (AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer); iLayer++) { - for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) { + for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer); iModule++) { if (fArrayIndex[iLayer][iModule]) { delete fArrayIndex[iLayer][iModule]; fArrayIndex[iLayer][iModule] = 0; @@ -349,8 +349,8 @@ void AliAlignmentTracks::InitAlignObjs() Int_t nLayers = AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer; fAlignObjs = new AliAlignObj**[nLayers]; for (Int_t iLayer = 0; iLayer < (AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer); iLayer++) { - fAlignObjs[iLayer] = new AliAlignObj*[AliAlignObj::LayerSize(iLayer)]; - for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) { + fAlignObjs[iLayer] = new AliAlignObj*[AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer)]; + for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer); iModule++) { UShort_t volid = AliAlignObj::LayerToVolUID(iLayer+ AliAlignObj::kFirstLayer,iModule); fAlignObjs[iLayer][iModule] = new AliAlignObjAngles("",volid,0,0,0,0,0,0); } @@ -362,7 +362,7 @@ void AliAlignmentTracks::ResetAlignObjs() { // Reset the alignment objects array for (Int_t iLayer = 0; iLayer < (AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer); iLayer++) { - for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) + for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer); iModule++) fAlignObjs[iLayer][iModule]->SetPars(0,0,0,0,0,0); } } @@ -372,7 +372,7 @@ void AliAlignmentTracks::DeleteAlignObjs() { // Delete the alignment objects array for (Int_t iLayer = 0; iLayer < (AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer); iLayer++) { - for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) + for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer); iModule++) if (fAlignObjs[iLayer][iModule]) delete fAlignObjs[iLayer][iModule]; delete [] fAlignObjs[iLayer]; @@ -394,12 +394,12 @@ void AliAlignmentTracks::AlignDetector(AliAlignObj::ELayerID firstLayer, // the range defined by the user. Int_t nModules = 0; for (Int_t iLayer = firstLayer; iLayer < lastLayer; iLayer++) - nModules += AliAlignObj::LayerSize(iLayer - AliAlignObj::kFirstLayer); + nModules += AliAlignObj::LayerSize(iLayer); TArrayI volIds(nModules); Int_t modnum = 0; for (Int_t iLayer = firstLayer; iLayer < lastLayer; iLayer++) { - for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer - AliAlignObj::kFirstLayer); iModule++) { + for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) { UShort_t volId = AliAlignObj::LayerToVolUID(iLayer,iModule); volIds.AddAt(volId,modnum); modnum++; @@ -422,7 +422,7 @@ void AliAlignmentTracks::AlignLayer(AliAlignObj::ELayerID layer, // a given layer. // Tracks are fitted only within // the range defined by the user. - Int_t nModules = AliAlignObj::LayerSize(layer - AliAlignObj::kFirstLayer); + Int_t nModules = AliAlignObj::LayerSize(layer); TArrayI volIds(nModules); for (Int_t iModule = 0; iModule < nModules; iModule++) { UShort_t volId = AliAlignObj::LayerToVolUID(layer,iModule); @@ -668,8 +668,8 @@ Bool_t AliAlignmentTracks::Misalign(const char *misalignObjFileName, const char* Int_t nLayers = AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer; fMisalignObjs = new AliAlignObj**[nLayers]; for (Int_t iLayer = 0; iLayer < (AliAlignObj::kLastLayer - AliAlignObj::kFirstLayer); iLayer++) { - fMisalignObjs[iLayer] = new AliAlignObj*[AliAlignObj::LayerSize(iLayer)]; - for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) + fMisalignObjs[iLayer] = new AliAlignObj*[AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer)]; + for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer); iModule++) fMisalignObjs[iLayer][iModule] = 0x0; } diff --git a/STEER/AliTrackFitterRieman.cxx b/STEER/AliTrackFitterRieman.cxx index 3b87a1d20ec..12cd95f526e 100644 --- a/STEER/AliTrackFitterRieman.cxx +++ b/STEER/AliTrackFitterRieman.cxx @@ -143,8 +143,7 @@ Bool_t AliTrackFitterRieman::Fit(const TArrayI *volIds,const TArrayI *volIdsFit, else { if (iVolId < AliAlignObj::LayerToVolUID(layerRangeMin,0) || iVolId > AliAlignObj::LayerToVolUID(layerRangeMax, - AliAlignObj::LayerSize(layerRangeMax- - AliAlignObj::kFirstLayer))) continue; + AliAlignObj::LayerSize(layerRangeMax))) continue; } if (!isAlphaCalc) { fAlpha = p.GetAngle(); @@ -220,8 +219,7 @@ Bool_t AliTrackFitterRieman::Fit(const TArrayI *volIds,const TArrayI *volIdsFit, // } // else { // if (iVolId < AliAlignObj::LayerToVolUID(layerRangeMin,0) || -// iVolId > AliAlignObj::LayerToVolUID(layerRangeMax,AliAlignObj::LayerSize(layerRangeMax- -// AliAlignObj::kFirstLayer))) continue; +// iVolId > AliAlignObj::LayerToVolUID(layerRangeMax,AliAlignObj::LayerSize(layerRangeMax))) continue; // } // plocal = p.Rotate(fAlpha); // Float_t delta = (fParams[0]*(plocal.GetX()*plocal.GetX()+plocal.GetY()*plocal.GetY())+ diff --git a/STEER/AliTrackFitterStraight.cxx b/STEER/AliTrackFitterStraight.cxx index 7c74148941c..a92b014a6f5 100644 --- a/STEER/AliTrackFitterStraight.cxx +++ b/STEER/AliTrackFitterStraight.cxx @@ -135,8 +135,7 @@ Bool_t AliTrackFitterStraight::Fit(const TArrayI *volIds,const TArrayI *volIdsFi else { if (iVolId < AliAlignObj::LayerToVolUID(layerRangeMin,0) || iVolId > AliAlignObj::LayerToVolUID(layerRangeMax, - AliAlignObj::LayerSize(layerRangeMax- - AliAlignObj::kFirstLayer))) continue; + AliAlignObj::LayerSize(layerRangeMax))) continue; } if (!isAlphaCalc) { fAlpha = p.GetAngle(); -- 2.43.0