ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/



// General Root includes
//#include <Riostream.h>
//#include <TMath.h>
#include <TVectorD.h>

// Root Geometry includes
#include <TGeoManager.h>
#include <TGeoMatrix.h>
#include <TGeoVolume.h>
#include <TGeoNode.h>

#include "AliITSv11GeomCable.h"



//*************************************************************************
//   Base class of cable classes
//
//
// Ludovic Gaudichet                                   gaudichet@to.infn.it
//*************************************************************************

ClassImp(AliITSv11GeomCable)


//________________________________________________________________________
AliITSv11GeomCable::AliITSv11GeomCable(): TNamed(),
  fDebug(0),
  fPointArray(),
  fVolumeArray(),
  fCurrentVol(0),
  fInitialNode(0)
{ 
  // constructor
  fPointArray.SetOwner();
  for(Int_t i=0;i<fgkCableMaxNodeLevel;i++)fNodeInd[i]=0;
}

//________________________________________________________________________
AliITSv11GeomCable::AliITSv11GeomCable(const char* name): TNamed(name,""),
  fDebug(0),
  fPointArray(),
  fVolumeArray(),
  fCurrentVol(0),
  fInitialNode(0) { 
  // constructor
  fPointArray.SetOwner(); 
  for(Int_t i=0;i<fgkCableMaxNodeLevel;i++)fNodeInd[i]=0;
}


//________________________________________________________________________
AliITSv11GeomCable::~AliITSv11GeomCable() {
  fPointArray.Clear();
  fVolumeArray.Clear();
}

//________________________________________________________________________
void AliITSv11GeomCable::AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
					Double_t *coord)
{
  //
  // Add a check point and its volume container to the cable
  //

  if (iCheckPt>=fVolumeArray.GetEntriesFast()) {
    fVolumeArray.AddLast(vol);
    TVectorD *point = new TVectorD(3,coord);
    fPointArray.AddLast(point);

  } else if ((iCheckPt >= 0)&&(iCheckPt < fVolumeArray.GetEntriesFast())) {
    fVolumeArray.AddAt(vol, iCheckPt);
    TVectorD *point = new TVectorD(3,coord);
    fPointArray.AddAt(point, iCheckPt);
  };
}

//________________________________________________________________________
void AliITSv11GeomCable::ResetPoints() {
  //
  // Remove all points to the cable
  //
  fPointArray.Delete();
  fVolumeArray.Clear();
}


//________________________________________________________________________
Int_t AliITSv11GeomCable::GetPoint( Int_t iCheckPt,  Double_t *coord)
const {
  //
  // Get the check point #iCheckPt
  //
  TVectorD *coordVector =(TVectorD *)fPointArray.UncheckedAt(iCheckPt);
#if ROOT_VERSION_CODE < ROOT_VERSION(4,0,0)
  CopyFrom(coord, coordVector->GetElements());
#else
  CopyFrom(coord, coordVector->GetMatrixArray());
#endif
  return kTRUE;
}

//________________________________________________________________________
Int_t AliITSv11GeomCable::GetVect( Int_t iCheckPt,  Double_t *coord)
const {
  //
  //  Get the orientation vect. related to check point #iCheckPt
  //

  TVectorD *coordVector =(TVectorD *)fPointArray.UncheckedAt(iCheckPt);
#if ROOT_VERSION_CODE < ROOT_VERSION(4,0,0)
  CopyFrom(coord, coordVector->GetElements());
#else
  CopyFrom(coord, coordVector->GetMatrixArray());
#endif
  return kTRUE;
}

//________________________________________________________________________
TGeoVolume *AliITSv11GeomCable::GetVolume( Int_t iCheckPt ) const {
  //
  // Get the volume of check point #iCheckPt
  //

  if (iCheckPt >= fVolumeArray.GetEntriesFast())
    return 0;
  else
    return (TGeoVolume *) fVolumeArray.UncheckedAt(iCheckPt);
}

//________________________________________________________________________
void AliITSv11GeomCable::SetInitialNode(TGeoVolume *vol) {
  //
  // Set the starting node, initializing the search for the volume
  // containing the cable check point
  //
  if (fInitialNode) delete fInitialNode;
  fInitialNode = new TGeoNodeMatrix(vol,0);
  fInitialNode->SetName("nodeInConstruction");
}

//________________________________________________________________________
void AliITSv11GeomCable::ResetInitialNode() {
  // Reset the initial node if it is set.
  if (fInitialNode) delete fInitialNode;
  fInitialNode = 0;
}

//________________________________________________________________________
bool AliITSv11GeomCable::CheckDaughter(const TGeoNode* node, Int_t i)
{
// Search where is the current volume in the tree of nodes
// stop each time it find the pointer of the current volume
// the path is recorded in fNodeInd[]
// node is the node where the search start.
// !!! recursive function !!!

  Int_t j = fNodeInd[i];
  if (node->GetVolume()==fCurrentVol) return kTRUE;
  TObjArray *array = node->GetNodes();
  if (array) {
    Int_t nDaughters = array->GetEntriesFast();
    if (j==-1) j++;
    while (j<nDaughters) {
      TGeoNode *subNode = (TGeoNode *) array->UncheckedAt(j);
      fNodeInd[i] = j;
      if (CheckDaughter(subNode, i+1)) return kTRUE;
      j++;
    };
    fNodeInd[i] = -1;
  };
  return kFALSE;
}

//________________________________________________________________________
Int_t AliITSv11GeomCable::
GetCheckPoint( Int_t iCheckPt, Int_t iOccur, Int_t motherLevel,
	       Double_t *coord ) {
// Get the coordinate of the check point number #iCheckPt, which is in the
// #iOccur occurrence of the containing volume in the node tree. Coordinates
// are given in the coordinate system of the #motherLevel mother level of
// this volume
  
  if (iCheckPt >= fVolumeArray.GetEntriesFast()) return kFALSE;

  TGeoNode *mainNode;
  if (fInitialNode==0) {
    TObjArray *nodes = gGeoManager->GetListOfNodes();
    if (nodes->GetEntriesFast()==0) return kFALSE;
    mainNode = (TGeoNode *) nodes->UncheckedAt(0);
  } else {
    mainNode = fInitialNode;
  };

  fCurrentVol = GetVolume(iCheckPt);
  ResetCheckDaughter();
  Int_t currentOccur = 0;

  // loop to get the volume position in the tree of nodes
  while ( CheckDaughter(mainNode) && (currentOccur!=iOccur) ) {
    currentOccur++;
    Int_t maxLevel = 0;
    while (fNodeInd[maxLevel]!=-1) maxLevel++;
    fNodeInd[maxLevel-1]++;
  };

  Int_t maxLevel = 0;
  while (fNodeInd[maxLevel]!=-1) maxLevel++;
  maxLevel--;
  if (maxLevel<-1) return kFALSE;

  TGeoNode *pathNode[fgkCableMaxNodeLevel];
  pathNode[0] = mainNode;
  for (Int_t i=0; i<=maxLevel; i++) {
    pathNode[i+1] = pathNode[i]->GetDaughter(fNodeInd[i]);
  };

  Double_t localCoord[3];
  GetPoint(iCheckPt, localCoord);
  CopyFrom(coord, localCoord);

  if (motherLevel>maxLevel+2) motherLevel = maxLevel+2;

  for (Int_t i=maxLevel; i>maxLevel-motherLevel; i--) {
    pathNode[i+1]->GetMatrix()->LocalToMaster(localCoord, coord);
    CopyFrom(localCoord, coord);
  };
  return kTRUE;
}

//________________________________________________________________________
Int_t AliITSv11GeomCable::GetCheckVect( Int_t iCheckPt, Int_t iOccur,
					Int_t motherLevel, Double_t *coord)
{
// same as GetCheckPoint but with vectorial transformation ...

  if (iCheckPt >= fVolumeArray.GetEntriesFast()) return kFALSE;

  TGeoNode *mainNode;
  if (fInitialNode==0) {
    TObjArray *nodes = gGeoManager->GetListOfNodes();
    if (nodes->GetEntriesFast()==0) return kFALSE;
    mainNode = (TGeoNode *) nodes->UncheckedAt(0);
  } else {
    mainNode = fInitialNode;
  };

  fCurrentVol = GetVolume(iCheckPt);
  ResetCheckDaughter();
  Int_t currentOccur = 0;

  // loop to get the volume position in the tree of nodes
  while ( CheckDaughter(mainNode) && (currentOccur!=iOccur) ) {
    currentOccur++;
    Int_t maxLevel = 0;
    while (fNodeInd[maxLevel]!=-1) maxLevel++;
    fNodeInd[maxLevel-1]++;
  };

  Int_t maxLevel = 0;
  while (fNodeInd[maxLevel]!=-1) maxLevel++;
  maxLevel--;
  if (maxLevel<-1) return kFALSE;

  TGeoNode *pathNode[fgkCableMaxNodeLevel];
  pathNode[0] = mainNode;
  for (Int_t i=0; i<=maxLevel; i++) {
    pathNode[i+1] = pathNode[i]->GetDaughter(fNodeInd[i]);
  };

  Double_t localCoord[3];
  GetVect(iCheckPt, localCoord);
  CopyFrom(coord, localCoord);

  if (motherLevel>maxLevel+2) motherLevel = maxLevel+2;

  for (Int_t i=maxLevel; i>maxLevel-motherLevel; i--) {
    pathNode[i+1]->GetMatrix()->LocalToMasterVect(localCoord, coord);
    CopyFrom(localCoord, coord);
  };
  return kTRUE;
}


//________________________________________________________________________
Int_t AliITSv11GeomCable::GetCheckVect( const Double_t *localCoord,
					TGeoVolume *vol, Int_t iOccur,
					Int_t motherLevel, Double_t *coord)
{
  //
  // Get the global vect (in coord) correponding to the local vector (localCoord)
  // of the volume vol. Global at the level of #motherLevel level in the node tree
  //

  TGeoNode *mainNode;
  if (fInitialNode==0) {
    TObjArray *nodes = gGeoManager->GetListOfNodes();
    if (nodes->GetEntriesFast()==0) return kFALSE;
    mainNode = (TGeoNode *) nodes->UncheckedAt(0);
  } else {
    mainNode = fInitialNode; };

  fCurrentVol = vol;
  Int_t currentOccur = 0;

  // loop to get the volume position in the tree of nodes
  ResetCheckDaughter();
  while ( CheckDaughter(mainNode) && (currentOccur!=iOccur) ) {
    currentOccur++;
    Int_t maxLevel = 0;
    while (fNodeInd[maxLevel]!=-1) maxLevel++;
    fNodeInd[maxLevel-1]++;
  };

  Int_t maxLevel = 0;
  while (fNodeInd[maxLevel]!=-1) maxLevel++;
  maxLevel--;
  if (maxLevel<-1) return kFALSE;

  TGeoNode *pathNode[fgkCableMaxNodeLevel];
  pathNode[0] = mainNode;
  for (Int_t i=0; i<=maxLevel; i++) {
    pathNode[i+1] = pathNode[i]->GetDaughter(fNodeInd[i]);
  };

  if (motherLevel>maxLevel+2) motherLevel = maxLevel+2;

  Double_t tempCoord[3] = {localCoord[0], localCoord[1], localCoord[2]};
  CopyFrom(coord, tempCoord);
  for (Int_t i=maxLevel; i>maxLevel-motherLevel; i--) {
    pathNode[i+1]->GetMatrix()->LocalToMasterVect(tempCoord, coord);
    CopyFrom(tempCoord, coord);
  };
  return kTRUE;
}

 AliITSv11GeomCable.cxx:1
 AliITSv11GeomCable.cxx:2
 AliITSv11GeomCable.cxx:3
 AliITSv11GeomCable.cxx:4
 AliITSv11GeomCable.cxx:5
 AliITSv11GeomCable.cxx:6
 AliITSv11GeomCable.cxx:7
 AliITSv11GeomCable.cxx:8
 AliITSv11GeomCable.cxx:9
 AliITSv11GeomCable.cxx:10
 AliITSv11GeomCable.cxx:11
 AliITSv11GeomCable.cxx:12
 AliITSv11GeomCable.cxx:13
 AliITSv11GeomCable.cxx:14
 AliITSv11GeomCable.cxx:15
 AliITSv11GeomCable.cxx:16
 AliITSv11GeomCable.cxx:17
 AliITSv11GeomCable.cxx:18
 AliITSv11GeomCable.cxx:19
 AliITSv11GeomCable.cxx:20
 AliITSv11GeomCable.cxx:21
 AliITSv11GeomCable.cxx:22
 AliITSv11GeomCable.cxx:23
 AliITSv11GeomCable.cxx:24
 AliITSv11GeomCable.cxx:25
 AliITSv11GeomCable.cxx:26
 AliITSv11GeomCable.cxx:27
 AliITSv11GeomCable.cxx:28
 AliITSv11GeomCable.cxx:29
 AliITSv11GeomCable.cxx:30
 AliITSv11GeomCable.cxx:31
 AliITSv11GeomCable.cxx:32
 AliITSv11GeomCable.cxx:33
 AliITSv11GeomCable.cxx:34
 AliITSv11GeomCable.cxx:35
 AliITSv11GeomCable.cxx:36
 AliITSv11GeomCable.cxx:37
 AliITSv11GeomCable.cxx:38
 AliITSv11GeomCable.cxx:39
 AliITSv11GeomCable.cxx:40
 AliITSv11GeomCable.cxx:41
 AliITSv11GeomCable.cxx:42
 AliITSv11GeomCable.cxx:43
 AliITSv11GeomCable.cxx:44
 AliITSv11GeomCable.cxx:45
 AliITSv11GeomCable.cxx:46
 AliITSv11GeomCable.cxx:47
 AliITSv11GeomCable.cxx:48
 AliITSv11GeomCable.cxx:49
 AliITSv11GeomCable.cxx:50
 AliITSv11GeomCable.cxx:51
 AliITSv11GeomCable.cxx:52
 AliITSv11GeomCable.cxx:53
 AliITSv11GeomCable.cxx:54
 AliITSv11GeomCable.cxx:55
 AliITSv11GeomCable.cxx:56
 AliITSv11GeomCable.cxx:57
 AliITSv11GeomCable.cxx:58
 AliITSv11GeomCable.cxx:59
 AliITSv11GeomCable.cxx:60
 AliITSv11GeomCable.cxx:61
 AliITSv11GeomCable.cxx:62
 AliITSv11GeomCable.cxx:63
 AliITSv11GeomCable.cxx:64
 AliITSv11GeomCable.cxx:65
 AliITSv11GeomCable.cxx:66
 AliITSv11GeomCable.cxx:67
 AliITSv11GeomCable.cxx:68
 AliITSv11GeomCable.cxx:69
 AliITSv11GeomCable.cxx:70
 AliITSv11GeomCable.cxx:71
 AliITSv11GeomCable.cxx:72
 AliITSv11GeomCable.cxx:73
 AliITSv11GeomCable.cxx:74
 AliITSv11GeomCable.cxx:75
 AliITSv11GeomCable.cxx:76
 AliITSv11GeomCable.cxx:77
 AliITSv11GeomCable.cxx:78
 AliITSv11GeomCable.cxx:79
 AliITSv11GeomCable.cxx:80
 AliITSv11GeomCable.cxx:81
 AliITSv11GeomCable.cxx:82
 AliITSv11GeomCable.cxx:83
 AliITSv11GeomCable.cxx:84
 AliITSv11GeomCable.cxx:85
 AliITSv11GeomCable.cxx:86
 AliITSv11GeomCable.cxx:87
 AliITSv11GeomCable.cxx:88
 AliITSv11GeomCable.cxx:89
 AliITSv11GeomCable.cxx:90
 AliITSv11GeomCable.cxx:91
 AliITSv11GeomCable.cxx:92
 AliITSv11GeomCable.cxx:93
 AliITSv11GeomCable.cxx:94
 AliITSv11GeomCable.cxx:95
 AliITSv11GeomCable.cxx:96
 AliITSv11GeomCable.cxx:97
 AliITSv11GeomCable.cxx:98
 AliITSv11GeomCable.cxx:99
 AliITSv11GeomCable.cxx:100
 AliITSv11GeomCable.cxx:101
 AliITSv11GeomCable.cxx:102
 AliITSv11GeomCable.cxx:103
 AliITSv11GeomCable.cxx:104
 AliITSv11GeomCable.cxx:105
 AliITSv11GeomCable.cxx:106
 AliITSv11GeomCable.cxx:107
 AliITSv11GeomCable.cxx:108
 AliITSv11GeomCable.cxx:109
 AliITSv11GeomCable.cxx:110
 AliITSv11GeomCable.cxx:111
 AliITSv11GeomCable.cxx:112
 AliITSv11GeomCable.cxx:113
 AliITSv11GeomCable.cxx:114
 AliITSv11GeomCable.cxx:115
 AliITSv11GeomCable.cxx:116
 AliITSv11GeomCable.cxx:117
 AliITSv11GeomCable.cxx:118
 AliITSv11GeomCable.cxx:119
 AliITSv11GeomCable.cxx:120
 AliITSv11GeomCable.cxx:121
 AliITSv11GeomCable.cxx:122
 AliITSv11GeomCable.cxx:123
 AliITSv11GeomCable.cxx:124
 AliITSv11GeomCable.cxx:125
 AliITSv11GeomCable.cxx:126
 AliITSv11GeomCable.cxx:127
 AliITSv11GeomCable.cxx:128
 AliITSv11GeomCable.cxx:129
 AliITSv11GeomCable.cxx:130
 AliITSv11GeomCable.cxx:131
 AliITSv11GeomCable.cxx:132
 AliITSv11GeomCable.cxx:133
 AliITSv11GeomCable.cxx:134
 AliITSv11GeomCable.cxx:135
 AliITSv11GeomCable.cxx:136
 AliITSv11GeomCable.cxx:137
 AliITSv11GeomCable.cxx:138
 AliITSv11GeomCable.cxx:139
 AliITSv11GeomCable.cxx:140
 AliITSv11GeomCable.cxx:141
 AliITSv11GeomCable.cxx:142
 AliITSv11GeomCable.cxx:143
 AliITSv11GeomCable.cxx:144
 AliITSv11GeomCable.cxx:145
 AliITSv11GeomCable.cxx:146
 AliITSv11GeomCable.cxx:147
 AliITSv11GeomCable.cxx:148
 AliITSv11GeomCable.cxx:149
 AliITSv11GeomCable.cxx:150
 AliITSv11GeomCable.cxx:151
 AliITSv11GeomCable.cxx:152
 AliITSv11GeomCable.cxx:153
 AliITSv11GeomCable.cxx:154
 AliITSv11GeomCable.cxx:155
 AliITSv11GeomCable.cxx:156
 AliITSv11GeomCable.cxx:157
 AliITSv11GeomCable.cxx:158
 AliITSv11GeomCable.cxx:159
 AliITSv11GeomCable.cxx:160
 AliITSv11GeomCable.cxx:161
 AliITSv11GeomCable.cxx:162
 AliITSv11GeomCable.cxx:163
 AliITSv11GeomCable.cxx:164
 AliITSv11GeomCable.cxx:165
 AliITSv11GeomCable.cxx:166
 AliITSv11GeomCable.cxx:167
 AliITSv11GeomCable.cxx:168
 AliITSv11GeomCable.cxx:169
 AliITSv11GeomCable.cxx:170
 AliITSv11GeomCable.cxx:171
 AliITSv11GeomCable.cxx:172
 AliITSv11GeomCable.cxx:173
 AliITSv11GeomCable.cxx:174
 AliITSv11GeomCable.cxx:175
 AliITSv11GeomCable.cxx:176
 AliITSv11GeomCable.cxx:177
 AliITSv11GeomCable.cxx:178
 AliITSv11GeomCable.cxx:179
 AliITSv11GeomCable.cxx:180
 AliITSv11GeomCable.cxx:181
 AliITSv11GeomCable.cxx:182
 AliITSv11GeomCable.cxx:183
 AliITSv11GeomCable.cxx:184
 AliITSv11GeomCable.cxx:185
 AliITSv11GeomCable.cxx:186
 AliITSv11GeomCable.cxx:187
 AliITSv11GeomCable.cxx:188
 AliITSv11GeomCable.cxx:189
 AliITSv11GeomCable.cxx:190
 AliITSv11GeomCable.cxx:191
 AliITSv11GeomCable.cxx:192
 AliITSv11GeomCable.cxx:193
 AliITSv11GeomCable.cxx:194
 AliITSv11GeomCable.cxx:195
 AliITSv11GeomCable.cxx:196
 AliITSv11GeomCable.cxx:197
 AliITSv11GeomCable.cxx:198
 AliITSv11GeomCable.cxx:199
 AliITSv11GeomCable.cxx:200
 AliITSv11GeomCable.cxx:201
 AliITSv11GeomCable.cxx:202
 AliITSv11GeomCable.cxx:203
 AliITSv11GeomCable.cxx:204
 AliITSv11GeomCable.cxx:205
 AliITSv11GeomCable.cxx:206
 AliITSv11GeomCable.cxx:207
 AliITSv11GeomCable.cxx:208
 AliITSv11GeomCable.cxx:209
 AliITSv11GeomCable.cxx:210
 AliITSv11GeomCable.cxx:211
 AliITSv11GeomCable.cxx:212
 AliITSv11GeomCable.cxx:213
 AliITSv11GeomCable.cxx:214
 AliITSv11GeomCable.cxx:215
 AliITSv11GeomCable.cxx:216
 AliITSv11GeomCable.cxx:217
 AliITSv11GeomCable.cxx:218
 AliITSv11GeomCable.cxx:219
 AliITSv11GeomCable.cxx:220
 AliITSv11GeomCable.cxx:221
 AliITSv11GeomCable.cxx:222
 AliITSv11GeomCable.cxx:223
 AliITSv11GeomCable.cxx:224
 AliITSv11GeomCable.cxx:225
 AliITSv11GeomCable.cxx:226
 AliITSv11GeomCable.cxx:227
 AliITSv11GeomCable.cxx:228
 AliITSv11GeomCable.cxx:229
 AliITSv11GeomCable.cxx:230
 AliITSv11GeomCable.cxx:231
 AliITSv11GeomCable.cxx:232
 AliITSv11GeomCable.cxx:233
 AliITSv11GeomCable.cxx:234
 AliITSv11GeomCable.cxx:235
 AliITSv11GeomCable.cxx:236
 AliITSv11GeomCable.cxx:237
 AliITSv11GeomCable.cxx:238
 AliITSv11GeomCable.cxx:239
 AliITSv11GeomCable.cxx:240
 AliITSv11GeomCable.cxx:241
 AliITSv11GeomCable.cxx:242
 AliITSv11GeomCable.cxx:243
 AliITSv11GeomCable.cxx:244
 AliITSv11GeomCable.cxx:245
 AliITSv11GeomCable.cxx:246
 AliITSv11GeomCable.cxx:247
 AliITSv11GeomCable.cxx:248
 AliITSv11GeomCable.cxx:249
 AliITSv11GeomCable.cxx:250
 AliITSv11GeomCable.cxx:251
 AliITSv11GeomCable.cxx:252
 AliITSv11GeomCable.cxx:253
 AliITSv11GeomCable.cxx:254
 AliITSv11GeomCable.cxx:255
 AliITSv11GeomCable.cxx:256
 AliITSv11GeomCable.cxx:257
 AliITSv11GeomCable.cxx:258
 AliITSv11GeomCable.cxx:259
 AliITSv11GeomCable.cxx:260
 AliITSv11GeomCable.cxx:261
 AliITSv11GeomCable.cxx:262
 AliITSv11GeomCable.cxx:263
 AliITSv11GeomCable.cxx:264
 AliITSv11GeomCable.cxx:265
 AliITSv11GeomCable.cxx:266
 AliITSv11GeomCable.cxx:267
 AliITSv11GeomCable.cxx:268
 AliITSv11GeomCable.cxx:269
 AliITSv11GeomCable.cxx:270
 AliITSv11GeomCable.cxx:271
 AliITSv11GeomCable.cxx:272
 AliITSv11GeomCable.cxx:273
 AliITSv11GeomCable.cxx:274
 AliITSv11GeomCable.cxx:275
 AliITSv11GeomCable.cxx:276
 AliITSv11GeomCable.cxx:277
 AliITSv11GeomCable.cxx:278
 AliITSv11GeomCable.cxx:279
 AliITSv11GeomCable.cxx:280
 AliITSv11GeomCable.cxx:281
 AliITSv11GeomCable.cxx:282
 AliITSv11GeomCable.cxx:283
 AliITSv11GeomCable.cxx:284
 AliITSv11GeomCable.cxx:285
 AliITSv11GeomCable.cxx:286
 AliITSv11GeomCable.cxx:287
 AliITSv11GeomCable.cxx:288
 AliITSv11GeomCable.cxx:289
 AliITSv11GeomCable.cxx:290
 AliITSv11GeomCable.cxx:291
 AliITSv11GeomCable.cxx:292
 AliITSv11GeomCable.cxx:293
 AliITSv11GeomCable.cxx:294
 AliITSv11GeomCable.cxx:295
 AliITSv11GeomCable.cxx:296
 AliITSv11GeomCable.cxx:297
 AliITSv11GeomCable.cxx:298
 AliITSv11GeomCable.cxx:299
 AliITSv11GeomCable.cxx:300
 AliITSv11GeomCable.cxx:301
 AliITSv11GeomCable.cxx:302
 AliITSv11GeomCable.cxx:303
 AliITSv11GeomCable.cxx:304
 AliITSv11GeomCable.cxx:305
 AliITSv11GeomCable.cxx:306
 AliITSv11GeomCable.cxx:307
 AliITSv11GeomCable.cxx:308
 AliITSv11GeomCable.cxx:309
 AliITSv11GeomCable.cxx:310
 AliITSv11GeomCable.cxx:311
 AliITSv11GeomCable.cxx:312
 AliITSv11GeomCable.cxx:313
 AliITSv11GeomCable.cxx:314
 AliITSv11GeomCable.cxx:315
 AliITSv11GeomCable.cxx:316
 AliITSv11GeomCable.cxx:317
 AliITSv11GeomCable.cxx:318
 AliITSv11GeomCable.cxx:319
 AliITSv11GeomCable.cxx:320
 AliITSv11GeomCable.cxx:321
 AliITSv11GeomCable.cxx:322
 AliITSv11GeomCable.cxx:323
 AliITSv11GeomCable.cxx:324
 AliITSv11GeomCable.cxx:325
 AliITSv11GeomCable.cxx:326
 AliITSv11GeomCable.cxx:327
 AliITSv11GeomCable.cxx:328
 AliITSv11GeomCable.cxx:329
 AliITSv11GeomCable.cxx:330
 AliITSv11GeomCable.cxx:331
 AliITSv11GeomCable.cxx:332
 AliITSv11GeomCable.cxx:333
 AliITSv11GeomCable.cxx:334
 AliITSv11GeomCable.cxx:335
 AliITSv11GeomCable.cxx:336
 AliITSv11GeomCable.cxx:337
 AliITSv11GeomCable.cxx:338
 AliITSv11GeomCable.cxx:339
 AliITSv11GeomCable.cxx:340
 AliITSv11GeomCable.cxx:341
 AliITSv11GeomCable.cxx:342
 AliITSv11GeomCable.cxx:343
 AliITSv11GeomCable.cxx:344
 AliITSv11GeomCable.cxx:345
 AliITSv11GeomCable.cxx:346
 AliITSv11GeomCable.cxx:347
 AliITSv11GeomCable.cxx:348
 AliITSv11GeomCable.cxx:349
 AliITSv11GeomCable.cxx:350
 AliITSv11GeomCable.cxx:351
 AliITSv11GeomCable.cxx:352
 AliITSv11GeomCable.cxx:353