// Updates concerning the geometry: versioning system, new V11hybrid version, bug fixes (B.Nilsend and L. Gaudichet
//
-
#include <TClonesArray.h>
-#include <TGeometry.h>
-#include <TLorentzVector.h>
+#include <TGeoGlobalMagField.h>
+#include <TGeoManager.h>
#include <TGeoMatrix.h>
#include <TGeoPhysicalNode.h>
-#include <TString.h>
-#include <TNode.h>
-#include <TTUBE.h>
-#include <TGeoManager.h>
#include <TGeoVolume.h>
#include <TGeoXtru.h>
+#include <TLorentzVector.h>
+#include <TString.h>
#include <TVirtualMC.h>
#include "AliITS.h"
//______________________________________________________________________
AliITSv11Hybrid::AliITSv11Hybrid():
- AliITS(),
- fGeomDetOut(kFALSE),
- fGeomDetIn(kFALSE),
fByThick(kTRUE),
fMajorVersion(IsVersion()),
fMinorVersion(-1),
//______________________________________________________________________
AliITSv11Hybrid::AliITSv11Hybrid(const char *title)
: AliITS("ITS", title),
- fGeomDetOut(kFALSE),
- fGeomDetIn(kFALSE),
fByThick(kTRUE),
fMajorVersion(IsVersion()),
fMinorVersion(1),
SetThicknessChip2();
SetDensityServicesByThickness();
- fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.euc";
- strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det",60);
- strncpy(fRead,fEuclidGeomDet,60);
- strncpy(fWrite,fEuclidGeomDet,60);
- strncpy(fRead,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymmFMD.det",60);
}
//______________________________________________________________________
AliITSv11Hybrid::AliITSv11Hybrid(const char *name, const char *title)
: AliITS("ITS", title),
- fGeomDetOut(kFALSE),
- fGeomDetIn(kFALSE),
fByThick(kTRUE),
fMajorVersion(IsVersion()),
fMinorVersion(1),
SetThicknessChip2();
SetDensityServicesByThickness();
- fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.euc";
- strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det",60);
- strncpy(fRead,fEuclidGeomDet,60);
- strncpy(fWrite,fEuclidGeomDet,60);
- strncpy(fRead,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymmFMD.det",60);
}
//______________________________________________________________________
modnum = 0;
TString str0 = "/ALIC_1/ITSV_1/ITSsddLayer3_1/ITSsddLadd_"; // SDD layer1
TString str1 = "/ITSsddSensor3_";
- TString str2 = "/ITSsddWafer3_1";
TString ladder;
- TString wafer;
+ TString sensor;
for(Int_t c1 = 0; c1<14; c1++) {
for(Int_t c2 =0; c2<6; c2++) {
modUID = AliGeomManager::LayerToVolUID(layerId,modnum++);
- wafer = ladder;
- wafer += str1;
- wafer += c2;
- wafer += str2; // one wafer
+ sensor = ladder;
+ sensor += str1;
+ sensor += c2;
strEntryName2 = strEntryName1;
strEntryName2 += strSensor;
strEntryName2 += c2;
//printf("%s == %s\n",strEntryName2.Data(),wafer.Data());
- if(!gGeoManager->SetAlignableEntry(strEntryName2.Data(),wafer.Data(),modUID))
+ if(!gGeoManager->SetAlignableEntry(strEntryName2.Data(),sensor.Data(),modUID))
AliFatal(Form("Unable to set alignable entry 2! %s :: %s",
- strEntryName2.Data(),wafer.Data()));
+ strEntryName2.Data(),sensor.Data()));
if(c1 != 2) {
SetT2Lmatrix(modUID, 0, kFALSE, c2>=3);
modnum = 0;
str0 = "/ALIC_1/ITSV_1/ITSsddLayer4_1/ITSsddLadd_"; // SDD layer2
str1 = "/ITSsddSensor4_";
- str2 = "/ITSsddWafer4_1";
for(Int_t c1 = 0; c1<22; c1++) {
for(Int_t c2 =0; c2<8; c2++) {
modUID = AliGeomManager::LayerToVolUID(layerId,modnum++);
- wafer = ladder;
- wafer += str1;
- wafer += c2;
- wafer += str2; // one wafer
+ sensor = ladder;
+ sensor += str1;
+ sensor += c2;
strEntryName2 = strEntryName1;
strEntryName2 += strSensor;
strEntryName2 += c2;
//printf("%s == %s\n",strEntryName2.Data(),wafer.Data());
- if(!gGeoManager->SetAlignableEntry(strEntryName2.Data(),wafer.Data(),modUID))
+ if(!gGeoManager->SetAlignableEntry(strEntryName2.Data(),sensor.Data(),modUID))
AliFatal(Form("Unable to set alignable entry 2! %s :: %s",
- strEntryName2.Data(),wafer.Data()));
+ strEntryName2.Data(),sensor.Data()));
SetT2Lmatrix(modUID, 0, kFALSE, c2>=4);
}
} // end SSD geometry
}
-//______________________________________________________________________
-void AliITSv11Hybrid::BuildGeometry(){
- // Geometry builder for the ITS version 10. Event Display geometry.
- // Inputs:
- // none.
- // Outputs:
- // none.
- // Return:
- // none.
-
- TNode *node, *top;
-
- const Int_t kColorITS=kYellow;
- //
- top = gAlice->GetGeometry()->GetNode("alice");
-
-
- new TTUBE("S_layer1","Layer1 of ITS","void",
- 3.8095,3.8095+1.03*9.36/100.,14.35);
- top->cd();
- node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
- node->SetLineColor(kColorITS);
- fNodes->Add(node);
-
- new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+1.03*9.36/100.,14.35);
- top->cd();
- node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
- node->SetLineColor(kColorITS);
- fNodes->Add(node);
-
- new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.94*9.36/100.,25.1);
- top->cd();
- node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
- node->SetLineColor(kColorITS);
- fNodes->Add(node);
-
- new TTUBE("S_layer4","Layer4 of ITS","void",24.1,24.1+0.95*9.36/100.,32.1);
- top->cd();
- node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
- node->SetLineColor(kColorITS);
- fNodes->Add(node);
-
- new TTUBE("S_layer5","Layer5 of ITS","void",
- 38.5,38.5+0.91*9.36/100.,49.405);
- top->cd();
- node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
- node->SetLineColor(kColorITS);
- fNodes->Add(node);
-
- new TTUBE("S_layer6","Layer6 of ITS","void",
- 43.5765,43.5765+0.87*9.36/100.,55.27);
- top->cd();
- node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
- node->SetLineColor(kColorITS);
- fNodes->Add(node);
-}
-
//______________________________________________________________________
void AliITSv11Hybrid::CreateGeometry() {
dgh[1] = 59.;
dgh[2] = 0.6;
gMC->Gsvolu("ICYL", "TUBE", idtmed[210], dgh, 3);
- gMC->Gspos("ICYL", 1, "ALIC", 0., 0., -74.1,idrotm[199], "ONLY");
- gMC->Gspos("ICYL", 2, "ALIC", 0., 0., 74.1, 0, "ONLY");
+ gMC->Gspos("ICYL", 1, "ITSV", 0., 0., -74.1,idrotm[199], "ONLY");
+ gMC->Gspos("ICYL", 2, "ITSV", 0., 0., 74.1, 0, "ONLY");
// --- DEFINE SUPPORTS FOR RAILS ATTACHED TO THE CYLINDERS
}
-
- // --- Outputs the geometry tree in the EUCLID/CAD format
-
- if (fEuclidOut) {
- gMC->WriteEuclid("ITSgeometry", "ITSV", 1, 5);
- }
-
-
{
if (!gGeoManager) {
AliError("TGeoManager doesn't exist !");
// Return:
// none.
- Int_t ifield = gAlice->Field()->Integ();
- Float_t fieldm = gAlice->Field()->Max();
+ Int_t ifield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
+ Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
Float_t tmaxfd = 0.1; // 1.0; // Degree
Float_t stemax = 1.0; // cm
fMinorVersion));
UpdateInternalGeometry();
AliITS::Init();
- if(fGeomDetOut) GetITSgeom()->WriteNewFile(fWrite);
fIDMother = gMC->VolId("ITSV"); // ITS Mother Volume ID.
}
Int_t copy, lay = 0;
Int_t id = gMC->CurrentVolID(copy);
- Bool_t notSens;
- while ((notSens = id != fIdSens[lay]) && (lay<fIdN)) ++lay;
+ Bool_t notSens = kFALSE;
+ while ((lay<fIdN) && (notSens = id != fIdSens[lay])) ++lay;
if (notSens) return;
if(gMC->IsTrackExiting()) {