TString AliITSUGeomTGeo::fgITSVolName = "ITSV";
TString AliITSUGeomTGeo::fgITSLrName = "ITSULayer";
TString AliITSUGeomTGeo::fgITSStaveName = "ITSUStave";
-TString AliITSUGeomTGeo::fgITSSubStaveName = "ITSUSubStave";
-TString AliITSUGeomTGeo::fgITSModuleName = "ITSUModuleName";
+TString AliITSUGeomTGeo::fgITSHalfStaveName = "ITSUHalfStave";
+TString AliITSUGeomTGeo::fgITSModuleName = "ITSUModule";
TString AliITSUGeomTGeo::fgITSChipName = "ITSUChip";
TString AliITSUGeomTGeo::fgITSSensName = "ITSUSensor";
TString AliITSUGeomTGeo::fgITSWrapVolName = "ITSUWrapVol";
,fNLayers(0)
,fNChips(0)
,fNStaves(0)
- ,fNSubStaves(0)
+ ,fNHalfStaves(0)
,fNModules(0)
,fNChipsPerModule(0)
- ,fNChipsPerSubStave(0)
+ ,fNChipsPerHalfStave(0)
,fNChipsPerStave(0)
,fNChipsPerLayer(0)
,fLrChipType(0)
,fNLayers(src.fNLayers)
,fNChips(src.fNChips)
,fNStaves(0)
- ,fNSubStaves(0)
+ ,fNHalfStaves(0)
,fNModules(0)
,fNChipsPerModule(0)
- ,fNChipsPerSubStave(0)
+ ,fNChipsPerHalfStave(0)
,fNChipsPerStave(0)
,fNChipsPerLayer(0)
,fLrChipType(0)
// copy c-tor
if (fNLayers) {
fNStaves = new Int_t[fNLayers];
- fNSubStaves= new Int_t[fNLayers];
- fNModules = new Int_t[fNLayers];
fNChipsPerModule = new Int_t[fNLayers];
fLrChipType = new Int_t[fNLayers];
fLastChipIndex = new Int_t[fNLayers];
- fNChipsPerSubStave = new Int_t[fNLayers];
+ fNChipsPerHalfStave = new Int_t[fNLayers];
fNChipsPerStave = new Int_t[fNLayers];
fNChipsPerLayer = new Int_t[fNLayers];
//
for (int i=fNLayers;i--;) {
fNStaves[i] = src.fNStaves[i];
- fNSubStaves[i] = src.fNSubStaves[i];
+ fNHalfStaves[i] = src.fNHalfStaves[i];
fNModules[i] = src.fNModules[i];
fNChipsPerModule[i] = src.fNChipsPerModule[i];
- fNChipsPerSubStave[i] = src.fNChipsPerSubStave[i];
+ fNChipsPerHalfStave[i] = src.fNChipsPerHalfStave[i];
fNChipsPerStave[i] = src.fNChipsPerStave[i];
fNChipsPerLayer[i] = src.fNChipsPerLayer[i];
fLrChipType[i] = src.fLrChipType[i];
{
//d-tor
delete[] fNStaves;
- delete[] fNSubStaves;
+ delete[] fNHalfStaves;
delete[] fNModules;
delete[] fLrChipType;
delete[] fNChipsPerModule;
- delete[] fNChipsPerSubStave;
+ delete[] fNChipsPerHalfStave;
delete[] fNChipsPerStave;
delete[] fNChipsPerLayer;
delete[] fLastChipIndex;
// cp op.
if (this!=&src) {
delete[] fNStaves;
- delete[] fNSubStaves;
+ delete[] fNHalfStaves;
delete[] fNModules;
delete[] fLrChipType;
delete[] fNChipsPerModule;
- delete[] fNChipsPerSubStave;
+ delete[] fNChipsPerHalfStave;
delete[] fNChipsPerStave;
delete[] fNChipsPerLayer;
delete[] fLastChipIndex;
- fNStaves = fNSubStaves = fNModules = fLrChipType = fNChipsPerModule = fLastChipIndex = 0;
+ fNStaves = fNHalfStaves = fNModules = fLrChipType = fNChipsPerModule = fLastChipIndex = 0;
fVersion = src.fVersion;
fNLayers = src.fNLayers;
fNChips = src.fNChips;
//
if (fNLayers) {
fNStaves = new Int_t[fNLayers];
- fNSubStaves = new Int_t[fNLayers];
+ fNHalfStaves = new Int_t[fNLayers];
fNModules = new Int_t[fNLayers];
fNChipsPerModule = new Int_t[fNLayers];
- fNChipsPerSubStave = new Int_t[fNLayers];
+ fNChipsPerHalfStave = new Int_t[fNLayers];
fNChipsPerStave = new Int_t[fNLayers];
fNChipsPerLayer = new Int_t[fNLayers];
fLrChipType = new Int_t[fNLayers];
fLastChipIndex = new Int_t[fNLayers];
for (int i=fNLayers;i--;) {
fNStaves[i] = src.fNStaves[i];
- fNSubStaves[i] = src.fNSubStaves[i];
+ fNHalfStaves[i] = src.fNHalfStaves[i];
fNModules[i] = src.fNModules[i];
fNChipsPerModule[i] = src.fNChipsPerModule[i];
- fNChipsPerSubStave[i] = src.fNChipsPerSubStave[i];
+ fNChipsPerHalfStave[i] = src.fNChipsPerHalfStave[i];
fNChipsPerStave[i] = src.fNChipsPerStave[i];
fNChipsPerLayer[i] = src.fNChipsPerLayer[i];
fLrChipType[i] = src.fLrChipType[i];
// Int_t chipInSStave The chip number in the sub stave. Starting from 0
//
int n = GetFirstChipIndex(lay) + fNChipsPerStave[lay]*sta + chipInSStave;
- if (fNSubStaves[lay] && substa>0) n += fNChipsPerSubStave[lay]*substa;
+ if (fNHalfStaves[lay] && substa>0) n += fNChipsPerHalfStave[lay]*substa;
return n;
}
// Int_t chipInSStave The chip number in the module. Starting from 0
//
int n = GetFirstChipIndex(lay) + fNChipsPerStave[lay]*sta + chipInMod;
- if (fNSubStaves[lay] && substa>0) n += fNChipsPerSubStave[lay]*substa;
+ if (fNHalfStaves[lay] && substa>0) n += fNChipsPerHalfStave[lay]*substa;
if (fNModules[lay] && md>0) n += fNChipsPerModule[lay]*md;
return n;
}
}
//______________________________________________________________________
-Int_t AliITSUGeomTGeo::GetSubStave(Int_t index) const
+Int_t AliITSUGeomTGeo::GetHalfStave(Int_t index) const
{
// Get chip substave id in stave, from 0
//
int lay = 0;
while(index>fLastChipIndex[lay]) lay++;
- if (fNSubStaves[lay]<0) return -1;
+ if (fNHalfStaves[lay]<0) return -1;
index -= GetFirstChipIndex(lay);
index %= fNChipsPerStave[lay];
- return index/fNChipsPerSubStave[lay];
+ return index/fNChipsPerHalfStave[lay];
}
//______________________________________________________________________
if (fNModules[lay]<0) return 0;
index -= GetFirstChipIndex(lay);
index %= fNChipsPerStave[lay];
- if (fNSubStaves[lay]) index %= fNChipsPerSubStave[lay];
+ if (fNHalfStaves[lay]) index %= fNChipsPerHalfStave[lay];
return index/fNChipsPerModule[lay];
}
}
//______________________________________________________________________
-Int_t AliITSUGeomTGeo::GetChipIdInSubStave(Int_t index) const
+Int_t AliITSUGeomTGeo::GetChipIdInHalfStave(Int_t index) const
{
// Get chip number within stave, from 0
//
int lay = 0;
while(index>fLastChipIndex[lay]) lay++;
index -= GetFirstChipIndex(lay);
- return index%fNChipsPerSubStave[lay];
+ return index%fNChipsPerHalfStave[lay];
}
//______________________________________________________________________
}
//______________________________________________________________________
-Bool_t AliITSUGeomTGeo::GetChipId(Int_t index,Int_t &lay,Int_t &sta,Int_t &ssta, Int_t &mod, Int_t &chip) const
+Bool_t AliITSUGeomTGeo::GetChipId(Int_t index,Int_t &lay,Int_t &sta,Int_t &hsta, Int_t &mod, Int_t &chip) const
{
//
// This routine computes the layer, stave, substave, module and chip number
// Outputs:
// Int_t lay The layer number. Starting from 0
// Int_t sta The stave number. Starting from 0
- // Int_t ssta The substave number. Starting from 0
+ // Int_t ssta The halfstave number. Starting from 0
// Int_t mod The module number. Starting from 0
// Int_t chip The detector number. Starting from 0
//
index -= GetFirstChipIndex(lay);
sta = index/fNChipsPerStave[lay];
index %= fNChipsPerStave[lay];
- ssta = fNSubStaves[lay]>0 ? index/fNChipsPerSubStave[lay] : -1;
- index %= fNChipsPerSubStave[lay];
+ hsta = fNHalfStaves[lay]>0 ? index/fNChipsPerHalfStave[lay] : -1;
+ index %= fNChipsPerHalfStave[lay];
mod = fNModules[lay]>0 ? index/fNChipsPerModule[lay] : -1;
chip = index%fNChipsPerModule[lay];
//
}
//______________________________________________________________________
-const char* AliITSUGeomTGeo::ComposeSymNameSubStave(Int_t lr, Int_t stave, Int_t substave)
+const char* AliITSUGeomTGeo::ComposeSymNameHalfStave(Int_t lr, Int_t stave, Int_t substave)
{
// sym name of the stave at given layer
return substave>=0 ?
- Form("%s/%s%d",ComposeSymNameStave(lr,stave),GetITSSubStavePattern(),substave) :
+ Form("%s/%s%d",ComposeSymNameStave(lr,stave),GetITSHalfStavePattern(),substave) :
ComposeSymNameStave(lr,stave);
}
{
// sym name of the substave at given layer/stave
return mod>=0 ?
- Form("%s/%s%d",ComposeSymNameSubStave(lr,stave,substave),GetITSModulePattern(),mod) :
- ComposeSymNameSubStave(lr,stave,substave);
+ Form("%s/%s%d",ComposeSymNameHalfStave(lr,stave,substave),GetITSModulePattern(),mod) :
+ ComposeSymNameHalfStave(lr,stave,substave);
}
//______________________________________________________________________
TString path = Form("/ALIC_1/%s_2/",AliITSUGeomTGeo::GetITSVolPattern());
if (wrID>=0) path += Form("%s%d_1/",GetITSWrapVolPattern(),wrID);
path += Form("%s%d_1/%s%d_%d/",AliITSUGeomTGeo::GetITSLayerPattern(),lay,AliITSUGeomTGeo::GetITSStavePattern(),lay,stav);
- if (fNSubStaves[lay]>0) path += Form("%s%d_%d/",AliITSUGeomTGeo::GetITSSubStavePattern(),lay,sstav);
+ if (fNHalfStaves[lay]>0) path += Form("%s%d_%d/",AliITSUGeomTGeo::GetITSHalfStavePattern(),lay,sstav);
if (fNModules[lay]>0) path += Form("%s%d_%d/",AliITSUGeomTGeo::GetITSModulePattern(),lay,mod);
path += Form("%s%d_%d/%s%d_1",AliITSUGeomTGeo::GetITSChipPattern(),lay,chipInMod,AliITSUGeomTGeo::GetITSSensorPattern(),lay);
static TGeoHMatrix matTmp;
if (!fNLayers) return;
//
fNStaves = new Int_t[fNLayers];
- fNSubStaves = new Int_t[fNLayers];
+ fNHalfStaves = new Int_t[fNLayers];
fNModules = new Int_t[fNLayers];
fNChipsPerModule = new Int_t[fNLayers];
- fNChipsPerSubStave = new Int_t[fNLayers];
+ fNChipsPerHalfStave = new Int_t[fNLayers];
fNChipsPerStave = new Int_t[fNLayers];
fNChipsPerLayer = new Int_t[fNLayers];
fLrChipType = new Int_t[fNLayers];
for (int i=0;i<fNLayers;i++) {
fLrChipType[i] = ExtractLayerChipType(i);
fNStaves[i] = ExtractNumberOfStaves(i);
- fNSubStaves[i] = ExtractNumberOfSubStaves(i);
+ fNHalfStaves[i] = ExtractNumberOfHalfStaves(i);
fNModules[i] = ExtractNumberOfModules(i);
fNChipsPerModule[i] = ExtractNChipsPerModule(i);
- fNChipsPerSubStave[i] = fNChipsPerModule[i]*Max(1,fNModules[i]);
- fNChipsPerStave[i] = fNChipsPerSubStave[i]*Max(1,fNSubStaves[i]);
+ fNChipsPerHalfStave[i]= fNChipsPerModule[i]*Max(1,fNModules[i]);
+ fNChipsPerStave[i] = fNChipsPerHalfStave[i]*Max(1,fNHalfStaves[i]);
fNChipsPerLayer[i] = fNChipsPerStave[i]*fNStaves[i];
fNChips += fNChipsPerLayer[i];
fLastChipIndex[i] = fNChips-1;
}
//______________________________________________________________________
-Int_t AliITSUGeomTGeo::ExtractNumberOfSubStaves(Int_t lay) const
+Int_t AliITSUGeomTGeo::ExtractNumberOfHalfStaves(Int_t lay) const
{
// Determines the number of substaves in the stave of the layer
//
// lay: layer number, starting from 0
//
// MS
- if (fgITSSubStaveName.IsNull()) return 0; // for the setup w/o substave defined the stave and the substave is the same thing
+ if (fgITSHalfStaveName.IsNull()) return 0; // for the setup w/o substave defined the stave and the substave is the same thing
Int_t nSS = 0;
char stavnam[30];
snprintf(stavnam, 30, "%s%d", GetITSStavePattern(),lay);
//
// Loop on all stave nodes, count Chip volumes by checking names
Int_t nNodes = volLd->GetNodes()->GetEntries();
- for (Int_t j=0; j<nNodes; j++) if (strstr(volLd->GetNodes()->At(j)->GetName(),GetITSSubStavePattern())) nSS++;
+ for (Int_t j=0; j<nNodes; j++) if (strstr(volLd->GetNodes()->At(j)->GetName(),GetITSHalfStavePattern())) nSS++;
//
return nSS;
//
if (fgITSModuleName.IsNull()) return 0;
char stavnam[30];
TGeoVolume* volLd = 0;
- if (!fgITSSubStaveName.IsNull()) {
- snprintf(stavnam, 30, "%s%d", GetITSSubStavePattern(),lay);
+ if (!fgITSHalfStaveName.IsNull()) {
+ snprintf(stavnam, 30, "%s%d", GetITSHalfStavePattern(),lay);
volLd = gGeoManager->GetVolume(stavnam);
}
if (!volLd) { // no substaves, check staves
volLd = gGeoManager->GetVolume(stavnam);
}
if (!volLd) { // no modules on this layer, check substaves
- if (!fgITSSubStaveName.IsNull()) {
- snprintf(stavnam, 30, "%s%d", GetITSSubStavePattern(),lay);
+ if (!fgITSHalfStaveName.IsNull()) {
+ snprintf(stavnam, 30, "%s%d", GetITSHalfStavePattern(),lay);
volLd = gGeoManager->GetVolume(stavnam);
}
}
if (fVersion==kITSVNA) return;
for (int i=0;i<fNLayers;i++) {
printf("Lr%2d\tNStav:%2d\tNChips:%2d\tNMod:%d\tNSubSt:%d\tNSt:%3d\tChipType:%3d\tChip#:%4d:%4d\tWrapVol:%d\n",
- i,fNStaves[i],fNChipsPerModule[i],fNModules[i],fNSubStaves[i],fNStaves[i],
+ i,fNStaves[i],fNChipsPerModule[i],fNModules[i],fNHalfStaves[i],fNStaves[i],
fLrChipType[i],GetFirstChipIndex(i),GetLastChipIndex(i),fLr2Wrapper[i]);
}
}
//
Int_t GetNChips() const {return fNChips;}
Int_t GetNChipsPerModule(Int_t lay) const {return fNChipsPerModule[lay];}
- Int_t GetNChipsPerSubStave(Int_t lay) const {return fNChipsPerSubStave[lay];}
+ Int_t GetNChipsPerHalfStave(Int_t lay) const {return fNChipsPerHalfStave[lay];}
Int_t GetNChipsPerStave(Int_t lay) const {return fNChipsPerStave[lay];}
Int_t GetNChipsPerLayer(Int_t lay) const {return fNChipsPerLayer[lay];}
Int_t GetNModules(Int_t lay) const {return fNModules[lay];}
- Int_t GetNSubStaves(Int_t lay) const {return fNSubStaves[lay];}
+ Int_t GetNHalfStaves(Int_t lay) const {return fNHalfStaves[lay];}
Int_t GetNStaves(Int_t lay) const {return fNStaves[lay];}
Int_t GetNLayers() const {return fNLayers;}
Bool_t GetChipId(Int_t index,Int_t &lay,Int_t &sta,Int_t &ssta,Int_t &mod,Int_t &chip) const;
Int_t GetLayer(Int_t index) const;
Int_t GetStave(Int_t index) const;
- Int_t GetSubStave(Int_t index) const;
+ Int_t GetHalfStave(Int_t index) const;
Int_t GetModule(Int_t index) const;
Int_t GetChipIdInLayer(Int_t index) const;
Int_t GetChipIdInStave(Int_t index) const;
- Int_t GetChipIdInSubStave(Int_t index) const;
+ Int_t GetChipIdInHalfStave(Int_t index) const;
Int_t GetChipIdInModule(Int_t index) const;
//
Int_t GetLastChipIndex(Int_t lay) const {return fLastChipIndex[lay];}
static const char* GetITSLayerPattern() {return fgITSLrName.Data();}
static const char* GetITSWrapVolPattern() {return fgITSWrapVolName.Data();}
static const char* GetITSStavePattern() {return fgITSStaveName.Data();}
- static const char* GetITSSubStavePattern() {return fgITSSubStaveName.Data();}
+ static const char* GetITSHalfStavePattern() {return fgITSHalfStaveName.Data();}
static const char* GetITSModulePattern() {return fgITSModuleName.Data();}
static const char* GetITSChipPattern() {return fgITSChipName.Data();}
static const char* GetITSSensorPattern() {return fgITSSensName.Data();}
static void SetITSLayerPattern(const char* nm) {fgITSLrName = nm;}
static void SetITSWrapVolPattern(const char* nm) {fgITSWrapVolName = nm;}
static void SetITSStavePattern(const char* nm) {fgITSStaveName = nm;}
- static void SetITSSubStavePattern(const char* nm) {fgITSSubStaveName = nm;}
+ static void SetITSHalfStavePattern(const char* nm) {fgITSHalfStaveName = nm;}
static void SetITSModulePattern(const char* nm) {fgITSModuleName = nm;}
static void SetITSChipPattern(const char* nm) {fgITSChipName = nm;}
static void SetITSSensorPattern(const char* nm) {fgITSSensName = nm;}
static const char *ComposeSymNameITS();
static const char *ComposeSymNameLayer(Int_t lr);
static const char *ComposeSymNameStave(Int_t lr, Int_t sta);
- static const char *ComposeSymNameSubStave(Int_t lr, Int_t sta, Int_t ssta);
+ static const char *ComposeSymNameHalfStave(Int_t lr, Int_t sta, Int_t ssta);
static const char *ComposeSymNameModule(Int_t lr, Int_t sta, Int_t ssta, Int_t mod);
static const char *ComposeSymNameChip(Int_t lr, Int_t sta, Int_t ssta, Int_t mod, Int_t chip);
//
TGeoPNEntry* GetPNEntry(Int_t index) const;
Int_t ExtractNChipsPerModule(Int_t lay) const;
Int_t ExtractNumberOfStaves(Int_t lay) const;
- Int_t ExtractNumberOfSubStaves(Int_t lay) const;
+ Int_t ExtractNumberOfHalfStaves(Int_t lay) const;
Int_t ExtractNumberOfModules(Int_t lay) const;
Int_t ExtractLayerChipType(Int_t lay) const;
Int_t ExtractNumberOfLayers();
Int_t fNLayers; // number of layers
Int_t fNChips; // The total number of chips
Int_t *fNStaves; //[fNLayers] Array of the number of staves/layer(layer)
- Int_t *fNSubStaves; //[fNLayers] Array of the number of substaves/stave(layer)
+ Int_t *fNHalfStaves; //[fNLayers] Array of the number of substaves/stave(layer)
Int_t *fNModules; //[fNLayers] Array of the number of modules/substave(layer)
Int_t *fNChipsPerModule; //[fNLayers] Array of the number of chips per module (group of chips on the substaves)
- Int_t *fNChipsPerSubStave; //[fNLayers] Array of the number of chips per substave
+ Int_t *fNChipsPerHalfStave; //[fNLayers] Array of the number of chips per substave
Int_t *fNChipsPerStave; //[fNLayers] Array of the number of chips per stave
Int_t *fNChipsPerLayer; //[fNLayers] Array of the number of chips per stave
static TString fgITSVolName; // ITS mother volume name
static TString fgITSLrName; // ITS Layer name
static TString fgITSStaveName; // ITS Stave name
- static TString fgITSSubStaveName; // ITS SubStave name
+ static TString fgITSHalfStaveName; // ITS HalfStave name
static TString fgITSModuleName; // ITS Module name
static TString fgITSChipName; // ITS Chip name
static TString fgITSSensName; // ITS Sensor name